@starci/grammar 0.1.0 → 0.2.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.
Files changed (46) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +53 -40
  3. package/dist/common/styles.css +2 -2
  4. package/dist/core/StateMark.d.ts +4 -0
  5. package/dist/core/StateMark.d.ts.map +1 -1
  6. package/dist/core/StateMark.js +1 -0
  7. package/dist/core/StateMark.js.map +1 -1
  8. package/dist/core/branch/Rail/index.d.ts +13 -2
  9. package/dist/core/branch/Rail/index.d.ts.map +1 -1
  10. package/dist/core/branch/Rail/index.js +17 -2
  11. package/dist/core/branch/Rail/index.js.map +1 -1
  12. package/dist/core/branch/SurfaceCard/index.d.ts +7 -1
  13. package/dist/core/branch/SurfaceCard/index.d.ts.map +1 -1
  14. package/dist/core/branch/SurfaceCard/index.js +3 -2
  15. package/dist/core/branch/SurfaceCard/index.js.map +1 -1
  16. package/dist/core/branch/SurfaceListCard/index.d.ts +20 -10
  17. package/dist/core/branch/SurfaceListCard/index.d.ts.map +1 -1
  18. package/dist/core/branch/SurfaceListCard/index.js +7 -9
  19. package/dist/core/branch/SurfaceListCard/index.js.map +1 -1
  20. package/dist/core/composite/StaticStateRow/index.d.ts +17 -0
  21. package/dist/core/composite/StaticStateRow/index.d.ts.map +1 -0
  22. package/dist/core/composite/StaticStateRow/index.js +11 -0
  23. package/dist/core/composite/StaticStateRow/index.js.map +1 -0
  24. package/dist/core/contracts.d.ts +28 -28
  25. package/dist/core/contracts.d.ts.map +1 -1
  26. package/dist/core/contracts.js +65 -11
  27. package/dist/core/contracts.js.map +1 -1
  28. package/dist/core/grammar.d.ts +1 -1
  29. package/dist/core/grammar.js +1 -1
  30. package/dist/core/index.d.ts +3 -0
  31. package/dist/core/index.d.ts.map +1 -1
  32. package/dist/core/index.js +3 -0
  33. package/dist/core/index.js.map +1 -1
  34. package/dist/core/layout.d.ts +9 -0
  35. package/dist/core/layout.d.ts.map +1 -0
  36. package/dist/core/layout.js +43 -0
  37. package/dist/core/layout.js.map +1 -0
  38. package/dist/core/rules.d.ts +18 -0
  39. package/dist/core/rules.d.ts.map +1 -1
  40. package/dist/core/rules.js +21 -0
  41. package/dist/core/rules.js.map +1 -1
  42. package/dist/core/styles.css +211 -162
  43. package/dist/offset-pop/index.d.ts +29 -29
  44. package/dist/offset-pop/index.js +2 -2
  45. package/dist/offset-pop/styles.css +393 -393
  46. package/package.json +72 -72
