@cocoar/ui 0.1.0-beta.99 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -11
- package/fesm2022/cocoar-ui-components.mjs +9549 -0
- package/fesm2022/cocoar-ui-components.mjs.map +1 -0
- package/fesm2022/cocoar-ui-menu.mjs +1082 -0
- package/fesm2022/cocoar-ui-menu.mjs.map +1 -0
- package/fesm2022/cocoar-ui-overlay.mjs +1284 -0
- package/fesm2022/cocoar-ui-overlay.mjs.map +1 -0
- package/fesm2022/cocoar-ui.mjs +8 -0
- package/fesm2022/cocoar-ui.mjs.map +1 -0
- package/llms-full.txt +2303 -0
- package/llms.txt +82 -0
- package/package.json +38 -19
- package/styles/all.css +9 -0
- package/styles/components.css +127 -0
- package/styles/tokens/all.css +38 -0
- package/styles/tokens/code-block.css +72 -0
- package/styles/tokens/colors-primitives-dark.css +84 -0
- package/styles/tokens/colors-primitives-light.css +75 -0
- package/styles/tokens/colors-usage.css +272 -0
- package/styles/tokens/components-shared.css +42 -0
- package/styles/tokens/elevation.css +30 -0
- package/styles/tokens/focus.css +30 -0
- package/styles/tokens/layers.css +17 -0
- package/styles/tokens/menu.css +53 -0
- package/styles/tokens/motion.css +93 -0
- package/styles/tokens/new-components.css +104 -0
- package/styles/tokens/radius.css +15 -0
- package/styles/tokens/select-overlay.css +40 -0
- package/styles/tokens/shadows.css +38 -0
- package/styles/tokens/sidebar.css +67 -0
- package/styles/tokens/spacing.css +16 -0
- package/styles/tokens/stroke-width.css +12 -0
- package/styles/tokens/type-primitives.css +23 -0
- package/styles/tokens/typography-responsive.css +44 -0
- package/styles/tokens/typography.css +41 -0
- package/types/cocoar-ui-components.d.ts +3719 -0
- package/types/cocoar-ui-menu.d.ts +326 -0
- package/types/cocoar-ui-overlay.d.ts +301 -0
- package/types/cocoar-ui.d.ts +3 -0
- package/src/index.d.ts +0 -4
- package/src/index.d.ts.map +0 -1
- package/src/index.js +0 -5
- package/src/index.js.map +0 -1
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cocoar Design System - Semantic Color Tokens
|
|
3
|
+
*
|
|
4
|
+
* Maps primitive colors to semantic usage contexts.
|
|
5
|
+
* Uses CSS variable references for automatic dark mode support.
|
|
6
|
+
*
|
|
7
|
+
* NAMING PATTERN:
|
|
8
|
+
* --coar-{usage}-{category}-{variant}
|
|
9
|
+
*
|
|
10
|
+
* Usage: background | border | text | icon
|
|
11
|
+
* Category: neutral | brand | accent | semantic-{status}
|
|
12
|
+
* Variant: primary | secondary | tertiary | bold | subtle | disabled
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/* ============================================================================
|
|
16
|
+
LIGHT MODE (default)
|
|
17
|
+
============================================================================ */
|
|
18
|
+
|
|
19
|
+
:root,
|
|
20
|
+
.light-mode {
|
|
21
|
+
/* ==========================================================================
|
|
22
|
+
NEUTRAL - Default UI colors (gray scale)
|
|
23
|
+
========================================================================== */
|
|
24
|
+
|
|
25
|
+
/* Background */
|
|
26
|
+
--coar-background-neutral-primary: var(--coar-color-white);
|
|
27
|
+
--coar-background-neutral-secondary: var(--coar-color-gray-50);
|
|
28
|
+
--coar-background-neutral-tertiary: var(--coar-color-gray-100);
|
|
29
|
+
--coar-background-neutral-disabled: var(--coar-color-gray-200);
|
|
30
|
+
--coar-background-neutral-active: var(--coar-color-gray-200);
|
|
31
|
+
|
|
32
|
+
/* Text */
|
|
33
|
+
--coar-text-neutral-primary: var(--coar-color-gray-900);
|
|
34
|
+
--coar-text-neutral-secondary: var(--coar-color-gray-800);
|
|
35
|
+
--coar-text-neutral-tertiary: var(--coar-color-gray-700);
|
|
36
|
+
--coar-text-neutral-disabled: var(--coar-color-gray-500);
|
|
37
|
+
|
|
38
|
+
/* Border */
|
|
39
|
+
--coar-border-neutral-primary: var(--coar-color-gray-900);
|
|
40
|
+
--coar-border-neutral-secondary: var(--coar-color-gray-800);
|
|
41
|
+
--coar-border-neutral-tertiary: var(--coar-color-gray-200);
|
|
42
|
+
--coar-border-neutral: var(--coar-color-gray-200); /* Alias for tertiary - used in dropdowns */
|
|
43
|
+
|
|
44
|
+
/* Icon */
|
|
45
|
+
--coar-icon-neutral-primary: var(--coar-color-gray-900);
|
|
46
|
+
--coar-icon-neutral-secondary: var(--coar-color-gray-800);
|
|
47
|
+
--coar-icon-neutral-tertiary: var(--coar-color-gray-700);
|
|
48
|
+
--coar-icon-neutral-disabled: var(--coar-color-gray-500);
|
|
49
|
+
|
|
50
|
+
/* ==========================================================================
|
|
51
|
+
BRAND - Company identity colors (slate)
|
|
52
|
+
========================================================================== */
|
|
53
|
+
|
|
54
|
+
/* Background */
|
|
55
|
+
--coar-background-brand-primary: var(--coar-color-slate-500);
|
|
56
|
+
--coar-background-brand-secondary: var(--coar-color-slate-200);
|
|
57
|
+
--coar-background-brand-tertiary: var(--coar-color-slate-50);
|
|
58
|
+
|
|
59
|
+
/* Text */
|
|
60
|
+
--coar-text-brand-primary: var(--coar-color-slate-800);
|
|
61
|
+
|
|
62
|
+
/* Border */
|
|
63
|
+
--coar-border-brand-primary: var(--coar-color-slate-800);
|
|
64
|
+
|
|
65
|
+
/* Icon */
|
|
66
|
+
--coar-icon-brand-primary: var(--coar-color-slate-800);
|
|
67
|
+
|
|
68
|
+
/* ==========================================================================
|
|
69
|
+
ACCENT - Interactive/action colors (themeable)
|
|
70
|
+
Used for: primary buttons, links, focus rings, active states
|
|
71
|
+
THEMING: Override --coar-color-accent-* primitives to change these
|
|
72
|
+
========================================================================== */
|
|
73
|
+
|
|
74
|
+
/* Background */
|
|
75
|
+
--coar-background-accent-primary: var(--coar-color-accent-700);
|
|
76
|
+
--coar-background-accent-secondary: var(--coar-color-accent-200);
|
|
77
|
+
--coar-background-accent-tertiary: var(--coar-color-accent-50);
|
|
78
|
+
--coar-background-accent-hover: var(--coar-color-accent-800);
|
|
79
|
+
--coar-background-accent-active: var(--coar-color-accent-900);
|
|
80
|
+
--coar-background-accent-tertiary-active: var(--coar-color-accent-300);
|
|
81
|
+
|
|
82
|
+
/* Text */
|
|
83
|
+
--coar-text-accent-primary: var(--coar-color-accent-700);
|
|
84
|
+
--coar-text-accent-secondary: var(--coar-color-accent-600);
|
|
85
|
+
|
|
86
|
+
/* Border */
|
|
87
|
+
--coar-border-accent-primary: var(--coar-color-accent-500);
|
|
88
|
+
--coar-border-accent-secondary: var(--coar-color-accent-400);
|
|
89
|
+
|
|
90
|
+
/* Icon */
|
|
91
|
+
--coar-icon-accent-primary: var(--coar-color-accent-700);
|
|
92
|
+
|
|
93
|
+
/* ==========================================================================
|
|
94
|
+
SEMANTIC - Status/feedback colors (success, error, warning, info)
|
|
95
|
+
Bold = high emphasis (solid backgrounds, strong text)
|
|
96
|
+
Subtle = low emphasis (light backgrounds, muted borders)
|
|
97
|
+
========================================================================== */
|
|
98
|
+
|
|
99
|
+
/* Success (green) */
|
|
100
|
+
--coar-background-semantic-success-bold: var(--coar-color-green-600);
|
|
101
|
+
--coar-background-semantic-success-subtle: var(--coar-color-green-100);
|
|
102
|
+
--coar-text-semantic-success-bold: var(--coar-color-green-800);
|
|
103
|
+
--coar-text-semantic-success-subtle: var(--coar-color-green-700);
|
|
104
|
+
--coar-border-semantic-success-bold: var(--coar-color-green-800);
|
|
105
|
+
--coar-border-semantic-success-subtle: var(--coar-color-green-200);
|
|
106
|
+
--coar-icon-semantic-success-bold: var(--coar-color-green-800);
|
|
107
|
+
--coar-icon-semantic-success-subtle: var(--coar-color-green-700);
|
|
108
|
+
|
|
109
|
+
/* Error (red) */
|
|
110
|
+
--coar-background-semantic-error-bold: var(--coar-color-red-600);
|
|
111
|
+
--coar-background-semantic-error-hover: var(--coar-color-red-700);
|
|
112
|
+
--coar-background-semantic-error-active: var(--coar-color-red-800);
|
|
113
|
+
--coar-background-semantic-error-subtle: var(--coar-color-red-100);
|
|
114
|
+
--coar-text-semantic-error-bold: var(--coar-color-red-800);
|
|
115
|
+
--coar-text-semantic-error-subtle: var(--coar-color-red-700);
|
|
116
|
+
--coar-border-semantic-error-bold: var(--coar-color-red-800);
|
|
117
|
+
--coar-border-semantic-error-subtle: var(--coar-color-red-200);
|
|
118
|
+
--coar-icon-semantic-error-bold: var(--coar-color-red-800);
|
|
119
|
+
--coar-icon-semantic-error-subtle: var(--coar-color-red-700);
|
|
120
|
+
|
|
121
|
+
/* Warning (amber) */
|
|
122
|
+
--coar-background-semantic-warning-bold: var(--coar-color-amber-600);
|
|
123
|
+
--coar-background-semantic-warning-subtle: var(--coar-color-amber-100);
|
|
124
|
+
--coar-text-semantic-warning-bold: var(--coar-color-amber-900);
|
|
125
|
+
--coar-text-semantic-warning-subtle: var(--coar-color-amber-800);
|
|
126
|
+
--coar-border-semantic-warning-bold: var(--coar-color-amber-900);
|
|
127
|
+
--coar-border-semantic-warning-subtle: var(--coar-color-amber-200);
|
|
128
|
+
--coar-icon-semantic-warning-bold: var(--coar-color-amber-900);
|
|
129
|
+
--coar-icon-semantic-warning-subtle: var(--coar-color-amber-800);
|
|
130
|
+
|
|
131
|
+
/* Info (slate blue) */
|
|
132
|
+
--coar-background-semantic-info-bold: var(--coar-color-slate-700);
|
|
133
|
+
--coar-background-semantic-info-subtle: var(--coar-color-slate-100);
|
|
134
|
+
--coar-text-semantic-info-bold: var(--coar-color-white);
|
|
135
|
+
--coar-text-semantic-info-subtle: var(--coar-color-slate-700);
|
|
136
|
+
--coar-border-semantic-info-bold: var(--coar-color-slate-900);
|
|
137
|
+
--coar-border-semantic-info-subtle: var(--coar-color-slate-200);
|
|
138
|
+
--coar-icon-semantic-info-bold: var(--coar-color-white);
|
|
139
|
+
--coar-icon-semantic-info-subtle: var(--coar-color-slate-700);
|
|
140
|
+
|
|
141
|
+
/* ==========================================================================
|
|
142
|
+
SPECIAL PURPOSE
|
|
143
|
+
========================================================================== */
|
|
144
|
+
|
|
145
|
+
/* White/light text for use on bold/colored surfaces
|
|
146
|
+
Used for: text on primary buttons, badges, bold semantic backgrounds */
|
|
147
|
+
--coar-text-on-bold: var(--coar-color-white);
|
|
148
|
+
|
|
149
|
+
/* ==========================================================================
|
|
150
|
+
SURFACE - Elevated surfaces for form controls and interactive elements
|
|
151
|
+
In light mode, inputs are white. In dark mode, they're slightly elevated.
|
|
152
|
+
========================================================================== */
|
|
153
|
+
|
|
154
|
+
/* Input surfaces - backgrounds for form controls */
|
|
155
|
+
--coar-surface-input: var(--coar-color-white);
|
|
156
|
+
--coar-surface-input-disabled: var(--coar-color-gray-100);
|
|
157
|
+
|
|
158
|
+
/* Input borders - more visible than neutral-tertiary */
|
|
159
|
+
--coar-border-input: var(--coar-color-gray-300);
|
|
160
|
+
--coar-border-input-hover: var(--coar-color-gray-400);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/* ============================================================================
|
|
164
|
+
DARK MODE
|
|
165
|
+
Only override values that change - inherits everything else from light mode
|
|
166
|
+
============================================================================ */
|
|
167
|
+
|
|
168
|
+
:root.dark-mode,
|
|
169
|
+
.dark-mode {
|
|
170
|
+
/* ==========================================================================
|
|
171
|
+
NEUTRAL - Invert the gray scale
|
|
172
|
+
Background uses lighter grays to allow for shadows and depth
|
|
173
|
+
========================================================================== */
|
|
174
|
+
|
|
175
|
+
/* Background */
|
|
176
|
+
--coar-background-neutral-primary: var(--coar-color-gray-200);
|
|
177
|
+
--coar-background-neutral-secondary: var(--coar-color-gray-100);
|
|
178
|
+
--coar-background-neutral-tertiary: var(--coar-color-gray-50);
|
|
179
|
+
--coar-background-neutral-active: var(--coar-color-gray-300);
|
|
180
|
+
|
|
181
|
+
/* Text */
|
|
182
|
+
--coar-text-neutral-primary: var(--coar-color-gray-900);
|
|
183
|
+
--coar-text-neutral-secondary: var(--coar-color-gray-700);
|
|
184
|
+
--coar-text-neutral-tertiary: var(--coar-color-gray-600);
|
|
185
|
+
|
|
186
|
+
/* Border */
|
|
187
|
+
--coar-border-neutral-primary: var(--coar-color-gray-700);
|
|
188
|
+
--coar-border-neutral-secondary: var(--coar-color-gray-600);
|
|
189
|
+
--coar-border-neutral-tertiary: var(--coar-color-gray-300);
|
|
190
|
+
|
|
191
|
+
/* Icon */
|
|
192
|
+
--coar-icon-neutral-primary: var(--coar-color-gray-900);
|
|
193
|
+
--coar-icon-neutral-secondary: var(--coar-color-gray-700);
|
|
194
|
+
--coar-icon-neutral-tertiary: var(--coar-color-gray-600);
|
|
195
|
+
|
|
196
|
+
/* ==========================================================================
|
|
197
|
+
ACCENT - Lighter values for visibility on dark backgrounds
|
|
198
|
+
========================================================================== */
|
|
199
|
+
|
|
200
|
+
/* Background */
|
|
201
|
+
--coar-background-accent-primary: var(--coar-color-accent-500);
|
|
202
|
+
--coar-background-accent-secondary: var(--coar-color-accent-300);
|
|
203
|
+
--coar-background-accent-tertiary: var(--coar-color-accent-100);
|
|
204
|
+
--coar-background-accent-hover: var(--coar-color-accent-400);
|
|
205
|
+
--coar-background-accent-active: var(--coar-color-accent-300);
|
|
206
|
+
--coar-background-accent-tertiary-active: var(--coar-color-accent-400);
|
|
207
|
+
|
|
208
|
+
/* Text */
|
|
209
|
+
--coar-text-accent-primary: var(--coar-color-accent-500);
|
|
210
|
+
--coar-text-accent-secondary: var(--coar-color-accent-400);
|
|
211
|
+
|
|
212
|
+
/* ==========================================================================
|
|
213
|
+
SEMANTIC - Adjusted for dark backgrounds
|
|
214
|
+
Bold backgrounds are slightly lighter for better contrast
|
|
215
|
+
========================================================================== */
|
|
216
|
+
|
|
217
|
+
/* Success */
|
|
218
|
+
--coar-background-semantic-success-bold: var(--coar-color-green-500);
|
|
219
|
+
--coar-background-semantic-success-subtle: var(--coar-color-green-200);
|
|
220
|
+
--coar-text-semantic-success-bold: var(--coar-color-green-900);
|
|
221
|
+
--coar-text-semantic-success-subtle: var(--coar-color-green-700);
|
|
222
|
+
--coar-border-semantic-success-bold: var(--coar-color-green-600);
|
|
223
|
+
--coar-border-semantic-success-subtle: var(--coar-color-green-300);
|
|
224
|
+
--coar-icon-semantic-success-bold: var(--coar-color-green-900);
|
|
225
|
+
--coar-icon-semantic-success-subtle: var(--coar-color-green-700);
|
|
226
|
+
|
|
227
|
+
/* Error */
|
|
228
|
+
--coar-background-semantic-error-bold: var(--coar-color-red-500);
|
|
229
|
+
--coar-background-semantic-error-hover: var(--coar-color-red-400);
|
|
230
|
+
--coar-background-semantic-error-active: var(--coar-color-red-300);
|
|
231
|
+
--coar-background-semantic-error-subtle: var(--coar-color-red-200);
|
|
232
|
+
--coar-text-semantic-error-bold: var(--coar-color-red-900);
|
|
233
|
+
--coar-text-semantic-error-subtle: var(--coar-color-red-700);
|
|
234
|
+
--coar-border-semantic-error-bold: var(--coar-color-red-600);
|
|
235
|
+
--coar-border-semantic-error-subtle: var(--coar-color-red-300);
|
|
236
|
+
--coar-icon-semantic-error-bold: var(--coar-color-red-900);
|
|
237
|
+
--coar-icon-semantic-error-subtle: var(--coar-color-red-700);
|
|
238
|
+
|
|
239
|
+
/* Warning */
|
|
240
|
+
--coar-background-semantic-warning-bold: var(--coar-color-amber-400);
|
|
241
|
+
--coar-background-semantic-warning-subtle: var(--coar-color-amber-200);
|
|
242
|
+
--coar-text-semantic-warning-bold: var(--coar-color-amber-900);
|
|
243
|
+
--coar-text-semantic-warning-subtle: var(--coar-color-amber-800);
|
|
244
|
+
--coar-border-semantic-warning-bold: var(--coar-color-amber-500);
|
|
245
|
+
--coar-border-semantic-warning-subtle: var(--coar-color-amber-300);
|
|
246
|
+
--coar-icon-semantic-warning-bold: var(--coar-color-amber-900);
|
|
247
|
+
--coar-icon-semantic-warning-subtle: var(--coar-color-amber-800);
|
|
248
|
+
|
|
249
|
+
/* Info */
|
|
250
|
+
--coar-background-semantic-info-bold: var(--coar-color-slate-400);
|
|
251
|
+
--coar-background-semantic-info-subtle: var(--coar-color-slate-300);
|
|
252
|
+
--coar-text-semantic-info-bold: var(--coar-color-slate-50);
|
|
253
|
+
--coar-text-semantic-info-subtle: var(--coar-color-slate-700);
|
|
254
|
+
--coar-border-semantic-info-bold: var(--coar-color-slate-600);
|
|
255
|
+
--coar-border-semantic-info-subtle: var(--coar-color-slate-400);
|
|
256
|
+
--coar-icon-semantic-info-bold: var(--coar-color-slate-50);
|
|
257
|
+
--coar-icon-semantic-info-subtle: var(--coar-color-slate-700);
|
|
258
|
+
|
|
259
|
+
/* ==========================================================================
|
|
260
|
+
SURFACE - Input surfaces in dark mode are slightly elevated from page bg
|
|
261
|
+
Creates visual depth hierarchy: page bg (gray-200) → card (gray-100) → input (gray-50)
|
|
262
|
+
Note: In dark mode primitives, gray-50 is #18181b which is darker than page bg
|
|
263
|
+
========================================================================== */
|
|
264
|
+
|
|
265
|
+
/* Input surfaces - slightly lighter than page background for visibility */
|
|
266
|
+
--coar-surface-input: var(--coar-color-gray-100);
|
|
267
|
+
--coar-surface-input-disabled: var(--coar-color-gray-50);
|
|
268
|
+
|
|
269
|
+
/* Input borders - visible on dark backgrounds */
|
|
270
|
+
--coar-border-input: var(--coar-color-gray-400);
|
|
271
|
+
--coar-border-input-hover: var(--coar-color-gray-500);
|
|
272
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cocoar Design System - Shared Component Size Tokens
|
|
3
|
+
*
|
|
4
|
+
* These tokens define the shared sizing system used across
|
|
5
|
+
* buttons, inputs, labels, and other form elements.
|
|
6
|
+
*
|
|
7
|
+
* Component-specific tokens (button, input, label, card, etc.)
|
|
8
|
+
* are now defined in their respective component token files
|
|
9
|
+
* within @cocoar/ui/components.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
:root {
|
|
13
|
+
/* ========================================
|
|
14
|
+
COMPONENT SIZE SYSTEM
|
|
15
|
+
Shared sizing tokens for consistent component sizes
|
|
16
|
+
across buttons, inputs, labels, and other form elements
|
|
17
|
+
======================================== */
|
|
18
|
+
|
|
19
|
+
/* Component Heights */
|
|
20
|
+
--coar-component-xs-height: 27px;
|
|
21
|
+
--coar-component-s-height: 32px;
|
|
22
|
+
--coar-component-m-height: 40px;
|
|
23
|
+
--coar-component-l-height: 48px;
|
|
24
|
+
|
|
25
|
+
/* Component Font Sizes */
|
|
26
|
+
--coar-component-xs-font-size: 11px;
|
|
27
|
+
--coar-component-s-font-size: 13px;
|
|
28
|
+
--coar-component-m-font-size: 14px;
|
|
29
|
+
--coar-component-l-font-size: 16px;
|
|
30
|
+
|
|
31
|
+
/* Component Label Font Sizes (slightly smaller for labels) */
|
|
32
|
+
--coar-component-xs-label-font-size: 11px;
|
|
33
|
+
--coar-component-s-label-font-size: 13px;
|
|
34
|
+
--coar-component-m-label-font-size: 14px;
|
|
35
|
+
--coar-component-l-label-font-size: 15px;
|
|
36
|
+
|
|
37
|
+
/* Component Label Margins */
|
|
38
|
+
--coar-component-xs-label-margin: 4px;
|
|
39
|
+
--coar-component-s-label-margin: 6px;
|
|
40
|
+
--coar-component-m-label-margin: 8px;
|
|
41
|
+
--coar-component-l-label-margin: 10px;
|
|
42
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cocoar Design System - Elevation Tokens
|
|
3
|
+
*
|
|
4
|
+
* Semantic elevation levels for UI depth hierarchy.
|
|
5
|
+
* Elevation describes how "raised" an element appears from the surface.
|
|
6
|
+
*
|
|
7
|
+
* These tokens reference shadow primitives from shadows.css,
|
|
8
|
+
* providing a semantic layer for component usage.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
:root {
|
|
12
|
+
/* ========================================
|
|
13
|
+
SEMANTIC ELEVATION (usage intent)
|
|
14
|
+
======================================== */
|
|
15
|
+
|
|
16
|
+
/* No elevation - flat on the surface */
|
|
17
|
+
--coar-elevation-none: none;
|
|
18
|
+
|
|
19
|
+
/* Low elevation - subtle lift for grouped content */
|
|
20
|
+
--coar-elevation-low: var(--coar-shadow-s);
|
|
21
|
+
|
|
22
|
+
/* Medium elevation - cards, panels, raised containers */
|
|
23
|
+
--coar-elevation-medium: var(--coar-shadow-m);
|
|
24
|
+
|
|
25
|
+
/* High elevation - dropdowns, popovers, tooltips */
|
|
26
|
+
--coar-elevation-high: var(--coar-shadow-l);
|
|
27
|
+
|
|
28
|
+
/* Highest elevation - modals, dialogs, overlays */
|
|
29
|
+
--coar-elevation-highest: var(--coar-shadow-xl);
|
|
30
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Focus Tokens
|
|
3
|
+
* Part of the global token set (not component-specific)
|
|
4
|
+
* Used by: buttons, inputs, dropdowns, checkboxes, tabs, lists, menus, etc.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
:root {
|
|
8
|
+
/* The visible color of the focus ring */
|
|
9
|
+
--coar-focus-color: var(--coar-color-accent-300);
|
|
10
|
+
|
|
11
|
+
/* The width of the focus outline or ring */
|
|
12
|
+
--coar-focus-width: 3px;
|
|
13
|
+
|
|
14
|
+
/* Optional offset between the component and the ring */
|
|
15
|
+
--coar-focus-offset: 2px;
|
|
16
|
+
|
|
17
|
+
/* Style: solid, dashed, dotted (rare), or even none */
|
|
18
|
+
--coar-focus-style: solid;
|
|
19
|
+
|
|
20
|
+
/* If you want a shadow-based focus instead of outline */
|
|
21
|
+
--coar-focus-shadow: 0 0 0 var(--coar-focus-width) var(--coar-focus-color);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/* Dark mode override */
|
|
25
|
+
:root.dark-mode,
|
|
26
|
+
.dark-mode {
|
|
27
|
+
/* Typically slightly brighter or desaturated…
|
|
28
|
+
You can tune this later via semantic building blocks */
|
|
29
|
+
--coar-focus-color: var(--coar-color-accent-300);
|
|
30
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cocoar Design System - Layering Tokens
|
|
3
|
+
*
|
|
4
|
+
* Z-index values used for UI layering.
|
|
5
|
+
*
|
|
6
|
+
* Notes:
|
|
7
|
+
* - These are intentionally minimal. Overlays manage stacking by adding small runtime offsets.
|
|
8
|
+
* - Backdrop must always be below its overlay host.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
:root {
|
|
12
|
+
/* Overlay hosts (menus, tooltips, dialogs, etc.) */
|
|
13
|
+
--coar-z-overlay: 1000;
|
|
14
|
+
|
|
15
|
+
/* Modal backdrop behind overlays */
|
|
16
|
+
--coar-z-overlay-backdrop: 999;
|
|
17
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cocoar Design System - Menu Tokens
|
|
3
|
+
* Theming tokens for coar-menu and menu items.
|
|
4
|
+
*
|
|
5
|
+
* Default styling optimized for context menus (overlays).
|
|
6
|
+
* For sidebar navigation, these can be overridden via CSS variables.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
:root {
|
|
10
|
+
/* Menu container background - clean white for context menus */
|
|
11
|
+
--coar-menu-background: var(--coar-background-neutral-primary, #ffffff);
|
|
12
|
+
|
|
13
|
+
/* Item interactive states - subtle hover, accent for active */
|
|
14
|
+
--coar-menu-item-background-hover: var(--coar-background-neutral-secondary, #f5f5f5);
|
|
15
|
+
--coar-menu-item-background-focus: var(--coar-background-neutral-secondary, #f5f5f5);
|
|
16
|
+
--coar-menu-item-background-open: var(--coar-background-accent-tertiary, #e6f0ff);
|
|
17
|
+
--coar-menu-item-background-active: var(--coar-background-accent-tertiary, #e6f0ff);
|
|
18
|
+
|
|
19
|
+
/* Text color for active items */
|
|
20
|
+
--coar-menu-item-text-active: var(--coar-text-accent-primary, #0066cc);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
:root.dark-mode,
|
|
24
|
+
.dark-mode,
|
|
25
|
+
[data-theme='dark'] {
|
|
26
|
+
/* Menu container background - dark, subtle for context menus */
|
|
27
|
+
--coar-menu-background: var(--coar-color-gray-100, #27272a);
|
|
28
|
+
|
|
29
|
+
/* Item interactive states - subtle hover/active for context menus */
|
|
30
|
+
--coar-menu-item-background-hover: var(--coar-color-gray-200, #3f3f46);
|
|
31
|
+
--coar-menu-item-background-focus: var(--coar-color-gray-200, #3f3f46);
|
|
32
|
+
--coar-menu-item-background-open: var(--coar-color-gray-200, #3f3f46);
|
|
33
|
+
--coar-menu-item-background-active: var(--coar-color-gray-200, #3f3f46);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/* Sidebar variant - darker, more grounded colors for permanent navigation */
|
|
37
|
+
.coar-menu--sidebar {
|
|
38
|
+
--coar-menu-background: var(--coar-background-neutral-secondary, #ededed);
|
|
39
|
+
--coar-menu-item-background-hover: var(--coar-background-neutral-tertiary, #d9d9d9);
|
|
40
|
+
--coar-menu-item-background-focus: var(--coar-background-neutral-tertiary, #d9d9d9);
|
|
41
|
+
--coar-menu-item-background-open: var(--coar-background-neutral-tertiary, #d9d9d9);
|
|
42
|
+
--coar-menu-item-background-active: var(--coar-background-neutral-tertiary, #d9d9d9);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
:root.dark-mode .coar-menu--sidebar,
|
|
46
|
+
.dark-mode .coar-menu--sidebar,
|
|
47
|
+
[data-theme='dark'] .coar-menu--sidebar {
|
|
48
|
+
--coar-menu-background: var(--coar-background-neutral-secondary, #27272a);
|
|
49
|
+
--coar-menu-item-background-hover: var(--coar-background-neutral-tertiary, #3f3f46);
|
|
50
|
+
--coar-menu-item-background-focus: var(--coar-background-neutral-tertiary, #3f3f46);
|
|
51
|
+
--coar-menu-item-background-open: var(--coar-background-neutral-tertiary, #3f3f46);
|
|
52
|
+
--coar-menu-item-background-active: var(--coar-background-neutral-tertiary, #3f3f46);
|
|
53
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cocoar Design System - Design Tokens
|
|
3
|
+
* Motion / Animation
|
|
4
|
+
* Consistent timing and easing for UI transitions
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
:root {
|
|
8
|
+
/* ========================================
|
|
9
|
+
DURATION
|
|
10
|
+
========================================
|
|
11
|
+
How long animations take to complete.
|
|
12
|
+
Use shorter durations for small/simple changes,
|
|
13
|
+
longer for complex/large movements.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/* Instant - for color changes, opacity */
|
|
17
|
+
--coar-duration-instant: 0ms;
|
|
18
|
+
|
|
19
|
+
/* Fast - micro-interactions, hover states, focus rings */
|
|
20
|
+
--coar-duration-fast: 100ms;
|
|
21
|
+
|
|
22
|
+
/* Normal - buttons, inputs, small movements */
|
|
23
|
+
--coar-duration-normal: 200ms;
|
|
24
|
+
|
|
25
|
+
/* Slow - dropdowns, panels, medium movements */
|
|
26
|
+
--coar-duration-slow: 300ms;
|
|
27
|
+
|
|
28
|
+
/* Slower - modals, large overlays, page transitions */
|
|
29
|
+
--coar-duration-slower: 400ms;
|
|
30
|
+
|
|
31
|
+
/* Slowest - complex animations, onboarding */
|
|
32
|
+
--coar-duration-slowest: 500ms;
|
|
33
|
+
|
|
34
|
+
/* ========================================
|
|
35
|
+
EASING
|
|
36
|
+
========================================
|
|
37
|
+
How animations accelerate and decelerate.
|
|
38
|
+
Based on Material Design motion principles.
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
/* Linear - constant speed, use sparingly */
|
|
42
|
+
--coar-ease-linear: linear;
|
|
43
|
+
|
|
44
|
+
/* Ease Out - starts fast, ends slow (entering elements) */
|
|
45
|
+
--coar-ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
46
|
+
|
|
47
|
+
/* Ease In - starts slow, ends fast (exiting elements) */
|
|
48
|
+
--coar-ease-in: cubic-bezier(0.4, 0, 1, 1);
|
|
49
|
+
|
|
50
|
+
/* Ease In-Out - slow start and end (moving elements) */
|
|
51
|
+
--coar-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
|
|
52
|
+
|
|
53
|
+
/* Bounce - slight overshoot for playful interactions */
|
|
54
|
+
--coar-ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
55
|
+
|
|
56
|
+
/* ========================================
|
|
57
|
+
COMMON TRANSITIONS
|
|
58
|
+
========================================
|
|
59
|
+
Pre-composed transitions for common use cases.
|
|
60
|
+
*/
|
|
61
|
+
|
|
62
|
+
/* Default transition for most interactive elements */
|
|
63
|
+
--coar-transition-default: all var(--coar-duration-normal) var(--coar-ease-out);
|
|
64
|
+
|
|
65
|
+
/* Fast transition for hover/focus states */
|
|
66
|
+
--coar-transition-fast: all var(--coar-duration-fast) var(--coar-ease-out);
|
|
67
|
+
|
|
68
|
+
/* Color-only transitions */
|
|
69
|
+
--coar-transition-colors: color var(--coar-duration-fast) var(--coar-ease-out),
|
|
70
|
+
background-color var(--coar-duration-fast) var(--coar-ease-out),
|
|
71
|
+
border-color var(--coar-duration-fast) var(--coar-ease-out);
|
|
72
|
+
|
|
73
|
+
/* Transform transitions (scale, translate) */
|
|
74
|
+
--coar-transition-transform: transform var(--coar-duration-normal) var(--coar-ease-out);
|
|
75
|
+
|
|
76
|
+
/* Opacity transitions */
|
|
77
|
+
--coar-transition-opacity: opacity var(--coar-duration-normal) var(--coar-ease-out);
|
|
78
|
+
|
|
79
|
+
/* Shadow transitions (elevation changes) */
|
|
80
|
+
--coar-transition-shadow: box-shadow var(--coar-duration-normal) var(--coar-ease-out);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/* Reduced motion preference - respect user settings */
|
|
84
|
+
@media (prefers-reduced-motion: reduce) {
|
|
85
|
+
:root {
|
|
86
|
+
--coar-duration-instant: 0ms;
|
|
87
|
+
--coar-duration-fast: 0ms;
|
|
88
|
+
--coar-duration-normal: 0ms;
|
|
89
|
+
--coar-duration-slow: 0ms;
|
|
90
|
+
--coar-duration-slower: 0ms;
|
|
91
|
+
--coar-duration-slowest: 0ms;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cocoar Design System - New Component Tokens
|
|
3
|
+
* Tokens for: Switch, Progress Bar, Spinner, Navbar, Breadcrumb, Pagination, Dialog, Toast
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
:root {
|
|
7
|
+
/* ==========================================================================
|
|
8
|
+
SWITCH
|
|
9
|
+
========================================================================== */
|
|
10
|
+
|
|
11
|
+
/* Track dimensions */
|
|
12
|
+
--coar-switch-s-track-width: 32px;
|
|
13
|
+
--coar-switch-s-track-height: 18px;
|
|
14
|
+
--coar-switch-m-track-width: 40px;
|
|
15
|
+
--coar-switch-m-track-height: 22px;
|
|
16
|
+
--coar-switch-l-track-width: 48px;
|
|
17
|
+
--coar-switch-l-track-height: 26px;
|
|
18
|
+
|
|
19
|
+
/* Thumb dimensions (circle inside track) */
|
|
20
|
+
--coar-switch-s-thumb-size: 14px;
|
|
21
|
+
--coar-switch-m-thumb-size: 18px;
|
|
22
|
+
--coar-switch-l-thumb-size: 22px;
|
|
23
|
+
|
|
24
|
+
/* Thumb offset from track edge */
|
|
25
|
+
--coar-switch-thumb-offset: 2px;
|
|
26
|
+
|
|
27
|
+
/* ==========================================================================
|
|
28
|
+
PROGRESS BAR
|
|
29
|
+
========================================================================== */
|
|
30
|
+
|
|
31
|
+
--coar-progress-bar-s-height: 2px;
|
|
32
|
+
--coar-progress-bar-m-height: 4px;
|
|
33
|
+
--coar-progress-bar-l-height: 8px;
|
|
34
|
+
--coar-progress-bar-radius: var(--coar-radius-full);
|
|
35
|
+
--coar-progress-bar-background: var(--coar-background-neutral-tertiary);
|
|
36
|
+
|
|
37
|
+
/* ==========================================================================
|
|
38
|
+
SPINNER
|
|
39
|
+
========================================================================== */
|
|
40
|
+
|
|
41
|
+
--coar-spinner-xs-size: 16px;
|
|
42
|
+
--coar-spinner-s-size: 20px;
|
|
43
|
+
--coar-spinner-m-size: 24px;
|
|
44
|
+
--coar-spinner-l-size: 32px;
|
|
45
|
+
--coar-spinner-stroke-width: 2.5;
|
|
46
|
+
--coar-spinner-color: var(--coar-background-accent-primary);
|
|
47
|
+
|
|
48
|
+
/* ==========================================================================
|
|
49
|
+
NAVBAR
|
|
50
|
+
========================================================================== */
|
|
51
|
+
|
|
52
|
+
--coar-navbar-height: 56px;
|
|
53
|
+
--coar-navbar-padding-x: var(--coar-spacing-l);
|
|
54
|
+
--coar-navbar-background: var(--coar-background-neutral-primary);
|
|
55
|
+
--coar-navbar-border-color: var(--coar-border-neutral-tertiary);
|
|
56
|
+
|
|
57
|
+
/* ==========================================================================
|
|
58
|
+
BREADCRUMB
|
|
59
|
+
========================================================================== */
|
|
60
|
+
|
|
61
|
+
--coar-breadcrumb-separator-color: var(--coar-text-neutral-tertiary);
|
|
62
|
+
--coar-breadcrumb-separator-gap: var(--coar-spacing-s);
|
|
63
|
+
--coar-breadcrumb-font-size: var(--coar-component-m-font-size);
|
|
64
|
+
--coar-breadcrumb-active-color: var(--coar-text-neutral-primary);
|
|
65
|
+
--coar-breadcrumb-link-color: var(--coar-text-accent-primary);
|
|
66
|
+
|
|
67
|
+
/* ==========================================================================
|
|
68
|
+
PAGINATION
|
|
69
|
+
========================================================================== */
|
|
70
|
+
|
|
71
|
+
--coar-pagination-button-size: 32px;
|
|
72
|
+
--coar-pagination-gap: var(--coar-spacing-xs);
|
|
73
|
+
--coar-pagination-font-size: var(--coar-component-s-font-size);
|
|
74
|
+
--coar-pagination-active-background: var(--coar-background-accent-primary);
|
|
75
|
+
--coar-pagination-active-color: var(--coar-text-on-bold);
|
|
76
|
+
--coar-pagination-hover-background: var(--coar-background-neutral-tertiary);
|
|
77
|
+
|
|
78
|
+
/* ==========================================================================
|
|
79
|
+
DIALOG
|
|
80
|
+
========================================================================== */
|
|
81
|
+
|
|
82
|
+
--coar-dialog-s-width: 400px;
|
|
83
|
+
--coar-dialog-m-width: 560px;
|
|
84
|
+
--coar-dialog-l-width: 720px;
|
|
85
|
+
--coar-dialog-padding: var(--coar-spacing-l);
|
|
86
|
+
--coar-dialog-header-gap: var(--coar-spacing-m);
|
|
87
|
+
--coar-dialog-border-radius: var(--coar-radius-l);
|
|
88
|
+
--coar-dialog-background: var(--coar-background-neutral-primary);
|
|
89
|
+
|
|
90
|
+
/* ==========================================================================
|
|
91
|
+
TOAST
|
|
92
|
+
========================================================================== */
|
|
93
|
+
|
|
94
|
+
--coar-toast-width: 380px;
|
|
95
|
+
--coar-toast-padding: var(--coar-spacing-m);
|
|
96
|
+
--coar-toast-gap: var(--coar-spacing-m);
|
|
97
|
+
--coar-toast-border-radius: var(--coar-radius-m);
|
|
98
|
+
--coar-toast-border-width: 3px;
|
|
99
|
+
--coar-toast-background: var(--coar-background-neutral-primary);
|
|
100
|
+
--coar-toast-container-offset: var(--coar-spacing-m);
|
|
101
|
+
--coar-toast-stack-gap: var(--coar-spacing-s);
|
|
102
|
+
--coar-toast-progress-height: 3px;
|
|
103
|
+
--coar-toast-max-stack: 5;
|
|
104
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cocoar Design System - Design Tokens
|
|
3
|
+
* Border Radius
|
|
4
|
+
* Auto-generated from Figma - Do not edit manually
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
:root {
|
|
8
|
+
--coar-radius-full: 999px;
|
|
9
|
+
--coar-radius-l: 5px;
|
|
10
|
+
--coar-radius-m: 4px;
|
|
11
|
+
--coar-radius-s: 3px;
|
|
12
|
+
--coar-radius-xl: 6px;
|
|
13
|
+
--coar-radius-xs: 2px;
|
|
14
|
+
--coar-radius-xxs: 1px;
|
|
15
|
+
}
|