Pulseby J&E

Design once,
everywhere.

Pulse is a lean WordPress theme for sites that design in Elementor and publish in the block editor. One theme.json feeds both, so a rebrand is one file edit, not two afternoons.

85 KB ZIP · WordPress 6.8+ · PHP 8.3+ · GPL-2.0-or-later · Running in production at jestats.io

Pulse in its Signal variation: warm ink canvas, editorial serif headline reading A clear idea, stated plainly, and one coral button.

The Token Bridge

Every mixed-editor site keeps its brand twice: theme.json for WordPress, Site Settings for Elementor. Change the accent color and half the site quietly keeps the old one. Pulse ends that. On activation, and whenever tokens change, it writes the palette and typography into Elementor's active kit and confirms it with an admin notice.

theme.json — palette, type, spacing, shadows. The one source.
Block editor — reads it natively, as presets.
Elementor — Global Colors and Global Fonts, kept in sync.
Front end — the same values as --pulse-* CSS variables.
Pulse token Elementor global CSS variable
Accent (Signal) Primary, Accent --pulse-accent
Ink Text --pulse-ink
Muted Secondary --pulse-muted
Canvas, Surface, Border — --pulse-canvas and friends
Primary font, else serif Primary font --pulse-serif
Serif, else sans Secondary font —
Sans Text font --pulse-font
Mono, else sans Accent font --pulse-mono

Sync writes only those eight globals. A fingerprint of the resolved tokens skips the write when nothing changed. Turn it off entirely with add_filter( 'jepulse_auto_sync_elementor_kit', '__return_false' ); or run it by hand with wp pulse sync.

Four variations, one edit each

Complete seven-color palettes in styles/. Pick one in a child theme and the bridge carries it into both editors.

Signal#161412 · signal #FF6A4D
Warm ink. The default.
Porcelain#FAF7F1 · signal #C2410C
Light, warm, daytime.
Forest#0F1613 · signal #B5D99C
Deep green, soft sage.
Violet Hour#101119 · signal #B9A2FF
The original Pulse 0.1.

Type needs no downloads: an editorial serif stack for headings, system sans for text, system mono for data. The whole front end is 10.8 KB of CSS and 0.7 KB of JavaScript.

Install in three steps

  1. Download the ZIP and upload it under Appearance → Themes → Add New → Upload Theme.
  2. Activate Pulse, then install Elementor Free when the admin notice offers it.
  3. Set the site title, logo, and menus. Token Bridge hands the design to Elementor on the next admin load — check Templates → Theme Builder → Site Settings to see your palette already there.

For a client brand, copy examples/pulse-child/ to wp-content/themes/customer-name/, edit its theme.json, and activate the child. No Node or Composer is ever needed on a customer site. Without Elementor, native posts, menus, search, and comments keep working.

Inside the box

Patterns. Page hero, Ledger of services, Statement quote, Editorial statement, Closing invitation.

Block styles. Statement quotes, Framed images, the short Signal rule, and ruled Ledger lists.

Editorial care. Reading time, filing footers, pill pagination, and the same stylesheet in the editor as on the page.

For developers

npm ci
npm run env:start   # WordPress + Elementor + Pulse at localhost:8888
npm run check       # lint, strict types, production build
npm run package     # dist/jepulse-0.2.0.zip

Vite and strict TypeScript on the front end, WordPress coding standards in PHP, integration tests against real WordPress with Elementor on and off. The release ZIP is built from an explicit allowlist. Source, issues, and changelog live on GitHub.

Download Pulse 0.2.0