@codenhub/styles 0.4.0 → 0.6.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/README.md +7 -7
- package/dist/aesthetics/chunky-tile.css +1 -1
- package/dist/aesthetics/cyber.css +1 -1
- package/dist/aesthetics/glass.css +1 -1
- package/dist/aesthetics/index.css +1 -1
- package/dist/aesthetics/neobrutalism.css +1 -1
- package/dist/aesthetics/pixel.css +1 -1
- package/dist/aesthetics/sketch.css +1 -0
- package/dist/components.css +1 -1
- package/dist/index.css +1 -1
- package/dist/native.css +1 -1
- package/dist/palette.css +1 -1
- package/dist/theme.css +1 -1
- package/dist/tw/aesthetics/chunky-tile.css +144 -128
- package/dist/tw/aesthetics/cyber.css +138 -96
- package/dist/tw/aesthetics/glass.css +332 -66
- package/dist/tw/aesthetics/index.css +3 -1
- package/dist/tw/aesthetics/neobrutalism.css +113 -54
- package/dist/tw/aesthetics/pixel.css +137 -87
- package/dist/tw/aesthetics/sketch.css +333 -0
- package/dist/tw/box.css +139 -52
- package/dist/tw/components/button.css +67 -28
- package/dist/tw/components/feedback.css +85 -67
- package/dist/tw/components/form.css +300 -230
- package/dist/tw/components/index.css +17 -9
- package/dist/tw/components/loader.css +38 -30
- package/dist/tw/components/surface.css +89 -129
- package/dist/tw/components/tooltip.css +91 -47
- package/dist/tw/corner.css +26 -0
- package/dist/tw/elevation.css +19 -28
- package/dist/tw/index.css +15 -19
- package/dist/tw/intent.css +47 -32
- package/dist/tw/native.css +58 -42
- package/dist/tw/palette.css +455 -446
- package/dist/tw/presentation.css +20 -29
- package/dist/tw/reset.css +21 -28
- package/dist/tw/surface.css +61 -0
- package/dist/tw/theme.css +156 -153
- package/dist/tw/utilities/content.css +283 -205
- package/dist/tw/utilities/layout.css +17 -27
- package/docs/accessibility.md +63 -46
- package/docs/changelog/0.5.0.md +38 -0
- package/docs/changelog/0.6.0.md +52 -0
- package/docs/changelog/index.md +2 -0
- package/docs/concepts.md +6 -6
- package/docs/index.md +12 -3
- package/docs/integrating/nextjs.md +1 -1
- package/docs/integrating/tailwind.md +14 -6
- package/docs/setup.md +28 -8
- package/docs/usage/aesthetics.md +88 -18
- package/docs/usage/buttons.md +14 -14
- package/docs/usage/composing.md +12 -12
- package/docs/usage/content-and-layout.md +25 -24
- package/docs/usage/customizing.md +92 -55
- package/docs/usage/feedback.md +5 -3
- package/docs/usage/forms.md +61 -45
- package/docs/usage/theming.md +41 -42
- package/docs/usage/tooltips.md +37 -17
- package/llms-full.txt +590 -304
- package/llms.txt +6 -0
- package/package.json +15 -5
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
for only the one in use: a cascading class has no static call site, so nothing
|
|
3
3
|
here can be tree-shaken.
|
|
4
4
|
|
|
5
|
-
Import after the base stylesheet in either form
|
|
5
|
+
Import before or after the base stylesheet, in either form: every entrypoint
|
|
6
|
+
states the layer order first, so load order decides nothing. */
|
|
6
7
|
@import "./neobrutalism.css";
|
|
7
8
|
@import "./glass.css";
|
|
8
9
|
@import "./pixel.css";
|
|
9
10
|
@import "./chunky-tile.css";
|
|
10
11
|
@import "./cyber.css";
|
|
12
|
+
@import "./sketch.css";
|
|
@@ -1,61 +1,114 @@
|
|
|
1
1
|
/* Neobrutalism: thick ink outline, a hard unblurred offset shadow, and a press
|
|
2
2
|
that moves the element into its own shadow. Material tokens only, no component
|
|
3
3
|
named -- the ink reaches everything through the intent reset, the shadow is
|
|
4
|
-
colourless geometry each component colours against its own intent.
|
|
5
|
-
|
|
6
|
-
.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
colourless geometry each component colours against its own intent. */
|
|
5
|
+
|
|
6
|
+
/* The layer map, stated before anything uses a layer -- see `theme.css`. The
|
|
7
|
+
aesthetic's token class sits in `components`, below every utility, so a
|
|
8
|
+
consumer's own utility or unlayered CSS beats it; the solo class stays
|
|
9
|
+
unlayered, because it has to beat a foreign component's unlayered CSS. See
|
|
10
|
+
docs/internal/model.md#cascade-layers. */
|
|
11
|
+
@layer theme, base, components, utilities;
|
|
12
|
+
|
|
13
|
+
@layer components {
|
|
14
|
+
.neobrutalism {
|
|
15
|
+
/* Read with a fallback, not declared, so an ancestor (`:root`, where an app
|
|
16
|
+
themes) can set `--neo-offset`; the private carries the resolved value to
|
|
17
|
+
the six places below. See model.md#rules-for-aesthetics (R8). */
|
|
18
|
+
--_neo-offset: var(--neo-offset, 4px);
|
|
19
|
+
|
|
20
|
+
/* Pure black reads as ink on a light page and disappears on a dark one, so the
|
|
21
|
+
ink follows the theme rather than the palette. A thick border in the neutral
|
|
22
|
+
border grey is a thick grey box, not a brutalist one. */
|
|
23
|
+
--ui-ink: light-dark(var(--color-neutral-950), var(--color-neutral-50));
|
|
11
24
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
25
|
+
--ui-corner: 0;
|
|
26
|
+
--ui-corner-surface: 0;
|
|
27
|
+
--ui-border-width: 2px;
|
|
28
|
+
--ui-border-max: 100px;
|
|
29
|
+
--ui-line-style: initial;
|
|
30
|
+
--ui-rule-style: initial;
|
|
16
31
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
32
|
+
/* Hard, unblurred, and offset. Scaled by each component's own elevation, so
|
|
33
|
+
the registry decides which components sit on a slab and `.flat` takes one
|
|
34
|
+
off without this file knowing which component it landed on. */
|
|
35
|
+
/* The slab is ink, not shade: a hard offset of the element's own line colour
|
|
36
|
+
is the whole look, so this aesthetic asks for the intent instead of the
|
|
37
|
+
neutral depth colour every other shadow uses. */
|
|
38
|
+
--ui-shadow-ink: 100%;
|
|
39
|
+
/* The ink replaces the depth colour whole, so this one is inert here; it is
|
|
40
|
+
restated so a region nested inside chunky tile or cyber does not inherit
|
|
41
|
+
their black or transparent depth. */
|
|
42
|
+
--elevation-color: light-dark(rgb(15 23 42 / 0.08), rgb(0 0 0 / 0.55));
|
|
43
|
+
--ui-shadow-x: var(--_neo-offset);
|
|
44
|
+
--ui-shadow-y: var(--_neo-offset);
|
|
45
|
+
--ui-shadow-blur: 0px;
|
|
46
|
+
--ui-shadow-spread: 0px;
|
|
47
|
+
/* No halo, cleared so a region nested inside another
|
|
48
|
+
aesthetic does not inherit one. */
|
|
49
|
+
--ui-halo-blur: initial;
|
|
50
|
+
--ui-halo-spread: initial;
|
|
51
|
+
--ui-halo-ink: initial;
|
|
21
52
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
53
|
+
/* The press: travel the offset, shrink the shadow to nothing, so the
|
|
54
|
+
element lands flat where its slab was. A translation `box` scales with
|
|
55
|
+
the slab, so the two stay the same length at every size and elevation.
|
|
56
|
+
Hover keeps the slab still under the pointer; `box-hover`'s derived fill
|
|
57
|
+
tint is the whole hover response. One token pair, no `:hover` list, R3
|
|
58
|
+
intact. */
|
|
59
|
+
--ui-active-shadow-x: 0px;
|
|
60
|
+
--ui-active-shadow-y: 0px;
|
|
61
|
+
--ui-active-transform: none;
|
|
62
|
+
--ui-active-translate-x: var(--_neo-offset);
|
|
63
|
+
--ui-active-translate-y: var(--_neo-offset);
|
|
64
|
+
--ui-hover-transform: none;
|
|
33
65
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
66
|
+
/* Nothing here clips or blurs, and an aesthetic nested inside another has to
|
|
67
|
+
say so rather than inherit it. Nothing clips, so the global focus outline
|
|
68
|
+
shows and no inset focus layer is wanted: cleared so a region nested
|
|
69
|
+
inside pixel does not inherit pixel's. */
|
|
70
|
+
--ui-focus-inset: initial;
|
|
71
|
+
--ui-clip: none;
|
|
72
|
+
--ui-clip-tight: none;
|
|
73
|
+
/* Round corners, said explicitly, and the pill and chip corners cleared back
|
|
74
|
+
to `--ui-corner`: a region nested inside `.cyber` would otherwise inherit
|
|
75
|
+
its bevel, its diagonal, its diamond pills, and its square chips. */
|
|
76
|
+
--ui-corner-shape: round;
|
|
77
|
+
--ui-radius-pill: initial;
|
|
78
|
+
--ui-radius-tight: initial;
|
|
79
|
+
--ui-radius: initial;
|
|
80
|
+
--ui-radius-surface: initial;
|
|
81
|
+
--ui-corner-tl: initial;
|
|
82
|
+
--ui-corner-tr: initial;
|
|
83
|
+
--ui-corner-br: initial;
|
|
84
|
+
--ui-corner-bl: initial;
|
|
85
|
+
--ui-shadow-inset: ;
|
|
86
|
+
/* The slab is depth cast in ink, not this element's line, so an `.edgeless`
|
|
87
|
+
button keeps it. Cleared rather than omitted, because a neobrutalist region
|
|
88
|
+
nested inside a pixel one would otherwise inherit pixel's answer and lose the
|
|
89
|
+
slab on everything the edge axis rests at zero. */
|
|
90
|
+
--ui-shadow-edge: initial;
|
|
91
|
+
--ui-backdrop: none;
|
|
92
|
+
--ui-surface-ground: initial;
|
|
93
|
+
--ui-surface-shadow: initial;
|
|
94
|
+
--ui-bg-alpha: 1;
|
|
95
|
+
--ui-surface-image: initial;
|
|
41
96
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
--ui-shadow-edge: initial;
|
|
58
|
-
--ui-backdrop: none;
|
|
97
|
+
/* A control's neutral line is the theme's control border, not this
|
|
98
|
+
aesthetic's ink: that ink is the primary colour in both themes, so every
|
|
99
|
+
unchecked toggle and resting field drew its boundary as loudly as a
|
|
100
|
+
primary one. Named rather than cleared, so a region nested inside glass
|
|
101
|
+
or chunky tile does not inherit theirs either. */
|
|
102
|
+
--ui-control-ink: var(--color-control-border);
|
|
103
|
+
--ui-rule-ink: initial;
|
|
104
|
+
|
|
105
|
+
/* Chunky tile's heavier label, cleared so a region nested inside it keeps
|
|
106
|
+
the button's and the badge's own label. */
|
|
107
|
+
--ui-label-weight: initial;
|
|
108
|
+
--ui-label-tracking: initial;
|
|
109
|
+
--ui-label-case: initial;
|
|
110
|
+
--ui-label-shadow: initial;
|
|
111
|
+
}
|
|
59
112
|
}
|
|
60
113
|
|
|
61
114
|
/* The one R3 exception, recorded in the registry as `selectors`. The slab here
|
|
@@ -63,13 +116,19 @@
|
|
|
63
116
|
registry rests flat -- looks unfinished without it. It writes the component's
|
|
64
117
|
resting default rather than the modifier, so `.flat`/`.raised`/`.floating`
|
|
65
118
|
still win on the element; a token would name the component through a longer
|
|
66
|
-
route. `--_d-elevation` inheriting is inert -- it equals `box`'s own fallback.
|
|
67
|
-
|
|
68
|
-
|
|
119
|
+
route. `--_d-elevation` inheriting is inert -- it equals `box`'s own fallback.
|
|
120
|
+
|
|
121
|
+
In `utilities`, not with the token class: it has to beat `@utility alert`'s
|
|
122
|
+
own `--_d-elevation: 0`, which it does there at 0-2-0, and it writes only a
|
|
123
|
+
private nothing a consumer sets. */
|
|
124
|
+
@layer utilities {
|
|
125
|
+
.neobrutalism .alert {
|
|
126
|
+
--_d-elevation: 1;
|
|
127
|
+
}
|
|
69
128
|
}
|
|
70
129
|
|
|
71
130
|
/* Solo: the same look painted onto the one element carrying the class, for an
|
|
72
|
-
element the package does not style. See docs/internal/solo-
|
|
131
|
+
element the package does not style. See docs/internal/model.md#solo-classes and
|
|
73
132
|
the note on `.glass-solo`: own knobs and foundation tokens with literal
|
|
74
133
|
fallbacks, never a shared `--ui-*`, `--intent-*`, or `--elevation-color`
|
|
75
134
|
token, unlayered, and not for this package's own components. */
|
|
@@ -6,97 +6,147 @@
|
|
|
6
6
|
which is exactly what `--ui-shadow-inset`, `--ui-shadow-spread` and
|
|
7
7
|
`--ui-shadow-edge` are for. The ring is still coloured by each component's own
|
|
8
8
|
intent, because the parts carry no colour. */
|
|
9
|
-
.pixel {
|
|
10
|
-
/* One pixel of the imaginary grid; the ring is one unit thick and the corner
|
|
11
|
-
one unit square, so scaling it scales the whole look. Read with a fallback
|
|
12
|
-
so an ancestor can set `--pixel-unit` -- declared here it outranks `:root`
|
|
13
|
-
(R8; see model.md#rules-for-aesthetics). */
|
|
14
|
-
--_pixel-unit: var(--pixel-unit, 4px);
|
|
15
9
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
var(--_pixel-unit)
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
10
|
+
/* The layer map, stated before anything uses a layer -- see `theme.css`. The
|
|
11
|
+
aesthetic's token class sits in `components`, below every utility, so a
|
|
12
|
+
consumer's own utility or unlayered CSS beats it; the solo class stays
|
|
13
|
+
unlayered, because it has to beat a foreign component's unlayered CSS. See
|
|
14
|
+
docs/internal/model.md#cascade-layers. */
|
|
15
|
+
@layer theme, base, components, utilities;
|
|
16
|
+
|
|
17
|
+
@layer components {
|
|
18
|
+
.pixel {
|
|
19
|
+
/* One pixel of the imaginary grid; the ring is one unit thick and the corner
|
|
20
|
+
one unit square, so scaling it scales the whole look. Read with a fallback
|
|
21
|
+
so an ancestor can set `--pixel-unit` -- declared here it outranks `:root`
|
|
22
|
+
(R8; see model.md#rules-for-aesthetics). */
|
|
23
|
+
--_pixel-unit: var(--pixel-unit, 4px);
|
|
24
|
+
|
|
25
|
+
--ui-ink: light-dark(var(--color-neutral-950), var(--color-neutral-50));
|
|
26
|
+
--ui-corner: 0;
|
|
27
|
+
--ui-corner-surface: 0;
|
|
28
|
+
|
|
29
|
+
/* A border would be clipped at the straight sides and paint a second line
|
|
30
|
+
beside the ring, so the ceiling takes it out and the ring does the drawing.
|
|
31
|
+
|
|
32
|
+
The width itself stays under the unit deliberately. Its one live reader is
|
|
33
|
+
the toggle cap in `form.css`, which reads it as the thinnest line this
|
|
34
|
+
aesthetic will accept where the full ring does not fit: a 16px checkbox
|
|
35
|
+
spending four pixels a side leaves an eight-pixel hole and an unchecked box
|
|
36
|
+
reads as a filled one. */
|
|
37
|
+
--ui-border-width: 2px;
|
|
38
|
+
--ui-border-max: 0px;
|
|
39
|
+
--ui-line-style: initial;
|
|
40
|
+
--ui-rule-style: initial;
|
|
41
|
+
|
|
42
|
+
/* The ring is one unit deep, which is exactly the corner cut, so the staircase
|
|
43
|
+
is covered and the line does not read as broken at the corners. Spread is not
|
|
44
|
+
scaled by elevation, so a chip resting at zero keeps its edge. */
|
|
45
|
+
--ui-shadow-inset: inset;
|
|
46
|
+
/* The ring is this element's border, not depth, drawn where `clip-path` cannot
|
|
47
|
+
cut it. `--ui-shadow-edge` says so and `box` colours it from `--_edge`, so
|
|
48
|
+
the edge axis still decides: an `.edgeless` badge or `.solid` button gets no
|
|
49
|
+
ring, an `.edged` card does, a field keeps one whatever a container asks.
|
|
50
|
+
Declared empty because it is read for presence -- the percentage form nests
|
|
51
|
+
two `color-mix()` results that WebKit resolves as zero (see `box`). */
|
|
52
|
+
--ui-shadow-edge: ;
|
|
53
|
+
--ui-shadow-spread: var(--_pixel-unit);
|
|
54
|
+
/* No halo, cleared so a region nested inside another
|
|
55
|
+
aesthetic does not inherit one. */
|
|
56
|
+
--ui-halo-blur: initial;
|
|
57
|
+
--ui-halo-spread: initial;
|
|
58
|
+
--ui-halo-ink: initial;
|
|
59
|
+
--ui-shadow-x: 0px;
|
|
60
|
+
--ui-shadow-y: 0px;
|
|
61
|
+
--ui-shadow-blur: 0px;
|
|
62
|
+
|
|
63
|
+
/* The focus ring is a second inset layer, and shadows paint first-on-top, so it
|
|
64
|
+
has to be wider than the edge to show at all. */
|
|
65
|
+
--ui-focus-inset: calc(var(--_pixel-unit) + var(--focus-ring-width));
|
|
66
|
+
|
|
67
|
+
/* One square unit off each corner, and nothing else. A staircase
|
|
68
|
+
approximates a curve, which is the one thing a low-resolution grid cannot
|
|
69
|
+
do: it reads as a bevel that has not quite committed. A single cut of the
|
|
70
|
+
grid's own unit is the shape the look is made of.
|
|
71
|
+
|
|
72
|
+
The polygon resolves the unit here, on `.pixel`, and inherits down
|
|
73
|
+
already-resolved -- so a component cannot rescale the corner by setting
|
|
74
|
+
`--pixel-unit` on itself, and the knob belongs above rather than within. */
|
|
75
|
+
--ui-clip: polygon(
|
|
76
|
+
0 var(--_pixel-unit),
|
|
77
|
+
var(--_pixel-unit) var(--_pixel-unit),
|
|
78
|
+
var(--_pixel-unit) 0,
|
|
79
|
+
calc(100% - var(--_pixel-unit)) 0,
|
|
80
|
+
calc(100% - var(--_pixel-unit)) var(--_pixel-unit),
|
|
81
|
+
100% var(--_pixel-unit),
|
|
82
|
+
100% calc(100% - var(--_pixel-unit)),
|
|
83
|
+
calc(100% - var(--_pixel-unit)) calc(100% - var(--_pixel-unit)),
|
|
84
|
+
calc(100% - var(--_pixel-unit)) 100%,
|
|
85
|
+
var(--_pixel-unit) 100%,
|
|
86
|
+
var(--_pixel-unit) calc(100% - var(--_pixel-unit)),
|
|
87
|
+
0 calc(100% - var(--_pixel-unit))
|
|
88
|
+
);
|
|
89
|
+
/* Chips take the other half of the vocabulary: no radius at all. The cut is one
|
|
90
|
+
grid unit whatever the element is, and one unit off each corner of a 24px
|
|
91
|
+
badge or a 16px checkbox is a bite rather than a corner. Squared is the
|
|
92
|
+
honest small-scale answer, and it is still the pixel look -- the aesthetic is
|
|
93
|
+
a grid, and a square is on it. */
|
|
94
|
+
--ui-clip-tight: none;
|
|
95
|
+
|
|
96
|
+
/* Square corners already, but a radius of zero draws no shape; it is
|
|
97
|
+
restated, and the pill and chip corners cleared back to `--ui-corner`, so
|
|
98
|
+
a region nested inside `.cyber` does not inherit its bevel onto anything
|
|
99
|
+
that sets a radius of its own. */
|
|
100
|
+
--ui-corner-shape: round;
|
|
101
|
+
--ui-radius-pill: initial;
|
|
102
|
+
--ui-radius-tight: initial;
|
|
103
|
+
--ui-radius: initial;
|
|
104
|
+
--ui-radius-surface: initial;
|
|
105
|
+
--ui-corner-tl: initial;
|
|
106
|
+
--ui-corner-tr: initial;
|
|
107
|
+
--ui-corner-br: initial;
|
|
108
|
+
--ui-corner-bl: initial;
|
|
109
|
+
|
|
110
|
+
/* The ring is the edge and nothing here is depth, so the shadow ink, the
|
|
111
|
+
press's shadow, and the depth colour are cleared or restated rather than
|
|
112
|
+
inherited from an aesthetic around this one. */
|
|
113
|
+
--ui-shadow-ink: initial;
|
|
114
|
+
--ui-active-shadow-x: initial;
|
|
115
|
+
--ui-active-shadow-y: initial;
|
|
116
|
+
--elevation-color: light-dark(rgb(15 23 42 / 0.08), rgb(0 0 0 / 0.55));
|
|
117
|
+
--ui-hover-transform: none;
|
|
118
|
+
--ui-active-transform: none;
|
|
119
|
+
--ui-active-translate-x: initial;
|
|
120
|
+
--ui-active-translate-y: initial;
|
|
121
|
+
--ui-backdrop: none;
|
|
122
|
+
--ui-surface-ground: initial;
|
|
123
|
+
--ui-surface-shadow: initial;
|
|
124
|
+
--ui-bg-alpha: 1;
|
|
125
|
+
--ui-surface-image: initial;
|
|
126
|
+
|
|
127
|
+
/* Consumer-supplied. The package ships no font binary, so the aesthetic has no
|
|
128
|
+
font to fall back to but a monospace stack. */
|
|
129
|
+
font-family: var(--font-pixel, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
|
|
130
|
+
|
|
131
|
+
/* A control's neutral line is the theme's control border, not this
|
|
132
|
+
aesthetic's ink: that ink is the primary colour in both themes, so every
|
|
133
|
+
unchecked toggle and resting field drew its boundary as loudly as a
|
|
134
|
+
primary one. Named rather than cleared, so a region nested inside glass
|
|
135
|
+
or chunky tile does not inherit theirs either. */
|
|
136
|
+
--ui-control-ink: var(--color-control-border);
|
|
137
|
+
--ui-rule-ink: initial;
|
|
138
|
+
|
|
139
|
+
/* Chunky tile's heavier label, cleared so a region nested inside it keeps
|
|
140
|
+
the button's and the badge's own label. */
|
|
141
|
+
--ui-label-weight: initial;
|
|
142
|
+
--ui-label-tracking: initial;
|
|
143
|
+
--ui-label-case: initial;
|
|
144
|
+
--ui-label-shadow: initial;
|
|
145
|
+
}
|
|
96
146
|
}
|
|
97
147
|
|
|
98
148
|
/* Solo: the same look painted onto the one element carrying the class, for an
|
|
99
|
-
element the package does not style. See docs/internal/solo-
|
|
149
|
+
element the package does not style. See docs/internal/model.md#solo-classes and
|
|
100
150
|
the note on `.glass-solo`: own knobs and foundation tokens with literal
|
|
101
151
|
fallbacks, never a shared `--ui-*`, `--intent-*`, or `--elevation-color`
|
|
102
152
|
token, unlayered, and not for this package's own components. */
|