@a-type/ui 1.8.9 → 1.8.11
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/dist/cjs/colorMode.d.ts +1 -0
- package/dist/cjs/colorMode.js +10 -0
- package/dist/cjs/colorMode.js.map +1 -1
- package/dist/cjs/components/box/Box.js +3 -3
- package/dist/cjs/components/box/Box.js.map +1 -1
- package/dist/cjs/components/card/Card.d.ts +1 -1
- package/dist/cjs/components/navBar/NavBar.js +1 -1
- package/dist/cjs/components/scrollArea/ScrollArea.js +8 -11
- package/dist/cjs/components/scrollArea/ScrollArea.js.map +1 -1
- package/dist/cjs/components/typography/typography.js +4 -4
- package/dist/cjs/components/typography/typography.js.map +1 -1
- package/dist/cjs/hooks/index.d.ts +1 -0
- package/dist/cjs/hooks/index.js +1 -0
- package/dist/cjs/hooks/index.js.map +1 -1
- package/dist/cjs/hooks/useOverrideTheme.d.ts +2 -0
- package/dist/cjs/hooks/useOverrideTheme.js +17 -0
- package/dist/cjs/hooks/useOverrideTheme.js.map +1 -0
- package/dist/cjs/themes.stories.d.ts +2 -0
- package/dist/cjs/themes.stories.js +17 -3
- package/dist/cjs/themes.stories.js.map +1 -1
- package/dist/cjs/uno.preset.js +187 -140
- package/dist/cjs/uno.preset.js.map +1 -1
- package/dist/css/main.css +674 -129
- package/dist/esm/colorMode.d.ts +1 -0
- package/dist/esm/colorMode.js +9 -0
- package/dist/esm/colorMode.js.map +1 -1
- package/dist/esm/components/box/Box.js +3 -3
- package/dist/esm/components/box/Box.js.map +1 -1
- package/dist/esm/components/card/Card.d.ts +1 -1
- package/dist/esm/components/navBar/NavBar.js +1 -1
- package/dist/esm/components/scrollArea/ScrollArea.js +8 -11
- package/dist/esm/components/scrollArea/ScrollArea.js.map +1 -1
- package/dist/esm/components/typography/typography.js +4 -4
- package/dist/esm/components/typography/typography.js.map +1 -1
- package/dist/esm/hooks/index.d.ts +1 -0
- package/dist/esm/hooks/index.js +1 -0
- package/dist/esm/hooks/index.js.map +1 -1
- package/dist/esm/hooks/useOverrideTheme.d.ts +2 -0
- package/dist/esm/hooks/useOverrideTheme.js +14 -0
- package/dist/esm/hooks/useOverrideTheme.js.map +1 -0
- package/dist/esm/themes.stories.d.ts +2 -0
- package/dist/esm/themes.stories.js +17 -3
- package/dist/esm/themes.stories.js.map +1 -1
- package/dist/esm/uno.preset.js +187 -140
- package/dist/esm/uno.preset.js.map +1 -1
- package/package.json +1 -1
- package/src/colorMode.ts +10 -0
- package/src/components/box/Box.tsx +3 -3
- package/src/components/navBar/NavBar.tsx +1 -1
- package/src/components/scrollArea/ScrollArea.tsx +8 -19
- package/src/components/typography/typography.tsx +4 -4
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useOverrideTheme.ts +14 -0
- package/src/themes.stories.tsx +108 -32
- package/src/uno.preset.ts +227 -140
package/src/uno.preset.ts
CHANGED
|
@@ -20,8 +20,8 @@ export default function presetAglio({
|
|
|
20
20
|
scale = 'md',
|
|
21
21
|
interFontLocation = 'https://resources.biscuits.club/fonts/Inter-VariableFont_slnt,wght.ttf',
|
|
22
22
|
colorRanges = {
|
|
23
|
-
light: [90,
|
|
24
|
-
dark: [0,
|
|
23
|
+
light: [90, 20],
|
|
24
|
+
dark: [0, 80],
|
|
25
25
|
},
|
|
26
26
|
borderScale = 1,
|
|
27
27
|
roundedness = 1,
|
|
@@ -70,12 +70,14 @@ export default function presetAglio({
|
|
|
70
70
|
light: 'var(--color-attention-light)',
|
|
71
71
|
dark: 'var(--color-attention-dark)',
|
|
72
72
|
wash: 'var(--color-attention-wash)',
|
|
73
|
+
ink: 'var(--color-attention-ink)',
|
|
73
74
|
},
|
|
74
75
|
accent: {
|
|
75
76
|
DEFAULT: 'var(--color-accent)',
|
|
76
77
|
light: 'var(--color-accent-light)',
|
|
77
78
|
dark: 'var(--color-accent-dark)',
|
|
78
79
|
wash: 'var(--color-accent-wash)',
|
|
80
|
+
ink: 'var(--color-accent-ink)',
|
|
79
81
|
},
|
|
80
82
|
accentWash: 'var(--color-accent-wash)',
|
|
81
83
|
'accent-wash': 'var(--color-accent-wash)',
|
|
@@ -88,6 +90,7 @@ export default function presetAglio({
|
|
|
88
90
|
light: 'var(--color-primary-light)',
|
|
89
91
|
dark: 'var(--color-primary-dark)',
|
|
90
92
|
wash: 'var(--color-primary-wash)',
|
|
93
|
+
ink: 'var(--color-primary-ink)',
|
|
91
94
|
},
|
|
92
95
|
primaryLight: 'var(--color-primary-light)',
|
|
93
96
|
'primary-light': 'var(--color-primary-light)',
|
|
@@ -100,6 +103,7 @@ export default function presetAglio({
|
|
|
100
103
|
wash: 'var(--color-gray-wash)',
|
|
101
104
|
light: 'var(--color-gray-light)',
|
|
102
105
|
dark: 'var(--color-gray-dark)',
|
|
106
|
+
ink: 'var(--color-gray-ink)',
|
|
103
107
|
blend: 'var(--color-gray-blend)',
|
|
104
108
|
},
|
|
105
109
|
grayBlend: 'var(--color-gray-blend)',
|
|
@@ -135,11 +139,11 @@ export default function presetAglio({
|
|
|
135
139
|
},
|
|
136
140
|
spacing: makeSpacing(spacingIncrement),
|
|
137
141
|
borderRadius: {
|
|
138
|
-
xs: `calc(0.25rem * var(--local-corner-scale, var(--global-corner-scale,1))
|
|
139
|
-
sm: `calc(0.5rem * var(--local-corner-scale, var(--global-corner-scale,1))
|
|
140
|
-
md: `calc(1rem * var(--local-corner-scale, var(--global-corner-scale,1))
|
|
141
|
-
lg: `calc(1.25rem * var(--local-corner-scale, var(--global-corner-scale,1))
|
|
142
|
-
xl: `calc(1.5rem * var(--local-corner-scale, var(--global-corner-scale,1))
|
|
142
|
+
xs: `calc(0.25rem * var(--local-corner-scale,1) * var(--global-corner-scale,1))`,
|
|
143
|
+
sm: `calc(0.5rem * var(--local-corner-scale,1) * var(--global-corner-scale,1))`,
|
|
144
|
+
md: `calc(1rem * var(--local-corner-scale,1) * var(--global-corner-scale,1))`,
|
|
145
|
+
lg: `calc(1.25rem * var(--local-corner-scale,1) * var(--global-corner-scale,1))`,
|
|
146
|
+
xl: `calc(1.5rem * var(--local-corner-scale,1) * var(--global-corner-scale,1))`,
|
|
143
147
|
full: cornerScale === 0 ? '0px' : '9999px',
|
|
144
148
|
},
|
|
145
149
|
lineWidth: {
|
|
@@ -418,10 +422,15 @@ export default function presetAglio({
|
|
|
418
422
|
|
|
419
423
|
[
|
|
420
424
|
/^color-(.*)$/,
|
|
421
|
-
(match, { theme }) =>
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
+
(match, { theme }) => {
|
|
426
|
+
if (match[1] === 'inherit') {
|
|
427
|
+
return { color: 'var(--v-color-altered,var(--v-color))' };
|
|
428
|
+
}
|
|
429
|
+
return {
|
|
430
|
+
color: 'var(--v-color-altered,var(--v-color))',
|
|
431
|
+
'--v-color': resolveThemeColor(match[1], theme),
|
|
432
|
+
};
|
|
433
|
+
},
|
|
425
434
|
],
|
|
426
435
|
[
|
|
427
436
|
/^color-lighten-(\d+\.?\d*)$/,
|
|
@@ -439,6 +448,9 @@ export default function presetAglio({
|
|
|
439
448
|
/^bg-(.*)$/,
|
|
440
449
|
(match, ctx) => {
|
|
441
450
|
const { theme } = ctx;
|
|
451
|
+
if (match[1] === 'inherit') {
|
|
452
|
+
return { 'background-color': 'var(--v-bg-altered,var(--v-bg))' };
|
|
453
|
+
}
|
|
442
454
|
const resolvedColor = resolveThemeColor(match[1], theme);
|
|
443
455
|
if (resolvedColor === null) {
|
|
444
456
|
return baseBgRule[1](match, ctx);
|
|
@@ -603,6 +615,72 @@ export default function presetAglio({
|
|
|
603
615
|
--color-shadow-2: var(--palette-shadow-3);
|
|
604
616
|
--color-overlay: var(--palette-black-overlay);
|
|
605
617
|
`;
|
|
618
|
+
|
|
619
|
+
const lemon = themeVars({
|
|
620
|
+
primary: 'yellow',
|
|
621
|
+
accent: 'green',
|
|
622
|
+
grayTweak: -10,
|
|
623
|
+
});
|
|
624
|
+
const leek = themeVars({
|
|
625
|
+
primary: 'green',
|
|
626
|
+
accent: 'blue',
|
|
627
|
+
grayTweak: 20,
|
|
628
|
+
primaryWashSaturation: 0.95,
|
|
629
|
+
});
|
|
630
|
+
const tomato = themeVars({
|
|
631
|
+
primary: 'magenta',
|
|
632
|
+
accent: 'green',
|
|
633
|
+
grayTweak: -20,
|
|
634
|
+
});
|
|
635
|
+
const blueberry = themeVars({
|
|
636
|
+
primary: 'blue',
|
|
637
|
+
accent: 'green',
|
|
638
|
+
grayTweak: 20,
|
|
639
|
+
});
|
|
640
|
+
const eggplant = themeVars({
|
|
641
|
+
primary: 'purple',
|
|
642
|
+
accent: 'green',
|
|
643
|
+
grayTweak: -20,
|
|
644
|
+
});
|
|
645
|
+
const salt = themeVars({
|
|
646
|
+
primary: 'true-gray',
|
|
647
|
+
accent: {
|
|
648
|
+
default: 'true-gray-light',
|
|
649
|
+
wash: 'white',
|
|
650
|
+
light: 'true-gray-wash',
|
|
651
|
+
dark: 'true-gray',
|
|
652
|
+
ink: 'true-gray-dark',
|
|
653
|
+
},
|
|
654
|
+
globalSaturation: 0,
|
|
655
|
+
});
|
|
656
|
+
|
|
657
|
+
const computedVars = `
|
|
658
|
+
--palette-gray-wash: hsl(from var(--color-primary-wash) calc(h + var(--gray-hue-tweak, 0)) calc(s * var(--wash-saturation-tweak, 1) * var(--global-saturation, 1)) calc(l * pow(1.025, var(--mode-mult,1))));
|
|
659
|
+
--palette-gray: hsl(from var(--color-primary) calc(h + var(--gray-hue-tweak, 0)) calc(s * var(--global-saturation, 1)) calc(l * 1.125));
|
|
660
|
+
--palette-gray-dark: hsl(from var(--color-primary-dark) calc(h + var(--gray-hue-tweak, 0)) calc(s * 0.75 * var(--global-saturation, 1)) calc(l * pow(1.125, var(--mode-mult,1))));
|
|
661
|
+
--palette-gray-light: hsl(from var(--color-primary-light) calc(h + var(--gray-hue-tweak, 0) * pow(2, var(--mode-mult, 1))) calc(s * 0.5 * var(--global-saturation, 1)) calc(l * pow(1.25, var(--mode-mult,1))));
|
|
662
|
+
--color-wash: var(--color-gray-wash);
|
|
663
|
+
--color-gray-wash: var(--palette-gray-wash);
|
|
664
|
+
--color-gray: var(--palette-gray);
|
|
665
|
+
--color-gray-dark: var(--palette-gray-dark);
|
|
666
|
+
--color-gray-light: var(--palette-gray-light);
|
|
667
|
+
--color-gray-ink: var(--color-black);
|
|
668
|
+
--palette-gray-1: var(--color-gray-wash);
|
|
669
|
+
--palette-gray-2: var(--color-gray-light);
|
|
670
|
+
--palette-gray-3: var(--color-gray-light);
|
|
671
|
+
--palette-gray-4: var(--color-gray);
|
|
672
|
+
--palette-gray-5: var(--color-gray);
|
|
673
|
+
--palette-gray-6: var(--color-gray);
|
|
674
|
+
--palette-gray-7: var(--color-gray-dark);
|
|
675
|
+
--palette-gray-8: var(--color-gray-dark);
|
|
676
|
+
--palette-gray-9: var(--color-black);
|
|
677
|
+
--palette-gray-0: var(--color-black);
|
|
678
|
+
--palette-gray-ex-1: var(--color-black);
|
|
679
|
+
--palette-gray-ex-2: var(--color-black);
|
|
680
|
+
--palette-white: hsl(from var(--color-wash) calc(h + 0) calc(s * 0.3 * var(--global-saturation, 1)) calc(min(100, l + 1 / var(--global-saturation, 1))));
|
|
681
|
+
--palette-black: hsl(from var(--color-gray-dark) calc(h + 0) calc(s * 0.1 * var(--global-saturation, 1)) calc(min(100, l / (var(--mode-mult,1) * -5 + pow(1 + var(--global-saturation, 1), 1.5)))));
|
|
682
|
+
`;
|
|
683
|
+
|
|
606
684
|
return `
|
|
607
685
|
@layer preflightBase, preflightVariant, components, responsive, variants, utilities;
|
|
608
686
|
|
|
@@ -617,7 +695,18 @@ export default function presetAglio({
|
|
|
617
695
|
--palette-red-20: #804020;
|
|
618
696
|
--palette-red-10: #702604;
|
|
619
697
|
--palette-red-00:rgb(37, 28, 25);
|
|
620
|
-
|
|
698
|
+
/* TODO: define these */
|
|
699
|
+
--palette-magenta-90: hsl(from rgb(255, 244, 240) calc(h - 20) s l);
|
|
700
|
+
--palette-magenta-80: hsl(from #ffdbcf calc(h - 20) s l);
|
|
701
|
+
--palette-magenta-70: hsl(from #ffbea6 calc(h - 20) s l);
|
|
702
|
+
--palette-magenta-60: hsl(from #fdad8e calc(h - 20) s l);
|
|
703
|
+
--palette-magenta-50: hsl(from #ff8e61 calc(h - 20) s l);
|
|
704
|
+
--palette-magenta-40: hsl(from #d56f46 calc(h - 20) s l);
|
|
705
|
+
--palette-magenta-30: hsl(from #ae562d calc(h - 20) s l);
|
|
706
|
+
--palette-magenta-20: hsl(from #804020 calc(h - 20) s l);
|
|
707
|
+
--palette-magenta-10: hsl(from #702604 calc(h - 20) s l);
|
|
708
|
+
--palette-magenta-00: hsl(from rgb(37, 28, 25) calc(h - 20) s l);
|
|
709
|
+
--palette-green-90:rgb(240, 255, 248);
|
|
621
710
|
--palette-green-80: #c2ffe9;
|
|
622
711
|
--palette-green-70: #92f2d1;
|
|
623
712
|
--palette-green-60: #86efc8;
|
|
@@ -637,7 +726,7 @@ export default function presetAglio({
|
|
|
637
726
|
--palette-yellow-20:rgb(111, 83, 23);
|
|
638
727
|
--palette-yellow-10:rgb(84, 62, 12);
|
|
639
728
|
--palette-yellow-00:rgb(37, 33, 22);
|
|
640
|
-
--palette-blue-90:
|
|
729
|
+
--palette-blue-90: rgb(238, 248, 255);
|
|
641
730
|
--palette-blue-80: #c4e7ff;
|
|
642
731
|
--palette-blue-70: #87d3fc;
|
|
643
732
|
--palette-blue-60: #5fcefe;
|
|
@@ -681,40 +770,15 @@ export default function presetAglio({
|
|
|
681
770
|
--palette-true-gray-20: #4f4f4f;
|
|
682
771
|
--palette-true-gray-10: #383838;
|
|
683
772
|
--palette-true-gray-00: #1f1f1f;
|
|
773
|
+
--palette-true-white: #ffffff;
|
|
774
|
+
--palette-true-black: #303030;
|
|
684
775
|
|
|
685
776
|
--global-saturation: ${saturationScale};
|
|
686
777
|
--global-corner-scale: ${cornerScale};
|
|
687
778
|
--global-border-scale: ${borderScale};
|
|
688
779
|
--global-spacing-scale: ${spacingScale};
|
|
689
780
|
|
|
690
|
-
|
|
691
|
-
--palette-gray: hsl(from var(--color-primary) calc(h + var(--gray-hue-tweak, 0)) calc(s * var(--global-saturation, 1)) calc(l * 1.125));
|
|
692
|
-
--palette-gray-dark: hsl(from var(--color-primary-dark) calc(h + var(--gray-hue-tweak, 0)) calc(s * 0.75 * var(--global-saturation, 1)) calc(l * pow(1.125, var(--mode-mult,1))));
|
|
693
|
-
--palette-gray-light: hsl(from var(--color-primary-light) calc(h + var(--gray-hue-tweak, 0) * pow(2, var(--mode-mult, 1))) calc(s * 0.5 * var(--global-saturation, 1)) calc(l * pow(1.25, var(--mode-mult,1))));
|
|
694
|
-
--color-wash: var(--color-gray-wash);
|
|
695
|
-
|
|
696
|
-
--color-gray-wash: var(--palette-gray-wash);
|
|
697
|
-
--color-gray: var(--palette-gray);
|
|
698
|
-
--color-gray-dark: var(--palette-gray-dark);
|
|
699
|
-
--color-gray-light: var(--palette-gray-light);
|
|
700
|
-
|
|
701
|
-
--palette-gray-1: var(--color-gray-wash);
|
|
702
|
-
--palette-gray-2: var(--color-gray-light);
|
|
703
|
-
--palette-gray-3: var(--color-gray-light);
|
|
704
|
-
--palette-gray-4: var(--color-gray);
|
|
705
|
-
--palette-gray-5: var(--color-gray);
|
|
706
|
-
--palette-gray-6: var(--color-gray);
|
|
707
|
-
--palette-gray-7: var(--color-gray-dark);
|
|
708
|
-
--palette-gray-8: var(--color-gray-dark);
|
|
709
|
-
--palette-gray-9: var(--color-black);
|
|
710
|
-
--palette-gray-0: var(--color-black);
|
|
711
|
-
--palette-gray-ex-1: var(--color-black);
|
|
712
|
-
--palette-gray-ex-2: var(--color-black);
|
|
713
|
-
|
|
714
|
-
--palette-true-white: #ffffff;
|
|
715
|
-
--palette-true-black: #303030;
|
|
716
|
-
--palette-white: hsl(from var(--color-wash) calc(h + 0) calc(s * 0.3 * var(--global-saturation, 1)) calc(min(100, l + 1 / var(--global-saturation, 1))));
|
|
717
|
-
--palette-black: hsl(from var(--color-gray-dark) calc(h + 0) calc(s * 0.1 * var(--global-saturation, 1)) calc(min(100, l / (var(--mode-mult,1) * -5 + pow(1 + var(--global-saturation, 1), 1.5)))));
|
|
781
|
+
${computedVars}
|
|
718
782
|
|
|
719
783
|
--z-nowPlaying: 40;
|
|
720
784
|
--z-nav: 50;
|
|
@@ -732,19 +796,7 @@ export default function presetAglio({
|
|
|
732
796
|
${lightMode}
|
|
733
797
|
|
|
734
798
|
/* DEFAULT THEME (LEMON) */
|
|
735
|
-
|
|
736
|
-
--color-attention: var(--color-red);
|
|
737
|
-
--color-attention-dark: var(--color-red-dark);
|
|
738
|
-
--color-attention-wash: var(--color-red-wash);
|
|
739
|
-
--color-accent: var(--color-green);
|
|
740
|
-
--color-accent-wash: var(--color-green-wash);
|
|
741
|
-
--color-accent-light: var(--color-green-light);
|
|
742
|
-
--color-accent-dark: var(--color-green-dark);
|
|
743
|
-
--color-primary: var(--color-yellow);
|
|
744
|
-
--color-primary-light: var(--color-yellow-light);
|
|
745
|
-
--color-primary-dark: var(--color-yellow-dark);
|
|
746
|
-
--color-primary-wash: var(--color-yellow-wash);
|
|
747
|
-
--gray-hue-tweak: -30;
|
|
799
|
+
${lemon}
|
|
748
800
|
}
|
|
749
801
|
|
|
750
802
|
/* INTRINSIC DARK THEME */
|
|
@@ -755,20 +807,8 @@ export default function presetAglio({
|
|
|
755
807
|
}
|
|
756
808
|
|
|
757
809
|
.theme-lemon {
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
--color-attention-dark: var(--color-red-dark);
|
|
761
|
-
--color-attention-wash: var(--color-red-wash);
|
|
762
|
-
--color-accent: var(--color-green);
|
|
763
|
-
--color-accent-wash: var(--color-green-wash);
|
|
764
|
-
--color-accent-light: var(--color-green-light);
|
|
765
|
-
--color-accent-dark: var(--color-green-dark);
|
|
766
|
-
--color-primary: var(--color-yellow);
|
|
767
|
-
--color-primary-light: var(--color-yellow-light);
|
|
768
|
-
--color-primary-dark: var(--color-yellow-dark);
|
|
769
|
-
--color-primary-wash: var(--color-yellow-wash);
|
|
770
|
-
|
|
771
|
-
--gray-hue-tweak: -20;
|
|
810
|
+
${lemon}
|
|
811
|
+
${computedVars}
|
|
772
812
|
}
|
|
773
813
|
|
|
774
814
|
/* fix yellow hue in dark mode */
|
|
@@ -787,88 +827,28 @@ export default function presetAglio({
|
|
|
787
827
|
}
|
|
788
828
|
|
|
789
829
|
.theme-blueberry {
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
--color-attention-dark: var(--color-red-dark);
|
|
793
|
-
--color-attention-wash: var(--color-red-wash);
|
|
794
|
-
--color-accent: var(--color-green);
|
|
795
|
-
--color-accent-wash: var(--color-green-wash);
|
|
796
|
-
--color-accent-light: var(--color-green-light);
|
|
797
|
-
--color-accent-dark: var(--color-green-dark);
|
|
798
|
-
--color-primary: var(--color-blue);
|
|
799
|
-
--color-primary-light: var(--color-blue-light);
|
|
800
|
-
--color-primary-dark: var(--color-blue-dark);
|
|
801
|
-
--color-primary-wash: var(--color-blue-wash);
|
|
802
|
-
|
|
803
|
-
--gray-hue-tweak: 20;
|
|
830
|
+
${blueberry}
|
|
831
|
+
${computedVars}
|
|
804
832
|
}
|
|
805
833
|
|
|
806
834
|
.theme-eggplant {
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
--color-attention-dark: var(--color-red-dark);
|
|
810
|
-
--color-attention-wash: var(--color-red-wash);
|
|
811
|
-
--color-accent: var(--color-green);
|
|
812
|
-
--color-accent-wash: var(--color-green-wash);
|
|
813
|
-
--color-accent-light: var(--color-green-light);
|
|
814
|
-
--color-accent-dark: var(--color-green-dark);
|
|
815
|
-
--color-primary: var(--color-purple);
|
|
816
|
-
--color-primary-light: var(--color-purple-light);
|
|
817
|
-
--color-primary-dark: var(--color-purple-dark);
|
|
818
|
-
--color-primary-wash: var(--color-purple-wash);
|
|
819
|
-
|
|
820
|
-
--gray-hue-tweak: -20;
|
|
835
|
+
${eggplant}
|
|
836
|
+
${computedVars}
|
|
821
837
|
}
|
|
822
838
|
|
|
823
839
|
.theme-leek {
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
--color-attention-dark: var(--color-red-dark);
|
|
827
|
-
--color-attention-wash: var(--color-red-wash);
|
|
828
|
-
--color-accent: var(--color-blue);
|
|
829
|
-
--color-accent-wash: var(--color-blue-wash);
|
|
830
|
-
--color-accent-light: var(--color-blue-light);
|
|
831
|
-
--color-accent-dark: var(--color-blue-dark);
|
|
832
|
-
--color-primary: var(--color-green);
|
|
833
|
-
--color-primary-light: var(--color-green-light);
|
|
834
|
-
--color-primary-dark: var(--color-green-dark);
|
|
835
|
-
--color-primary-wash: var(--color-green-wash);
|
|
836
|
-
|
|
837
|
-
--gray-hue-tweak: 20;
|
|
840
|
+
${leek}
|
|
841
|
+
${computedVars}
|
|
838
842
|
}
|
|
839
843
|
|
|
840
844
|
.theme-tomato {
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
--color-attention-dark: var(--color-red-dark);
|
|
844
|
-
--color-attention-wash: var(--color-red-wash);
|
|
845
|
-
--color-accent: var(--color-green);
|
|
846
|
-
--color-accent-wash: var(--color-green-wash);
|
|
847
|
-
--color-accent-light: var(--color-green-light);
|
|
848
|
-
--color-accent-dark: var(--color-green-dark);
|
|
849
|
-
--color-primary: hsl(from var(--color-red) calc(h - 20) s l);
|
|
850
|
-
--color-primary-light: hsl(from var(--color-red-light) calc(h - 20) s l);
|
|
851
|
-
--color-primary-dark: hsl(from var(--color-red-dark) calc(h - 20) s l);
|
|
852
|
-
--color-primary-wash: hsl(from var(--color-red-wash) calc(h - 20) s l);
|
|
853
|
-
|
|
854
|
-
--gray-hue-tweak: -20;
|
|
845
|
+
${tomato}
|
|
846
|
+
${computedVars}
|
|
855
847
|
}
|
|
856
848
|
|
|
857
849
|
.theme-salt {
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
--color-attention-dark: var(--color-red-dark);
|
|
861
|
-
--color-attention-wash: var(--color-red-wash);
|
|
862
|
-
--color-primary: var(--color-true-gray);
|
|
863
|
-
--color-primary-wash: var(--color-true-gray-wash);
|
|
864
|
-
--color-primary-light: var(--color-true-gray-light);
|
|
865
|
-
--color-primary-dark: var(--color-true-gray-dark);
|
|
866
|
-
--color-accent: var(--color-true-gray-light);
|
|
867
|
-
--color-accent-light: var(--color-true-gray-wash);
|
|
868
|
-
--color-accent-dark: var(--color-true-gray);
|
|
869
|
-
--color-accent-wash: var(--color-white);
|
|
870
|
-
|
|
871
|
-
--global-saturation: 0;
|
|
850
|
+
${salt}
|
|
851
|
+
${computedVars}
|
|
872
852
|
}
|
|
873
853
|
|
|
874
854
|
html, body {
|
|
@@ -902,10 +882,37 @@ export default function presetAglio({
|
|
|
902
882
|
/** SYSTEM OVERRIDES **/
|
|
903
883
|
.override-light {
|
|
904
884
|
${lightMode}
|
|
885
|
+
color: var(--color-black);
|
|
905
886
|
}
|
|
906
887
|
|
|
907
888
|
.override-dark {
|
|
908
889
|
${darkMode}
|
|
890
|
+
color: var(--color-black);
|
|
891
|
+
}
|
|
892
|
+
|
|
893
|
+
.theme-override-lemon {
|
|
894
|
+
${lemon}
|
|
895
|
+
${computedVars}
|
|
896
|
+
}
|
|
897
|
+
.theme-override-blueberry {
|
|
898
|
+
${blueberry}
|
|
899
|
+
${computedVars}
|
|
900
|
+
}
|
|
901
|
+
.theme-override-eggplant {
|
|
902
|
+
${eggplant}
|
|
903
|
+
${computedVars}
|
|
904
|
+
}
|
|
905
|
+
.theme-override-leek {
|
|
906
|
+
${leek}
|
|
907
|
+
${computedVars}
|
|
908
|
+
}
|
|
909
|
+
.theme-override-tomato {
|
|
910
|
+
${tomato}
|
|
911
|
+
${computedVars}
|
|
912
|
+
}
|
|
913
|
+
.theme-override-salt {
|
|
914
|
+
${salt}
|
|
915
|
+
${computedVars}
|
|
909
916
|
}
|
|
910
917
|
}
|
|
911
918
|
|
|
@@ -955,7 +962,15 @@ export default function presetAglio({
|
|
|
955
962
|
};
|
|
956
963
|
}
|
|
957
964
|
|
|
958
|
-
const themeColors = [
|
|
965
|
+
const themeColors = [
|
|
966
|
+
'red',
|
|
967
|
+
'magenta',
|
|
968
|
+
'green',
|
|
969
|
+
'yellow',
|
|
970
|
+
'blue',
|
|
971
|
+
'purple',
|
|
972
|
+
'true-gray',
|
|
973
|
+
];
|
|
959
974
|
function roundTens(num: number) {
|
|
960
975
|
return Math.round(num / 10) * 10;
|
|
961
976
|
}
|
|
@@ -963,7 +978,7 @@ function asPaletteValue(num: number) {
|
|
|
963
978
|
return roundTens(num).toString().padStart(2, '0');
|
|
964
979
|
}
|
|
965
980
|
function generateColors(from: number, to: number) {
|
|
966
|
-
const increment = (to - from) /
|
|
981
|
+
const increment = (to - from) / 4;
|
|
967
982
|
const map = themeColors.reduce(
|
|
968
983
|
(acc, color) => {
|
|
969
984
|
acc[`--color-${color}-wash`] = `var(--palette-${color}-${asPaletteValue(
|
|
@@ -978,6 +993,9 @@ function generateColors(from: number, to: number) {
|
|
|
978
993
|
acc[`--color-${color}-dark`] = `var(--palette-${color}-${asPaletteValue(
|
|
979
994
|
from + roundTens(increment * 3),
|
|
980
995
|
)})`;
|
|
996
|
+
acc[`--color-${color}-ink`] = `var(--palette-${color}-${asPaletteValue(
|
|
997
|
+
from + roundTens(increment * 4),
|
|
998
|
+
)})`;
|
|
981
999
|
return acc;
|
|
982
1000
|
},
|
|
983
1001
|
{} as Record<string, string>,
|
|
@@ -1054,3 +1072,72 @@ function darken(base: string, level: string) {
|
|
|
1054
1072
|
const levelNum = parseFloat(level);
|
|
1055
1073
|
return lighten(base, (levelNum / -15).toString());
|
|
1056
1074
|
}
|
|
1075
|
+
|
|
1076
|
+
function themeVars({
|
|
1077
|
+
primary,
|
|
1078
|
+
accent,
|
|
1079
|
+
grayTweak,
|
|
1080
|
+
globalSaturation,
|
|
1081
|
+
primaryWashSaturation,
|
|
1082
|
+
}: {
|
|
1083
|
+
primary: string | ExplicitColorRange;
|
|
1084
|
+
accent: string | ExplicitColorRange;
|
|
1085
|
+
grayTweak?: number;
|
|
1086
|
+
globalSaturation?: number;
|
|
1087
|
+
primaryWashSaturation?: number;
|
|
1088
|
+
}) {
|
|
1089
|
+
return `
|
|
1090
|
+
${themeVarRange({ name: 'attention', range: 'red' })}
|
|
1091
|
+
${themeVarRange({ name: 'accent', range: accent })}
|
|
1092
|
+
${themeVarRange({
|
|
1093
|
+
name: 'primary',
|
|
1094
|
+
range: primary,
|
|
1095
|
+
washSaturation: primaryWashSaturation,
|
|
1096
|
+
})}
|
|
1097
|
+
|
|
1098
|
+
--gray-hue-tweak: ${grayTweak ?? 0};
|
|
1099
|
+
${
|
|
1100
|
+
globalSaturation !== undefined
|
|
1101
|
+
? `--global-saturation: ${globalSaturation};`
|
|
1102
|
+
: ''
|
|
1103
|
+
}
|
|
1104
|
+
`;
|
|
1105
|
+
}
|
|
1106
|
+
|
|
1107
|
+
type ExplicitColorRange = {
|
|
1108
|
+
default: string;
|
|
1109
|
+
wash: string;
|
|
1110
|
+
light: string;
|
|
1111
|
+
dark: string;
|
|
1112
|
+
ink: string;
|
|
1113
|
+
};
|
|
1114
|
+
function themeVarRange({
|
|
1115
|
+
name,
|
|
1116
|
+
range,
|
|
1117
|
+
washSaturation = 1,
|
|
1118
|
+
}: {
|
|
1119
|
+
name: string;
|
|
1120
|
+
range: string | ExplicitColorRange;
|
|
1121
|
+
washSaturation?: number;
|
|
1122
|
+
}) {
|
|
1123
|
+
const realRange =
|
|
1124
|
+
typeof range === 'string'
|
|
1125
|
+
? {
|
|
1126
|
+
default: range,
|
|
1127
|
+
wash: `${range}-wash`,
|
|
1128
|
+
light: `${range}-light`,
|
|
1129
|
+
dark: `${range}-dark`,
|
|
1130
|
+
ink: `${range}-ink`,
|
|
1131
|
+
}
|
|
1132
|
+
: range;
|
|
1133
|
+
|
|
1134
|
+
return `--color-${name}: var(--color-${realRange.default});
|
|
1135
|
+
--color-${name}-wash: ${
|
|
1136
|
+
washSaturation !== 1
|
|
1137
|
+
? `hsl(from var(--color-${realRange.wash}) h calc(s * ${washSaturation}) l)`
|
|
1138
|
+
: `var(--color-${realRange.wash})`
|
|
1139
|
+
};
|
|
1140
|
+
--color-${name}-light: var(--color-${realRange.light});
|
|
1141
|
+
--color-${name}-dark: var(--color-${realRange.dark});
|
|
1142
|
+
--color-${name}-ink: var(--color-${realRange.ink});`;
|
|
1143
|
+
}
|