Skip to content

Give bordered foil surfaces a theme-aware monochrome edge; release v0.25.0 - #105

Merged
0thernet merged 1 commit into
mainfrom
task/foil-edge
Sep 28, 2026
Merged

0thernet merged 1 commit into
mainfrom
task/foil-edge

Conversation

@0thernet

Copy link
Copy Markdown
Member

Summary

The metallic spectrum belongs to wordmarks and marks. Bordered foil surfaces — .hraness-foil and every [data-emphasis="primary"] action — no longer paint the rainbow band through a transparent border and a clipped four-layer background. They keep a flat fill under one 2px theme-aware monochrome edge: black on light, white on dark, overridable through the new --hraness-foil-edge token.

  • Authored material advances to materialVersion 3: surfaceImage/surfaceBackgroundClip → surfaceFill, edge, edgeDark, edgeColor.
  • Raw sheets declare --hraness-foil-edge: light-dark(black, white) on default roots and white on the explicit dark roots and media query.
  • Compiled recipes resolve the edge through a private --_hraness-foil-edge scheme-conditioned stop so a product's public override wins ahead of either scheme default. The five primary-action blocks drop the surface gradient and pin the background longhands the raw background: shorthand resolves, keeping authored-layer shorthand overrides byte-identical across raw, standalone, and compiler delivery.
  • Forced colors keep ButtonText edges, flat Canvas fills, and reviewed hover fallbacks.
  • The spectrum stays on .hraness-foil-text, .hraness-foil-mark, and [data-foil] lockups unchanged.

Releases v0.25.0 (v0.24.0 shipped the footer band meanwhile).

Test plan

  • bun run check — lint, typecheck, build, StyleX artifact + determinism gates, package smoke, unit tests, all browser suites (product-marketing browser: 1,581,096 assertions, 0 mismatches)
  • Raw/compiled parity proven by the shorthand-canary fixture
  • Migrate consumers (peopleblade et al.) to #v0.25.0 in follow-ups

Generated with Devin

….25.0

## Summary

The metallic spectrum belongs to wordmarks and marks. Bordered foil
surfaces — .hraness-foil and every [data-emphasis="primary"] action —
no longer paint the rainbow band through a transparent border and a
clipped four-layer background. They keep a flat fill under one 2px
theme-aware monochrome edge: black on light, white on dark, overridable
through the new --hraness-foil-edge token.

- Authored material advances to materialVersion 3: surfaceImage and
  surfaceBackgroundClip are replaced by surfaceFill, edge, edgeDark,
  and the private edgeColor projection.
- Raw sheets (product-marketing.css, product-marketing-foundation.css)
  declare --hraness-foil-edge: light-dark(black, white) on the default
  roots and white on the explicit dark roots and media query.
- Compiled recipes resolve the edge through a private
  --_hraness-foil-edge scheme-conditioned stop so a product's public
  override wins ahead of either scheme default. The five primary-action
  blocks drop the surface gradient and pin the background longhands the
  raw background: shorthand resolves, keeping authored-layer shorthand
  overrides byte-identical across raw, standalone, and compiler delivery.
- Forced colors keep ButtonText edges, flat Canvas fills, and the
  reviewed hover fallbacks.
- The spectrum stays on .hraness-foil-text, .hraness-foil-mark, and
  [data-foil] lockups unchanged.
@0thernet
0thernet enabled auto-merge (squash) September 28, 2026 04:53
@0thernet
0thernet merged commit 787972c into main Sep 28, 2026
5 checks passed
@0thernet
0thernet deleted the task/foil-edge branch September 28, 2026 05:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant