@botiverse/raft-ui 0.0.0-stage → 0.7.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/CHANGELOG.md +561 -0
- package/LICENSE +21 -0
- package/README.md +103 -2
- package/codemods/package-name.mjs +166 -0
- package/codemods/token-names.mjs +150 -0
- package/dist/cn.d.mts +5 -0
- package/dist/cn.mjs +48 -0
- package/dist/components/combobox-select/combobox-select.css +286 -0
- package/dist/components/float-button/float-button.css +316 -0
- package/dist/components/steps/otter-indicator.css +141 -0
- package/dist/components/steps/steps.css +370 -0
- package/dist/components/timeline/timeline.css +255 -0
- package/dist/dialog-CY6S-Xqf.mjs +505 -0
- package/dist/fonts.css +13 -0
- package/dist/foundation.css +623 -0
- package/dist/index-B3_j9XYd.d.mts +329 -0
- package/dist/index.d.mts +5114 -0
- package/dist/index.mjs +16442 -0
- package/dist/style.css +1315 -0
- package/dist/styles.css +391 -0
- package/dist/tokens.json +3811 -0
- package/dist/wip.d.mts +92 -0
- package/dist/wip.mjs +517 -0
- package/package.json +92 -3
- package/skills/raft-ui-critique/SKILL.md +167 -0
- package/skills/raft-ui-critique/agents/openai.yaml +4 -0
- package/skills/raft-ui-critique/references/theme-lenses.md +69 -0
- package/skills/raft-ui-guide/SKILL.md +96 -0
- package/skills/raft-ui-guide/agents/openai.yaml +4 -0
- package/skills/raft-ui-guide/rules/adoption.md +55 -0
- package/skills/raft-ui-guide/rules/composition.md +14 -0
- package/skills/raft-ui-guide/rules/conversation.md +15 -0
- package/skills/raft-ui-guide/rules/display.md +14 -0
- package/skills/raft-ui-guide/rules/feedback.md +13 -0
- package/skills/raft-ui-guide/rules/forms.md +13 -0
- package/skills/raft-ui-guide/rules/layout.md +15 -0
- package/skills/raft-ui-guide/rules/lookup.md +78 -0
- package/skills/raft-ui-guide/rules/overlays.md +13 -0
- package/skills/raft-ui-guide/rules/overview.md +30 -0
- package/skills/raft-ui-guide/rules/styling.md +17 -0
- package/skills/raft-ui-guide/rules/technical-overview.md +80 -0
package/dist/styles.css
ADDED
|
@@ -0,0 +1,391 @@
|
|
|
1
|
+
@import "./components/combobox-select/combobox-select.css";
|
|
2
|
+
@import "./foundation.css";
|
|
3
|
+
@import "./components/float-button/float-button.css";
|
|
4
|
+
@import "./components/timeline/timeline.css";
|
|
5
|
+
@import "./components/steps/steps.css";
|
|
6
|
+
@import "./components/steps/otter-indicator.css";
|
|
7
|
+
|
|
8
|
+
/* `dark:` follows the nearest explicit mode class, and before hydration the
|
|
9
|
+
system preference. A `.light` island inside a dark page re-enters light
|
|
10
|
+
context for its subtree (one level of nesting). */
|
|
11
|
+
@custom-variant dark {
|
|
12
|
+
&:where(:is(.dark, .dark *):not(:where(.dark .light, .dark .light *))) {
|
|
13
|
+
@slot;
|
|
14
|
+
}
|
|
15
|
+
@media (prefers-color-scheme: dark) {
|
|
16
|
+
&:where(
|
|
17
|
+
:is(:root:not(.light):not(.dark), :root:not(.light):not(.dark) *):not(
|
|
18
|
+
:where(:root:not(.light):not(.dark) .light, :root:not(.light):not(.dark) .light *)
|
|
19
|
+
)
|
|
20
|
+
) {
|
|
21
|
+
@slot;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@theme {
|
|
27
|
+
--color-black: oklch(0 0 0);
|
|
28
|
+
--color-white: oklch(1 0 0);
|
|
29
|
+
|
|
30
|
+
/* Bare palette utilities (`bg-palette-yellow`). The numbered ramps
|
|
31
|
+
(`--palette-yellow-400`) are plain variables in foundation.css and
|
|
32
|
+
deliberately not utilities; reach for semantic tokens first. */
|
|
33
|
+
--color-palette-yellow: var(--palette-yellow-400);
|
|
34
|
+
--color-palette-lavender: var(--palette-lavender-400);
|
|
35
|
+
--color-palette-pink: var(--palette-pink-400);
|
|
36
|
+
--color-palette-cyan: var(--palette-cyan-400);
|
|
37
|
+
--color-palette-orange: var(--palette-orange-400);
|
|
38
|
+
--color-palette-lime: var(--palette-lime-400);
|
|
39
|
+
--color-palette-red: var(--palette-red-400);
|
|
40
|
+
--color-palette-stone: var(--palette-stone-400);
|
|
41
|
+
--color-palette-cream: var(--palette-cream-200);
|
|
42
|
+
|
|
43
|
+
--ease-slide: cubic-bezier(0.32, 0.72, 0, 1);
|
|
44
|
+
|
|
45
|
+
/* Raft Design System shape scale: pixels are hard, containers are soft.
|
|
46
|
+
sticker = avatars, channel tiles, checkboxes, counts, inline marks;
|
|
47
|
+
chip = 22px tags and status chips; control = buttons, fields, rows, menu
|
|
48
|
+
items; container = cards, menus, composer, banners; dialog = dialogs and
|
|
49
|
+
sheet tops. Round (rounded-full) is only for switches and radios. */
|
|
50
|
+
--radius-sticker: 4px;
|
|
51
|
+
--radius-chip: 6px;
|
|
52
|
+
--radius-control: 8px;
|
|
53
|
+
--radius-container: 10px;
|
|
54
|
+
--radius-dialog: 16px;
|
|
55
|
+
|
|
56
|
+
/* Raft Design System type styles (size / line-height / weight). Grotesk is
|
|
57
|
+
what people say; pair the mono styles with `font-mono` for what machines
|
|
58
|
+
write (ids, times, counts, events, code). */
|
|
59
|
+
--text-hero: 40px;
|
|
60
|
+
--text-hero--line-height: 44px;
|
|
61
|
+
--text-hero--font-weight: 700;
|
|
62
|
+
--text-hero--letter-spacing: -0.03em;
|
|
63
|
+
--text-display: 34px;
|
|
64
|
+
--text-display--line-height: 40px;
|
|
65
|
+
--text-display--font-weight: 700;
|
|
66
|
+
--text-display--letter-spacing: -0.02em;
|
|
67
|
+
--text-title: 22px;
|
|
68
|
+
--text-title--line-height: 28px;
|
|
69
|
+
--text-title--font-weight: 700;
|
|
70
|
+
--text-title--letter-spacing: -0.01em;
|
|
71
|
+
--text-headline: 17px;
|
|
72
|
+
--text-headline--line-height: 22px;
|
|
73
|
+
--text-headline--font-weight: 700;
|
|
74
|
+
--text-body: 16px;
|
|
75
|
+
--text-body--line-height: 24px;
|
|
76
|
+
--text-subhead: 15px;
|
|
77
|
+
--text-subhead--line-height: 20px;
|
|
78
|
+
--text-callout: 14px;
|
|
79
|
+
--text-callout--line-height: 20px;
|
|
80
|
+
--text-footnote: 13px;
|
|
81
|
+
--text-footnote--line-height: 18px;
|
|
82
|
+
--text-caption: 12px;
|
|
83
|
+
--text-caption--line-height: 16px;
|
|
84
|
+
--text-caption--font-weight: 500;
|
|
85
|
+
--text-label: 11px;
|
|
86
|
+
--text-label--line-height: 13px;
|
|
87
|
+
--text-label--font-weight: 600;
|
|
88
|
+
--text-mono-meta: 12px;
|
|
89
|
+
--text-mono-meta--line-height: 16px;
|
|
90
|
+
--text-mono-code: 13px;
|
|
91
|
+
--text-mono-code--line-height: 20px;
|
|
92
|
+
|
|
93
|
+
/* Deprecated utility names, kept until raft-ui 1.0 (see codemods/token-names.mjs). */
|
|
94
|
+
--color-brutal-yellow: var(--palette-yellow-400);
|
|
95
|
+
--color-soft-signal: var(--palette-yellow-400);
|
|
96
|
+
--color-brutal-lavender: var(--palette-lavender-400);
|
|
97
|
+
--color-brutal-pink: var(--palette-pink-400);
|
|
98
|
+
--color-brutal-cyan: var(--palette-cyan-400);
|
|
99
|
+
--color-brutal-orange: var(--palette-orange-400);
|
|
100
|
+
--color-brutal-lime: var(--palette-lime-400);
|
|
101
|
+
--color-brutal-red: var(--palette-red-400);
|
|
102
|
+
--color-brutal-stone: var(--palette-stone-400);
|
|
103
|
+
--color-brutal-cream: var(--palette-cream-200);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
@theme inline {
|
|
107
|
+
--color-foreground: var(--foreground);
|
|
108
|
+
--color-foreground-muted: var(--foreground-muted);
|
|
109
|
+
--color-foreground-hint: var(--foreground-hint);
|
|
110
|
+
--color-foreground-disabled: var(--foreground-disabled);
|
|
111
|
+
--color-foreground-inverse: var(--foreground-inverse);
|
|
112
|
+
--color-foreground-active: var(--foreground-active);
|
|
113
|
+
--color-foreground-hover: var(--foreground-hover);
|
|
114
|
+
|
|
115
|
+
--color-layer-canvas: var(--layer-canvas);
|
|
116
|
+
--color-layer-sidebar: var(--layer-sidebar);
|
|
117
|
+
--color-layer-popover: var(--layer-popover);
|
|
118
|
+
--color-layer-backdrop: var(--layer-backdrop);
|
|
119
|
+
--color-layer-card: var(--layer-card);
|
|
120
|
+
--color-layer-hud: var(--layer-hud);
|
|
121
|
+
--color-foreground-on-hud: var(--foreground-on-hud);
|
|
122
|
+
--color-foreground-on-hud-muted: var(--foreground-on-hud-muted);
|
|
123
|
+
|
|
124
|
+
--color-fill-muted: var(--fill-muted);
|
|
125
|
+
--color-fill-strong: var(--fill-strong);
|
|
126
|
+
|
|
127
|
+
--color-line-strong: var(--line-strong);
|
|
128
|
+
--color-line-hairline: var(--line-hairline);
|
|
129
|
+
--color-line-field: var(--line-field);
|
|
130
|
+
--color-line-field-hover: var(--line-field-hover);
|
|
131
|
+
|
|
132
|
+
--color-ink: var(--ink);
|
|
133
|
+
--color-ink-2: var(--ink-2);
|
|
134
|
+
--color-ink-4: var(--ink-4);
|
|
135
|
+
--color-ink-6: var(--ink-6);
|
|
136
|
+
--color-ink-8: var(--ink-8);
|
|
137
|
+
--color-ink-10: var(--ink-10);
|
|
138
|
+
--color-ink-16: var(--ink-16);
|
|
139
|
+
--color-ink-20: var(--ink-20);
|
|
140
|
+
--color-ink-30: var(--ink-30);
|
|
141
|
+
--color-ink-40: var(--ink-40);
|
|
142
|
+
|
|
143
|
+
--color-brand: var(--brand-400);
|
|
144
|
+
--color-brand-50: var(--brand-50);
|
|
145
|
+
--color-brand-100: var(--brand-100);
|
|
146
|
+
--color-brand-200: var(--brand-200);
|
|
147
|
+
--color-brand-300: var(--brand-300);
|
|
148
|
+
--color-brand-400: var(--brand-400);
|
|
149
|
+
--color-brand-500: var(--brand-500);
|
|
150
|
+
--color-brand-600: var(--brand-600);
|
|
151
|
+
--color-brand-700: var(--brand-700);
|
|
152
|
+
--color-brand-800: var(--brand-800);
|
|
153
|
+
--color-brand-900: var(--brand-900);
|
|
154
|
+
--color-brand-950: var(--brand-950);
|
|
155
|
+
--color-brand-strong: var(--brand-strong);
|
|
156
|
+
--color-brand-soft: var(--brand-soft);
|
|
157
|
+
--color-brand-hover: var(--brand-hover);
|
|
158
|
+
--color-brand-active: var(--brand-active);
|
|
159
|
+
|
|
160
|
+
--color-attention: var(--attention-400);
|
|
161
|
+
--color-attention-50: var(--attention-50);
|
|
162
|
+
--color-attention-100: var(--attention-100);
|
|
163
|
+
--color-attention-200: var(--attention-200);
|
|
164
|
+
--color-attention-300: var(--attention-300);
|
|
165
|
+
--color-attention-400: var(--attention-400);
|
|
166
|
+
--color-attention-500: var(--attention-500);
|
|
167
|
+
--color-attention-600: var(--attention-600);
|
|
168
|
+
--color-attention-700: var(--attention-700);
|
|
169
|
+
--color-attention-800: var(--attention-800);
|
|
170
|
+
--color-attention-900: var(--attention-900);
|
|
171
|
+
--color-attention-950: var(--attention-950);
|
|
172
|
+
--color-attention-strong: var(--attention-strong);
|
|
173
|
+
--color-attention-soft: var(--attention-soft);
|
|
174
|
+
--color-attention-hover: var(--attention-hover);
|
|
175
|
+
--color-attention-active: var(--attention-active);
|
|
176
|
+
|
|
177
|
+
--color-info: var(--info);
|
|
178
|
+
--color-info-strong: var(--info-strong);
|
|
179
|
+
--color-info-muted: var(--info-muted);
|
|
180
|
+
--color-info-soft: var(--info-soft);
|
|
181
|
+
--color-info-hover: var(--info-hover);
|
|
182
|
+
--color-info-active: var(--info-active);
|
|
183
|
+
|
|
184
|
+
--color-success: var(--success);
|
|
185
|
+
--color-success-foreground: var(--success-foreground);
|
|
186
|
+
--color-success-strong: var(--success-strong);
|
|
187
|
+
--color-success-muted: var(--success-muted);
|
|
188
|
+
--color-success-soft: var(--success-soft);
|
|
189
|
+
|
|
190
|
+
--color-warning: var(--warning);
|
|
191
|
+
--color-warning-foreground: var(--warning-foreground);
|
|
192
|
+
--color-warning-strong: var(--warning-strong);
|
|
193
|
+
--color-warning-muted: var(--warning-muted);
|
|
194
|
+
--color-warning-soft: var(--warning-soft);
|
|
195
|
+
--color-warning-hover: var(--warning-hover);
|
|
196
|
+
--color-warning-active: var(--warning-active);
|
|
197
|
+
|
|
198
|
+
--color-danger: var(--danger);
|
|
199
|
+
--color-danger-foreground: var(--danger-foreground);
|
|
200
|
+
--color-danger-strong: var(--danger-strong);
|
|
201
|
+
--color-danger-muted: var(--danger-muted);
|
|
202
|
+
--color-danger-soft: var(--danger-soft);
|
|
203
|
+
--color-danger-hover: var(--danger-hover);
|
|
204
|
+
--color-danger-active: var(--danger-active);
|
|
205
|
+
|
|
206
|
+
--color-inactive: var(--inactive);
|
|
207
|
+
--color-inactive-foreground: var(--inactive-foreground);
|
|
208
|
+
--color-inactive-soft: var(--inactive-soft);
|
|
209
|
+
|
|
210
|
+
/* Raft Design System roles (stamped by every theme scope). */
|
|
211
|
+
--color-line-seam: var(--line-seam);
|
|
212
|
+
--color-layer-frame: var(--layer-frame);
|
|
213
|
+
--color-layer-frame-active: var(--layer-frame-active);
|
|
214
|
+
--color-line-frame-active: var(--line-frame-active);
|
|
215
|
+
--color-foreground-on-frame: var(--foreground-on-frame);
|
|
216
|
+
--color-foreground-on-frame-muted: var(--foreground-on-frame-muted);
|
|
217
|
+
--color-foreground-on-frame-active: var(--foreground-on-frame-active);
|
|
218
|
+
--color-fill-frame-pressed: var(--fill-frame-pressed);
|
|
219
|
+
--color-fill-pressed: var(--fill-pressed);
|
|
220
|
+
--color-layer-code: var(--layer-code);
|
|
221
|
+
--color-foreground-link: var(--foreground-link);
|
|
222
|
+
--color-sticker-ink: var(--sticker-ink);
|
|
223
|
+
--color-sticker-paper: var(--sticker-paper);
|
|
224
|
+
--color-sticker-edge: var(--sticker-edge);
|
|
225
|
+
--color-sticker-pressed: var(--sticker-pressed);
|
|
226
|
+
--color-presence-online: var(--presence-online);
|
|
227
|
+
--color-presence-busy: var(--presence-busy);
|
|
228
|
+
--color-presence-error: var(--presence-error);
|
|
229
|
+
--color-presence-offline: var(--presence-offline);
|
|
230
|
+
--color-presence-external: var(--presence-external);
|
|
231
|
+
|
|
232
|
+
/* Task-status scale for Tailwind (`bg-task-status-todo`, `text-task-status-*`,
|
|
233
|
+
…). One slot per state plus its soft wash / strong ink; all four theme
|
|
234
|
+
scopes in foundation.css define the underlying values. */
|
|
235
|
+
--color-task-status-todo: var(--task-status-todo);
|
|
236
|
+
--color-task-status-todo-soft: var(--task-status-todo-soft);
|
|
237
|
+
--color-task-status-todo-strong: var(--task-status-todo-strong);
|
|
238
|
+
--color-task-status-in-progress: var(--task-status-in-progress);
|
|
239
|
+
--color-task-status-in-progress-soft: var(--task-status-in-progress-soft);
|
|
240
|
+
--color-task-status-in-progress-strong: var(--task-status-in-progress-strong);
|
|
241
|
+
--color-task-status-in-review: var(--task-status-in-review);
|
|
242
|
+
--color-task-status-in-review-soft: var(--task-status-in-review-soft);
|
|
243
|
+
--color-task-status-in-review-strong: var(--task-status-in-review-strong);
|
|
244
|
+
--color-task-status-done: var(--task-status-done);
|
|
245
|
+
--color-task-status-done-soft: var(--task-status-done-soft);
|
|
246
|
+
--color-task-status-done-strong: var(--task-status-done-strong);
|
|
247
|
+
--color-task-status-closed: var(--task-status-closed);
|
|
248
|
+
--color-task-status-closed-soft: var(--task-status-closed-soft);
|
|
249
|
+
--color-task-status-closed-strong: var(--task-status-closed-strong);
|
|
250
|
+
|
|
251
|
+
--shadow-float: var(--elevation-float);
|
|
252
|
+
--shadow-sticker: var(--elevation-sticker);
|
|
253
|
+
--shadow-focus: var(--focus-ring);
|
|
254
|
+
|
|
255
|
+
--font-heading: var(--heading-font, system-ui, sans-serif);
|
|
256
|
+
--font-sans: var(--sans-font, system-ui, sans-serif);
|
|
257
|
+
--font-mono: var(--mono-font, ui-monospace, monospace);
|
|
258
|
+
/* ─── Field metric axis ─────────────────────────────────────────────────────
|
|
259
|
+
The first non-colour token axis in this file. It exists because a form
|
|
260
|
+
field had no declared metrics at all: `Input` got its height from `py-2`
|
|
261
|
+
plus inherited line-height, `SelectTrigger` borrowed the Button size scale
|
|
262
|
+
because it is built on Button, and a Select popup declared its own
|
|
263
|
+
typography with no relation to the field it belongs to. Three components,
|
|
264
|
+
three different sizes for the same value.
|
|
265
|
+
|
|
266
|
+
Consumers: `Input`, `Textarea`, the field variant of `SelectTrigger`, and
|
|
267
|
+
Select popup options. Textarea shares the Input typography contract while
|
|
268
|
+
retaining its independent min-height and resize behavior. Options share
|
|
269
|
+
font-size/weight/line-height with the trigger so a value does not change
|
|
270
|
+
size when the list opens; their height and padding stay independent,
|
|
271
|
+
because a list row is not a control and must not be stretched to the
|
|
272
|
+
field's height.
|
|
273
|
+
|
|
274
|
+
Raft's Select contract, not an industry rule — both conventions exist. */
|
|
275
|
+
--text-field: var(--field-font-size);
|
|
276
|
+
--text-field--line-height: var(--field-line-height);
|
|
277
|
+
--font-weight-field: var(--field-font-weight);
|
|
278
|
+
/* ─── Card-title metric axis ────────────────────────────────────────────────
|
|
279
|
+
Same pattern as the field axis, for CardTitle. Consumers that vertically
|
|
280
|
+
align a control (radio, checkbox) with a card title need the title's
|
|
281
|
+
line-height to size the alignment container — without it, the value must
|
|
282
|
+
be hard-coded per theme and drifts when the title recipe changes.
|
|
283
|
+
|
|
284
|
+
Consumers: `CardTitle`, plus any composition that lays a control beside a
|
|
285
|
+
card title (radio-card and checkbox-card patterns in the Raft web app). */
|
|
286
|
+
--text-card-title: var(--card-title-font-size);
|
|
287
|
+
--text-card-title--line-height: var(--card-title-line-height);
|
|
288
|
+
--font-weight-card-title: var(--card-title-font-weight);
|
|
289
|
+
|
|
290
|
+
/* Deprecated utility names, kept until raft-ui 1.0 (see codemods/token-names.mjs). */
|
|
291
|
+
--color-foreground-strong: var(--foreground);
|
|
292
|
+
--color-foreground-icon: var(--foreground-muted);
|
|
293
|
+
--color-foreground-placeholder: var(--foreground-hint);
|
|
294
|
+
--color-layer-canvas-muted: var(--layer-sidebar);
|
|
295
|
+
--color-layer-panel: var(--layer-canvas);
|
|
296
|
+
--color-layer-inset: var(--fill-muted);
|
|
297
|
+
--color-layer-hud-foreground: var(--foreground-on-hud);
|
|
298
|
+
--color-line: var(--line-seam);
|
|
299
|
+
--color-line-muted: var(--line-hairline);
|
|
300
|
+
--color-primary: var(--brand-400);
|
|
301
|
+
--color-primary-50: var(--brand-50);
|
|
302
|
+
--color-primary-100: var(--brand-100);
|
|
303
|
+
--color-primary-200: var(--brand-200);
|
|
304
|
+
--color-primary-300: var(--brand-300);
|
|
305
|
+
--color-primary-400: var(--brand-400);
|
|
306
|
+
--color-primary-500: var(--brand-500);
|
|
307
|
+
--color-primary-600: var(--brand-600);
|
|
308
|
+
--color-primary-700: var(--brand-700);
|
|
309
|
+
--color-primary-800: var(--brand-800);
|
|
310
|
+
--color-primary-900: var(--brand-900);
|
|
311
|
+
--color-primary-950: var(--brand-950);
|
|
312
|
+
--color-primary-strong: var(--brand-strong);
|
|
313
|
+
--color-primary-soft: var(--brand-soft);
|
|
314
|
+
--color-primary-hover: var(--brand-hover);
|
|
315
|
+
--color-primary-active: var(--brand-active);
|
|
316
|
+
--color-accent: var(--attention-400);
|
|
317
|
+
--color-accent-50: var(--attention-50);
|
|
318
|
+
--color-accent-100: var(--attention-100);
|
|
319
|
+
--color-accent-200: var(--attention-200);
|
|
320
|
+
--color-accent-300: var(--attention-300);
|
|
321
|
+
--color-accent-400: var(--attention-400);
|
|
322
|
+
--color-accent-500: var(--attention-500);
|
|
323
|
+
--color-accent-600: var(--attention-600);
|
|
324
|
+
--color-accent-700: var(--attention-700);
|
|
325
|
+
--color-accent-800: var(--attention-800);
|
|
326
|
+
--color-accent-900: var(--attention-900);
|
|
327
|
+
--color-accent-950: var(--attention-950);
|
|
328
|
+
--color-accent-strong: var(--attention-strong);
|
|
329
|
+
--color-accent-soft: var(--attention-soft);
|
|
330
|
+
--color-accent-hover: var(--attention-hover);
|
|
331
|
+
--color-accent-active: var(--attention-active);
|
|
332
|
+
--color-secondary: var(--secondary-400);
|
|
333
|
+
--color-secondary-50: var(--secondary-50);
|
|
334
|
+
--color-secondary-100: var(--secondary-100);
|
|
335
|
+
--color-secondary-200: var(--secondary-200);
|
|
336
|
+
--color-secondary-300: var(--secondary-300);
|
|
337
|
+
--color-secondary-400: var(--secondary-400);
|
|
338
|
+
--color-secondary-500: var(--secondary-500);
|
|
339
|
+
--color-secondary-600: var(--secondary-600);
|
|
340
|
+
--color-secondary-700: var(--secondary-700);
|
|
341
|
+
--color-secondary-800: var(--secondary-800);
|
|
342
|
+
--color-secondary-900: var(--secondary-900);
|
|
343
|
+
--color-secondary-950: var(--secondary-950);
|
|
344
|
+
--shadow-raft-xs: var(--theme-shadow-xs);
|
|
345
|
+
--shadow-raft-sm: var(--theme-shadow-sm);
|
|
346
|
+
--shadow-raft-md: var(--theme-shadow-md);
|
|
347
|
+
--shadow-raft-lg: var(--elevation-float);
|
|
348
|
+
--shadow-raft-xl: var(--elevation-float);
|
|
349
|
+
--shadow-raft-float: var(--elevation-float);
|
|
350
|
+
--shadow-raft-sticker: var(--elevation-sticker);
|
|
351
|
+
--shadow-raft-focus: var(--focus-ring);
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
*,
|
|
355
|
+
::before,
|
|
356
|
+
::after {
|
|
357
|
+
-webkit-font-smoothing: antialiased;
|
|
358
|
+
-moz-osx-font-smoothing: grayscale;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
body {
|
|
362
|
+
position: relative;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
@utility image-transparency-bg {
|
|
366
|
+
--checker-cell: light-dark(oklch(0.1813 0.00497 17.62 / 0.12), oklch(1 0 0 / 0.1));
|
|
367
|
+
background-color: light-dark(oklch(1 0 0), oklch(0.23 0 0));
|
|
368
|
+
background-image:
|
|
369
|
+
linear-gradient(45deg, var(--checker-cell) 25%, transparent 25%),
|
|
370
|
+
linear-gradient(-45deg, var(--checker-cell) 25%, transparent 25%),
|
|
371
|
+
linear-gradient(45deg, transparent 75%, var(--checker-cell) 75%),
|
|
372
|
+
linear-gradient(-45deg, transparent 75%, var(--checker-cell) 75%);
|
|
373
|
+
background-position:
|
|
374
|
+
0 0,
|
|
375
|
+
0 8px,
|
|
376
|
+
8px -8px,
|
|
377
|
+
-8px 0;
|
|
378
|
+
background-size: 16px 16px;
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
/* Raft Design System press feedback: hover and press lay one overlay over the
|
|
382
|
+
resting colour instead of swapping it, so a control keeps its identity.
|
|
383
|
+
Paper controls take the 8% ink wash (fill-pressed); colour stickers take
|
|
384
|
+
sticker-pressed (12% ink in both modes). */
|
|
385
|
+
@utility press-overlay {
|
|
386
|
+
background-image: linear-gradient(var(--fill-pressed), var(--fill-pressed));
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
@utility press-overlay-sticker {
|
|
390
|
+
background-image: linear-gradient(var(--sticker-pressed), var(--sticker-pressed));
|
|
391
|
+
}
|