Content · Gutenberg

Dual Heading block for WordPress

A two-part heading where each line has fully independent typography — color, size, weight, style, and special effects like gradient, highlight, or text stroke. Perfect for emphasis and visual hierarchy.

Get Blockenberg

Free Gutenberg block in Blockenberg. The inspector controls and front-end behavior on this page come from this block’s source, not a shared stub.

Get Blockenberg

What it actually does

A two-part heading where each line has fully independent typography — color, size, weight, style, and special effects like gradient, highlight, or text stroke. Perfect for emphasis and visual hierarchy.

Inspector panels on this block: Layout, Line 1 Typography, Line 2 Typography, Subtext Typography, Effect Colors. Those titles come from index.js, not from a shared template.

Behavior controls: “Arrangement” options: Stacked (one line per row), Inline (both on same line); “Text Align” options: Left, Center, Right; “Effect” options: None, Gradient (color wash), Highlight (box behind), Marker (underline wash), Stroke (outline only); “Effect (Line2Effect)” options: None, Gradient (color wash), Highlight (box behind), Marker (underline wash), Stroke (outline only).

Where to find it

Gutenberg inserter → Content → search “Dual Heading” (block name `blockenberg/dual-heading` in block.json). Style it in the sidebar after insert.

How to use Dual Heading block for WordPress

  1. Install Blockenberg. Install from WordPress.org and activate the plugin.
  2. Insert the block. Edit a page, click +, search for “Dual Heading”, insert it. Category: Content.
  3. Configure inspector controls that exist on this block. Open Layout. Set “Tag”, “Arrangement”, “Text Align”, “Gap Between Lines (px)”.
  4. Check the published page. The view script reads HTML data attributes: data-opts. The block editor preview may not run the same view script.

Inspector controls from this block’s code

ControlWhat the code does
TagSelect control; the chosen value is saved on the block. block.json default: h2. Saved as `tag`.
ArrangementSelect control; the chosen value is saved on the block. Options: Stacked (one line per row); Inline (both on same line). block.json default: stacked. Saved as `layout`.
Text AlignSelect control; the chosen value is saved on the block. Options: Left; Center; Right. block.json default: center. Saved as `textAlign`.
Gap Between Lines (px)Numeric range control in the inspector. Range 0–40. block.json default: 4. Saved as `lineGap`.
Line 1Shared Blockenberg typography popover (family, size, weight, spacing). Saved as `typoLine1`.
EffectSelect control; the chosen value is saved on the block. Options: None; Gradient (color wash); Highlight (box behind); Marker (underline wash); Stroke (outline only). block.json default: none. Saved as `line1Effect`.
Line 2Shared Blockenberg typography popover (family, size, weight, spacing). Saved as `typoLine2`.
Effect (Line2Effect)Select control; the chosen value is saved on the block. Options: None; Gradient (color wash); Highlight (box behind); Marker (underline wash); Stroke (outline only). block.json default: none. Saved as `line2Effect`.
SubtextShared Blockenberg typography popover (family, size, weight, spacing). Saved as `typoSubtext`.
Show SubtextOn/off toggle in the inspector. Off by default. Saved as `showSubtext`.
Stroke Width (px)Numeric range control in the inspector. Range 1–6. block.json default: 1. Saved as `strokeWidth`.
Max Width (px)Numeric range control in the inspector. Range 300–1400. block.json default: 900. Saved as `maxWidth`.
Padding Top (px)Numeric range control in the inspector. Range 0–200. block.json default: 16. Saved as `paddingTop`.
Padding Bottom (px)Numeric range control in the inspector. Range 0–200. block.json default: 16. Saved as `paddingBottom`.
Colors — BackgroundColor control in the inspector. Saved as `bgColor`.
Line 1 ColorColor control in the inspector. block.json default: #111827. Saved as `line1Color`.
Line 2 ColorColor control in the inspector. block.json default: #7c3aed. Saved as `line2Color`.
Effect Color 1 (gradient/highlight)Color control in the inspector. block.json default: #fef08a. Saved as `effectColor`.
Effect Color 2 (gradient end)Color control in the inspector. block.json default: #f97316. Saved as `effectColor2`.
Stroke ColorColor control in the inspector. block.json default: #7c3aed. Saved as `strokeColor`.
SubtextColor control in the inspector. block.json default: #6b7280. Saved as `subtextColor`.

What the front-end script actually does

When this is the right block

Notes from the implementation

viewScript: this folder’s frontend.js is enqueued on the front end for this block.

FAQ

How do I add the Dual Heading block in WordPress?

Install Blockenberg from WordPress.org, edit a page in the block editor, click +, and search for “Dual Heading”. It sits under Content. After insert, open Layout and set “Tag”, “Arrangement”, “Text Align”, “Gap Between Lines (px)”.

What makes Dual Heading different from other Blockenberg blocks?

A two-part heading where each line has fully independent typography — color, size, weight, style, and special effects like gradient, highlight, or text stroke. Perfect for emphasis and visual hierarchy. Inspector labels on this block include “Tag”, “Arrangement”, “Text Align”, “Gap Between Lines (px)”.

Is the Dual Heading Gutenberg block free?

Yes. Dual Heading ships inside Blockenberg. Get the plugin from WordPress.org — no paid add-on is required for this block.

Can I style Dual Heading to match my theme?

Yes. Blockenberg’s shared typography and color panels apply here, plus any block-specific style controls listed on this page (panels: Layout, Line 1 Typography, Line 2 Typography, Subtext Typography).

Related content blocks

Get Blockenberg

Install Blockenberg from WordPress.org, then insert Dual Heading from the Gutenberg inserter.

Get Blockenberg