@digithings-ai/design 0.0.0-stage → 0.1.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/tokens.css ADDED
@@ -0,0 +1,268 @@
1
+ @import "./palettes.css";
2
+ /* digithings tokens. One source for colour, type, space and motion.
3
+ AA-checked colour values stay. History lives in git.
4
+ Palette overrides (data-palette) live in palettes.css and win by specificity. */
5
+
6
+ :root {
7
+
8
+ --accent-digigraph: #e5b765;
9
+ --accent-digiquant: #3dd6c4;
10
+ --accent-research: #6fbf94;
11
+ --accent-portfolio: #4a8f7b;
12
+ --accent-execution: #2f7a65;
13
+ --accent-digisearch: #5aa3c4;
14
+ --accent-digichat: #e2708a;
15
+ --accent-digikey: #d97a5a;
16
+ --accent-digitrace: #6fa3a3;
17
+ --accent-digibot: #b87840;
18
+ --accent-digibase: #9ea0a5;
19
+ --accent-digistore: #7b7fc7;
20
+ --accent-digilink: #4fa39b;
21
+ --accent-digivoice: #cf6bd6;
22
+ --accent-digillm: #b8c95a;
23
+ --accent-digibook: #d4c5a0;
24
+ --accent-digidev: #6b9dff;
25
+ --accent-digivault: #9d8fc9;
26
+
27
+ --accent: #ffffff;
28
+
29
+ --font-stack-sans: var(--font-sans-face, "Inter"), system-ui, -apple-system, "Segoe UI", sans-serif;
30
+ --font-stack-mono: var(--font-mono-face, "Geist Mono"), ui-monospace, "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", "Segoe UI Symbol", monospace;
31
+ --font-stack-display: var(--font-mono-face, "Geist Mono"), ui-monospace, "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", "Segoe UI Symbol", monospace;
32
+
33
+ --font-family: var(--font-stack-sans);
34
+ --font-family-mono: var(--font-stack-mono);
35
+
36
+ --spacing-base: 1.5rem;
37
+ --space-1: 0.25rem;
38
+ --space-2: 0.5rem;
39
+ --space-3: 1rem;
40
+ --space-4: 1.5rem;
41
+ --space-5: 2rem;
42
+ --space-6: 3rem;
43
+ --space-7: 4rem;
44
+ --space-8: 6rem;
45
+ --space-9: 8rem;
46
+
47
+ --radius-sm: 0;
48
+ --radius-md: 0;
49
+ --radius-lg: 0;
50
+
51
+ }
52
+
53
+ .accent-digigraph { --accent: var(--accent-digigraph); --on-accent: #06110f; }
54
+ .accent-digiquant { --accent: var(--accent-digiquant); --on-accent: #06110f; }
55
+ .accent-research { --accent: var(--accent-research); }
56
+ .accent-portfolio { --accent: var(--accent-portfolio); }
57
+ .accent-execution { --accent: var(--accent-execution); }
58
+ .accent-digisearch { --accent: var(--accent-digisearch); --on-accent: #06110f; }
59
+ .accent-digichat { --accent: var(--accent-digichat); --on-accent: #06110f; }
60
+ .accent-digikey { --accent: var(--accent-digikey); --on-accent: #06110f; }
61
+ .accent-digitrace { --accent: var(--accent-digitrace); --on-accent: #06110f; }
62
+ .accent-digibot { --accent: var(--accent-digibot); --on-accent: #06110f; }
63
+ .accent-digibase { --accent: var(--accent-digibase); --on-accent: #06110f; }
64
+ .accent-digistore { --accent: var(--accent-digistore); --on-accent: #06110f; }
65
+ .accent-digilink { --accent: var(--accent-digilink); --on-accent: #06110f; }
66
+ .accent-digivault { --accent: var(--accent-digivault); --on-accent: #06110f; }
67
+
68
+ :root[data-theme="dark"] {
69
+
70
+ color-scheme: dark;
71
+ --bg: #0A0E0C;
72
+ --surface: #121417;
73
+ --surface-2: #171A1E;
74
+ --hair: rgba(255, 255, 255, 0.09);
75
+ --hair-2: rgba(255, 255, 255, 0.15);
76
+
77
+ --hair-strong: var(--hair-2);
78
+
79
+ --ink: #ECEEF0;
80
+ --ink-soft: #9AA0A6;
81
+ --ink-mute: #7D8389;
82
+
83
+ --accent: #3DD6C4;
84
+ --accent-weak: rgba(61, 214, 196, 0.14);
85
+ --on-accent: #04201C;
86
+
87
+ --up: var(--accent-digiquant);
88
+ --down: #E5533E;
89
+ --warn: #E0B341;
90
+
91
+ --chart-sma: #1EC98A;
92
+ --chart-ema: #5AD4F0;
93
+ --chart-vwap: #F0D44A;
94
+ --chart-bollinger: #B0DC3A;
95
+ --chart-bollinger-band: #F09238;
96
+ --chart-supertrend-up: #54DC62;
97
+ --chart-supertrend-down: #6A96F0;
98
+
99
+ --heat-ink: #FFFFFF;
100
+ --heat-ink-strong: #000000;
101
+
102
+ --danger: #E94959;
103
+
104
+ /* Semantic action/status roles. Deliberately not aliases of --accent or of
105
+ the money pair: a badge row (OPEN / ADD / TRIM / EXIT / CLOSED) has to
106
+ stay distinguishable, and --accent is already taken by live/selected.
107
+ Literal values come from the existing chart family — no new palette. */
108
+ --status-open: #5AD4F0;
109
+ --status-add: #1EC98A;
110
+ --status-trim: #E0B341;
111
+ --status-exit: #E5533E;
112
+ --status-closed: #9AA0A6;
113
+
114
+ --term-bg: #08090B;
115
+ --term-ink: #E7EAEC;
116
+ --term-mute: #7E858B;
117
+ --term-hair: rgba(255, 255, 255, 0.09);
118
+ --term-fill: rgba(255, 255, 255, 0.05);
119
+
120
+ --grain-opacity: 0.03;
121
+ --grain-blend: screen;
122
+ }
123
+
124
+ :root[data-theme="light"] {
125
+ color-scheme: light;
126
+ --bg: #FBFBF9;
127
+ --surface: #FFFFFF;
128
+ --surface-2: #F4F4F1;
129
+ --hair: rgba(10, 15, 20, 0.10);
130
+ --hair-2: rgba(10, 15, 20, 0.18);
131
+
132
+ --hair-strong: var(--hair-2);
133
+
134
+ --ink: #14181B;
135
+ --ink-soft: #5C636A;
136
+ --ink-mute: #666C73;
137
+
138
+ --accent: #0C7C71;
139
+ --accent-weak: rgba(12, 124, 113, 0.12);
140
+ --on-accent: #FFFFFF;
141
+
142
+ --up: #0C7C71;
143
+ --down: #B2452E;
144
+ --warn: #8F6220;
145
+
146
+ --chart-sma: #187E58;
147
+ --chart-ema: #1B798E;
148
+ --chart-vwap: #806E18;
149
+ --chart-bollinger: #5D7817;
150
+ --chart-bollinger-band: #A15F1F;
151
+ --chart-supertrend-up: #1A8025;
152
+ --chart-supertrend-down: #3369D8;
153
+
154
+ --danger: #C32232;
155
+
156
+ --status-open: #1B798E;
157
+ --status-add: #187E58;
158
+ --status-trim: #8F6220;
159
+ --status-exit: #B2452E;
160
+ --status-closed: #5C636A;
161
+
162
+ --heat-ink: var(--ink);
163
+ --heat-ink-strong: var(--ink);
164
+
165
+ --term-bg: #F1F0EB;
166
+ --term-ink: #1A1E22;
167
+
168
+ --term-mute: #5F656C;
169
+ --term-hair: rgba(10, 15, 20, 0.12);
170
+ --term-fill: rgba(10, 15, 20, 0.05);
171
+
172
+ --grain-opacity: 0.045;
173
+ --grain-blend: multiply;
174
+
175
+ --accent-digigraph: #B27C1E;
176
+ --accent-digiquant: #0E8C7F;
177
+ --accent-digisearch: #408FB3;
178
+ --accent-digitrace: #5C8F8F;
179
+ --accent-digibase: #84878D;
180
+ --accent-digivault: #8D7DC0;
181
+ --accent-digilink: #47938C;
182
+ }
183
+
184
+ :root[data-theme] {
185
+
186
+ --chart-candle-up: var(--up);
187
+ --chart-candle-down: var(--down);
188
+ --chart-volume-up: var(--up);
189
+ --chart-volume-down: var(--down);
190
+ --chart-grid: var(--hair);
191
+ --chart-axis: var(--ink-mute);
192
+
193
+ --accent-research: var(--ink);
194
+ --accent-portfolio: var(--ink);
195
+ --accent-execution: var(--ink);
196
+
197
+ --font-sans: var(--font-stack-mono);
198
+ --font-mono: var(--font-stack-mono);
199
+ --font-display: var(--font-stack-display);
200
+ --font-family: var(--font-sans);
201
+ --font-family-mono: var(--font-mono);
202
+
203
+ --wrap: 1180px;
204
+ --wrap-wide: 1280px;
205
+ --product-frame-w: 800px;
206
+ --gutter: clamp(1.25rem, 4vw, 3.25rem);
207
+
208
+ --r-sm: 0;
209
+ --r-md: 0;
210
+ --r-lg: 0;
211
+
212
+ --ease: cubic-bezier(0.22, 1, 0.36, 1);
213
+
214
+ --section-y: clamp(4.5rem, 9vw, 8rem);
215
+ --section-y-tight: clamp(2.5rem, 5vw, 4rem);
216
+ --ease-glide: cubic-bezier(0.22, 1, 0.36, 1);
217
+
218
+ --duration-reveal: 0.6s;
219
+ --duration-hover: 0.18s;
220
+ --duration-copied: 1.5s;
221
+ --duration-build: 1.4s;
222
+
223
+ --type-display: clamp(2.75rem, 6vw, 5rem);
224
+ --type-hero: clamp(2rem, 4.5vw, 2.75rem);
225
+ --type-page-title: clamp(1.5rem, 3vw, 2rem);
226
+ --type-section-stand: clamp(1.6rem, 3.2vw, 2.5rem);
227
+ --type-section: 1.375rem;
228
+ --type-sub-label: 1rem;
229
+ --type-body: 1rem;
230
+ --type-meta: 0.75rem;
231
+ --tracking-meta: 0.08em;
232
+
233
+ --leading-prose: 1.8;
234
+ --leading-prose-narrow: 1.75;
235
+ --measure-prose: 72ch;
236
+
237
+ --frame-w: var(--wrap);
238
+ --page-pad: var(--gutter);
239
+ --page-step: var(--section-y);
240
+
241
+ /* Document scale. Terminal cells: 11, 13, 16, 20, 28, 40. */
242
+ --text-xs: 11px;
243
+ --text-sm: 13px;
244
+ --text-md: 16px;
245
+ --text-lg: 20px;
246
+ --text-xl: 28px;
247
+ --text-2xl: 40px;
248
+ --leading-tight: 1.2;
249
+ --leading: 1.55;
250
+ --rail: 240px;
251
+ --bar-app: 32px;
252
+ --bar-site: 56px;
253
+ --dur-fast: 120ms;
254
+ --dur: 240ms;
255
+ --dur-slow: 600ms;
256
+ /* Additive scales alongside the legacy --dur-* trio (which stays pinned to
257
+ motion.json). --dur-tap is the interaction-feedback budget (≤200ms);
258
+ --dur-arrive is the settled-state entrance, matching --duration-reveal. */
259
+ --dur-tap: 120ms;
260
+ --dur-arrive: 600ms;
261
+ }
262
+
263
+ @supports (transition-timing-function: linear(0, 1)) {
264
+ :root[data-theme] {
265
+ --ease: linear(0, 0.012 0.9%, 0.05 2%, 0.411 9.2%, 0.517 11.8%, 0.611 14.6%, 0.694 17.7%, 0.765 21.1%, 0.824 24.8%, 0.872 28.9%, 0.91 33.4%, 0.939 38.4%, 0.977 50.9%, 0.994 68.4%, 1);
266
+ --ease-glide: var(--ease);
267
+ }
268
+ }