@sankhyatronics/sankhya-cms 0.1.8 → 0.1.9
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/LICENSE +21 -21
- package/README.md +34 -34
- package/custom-elements.json +1023 -964
- package/dist/bento-grid/index.js +3 -3
- package/dist/card/index.js +2 -2
- package/dist/carousel/index.js +3 -3
- package/dist/{chunk-3JU3R22O.js → chunk-5EBWMPJS.js} +2 -2
- package/dist/chunk-5EBWMPJS.js.map +1 -0
- package/dist/{chunk-2JGWWXEI.js → chunk-76AVBQUA.js} +3 -3
- package/dist/chunk-76AVBQUA.js.map +1 -0
- package/dist/{chunk-NN3OCPDV.js → chunk-7NLZND6Q.js} +3 -3
- package/dist/{chunk-EMVHNAID.js → chunk-ALI26WOB.js} +3 -3
- package/dist/chunk-ALI26WOB.js.map +1 -0
- package/dist/{chunk-TLHG33MM.js → chunk-BLQV2YMO.js} +3 -3
- package/dist/chunk-BLQV2YMO.js.map +1 -0
- package/dist/{chunk-UVNBZD7R.js → chunk-BMHMNXIA.js} +3 -3
- package/dist/chunk-BMHMNXIA.js.map +1 -0
- package/dist/{chunk-ZRXYWH6C.js → chunk-DH53HZPB.js} +4 -4
- package/dist/{chunk-HPIQSECE.js → chunk-EMCQBT3S.js} +3 -3
- package/dist/{chunk-BQTDFQ4V.js → chunk-FLY7TNRT.js} +3 -3
- package/dist/chunk-FLY7TNRT.js.map +1 -0
- package/dist/{chunk-3VE6VFJ4.js → chunk-FZ36KL73.js} +1 -1
- package/dist/chunk-FZ36KL73.js.map +1 -0
- package/dist/{chunk-HGTC3LCW.js → chunk-G3CF7MBO.js} +3 -3
- package/dist/{chunk-CDC4P77V.js → chunk-GJO3RGOB.js} +2 -2
- package/dist/chunk-GJO3RGOB.js.map +1 -0
- package/dist/{chunk-K4ZICRZL.js → chunk-JKBWZLG4.js} +3 -3
- package/dist/chunk-JKBWZLG4.js.map +1 -0
- package/dist/{chunk-4HKSA5UT.js → chunk-JQY2G4QK.js} +2 -2
- package/dist/chunk-JQY2G4QK.js.map +1 -0
- package/dist/{chunk-RHAOQ6K4.js → chunk-KMU6ABQF.js} +1 -1
- package/dist/chunk-KMU6ABQF.js.map +1 -0
- package/dist/{chunk-IQPW3CYZ.js → chunk-LEXZKGQX.js} +3 -3
- package/dist/chunk-LEXZKGQX.js.map +1 -0
- package/dist/{chunk-MW43OS47.js → chunk-MSSH3HFK.js} +2 -2
- package/dist/chunk-MSSH3HFK.js.map +1 -0
- package/dist/{chunk-DQHMJZ6X.js → chunk-R5G6KFTJ.js} +18 -8
- package/dist/chunk-R5G6KFTJ.js.map +1 -0
- package/dist/{chunk-VYON56QO.js → chunk-SMLR736E.js} +2 -2
- package/dist/chunk-SMLR736E.js.map +1 -0
- package/dist/{chunk-HGJT24UG.js → chunk-VWS53WY4.js} +3 -3
- package/dist/chunk-VWS53WY4.js.map +1 -0
- package/dist/{chunk-VRRBMOUP.js → chunk-WT4OATGP.js} +3 -3
- package/dist/chunk-WT4OATGP.js.map +1 -0
- package/dist/{chunk-PB7ZPPLP.js → chunk-WTD2YIAA.js} +1 -1
- package/dist/chunk-WTD2YIAA.js.map +1 -0
- package/dist/{chunk-X2ALYIVT.js → chunk-XWB4CKDU.js} +20 -4
- package/dist/chunk-XWB4CKDU.js.map +1 -0
- package/dist/{chunk-XXPBFHWR.js → chunk-YQ42EBK5.js} +2 -2
- package/dist/chunk-YQ42EBK5.js.map +1 -0
- package/dist/{chunk-6H262SG6.js → chunk-YVTFQHVY.js} +2 -2
- package/dist/chunk-YVTFQHVY.js.map +1 -0
- package/dist/{chunk-7PSYCTEN.js → chunk-ZN4LIKVG.js} +2 -2
- package/dist/chunk-ZN4LIKVG.js.map +1 -0
- package/dist/cms-theme.css +26 -26
- package/dist/content-block/index.js +4 -4
- package/dist/cookie-consent/index.js +2 -2
- package/dist/dropdown/index.js +3 -3
- package/dist/feature-split/index.js +4 -4
- package/dist/features-section/index.js +5 -5
- package/dist/footer/index.js +2 -2
- package/dist/header/index.d.ts +7 -0
- package/dist/header/index.js +3 -3
- package/dist/hero/index.js +3 -3
- package/dist/icon-button/index.js +2 -2
- package/dist/index.js +35 -35
- package/dist/items-accordion/index.js +3 -3
- package/dist/markdown/index.js +2 -2
- package/dist/mega-menu/index.js +3 -3
- package/dist/menu-grid/index.js +2 -2
- package/dist/menu-grid-item/index.js +2 -2
- package/dist/menu-item/index.d.ts +5 -0
- package/dist/menu-item/index.js +3 -3
- package/dist/promo-banner/index.js +3 -3
- package/dist/schema/index.js.map +1 -1
- package/dist/section/index.js +3 -3
- package/dist/select/index.js +3 -3
- package/dist/shared/icons.js +1 -1
- package/dist/shared/styles.js +1 -1
- package/dist/stats/index.js +2 -2
- package/dist/testimonials/index.js +4 -4
- package/dist/theme.css +291 -291
- package/dist/themes.css +64 -64
- package/dist/theming/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-2JGWWXEI.js.map +0 -1
- package/dist/chunk-3JU3R22O.js.map +0 -1
- package/dist/chunk-3VE6VFJ4.js.map +0 -1
- package/dist/chunk-4HKSA5UT.js.map +0 -1
- package/dist/chunk-6H262SG6.js.map +0 -1
- package/dist/chunk-7PSYCTEN.js.map +0 -1
- package/dist/chunk-BQTDFQ4V.js.map +0 -1
- package/dist/chunk-CDC4P77V.js.map +0 -1
- package/dist/chunk-DQHMJZ6X.js.map +0 -1
- package/dist/chunk-EMVHNAID.js.map +0 -1
- package/dist/chunk-HGJT24UG.js.map +0 -1
- package/dist/chunk-IQPW3CYZ.js.map +0 -1
- package/dist/chunk-K4ZICRZL.js.map +0 -1
- package/dist/chunk-MW43OS47.js.map +0 -1
- package/dist/chunk-PB7ZPPLP.js.map +0 -1
- package/dist/chunk-RHAOQ6K4.js.map +0 -1
- package/dist/chunk-TLHG33MM.js.map +0 -1
- package/dist/chunk-UVNBZD7R.js.map +0 -1
- package/dist/chunk-VRRBMOUP.js.map +0 -1
- package/dist/chunk-VYON56QO.js.map +0 -1
- package/dist/chunk-X2ALYIVT.js.map +0 -1
- package/dist/chunk-XXPBFHWR.js.map +0 -1
- /package/dist/{chunk-NN3OCPDV.js.map → chunk-7NLZND6Q.js.map} +0 -0
- /package/dist/{chunk-ZRXYWH6C.js.map → chunk-DH53HZPB.js.map} +0 -0
- /package/dist/{chunk-HPIQSECE.js.map → chunk-EMCQBT3S.js.map} +0 -0
- /package/dist/{chunk-HGTC3LCW.js.map → chunk-G3CF7MBO.js.map} +0 -0
package/dist/theme.css
CHANGED
|
@@ -1,292 +1,292 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Design tokens for @sankhyatronics/components.
|
|
3
|
-
*
|
|
4
|
-
* Every st-* component reads its styling exclusively via `var(--st-x)` — no
|
|
5
|
-
* fallback values anywhere — and custom properties inherit through Shadow
|
|
6
|
-
* DOM, so setting these at :root (or any ancestor of your st-* components)
|
|
7
|
-
* reskins/rescales the whole tree without forking any component.
|
|
8
|
-
*
|
|
9
|
-
* Import this file once. There are three layers, in cascade order:
|
|
10
|
-
* 1. PRIMARIES — the only literal color values in the system (5 seeds,
|
|
11
|
-
* plus the 3 independent file-type brand colors). Override these for a
|
|
12
|
-
* full rebrand — everything else follows.
|
|
13
|
-
* 2. SHADES — an internal color-mix() ramp derived from each primary,
|
|
14
|
-
* EXCEPT the neutral ramp: --st-neutral-50 through --st-neutral-950
|
|
15
|
-
* (the standard 11-step scale) is the one shade ramp meant to be
|
|
16
|
-
* overridden directly — every neutral text/background token below
|
|
17
|
-
* resolves to one of these 11 steps.
|
|
18
|
-
* 3. SEMANTIC TOKENS — what components actually consume
|
|
19
|
-
* (--st-color-text, --st-radius-md, --st-text-sm, ...), each pointing
|
|
20
|
-
* at one shade/scale step. Override a semantic token for a single
|
|
21
|
-
* exception, or override a whole scale (spacing/radius/size/type) for
|
|
22
|
-
* a density or typography change.
|
|
23
|
-
*
|
|
24
|
-
* Only reach for an individual token override (see component READMEs /
|
|
25
|
-
* source for the full list) when you need an exception the primaries,
|
|
26
|
-
* neutral palette, and scales below don't cover.
|
|
27
|
-
*/
|
|
28
|
-
:root {
|
|
29
|
-
/* =========================================================
|
|
30
|
-
PRIMARIES — override these for a rebrand.
|
|
31
|
-
========================================================= */
|
|
32
|
-
--st-primary-color: oklch(12.9% 0.042 264.695);
|
|
33
|
-
--st-primary-background: oklch(98.4% 0.003 247.858);
|
|
34
|
-
--st-neutral-50: var(--st-primary-background);
|
|
35
|
-
--st-neutral-950: var(--st-primary-color);
|
|
36
|
-
--st-neutral-100: oklch(from color-mix(in oklch, var(--st-neutral-950) 8%, var(--st-neutral-50)) l calc(c * 2.1) h);
|
|
37
|
-
--st-neutral-200: oklch(from color-mix(in oklch, var(--st-neutral-950) 15%, var(--st-neutral-50)) l calc(c * 3.0) h);
|
|
38
|
-
--st-neutral-300: oklch(from color-mix(in oklch, var(--st-neutral-950) 27%, var(--st-neutral-50)) l calc(c * 4.3) h);
|
|
39
|
-
--st-neutral-400: oklch(from color-mix(in oklch, var(--st-neutral-950) 36%, var(--st-neutral-50)) l calc(c * 5.2) h);
|
|
40
|
-
--st-neutral-500: oklch(from color-mix(in oklch, var(--st-neutral-950) 49%, var(--st-neutral-50)) l calc(c * 7.0) h);
|
|
41
|
-
--st-neutral-600: oklch(from color-mix(in oklch, var(--st-neutral-950) 69%, var(--st-neutral-50)) l calc(c * 5.4) h);
|
|
42
|
-
--st-neutral-700: oklch(from color-mix(in oklch, var(--st-neutral-950) 86%, var(--st-neutral-50)) l calc(c * 3.0) h);
|
|
43
|
-
--st-neutral-800: oklch(from color-mix(in oklch, var(--st-neutral-950) 93%, var(--st-neutral-50)) l calc(c * 2.3) h);
|
|
44
|
-
--st-neutral-900: oklch(from color-mix(in oklch, var(--st-neutral-950) 96%, var(--st-neutral-50)) l calc(c * 1.6) h);
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
/* Brand-like file-type colors are intentionally independent of the accent
|
|
48
|
-
seed (Word/Excel/PowerPoint have their own identity) — three extra,
|
|
49
|
-
narrowly-scoped primaries rather than derived shades. */
|
|
50
|
-
--st-primary-type-word: oklch(0.55 0.13 250);
|
|
51
|
-
--st-primary-type-excel: oklch(0.55 0.13 145);
|
|
52
|
-
--st-primary-type-powerpoint: oklch(0.55 0.13 40);
|
|
53
|
-
|
|
54
|
-
--st-primary-neutral: var(--st-neutral-50);
|
|
55
|
-
/* --st-brand-color is deliberately left undefined: set it (on :root) to
|
|
56
|
-
make the accent, the solid call-to-action buttons and checkboxes all
|
|
57
|
-
follow one host-app brand color. Unset, each keeps its own default. */
|
|
58
|
-
--st-primary-accent: var(--st-brand-color, var(--st-neutral-500));
|
|
59
|
-
--st-primary-danger: oklch(0.6 0.2 25);
|
|
60
|
-
--st-primary-warning: oklch(0.75 0.16 40);
|
|
61
|
-
--st-primary-success: oklch(0.55 0.13 145);
|
|
62
|
-
|
|
63
|
-
/* Pure white/black anchors for the color-mix() ramps below and the
|
|
64
|
-
"text/icon on a solid fill" token — not general-purpose literals. */
|
|
65
|
-
--st-primary-canvas: var(--st-neutral-50);
|
|
66
|
-
--st-primary-ink: var(--st-neutral-950);
|
|
67
|
-
|
|
68
|
-
--st-accent-subtle: color-mix(in oklch, var(--st-primary-accent) 8%, var(--st-primary-canvas));
|
|
69
|
-
--st-accent-border: color-mix(in oklch, var(--st-primary-accent) 22%, var(--st-primary-canvas));
|
|
70
|
-
--st-accent-muted: color-mix(in oklch, var(--st-primary-accent) 55%, var(--st-primary-canvas));
|
|
71
|
-
--st-accent-text: color-mix(in oklch, var(--st-primary-accent) 78%, var(--st-primary-ink));
|
|
72
|
-
|
|
73
|
-
--st-danger-subtle: color-mix(in oklch, var(--st-primary-danger) 10%, var(--st-primary-canvas));
|
|
74
|
-
--st-danger-border: color-mix(in oklch, var(--st-primary-danger) 28%, var(--st-primary-canvas));
|
|
75
|
-
--st-danger-text: color-mix(in oklch, var(--st-primary-danger) 70%, var(--st-primary-ink));
|
|
76
|
-
|
|
77
|
-
--st-warning-subtle: color-mix(in oklch, var(--st-primary-warning) 10%, var(--st-primary-canvas));
|
|
78
|
-
--st-warning-border: color-mix(in oklch, var(--st-primary-warning) 28%, var(--st-primary-canvas));
|
|
79
|
-
--st-warning-text: color-mix(in oklch, var(--st-primary-warning) 70%, var(--st-primary-ink));
|
|
80
|
-
|
|
81
|
-
--st-success-subtle: color-mix(in oklch, var(--st-primary-success) 20%, var(--st-primary-canvas));
|
|
82
|
-
--st-success-text: color-mix(in oklch, var(--st-primary-success) 70%, var(--st-primary-ink));
|
|
83
|
-
|
|
84
|
-
/* =========================================================
|
|
85
|
-
SEMANTIC TOKENS — what components actually consume.
|
|
86
|
-
========================================================= */
|
|
87
|
-
|
|
88
|
-
/* ---- Neutral surfaces & text ---- */
|
|
89
|
-
--st-color-page: var(--st-neutral-50);
|
|
90
|
-
--st-color-surface: var(--st-primary-canvas);
|
|
91
|
-
--st-color-subtle: var(--st-neutral-100);
|
|
92
|
-
--st-color-divider: var(--st-neutral-200);
|
|
93
|
-
--st-color-hover: var(--st-neutral-200);
|
|
94
|
-
--st-color-border: var(--st-neutral-300);
|
|
95
|
-
--st-color-skeleton: var(--st-neutral-300);
|
|
96
|
-
--st-color-folder-icon-bg: var(--st-neutral-300);
|
|
97
|
-
--st-color-border-strong: var(--st-neutral-400);
|
|
98
|
-
--st-color-text-faint: var(--st-neutral-600);
|
|
99
|
-
--st-color-text-muted: var(--st-neutral-600);
|
|
100
|
-
--st-color-text: var(--st-neutral-600);
|
|
101
|
-
--st-color-text-strong: var(--st-neutral-900);
|
|
102
|
-
|
|
103
|
-
/* Text/icon color for content sitting on a solid/dark fill (buttons,
|
|
104
|
-
avatars, active pills) — never hardcode "white" at the point of use. */
|
|
105
|
-
--st-color-on-solid: var(--st-primary-canvas);
|
|
106
|
-
|
|
107
|
-
/* ---- Accent ramp — derived from --st-primary-accent ---- */
|
|
108
|
-
--st-color-accent: var(--st-primary-accent);
|
|
109
|
-
--st-color-accent-subtle: var(--st-accent-subtle);
|
|
110
|
-
--st-color-accent-border: var(--st-accent-border);
|
|
111
|
-
--st-color-accent-muted: var(--st-accent-muted);
|
|
112
|
-
--st-color-accent-text: var(--st-accent-text);
|
|
113
|
-
|
|
114
|
-
/* ---- Semantic state ramps — derived from --st-primary-danger/warning/success ---- */
|
|
115
|
-
--st-color-danger: var(--st-primary-danger);
|
|
116
|
-
--st-color-danger-subtle: var(--st-danger-subtle);
|
|
117
|
-
--st-color-danger-border: var(--st-danger-border);
|
|
118
|
-
--st-color-danger-text: var(--st-danger-text);
|
|
119
|
-
|
|
120
|
-
--st-color-warning: var(--st-primary-warning);
|
|
121
|
-
--st-color-warning-subtle: var(--st-warning-subtle);
|
|
122
|
-
--st-color-warning-border: var(--st-warning-border);
|
|
123
|
-
--st-color-warning-text: var(--st-warning-text);
|
|
124
|
-
|
|
125
|
-
--st-color-success: var(--st-primary-success);
|
|
126
|
-
--st-color-success-subtle: var(--st-success-subtle);
|
|
127
|
-
--st-color-success-text: var(--st-success-text);
|
|
128
|
-
|
|
129
|
-
/* ---- File-type badge colors ---- */
|
|
130
|
-
--st-color-type-word: var(--st-primary-type-word);
|
|
131
|
-
--st-color-type-excel: var(--st-primary-type-excel);
|
|
132
|
-
--st-color-type-powerpoint: var(--st-primary-type-powerpoint);
|
|
133
|
-
|
|
134
|
-
/* ---- Standalone brand accent (favorites/star marker) ---- */
|
|
135
|
-
--st-favorite-accent: #f0b429;
|
|
136
|
-
|
|
137
|
-
/* ---- <st-status-pill> override points. Consumers set --st-status-hue
|
|
138
|
-
(or --st-status-bg/--st-status-color directly) on the host element;
|
|
139
|
-
these root defaults mean the token always resolves, so call sites
|
|
140
|
-
never need a fallback. ---- */
|
|
141
|
-
--st-status-hue: var(--st-neutral-hue);
|
|
142
|
-
--st-status-bg: oklch(0.95 0.05 var(--st-status-hue));
|
|
143
|
-
--st-status-color: oklch(0.4 0.13 var(--st-status-hue));
|
|
144
|
-
|
|
145
|
-
/* ---- Shadow tint — box-shadows are colors too, so they get tokens. ---- */
|
|
146
|
-
--st-shadow-color-subtle: var(--st-neutral-300);
|
|
147
|
-
--st-shadow-color-sm: var(--st-neutral-300);
|
|
148
|
-
--st-shadow-color-md: var(--st-neutral-300);
|
|
149
|
-
--st-shadow-color-lg: var(--st-neutral-300);
|
|
150
|
-
--st-shadow-color-xl: var(--st-neutral-300);
|
|
151
|
-
|
|
152
|
-
/* =========================================================
|
|
153
|
-
SPACING SCALE — padding/margin/gap/inset. Named by their px
|
|
154
|
-
value for exactness; override one step or the whole scale.
|
|
155
|
-
========================================================= */
|
|
156
|
-
--st-space-0: 0;
|
|
157
|
-
--st-space-2: 2px;
|
|
158
|
-
--st-space-3: 3px;
|
|
159
|
-
--st-space-4: 4px;
|
|
160
|
-
--st-space-5: 5px;
|
|
161
|
-
--st-space-6: 6px;
|
|
162
|
-
--st-space-7: 7px;
|
|
163
|
-
--st-space-8: 8px;
|
|
164
|
-
--st-space-9: 9px;
|
|
165
|
-
--st-space-10: 10px;
|
|
166
|
-
--st-space-11: 11px;
|
|
167
|
-
--st-space-12: 12px;
|
|
168
|
-
--st-space-14: 14px;
|
|
169
|
-
--st-space-16: 16px;
|
|
170
|
-
--st-space-18: 18px;
|
|
171
|
-
--st-space-20: 20px;
|
|
172
|
-
--st-space-22: 22px;
|
|
173
|
-
--st-space-24: 24px;
|
|
174
|
-
--st-space-28: 28px;
|
|
175
|
-
--st-space-30: 30px;
|
|
176
|
-
--st-space-32: 32px;
|
|
177
|
-
--st-space-40: 40px;
|
|
178
|
-
--st-space-44: 44px;
|
|
179
|
-
--st-space-48: 48px;
|
|
180
|
-
|
|
181
|
-
/* =========================================================
|
|
182
|
-
RADIUS SCALE
|
|
183
|
-
========================================================= */
|
|
184
|
-
--st-radius-none: 0;
|
|
185
|
-
--st-radius-xs: 4px;
|
|
186
|
-
--st-radius-sm: 8px;
|
|
187
|
-
--st-radius-md: 10px;
|
|
188
|
-
--st-radius-lg: 12px;
|
|
189
|
-
--st-radius-full: 999px;
|
|
190
|
-
--st-radius-circle: 50%;
|
|
191
|
-
|
|
192
|
-
/* =========================================================
|
|
193
|
-
CONTROL-SIZE SCALE — square-ish UI controls (checkboxes,
|
|
194
|
-
icon buttons, avatars, badges, table icon columns).
|
|
195
|
-
========================================================= */
|
|
196
|
-
--st-size-14: 14px;
|
|
197
|
-
--st-size-16: 16px;
|
|
198
|
-
--st-size-18: 18px;
|
|
199
|
-
--st-size-20: 20px;
|
|
200
|
-
--st-size-24: 24px;
|
|
201
|
-
--st-size-26: 26px;
|
|
202
|
-
--st-size-28: 28px;
|
|
203
|
-
--st-size-30: 30px;
|
|
204
|
-
--st-size-32: 32px;
|
|
205
|
-
--st-size-36: 36px;
|
|
206
|
-
--st-size-38: 38px;
|
|
207
|
-
--st-size-40: 40px;
|
|
208
|
-
|
|
209
|
-
/* =========================================================
|
|
210
|
-
TYPOGRAPHY TOKENS
|
|
211
|
-
========================================================= */
|
|
212
|
-
--st-font-family: system-ui, -apple-system, 'Segoe UI', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
|
213
|
-
|
|
214
|
-
--st-text-2xs: 10px;
|
|
215
|
-
--st-text-xs: 11px;
|
|
216
|
-
--st-text-sm: 12px;
|
|
217
|
-
--st-text-base: 13px;
|
|
218
|
-
--st-text-md: 14px;
|
|
219
|
-
--st-text-lg: 15px;
|
|
220
|
-
--st-text-xl: 16px;
|
|
221
|
-
--st-text-2xl: 20px;
|
|
222
|
-
|
|
223
|
-
--st-font-weight-regular: 400;
|
|
224
|
-
--st-font-weight-medium: 500;
|
|
225
|
-
--st-font-weight-semibold: 600;
|
|
226
|
-
--st-font-weight-bold: 700;
|
|
227
|
-
--st-font-weight-extrabold: 800;
|
|
228
|
-
|
|
229
|
-
--st-leading-none: 1;
|
|
230
|
-
--st-leading-snug: 1.35;
|
|
231
|
-
--st-leading-normal: 1.4;
|
|
232
|
-
|
|
233
|
-
--st-tracking-tight: -0.2px;
|
|
234
|
-
--st-tracking-normal: 0;
|
|
235
|
-
--st-tracking-wide: 0.3px;
|
|
236
|
-
--st-tracking-wider: 0.4px;
|
|
237
|
-
|
|
238
|
-
/* =========================================================
|
|
239
|
-
COMPONENT TOKENS — narrowly-scoped overrides for one piece
|
|
240
|
-
of chrome, each defaulting to a scale step above. Set them
|
|
241
|
-
on :root or on the component's host element, the same way
|
|
242
|
-
as --st-primary-color.
|
|
243
|
-
========================================================= */
|
|
244
|
-
|
|
245
|
-
/* ---- Wizard step heading/description (<st-template-hub>) ---- */
|
|
246
|
-
--st-step-heading-font-size: var(--st-text-2xl);
|
|
247
|
-
--st-step-heading-font-weight: var(--st-font-weight-bold);
|
|
248
|
-
--st-step-heading-color: var(--st-color-text-strong);
|
|
249
|
-
--st-step-description-font-size: var(--st-text-base);
|
|
250
|
-
--st-step-description-color: var(--st-color-text-muted);
|
|
251
|
-
|
|
252
|
-
/* ---- Buttons. --st-button-font-size sizes the wizard footer
|
|
253
|
-
(Back/Next/Finish/...); --st-button-font-size-sm the in-content
|
|
254
|
-
action buttons (Generate/Regenerate). The primary fill applies
|
|
255
|
-
to every solid call-to-action button. ---- */
|
|
256
|
-
--st-button-font-size: var(--st-text-md);
|
|
257
|
-
--st-button-font-size-sm: var(--st-text-base);
|
|
258
|
-
--st-button-font-weight: var(--st-font-weight-semibold);
|
|
259
|
-
--st-button-height: var(--st-size-40);
|
|
260
|
-
--st-button-radius: var(--st-radius-sm);
|
|
261
|
-
--st-button-primary-bg: var(--st-brand-color, var(--st-color-text-strong));
|
|
262
|
-
--st-button-primary-color: var(--st-color-on-solid);
|
|
263
|
-
--st-button-primary-font-weight: var(--st-font-weight-bold);
|
|
264
|
-
|
|
265
|
-
/* ---- Checkboxes/radios (native controls, tinted via accent-color).
|
|
266
|
-
`auto` = the browser's own color. ---- */
|
|
267
|
-
--st-checkbox-color: var(--st-brand-color, auto);
|
|
268
|
-
|
|
269
|
-
/* ---- Keyboard focus ring, an `outline` shorthand. `auto` = the
|
|
270
|
-
browser's own ring; e.g. `2px solid #0b5cff` for a custom one. ---- */
|
|
271
|
-
--st-focus-ring: auto;
|
|
272
|
-
--st-focus-ring-offset: 0px;
|
|
273
|
-
|
|
274
|
-
/* ---- Text inputs (search boxes, file names, new folder, pattern) ---- */
|
|
275
|
-
--st-input-font-family: var(--st-font-family);
|
|
276
|
-
--st-input-mono-font-family: ui-monospace, monospace;
|
|
277
|
-
--st-input-font-size: var(--st-text-base);
|
|
278
|
-
--st-input-color: var(--st-color-text-strong);
|
|
279
|
-
--st-input-bg: var(--st-color-surface);
|
|
280
|
-
--st-input-border-color: var(--st-color-border);
|
|
281
|
-
--st-input-radius: var(--st-radius-sm);
|
|
282
|
-
|
|
283
|
-
/* ---- Wizard frame (<st-template-hub>). Set --st-wizard-bg to
|
|
284
|
-
`transparent` to sit on the host app's own card/page. ---- */
|
|
285
|
-
--st-wizard-bg: var(--st-color-page);
|
|
286
|
-
--st-wizard-subheader-bg: var(--st-color-subtle);
|
|
287
|
-
--st-wizard-footer-bg: var(--st-color-surface);
|
|
288
|
-
--st-wizard-footer-height: 64px;
|
|
289
|
-
--st-wizard-border-color: var(--st-color-border);
|
|
290
|
-
--st-wizard-content-padding: var(--st-space-24) var(--st-space-32);
|
|
291
|
-
--st-wizard-content-padding-compact: var(--st-space-16) var(--st-space-18);
|
|
1
|
+
/**
|
|
2
|
+
* Design tokens for @sankhyatronics/components.
|
|
3
|
+
*
|
|
4
|
+
* Every st-* component reads its styling exclusively via `var(--st-x)` — no
|
|
5
|
+
* fallback values anywhere — and custom properties inherit through Shadow
|
|
6
|
+
* DOM, so setting these at :root (or any ancestor of your st-* components)
|
|
7
|
+
* reskins/rescales the whole tree without forking any component.
|
|
8
|
+
*
|
|
9
|
+
* Import this file once. There are three layers, in cascade order:
|
|
10
|
+
* 1. PRIMARIES — the only literal color values in the system (5 seeds,
|
|
11
|
+
* plus the 3 independent file-type brand colors). Override these for a
|
|
12
|
+
* full rebrand — everything else follows.
|
|
13
|
+
* 2. SHADES — an internal color-mix() ramp derived from each primary,
|
|
14
|
+
* EXCEPT the neutral ramp: --st-neutral-50 through --st-neutral-950
|
|
15
|
+
* (the standard 11-step scale) is the one shade ramp meant to be
|
|
16
|
+
* overridden directly — every neutral text/background token below
|
|
17
|
+
* resolves to one of these 11 steps.
|
|
18
|
+
* 3. SEMANTIC TOKENS — what components actually consume
|
|
19
|
+
* (--st-color-text, --st-radius-md, --st-text-sm, ...), each pointing
|
|
20
|
+
* at one shade/scale step. Override a semantic token for a single
|
|
21
|
+
* exception, or override a whole scale (spacing/radius/size/type) for
|
|
22
|
+
* a density or typography change.
|
|
23
|
+
*
|
|
24
|
+
* Only reach for an individual token override (see component READMEs /
|
|
25
|
+
* source for the full list) when you need an exception the primaries,
|
|
26
|
+
* neutral palette, and scales below don't cover.
|
|
27
|
+
*/
|
|
28
|
+
:root {
|
|
29
|
+
/* =========================================================
|
|
30
|
+
PRIMARIES — override these for a rebrand.
|
|
31
|
+
========================================================= */
|
|
32
|
+
--st-primary-color: oklch(12.9% 0.042 264.695);
|
|
33
|
+
--st-primary-background: oklch(98.4% 0.003 247.858);
|
|
34
|
+
--st-neutral-50: var(--st-primary-background);
|
|
35
|
+
--st-neutral-950: var(--st-primary-color);
|
|
36
|
+
--st-neutral-100: oklch(from color-mix(in oklch, var(--st-neutral-950) 8%, var(--st-neutral-50)) l calc(c * 2.1) h);
|
|
37
|
+
--st-neutral-200: oklch(from color-mix(in oklch, var(--st-neutral-950) 15%, var(--st-neutral-50)) l calc(c * 3.0) h);
|
|
38
|
+
--st-neutral-300: oklch(from color-mix(in oklch, var(--st-neutral-950) 27%, var(--st-neutral-50)) l calc(c * 4.3) h);
|
|
39
|
+
--st-neutral-400: oklch(from color-mix(in oklch, var(--st-neutral-950) 36%, var(--st-neutral-50)) l calc(c * 5.2) h);
|
|
40
|
+
--st-neutral-500: oklch(from color-mix(in oklch, var(--st-neutral-950) 49%, var(--st-neutral-50)) l calc(c * 7.0) h);
|
|
41
|
+
--st-neutral-600: oklch(from color-mix(in oklch, var(--st-neutral-950) 69%, var(--st-neutral-50)) l calc(c * 5.4) h);
|
|
42
|
+
--st-neutral-700: oklch(from color-mix(in oklch, var(--st-neutral-950) 86%, var(--st-neutral-50)) l calc(c * 3.0) h);
|
|
43
|
+
--st-neutral-800: oklch(from color-mix(in oklch, var(--st-neutral-950) 93%, var(--st-neutral-50)) l calc(c * 2.3) h);
|
|
44
|
+
--st-neutral-900: oklch(from color-mix(in oklch, var(--st-neutral-950) 96%, var(--st-neutral-50)) l calc(c * 1.6) h);
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
/* Brand-like file-type colors are intentionally independent of the accent
|
|
48
|
+
seed (Word/Excel/PowerPoint have their own identity) — three extra,
|
|
49
|
+
narrowly-scoped primaries rather than derived shades. */
|
|
50
|
+
--st-primary-type-word: oklch(0.55 0.13 250);
|
|
51
|
+
--st-primary-type-excel: oklch(0.55 0.13 145);
|
|
52
|
+
--st-primary-type-powerpoint: oklch(0.55 0.13 40);
|
|
53
|
+
|
|
54
|
+
--st-primary-neutral: var(--st-neutral-50);
|
|
55
|
+
/* --st-brand-color is deliberately left undefined: set it (on :root) to
|
|
56
|
+
make the accent, the solid call-to-action buttons and checkboxes all
|
|
57
|
+
follow one host-app brand color. Unset, each keeps its own default. */
|
|
58
|
+
--st-primary-accent: var(--st-brand-color, var(--st-neutral-500));
|
|
59
|
+
--st-primary-danger: oklch(0.6 0.2 25);
|
|
60
|
+
--st-primary-warning: oklch(0.75 0.16 40);
|
|
61
|
+
--st-primary-success: oklch(0.55 0.13 145);
|
|
62
|
+
|
|
63
|
+
/* Pure white/black anchors for the color-mix() ramps below and the
|
|
64
|
+
"text/icon on a solid fill" token — not general-purpose literals. */
|
|
65
|
+
--st-primary-canvas: var(--st-neutral-50);
|
|
66
|
+
--st-primary-ink: var(--st-neutral-950);
|
|
67
|
+
|
|
68
|
+
--st-accent-subtle: color-mix(in oklch, var(--st-primary-accent) 8%, var(--st-primary-canvas));
|
|
69
|
+
--st-accent-border: color-mix(in oklch, var(--st-primary-accent) 22%, var(--st-primary-canvas));
|
|
70
|
+
--st-accent-muted: color-mix(in oklch, var(--st-primary-accent) 55%, var(--st-primary-canvas));
|
|
71
|
+
--st-accent-text: color-mix(in oklch, var(--st-primary-accent) 78%, var(--st-primary-ink));
|
|
72
|
+
|
|
73
|
+
--st-danger-subtle: color-mix(in oklch, var(--st-primary-danger) 10%, var(--st-primary-canvas));
|
|
74
|
+
--st-danger-border: color-mix(in oklch, var(--st-primary-danger) 28%, var(--st-primary-canvas));
|
|
75
|
+
--st-danger-text: color-mix(in oklch, var(--st-primary-danger) 70%, var(--st-primary-ink));
|
|
76
|
+
|
|
77
|
+
--st-warning-subtle: color-mix(in oklch, var(--st-primary-warning) 10%, var(--st-primary-canvas));
|
|
78
|
+
--st-warning-border: color-mix(in oklch, var(--st-primary-warning) 28%, var(--st-primary-canvas));
|
|
79
|
+
--st-warning-text: color-mix(in oklch, var(--st-primary-warning) 70%, var(--st-primary-ink));
|
|
80
|
+
|
|
81
|
+
--st-success-subtle: color-mix(in oklch, var(--st-primary-success) 20%, var(--st-primary-canvas));
|
|
82
|
+
--st-success-text: color-mix(in oklch, var(--st-primary-success) 70%, var(--st-primary-ink));
|
|
83
|
+
|
|
84
|
+
/* =========================================================
|
|
85
|
+
SEMANTIC TOKENS — what components actually consume.
|
|
86
|
+
========================================================= */
|
|
87
|
+
|
|
88
|
+
/* ---- Neutral surfaces & text ---- */
|
|
89
|
+
--st-color-page: var(--st-neutral-50);
|
|
90
|
+
--st-color-surface: var(--st-primary-canvas);
|
|
91
|
+
--st-color-subtle: var(--st-neutral-100);
|
|
92
|
+
--st-color-divider: var(--st-neutral-200);
|
|
93
|
+
--st-color-hover: var(--st-neutral-200);
|
|
94
|
+
--st-color-border: var(--st-neutral-300);
|
|
95
|
+
--st-color-skeleton: var(--st-neutral-300);
|
|
96
|
+
--st-color-folder-icon-bg: var(--st-neutral-300);
|
|
97
|
+
--st-color-border-strong: var(--st-neutral-400);
|
|
98
|
+
--st-color-text-faint: var(--st-neutral-600);
|
|
99
|
+
--st-color-text-muted: var(--st-neutral-600);
|
|
100
|
+
--st-color-text: var(--st-neutral-600);
|
|
101
|
+
--st-color-text-strong: var(--st-neutral-900);
|
|
102
|
+
|
|
103
|
+
/* Text/icon color for content sitting on a solid/dark fill (buttons,
|
|
104
|
+
avatars, active pills) — never hardcode "white" at the point of use. */
|
|
105
|
+
--st-color-on-solid: var(--st-primary-canvas);
|
|
106
|
+
|
|
107
|
+
/* ---- Accent ramp — derived from --st-primary-accent ---- */
|
|
108
|
+
--st-color-accent: var(--st-primary-accent);
|
|
109
|
+
--st-color-accent-subtle: var(--st-accent-subtle);
|
|
110
|
+
--st-color-accent-border: var(--st-accent-border);
|
|
111
|
+
--st-color-accent-muted: var(--st-accent-muted);
|
|
112
|
+
--st-color-accent-text: var(--st-accent-text);
|
|
113
|
+
|
|
114
|
+
/* ---- Semantic state ramps — derived from --st-primary-danger/warning/success ---- */
|
|
115
|
+
--st-color-danger: var(--st-primary-danger);
|
|
116
|
+
--st-color-danger-subtle: var(--st-danger-subtle);
|
|
117
|
+
--st-color-danger-border: var(--st-danger-border);
|
|
118
|
+
--st-color-danger-text: var(--st-danger-text);
|
|
119
|
+
|
|
120
|
+
--st-color-warning: var(--st-primary-warning);
|
|
121
|
+
--st-color-warning-subtle: var(--st-warning-subtle);
|
|
122
|
+
--st-color-warning-border: var(--st-warning-border);
|
|
123
|
+
--st-color-warning-text: var(--st-warning-text);
|
|
124
|
+
|
|
125
|
+
--st-color-success: var(--st-primary-success);
|
|
126
|
+
--st-color-success-subtle: var(--st-success-subtle);
|
|
127
|
+
--st-color-success-text: var(--st-success-text);
|
|
128
|
+
|
|
129
|
+
/* ---- File-type badge colors ---- */
|
|
130
|
+
--st-color-type-word: var(--st-primary-type-word);
|
|
131
|
+
--st-color-type-excel: var(--st-primary-type-excel);
|
|
132
|
+
--st-color-type-powerpoint: var(--st-primary-type-powerpoint);
|
|
133
|
+
|
|
134
|
+
/* ---- Standalone brand accent (favorites/star marker) ---- */
|
|
135
|
+
--st-favorite-accent: #f0b429;
|
|
136
|
+
|
|
137
|
+
/* ---- <st-status-pill> override points. Consumers set --st-status-hue
|
|
138
|
+
(or --st-status-bg/--st-status-color directly) on the host element;
|
|
139
|
+
these root defaults mean the token always resolves, so call sites
|
|
140
|
+
never need a fallback. ---- */
|
|
141
|
+
--st-status-hue: var(--st-neutral-hue);
|
|
142
|
+
--st-status-bg: oklch(0.95 0.05 var(--st-status-hue));
|
|
143
|
+
--st-status-color: oklch(0.4 0.13 var(--st-status-hue));
|
|
144
|
+
|
|
145
|
+
/* ---- Shadow tint — box-shadows are colors too, so they get tokens. ---- */
|
|
146
|
+
--st-shadow-color-subtle: var(--st-neutral-300);
|
|
147
|
+
--st-shadow-color-sm: var(--st-neutral-300);
|
|
148
|
+
--st-shadow-color-md: var(--st-neutral-300);
|
|
149
|
+
--st-shadow-color-lg: var(--st-neutral-300);
|
|
150
|
+
--st-shadow-color-xl: var(--st-neutral-300);
|
|
151
|
+
|
|
152
|
+
/* =========================================================
|
|
153
|
+
SPACING SCALE — padding/margin/gap/inset. Named by their px
|
|
154
|
+
value for exactness; override one step or the whole scale.
|
|
155
|
+
========================================================= */
|
|
156
|
+
--st-space-0: 0;
|
|
157
|
+
--st-space-2: 2px;
|
|
158
|
+
--st-space-3: 3px;
|
|
159
|
+
--st-space-4: 4px;
|
|
160
|
+
--st-space-5: 5px;
|
|
161
|
+
--st-space-6: 6px;
|
|
162
|
+
--st-space-7: 7px;
|
|
163
|
+
--st-space-8: 8px;
|
|
164
|
+
--st-space-9: 9px;
|
|
165
|
+
--st-space-10: 10px;
|
|
166
|
+
--st-space-11: 11px;
|
|
167
|
+
--st-space-12: 12px;
|
|
168
|
+
--st-space-14: 14px;
|
|
169
|
+
--st-space-16: 16px;
|
|
170
|
+
--st-space-18: 18px;
|
|
171
|
+
--st-space-20: 20px;
|
|
172
|
+
--st-space-22: 22px;
|
|
173
|
+
--st-space-24: 24px;
|
|
174
|
+
--st-space-28: 28px;
|
|
175
|
+
--st-space-30: 30px;
|
|
176
|
+
--st-space-32: 32px;
|
|
177
|
+
--st-space-40: 40px;
|
|
178
|
+
--st-space-44: 44px;
|
|
179
|
+
--st-space-48: 48px;
|
|
180
|
+
|
|
181
|
+
/* =========================================================
|
|
182
|
+
RADIUS SCALE
|
|
183
|
+
========================================================= */
|
|
184
|
+
--st-radius-none: 0;
|
|
185
|
+
--st-radius-xs: 4px;
|
|
186
|
+
--st-radius-sm: 8px;
|
|
187
|
+
--st-radius-md: 10px;
|
|
188
|
+
--st-radius-lg: 12px;
|
|
189
|
+
--st-radius-full: 999px;
|
|
190
|
+
--st-radius-circle: 50%;
|
|
191
|
+
|
|
192
|
+
/* =========================================================
|
|
193
|
+
CONTROL-SIZE SCALE — square-ish UI controls (checkboxes,
|
|
194
|
+
icon buttons, avatars, badges, table icon columns).
|
|
195
|
+
========================================================= */
|
|
196
|
+
--st-size-14: 14px;
|
|
197
|
+
--st-size-16: 16px;
|
|
198
|
+
--st-size-18: 18px;
|
|
199
|
+
--st-size-20: 20px;
|
|
200
|
+
--st-size-24: 24px;
|
|
201
|
+
--st-size-26: 26px;
|
|
202
|
+
--st-size-28: 28px;
|
|
203
|
+
--st-size-30: 30px;
|
|
204
|
+
--st-size-32: 32px;
|
|
205
|
+
--st-size-36: 36px;
|
|
206
|
+
--st-size-38: 38px;
|
|
207
|
+
--st-size-40: 40px;
|
|
208
|
+
|
|
209
|
+
/* =========================================================
|
|
210
|
+
TYPOGRAPHY TOKENS
|
|
211
|
+
========================================================= */
|
|
212
|
+
--st-font-family: system-ui, -apple-system, 'Segoe UI', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
|
213
|
+
|
|
214
|
+
--st-text-2xs: 10px;
|
|
215
|
+
--st-text-xs: 11px;
|
|
216
|
+
--st-text-sm: 12px;
|
|
217
|
+
--st-text-base: 13px;
|
|
218
|
+
--st-text-md: 14px;
|
|
219
|
+
--st-text-lg: 15px;
|
|
220
|
+
--st-text-xl: 16px;
|
|
221
|
+
--st-text-2xl: 20px;
|
|
222
|
+
|
|
223
|
+
--st-font-weight-regular: 400;
|
|
224
|
+
--st-font-weight-medium: 500;
|
|
225
|
+
--st-font-weight-semibold: 600;
|
|
226
|
+
--st-font-weight-bold: 700;
|
|
227
|
+
--st-font-weight-extrabold: 800;
|
|
228
|
+
|
|
229
|
+
--st-leading-none: 1;
|
|
230
|
+
--st-leading-snug: 1.35;
|
|
231
|
+
--st-leading-normal: 1.4;
|
|
232
|
+
|
|
233
|
+
--st-tracking-tight: -0.2px;
|
|
234
|
+
--st-tracking-normal: 0;
|
|
235
|
+
--st-tracking-wide: 0.3px;
|
|
236
|
+
--st-tracking-wider: 0.4px;
|
|
237
|
+
|
|
238
|
+
/* =========================================================
|
|
239
|
+
COMPONENT TOKENS — narrowly-scoped overrides for one piece
|
|
240
|
+
of chrome, each defaulting to a scale step above. Set them
|
|
241
|
+
on :root or on the component's host element, the same way
|
|
242
|
+
as --st-primary-color.
|
|
243
|
+
========================================================= */
|
|
244
|
+
|
|
245
|
+
/* ---- Wizard step heading/description (<st-template-hub>) ---- */
|
|
246
|
+
--st-step-heading-font-size: var(--st-text-2xl);
|
|
247
|
+
--st-step-heading-font-weight: var(--st-font-weight-bold);
|
|
248
|
+
--st-step-heading-color: var(--st-color-text-strong);
|
|
249
|
+
--st-step-description-font-size: var(--st-text-base);
|
|
250
|
+
--st-step-description-color: var(--st-color-text-muted);
|
|
251
|
+
|
|
252
|
+
/* ---- Buttons. --st-button-font-size sizes the wizard footer
|
|
253
|
+
(Back/Next/Finish/...); --st-button-font-size-sm the in-content
|
|
254
|
+
action buttons (Generate/Regenerate). The primary fill applies
|
|
255
|
+
to every solid call-to-action button. ---- */
|
|
256
|
+
--st-button-font-size: var(--st-text-md);
|
|
257
|
+
--st-button-font-size-sm: var(--st-text-base);
|
|
258
|
+
--st-button-font-weight: var(--st-font-weight-semibold);
|
|
259
|
+
--st-button-height: var(--st-size-40);
|
|
260
|
+
--st-button-radius: var(--st-radius-sm);
|
|
261
|
+
--st-button-primary-bg: var(--st-brand-color, var(--st-color-text-strong));
|
|
262
|
+
--st-button-primary-color: var(--st-color-on-solid);
|
|
263
|
+
--st-button-primary-font-weight: var(--st-font-weight-bold);
|
|
264
|
+
|
|
265
|
+
/* ---- Checkboxes/radios (native controls, tinted via accent-color).
|
|
266
|
+
`auto` = the browser's own color. ---- */
|
|
267
|
+
--st-checkbox-color: var(--st-brand-color, auto);
|
|
268
|
+
|
|
269
|
+
/* ---- Keyboard focus ring, an `outline` shorthand. `auto` = the
|
|
270
|
+
browser's own ring; e.g. `2px solid #0b5cff` for a custom one. ---- */
|
|
271
|
+
--st-focus-ring: auto;
|
|
272
|
+
--st-focus-ring-offset: 0px;
|
|
273
|
+
|
|
274
|
+
/* ---- Text inputs (search boxes, file names, new folder, pattern) ---- */
|
|
275
|
+
--st-input-font-family: var(--st-font-family);
|
|
276
|
+
--st-input-mono-font-family: ui-monospace, monospace;
|
|
277
|
+
--st-input-font-size: var(--st-text-base);
|
|
278
|
+
--st-input-color: var(--st-color-text-strong);
|
|
279
|
+
--st-input-bg: var(--st-color-surface);
|
|
280
|
+
--st-input-border-color: var(--st-color-border);
|
|
281
|
+
--st-input-radius: var(--st-radius-sm);
|
|
282
|
+
|
|
283
|
+
/* ---- Wizard frame (<st-template-hub>). Set --st-wizard-bg to
|
|
284
|
+
`transparent` to sit on the host app's own card/page. ---- */
|
|
285
|
+
--st-wizard-bg: var(--st-color-page);
|
|
286
|
+
--st-wizard-subheader-bg: var(--st-color-subtle);
|
|
287
|
+
--st-wizard-footer-bg: var(--st-color-surface);
|
|
288
|
+
--st-wizard-footer-height: 64px;
|
|
289
|
+
--st-wizard-border-color: var(--st-color-border);
|
|
290
|
+
--st-wizard-content-padding: var(--st-space-24) var(--st-space-32);
|
|
291
|
+
--st-wizard-content-padding-compact: var(--st-space-16) var(--st-space-18);
|
|
292
292
|
}
|