# Text Shadow Support in Global Styles
> [!question] Lingering Questions
> - Will the next release's presets balance expressive range against readable defaults, or ship another wide-open free-form value?
> - Should forced-colors mode ignore or reset theme-defined text shadows entirely, given the accessibility risk of decorative shadows reducing contrast?
> - How stable is the schema shape once inspector controls and presets arrive — could `styles.typography.textShadow` need a breaking change to support multiple named layers cleanly?
> [!tip] Article Ideas
> - The "ships the smallest useful piece" line is a clean example of staged feature delivery — pairs directly with the Editable-blocks and Editor-components dev notes from the same release week for a short "how WordPress 7.1 sequences risky features" piece.
> [!link] Cross Reference
> - [[3. Resources/Permanent Notes/Data-Model-First Releases Reduce Decision Coupling]] — the Permanent note already extracted from this exact source
> - [[3. Resources/Permanent Notes/WordPress Ships a Risky Feature's Architecture Into Core While Withholding the Full Feature Set]] — same staged-delivery pattern, different feature and different release
> - [[3. Resources/MOCs/Product & Startup Instincts MOC]]
> [!quote] Vocabulary
> - *theme.json* — the WordPress block-theme configuration file where global, per-block, and per-element style data (including the new `textShadow`) is declared
> - *Progressive enhancement* — shipping a capability that degrades gracefully or has no effect when unused, rather than requiring every theme to adopt it immediately
## Bib
- **Source**: [Text Shadow Support in Global Styles](https://make.wordpress.org/core/2026/07/23/text-shadow-support-in-global-styles/) — Make WordPress Core, 2026-07-23
- **Reader doc**: [[3. Resources/Readwise/Articles/Text Shadow Support in Global Styles]]
## Author's thesis
WordPress 7.1 adds `textShadow` to `theme.json` at global, block, and element levels — deliberately shipping only the data-model and rendering slice while deferring inspector controls and presets to the next release, so that theme authors get a standard configuration path now, but the feature has no discoverable user interface until controls land later.
## Key arguments (≤3)
1. **Data-model-first is a deliberate sequencing choice** — Core explicitly separates "can this be configured" from "can a user find the control for it," letting developers use the property before UI decisions are settled.
2. **The value maps directly to raw CSS with no governance yet** — `text-shadow`'s full syntax (including comma-separated multiple shadows) is available immediately, which means no preset system is constraining readability until the next release.
3. **Editor affordances need protection from content styles** — empty rich-text placeholders explicitly suppress the global shadow so the typing prompt stays legible, showing the team already anticipated one class of readability conflict even in this narrow slice.
## Claim atoms
### [H1] Text shadows enter theme.json
> [!quote] ID:rw_1036798924
> WordPress 7.1 introduces the ability to define a text-shadow value in Global Styles through theme.json.
Where/why: opening feature statement — tracks which visual styles move from custom CSS into structured, portable theme data.
### [H2] Core ships the smallest useful slice
> [!quote] ID:rw_1036798925
> This release adds the smallest useful piece: the ability to declare a text-shadow value directly in theme.json.
Where/why: background/release-scope rationale — the source of the Permanent note below; an explicit statement of decision-coupling reduction as release strategy.
### [H3] Configuration arrives before controls
> [!quote] ID:rw_1036798926
> There is no block inspector control and no Global Styles interface for this in this release.
Where/why: current-scope limitation — distinguishes developer availability from end-user discoverability, directly parallel to the Playground discoverability piece from the same batch.
## Permanent candidates
- **Already captured**: [[3. Resources/Permanent Notes/Data-Model-First Releases Reduce Decision Coupling]] (created 2026-07-23 from this exact source, from atom H2 — do not duplicate).
## Processing checklist
- [x] Connect into the relevant MOC — [[3. Resources/MOCs/Product & Startup Instincts MOC]]
- [x] Cross-reference existing Permanent note instead of duplicating
- [ ] Revisit once presets/controls ship in a future release — check whether the deferred-UI window produced the readability problems this note's accessibility section anticipated
## Links
- [[3. Resources/MOCs/Product & Startup Instincts MOC]] — a clean example of shipping the data layer of a feature before its interface, as a deliberate way to avoid blocking useful work on unresolved UI decisions
- [[3. Resources/Permanent Notes/Data-Model-First Releases Reduce Decision Coupling]] — the claim this source already generated, linked here rather than re-derived
- [[3. Resources/MOCs/WordPress Platform Design MOC]] — applies-in: Covers a theme.json styling feature in a core release, a platform design topic.