@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.
@@ -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)));
@@ -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.0.0",
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',),
@@ -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
+ ));
@@ -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
+ ));
@@ -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
+ }
@@ -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
+ ));
@@ -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
+ ));