@boyernick/standard-ui-tokens 0.3.1-canary.45 → 0.3.1

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.
Files changed (2) hide show
  1. package/css/tokens.css +88 -52
  2. package/package.json +1 -1
package/css/tokens.css CHANGED
@@ -235,16 +235,17 @@
235
235
  page a white top edge is invisible against the page, and what describes
236
236
  the shape instead is the shadowed underside — so the rim darkens towards
237
237
  the bottom. */
238
- --raised-fill-top: var(--gray-0);
239
- --raised-fill-mid: var(--gray-25);
240
- --raised-fill-bottom: var(--gray-75);
241
- --raised-glow: color-mix(in oklab, var(--white) 60%, transparent);
242
- --raised-edge-top: color-mix(in oklab, var(--black) 6%, transparent);
243
- --raised-edge-side: color-mix(in oklab, var(--black) 10%, transparent);
244
- --raised-edge-bottom: color-mix(in oklab, var(--black) 16%, transparent);
245
- --raised-bevel-top: color-mix(in oklab, var(--white) 90%, transparent);
246
- --raised-bevel-bottom: color-mix(in oklab, var(--black) 4%, transparent);
247
- --raised-shadow: color-mix(in oklab, var(--black) 12%, transparent);
238
+ --glass-alpha: 86%;
239
+ --glass-fill-top: var(--gray-0);
240
+ --glass-fill-mid: var(--gray-25);
241
+ --glass-fill-bottom: var(--gray-75);
242
+ --glass-glow: color-mix(in oklab, var(--white) 60%, transparent);
243
+ --glass-edge-top: color-mix(in oklab, var(--black) 6%, transparent);
244
+ --glass-edge-side: color-mix(in oklab, var(--black) 10%, transparent);
245
+ --glass-edge-bottom: color-mix(in oklab, var(--black) 16%, transparent);
246
+ --glass-bevel-top: color-mix(in oklab, var(--white) 90%, transparent);
247
+ --glass-bevel-bottom: color-mix(in oklab, var(--black) 4%, transparent);
248
+ --glass-shadow: color-mix(in oklab, var(--black) 12%, transparent);
248
249
  /* Raised solid controls — top edge highlight (primary / destructive) */
249
250
  --elevation-solid-top: inset 0 1px 0 0
250
251
  color-mix(in oklab, var(--white) 18%, transparent);
@@ -276,16 +277,17 @@
276
277
  reads as legible ink on a dark one. */
277
278
  /* Lit from above: the rim is brightest on the top edge, faint at the sides,
278
279
  and picks up a little bounce underneath. */
279
- --raised-fill-top: #282828;
280
- --raised-fill-mid: #1a1a1a;
281
- --raised-fill-bottom: #222222;
282
- --raised-glow: color-mix(in oklab, var(--white) 8.5%, transparent);
283
- --raised-edge-top: color-mix(in oklab, var(--white) 16%, transparent);
284
- --raised-edge-side: color-mix(in oklab, var(--white) 5%, transparent);
285
- --raised-edge-bottom: color-mix(in oklab, var(--white) 10%, transparent);
286
- --raised-bevel-top: color-mix(in oklab, var(--white) 9%, transparent);
287
- --raised-bevel-bottom: color-mix(in oklab, var(--white) 6%, transparent);
288
- --raised-shadow: color-mix(in oklab, var(--black) 72%, transparent);
280
+ --glass-alpha: 72%;
281
+ --glass-fill-top: #282828;
282
+ --glass-fill-mid: #1a1a1a;
283
+ --glass-fill-bottom: #222222;
284
+ --glass-glow: color-mix(in oklab, var(--white) 8.5%, transparent);
285
+ --glass-edge-top: color-mix(in oklab, var(--white) 16%, transparent);
286
+ --glass-edge-side: color-mix(in oklab, var(--white) 5%, transparent);
287
+ --glass-edge-bottom: color-mix(in oklab, var(--white) 10%, transparent);
288
+ --glass-bevel-top: color-mix(in oklab, var(--white) 9%, transparent);
289
+ --glass-bevel-bottom: color-mix(in oklab, var(--white) 6%, transparent);
290
+ --glass-shadow: color-mix(in oklab, var(--black) 72%, transparent);
289
291
 
290
292
  --decorative-green: var(--chart-1);
291
293
  --decorative-blue: var(--chart-2);
@@ -663,26 +665,6 @@
663
665
  * Blur is among the most expensive things a browser paints. Floating chrome
664
666
  * only. */
665
667
 
666
- @utility glass {
667
- background-color: color-mix(
668
- in oklab,
669
- var(--glass-tint, var(--alpha-base)) var(--glass-opacity, 12%),
670
- transparent
671
- );
672
- backdrop-filter: blur(var(--glass-blur, 20px))
673
- saturate(var(--glass-saturate, 180%));
674
- border-color: color-mix(
675
- in oklab,
676
- var(--glass-edge, var(--alpha-base)) var(--glass-edge-opacity, 22%),
677
- transparent
678
- );
679
-
680
- @media (prefers-reduced-transparency: reduce) {
681
- background-color: var(--glass-tint, var(--background-quaternary));
682
- backdrop-filter: none;
683
- }
684
- }
685
-
686
668
  @utility glass-panel {
687
669
  background-color: color-mix(
688
670
  in oklab,
@@ -697,27 +679,36 @@
697
679
  }
698
680
  }
699
681
 
