@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
|
@@ -1,184 +1,431 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
/** Why a preset is not offered to every user. Absent means it is free. */
|
|
4
|
+
|
|
5
|
+
/** Stable picker/playground categories, ordered from specific to general. */
|
|
6
|
+
const COLOR_PRESET_FAMILY_SOURCES = [{
|
|
7
|
+
name: 'brand',
|
|
8
|
+
displayName: 'Brand',
|
|
9
|
+
description: 'Reserved ecosystem identities.'
|
|
10
|
+
}, {
|
|
11
|
+
name: 'botanical',
|
|
12
|
+
displayName: 'Botanical',
|
|
13
|
+
description: 'Greens, jade and living hues.'
|
|
14
|
+
}, {
|
|
15
|
+
name: 'ocean',
|
|
16
|
+
displayName: 'Ocean',
|
|
17
|
+
description: 'Blue, cyan and aquatic identities.'
|
|
18
|
+
}, {
|
|
19
|
+
name: 'sunset',
|
|
20
|
+
displayName: 'Sunset',
|
|
21
|
+
description: 'Red, orange and golden identities.'
|
|
22
|
+
}, {
|
|
23
|
+
name: 'earth',
|
|
24
|
+
displayName: 'Earth',
|
|
25
|
+
description: 'Warm mineral and grounded identities.'
|
|
26
|
+
}, {
|
|
27
|
+
name: 'jewel',
|
|
28
|
+
displayName: 'Jewel',
|
|
29
|
+
description: 'Purple, rose and saturated gem hues.'
|
|
30
|
+
}, {
|
|
31
|
+
name: 'neutral',
|
|
32
|
+
displayName: 'Neutral',
|
|
33
|
+
description: 'Slate, graphite and monochrome.'
|
|
34
|
+
}];
|
|
35
|
+
export const COLOR_PRESET_FAMILY_REGISTRY = COLOR_PRESET_FAMILY_SOURCES;
|
|
36
|
+
export const COLOR_PRESET_FAMILIES = COLOR_PRESET_FAMILY_REGISTRY.map(({
|
|
37
|
+
name
|
|
38
|
+
}) => name);
|
|
3
39
|
/**
|
|
4
|
-
*
|
|
5
|
-
* derive its full role set with.
|
|
6
|
-
*
|
|
7
|
-
* Every preset's palette is now GENERATED by Bloom's dependency-free colour
|
|
8
|
-
* engine (`color-engine/`) from this seed — no hand-authored HSL triples. The
|
|
9
|
-
* engine's `generateRoleColors({ seed, variant, isDark })` yields the full
|
|
10
|
-
* Material-3 role set for light and dark; `getPresetVars` (in `preset-vars.ts`)
|
|
11
|
-
* maps those roles onto Bloom's canonical token names. A user-picked colour
|
|
12
|
-
* flows through the identical path — a preset is just a fixed seed.
|
|
13
|
-
*/
|
|
14
|
-
/**
|
|
15
|
-
* Why a preset is not offered to every user. Absent means it is.
|
|
40
|
+
* The ONE authored preset source.
|
|
16
41
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
42
|
+
* Everything public below — the name union, ordered registry, lookup record,
|
|
43
|
+
* hex lookup, gate lists, family groups and playground list — is derived from
|
|
44
|
+
* this tuple. A preset is a seed recipe, never a frozen light/dark token table;
|
|
45
|
+
* Bloom's colour policy resolves both modes at runtime.
|
|
21
46
|
*/
|
|
47
|
+
const COLOR_PRESET_SOURCES = [{
|
|
48
|
+
name: 'teal',
|
|
49
|
+
displayName: 'Teal',
|
|
50
|
+
family: 'ocean',
|
|
51
|
+
description: 'Deep teal identity with dynamically derived split-complementary accents.',
|
|
52
|
+
hex: '#005c67',
|
|
53
|
+
variant: 'vivid',
|
|
54
|
+
pairing: 'derived'
|
|
55
|
+
}, {
|
|
56
|
+
name: 'blue',
|
|
57
|
+
displayName: 'Blue',
|
|
58
|
+
family: 'ocean',
|
|
59
|
+
description: 'Clear social blue with vivid generated supporting colours.',
|
|
60
|
+
hex: '#1d9bf0',
|
|
61
|
+
variant: 'vivid',
|
|
62
|
+
pairing: 'derived'
|
|
63
|
+
}, {
|
|
64
|
+
name: 'green',
|
|
65
|
+
displayName: 'Green',
|
|
66
|
+
family: 'botanical',
|
|
67
|
+
description: 'Fresh green identity with dynamically generated contrast accents.',
|
|
68
|
+
hex: '#10b981',
|
|
69
|
+
variant: 'vivid',
|
|
70
|
+
pairing: 'derived'
|
|
71
|
+
}, {
|
|
72
|
+
name: 'yellow',
|
|
73
|
+
displayName: 'Yellow',
|
|
74
|
+
family: 'sunset',
|
|
75
|
+
description: 'A signal-yellow identity deliberately brought deep enough for a white label.',
|
|
76
|
+
hex: '#ffd400',
|
|
77
|
+
variant: 'vivid',
|
|
78
|
+
pairing: 'derived',
|
|
79
|
+
label: 'white'
|
|
80
|
+
}, {
|
|
81
|
+
name: 'red',
|
|
82
|
+
displayName: 'Red',
|
|
83
|
+
family: 'sunset',
|
|
84
|
+
description: 'Direct red identity with contrasting generated accent arms.',
|
|
85
|
+
hex: '#ef4444',
|
|
86
|
+
variant: 'vivid',
|
|
87
|
+
pairing: 'derived'
|
|
88
|
+
}, {
|
|
89
|
+
name: 'purple',
|
|
90
|
+
displayName: 'Purple',
|
|
91
|
+
family: 'jewel',
|
|
92
|
+
description: 'Bright purple identity with dynamically derived action colours.',
|
|
93
|
+
hex: '#b866ff',
|
|
94
|
+
variant: 'vivid',
|
|
95
|
+
pairing: 'derived'
|
|
96
|
+
}, {
|
|
97
|
+
name: 'pink',
|
|
98
|
+
displayName: 'Pink',
|
|
99
|
+
family: 'jewel',
|
|
100
|
+
description: 'Hot pink identity with a vivid generated complement.',
|
|
101
|
+
hex: '#f91880',
|
|
102
|
+
variant: 'vivid',
|
|
103
|
+
pairing: 'derived'
|
|
104
|
+
}, {
|
|
105
|
+
name: 'sky',
|
|
106
|
+
displayName: 'Sky',
|
|
107
|
+
family: 'ocean',
|
|
108
|
+
description: 'Open sky blue with dynamically generated supporting accents.',
|
|
109
|
+
hex: '#03a9f4',
|
|
110
|
+
variant: 'vivid',
|
|
111
|
+
pairing: 'derived'
|
|
112
|
+
}, {
|
|
113
|
+
name: 'orange',
|
|
114
|
+
displayName: 'Orange',
|
|
115
|
+
family: 'sunset',
|
|
116
|
+
description: 'A gamut-aware orange that stays orange at white-label fill tones.',
|
|
117
|
+
hex: '#ff7a00',
|
|
118
|
+
variant: 'vivid',
|
|
119
|
+
pairing: 'derived'
|
|
120
|
+
}, {
|
|
121
|
+
name: 'mint',
|
|
122
|
+
displayName: 'Mint',
|
|
123
|
+
family: 'botanical',
|
|
124
|
+
description: 'Cool mint identity with vivid generated supporting hues.',
|
|
125
|
+
hex: '#14b8a6',
|
|
126
|
+
variant: 'vivid',
|
|
127
|
+
pairing: 'derived'
|
|
128
|
+
}, {
|
|
129
|
+
name: 'oxy',
|
|
130
|
+
displayName: 'Oxy',
|
|
131
|
+
family: 'brand',
|
|
132
|
+
description: 'Oxy purple, reserved for the Oxy account identity.',
|
|
133
|
+
hex: '#c46ede',
|
|
134
|
+
variant: 'vivid',
|
|
135
|
+
pairing: 'derived',
|
|
136
|
+
gate: 'handle'
|
|
137
|
+
}, {
|
|
138
|
+
name: 'faircoin',
|
|
139
|
+
displayName: 'FairCoin',
|
|
140
|
+
family: 'brand',
|
|
141
|
+
description: 'FairCoin lime, reserved for the FairCoin account identity.',
|
|
142
|
+
hex: '#9ffb50',
|
|
143
|
+
variant: 'vivid',
|
|
144
|
+
pairing: 'derived',
|
|
145
|
+
gate: 'handle'
|
|
146
|
+
}, {
|
|
147
|
+
name: 'pumpkin',
|
|
148
|
+
displayName: 'Pumpkin',
|
|
149
|
+
family: 'sunset',
|
|
150
|
+
description: 'Golden pumpkin orange with a generated split complement.',
|
|
151
|
+
hex: '#ff9800',
|
|
152
|
+
variant: 'vivid',
|
|
153
|
+
pairing: 'derived'
|
|
154
|
+
}, {
|
|
155
|
+
name: 'gray',
|
|
156
|
+
displayName: 'Slate',
|
|
157
|
+
family: 'neutral',
|
|
158
|
+
description: 'Cool slate identity with restrained chroma and generated accents.',
|
|
159
|
+
hex: '#607d8b',
|
|
160
|
+
variant: 'vivid',
|
|
161
|
+
pairing: 'derived'
|
|
162
|
+
}, {
|
|
163
|
+
name: 'brown',
|
|
164
|
+
displayName: 'Brown',
|
|
165
|
+
family: 'earth',
|
|
166
|
+
description: 'Deep earthen brown with a contrasting generated action colour.',
|
|
167
|
+
hex: '#813519',
|
|
168
|
+
variant: 'vivid',
|
|
169
|
+
pairing: 'derived'
|
|
170
|
+
}, {
|
|
171
|
+
name: 'peach',
|
|
172
|
+
displayName: 'Peach',
|
|
173
|
+
family: 'earth',
|
|
174
|
+
description: 'Warm peach identity with dynamically derived contrast accents.',
|
|
175
|
+
hex: '#ffb28d',
|
|
176
|
+
variant: 'vivid',
|
|
177
|
+
pairing: 'derived'
|
|
178
|
+
}, {
|
|
179
|
+
name: 'rose',
|
|
180
|
+
displayName: 'Rose',
|
|
181
|
+
family: 'jewel',
|
|
182
|
+
description: 'Light rose identity with generated vivid supporting hues.',
|
|
183
|
+
hex: '#fcaffe',
|
|
184
|
+
variant: 'vivid',
|
|
185
|
+
pairing: 'derived'
|
|
186
|
+
}, {
|
|
187
|
+
name: 'mono',
|
|
188
|
+
displayName: 'Monochrome',
|
|
189
|
+
family: 'neutral',
|
|
190
|
+
description: 'Colourless identity and surfaces, derived as a true greyscale theme.',
|
|
191
|
+
hex: '#000000',
|
|
192
|
+
variant: 'monochrome',
|
|
193
|
+
pairing: 'derived',
|
|
194
|
+
gate: 'premium'
|
|
195
|
+
}, {
|
|
196
|
+
name: 'grove',
|
|
197
|
+
displayName: 'Grove + Marigold',
|
|
198
|
+
family: 'botanical',
|
|
199
|
+
description: 'Green identity with warm marigold reserved for the action that must win.',
|
|
200
|
+
hex: '#087a3e',
|
|
201
|
+
tertiaryHex: '#ffb000',
|
|
202
|
+
variant: 'vivid',
|
|
203
|
+
pairing: 'curated',
|
|
204
|
+
featured: true
|
|
205
|
+
}, {
|
|
206
|
+
name: 'ember',
|
|
207
|
+
displayName: 'Terracotta + Saffron',
|
|
208
|
+
family: 'earth',
|
|
209
|
+
description: 'Terracotta identity with a high-energy saffron action.',
|
|
210
|
+
hex: '#b52f0c',
|
|
211
|
+
tertiaryHex: '#ffb000',
|
|
212
|
+
variant: 'vivid',
|
|
213
|
+
pairing: 'curated',
|
|
214
|
+
featured: true
|
|
215
|
+
}, {
|
|
216
|
+
name: 'merlot',
|
|
217
|
+
displayName: 'Oxblood + Coral',
|
|
218
|
+
family: 'jewel',
|
|
219
|
+
description: 'Deep wine identity with coral action, expressive without reading destructive.',
|
|
220
|
+
hex: '#a5003c',
|
|
221
|
+
tertiaryHex: '#ff542e',
|
|
222
|
+
variant: 'vivid',
|
|
223
|
+
pairing: 'curated',
|
|
224
|
+
featured: true
|
|
225
|
+
}, {
|
|
226
|
+
name: 'cobalt',
|
|
227
|
+
displayName: 'Cobalt + Signal Yellow',
|
|
228
|
+
family: 'ocean',
|
|
229
|
+
description: 'Cobalt structure cut by a saturated signal-yellow action.',
|
|
230
|
+
hex: '#154fd7',
|
|
231
|
+
tertiaryHex: '#ffd000',
|
|
232
|
+
variant: 'vivid',
|
|
233
|
+
pairing: 'curated',
|
|
234
|
+
featured: true
|
|
235
|
+
}, {
|
|
236
|
+
name: 'jade',
|
|
237
|
+
displayName: 'Jade + Tangerine',
|
|
238
|
+
family: 'botanical',
|
|
239
|
+
description: 'Clean jade identity with a direct tangerine action.',
|
|
240
|
+
hex: '#007a4b',
|
|
241
|
+
tertiaryHex: '#ff5e00',
|
|
242
|
+
variant: 'vivid',
|
|
243
|
+
pairing: 'curated',
|
|
244
|
+
featured: true
|
|
245
|
+
}, {
|
|
246
|
+
name: 'pine',
|
|
247
|
+
displayName: 'Pine + Rose',
|
|
248
|
+
family: 'botanical',
|
|
249
|
+
description: 'Sober pine identity with a vivid rose action.',
|
|
250
|
+
hex: '#135c2d',
|
|
251
|
+
tertiaryHex: '#f0005a',
|
|
252
|
+
variant: 'vivid',
|
|
253
|
+
pairing: 'curated',
|
|
254
|
+
featured: true
|
|
255
|
+
}, {
|
|
256
|
+
name: 'olive',
|
|
257
|
+
displayName: 'Olive + Lilac',
|
|
258
|
+
family: 'earth',
|
|
259
|
+
description: 'Editorial olive identity with an unexpected clear lilac action.',
|
|
260
|
+
hex: '#5f6400',
|
|
261
|
+
tertiaryHex: '#7c25e8',
|
|
262
|
+
variant: 'vivid',
|
|
263
|
+
pairing: 'curated',
|
|
264
|
+
featured: true
|
|
265
|
+
}, {
|
|
266
|
+
name: 'lagoon',
|
|
267
|
+
displayName: 'Teal + Coral',
|
|
268
|
+
family: 'ocean',
|
|
269
|
+
description: 'Aquatic teal identity with a warm coral action.',
|
|
270
|
+
hex: '#00706d',
|
|
271
|
+
tertiaryHex: '#ff4935',
|
|
272
|
+
variant: 'vivid',
|
|
273
|
+
pairing: 'curated',
|
|
274
|
+
featured: true
|
|
275
|
+
}, {
|
|
276
|
+
name: 'navy',
|
|
277
|
+
displayName: 'Navy + Apricot',
|
|
278
|
+
family: 'ocean',
|
|
279
|
+
description: 'Serious navy identity softened by a human apricot action.',
|
|
280
|
+
hex: '#0b2c72',
|
|
281
|
+
tertiaryHex: '#ff6b20',
|
|
282
|
+
variant: 'vivid',
|
|
283
|
+
pairing: 'curated',
|
|
284
|
+
featured: true
|
|
285
|
+
}, {
|
|
286
|
+
name: 'azure',
|
|
287
|
+
displayName: 'Sky + Vermilion',
|
|
288
|
+
family: 'ocean',
|
|
289
|
+
description: 'Airy sky identity with a decisive vermilion action.',
|
|
290
|
+
hex: '#006a94',
|
|
291
|
+
tertiaryHex: '#e82e12',
|
|
292
|
+
variant: 'vivid',
|
|
293
|
+
pairing: 'curated',
|
|
294
|
+
featured: true
|
|
295
|
+
}, {
|
|
296
|
+
name: 'violet',
|
|
297
|
+
displayName: 'Violet + Lime',
|
|
298
|
+
family: 'jewel',
|
|
299
|
+
description: 'Deep violet identity with an electric lime action.',
|
|
300
|
+
hex: '#7227c4',
|
|
301
|
+
tertiaryHex: '#78c900',
|
|
302
|
+
variant: 'vivid',
|
|
303
|
+
pairing: 'curated',
|
|
304
|
+
featured: true
|
|
305
|
+
}, {
|
|
306
|
+
name: 'lavender',
|
|
307
|
+
displayName: 'Lavender + Brass',
|
|
308
|
+
family: 'jewel',
|
|
309
|
+
description: 'Calm lavender identity with a warmer, more editorial brass action.',
|
|
310
|
+
hex: '#5c3db5',
|
|
311
|
+
tertiaryHex: '#d98900',
|
|
312
|
+
variant: 'vivid',
|
|
313
|
+
pairing: 'curated',
|
|
314
|
+
featured: true
|
|
315
|
+
}, {
|
|
316
|
+
name: 'plum',
|
|
317
|
+
displayName: 'Plum + Aqua',
|
|
318
|
+
family: 'jewel',
|
|
319
|
+
description: 'Nocturnal plum identity with a bright aqua action.',
|
|
320
|
+
hex: '#8d075f',
|
|
321
|
+
tertiaryHex: '#00aeb8',
|
|
322
|
+
variant: 'vivid',
|
|
323
|
+
pairing: 'curated',
|
|
324
|
+
featured: true
|
|
325
|
+
}, {
|
|
326
|
+
name: 'cherry',
|
|
327
|
+
displayName: 'Cherry + Powder Blue',
|
|
328
|
+
family: 'jewel',
|
|
329
|
+
description: 'Cherry identity with a cool powder-blue counterpoint.',
|
|
330
|
+
hex: '#b00038',
|
|
331
|
+
tertiaryHex: '#2979e8',
|
|
332
|
+
variant: 'vivid',
|
|
333
|
+
pairing: 'curated',
|
|
334
|
+
featured: true
|
|
335
|
+
}, {
|
|
336
|
+
name: 'chocolate',
|
|
337
|
+
displayName: 'Chocolate + Cyan',
|
|
338
|
+
family: 'earth',
|
|
339
|
+
description: 'Material chocolate identity with a crisp technological cyan action.',
|
|
340
|
+
hex: '#7a2a00',
|
|
341
|
+
tertiaryHex: '#00aabe',
|
|
342
|
+
variant: 'vivid',
|
|
343
|
+
pairing: 'curated',
|
|
344
|
+
featured: true
|
|
345
|
+
}, {
|
|
346
|
+
name: 'graphite',
|
|
347
|
+
displayName: 'Graphite + Acid',
|
|
348
|
+
family: 'neutral',
|
|
349
|
+
description: 'Near-neutral identity that gives the stage to an acid-green action.',
|
|
350
|
+
hex: '#272b28',
|
|
351
|
+
tertiaryHex: '#78c900',
|
|
352
|
+
variant: 'vivid',
|
|
353
|
+
pairing: 'curated',
|
|
354
|
+
featured: true
|
|
355
|
+
}];
|
|
356
|
+
|
|
357
|
+
/** Preset identifiers are inferred from the authored registry, never repeated. */
|
|
22
358
|
|
|
23
359
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* resolved `--token -> value` record that `getPresetVars` produces).
|
|
360
|
+
* Backwards-compatible named-preset contract. Rich picker metadata lives on
|
|
361
|
+
* {@link ColorPresetRecipe} so existing consumers constructing this type do not
|
|
362
|
+
* acquire new required fields in a patch release.
|
|
28
363
|
*/
|
|
29
364
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
365
|
+
/** Enriched registry entry for a picker or colour playground. */
|
|
366
|
+
|
|
367
|
+
/** Stable ordered entries for pickers, filters and the Storybook playground. */
|
|
368
|
+
export const COLOR_PRESET_REGISTRY = COLOR_PRESET_SOURCES.map(source => ({
|
|
369
|
+
featured: false,
|
|
370
|
+
...source
|
|
371
|
+
}));
|
|
372
|
+
export const APP_COLOR_NAMES = COLOR_PRESET_REGISTRY.map(({
|
|
373
|
+
name
|
|
374
|
+
}) => name);
|
|
375
|
+
export const APP_COLOR_PRESETS = COLOR_PRESET_REGISTRY.reduce((presets, preset) => {
|
|
376
|
+
// Preserve the historical runtime shape as well as its TypeScript type.
|
|
377
|
+
// Picker metadata belongs to COLOR_PRESET_REGISTRY; adding it invisibly to
|
|
378
|
+
// this older record would change Object.keys()/serialization in consumers.
|
|
379
|
+
presets[preset.name] = {
|
|
380
|
+
name: preset.name,
|
|
381
|
+
hex: preset.hex,
|
|
382
|
+
variant: preset.variant,
|
|
383
|
+
...(preset.secondaryHex !== undefined ? {
|
|
384
|
+
secondaryHex: preset.secondaryHex
|
|
385
|
+
} : {}),
|
|
386
|
+
...(preset.tertiaryHex !== undefined ? {
|
|
387
|
+
tertiaryHex: preset.tertiaryHex
|
|
388
|
+
} : {}),
|
|
389
|
+
...(preset.label !== undefined ? {
|
|
390
|
+
label: preset.label
|
|
391
|
+
} : {}),
|
|
392
|
+
...(preset.gate !== undefined ? {
|
|
393
|
+
gate: preset.gate
|
|
394
|
+
} : {})
|
|
395
|
+
};
|
|
396
|
+
return presets;
|
|
397
|
+
}, {});
|
|
398
|
+
export const HEX_TO_APP_COLOR = COLOR_PRESET_REGISTRY.reduce((names, preset) => {
|
|
399
|
+
names[preset.hex.toLowerCase()] = preset.name;
|
|
400
|
+
return names;
|
|
401
|
+
}, {});
|
|
51
402
|
export function hexToAppColorName(hex) {
|
|
52
403
|
return HEX_TO_APP_COLOR[hex.toLowerCase()] ?? 'teal';
|
|
53
404
|
}
|
|
54
405
|
|
|
55
|
-
/**
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
hex: '#1d9bf0',
|
|
70
|
-
variant: 'vivid'
|
|
71
|
-
},
|
|
72
|
-
green: {
|
|
73
|
-
name: 'green',
|
|
74
|
-
hex: '#10b981',
|
|
75
|
-
variant: 'vivid'
|
|
76
|
-
},
|
|
77
|
-
yellow: {
|
|
78
|
-
name: 'yellow',
|
|
79
|
-
hex: '#ffd400',
|
|
80
|
-
variant: 'vivid',
|
|
81
|
-
label: 'white'
|
|
82
|
-
},
|
|
83
|
-
red: {
|
|
84
|
-
name: 'red',
|
|
85
|
-
hex: '#ef4444',
|
|
86
|
-
variant: 'vivid'
|
|
87
|
-
},
|
|
88
|
-
purple: {
|
|
89
|
-
name: 'purple',
|
|
90
|
-
hex: '#b866ff',
|
|
91
|
-
variant: 'vivid'
|
|
92
|
-
},
|
|
93
|
-
pink: {
|
|
94
|
-
name: 'pink',
|
|
95
|
-
hex: '#f91880',
|
|
96
|
-
variant: 'vivid'
|
|
97
|
-
},
|
|
98
|
-
sky: {
|
|
99
|
-
name: 'sky',
|
|
100
|
-
hex: '#03a9f4',
|
|
101
|
-
variant: 'vivid'
|
|
102
|
-
},
|
|
103
|
-
// Deliberately NOT Tailwind's orange-500 (`#f97316`). That seed sits at HCT hue
|
|
104
|
-
// 46, which reads as orange only because it is also light: at hue 46 the sRGB
|
|
105
|
-
// gamut allows a chroma of just 62 at the tones a white label needs (<= 49), so
|
|
106
|
-
// the brand fill resolved to `rgb(177 76 0)` — a brown. Hue 34 carries a chroma
|
|
107
|
-
// of 84 at that same tone, with the same white label and the same contrast
|
|
108
|
-
// headroom, so the fill reads as orange instead of paying for the hue twice.
|
|
109
|
-
orange: {
|
|
110
|
-
name: 'orange',
|
|
111
|
-
hex: '#ff7a00',
|
|
112
|
-
variant: 'vivid'
|
|
113
|
-
},
|
|
114
|
-
mint: {
|
|
115
|
-
name: 'mint',
|
|
116
|
-
hex: '#14b8a6',
|
|
117
|
-
variant: 'vivid'
|
|
118
|
-
},
|
|
119
|
-
oxy: {
|
|
120
|
-
name: 'oxy',
|
|
121
|
-
hex: '#c46ede',
|
|
122
|
-
variant: 'vivid',
|
|
123
|
-
gate: 'handle'
|
|
124
|
-
},
|
|
125
|
-
faircoin: {
|
|
126
|
-
name: 'faircoin',
|
|
127
|
-
hex: '#9ffb50',
|
|
128
|
-
variant: 'vivid',
|
|
129
|
-
gate: 'handle'
|
|
130
|
-
},
|
|
131
|
-
pumpkin: {
|
|
132
|
-
name: 'pumpkin',
|
|
133
|
-
hex: '#ff9800',
|
|
134
|
-
variant: 'vivid'
|
|
135
|
-
},
|
|
136
|
-
gray: {
|
|
137
|
-
name: 'gray',
|
|
138
|
-
hex: '#607d8b',
|
|
139
|
-
variant: 'vivid'
|
|
140
|
-
},
|
|
141
|
-
brown: {
|
|
142
|
-
name: 'brown',
|
|
143
|
-
hex: '#813519',
|
|
144
|
-
variant: 'vivid'
|
|
145
|
-
},
|
|
146
|
-
peach: {
|
|
147
|
-
name: 'peach',
|
|
148
|
-
hex: '#ffb28d',
|
|
149
|
-
variant: 'vivid'
|
|
150
|
-
},
|
|
151
|
-
rose: {
|
|
152
|
-
name: 'rose',
|
|
153
|
-
hex: '#fcaffe',
|
|
154
|
-
variant: 'vivid'
|
|
155
|
-
},
|
|
156
|
-
/**
|
|
157
|
-
* No colour at all — the black-and-white theme. Its seed carries zero chroma,
|
|
158
|
-
* which is the whole mechanism: the policy derives a greyscale palette from any
|
|
159
|
-
* seed with none, so a user who picks a grey in the colour wheel lands here too
|
|
160
|
-
* rather than on a nearly-grey approximation.
|
|
161
|
-
*/
|
|
162
|
-
mono: {
|
|
163
|
-
name: 'mono',
|
|
164
|
-
hex: '#000000',
|
|
165
|
-
variant: 'monochrome',
|
|
166
|
-
gate: 'premium'
|
|
167
|
-
}
|
|
168
|
-
};
|
|
406
|
+
/** The sixteen approved paired directions in the permanent Mention playground. */
|
|
407
|
+
export const COLOR_PLAYGROUND_NAMES = COLOR_PRESET_REGISTRY.filter(({
|
|
408
|
+
featured
|
|
409
|
+
}) => featured).map(({
|
|
410
|
+
name
|
|
411
|
+
}) => name);
|
|
412
|
+
/** Ordered family metadata and entries for consumer pickers. */
|
|
413
|
+
export const COLOR_PRESET_GROUPS = COLOR_PRESET_FAMILY_REGISTRY.reduce((groups, family) => {
|
|
414
|
+
groups[family.name] = {
|
|
415
|
+
...family,
|
|
416
|
+
presets: COLOR_PRESET_REGISTRY.filter(preset => preset.family === family.name)
|
|
417
|
+
};
|
|
418
|
+
return groups;
|
|
419
|
+
}, {});
|
|
169
420
|
|
|
170
421
|
/**
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
* partition {@link APP_COLOR_NAMES} exactly — asserted in
|
|
174
|
-
* `__tests__/color-preset-gates.test.ts`, since a preset silently missing from
|
|
175
|
-
* every group would simply vanish from a picker with no error anywhere.
|
|
176
|
-
*
|
|
177
|
-
* A consumer builds its visible list from these; it must NOT start from
|
|
178
|
-
* `APP_COLOR_NAMES` and add the unlocked ones, which yields the gated presets to
|
|
179
|
-
* everybody and duplicates whatever the viewer did unlock.
|
|
422
|
+
* Historically each preset carried a full light/dark map of raw HSL triples.
|
|
423
|
+
* The engine now derives every role from the registry's seeds.
|
|
180
424
|
*/
|
|
181
|
-
|
|
425
|
+
|
|
426
|
+
const namesGatedBy = gate => COLOR_PRESET_REGISTRY.filter(preset => preset.gate === gate).map(({
|
|
427
|
+
name
|
|
428
|
+
}) => name);
|
|
182
429
|
|
|
183
430
|
/** Available to every user, signed in or not. */
|
|
184
431
|
export const FREE_COLOR_NAMES = namesGatedBy(undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["COLOR_PRESET_FAMILY_SOURCES","name","displayName","description","COLOR_PRESET_FAMILY_REGISTRY","COLOR_PRESET_FAMILIES","map","COLOR_PRESET_SOURCES","family","hex","variant","pairing","label","gate","tertiaryHex","featured","COLOR_PRESET_REGISTRY","source","APP_COLOR_NAMES","APP_COLOR_PRESETS","reduce","presets","preset","secondaryHex","undefined","HEX_TO_APP_COLOR","names","toLowerCase","hexToAppColorName","COLOR_PLAYGROUND_NAMES","filter","COLOR_PRESET_GROUPS","groups","namesGatedBy","FREE_COLOR_NAMES","HANDLE_COLOR_NAMES","PREMIUM_COLOR_NAMES"],"sourceRoot":"../../../src","sources":["theme/color-presets.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { generateRoleColors } from "../color-engine/index.js";
|
|
4
4
|
import { buildPolicyTokens, isColourlessSeed } from "../color-policy.js";
|
|
5
|
-
import { BORDER_ROLES, FILL_ROLES, TEXT_ROLES } from "../../design-tokens/color-roles.js";
|
|
5
|
+
import { ACCENT_TEXT_ROLES, BORDER_ROLES, FILL_ROLES, TEXT_ROLES } from "../../design-tokens/color-roles.js";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Every alias `theme.css` declares at `:root` as a reference to a canonical
|
|
@@ -21,6 +21,7 @@ import { BORDER_ROLES, FILL_ROLES, TEXT_ROLES } from "../../design-tokens/color-
|
|
|
21
21
|
const SCOPED_ALIASES = {
|
|
22
22
|
...FILL_ROLES,
|
|
23
23
|
...TEXT_ROLES,
|
|
24
|
+
...ACCENT_TEXT_ROLES,
|
|
24
25
|
...BORDER_ROLES,
|
|
25
26
|
divider: 'var(--border)'
|
|
26
27
|
};
|