WordPress 7.0 introduces textIndent block support, a long-awaited typography feature that enables blocks to apply text indentation without custom CSS. The Paragraph block is the first to adopt this functionality, marking an important step forward for rich publishing formats.
Text indentation is a typographic convention widely used in long-form content, especially for print-like layouts. The addition of native support for this feature addresses a popular request raised in GitHub issue #37462 back in 2021. Site builders and developers can now leverage this feature directly in the block editor by enabling it in block.json.
A New Opt-In Typography Feature
The textIndent support follows the established pattern of WordPress typography features such as letterSpacing and textDecoration. Blocks can activate this functionality by including the following in their block.json file:
{ "supports": { "typography": { "textIndent": true } } }
Once enabled, the block editor displays a Line Indent control in the Typography panel, allowing users to define text indentation visually. The editor serializes the style.typography.textIndent attribute into the text-indent CSS property, ensuring compatibility with the broader ecosystem of block styling tools.
Paragraph Block: Selector Behavior and Global Styles
The Paragraph block introduces unique considerations for textIndent support. In English and many other left-to-right (LTR) languages, typographic convention often dictates that only subsequent paragraphs are indented, leaving the first paragraph flush to the margin. Conversely, right-to-left (RTL) languages like Arabic and Hebrew frequently indent all paragraphs.

To accommodate these conventions, WordPress provides the typography.textIndent setting at the Global Styles level. This setting determines the CSS selector used to apply indentation:
- “subsequent” (default): Only paragraphs immediately following another paragraph are indented, using the
.wp-block-paragraph + .wp-block-paragraphselector. - “all”: All paragraphs are indented, using the
.wp-block-paragraphselector.
Users can toggle between these modes interactively via the Global Styles interface. Themes can also configure textIndent behavior in theme.json, specifying whether “subsequent” or “all” indentation should apply globally.
Configuration Options for Themes
Themes can enable and customize textIndent support using theme.json. For example, enabling the feature with default “subsequent” behavior looks like this:

{ "settings": { "typography": { "textIndent": true } } }
For “all paragraphs” mode, the setting changes slightly:
{ "settings": { "typography": { "textIndent": "all" } } }
Themes can also set a default indentation value globally for Paragraph blocks:
{ "settings": { "typography": { "textIndent": "subsequent" } }, "styles": { "blocks": { "core/paragraph": { "typography": { "textIndent": "1.5em" } } } } }
These configurations make it easier for developers to align WordPress typography with traditional publishing standards while maintaining control over granular styling options.
Backward Compatibility and Ecosystem Impact
The introduction of textIndent support is entirely opt-in, ensuring backward compatibility. No existing block behavior changes unless the block explicitly declares “textIndent”: true within its supports.typography definition. This prevents disruption to current implementations while offering a seamless upgrade path for developers who want to adopt the feature.
Third-party blocks that enable textIndent will receive the text-indent CSS property, but they won’t inherit the “subsequent/all” selector logic specific to the core Paragraph block. This limitation could prompt plugin authors to develop similar functionality independently.
Props to @aaronrobertshaw for development and to @wildworks, @andrewserong, and @ramonopoly for technical reviews and proofreading. The feature’s implementation PR is #74889 on GitHub.
What To Do
- For Developers: Add “textIndent”: true to your block.json file to enable the feature. Use theme.json for global configuration if needed.
- For Theme Creators: Configure textIndent settings and styles in theme.json to control default indentation behavior across your theme.
- For Site Operators: Update to WordPress 7.0 and explore the new Typography panel options to adjust text indentation.