@evolve.ui/theme-system 1.0.1 → 1.2.0
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/{allThemes-CFS_9-tk.cjs → allThemes-3d8nhymo.cjs} +12 -2
- package/allThemes-3d8nhymo.cjs.map +1 -0
- package/{allThemes-OV-ayn4C.mjs → allThemes-Abn6KDm7.mjs} +7 -3
- package/allThemes-Abn6KDm7.mjs.map +1 -0
- package/allThemes.cjs +1 -1
- package/allThemes.d.cts +1 -0
- package/allThemes.d.cts.map +1 -1
- package/allThemes.d.mts +1 -0
- package/allThemes.d.mts.map +1 -1
- package/allThemes.mjs +1 -1
- package/brands-CE0wIkKX.d.cts +58 -0
- package/brands-CE0wIkKX.d.cts.map +1 -0
- package/brands-CE0wIkKX.d.mts +58 -0
- package/brands-CE0wIkKX.d.mts.map +1 -0
- package/brands.cjs +16 -13
- package/brands.cjs.map +1 -1
- package/brands.d.cts +2 -2
- package/brands.d.mts +2 -2
- package/brands.mjs +16 -13
- package/brands.mjs.map +1 -1
- package/css/EverydayHarbor.css +377 -0
- package/css/EverydayHarbor.effects.css +650 -0
- package/{default-b-tgfyxR.cjs → default-B6VWF0Js.cjs} +237 -36
- package/default-B6VWF0Js.cjs.map +1 -0
- package/{default-B2n4PnsJ.mjs → default-BogJDhKE.mjs} +238 -37
- package/default-BogJDhKE.mjs.map +1 -0
- package/effects.cjs +26 -0
- package/effects.cjs.map +1 -0
- package/effects.d.cts +22 -0
- package/effects.d.cts.map +1 -0
- package/effects.d.mts +22 -0
- package/effects.d.mts.map +1 -0
- package/effects.mjs +22 -0
- package/effects.mjs.map +1 -0
- package/evolve-ui.entries.json +51 -0
- package/index.cjs +12 -5
- package/index.cjs.map +1 -1
- package/index.d.cts +108 -4
- package/index.d.cts.map +1 -1
- package/index.d.mts +108 -4
- package/index.d.mts.map +1 -1
- package/index.mjs +9 -6
- package/index.mjs.map +1 -1
- package/package.json +5 -1
- package/{plugin-DPtvp4lp.cjs → plugin-B3PF4RMI.cjs} +299 -110
- package/plugin-B3PF4RMI.cjs.map +1 -0
- package/{plugin-D4eCyUJe.mjs → plugin-D6aLCeNB.mjs} +258 -111
- package/plugin-D6aLCeNB.mjs.map +1 -0
- package/src/effects/__fixtures__/fixtureLayer.ts +88 -0
- package/src/effects/brands/EverydayHarbor.ts +392 -0
- package/src/effects/classes.ts +19 -0
- package/src/effects/emit.ts +314 -0
- package/src/effects/hooks.ts +493 -0
- package/src/effects/index.ts +2 -0
- package/src/effects/layers.ts +18 -0
- package/src/effects/rules.ts +90 -0
- package/src/effects/rules.typecheck.ts +50 -0
- package/src/effects/tokens.ts +148 -0
- package/src/effects/validate.ts +683 -0
- package/src/effects/vocabulary.ts +32 -0
- package/src/index.ts +40 -0
- package/src/tailwind/animation.ts +30 -0
- package/src/tailwind/borderRadius.ts +32 -0
- package/src/tailwind/borderWidth.ts +14 -0
- package/src/tailwind/boxShadow.ts +19 -0
- package/src/tailwind/colors.ts +332 -0
- package/src/tailwind/cssVars.ts +301 -0
- package/src/tailwind/fontFamily.ts +14 -0
- package/src/tailwind/plugin.ts +299 -0
- package/src/tailwind/reducedMotion.ts +164 -0
- package/src/tailwind/screens.ts +22 -0
- package/src/tailwind/spacing.ts +20 -0
- package/src/tailwind/text.ts +172 -0
- package/src/tailwind/width.ts +14 -0
- package/src/themeValues.snapshot.ts +6735 -0
- package/src/themes/BasketballTraining.ts +166 -0
- package/src/themes/Default.ts +165 -0
- package/src/themes/EverydayHarbor.ts +147 -0
- package/src/themes/ProfessionalBrand.ts +166 -0
- package/src/themes/allThemes.ts +14 -0
- package/src/themes/brandSources.ts +37 -0
- package/src/themes/brands.ts +63 -0
- package/src/themes/common.ts +65 -0
- package/src/themes/contrastFloors.ts +26 -0
- package/src/themes/generateCSSVars.ts +123 -0
- package/src/themes/inkRamps.ts +43 -0
- package/src/themes/runtime/basketballTraining.ts +3 -0
- package/src/themes/runtime/buildTheme.ts +411 -0
- package/src/themes/runtime/default.ts +3 -0
- package/src/themes/runtime/everydayHarbor.ts +3 -0
- package/src/themes/runtime/professionalBrand.ts +3 -0
- package/src/themes/semanticColorTokenSteps.ts +23 -0
- package/src/themes/themeType.ts +169 -0
- package/src/themes/themeValues.ts +374 -0
- package/src/themes/wcag.ts +48 -0
- package/src/themes/writeToCSSFile.ts +11 -0
- package/src/utils/cn.ts +35 -0
- package/src/utils/color.ts +82 -0
- package/src/utils/wrapVar.ts +24 -0
- package/tailwind/plugin.cjs +5 -1
- package/tailwind/plugin.d.cts +458 -1
- package/tailwind/plugin.d.cts.map +1 -1
- package/tailwind/plugin.d.mts +458 -1
- package/tailwind/plugin.d.mts.map +1 -1
- package/tailwind/plugin.mjs +2 -2
- package/themes/runtime/default.cjs +1 -1
- package/themes/runtime/default.mjs +1 -1
- package/themes/themeType.d.cts +1 -1
- package/themes/themeType.d.mts +1 -1
- package/allThemes-CFS_9-tk.cjs.map +0 -1
- package/allThemes-OV-ayn4C.mjs.map +0 -1
- package/brands-n30rolHQ.d.cts +0 -33
- package/brands-n30rolHQ.d.cts.map +0 -1
- package/brands-n30rolHQ.d.mts +0 -33
- package/brands-n30rolHQ.d.mts.map +0 -1
- package/default-B2n4PnsJ.mjs.map +0 -1
- package/default-b-tgfyxR.cjs.map +0 -1
- package/plugin-D4eCyUJe.mjs.map +0 -1
- package/plugin-DPtvp4lp.cjs.map +0 -1
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import {
|
|
2
|
+
colorCritical400,
|
|
3
|
+
colorCritical50,
|
|
4
|
+
colorCritical500,
|
|
5
|
+
colorInfo400,
|
|
6
|
+
colorInfo50,
|
|
7
|
+
colorInfo600,
|
|
8
|
+
colorInfo700,
|
|
9
|
+
colorPrimary500,
|
|
10
|
+
colorPrimary700,
|
|
11
|
+
colorPrimary900,
|
|
12
|
+
colorSecondary50,
|
|
13
|
+
colorSuccess300,
|
|
14
|
+
colorSuccess50,
|
|
15
|
+
colorSuccess700,
|
|
16
|
+
colorSuccess900,
|
|
17
|
+
colorSurface100,
|
|
18
|
+
colorSurface200,
|
|
19
|
+
colorSurface300,
|
|
20
|
+
colorSurface50,
|
|
21
|
+
colorSurface500,
|
|
22
|
+
colorSurface900,
|
|
23
|
+
colorTertiary50,
|
|
24
|
+
colorWarning300,
|
|
25
|
+
colorWarning50,
|
|
26
|
+
colorWarning500,
|
|
27
|
+
colorWarning600,
|
|
28
|
+
colorWarning800,
|
|
29
|
+
} from '../tailwind/cssVars';
|
|
30
|
+
import { colorStepArrayToObject, generateNormalColorSteps, generateSurfaceColorSteps } from '../utils/color';
|
|
31
|
+
import { wrapOpacity, wrapVar } from '../utils/wrapVar';
|
|
32
|
+
import { ColorAliasesObject, NonColorCSSVariables } from './generateCSSVars';
|
|
33
|
+
|
|
34
|
+
// "Court Heat" palette (DS-83, approved 2026-07-12): burnt court-orange hero, midnight-navy
|
|
35
|
+
// secondary, hardwood-teal accent, warm leather-undertoned neutrals. Key names are stable API
|
|
36
|
+
// (buildTheme exposes them) so they keep their original hue names; comments give the actual hue.
|
|
37
|
+
export const coreColors = {
|
|
38
|
+
amber: colorStepArrayToObject(generateNormalColorSteps('#B45309')), // burnt amber
|
|
39
|
+
blue: colorStepArrayToObject(generateNormalColorSteps('#0369A1')), // sky blue
|
|
40
|
+
green: colorStepArrayToObject(generateNormalColorSteps('#15803D')), // court green
|
|
41
|
+
neutral: colorStepArrayToObject(generateSurfaceColorSteps('#5D564F', true)), // warm gray
|
|
42
|
+
orange: colorStepArrayToObject(generateNormalColorSteps('#C2410C')), // burnt court orange
|
|
43
|
+
red: colorStepArrayToObject(generateNormalColorSteps('#CC2B20')), // warm signal red
|
|
44
|
+
teal: colorStepArrayToObject(generateNormalColorSteps('#1E3A5F')), // midnight navy (was teal)
|
|
45
|
+
violet: colorStepArrayToObject(generateNormalColorSteps('#0F766E')), // hardwood teal (was violet)
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export const colorAliases = {
|
|
49
|
+
critical: coreColors.red,
|
|
50
|
+
info: coreColors.blue,
|
|
51
|
+
primary: coreColors.orange,
|
|
52
|
+
secondary: coreColors.teal,
|
|
53
|
+
success: coreColors.green,
|
|
54
|
+
surface: coreColors.neutral,
|
|
55
|
+
tertiary: coreColors.violet,
|
|
56
|
+
warning: coreColors.amber,
|
|
57
|
+
} satisfies ColorAliasesObject;
|
|
58
|
+
|
|
59
|
+
export const nonColorVariables = {
|
|
60
|
+
'--box-shadow-01': `0px 4px 4px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,
|
|
61
|
+
'--box-shadow-02': `0px 1px 4px ${wrapOpacity(wrapVar(colorSurface300), 50)}, 0px 1px 8px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,
|
|
62
|
+
'--box-shadow-03': `0px 2px 8px ${wrapOpacity(wrapVar(colorSurface300), 50)}, 0px 4px 16px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,
|
|
63
|
+
'--box-shadow-04': `0px 3px 12px ${wrapOpacity(wrapVar(colorSurface500), 50)}, 0px 6px 24px ${wrapOpacity(wrapVar(colorSurface300), 50)}`,
|
|
64
|
+
'--box-shadow-05': `0px -4px 4px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,
|
|
65
|
+
'--button-border-radius': '8px',
|
|
66
|
+
'--checkbox-border-radius': '4px',
|
|
67
|
+
'--color-background-critical-dark': wrapVar(colorCritical500),
|
|
68
|
+
'--color-background-critical-light': wrapVar(colorCritical50),
|
|
69
|
+
'--color-background-disabled': wrapVar(colorSurface200),
|
|
70
|
+
'--color-background-hover': wrapVar(colorSurface900),
|
|
71
|
+
'--color-background-hover-inverse': wrapVar(colorSurface50),
|
|
72
|
+
'--color-background-info-dark': wrapVar(colorInfo600),
|
|
73
|
+
'--color-background-info-light': wrapVar(colorInfo50),
|
|
74
|
+
'--color-background-inverse': wrapVar(colorPrimary900),
|
|
75
|
+
'--color-background-overlay': wrapVar(colorSurface900),
|
|
76
|
+
'--color-background-pressed': wrapVar(colorSurface900),
|
|
77
|
+
'--color-background-pressed-inverse': wrapVar(colorSurface50),
|
|
78
|
+
'--color-background-primary': wrapVar(colorSurface50),
|
|
79
|
+
'--color-background-secondary': wrapVar(colorSecondary50),
|
|
80
|
+
'--color-background-subdued': wrapVar(colorSurface100),
|
|
81
|
+
'--color-background-success-dark': wrapVar(colorSuccess900),
|
|
82
|
+
'--color-background-success-light': wrapVar(colorSuccess50),
|
|
83
|
+
'--color-background-tertiary': wrapVar(colorTertiary50),
|
|
84
|
+
'--color-background-warning-dark': wrapVar(colorWarning500),
|
|
85
|
+
'--color-background-warning-light': wrapVar(colorWarning50),
|
|
86
|
+
'--color-border-black': wrapVar(colorSurface900),
|
|
87
|
+
'--color-border-critical': wrapVar(colorCritical400),
|
|
88
|
+
'--color-border-disabled': wrapVar(colorSurface300),
|
|
89
|
+
'--color-border-hover': wrapVar(colorPrimary700),
|
|
90
|
+
'--color-border-info': wrapVar(colorInfo400),
|
|
91
|
+
'--color-border-inverse': wrapVar(colorSurface50),
|
|
92
|
+
'--color-border-primary': wrapVar(colorSurface300),
|
|
93
|
+
'--color-border-secondary': wrapVar(colorSurface200),
|
|
94
|
+
'--color-border-selected': wrapVar(colorPrimary500),
|
|
95
|
+
'--color-border-success': wrapVar(colorSuccess300),
|
|
96
|
+
'--color-border-tertiary': wrapVar(colorSurface100),
|
|
97
|
+
'--color-border-warning': wrapVar(colorWarning300),
|
|
98
|
+
'--color-focus-inverse': wrapVar(colorSurface50),
|
|
99
|
+
'--color-focus-primary': wrapVar(colorPrimary500),
|
|
100
|
+
'--color-icon-critical': wrapVar(colorCritical400),
|
|
101
|
+
'--color-icon-disabled': wrapVar(colorSurface300),
|
|
102
|
+
'--color-icon-info': wrapVar(colorInfo400),
|
|
103
|
+
'--color-icon-inverse': wrapVar(colorSurface50),
|
|
104
|
+
'--color-icon-primary': wrapVar(colorSurface500),
|
|
105
|
+
'--color-icon-secondary': wrapVar(colorPrimary500),
|
|
106
|
+
'--color-icon-success': wrapVar(colorSuccess700),
|
|
107
|
+
'--color-icon-warning': wrapVar(colorWarning600),
|
|
108
|
+
'--color-link-disabled': wrapVar(colorSurface300),
|
|
109
|
+
'--color-link-hover': wrapVar(colorPrimary700),
|
|
110
|
+
'--color-link-inverse': wrapVar(colorSurface50),
|
|
111
|
+
'--color-link-inverse-disabled': wrapVar(colorSurface300),
|
|
112
|
+
'--color-link-inverse-hover': wrapVar(colorSurface100),
|
|
113
|
+
'--color-link-inverse-pressed': wrapVar(colorSurface200),
|
|
114
|
+
'--color-link-monochrome': wrapVar(colorSurface900),
|
|
115
|
+
'--color-link-pressed': wrapVar(colorPrimary900),
|
|
116
|
+
'--color-link-primary': wrapVar(colorPrimary500),
|
|
117
|
+
'--color-link-secondary': wrapVar(colorSurface500),
|
|
118
|
+
'--color-text-critical': wrapVar(colorCritical500),
|
|
119
|
+
'--color-text-disabled': wrapVar(colorSurface300),
|
|
120
|
+
'--color-text-inactive': wrapVar(colorSurface300),
|
|
121
|
+
'--color-text-info': wrapVar(colorInfo700),
|
|
122
|
+
'--color-text-inverse': wrapVar(colorSurface50),
|
|
123
|
+
'--color-text-primary': wrapVar(colorSurface900),
|
|
124
|
+
'--color-text-secondary': wrapVar(colorSurface500),
|
|
125
|
+
'--color-text-success': wrapVar(colorSuccess900),
|
|
126
|
+
'--color-text-warning': wrapVar(colorWarning800),
|
|
127
|
+
'--container-border-radius': '12px',
|
|
128
|
+
'--font-family-primary': "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
|
|
129
|
+
'--font-family-secondary': "'Georgia', serif",
|
|
130
|
+
'--font-size-button-100': '14px',
|
|
131
|
+
'--font-size-button-200': '12px',
|
|
132
|
+
'--font-weight-body-primary': '400',
|
|
133
|
+
'--font-weight-body-secondary': '400',
|
|
134
|
+
'--font-weight-button': '600',
|
|
135
|
+
'--font-weight-caption': '400',
|
|
136
|
+
'--font-weight-h1': '400',
|
|
137
|
+
'--font-weight-h2': '400',
|
|
138
|
+
'--font-weight-h3': '400',
|
|
139
|
+
'--font-weight-h4': '400',
|
|
140
|
+
'--font-weight-h5': '600',
|
|
141
|
+
'--font-weight-h6': '600',
|
|
142
|
+
'--font-weight-label-mini': '400',
|
|
143
|
+
'--font-weight-label-strong': '600',
|
|
144
|
+
'--input-border-radius': '6px',
|
|
145
|
+
'--letter-spacing-body-primary': '0.2px',
|
|
146
|
+
'--letter-spacing-body-secondary': '0.2px',
|
|
147
|
+
'--letter-spacing-button': '1px',
|
|
148
|
+
'--letter-spacing-caption': '0.2px',
|
|
149
|
+
'--letter-spacing-h1': '0.2px',
|
|
150
|
+
'--letter-spacing-h1-mobile': '0.2px',
|
|
151
|
+
'--letter-spacing-h2': '0.2px',
|
|
152
|
+
'--letter-spacing-h2-mobile': '0.2px',
|
|
153
|
+
'--letter-spacing-h3': '0.2px',
|
|
154
|
+
'--letter-spacing-h3-mobile': '0.2px',
|
|
155
|
+
'--letter-spacing-h4': '0.2px',
|
|
156
|
+
'--letter-spacing-h5': '0.2px',
|
|
157
|
+
'--letter-spacing-h6': '1px',
|
|
158
|
+
'--letter-spacing-label-mini': '1px',
|
|
159
|
+
'--letter-spacing-label-strong': '0.2px',
|
|
160
|
+
'--search-input-border-radius': '24px',
|
|
161
|
+
'--text-transform-button': 'uppercase',
|
|
162
|
+
'--text-transform-h6': 'uppercase',
|
|
163
|
+
'--text-transform-label-mini': 'uppercase',
|
|
164
|
+
'--width-dense': '1200px',
|
|
165
|
+
'--width-page': '1644px',
|
|
166
|
+
} satisfies Record<NonColorCSSVariables, string>;
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import {
|
|
2
|
+
colorCritical400,
|
|
3
|
+
colorCritical50,
|
|
4
|
+
colorCritical500,
|
|
5
|
+
colorInfo400,
|
|
6
|
+
colorInfo50,
|
|
7
|
+
colorInfo600,
|
|
8
|
+
colorInfo700,
|
|
9
|
+
colorPrimary500,
|
|
10
|
+
colorPrimary700,
|
|
11
|
+
colorPrimary900,
|
|
12
|
+
colorSecondary50,
|
|
13
|
+
colorSuccess300,
|
|
14
|
+
colorSuccess50,
|
|
15
|
+
colorSuccess700,
|
|
16
|
+
colorSuccess900,
|
|
17
|
+
colorSurface100,
|
|
18
|
+
colorSurface200,
|
|
19
|
+
colorSurface300,
|
|
20
|
+
colorSurface50,
|
|
21
|
+
colorSurface500,
|
|
22
|
+
colorSurface900,
|
|
23
|
+
colorTertiary50,
|
|
24
|
+
colorWarning300,
|
|
25
|
+
colorWarning50,
|
|
26
|
+
colorWarning500,
|
|
27
|
+
colorWarning600,
|
|
28
|
+
colorWarning800,
|
|
29
|
+
} from '../tailwind/cssVars';
|
|
30
|
+
import { colorStepArrayToObject, generateNormalColorSteps, generateSurfaceColorSteps } from '../utils/color';
|
|
31
|
+
import { wrapOpacity, wrapVar } from '../utils/wrapVar';
|
|
32
|
+
import { ColorAliasesObject, NonColorCSSVariables } from './generateCSSVars';
|
|
33
|
+
|
|
34
|
+
// "Graphite & Ink" palette (DS-83, approved 2026-07-12): deep ink-blue primary over cool graphite
|
|
35
|
+
// neutrals. Key names are stable API (buildTheme exposes them); comments give the actual hue.
|
|
36
|
+
export const coreColors = {
|
|
37
|
+
amber: colorStepArrayToObject(generateNormalColorSteps('#D97706')), // burnt amber
|
|
38
|
+
blue: colorStepArrayToObject(generateNormalColorSteps('#2563EB')), // royal blue
|
|
39
|
+
gray: colorStepArrayToObject(generateNormalColorSteps('#33415C')), // ink blue
|
|
40
|
+
green: colorStepArrayToObject(generateNormalColorSteps('#16A34A')), // emerald
|
|
41
|
+
neutral: colorStepArrayToObject(generateSurfaceColorSteps('#555E6B', true)), // cool graphite
|
|
42
|
+
red: colorStepArrayToObject(generateNormalColorSteps('#D92525')), // signal red
|
|
43
|
+
stone: colorStepArrayToObject(generateNormalColorSteps('#6E6259')), // warm stone
|
|
44
|
+
zinc: colorStepArrayToObject(generateNormalColorSteps('#5C6470')), // cool zinc
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export const colorAliases = {
|
|
48
|
+
critical: coreColors.red,
|
|
49
|
+
info: coreColors.blue,
|
|
50
|
+
primary: coreColors.gray,
|
|
51
|
+
secondary: coreColors.zinc,
|
|
52
|
+
success: coreColors.green,
|
|
53
|
+
surface: coreColors.neutral,
|
|
54
|
+
tertiary: coreColors.stone,
|
|
55
|
+
warning: coreColors.amber,
|
|
56
|
+
} satisfies ColorAliasesObject;
|
|
57
|
+
|
|
58
|
+
export const nonColorVariables = {
|
|
59
|
+
'--box-shadow-01': `0px 4px 4px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,
|
|
60
|
+
'--box-shadow-02': `0px 1px 4px ${wrapOpacity(wrapVar(colorSurface300), 50)}, 0px 1px 8px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,
|
|
61
|
+
'--box-shadow-03': `0px 2px 8px ${wrapOpacity(wrapVar(colorSurface300), 50)}, 0px 4px 16px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,
|
|
62
|
+
'--box-shadow-04': `0px 3px 12px ${wrapOpacity(wrapVar(colorSurface500), 50)}, 0px 6px 24px ${wrapOpacity(wrapVar(colorSurface300), 50)}`,
|
|
63
|
+
'--box-shadow-05': `0px -4px 4px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,
|
|
64
|
+
'--button-border-radius': '8px',
|
|
65
|
+
'--checkbox-border-radius': '4px',
|
|
66
|
+
'--color-background-critical-dark': wrapVar(colorCritical500),
|
|
67
|
+
'--color-background-critical-light': wrapVar(colorCritical50),
|
|
68
|
+
'--color-background-disabled': wrapVar(colorSurface200),
|
|
69
|
+
'--color-background-hover': wrapVar(colorSurface900),
|
|
70
|
+
'--color-background-hover-inverse': wrapVar(colorSurface50),
|
|
71
|
+
'--color-background-info-dark': wrapVar(colorInfo600),
|
|
72
|
+
'--color-background-info-light': wrapVar(colorInfo50),
|
|
73
|
+
'--color-background-inverse': wrapVar(colorPrimary900),
|
|
74
|
+
'--color-background-overlay': wrapVar(colorSurface900),
|
|
75
|
+
'--color-background-pressed': wrapVar(colorSurface900),
|
|
76
|
+
'--color-background-pressed-inverse': wrapVar(colorSurface50),
|
|
77
|
+
'--color-background-primary': wrapVar(colorSurface50),
|
|
78
|
+
'--color-background-secondary': wrapVar(colorSecondary50),
|
|
79
|
+
'--color-background-subdued': wrapVar(colorSurface100),
|
|
80
|
+
'--color-background-success-dark': wrapVar(colorSuccess900),
|
|
81
|
+
'--color-background-success-light': wrapVar(colorSuccess50),
|
|
82
|
+
'--color-background-tertiary': wrapVar(colorTertiary50),
|
|
83
|
+
'--color-background-warning-dark': wrapVar(colorWarning500),
|
|
84
|
+
'--color-background-warning-light': wrapVar(colorWarning50),
|
|
85
|
+
'--color-border-black': wrapVar(colorSurface900),
|
|
86
|
+
'--color-border-critical': wrapVar(colorCritical400),
|
|
87
|
+
'--color-border-disabled': wrapVar(colorSurface300),
|
|
88
|
+
'--color-border-hover': wrapVar(colorPrimary700),
|
|
89
|
+
'--color-border-info': wrapVar(colorInfo400),
|
|
90
|
+
'--color-border-inverse': wrapVar(colorSurface50),
|
|
91
|
+
'--color-border-primary': wrapVar(colorSurface300),
|
|
92
|
+
'--color-border-secondary': wrapVar(colorSurface200),
|
|
93
|
+
'--color-border-selected': wrapVar(colorPrimary500),
|
|
94
|
+
'--color-border-success': wrapVar(colorSuccess300),
|
|
95
|
+
'--color-border-tertiary': wrapVar(colorSurface100),
|
|
96
|
+
'--color-border-warning': wrapVar(colorWarning300),
|
|
97
|
+
'--color-focus-inverse': wrapVar(colorSurface50),
|
|
98
|
+
'--color-focus-primary': wrapVar(colorPrimary500),
|
|
99
|
+
'--color-icon-critical': wrapVar(colorCritical400),
|
|
100
|
+
'--color-icon-disabled': wrapVar(colorSurface300),
|
|
101
|
+
'--color-icon-info': wrapVar(colorInfo400),
|
|
102
|
+
'--color-icon-inverse': wrapVar(colorSurface50),
|
|
103
|
+
'--color-icon-primary': wrapVar(colorSurface500),
|
|
104
|
+
'--color-icon-secondary': wrapVar(colorPrimary500),
|
|
105
|
+
'--color-icon-success': wrapVar(colorSuccess700),
|
|
106
|
+
'--color-icon-warning': wrapVar(colorWarning600),
|
|
107
|
+
'--color-link-disabled': wrapVar(colorSurface300),
|
|
108
|
+
'--color-link-hover': wrapVar(colorPrimary700),
|
|
109
|
+
'--color-link-inverse': wrapVar(colorSurface50),
|
|
110
|
+
'--color-link-inverse-disabled': wrapVar(colorSurface300),
|
|
111
|
+
'--color-link-inverse-hover': wrapVar(colorSurface100),
|
|
112
|
+
'--color-link-inverse-pressed': wrapVar(colorSurface200),
|
|
113
|
+
'--color-link-monochrome': wrapVar(colorSurface900),
|
|
114
|
+
'--color-link-pressed': wrapVar(colorPrimary900),
|
|
115
|
+
'--color-link-primary': wrapVar(colorPrimary500),
|
|
116
|
+
'--color-link-secondary': wrapVar(colorSurface500),
|
|
117
|
+
'--color-text-critical': wrapVar(colorCritical500),
|
|
118
|
+
'--color-text-disabled': wrapVar(colorSurface300),
|
|
119
|
+
'--color-text-inactive': wrapVar(colorSurface300),
|
|
120
|
+
'--color-text-info': wrapVar(colorInfo700),
|
|
121
|
+
'--color-text-inverse': wrapVar(colorSurface50),
|
|
122
|
+
'--color-text-primary': wrapVar(colorSurface900),
|
|
123
|
+
'--color-text-secondary': wrapVar(colorSurface500),
|
|
124
|
+
'--color-text-success': wrapVar(colorSuccess900),
|
|
125
|
+
'--color-text-warning': wrapVar(colorWarning800),
|
|
126
|
+
'--container-border-radius': '8px',
|
|
127
|
+
'--font-family-primary': "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
|
|
128
|
+
'--font-family-secondary': "'Georgia', serif",
|
|
129
|
+
'--font-size-button-100': '14px',
|
|
130
|
+
'--font-size-button-200': '12px',
|
|
131
|
+
'--font-weight-body-primary': '400',
|
|
132
|
+
'--font-weight-body-secondary': '400',
|
|
133
|
+
'--font-weight-button': '600',
|
|
134
|
+
'--font-weight-caption': '400',
|
|
135
|
+
'--font-weight-h1': '400',
|
|
136
|
+
'--font-weight-h2': '400',
|
|
137
|
+
'--font-weight-h3': '400',
|
|
138
|
+
'--font-weight-h4': '400',
|
|
139
|
+
'--font-weight-h5': '600',
|
|
140
|
+
'--font-weight-h6': '600',
|
|
141
|
+
'--font-weight-label-mini': '400',
|
|
142
|
+
'--font-weight-label-strong': '600',
|
|
143
|
+
'--input-border-radius': '6px',
|
|
144
|
+
'--letter-spacing-body-primary': '0.2px',
|
|
145
|
+
'--letter-spacing-body-secondary': '0.2px',
|
|
146
|
+
'--letter-spacing-button': '1px',
|
|
147
|
+
'--letter-spacing-caption': '0.2px',
|
|
148
|
+
'--letter-spacing-h1': '0.2px',
|
|
149
|
+
'--letter-spacing-h1-mobile': '0.2px',
|
|
150
|
+
'--letter-spacing-h2': '0.2px',
|
|
151
|
+
'--letter-spacing-h2-mobile': '0.2px',
|
|
152
|
+
'--letter-spacing-h3': '0.2px',
|
|
153
|
+
'--letter-spacing-h3-mobile': '0.2px',
|
|
154
|
+
'--letter-spacing-h4': '0.2px',
|
|
155
|
+
'--letter-spacing-h5': '0.2px',
|
|
156
|
+
'--letter-spacing-h6': '1px',
|
|
157
|
+
'--letter-spacing-label-mini': '1px',
|
|
158
|
+
'--letter-spacing-label-strong': '0.2px',
|
|
159
|
+
'--search-input-border-radius': '24px',
|
|
160
|
+
'--text-transform-button': 'uppercase',
|
|
161
|
+
'--text-transform-h6': 'uppercase',
|
|
162
|
+
'--text-transform-label-mini': 'uppercase',
|
|
163
|
+
'--width-dense': '1200px',
|
|
164
|
+
'--width-page': '1644px',
|
|
165
|
+
} satisfies Record<NonColorCSSVariables, string>;
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import type { ColorAliasesObject, NonColorCSSVariables } from './generateCSSVars';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* "Harbor Ink" palette (brief of 2026-10-07), solid tokens only. The effect layer comes later.
|
|
5
|
+
*
|
|
6
|
+
* Ink-first: every ramp is reversed (inkRamps.ts) so the shared semantic map keeps working on a navy
|
|
7
|
+
* canvas. The brand differs from Default's map ONLY in `inkOverrides` and `inkShape`;
|
|
8
|
+
* EverydayHarbor.spec pins that the diff is exactly those keys.
|
|
9
|
+
*
|
|
10
|
+
* Where the approved hexes land (exact, asserted by EverydayHarbor.spec):
|
|
11
|
+
* surface-50 #0B1626 canvas (background-primary, text-inverse) surface-100 #12223A card
|
|
12
|
+
* surface-200 #1A2E4A raised surface-300 #56708F border / ring track
|
|
13
|
+
* surface-500 #A9B6C6 muted text (solid) surface-600 #B9C5D3 muted text (glass)
|
|
14
|
+
* surface-900 #EEF2F6 text-primary
|
|
15
|
+
* primary-400 #2E6BA6 harbor blue (seed) primary-500 #70B2EE the on-ink action step (see `harbor`)
|
|
16
|
+
* info-400 #8EC5E8 links / info (seed) info-500 #A5D1ED ring arc (icon-secondary, ring option B)
|
|
17
|
+
* tertiary-400 #E3B341 gold focus ring (seed)
|
|
18
|
+
* success-400 #A3B04E olive (seed) warning-400 #D9963E (seed, CTA gradient end)
|
|
19
|
+
* critical-400 #E5534B (seed, NOT in the brief: proposed, Dave to confirm)
|
|
20
|
+
*
|
|
21
|
+
* Surface ramp: seven steps are approved anchors (50, 100, 200, 300, 500, 600, 900). The other three
|
|
22
|
+
* are filled monotonically by per-channel sRGB interpolation, rounded to nearest:
|
|
23
|
+
* 400 = midpoint of 300 and 500; 700 and 800 = one third and two thirds of the way from 600 to 900.
|
|
24
|
+
* EverydayHarbor.spec recomputes them, so the rule is pinned rather than prose.
|
|
25
|
+
*/
|
|
26
|
+
import {
|
|
27
|
+
colorInfo400,
|
|
28
|
+
colorInfo500,
|
|
29
|
+
colorInfo600,
|
|
30
|
+
colorSuccess400,
|
|
31
|
+
colorSurface100,
|
|
32
|
+
colorSurface50,
|
|
33
|
+
colorTertiary400,
|
|
34
|
+
colorWarning100,
|
|
35
|
+
colorWarning400,
|
|
36
|
+
colorWarning500,
|
|
37
|
+
} from '../tailwind/cssVars';
|
|
38
|
+
import { wrapVar } from '../utils/wrapVar';
|
|
39
|
+
import { nonColorVariables as sharedSemanticMap } from './Default';
|
|
40
|
+
import { anchoredSteps, inkNormalSteps } from './inkRamps';
|
|
41
|
+
import { hexToChannels } from './wcag';
|
|
42
|
+
|
|
43
|
+
const harborGenerated = inkNormalSteps('#2E6BA6');
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Harbor primary ramp. 50-400 are the generated ink steps (seed #2E6BA6 stays on 400). Two steps are
|
|
47
|
+
* pinned by hand because the generated 500 (#4489CB) is too dark for the pairs core hard-codes
|
|
48
|
+
* around it:
|
|
49
|
+
* - 500 #70B2EE is "the on-ink action step": navy text-inverse on it (filled button) 8.1:1, it as text
|
|
50
|
+
* on the canvas / card / raised panel (outlined, transparent, filledInverse) 8.1 / 7.1 / 6.1:1, and
|
|
51
|
+
* as text on the dark status tints (transparent Callout actions) >= 4.9:1 on the tightest, info-light.
|
|
52
|
+
* The reference orb blue #5B9BD8 was tried first and only reaches 3.7:1 on info-light.
|
|
53
|
+
* - 600 #95C3ED is the midpoint of 500 and the generated 700, so the ramp stays strictly lighter.
|
|
54
|
+
* 700-900 (hover / active text) are the generated steps.
|
|
55
|
+
*/
|
|
56
|
+
const harbor = {
|
|
57
|
+
...harborGenerated,
|
|
58
|
+
'500': hexToChannels('#70B2EE'),
|
|
59
|
+
'600': hexToChannels('#95C3ED'),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
export const coreColors = {
|
|
63
|
+
amber: inkNormalSteps('#D9963E'), // CTA gradient end
|
|
64
|
+
coral: inkNormalSteps('#E5534B'), // proposed critical
|
|
65
|
+
gold: inkNormalSteps('#E3B341'),
|
|
66
|
+
harbor,
|
|
67
|
+
ink: anchoredSteps({
|
|
68
|
+
'50': '#0B1626',
|
|
69
|
+
'100': '#12223A',
|
|
70
|
+
'200': '#1A2E4A',
|
|
71
|
+
'300': '#56708F',
|
|
72
|
+
'400': '#8093AB', // interpolated: midpoint of 300 and 500
|
|
73
|
+
'500': '#A9B6C6',
|
|
74
|
+
'600': '#B9C5D3',
|
|
75
|
+
'700': '#CBD4DF', // interpolated: 1/3 from 600 to 900
|
|
76
|
+
'800': '#DCE3EA', // interpolated: 2/3 from 600 to 900
|
|
77
|
+
'900': '#EEF2F6',
|
|
78
|
+
}),
|
|
79
|
+
olive: inkNormalSteps('#A3B04E'),
|
|
80
|
+
sky: inkNormalSteps('#8EC5E8'),
|
|
81
|
+
slate: inkNormalSteps('#56708F'),
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
export const colorAliases = {
|
|
85
|
+
critical: coreColors.coral,
|
|
86
|
+
info: coreColors.sky,
|
|
87
|
+
primary: coreColors.harbor,
|
|
88
|
+
secondary: coreColors.slate,
|
|
89
|
+
success: coreColors.olive,
|
|
90
|
+
surface: coreColors.ink,
|
|
91
|
+
tertiary: coreColors.gold,
|
|
92
|
+
warning: coreColors.amber,
|
|
93
|
+
} satisfies ColorAliasesObject;
|
|
94
|
+
|
|
95
|
+
const BLACK_SHADOW = (y: number, blur: number, alpha: number) => `0px ${y}px ${blur}px rgb(0 0 0 / ${alpha}%)`;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* The only colour bindings that differ from the shared map. Reasons:
|
|
99
|
+
* - overlay: the shared map scrims with surface-900, which is now the palest step; use the navy.
|
|
100
|
+
* - background-secondary: the card colour (#12223A), not slate-50.
|
|
101
|
+
* - status text/icons/strong fills: the shared map picks far-from-canvas steps (700-900) to darken
|
|
102
|
+
* on white; on reversed ramps those are near-white and lose hue, so bind the seed (400) or 500.
|
|
103
|
+
* - warning-dark: bold Badge / BannerNotification warning put text-primary (pale) and icon-primary on it
|
|
104
|
+
* (Badge.tsx 'text-text-primary', BannerIcon color='primary'), so it needs a DEEP amber (warning-100
|
|
105
|
+
* #754C17: 6.7:1 text, 3.6:1 icon). critical-dark / info-dark / success-dark carry text-inverse
|
|
106
|
+
* (navy) and keep the shared light bindings.
|
|
107
|
+
* - focus-primary: gold ring (brief). link-*: light blue links (brief).
|
|
108
|
+
* - icon-secondary: ring arc #A5D1ED (option B). icon-disabled is NOT overridden: the shared
|
|
109
|
+
* surface-300 binding already resolves to the ring track colour #56708F.
|
|
110
|
+
*/
|
|
111
|
+
const inkOverrides = {
|
|
112
|
+
'--color-background-overlay': wrapVar(colorSurface50),
|
|
113
|
+
'--color-background-secondary': wrapVar(colorSurface100),
|
|
114
|
+
'--color-background-success-dark': wrapVar(colorSuccess400),
|
|
115
|
+
'--color-background-warning-dark': wrapVar(colorWarning100),
|
|
116
|
+
'--color-focus-primary': wrapVar(colorTertiary400),
|
|
117
|
+
'--color-icon-secondary': wrapVar(colorInfo500),
|
|
118
|
+
'--color-icon-success': wrapVar(colorSuccess400),
|
|
119
|
+
'--color-icon-warning': wrapVar(colorWarning400),
|
|
120
|
+
'--color-link-hover': wrapVar(colorInfo500),
|
|
121
|
+
'--color-link-pressed': wrapVar(colorInfo600),
|
|
122
|
+
'--color-link-primary': wrapVar(colorInfo400),
|
|
123
|
+
'--color-text-info': wrapVar(colorInfo400),
|
|
124
|
+
'--color-text-success': wrapVar(colorSuccess400),
|
|
125
|
+
'--color-text-warning': wrapVar(colorWarning500),
|
|
126
|
+
} as const satisfies Partial<Record<NonColorCSSVariables, string>>;
|
|
127
|
+
|
|
128
|
+
/** Shape tokens: Inter for every heading (h1-h4 read --font-family-secondary), black drop shadows. */
|
|
129
|
+
const inkShape = {
|
|
130
|
+
'--box-shadow-01': BLACK_SHADOW(4, 4, 45),
|
|
131
|
+
'--box-shadow-02': `${BLACK_SHADOW(1, 4, 45)}, ${BLACK_SHADOW(1, 8, 35)}`,
|
|
132
|
+
'--box-shadow-03': `${BLACK_SHADOW(2, 8, 45)}, ${BLACK_SHADOW(4, 16, 35)}`,
|
|
133
|
+
'--box-shadow-04': `${BLACK_SHADOW(3, 12, 50)}, ${BLACK_SHADOW(6, 24, 40)}`,
|
|
134
|
+
'--box-shadow-05': BLACK_SHADOW(-4, 4, 45),
|
|
135
|
+
'--container-border-radius': '12px',
|
|
136
|
+
'--font-family-secondary': "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
|
|
137
|
+
// --text-transform-button stays 'uppercase' (inherited). OPEN for Dave: the brief is silent.
|
|
138
|
+
} as const satisfies Partial<Record<NonColorCSSVariables, string>>;
|
|
139
|
+
|
|
140
|
+
export const nonColorVariables = {
|
|
141
|
+
...sharedSemanticMap,
|
|
142
|
+
...inkOverrides,
|
|
143
|
+
...inkShape,
|
|
144
|
+
} satisfies Record<NonColorCSSVariables, string>;
|
|
145
|
+
|
|
146
|
+
/** Exported for EverydayHarbor.spec ("differs from the shared map exactly here"). */
|
|
147
|
+
export const everydayHarborOverrides = { ...inkOverrides, ...inkShape };
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import {
|
|
2
|
+
colorCritical400,
|
|
3
|
+
colorCritical50,
|
|
4
|
+
colorCritical500,
|
|
5
|
+
colorInfo400,
|
|
6
|
+
colorInfo50,
|
|
7
|
+
colorInfo600,
|
|
8
|
+
colorInfo700,
|
|
9
|
+
colorPrimary500,
|
|
10
|
+
colorPrimary700,
|
|
11
|
+
colorPrimary900,
|
|
12
|
+
colorSecondary50,
|
|
13
|
+
colorSuccess300,
|
|
14
|
+
colorSuccess50,
|
|
15
|
+
colorSuccess700,
|
|
16
|
+
colorSuccess900,
|
|
17
|
+
colorSurface100,
|
|
18
|
+
colorSurface200,
|
|
19
|
+
colorSurface300,
|
|
20
|
+
colorSurface50,
|
|
21
|
+
colorSurface500,
|
|
22
|
+
colorSurface900,
|
|
23
|
+
colorTertiary50,
|
|
24
|
+
colorWarning300,
|
|
25
|
+
colorWarning50,
|
|
26
|
+
colorWarning500,
|
|
27
|
+
colorWarning600,
|
|
28
|
+
colorWarning800,
|
|
29
|
+
} from '../tailwind/cssVars';
|
|
30
|
+
import { colorStepArrayToObject, generateNormalColorSteps, generateSurfaceColorSteps } from '../utils/color';
|
|
31
|
+
import { wrapOpacity, wrapVar } from '../utils/wrapVar';
|
|
32
|
+
import { ColorAliasesObject, NonColorCSSVariables } from './generateCSSVars';
|
|
33
|
+
|
|
34
|
+
// "Boardroom Blue" palette (DS-83, approved 2026-07-12): deep corporate-blue primary that is no
|
|
35
|
+
// longer identical to the info status — info moves to its own cyan family (additive key). Key
|
|
36
|
+
// names are stable API (buildTheme exposes them); comments give the actual hue.
|
|
37
|
+
export const coreColors = {
|
|
38
|
+
amber: colorStepArrayToObject(generateNormalColorSteps('#B45309')), // burnt amber
|
|
39
|
+
blue: colorStepArrayToObject(generateNormalColorSteps('#1D4ED8')), // corporate blue
|
|
40
|
+
cyan: colorStepArrayToObject(generateNormalColorSteps('#0C6478')), // info cyan
|
|
41
|
+
green: colorStepArrayToObject(generateNormalColorSteps('#047857')), // deep green
|
|
42
|
+
indigo: colorStepArrayToObject(generateNormalColorSteps('#4F46E5')), // refined indigo
|
|
43
|
+
neutral: colorStepArrayToObject(generateSurfaceColorSteps('#525B6E', true)), // cool slate-gray
|
|
44
|
+
red: colorStepArrayToObject(generateNormalColorSteps('#D42424')), // signal red
|
|
45
|
+
slate: colorStepArrayToObject(generateNormalColorSteps('#475569')), // slate
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export const colorAliases = {
|
|
49
|
+
critical: coreColors.red,
|
|
50
|
+
info: coreColors.cyan,
|
|
51
|
+
primary: coreColors.blue,
|
|
52
|
+
secondary: coreColors.slate,
|
|
53
|
+
success: coreColors.green,
|
|
54
|
+
surface: coreColors.neutral,
|
|
55
|
+
tertiary: coreColors.indigo,
|
|
56
|
+
warning: coreColors.amber,
|
|
57
|
+
} satisfies ColorAliasesObject;
|
|
58
|
+
|
|
59
|
+
export const nonColorVariables = {
|
|
60
|
+
'--box-shadow-01': `0px 4px 4px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,
|
|
61
|
+
'--box-shadow-02': `0px 1px 4px ${wrapOpacity(wrapVar(colorSurface300), 50)}, 0px 1px 8px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,
|
|
62
|
+
'--box-shadow-03': `0px 2px 8px ${wrapOpacity(wrapVar(colorSurface300), 50)}, 0px 4px 16px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,
|
|
63
|
+
'--box-shadow-04': `0px 3px 12px ${wrapOpacity(wrapVar(colorSurface500), 50)}, 0px 6px 24px ${wrapOpacity(wrapVar(colorSurface300), 50)}`,
|
|
64
|
+
'--box-shadow-05': `0px -4px 4px ${wrapOpacity(wrapVar(colorSurface200), 50)}`,
|
|
65
|
+
'--button-border-radius': '8px',
|
|
66
|
+
'--checkbox-border-radius': '4px',
|
|
67
|
+
'--color-background-critical-dark': wrapVar(colorCritical500),
|
|
68
|
+
'--color-background-critical-light': wrapVar(colorCritical50),
|
|
69
|
+
'--color-background-disabled': wrapVar(colorSurface200),
|
|
70
|
+
'--color-background-hover': wrapVar(colorSurface900),
|
|
71
|
+
'--color-background-hover-inverse': wrapVar(colorSurface50),
|
|
72
|
+
'--color-background-info-dark': wrapVar(colorInfo600),
|
|
73
|
+
'--color-background-info-light': wrapVar(colorInfo50),
|
|
74
|
+
'--color-background-inverse': wrapVar(colorPrimary900),
|
|
75
|
+
'--color-background-overlay': wrapVar(colorSurface900),
|
|
76
|
+
'--color-background-pressed': wrapVar(colorSurface900),
|
|
77
|
+
'--color-background-pressed-inverse': wrapVar(colorSurface50),
|
|
78
|
+
'--color-background-primary': wrapVar(colorSurface50),
|
|
79
|
+
'--color-background-secondary': wrapVar(colorSecondary50),
|
|
80
|
+
'--color-background-subdued': wrapVar(colorSurface100),
|
|
81
|
+
'--color-background-success-dark': wrapVar(colorSuccess900),
|
|
82
|
+
'--color-background-success-light': wrapVar(colorSuccess50),
|
|
83
|
+
'--color-background-tertiary': wrapVar(colorTertiary50),
|
|
84
|
+
'--color-background-warning-dark': wrapVar(colorWarning500),
|
|
85
|
+
'--color-background-warning-light': wrapVar(colorWarning50),
|
|
86
|
+
'--color-border-black': wrapVar(colorSurface900),
|
|
87
|
+
'--color-border-critical': wrapVar(colorCritical400),
|
|
88
|
+
'--color-border-disabled': wrapVar(colorSurface300),
|
|
89
|
+
'--color-border-hover': wrapVar(colorPrimary700),
|
|
90
|
+
'--color-border-info': wrapVar(colorInfo400),
|
|
91
|
+
'--color-border-inverse': wrapVar(colorSurface50),
|
|
92
|
+
'--color-border-primary': wrapVar(colorSurface300),
|
|
93
|
+
'--color-border-secondary': wrapVar(colorSurface200),
|
|
94
|
+
'--color-border-selected': wrapVar(colorPrimary500),
|
|
95
|
+
'--color-border-success': wrapVar(colorSuccess300),
|
|
96
|
+
'--color-border-tertiary': wrapVar(colorSurface100),
|
|
97
|
+
'--color-border-warning': wrapVar(colorWarning300),
|
|
98
|
+
'--color-focus-inverse': wrapVar(colorSurface50),
|
|
99
|
+
'--color-focus-primary': wrapVar(colorPrimary500),
|
|
100
|
+
'--color-icon-critical': wrapVar(colorCritical400),
|
|
101
|
+
'--color-icon-disabled': wrapVar(colorSurface300),
|
|
102
|
+
'--color-icon-info': wrapVar(colorInfo400),
|
|
103
|
+
'--color-icon-inverse': wrapVar(colorSurface50),
|
|
104
|
+
'--color-icon-primary': wrapVar(colorSurface500),
|
|
105
|
+
'--color-icon-secondary': wrapVar(colorPrimary500),
|
|
106
|
+
'--color-icon-success': wrapVar(colorSuccess700),
|
|
107
|
+
'--color-icon-warning': wrapVar(colorWarning600),
|
|
108
|
+
'--color-link-disabled': wrapVar(colorSurface300),
|
|
109
|
+
'--color-link-hover': wrapVar(colorPrimary700),
|
|
110
|
+
'--color-link-inverse': wrapVar(colorSurface50),
|
|
111
|
+
'--color-link-inverse-disabled': wrapVar(colorSurface300),
|
|
112
|
+
'--color-link-inverse-hover': wrapVar(colorSurface100),
|
|
113
|
+
'--color-link-inverse-pressed': wrapVar(colorSurface200),
|
|
114
|
+
'--color-link-monochrome': wrapVar(colorSurface900),
|
|
115
|
+
'--color-link-pressed': wrapVar(colorPrimary900),
|
|
116
|
+
'--color-link-primary': wrapVar(colorPrimary500),
|
|
117
|
+
'--color-link-secondary': wrapVar(colorSurface500),
|
|
118
|
+
'--color-text-critical': wrapVar(colorCritical500),
|
|
119
|
+
'--color-text-disabled': wrapVar(colorSurface300),
|
|
120
|
+
'--color-text-inactive': wrapVar(colorSurface300),
|
|
121
|
+
'--color-text-info': wrapVar(colorInfo700),
|
|
122
|
+
'--color-text-inverse': wrapVar(colorSurface50),
|
|
123
|
+
'--color-text-primary': wrapVar(colorSurface900),
|
|
124
|
+
'--color-text-secondary': wrapVar(colorSurface500),
|
|
125
|
+
'--color-text-success': wrapVar(colorSuccess900),
|
|
126
|
+
'--color-text-warning': wrapVar(colorWarning800),
|
|
127
|
+
'--container-border-radius': '12px',
|
|
128
|
+
'--font-family-primary': "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
|
|
129
|
+
'--font-family-secondary': "'Georgia', serif",
|
|
130
|
+
'--font-size-button-100': '14px',
|
|
131
|
+
'--font-size-button-200': '12px',
|
|
132
|
+
'--font-weight-body-primary': '400',
|
|
133
|
+
'--font-weight-body-secondary': '400',
|
|
134
|
+
'--font-weight-button': '600',
|
|
135
|
+
'--font-weight-caption': '400',
|
|
136
|
+
'--font-weight-h1': '400',
|
|
137
|
+
'--font-weight-h2': '400',
|
|
138
|
+
'--font-weight-h3': '400',
|
|
139
|
+
'--font-weight-h4': '400',
|
|
140
|
+
'--font-weight-h5': '600',
|
|
141
|
+
'--font-weight-h6': '600',
|
|
142
|
+
'--font-weight-label-mini': '400',
|
|
143
|
+
'--font-weight-label-strong': '600',
|
|
144
|
+
'--input-border-radius': '6px',
|
|
145
|
+
'--letter-spacing-body-primary': '0.2px',
|
|
146
|
+
'--letter-spacing-body-secondary': '0.2px',
|
|
147
|
+
'--letter-spacing-button': '1px',
|
|
148
|
+
'--letter-spacing-caption': '0.2px',
|
|
149
|
+
'--letter-spacing-h1': '0.2px',
|
|
150
|
+
'--letter-spacing-h1-mobile': '0.2px',
|
|
151
|
+
'--letter-spacing-h2': '0.2px',
|
|
152
|
+
'--letter-spacing-h2-mobile': '0.2px',
|
|
153
|
+
'--letter-spacing-h3': '0.2px',
|
|
154
|
+
'--letter-spacing-h3-mobile': '0.2px',
|
|
155
|
+
'--letter-spacing-h4': '0.2px',
|
|
156
|
+
'--letter-spacing-h5': '0.2px',
|
|
157
|
+
'--letter-spacing-h6': '1px',
|
|
158
|
+
'--letter-spacing-label-mini': '1px',
|
|
159
|
+
'--letter-spacing-label-strong': '0.2px',
|
|
160
|
+
'--search-input-border-radius': '24px',
|
|
161
|
+
'--text-transform-button': 'uppercase',
|
|
162
|
+
'--text-transform-h6': 'uppercase',
|
|
163
|
+
'--text-transform-label-mini': 'uppercase',
|
|
164
|
+
'--width-dense': '1200px',
|
|
165
|
+
'--width-page': '1644px',
|
|
166
|
+
} satisfies Record<NonColorCSSVariables, string>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Brands } from './brands';
|
|
2
|
+
import type { CleanTheme } from './themeType';
|
|
3
|
+
|
|
4
|
+
import { basketballTrainingTheme } from './runtime/basketballTraining';
|
|
5
|
+
import { defaultTheme } from './runtime/default';
|
|
6
|
+
import { everydayHarborTheme } from './runtime/everydayHarbor';
|
|
7
|
+
import { professionalBrandTheme } from './runtime/professionalBrand';
|
|
8
|
+
|
|
9
|
+
export const allThemes = {
|
|
10
|
+
BasketballTraining: basketballTrainingTheme,
|
|
11
|
+
Default: defaultTheme,
|
|
12
|
+
EverydayHarbor: everydayHarborTheme,
|
|
13
|
+
ProfessionalBrand: professionalBrandTheme,
|
|
14
|
+
} as const satisfies Record<Brands, CleanTheme>;
|