@walkeros/explorer 4.7.2 → 4.8.0-next-1791496487198

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/styles.css CHANGED
@@ -1,306 +1,11 @@
1
+ @charset "UTF-8";
2
+
1
3
  /* src/styles/index.scss */
2
4
  .elb-explorer {
3
- --color-text: #111827;
4
- --color-text-label: #4b5563;
5
- --color-text-button: #6b7280;
6
- --color-text-button-hover: #374151;
7
- --color-text-button-active: #1f2937;
8
- --color-text-muted: #6b7280;
9
- --color-text-toggle: #6b7280;
10
- --color-text-input: #111827;
11
- --color-text-placeholder: #9ca3af;
12
- --bg-box: #ffffff;
13
- --bg-header: #f5f5f5;
14
- --bg-footer: #f5f5f5;
15
- --bg-button-hover: #e8e8e8;
16
- --bg-button-active: #ffffff;
17
- --bg-button-group: #f3f4f6;
18
- --bg-input: #ffffff;
19
- --bg-input-hover: #f9f9f9;
20
- --bg-code-inline: #f9f9f9;
21
- --bg-dropdown: #ffffff;
22
- --bg-dropdown-option-hover: #f0f0f0;
23
- --bg-dropdown-option-highlighted: #e3f2fd;
24
- --border-box: #e0e0e0;
25
- --border-header: #e0e0e0;
26
- --border-footer: #e0e0e0;
27
- --border-button-group: #d1d5db;
28
- --border-input: #d1d5db;
29
- --border-input-focus: #01b5e2;
30
- --shadow-button-active: 0 1px 2px rgba(0, 0, 0, 0.1);
31
- --shadow-dropdown: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
32
- --color-button-primary: #01b5e2;
33
- --color-button-primary-hover: #015372;
34
- --color-button-primary-text: #ffffff;
35
- --color-button-danger: #ef4444;
36
- --color-button-danger-hover: #dc2626;
37
- --color-button-danger-text: #ffffff;
38
- --color-status-enabled: #22c55e;
39
- --color-status-disabled: #9ca3af;
40
- --color-status-warning: #f59e0b;
41
- --color-alert-info-bg: #eff6ff;
42
- --color-alert-info-border: #bfdbfe;
43
- --color-alert-info-text: #1e40af;
44
- --color-alert-success-bg: #f0fdf4;
45
- --color-alert-success-border: #bbf7d0;
46
- --color-alert-success-text: #166534;
47
- --color-alert-warning-bg: #fefce8;
48
- --color-alert-warning-border: #fde68a;
49
- --color-alert-warning-text: #854d0e;
50
- --color-alert-error-bg: #fef2f2;
51
- --color-alert-error-border: #fecaca;
52
- --color-alert-error-text: #991b1b;
53
- --color-focus-ring: rgba(1, 181, 226, 0.2);
54
- --color-error-ring: rgba(239, 68, 68, 0.2);
55
- --spacing-xs: 4px;
56
- --spacing-sm: 8px;
57
- --spacing-md: 12px;
58
- --spacing-lg: 16px;
59
- --spacing-xl: 24px;
60
- --font-size-xs: 11px;
61
- --font-size-sm: 12px;
62
- --line-height-relaxed: 1.6;
63
- --font-weight-medium: 500;
64
- --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
65
- --z-dropdown: 50;
66
- --color-highlight-primary: #01b5e2;
67
- --radius-box: 4px;
68
- --radius-button: 3px;
69
- --radius-button-group: 4px;
70
- --radius-highlight-button: 6px;
71
- --spacing-header: 6px 10px;
72
- --spacing-footer: 6px 10px;
73
- --spacing-button: 4px 8px;
74
- --spacing-button-group: 1px;
75
- --spacing-grid-gap: 12px;
76
- --grid-min-box-width: 350px;
77
- --grid-row-min-height: 250px;
78
- --grid-row-max-height: 450px;
79
- --grid-box-max-height-mobile: 500px;
80
- --height-code-view-max: 600px;
81
- --step-example-min-box-width: 220px;
82
- --step-example-max-height: 360px;
83
- --monaco-font-size: 13px;
84
- --monaco-line-height: 1.5;
85
- --monaco-font-size-snippet: 16px;
86
- --font-family-base:
87
- system-ui,
88
- -apple-system,
89
- BlinkMacSystemFont,
90
- "Segoe UI",
91
- "Roboto",
92
- "Helvetica Neue",
93
- sans-serif;
94
- --font-mono:
95
- "SF Mono",
96
- "Monaco",
97
- "Inconsolata",
98
- "Roboto Mono",
99
- "Source Code Pro",
100
- monospace;
101
- --font-size-base: 14px;
102
- --font-size-label: 13px;
103
- --font-size-toggle: 12px;
104
- --font-size-highlight-button: 0.75rem;
105
- --font-size-xl: 16px;
106
- --line-height-base: 1.5;
107
- --font-weight-normal: 400;
108
- --font-weight-semibold: 600;
109
- --highlight-globals: #4fc3f7cc;
110
- --highlight-context: #ffbd44cc;
111
- --highlight-entity: #00ca4ecc;
112
- --highlight-property: #ff605ccc;
113
- --highlight-action: #9900ffcc;
114
- --highlight-background: #1f2937;
115
- --highlight-text: #9ca3af;
116
- --highlight-hover: rgba(255, 255, 255, 0.05);
117
- --highlight-separator: rgba(255, 255, 255, 0.05);
118
- --flow-source-fill: transparent;
119
- --flow-source-stroke: #6ee7b7;
120
- --flow-transformer-fill: transparent;
121
- --flow-transformer-stroke: #fcd34d;
122
- --flow-collector-fill: transparent;
123
- --flow-collector-stroke: #7dd3fc;
124
- --flow-destination-fill: transparent;
125
- --flow-destination-stroke: #c4b5fd;
126
- --flow-edge-stroke: #9ca3af;
127
- }
128
- [data-theme=light] .elb-explorer {
129
- --color-text: #000;
130
- --color-text-label: #424242;
131
- --color-text-button: #616161;
132
- --color-text-button-hover: #424242;
133
- --color-text-button-active: #1f2937;
134
- --color-text-muted: #666;
135
- --color-text-toggle: #666;
136
- --color-text-input: #000;
137
- --color-text-placeholder: #9ca3af;
138
- --bg-box: #ffffff;
139
- --bg-header: #f5f5f5;
140
- --bg-footer: #f5f5f5;
141
- --bg-button-hover: #e8e8e8;
142
- --bg-button-active: #ffffff;
143
- --bg-button-group: #f3f4f6;
144
- --bg-input: #ffffff;
145
- --bg-input-hover: #f9f9f9;
146
- --bg-code-inline: #f9f9f9;
147
- --bg-dropdown: #ffffff;
148
- --bg-dropdown-option-hover: #f0f0f0;
149
- --bg-dropdown-option-highlighted: #e3f2fd;
150
- --border-box: #e0e0e0;
151
- --border-header: #e0e0e0;
152
- --border-footer: #e0e0e0;
153
- --border-button-group: #d1d5db;
154
- --border-input: #d1d5db;
155
- --border-input-focus: #01b5e2;
156
- --shadow-button-active: 0 1px 2px rgba(0, 0, 0, 0.1);
157
- --shadow-dropdown: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
158
- --color-button-primary: #01b5e2;
159
- --color-button-primary-hover: #015372;
160
- --color-button-primary-text: #ffffff;
161
- --color-button-danger: #ef4444;
162
- --color-button-danger-hover: #dc2626;
163
- --color-button-danger-text: #ffffff;
164
- --color-status-enabled: #22c55e;
165
- --color-status-disabled: #9ca3af;
166
- --color-status-warning: #f59e0b;
167
- --radius-box: 4px;
168
- --radius-button: 3px;
169
- --radius-button-group: 4px;
170
- --radius-highlight-button: 6px;
171
- --spacing-header: 6px 10px;
172
- --spacing-footer: 6px 10px;
173
- --spacing-button: 4px 8px;
174
- --spacing-button-group: 1px;
175
- --spacing-grid-gap: 12px;
176
- --grid-min-box-width: 350px;
177
- --grid-row-min-height: 250px;
178
- --grid-row-max-height: 450px;
179
- --grid-box-max-height-mobile: 500px;
180
- --height-code-view-max: 600px;
181
- --step-example-min-box-width: 220px;
182
- --step-example-max-height: 360px;
183
- --monaco-font-size: 13px;
184
- --monaco-line-height: 1.5;
185
- --monaco-font-size-snippet: 16px;
186
- --font-family-base:
187
- system-ui,
188
- -apple-system,
189
- BlinkMacSystemFont,
190
- "Segoe UI",
191
- "Roboto",
192
- "Helvetica Neue",
193
- sans-serif;
194
- --font-mono:
195
- "SF Mono",
196
- "Monaco",
197
- "Inconsolata",
198
- "Roboto Mono",
199
- "Source Code Pro",
200
- monospace;
201
- --font-size-base: 14px;
202
- --font-size-label: 13px;
203
- --font-size-toggle: 12px;
204
- --font-size-highlight-button: 0.75rem;
205
- --font-size-xl: 16px;
206
- --line-height-base: 1.5;
207
- --font-weight-normal: 400;
208
- --font-weight-semibold: 600;
209
- --highlight-globals: #4fc3f7cc;
210
- --highlight-context: #ffbd44cc;
211
- --highlight-entity: #00ca4ecc;
212
- --highlight-property: #ff605ccc;
213
- --highlight-action: #9900ffcc;
214
- --highlight-background: #1f2937;
215
- --highlight-text: #9ca3af;
216
- --highlight-hover: rgba(255, 255, 255, 0.05);
217
- --highlight-separator: rgba(255, 255, 255, 0.05);
218
- --flow-source-fill: transparent;
219
- --flow-source-stroke: #6ee7b7;
220
- --flow-transformer-fill: transparent;
221
- --flow-transformer-stroke: #fcd34d;
222
- --flow-collector-fill: transparent;
223
- --flow-collector-stroke: #7dd3fc;
224
- --flow-destination-fill: transparent;
225
- --flow-destination-stroke: #c4b5fd;
226
- --flow-edge-stroke: #9ca3af;
227
- }
228
- [data-theme=dark] .elb-explorer {
229
- --color-text: #f3f4f6;
230
- --color-text-label: #d1d5db;
231
- --color-text-button: #d1d5db;
232
- --color-text-button-hover: #ffffff;
233
- --color-text-button-active: #ffffff;
234
- --color-text-muted: #9ca3af;
235
- --color-text-toggle: #9ca3af;
236
- --color-text-input: #f3f4f6;
237
- --color-text-placeholder: #6b7280;
238
- --bg-box: #292d3e;
239
- --bg-header: #1f2937;
240
- --bg-footer: #1f2937;
241
- --bg-button-hover: #374151;
242
- --bg-button-active: #111827;
243
- --bg-button-group: #374151;
244
- --bg-input: #1f2937;
245
- --bg-input-hover: #374151;
246
- --bg-code-inline: rgba(255, 255, 255, 0.05);
247
- --bg-dropdown: #1f2937;
248
- --bg-dropdown-option-hover: #374151;
249
- --bg-dropdown-option-highlighted: #1e3a5f;
250
- --border-box: #4b5563;
251
- --border-header: #4b5563;
252
- --border-footer: #4b5563;
253
- --border-button-group: #4b5563;
254
- --border-input: #4b5563;
255
- --border-input-focus: #01b5e2;
256
- --shadow-button-active: 0 1px 2px rgba(0, 0, 0, 0.3);
257
- --shadow-dropdown: 0 10px 15px -3px rgba(0, 0, 0, 0.3);
258
- --color-button-primary: #01b5e2;
259
- --color-button-primary-hover: #015372;
260
- --color-button-danger: #ef4444;
261
- --color-button-danger-hover: #dc2626;
262
- --flow-source-fill: transparent;
263
- --flow-source-stroke: #6ee7b7;
264
- --flow-transformer-fill: transparent;
265
- --flow-transformer-stroke: #fcd34d;
266
- --flow-collector-fill: transparent;
267
- --flow-collector-stroke: #7dd3fc;
268
- --flow-destination-fill: transparent;
269
- --flow-destination-stroke: #c4b5fd;
270
- --flow-edge-stroke: #9ca3af;
271
- --flow-before-fill: transparent;
272
- --flow-before-stroke: #9ca3af;
273
- --flow-after-fill: transparent;
274
- --flow-after-stroke: #9ca3af;
275
- --color-alert-info-bg: rgba(59, 130, 246, 0.15);
276
- --color-alert-info-border: rgba(59, 130, 246, 0.3);
277
- --color-alert-info-text: #93c5fd;
278
- --color-alert-success-bg: rgba(34, 197, 94, 0.15);
279
- --color-alert-success-border: rgba(34, 197, 94, 0.3);
280
- --color-alert-success-text: #86efac;
281
- --color-alert-warning-bg: rgba(245, 158, 11, 0.15);
282
- --color-alert-warning-border: rgba(245, 158, 11, 0.3);
283
- --color-alert-warning-text: #fcd34d;
284
- --color-alert-error-bg: rgba(239, 68, 68, 0.15);
285
- --color-alert-error-border: rgba(239, 68, 68, 0.3);
286
- --color-alert-error-text: #fca5a5;
287
- --color-focus-ring: rgba(1, 181, 226, 0.3);
288
- --color-error-ring: rgba(239, 68, 68, 0.3);
289
- }
290
- .elb-explorer {
291
- font-family:
292
- -apple-system,
293
- BlinkMacSystemFont,
294
- "Segoe UI",
295
- Roboto,
296
- Oxygen,
297
- Ubuntu,
298
- Cantarell,
299
- "Helvetica Neue",
300
- sans-serif;
301
- font-size: 14px;
302
- line-height: 1.5;
303
- color: var(--color-text);
5
+ font-family: var(--font-sans);
6
+ font-size: var(--type-product-body-size);
7
+ line-height: var(--type-product-body-line-height);
8
+ color: var(--fg);
304
9
  }
305
10
  .elb-explorer * {
306
11
  box-sizing: border-box;
@@ -309,6 +14,11 @@
309
14
  font-family: inherit;
310
15
  }
311
16
  .elb-explorer-grid-wrapper {
17
+ --grid-min-box-width: 350px;
18
+ --grid-box-width: 350px;
19
+ --grid-row-min-height: 250px;
20
+ --grid-row-max-height: 450px;
21
+ --grid-box-max-height-mobile: 500px;
312
22
  position: relative;
313
23
  width: 100%;
314
24
  container-type: inline-size;
@@ -316,7 +26,7 @@
316
26
  }
317
27
  .elb-explorer-grid {
318
28
  display: grid;
319
- gap: var(--spacing-grid-gap);
29
+ gap: 12px;
320
30
  width: 100%;
321
31
  grid-auto-flow: row;
322
32
  grid-template-columns: 1fr;
@@ -351,6 +61,30 @@
351
61
  grid-template-columns: repeat(var(--grid-columns), minmax(var(--grid-min-box-width), 1fr));
352
62
  }
353
63
  }
