@oxyhq/bloom 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -4
- package/docs/accordion.mdx +69 -0
- package/docs/activity-heatmap.mdx +71 -0
- package/docs/admonition.mdx +77 -0
- package/docs/alert-dialog.mdx +75 -0
- package/docs/alert.mdx +93 -0
- package/docs/animated-check.mdx +53 -0
- package/docs/aspect-ratio.mdx +45 -0
- package/docs/avatar-group.mdx +91 -0
- package/docs/avatar.mdx +126 -0
- package/docs/badge.mdx +74 -0
- package/docs/benefit-list.mdx +56 -0
- package/docs/bottom-sheet.mdx +103 -0
- package/docs/button.mdx +218 -0
- package/docs/card.mdx +106 -0
- package/docs/checkbox.mdx +59 -0
- package/docs/chip.mdx +53 -0
- package/docs/code.mdx +50 -0
- package/docs/combobox.mdx +64 -0
- package/docs/command.mdx +85 -0
- package/docs/composition-bar.mdx +63 -0
- package/docs/connection-dots.mdx +50 -0
- package/docs/connection-status.mdx +56 -0
- package/docs/content-panel.mdx +62 -0
- package/docs/context-menu.mdx +65 -0
- package/docs/design-tokens.mdx +254 -0
- package/docs/dialog.mdx +277 -0
- package/docs/divider.mdx +56 -0
- package/docs/dot-grid-meter.mdx +66 -0
- package/docs/dropdown-menu.mdx +161 -0
- package/docs/error-boundary.mdx +72 -0
- package/docs/fab.mdx +67 -0
- package/docs/field.mdx +70 -0
- package/docs/fill.mdx +58 -0
- package/docs/fonts.mdx +144 -0
- package/docs/frosted-icon-button.mdx +60 -0
- package/docs/getting-started.mdx +75 -0
- package/docs/grid.mdx +64 -0
- package/docs/hooks.mdx +81 -0
- package/docs/icon-circle.mdx +66 -0
- package/docs/icons.mdx +69 -0
- package/docs/image-aspect-ratio-cache.mdx +63 -0
- package/docs/image-resolver.mdx +66 -0
- package/docs/index.mdx +44 -0
- package/docs/input-group.mdx +58 -0
- package/docs/item.mdx +69 -0
- package/docs/kbd.mdx +57 -0
- package/docs/label.mdx +50 -0
- package/docs/link-preview.mdx +66 -0
- package/docs/list.mdx +72 -0
- package/docs/loading.mdx +129 -0
- package/docs/media-inset-border.mdx +52 -0
- package/docs/menubar.mdx +86 -0
- package/docs/migrating-to-1.0.mdx +434 -0
- package/docs/motion.mdx +83 -0
- package/docs/overlay.mdx +75 -0
- package/docs/popover.mdx +73 -0
- package/docs/portal.mdx +63 -0
- package/docs/pressable-scale.mdx +51 -0
- package/docs/profile-card.mdx +66 -0
- package/docs/progressive-blur.mdx +54 -0
- package/docs/prompt-input.mdx +183 -0
- package/docs/provider.mdx +64 -0
- package/docs/radio-indicator.mdx +60 -0
- package/docs/radio.mdx +65 -0
- package/docs/scroll.mdx +66 -0
- package/docs/search.mdx +67 -0
- package/docs/segmented-control.mdx +76 -0
- package/docs/select.mdx +93 -0
- package/docs/settings-list.mdx +186 -0
- package/docs/skeleton.mdx +66 -0
- package/docs/slider.mdx +73 -0
- package/docs/stat-bar.mdx +59 -0
- package/docs/stat-widgets.mdx +33 -0
- package/docs/styles.mdx +61 -0
- package/docs/subtle-hover.mdx +53 -0
- package/docs/surfaces.mdx +72 -0
- package/docs/switch.mdx +90 -0
- package/docs/tab-bar.mdx +386 -0
- package/docs/tabs.mdx +75 -0
- package/docs/text-field.mdx +187 -0
- package/docs/theme.mdx +67 -0
- package/docs/toast.mdx +285 -0
- package/docs/tooltip.mdx +67 -0
- package/docs/typography.mdx +88 -0
- package/docs/user-hover-card.mdx +140 -0
- package/docs/zoomable-image-gallery.mdx +66 -0
- package/lib/commonjs/design-tokens/color-roles.js +21 -1
- package/lib/commonjs/design-tokens/color-roles.js.map +1 -1
- package/lib/commonjs/design-tokens/index.js +6 -0
- package/lib/commonjs/design-tokens/index.js.map +1 -1
- package/lib/commonjs/design-tokens/tailwind-preset.js +3 -1
- package/lib/commonjs/design-tokens/tailwind-preset.js.map +1 -1
- package/lib/commonjs/design-tokens/theme-css.js +1 -0
- package/lib/commonjs/design-tokens/theme-css.js.map +1 -1
- package/lib/commonjs/design-tokens/theme.css +3 -0
- package/lib/commonjs/design-tokens/tokens-json.js +13 -4
- package/lib/commonjs/design-tokens/tokens-json.js.map +1 -1
- package/lib/commonjs/design-tokens/tokens.json +6227 -265
- package/lib/commonjs/index.js +7 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js +7 -0
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/theme/ambient-store.js +16 -1
- package/lib/commonjs/theme/ambient-store.js.map +1 -1
- package/lib/commonjs/theme/color-policy.js +30 -33
- package/lib/commonjs/theme/color-policy.js.map +1 -1
- package/lib/commonjs/theme/color-presets.js +413 -166
- package/lib/commonjs/theme/color-presets.js.map +1 -1
- package/lib/commonjs/theme/color-scope/seed-scope.js +1 -0
- package/lib/commonjs/theme/color-scope/seed-scope.js.map +1 -1
- package/lib/commonjs/theme/glass-colors.js +18 -21
- package/lib/commonjs/theme/glass-colors.js.map +1 -1
- package/lib/commonjs/theme/index.js +30 -0
- package/lib/commonjs/theme/index.js.map +1 -1
- package/lib/commonjs/theme/index.web.js +30 -0
- package/lib/commonjs/theme/index.web.js.map +1 -1
- package/lib/module/design-tokens/color-roles.js +20 -0
- package/lib/module/design-tokens/color-roles.js.map +1 -1
- package/lib/module/design-tokens/index.js +2 -2
- package/lib/module/design-tokens/index.js.map +1 -1
- package/lib/module/design-tokens/tailwind-preset.js +4 -2
- package/lib/module/design-tokens/tailwind-preset.js.map +1 -1
- package/lib/module/design-tokens/theme-css.js +2 -1
- package/lib/module/design-tokens/theme-css.js.map +1 -1
- package/lib/module/design-tokens/theme.css +3 -0
- package/lib/module/design-tokens/tokens-json.js +14 -5
- package/lib/module/design-tokens/tokens-json.js.map +1 -1
- package/lib/module/design-tokens/tokens.json +6227 -265
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +1 -1
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/theme/ambient-store.js +16 -1
- package/lib/module/theme/ambient-store.js.map +1 -1
- package/lib/module/theme/color-policy.js +30 -33
- package/lib/module/theme/color-policy.js.map +1 -1
- package/lib/module/theme/color-presets.js +412 -165
- package/lib/module/theme/color-presets.js.map +1 -1
- package/lib/module/theme/color-scope/seed-scope.js +2 -1
- package/lib/module/theme/color-scope/seed-scope.js.map +1 -1
- package/lib/module/theme/glass-colors.js +18 -21
- package/lib/module/theme/glass-colors.js.map +1 -1
- package/lib/module/theme/index.js +1 -1
- package/lib/module/theme/index.js.map +1 -1
- package/lib/module/theme/index.web.js +1 -1
- package/lib/module/theme/index.web.js.map +1 -1
- package/lib/typescript/commonjs/design-tokens/color-roles.d.ts +20 -0
- package/lib/typescript/commonjs/design-tokens/color-roles.d.ts.map +1 -1
- package/lib/typescript/commonjs/design-tokens/index.d.ts +3 -3
- package/lib/typescript/commonjs/design-tokens/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/design-tokens/tailwind-preset.d.ts.map +1 -1
- package/lib/typescript/commonjs/design-tokens/theme-css.d.ts.map +1 -1
- package/lib/typescript/commonjs/design-tokens/tokens-json.d.ts +12 -3
- package/lib/typescript/commonjs/design-tokens/tokens-json.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +2 -2
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.web.d.ts +2 -2
- package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/ambient-store.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-policy.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-presets.d.ts +386 -62
- package/lib/typescript/commonjs/theme/color-presets.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-scope/seed-scope.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/glass-colors.d.ts +18 -21
- package/lib/typescript/commonjs/theme/glass-colors.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/index.d.ts +2 -2
- package/lib/typescript/commonjs/theme/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/index.web.d.ts +2 -2
- package/lib/typescript/commonjs/theme/index.web.d.ts.map +1 -1
- package/lib/typescript/module/design-tokens/color-roles.d.ts +20 -0
- package/lib/typescript/module/design-tokens/color-roles.d.ts.map +1 -1
- package/lib/typescript/module/design-tokens/index.d.ts +3 -3
- package/lib/typescript/module/design-tokens/index.d.ts.map +1 -1
- package/lib/typescript/module/design-tokens/tailwind-preset.d.ts.map +1 -1
- package/lib/typescript/module/design-tokens/theme-css.d.ts.map +1 -1
- package/lib/typescript/module/design-tokens/tokens-json.d.ts +12 -3
- package/lib/typescript/module/design-tokens/tokens-json.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +2 -2
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/index.web.d.ts +2 -2
- package/lib/typescript/module/index.web.d.ts.map +1 -1
- package/lib/typescript/module/theme/ambient-store.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-policy.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-presets.d.ts +386 -62
- package/lib/typescript/module/theme/color-presets.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-scope/seed-scope.d.ts.map +1 -1
- package/lib/typescript/module/theme/glass-colors.d.ts +18 -21
- package/lib/typescript/module/theme/glass-colors.d.ts.map +1 -1
- package/lib/typescript/module/theme/index.d.ts +2 -2
- package/lib/typescript/module/theme/index.d.ts.map +1 -1
- package/lib/typescript/module/theme/index.web.d.ts +2 -2
- package/lib/typescript/module/theme/index.web.d.ts.map +1 -1
- package/package.json +5 -2
- package/src/__tests__/support/collision-fixture-barrel.ts +20 -0
- package/src/__tests__/support/constructed-style-sheets.ts +68 -0
- package/src/__tests__/support/press-host.ts +30 -0
- package/src/__tests__/support/rendered-style.ts +99 -0
- package/src/__tests__/support/unread-hook-fixture.ts +33 -0
- package/src/design-tokens/color-roles.ts +21 -0
- package/src/design-tokens/index.ts +3 -2
- package/src/design-tokens/tailwind-preset.ts +3 -2
- package/src/design-tokens/theme-css.ts +2 -1
- package/src/design-tokens/theme.css +3 -0
- package/src/design-tokens/tokens-json.ts +29 -9
- package/src/design-tokens/tokens.json +6227 -265
- package/src/glass/GlassSurface.tsx +2 -2
- package/src/index.ts +2 -0
- package/src/index.web.ts +2 -0
- package/src/theme/__tests__/__fixtures__/golden-resolved-tokens.json +4082 -0
- package/src/theme/__tests__/fixtures/color-engine-golden.json +1 -0
- package/src/theme/ambient-store.ts +21 -1
- package/src/theme/color-policy.ts +33 -38
- package/src/theme/color-presets.ts +473 -146
- package/src/theme/color-scope/seed-scope.ts +2 -1
- package/src/theme/glass-colors.ts +18 -21
- package/src/theme/index.ts +16 -1
- package/src/theme/index.web.ts +16 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"oxy|vibrant|light":{"background":"#fff7fb","onBackground":"#211922","surface":"#fff7fb","surfaceDim":"#e4d6e3","surfaceBright":"#fff7fb","surfaceContainerLowest":"#ffffff","surfaceContainerLow":"#ffeffd","surfaceContainer":"#f9e9f7","surfaceContainerHigh":"#f3e4f1","surfaceContainerHighest":"#eddeeb","onSurface":"#211922","surfaceVariant":"#efddee","onSurfaceVariant":"#4f4350","inverseSurface":"#362d37","inverseOnSurface":"#fcecfa","outline":"#817381","outlineVariant":"#d2c1d2","shadow":"#000000","scrim":"#000000","surfaceTint":"#9c00c8","primary":"#9c00c8","onPrimary":"#ffffff","primaryContainer":"#fbd7ff","onPrimaryContainer":"#77009a","inversePrimary":"#f0b0ff","secondary":"#75546f","onSecondary":"#ffffff","secondaryContainer":"#ffd7f5","onSecondaryContainer":"#5b3d57","tertiary":"#834e6b","onTertiary":"#ffffff","tertiaryContainer":"#ffd8ea","onTertiaryContainer":"#683653","error":"#ba1a1a","onError":"#ffffff","errorContainer":"#ffdad6","onErrorContainer":"#93000a"},"oxy|vibrant|dark":{"background":"#18111a","onBackground":"#eddeeb","surface":"#18111a","surfaceDim":"#18111a","surfaceBright":"#3f3640","surfaceContainerLowest":"#130c14","surfaceContainerLow":"#211922","surfaceContainer":"#251d26","surfaceContainerHigh":"#302731","surfaceContainerHighest":"#3b323c","onSurface":"#eddeeb","surfaceVariant":"#4f4350","onSurfaceVariant":"#d2c1d2","inverseSurface":"#eddeeb","inverseOnSurface":"#362d37","outline":"#9b8c9b","outlineVariant":"#4f4350","shadow":"#000000","scrim":"#000000","surfaceTint":"#f0b0ff","primary":"#f0b0ff","onPrimary":"#54006d","primaryContainer":"#77009a","onPrimaryContainer":"#fbd7ff","inversePrimary":"#9c00c8","secondary":"#e3bada","onSecondary":"#43273f","secondaryContainer":"#5b3d57","onSecondaryContainer":"#ffd7f5","tertiary":"#f6b3d5","onTertiary":"#4e203c","tertiaryContainer":"#683653","onTertiaryContainer":"#ffd8ea","error":"#ffb4ab","onError":"#690005","errorContainer":"#93000a","onErrorContainer":"#ffdad6"},"oxy|expressive|light":{"background":"#fff7f9","onBackground":"#22191f","surface":"#fff7f9","surfaceDim":"#e6d6de","surfaceBright":"#fff7f9","surfaceContainerLowest":"#ffffff","surfaceContainerLow":"#fff0f7","surfaceContainer":"#fae9f2","surfaceContainerHigh":"#f4e4ec","surfaceContainerHighest":"#eedee7","onSurface":"#22191f","surfaceVariant":"#f3dcea","onSurfaceVariant":"#52424d","inverseSurface":"#372e34","inverseOnSurface":"#fdecf5","outline":"#84727e","outlineVariant":"#d6c0ce","shadow":"#000000","scrim":"#000000","surfaceTint":"#00696f","primary":"#00696f","onPrimary":"#ffffff","primaryContainer":"#90f2f9","onPrimaryContainer":"#004f53","inversePrimary":"#72d6dd","secondary":"#805159","onSecondary":"#ffffff","secondaryContainer":"#ffd9de","onSecondaryContainer":"#653b42","tertiary":"#775a1a","onTertiary":"#ffffff","tertiaryContainer":"#ffdea5","onTertiaryContainer":"#5d4202","error":"#ba1a1a","onError":"#ffffff","errorContainer":"#ffdad6","onErrorContainer":"#93000a"},"oxy|expressive|dark":{"background":"#191117","onBackground":"#eedee7","surface":"#191117","surfaceDim":"#191117","surfaceBright":"#40363d","surfaceContainerLowest":"#130c11","surfaceContainerLow":"#22191f","surfaceContainer":"#261d23","surfaceContainerHigh":"#31272e","surfaceContainerHighest":"#3c3238","onSurface":"#eedee7","surfaceVariant":"#52424d","onSurfaceVariant":"#d6c0ce","inverseSurface":"#eedee7","inverseOnSurface":"#372e34","outline":"#9f8b98","outlineVariant":"#52424d","shadow":"#000000","scrim":"#000000","surfaceTint":"#72d6dd","primary":"#72d6dd","onPrimary":"#00373a","primaryContainer":"#004f53","onPrimaryContainer":"#90f2f9","inversePrimary":"#00696f","secondary":"#f2b7c0","onSecondary":"#4b252c","secondaryContainer":"#653b42","onSecondaryContainer":"#ffd9de","tertiary":"#e9c177","onTertiary":"#412d00","tertiaryContainer":"#5d4202","onTertiaryContainer":"#ffdea5","error":"#ffb4ab","onError":"#690005","errorContainer":"#93000a","onErrorContainer":"#ffdad6"},"oxy|tonalSpot|light":{"background":"#fff7fb","onBackground":"#1f1a1f","surface":"#fff7fb","surfaceDim":"#e1d7de","surfaceBright":"#fff7fb","surfaceContainerLowest":"#ffffff","surfaceContainerLow":"#fbf1f8","surfaceContainer":"#f5ebf2","surfaceContainerHigh":"#f0e5ed","surfaceContainerHighest":"#eae0e7","onSurface":"#1f1a1f","surfaceVariant":"#ebdfe9","onSurfaceVariant":"#4c444c","inverseSurface":"#342f34","inverseOnSurface":"#f8eef5","outline":"#7e747d","outlineVariant":"#cfc3cd","shadow":"#000000","scrim":"#000000","surfaceTint":"#784f83","primary":"#784f83","onPrimary":"#ffffff","primaryContainer":"#fbd7ff","onPrimaryContainer":"#5e3869","inversePrimary":"#e7b6f1","secondary":"#6a596c","onSecondary":"#ffffff","secondaryContainer":"#f2dcf3","onSecondaryContainer":"#514154","tertiary":"#82524e","onTertiary":"#ffffff","tertiaryContainer":"#ffdad7","onTertiaryContainer":"#663b37","error":"#ba1a1a","onError":"#ffffff","errorContainer":"#ffdad6","onErrorContainer":"#93000a"},"oxy|tonalSpot|dark":{"background":"#161217","onBackground":"#eae0e7","surface":"#161217","surfaceDim":"#161217","surfaceBright":"#3d373d","surfaceContainerLowest":"#110d12","surfaceContainerLow":"#1f1a1f","surfaceContainer":"#231e23","surfaceContainerHigh":"#2e282e","surfaceContainerHighest":"#393339","onSurface":"#eae0e7","surfaceVariant":"#4c444c","onSurfaceVariant":"#cfc3cd","inverseSurface":"#eae0e7","inverseOnSurface":"#342f34","outline":"#988e97","outlineVariant":"#4c444c","shadow":"#000000","scrim":"#000000","surfaceTint":"#e7b6f1","primary":"#e7b6f1","onPrimary":"#462151","primaryContainer":"#5e3869","onPrimaryContainer":"#fbd7ff","inversePrimary":"#784f83","secondary":"#d5c0d6","onSecondary":"#3a2b3d","secondaryContainer":"#514154","onSecondaryContainer":"#f2dcf3","tertiary":"#f5b7b2","onTertiary":"#4c2522","tertiaryContainer":"#663b37","onTertiaryContainer":"#ffdad7","error":"#ffb4ab","onError":"#690005","errorContainer":"#93000a","onErrorContainer":"#ffdad6"},"oxy|neutral|light":{"background":"#fef8f9","onBackground":"#1d1b1c","surface":"#fef8f9","surfaceDim":"#ded9da","surfaceBright":"#fef8f9","surfaceContainerLowest":"#ffffff","surfaceContainerLow":"#f8f2f4","surfaceContainer":"#f2ecee","surfaceContainerHigh":"#ede7e8","surfaceContainerHighest":"#e7e1e3","onSurface":"#1d1b1c","surfaceVariant":"#e7e1e3","onSurfaceVariant":"#494647","inverseSurface":"#323031","inverseOnSurface":"#f5eff1","outline":"#7a7678","outlineVariant":"#cac5c7","shadow":"#000000","scrim":"#000000","surfaceTint":"#675a68","primary":"#675a68","onPrimary":"#ffffff","primaryContainer":"#efddee","onPrimaryContainer":"#4f4350","inversePrimary":"#d2c1d2","secondary":"#645c64","onSecondary":"#ffffff","secondaryContainer":"#ebdfe9","onSecondaryContainer":"#4c444c","tertiary":"#6a596c","onTertiary":"#ffffff","tertiaryContainer":"#f2dcf3","onTertiaryContainer":"#514154","error":"#ba1a1a","onError":"#ffffff","errorContainer":"#ffdad6","onErrorContainer":"#93000a"},"oxy|neutral|dark":{"background":"#151314","onBackground":"#e7e1e3","surface":"#151314","surfaceDim":"#151314","surfaceBright":"#3b383a","surfaceContainerLowest":"#0f0e0f","surfaceContainerLow":"#1d1b1c","surfaceContainer":"#211f20","surfaceContainerHigh":"#2b292b","surfaceContainerHighest":"#363435","onSurface":"#e7e1e3","surfaceVariant":"#494647","onSurfaceVariant":"#cac5c7","inverseSurface":"#e7e1e3","inverseOnSurface":"#323031","outline":"#949091","outlineVariant":"#494647","shadow":"#000000","scrim":"#000000","surfaceTint":"#d2c1d2","primary":"#d2c1d2","onPrimary":"#382d39","primaryContainer":"#4f4350","onPrimaryContainer":"#efddee","inversePrimary":"#675a68","secondary":"#cfc3cd","onSecondary":"#352e36","secondaryContainer":"#4c444c","onSecondaryContainer":"#ebdfe9","tertiary":"#d5c0d6","onTertiary":"#3a2b3d","tertiaryContainer":"#514154","onTertiaryContainer":"#f2dcf3","error":"#ffb4ab","onError":"#690005","errorContainer":"#93000a","onErrorContainer":"#ffdad6"},"blue|vibrant|light":{"background":"#f7f9ff","onBackground":"#151c24","surface":"#f7f9ff","surfaceDim":"#d4dae5","surfaceBright":"#f7f9ff","surfaceContainerLowest":"#ffffff","surfaceContainerLow":"#edf4ff","surfaceContainer":"#e8eef9","surfaceContainerHigh":"#e2e9f4","surfaceContainerHighest":"#dce3ee","onSurface":"#151c24","surfaceVariant":"#dae3f1","onSurfaceVariant":"#3e4852","inverseSurface":"#2a3139","inverseOnSurface":"#eaf1fc","outline":"#6f7884","outlineVariant":"#bec7d4","shadow":"#000000","scrim":"#000000","surfaceTint":"#00629d","primary":"#00629d","onPrimary":"#ffffff","primaryContainer":"#cfe5ff","onPrimaryContainer":"#004a78","inversePrimary":"#99cbff","secondary":"#515e7d","onSecondary":"#ffffff","secondaryContainer":"#d9e2ff","onSecondaryContainer":"#3a4664","tertiary":"#595a8b","onTertiary":"#ffffff","tertiaryContainer":"#e1e0ff","onTertiaryContainer":"#414271","error":"#ba1a1a","onError":"#ffffff","errorContainer":"#ffdad6","onErrorContainer":"#93000a"},"blue|vibrant|dark":{"background":"#0d141b","onBackground":"#dce3ee","surface":"#0d141b","surfaceDim":"#0d141b","surfaceBright":"#333a42","surfaceContainerLowest":"#080f16","surfaceContainerLow":"#151c24","surfaceContainer":"#192028","surfaceContainerHigh":"#242b33","surfaceContainerHighest":"#2e353e","onSurface":"#dce3ee","surfaceVariant":"#3e4852","onSurfaceVariant":"#bec7d4","inverseSurface":"#dce3ee","inverseOnSurface":"#2a3139","outline":"#88929e","outlineVariant":"#3e4852","shadow":"#000000","scrim":"#000000","surfaceTint":"#99cbff","primary":"#99cbff","onPrimary":"#003354","primaryContainer":"#004a78","onPrimaryContainer":"#cfe5ff","inversePrimary":"#00629d","secondary":"#b9c6ea","onSecondary":"#23304d","secondaryContainer":"#3a4664","onSecondaryContainer":"#d9e2ff","tertiary":"#c1c2f9","onTertiary":"#2a2b59","tertiaryContainer":"#414271","onTertiaryContainer":"#e1e0ff","error":"#ffb4ab","onError":"#690005","errorContainer":"#93000a","onErrorContainer":"#ffdad6"},"blue|expressive|light":{"background":"#f9f9ff","onBackground":"#191c22","surface":"#f9f9ff","surfaceDim":"#d8d9e3","surfaceBright":"#f9f9ff","surfaceContainerLowest":"#ffffff","surfaceContainerLow":"#f2f3fd","surfaceContainer":"#ecedf7","surfaceContainerHigh":"#e6e8f2","surfaceContainerHighest":"#e0e2ec","onSurface":"#191c22","surfaceVariant":"#dee2f2","onSurfaceVariant":"#414753","inverseSurface":"#2d3038","inverseOnSurface":"#eff0fa","outline":"#727785","outlineVariant":"#c1c6d6","shadow":"#000000","scrim":"#000000","surfaceTint":"#4c6722","primary":"#4c6722","onPrimary":"#ffffff","primaryContainer":"#cdee99","onPrimaryContainer":"#354e0b","inversePrimary":"#b1d180","secondary":"#77536c","onSecondary":"#ffffff","secondaryContainer":"#ffd7f0","onSecondaryContainer":"#5d3c54","tertiary":"#475e8a","onTertiary":"#ffffff","tertiaryContainer":"#d7e2ff","onTertiaryContainer":"#2f4671","error":"#ba1a1a","onError":"#ffffff","errorContainer":"#ffdad6","onErrorContainer":"#93000a"},"blue|expressive|dark":{"background":"#10131a","onBackground":"#e0e2ec","surface":"#10131a","surfaceDim":"#10131a","surfaceBright":"#363941","surfaceContainerLowest":"#0b0e15","surfaceContainerLow":"#191c22","surfaceContainer":"#1d2027","surfaceContainerHigh":"#272a31","surfaceContainerHighest":"#32353c","onSurface":"#e0e2ec","surfaceVariant":"#414753","onSurfaceVariant":"#c1c6d6","inverseSurface":"#e0e2ec","inverseOnSurface":"#2d3038","outline":"#8b909f","outlineVariant":"#414753","shadow":"#000000","scrim":"#000000","surfaceTint":"#b1d180","primary":"#b1d180","onPrimary":"#213600","primaryContainer":"#354e0b","onPrimaryContainer":"#cdee99","inversePrimary":"#4c6722","secondary":"#e6bad7","onSecondary":"#45263d","secondaryContainer":"#5d3c54","onSecondaryContainer":"#ffd7f0","tertiary":"#b0c7f8","onTertiary":"#173059","tertiaryContainer":"#2f4671","onTertiaryContainer":"#d7e2ff","error":"#ffb4ab","onError":"#690005","errorContainer":"#93000a","onErrorContainer":"#ffdad6"},"blue|tonalSpot|light":{"background":"#f7f9ff","onBackground":"#181c20","surface":"#f7f9ff","surfaceDim":"#d8dae0","surfaceBright":"#f7f9ff","surfaceContainerLowest":"#ffffff","surfaceContainerLow":"#f2f3f9","surfaceContainer":"#eceef4","surfaceContainerHigh":"#e6e8ee","surfaceContainerHighest":"#e0e2e8","onSurface":"#181c20","surfaceVariant":"#dee3eb","onSurfaceVariant":"#42474e","inverseSurface":"#2d3135","inverseOnSurface":"#eff1f6","outline":"#72777f","outlineVariant":"#c2c7cf","shadow":"#000000","scrim":"#000000","surfaceTint":"#31628d","primary":"#31628d","onPrimary":"#ffffff","primaryContainer":"#cfe5ff","onPrimaryContainer":"#124a73","inversePrimary":"#9ccbfb","secondary":"#526070","onSecondary":"#ffffff","secondaryContainer":"#d5e4f7","onSecondaryContainer":"#3a4857","tertiary":"#695779","onTertiary":"#ffffff","tertiaryContainer":"#f0dbff","onTertiaryContainer":"#504060","error":"#ba1a1a","onError":"#ffffff","errorContainer":"#ffdad6","onErrorContainer":"#93000a"},"blue|tonalSpot|dark":{"background":"#101418","onBackground":"#e0e2e8","surface":"#101418","surfaceDim":"#101418","surfaceBright":"#36393e","surfaceContainerLowest":"#0b0e12","surfaceContainerLow":"#181c20","surfaceContainer":"#1d2024","surfaceContainerHigh":"#272a2f","surfaceContainerHighest":"#32353a","onSurface":"#e0e2e8","surfaceVariant":"#42474e","onSurfaceVariant":"#c2c7cf","inverseSurface":"#e0e2e8","inverseOnSurface":"#2d3135","outline":"#8c9199","outlineVariant":"#42474e","shadow":"#000000","scrim":"#000000","surfaceTint":"#9ccbfb","primary":"#9ccbfb","onPrimary":"#003354","primaryContainer":"#124a73","onPrimaryContainer":"#cfe5ff","inversePrimary":"#31628d","secondary":"#b9c8da","onSecondary":"#243240","secondaryContainer":"#3a4857","onSecondaryContainer":"#d5e4f7","tertiary":"#d4bee6","onTertiary":"#392a49","tertiaryContainer":"#504060","onTertiaryContainer":"#f0dbff","error":"#ffb4ab","onError":"#690005","errorContainer":"#93000a","onErrorContainer":"#ffdad6"},"blue|neutral|light":{"background":"#fbf9fa","onBackground":"#1b1c1d","surface":"#fbf9fa","surfaceDim":"#dbd9db","surfaceBright":"#fbf9fa","surfaceContainerLowest":"#ffffff","surfaceContainerLow":"#f5f3f4","surfaceContainer":"#efedee","surfaceContainerHigh":"#eae7e9","surfaceContainerHighest":"#e4e2e3","onSurface":"#1b1c1d","surfaceVariant":"#e4e2e3","onSurfaceVariant":"#474748","inverseSurface":"#303031","inverseOnSurface":"#f2f0f1","outline":"#777778","outlineVariant":"#c8c6c7","shadow":"#000000","scrim":"#000000","surfaceTint":"#565f6b","primary":"#565f6b","onPrimary":"#ffffff","primaryContainer":"#dae3f1","onPrimaryContainer":"#3e4852","inversePrimary":"#bec7d4","secondary":"#5a5f66","onSecondary":"#ffffff","secondaryContainer":"#dee3eb","onSecondaryContainer":"#42474e","tertiary":"#526070","onTertiary":"#ffffff","tertiaryContainer":"#d5e4f7","onTertiaryContainer":"#3a4857","error":"#ba1a1a","onError":"#ffffff","errorContainer":"#ffdad6","onErrorContainer":"#93000a"},"blue|neutral|dark":{"background":"#131314","onBackground":"#e4e2e3","surface":"#131314","surfaceDim":"#131314","surfaceBright":"#39393a","surfaceContainerLowest":"#0e0e0f","surfaceContainerLow":"#1b1c1d","surfaceContainer":"#1f2021","surfaceContainerHigh":"#2a2a2b","surfaceContainerHighest":"#343536","onSurface":"#e4e2e3","surfaceVariant":"#474748","onSurfaceVariant":"#c8c6c7","inverseSurface":"#e4e2e3","inverseOnSurface":"#303031","outline":"#919091","outlineVariant":"#474748","shadow":"#000000","scrim":"#000000","surfaceTint":"#bec7d4","primary":"#bec7d4","onPrimary":"#28313b","primaryContainer":"#3e4852","onPrimaryContainer":"#dae3f1","inversePrimary":"#565f6b","secondary":"#c2c7cf","onSecondary":"#2c3137","secondaryContainer":"#42474e","onSecondaryContainer":"#dee3eb","tertiary":"#b9c8da","onTertiary":"#243240","tertiaryContainer":"#3a4857","onTertiaryContainer":"#d5e4f7","error":"#ffb4ab","onError":"#690005","errorContainer":"#93000a","onErrorContainer":"#ffdad6"},"green|vibrant|light":{"background":"#f0fdf2","onBackground":"#131e18","surface":"#f0fdf2","surfaceDim":"#d0ddd3","surfaceBright":"#f0fdf2","surfaceContainerLowest":"#ffffff","surfaceContainerLow":"#eaf7ed","surfaceContainer":"#e4f1e7","surfaceContainerHigh":"#deebe1","surfaceContainerHighest":"#d9e6dc","onSurface":"#131e18","surfaceVariant":"#d6e7db","onSurfaceVariant":"#3b4a41","inverseSurface":"#28332c","inverseOnSurface":"#e7f4ea","outline":"#6b7b71","outlineVariant":"#bacbbf","shadow":"#000000","scrim":"#000000","surfaceTint":"#006c49","primary":"#006c49","onPrimary":"#ffffff","primaryContainer":"#47ffb8","onPrimaryContainer":"#005236","inversePrimary":"#00e29d","secondary":"#3b665c","onSecondary":"#ffffff","secondaryContainer":"#bdecdf","onSecondaryContainer":"#224e45","tertiary":"#1a6967","onTertiary":"#ffffff","tertiaryContainer":"#a8efed","onTertiaryContainer":"#00504e","error":"#ba1a1a","onError":"#ffffff","errorContainer":"#ffdad6","onErrorContainer":"#93000a"},"green|vibrant|dark":{"background":"#0b1610","onBackground":"#d9e6dc","surface":"#0b1610","surfaceDim":"#0b1610","surfaceBright":"#303c35","surfaceContainerLowest":"#06100b","surfaceContainerLow":"#131e18","surfaceContainer":"#17221c","surfaceContainerHigh":"#212c26","surfaceContainerHighest":"#2c3731","onSurface":"#d9e6dc","surfaceVariant":"#3b4a41","onSurfaceVariant":"#bacbbf","inverseSurface":"#d9e6dc","inverseOnSurface":"#28332c","outline":"#84958a","outlineVariant":"#3b4a41","shadow":"#000000","scrim":"#000000","surfaceTint":"#00e29d","primary":"#00e29d","onPrimary":"#003824","primaryContainer":"#005236","onPrimaryContainer":"#47ffb8","inversePrimary":"#006c49","secondary":"#a2d0c3","onSecondary":"#05372e","secondaryContainer":"#224e45","onSecondaryContainer":"#bdecdf","tertiary":"#8cd3d0","onTertiary":"#003736","tertiaryContainer":"#00504e","onTertiaryContainer":"#a8efed","error":"#ffb4ab","onError":"#690005","errorContainer":"#93000a","onErrorContainer":"#ffdad6"},"green|expressive|light":{"background":"#f1fcf7","onBackground":"#141d1b","surface":"#f1fcf7","surfaceDim":"#d2dcd8","surfaceBright":"#f1fcf7","surfaceContainerLowest":"#ffffff","surfaceContainerLow":"#ecf6f1","surfaceContainer":"#e6f0ec","surfaceContainerHigh":"#e0eae6","surfaceContainerHighest":"#dbe5e0","onSurface":"#141d1b","surfaceVariant":"#d4e7e0","onSurfaceVariant":"#3a4a45","inverseSurface":"#29322f","inverseOnSurface":"#e9f3ee","outline":"#697b75","outlineVariant":"#b8cbc4","shadow":"#000000","scrim":"#000000","surfaceTint":"#914b26","primary":"#914b26","onPrimary":"#ffffff","primaryContainer":"#ffdbcb","onPrimaryContainer":"#743510","inversePrimary":"#ffb692","secondary":"#39656c","onSecondary":"#ffffff","secondaryContainer":"#bdeaf3","onSecondaryContainer":"#1f4d54","tertiary":"#1e695f","onTertiary":"#ffffff","tertiaryContainer":"#a9f0e3","onTertiaryContainer":"#005048","error":"#ba1a1a","onError":"#ffffff","errorContainer":"#ffdad6","onErrorContainer":"#93000a"},"green|expressive|dark":{"background":"#0c1513","onBackground":"#dbe5e0","surface":"#0c1513","surfaceDim":"#0c1513","surfaceBright":"#323b38","surfaceContainerLowest":"#07100e","surfaceContainerLow":"#141d1b","surfaceContainer":"#18211f","surfaceContainerHigh":"#232c29","surfaceContainerHighest":"#2d3734","onSurface":"#dbe5e0","surfaceVariant":"#3a4a45","onSurfaceVariant":"#b8cbc4","inverseSurface":"#dbe5e0","inverseOnSurface":"#29322f","outline":"#83958f","outlineVariant":"#3a4a45","shadow":"#000000","scrim":"#000000","surfaceTint":"#ffb692","primary":"#ffb692","onPrimary":"#562000","primaryContainer":"#743510","onPrimaryContainer":"#ffdbcb","inversePrimary":"#914b26","secondary":"#a1ced6","onSecondary":"#00363d","secondaryContainer":"#1f4d54","onSecondaryContainer":"#bdeaf3","tertiary":"#8dd4c7","onTertiary":"#003731","tertiaryContainer":"#005048","onTertiaryContainer":"#a9f0e3","error":"#ffb4ab","onError":"#690005","errorContainer":"#93000a","onErrorContainer":"#ffdad6"},"green|tonalSpot|light":{"background":"#f5fbf5","onBackground":"#171d19","surface":"#f5fbf5","surfaceDim":"#d6dbd6","surfaceBright":"#f5fbf5","surfaceContainerLowest":"#ffffff","surfaceContainerLow":"#f0f5ef","surfaceContainer":"#eaefe9","surfaceContainerHigh":"#e4eae4","surfaceContainerHighest":"#dee4de","onSurface":"#171d19","surfaceVariant":"#dce5dd","onSurfaceVariant":"#404943","inverseSurface":"#2c322e","inverseOnSurface":"#edf2ec","outline":"#707973","outlineVariant":"#c0c9c1","shadow":"#000000","scrim":"#000000","surfaceTint":"#226a4c","primary":"#226a4c","onPrimary":"#ffffff","primaryContainer":"#aaf2cc","onPrimaryContainer":"#005236","inversePrimary":"#8ed5b0","secondary":"#4d6357","onSecondary":"#ffffff","secondaryContainer":"#d0e8d8","onSecondaryContainer":"#364b40","tertiary":"#3d6473","onTertiary":"#ffffff","tertiaryContainer":"#c0e9fb","onTertiaryContainer":"#244c5a","error":"#ba1a1a","onError":"#ffffff","errorContainer":"#ffdad6","onErrorContainer":"#93000a"},"green|tonalSpot|dark":{"background":"#0f1511","onBackground":"#dee4de","surface":"#0f1511","surfaceDim":"#0f1511","surfaceBright":"#353b37","surfaceContainerLowest":"#0a0f0c","surfaceContainerLow":"#171d19","surfaceContainer":"#1b211d","surfaceContainerHigh":"#262b28","surfaceContainerHighest":"#303632","onSurface":"#dee4de","surfaceVariant":"#404943","onSurfaceVariant":"#c0c9c1","inverseSurface":"#dee4de","inverseOnSurface":"#2c322e","outline":"#8a938c","outlineVariant":"#404943","shadow":"#000000","scrim":"#000000","surfaceTint":"#8ed5b0","primary":"#8ed5b0","onPrimary":"#003824","primaryContainer":"#005236","onPrimaryContainer":"#aaf2cc","inversePrimary":"#226a4c","secondary":"#b4ccbd","onSecondary":"#20352a","secondaryContainer":"#364b40","onSecondaryContainer":"#d0e8d8","tertiary":"#a5cdde","onTertiary":"#063543","tertiaryContainer":"#244c5a","onTertiaryContainer":"#c0e9fb","error":"#ffb4ab","onError":"#690005","errorContainer":"#93000a","onErrorContainer":"#ffdad6"},"green|neutral|light":{"background":"#fbf9f7","onBackground":"#1b1c1b","surface":"#fbf9f7","surfaceDim":"#dbdad8","surfaceBright":"#fbf9f7","surfaceContainerLowest":"#ffffff","surfaceContainerLow":"#f5f3f1","surfaceContainer":"#efeeeb","surfaceContainerHigh":"#e9e8e6","surfaceContainerHighest":"#e3e2e0","onSurface":"#1b1c1b","surfaceVariant":"#e3e2e0","onSurfaceVariant":"#464745","inverseSurface":"#30312f","inverseOnSurface":"#f2f0ee","outline":"#777775","outlineVariant":"#c7c6c4","shadow":"#000000","scrim":"#000000","surfaceTint":"#536259","primary":"#536259","onPrimary":"#ffffff","primaryContainer":"#d6e7db","onPrimaryContainer":"#3b4a41","inversePrimary":"#bacbbf","secondary":"#58605a","onSecondary":"#ffffff","secondaryContainer":"#dce5dd","onSecondaryContainer":"#404943","tertiary":"#4d6357","onTertiary":"#ffffff","tertiaryContainer":"#d0e8d8","onTertiaryContainer":"#364b40","error":"#ba1a1a","onError":"#ffffff","errorContainer":"#ffdad6","onErrorContainer":"#93000a"},"green|neutral|dark":{"background":"#121413","onBackground":"#e3e2e0","surface":"#121413","surfaceDim":"#121413","surfaceBright":"#383938","surfaceContainerLowest":"#0d0e0d","surfaceContainerLow":"#1b1c1b","surfaceContainer":"#1f201f","surfaceContainerHigh":"#292a29","surfaceContainerHighest":"#343534","onSurface":"#e3e2e0","surfaceVariant":"#464745","onSurfaceVariant":"#c7c6c4","inverseSurface":"#e3e2e0","inverseOnSurface":"#30312f","outline":"#91918f","outlineVariant":"#464745","shadow":"#000000","scrim":"#000000","surfaceTint":"#bacbbf","primary":"#bacbbf","onPrimary":"#25342b","primaryContainer":"#3b4a41","onPrimaryContainer":"#d6e7db","inversePrimary":"#536259","secondary":"#c0c9c1","onSecondary":"#2a322d","secondaryContainer":"#404943","onSecondaryContainer":"#dce5dd","tertiary":"#b4ccbd","onTertiary":"#20352a","tertiaryContainer":"#364b40","onTertiaryContainer":"#d0e8d8","error":"#ffb4ab","onError":"#690005","errorContainer":"#93000a","onErrorContainer":"#ffdad6"},"pink|vibrant|light":{"background":"#fff8f8","onBackground":"#25181d","surface":"#fff8f8","surfaceDim":"#ecd4db","surfaceBright":"#fff8f8","surfaceContainerLowest":"#ffffff","surfaceContainerLow":"#fff0f3","surfaceContainer":"#ffe8ee","surfaceContainerHigh":"#fbe2e9","surfaceContainerHighest":"#f5dce3","onSurface":"#25181d","surfaceVariant":"#f8dbe3","onSurfaceVariant":"#554148","inverseSurface":"#3b2c31","inverseOnSurface":"#ffecf1","outline":"#887178","outlineVariant":"#dbbfc8","shadow":"#000000","scrim":"#000000","surfaceTint":"#b7006e","primary":"#b7006e","onPrimary":"#ffffff","primaryContainer":"#ffd9e4","onPrimaryContainer":"#8c0053","inversePrimary":"#ffb0cd","secondary":"#805159","onSecondary":"#ffffff","secondaryContainer":"#ffd9de","onSecondaryContainer":"#653b42","tertiary":"#8b4d4a","onTertiary":"#ffffff","tertiaryContainer":"#ffdad7","onTertiaryContainer":"#6f3634","error":"#ba1a1a","onError":"#ffffff","errorContainer":"#ffdad6","onErrorContainer":"#93000a"},"pink|vibrant|dark":{"background":"#1c1014","onBackground":"#f5dce3","surface":"#1c1014","surfaceDim":"#1c1014","surfaceBright":"#45353a","surfaceContainerLowest":"#170b0f","surfaceContainerLow":"#25181d","surfaceContainer":"#291c21","surfaceContainerHigh":"#35262b","surfaceContainerHighest":"#403136","onSurface":"#f5dce3","surfaceVariant":"#554148","onSurfaceVariant":"#dbbfc8","inverseSurface":"#f5dce3","inverseOnSurface":"#3b2c31","outline":"#a38a92","outlineVariant":"#554148","shadow":"#000000","scrim":"#000000","surfaceTint":"#ffb0cd","primary":"#ffb0cd","onPrimary":"#640039","primaryContainer":"#8c0053","onPrimaryContainer":"#ffd9e4","inversePrimary":"#b7006e","secondary":"#f2b7c0","onSecondary":"#4b252c","secondaryContainer":"#653b42","onSecondaryContainer":"#ffd9de","tertiary":"#ffb3af","onTertiary":"#53201f","tertiaryContainer":"#6f3634","onTertiaryContainer":"#ffdad7","error":"#ffb4ab","onError":"#690005","errorContainer":"#93000a","onErrorContainer":"#ffdad6"},"pink|expressive|light":{"background":"#fff8f7","onBackground":"#24181a","surface":"#fff8f7","surfaceDim":"#ebd5d6","surfaceBright":"#fff8f7","surfaceContainerLowest":"#ffffff","surfaceContainerLow":"#fff0f0","surfaceContainer":"#ffe9ea","surfaceContainerHigh":"#f9e3e4","surfaceContainerHighest":"#f4ddde","onSurface":"#24181a","surfaceVariant":"#fbdbdd","onSurfaceVariant":"#574143","inverseSurface":"#3a2d2e","inverseOnSurface":"#ffeced","outline":"#8b7173","outlineVariant":"#debfc1","shadow":"#000000","scrim":"#000000","surfaceTint":"#00658b","primary":"#00658b","onPrimary":"#ffffff","primaryContainer":"#c5e7ff","onPrimaryContainer":"#004c6a","inversePrimary":"#86cffa","secondary":"#815340","onSecondary":"#ffffff","secondaryContainer":"#ffdbcd","onSecondaryContainer":"#663c2b","tertiary":"#5d6226","onTertiary":"#ffffff","tertiaryContainer":"#e2e89d","onTertiaryContainer":"#454a0f","error":"#ba1a1a","onError":"#ffffff","errorContainer":"#ffdad6","onErrorContainer":"#93000a"},"pink|expressive|dark":{"background":"#1b1012","onBackground":"#f4ddde","surface":"#1b1012","surfaceDim":"#1b1012","surfaceBright":"#443637","surfaceContainerLowest":"#160b0d","surfaceContainerLow":"#24181a","surfaceContainer":"#291c1e","surfaceContainerHigh":"#342728","surfaceContainerHighest":"#3f3133","onSurface":"#f4ddde","surfaceVariant":"#574143","onSurfaceVariant":"#debfc1","inverseSurface":"#f4ddde","inverseOnSurface":"#3a2d2e","outline":"#a68a8c","outlineVariant":"#574143","shadow":"#000000","scrim":"#000000","surfaceTint":"#86cffa","primary":"#86cffa","onPrimary":"#00344a","primaryContainer":"#004c6a","onPrimaryContainer":"#c5e7ff","inversePrimary":"#00658b","secondary":"#f5b9a1","onSecondary":"#4b2717","secondaryContainer":"#663c2b","onSecondaryContainer":"#ffdbcd","tertiary":"#c6cc83","onTertiary":"#2f3300","tertiaryContainer":"#454a0f","onTertiaryContainer":"#e2e89d","error":"#ffb4ab","onError":"#690005","errorContainer":"#93000a","onErrorContainer":"#ffdad6"},"pink|tonalSpot|light":{"background":"#fff8f8","onBackground":"#21191c","surface":"#fff8f8","surfaceDim":"#e6d6da","surfaceBright":"#fff8f8","surfaceContainerLowest":"#ffffff","surfaceContainerLow":"#fff0f3","surfaceContainer":"#faeaed","surfaceContainerHigh":"#f4e4e8","surfaceContainerHighest":"#eedfe2","onSurface":"#21191c","surfaceVariant":"#f2dee3","onSurfaceVariant":"#514347","inverseSurface":"#372e31","inverseOnSurface":"#fdedf0","outline":"#837378","outlineVariant":"#d5c2c7","shadow":"#000000","scrim":"#000000","surfaceTint":"#8a4a65","primary":"#8a4a65","onPrimary":"#ffffff","primaryContainer":"#ffd9e4","onPrimaryContainer":"#6e334d","inversePrimary":"#ffb0cd","secondary":"#735760","onSecondary":"#ffffff","secondaryContainer":"#ffd9e4","onSecondaryContainer":"#5a3f49","tertiary":"#7e5537","onTertiary":"#ffffff","tertiaryContainer":"#ffdcc4","onTertiaryContainer":"#633e22","error":"#ba1a1a","onError":"#ffffff","errorContainer":"#ffdad6","onErrorContainer":"#93000a"},"pink|tonalSpot|dark":{"background":"#191114","onBackground":"#eedfe2","surface":"#191114","surfaceDim":"#191114","surfaceBright":"#40373a","surfaceContainerLowest":"#130c0f","surfaceContainerLow":"#21191c","surfaceContainer":"#261d20","surfaceContainerHigh":"#30282a","surfaceContainerHighest":"#3c3235","onSurface":"#eedfe2","surfaceVariant":"#514347","onSurfaceVariant":"#d5c2c7","inverseSurface":"#eedfe2","inverseOnSurface":"#372e31","outline":"#9d8c91","outlineVariant":"#514347","shadow":"#000000","scrim":"#000000","surfaceTint":"#ffb0cd","primary":"#ffb0cd","onPrimary":"#531d36","primaryContainer":"#6e334d","onPrimaryContainer":"#ffd9e4","inversePrimary":"#8a4a65","secondary":"#e1bdc9","onSecondary":"#412932","secondaryContainer":"#5a3f49","onSecondaryContainer":"#ffd9e4","tertiary":"#f1bc96","onTertiary":"#49290e","tertiaryContainer":"#633e22","onTertiaryContainer":"#ffdcc4","error":"#ffb4ab","onError":"#690005","errorContainer":"#93000a","onErrorContainer":"#ffdad6"},"pink|neutral|light":{"background":"#fff8f8","onBackground":"#1e1b1b","surface":"#fff8f8","surfaceDim":"#e0d8d9","surfaceBright":"#fff8f8","surfaceContainerLowest":"#ffffff","surfaceContainerLow":"#faf2f2","surfaceContainer":"#f4ecec","surfaceContainerHigh":"#eee6e7","surfaceContainerHighest":"#e8e1e1","onSurface":"#1e1b1b","surfaceVariant":"#e8e1e1","onSurfaceVariant":"#4a4646","inverseSurface":"#332f30","inverseOnSurface":"#f7efef","outline":"#7b7676","outlineVariant":"#ccc5c5","shadow":"#000000","scrim":"#000000","surfaceTint":"#6e5960","primary":"#6e5960","onPrimary":"#ffffff","primaryContainer":"#f8dbe3","onPrimaryContainer":"#554148","inversePrimary":"#dbbfc8","secondary":"#695b5f","onSecondary":"#ffffff","secondaryContainer":"#f2dee3","onSecondaryContainer":"#514347","tertiary":"#735760","onTertiary":"#ffffff","tertiaryContainer":"#ffd9e4","onTertiaryContainer":"#5a3f49","error":"#ba1a1a","onError":"#ffffff","errorContainer":"#ffdad6","onErrorContainer":"#93000a"},"pink|neutral|dark":{"background":"#151313","onBackground":"#e8e1e1","surface":"#151313","surfaceDim":"#151313","surfaceBright":"#3c3839","surfaceContainerLowest":"#100e0e","surfaceContainerLow":"#1e1b1b","surfaceContainer":"#221f1f","surfaceContainerHigh":"#2c292a","surfaceContainerHighest":"#373434","onSurface":"#e8e1e1","surfaceVariant":"#4a4646","onSurfaceVariant":"#ccc5c5","inverseSurface":"#e8e1e1","inverseOnSurface":"#332f30","outline":"#958f90","outlineVariant":"#4a4646","shadow":"#000000","scrim":"#000000","surfaceTint":"#dbbfc8","primary":"#dbbfc8","onPrimary":"#3d2b32","primaryContainer":"#554148","onPrimaryContainer":"#f8dbe3","inversePrimary":"#6e5960","secondary":"#d5c2c7","onSecondary":"#392d31","secondaryContainer":"#514347","onSecondaryContainer":"#f2dee3","tertiary":"#e1bdc9","onTertiary":"#412932","tertiaryContainer":"#5a3f49","onTertiaryContainer":"#ffd9e4","error":"#ffb4ab","onError":"#690005","errorContainer":"#93000a","onErrorContainer":"#ffdad6"},"faircoin|vibrant|light":{"background":"#f6fce9","onBackground":"#181d12","surface":"#f6fce9","surfaceDim":"#d6dcca","surfaceBright":"#f6fce9","surfaceContainerLowest":"#ffffff","surfaceContainerLow":"#f0f6e3","surfaceContainer":"#eaf0de","surfaceContainerHigh":"#e4ebd8","surfaceContainerHighest":"#dfe5d3","onSurface":"#181d12","surfaceVariant":"#dde6cf","onSurfaceVariant":"#414939","inverseSurface":"#2c3226","inverseOnSurface":"#edf3e1","outline":"#727a67","outlineVariant":"#c1cab4","shadow":"#000000","scrim":"#000000","surfaceTint":"#376b00","primary":"#376b00","onPrimary":"#ffffff","primaryContainer":"#8afe00","onPrimaryContainer":"#285000","inversePrimary":"#78df00","secondary":"#486549","onSecondary":"#ffffff","secondaryContainer":"#c9ebc7","onSecondaryContainer":"#314d33","tertiary":"#2f694e","onTertiary":"#ffffff","tertiaryContainer":"#b2f0ce","onTertiaryContainer":"#125138","error":"#ba1a1a","onError":"#ffffff","errorContainer":"#ffdad6","onErrorContainer":"#93000a"},"faircoin|vibrant|dark":{"background":"#10150a","onBackground":"#dfe5d3","surface":"#10150a","surfaceDim":"#10150a","surfaceBright":"#353b2e","surfaceContainerLowest":"#0a1006","surfaceContainerLow":"#181d12","surfaceContainer":"#1c2116","surfaceContainerHigh":"#262c20","surfaceContainerHighest":"#31372a","onSurface":"#dfe5d3","surfaceVariant":"#414939","onSurfaceVariant":"#c1cab4","inverseSurface":"#dfe5d3","inverseOnSurface":"#2c3226","outline":"#8b9480","outlineVariant":"#414939","shadow":"#000000","scrim":"#000000","surfaceTint":"#78df00","primary":"#78df00","onPrimary":"#1a3700","primaryContainer":"#285000","onPrimaryContainer":"#8afe00","inversePrimary":"#376b00","secondary":"#aecfac","onSecondary":"#1a361e","secondaryContainer":"#314d33","onSecondaryContainer":"#c9ebc7","tertiary":"#97d4b3","onTertiary":"#003824","tertiaryContainer":"#125138","onTertiaryContainer":"#b2f0ce","error":"#ffb4ab","onError":"#690005","errorContainer":"#93000a","onErrorContainer":"#ffdad6"},"faircoin|expressive|light":{"background":"#f4fcf0","onBackground":"#171d16","surface":"#f4fcf0","surfaceDim":"#d5dcd1","surfaceBright":"#f4fcf0","surfaceContainerLowest":"#ffffff","surfaceContainerLow":"#eff6ea","surfaceContainer":"#e9f0e4","surfaceContainerHigh":"#e3eadf","surfaceContainerHighest":"#dee5d9","onSurface":"#171d16","surfaceVariant":"#d9e6d5","onSurfaceVariant":"#3e4a3d","inverseSurface":"#2b322b","inverseOnSurface":"#ecf3e7","outline":"#6e7a6c","outlineVariant":"#bdcaba","shadow":"#000000","scrim":"#000000","surfaceTint":"#94474d","primary":"#94474d","onPrimary":"#ffffff","primaryContainer":"#ffdada","onPrimaryContainer":"#763037","inversePrimary":"#ffb2b6","secondary":"#45664c","onSecondary":"#ffffff","secondaryContainer":"#c7eccb","onSecondaryContainer":"#2e4e36","tertiary":"#22695b","onTertiary":"#ffffff","tertiaryContainer":"#abf0de","onTertiaryContainer":"#005144","error":"#ba1a1a","onError":"#ffffff","errorContainer":"#ffdad6","onErrorContainer":"#93000a"},"faircoin|expressive|dark":{"background":"#0f150e","onBackground":"#dee5d9","surface":"#0f150e","surfaceDim":"#0f150e","surfaceBright":"#343b33","surfaceContainerLowest":"#091009","surfaceContainerLow":"#171d16","surfaceContainer":"#1b211a","surfaceContainerHigh":"#252c24","surfaceContainerHighest":"#30372f","onSurface":"#dee5d9","surfaceVariant":"#3e4a3d","onSurfaceVariant":"#bdcaba","inverseSurface":"#dee5d9","inverseOnSurface":"#2b322b","outline":"#879485","outlineVariant":"#3e4a3d","shadow":"#000000","scrim":"#000000","surfaceTint":"#ffb2b6","primary":"#ffb2b6","onPrimary":"#591a22","primaryContainer":"#763037","onPrimaryContainer":"#ffdada","inversePrimary":"#94474d","secondary":"#abd0b0","onSecondary":"#173721","secondaryContainer":"#2e4e36","onSecondaryContainer":"#c7eccb","tertiary":"#8fd4c2","onTertiary":"#00382e","tertiaryContainer":"#005144","onTertiaryContainer":"#abf0de","error":"#ffb4ab","onError":"#690005","errorContainer":"#93000a","onErrorContainer":"#ffdad6"},"faircoin|tonalSpot|light":{"background":"#f9faef","onBackground":"#1a1d16","surface":"#f9faef","surfaceDim":"#d9dbd0","surfaceBright":"#f9faef","surfaceContainerLowest":"#ffffff","surfaceContainerLow":"#f3f5ea","surfaceContainer":"#edefe4","surfaceContainerHigh":"#e7e9de","surfaceContainerHighest":"#e2e3d9","onSurface":"#1a1d16","surfaceVariant":"#e0e4d6","onSurfaceVariant":"#44483e","inverseSurface":"#2e312a","inverseOnSurface":"#f0f2e7","outline":"#74796d","outlineVariant":"#c4c8ba","shadow":"#000000","scrim":"#000000","surfaceTint":"#48672e","primary":"#48672e","onPrimary":"#ffffff","primaryContainer":"#c9eea7","onPrimaryContainer":"#314e19","inversePrimary":"#aed18d","secondary":"#56624a","onSecondary":"#ffffff","secondaryContainer":"#dae7c9","onSecondaryContainer":"#3f4a34","tertiary":"#386664","onTertiary":"#ffffff","tertiaryContainer":"#bbece9","onTertiaryContainer":"#1e4e4d","error":"#ba1a1a","onError":"#ffffff","errorContainer":"#ffdad6","onErrorContainer":"#93000a"},"faircoin|tonalSpot|dark":{"background":"#11140e","onBackground":"#e2e3d9","surface":"#11140e","surfaceDim":"#11140e","surfaceBright":"#373a33","surfaceContainerLowest":"#0c0f09","surfaceContainerLow":"#1a1d16","surfaceContainer":"#1e211a","surfaceContainerHigh":"#282b24","surfaceContainerHighest":"#33362e","onSurface":"#e2e3d9","surfaceVariant":"#44483e","onSurfaceVariant":"#c4c8ba","inverseSurface":"#e2e3d9","inverseOnSurface":"#2e312a","outline":"#8e9286","outlineVariant":"#44483e","shadow":"#000000","scrim":"#000000","surfaceTint":"#aed18d","primary":"#aed18d","onPrimary":"#1c3704","primaryContainer":"#314e19","onPrimaryContainer":"#c9eea7","inversePrimary":"#48672e","secondary":"#becbae","onSecondary":"#29341f","secondaryContainer":"#3f4a34","onSecondaryContainer":"#dae7c9","tertiary":"#a0cfcd","onTertiary":"#003736","tertiaryContainer":"#1e4e4d","onTertiaryContainer":"#bbece9","error":"#ffb4ab","onError":"#690005","errorContainer":"#93000a","onErrorContainer":"#ffdad6"},"faircoin|neutral|light":{"background":"#fbf9f5","onBackground":"#1b1c1a","surface":"#fbf9f5","surfaceDim":"#dcdad6","surfaceBright":"#fbf9f5","surfaceContainerLowest":"#ffffff","surfaceContainerLow":"#f6f3ef","surfaceContainer":"#f0edea","surfaceContainerHigh":"#eae8e4","surfaceContainerHighest":"#e4e2de","onSurface":"#1b1c1a","surfaceVariant":"#e4e2de","onSurfaceVariant":"#474744","inverseSurface":"#30302e","inverseOnSurface":"#f3f0ed","outline":"#787774","outlineVariant":"#c8c6c3","shadow":"#000000","scrim":"#000000","surfaceTint":"#596150","primary":"#596150","onPrimary":"#ffffff","primaryContainer":"#dde6cf","onPrimaryContainer":"#414939","inversePrimary":"#c1cab4","secondary":"#5b6055","onSecondary":"#ffffff","secondaryContainer":"#e0e4d6","onSecondaryContainer":"#44483e","tertiary":"#56624a","onTertiary":"#ffffff","tertiaryContainer":"#dae7c9","onTertiaryContainer":"#3f4a34","error":"#ba1a1a","onError":"#ffffff","errorContainer":"#ffdad6","onErrorContainer":"#93000a"},"faircoin|neutral|dark":{"background":"#131412","onBackground":"#e4e2de","surface":"#131412","surfaceDim":"#131412","surfaceBright":"#393937","surfaceContainerLowest":"#0e0e0d","surfaceContainerLow":"#1b1c1a","surfaceContainer":"#1f201e","surfaceContainerHigh":"#2a2a28","surfaceContainerHighest":"#353533","onSurface":"#e4e2de","surfaceVariant":"#474744","onSurfaceVariant":"#c8c6c3","inverseSurface":"#e4e2de","inverseOnSurface":"#30302e","outline":"#92918d","outlineVariant":"#474744","shadow":"#000000","scrim":"#000000","surfaceTint":"#c1cab4","primary":"#c1cab4","onPrimary":"#2b3324","primaryContainer":"#414939","onPrimaryContainer":"#dde6cf","inversePrimary":"#596150","secondary":"#c4c8ba","onSecondary":"#2d3228","secondaryContainer":"#44483e","onSecondaryContainer":"#e0e4d6","tertiary":"#becbae","onTertiary":"#29341f","tertiaryContainer":"#3f4a34","onTertiaryContainer":"#dae7c9","error":"#ffb4ab","onError":"#690005","errorContainer":"#93000a","onErrorContainer":"#ffdad6"}}
|
|
@@ -89,7 +89,27 @@ function schedule(next: AmbientThemeState, debounceMs: number): void {
|
|
|
89
89
|
}
|
|
90
90
|
pendingCommit = run;
|
|
91
91
|
pendingTimer = setTimeout(run, debounceMs);
|
|
92
|
-
|
|
92
|
+
// Release the handle where the host has one to release, so a pending debounce
|
|
93
|
+
// never holds a jest worker or an SSR process open. Only Node's timer handle
|
|
94
|
+
// is an object with `unref`; React Native and the browser return an opaque
|
|
95
|
+
// `number`, which has no such property AT ALL.
|
|
96
|
+
//
|
|
97
|
+
// This has to test the PROPERTY, not optional-call it: `pendingTimer.unref?.()`
|
|
98
|
+
// guards the CALL and still requires `unref` to exist on the declared type, so
|
|
99
|
+
// it is a hard TS2339 in every consumer's program, where `setTimeout` returns
|
|
100
|
+
// `number`. It compiled inside Bloom only because Bloom's own tsconfig pulls
|
|
101
|
+
// in @types/node. Widening through `unknown` is what makes the narrowing
|
|
102
|
+
// structural, and therefore valid under both programs.
|
|
103
|
+
// Gate: scripts/verify-consumer-typecheck.mjs.
|
|
104
|
+
const handle: unknown = pendingTimer;
|
|
105
|
+
if (
|
|
106
|
+
typeof handle === 'object' &&
|
|
107
|
+
handle !== null &&
|
|
108
|
+
'unref' in handle &&
|
|
109
|
+
typeof handle.unref === 'function'
|
|
110
|
+
) {
|
|
111
|
+
handle.unref();
|
|
112
|
+
}
|
|
93
113
|
}
|
|
94
114
|
|
|
95
115
|
function subscribe(listener: () => void): () => void {
|
|
@@ -162,7 +162,7 @@ const SUBTLE_ALPHA = { light: 0.13, dark: 0.24 } as const;
|
|
|
162
162
|
* every rung of Bloom's surface stack was invisible against its neighbour, and
|
|
163
163
|
* the thirteen components that carry meaning ONLY in the step between two
|
|
164
164
|
* surfaces (a heatmap's empty cell, a filled card, a progress track, a hover
|
|
165
|
-
* row, a skeleton) read as nothing at all. Measured across all
|
|
165
|
+
* row, a skeleton) read as nothing at all. Measured across all 34 presets, 4
|
|
166
166
|
* tones is ~2.4 ΔE00 and is the first spacing where every pair separates.
|
|
167
167
|
*
|
|
168
168
|
* `--background` is deliberately NOT in here: the page keeps the tone it
|
|
@@ -183,8 +183,13 @@ const SURFACE_RAMP = {
|
|
|
183
183
|
/** Where the page itself sits. A touch off M3's own page background in both modes. */
|
|
184
184
|
const BACKGROUND_TONE = { light: 96, dark: 4 } as const;
|
|
185
185
|
|
|
186
|
-
/**
|
|
187
|
-
|
|
186
|
+
/**
|
|
187
|
+
* Large surfaces keep only a trace of the identity hue. At the old chroma 10 a
|
|
188
|
+
* green or yellow seed washed the whole shell in a pastel cast; chroma 4 keeps
|
|
189
|
+
* the family relationship visible without making neutral layout layers compete
|
|
190
|
+
* with identity and action fills.
|
|
191
|
+
*/
|
|
192
|
+
const NEUTRAL_CHROMA = 4;
|
|
188
193
|
|
|
189
194
|
/**
|
|
190
195
|
* A seed at or below this chroma has no colour to derive from, so the whole
|
|
@@ -340,41 +345,20 @@ function vividLegibleTone(palette: TonalPalette): number {
|
|
|
340
345
|
/**
|
|
341
346
|
* The tone a BRAND fill sits at.
|
|
342
347
|
*
|
|
343
|
-
*
|
|
344
|
-
*
|
|
345
|
-
*
|
|
346
|
-
*
|
|
347
|
-
* own tone and take a black label instead, which is what a bright yellow button
|
|
348
|
-
* wants anyway. The 25-tone budget is what separates the two cases, and it is
|
|
349
|
-
* why 11 of the 13 chromatic presets carry white and exactly the two light ones
|
|
350
|
-
* do not. (`mono` sits outside this rule — see MONOCHROME_FILL_TONE.)
|
|
348
|
+
* Light goes deep enough to read as structure on a near-white page. Dark moves
|
|
349
|
+
* to the hue's vivid peak so it does not become the same heavy slab on black;
|
|
350
|
+
* the foreground follows whichever tone that produces. A preset declaring a
|
|
351
|
+
* white label deliberately stays at the deepest vivid white-label tone in dark.
|
|
351
352
|
*/
|
|
352
|
-
function
|
|
353
|
+
function brandTone(
|
|
353
354
|
palette: TonalPalette,
|
|
354
|
-
seedTone: number,
|
|
355
355
|
isDark: boolean,
|
|
356
356
|
forceWhite: boolean,
|
|
357
357
|
): number {
|
|
358
|
-
// LIGHT: every fill comes down, no exemption. On a near-white page a bright
|
|
359
|
-
// colour has nothing to read against — a lime at its own tone 90 is a pale
|
|
360
|
-
// smear there, indistinguishable from the same colour in dark, which is not a
|
|
361
|
-
// theme at all. Coming down is what makes faircoin a deep green in light and a
|
|
362
|
-
// bright lime in dark.
|
|
363
358
|
if (!isDark) return Math.max(LIGHT_FILL_FLOOR, vividLegibleTone(palette) - LIGHT_DEPTH_STEP);
|
|
364
|
-
|
|
365
|
-
// seed that is already light cannot without ceasing to be itself, so it keeps
|
|
366
|
-
// its own tone and takes a black label. That is the eleven-and-two pattern.
|
|
367
|
-
// A brand that DECLARES a white label forgoes the exemption outright: it comes
|
|
368
|
-
// down to where white fits, exactly as it does in light. Without this the
|
|
369
|
-
// budget is the only voice, and it answers by seed lightness alone — which
|
|
370
|
-
// cannot separate a yellow that wants to be a deep gold from a lime that wants
|
|
371
|
-
// to stay bright.
|
|
372
|
-
const candidate = forceWhite
|
|
359
|
+
return forceWhite
|
|
373
360
|
? vividLegibleTone(palette)
|
|
374
|
-
: Math.max(
|
|
375
|
-
return contrastOf(palette.tone(candidate), true) >= AA
|
|
376
|
-
? candidate
|
|
377
|
-
: Math.max(seedTone, DARK_SEED_FLOOR);
|
|
361
|
+
: Math.max(peakTone(palette.hue), DARK_SEED_FLOOR);
|
|
378
362
|
}
|
|
379
363
|
|
|
380
364
|
/**
|
|
@@ -472,7 +456,7 @@ export function buildPolicyTokens(
|
|
|
472
456
|
brandPalette,
|
|
473
457
|
monochrome
|
|
474
458
|
? (isDark ? MONOCHROME_FILL_TONE.dark : MONOCHROME_FILL_TONE.light)
|
|
475
|
-
:
|
|
459
|
+
: brandTone(brandPalette, isDark, declaresWhiteLabel(seedHex)),
|
|
476
460
|
);
|
|
477
461
|
|
|
478
462
|
// The palette every neutral surface is cut from — the same one the `vivid`
|
|
@@ -500,7 +484,7 @@ export function buildPolicyTokens(
|
|
|
500
484
|
// exactly where `--background` sits below, so a card would be byte-identical
|
|
501
485
|
// to the page — and `surfaceContainer` in dark is `--popover`'s role
|
|
502
486
|
// (`preset-vars.ts`), which is what it WAS: every card, sheet and chat
|
|
503
|
-
// bubble rendering the same colour as every menu, in
|
|
487
|
+
// bubble rendering the same colour as every menu, in every preset.
|
|
504
488
|
'--card': isDark ? roles.surfaceContainerHighest : roles.surfaceContainerLowest,
|
|
505
489
|
// The page. A touch darker than M3's page background, which stays
|
|
506
490
|
// `--content-area`: near-white reads as unfinished next to the card.
|
|
@@ -529,9 +513,13 @@ export function buildPolicyTokens(
|
|
|
529
513
|
// as one colour; only how loudly each speaks differs.
|
|
530
514
|
// A monochrome theme has no accents to rotate to; the trio becomes a ladder
|
|
531
515
|
// of greys, which still separates a standout button from a quiet one.
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
516
|
+
// A colourless identity can still declare a real action seed (Graphite +
|
|
517
|
+
// Acid). Only an UNPINNED accent inherits monochrome; otherwise the supplied
|
|
518
|
+
// hue remains chromatic.
|
|
519
|
+
const accentMonochrome = monochrome && pin === undefined;
|
|
520
|
+
const fillPalette = TonalPalette.fromHueAndChroma(hue, accentMonochrome ? 0 : ACCENT_CHROMA);
|
|
521
|
+
const textPalette = TonalPalette.fromHueAndChroma(hue, accentMonochrome ? 0 : TEXT_CHROMA);
|
|
522
|
+
const vividPalette = TonalPalette.fromHueAndChroma(hue, accentMonochrome ? 0 : 200);
|
|
535
523
|
// DARK sits at the hue's peak tone, floored by the same rule the brand fill
|
|
536
524
|
// uses: some hues peak dark (violet at 35), and rendering them there gives a
|
|
537
525
|
// slab rather than a highlight. LIGHT goes deep like every other fill, but
|
|
@@ -552,7 +540,8 @@ export function buildPolicyTokens(
|
|
|
552
540
|
// primary action — a step of grey between them and `primary` reads as two
|
|
553
541
|
// buttons disagreeing, not as hierarchy. `secondary` carries the whole
|
|
554
542
|
// demotion instead.
|
|
555
|
-
const
|
|
543
|
+
const pinnedAction = role === 'tertiary' && pin !== undefined;
|
|
544
|
+
const tone = accentMonochrome
|
|
556
545
|
? role === 'tertiary'
|
|
557
546
|
? isDark
|
|
558
547
|
? MONOCHROME_FILL_TONE.dark
|
|
@@ -560,7 +549,13 @@ export function buildPolicyTokens(
|
|
|
560
549
|
: isDark
|
|
561
550
|
? MONOCHROME_SECONDARY_TONE.dark
|
|
562
551
|
: MONOCHROME_SECONDARY_TONE.light
|
|
563
|
-
:
|
|
552
|
+
: pinnedAction
|
|
553
|
+
// A deliberately paired action stays at the hue's vivid peak instead of
|
|
554
|
+
// turning signal yellow into ochre or lime into olive on a light page.
|
|
555
|
+
// The matched foreground may be black; legibility is decided by the pair,
|
|
556
|
+
// not by a blanket white-label preference.
|
|
557
|
+
? Math.max(peakTone(hue), isDark ? DARK_ACCENT_FLOOR : LIGHT_FILL_FLOOR)
|
|
558
|
+
: accentTone(hue, isDark);
|
|
564
559
|
const pair = fillPair(fillPalette, tone);
|
|
565
560
|
tokens[`--${role}`] = pair.fill;
|
|
566
561
|
tokens[`--${role}-foreground`] = pair.foreground;
|