@greese/ui 1.0.0 → 1.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/dist/css/PageTransition.css +12 -0
- package/dist/greese.css +12 -0
- package/dist/style-manifest.json +7 -0
- package/package.json +1 -1
- package/src/components/PageTransition/PageTransition.scss +29 -0
- package/src/styles/_manifest.scss +2 -2
- package/themes/candy.css +87 -0
- package/themes/candy.scss +32 -0
- package/themes/forest.css +87 -0
- package/themes/forest.scss +32 -0
- package/themes/grape.css +87 -0
- package/themes/grape.scss +32 -0
- package/themes/greese.css +36 -0
- package/themes/greese.scss +21 -0
- package/themes/mono.css +87 -0
- package/themes/mono.scss +32 -0
- package/themes/ocean.css +87 -0
- package/themes/ocean.scss +32 -0
- package/themes/sunset.css +87 -0
- package/themes/sunset.scss +32 -0
|
@@ -333,6 +333,18 @@
|
|
|
333
333
|
html::view-transition-old(*.greese-PageTransition--exit-none) {
|
|
334
334
|
animation-name: none;
|
|
335
335
|
}
|
|
336
|
+
html::view-transition-new(*.greese-PageTransition--route-enter) {
|
|
337
|
+
animation-name: var(--greese-page-enter);
|
|
338
|
+
}
|
|
339
|
+
html::view-transition-old(*.greese-PageTransition--route-exit) {
|
|
340
|
+
animation-name: var(--greese-page-exit);
|
|
341
|
+
}
|
|
342
|
+
html::view-transition-group(*.greese-PageTransition--route-pace),
|
|
343
|
+
html::view-transition-old(*.greese-PageTransition--route-pace),
|
|
344
|
+
html::view-transition-new(*.greese-PageTransition--route-pace) {
|
|
345
|
+
animation-duration: var(--greese-page-duration, var(--greese-motion-page-duration, var(--greese-duration-normal)));
|
|
346
|
+
animation-timing-function: var(--greese-page-ease, var(--greese-motion-page-ease, var(--greese-ease-out)));
|
|
347
|
+
}
|
|
336
348
|
html::view-transition-group(*.greese-PageTransition--share) {
|
|
337
349
|
animation-duration: var(--greese-motion-share-duration, var(--greese-motion-page-duration, var(--greese-duration-normal)));
|
|
338
350
|
animation-timing-function: var(--greese-motion-share-ease, var(--greese-motion-page-ease, var(--greese-ease-out)));
|
package/dist/greese.css
CHANGED
|
@@ -11261,6 +11261,18 @@
|
|
|
11261
11261
|
html::view-transition-old(*.greese-PageTransition--exit-none) {
|
|
11262
11262
|
animation-name: none;
|
|
11263
11263
|
}
|
|
11264
|
+
html::view-transition-new(*.greese-PageTransition--route-enter) {
|
|
11265
|
+
animation-name: var(--greese-page-enter);
|
|
11266
|
+
}
|
|
11267
|
+
html::view-transition-old(*.greese-PageTransition--route-exit) {
|
|
11268
|
+
animation-name: var(--greese-page-exit);
|
|
11269
|
+
}
|
|
11270
|
+
html::view-transition-group(*.greese-PageTransition--route-pace),
|
|
11271
|
+
html::view-transition-old(*.greese-PageTransition--route-pace),
|
|
11272
|
+
html::view-transition-new(*.greese-PageTransition--route-pace) {
|
|
11273
|
+
animation-duration: var(--greese-page-duration, var(--greese-motion-page-duration, var(--greese-duration-normal)));
|
|
11274
|
+
animation-timing-function: var(--greese-page-ease, var(--greese-motion-page-ease, var(--greese-ease-out)));
|
|
11275
|
+
}
|
|
11264
11276
|
html::view-transition-group(*.greese-PageTransition--share) {
|
|
11265
11277
|
animation-duration: var(--greese-motion-share-duration, var(--greese-motion-page-duration, var(--greese-duration-normal)));
|
|
11266
11278
|
animation-timing-function: var(--greese-motion-share-ease, var(--greese-motion-page-ease, var(--greese-ease-out)));
|
package/dist/style-manifest.json
CHANGED
|
@@ -1726,6 +1726,9 @@
|
|
|
1726
1726
|
"exit-wipe-out-up-right",
|
|
1727
1727
|
"left",
|
|
1728
1728
|
"page",
|
|
1729
|
+
"route-enter",
|
|
1730
|
+
"route-exit",
|
|
1731
|
+
"route-pace",
|
|
1729
1732
|
"share",
|
|
1730
1733
|
"still",
|
|
1731
1734
|
"theme",
|
|
@@ -1745,6 +1748,10 @@
|
|
|
1745
1748
|
"--greese-motion-page-exit",
|
|
1746
1749
|
"--greese-motion-share-duration",
|
|
1747
1750
|
"--greese-motion-share-ease",
|
|
1751
|
+
"--greese-page-duration",
|
|
1752
|
+
"--greese-page-ease",
|
|
1753
|
+
"--greese-page-enter",
|
|
1754
|
+
"--greese-page-exit",
|
|
1748
1755
|
"--greese-page-scrolled"
|
|
1749
1756
|
]
|
|
1750
1757
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@greese/ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "greese ui's CSS and design tokens: a framework-free stylesheet, per-component CSS, custom properties, Sass kit and TypeScript constants. Works in plain HTML, or under any framework.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"css",
|
|
@@ -13,6 +13,11 @@
|
|
|
13
13
|
// greese-PageTransition--still not animated at all
|
|
14
14
|
// greese-PageTransition--page a whole page: only its screenful shows
|
|
15
15
|
// greese-PageTransition--left a page that left live: its rest fades
|
|
16
|
+
// greese-PageTransition--route-enter, --route-exit, --route-pace
|
|
17
|
+
// a route's or navigation's own effects
|
|
18
|
+
// and pace, read from the root's
|
|
19
|
+
// --greese-page-enter / -exit /
|
|
20
|
+
// -duration / -ease (usePageNavigate)
|
|
16
21
|
// Transition types (`greese-back`, …) pick between these classes in React's
|
|
17
22
|
// <ViewTransition> props, which works wherever React does; the CSS doesn't
|
|
18
23
|
// depend on `:active-view-transition-type()`. Entrances play the effects' own
|
|
@@ -93,6 +98,30 @@
|
|
|
93
98
|
animation-name: none;
|
|
94
99
|
}
|
|
95
100
|
|
|
101
|
+
// A route's or a navigation's own effects (usePageNavigate writes the
|
|
102
|
+
// variables at the click): after the named effects and the theme's roles,
|
|
103
|
+
// so they win; `--left` below still wins, since a live exit already played.
|
|
104
|
+
html::view-transition-new(*.greese-PageTransition--route-enter) {
|
|
105
|
+
animation-name: var(--greese-page-enter);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
html::view-transition-old(*.greese-PageTransition--route-exit) {
|
|
109
|
+
animation-name: var(--greese-page-exit);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
html::view-transition-group(*.greese-PageTransition--route-pace),
|
|
113
|
+
html::view-transition-old(*.greese-PageTransition--route-pace),
|
|
114
|
+
html::view-transition-new(*.greese-PageTransition--route-pace) {
|
|
115
|
+
animation-duration: var(
|
|
116
|
+
--greese-page-duration,
|
|
117
|
+
var(--greese-motion-page-duration, var(--greese-duration-normal))
|
|
118
|
+
);
|
|
119
|
+
animation-timing-function: var(
|
|
120
|
+
--greese-page-ease,
|
|
121
|
+
var(--greese-motion-page-ease, var(--greese-ease-out))
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
|
|
96
125
|
// A shared element morphs from where it was to where it is: its group
|
|
97
126
|
// moves and resizes, at the theme's `share-duration` and `share-ease`.
|
|
98
127
|
html::view-transition-group(*.greese-PageTransition--share) {
|
|
@@ -375,9 +375,9 @@ $blocks: (
|
|
|
375
375
|
),
|
|
376
376
|
'PageTransition': (
|
|
377
377
|
parts: (),
|
|
378
|
-
modifiers: ('enter-blur-in', 'enter-depth', 'enter-depth-in', 'enter-fade-down', 'enter-fade-end', 'enter-fade-in', 'enter-fade-start', 'enter-fade-up', 'enter-flip-down', 'enter-flip-left', 'enter-flip-over-down', 'enter-flip-over-left', 'enter-flip-over-right', 'enter-flip-over-up', 'enter-flip-right', 'enter-flip-up', 'enter-hinge', 'enter-iris-down', 'enter-iris-down-left', 'enter-iris-down-right', 'enter-iris-in', 'enter-iris-left', 'enter-iris-right', 'enter-iris-up', 'enter-iris-up-left', 'enter-iris-up-right', 'enter-none', 'enter-pocket-down', 'enter-pocket-down-left', 'enter-pocket-down-right', 'enter-pocket-left', 'enter-pocket-right', 'enter-pocket-up', 'enter-pocket-up-left', 'enter-pocket-up-right', 'enter-pop', 'enter-pop-in', 'enter-scale-in', 'enter-slide-down', 'enter-slide-left', 'enter-slide-right', 'enter-slide-up', 'enter-swing-in', 'enter-turn-x', 'enter-turn-y', 'enter-wipe-down', 'enter-wipe-down-left', 'enter-wipe-down-right', 'enter-wipe-left', 'enter-wipe-open-x', 'enter-wipe-open-y', 'enter-wipe-right', 'enter-wipe-up', 'enter-wipe-up-left', 'enter-wipe-up-right', 'exit-blur-out', 'exit-depth-out', 'exit-fade-out', 'exit-fade-out-down', 'exit-fade-out-up', 'exit-fall', 'exit-flip-out-down', 'exit-flip-out-left', 'exit-flip-out-right', 'exit-flip-out-up', 'exit-flip-over-out-down', 'exit-flip-over-out-left', 'exit-flip-over-out-right', 'exit-flip-over-out-up', 'exit-glow', 'exit-iris-out', 'exit-iris-out-down', 'exit-iris-out-down-left', 'exit-iris-out-down-right', 'exit-iris-out-left', 'exit-iris-out-right', 'exit-iris-out-up', 'exit-iris-out-up-left', 'exit-iris-out-up-right', 'exit-none', 'exit-pocket-out-down', 'exit-pocket-out-down-left', 'exit-pocket-out-down-right', 'exit-pocket-out-left', 'exit-pocket-out-right', 'exit-pocket-out-up', 'exit-pocket-out-up-left', 'exit-pocket-out-up-right', 'exit-pop-out', 'exit-rise', 'exit-scale-out', 'exit-squish', 'exit-swing-out', 'exit-tilt', 'exit-wipe-close-x', 'exit-wipe-close-y', 'exit-wipe-out-down', 'exit-wipe-out-down-left', 'exit-wipe-out-down-right', 'exit-wipe-out-left', 'exit-wipe-out-right', 'exit-wipe-out-up', 'exit-wipe-out-up-left', 'exit-wipe-out-up-right', 'left', 'page', 'share', 'still', 'theme', 'theme-back',),
|
|
378
|
+
modifiers: ('enter-blur-in', 'enter-depth', 'enter-depth-in', 'enter-fade-down', 'enter-fade-end', 'enter-fade-in', 'enter-fade-start', 'enter-fade-up', 'enter-flip-down', 'enter-flip-left', 'enter-flip-over-down', 'enter-flip-over-left', 'enter-flip-over-right', 'enter-flip-over-up', 'enter-flip-right', 'enter-flip-up', 'enter-hinge', 'enter-iris-down', 'enter-iris-down-left', 'enter-iris-down-right', 'enter-iris-in', 'enter-iris-left', 'enter-iris-right', 'enter-iris-up', 'enter-iris-up-left', 'enter-iris-up-right', 'enter-none', 'enter-pocket-down', 'enter-pocket-down-left', 'enter-pocket-down-right', 'enter-pocket-left', 'enter-pocket-right', 'enter-pocket-up', 'enter-pocket-up-left', 'enter-pocket-up-right', 'enter-pop', 'enter-pop-in', 'enter-scale-in', 'enter-slide-down', 'enter-slide-left', 'enter-slide-right', 'enter-slide-up', 'enter-swing-in', 'enter-turn-x', 'enter-turn-y', 'enter-wipe-down', 'enter-wipe-down-left', 'enter-wipe-down-right', 'enter-wipe-left', 'enter-wipe-open-x', 'enter-wipe-open-y', 'enter-wipe-right', 'enter-wipe-up', 'enter-wipe-up-left', 'enter-wipe-up-right', 'exit-blur-out', 'exit-depth-out', 'exit-fade-out', 'exit-fade-out-down', 'exit-fade-out-up', 'exit-fall', 'exit-flip-out-down', 'exit-flip-out-left', 'exit-flip-out-right', 'exit-flip-out-up', 'exit-flip-over-out-down', 'exit-flip-over-out-left', 'exit-flip-over-out-right', 'exit-flip-over-out-up', 'exit-glow', 'exit-iris-out', 'exit-iris-out-down', 'exit-iris-out-down-left', 'exit-iris-out-down-right', 'exit-iris-out-left', 'exit-iris-out-right', 'exit-iris-out-up', 'exit-iris-out-up-left', 'exit-iris-out-up-right', 'exit-none', 'exit-pocket-out-down', 'exit-pocket-out-down-left', 'exit-pocket-out-down-right', 'exit-pocket-out-left', 'exit-pocket-out-right', 'exit-pocket-out-up', 'exit-pocket-out-up-left', 'exit-pocket-out-up-right', 'exit-pop-out', 'exit-rise', 'exit-scale-out', 'exit-squish', 'exit-swing-out', 'exit-tilt', 'exit-wipe-close-x', 'exit-wipe-close-y', 'exit-wipe-out-down', 'exit-wipe-out-down-left', 'exit-wipe-out-down-right', 'exit-wipe-out-left', 'exit-wipe-out-right', 'exit-wipe-out-up', 'exit-wipe-out-up-left', 'exit-wipe-out-up-right', 'left', 'page', 'route-enter', 'route-exit', 'route-pace', 'share', 'still', 'theme', 'theme-back',),
|
|
379
379
|
part-modifiers: (),
|
|
380
|
-
variables: ('--greese-ease-out', '--greese-motion-distance', '--greese-motion-page', '--greese-motion-page-back', '--greese-motion-page-back-exit', '--greese-motion-page-duration', '--greese-motion-page-ease', '--greese-motion-page-exit', '--greese-motion-share-duration', '--greese-motion-share-ease', '--greese-page-scrolled',),
|
|
380
|
+
variables: ('--greese-ease-out', '--greese-motion-distance', '--greese-motion-page', '--greese-motion-page-back', '--greese-motion-page-back-exit', '--greese-motion-page-duration', '--greese-motion-page-ease', '--greese-motion-page-exit', '--greese-motion-share-duration', '--greese-motion-share-ease', '--greese-page-duration', '--greese-page-ease', '--greese-page-enter', '--greese-page-exit', '--greese-page-scrolled',),
|
|
381
381
|
),
|
|
382
382
|
'Pagination': (
|
|
383
383
|
parts: ('ellipsis', 'list', 'page', 'step',),
|
package/themes/candy.css
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Candy: a pink primary with azure, lavender and a yellow accent, on neutrals tinted pink.
|
|
3
|
+
*
|
|
4
|
+
* A greese ui color theme (ADR 0025): the brand colors and the neutrals
|
|
5
|
+
* (canvas, surfaces, text, borders) in both schemes, in @layer greese.theme;
|
|
6
|
+
* content and strong shades are derived for contrast (WCAG AA). It sets no
|
|
7
|
+
* shapes and no motion, so it goes with any shape or motion theme.
|
|
8
|
+
* Load it after greese ui's styles:
|
|
9
|
+
*
|
|
10
|
+
* import '@greese/ui/themes/candy.css'
|
|
11
|
+
*
|
|
12
|
+
* Generated from apps/site/src/studio/presets.ts (npm run themes -w site).
|
|
13
|
+
*/
|
|
14
|
+
@layer greese.reset, greese.tokens, greese.theme, greese.base, greese.components, greese.overrides, greese.utilities;
|
|
15
|
+
@layer greese.theme {
|
|
16
|
+
:root,
|
|
17
|
+
[data-greese-scheme=light],
|
|
18
|
+
[data-greese-scheme=system] {
|
|
19
|
+
--greese-color-canvas: #fff3f7;
|
|
20
|
+
--greese-color-surface: #ffe5ee;
|
|
21
|
+
--greese-color-surface-overlay: #ffffff;
|
|
22
|
+
--greese-color-fg: #2d0318;
|
|
23
|
+
--greese-color-fg-muted: #9c2661;
|
|
24
|
+
--greese-color-border: #ffcfe0;
|
|
25
|
+
--greese-color-border-strong: #ff81b6;
|
|
26
|
+
--greese-color-track: #ffcfe0;
|
|
27
|
+
--greese-color-primary: #c13b7b;
|
|
28
|
+
--greese-color-primary-strong: color-mix(in oklab, var(--greese-color-primary) 80%, #000);
|
|
29
|
+
--greese-color-primary-content: #ffffff;
|
|
30
|
+
--greese-color-secondary: #00668f;
|
|
31
|
+
--greese-color-secondary-strong: color-mix(in oklab, var(--greese-color-secondary) 80%, #000);
|
|
32
|
+
--greese-color-secondary-content: #ffffff;
|
|
33
|
+
--greese-color-tertiary: #9d79f6;
|
|
34
|
+
--greese-color-tertiary-strong: color-mix(in oklab, var(--greese-color-tertiary) 80%, #000);
|
|
35
|
+
--greese-color-tertiary-content: #11171c;
|
|
36
|
+
--greese-color-accent: #f4d90b;
|
|
37
|
+
--greese-color-accent-strong: color-mix(in oklab, var(--greese-color-accent) 80%, #000);
|
|
38
|
+
--greese-color-accent-content: #11171c;
|
|
39
|
+
}
|
|
40
|
+
@media (prefers-color-scheme: dark) {
|
|
41
|
+
:root:not([data-greese-scheme=light]),
|
|
42
|
+
[data-greese-scheme=system] {
|
|
43
|
+
--greese-color-canvas: #2d0318;
|
|
44
|
+
--greese-color-surface: #581235;
|
|
45
|
+
--greese-color-surface-overlay: #7a1a4a;
|
|
46
|
+
--greese-color-fg: #ffe5ee;
|
|
47
|
+
--greese-color-fg-muted: #ffaecd;
|
|
48
|
+
--greese-color-border: #7a1a4a;
|
|
49
|
+
--greese-color-border-strong: #9c2661;
|
|
50
|
+
--greese-color-track: #c13b7b;
|
|
51
|
+
--greese-color-primary: #ff81b6;
|
|
52
|
+
--greese-color-primary-strong: color-mix(in oklab, var(--greese-color-primary) 70%, #fff);
|
|
53
|
+
--greese-color-primary-content: #11171c;
|
|
54
|
+
--greese-color-secondary: #5ac0f7;
|
|
55
|
+
--greese-color-secondary-strong: color-mix(in oklab, var(--greese-color-secondary) 70%, #fff);
|
|
56
|
+
--greese-color-secondary-content: #11171c;
|
|
57
|
+
--greese-color-tertiary: #cdbfff;
|
|
58
|
+
--greese-color-tertiary-strong: color-mix(in oklab, var(--greese-color-tertiary) 70%, #fff);
|
|
59
|
+
--greese-color-tertiary-content: #11171c;
|
|
60
|
+
--greese-color-accent: #fbe136;
|
|
61
|
+
--greese-color-accent-strong: color-mix(in oklab, var(--greese-color-accent) 70%, #fff);
|
|
62
|
+
--greese-color-accent-content: #11171c;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
[data-greese-scheme=dark] {
|
|
66
|
+
--greese-color-canvas: #2d0318;
|
|
67
|
+
--greese-color-surface: #581235;
|
|
68
|
+
--greese-color-surface-overlay: #7a1a4a;
|
|
69
|
+
--greese-color-fg: #ffe5ee;
|
|
70
|
+
--greese-color-fg-muted: #ffaecd;
|
|
71
|
+
--greese-color-border: #7a1a4a;
|
|
72
|
+
--greese-color-border-strong: #9c2661;
|
|
73
|
+
--greese-color-track: #c13b7b;
|
|
74
|
+
--greese-color-primary: #ff81b6;
|
|
75
|
+
--greese-color-primary-strong: color-mix(in oklab, var(--greese-color-primary) 70%, #fff);
|
|
76
|
+
--greese-color-primary-content: #11171c;
|
|
77
|
+
--greese-color-secondary: #5ac0f7;
|
|
78
|
+
--greese-color-secondary-strong: color-mix(in oklab, var(--greese-color-secondary) 70%, #fff);
|
|
79
|
+
--greese-color-secondary-content: #11171c;
|
|
80
|
+
--greese-color-tertiary: #cdbfff;
|
|
81
|
+
--greese-color-tertiary-strong: color-mix(in oklab, var(--greese-color-tertiary) 70%, #fff);
|
|
82
|
+
--greese-color-tertiary-content: #11171c;
|
|
83
|
+
--greese-color-accent: #fbe136;
|
|
84
|
+
--greese-color-accent-strong: color-mix(in oklab, var(--greese-color-accent) 70%, #fff);
|
|
85
|
+
--greese-color-accent-content: #11171c;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Candy: a pink primary with azure, lavender and a yellow accent, on neutrals tinted pink.
|
|
3
|
+
*
|
|
4
|
+
* A greese ui color theme (ADR 0025): the brand colors and the neutrals
|
|
5
|
+
* (canvas, surfaces, text, borders) in both schemes, in @layer greese.theme;
|
|
6
|
+
* content and strong shades are derived for contrast (WCAG AA). It sets no
|
|
7
|
+
* shapes and no motion, so it goes with any shape or motion theme.
|
|
8
|
+
* Compile it with Sass's package importer, after greese ui's
|
|
9
|
+
* styles, or use the compiled candy.css.
|
|
10
|
+
*
|
|
11
|
+
* Generated from apps/site/src/studio/presets.ts (npm run themes -w site).
|
|
12
|
+
*/
|
|
13
|
+
// Generated by greese ui Theme Studio from greese-theme.json. Edit it there, or in
|
|
14
|
+
// the studio (npm run studio); changes made here are overwritten.
|
|
15
|
+
@use 'pkg:@greese/ui/scss/kit' as greese;
|
|
16
|
+
|
|
17
|
+
@include greese.tokens((
|
|
18
|
+
color: (
|
|
19
|
+
primary: (light: "pink-600", dark: "pink-400"),
|
|
20
|
+
secondary: (light: "azure-700", dark: "azure-400"),
|
|
21
|
+
tertiary: (light: "lavender-500", dark: "lavender-300"),
|
|
22
|
+
accent: (light: "yellow-400", dark: "yellow-300"),
|
|
23
|
+
canvas: (light: "pink-50", dark: "pink-999"),
|
|
24
|
+
surface: (light: "pink-100", dark: "pink-900"),
|
|
25
|
+
surface-overlay: (light: "#ffffff", dark: "pink-800"),
|
|
26
|
+
fg: (light: "pink-999", dark: "pink-100"),
|
|
27
|
+
fg-muted: (light: "pink-700", dark: "pink-300"),
|
|
28
|
+
border: (light: "pink-200", dark: "pink-800"),
|
|
29
|
+
border-strong: (light: "pink-400", dark: "pink-700"),
|
|
30
|
+
track: (light: "pink-200", dark: "pink-600"),
|
|
31
|
+
),
|
|
32
|
+
));
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Forest: a jade primary with lime, aqua and an orange accent, on neutrals tinted jade.
|
|
3
|
+
*
|
|
4
|
+
* A greese ui color theme (ADR 0025): the brand colors and the neutrals
|
|
5
|
+
* (canvas, surfaces, text, borders) in both schemes, in @layer greese.theme;
|
|
6
|
+
* content and strong shades are derived for contrast (WCAG AA). It sets no
|
|
7
|
+
* shapes and no motion, so it goes with any shape or motion theme.
|
|
8
|
+
* Load it after greese ui's styles:
|
|
9
|
+
*
|
|
10
|
+
* import '@greese/ui/themes/forest.css'
|
|
11
|
+
*
|
|
12
|
+
* Generated from apps/site/src/studio/presets.ts (npm run themes -w site).
|
|
13
|
+
*/
|
|
14
|
+
@layer greese.reset, greese.tokens, greese.theme, greese.base, greese.components, greese.overrides, greese.utilities;
|
|
15
|
+
@layer greese.theme {
|
|
16
|
+
:root,
|
|
17
|
+
[data-greese-scheme=light],
|
|
18
|
+
[data-greese-scheme=system] {
|
|
19
|
+
--greese-color-canvas: #eefaf4;
|
|
20
|
+
--greese-color-surface: #daf4e8;
|
|
21
|
+
--greese-color-surface-overlay: #ffffff;
|
|
22
|
+
--greese-color-fg: #001c11;
|
|
23
|
+
--greese-color-fg-muted: #006f51;
|
|
24
|
+
--greese-color-border: #baedd6;
|
|
25
|
+
--greese-color-border-strong: #54cea1;
|
|
26
|
+
--greese-color-track: #baedd6;
|
|
27
|
+
--greese-color-primary: #006f51;
|
|
28
|
+
--greese-color-primary-strong: color-mix(in oklab, var(--greese-color-primary) 80%, #000);
|
|
29
|
+
--greese-color-primary-content: #ffffff;
|
|
30
|
+
--greese-color-secondary: #517600;
|
|
31
|
+
--greese-color-secondary-strong: color-mix(in oklab, var(--greese-color-secondary) 80%, #000);
|
|
32
|
+
--greese-color-secondary-content: #ffffff;
|
|
33
|
+
--greese-color-tertiary: #00707b;
|
|
34
|
+
--greese-color-tertiary-strong: color-mix(in oklab, var(--greese-color-tertiary) 80%, #000);
|
|
35
|
+
--greese-color-tertiary-content: #ffffff;
|
|
36
|
+
--greese-color-accent: #c05d00;
|
|
37
|
+
--greese-color-accent-strong: color-mix(in oklab, var(--greese-color-accent) 80%, #000);
|
|
38
|
+
--greese-color-accent-content: #000000;
|
|
39
|
+
}
|
|
40
|
+
@media (prefers-color-scheme: dark) {
|
|
41
|
+
:root:not([data-greese-scheme=light]),
|
|
42
|
+
[data-greese-scheme=system] {
|
|
43
|
+
--greese-color-canvas: #001c11;
|
|
44
|
+
--greese-color-surface: #003c2a;
|
|
45
|
+
--greese-color-surface-overlay: #00553d;
|
|
46
|
+
--greese-color-fg: #daf4e8;
|
|
47
|
+
--greese-color-fg-muted: #8ee1be;
|
|
48
|
+
--greese-color-border: #00553d;
|
|
49
|
+
--greese-color-border-strong: #006f51;
|
|
50
|
+
--greese-color-track: #008e68;
|
|
51
|
+
--greese-color-primary: #54cea1;
|
|
52
|
+
--greese-color-primary-strong: color-mix(in oklab, var(--greese-color-primary) 70%, #fff);
|
|
53
|
+
--greese-color-primary-content: #11171c;
|
|
54
|
+
--greese-color-secondary: #a6dc51;
|
|
55
|
+
--greese-color-secondary-strong: color-mix(in oklab, var(--greese-color-secondary) 70%, #fff);
|
|
56
|
+
--greese-color-secondary-content: #11171c;
|
|
57
|
+
--greese-color-tertiary: #64d0de;
|
|
58
|
+
--greese-color-tertiary-strong: color-mix(in oklab, var(--greese-color-tertiary) 70%, #fff);
|
|
59
|
+
--greese-color-tertiary-content: #11171c;
|
|
60
|
+
--greese-color-accent: #ff9d5e;
|
|
61
|
+
--greese-color-accent-strong: color-mix(in oklab, var(--greese-color-accent) 70%, #fff);
|
|
62
|
+
--greese-color-accent-content: #11171c;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
[data-greese-scheme=dark] {
|
|
66
|
+
--greese-color-canvas: #001c11;
|
|
67
|
+
--greese-color-surface: #003c2a;
|
|
68
|
+
--greese-color-surface-overlay: #00553d;
|
|
69
|
+
--greese-color-fg: #daf4e8;
|
|
70
|
+
--greese-color-fg-muted: #8ee1be;
|
|
71
|
+
--greese-color-border: #00553d;
|
|
72
|
+
--greese-color-border-strong: #006f51;
|
|
73
|
+
--greese-color-track: #008e68;
|
|
74
|
+
--greese-color-primary: #54cea1;
|
|
75
|
+
--greese-color-primary-strong: color-mix(in oklab, var(--greese-color-primary) 70%, #fff);
|
|
76
|
+
--greese-color-primary-content: #11171c;
|
|
77
|
+
--greese-color-secondary: #a6dc51;
|
|
78
|
+
--greese-color-secondary-strong: color-mix(in oklab, var(--greese-color-secondary) 70%, #fff);
|
|
79
|
+
--greese-color-secondary-content: #11171c;
|
|
80
|
+
--greese-color-tertiary: #64d0de;
|
|
81
|
+
--greese-color-tertiary-strong: color-mix(in oklab, var(--greese-color-tertiary) 70%, #fff);
|
|
82
|
+
--greese-color-tertiary-content: #11171c;
|
|
83
|
+
--greese-color-accent: #ff9d5e;
|
|
84
|
+
--greese-color-accent-strong: color-mix(in oklab, var(--greese-color-accent) 70%, #fff);
|
|
85
|
+
--greese-color-accent-content: #11171c;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Forest: a jade primary with lime, aqua and an orange accent, on neutrals tinted jade.
|
|
3
|
+
*
|
|
4
|
+
* A greese ui color theme (ADR 0025): the brand colors and the neutrals
|
|
5
|
+
* (canvas, surfaces, text, borders) in both schemes, in @layer greese.theme;
|
|
6
|
+
* content and strong shades are derived for contrast (WCAG AA). It sets no
|
|
7
|
+
* shapes and no motion, so it goes with any shape or motion theme.
|
|
8
|
+
* Compile it with Sass's package importer, after greese ui's
|
|
9
|
+
* styles, or use the compiled forest.css.
|
|
10
|
+
*
|
|
11
|
+
* Generated from apps/site/src/studio/presets.ts (npm run themes -w site).
|
|
12
|
+
*/
|
|
13
|
+
// Generated by greese ui Theme Studio from greese-theme.json. Edit it there, or in
|
|
14
|
+
// the studio (npm run studio); changes made here are overwritten.
|
|
15
|
+
@use 'pkg:@greese/ui/scss/kit' as greese;
|
|
16
|
+
|
|
17
|
+
@include greese.tokens((
|
|
18
|
+
color: (
|
|
19
|
+
primary: (light: "jade-700", dark: "jade-400"),
|
|
20
|
+
secondary: (light: "lime-700", dark: "lime-400"),
|
|
21
|
+
tertiary: (light: "aqua-700", dark: "aqua-400"),
|
|
22
|
+
accent: (light: "orange-600", dark: "orange-400"),
|
|
23
|
+
canvas: (light: "jade-50", dark: "jade-999"),
|
|
24
|
+
surface: (light: "jade-100", dark: "jade-900"),
|
|
25
|
+
surface-overlay: (light: "#ffffff", dark: "jade-800"),
|
|
26
|
+
fg: (light: "jade-999", dark: "jade-100"),
|
|
27
|
+
fg-muted: (light: "jade-700", dark: "jade-300"),
|
|
28
|
+
border: (light: "jade-200", dark: "jade-800"),
|
|
29
|
+
border-strong: (light: "jade-400", dark: "jade-700"),
|
|
30
|
+
track: (light: "jade-200", dark: "jade-600"),
|
|
31
|
+
),
|
|
32
|
+
));
|
package/themes/grape.css
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grape: a lavender primary with magenta, royal blue and a jade accent, on neutrals tinted lavender.
|
|
3
|
+
*
|
|
4
|
+
* A greese ui color theme (ADR 0025): the brand colors and the neutrals
|
|
5
|
+
* (canvas, surfaces, text, borders) in both schemes, in @layer greese.theme;
|
|
6
|
+
* content and strong shades are derived for contrast (WCAG AA). It sets no
|
|
7
|
+
* shapes and no motion, so it goes with any shape or motion theme.
|
|
8
|
+
* Load it after greese ui's styles:
|
|
9
|
+
*
|
|
10
|
+
* import '@greese/ui/themes/grape.css'
|
|
11
|
+
*
|
|
12
|
+
* Generated from apps/site/src/studio/presets.ts (npm run themes -w site).
|
|
13
|
+
*/
|
|
14
|
+
@layer greese.reset, greese.tokens, greese.theme, greese.base, greese.components, greese.overrides, greese.utilities;
|
|
15
|
+
@layer greese.theme {
|
|
16
|
+
:root,
|
|
17
|
+
[data-greese-scheme=light],
|
|
18
|
+
[data-greese-scheme=system] {
|
|
19
|
+
--greese-color-canvas: #f7f5ff;
|
|
20
|
+
--greese-color-surface: #edeaff;
|
|
21
|
+
--greese-color-surface-overlay: #ffffff;
|
|
22
|
+
--greese-color-fg: #190c33;
|
|
23
|
+
--greese-color-fg-muted: #6443ab;
|
|
24
|
+
--greese-color-border: #dfd8ff;
|
|
25
|
+
--greese-color-border-strong: #b69fff;
|
|
26
|
+
--greese-color-track: #dfd8ff;
|
|
27
|
+
--greese-color-primary: #7e5bd0;
|
|
28
|
+
--greese-color-primary-strong: color-mix(in oklab, var(--greese-color-primary) 80%, #000);
|
|
29
|
+
--greese-color-primary-content: #ffffff;
|
|
30
|
+
--greese-color-secondary: #bb32a3;
|
|
31
|
+
--greese-color-secondary-strong: color-mix(in oklab, var(--greese-color-secondary) 80%, #000);
|
|
32
|
+
--greese-color-secondary-content: #ffffff;
|
|
33
|
+
--greese-color-tertiary: #5963e5;
|
|
34
|
+
--greese-color-tertiary-strong: color-mix(in oklab, var(--greese-color-tertiary) 80%, #000);
|
|
35
|
+
--greese-color-tertiary-content: #ffffff;
|
|
36
|
+
--greese-color-accent: #008e68;
|
|
37
|
+
--greese-color-accent-strong: color-mix(in oklab, var(--greese-color-accent) 80%, #000);
|
|
38
|
+
--greese-color-accent-content: #000000;
|
|
39
|
+
}
|
|
40
|
+
@media (prefers-color-scheme: dark) {
|
|
41
|
+
:root:not([data-greese-scheme=light]),
|
|
42
|
+
[data-greese-scheme=system] {
|
|
43
|
+
--greese-color-canvas: #190c33;
|
|
44
|
+
--greese-color-surface: #362361;
|
|
45
|
+
--greese-color-surface-overlay: #4c3285;
|
|
46
|
+
--greese-color-fg: #edeaff;
|
|
47
|
+
--greese-color-fg-muted: #cdbfff;
|
|
48
|
+
--greese-color-border: #4c3285;
|
|
49
|
+
--greese-color-border-strong: #6443ab;
|
|
50
|
+
--greese-color-track: #7e5bd0;
|
|
51
|
+
--greese-color-primary: #b69fff;
|
|
52
|
+
--greese-color-primary-strong: color-mix(in oklab, var(--greese-color-primary) 70%, #fff);
|
|
53
|
+
--greese-color-primary-content: #11171c;
|
|
54
|
+
--greese-color-secondary: #f97cde;
|
|
55
|
+
--greese-color-secondary-strong: color-mix(in oklab, var(--greese-color-secondary) 70%, #fff);
|
|
56
|
+
--greese-color-secondary-content: #11171c;
|
|
57
|
+
--greese-color-tertiary: #9aaaff;
|
|
58
|
+
--greese-color-tertiary-strong: color-mix(in oklab, var(--greese-color-tertiary) 70%, #fff);
|
|
59
|
+
--greese-color-tertiary-content: #11171c;
|
|
60
|
+
--greese-color-accent: #54cea1;
|
|
61
|
+
--greese-color-accent-strong: color-mix(in oklab, var(--greese-color-accent) 70%, #fff);
|
|
62
|
+
--greese-color-accent-content: #11171c;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
[data-greese-scheme=dark] {
|
|
66
|
+
--greese-color-canvas: #190c33;
|
|
67
|
+
--greese-color-surface: #362361;
|
|
68
|
+
--greese-color-surface-overlay: #4c3285;
|
|
69
|
+
--greese-color-fg: #edeaff;
|
|
70
|
+
--greese-color-fg-muted: #cdbfff;
|
|
71
|
+
--greese-color-border: #4c3285;
|
|
72
|
+
--greese-color-border-strong: #6443ab;
|
|
73
|
+
--greese-color-track: #7e5bd0;
|
|
74
|
+
--greese-color-primary: #b69fff;
|
|
75
|
+
--greese-color-primary-strong: color-mix(in oklab, var(--greese-color-primary) 70%, #fff);
|
|
76
|
+
--greese-color-primary-content: #11171c;
|
|
77
|
+
--greese-color-secondary: #f97cde;
|
|
78
|
+
--greese-color-secondary-strong: color-mix(in oklab, var(--greese-color-secondary) 70%, #fff);
|
|
79
|
+
--greese-color-secondary-content: #11171c;
|
|
80
|
+
--greese-color-tertiary: #9aaaff;
|
|
81
|
+
--greese-color-tertiary-strong: color-mix(in oklab, var(--greese-color-tertiary) 70%, #fff);
|
|
82
|
+
--greese-color-tertiary-content: #11171c;
|
|
83
|
+
--greese-color-accent: #54cea1;
|
|
84
|
+
--greese-color-accent-strong: color-mix(in oklab, var(--greese-color-accent) 70%, #fff);
|
|
85
|
+
--greese-color-accent-content: #11171c;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grape: a lavender primary with magenta, royal blue and a jade accent, on neutrals tinted lavender.
|
|
3
|
+
*
|
|
4
|
+
* A greese ui color theme (ADR 0025): the brand colors and the neutrals
|
|
5
|
+
* (canvas, surfaces, text, borders) in both schemes, in @layer greese.theme;
|
|
6
|
+
* content and strong shades are derived for contrast (WCAG AA). It sets no
|
|
7
|
+
* shapes and no motion, so it goes with any shape or motion theme.
|
|
8
|
+
* Compile it with Sass's package importer, after greese ui's
|
|
9
|
+
* styles, or use the compiled grape.css.
|
|
10
|
+
*
|
|
11
|
+
* Generated from apps/site/src/studio/presets.ts (npm run themes -w site).
|
|
12
|
+
*/
|
|
13
|
+
// Generated by greese ui Theme Studio from greese-theme.json. Edit it there, or in
|
|
14
|
+
// the studio (npm run studio); changes made here are overwritten.
|
|
15
|
+
@use 'pkg:@greese/ui/scss/kit' as greese;
|
|
16
|
+
|
|
17
|
+
@include greese.tokens((
|
|
18
|
+
color: (
|
|
19
|
+
primary: (light: "lavender-600", dark: "lavender-400"),
|
|
20
|
+
secondary: (light: "magenta-600", dark: "magenta-400"),
|
|
21
|
+
tertiary: (light: "royal-600", dark: "royal-400"),
|
|
22
|
+
accent: (light: "jade-600", dark: "jade-400"),
|
|
23
|
+
canvas: (light: "lavender-50", dark: "lavender-999"),
|
|
24
|
+
surface: (light: "lavender-100", dark: "lavender-900"),
|
|
25
|
+
surface-overlay: (light: "#ffffff", dark: "lavender-800"),
|
|
26
|
+
fg: (light: "lavender-999", dark: "lavender-100"),
|
|
27
|
+
fg-muted: (light: "lavender-700", dark: "lavender-300"),
|
|
28
|
+
border: (light: "lavender-200", dark: "lavender-800"),
|
|
29
|
+
border-strong: (light: "lavender-400", dark: "lavender-700"),
|
|
30
|
+
track: (light: "lavender-200", dark: "lavender-600"),
|
|
31
|
+
),
|
|
32
|
+
));
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Greese: the official theme. A warm orange primary on greese ui's own neutrals.
|
|
3
|
+
*
|
|
4
|
+
* A greese ui color theme (ADR 0025): the brand colors and the neutrals
|
|
5
|
+
* (canvas, surfaces, text, borders) in both schemes, in @layer greese.theme;
|
|
6
|
+
* content and strong shades are derived for contrast (WCAG AA). It sets no
|
|
7
|
+
* shapes and no motion, so it goes with any shape or motion theme.
|
|
8
|
+
* Load it after greese ui's styles:
|
|
9
|
+
*
|
|
10
|
+
* import '@greese/ui/themes/greese.css'
|
|
11
|
+
*
|
|
12
|
+
* Generated from apps/site/src/studio/presets.ts (npm run themes -w site).
|
|
13
|
+
*/
|
|
14
|
+
@layer greese.reset, greese.tokens, greese.theme, greese.base, greese.components, greese.overrides, greese.utilities;
|
|
15
|
+
@layer greese.theme {
|
|
16
|
+
:root,
|
|
17
|
+
[data-greese-scheme=light],
|
|
18
|
+
[data-greese-scheme=system] {
|
|
19
|
+
--greese-color-primary: #964700;
|
|
20
|
+
--greese-color-primary-strong: color-mix(in oklab, var(--greese-color-primary) 80%, #000);
|
|
21
|
+
--greese-color-primary-content: #ffffff;
|
|
22
|
+
}
|
|
23
|
+
@media (prefers-color-scheme: dark) {
|
|
24
|
+
:root:not([data-greese-scheme=light]),
|
|
25
|
+
[data-greese-scheme=system] {
|
|
26
|
+
--greese-color-primary: #ff9d5e;
|
|
27
|
+
--greese-color-primary-strong: color-mix(in oklab, var(--greese-color-primary) 70%, #fff);
|
|
28
|
+
--greese-color-primary-content: #11171c;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
[data-greese-scheme=dark] {
|
|
32
|
+
--greese-color-primary: #ff9d5e;
|
|
33
|
+
--greese-color-primary-strong: color-mix(in oklab, var(--greese-color-primary) 70%, #fff);
|
|
34
|
+
--greese-color-primary-content: #11171c;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Greese: the official theme. A warm orange primary on greese ui's own neutrals.
|
|
3
|
+
*
|
|
4
|
+
* A greese ui color theme (ADR 0025): the brand colors and the neutrals
|
|
5
|
+
* (canvas, surfaces, text, borders) in both schemes, in @layer greese.theme;
|
|
6
|
+
* content and strong shades are derived for contrast (WCAG AA). It sets no
|
|
7
|
+
* shapes and no motion, so it goes with any shape or motion theme.
|
|
8
|
+
* Compile it with Sass's package importer, after greese ui's
|
|
9
|
+
* styles, or use the compiled greese.css.
|
|
10
|
+
*
|
|
11
|
+
* Generated from apps/site/src/studio/presets.ts (npm run themes -w site).
|
|
12
|
+
*/
|
|
13
|
+
// Generated by greese ui Theme Studio from greese-theme.json. Edit it there, or in
|
|
14
|
+
// the studio (npm run studio); changes made here are overwritten.
|
|
15
|
+
@use 'pkg:@greese/ui/scss/kit' as greese;
|
|
16
|
+
|
|
17
|
+
@include greese.tokens((
|
|
18
|
+
color: (
|
|
19
|
+
primary: (light: "orange-700", dark: "orange-400"),
|
|
20
|
+
),
|
|
21
|
+
));
|
package/themes/mono.css
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mono: near-black (near-white in dark mode) and grays, with taupe and a single red accent, on gray neutrals.
|
|
3
|
+
*
|
|
4
|
+
* A greese ui color theme (ADR 0025): the brand colors and the neutrals
|
|
5
|
+
* (canvas, surfaces, text, borders) in both schemes, in @layer greese.theme;
|
|
6
|
+
* content and strong shades are derived for contrast (WCAG AA). It sets no
|
|
7
|
+
* shapes and no motion, so it goes with any shape or motion theme.
|
|
8
|
+
* Load it after greese ui's styles:
|
|
9
|
+
*
|
|
10
|
+
* import '@greese/ui/themes/mono.css'
|
|
11
|
+
*
|
|
12
|
+
* Generated from apps/site/src/studio/presets.ts (npm run themes -w site).
|
|
13
|
+
*/
|
|
14
|
+
@layer greese.reset, greese.tokens, greese.theme, greese.base, greese.components, greese.overrides, greese.utilities;
|
|
15
|
+
@layer greese.theme {
|
|
16
|
+
:root,
|
|
17
|
+
[data-greese-scheme=light],
|
|
18
|
+
[data-greese-scheme=system] {
|
|
19
|
+
--greese-color-canvas: #f7f7f7;
|
|
20
|
+
--greese-color-surface: #ededed;
|
|
21
|
+
--greese-color-surface-overlay: #ffffff;
|
|
22
|
+
--greese-color-fg: #161616;
|
|
23
|
+
--greese-color-fg-muted: #5c5c5c;
|
|
24
|
+
--greese-color-border: #dedede;
|
|
25
|
+
--greese-color-border-strong: #b1b1b1;
|
|
26
|
+
--greese-color-track: #dedede;
|
|
27
|
+
--greese-color-primary: #2e3335;
|
|
28
|
+
--greese-color-primary-strong: color-mix(in oklab, var(--greese-color-primary) 80%, #000);
|
|
29
|
+
--greese-color-primary-content: #ffffff;
|
|
30
|
+
--greese-color-secondary: #6f777c;
|
|
31
|
+
--greese-color-secondary-strong: color-mix(in oklab, var(--greese-color-secondary) 80%, #000);
|
|
32
|
+
--greese-color-secondary-content: #ffffff;
|
|
33
|
+
--greese-color-tertiary: #67594f;
|
|
34
|
+
--greese-color-tertiary-strong: color-mix(in oklab, var(--greese-color-tertiary) 80%, #000);
|
|
35
|
+
--greese-color-tertiary-content: #ffffff;
|
|
36
|
+
--greese-color-accent: #d52727;
|
|
37
|
+
--greese-color-accent-strong: color-mix(in oklab, var(--greese-color-accent) 80%, #000);
|
|
38
|
+
--greese-color-accent-content: #ffffff;
|
|
39
|
+
}
|
|
40
|
+
@media (prefers-color-scheme: dark) {
|
|
41
|
+
:root:not([data-greese-scheme=light]),
|
|
42
|
+
[data-greese-scheme=system] {
|
|
43
|
+
--greese-color-canvas: #161616;
|
|
44
|
+
--greese-color-surface: #323232;
|
|
45
|
+
--greese-color-surface-overlay: #464646;
|
|
46
|
+
--greese-color-fg: #ededed;
|
|
47
|
+
--greese-color-fg-muted: #cacaca;
|
|
48
|
+
--greese-color-border: #464646;
|
|
49
|
+
--greese-color-border-strong: #5c5c5c;
|
|
50
|
+
--greese-color-track: #767676;
|
|
51
|
+
--greese-color-primary: #ebedee;
|
|
52
|
+
--greese-color-primary-strong: color-mix(in oklab, var(--greese-color-primary) 70%, #fff);
|
|
53
|
+
--greese-color-primary-content: #11171c;
|
|
54
|
+
--greese-color-secondary: #aab3b7;
|
|
55
|
+
--greese-color-secondary-strong: color-mix(in oklab, var(--greese-color-secondary) 70%, #fff);
|
|
56
|
+
--greese-color-secondary-content: #11171c;
|
|
57
|
+
--greese-color-tertiary: #d3c7be;
|
|
58
|
+
--greese-color-tertiary-strong: color-mix(in oklab, var(--greese-color-tertiary) 70%, #fff);
|
|
59
|
+
--greese-color-tertiary-content: #11171c;
|
|
60
|
+
--greese-color-accent: #ff8b7f;
|
|
61
|
+
--greese-color-accent-strong: color-mix(in oklab, var(--greese-color-accent) 70%, #fff);
|
|
62
|
+
--greese-color-accent-content: #11171c;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
[data-greese-scheme=dark] {
|
|
66
|
+
--greese-color-canvas: #161616;
|
|
67
|
+
--greese-color-surface: #323232;
|
|
68
|
+
--greese-color-surface-overlay: #464646;
|
|
69
|
+
--greese-color-fg: #ededed;
|
|
70
|
+
--greese-color-fg-muted: #cacaca;
|
|
71
|
+
--greese-color-border: #464646;
|
|
72
|
+
--greese-color-border-strong: #5c5c5c;
|
|
73
|
+
--greese-color-track: #767676;
|
|
74
|
+
--greese-color-primary: #ebedee;
|
|
75
|
+
--greese-color-primary-strong: color-mix(in oklab, var(--greese-color-primary) 70%, #fff);
|
|
76
|
+
--greese-color-primary-content: #11171c;
|
|
77
|
+
--greese-color-secondary: #aab3b7;
|
|
78
|
+
--greese-color-secondary-strong: color-mix(in oklab, var(--greese-color-secondary) 70%, #fff);
|
|
79
|
+
--greese-color-secondary-content: #11171c;
|
|
80
|
+
--greese-color-tertiary: #d3c7be;
|
|
81
|
+
--greese-color-tertiary-strong: color-mix(in oklab, var(--greese-color-tertiary) 70%, #fff);
|
|
82
|
+
--greese-color-tertiary-content: #11171c;
|
|
83
|
+
--greese-color-accent: #ff8b7f;
|
|
84
|
+
--greese-color-accent-strong: color-mix(in oklab, var(--greese-color-accent) 70%, #fff);
|
|
85
|
+
--greese-color-accent-content: #11171c;
|
|
86
|
+
}
|
|
87
|
+
}
|
package/themes/mono.scss
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mono: near-black (near-white in dark mode) and grays, with taupe and a single red accent, on gray neutrals.
|
|
3
|
+
*
|
|
4
|
+
* A greese ui color theme (ADR 0025): the brand colors and the neutrals
|
|
5
|
+
* (canvas, surfaces, text, borders) in both schemes, in @layer greese.theme;
|
|
6
|
+
* content and strong shades are derived for contrast (WCAG AA). It sets no
|
|
7
|
+
* shapes and no motion, so it goes with any shape or motion theme.
|
|
8
|
+
* Compile it with Sass's package importer, after greese ui's
|
|
9
|
+
* styles, or use the compiled mono.css.
|
|
10
|
+
*
|
|
11
|
+
* Generated from apps/site/src/studio/presets.ts (npm run themes -w site).
|
|
12
|
+
*/
|
|
13
|
+
// Generated by greese ui Theme Studio from greese-theme.json. Edit it there, or in
|
|
14
|
+
// the studio (npm run studio); changes made here are overwritten.
|
|
15
|
+
@use 'pkg:@greese/ui/scss/kit' as greese;
|
|
16
|
+
|
|
17
|
+
@include greese.tokens((
|
|
18
|
+
color: (
|
|
19
|
+
primary: (light: "silver-900", dark: "silver-100"),
|
|
20
|
+
secondary: (light: "silver-600", dark: "silver-400"),
|
|
21
|
+
tertiary: (light: "taupe-700", dark: "taupe-300"),
|
|
22
|
+
accent: (light: "red-600", dark: "red-400"),
|
|
23
|
+
canvas: (light: "gray-50", dark: "gray-999"),
|
|
24
|
+
surface: (light: "gray-100", dark: "gray-900"),
|
|
25
|
+
surface-overlay: (light: "#ffffff", dark: "gray-800"),
|
|
26
|
+
fg: (light: "gray-999", dark: "gray-100"),
|
|
27
|
+
fg-muted: (light: "gray-700", dark: "gray-300"),
|
|
28
|
+
border: (light: "gray-200", dark: "gray-800"),
|
|
29
|
+
border-strong: (light: "gray-400", dark: "gray-700"),
|
|
30
|
+
track: (light: "gray-200", dark: "gray-600"),
|
|
31
|
+
),
|
|
32
|
+
));
|
package/themes/ocean.css
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ocean: a deep azure primary with royal blue, turquoise and a gold accent, on neutrals tinted azure.
|
|
3
|
+
*
|
|
4
|
+
* A greese ui color theme (ADR 0025): the brand colors and the neutrals
|
|
5
|
+
* (canvas, surfaces, text, borders) in both schemes, in @layer greese.theme;
|
|
6
|
+
* content and strong shades are derived for contrast (WCAG AA). It sets no
|
|
7
|
+
* shapes and no motion, so it goes with any shape or motion theme.
|
|
8
|
+
* Load it after greese ui's styles:
|
|
9
|
+
*
|
|
10
|
+
* import '@greese/ui/themes/ocean.css'
|
|
11
|
+
*
|
|
12
|
+
* Generated from apps/site/src/studio/presets.ts (npm run themes -w site).
|
|
13
|
+
*/
|
|
14
|
+
@layer greese.reset, greese.tokens, greese.theme, greese.base, greese.components, greese.overrides, greese.utilities;
|
|
15
|
+
@layer greese.theme {
|
|
16
|
+
:root,
|
|
17
|
+
[data-greese-scheme=light],
|
|
18
|
+
[data-greese-scheme=system] {
|
|
19
|
+
--greese-color-canvas: #eef9ff;
|
|
20
|
+
--greese-color-surface: #daf1ff;
|
|
21
|
+
--greese-color-surface-overlay: #ffffff;
|
|
22
|
+
--greese-color-fg: #001927;
|
|
23
|
+
--greese-color-fg-muted: #00668f;
|
|
24
|
+
--greese-color-border: #bde6ff;
|
|
25
|
+
--greese-color-border-strong: #5ac0f7;
|
|
26
|
+
--greese-color-track: #bde6ff;
|
|
27
|
+
--greese-color-primary: #00668f;
|
|
28
|
+
--greese-color-primary-strong: color-mix(in oklab, var(--greese-color-primary) 80%, #000);
|
|
29
|
+
--greese-color-primary-content: #ffffff;
|
|
30
|
+
--greese-color-secondary: #5963e5;
|
|
31
|
+
--greese-color-secondary-strong: color-mix(in oklab, var(--greese-color-secondary) 80%, #000);
|
|
32
|
+
--greese-color-secondary-content: #ffffff;
|
|
33
|
+
--greese-color-tertiary: #007069;
|
|
34
|
+
--greese-color-tertiary-strong: color-mix(in oklab, var(--greese-color-tertiary) 80%, #000);
|
|
35
|
+
--greese-color-tertiary-content: #ffffff;
|
|
36
|
+
--greese-color-accent: #df9c00;
|
|
37
|
+
--greese-color-accent-strong: color-mix(in oklab, var(--greese-color-accent) 80%, #000);
|
|
38
|
+
--greese-color-accent-content: #11171c;
|
|
39
|
+
}
|
|
40
|
+
@media (prefers-color-scheme: dark) {
|
|
41
|
+
:root:not([data-greese-scheme=light]),
|
|
42
|
+
[data-greese-scheme=system] {
|
|
43
|
+
--greese-color-canvas: #001927;
|
|
44
|
+
--greese-color-surface: #003750;
|
|
45
|
+
--greese-color-surface-overlay: #004d6e;
|
|
46
|
+
--greese-color-fg: #daf1ff;
|
|
47
|
+
--greese-color-fg-muted: #91d6ff;
|
|
48
|
+
--greese-color-border: #004d6e;
|
|
49
|
+
--greese-color-border-strong: #00668f;
|
|
50
|
+
--greese-color-track: #0082b6;
|
|
51
|
+
--greese-color-primary: #5ac0f7;
|
|
52
|
+
--greese-color-primary-strong: color-mix(in oklab, var(--greese-color-primary) 70%, #fff);
|
|
53
|
+
--greese-color-primary-content: #11171c;
|
|
54
|
+
--greese-color-secondary: #9aaaff;
|
|
55
|
+
--greese-color-secondary-strong: color-mix(in oklab, var(--greese-color-secondary) 70%, #fff);
|
|
56
|
+
--greese-color-secondary-content: #11171c;
|
|
57
|
+
--greese-color-tertiary: #5dcec5;
|
|
58
|
+
--greese-color-tertiary-strong: color-mix(in oklab, var(--greese-color-tertiary) 70%, #fff);
|
|
59
|
+
--greese-color-tertiary-content: #11171c;
|
|
60
|
+
--greese-color-accent: #ffd593;
|
|
61
|
+
--greese-color-accent-strong: color-mix(in oklab, var(--greese-color-accent) 70%, #fff);
|
|
62
|
+
--greese-color-accent-content: #11171c;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
[data-greese-scheme=dark] {
|
|
66
|
+
--greese-color-canvas: #001927;
|
|
67
|
+
--greese-color-surface: #003750;
|
|
68
|
+
--greese-color-surface-overlay: #004d6e;
|
|
69
|
+
--greese-color-fg: #daf1ff;
|
|
70
|
+
--greese-color-fg-muted: #91d6ff;
|
|
71
|
+
--greese-color-border: #004d6e;
|
|
72
|
+
--greese-color-border-strong: #00668f;
|
|
73
|
+
--greese-color-track: #0082b6;
|
|
74
|
+
--greese-color-primary: #5ac0f7;
|
|
75
|
+
--greese-color-primary-strong: color-mix(in oklab, var(--greese-color-primary) 70%, #fff);
|
|
76
|
+
--greese-color-primary-content: #11171c;
|
|
77
|
+
--greese-color-secondary: #9aaaff;
|
|
78
|
+
--greese-color-secondary-strong: color-mix(in oklab, var(--greese-color-secondary) 70%, #fff);
|
|
79
|
+
--greese-color-secondary-content: #11171c;
|
|
80
|
+
--greese-color-tertiary: #5dcec5;
|
|
81
|
+
--greese-color-tertiary-strong: color-mix(in oklab, var(--greese-color-tertiary) 70%, #fff);
|
|
82
|
+
--greese-color-tertiary-content: #11171c;
|
|
83
|
+
--greese-color-accent: #ffd593;
|
|
84
|
+
--greese-color-accent-strong: color-mix(in oklab, var(--greese-color-accent) 70%, #fff);
|
|
85
|
+
--greese-color-accent-content: #11171c;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ocean: a deep azure primary with royal blue, turquoise and a gold accent, on neutrals tinted azure.
|
|
3
|
+
*
|
|
4
|
+
* A greese ui color theme (ADR 0025): the brand colors and the neutrals
|
|
5
|
+
* (canvas, surfaces, text, borders) in both schemes, in @layer greese.theme;
|
|
6
|
+
* content and strong shades are derived for contrast (WCAG AA). It sets no
|
|
7
|
+
* shapes and no motion, so it goes with any shape or motion theme.
|
|
8
|
+
* Compile it with Sass's package importer, after greese ui's
|
|
9
|
+
* styles, or use the compiled ocean.css.
|
|
10
|
+
*
|
|
11
|
+
* Generated from apps/site/src/studio/presets.ts (npm run themes -w site).
|
|
12
|
+
*/
|
|
13
|
+
// Generated by greese ui Theme Studio from greese-theme.json. Edit it there, or in
|
|
14
|
+
// the studio (npm run studio); changes made here are overwritten.
|
|
15
|
+
@use 'pkg:@greese/ui/scss/kit' as greese;
|
|
16
|
+
|
|
17
|
+
@include greese.tokens((
|
|
18
|
+
color: (
|
|
19
|
+
primary: (light: "azure-700", dark: "azure-400"),
|
|
20
|
+
secondary: (light: "royal-600", dark: "royal-400"),
|
|
21
|
+
tertiary: (light: "turquoise-700", dark: "turquoise-400"),
|
|
22
|
+
accent: (light: "gold-500", dark: "gold-300"),
|
|
23
|
+
canvas: (light: "azure-50", dark: "azure-999"),
|
|
24
|
+
surface: (light: "azure-100", dark: "azure-900"),
|
|
25
|
+
surface-overlay: (light: "#ffffff", dark: "azure-800"),
|
|
26
|
+
fg: (light: "azure-999", dark: "azure-100"),
|
|
27
|
+
fg-muted: (light: "azure-700", dark: "azure-300"),
|
|
28
|
+
border: (light: "azure-200", dark: "azure-800"),
|
|
29
|
+
border-strong: (light: "azure-400", dark: "azure-700"),
|
|
30
|
+
track: (light: "azure-200", dark: "azure-600"),
|
|
31
|
+
),
|
|
32
|
+
));
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sunset: a burnt orange primary with ruby, gold and a magenta accent, on neutrals tinted orange.
|
|
3
|
+
*
|
|
4
|
+
* A greese ui color theme (ADR 0025): the brand colors and the neutrals
|
|
5
|
+
* (canvas, surfaces, text, borders) in both schemes, in @layer greese.theme;
|
|
6
|
+
* content and strong shades are derived for contrast (WCAG AA). It sets no
|
|
7
|
+
* shapes and no motion, so it goes with any shape or motion theme.
|
|
8
|
+
* Load it after greese ui's styles:
|
|
9
|
+
*
|
|
10
|
+
* import '@greese/ui/themes/sunset.css'
|
|
11
|
+
*
|
|
12
|
+
* Generated from apps/site/src/studio/presets.ts (npm run themes -w site).
|
|
13
|
+
*/
|
|
14
|
+
@layer greese.reset, greese.tokens, greese.theme, greese.base, greese.components, greese.overrides, greese.utilities;
|
|
15
|
+
@layer greese.theme {
|
|
16
|
+
:root,
|
|
17
|
+
[data-greese-scheme=light],
|
|
18
|
+
[data-greese-scheme=system] {
|
|
19
|
+
--greese-color-canvas: #fff4ee;
|
|
20
|
+
--greese-color-surface: #ffe8da;
|
|
21
|
+
--greese-color-surface-overlay: #ffffff;
|
|
22
|
+
--greese-color-fg: #290d00;
|
|
23
|
+
--greese-color-fg-muted: #964700;
|
|
24
|
+
--greese-color-border: #ffd8c1;
|
|
25
|
+
--greese-color-border-strong: #ff9d5e;
|
|
26
|
+
--greese-color-track: #ffd8c1;
|
|
27
|
+
--greese-color-primary: #964700;
|
|
28
|
+
--greese-color-primary-strong: color-mix(in oklab, var(--greese-color-primary) 80%, #000);
|
|
29
|
+
--greese-color-primary-content: #ffffff;
|
|
30
|
+
--greese-color-secondary: #d12655;
|
|
31
|
+
--greese-color-secondary-strong: color-mix(in oklab, var(--greese-color-secondary) 80%, #000);
|
|
32
|
+
--greese-color-secondary-content: #ffffff;
|
|
33
|
+
--greese-color-tertiary: #8a5f00;
|
|
34
|
+
--greese-color-tertiary-strong: color-mix(in oklab, var(--greese-color-tertiary) 80%, #000);
|
|
35
|
+
--greese-color-tertiary-content: #ffffff;
|
|
36
|
+
--greese-color-accent: #bb32a3;
|
|
37
|
+
--greese-color-accent-strong: color-mix(in oklab, var(--greese-color-accent) 80%, #000);
|
|
38
|
+
--greese-color-accent-content: #ffffff;
|
|
39
|
+
}
|
|
40
|
+
@media (prefers-color-scheme: dark) {
|
|
41
|
+
:root:not([data-greese-scheme=light]),
|
|
42
|
+
[data-greese-scheme=system] {
|
|
43
|
+
--greese-color-canvas: #290d00;
|
|
44
|
+
--greese-color-surface: #522300;
|
|
45
|
+
--greese-color-surface-overlay: #733400;
|
|
46
|
+
--greese-color-fg: #ffe8da;
|
|
47
|
+
--greese-color-fg-muted: #ffc19c;
|
|
48
|
+
--greese-color-border: #733400;
|
|
49
|
+
--greese-color-border-strong: #964700;
|
|
50
|
+
--greese-color-track: #c05d00;
|
|
51
|
+
--greese-color-primary: #ff9d5e;
|
|
52
|
+
--greese-color-primary-strong: color-mix(in oklab, var(--greese-color-primary) 70%, #fff);
|
|
53
|
+
--greese-color-primary-content: #11171c;
|
|
54
|
+
--greese-color-secondary: #ff8798;
|
|
55
|
+
--greese-color-secondary-strong: color-mix(in oklab, var(--greese-color-secondary) 70%, #fff);
|
|
56
|
+
--greese-color-secondary-content: #11171c;
|
|
57
|
+
--greese-color-tertiary: #feb93d;
|
|
58
|
+
--greese-color-tertiary-strong: color-mix(in oklab, var(--greese-color-tertiary) 70%, #fff);
|
|
59
|
+
--greese-color-tertiary-content: #11171c;
|
|
60
|
+
--greese-color-accent: #f97cde;
|
|
61
|
+
--greese-color-accent-strong: color-mix(in oklab, var(--greese-color-accent) 70%, #fff);
|
|
62
|
+
--greese-color-accent-content: #11171c;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
[data-greese-scheme=dark] {
|
|
66
|
+
--greese-color-canvas: #290d00;
|
|
67
|
+
--greese-color-surface: #522300;
|
|
68
|
+
--greese-color-surface-overlay: #733400;
|
|
69
|
+
--greese-color-fg: #ffe8da;
|
|
70
|
+
--greese-color-fg-muted: #ffc19c;
|
|
71
|
+
--greese-color-border: #733400;
|
|
72
|
+
--greese-color-border-strong: #964700;
|
|
73
|
+
--greese-color-track: #c05d00;
|
|
74
|
+
--greese-color-primary: #ff9d5e;
|
|
75
|
+
--greese-color-primary-strong: color-mix(in oklab, var(--greese-color-primary) 70%, #fff);
|
|
76
|
+
--greese-color-primary-content: #11171c;
|
|
77
|
+
--greese-color-secondary: #ff8798;
|
|
78
|
+
--greese-color-secondary-strong: color-mix(in oklab, var(--greese-color-secondary) 70%, #fff);
|
|
79
|
+
--greese-color-secondary-content: #11171c;
|
|
80
|
+
--greese-color-tertiary: #feb93d;
|
|
81
|
+
--greese-color-tertiary-strong: color-mix(in oklab, var(--greese-color-tertiary) 70%, #fff);
|
|
82
|
+
--greese-color-tertiary-content: #11171c;
|
|
83
|
+
--greese-color-accent: #f97cde;
|
|
84
|
+
--greese-color-accent-strong: color-mix(in oklab, var(--greese-color-accent) 70%, #fff);
|
|
85
|
+
--greese-color-accent-content: #11171c;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sunset: a burnt orange primary with ruby, gold and a magenta accent, on neutrals tinted orange.
|
|
3
|
+
*
|
|
4
|
+
* A greese ui color theme (ADR 0025): the brand colors and the neutrals
|
|
5
|
+
* (canvas, surfaces, text, borders) in both schemes, in @layer greese.theme;
|
|
6
|
+
* content and strong shades are derived for contrast (WCAG AA). It sets no
|
|
7
|
+
* shapes and no motion, so it goes with any shape or motion theme.
|
|
8
|
+
* Compile it with Sass's package importer, after greese ui's
|
|
9
|
+
* styles, or use the compiled sunset.css.
|
|
10
|
+
*
|
|
11
|
+
* Generated from apps/site/src/studio/presets.ts (npm run themes -w site).
|
|
12
|
+
*/
|
|
13
|
+
// Generated by greese ui Theme Studio from greese-theme.json. Edit it there, or in
|
|
14
|
+
// the studio (npm run studio); changes made here are overwritten.
|
|
15
|
+
@use 'pkg:@greese/ui/scss/kit' as greese;
|
|
16
|
+
|
|
17
|
+
@include greese.tokens((
|
|
18
|
+
color: (
|
|
19
|
+
primary: (light: "orange-700", dark: "orange-400"),
|
|
20
|
+
secondary: (light: "ruby-600", dark: "ruby-400"),
|
|
21
|
+
tertiary: (light: "gold-700", dark: "gold-400"),
|
|
22
|
+
accent: (light: "magenta-600", dark: "magenta-400"),
|
|
23
|
+
canvas: (light: "orange-50", dark: "orange-999"),
|
|
24
|
+
surface: (light: "orange-100", dark: "orange-900"),
|
|
25
|
+
surface-overlay: (light: "#ffffff", dark: "orange-800"),
|
|
26
|
+
fg: (light: "orange-999", dark: "orange-100"),
|
|
27
|
+
fg-muted: (light: "orange-700", dark: "orange-300"),
|
|
28
|
+
border: (light: "orange-200", dark: "orange-800"),
|
|
29
|
+
border-strong: (light: "orange-400", dark: "orange-700"),
|
|
30
|
+
track: (light: "orange-200", dark: "orange-600"),
|
|
31
|
+
),
|
|
32
|
+
));
|