Internal reference · approved and applied

Metallic text as an independent surface modifier

Metallic is restricted to H1 and H2. H3 through H6, body copy, eyebrows, and CTA labels always remain solid. For every metallic H1 or H2, text-metallic comes first and the font-size token comes second.

01 · Scaling

The same ellipse across three compositions

The contract is ordered: metallic first, font-size token second. The size token remains authoritative over anything the metallic token sets.

Short single-line H1text-metallic + display-xl

Prove it first.

Original two-line referencetext-metallic + display-xl

Find a strategy worth putting to the test.

Smaller approved steptext-metallic + heading-lg

Review every decision.

Scale verdict

The 70% / 130% ellipse remains legible on the short line and the smaller step. The short line reads brighter because more of its compact box sits near the highlight, while the two-line reference shows the strongest top-to-bottom falloff. No size-specific geometry is recommended. Keeping one ellipse preserves the modifier’s independence from the heading scale.

02 · Contrast

The darkest stop clears large-text requirements

Ratios use WCAG relative luminance for #8a9099, the least luminous point in the ramp.

Canvas6.41:1#030303
Surface6.04:1#0d0d0f
Raised5.57:1#171719
Strong5.01:1#202123

Result: the darkest stop passes WCAG AA for normal text at every tested near-black surface and exceeds the 3:1 AA and 4.5:1 AAA thresholds for large text. The final stop does not need lifting for contrast.

03 · Accessibility

The fill remains visual, not semantic

The implementation keeps a normal text node in the DOM and adds explicit fallbacks for selection and forced-colors mode.

Screen readers · Pass

Background clipping and text fill do not alter the accessible name. The heading remains ordinary text with its original tag and reading order.

Text selection · Pass with rule

Drag across a specimen above. The global ::selection rule restores HighlightText so selected glyphs remain visible.

Forced colors · Fallback required

The global media query removes the image and resets WebKit text fill to the current solid color. Browser color mapping can then preserve contrast.

04 · Implemented contract

H1 and H2 only, in a fixed token order

Only H1 and H2 may use text-metallic. The class sequence is always metallic first, then the font-size token. H3 through H6 and all non-heading text stay solid.

:root {
  --fxr-metallic-highlight: #ffffff;
  --fxr-metallic-bright: #eef1f6;
  --fxr-metallic-mid: #b9bec7;
  --fxr-metallic-shadow: #8a9099;
  --fxr-metallic-fill: radial-gradient(
    ellipse 70% 130% at 50% 0%,
    var(--fxr-metallic-highlight) 0%,
    var(--fxr-metallic-bright) 30%,
    var(--fxr-metallic-mid) 65%,
    var(--fxr-metallic-shadow) 100%
  );
}

:is(h1, h2).text-metallic {
  color: #ffffff;
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  :is(h1, h2).text-metallic {
    background: var(--fxr-metallic-fill) center / 100% 100% no-repeat;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
  }
}

.text-metallic:not(:is(h1, h2)) {
  background: none !important;
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}

:is(h1, h2).text-metallic::selection {
  background: Highlight;
  color: HighlightText;
  -webkit-text-fill-color: HighlightText;
}

@media (forced-colors: active) {
  :is(h1, h2).text-metallic {
    background: none;
    color: #ffffff;
    -webkit-text-fill-color: currentColor;
  }
}
<h1 class="text-metallic display-xl">Profitable Trading Is Earned</h1>

05 · H1 inventory

Every current Product-site H1 surface

Decisions are deliberately route-specific. “Apply” means an explicit class addition, never an automatic selector.

RouteH1 surfaceDecisionReason
/Homepage heroApplyPrimary brand statement. It already uses a separate clipped gradient, so this would consolidate that treatment.
/404Error pageLeave offUtility state. A decorative premium treatment would overstate the page.
/affiliateAffiliate marketing heroApplyLarge public conversion hero on the primary dark canvas.
/affiliates/[slug]Compact affiliate profileLeave offRecord-driven heading inside a narrow profile composition that behaves more like a card than a site hero.
/ai-trading-mentorProduct heroApplyLarge product statement on a near-black marketing surface.
/backtestProduct heroApplyCore marketing H1 and an existing transparent-gradient treatment.
/battlesProduct campaign heroApplyShort, prominent marketing statement with enough scale for the ramp.
/company/aboutCompany story heroApplyPublic page-level hero on the standard dark canvas.
/custom-indicatorsProduct heroApplyPublic product statement. Confirm the shared hero variant before rollout because the route currently delegates its H1.
/eventsEvents index heroApplyRepository-level H1 with deliberate hero spacing.
/events/[slug]Event detail titleLeave offCompact record title inside a media and metadata layout, not a marketing hero.
/indicatorsIndicators repository heroApplyPublic index H1 on the standard dark repository canvas.
/indicators/[slug]Indicator article titleLeave offEditorial detail heading inside the reading column.
/legal-regulatory/privacy-policyLegal document titleLeave offLegal surfaces should remain plain, stable, and document-like.
/legal-regulatory/terms-conditionsLegal shell and embedded document H1Leave offThe route contains legal-document headings. Do not apply a decorative fill.
/marketsMarkets catalog heroApplyCompact hero already uses a clipped gray gradient. This is a strong consolidation candidate.
/playbooksPlaybooks repository H1ApplyPublic resource index with a distinct page-level heading.
/playbooks/latestLatest playbooks H1ApplyRepository-level heading, not article content.
/playbooks/[category]Playbooks category H1ApplyPage-level taxonomy heading on the repository surface.
/playbooks/authors/[authorSlug]Author archive H1ReviewIt is page-level, but the personal archive context may benefit from a quieter solid fill.
/playbooks/[category]/[articleSlug]Article titleLeave offEditorial reading title. Solid text preserves article hierarchy and density.
/pricingPricing heroApplyCanonical display-xl marketing statement and the proposed first global use.
/product-updatesProduct updates repository H1ApplyPublic repository heading on the standard dark canvas.
/product-updates/[slug]Product update article titleLeave offEditorial detail title in a reading layout.
/prop-firm-simulatorProduct heroApplyLarge marketing H1 that already uses a transparent white gradient.
/resources/communityCommunity marketing heroApplyLarge public hero with sufficient scale and negative space.
/resources/profit-playbookLibrary section H1ReviewThe H1 introduces the episode grid below a separate visual hero, so it may read better as solid text.
/strategiesStrategies repository heroApplyPage-level repository H1 on a dark surface.
/strategies/[slug]Strategy article titleLeave offEditorial detail title inside the article column.
/strategies/thank-youDownload confirmation heroApplyThe source treatment and current two-line reference for the proposed modifier.
/trading-journalProduct heroApplyLarge marketing H1 that already uses a transparent white gradient.
/[...slug]Content-collection article H1Leave offAuthor-controlled prose can render H1s in unknown contexts. Keep the modifier opt-in at the template or entry level.
/internal/design-systemInternal design reference heroLeave offThe reference page should stay visually neutral unless it is explicitly demonstrating the modifier.
/internal/strategies-v1Legacy strategy confirmation heroLeave offPreserved internal comparison route. Do not widen rollout into the legacy version.
/internal/metallic-text-reviewThis review pageLeave offThe page title stays solid so the specimens remain the only evaluated targets.

All 20 surfaces marked “Apply” now use the modifier. Dynamic details, legal documents, content-collection articles, and internal reference routes remain unchanged.