700
- @utility raised {
682
+ @utility glass {
701
683
  position: relative;
702
684
  isolation: isolate;
703
685
  border: 0;
704
686
  background:
705
687
  radial-gradient(
706
688
  ellipse at 50% -18%,
707
- var(--raised-glow) 0%,
708
- color-mix(in oklab, var(--raised-glow) 35%, transparent) 32%,
689
+ var(--glass-glow) 0%,
690
+ color-mix(in oklab, var(--glass-glow) 35%, transparent) 32%,
709
691
  transparent 62%
710
692
  ),
711
693
  linear-gradient(
712
694
  180deg,
713
- var(--raised-fill-top) 0%,
714
- var(--raised-fill-mid) 40%,
715
- var(--raised-fill-bottom) 100%
695
+ color-mix(in oklab, var(--glass-fill-top) var(--glass-alpha, 86%), transparent)
696
+ 0%,
697
+ color-mix(in oklab, var(--glass-fill-mid) var(--glass-alpha, 86%), transparent)
698
+ 40%,
699
+ color-mix(
700
+ in oklab,
701
+ var(--glass-fill-bottom) var(--glass-alpha, 86%),
702
+ transparent
703
+ )
704
+ 100%
716
705
  );
706
+ backdrop-filter: blur(var(--glass-blur, 16px))
707
+ saturate(var(--glass-saturate, 160%));
717
708
  box-shadow:
718
- 0 3px 10px var(--raised-shadow),
719
- inset 0 1px 1px var(--raised-bevel-top),
720
- inset 0 -1px 1px var(--raised-bevel-bottom);
709
+ 0 3px 10px var(--glass-shadow),
710
+ inset 0 1px 1px var(--glass-bevel-top),
711
+ inset 0 -1px 1px var(--glass-bevel-bottom);
721
712
 
722
713
  /* The perimeter is a gradient, not a border, so it can be bright where the
723
714
  light lands and dim where it does not. Drawn as a masked ring: paint the
@@ -732,9 +723,9 @@
732
723
  pointer-events: none;
733
724
  background: linear-gradient(
734
725
  180deg,
735
- var(--raised-edge-top) 0%,
736
- var(--raised-edge-side) 36%,
737
- var(--raised-edge-bottom) 100%
726
+ var(--glass-edge-top) 0%,
727
+ var(--glass-edge-side) 36%,
728
+ var(--glass-edge-bottom) 100%
738
729
  );
739
730
  -webkit-mask:
740
731
  linear-gradient(#000 0 0) content-box,
@@ -745,6 +736,51 @@
745
736
  linear-gradient(#000 0 0);
746
737
  mask-composite: exclude;
747
738
  }
739
+
740
+ /* Fills solid and drops the blur where the reader has asked for it. The lit
741
+ gradient, the rim and the bevel all stay — only the see-through goes. */
742
+ @media (prefers-reduced-transparency: reduce) {
743
+ background: linear-gradient(
744
+ 180deg,
745
+ var(--glass-fill-top) 0%,
746
+ var(--glass-fill-mid) 40%,
747
+ var(--glass-fill-bottom) 100%
748
+ );
749
+ backdrop-filter: none;
750
+ }
751
+ }
752
+
753
+ /* Chrome that must ignore the page theme. A control over video or photography
754
+ has no idea what is behind it, and one over an inverted backdrop wants the
755
+ opposite of the page — so both re-declare the material's tokens rather than
756
+ inheriting them. */
757
+
758
+ @utility glass-dark {
759
+ --glass-alpha: 72%;
760
+ --glass-fill-top: #282828;
761
+ --glass-fill-mid: #1a1a1a;
762
+ --glass-fill-bottom: #222222;
763
+ --glass-glow: color-mix(in oklab, var(--white) 8.5%, transparent);
764
+ --glass-edge-top: color-mix(in oklab, var(--white) 16%, transparent);
765
+ --glass-edge-side: color-mix(in oklab, var(--white) 5%, transparent);
766
+ --glass-edge-bottom: color-mix(in oklab, var(--white) 10%, transparent);
767
+ --glass-bevel-top: color-mix(in oklab, var(--white) 9%, transparent);
768
+ --glass-bevel-bottom: color-mix(in oklab, var(--white) 6%, transparent);
769
+ --glass-shadow: color-mix(in oklab, var(--black) 72%, transparent);
770
+ }
771
+
772
+ @utility glass-light {
773
+ --glass-alpha: 86%;
774
+ --glass-fill-top: #ffffff;
775
+ --glass-fill-mid: #fcfcfc;
776
+ --glass-fill-bottom: #f3f3f3;
777
+ --glass-glow: color-mix(in oklab, var(--white) 60%, transparent);
778
+ --glass-edge-top: color-mix(in oklab, var(--black) 6%, transparent);
779
+ --glass-edge-side: color-mix(in oklab, var(--black) 10%, transparent);
780
+ --glass-edge-bottom: color-mix(in oklab, var(--black) 16%, transparent);
781
+ --glass-bevel-top: color-mix(in oklab, var(--white) 90%, transparent);
782
+ --glass-bevel-bottom: color-mix(in oklab, var(--black) 4%, transparent);
783
+ --glass-shadow: color-mix(in oklab, var(--black) 12%, transparent);
748
784
  }
749
785
 
750
786
  /* Headings lg → 2xl: sans + serif variants. md/sm/xs: sans. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@boyernick/standard-ui-tokens",
3
- "version": "0.3.1-canary.45",
3
+ "version": "0.3.1",
4
4
  "description": "Design tokens for StandardUI",
5
5
  "license": "MIT",
6
6
  "files": [