64
+ .elb-explorer-grid.elb-explorer-grid--fixed {
65
+ grid-auto-flow: column;
66
+ grid-template-columns: none;
67
+ grid-auto-columns: min(var(--grid-box-width), 100% - 32px);
68
+ grid-auto-rows: minmax(var(--grid-row-min-height), var(--grid-row-max-height, auto));
69
+ overflow-x: auto;
70
+ overflow-y: hidden;
71
+ scroll-behavior: smooth;
72
+ scroll-snap-type: x mandatory;
73
+ }
74
+ .elb-explorer-grid.elb-explorer-grid--fixed > * {
75
+ min-width: 0;
76
+ scroll-snap-align: start;
77
+ }
78
+ .elb-explorer-grid.elb-explorer-grid--fixed > .elb-explorer-box {
79
+ height: 100%;
80
+ max-height: none;
81
+ }
82
+ @container grid-container (min-width: 600px) {
83
+ .elb-explorer-grid.elb-explorer-grid--fixed {
84
+ width: auto;
85
+ margin-inline: 48px;
86
+ }
87
+ }
354
88
  @container grid-container (min-width: 800px) {
355
89
  .elb-explorer-grid.elb-explorer-grid--row-auto {
356
90
  grid-auto-rows: auto;
@@ -366,101 +100,83 @@
366
100
  position: absolute;
367
101
  top: 50%;
368
102
  transform: translateY(-50%);
369
- z-index: 10;
103
+ z-index: var(--z-raised);
370
104
  width: 40px;
371
105
  height: 40px;
372
106
  padding: 0;
373
- border: none;
374
- border-radius: 50%;
375
- background: var(--bg-box);
376
- color: var(--color-text);
377
- font-size: 24px;
378
- line-height: 0;
107
+ border: 1px solid var(--primary);
108
+ border-radius: var(--radius-full);
109
+ background: var(--surface);
110
+ color: var(--fg);
379
111
  cursor: pointer;
380
112
  display: flex;
381
113
  align-items: center;
382
114
  justify-content: center;
383
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
384
- transition: all 0.2s ease;
115
+ transition: background-color var(--motion) var(--ease);
385
116
  user-select: none;
386
117
  }
387
- @container grid-container (max-width: 799px) {
118
+ @container grid-container (max-width: 599px) {
388
119
  .elb-explorer-grid-scroll-button {
389
120
  display: none;
390
121
  }
391
122
  }
392
123
  .elb-explorer-grid-scroll-button:hover {
393
- background: var(--bg-button-hover);
394
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
395
- transform: translateY(-50%) scale(1.1);
124
+ background: var(--surface-2);
396
125
  }
397
- .elb-explorer-grid-scroll-button:active {
398
- transform: translateY(-50%) scale(0.95);
126
+ .elb-explorer-grid-scroll-button:focus-visible {
127
+ outline: 2px solid var(--focus);
128
+ outline-offset: 3px;
399
129
  }
400
130
  .elb-explorer-grid-scroll-button--left {
401
- left: 8px;
131
+ left: 4px;
402
132
  }
403
133
  .elb-explorer-grid-scroll-button--right {
404
- right: 8px;
405
- }
406
- .elb-explorer ::-webkit-scrollbar {
407
- width: 8px;
408
- height: 8px;
409
- }
410
- .elb-explorer ::-webkit-scrollbar-track {
411
- background: transparent;
412
- }
413
- .elb-explorer ::-webkit-scrollbar-thumb {
414
- background: rgba(0, 0, 0, 0.2);
415
- border-radius: 4px;
416
- }
417
- .elb-explorer ::-webkit-scrollbar-thumb:hover {
418
- background: rgba(0, 0, 0, 0.2);
419
- }
420
- [data-theme=dark] .elb-explorer ::-webkit-scrollbar-thumb {
421
- background: rgba(255, 255, 255, 0.2);
422
- }
423
- [data-theme=dark] .elb-explorer ::-webkit-scrollbar-thumb:hover {
424
- background: rgba(255, 255, 255, 0.2);
134
+ right: 4px;
425
135
  }
426
136
  .elb-explorer {
427
137
  width: 100%;
428
138
  max-width: 100%;
429
139
  background: transparent;
430
140
  padding: 0;
431
- font-family: var(--font-family-base);
432
- font-size: var(--font-size-base);
433
- line-height: var(--line-height-base);
434
- color: var(--color-text);
141
+ }
142
+ .elb-explorer-sr-only {
143
+ position: absolute;
144
+ width: 1px;
145
+ height: 1px;
146
+ padding: 0;
147
+ margin: -1px;
148
+ overflow: hidden;
149
+ clip: rect(0, 0, 0, 0);
150
+ white-space: nowrap;
151
+ border: 0;
435
152
  }
436
153
  .elb-explorer-btn {
437
- padding: var(--spacing-button);
154
+ padding: 4px 8px;
438
155
  background: transparent;
439
156
  border: none;
440
- border-radius: var(--radius-button);
157
+ border-radius: var(--radius-xs);
441
158
  cursor: pointer;
442
159
  display: flex;
443
160
  align-items: center;
444
161
  justify-content: center;
445
- color: var(--color-text-button);
446
- transition: all 0.15s;
162
+ color: var(--fg-2);
163
+ transition: all var(--motion) var(--ease);
447
164
  }
448
165
  .elb-explorer-btn:hover {
449
- background: var(--bg-button-hover);
450
- color: var(--color-text-button-hover);
166
+ background: var(--surface-2);
167
+ color: var(--fg);
451
168
  }
452
169
  .elb-explorer-btn.active {
453
- background: var(--bg-button-active);
454
- color: var(--color-text-button-active);
455
- box-shadow: var(--shadow-button-active);
456
- font-weight: var(--font-weight-semibold);
170
+ background: var(--surface);
171
+ color: var(--fg);
172
+ font-weight: 600;
457
173
  }
458
174
  .elb-explorer-button-group {
459
175
  display: flex;
460
- background: var(--bg-button-group);
461
- border-radius: var(--radius-button-group);
462
- padding: var(--spacing-button-group);
463
- border: 1px solid var(--border-button-group);
176
+ background: var(--bg-2);
177
+ border-radius: var(--radius-xs);
178
+ padding: 1px;
179
+ border: 1px solid var(--border-strong);
464
180
  }
465
181
  .elb-explorer-button-group.elb-explorer-button-group--tabs {
466
182
  background: transparent;
@@ -471,90 +187,19 @@
471
187
  }
472
188
  .elb-explorer-button-group.elb-explorer-button-group--tabs .elb-explorer-btn {
473
189
  padding: 3px 10px;
474
- font-size: var(--font-size-label);
475
- font-weight: var(--font-weight-medium);
476
- color: var(--color-text-button);
190
+ font-size: var(--type-product-small-size);
191
+ font-weight: 500;
192
+ color: var(--fg-2);
477
193
  background: transparent;
478
- border-radius: var(--radius-button) var(--radius-button) 0 0;
194
+ border-radius: var(--radius-xs) var(--radius-xs) 0 0;
479
195
  }
480
196
  .elb-explorer-button-group.elb-explorer-button-group--tabs .elb-explorer-btn:hover {
481
197
  background: transparent;
482
- color: var(--color-text-button-hover);
198
+ color: var(--fg);
483
199
  }
484
200
  .elb-explorer-button-group.elb-explorer-button-group--tabs .elb-explorer-btn.active {
485
- background: var(--bg-button-active);
486
- color: var(--color-text-button-active);
487
- box-shadow: none;
488
- }
489
- .elb-button-link {
490
- display: inline-flex;
491
- align-items: center;
492
- justify-content: center;
493
- padding: 12px 32px;
494
- font-family: var(--font-family-base);
495
- font-size: var(--font-size-base);
496
- font-weight: var(--font-weight-semibold);
497
- border-radius: var(--radius-button);
498
- border: none;
499
- text-decoration: none;
500
- transition: all 0.15s;
501
- cursor: pointer;
502
- }
503
- .elb-button-link:disabled {
504
- opacity: 0.4;
505
- cursor: not-allowed;
506
- }
507
- .elb-button-link-default {
508
- background: transparent;
509
- color: var(--color-text-button);
510
- border: 1px solid var(--border-input);
511
- }
512
- .elb-button-link-default:hover:not(:disabled) {
513
- background: var(--bg-button-hover);
514
- color: var(--color-text-button-hover);
515
- }
516
- .elb-button-link-primary {
517
- background: var(--color-button-primary);
518
- color: var(--color-button-primary-text);
519
- border: 1px solid var(--color-button-primary);
520
- }
521
- .elb-button-link-primary:hover:not(:disabled) {
522
- background: var(--color-button-primary-hover);
523
- border-color: var(--color-button-primary-hover);
524
- }
525
- .elb-button-link-secondary {
526
- background: var(--bg-box);
527
- color: var(--color-button-primary);
528
- border: 1px solid var(--border-input);
529
- }
530
- .elb-button-link-secondary:hover:not(:disabled) {
531
- background: var(--bg-button-hover);
532
- }
533
- .elb-button-link-md {
534
- padding: 12px 32px;
535
- font-size: var(--font-size-base);
536
- }
537
- .elb-button-link-lg {
538
- padding: 16px 40px;
539
- font-size: var(--font-size-xl);
540
- }
541
- .elb-button-group {
542
- display: flex;
543
- flex-direction: column;
544
- gap: 12px;
545
- }
546
- @media (max-width: 799px) {
547
- .elb-button-group {
548
- width: 100%;
549
- }
550
- .elb-button-group .elb-button-link {
551
- width: 100%;
552
- }
553
- }
554
- @media (min-width: 1200px) {
555
- .elb-button-group {
556
- flex-direction: row;
557
- }
201
+ background: var(--surface);
202
+ color: var(--fg);
558
203
  }
559
204
  .elb-code {
560
205
  flex: 1;
@@ -564,6 +209,7 @@
564
209
  flex-direction: column;
565
210
  position: relative;
566
211
  overflow: hidden;
212
+ background: var(--code-bg);
567
213
  }
568
214
  .elb-code > div {
569
215
  flex: 1;
@@ -588,7 +234,7 @@
588
234
  background: transparent !important;
589
235
  }
590
236
  .elb-code .monaco-editor .sticky-widget {
591
- background: var(--bg-content) !important;
237
+ background: var(--code-bg) !important;
592
238
  border: none !important;
593
239
  outline: none !important;
594
240
  box-shadow: none !important;
@@ -604,15 +250,17 @@
604
250
  flex-direction: column;
605
251
  position: relative;
606
252
  overflow: hidden;
607
- font-size: var(--monaco-font-size, 13px);
253
+ background: var(--code-bg);
254
+ color: var(--code-fg);
255
+ font-size: var(--type-code-step-size);
608
256
  line-height: 1.5;
609
- font-family: var(--font-mono, "SF Mono", "Monaco", "Menlo", "Consolas", monospace);
257
+ font-family: var(--font-mono);
610
258
  }
611
259
  .elb-code-static pre.shiki,
612
260
  .elb-code-static pre {
613
261
  flex: 1;
614
262
  margin: 0 !important;
615
- padding: var(--spacing-sm, 8px) var(--spacing-md, 12px) !important;
263
+ padding: 8px 12px !important;
616
264
  background: transparent !important;
617
265
  font-family: inherit !important;
618
266
  font-size: inherit !important;
@@ -628,40 +276,22 @@
628
276
  background: transparent !important;
629
277
  display: block;
630
278
  }
631
- html[data-theme=dark] .shiki,
632
- html[data-theme=dark] .shiki span {
633
- color: var(--shiki-dark) !important;
634
- background-color: var(--shiki-dark-bg) !important;
635
- font-style: var(--shiki-dark-font-style) !important;
636
- font-weight: var(--shiki-dark-font-weight) !important;
637
- text-decoration: var(--shiki-dark-text-decoration) !important;
638
- }
639
- .elb-code-inline {
640
- font-family: var(--font-mono);
641
- font-size: 0.9em;
642
- padding: 0.125rem 0.375rem;
643
- border-radius: var(--radius-button);
644
- background-color: var(--bg-code-inline);
645
- border: 1px solid var(--border-input);
646
- color: var(--color-text);
647
- white-space: nowrap;
648
- }
649
279
  .elb-preview-footer {
650
280
  display: grid;
651
281
  grid-auto-flow: column;
652
282
  grid-auto-columns: 1fr;
653
283
  flex: 1;
654
284
  align-self: stretch;
655
- background: var(--bg-footer);
285
+ background: var(--bg-2);
656
286
  }
657
287
  .elb-preview-btn {
658
288
  padding: 6px 6px;
659
- font-size: var(--font-size-toggle);
289
+ font-size: var(--type-product-caption-size);
660
290
  font-weight: 600;
661
- color: var(--color-text-button);
291
+ color: var(--fg-2);
662
292
  border: 0;
663
293
  background: transparent;
664
- transition: color 0.2s ease, background 0.2s ease;
294
+ transition: color var(--motion) var(--ease), background var(--motion) var(--ease);
665
295
  position: relative;
666
296
  cursor: pointer;
667
297
  text-align: center;
@@ -674,11 +304,11 @@ html[data-theme=dark] .shiki span {
674
304
  justify-content: center;
675
305
  }
676
306
  .elb-preview-btn:hover {
677
- color: var(--color-text-button-hover);
678
- background: var(--bg-button-hover);
307
+ color: var(--fg);
308
+ background: var(--surface-2);
679
309
  }
680
310
  .elb-preview-btn:active {
681
- background: var(--bg-button-active);
311
+ background: var(--surface);
682
312
  }
683
313
  .elb-preview-btn:not(:last-child)::after {
684
314
  content: "";
@@ -687,161 +317,49 @@ html[data-theme=dark] .shiki span {
687
317
  top: 20%;
688
318
  height: 60%;
689
319
  width: 1px;
690
- background: var(--border-footer);
320
+ background: var(--border);
691
321
  opacity: 0.3;
692
322
  }
693
323
  .elb-preview-btn.highlight-globals {
694
- color: var(--highlight-globals);
324
+ color: var(--event-globals);
695
325
  }
696
326
  .elb-preview-btn.highlight-context {
697
- color: var(--highlight-context);
327
+ color: var(--event-context);
698
328
  }
699
329
  .elb-preview-btn.highlight-entity {
700
- color: var(--highlight-entity);
330
+ color: var(--event-entity);
701
331
  }
702
332
  .elb-preview-btn.highlight-property {
703
- color: var(--highlight-property);
333
+ color: var(--event-property);
704
334
  }
705
335
  .elb-preview-btn.highlight-action {
706
- color: var(--highlight-action);
707
- }
708
- .elb-toggle-container {
709
- display: flex;
710
- align-items: center;
711
- gap: 12px;
712
- }
713
- .elb-toggle {
714
- position: relative;
715
- width: 48px;
716
- height: 24px;
717
- background: var(--color-primary, #3b82f6);
718
- border: none;
719
- border-radius: 12px;
720
- cursor: pointer;
721
- transition: background-color 0.2s ease;
722
- padding: 0;
723
- outline: none;
724
- }
725
- .elb-toggle:focus-visible {
726
- box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb, 59, 130, 246), 0.2);
727
- }
728
- .elb-toggle-checked {
729
- background: var(--border-input);
730
- }
731
- .elb-toggle-disabled {
732
- opacity: 0.5;
733
- cursor: not-allowed;
734
- }
735
- .elb-toggle-slider {
736
- position: absolute;
737
- top: 2px;
738
- left: 2px;
739
- width: 20px;
740
- height: 20px;
741
- background: white;
742
- border-radius: 50%;
743
- transition: transform 0.2s ease;
744
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
745
- }
746
- .elb-toggle-checked .elb-toggle-slider {
747
- transform: translateX(24px);
748
- }
749
- .elb-toggle-label {
750
- font-family: var(--font-family-base);
751
- font-size: var(--font-size-base);
752
- color: var(--color-text);
753
- user-select: none;
754
- cursor: pointer;
755
- }
756
- .elb-spinner {
757
- display: inline-block;
758
- border: 2px solid var(--border-input);
759
- border-top-color: var(--color-button-primary);
760
- border-radius: 50%;
761
- animation: elb-spin 0.6s linear infinite;
762
- }
763
- .elb-spinner--sm {
764
- width: 1rem;
765
- height: 1rem;
766
- }
767
- .elb-spinner--md {
768
- width: 1.5rem;
769
- height: 1.5rem;
770
- }
771
- .elb-spinner--lg {
772
- width: 2rem;
773
- height: 2rem;
774
- }
775
- @keyframes elb-spin {
776
- to {
777
- transform: rotate(360deg);
778
- }
779
- }
780
- .elb-dropdown {
781
- position: relative;
782
- display: inline-block;
783
- }
784
- .elb-dropdown__trigger {
785
- cursor: pointer;
786
- user-select: none;
787
- }
788
- .elb-dropdown__trigger:focus {
789
- outline: 2px solid var(--border-input-focus);
790
- outline-offset: 2px;
791
- border-radius: var(--radius-button);
792
- }
793
- .elb-dropdown__panel {
794
- position: absolute;
795
- top: 100%;
796
- margin-top: var(--spacing-xs);
797
- min-width: 12rem;
798
- background-color: var(--bg-dropdown);
799
- border: 1px solid var(--border-box);
800
- border-radius: var(--radius-box);
801
- box-shadow: var(--shadow-lg);
802
- z-index: var(--z-dropdown);
803
- padding: var(--spacing-xs) 0;
804
- }
805
- .elb-dropdown__panel--left {
806
- left: 0;
336
+ color: var(--event-action);
807
337
  }
808
- .elb-dropdown__panel--right {
809
- right: 0;
810
- }
811
- .elb-dropdown__item {
812
- display: block;
813
- width: 100%;
814
- padding: var(--spacing-sm) var(--spacing-md);
815
- font-size: var(--font-size-sm);
816
- font-family: inherit;
817
- text-align: left;
818
- color: var(--color-text);
819
- background: none;
820
- border: none;
338
+ .elb-explorer-toggle {
339
+ display: inline-grid;
340
+ place-items: center;
341
+ margin: 0;
342
+ padding: 4px 10px;
343
+ border: 1px solid var(--border-strong);
344
+ border-radius: var(--radius-xs);
345
+ background: var(--surface);
346
+ color: var(--fg);
347
+ font-family: var(--font-sans);
348
+ font-size: var(--type-product-small-size);
349
+ font-weight: 600;
350
+ line-height: var(--type-product-small-line-height);
821
351
  cursor: pointer;
822
- transition: background-color 0.1s ease;
352
+ transition: background-color var(--motion) var(--ease), border-color var(--motion) var(--ease);
823
353
  }
824
- .elb-dropdown__item:hover:not(:disabled) {
825
- background-color: var(--bg-dropdown-option-hover);
354
+ .elb-explorer-toggle:hover {
355
+ background: var(--surface-2);
826
356
  }
827
- .elb-dropdown__item:focus {
828
- outline: none;
829
- background-color: var(--bg-dropdown-option-hover);
830
- }
831
- .elb-dropdown__item--danger {
832
- color: var(--color-button-danger);
833
- }
834
- .elb-dropdown__item--danger:hover:not(:disabled) {
835
- background-color: var(--color-alert-error-bg);
836
- }
837
- .elb-dropdown__item--disabled {
838
- opacity: 0.5;
839
- cursor: not-allowed;
357
+ .elb-explorer-toggle__label {
358
+ grid-area: 1/1;
359
+ white-space: nowrap;
840
360
  }
841
- .elb-dropdown__divider {
842
- height: 1px;
843
- margin: var(--spacing-xs) 0;
844
- background-color: var(--border-box);
361
+ .elb-explorer-toggle__label[aria-hidden=true] {
362
+ visibility: hidden;
845
363
  }
846
364
  .elb-code-box {
847
365
  display: flex;
@@ -854,13 +372,12 @@ html[data-theme=dark] .shiki span {
854
372
  position: absolute;
855
373
  top: 100%;
856
374
  right: 0;
857
- z-index: 10;
375
+ z-index: var(--z-dropdown);
858
376
  margin-top: 4px;
859
377
  padding: 8px 0;
860
- background: var(--bg-dropdown);
861
- border: 1px solid var(--border-box);
862
- border-radius: var(--radius-button);
863
- box-shadow: var(--shadow-dropdown);
378
+ background: var(--surface);
379
+ border: 1px solid var(--border-strong);
380
+ border-radius: var(--radius-xs);
864
381
  min-width: 140px;
865
382
  }
866
383
  .elb-codebox-settings-option {
@@ -868,61 +385,71 @@ html[data-theme=dark] .shiki span {
868
385
  align-items: center;
869
386
  gap: 8px;
870
387
  padding: 6px 12px;
871
- font-size: var(--font-size-label);
872
- color: var(--color-text);
388
+ font-size: var(--type-product-small-size);
389
+ color: var(--fg);
873
390
  cursor: pointer;
874
391
  user-select: none;
875
392
  white-space: nowrap;
876
393
  }
877
394
  .elb-codebox-settings-option:hover {
878
- background: var(--bg-dropdown-option-hover);
395
+ background: var(--surface-2);
879
396
  }
880
397
  .elb-codebox-settings-option input[type=checkbox] {
881
398
  margin: 0;
882
399
  cursor: pointer;
883
400
  }
401
+ .elb-codebox-placeholder {
402
+ position: absolute;
403
+ inset: 0 0 auto;
404
+ margin: 0;
405
+ padding: 8px 12px;
406
+ color: var(--fg-3);
407
+ font-family: var(--font-sans);
408
+ font-size: var(--type-product-small-size);
409
+ line-height: var(--type-product-small-line-height);
410
+ pointer-events: none;
411
+ }
884
412
  .elb-codebox-marker-badge {
885
413
  display: flex;
886
414
  align-items: center;
887
415
  gap: 3px;
888
416
  padding: 2px 6px;
889
417
  border: none;
890
- border-radius: var(--radius-button);
418
+ border-radius: var(--radius-xs);
891
419
  cursor: pointer;
892
- font-size: calc(var(--font-size-base) - 2px);
893
- font-weight: var(--font-weight-semibold);
420
+ font-size: var(--type-product-caption-size);
421
+ font-weight: 600;
894
422
  font-family: var(--font-mono);
895
423
  line-height: 1;
896
- transition: all 0.15s;
424
+ transition: all var(--motion) var(--ease);
897
425
  }
898
426
  .elb-codebox-marker-badge svg {
899
427
  flex-shrink: 0;
900
428
  }
901
429
  .elb-codebox-marker-badge--error {
902
- color: var(--color-alert-error-text);
430
+ color: var(--danger);
903
431
  background: transparent;
904
432
  }
905
433
  .elb-codebox-marker-badge--error:hover {
906
- background: var(--color-alert-error-bg);
434
+ background: var(--danger-bg);
907
435
  }
908
436
  .elb-codebox-marker-badge--warning {
909
- color: var(--color-alert-warning-text);
437
+ color: var(--warning);
910
438
  background: transparent;
911
439
  }
912
440
  .elb-codebox-marker-badge--warning:hover {
913
- background: var(--color-alert-warning-bg);
441
+ background: var(--warning-bg);
914
442
  }
915
443
  .elb-codebox-marker-menu {
916
444
  position: absolute;
917
445
  top: 100%;
918
446
  right: 0;
919
- z-index: 10;
447
+ z-index: var(--z-dropdown);
920
448
  margin-top: 4px;
921
449
  padding: 4px 0;
922
- background: var(--bg-dropdown);
923
- border: 1px solid var(--border-box);
924
- border-radius: var(--radius-button);
925
- box-shadow: var(--shadow-dropdown);
450
+ background: var(--surface);
451
+ border: 1px solid var(--border-strong);
452
+ border-radius: var(--radius-xs);
926
453
  min-width: 200px;
927
454
  max-width: 340px;
928
455
  max-height: 200px;
@@ -937,17 +464,17 @@ html[data-theme=dark] .shiki span {
937
464
  border: none;
938
465
  background: none;
939
466
  cursor: pointer;
940
- font-size: calc(var(--font-size-base) - 2px);
941
- color: var(--color-text);
467
+ font-size: var(--type-product-caption-size);
468
+ color: var(--fg);
942
469
  text-align: left;
943
470
  }
944
471
  .elb-codebox-marker-menu-item:hover {
945
- background: var(--bg-dropdown-option-hover);
472
+ background: var(--surface-2);
946
473
  }
947
474
  .elb-codebox-marker-menu-line {
948
475
  flex-shrink: 0;
949
476
  font-family: var(--font-mono);
950
- font-weight: var(--font-weight-semibold);
477
+ font-weight: 600;
951
478
  opacity: 0.6;
952
479
  }
953
480
  .elb-codebox-marker-menu-msg {
@@ -955,8 +482,39 @@ html[data-theme=dark] .shiki span {
955
482
  text-overflow: ellipsis;
956
483
  white-space: nowrap;
957
484
  }
485
+ .elb-code-diff-box__actions {
486
+ display: flex;
487
+ align-items: center;
488
+ gap: 8px;
489
+ }
490
+ .elb-code-diff-box__summary {
491
+ display: flex;
492
+ align-items: center;
493
+ gap: 6px;
494
+ font-size: var(--type-product-caption-size);
495
+ font-weight: 500;
496
+ font-variant-numeric: tabular-nums;
497
+ }
498
+ .elb-code-diff-box__added {
499
+ color: var(--success);
500
+ }
501
+ .elb-code-diff-box__deleted {
502
+ color: var(--danger);
503
+ }
504
+ .elb-code-diff-box__modified {
505
+ color: var(--fg-2);
506
+ }
507
+ .elb-code-diff-box__toggle .elb-explorer-btn {
508
+ padding: 2px 8px;
509
+ font-size: var(--type-product-caption-size);
510
+ font-weight: 500;
511
+ user-select: none;
512
+ }
958
513
  .elb-code-snippet .elb-code-static {
959
- font-size: 15px;
514
+ font-size: var(--type-code-command-size);
515
+ }
516
+ .elb-code-view--fit {
517
+ --height-code-view-max: 600px;
960
518
  }
961
519
  .elb-code-view--fit.elb-explorer-box {
962
520
  height: auto;
@@ -973,12 +531,12 @@ html[data-theme=dark] .shiki span {
973
531
  position: absolute;
974
532
  top: 6px;
975
533
  right: 6px;
976
- z-index: 1;
534
+ z-index: var(--z-raised);
977
535
  display: flex;
978
- background: var(--bg-box);
979
- border-radius: var(--radius-button);
536
+ background: var(--code-bar);
537
+ border-radius: var(--radius-xs);
980
538
  opacity: 0;
981
- transition: opacity 0.15s;
539
+ transition: opacity var(--motion) var(--ease);
982
540
  }
983
541
  .elb-explorer-content:hover > .elb-code-view-actions,
984
542
  .elb-code-view-actions:focus-within {
@@ -989,11 +547,15 @@ html[data-theme=dark] .shiki span {
989
547
  opacity: 1;
990
548
  }
991
549
  }
550
+ .elb-step-example {
551
+ --step-example-min-box-width: 220px;
552
+ --step-example-max-height: 360px;
553
+ }
992
554
  .elb-step-example-boxes {
993
555
  display: flex;
994
556
  flex-wrap: wrap;
995
557
  align-items: stretch;
996
- gap: var(--spacing-grid-gap);
558
+ gap: 12px;
997
559
  }
998
560
  .elb-step-example .elb-step-example-boxes > .elb-explorer-box {
999
561
  flex: 1 1 var(--step-example-min-box-width);
@@ -1014,68 +576,11 @@ html[data-theme=dark] .shiki span {
1014
576
  border: none;
1015
577
  display: block;
1016
578
  }
1017
- .token.attr-name {
1018
- color: white !important;
1019
- }
1020
- .token.attr-name[data-elb],
1021
- .token.attr-name[data-elbaction],
1022
- .token.attr-name[data-elbglobals],
1023
- .token.attr-name[data-elbcontext],
1024
- .token.attr-name[data-elbproperty] {
1025
- color: var(--highlight-property) !important;
1026
- }
1027
579
  @container grid-container (max-width: 799px) {
1028
580
  .elb-preview-content {
1029
581
  min-height: 300px;
1030
582
  }
1031
583
  }
1032
- .elb-explorer-btn {
1033
- padding: var(--spacing-button);
1034
- background: transparent;
1035
- border: none;
1036
- border-radius: var(--radius-button);
1037
- cursor: pointer;
1038
- display: flex;
1039
- align-items: center;
1040
- justify-content: center;
1041
- color: var(--color-text-button);
1042
- transition: all 0.15s;
1043
- }
1044
- .elb-explorer-btn:hover {
1045
- background: var(--bg-button-hover);
1046
- color: var(--color-text-button-hover);
1047
- }
1048
- .elb-explorer-btn.active {
1049
- background: var(--bg-button-active);
1050
- color: var(--color-text-button-active);
1051
- box-shadow: var(--shadow-button-active);
1052
- font-weight: var(--font-weight-semibold);
1053
- }
1054
- .elb-explorer-button-group {
1055
- display: flex;
1056
- background: var(--bg-button-group);
1057
- border-radius: var(--radius-button-group);
1058
- padding: var(--spacing-button-group);
1059
- border: 1px solid var(--border-button-group);
1060
- }
1061
- .elb-explorer-controls {
1062
- padding: 8px 0 12px 0;
1063
- display: flex;
1064
- justify-content: flex-end;
1065
- }
1066
- .elb-explorer-toggle {
1067
- display: flex;
1068
- align-items: center;
1069
- gap: 6px;
1070
- font-size: var(--font-size-toggle);
1071
- color: var(--color-text-toggle);
1072
- cursor: pointer;
1073
- user-select: none;
1074
- }
1075
- .elb-explorer-toggle input[type=checkbox] {
1076
- margin: 0;
1077
- cursor: pointer;
1078
- }
1079
584
  .elb-architecture-flow {
1080
585
  container-type: inline-size;
1081
586
  width: 100%;
@@ -1095,12 +600,12 @@ html[data-theme=dark] .shiki span {
1095
600
  }
1096
601
  }
1097
602
  .elb-architecture-flow__title {
1098
- font-size: var(--font-size-base, 16px);
1099
- font-weight: var(--font-weight-semibold, 600);
603
+ font-size: var(--type-product-body-size);
604
+ font-weight: 600;
1100
605
  text-transform: uppercase;
1101
606
  letter-spacing: 0.05em;
1102
607
  text-align: center;
1103
- color: var(--color-text-muted, #6b7280);
608
+ color: var(--fg-2);
1104
609
  }
1105
610
  .elb-architecture-flow__title--desktop {
1106
611
  display: none;
@@ -1141,15 +646,15 @@ html[data-theme=dark] .shiki span {
1141
646
  }
1142
647
  .elb-architecture-flow__section {
1143
648
  padding: 16px;
1144
- border-radius: 12px;
1145
- border: 1px solid var(--border-box, rgba(128, 128, 128, 0.3));
1146
- background-color: var(--bg-box, transparent);
649
+ border-radius: var(--radius-lg);
650
+ border: 1px solid var(--border);
651
+ background-color: var(--surface);
1147
652
  }
1148
653
  .elb-architecture-flow__section-title {
1149
654
  display: block;
1150
- font-size: calc(var(--font-size-base, 16px) - 2px);
655
+ font-size: var(--type-product-caption-size);
1151
656
  font-weight: 500;
1152
- color: var(--color-text-muted, #6b7280);
657
+ color: var(--fg-2);
1153
658
  margin-bottom: 12px;
1154
659
  }
1155
660
  .elb-architecture-flow__items {
@@ -1161,7 +666,7 @@ html[data-theme=dark] .shiki span {
1161
666
  display: flex;
1162
667
  align-items: center;
1163
668
  gap: 12px;
1164
- color: var(--color-text, currentColor);
669
+ color: var(--fg);
1165
670
  }
1166
671
  .elb-architecture-flow__item-icon {
1167
672
  width: 20px;
@@ -1176,18 +681,18 @@ html[data-theme=dark] .shiki span {
1176
681
  height: 20px;
1177
682
  }
1178
683
  .elb-architecture-flow__item-label {
1179
- font-size: var(--font-size-base, 16px);
684
+ font-size: var(--type-product-body-size);
1180
685
  white-space: nowrap;
1181
686
  }
1182
687
  .elb-architecture-flow__more {
1183
- font-size: calc(var(--font-size-base, 16px) - 2px);
688
+ font-size: var(--type-product-caption-size);
1184
689
  font-style: italic;
1185
- color: var(--color-text-muted, #6b7280);
690
+ color: var(--fg-2);
1186
691
  opacity: 0.7;
1187
692
  text-align: center;
1188
693
  }
1189
694
  .elb-architecture-flow__arrow {
1190
- color: var(--color-button-primary, #01b5e2);
695
+ color: var(--link);
1191
696
  }
1192
697
  .elb-architecture-flow__arrow > svg {
1193
698
  width: 32px;
@@ -1233,8 +738,8 @@ html[data-theme=dark] .shiki span {
1233
738
  }
1234
739
  .elb-property-table__container {
1235
740
  overflow: visible;
1236
- border-radius: var(--radius-box);
1237
- border: 1px solid var(--border-box);
741
+ border-radius: var(--radius-xs);
742
+ border: 1px solid var(--border);
1238
743
  width: 100%;
1239
744
  box-sizing: border-box;
1240
745
  container-type: inline-size;
@@ -1247,27 +752,27 @@ html[data-theme=dark] .shiki span {
1247
752
  width: 100%;
1248
753
  table-layout: auto;
1249
754
  border-collapse: collapse;
1250
- font-size: calc(var(--font-size-base) - 1px);
1251
- background: var(--bg-box);
755
+ font-size: var(--type-product-small-size);
756
+ background: var(--surface);
1252
757
  display: table;
1253
758
  }
1254
759
  .elb-property-table thead {
1255
- background: var(--bg-header);
760
+ background: var(--bg-2);
1256
761
  }
1257
762
  .elb-property-table th {
1258
763
  padding: 12px 16px;
1259
764
  text-align: left;
1260
- font-weight: var(--font-weight-semibold);
1261
- color: var(--color-text-label);
1262
- border-bottom: 2px solid var(--border-box);
1263
- font-size: calc(var(--font-size-base) - 2px);
765
+ font-weight: 600;
766
+ color: var(--fg-2);
767
+ border-bottom: 2px solid var(--border);
768
+ font-size: var(--type-product-caption-size);
1264
769
  text-transform: uppercase;
1265
770
  letter-spacing: 0.5px;
1266
771
  white-space: nowrap;
1267
772
  }
1268
773
  .elb-property-table td {
1269
774
  padding: 12px 16px;
1270
- border-bottom: 1px solid var(--border-box);
775
+ border-bottom: 1px solid var(--border);
1271
776
  vertical-align: top;
1272
777
  }
1273
778
  .elb-property-table tbody tr:last-child td {
@@ -1275,16 +780,16 @@ html[data-theme=dark] .shiki span {
1275
780
  padding-bottom: 12px;
1276
781
  }
1277
782
  .elb-property-table__property-name {
1278
- font-weight: var(--font-weight-semibold);
1279
- color: var(--color-button-primary);
783
+ font-weight: 600;
784
+ color: var(--link);
1280
785
  font-family: var(--font-mono);
1281
- font-size: calc(var(--font-size-base) - 2px);
786
+ font-size: var(--type-product-caption-size);
1282
787
  }
1283
788
  .elb-property-table__row--nested {
1284
- background: var(--bg-header);
789
+ background: var(--bg-2);
1285
790
  }
1286
791
  .elb-property-table__row--nested .elb-property-table__property-cell {
1287
- border-left: 2px solid var(--border-box);
792
+ border-left: 2px solid var(--border);
1288
793
  }
1289
794
  .elb-property-table__group-toggle {
1290
795
  display: inline-flex;
@@ -1295,16 +800,16 @@ html[data-theme=dark] .shiki span {
1295
800
  background: none;
1296
801
  border: none;
1297
802
  cursor: pointer;
1298
- color: var(--color-text-label);
803
+ color: var(--fg-2);
1299
804
  vertical-align: baseline;
1300
805
  }
1301
806
  .elb-property-table__group-toggle:hover {
1302
- color: var(--color-button-primary);
807
+ color: var(--link);
1303
808
  }
1304
809
  .elb-property-table__property-type {
1305
- color: var(--color-text);
810
+ color: var(--fg);
1306
811
  font-family: var(--font-mono);
1307
- font-size: calc(var(--font-size-base) - 3px);
812
+ font-size: var(--type-product-caption-size);
1308
813
  white-space: nowrap;
1309
814
  }
1310
815
  .elb-property-table__property-type--truncated {
@@ -1323,7 +828,7 @@ html[data-theme=dark] .shiki span {
1323
828
  linear-gradient(
1324
829
  to right,
1325
830
  transparent,
1326
- var(--bg-box));
831
+ var(--surface));
1327
832
  pointer-events: none;
1328
833
  }
1329
834
  .elb-property-table__type-button {
@@ -1335,7 +840,7 @@ html[data-theme=dark] .shiki span {
1335
840
  text-align: left;
1336
841
  display: block;
1337
842
  width: 100%;
1338
- transition: opacity 0.2s ease;
843
+ transition: opacity var(--motion) var(--ease);
1339
844
  }
1340
845
  .elb-property-table__type-button:hover {
1341
846
  opacity: 0.7;
@@ -1345,13 +850,13 @@ html[data-theme=dark] .shiki span {
1345
850
  linear-gradient(
1346
851
  to right,
1347
852
  transparent,
1348
- var(--bg-input-hover));
853
+ var(--surface-2));
1349
854
  }
1350
855
  .elb-property-table__required-icon {
1351
- color: var(--color-button-danger);
856
+ color: var(--danger);
1352
857
  font-weight: bold;
1353
858
  margin-left: 4px;
1354
- font-size: 1.1em;
859
+ font-size: var(--type-product-small-size);
1355
860
  }
1356
861
  .elb-property-table__action-cell {
1357
862
  text-align: center;
@@ -1367,7 +872,7 @@ html[data-theme=dark] .shiki span {
1367
872
  }
1368
873
  .elb-property-table__description {
1369
874
  line-height: 1.4;
1370
- color: var(--color-text);
875
+ color: var(--fg);
1371
876
  word-break: break-word;
1372
877
  overflow-wrap: anywhere;
1373
878
  min-width: 0;
@@ -1376,21 +881,21 @@ html[data-theme=dark] .shiki span {
1376
881
  background: none;
1377
882
  border: none;
1378
883
  padding: 6px;
1379
- border-radius: var(--radius-button);
884
+ border-radius: var(--radius-xs);
1380
885
  cursor: pointer;
1381
- color: var(--color-button-primary);
886
+ color: var(--link);
1382
887
  display: inline-flex;
1383
888
  align-items: center;
1384
889
  justify-content: center;
1385
- transition: background-color 0.2s ease;
890
+ transition: background-color var(--motion) var(--ease);
1386
891
  }
1387
892
  .elb-property-table__more-button:hover {
1388
- background: var(--bg-button-hover);
893
+ background: var(--surface-2);
1389
894
  }
1390
895
  .elb-property-table__required-notice {
1391
896
  margin-top: 0;
1392
- font-size: calc(var(--font-size-base) - 2px);
1393
- color: var(--color-text-muted);
897
+ font-size: var(--type-product-caption-size);
898
+ color: var(--fg-2);
1394
899
  font-style: italic;
1395
900
  }
1396
901
  .elb-property-table__modal-backdrop {
@@ -1399,58 +904,57 @@ html[data-theme=dark] .shiki span {
1399
904
  left: 0;
1400
905
  right: 0;
1401
906
  bottom: 0;
1402
- background: rgba(0, 0, 0, 0.5);
907
+ background: var(--backdrop);
1403
908
  display: flex;
1404
909
  align-items: center;
1405
910
  justify-content: center;
1406
- z-index: 1000;
911
+ z-index: var(--z-modal);
1407
912
  padding: 20px;
1408
913
  }
1409
914
  .elb-property-table__modal-content {
1410
- background: var(--bg-box);
1411
- border-radius: var(--radius-box);
1412
- box-shadow: var(--shadow-dropdown);
915
+ background: var(--surface);
916
+ border-radius: var(--radius-xs);
1413
917
  max-width: 600px;
1414
918
  width: 100%;
1415
919
  max-height: 80vh;
1416
920
  overflow-y: auto;
1417
- border: 1px solid var(--border-box);
921
+ border: 1px solid var(--border-strong);
1418
922
  }
1419
923
  .elb-property-table__modal-header {
1420
924
  display: flex;
1421
925
  align-items: center;
1422
926
  justify-content: space-between;
1423
927
  padding: 20px 24px 16px;
1424
- border-bottom: 1px solid var(--border-box);
928
+ border-bottom: 1px solid var(--border);
1425
929
  }
1426
930
  .elb-property-table__modal-title {
1427
931
  margin: 0;
1428
- font-size: 1.25rem;
1429
- font-weight: var(--font-weight-semibold);
932
+ font-size: var(--type-product-heading-size);
933
+ font-weight: 600;
1430
934
  display: flex;
1431
935
  align-items: center;
1432
936
  }
1433
937
  .elb-property-table__modal-property-name {
1434
938
  font-family: var(--font-mono);
1435
- color: var(--color-button-primary);
1436
- font-weight: var(--font-weight-semibold);
1437
- font-size: 1rem;
939
+ color: var(--link);
940
+ font-weight: 600;
941
+ font-size: var(--type-product-title-size);
1438
942
  }
1439
943
  .elb-property-table__close-button {
1440
944
  background: none;
1441
945
  border: none;
1442
946
  padding: 8px;
1443
- border-radius: var(--radius-button);
947
+ border-radius: var(--radius-xs);
1444
948
  cursor: pointer;
1445
- color: var(--color-text-muted);
949
+ color: var(--fg-2);
1446
950
  display: inline-flex;
1447
951
  align-items: center;
1448
952
  justify-content: center;
1449
- transition: color 0.2s ease, background-color 0.2s ease;
953
+ transition: color var(--motion) var(--ease), background-color var(--motion) var(--ease);
1450
954
  }
1451
955
  .elb-property-table__close-button:hover {
1452
- color: var(--color-text);
1453
- background: var(--bg-button-hover);
956
+ color: var(--fg);
957
+ background: var(--surface-2);
1454
958
  }
1455
959
  .elb-property-table__modal-body {
1456
960
  padding: 20px 24px 24px;
@@ -1463,15 +967,15 @@ html[data-theme=dark] .shiki span {
1463
967
  }
1464
968
  .elb-property-table__modal-label {
1465
969
  display: block;
1466
- font-weight: var(--font-weight-semibold);
1467
- color: var(--color-text-label);
970
+ font-weight: 600;
971
+ color: var(--fg-2);
1468
972
  margin-bottom: 6px;
1469
- font-size: calc(var(--font-size-base) - 1px);
973
+ font-size: var(--type-product-small-size);
1470
974
  }
1471
975
  .elb-property-table__modal-type {
1472
976
  font-family: var(--font-mono);
1473
- color: var(--color-text);
1474
- font-size: calc(var(--font-size-base) - 1px);
977
+ color: var(--fg);
978
+ font-size: var(--type-product-small-size);
1475
979
  }
1476
980
  .elb-property-table__modal-type--wrap {
1477
981
  display: block;
@@ -1482,27 +986,27 @@ html[data-theme=dark] .shiki span {
1482
986
  .elb-property-table__modal-description {
1483
987
  margin: 0;
1484
988
  line-height: 1.5;
1485
- color: var(--color-text);
989
+ color: var(--fg);
1486
990
  }
1487
991
  .elb-property-table__modal-default {
1488
992
  font-family: var(--font-mono);
1489
- color: var(--color-text);
1490
- font-size: calc(var(--font-size-base) - 1px);
993
+ color: var(--fg);
994
+ font-size: var(--type-product-small-size);
1491
995
  }
1492
996
  .elb-property-table__modal-example {
1493
997
  font-family: var(--font-mono);
1494
- color: var(--color-text);
1495
- font-size: calc(var(--font-size-base) - 1px);
998
+ color: var(--fg);
999
+ font-size: var(--type-product-small-size);
1496
1000
  display: block;
1497
1001
  white-space: pre-wrap;
1498
1002
  word-break: break-word;
1499
1003
  }
1500
1004
  @media (max-width: 768px) {
1501
1005
  .elb-property-table__container {
1502
- margin: 1rem 0 0;
1006
+ margin: 16px 0 0;
1503
1007
  }
1504
1008
  .elb-property-table {
1505
- font-size: calc(var(--font-size-base) - 2px);
1009
+ font-size: var(--type-product-caption-size);
1506
1010
  display: block;
1507
1011
  }
1508
1012
  .elb-property-table thead {
@@ -1513,20 +1017,20 @@ html[data-theme=dark] .shiki span {
1513
1017
  }
1514
1018
  .elb-property-table tr {
1515
1019
  display: block;
1516
- margin-bottom: 1rem;
1517
- border: 1px solid var(--border-box);
1518
- border-radius: var(--radius-box);
1519
- background: var(--bg-box);
1020
+ margin-bottom: 16px;
1021
+ border: 1px solid var(--border);
1022
+ border-radius: var(--radius-xs);
1023
+ background: var(--surface);
1520
1024
  position: relative;
1521
1025
  }
1522
1026
  .elb-property-table td {
1523
1027
  display: block;
1524
1028
  padding: 8px 12px;
1525
- border-bottom: 1px solid var(--border-box);
1029
+ border-bottom: 1px solid var(--border);
1526
1030
  text-align: left;
1527
1031
  }
1528
1032
  .elb-property-table tbody tr:last-child td {
1529
- border-bottom: 1px solid var(--border-box);
1033
+ border-bottom: 1px solid var(--border);
1530
1034
  }
1531
1035
  .elb-property-table td:last-child {
1532
1036
  border-bottom: none;
@@ -1534,15 +1038,15 @@ html[data-theme=dark] .shiki span {
1534
1038
  .elb-property-table td::before {
1535
1039
  content: attr(data-label);
1536
1040
  display: block;
1537
- font-weight: var(--font-weight-semibold);
1538
- color: var(--color-text-label);
1539
- font-size: calc(var(--font-size-base) - 3px);
1041
+ font-weight: 600;
1042
+ color: var(--fg-2);
1043
+ font-size: var(--type-product-caption-size);
1540
1044
  text-transform: uppercase;
1541
1045
  margin-bottom: 4px;
1542
1046
  }
1543
1047
  .elb-property-table__property-name,
1544
1048
  .elb-property-table__property-type {
1545
- font-size: calc(var(--font-size-base) - 2px);
1049
+ font-size: var(--type-product-caption-size);
1546
1050
  }
1547
1051
  .elb-property-table__property-cell {
1548
1052
  width: 100%;
@@ -1557,7 +1061,7 @@ html[data-theme=dark] .shiki span {
1557
1061
  width: 100%;
1558
1062
  }
1559
1063
  .elb-property-table__description {
1560
- font-size: calc(var(--font-size-base) - 2px);
1064
+ font-size: var(--type-product-caption-size);
1561
1065
  }
1562
1066
  .elb-property-table__action-cell {
1563
1067
  position: absolute;
@@ -1577,7 +1081,7 @@ html[data-theme=dark] .shiki span {
1577
1081
  width: auto;
1578
1082
  min-width: 28px;
1579
1083
  height: 28px;
1580
- border-radius: 4px;
1084
+ border-radius: var(--radius-xs);
1581
1085
  }
1582
1086
  .elb-property-table__more-button svg {
1583
1087
  width: 20px;
@@ -1599,8 +1103,8 @@ html[data-theme=dark] .shiki span {
1599
1103
  align-items: center;
1600
1104
  justify-content: center;
1601
1105
  min-height: 120px;
1602
- padding: 2rem 1rem;
1603
- color: var(--color-text-muted);
1106
+ padding: 32px 16px;
1107
+ color: var(--fg-2);
1604
1108
  font-style: italic;
1605
1109
  text-align: center;
1606
1110
  }
@@ -1623,7 +1127,7 @@ html[data-theme=dark] .shiki span {
1623
1127
  column-gap: 8px;
1624
1128
  row-gap: 4px;
1625
1129
  padding: 12px 16px;
1626
- border-bottom: 1px solid var(--border-box);
1130
+ border-bottom: 1px solid var(--border);
1627
1131
  }
1628
1132
  .elb-property-table tbody tr:last-child {
1629
1133
  border-bottom: none;
@@ -1653,16 +1157,122 @@ html[data-theme=dark] .shiki span {
1653
1157
  grid-row: 2;
1654
1158
  grid-column: 1/-1;
1655
1159
  line-height: 1.4;
1656
- color: var(--color-text-muted);
1657
- font-size: calc(var(--font-size-base) - 1px);
1160
+ color: var(--fg-2);
1161
+ font-size: var(--type-product-small-size);
1162
+ }
1163
+ }
1164
+ .elb-view-source {
1165
+ --elb-view-source-width: 100%;
1166
+ --elb-view-source-height: 0px;
1167
+ --elb-view-source-radius: 0px;
1168
+ --elb-view-source-inset: 0px;
1169
+ --elb-view-source-inset-top: 0px;
1170
+ --elb-view-source-inset-right: 0px;
1171
+ position: relative;
1172
+ }
1173
+ .elb-view-source--stretch,
1174
+ .elb-view-source--stretch > .elb-view-source__content {
1175
+ display: grid;
1176
+ grid-template-columns: minmax(0, 1fr);
1177
+ }
1178
+ .elb-view-source__content[hidden] {
1179
+ display: none;
1180
+ }
1181
+ .elb-view-source__toolbar {
1182
+ position: absolute;
1183
+ top: calc(var(--elb-view-source-inset-top) + 8px);
1184
+ right: calc(var(--elb-view-source-inset-right) + 8px);
1185
+ z-index: var(--z-raised);
1186
+ display: flex;
1187
+ flex-wrap: wrap;
1188
+ justify-content: flex-end;
1189
+ align-items: stretch;
1190
+ gap: 4px;
1191
+ max-width: calc(100% - 16px);
1192
+ font-family: var(--font-sans);
1193
+ font-size: var(--type-product-small-size);
1194
+ line-height: var(--type-product-small-line-height);
1195
+ opacity: 0;
1196
+ pointer-events: none;
1197
+ transition: opacity var(--motion) var(--ease);
1198
+ }
1199
+ .elb-view-source__notice,
1200
+ .elb-view-source__reset {
1201
+ display: flex;
1202
+ align-items: center;
1203
+ border: 1px solid var(--border-strong);
1204
+ border-radius: var(--radius-xs);
1205
+ background: var(--surface);
1206
+ }
1207
+ .elb-view-source__notice {
1208
+ gap: 4px;
1209
+ padding: 0 8px;
1210
+ color: var(--fg);
1211
+ }
1212
+ .elb-view-source__notice svg {
1213
+ flex: none;
1214
+ color: var(--warning);
1215
+ }
1216
+ .elb-view-source__notice:empty {
1217
+ position: absolute;
1218
+ padding: 0;
1219
+ border: 0;
1220
+ }
1221
+ .elb-view-source__reset {
1222
+ justify-content: center;
1223
+ margin: 0;
1224
+ padding: 7px;
1225
+ color: var(--fg-2);
1226
+ cursor: pointer;
1227
+ transition: background-color var(--motion) var(--ease), color var(--motion) var(--ease);
1228
+ }
1229
+ .elb-view-source__reset:hover {
1230
+ background: var(--surface-2);
1231
+ color: var(--fg);
1232
+ }
1233
+ .elb-view-source__code {
1234
+ display: flex;
1235
+ flex-direction: column;
1236
+ box-sizing: border-box;
1237
+ width: var(--elb-view-source-width);
1238
+ max-width: 100%;
1239
+ height: max(var(--elb-view-source-height), 160px);
1240
+ padding: var(--elb-view-source-inset);
1241
+ }
1242
+ .elb-view-source__surface {
1243
+ display: flex;
1244
+ flex: 1;
1245
+ flex-direction: column;
1246
+ min-height: 0;
1247
+ overflow: hidden;
1248
+ border-radius: var(--elb-view-source-radius);
1249
+ background: var(--code-bg);
1250
+ isolation: isolate;
1251
+ }
1252
+ .elb-view-source--code > .elb-view-source__toolbar,
1253
+ .elb-view-source--edited > .elb-view-source__toolbar,
1254
+ .elb-view-source--notice > .elb-view-source__toolbar {
1255
+ opacity: 1;
1256
+ pointer-events: auto;
1257
+ }
1258
+ .elb-view-source:hover:not(:has(.elb-view-source:hover)) > .elb-view-source__toolbar,
1259
+ .elb-view-source:has(:focus-visible):not(:has(.elb-view-source :focus-visible)) > .elb-view-source__toolbar {
1260
+ opacity: 1;
1261
+ pointer-events: auto;
1262
+ }
1263
+ @supports not selector(:has(*)) {
1264
+ .elb-view-source:hover > .elb-view-source__toolbar,
1265
+ .elb-view-source:focus-within > .elb-view-source__toolbar {
1266
+ opacity: 1;
1267
+ pointer-events: auto;
1658
1268
  }
1659
1269
  }
1660
1270
  .elb-explorer-box {
1661
1271
  display: flex;
1662
1272
  flex-direction: column;
1663
- background: var(--bg-box);
1664
- border: 1px solid var(--border-box);
1665
- border-radius: var(--radius-box);
1273
+ background: var(--surface);
1274
+ border: 1px solid var(--border);
1275
+ border-radius: var(--radius-xs);
1666
1276
  overflow: hidden;
1667
1277
  box-sizing: border-box;
1668
1278
  min-height: 200px;
@@ -1690,31 +1300,66 @@ html[data-theme=dark] .shiki span {
1690
1300
  min-height: 0;
1691
1301
  max-height: none;
1692
1302
  }
1303
+ .elb-explorer-box--code {
1304
+ background: var(--code-bg);
1305
+ border-color: var(--code-border);
1306
+ }
1307
+ .elb-explorer-box--code > .elb-explorer-header,
1308
+ .elb-explorer-box--code > .elb-explorer-tabs,
1309
+ .elb-explorer-box--code > .elb-explorer-footer {
1310
+ background: var(--code-bar);
1311
+ border-color: var(--code-border);
1312
+ }
1313
+ .elb-explorer-box--code > .elb-explorer-content {
1314
+ background: var(--code-bg);
1315
+ }
1693
1316
  .elb-explorer-header {
1694
1317
  display: flex;
1695
1318
  align-items: center;
1696
1319
  justify-content: space-between;
1697
- padding: var(--spacing-header);
1698
- background: var(--bg-header);
1699
- border-bottom: 1px solid var(--border-header);
1320
+ padding: 6px 10px;
1321
+ background: var(--bg-2);
1322
+ border-bottom: 1px solid var(--border);
1700
1323
  flex-shrink: 0;
1701
1324
  height: 36px;
1702
1325
  box-sizing: border-box;
1703
1326
  }
1704
1327
  .elb-explorer-label {
1705
- font-size: var(--font-size-label);
1706
- font-weight: var(--font-weight-semibold);
1707
- color: var(--color-text-label);
1328
+ font-size: var(--type-product-small-size);
1329
+ font-weight: 600;
1330
+ color: var(--fg-2);
1708
1331
  user-select: none;
1709
1332
  }
1710
- .elb-explorer-footer {
1333
+ .elb-explorer-box-error {
1711
1334
  display: flex;
1712
- align-items: center;
1713
- justify-content: space-between;
1714
- padding: var(--spacing-footer);
1715
- background: var(--bg-footer);
1716
- border-top: 1px solid var(--border-footer);
1717
- flex-shrink: 0;
1335
+ align-items: baseline;
1336
+ gap: 6px;
1337
+ padding: 6px 10px;
1338
+ border-bottom: 1px solid var(--danger);
1339
+ background: var(--danger-bg);
1340
+ color: var(--fg);
1341
+ font-family: var(--font-sans);
1342
+ font-size: var(--type-product-small-size);
1343
+ line-height: var(--type-product-small-line-height);
1344
+ flex-shrink: 0;
1345
+ overflow-wrap: anywhere;
1346
+ }
1347
+ .elb-explorer-box-error svg {
1348
+ flex: none;
1349
+ align-self: center;
1350
+ color: var(--danger);
1351
+ }
1352
+ .elb-explorer-box-error strong {
1353
+ font-weight: 600;
1354
+ }
1355
+ .elb-explorer-footer {
1356
+ display: flex;
1357
+ align-items: center;
1358
+ justify-content: space-between;
1359
+ padding: 6px 10px;
1360
+ background: var(--bg-2);
1361
+ border-top: 1px solid var(--border);
1362
+ flex-shrink: 0;
1718
1363
  height: 40px;
1719
1364
  box-sizing: border-box;
1720
1365
  }
@@ -1725,7 +1370,7 @@ html[data-theme=dark] .shiki span {
1725
1370
  flex: 1;
1726
1371
  min-height: 0;
1727
1372
  position: relative;
1728
- background: var(--bg-box);
1373
+ background: var(--surface);
1729
1374
  overflow: hidden;
1730
1375
  display: flex;
1731
1376
  flex-direction: column;
@@ -1737,62 +1382,2494 @@ html[data-theme=dark] .shiki span {
1737
1382
  flex: 1;
1738
1383
  min-height: 0;
1739
1384
  }
1740
- .elb-explorer-button-group {
1741
- display: flex;
1742
- background: var(--bg-button-group);
1743
- border-radius: var(--radius-button-group);
1744
- padding: var(--spacing-button-group);
1745
- border: 1px solid var(--border-button-group);
1746
- }
1747
1385
  .elb-explorer-tabs {
1748
1386
  display: flex;
1749
1387
  align-items: center;
1750
- background: var(--bg-header);
1751
- border-bottom: 1px solid var(--border-header);
1388
+ background: var(--bg-2);
1389
+ border-bottom: 1px solid var(--border);
1752
1390
  flex-shrink: 0;
1753
1391
  min-height: 36px;
1754
1392
  box-sizing: border-box;
1755
1393
  }
1756
1394
  .elb-explorer-tab {
1757
- padding: 0.5rem 1rem;
1758
- font-size: var(--font-size-label);
1759
- font-weight: var(--font-weight-semibold);
1760
- color: var(--color-text-muted);
1395
+ padding: 8px 16px;
1396
+ font-size: var(--type-product-small-size);
1397
+ font-weight: 600;
1398
+ color: var(--fg-2);
1761
1399
  background: transparent;
1762
1400
  border: none;
1763
1401
  border-bottom: 2px solid transparent;
1764
1402
  cursor: pointer;
1765
- transition: color 0.15s ease, border-color 0.15s ease;
1403
+ transition: color var(--motion) var(--ease), border-color var(--motion) var(--ease);
1766
1404
  user-select: none;
1767
1405
  }
1768
1406
  .elb-explorer-tab:hover {
1769
- color: var(--color-text-label);
1407
+ color: var(--fg);
1770
1408
  }
1771
1409
  .elb-explorer-tab--active {
1772
- color: #01b5e2;
1773
- border-bottom-color: #01b5e2;
1410
+ color: var(--link);
1411
+ border-bottom-color: var(--primary);
1774
1412
  }
1775
1413
  .elb-explorer-tab-actions {
1776
1414
  margin-left: auto;
1777
- padding-right: 0.5rem;
1415
+ padding-right: 8px;
1778
1416
  }
1779
1417
  .elb-explorer-traffic-lights {
1780
1418
  display: flex;
1781
- gap: 0.5rem;
1782
- padding: 0 1rem;
1419
+ gap: 8px;
1420
+ padding: 0 16px;
1783
1421
  align-items: center;
1784
1422
  }
1785
1423
  .elb-explorer-traffic-light {
1786
- width: 0.75rem;
1787
- height: 0.75rem;
1788
- border-radius: 50%;
1424
+ width: 12px;
1425
+ height: 12px;
1426
+ border-radius: var(--radius-full);
1427
+ background-color: var(--border-strong);
1428
+ }
1429
+ @layer components {
1430
+ .elb-pg {
1431
+ --elb-pg-panel: var(--viz-bg);
1432
+ --elb-pg-bar: color-mix(in srgb, var(--viz-bg) 60%, var(--viz-code-bg));
1433
+ --elb-pg-code: var(--viz-code-bg);
1434
+ --elb-pg-line: var(--viz-surface);
1435
+ --elb-pg-line-2: color-mix( in srgb, var(--viz-surface) 70%, var(--viz-code-bg) );
1436
+ --elb-pg-text: var(--viz-fg);
1437
+ --elb-pg-muted: var(--viz-fg-2);
1438
+ --elb-pg-dim: var(--viz-comment);
1439
+ --elb-pg-code-fg: var(--code-fg);
1440
+ --elb-pg-line-height: 1.75;
1441
+ box-sizing: border-box;
1442
+ max-width: 1320px;
1443
+ margin: 0 auto;
1444
+ padding: 56px var(--gutter) var(--section-y);
1445
+ color: var(--fg);
1446
+ font-family: var(--font-sans);
1447
+ }
1448
+ .elb-pg__head {
1449
+ display: flex;
1450
+ flex-wrap: wrap;
1451
+ align-items: flex-end;
1452
+ justify-content: space-between;
1453
+ gap: 16px 48px;
1454
+ padding-bottom: 28px;
1455
+ }
1456
+ .elb-pg__head > .elb-pg__intro > .elb-eyebrow {
1457
+ margin-bottom: 14px;
1458
+ }
1459
+ .elb-pg__title {
1460
+ margin: 0 0 12px;
1461
+ color: var(--fg);
1462
+ font-family: var(--type-heading-xl-family);
1463
+ font-size: clamp(30px, 3.6vw, var(--type-heading-xl-size));
1464
+ line-height: 1.12;
1465
+ font-weight: var(--type-heading-xl-weight);
1466
+ letter-spacing: -0.02em;
1467
+ text-wrap: balance;
1468
+ }
1469
+ .elb-pg__lead {
1470
+ max-width: 62ch;
1471
+ margin: 0;
1472
+ color: var(--fg-2);
1473
+ font-size: var(--type-title-item-size);
1474
+ line-height: var(--type-body-line-height);
1475
+ text-wrap: pretty;
1476
+ }
1477
+ .elb-pg__reset .elb-icon {
1478
+ width: 15px;
1479
+ height: 15px;
1480
+ }
1481
+ .elb-pg__grid {
1482
+ display: grid;
1483
+ gap: 16px;
1484
+ align-items: stretch;
1485
+ grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) minmax(0, 1fr);
1486
+ grid-template-areas: "comp event mapping" "comp result result";
1487
+ }
1488
+ .elb-pg-panel {
1489
+ display: flex;
1490
+ flex-direction: column;
1491
+ min-width: 0;
1492
+ overflow: hidden;
1493
+ color: var(--elb-pg-text);
1494
+ background: var(--elb-pg-panel);
1495
+ border: 1px solid var(--viz-border);
1496
+ border-radius: var(--radius-lg);
1497
+ }
1498
+ .elb-pg-panel--comp {
1499
+ grid-area: comp;
1500
+ }
1501
+ .elb-pg-panel--event {
1502
+ grid-area: event;
1503
+ }
1504
+ .elb-pg-panel--mapping {
1505
+ grid-area: mapping;
1506
+ }
1507
+ .elb-pg-panel--result {
1508
+ grid-area: result;
1509
+ }
1510
+ .elb-pg-bar {
1511
+ display: flex;
1512
+ align-items: center;
1513
+ gap: 10px;
1514
+ min-height: 46px;
1515
+ padding: 0 8px 0 14px;
1516
+ background: var(--elb-pg-bar);
1517
+ border-bottom: 1px solid var(--elb-pg-line);
1518
+ }
1519
+ .elb-pg-step {
1520
+ flex: none;
1521
+ display: inline-flex;
1522
+ align-items: center;
1523
+ justify-content: center;
1524
+ box-sizing: border-box;
1525
+ width: 20px;
1526
+ height: 20px;
1527
+ border: 1px solid var(--primary);
1528
+ border-radius: var(--radius-full);
1529
+ color: var(--link);
1530
+ font: 600 var(--type-viz-legend-size) var(--font-mono);
1531
+ }
1532
+ .elb-pg-name {
1533
+ margin: 0;
1534
+ color: var(--elb-pg-text);
1535
+ font-family: var(--font-sans);
1536
+ font-size: var(--type-small-size);
1537
+ font-weight: 600;
1538
+ line-height: 1.4;
1539
+ }
1540
+ .elb-pg-meta {
1541
+ color: var(--elb-pg-dim);
1542
+ font: var(--type-product-caption-size) var(--font-mono);
1543
+ }
1544
+ .elb-pg-meta--edit {
1545
+ color: var(--event-entity);
1546
+ }
1547
+ .elb-pg-meta--end {
1548
+ margin-left: auto;
1549
+ padding-right: 8px;
1550
+ }
1551
+ .elb-pg-copy {
1552
+ display: inline-flex;
1553
+ margin-left: auto;
1554
+ padding: 8px;
1555
+ color: var(--elb-pg-muted);
1556
+ background: none;
1557
+ border: 0;
1558
+ border-radius: 6px;
1559
+ cursor: pointer;
1560
+ }
1561
+ .elb-pg-copy:hover:not(:disabled) {
1562
+ color: var(--elb-pg-text);
1563
+ background: var(--elb-pg-line-2);
1564
+ }
1565
+ .elb-pg-copy:disabled {
1566
+ cursor: default;
1567
+ opacity: 0.4;
1568
+ }
1569
+ .elb-pg-tabs {
1570
+ display: flex;
1571
+ gap: 2px;
1572
+ margin-left: 8px;
1573
+ }
1574
+ .elb-pg-tab {
1575
+ padding: 6px 10px;
1576
+ color: var(--elb-pg-muted);
1577
+ background: transparent;
1578
+ border: 0;
1579
+ border-radius: 6px;
1580
+ font: 500 var(--type-product-small-size) var(--font-sans);
1581
+ cursor: pointer;
1582
+ }
1583
+ .elb-pg-tab[aria-selected=true] {
1584
+ color: var(--elb-pg-text);
1585
+ background: var(--elb-pg-line-2);
1586
+ }
1587
+ .elb-pg-pane {
1588
+ display: flex;
1589
+ flex: 1;
1590
+ flex-direction: column;
1591
+ }
1592
+ .elb-pg-chips {
1593
+ display: flex;
1594
+ flex-wrap: wrap;
1595
+ align-items: center;
1596
+ gap: 6px;
1597
+ padding: 10px 14px;
1598
+ border-bottom: 1px solid var(--elb-pg-line-2);
1599
+ }
1600
+ .elb-pg-chips > span {
1601
+ margin-right: 4px;
1602
+ color: var(--elb-pg-dim);
1603
+ font: var(--type-product-caption-size) var(--font-mono);
1604
+ }
1605
+ .elb-pg-chip {
1606
+ --elb-pg-chip: var(--event-entity);
1607
+ display: inline-flex;
1608
+ align-items: center;
1609
+ gap: 6px;
1610
+ padding: 3px 10px;
1611
+ color: var(--elb-pg-muted);
1612
+ background: transparent;
1613
+ border: 1px solid var(--viz-border);
1614
+ border-radius: var(--radius-full);
1615
+ font: 500 var(--type-product-caption-size) var(--font-mono);
1616
+ cursor: pointer;
1617
+ }
1618
+ .elb-pg-chip i {
1619
+ width: 7px;
1620
+ height: 7px;
1621
+ background: var(--viz-line-number);
1622
+ border-radius: var(--radius-full);
1623
+ }
1624
+ .elb-pg-chip[aria-pressed=true] {
1625
+ color: var(--elb-pg-text);
1626
+ background: color-mix(in srgb, var(--viz-fg) 4%, transparent);
1627
+ border-color: var(--elb-pg-chip);
1628
+ }
1629
+ .elb-pg-chip[aria-pressed=true] i {
1630
+ background: var(--elb-pg-chip);
1631
+ }
1632
+ .elb-pg-chip--property {
1633
+ --elb-pg-chip: var(--event-property);
1634
+ }
1635
+ .elb-pg-chip--action {
1636
+ --elb-pg-chip: var(--event-action);
1637
+ }
1638
+ .elb-pg-chip--context {
1639
+ --elb-pg-chip: var(--event-context);
1640
+ }
1641
+ .elb-pg-chip--globals {
1642
+ --elb-pg-chip: var(--event-globals);
1643
+ }
1644
+ .elb-pg-preview {
1645
+ flex: 1;
1646
+ min-height: 440px;
1647
+ padding: 24px 18px;
1648
+ color: var(--elb-pg-text);
1649
+ background: var(--elb-pg-code);
1650
+ font-family: var(--font-sans);
1651
+ }
1652
+ .elb-pg-editor {
1653
+ position: relative;
1654
+ flex: 1;
1655
+ background: var(--elb-pg-code);
1656
+ }
1657
+ .elb-pg-editor pre,
1658
+ .elb-pg-editor textarea {
1659
+ position: absolute;
1660
+ inset: 0;
1661
+ box-sizing: border-box;
1662
+ margin: 0;
1663
+ padding: 14px 16px;
1664
+ font: var(--type-code-step-size)/var(--elb-pg-line-height) var(--font-mono);
1665
+ white-space: pre;
1666
+ tab-size: 2;
1667
+ }
1668
+ .elb-pg-editor pre {
1669
+ overflow: hidden;
1670
+ color: var(--elb-pg-code-fg);
1671
+ background: transparent;
1672
+ border-radius: 0;
1673
+ pointer-events: none;
1674
+ }
1675
+ .elb-pg-editor pre > div {
1676
+ min-height: calc(var(--elb-pg-line-height) * 1em);
1677
+ }
1678
+ .elb-pg-editor textarea {
1679
+ width: 100%;
1680
+ height: 100%;
1681
+ overflow: auto;
1682
+ color: transparent;
1683
+ background: transparent;
1684
+ border: 0;
1685
+ outline: none;
1686
+ resize: none;
1687
+ caret-color: var(--elb-pg-text);
1688
+ }
1689
+ .elb-pg-editor textarea::selection {
1690
+ color: transparent;
1691
+ background: color-mix(in srgb, var(--primary) 35%, transparent);
1692
+ }
1693
+ .elb-pg-editor textarea:focus-visible {
1694
+ box-shadow: inset 0 0 0 2px var(--focus);
1695
+ }
1696
+ .elb-pg-editor__on {
1697
+ background: color-mix(in srgb, var(--primary) 8%, transparent);
1698
+ box-shadow: inset 2px 0 0 var(--primary);
1699
+ }
1700
+ .elb-pg-editor--tall {
1701
+ min-height: 480px;
1702
+ }
1703
+ .elb-pg-status {
1704
+ padding: 10px 14px;
1705
+ color: var(--elb-pg-dim);
1706
+ border-bottom: 1px solid var(--elb-pg-line-2);
1707
+ font: var(--type-product-caption-size) var(--font-mono);
1708
+ }
1709
+ .elb-pg-note {
1710
+ padding: 9px 14px;
1711
+ color: var(--event-context);
1712
+ background: color-mix(in srgb, var(--event-context) 8%, transparent);
1713
+ border-bottom: 1px solid var(--elb-pg-line-2);
1714
+ font-size: var(--type-product-small-size);
1715
+ }
1716
+ .elb-pg-error {
1717
+ padding: 8px 14px;
1718
+ color: var(--event-property);
1719
+ background: color-mix(in srgb, var(--event-property) 10%, transparent);
1720
+ border-bottom: 1px solid var(--elb-pg-line-2);
1721
+ font: var(--type-product-caption-size) var(--font-mono);
1722
+ }
1723
+ .elb-pg-scroll {
1724
+ flex: none;
1725
+ box-sizing: border-box;
1726
+ height: 400px;
1727
+ min-height: 0;
1728
+ overflow: auto;
1729
+ padding: 12px 0;
1730
+ color: var(--elb-pg-code-fg);
1731
+ background: var(--elb-pg-code);
1732
+ font: var(--type-code-step-size)/var(--elb-pg-line-height) var(--font-mono);
1733
+ }
1734
+ .elb-pg-scroll:focus-visible {
1735
+ outline: 2px solid var(--focus);
1736
+ outline-offset: -2px;
1737
+ }
1738
+ .elb-pg-panel--event .elb-pg-scroll,
1739
+ .elb-pg-scroll--map {
1740
+ flex-grow: 1;
1741
+ }
1742
+ .elb-pg-scroll--map {
1743
+ position: relative;
1744
+ height: 446px;
1745
+ padding: 0;
1746
+ overflow: hidden;
1747
+ }
1748
+ .elb-pg-out {
1749
+ min-height: 120px;
1750
+ padding: 12px 0;
1751
+ color: var(--elb-pg-code-fg);
1752
+ background: var(--elb-pg-code);
1753
+ font: var(--type-code-step-size)/var(--elb-pg-line-height) var(--font-mono);
1754
+ }
1755
+ .elb-pg-ln {
1756
+ padding-right: 14px;
1757
+ text-indent: -14px;
1758
+ white-space: pre-wrap;
1759
+ word-break: break-word;
1760
+ }
1761
+ .elb-pg-sent {
1762
+ display: inline-flex;
1763
+ align-items: center;
1764
+ gap: 6px;
1765
+ color: var(--event-entity);
1766
+ font: var(--type-product-caption-size) var(--font-mono);
1767
+ }
1768
+ .elb-pg-sent::before {
1769
+ content: "";
1770
+ width: 7px;
1771
+ height: 7px;
1772
+ background: currentColor;
1773
+ border-radius: var(--radius-full);
1774
+ }
1775
+ .elb-pg-c-key,
1776
+ .elb-pg-c-globals {
1777
+ color: var(--event-globals);
1778
+ }
1779
+ .elb-pg-c-str {
1780
+ color: var(--syntax-string);
1781
+ }
1782
+ .elb-pg-c-num {
1783
+ color: var(--syntax-number);
1784
+ }
1785
+ .elb-pg-c-punct {
1786
+ color: var(--viz-fg-2);
1787
+ }
1788
+ .elb-pg-c-tag,
1789
+ .elb-pg-c-property {
1790
+ color: var(--event-property);
1791
+ }
1792
+ .elb-pg-c-kw,
1793
+ .elb-pg-c-action {
1794
+ color: var(--event-action);
1795
+ }
1796
+ .elb-pg-c-fn {
1797
+ color: var(--syntax-function);
1798
+ }
1799
+ .elb-pg-c-dim {
1800
+ color: var(--elb-pg-dim);
1801
+ }
1802
+ .elb-pg-c-entity {
1803
+ color: var(--event-entity);
1804
+ }
1805
+ .elb-pg-c-context {
1806
+ color: var(--event-context);
1807
+ }
1808
+ @media (max-width: 1127px) {
1809
+ .elb-pg__grid {
1810
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
1811
+ grid-template-areas: "comp event" "comp mapping" "result result";
1812
+ }
1813
+ .elb-pg-scroll,
1814
+ .elb-pg-scroll--map {
1815
+ height: 240px;
1816
+ }
1817
+ }
1818
+ @media (max-width: 747px) {
1819
+ .elb-pg__grid {
1820
+ grid-template-columns: minmax(0, 1fr);
1821
+ grid-template-areas: "comp" "event" "mapping" "result";
1822
+ }
1823
+ .elb-pg-scroll,
1824
+ .elb-pg-scroll--map {
1825
+ height: 360px;
1826
+ }
1827
+ }
1828
+ }
1829
+ @layer components {
1830
+ .elb-btn {
1831
+ box-sizing: border-box;
1832
+ display: inline-flex;
1833
+ align-items: center;
1834
+ justify-content: center;
1835
+ gap: 6px;
1836
+ font-family: var(--type-body-family);
1837
+ font-weight: 600;
1838
+ font-size: var(--type-body-size);
1839
+ line-height: var(--type-body-line-height);
1840
+ padding: 12px 24px;
1841
+ border-radius: var(--radius-md);
1842
+ border: 1px solid transparent;
1843
+ cursor: pointer;
1844
+ text-decoration: none;
1845
+ transition: border-color var(--motion) var(--ease), filter var(--motion) var(--ease);
1846
+ }
1847
+ .elb-btn:hover {
1848
+ text-decoration: none;
1849
+ }
1850
+ .elb-btn--primary {
1851
+ background: var(--primary);
1852
+ color: var(--on-primary);
1853
+ }
1854
+ .elb-btn--primary:hover {
1855
+ filter: brightness(1.08);
1856
+ color: var(--on-primary);
1857
+ }
1858
+ .elb-btn--secondary {
1859
+ background: var(--surface);
1860
+ color: var(--fg);
1861
+ border-color: var(--border);
1862
+ }
1863
+ .elb-btn--secondary:hover {
1864
+ border-color: var(--primary);
1865
+ color: var(--fg);
1866
+ }
1867
+ .elb-btn--block {
1868
+ width: 100%;
1869
+ }
1870
+ }
1871
+ @layer components {
1872
+ .elb-code-inline {
1873
+ font-family: var(--font-mono);
1874
+ font-size: var(--type-code-inline-size);
1875
+ background: var(--surface-2);
1876
+ border: 1px solid var(--border);
1877
+ padding: 0.1em 0.4em;
1878
+ border-radius: var(--radius-sm);
1879
+ color: var(--fg);
1880
+ }
1881
+ }
1882
+ @layer components {
1883
+ .elb-legend {
1884
+ display: flex;
1885
+ flex-wrap: wrap;
1886
+ gap: 14px;
1887
+ font-family: var(--font-viz-mono);
1888
+ font-size: var(--type-viz-legend-size);
1889
+ color: var(--viz-fg-2);
1890
+ background: var(--viz-bg);
1891
+ padding: 12px 16px;
1892
+ border-radius: var(--radius-lg);
1893
+ }
1894
+ .elb-legend__item {
1895
+ display: flex;
1896
+ align-items: center;
1897
+ gap: 6px;
1898
+ }
1899
+ .elb-legend__swatch {
1900
+ display: inline-block;
1901
+ width: 9px;
1902
+ height: 9px;
1903
+ border-radius: 2px;
1904
+ }
1789
1905
  }
1790
- .elb-explorer-traffic-light--red {
1791
- background-color: #ff5f56;
1906
+ @layer components {
1907
+ .elb-icon {
1908
+ display: inline-block;
1909
+ flex: none;
1910
+ vertical-align: middle;
1911
+ }
1912
+ .elb-icon--check {
1913
+ color: var(--primary);
1914
+ }
1915
+ }
1916
+ @layer components {
1917
+ .elb-eyebrow {
1918
+ margin: 0;
1919
+ color: var(--link);
1920
+ font-family: var(--type-eyebrow-family);
1921
+ font-size: var(--type-eyebrow-size);
1922
+ line-height: var(--type-eyebrow-line-height);
1923
+ font-weight: var(--type-eyebrow-weight);
1924
+ letter-spacing: var(--type-eyebrow-tracking);
1925
+ text-transform: uppercase;
1926
+ }
1927
+ .elb-eyebrow--label {
1928
+ font-family: var(--type-label-family);
1929
+ font-size: var(--type-label-size);
1930
+ line-height: var(--type-label-line-height);
1931
+ font-weight: var(--type-label-weight);
1932
+ letter-spacing: var(--type-label-tracking);
1933
+ }
1934
+ .elb-eyebrow--muted {
1935
+ color: var(--fg-3);
1936
+ }
1937
+ }
1938
+ @layer components {
1939
+ .elb-stat {
1940
+ box-sizing: border-box;
1941
+ display: flex;
1942
+ flex-direction: column;
1943
+ gap: 6px;
1944
+ padding: 16px;
1945
+ background: var(--surface-2);
1946
+ border: 1px solid var(--border);
1947
+ border-radius: var(--radius-faq);
1948
+ }
1949
+ .elb-stat__value {
1950
+ display: flex;
1951
+ color: var(--primary);
1952
+ font-family: var(--type-display-family);
1953
+ font-size: var(--type-footer-statement-size);
1954
+ line-height: 1;
1955
+ font-weight: var(--type-display-weight);
1956
+ letter-spacing: -0.03em;
1957
+ }
1958
+ .elb-stat__label {
1959
+ margin: 0;
1960
+ color: var(--fg-2);
1961
+ font-family: var(--type-small-family);
1962
+ font-size: var(--type-small-size);
1963
+ line-height: var(--type-small-line-height);
1964
+ font-weight: 400;
1965
+ }
1966
+ }
1967
+ @layer components {
1968
+ .elb-text {
1969
+ margin: 0;
1970
+ color: var(--fg-2);
1971
+ font-family: var(--type-body-family);
1972
+ font-size: var(--type-body-size);
1973
+ line-height: var(--type-body-line-height);
1974
+ font-weight: var(--type-body-weight);
1975
+ text-wrap: pretty;
1976
+ }
1977
+ .elb-text--lg {
1978
+ font-family: var(--type-body-lg-family);
1979
+ font-size: var(--type-body-lg-size);
1980
+ line-height: var(--type-body-lg-line-height);
1981
+ font-weight: var(--type-body-lg-weight);
1982
+ }
1983
+ .elb-text--fg {
1984
+ color: var(--fg);
1985
+ }
1986
+ }
1987
+ @layer components {
1988
+ .elb-text-link {
1989
+ color: var(--link);
1990
+ font-weight: 500;
1991
+ text-decoration: none;
1992
+ transition: color var(--motion) var(--ease);
1993
+ }
1994
+ .elb-text-link:hover {
1995
+ text-decoration: underline;
1996
+ }
1997
+ .elb-text-link--muted {
1998
+ color: var(--fg-2);
1999
+ }
2000
+ .elb-text-link--muted:hover {
2001
+ color: var(--fg);
2002
+ }
2003
+ }
2004
+ @layer components {
2005
+ .elb-card {
2006
+ position: relative;
2007
+ box-sizing: border-box;
2008
+ display: flex;
2009
+ flex-direction: column;
2010
+ gap: var(--space-3-5);
2011
+ min-width: 0;
2012
+ color: var(--fg);
2013
+ background: var(--surface);
2014
+ border: 1px solid var(--border);
2015
+ border-radius: var(--radius-lg);
2016
+ transition: border-color var(--motion) var(--ease);
2017
+ }
2018
+ .elb-card--pad-sm {
2019
+ padding: var(--card-pad-sm);
2020
+ }
2021
+ .elb-card--pad-md {
2022
+ padding: var(--card-pad);
2023
+ }
2024
+ .elb-card--pad-lg {
2025
+ padding: 32px;
2026
+ }
2027
+ .elb-card--radius-xl {
2028
+ border-radius: var(--radius-xl);
2029
+ }
2030
+ .elb-card--hover:not(.elb-card--highlight):hover {
2031
+ border-color: color-mix(in srgb, var(--primary) 50%, var(--border));
2032
+ }
2033
+ .elb-card--highlight {
2034
+ border-color: var(--primary);
2035
+ box-shadow: var(--plan-highlight);
2036
+ }
2037
+ .elb-card--glow {
2038
+ overflow: hidden;
2039
+ }
2040
+ .elb-card--glow::after {
2041
+ content: "";
2042
+ position: absolute;
2043
+ right: -120px;
2044
+ top: -160px;
2045
+ width: 360px;
2046
+ height: 360px;
2047
+ background:
2048
+ radial-gradient(
2049
+ closest-side,
2050
+ var(--glow),
2051
+ transparent 72%);
2052
+ pointer-events: none;
2053
+ }
2054
+ .elb-card--glow > * {
2055
+ position: relative;
2056
+ z-index: var(--z-raised);
2057
+ }
2058
+ }
2059
+ @layer components {
2060
+ .elb-cmd {
2061
+ display: inline-flex;
2062
+ align-items: center;
2063
+ gap: var(--space-3);
2064
+ padding: 12px 18px;
2065
+ color: var(--fg);
2066
+ background: var(--surface);
2067
+ border: 1px solid var(--border);
2068
+ border-radius: var(--radius-md);
2069
+ font-family: var(--type-code-command-family);
2070
+ font-size: var(--type-code-command-size);
2071
+ line-height: var(--type-code-command-line-height);
2072
+ font-weight: var(--type-code-command-weight);
2073
+ cursor: pointer;
2074
+ transition: border-color var(--motion) var(--ease);
2075
+ }
2076
+ .elb-cmd:hover {
2077
+ border-color: var(--primary);
2078
+ }
2079
+ .elb-cmd__prompt {
2080
+ color: var(--fg-3);
2081
+ }
2082
+ .elb-cmd__icon {
2083
+ display: inline-flex;
2084
+ color: var(--fg-3);
2085
+ }
2086
+ .elb-cmd__icon--done {
2087
+ color: var(--primary);
2088
+ }
2089
+ .elb-cmd__status {
2090
+ position: absolute;
2091
+ width: 1px;
2092
+ height: 1px;
2093
+ margin: -1px;
2094
+ padding: 0;
2095
+ overflow: hidden;
2096
+ clip-path: inset(50%);
2097
+ white-space: nowrap;
2098
+ border: 0;
2099
+ }
2100
+ }
2101
+ @layer components {
2102
+ .elb-photo {
2103
+ display: flex;
2104
+ align-items: center;
2105
+ justify-content: center;
2106
+ overflow: hidden;
2107
+ color: var(--fg-3);
2108
+ background:
2109
+ repeating-linear-gradient(
2110
+ 45deg,
2111
+ var(--surface-2) 0 6px,
2112
+ var(--border) 6px 12px);
2113
+ font-family: var(--type-viz-code-family);
2114
+ font-size: var(--type-viz-legend-size);
2115
+ }
2116
+ .elb-photo--viz {
2117
+ color: var(--viz-comment);
2118
+ background:
2119
+ repeating-linear-gradient(
2120
+ 45deg,
2121
+ var(--viz-surface) 0 6px,
2122
+ var(--viz-border) 6px 12px);
2123
+ }
2124
+ }
2125
+ @layer components {
2126
+ .elb-checklist {
2127
+ display: flex;
2128
+ flex-wrap: wrap;
2129
+ gap: 10px 28px;
2130
+ margin: 0;
2131
+ padding: 0;
2132
+ list-style: none;
2133
+ color: var(--fg-2);
2134
+ font-family: var(--type-ui-family);
2135
+ font-size: var(--type-ui-size);
2136
+ line-height: var(--type-ui-line-height);
2137
+ font-weight: 400;
2138
+ }
2139
+ .elb-checklist--center {
2140
+ justify-content: center;
2141
+ }
2142
+ .elb-checklist--stack {
2143
+ flex-direction: column;
2144
+ flex-wrap: nowrap;
2145
+ gap: 9px;
2146
+ }
2147
+ .elb-checklist__item {
2148
+ display: flex;
2149
+ align-items: center;
2150
+ gap: var(--space-2);
2151
+ }
2152
+ .elb-checklist--stack > .elb-checklist__item {
2153
+ align-items: flex-start;
2154
+ gap: 10px;
2155
+ }
2156
+ .elb-checklist--stack > .elb-checklist__item > .elb-icon {
2157
+ margin-top: 4px;
2158
+ }
2159
+ }
2160
+ @layer components {
2161
+ .elb-sh {
2162
+ display: flex;
2163
+ flex-direction: column;
2164
+ max-width: 760px;
2165
+ margin: 0;
2166
+ }
2167
+ .elb-sh > .elb-eyebrow {
2168
+ margin-bottom: 16px;
2169
+ }
2170
+ .elb-sh--center {
2171
+ align-items: center;
2172
+ margin: 0 auto;
2173
+ text-align: center;
2174
+ }
2175
+ .elb-sh__title {
2176
+ margin: 0;
2177
+ color: var(--fg);
2178
+ text-wrap: balance;
2179
+ }
2180
+ .elb-sh__title--display {
2181
+ max-width: 20ch;
2182
+ font-family: var(--type-display-family);
2183
+ font-size: clamp(38px, 6vw, var(--type-display-size));
2184
+ line-height: var(--type-display-line-height);
2185
+ font-weight: var(--type-display-weight);
2186
+ letter-spacing: var(--type-display-tracking);
2187
+ }
2188
+ .elb-sh__title--lg {
2189
+ font-family: var(--type-heading-lg-family);
2190
+ font-size: clamp(28px, 3.6vw, var(--type-heading-lg-size));
2191
+ line-height: var(--type-heading-lg-line-height);
2192
+ font-weight: var(--type-heading-lg-weight);
2193
+ letter-spacing: var(--type-heading-lg-tracking);
2194
+ }
2195
+ .elb-sh__title--md {
2196
+ font-family: var(--type-heading-md-family);
2197
+ font-size: clamp(26px, 3.2vw, var(--type-heading-md-size));
2198
+ line-height: var(--type-heading-md-line-height);
2199
+ font-weight: var(--type-heading-md-weight);
2200
+ letter-spacing: var(--type-heading-md-tracking);
2201
+ }
2202
+ .elb-sh__highlight {
2203
+ color: var(--primary);
2204
+ }
2205
+ .elb-sh__lead {
2206
+ margin: 14px 0 0;
2207
+ color: var(--fg-2);
2208
+ font-family: var(--type-lead-family);
2209
+ font-size: var(--type-title-item-size);
2210
+ line-height: var(--type-lead-line-height);
2211
+ font-weight: var(--type-lead-weight);
2212
+ }
2213
+ .elb-sh__lead--hero {
2214
+ max-width: 58ch;
2215
+ font-size: clamp(18px, 2vw, var(--type-lead-size));
2216
+ }
2217
+ }
2218
+ @layer components {
2219
+ .elb-problem-card {
2220
+ gap: var(--space-2);
2221
+ }
2222
+ .elb-problem-card__title {
2223
+ display: flex;
2224
+ align-items: baseline;
2225
+ gap: var(--space-3);
2226
+ margin: 0;
2227
+ color: var(--fg);
2228
+ font-family: var(--type-title-card-family);
2229
+ font-size: var(--type-title-card-size);
2230
+ line-height: var(--type-title-card-line-height);
2231
+ font-weight: var(--type-title-card-weight);
2232
+ }
2233
+ .elb-problem-card__number {
2234
+ color: var(--link);
2235
+ font-family: var(--type-code-step-family);
2236
+ font-size: var(--type-code-step-size);
2237
+ line-height: var(--type-code-step-line-height);
2238
+ font-weight: var(--type-code-step-weight);
2239
+ }
2240
+ .elb-problem-card__text {
2241
+ margin: 0;
2242
+ color: var(--fg-2);
2243
+ font-family: var(--type-body-family);
2244
+ font-size: var(--type-body-size);
2245
+ line-height: var(--type-body-line-height);
2246
+ font-weight: var(--type-body-weight);
2247
+ }
2248
+ }
2249
+ @layer components {
2250
+ .elb-feature {
2251
+ display: grid;
2252
+ grid-template-columns: 20px minmax(0, 1fr);
2253
+ gap: var(--space-3-5);
2254
+ align-items: start;
2255
+ }
2256
+ .elb-feature > .elb-icon {
2257
+ margin-top: 3px;
2258
+ }
2259
+ .elb-feature__title {
2260
+ margin: 0 0 var(--space-2);
2261
+ color: var(--fg);
2262
+ font-family: var(--type-title-item-family);
2263
+ font-size: var(--type-title-item-size);
2264
+ line-height: var(--type-title-item-line-height);
2265
+ font-weight: var(--type-title-item-weight);
2266
+ }
2267
+ .elb-feature__text {
2268
+ margin: 0 0 var(--space-2);
2269
+ color: var(--fg-2);
2270
+ font-family: var(--type-body-family);
2271
+ font-size: var(--type-body-size);
2272
+ line-height: var(--type-body-line-height);
2273
+ font-weight: var(--type-body-weight);
2274
+ text-wrap: pretty;
2275
+ }
2276
+ .elb-feature__link {
2277
+ font-family: var(--type-small-family);
2278
+ font-size: var(--type-small-size);
2279
+ line-height: var(--type-small-line-height);
2280
+ font-weight: 500;
2281
+ }
2282
+ }
2283
+ @layer components {
2284
+ .elb-faq {
2285
+ box-sizing: border-box;
2286
+ max-width: 900px;
2287
+ color: var(--fg);
2288
+ background: var(--surface);
2289
+ border: 1px solid var(--border);
2290
+ border-radius: var(--radius-faq);
2291
+ }
2292
+ .elb-faq + .elb-faq {
2293
+ margin-top: var(--space-3);
2294
+ }
2295
+ .elb-faq__question {
2296
+ display: flex;
2297
+ justify-content: space-between;
2298
+ gap: 16px;
2299
+ padding: 18px 22px;
2300
+ list-style: none;
2301
+ cursor: pointer;
2302
+ color: var(--fg);
2303
+ font-family: var(--type-body-lg-family);
2304
+ font-size: var(--type-body-lg-size);
2305
+ line-height: var(--type-body-lg-line-height);
2306
+ font-weight: 600;
2307
+ transition: color var(--motion) var(--ease);
2308
+ }
2309
+ .elb-faq__question::-webkit-details-marker {
2310
+ display: none;
2311
+ }
2312
+ .elb-faq__question::after {
2313
+ content: "+";
2314
+ flex: none;
2315
+ color: var(--fg-3);
2316
+ font-size: var(--type-lead-size);
2317
+ line-height: 1;
2318
+ }
2319
+ .elb-faq__question:hover {
2320
+ color: var(--link);
2321
+ }
2322
+ .elb-faq[open] > .elb-faq__question::after {
2323
+ content: "\2212";
2324
+ }
2325
+ .elb-faq__answer {
2326
+ display: flex;
2327
+ flex-direction: column;
2328
+ gap: var(--space-3);
2329
+ padding: 16px 22px 20px;
2330
+ color: var(--fg-2);
2331
+ border-top: 1px solid var(--border);
2332
+ font-family: var(--type-body-family);
2333
+ font-size: var(--type-body-size);
2334
+ line-height: var(--type-body-line-height);
2335
+ font-weight: var(--type-body-weight);
2336
+ }
2337
+ .elb-faq__answer > p {
2338
+ max-width: 72ch;
2339
+ margin: 0;
2340
+ }
2341
+ }
2342
+ @layer components {
2343
+ .elb-plan__title {
2344
+ margin: 0;
2345
+ color: var(--fg);
2346
+ font-family: var(--type-title-plan-family);
2347
+ font-size: var(--type-title-plan-size);
2348
+ line-height: var(--type-title-plan-line-height);
2349
+ font-weight: var(--type-title-plan-weight);
2350
+ letter-spacing: var(--type-title-plan-tracking);
2351
+ }
2352
+ .elb-plan__text {
2353
+ flex: 1;
2354
+ margin: 0;
2355
+ color: var(--fg-2);
2356
+ font-family: var(--type-body-family);
2357
+ font-size: var(--type-body-size);
2358
+ line-height: var(--type-body-line-height);
2359
+ font-weight: var(--type-body-weight);
2360
+ }
2361
+ }
2362
+ @layer components {
2363
+ .elb-case-card__title {
2364
+ margin: 0;
2365
+ color: var(--fg);
2366
+ font-family: var(--type-title-plan-family);
2367
+ font-size: var(--type-title-plan-size);
2368
+ line-height: var(--type-title-plan-line-height);
2369
+ font-weight: var(--type-title-plan-weight);
2370
+ letter-spacing: var(--type-title-plan-tracking);
2371
+ text-wrap: balance;
2372
+ }
2373
+ .elb-case-card__text {
2374
+ margin: 0;
2375
+ color: var(--fg-2);
2376
+ font-family: var(--type-body-family);
2377
+ font-size: var(--type-body-size);
2378
+ line-height: var(--type-body-line-height);
2379
+ font-weight: var(--type-body-weight);
2380
+ }
2381
+ .elb-case-card__stats {
2382
+ display: grid;
2383
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 130px), 1fr));
2384
+ gap: 10px;
2385
+ }
1792
2386
  }
1793
- .elb-explorer-traffic-light--yellow {
1794
- background-color: #ffbd2e;
2387
+ @layer components {
2388
+ .elb-highlight-card__title {
2389
+ margin: 0;
2390
+ color: var(--fg);
2391
+ font-family: var(--type-kicker-lg-family);
2392
+ font-size: clamp(22px, 2.4vw, var(--type-kicker-lg-size));
2393
+ line-height: var(--type-kicker-lg-line-height);
2394
+ font-weight: var(--type-kicker-lg-weight);
2395
+ letter-spacing: var(--type-kicker-lg-tracking);
2396
+ text-wrap: balance;
2397
+ }
2398
+ .elb-highlight-card__text {
2399
+ flex: 1;
2400
+ margin: 0;
2401
+ color: var(--fg-2);
2402
+ font-family: var(--type-body-lg-family);
2403
+ font-size: var(--type-body-lg-size);
2404
+ line-height: var(--type-body-lg-line-height);
2405
+ font-weight: var(--type-body-lg-weight);
2406
+ text-wrap: pretty;
2407
+ }
2408
+ .elb-highlight-card__cta {
2409
+ align-self: flex-start;
2410
+ margin-top: 6px;
2411
+ padding: 10px 18px;
2412
+ background: var(--surface-2);
2413
+ font-family: var(--type-ui-family);
2414
+ font-size: var(--type-ui-size);
2415
+ line-height: var(--type-ui-line-height);
2416
+ font-weight: 600;
2417
+ }
2418
+ .elb-highlight-card__cta:hover {
2419
+ border-color: var(--primary);
2420
+ color: var(--fg);
2421
+ }
1795
2422
  }
1796
- .elb-explorer-traffic-light--green {
1797
- background-color: #27c93f;
2423
+ @layer components {
2424
+ .elb-browser {
2425
+ display: flex;
2426
+ flex-direction: column;
2427
+ min-width: 0;
2428
+ overflow: hidden;
2429
+ color: var(--fg);
2430
+ background: var(--surface);
2431
+ border: 1px solid var(--border-strong);
2432
+ border-radius: var(--radius-lg);
2433
+ }
2434
+ .elb-browser__bar {
2435
+ container: elb-browser-bar/inline-size;
2436
+ display: flex;
2437
+ align-items: center;
2438
+ gap: var(--space-3);
2439
+ padding: 10px 12px;
2440
+ border-bottom: 1px solid var(--border);
2441
+ }
2442
+ .elb-browser__dots {
2443
+ display: flex;
2444
+ flex: none;
2445
+ gap: 7px;
2446
+ }
2447
+ .elb-browser__dots > span {
2448
+ width: 10px;
2449
+ height: 10px;
2450
+ background: var(--border-strong);
2451
+ border-radius: var(--radius-full);
2452
+ }
2453
+ .elb-browser__address {
2454
+ display: flex;
2455
+ flex: 1 1 auto;
2456
+ align-items: center;
2457
+ gap: var(--space-2);
2458
+ min-width: 0;
2459
+ padding: 5px 12px;
2460
+ color: var(--fg-2);
2461
+ background: var(--bg-2);
2462
+ border: 1px solid var(--border);
2463
+ border-radius: var(--radius-full);
2464
+ font-family: var(--type-small-family);
2465
+ font-size: var(--type-small-size);
2466
+ line-height: var(--type-small-line-height);
2467
+ }
2468
+ .elb-browser__url {
2469
+ min-width: 0;
2470
+ overflow: hidden;
2471
+ text-overflow: ellipsis;
2472
+ white-space: nowrap;
2473
+ }
2474
+ .elb-browser__reload,
2475
+ .elb-browser__actions > :is(a, button),
2476
+ .elb-browser__bookmark {
2477
+ display: inline-flex;
2478
+ flex: none;
2479
+ align-items: center;
2480
+ color: var(--fg-2);
2481
+ background: transparent;
2482
+ border: 1px solid transparent;
2483
+ text-decoration: none;
2484
+ cursor: pointer;
2485
+ transition:
2486
+ color var(--motion) var(--ease),
2487
+ background var(--motion) var(--ease),
2488
+ border-color var(--motion) var(--ease);
2489
+ }
2490
+ .elb-browser__reload:hover:not(:disabled),
2491
+ .elb-browser__actions > :is(a, button):hover:not(:disabled),
2492
+ .elb-browser__bookmark:hover:not(:disabled) {
2493
+ color: var(--fg);
2494
+ background: var(--surface-2);
2495
+ }
2496
+ .elb-browser__reload:disabled,
2497
+ .elb-browser__actions > :is(a, button):disabled,
2498
+ .elb-browser__bookmark:disabled {
2499
+ cursor: default;
2500
+ }
2501
+ .elb-browser__reload,
2502
+ .elb-browser__actions > :is(a, button) {
2503
+ justify-content: center;
2504
+ padding: 6px;
2505
+ border-radius: var(--radius-sm);
2506
+ }
2507
+ .elb-browser__actions {
2508
+ display: flex;
2509
+ flex: none;
2510
+ align-items: center;
2511
+ gap: 4px;
2512
+ }
2513
+ .elb-browser__bookmarks {
2514
+ display: flex;
2515
+ gap: 4px;
2516
+ padding: 6px 12px;
2517
+ overflow-x: auto;
2518
+ border-bottom: 1px solid var(--border);
2519
+ }
2520
+ .elb-browser__bookmark {
2521
+ gap: 6px;
2522
+ padding: 4px 10px;
2523
+ border-radius: var(--radius-full);
2524
+ font-family: var(--type-small-family);
2525
+ font-size: var(--type-small-size);
2526
+ line-height: var(--type-small-line-height);
2527
+ white-space: nowrap;
2528
+ }
2529
+ .elb-browser__bookmark--active {
2530
+ color: var(--fg);
2531
+ background: var(--surface-2);
2532
+ border-color: var(--border-strong);
2533
+ }
2534
+ .elb-browser__viewport {
2535
+ position: relative;
2536
+ flex: 1 1 auto;
2537
+ min-height: 0;
2538
+ overflow: auto;
2539
+ background: var(--bg);
2540
+ }
2541
+ .elb-browser__viewport > iframe {
2542
+ display: block;
2543
+ width: 100%;
2544
+ height: 100%;
2545
+ border: 0;
2546
+ }
2547
+ @container elb-browser-bar (max-width: 479px) {
2548
+ .elb-browser__dots {
2549
+ display: none;
2550
+ }
2551
+ }
2552
+ }
2553
+ @layer components {
2554
+ .elb-quickstart {
2555
+ display: flex;
2556
+ flex-direction: column;
2557
+ align-items: flex-start;
2558
+ gap: 32px;
2559
+ }
2560
+ .elb-quickstart__steps {
2561
+ display: grid;
2562
+ grid-auto-flow: column;
2563
+ grid-auto-columns: minmax(0, 1fr) 84px;
2564
+ gap: 0 16px;
2565
+ align-items: start;
2566
+ align-self: stretch;
2567
+ margin: 0;
2568
+ padding: 0;
2569
+ list-style: none;
2570
+ }
2571
+ .elb-quickstart__step {
2572
+ display: flex;
2573
+ flex-direction: column;
2574
+ gap: var(--space-3-5);
2575
+ min-width: 0;
2576
+ margin: 0;
2577
+ }
2578
+ .elb-quickstart__head {
2579
+ display: flex;
2580
+ align-items: center;
2581
+ gap: var(--space-3);
2582
+ }
2583
+ .elb-quickstart__num {
2584
+ flex: none;
2585
+ display: inline-flex;
2586
+ align-items: center;
2587
+ justify-content: center;
2588
+ box-sizing: border-box;
2589
+ width: 32px;
2590
+ height: 32px;
2591
+ border: 1px solid var(--primary);
2592
+ border-radius: var(--radius-full);
2593
+ color: var(--link);
2594
+ font-family: var(--font-mono);
2595
+ font-size: var(--type-small-size);
2596
+ font-weight: 600;
2597
+ }
2598
+ .elb-quickstart__title {
2599
+ margin: 0;
2600
+ color: var(--fg);
2601
+ font-family: var(--type-title-card-family);
2602
+ font-size: var(--type-title-card-size);
2603
+ font-weight: var(--type-title-card-weight);
2604
+ line-height: 1.3;
2605
+ }
2606
+ .elb-quickstart__copy {
2607
+ margin: 0;
2608
+ color: var(--fg-2);
2609
+ font-family: var(--type-body-family);
2610
+ font-size: var(--type-body-size);
2611
+ line-height: var(--type-body-line-height);
2612
+ text-wrap: pretty;
2613
+ }
2614
+ .elb-quickstart__arrow {
2615
+ display: flex;
2616
+ align-items: center;
2617
+ justify-content: center;
2618
+ height: 32px;
2619
+ margin: 0;
2620
+ color: var(--primary);
2621
+ }
2622
+ .elb-quickstart__arrow > svg {
2623
+ overflow: visible;
2624
+ }
2625
+ .elb-quickstart__arrow--wave > svg {
2626
+ transform: rotate(-4deg);
2627
+ }
2628
+ .elb-quickstart__arrow--loop > svg {
2629
+ transform: rotate(3deg);
2630
+ }
2631
+ @media (max-width: 807px) {
2632
+ .elb-quickstart__steps {
2633
+ grid-auto-flow: row;
2634
+ grid-template-columns: minmax(0, 1fr);
2635
+ gap: 4px;
2636
+ }
2637
+ .elb-quickstart__arrow {
2638
+ height: 64px;
2639
+ }
2640
+ .elb-quickstart__arrow--wave > svg {
2641
+ transform: rotate(90deg);
2642
+ }
2643
+ .elb-quickstart__arrow--loop > svg {
2644
+ transform: rotate(90deg) scaleY(-1);
2645
+ }
2646
+ }
2647
+ }
2648
+ @layer components {
2649
+ .elb-section {
2650
+ box-sizing: border-box;
2651
+ padding: var(--section-y) 0;
2652
+ color: var(--fg);
2653
+ background: var(--bg);
2654
+ border-top: 1px solid var(--border);
2655
+ font-family: var(--type-body-family);
2656
+ font-size: var(--type-body-size);
2657
+ line-height: var(--type-body-line-height);
2658
+ }
2659
+ .elb-section--alt {
2660
+ background: var(--bg-2);
2661
+ }
2662
+ .elb-section__inner {
2663
+ box-sizing: border-box;
2664
+ display: flex;
2665
+ flex-direction: column;
2666
+ gap: var(--heading-gap);
2667
+ max-width: var(--container);
2668
+ margin: 0 auto;
2669
+ padding: 0 var(--gutter);
2670
+ }
2671
+ }
2672
+ @layer components {
2673
+ .elb-card-grid {
2674
+ --elb-card-grid-min: 280px;
2675
+ display: grid;
2676
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--elb-card-grid-min)), 1fr));
2677
+ gap: var(--space-5);
2678
+ }
2679
+ .elb-card-grid--min-280 {
2680
+ --elb-card-grid-min: 280px;
2681
+ }
2682
+ .elb-card-grid--min-300 {
2683
+ --elb-card-grid-min: 300px;
2684
+ }
2685
+ .elb-card-grid--min-420 {
2686
+ --elb-card-grid-min: 420px;
2687
+ }
2688
+ .elb-card-grid--min-440 {
2689
+ --elb-card-grid-min: 440px;
2690
+ }
2691
+ .elb-card-grid--features {
2692
+ gap: var(--heading-gap) 48px;
2693
+ }
2694
+ }
2695
+ @layer components {
2696
+ .elb-split {
2697
+ display: grid;
2698
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
2699
+ row-gap: 24px;
2700
+ column-gap: var(--split-gap);
2701
+ align-items: start;
2702
+ }
2703
+ .elb-split__start,
2704
+ .elb-split__end {
2705
+ min-width: 0;
2706
+ }
2707
+ .elb-split--aside {
2708
+ display: flex;
2709
+ flex-wrap: wrap;
2710
+ row-gap: 48px;
2711
+ align-items: flex-start;
2712
+ }
2713
+ .elb-split--aside > .elb-split__start {
2714
+ flex: 1 1 320px;
2715
+ max-width: 440px;
2716
+ }
2717
+ .elb-split--aside > .elb-split__end {
2718
+ flex: 2 1 600px;
2719
+ }
2720
+ }
2721
+ @layer components {
2722
+ .elb-cluster {
2723
+ display: flex;
2724
+ flex-wrap: wrap;
2725
+ align-items: center;
2726
+ gap: var(--space-3);
2727
+ }
2728
+ .elb-cluster--links {
2729
+ gap: var(--space-2) 24px;
2730
+ }
2731
+ .elb-cluster--center {
2732
+ justify-content: center;
2733
+ }
2734
+ .elb-cluster--separated {
2735
+ margin-top: var(--heading-gap);
2736
+ }
2737
+ }
2738
+ @layer components {
2739
+ .elb-hero {
2740
+ position: relative;
2741
+ box-sizing: border-box;
2742
+ overflow: hidden;
2743
+ padding: 104px 0 var(--section-y);
2744
+ color: var(--fg);
2745
+ background: var(--bg);
2746
+ font-family: var(--type-body-family);
2747
+ font-size: var(--type-body-size);
2748
+ line-height: var(--type-body-line-height);
2749
+ }
2750
+ .elb-hero::before {
2751
+ content: "";
2752
+ position: absolute;
2753
+ left: 50%;
2754
+ top: -120px;
2755
+ width: min(1000px, 140%);
2756
+ height: 520px;
2757
+ translate: -50% 0;
2758
+ background:
2759
+ radial-gradient(
2760
+ closest-side,
2761
+ var(--glow),
2762
+ transparent 75%);
2763
+ pointer-events: none;
2764
+ }
2765
+ .elb-hero__inner {
2766
+ position: relative;
2767
+ box-sizing: border-box;
2768
+ max-width: var(--container);
2769
+ margin: 0 auto;
2770
+ padding: 0 var(--gutter);
2771
+ text-align: center;
2772
+ }
2773
+ .elb-hero__actions {
2774
+ display: flex;
2775
+ flex-wrap: wrap;
2776
+ justify-content: center;
2777
+ gap: var(--space-3);
2778
+ margin-top: 34px;
2779
+ }
2780
+ .elb-hero__proof {
2781
+ display: flex;
2782
+ justify-content: center;
2783
+ margin-top: 34px;
2784
+ }
2785
+ .elb-hero__demo {
2786
+ margin-top: 56px;
2787
+ text-align: left;
2788
+ }
2789
+ }
2790
+ @layer components {
2791
+ .elb-viz {
2792
+ box-sizing: border-box;
2793
+ width: 100%;
2794
+ min-width: 0;
2795
+ color: var(--viz-fg);
2796
+ background: var(--viz-bg);
2797
+ border-radius: var(--radius-xl);
2798
+ font-family: var(--type-viz-body-family);
2799
+ font-size: var(--type-viz-body-size);
2800
+ line-height: var(--type-viz-body-line-height);
2801
+ font-weight: var(--type-viz-body-weight);
2802
+ text-align: left;
2803
+ container-type: inline-size;
2804
+ -webkit-font-smoothing: antialiased;
2805
+ }
2806
+ .elb-viz *,
2807
+ .elb-viz *::before,
2808
+ .elb-viz *::after {
2809
+ box-sizing: border-box;
2810
+ }
2811
+ .elb-viz--hero {
2812
+ border: 1px solid var(--border);
2813
+ }
2814
+ .elb-viz--mapping {
2815
+ overflow: hidden;
2816
+ border: 1px solid var(--viz-border);
2817
+ }
2818
+ .elb-viz__body {
2819
+ min-width: 0;
2820
+ }
2821
+ .elb-viz--hero > .elb-viz__body {
2822
+ padding: 16px;
2823
+ }
2824
+ .elb-viz--teaser > .elb-viz__body {
2825
+ padding: 24px;
2826
+ }
2827
+ @container (max-width: 639px) {
2828
+ .elb-viz--hero > .elb-viz__body {
2829
+ padding: 12px;
2830
+ }
2831
+ .elb-viz--teaser > .elb-viz__body {
2832
+ padding: 16px;
2833
+ }
2834
+ }
2835
+ }
2836
+ @layer components {
2837
+ .elb-viz-tok {
2838
+ border-radius: var(--radius-xs);
2839
+ transition: background var(--motion) var(--ease);
2840
+ }
2841
+ .elb-viz-tok--tag {
2842
+ color: var(--viz-tag);
2843
+ }
2844
+ .elb-viz-tok--attr,
2845
+ .elb-viz-tok--key {
2846
+ color: var(--event-globals);
2847
+ }
2848
+ .elb-viz-tok--punct {
2849
+ color: var(--viz-punct);
2850
+ }
2851
+ .elb-viz-tok--str {
2852
+ color: var(--viz-string);
2853
+ }
2854
+ .elb-viz-tok--text {
2855
+ color: var(--viz-fg);
2856
+ }
2857
+ .elb-viz-tok--kw,
2858
+ .elb-viz-tok--fn {
2859
+ color: var(--event-action);
2860
+ }
2861
+ .elb-viz-tok--num {
2862
+ color: var(--viz-number);
2863
+ }
2864
+ .elb-viz-tok--value {
2865
+ color: var(--event-entity);
2866
+ }
2867
+ .elb-viz-tok--mark-entity {
2868
+ background: color-mix(in srgb, var(--event-entity) 16%, transparent);
2869
+ }
2870
+ .elb-viz-tok--mark-action {
2871
+ background: color-mix(in srgb, var(--event-action) 16%, transparent);
2872
+ }
2873
+ .elb-viz-tok--mark-property {
2874
+ background: color-mix(in srgb, var(--event-property) 16%, transparent);
2875
+ }
2876
+ .elb-viz-tok--mark-context {
2877
+ background: color-mix(in srgb, var(--event-context) 16%, transparent);
2878
+ }
2879
+ .elb-viz-tok--mark-globals {
2880
+ background: color-mix(in srgb, var(--event-globals) 16%, transparent);
2881
+ }
2882
+ .elb-viz-line {
2883
+ display: flex;
2884
+ align-items: stretch;
2885
+ transition: background var(--motion) var(--ease);
2886
+ }
2887
+ .elb-viz-line__bar {
2888
+ flex: none;
2889
+ width: 3px;
2890
+ background: transparent;
2891
+ transition: background var(--motion) var(--ease);
2892
+ }
2893
+ .elb-viz-line__bar--entity {
2894
+ background: var(--event-entity);
2895
+ }
2896
+ .elb-viz-line__bar--action {
2897
+ background: var(--event-action);
2898
+ }
2899
+ .elb-viz-line__bar--property {
2900
+ background: var(--event-property);
2901
+ }
2902
+ .elb-viz-line__bar--context {
2903
+ background: var(--event-context);
2904
+ }
2905
+ .elb-viz-line__bar--globals {
2906
+ background: var(--event-globals);
2907
+ }
2908
+ .elb-viz-line__number {
2909
+ flex: none;
2910
+ width: 30px;
2911
+ padding-right: 14px;
2912
+ color: var(--viz-line-number);
2913
+ text-align: right;
2914
+ }
2915
+ .elb-viz-line__code {
2916
+ min-width: 0;
2917
+ padding-right: 16px;
2918
+ white-space: pre-wrap;
2919
+ word-break: break-all;
2920
+ }
2921
+ .elb-viz-caret {
2922
+ --elb-viz-caret: 1;
2923
+ display: inline-block;
2924
+ width: 2px;
2925
+ height: 1.15em;
2926
+ margin-left: 1px;
2927
+ vertical-align: -0.2em;
2928
+ background: var(--primary);
2929
+ opacity: var(--elb-viz-caret);
2930
+ }
2931
+ }
2932
+ @layer components {
2933
+ .elb-viz-pill {
2934
+ --elb-viz-pill: var(--event-entity);
2935
+ display: inline-block;
2936
+ padding: 0 7px;
2937
+ color: var(--viz-bg);
2938
+ background: var(--elb-viz-pill);
2939
+ border: 1.5px solid var(--elb-viz-pill);
2940
+ border-radius: var(--radius-xs);
2941
+ font-family: var(--type-viz-code-family);
2942
+ font-size: var(--type-viz-legend-size);
2943
+ line-height: 16px;
2944
+ font-weight: 500;
2945
+ white-space: nowrap;
2946
+ }
2947
+ .elb-viz-pill--entity {
2948
+ --elb-viz-pill: var(--event-entity);
2949
+ }
2950
+ .elb-viz-pill--action {
2951
+ --elb-viz-pill: var(--event-action);
2952
+ }
2953
+ .elb-viz-pill--property {
2954
+ --elb-viz-pill: var(--event-property);
2955
+ }
2956
+ .elb-viz-pill--context {
2957
+ --elb-viz-pill: var(--event-context);
2958
+ }
2959
+ .elb-viz-pill--globals {
2960
+ --elb-viz-pill: var(--event-globals);
2961
+ }
2962
+ .elb-viz-pill--outline {
2963
+ padding: 0 6px;
2964
+ color: var(--elb-viz-pill);
2965
+ background: var(--viz-bg);
2966
+ }
2967
+ }
2968
+ @layer components {
2969
+ .elb-viz-thumb {
2970
+ display: block;
2971
+ }
2972
+ .elb-viz-thumb__legs,
2973
+ .elb-viz-thumb__seam,
2974
+ .elb-viz-thumb__shine,
2975
+ .elb-viz-thumb__wave,
2976
+ .elb-viz-thumb__score {
2977
+ fill: none;
2978
+ }
2979
+ .elb-viz-thumb--bug .elb-viz-thumb__ground {
2980
+ fill: var(--viz-fg);
2981
+ }
2982
+ .elb-viz-thumb--bug .elb-viz-thumb__shadow {
2983
+ fill: var(--viz-fg-2);
2984
+ }
2985
+ .elb-viz-thumb--bug .elb-viz-thumb__ink {
2986
+ fill: var(--viz-bg);
2987
+ }
2988
+ .elb-viz-thumb--bug .elb-viz-thumb__legs,
2989
+ .elb-viz-thumb--bug .elb-viz-thumb__seam {
2990
+ stroke: var(--viz-bg);
2991
+ }
2992
+ .elb-viz-thumb--bug .elb-viz-thumb__eye {
2993
+ fill: var(--viz-fg);
2994
+ }
2995
+ .elb-viz-thumb--bug .elb-viz-thumb__shell {
2996
+ fill: var(--viz-number);
2997
+ }
2998
+ .elb-viz-thumb--bug .elb-viz-thumb__shine {
2999
+ stroke: color-mix(in srgb, var(--viz-number) 60%, var(--viz-fg));
3000
+ }
3001
+ .elb-viz-thumb--tech .elb-viz-thumb__ground {
3002
+ fill: var(--viz-border);
3003
+ }
3004
+ .elb-viz-thumb--tech .elb-viz-thumb__badge {
3005
+ fill: var(--viz-number);
3006
+ }
3007
+ .elb-viz-thumb--tech .elb-viz-thumb__dot {
3008
+ fill: var(--viz-fg);
3009
+ }
3010
+ .elb-viz-thumb--tech .elb-viz-thumb__wave {
3011
+ stroke: var(--viz-fg);
3012
+ }
3013
+ .elb-viz-thumb--food .elb-viz-thumb__ground {
3014
+ fill: var(--viz-fg);
3015
+ }
3016
+ .elb-viz-thumb--food .elb-viz-thumb__plate {
3017
+ fill: var(--viz-fg-2);
3018
+ }
3019
+ .elb-viz-thumb--food .elb-viz-thumb__loaf {
3020
+ fill: var(--viz-number);
3021
+ }
3022
+ .elb-viz-thumb--food .elb-viz-thumb__crust {
3023
+ fill: var(--viz-string);
3024
+ }
3025
+ .elb-viz-thumb--food .elb-viz-thumb__score {
3026
+ stroke: var(--viz-fg);
3027
+ }
3028
+ }
3029
+ @layer components {
3030
+ .elb-viz-table {
3031
+ display: flex;
3032
+ flex: 1 1 400px;
3033
+ flex-direction: column;
3034
+ min-width: 0;
3035
+ overflow: hidden;
3036
+ background: var(--viz-bg);
3037
+ border: 1px solid var(--viz-surface);
3038
+ border-radius: var(--radius-lg);
3039
+ font-family: var(--type-viz-code-family);
3040
+ font-size: var(--type-viz-code-size);
3041
+ }
3042
+ .elb-viz-table__head {
3043
+ display: flex;
3044
+ align-items: center;
3045
+ justify-content: space-between;
3046
+ gap: var(--space-3);
3047
+ padding: 12px 16px;
3048
+ color: var(--viz-fg-2);
3049
+ border-bottom: 1px solid var(--viz-surface);
3050
+ }
3051
+ .elb-viz-table__keyword {
3052
+ color: var(--event-action);
3053
+ }
3054
+ .elb-viz-table__source {
3055
+ color: var(--viz-fg);
3056
+ }
3057
+ .elb-viz-table__live {
3058
+ display: flex;
3059
+ align-items: center;
3060
+ gap: 7px;
3061
+ color: var(--event-entity);
3062
+ }
3063
+ .elb-viz-table__dot {
3064
+ width: 7px;
3065
+ height: 7px;
3066
+ background: var(--event-entity);
3067
+ border-radius: var(--radius-full);
3068
+ }
3069
+ .elb-viz-table__body {
3070
+ position: relative;
3071
+ flex: 1;
3072
+ min-height: 300px;
3073
+ }
3074
+ .elb-viz-table__scroll {
3075
+ position: absolute;
3076
+ inset: 0;
3077
+ overflow-x: auto;
3078
+ overflow-y: hidden;
3079
+ }
3080
+ .elb-viz-table__rows {
3081
+ min-width: 454px;
3082
+ }
3083
+ .elb-viz-table__row {
3084
+ --elb-viz-row-tint: 0;
3085
+ --elb-viz-row-opacity: 1;
3086
+ --elb-viz-row-shift: 0;
3087
+ display: grid;
3088
+ grid-template-columns: 38px 166px minmax(250px, 1fr);
3089
+ border-bottom: 1px solid var(--viz-surface);
3090
+ line-height: 1.4;
3091
+ }
3092
+ .elb-viz-table__row--header {
3093
+ background: var(--viz-surface);
3094
+ border-bottom-color: var(--viz-border);
3095
+ }
3096
+ .elb-viz-table__row--event {
3097
+ background: color-mix(in srgb, var(--event-entity) calc(var(--elb-viz-row-tint) * 1%), transparent);
3098
+ opacity: var(--elb-viz-row-opacity);
3099
+ transform: translateX(calc(var(--elb-viz-row-shift) * 1px));
3100
+ }
3101
+ .elb-viz-table__cell {
3102
+ min-width: 0;
3103
+ padding: 10px;
3104
+ overflow: hidden;
3105
+ color: var(--viz-fg);
3106
+ text-overflow: ellipsis;
3107
+ white-space: nowrap;
3108
+ border-right: 1px solid var(--viz-surface);
3109
+ }
3110
+ .elb-viz-table__cell:last-child {
3111
+ border-right: 0;
3112
+ }
3113
+ .elb-viz-table__row--header > .elb-viz-table__cell {
3114
+ display: flex;
3115
+ flex-direction: column;
3116
+ gap: 1px;
3117
+ padding: 8px 10px;
3118
+ }
3119
+ .elb-viz-table__cell--n {
3120
+ color: var(--viz-comment);
3121
+ text-align: right;
3122
+ }
3123
+ .elb-viz-table__row--header > .elb-viz-table__cell--n {
3124
+ font-size: var(--type-viz-legend-size);
3125
+ }
3126
+ .elb-viz-table__row--skeleton > .elb-viz-table__cell--n {
3127
+ color: var(--viz-line-number);
3128
+ }
3129
+ .elb-viz-table__type {
3130
+ color: var(--viz-comment);
3131
+ font-size: var(--type-viz-legend-size);
3132
+ }
3133
+ .elb-viz-table__json {
3134
+ color: var(--viz-punct);
3135
+ }
3136
+ .elb-viz-table__json-key {
3137
+ color: var(--event-globals);
3138
+ }
3139
+ .elb-viz-table__json-value {
3140
+ color: var(--viz-string);
3141
+ }
3142
+ .elb-viz-table__bar {
3143
+ display: block;
3144
+ width: 75%;
3145
+ height: 8px;
3146
+ margin: 5px 0;
3147
+ background: var(--viz-surface);
3148
+ border-radius: var(--radius-xs);
3149
+ }
3150
+ .elb-viz-table__row--skeleton:nth-child(odd) .elb-viz-table__bar:last-child {
3151
+ width: 66%;
3152
+ }
3153
+ @container (max-width: 639px) {
3154
+ .elb-viz-table__scroll {
3155
+ overflow-x: hidden;
3156
+ }
3157
+ .elb-viz-table__rows {
3158
+ min-width: 0;
3159
+ }
3160
+ .elb-viz-table__row {
3161
+ grid-template-columns: minmax(0, 130px) minmax(0, 1fr);
3162
+ }
3163
+ .elb-viz-table__row > .elb-viz-table__cell--n {
3164
+ display: none;
3165
+ }
3166
+ }
3167
+ }
3168
+ @layer components {
3169
+ .elb-viz-mapping {
3170
+ display: flex;
3171
+ flex-direction: column;
3172
+ }
3173
+ .elb-viz-mapping__pick {
3174
+ display: flex;
3175
+ flex-direction: column;
3176
+ gap: 10px;
3177
+ padding: 18px 20px 0;
3178
+ }
3179
+ .elb-viz-mapping__label {
3180
+ color: var(--viz-fg-2);
3181
+ font-family: var(--type-viz-legend-family);
3182
+ font-size: var(--type-viz-legend-size);
3183
+ line-height: var(--type-viz-legend-line-height);
3184
+ letter-spacing: 0.06em;
3185
+ text-transform: uppercase;
3186
+ }
3187
+ .elb-viz-mapping__chips {
3188
+ display: flex;
3189
+ flex-wrap: wrap;
3190
+ gap: var(--space-2);
3191
+ }
3192
+ .elb-viz-mapping__chip {
3193
+ position: relative;
3194
+ display: flex;
3195
+ overflow: hidden;
3196
+ padding: 0;
3197
+ background: transparent;
3198
+ border: 1px solid var(--viz-border);
3199
+ border-radius: var(--radius-md);
3200
+ font-family: var(--type-viz-code-family);
3201
+ font-size: var(--type-viz-chip-size);
3202
+ line-height: var(--type-viz-chip-line-height);
3203
+ cursor: pointer;
3204
+ transition: border-color var(--motion) var(--ease), background var(--motion) var(--ease);
3205
+ }
3206
+ .elb-viz-mapping__chip:hover {
3207
+ border-color: var(--viz-comment);
3208
+ }
3209
+ .elb-viz-mapping__chip--active,
3210
+ .elb-viz-mapping__chip--active:hover {
3211
+ background: color-mix(in srgb, var(--primary) 8%, transparent);
3212
+ border-color: var(--primary);
3213
+ }
3214
+ .elb-viz-mapping__chip-entity {
3215
+ padding: 7px 10px;
3216
+ color: var(--viz-fg);
3217
+ background: color-mix(in srgb, var(--viz-fg) 4%, transparent);
3218
+ }
3219
+ .elb-viz-mapping__chip-action {
3220
+ padding: 7px 10px;
3221
+ color: var(--primary);
3222
+ }
3223
+ .elb-viz-mapping__event {
3224
+ margin: 16px 20px 0;
3225
+ padding: 10px 14px;
3226
+ overflow-x: auto;
3227
+ scrollbar-width: thin;
3228
+ scrollbar-color: var(--viz-border) transparent;
3229
+ background: var(--viz-code-bg);
3230
+ border: 1px solid var(--border);
3231
+ border-radius: var(--radius-md);
3232
+ font-family: var(--type-viz-code-family);
3233
+ font-size: var(--type-viz-code-size);
3234
+ line-height: 1.6;
3235
+ white-space: pre;
3236
+ }
3237
+ .elb-viz-mapping__body {
3238
+ display: flex;
3239
+ flex-direction: column;
3240
+ gap: 10px;
3241
+ padding: 18px 20px 20px;
3242
+ }
3243
+ .elb-viz-mapping__comment {
3244
+ color: var(--viz-comment);
3245
+ font-family: var(--type-viz-code-family);
3246
+ font-size: var(--type-viz-code-size);
3247
+ font-style: italic;
3248
+ }
3249
+ .elb-viz-mapping__cards {
3250
+ display: grid;
3251
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr));
3252
+ gap: 10px;
3253
+ }
3254
+ .elb-viz-mapping__card {
3255
+ display: flex;
3256
+ flex-direction: column;
3257
+ gap: var(--space-2);
3258
+ min-width: 0;
3259
+ padding: 12px 14px;
3260
+ background: var(--viz-code-bg);
3261
+ border: 1px solid var(--border);
3262
+ border-radius: var(--radius-faq);
3263
+ }
3264
+ .elb-viz-mapping__name {
3265
+ font-size: var(--type-small-size);
3266
+ font-weight: var(--type-small-weight);
3267
+ }
3268
+ .elb-viz-mapping__row {
3269
+ display: flex;
3270
+ align-items: baseline;
3271
+ gap: 10px;
3272
+ font-family: var(--type-viz-code-family);
3273
+ font-size: var(--type-viz-code-size);
3274
+ line-height: var(--type-viz-code-line-height);
3275
+ }
3276
+ .elb-viz-mapping__row--sends {
3277
+ align-items: flex-start;
3278
+ }
3279
+ .elb-viz-mapping__tag {
3280
+ flex: none;
3281
+ width: 58px;
3282
+ color: var(--viz-comment);
3283
+ font-size: var(--type-viz-legend-size);
3284
+ }
3285
+ .elb-viz-mapping__rule,
3286
+ .elb-viz-mapping__calls {
3287
+ flex: 1 1 auto;
3288
+ min-width: 0;
3289
+ overflow-x: auto;
3290
+ white-space: pre;
3291
+ scrollbar-width: thin;
3292
+ scrollbar-color: var(--viz-border) transparent;
3293
+ }
3294
+ .elb-viz-mapping__caption {
3295
+ margin: 0;
3296
+ padding: 18px 20px 20px;
3297
+ color: var(--viz-punct);
3298
+ border-top: 1px solid var(--viz-border);
3299
+ font-family: var(--type-viz-body-family);
3300
+ font-size: var(--type-viz-body-size);
3301
+ line-height: 1.6;
3302
+ text-wrap: pretty;
3303
+ }
3304
+ @container (max-width: 639px) {
3305
+ .elb-viz-mapping__pick {
3306
+ padding: 14px 14px 0;
3307
+ }
3308
+ .elb-viz-mapping__event {
3309
+ margin: 14px 14px 0;
3310
+ }
3311
+ .elb-viz-mapping__body,
3312
+ .elb-viz-mapping__caption {
3313
+ padding: 14px;
3314
+ }
3315
+ .elb-viz-mapping__row {
3316
+ flex-direction: column;
3317
+ gap: 2px;
3318
+ }
3319
+ .elb-viz-mapping__rule,
3320
+ .elb-viz-mapping__calls {
3321
+ align-self: stretch;
3322
+ }
3323
+ }
3324
+ }
3325
+ @layer components {
3326
+ .elb-viz-hero {
3327
+ --elb-viz-fade: 1;
3328
+ --elb-viz-card-opacity: 1;
3329
+ --elb-viz-card-offset: 0;
3330
+ --elb-viz-cursor-x: 22;
3331
+ --elb-viz-cursor-y: 11;
3332
+ --elb-viz-cursor-opacity: 0;
3333
+ --elb-viz-ring-scale: 1;
3334
+ --elb-viz-ring-opacity: 0;
3335
+ --elb-viz-press: 1;
3336
+ display: flex;
3337
+ flex-wrap: wrap;
3338
+ gap: 16px;
3339
+ align-items: stretch;
3340
+ }
3341
+ .elb-viz-hero__pane {
3342
+ display: flex;
3343
+ flex: 1.2 1 520px;
3344
+ flex-direction: column;
3345
+ min-width: 0;
3346
+ overflow: hidden;
3347
+ background: var(--viz-code-bg);
3348
+ border: 1px solid var(--viz-surface);
3349
+ border-radius: var(--radius-lg);
3350
+ }
3351
+ .elb-viz-hero__bar {
3352
+ display: flex;
3353
+ align-items: center;
3354
+ gap: var(--space-3-5);
3355
+ padding: 12px 16px;
3356
+ border-bottom: 1px solid var(--viz-surface);
3357
+ }
3358
+ .elb-viz-hero__dots {
3359
+ display: flex;
3360
+ gap: 7px;
3361
+ }
3362
+ .elb-viz-hero__dots > span {
3363
+ width: 10px;
3364
+ height: 10px;
3365
+ background: var(--viz-border);
3366
+ border-radius: var(--radius-full);
3367
+ }
3368
+ .elb-viz-hero__file {
3369
+ color: var(--primary);
3370
+ font-family: var(--type-viz-code-family);
3371
+ font-size: var(--type-viz-code-size);
3372
+ }
3373
+ .elb-viz-hero__code {
3374
+ min-height: 268px;
3375
+ padding: 12px 0 14px;
3376
+ font-family: var(--type-viz-code-family);
3377
+ font-size: var(--type-viz-chip-size);
3378
+ line-height: 1.95;
3379
+ opacity: var(--elb-viz-fade);
3380
+ }
3381
+ .elb-viz-hero__line--on {
3382
+ background: color-mix(in srgb, var(--event-entity) 7%, transparent);
3383
+ }
3384
+ .elb-viz-hero__stage {
3385
+ position: relative;
3386
+ display: flex;
3387
+ flex: 1;
3388
+ align-items: center;
3389
+ justify-content: center;
3390
+ overflow: hidden;
3391
+ padding: 34px 24px 28px;
3392
+ background:
3393
+ repeating-linear-gradient(
3394
+ 45deg,
3395
+ var(--viz-code-bg) 0 8px,
3396
+ var(--viz-bg) 8px 16px);
3397
+ border-top: 1px solid var(--viz-surface);
3398
+ }
3399
+ .elb-viz-hero__card {
3400
+ position: relative;
3401
+ display: flex;
3402
+ gap: var(--space-3-5);
3403
+ width: 100%;
3404
+ max-width: 430px;
3405
+ padding: var(--space-3);
3406
+ background: var(--viz-surface);
3407
+ border: 1.5px solid var(--viz-border);
3408
+ border-radius: var(--radius-faq);
3409
+ opacity: var(--elb-viz-card-opacity);
3410
+ transform: translateY(calc(var(--elb-viz-card-offset) * 1px));
3411
+ }
3412
+ .elb-viz-hero__card--tagged {
3413
+ border-color: var(--event-entity);
3414
+ }
3415
+ .elb-viz-hero__pills {
3416
+ position: absolute;
3417
+ top: -10px;
3418
+ left: 12px;
3419
+ display: flex;
3420
+ gap: 6px;
3421
+ }
3422
+ .elb-viz-hero__thumb {
3423
+ position: relative;
3424
+ flex: none;
3425
+ width: 112px;
3426
+ min-height: 86px;
3427
+ overflow: hidden;
3428
+ background: var(--viz-surface);
3429
+ border-radius: var(--radius-sm);
3430
+ }
3431
+ .elb-viz-hero__thumb > .elb-viz-thumb {
3432
+ position: absolute;
3433
+ inset: 0;
3434
+ width: 100%;
3435
+ height: 100%;
3436
+ }
3437
+ .elb-viz-hero__text {
3438
+ display: flex;
3439
+ flex: 1;
3440
+ flex-direction: column;
3441
+ gap: 4px;
3442
+ min-width: 0;
3443
+ }
3444
+ .elb-viz-hero__kicker {
3445
+ align-self: flex-start;
3446
+ margin-left: -3px;
3447
+ padding: 0 3px;
3448
+ color: var(--viz-fg-2);
3449
+ border-radius: var(--radius-xs);
3450
+ font-family: var(--type-viz-code-family);
3451
+ font-size: var(--type-viz-legend-size);
3452
+ letter-spacing: 0.04em;
3453
+ outline: 1.5px solid transparent;
3454
+ }
3455
+ .elb-viz-hero__title {
3456
+ font-size: var(--type-viz-body-size);
3457
+ font-weight: 600;
3458
+ line-height: 1.3;
3459
+ text-wrap: pretty;
3460
+ }
3461
+ .elb-viz-hero__mark {
3462
+ border-radius: var(--radius-xs);
3463
+ outline: 1.5px solid transparent;
3464
+ outline-offset: 1px;
3465
+ }
3466
+ .elb-viz-hero__kicker--on,
3467
+ .elb-viz-hero__mark--on {
3468
+ outline-color: var(--event-property);
3469
+ box-shadow: 0 0 10px 1px color-mix(in srgb, var(--event-property) 55%, transparent);
3470
+ }
3471
+ .elb-viz-hero__foot {
3472
+ display: flex;
3473
+ align-items: center;
3474
+ gap: var(--space-2);
3475
+ margin-top: auto;
3476
+ padding-top: 6px;
3477
+ }
3478
+ .elb-viz-hero__link {
3479
+ position: relative;
3480
+ margin-left: -5px;
3481
+ padding: 1px 5px;
3482
+ color: var(--primary);
3483
+ border-radius: var(--radius-sm);
3484
+ font-family: var(--type-viz-chip-family);
3485
+ font-size: var(--type-viz-chip-size);
3486
+ font-weight: var(--type-viz-chip-weight);
3487
+ outline: 1.5px solid transparent;
3488
+ }
3489
+ .elb-viz-hero__link--on {
3490
+ outline-color: var(--event-action);
3491
+ }
3492
+ .elb-viz-hero__cursor {
3493
+ position: absolute;
3494
+ left: calc(var(--elb-viz-cursor-x) * 1px);
3495
+ top: calc(var(--elb-viz-cursor-y) * 1px);
3496
+ width: 22px;
3497
+ height: 22px;
3498
+ margin: -11px 0 0 -11px;
3499
+ pointer-events: none;
3500
+ opacity: var(--elb-viz-cursor-opacity);
3501
+ }
3502
+ .elb-viz-hero__ring,
3503
+ .elb-viz-hero__pointer {
3504
+ position: absolute;
3505
+ inset: 0;
3506
+ border-radius: var(--radius-full);
3507
+ }
3508
+ .elb-viz-hero__ring {
3509
+ border: 2px solid var(--event-entity);
3510
+ opacity: var(--elb-viz-ring-opacity);
3511
+ transform: scale(var(--elb-viz-ring-scale));
3512
+ }
3513
+ .elb-viz-hero__pointer {
3514
+ background: color-mix(in srgb, var(--viz-fg) 22%, transparent);
3515
+ border: 2px solid color-mix(in srgb, var(--viz-fg) 90%, transparent);
3516
+ transform: scale(var(--elb-viz-press));
3517
+ }
3518
+ @container (max-width: 639px) {
3519
+ .elb-viz-hero__pane,
3520
+ .elb-viz-hero > .elb-viz-table {
3521
+ flex-basis: 100%;
3522
+ }
3523
+ .elb-viz-hero__code {
3524
+ font-size: var(--type-viz-code-size);
3525
+ }
3526
+ .elb-viz-hero__stage {
3527
+ padding: 24px 12px;
3528
+ }
3529
+ .elb-viz-hero__thumb {
3530
+ width: 88px;
3531
+ }
3532
+ }
3533
+ }
3534
+ @layer components {
3535
+ .elb-viz-teaser {
3536
+ display: flex;
3537
+ flex-direction: column;
3538
+ gap: 18px;
3539
+ }
3540
+ .elb-viz-teaser__header {
3541
+ display: flex;
3542
+ flex-wrap: wrap;
3543
+ align-items: center;
3544
+ justify-content: space-between;
3545
+ gap: 12px 20px;
3546
+ }
3547
+ .elb-viz-teaser__steps {
3548
+ display: flex;
3549
+ flex-wrap: wrap;
3550
+ gap: var(--space-2);
3551
+ }
3552
+ .elb-viz-teaser__step {
3553
+ display: flex;
3554
+ align-items: center;
3555
+ gap: var(--space-2);
3556
+ padding: 6px 12px 6px 6px;
3557
+ color: var(--viz-fg-2);
3558
+ background: transparent;
3559
+ border: 1px solid var(--viz-border);
3560
+ border-radius: var(--radius-full);
3561
+ font-family: var(--type-viz-chip-family);
3562
+ font-size: var(--type-viz-chip-size);
3563
+ line-height: var(--type-viz-chip-line-height);
3564
+ font-weight: var(--type-viz-chip-weight);
3565
+ cursor: pointer;
3566
+ transition:
3567
+ color var(--motion) var(--ease),
3568
+ background var(--motion) var(--ease),
3569
+ border-color var(--motion) var(--ease);
3570
+ }
3571
+ .elb-viz-teaser__step--active {
3572
+ color: var(--viz-fg);
3573
+ background: color-mix(in srgb, var(--primary) 10%, transparent);
3574
+ border-color: var(--primary);
3575
+ }
3576
+ .elb-viz-teaser__step-number {
3577
+ width: 20px;
3578
+ height: 20px;
3579
+ color: var(--viz-bg);
3580
+ background: var(--viz-border);
3581
+ border-radius: var(--radius-full);
3582
+ font-size: var(--type-viz-legend-size);
3583
+ line-height: 20px;
3584
+ font-weight: 600;
3585
+ text-align: center;
3586
+ }
3587
+ .elb-viz-teaser__step--done > .elb-viz-teaser__step-number {
3588
+ background: var(--viz-comment);
3589
+ }
3590
+ .elb-viz-teaser__step--active > .elb-viz-teaser__step-number {
3591
+ color: var(--on-primary);
3592
+ background: var(--primary);
3593
+ }
3594
+ .elb-viz-teaser__legend > .elb-legend {
3595
+ padding: 0;
3596
+ background: none;
3597
+ }
3598
+ .elb-viz-teaser__caption {
3599
+ min-height: 23px;
3600
+ margin: 0;
3601
+ color: var(--viz-punct);
3602
+ font-family: var(--type-viz-body-family);
3603
+ font-size: var(--type-viz-body-size);
3604
+ line-height: var(--type-viz-body-line-height);
3605
+ text-wrap: pretty;
3606
+ }
3607
+ .elb-viz-teaser__body {
3608
+ display: flex;
3609
+ flex-wrap: wrap;
3610
+ gap: 16px;
3611
+ align-items: stretch;
3612
+ }
3613
+ .elb-viz-teaser__pane {
3614
+ position: sticky;
3615
+ top: calc(var(--header-h) + 16px);
3616
+ flex: 1 1 380px;
3617
+ align-self: flex-start;
3618
+ min-width: 0;
3619
+ padding: 4px 0 10px;
3620
+ overflow: hidden;
3621
+ background: var(--viz-code-bg);
3622
+ border: 1px solid var(--viz-border);
3623
+ border-radius: var(--radius-lg);
3624
+ }
3625
+ .elb-viz-teaser__scroll {
3626
+ position: relative;
3627
+ min-height: 140px;
3628
+ max-height: min(640px, 100vh - var(--header-h) - 48px);
3629
+ overflow: auto;
3630
+ font-family: var(--type-viz-code-family);
3631
+ font-size: var(--type-viz-code-size);
3632
+ }
3633
+ .elb-viz-teaser__line {
3634
+ max-height: 0;
3635
+ overflow: hidden;
3636
+ opacity: 0;
3637
+ transition: max-height calc(var(--motion) * 2) var(--ease), opacity calc(var(--motion) * 2) var(--ease);
3638
+ }
3639
+ .elb-viz-teaser__line--visible {
3640
+ max-height: 24px;
3641
+ opacity: 1;
3642
+ }
3643
+ .elb-viz-teaser__line--file.elb-viz-teaser__line--visible {
3644
+ max-height: 44px;
3645
+ }
3646
+ .elb-viz-teaser__line--dim {
3647
+ opacity: 0.45;
3648
+ }
3649
+ .elb-viz-teaser__file {
3650
+ display: flex;
3651
+ justify-content: space-between;
3652
+ gap: 10px;
3653
+ padding: 14px 16px 4px 19px;
3654
+ border-top: 1px solid transparent;
3655
+ }
3656
+ .elb-viz-teaser__file--separated {
3657
+ border-top-color: var(--viz-surface);
3658
+ }
3659
+ .elb-viz-teaser__file-name {
3660
+ color: var(--primary);
3661
+ }
3662
+ .elb-viz-teaser__file-level {
3663
+ color: var(--viz-comment);
3664
+ }
3665
+ .elb-viz-teaser__code > .elb-viz-line__number {
3666
+ width: 26px;
3667
+ padding-right: 12px;
3668
+ line-height: var(--type-viz-code-line-height);
3669
+ }
3670
+ .elb-viz-teaser__code > .elb-viz-line__code {
3671
+ line-height: var(--type-viz-code-line-height);
3672
+ white-space: pre;
3673
+ word-break: normal;
3674
+ }
3675
+ .elb-viz-teaser__code--current-plain {
3676
+ background: color-mix(in srgb, var(--viz-fg) 4%, transparent);
3677
+ }
3678
+ .elb-viz-teaser__code--current-entity {
3679
+ background: color-mix(in srgb, var(--event-entity) 10%, transparent);
3680
+ }
3681
+ .elb-viz-teaser__code--current-action {
3682
+ background: color-mix(in srgb, var(--event-action) 10%, transparent);
3683
+ }
3684
+ .elb-viz-teaser__code--current-property {
3685
+ background: color-mix(in srgb, var(--event-property) 10%, transparent);
3686
+ }
3687
+ .elb-viz-teaser__code--current-context {
3688
+ background: color-mix(in srgb, var(--event-context) 10%, transparent);
3689
+ }
3690
+ .elb-viz-teaser__code--current-globals {
3691
+ background: color-mix(in srgb, var(--event-globals) 10%, transparent);
3692
+ }
3693
+ .elb-viz-teaser__pages {
3694
+ display: flex;
3695
+ flex: 1.1 1 420px;
3696
+ flex-direction: column;
3697
+ gap: 24px;
3698
+ align-self: flex-start;
3699
+ min-width: 0;
3700
+ padding-top: 10px;
3701
+ }
3702
+ .elb-viz-teaser__page {
3703
+ position: relative;
3704
+ padding: 12px;
3705
+ border: 1.5px dashed transparent;
3706
+ border-radius: var(--radius-xl);
3707
+ transition: border-color calc(var(--motion) * 2) var(--ease), background calc(var(--motion) * 2) var(--ease);
3708
+ }
3709
+ .elb-viz-teaser__page--on {
3710
+ background: color-mix(in srgb, var(--event-globals) 4%, transparent);
3711
+ border-color: var(--event-globals);
3712
+ }
3713
+ .elb-viz-teaser__page-pill {
3714
+ position: absolute;
3715
+ top: -10px;
3716
+ left: 14px;
3717
+ }
3718
+ .elb-viz-teaser__list {
3719
+ display: flex;
3720
+ flex-direction: column;
3721
+ gap: 16px;
3722
+ padding: 14px;
3723
+ border: 1.5px solid var(--viz-surface);
3724
+ border-radius: var(--radius-lg);
3725
+ transition: border-color calc(var(--motion) * 2) var(--ease), background calc(var(--motion) * 2) var(--ease);
3726
+ }
3727
+ .elb-viz-teaser__list--on {
3728
+ background: color-mix(in srgb, var(--event-context) 5%, transparent);
3729
+ border-color: var(--event-context);
3730
+ }
3731
+ .elb-viz-teaser__list-head {
3732
+ display: flex;
3733
+ flex-wrap: wrap;
3734
+ align-items: center;
3735
+ justify-content: space-between;
3736
+ gap: 10px;
3737
+ min-height: 19px;
3738
+ }
3739
+ .elb-viz-teaser__list-label {
3740
+ display: flex;
3741
+ align-items: center;
3742
+ gap: 10px;
3743
+ }
3744
+ .elb-viz-teaser__list-name {
3745
+ color: var(--viz-fg-2);
3746
+ font-family: var(--type-viz-code-family);
3747
+ font-size: var(--type-viz-code-size);
3748
+ }
3749
+ .elb-viz-teaser__list-heading {
3750
+ font-size: var(--type-small-size);
3751
+ font-weight: var(--type-small-weight);
3752
+ }
3753
+ .elb-viz-teaser__cards {
3754
+ display: grid;
3755
+ grid-template-columns: repeat(3, minmax(0, 1fr));
3756
+ gap: var(--space-3);
3757
+ }
3758
+ .elb-viz-teaser__card {
3759
+ position: relative;
3760
+ display: flex;
3761
+ flex-direction: column;
3762
+ gap: var(--space-2);
3763
+ min-height: 224px;
3764
+ padding: 10px;
3765
+ background: transparent;
3766
+ border: 1.5px dashed var(--viz-surface);
3767
+ border-radius: var(--radius-faq);
3768
+ transition: border-color calc(var(--motion) * 2) var(--ease), background calc(var(--motion) * 2) var(--ease);
3769
+ }
3770
+ .elb-viz-teaser__card--entity {
3771
+ background: var(--viz-surface);
3772
+ border-style: solid;
3773
+ border-color: var(--event-entity);
3774
+ }
3775
+ .elb-viz-teaser__pills {
3776
+ position: absolute;
3777
+ top: -10px;
3778
+ left: 10px;
3779
+ display: flex;
3780
+ gap: 4px;
3781
+ }
3782
+ .elb-viz-teaser__fade {
3783
+ opacity: 0;
3784
+ transition:
3785
+ opacity calc(var(--motion) * 2) var(--ease),
3786
+ outline-color calc(var(--motion) * 2) var(--ease),
3787
+ box-shadow calc(var(--motion) * 2) var(--ease);
3788
+ }
3789
+ .elb-viz-teaser__fade--on {
3790
+ opacity: 1;
3791
+ }
3792
+ .elb-viz-teaser__photo {
3793
+ flex: none;
3794
+ height: 86px;
3795
+ border-radius: var(--radius-sm);
3796
+ }
3797
+ .elb-viz-teaser__kicker {
3798
+ align-self: flex-start;
3799
+ padding: 1px 6px;
3800
+ color: var(--viz-fg);
3801
+ background: var(--viz-border);
3802
+ border-radius: var(--radius-xs);
3803
+ font-family: var(--type-viz-code-family);
3804
+ font-size: var(--type-viz-legend-size);
3805
+ letter-spacing: 0.04em;
3806
+ outline: 1.5px solid transparent;
3807
+ }
3808
+ .elb-viz-teaser__title {
3809
+ align-self: flex-start;
3810
+ border-radius: var(--radius-xs);
3811
+ font-size: var(--type-small-size);
3812
+ font-weight: var(--type-small-weight);
3813
+ line-height: 1.3;
3814
+ text-wrap: pretty;
3815
+ outline: 1.5px solid transparent;
3816
+ outline-offset: 2px;
3817
+ }
3818
+ .elb-viz-teaser__link {
3819
+ align-self: flex-start;
3820
+ margin-top: auto;
3821
+ margin-left: -6px;
3822
+ padding: 2px 6px;
3823
+ color: var(--primary);
3824
+ border-radius: var(--radius-xs);
3825
+ font-family: var(--type-viz-chip-family);
3826
+ font-size: var(--type-viz-chip-size);
3827
+ font-weight: var(--type-viz-chip-weight);
3828
+ outline: 1.5px solid transparent;
3829
+ }
3830
+ .elb-viz-teaser__kicker--on,
3831
+ .elb-viz-teaser__title--on {
3832
+ outline-color: var(--event-property);
3833
+ box-shadow: 0 0 10px 1px color-mix(in srgb, var(--event-property) 50%, transparent);
3834
+ }
3835
+ .elb-viz-teaser__link--on {
3836
+ outline-color: var(--event-action);
3837
+ box-shadow: 0 0 10px 1px color-mix(in srgb, var(--event-action) 50%, transparent);
3838
+ }
3839
+ @container (max-width: 639px) {
3840
+ .elb-viz-teaser__pane {
3841
+ position: static;
3842
+ }
3843
+ .elb-viz-teaser__scroll {
3844
+ max-height: 320px;
3845
+ }
3846
+ .elb-viz-teaser__cards {
3847
+ grid-template-columns: minmax(0, 1fr);
3848
+ row-gap: var(--space-5);
3849
+ }
3850
+ .elb-viz-teaser__card {
3851
+ display: grid;
3852
+ grid-template-columns: 72px minmax(0, 1fr);
3853
+ align-content: start;
3854
+ gap: 6px var(--space-3);
3855
+ min-height: 0;
3856
+ }
3857
+ .elb-viz-teaser__photo {
3858
+ grid-row: span 3;
3859
+ height: auto;
3860
+ min-height: 72px;
3861
+ }
3862
+ .elb-viz-teaser__kicker,
3863
+ .elb-viz-teaser__title,
3864
+ .elb-viz-teaser__link {
3865
+ justify-self: start;
3866
+ }
3867
+ .elb-viz-teaser__link {
3868
+ margin-top: 0;
3869
+ }
3870
+ .elb-viz-teaser__page--ahead,
3871
+ .elb-viz-teaser__card--ahead {
3872
+ display: none;
3873
+ }
3874
+ }
1798
3875
  }