@@ -1,393 +1,393 @@
1
- @layer starci-grammar.offset-pop.tokens,
2
- starci-grammar.offset-pop.foundation,
3
- starci-grammar.offset-pop.components,
4
- starci-grammar.offset-pop.composition,
5
- starci-grammar.offset-pop.states,
6
- starci-grammar.offset-pop.responsive;
7
-
8
- @layer starci-grammar.offset-pop.tokens {
9
- [data-grammar="offset-pop"] {
10
- color-scheme: light;
11
-
12
- --offset-pop-canvas: #fff8ef;
13
- --offset-pop-canvas-dot: rgb(28 21 36 / 12%);
14
- --offset-pop-ink: #1c1524;
15
- --offset-pop-muted: #716a76;
16
- --offset-pop-surface: #fffdf9;
17
- --offset-pop-surface-muted: #f8dbe8;
18
- --offset-pop-pink: #ff3593;
19
- --offset-pop-yellow: #ffd447;
20
- --offset-pop-mint: #91e4ca;
21
- --offset-pop-blush: #f8d8e6;
22
- --offset-pop-critical: #e84a5f;
23
-
24
- --offset-pop-outline-width: 2px;
25
- --offset-pop-divider-width: 2px;
26
- --offset-pop-shadow-x: 6px;
27
- --offset-pop-shadow-y: 7px;
28
- --offset-pop-shadow-blur: 0;
29
- --offset-pop-shadow-spread: 0;
30
- --offset-pop-radius-surface: 1.5rem;
31
- --offset-pop-radius-control: 1.125rem;
32
- --offset-pop-radius-pill: 999px;
33
- --offset-pop-focus-width: 3px;
34
- --offset-pop-focus-gap: 3px;
35
- --offset-pop-press-x: 3px;
36
- --offset-pop-press-y: 4px;
37
- --offset-pop-rotation-low: -3deg;
38
- --offset-pop-rotation-high: 3deg;
39
- --offset-pop-overlap: clamp(1rem, 4cqi, 3rem);
40
- --offset-pop-dot-step: 24px;
41
- --offset-pop-transition: 140ms cubic-bezier(.2, .8, .2, 1);
42
- --offset-pop-display-weight: 900;
43
- --offset-pop-display-tracking: -.045em;
44
- }
45
-
46
- [data-theme="dark"][data-grammar="offset-pop"],
47
- .dark [data-grammar="offset-pop"] {
48
- color-scheme: dark;
49
-
50
- --offset-pop-canvas: #17121d;
51
- --offset-pop-canvas-dot: rgb(255 248 239 / 14%);
52
- --offset-pop-ink: #fff8ef;
53
- --offset-pop-muted: #c8bdca;
54
- --offset-pop-surface: #251d2c;
55
- --offset-pop-surface-muted: #3b2936;
56
- --offset-pop-shadow-ink: #050306;
57
- }
58
- }
59
-
60
- @layer starci-grammar.offset-pop.foundation {
61
- [data-grammar="offset-pop"] {
62
- --offset-pop-shadow-ink: var(--offset-pop-ink);
63
-
64
- color: var(--offset-pop-ink);
65
- background-color: var(--offset-pop-canvas);
66
- }
67
-
68
- [data-grammar="offset-pop"] [data-grammar-dot-field] {
69
- background-color: var(--offset-pop-canvas);
70
- background-image: radial-gradient(
71
- circle,
72
- var(--offset-pop-canvas-dot) 1px,
73
- transparent 1.25px
74
- );
75
- background-position: center;
76
- background-size: var(--offset-pop-dot-step) var(--offset-pop-dot-step);
77
- }
78
-
79
- [data-grammar="offset-pop"] [data-grammar-display] {
80
- color: var(--offset-pop-ink);
81
- font-weight: var(--offset-pop-display-weight);
82
- letter-spacing: var(--offset-pop-display-tracking);
83
- line-height: .96;
84
- text-wrap: balance;
85
- }
86
-
87
- [data-grammar="offset-pop"] [data-grammar-muted] {
88
- color: var(--offset-pop-muted);
89
- }
90
-
91
- [data-grammar="offset-pop"] [data-grammar-accent="pink"] {
92
- --offset-pop-local-accent: var(--offset-pop-pink);
93
- }
94
-
95
- [data-grammar="offset-pop"] [data-grammar-accent="yellow"] {
96
- --offset-pop-local-accent: var(--offset-pop-yellow);
97
- }
98
-
99
- [data-grammar="offset-pop"] [data-grammar-accent="mint"] {
100
- --offset-pop-local-accent: var(--offset-pop-mint);
101
- }
102
-
103
- [data-grammar="offset-pop"] [data-grammar-accent="blush"] {
104
- --offset-pop-local-accent: var(--offset-pop-blush);
105
- }
106
- }
107
-
108
- @layer starci-grammar.offset-pop.components {
109
- [data-grammar="offset-pop"] [data-grammar-surface] {
110
- position: relative;
111
- border: var(--offset-pop-outline-width) solid var(--offset-pop-ink);
112
- border-radius: var(--offset-pop-radius-surface);
113
- color: var(--offset-pop-ink);
114
- background: var(--offset-pop-surface);
115
- }
116
-
117
- [data-grammar="offset-pop"] [data-grammar-surface][data-grammar-surface-depth="top"] {
118
- box-shadow:
119
- var(--offset-pop-shadow-x)
120
- var(--offset-pop-shadow-y)
121
- var(--offset-pop-shadow-blur)
122
- var(--offset-pop-shadow-spread)
123
- var(--offset-pop-shadow-ink);
124
- }
125
-
126
- [data-grammar="offset-pop"] [data-grammar-surface][data-grammar-surface-depth="nested"] {
127
- box-shadow: none;
128
- background: color-mix(in srgb, var(--offset-pop-surface) 88%, transparent);
129
- }
130
-
131
- [data-grammar="offset-pop"] [data-grammar-surface-label] {
132
- color: var(--offset-pop-ink);
133
- font-weight: 800;
134
- letter-spacing: -.015em;
135
- }
136
-
137
- [data-grammar="offset-pop"] [data-grammar-surface-content] {
138
- min-inline-size: 0;
139
- }
140
-
141
- [data-grammar="offset-pop"] [data-grammar-list] {
142
- overflow: clip;
143
- border-radius: calc(var(--offset-pop-radius-surface) - var(--offset-pop-outline-width));
144
- }
145
-
146
- [data-grammar="offset-pop"] [data-grammar-row] {
147
- border-block-end: var(--offset-pop-divider-width) solid var(--offset-pop-ink);
148
- background: transparent;
149
- }
150
-
151
- [data-grammar="offset-pop"] [data-grammar-row]:last-child {
152
- border-block-end: 0;
153
- }
154
-
155
- [data-grammar="offset-pop"] [data-grammar-state-mark] {
156
- color: var(--offset-pop-ink);
157
- background: var(--offset-pop-mint);
158
- border: var(--offset-pop-outline-width) solid var(--offset-pop-ink);
159
- border-radius: var(--offset-pop-radius-pill);
160
- }
161
-
162
- [data-grammar="offset-pop"] [data-grammar-rail] {
163
- color: var(--offset-pop-ink);
164
- background: var(--offset-pop-canvas);
165
- border-inline-end: var(--offset-pop-outline-width) solid var(--offset-pop-ink);
166
- }
167
-
168
- [data-grammar="offset-pop"] [data-grammar-rail-body] {
169
- scrollbar-color: var(--offset-pop-ink) transparent;
170
- scrollbar-width: thin;
171
- }
172
-
173
- [data-grammar="offset-pop"] [data-grammar-band] {
174
- color: var(--offset-pop-ink);
175
- background: var(--offset-pop-local-accent, var(--offset-pop-pink));
176
- border-block: var(--offset-pop-outline-width) solid var(--offset-pop-ink);
177
- }
178
-
179
- [data-grammar="offset-pop"] [data-grammar-band] > * + * {
180
- border-inline-start: var(--offset-pop-divider-width) solid color-mix(in srgb, var(--offset-pop-ink) 35%, transparent);
181
- }
182
-
183
- [data-grammar="offset-pop"] [data-grammar-emphasis] {
184
- position: relative;
185
- z-index: 0;
186
- color: var(--offset-pop-pink);
187
- white-space: nowrap;
188
- }
189
-
190
- [data-grammar="offset-pop"] [data-grammar-emphasis]::after {
191
- position: absolute;
192
- z-index: -1;
193
- inset: 52% -.08em -.08em;
194
- border: var(--offset-pop-outline-width) solid currentColor;
195
- border-radius: 50%;
196
- content: "";
197
- transform: rotate(-2deg);
198
- pointer-events: none;
199
- }
200
- }
201
-
202
- @layer starci-grammar.offset-pop.composition {
203
- [data-grammar="offset-pop"] [data-grammar-floating-cluster] {
204
- container: offset-pop-cluster / inline-size;
205
- isolation: isolate;
206
- display: grid;
207
- grid-template: minmax(20rem, 1fr) / minmax(0, 1fr);
208
- min-inline-size: 0;
209
- padding:
210
- calc(var(--offset-pop-shadow-y) + .75rem)
211
- calc(var(--offset-pop-shadow-x) + .75rem);
212
- }
213
-
214
- [data-grammar="offset-pop"] [data-grammar-floating-item] {
215
- grid-area: 1 / 1;
216
- inline-size: min(78%, 22rem);
217
- min-inline-size: 0;
218
- align-self: start;
219
- justify-self: start;
220
- transform: rotate(var(--offset-pop-item-rotation, 0deg));
221
- transform-origin: center;
222
- z-index: var(--offset-pop-item-layer, 1);
223
- }
224
-
225
- [data-grammar="offset-pop"] [data-grammar-floating-item]:nth-child(3n + 1) {
226
- --offset-pop-item-layer: 1;
227
- --offset-pop-item-rotation: var(--offset-pop-rotation-low);
228
- }
229
-
230
- [data-grammar="offset-pop"] [data-grammar-floating-item]:nth-child(3n + 2) {
231
- --offset-pop-item-layer: 2;
232
- --offset-pop-item-rotation: var(--offset-pop-rotation-high);
233
-
234
- align-self: center;
235
- justify-self: end;
236
- margin-block-start: var(--offset-pop-overlap);
237
- }
238
-
239
- [data-grammar="offset-pop"] [data-grammar-floating-item]:nth-child(3n) {
240
- --offset-pop-item-layer: 3;
241
- --offset-pop-item-rotation: -1deg;
242
-
243
- align-self: end;
244
- justify-self: center;
245
- inline-size: min(68%, 18rem);
246
- }
247
-
248
- [data-grammar="offset-pop"] [data-grammar-floating-item]:focus-within {
249
- z-index: 10;
250
- }
251
- }
252
-
253
- @layer starci-grammar.offset-pop.states {
254
- [data-grammar="offset-pop"] [data-grammar-surface],
255
- [data-grammar="offset-pop"] [data-grammar-row] {
256
- transition:
257
- transform var(--offset-pop-transition),
258
- box-shadow var(--offset-pop-transition),
259
- background-color var(--offset-pop-transition),
260
- opacity var(--offset-pop-transition);
261
- }
262
-
263
- [data-grammar="offset-pop"] [data-grammar-whole-action] {
264
- border-radius: inherit;
265
- outline: 0;
266
- }
267
-
268
- [data-grammar="offset-pop"] [data-grammar-surface]:has([data-grammar-whole-action]:focus-visible),
269
- [data-grammar="offset-pop"] [data-grammar-row]:focus-within {
270
- outline: var(--offset-pop-focus-width) solid var(--offset-pop-pink);
271
- outline-offset: var(--offset-pop-focus-gap);
272
- }
273
-
274
- [data-grammar="offset-pop"] [data-grammar-surface][data-grammar-surface-depth="top"]:has([data-grammar-whole-action]:active) {
275
- box-shadow:
276
- calc(var(--offset-pop-shadow-x) - var(--offset-pop-press-x))
277
- calc(var(--offset-pop-shadow-y) - var(--offset-pop-press-y))
278
- 0
279
- 0
280
- var(--offset-pop-shadow-ink);
281
- transform: translate(var(--offset-pop-press-x), var(--offset-pop-press-y));
282
- }
283
-
284
- [data-grammar="offset-pop"] [data-grammar-surface][data-grammar-surface-depth="nested"]:has([data-grammar-whole-action]:active) {
285
- transform: translateY(1px);
286
- }
287
-
288
- [data-grammar="offset-pop"] [data-grammar-row]:has(:is(a, button):hover) {
289
- background: color-mix(in srgb, var(--offset-pop-yellow) 32%, transparent);
290
- }
291
-
292
- [data-grammar="offset-pop"] [data-grammar-state="affirmative"] [data-grammar-state-mark] {
293
- background: var(--offset-pop-mint);
294
- }
295
-
296
- [data-grammar="offset-pop"] [data-grammar-state="informative"] [data-grammar-state-mark] {
297
- background: var(--offset-pop-blush);
298
- }
299
-
300
- [data-grammar="offset-pop"] [data-grammar-state="cautionary"] [data-grammar-state-mark] {
301
- background: var(--offset-pop-yellow);
302
- }
303
-
304
- [data-grammar="offset-pop"] [data-grammar-state="negative"] [data-grammar-state-mark] {
305
- color: var(--offset-pop-surface);
306
- background: var(--offset-pop-critical);
307
- }
308
-
309
- [data-grammar="offset-pop"] [data-grammar-state="unavailable"] {
310
- box-shadow: none;
311
- opacity: .56;
312
- transform: none;
313
- cursor: not-allowed;
314
- }
315
-
316
- [data-grammar="offset-pop"] [data-grammar-state="pending"] {
317
- pointer-events: none;
318
- }
319
-
320
- [data-grammar="offset-pop"] [data-grammar-state="pending"] > * {
321
- animation: none;
322
- }
323
- }
324
-
325
- @layer starci-grammar.offset-pop.responsive {
326
- @container offset-pop-cluster (max-width: 34rem) {
327
- [data-grammar="offset-pop"] [data-grammar-floating-cluster] {
328
- display: flex;
329
- flex-direction: column;
330
- gap: 1rem;
331
- min-block-size: auto;
332
- }
333
-
334
- [data-grammar="offset-pop"] [data-grammar-floating-item] {
335
- inline-size: 100%;
336
- margin: 0;
337
- transform: rotate(0deg);
338
- }
339
- }
340
-
341
- @container (max-width: 40rem) {
342
- [data-grammar="offset-pop"] {
343
- --offset-pop-shadow-x: 4px;
344
- --offset-pop-shadow-y: 5px;
345
- --offset-pop-radius-surface: 1.25rem;
346
- --offset-pop-overlap: .75rem;
347
- }
348
-
349
- [data-grammar="offset-pop"] [data-grammar-band] {
350
- grid-template-columns: repeat(2, minmax(0, 1fr));
351
- }
352
-
353
- [data-grammar="offset-pop"] [data-grammar-band] > * + * {
354
- border-inline-start: 0;
355
- }
356
-
357
- [data-grammar="offset-pop"] [data-grammar-band] > :nth-child(even) {
358
- border-inline-start: var(--offset-pop-divider-width) solid color-mix(in srgb, var(--offset-pop-ink) 35%, transparent);
359
- }
360
-
361
- [data-grammar="offset-pop"] [data-grammar-band] > :nth-child(n + 3) {
362
- border-block-start: var(--offset-pop-divider-width) solid color-mix(in srgb, var(--offset-pop-ink) 35%, transparent);
363
- }
364
- }
365
-
366
- @media (prefers-reduced-motion: reduce) {
367
- [data-grammar="offset-pop"] {
368
- --offset-pop-transition: 0ms linear;
369
- }
370
-
371
- [data-grammar="offset-pop"] [data-grammar-floating-item],
372
- [data-grammar="offset-pop"] [data-grammar-emphasis]::after {
373
- transform: none;
374
- }
375
- }
376
-
377
- @media (forced-colors: active) {
378
- [data-grammar="offset-pop"] [data-grammar-surface],
379
- [data-grammar="offset-pop"] [data-grammar-state-mark],
380
- [data-grammar="offset-pop"] [data-grammar-rail],
381
- [data-grammar="offset-pop"] [data-grammar-band] {
382
- border-color: CanvasText;
383
- color: CanvasText;
384
- background: Canvas;
385
- box-shadow: none;
386
- }
387
-
388
- [data-grammar="offset-pop"] [data-grammar-surface]:has([data-grammar-whole-action]:focus-visible),
389
- [data-grammar="offset-pop"] [data-grammar-row]:focus-within {
390
- outline-color: Highlight;
391
- }
392
- }
393
- }
1
+ @layer starci-grammar.offset-pop.tokens,
2
+ starci-grammar.offset-pop.foundation,
3
+ starci-grammar.offset-pop.components,
4
+ starci-grammar.offset-pop.composition,
5
+ starci-grammar.offset-pop.states,
6
+ starci-grammar.offset-pop.responsive;
7
+
8
+ @layer starci-grammar.offset-pop.tokens {
9
+ [data-grammar="offset-pop"] {
10
+ color-scheme: light;
11
+
12
+ --offset-pop-canvas: #fff8ef;
13
+ --offset-pop-canvas-dot: rgb(28 21 36 / 12%);
14
+ --offset-pop-ink: #1c1524;
15
+ --offset-pop-muted: #716a76;
16
+ --offset-pop-surface: #fffdf9;
17
+ --offset-pop-surface-muted: #f8dbe8;
18
+ --offset-pop-pink: #ff3593;
19
+ --offset-pop-yellow: #ffd447;
20
+ --offset-pop-mint: #91e4ca;
21
+ --offset-pop-blush: #f8d8e6;
22
+ --offset-pop-critical: #e84a5f;
23
+
24
+ --offset-pop-outline-width: 2px;
25
+ --offset-pop-divider-width: 2px;
26
+ --offset-pop-shadow-x: 6px;
27
+ --offset-pop-shadow-y: 7px;
28
+ --offset-pop-shadow-blur: 0;
29
+ --offset-pop-shadow-spread: 0;
30
+ --offset-pop-radius-surface: 1.5rem;
31
+ --offset-pop-radius-control: 1.125rem;
32
+ --offset-pop-radius-pill: 999px;
33
+ --offset-pop-focus-width: 3px;
34
+ --offset-pop-focus-gap: 3px;
35
+ --offset-pop-press-x: 3px;
36
+ --offset-pop-press-y: 4px;
37
+ --offset-pop-rotation-low: -3deg;
38
+ --offset-pop-rotation-high: 3deg;
39
+ --offset-pop-overlap: clamp(1rem, 4cqi, 3rem);
40
+ --offset-pop-dot-step: 24px;
41
+ --offset-pop-transition: 140ms cubic-bezier(.2, .8, .2, 1);
42
+ --offset-pop-display-weight: 900;
43
+ --offset-pop-display-tracking: -.045em;
44
+ }
45
+
46
+ [data-theme="dark"][data-grammar="offset-pop"],
47
+ .dark [data-grammar="offset-pop"] {
48
+ color-scheme: dark;
49
+
50
+ --offset-pop-canvas: #17121d;
51
+ --offset-pop-canvas-dot: rgb(255 248 239 / 14%);
52
+ --offset-pop-ink: #fff8ef;
53
+ --offset-pop-muted: #c8bdca;
54
+ --offset-pop-surface: #251d2c;
55
+ --offset-pop-surface-muted: #3b2936;
56
+ --offset-pop-shadow-ink: #050306;
57
+ }
58
+ }
59
+
60
+ @layer starci-grammar.offset-pop.foundation {
61
+ [data-grammar="offset-pop"] {
62
+ --offset-pop-shadow-ink: var(--offset-pop-ink);
63
+
64
+ color: var(--offset-pop-ink);
65
+ background-color: var(--offset-pop-canvas);
66
+ }
67
+
68
+ [data-grammar="offset-pop"] [data-grammar-dot-field] {
69
+ background-color: var(--offset-pop-canvas);
70
+ background-image: radial-gradient(
71
+ circle,
72
+ var(--offset-pop-canvas-dot) 1px,
73
+ transparent 1.25px
74
+ );
75
+ background-position: center;
76
+ background-size: var(--offset-pop-dot-step) var(--offset-pop-dot-step);
77
+ }
78
+
79
+ [data-grammar="offset-pop"] [data-grammar-display] {
80
+ color: var(--offset-pop-ink);
81
+ font-weight: var(--offset-pop-display-weight);
82
+ letter-spacing: var(--offset-pop-display-tracking);
83
+ line-height: .96;
84
+ text-wrap: balance;
85
+ }
86
+
87
+ [data-grammar="offset-pop"] [data-grammar-muted] {
88
+ color: var(--offset-pop-muted);
89
+ }
90
+
91
+ [data-grammar="offset-pop"] [data-grammar-accent="pink"] {
92
+ --offset-pop-local-accent: var(--offset-pop-pink);
93
+ }
94
+
95
+ [data-grammar="offset-pop"] [data-grammar-accent="yellow"] {
96
+ --offset-pop-local-accent: var(--offset-pop-yellow);
97
+ }
98
+
99
+ [data-grammar="offset-pop"] [data-grammar-accent="mint"] {
100
+ --offset-pop-local-accent: var(--offset-pop-mint);
101
+ }
102
+
103
+ [data-grammar="offset-pop"] [data-grammar-accent="blush"] {
104
+ --offset-pop-local-accent: var(--offset-pop-blush);
105
+ }
106
+ }
107
+
108
+ @layer starci-grammar.offset-pop.components {
109
+ [data-grammar="offset-pop"] [data-grammar-surface] {
110
+ position: relative;
111
+ border: var(--offset-pop-outline-width) solid var(--offset-pop-ink);
112
+ border-radius: var(--offset-pop-radius-surface);
113
+ color: var(--offset-pop-ink);
114
+ background: var(--offset-pop-surface);
115
+ }
116
+
117
+ [data-grammar="offset-pop"] [data-grammar-surface][data-grammar-surface-depth="top"] {
118
+ box-shadow:
119
+ var(--offset-pop-shadow-x)
120
+ var(--offset-pop-shadow-y)
121
+ var(--offset-pop-shadow-blur)
122
+ var(--offset-pop-shadow-spread)
123
+ var(--offset-pop-shadow-ink);
124
+ }
125
+
126
+ [data-grammar="offset-pop"] [data-grammar-surface][data-grammar-surface-depth="nested"] {
127
+ box-shadow: none;
128
+ background: color-mix(in srgb, var(--offset-pop-surface) 88%, transparent);
129
+ }
130
+
131
+ [data-grammar="offset-pop"] [data-grammar-surface-label] {
132
+ color: var(--offset-pop-ink);
133
+ font-weight: 800;
134
+ letter-spacing: -.015em;
135
+ }
136
+
137
+ [data-grammar="offset-pop"] [data-grammar-surface-content] {
138
+ min-inline-size: 0;
139
+ }
140
+
141
+ [data-grammar="offset-pop"] [data-grammar-list] {
142
+ overflow: clip;
143
+ border-radius: calc(var(--offset-pop-radius-surface) - var(--offset-pop-outline-width));
144
+ }
145
+
146
+ [data-grammar="offset-pop"] [data-grammar-row] {
147
+ border-block-end: var(--offset-pop-divider-width) solid var(--offset-pop-ink);
148
+ background: transparent;
149
+ }
150
+
151
+ [data-grammar="offset-pop"] [data-grammar-row]:last-child {
152
+ border-block-end: 0;
153
+ }
154
+
155
+ [data-grammar="offset-pop"] [data-grammar-state-mark] {
156
+ color: var(--offset-pop-ink);
157
+ background: var(--offset-pop-mint);
158
+ border: var(--offset-pop-outline-width) solid var(--offset-pop-ink);
159
+ border-radius: var(--offset-pop-radius-pill);
160
+ }
161
+
162
+ [data-grammar="offset-pop"] [data-grammar-rail] {
163
+ color: var(--offset-pop-ink);
164
+ background: var(--offset-pop-canvas);
165
+ border-inline-end: var(--offset-pop-outline-width) solid var(--offset-pop-ink);
166
+ }
167
+
168
+ [data-grammar="offset-pop"] [data-grammar-rail-body] {
169
+ scrollbar-color: var(--offset-pop-ink) transparent;
170
+ scrollbar-width: thin;
171
+ }
172
+
173
+ [data-grammar="offset-pop"] [data-grammar-band] {
174
+ color: var(--offset-pop-ink);
175
+ background: var(--offset-pop-local-accent, var(--offset-pop-pink));
176
+ border-block: var(--offset-pop-outline-width) solid var(--offset-pop-ink);
177
+ }
178
+
179
+ [data-grammar="offset-pop"] [data-grammar-band] > * + * {
180
+ border-inline-start: var(--offset-pop-divider-width) solid color-mix(in srgb, var(--offset-pop-ink) 35%, transparent);
181
+ }
182
+
183
+ [data-grammar="offset-pop"] [data-grammar-emphasis] {
184
+ position: relative;
185
+ z-index: 0;
186
+ color: var(--offset-pop-pink);
187
+ white-space: nowrap;
188
+ }
189
+
190
+ [data-grammar="offset-pop"] [data-grammar-emphasis]::after {
191
+ position: absolute;
192
+ z-index: -1;
193
+ inset: 52% -.08em -.08em;
194
+ border: var(--offset-pop-outline-width) solid currentColor;
195
+ border-radius: 50%;
196
+ content: "";
197
+ transform: rotate(-2deg);
198
+ pointer-events: none;
199
+ }
200
+ }
201
+
202
+ @layer starci-grammar.offset-pop.composition {
203
+ [data-grammar="offset-pop"] [data-grammar-floating-cluster] {
204
+ container: offset-pop-cluster / inline-size;
205
+ isolation: isolate;
206
+ display: grid;
207
+ grid-template: minmax(20rem, 1fr) / minmax(0, 1fr);
208
+ min-inline-size: 0;
209
+ padding:
210
+ calc(var(--offset-pop-shadow-y) + .75rem)
211
+ calc(var(--offset-pop-shadow-x) + .75rem);
212
+ }
213
+
214
+ [data-grammar="offset-pop"] [data-grammar-floating-item] {
215
+ grid-area: 1 / 1;
216
+ inline-size: min(78%, 22rem);
217
+ min-inline-size: 0;
218
+ align-self: start;
219
+ justify-self: start;
220
+ transform: rotate(var(--offset-pop-item-rotation, 0deg));
221
+ transform-origin: center;
222
+ z-index: var(--offset-pop-item-layer, 1);
223
+ }
224
+
225
+ [data-grammar="offset-pop"] [data-grammar-floating-item]:nth-child(3n + 1) {
226
+ --offset-pop-item-layer: 1;
227
+ --offset-pop-item-rotation: var(--offset-pop-rotation-low);
228
+ }
229
+
230
+ [data-grammar="offset-pop"] [data-grammar-floating-item]:nth-child(3n + 2) {
231
+ --offset-pop-item-layer: 2;
232
+ --offset-pop-item-rotation: var(--offset-pop-rotation-high);
233
+
234
+ align-self: center;
235
+ justify-self: end;
236
+ margin-block-start: var(--offset-pop-overlap);
237
+ }
238
+
239
+ [data-grammar="offset-pop"] [data-grammar-floating-item]:nth-child(3n) {
240
+ --offset-pop-item-layer: 3;
241
+ --offset-pop-item-rotation: -1deg;
242
+
243
+ align-self: end;
244
+ justify-self: center;
245
+ inline-size: min(68%, 18rem);
246
+ }
247
+
248
+ [data-grammar="offset-pop"] [data-grammar-floating-item]:focus-within {
249
+ z-index: 10;
250
+ }
251
+ }
252
+
253
+ @layer starci-grammar.offset-pop.states {
254
+ [data-grammar="offset-pop"] [data-grammar-surface],
255
+ [data-grammar="offset-pop"] [data-grammar-row] {
256
+ transition:
257
+ transform var(--offset-pop-transition),
258
+ box-shadow var(--offset-pop-transition),
259
+ background-color var(--offset-pop-transition),
260
+ opacity var(--offset-pop-transition);
261
+ }
262
+
263
+ [data-grammar="offset-pop"] [data-grammar-whole-action] {
264
+ border-radius: inherit;
265
+ outline: 0;
266
+ }
267
+
268
+ [data-grammar="offset-pop"] [data-grammar-surface]:has([data-grammar-whole-action]:focus-visible),
269
+ [data-grammar="offset-pop"] [data-grammar-row]:focus-within {
270
+ outline: var(--offset-pop-focus-width) solid var(--offset-pop-pink);
271
+ outline-offset: var(--offset-pop-focus-gap);
272
+ }
273
+
274
+ [data-grammar="offset-pop"] [data-grammar-surface][data-grammar-surface-depth="top"]:has([data-grammar-whole-action]:active) {
275
+ box-shadow:
276
+ calc(var(--offset-pop-shadow-x) - var(--offset-pop-press-x))
277
+ calc(var(--offset-pop-shadow-y) - var(--offset-pop-press-y))
278
+ 0
279
+ 0
280
+ var(--offset-pop-shadow-ink);
281
+ transform: translate(var(--offset-pop-press-x), var(--offset-pop-press-y));
282
+ }
283
+
284
+ [data-grammar="offset-pop"] [data-grammar-surface][data-grammar-surface-depth="nested"]:has([data-grammar-whole-action]:active) {
285
+ transform: translateY(1px);
286
+ }
287
+
288
+ [data-grammar="offset-pop"] [data-grammar-row]:has(:is(a, button):hover) {
289
+ background: color-mix(in srgb, var(--offset-pop-yellow) 32%, transparent);
290
+ }
291
+
292
+ [data-grammar="offset-pop"] [data-grammar-state="affirmative"] [data-grammar-state-mark] {
293
+ background: var(--offset-pop-mint);
294
+ }
295
+
296
+ [data-grammar="offset-pop"] [data-grammar-state="informative"] [data-grammar-state-mark] {
297
+ background: var(--offset-pop-blush);
298
+ }
299
+
300
+ [data-grammar="offset-pop"] [data-grammar-state="cautionary"] [data-grammar-state-mark] {
301
+ background: var(--offset-pop-yellow);
302
+ }
303
+
304
+ [data-grammar="offset-pop"] [data-grammar-state="negative"] [data-grammar-state-mark] {
305
+ color: var(--offset-pop-surface);
306
+ background: var(--offset-pop-critical);
307
+ }
308
+
309
+ [data-grammar="offset-pop"] [data-grammar-state="unavailable"] {
310
+ box-shadow: none;
311
+ opacity: .56;
312
+ transform: none;
313
+ cursor: not-allowed;
314
+ }
315
+
316
+ [data-grammar="offset-pop"] [data-grammar-state="pending"] {
317
+ pointer-events: none;
318
+ }
319
+
320
+ [data-grammar="offset-pop"] [data-grammar-state="pending"] > * {
321
+ animation: none;
322
+ }
323
+ }
324
+
325
+ @layer starci-grammar.offset-pop.responsive {
326
+ @container offset-pop-cluster (max-width: 34rem) {
327
+ [data-grammar="offset-pop"] [data-grammar-floating-cluster] {
328
+ display: flex;
329
+ flex-direction: column;
330
+ gap: 1rem;
331
+ min-block-size: auto;
332
+ }
333
+
334
+ [data-grammar="offset-pop"] [data-grammar-floating-item] {
335
+ inline-size: 100%;
336
+ margin: 0;
337
+ transform: rotate(0deg);
338
+ }
339
+ }
340
+
341
+ @container (max-width: 40rem) {
342
+ [data-grammar="offset-pop"] {
343
+ --offset-pop-shadow-x: 4px;
344
+ --offset-pop-shadow-y: 5px;
345
+ --offset-pop-radius-surface: 1.25rem;
346
+ --offset-pop-overlap: .75rem;
347
+ }
348
+
349
+ [data-grammar="offset-pop"] [data-grammar-band] {
350
+ grid-template-columns: repeat(2, minmax(0, 1fr));
351
+ }
352
+
353
+ [data-grammar="offset-pop"] [data-grammar-band] > * + * {
354
+ border-inline-start: 0;
355
+ }
356
+
357
+ [data-grammar="offset-pop"] [data-grammar-band] > :nth-child(even) {
358
+ border-inline-start: var(--offset-pop-divider-width) solid color-mix(in srgb, var(--offset-pop-ink) 35%, transparent);
359
+ }
360
+
361
+ [data-grammar="offset-pop"] [data-grammar-band] > :nth-child(n + 3) {
362
+ border-block-start: var(--offset-pop-divider-width) solid color-mix(in srgb, var(--offset-pop-ink) 35%, transparent);
363
+ }
364
+ }
365
+
366
+ @media (prefers-reduced-motion: reduce) {
367
+ [data-grammar="offset-pop"] {
368
+ --offset-pop-transition: 0ms linear;
369
+ }
370
+
371
+ [data-grammar="offset-pop"] [data-grammar-floating-item],
372
+ [data-grammar="offset-pop"] [data-grammar-emphasis]::after {
373
+ transform: none;
374
+ }
375
+ }
376
+
377
+ @media (forced-colors: active) {
378
+ [data-grammar="offset-pop"] [data-grammar-surface],
379
+ [data-grammar="offset-pop"] [data-grammar-state-mark],
380
+ [data-grammar="offset-pop"] [data-grammar-rail],
381
+ [data-grammar="offset-pop"] [data-grammar-band] {
382
+ border-color: CanvasText;
383
+ color: CanvasText;
384
+ background: Canvas;
385
+ box-shadow: none;
386
+ }
387
+
388
+ [data-grammar="offset-pop"] [data-grammar-surface]:has([data-grammar-whole-action]:focus-visible),
389
+ [data-grammar="offset-pop"] [data-grammar-row]:focus-within {
390
+ outline-color: Highlight;
391
+ }
392
+ }
393
+ }