TMS Blocks
+ Component System
Reusable Gutenberg layouts that stay in sync.
TMS Blocks gives you extensive style control in the block editor. The Component System lets you build a layout once and update it everywhere — without a client breaking it in between. Free during the open beta.
See it working
Why this exists
- Core blocks cover the basics — margin, font size, some flex — but there’s no position control, no hover states, no per-breakpoint overrides. Anything past that means a custom stylesheet.
- A card layout used across 40 pages needs to be updated 40 times. Patterns help with insertion, not with maintenance.
- Letting a client edit one section without breaking the rest is hard to enforce.
TMS Blocks and the Component System fix these directly.
TMS Blocks
Free and Available Now
Eight blocks with honest markup and enough style control to not need a separate CSS file for every project.
tms
block
<>
A semantic wrapper. You pick the tag, the attributes, and the classes. Full style control
tms
LInk
<>
Post/page picker, direct URL, or dynamic URLs from post and term data
Great for link cards.
tms
img
<>
Media library, direct URL, or dynamic field sources. Controls for alt, loading, and fetchpriority
Styling controls
Every block shares the same style panel. It covers most CSS properties you’d reach for on a real project — and stores them cleanly as block attributes.
Spacing — padding & margin
Typography — size, weight, line-height, tracking
Flexbox & Grid layout
Borders & border-radius
Color & background
Position & z-index
Effects — box shadow, filter, opacity
Transitions
Hover & focus-visible states
Responsive — per-breakpoint overrides
TMS Component System
beta
Build a layout once. Update it everywhere in one step.
Turn any block layout into a master component, then reuse it across the site as linked instances. Edit the master once, and every instance updates — automatically for content and style changes, with one click for structural changes.
This goes further than WordPress’s synced patterns. Synced patterns propagate a limited set of properties. Components sync everything — content, full style, and structure (add, remove, or reorder blocks in the master, then push it to every instance) — while still letting each instance override specific properties without touching the master.
What the Component System Adds
Component Masters
Define layout and structure once in a dedicated editor. Save any block or block group as a master with a name and category.
Page instances
Insert instances from the block inserter. Each instance inherits the master’s structure. The master appears in its own Components category.
Per-property overrides
Each instance can override individual style properties — color, spacing, typography — without touching the master or other instances.
Content areas
Mark any block inside a master as a content area. That section is freely editable per instance — different text, different image — while the layout stays locked.
Frontend sync
The frontend always renders the current master version. No manual publish step needed — stale instances resolve automatically on page load.
Staleness detection
The editor flags instances that are behind the current master version before you publish. Update one instance or all at once.
Nested components
Components can contain other components. The sync system tracks each level independently — up to 10 levels deep.
Structure integrity
Blocks can’t be added, removed, or reordered inside a locked instance. The editor enforces this automatically. Content areas are the exception.
Open beta
The component system is free during beta.
I’m a designer and developer who built these tools while working on client sites. The component system solves a real problem I kept running into — maintaining layouts across large sites — and I think it’s far enough along to be useful to other people working the same way.
It’s in open beta, which means it’s working well but still being tested in real projects. I’m looking for developers and agencies who build WordPress sites and want to try it — and who are willing to tell me what’s broken, confusing, or missing.