@rafael_dias/akoma 0.4.0 → 0.7.6
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 +26 -4
- package/content/README.md +2 -0
- package/content/colors.md +56 -0
- package/content/decisions.md +3 -3
- package/content/icons.md +76 -0
- package/content/implementation.md +1 -1
- package/content/moods.md +12 -0
- package/dist/akoma.cjs +1 -1
- package/dist/akoma.css +1 -1
- package/dist/akoma.js +437 -231
- package/dist/index.d.ts +162 -12
- package/package.json +5 -2
- package/src/styles/accent-palettes.css +194 -0
- package/src/styles/index.css +1 -0
- package/src/styles/motion.css +8 -0
- package/src/styles/tokens.css +14 -42
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { cIcons } from '../../node_modules/@sysvale/cuida-icons/dist/index.js';
|
|
1
2
|
import { ComponentOptionsMixin } from 'vue';
|
|
2
3
|
import { ComponentProvideOptions } from 'vue';
|
|
3
4
|
import { DefineComponent } from 'vue';
|
|
@@ -13,6 +14,20 @@ type: "button" | "submit" | "reset";
|
|
|
13
14
|
block: boolean;
|
|
14
15
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLButtonElement>;
|
|
15
16
|
|
|
17
|
+
declare const __VLS_component_10: DefineComponent<__VLS_Props_17, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
18
|
+
"update:modelValue": (value: string) => any;
|
|
19
|
+
}, string, PublicProps, Readonly<__VLS_Props_17> & Readonly<{
|
|
20
|
+
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
21
|
+
}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
22
|
+
trackRef: HTMLDivElement;
|
|
23
|
+
}, HTMLElement>;
|
|
24
|
+
|
|
25
|
+
declare const __VLS_component_11: DefineComponent<__VLS_Props_18, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_18> & Readonly<{}>, {
|
|
26
|
+
disabled: boolean;
|
|
27
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
28
|
+
itemRef: HTMLButtonElement;
|
|
29
|
+
}, HTMLButtonElement>;
|
|
30
|
+
|
|
16
31
|
declare const __VLS_component_2: DefineComponent<__VLS_Props_2, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_2> & Readonly<{}>, {
|
|
17
32
|
variant: BadgeVariant;
|
|
18
33
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLSpanElement>;
|
|
@@ -33,18 +48,18 @@ padding: "none" | "sm" | "md" | "lg";
|
|
|
33
48
|
|
|
34
49
|
declare const __VLS_component_5: DefineComponent<__VLS_Props_7, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_7> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
35
50
|
|
|
36
|
-
declare const __VLS_component_6: DefineComponent<
|
|
51
|
+
declare const __VLS_component_6: DefineComponent<__VLS_Props_13, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_13> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLElement>;
|
|
37
52
|
|
|
38
53
|
declare const __VLS_component_7: DefineComponent< {}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, HTMLUListElement>;
|
|
39
54
|
|
|
40
|
-
declare const __VLS_component_8: DefineComponent<
|
|
55
|
+
declare const __VLS_component_8: DefineComponent<__VLS_Props_14, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_14> & Readonly<{}>, {
|
|
41
56
|
disabled: boolean;
|
|
42
57
|
interactive: boolean;
|
|
43
58
|
padding: ListRowPadding;
|
|
44
59
|
divider: boolean;
|
|
45
60
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
46
61
|
|
|
47
|
-
declare const __VLS_component_9: DefineComponent<
|
|
62
|
+
declare const __VLS_component_9: DefineComponent<__VLS_Props_15, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_15> & Readonly<{}>, {
|
|
48
63
|
variant: IconButtonVariant;
|
|
49
64
|
size: IconButtonSize;
|
|
50
65
|
disabled: boolean;
|
|
@@ -62,6 +77,13 @@ declare type __VLS_Props = {
|
|
|
62
77
|
};
|
|
63
78
|
|
|
64
79
|
declare type __VLS_Props_10 = {
|
|
80
|
+
name: CuidaIconName;
|
|
81
|
+
size?: number | string;
|
|
82
|
+
/** Accessible label — omit when decorative inside labelled controls */
|
|
83
|
+
label?: string;
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
declare type __VLS_Props_11 = {
|
|
65
87
|
/** Horizontal spacing around the line */
|
|
66
88
|
spacing?: DividerSpacing;
|
|
67
89
|
/** Optional centered label */
|
|
@@ -69,7 +91,7 @@ declare type __VLS_Props_10 = {
|
|
|
69
91
|
vertical?: boolean;
|
|
70
92
|
};
|
|
71
93
|
|
|
72
|
-
declare type
|
|
94
|
+
declare type __VLS_Props_12 = {
|
|
73
95
|
/** Current value */
|
|
74
96
|
value?: number;
|
|
75
97
|
max?: number;
|
|
@@ -80,33 +102,46 @@ declare type __VLS_Props_11 = {
|
|
|
80
102
|
showValue?: boolean;
|
|
81
103
|
};
|
|
82
104
|
|
|
83
|
-
declare type
|
|
105
|
+
declare type __VLS_Props_13 = {
|
|
84
106
|
title?: string;
|
|
85
107
|
};
|
|
86
108
|
|
|
87
|
-
declare type
|
|
109
|
+
declare type __VLS_Props_14 = {
|
|
88
110
|
interactive?: boolean;
|
|
89
111
|
disabled?: boolean;
|
|
90
112
|
padding?: ListRowPadding;
|
|
91
113
|
divider?: boolean;
|
|
92
114
|
};
|
|
93
115
|
|
|
94
|
-
declare type
|
|
116
|
+
declare type __VLS_Props_15 = {
|
|
95
117
|
variant?: IconButtonVariant;
|
|
96
118
|
size?: IconButtonSize;
|
|
97
119
|
disabled?: boolean;
|
|
98
120
|
loading?: boolean;
|
|
99
121
|
type?: 'button' | 'submit' | 'reset';
|
|
100
122
|
label: string;
|
|
123
|
+
/** Cuida Icons name — preferred over the default slot */
|
|
124
|
+
icon?: CuidaIconName;
|
|
101
125
|
};
|
|
102
126
|
|
|
103
|
-
declare type
|
|
127
|
+
declare type __VLS_Props_16 = {
|
|
104
128
|
modelValue?: boolean;
|
|
105
129
|
label?: string;
|
|
106
130
|
description?: string;
|
|
107
131
|
disabled?: boolean;
|
|
108
132
|
};
|
|
109
133
|
|
|
134
|
+
declare type __VLS_Props_17 = {
|
|
135
|
+
modelValue: string;
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
declare type __VLS_Props_18 = {
|
|
139
|
+
value: string;
|
|
140
|
+
label: string;
|
|
141
|
+
icon?: CuidaIconName;
|
|
142
|
+
disabled?: boolean;
|
|
143
|
+
};
|
|
144
|
+
|
|
110
145
|
declare type __VLS_Props_2 = {
|
|
111
146
|
variant?: BadgeVariant;
|
|
112
147
|
label?: string;
|
|
@@ -179,6 +214,30 @@ declare function __VLS_template(): {
|
|
|
179
214
|
rootEl: HTMLButtonElement;
|
|
180
215
|
};
|
|
181
216
|
|
|
217
|
+
declare function __VLS_template_10(): {
|
|
218
|
+
attrs: Partial<{}>;
|
|
219
|
+
slots: {
|
|
220
|
+
default?(_: {}): any;
|
|
221
|
+
};
|
|
222
|
+
refs: {
|
|
223
|
+
trackRef: HTMLDivElement;
|
|
224
|
+
};
|
|
225
|
+
rootEl: HTMLElement;
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
declare function __VLS_template_11(): {
|
|
229
|
+
attrs: Partial<{}>;
|
|
230
|
+
slots: Readonly<{
|
|
231
|
+
icon?: () => unknown;
|
|
232
|
+
}> & {
|
|
233
|
+
icon?: () => unknown;
|
|
234
|
+
};
|
|
235
|
+
refs: {
|
|
236
|
+
itemRef: HTMLButtonElement;
|
|
237
|
+
};
|
|
238
|
+
rootEl: HTMLButtonElement;
|
|
239
|
+
};
|
|
240
|
+
|
|
182
241
|
declare function __VLS_template_2(): {
|
|
183
242
|
attrs: Partial<{}>;
|
|
184
243
|
slots: Readonly<{
|
|
@@ -283,6 +342,10 @@ declare function __VLS_template_9(): {
|
|
|
283
342
|
|
|
284
343
|
declare type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
285
344
|
|
|
345
|
+
declare type __VLS_TemplateResult_10 = ReturnType<typeof __VLS_template_10>;
|
|
346
|
+
|
|
347
|
+
declare type __VLS_TemplateResult_11 = ReturnType<typeof __VLS_template_11>;
|
|
348
|
+
|
|
286
349
|
declare type __VLS_TemplateResult_2 = ReturnType<typeof __VLS_template_2>;
|
|
287
350
|
|
|
288
351
|
declare type __VLS_TemplateResult_3 = ReturnType<typeof __VLS_template_3>;
|
|
@@ -305,6 +368,18 @@ declare type __VLS_WithTemplateSlots<T, S> = T & {
|
|
|
305
368
|
};
|
|
306
369
|
};
|
|
307
370
|
|
|
371
|
+
declare type __VLS_WithTemplateSlots_10<T, S> = T & {
|
|
372
|
+
new (): {
|
|
373
|
+
$slots: S;
|
|
374
|
+
};
|
|
375
|
+
};
|
|
376
|
+
|
|
377
|
+
declare type __VLS_WithTemplateSlots_11<T, S> = T & {
|
|
378
|
+
new (): {
|
|
379
|
+
$slots: S;
|
|
380
|
+
};
|
|
381
|
+
};
|
|
382
|
+
|
|
308
383
|
declare type __VLS_WithTemplateSlots_2<T, S> = T & {
|
|
309
384
|
new (): {
|
|
310
385
|
$slots: S;
|
|
@@ -353,6 +428,57 @@ declare type __VLS_WithTemplateSlots_9<T, S> = T & {
|
|
|
353
428
|
};
|
|
354
429
|
};
|
|
355
430
|
|
|
431
|
+
export declare type AccentPalette = keyof typeof accentPalettes;
|
|
432
|
+
|
|
433
|
+
export declare const accentPaletteIds: AccentPalette[];
|
|
434
|
+
|
|
435
|
+
/**
|
|
436
|
+
* Named accent palettes for Akoma.
|
|
437
|
+
* Set on `<html data-accent="teal">` or override CSS variables in your app.
|
|
438
|
+
*/
|
|
439
|
+
export declare const accentPalettes: {
|
|
440
|
+
readonly violet: {
|
|
441
|
+
readonly label: "Violet";
|
|
442
|
+
readonly description: "Mineral violet — default for App mood.";
|
|
443
|
+
readonly sample: "#6658b8";
|
|
444
|
+
};
|
|
445
|
+
readonly evergreen: {
|
|
446
|
+
readonly label: "Evergreen";
|
|
447
|
+
readonly description: "Confident green — default for Site mood.";
|
|
448
|
+
readonly sample: "#2e684f";
|
|
449
|
+
};
|
|
450
|
+
readonly teal: {
|
|
451
|
+
readonly label: "Teal";
|
|
452
|
+
readonly description: "Calm mineral teal for productivity and wellness apps.";
|
|
453
|
+
readonly sample: "#3a7d85";
|
|
454
|
+
};
|
|
455
|
+
readonly ocean: {
|
|
456
|
+
readonly label: "Ocean";
|
|
457
|
+
readonly description: "Trustworthy blue for data-heavy products.";
|
|
458
|
+
readonly sample: "#3d6a94";
|
|
459
|
+
};
|
|
460
|
+
readonly amber: {
|
|
461
|
+
readonly label: "Amber";
|
|
462
|
+
readonly description: "Warm gold for optimistic, human interfaces.";
|
|
463
|
+
readonly sample: "#9a702d";
|
|
464
|
+
};
|
|
465
|
+
readonly rose: {
|
|
466
|
+
readonly label: "Rose";
|
|
467
|
+
readonly description: "Dusty rose for lifestyle and creative tools.";
|
|
468
|
+
readonly sample: "#a8586a";
|
|
469
|
+
};
|
|
470
|
+
readonly coral: {
|
|
471
|
+
readonly label: "Coral";
|
|
472
|
+
readonly description: "Terracotta warmth without feeling playful.";
|
|
473
|
+
readonly sample: "#b5644a";
|
|
474
|
+
};
|
|
475
|
+
readonly slate: {
|
|
476
|
+
readonly label: "Slate";
|
|
477
|
+
readonly description: "Blue-gray for neutral B2B surfaces.";
|
|
478
|
+
readonly sample: "#4a5d73";
|
|
479
|
+
};
|
|
480
|
+
};
|
|
481
|
+
|
|
356
482
|
export declare const AkAmbientBg: DefineComponent<__VLS_Props_9, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_9> & Readonly<{}>, {
|
|
357
483
|
contained: boolean;
|
|
358
484
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
@@ -365,13 +491,17 @@ export declare const AkCard: __VLS_WithTemplateSlots_4<typeof __VLS_component_4,
|
|
|
365
491
|
|
|
366
492
|
export declare const AkChip: __VLS_WithTemplateSlots_3<typeof __VLS_component_3, __VLS_TemplateResult_3["slots"]>;
|
|
367
493
|
|
|
368
|
-
export declare const AkDivider: DefineComponent<
|
|
494
|
+
export declare const AkDivider: DefineComponent<__VLS_Props_11, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_11> & Readonly<{}>, {
|
|
369
495
|
spacing: DividerSpacing;
|
|
370
496
|
vertical: boolean;
|
|
371
497
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
372
498
|
|
|
373
499
|
export declare const AkEmptyState: __VLS_WithTemplateSlots_5<typeof __VLS_component_5, __VLS_TemplateResult_5["slots"]>;
|
|
374
500
|
|
|
501
|
+
export declare const AkIcon: DefineComponent<__VLS_Props_10, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_10> & Readonly<{}>, {
|
|
502
|
+
size: number | string;
|
|
503
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLSpanElement>;
|
|
504
|
+
|
|
375
505
|
export declare const AkIconButton: __VLS_WithTemplateSlots_9<typeof __VLS_component_9, __VLS_TemplateResult_9["slots"]>;
|
|
376
506
|
|
|
377
507
|
export declare const AkInput: DefineComponent<__VLS_Props_5, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
@@ -397,7 +527,7 @@ export declare type AkomaOptions = {
|
|
|
397
527
|
prefix?: string;
|
|
398
528
|
};
|
|
399
529
|
|
|
400
|
-
export declare const AkProgress: DefineComponent<
|
|
530
|
+
export declare const AkProgress: DefineComponent<__VLS_Props_12, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_12> & Readonly<{}>, {
|
|
401
531
|
size: ProgressSize;
|
|
402
532
|
value: number;
|
|
403
533
|
max: number;
|
|
@@ -412,15 +542,19 @@ height: string;
|
|
|
412
542
|
radius: "sm" | "md" | "lg" | "full" | string;
|
|
413
543
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
414
544
|
|
|
415
|
-
export declare const AkSwitch: DefineComponent<
|
|
545
|
+
export declare const AkSwitch: DefineComponent<__VLS_Props_16, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
416
546
|
"update:modelValue": (value: boolean) => any;
|
|
417
|
-
}, string, PublicProps, Readonly<
|
|
547
|
+
}, string, PublicProps, Readonly<__VLS_Props_16> & Readonly<{
|
|
418
548
|
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
419
549
|
}>, {
|
|
420
550
|
disabled: boolean;
|
|
421
551
|
modelValue: boolean;
|
|
422
552
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLLabelElement>;
|
|
423
553
|
|
|
554
|
+
export declare const AkTabBar: __VLS_WithTemplateSlots_10<typeof __VLS_component_10, __VLS_TemplateResult_10["slots"]>;
|
|
555
|
+
|
|
556
|
+
export declare const AkTabBarItem: __VLS_WithTemplateSlots_11<typeof __VLS_component_11, __VLS_TemplateResult_11["slots"]>;
|
|
557
|
+
|
|
424
558
|
export declare const AkTextarea: DefineComponent<__VLS_Props_6, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
425
559
|
"update:modelValue": (value: string) => any;
|
|
426
560
|
}, string, PublicProps, Readonly<__VLS_Props_6> & Readonly<{
|
|
@@ -432,14 +566,25 @@ required: boolean;
|
|
|
432
566
|
rows: number;
|
|
433
567
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLLabelElement>;
|
|
434
568
|
|
|
569
|
+
/** App mood default when no data-accent is set */
|
|
570
|
+
export declare const appDefaultAccent: AccentPalette;
|
|
571
|
+
|
|
572
|
+
export declare function applyAccentPalette(root: HTMLElement, palette: AccentPalette | 'auto'): void;
|
|
573
|
+
|
|
435
574
|
export declare type BadgeVariant = 'neutral' | 'accent' | 'success' | 'warning' | 'danger' | 'info';
|
|
436
575
|
|
|
437
576
|
export declare type ButtonSize = 'sm' | 'md' | 'lg';
|
|
438
577
|
|
|
439
578
|
export declare type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger';
|
|
440
579
|
|
|
580
|
+
export declare const cuidaIconMap: Map<string, string>;
|
|
581
|
+
|
|
582
|
+
export declare type CuidaIconName = cIcons;
|
|
583
|
+
|
|
441
584
|
export declare type DividerSpacing = 'sm' | 'md' | 'lg';
|
|
442
585
|
|
|
586
|
+
export declare function getCuidaIconMarkup(name: CuidaIconName): string;
|
|
587
|
+
|
|
443
588
|
export declare type IconButtonSize = 'sm' | 'md' | 'lg';
|
|
444
589
|
|
|
445
590
|
export declare type IconButtonVariant = 'ghost' | 'secondary' | 'danger';
|
|
@@ -450,4 +595,9 @@ export declare type ListRowPadding = 'sm' | 'md';
|
|
|
450
595
|
|
|
451
596
|
export declare type ProgressSize = 'sm' | 'md';
|
|
452
597
|
|
|
598
|
+
export declare function resolveAccentPalette(mood: 'app' | 'site', explicit?: AccentPalette | null): AccentPalette;
|
|
599
|
+
|
|
600
|
+
/** Site mood default when no data-accent is set */
|
|
601
|
+
export declare const siteDefaultAccent: AccentPalette;
|
|
602
|
+
|
|
453
603
|
export { }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rafael_dias/akoma",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.6",
|
|
4
4
|
"description": "A human Vue 3 design system with expressive App and trustworthy Site moods.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "Rafael",
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
"./tokens.css": "./src/styles/tokens.css",
|
|
30
30
|
"./base.css": "./src/styles/base.css",
|
|
31
31
|
"./motion.css": "./src/styles/motion.css",
|
|
32
|
+
"./accent-palettes.css": "./src/styles/accent-palettes.css",
|
|
32
33
|
"./content/*": "./content/*"
|
|
33
34
|
},
|
|
34
35
|
"files": [
|
|
@@ -48,12 +49,14 @@
|
|
|
48
49
|
"typecheck": "vue-tsc -p tsconfig.app.json --noEmit"
|
|
49
50
|
},
|
|
50
51
|
"peerDependencies": {
|
|
51
|
-
"vue": "^3.5.0"
|
|
52
|
+
"vue": "^3.5.0",
|
|
53
|
+
"@sysvale/cuida-icons": "^1.18.0"
|
|
52
54
|
},
|
|
53
55
|
"dependencies": {
|
|
54
56
|
"vue": "^3.5.0"
|
|
55
57
|
},
|
|
56
58
|
"devDependencies": {
|
|
59
|
+
"@sysvale/cuida-icons": "^1.18.0",
|
|
57
60
|
"@types/node": "^24.13.2",
|
|
58
61
|
"@vitejs/plugin-vue": "^6.0.7",
|
|
59
62
|
"@vue/tsconfig": "^0.9.1",
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/* Akoma — accent palettes
|
|
2
|
+
*
|
|
3
|
+
* Mood (App / Site) controls shape and surfaces.
|
|
4
|
+
* Accent controls brand color independently.
|
|
5
|
+
*
|
|
6
|
+
* <html data-mood="app" data-accent="teal">
|
|
7
|
+
*
|
|
8
|
+
* Without data-accent:
|
|
9
|
+
* App → violet
|
|
10
|
+
* Site → evergreen
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
:root,
|
|
14
|
+
[data-mood='app']:not([data-accent]) {
|
|
15
|
+
--accent: #6658b8;
|
|
16
|
+
--accent-hover: #5548a3;
|
|
17
|
+
--accent-soft: #ece9f8;
|
|
18
|
+
--accent-contrast: #ffffff;
|
|
19
|
+
--bg-tinted: #f1eefb;
|
|
20
|
+
--orb-1: rgba(102, 88, 184, 0.13);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
[data-mood='site']:not([data-accent]) {
|
|
24
|
+
--accent: #2e684f;
|
|
25
|
+
--accent-hover: #245640;
|
|
26
|
+
--accent-soft: #e2eee7;
|
|
27
|
+
--accent-contrast: #ffffff;
|
|
28
|
+
--bg-tinted: #f4f5f4;
|
|
29
|
+
--orb-1: rgba(46, 104, 79, 0.06);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
[data-accent='violet'] {
|
|
33
|
+
--accent: #6658b8;
|
|
34
|
+
--accent-hover: #5548a3;
|
|
35
|
+
--accent-soft: #ece9f8;
|
|
36
|
+
--accent-contrast: #ffffff;
|
|
37
|
+
--bg-tinted: #f1eefb;
|
|
38
|
+
--orb-1: rgba(102, 88, 184, 0.13);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
[data-accent='evergreen'] {
|
|
42
|
+
--accent: #2e684f;
|
|
43
|
+
--accent-hover: #245640;
|
|
44
|
+
--accent-soft: #e2eee7;
|
|
45
|
+
--accent-contrast: #ffffff;
|
|
46
|
+
--bg-tinted: #f2f5f3;
|
|
47
|
+
--orb-1: rgba(46, 104, 79, 0.07);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
[data-accent='teal'] {
|
|
51
|
+
--accent: #3a7d85;
|
|
52
|
+
--accent-hover: #2f686f;
|
|
53
|
+
--accent-soft: #e3eff0;
|
|
54
|
+
--accent-contrast: #ffffff;
|
|
55
|
+
--bg-tinted: #e8f2f3;
|
|
56
|
+
--orb-1: rgba(58, 125, 133, 0.12);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
[data-accent='ocean'] {
|
|
60
|
+
--accent: #3d6a94;
|
|
61
|
+
--accent-hover: #32577a;
|
|
62
|
+
--accent-soft: #e5eef5;
|
|
63
|
+
--accent-contrast: #ffffff;
|
|
64
|
+
--bg-tinted: #e8f0f7;
|
|
65
|
+
--orb-1: rgba(61, 106, 148, 0.11);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
[data-accent='amber'] {
|
|
69
|
+
--accent: #9a702d;
|
|
70
|
+
--accent-hover: #7f5c24;
|
|
71
|
+
--accent-soft: #f5ecd4;
|
|
72
|
+
--accent-contrast: #ffffff;
|
|
73
|
+
--bg-tinted: #f8f2e4;
|
|
74
|
+
--orb-1: rgba(154, 112, 45, 0.1);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
[data-accent='rose'] {
|
|
78
|
+
--accent: #a8586a;
|
|
79
|
+
--accent-hover: #8f4a59;
|
|
80
|
+
--accent-soft: #fae9ed;
|
|
81
|
+
--accent-contrast: #ffffff;
|
|
82
|
+
--bg-tinted: #f9eef1;
|
|
83
|
+
--orb-1: rgba(168, 88, 106, 0.11);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
[data-accent='coral'] {
|
|
87
|
+
--accent: #b5644a;
|
|
88
|
+
--accent-hover: #9a543e;
|
|
89
|
+
--accent-soft: #faece8;
|
|
90
|
+
--accent-contrast: #ffffff;
|
|
91
|
+
--bg-tinted: #f9f0eb;
|
|
92
|
+
--orb-1: rgba(181, 100, 74, 0.11);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
[data-accent='slate'] {
|
|
96
|
+
--accent: #4a5d73;
|
|
97
|
+
--accent-hover: #3c4d60;
|
|
98
|
+
--accent-soft: #e8ecf1;
|
|
99
|
+
--accent-contrast: #ffffff;
|
|
100
|
+
--bg-tinted: #eef1f5;
|
|
101
|
+
--orb-1: rgba(74, 93, 115, 0.1);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* Dark — mood defaults */
|
|
105
|
+
[data-theme='dark']:not([data-accent]),
|
|
106
|
+
[data-theme='dark'][data-mood='app']:not([data-accent]) {
|
|
107
|
+
--accent: #a99ee8;
|
|
108
|
+
--accent-hover: #bbb2f0;
|
|
109
|
+
--accent-soft: #39354f;
|
|
110
|
+
--accent-contrast: #211d38;
|
|
111
|
+
--bg-tinted: #312e40;
|
|
112
|
+
--orb-1: rgba(169, 158, 232, 0.11);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
[data-theme='dark'][data-mood='site']:not([data-accent]) {
|
|
116
|
+
--accent: #82b99d;
|
|
117
|
+
--accent-hover: #96c6ae;
|
|
118
|
+
--accent-soft: #294438;
|
|
119
|
+
--accent-contrast: #13241c;
|
|
120
|
+
--bg-tinted: #252928;
|
|
121
|
+
--orb-1: rgba(130, 185, 157, 0.06);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
[data-theme='dark'][data-accent='violet'] {
|
|
125
|
+
--accent: #a99ee8;
|
|
126
|
+
--accent-hover: #bbb2f0;
|
|
127
|
+
--accent-soft: #39354f;
|
|
128
|
+
--accent-contrast: #211d38;
|
|
129
|
+
--bg-tinted: #312e40;
|
|
130
|
+
--orb-1: rgba(169, 158, 232, 0.11);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
[data-theme='dark'][data-accent='evergreen'] {
|
|
134
|
+
--accent: #82b99d;
|
|
135
|
+
--accent-hover: #96c6ae;
|
|
136
|
+
--accent-soft: #294438;
|
|
137
|
+
--accent-contrast: #13241c;
|
|
138
|
+
--bg-tinted: #27312c;
|
|
139
|
+
--orb-1: rgba(130, 185, 157, 0.07);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
[data-theme='dark'][data-accent='teal'] {
|
|
143
|
+
--accent: #7eb8bf;
|
|
144
|
+
--accent-hover: #95c7cd;
|
|
145
|
+
--accent-soft: #294548;
|
|
146
|
+
--accent-contrast: #142528;
|
|
147
|
+
--bg-tinted: #243638;
|
|
148
|
+
--orb-1: rgba(126, 184, 191, 0.1);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
[data-theme='dark'][data-accent='ocean'] {
|
|
152
|
+
--accent: #8ab4d9;
|
|
153
|
+
--accent-hover: #9fc3e2;
|
|
154
|
+
--accent-soft: #2a3a4a;
|
|
155
|
+
--accent-contrast: #152130;
|
|
156
|
+
--bg-tinted: #253545;
|
|
157
|
+
--orb-1: rgba(138, 180, 217, 0.1);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
[data-theme='dark'][data-accent='amber'] {
|
|
161
|
+
--accent: #d4ad61;
|
|
162
|
+
--accent-hover: #debb78;
|
|
163
|
+
--accent-soft: #413823;
|
|
164
|
+
--accent-contrast: #2a2212;
|
|
165
|
+
--bg-tinted: #3a3220;
|
|
166
|
+
--orb-1: rgba(212, 173, 97, 0.09);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
[data-theme='dark'][data-accent='rose'] {
|
|
170
|
+
--accent: #df8a9a;
|
|
171
|
+
--accent-hover: #e79fad;
|
|
172
|
+
--accent-soft: #472f35;
|
|
173
|
+
--accent-contrast: #2a171c;
|
|
174
|
+
--bg-tinted: #3a2830;
|
|
175
|
+
--orb-1: rgba(223, 138, 154, 0.1);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
[data-theme='dark'][data-accent='coral'] {
|
|
179
|
+
--accent: #e09a82;
|
|
180
|
+
--accent-hover: #e8ad99;
|
|
181
|
+
--accent-soft: #4a322c;
|
|
182
|
+
--accent-contrast: #2a1a15;
|
|
183
|
+
--bg-tinted: #3d2e28;
|
|
184
|
+
--orb-1: rgba(224, 154, 130, 0.1);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
[data-theme='dark'][data-accent='slate'] {
|
|
188
|
+
--accent: #9aadc4;
|
|
189
|
+
--accent-hover: #aebed1;
|
|
190
|
+
--accent-soft: #2f3844;
|
|
191
|
+
--accent-contrast: #171e28;
|
|
192
|
+
--bg-tinted: #2a323c;
|
|
193
|
+
--orb-1: rgba(154, 173, 196, 0.1);
|
|
194
|
+
}
|
package/src/styles/index.css
CHANGED
package/src/styles/motion.css
CHANGED
|
@@ -16,6 +16,14 @@
|
|
|
16
16
|
animation: ambient-drift 18s ease-in-out infinite;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
[data-mood='site'] .ambient__orb {
|
|
20
|
+
opacity: 0.2;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
[data-mood='site'][data-theme='dark'] .ambient__orb {
|
|
24
|
+
opacity: 0.14;
|
|
25
|
+
}
|
|
26
|
+
|
|
19
27
|
.ambient__orb--1 {
|
|
20
28
|
width: 280px;
|
|
21
29
|
height: 280px;
|