@loidolt/theme-styles 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,1316 +1,9 @@
1
- /* Deep slice: assumes the token custom properties are already loaded.
2
- Import '@loidolt/theme-styles/tokens' (or the whole '@loidolt/theme-styles') first. */
3
- .ldt-button {
4
- min-height: var(--loidolt-size-control);
5
- display: inline-flex;
6
- align-items: center;
7
- justify-content: center;
8
- gap: var(--loidolt-space-2);
9
- border: var(--loidolt-border-width) solid var(--loidolt-border-strong);
10
- border-radius: var(--loidolt-border-radius);
11
- padding: 0.5rem 0.85rem;
12
- color: var(--loidolt-text);
13
- background: transparent;
14
- font: var(--loidolt-font-size-sm) var(--loidolt-font-utility);
15
- letter-spacing: 0.08em;
16
- line-height: 1;
17
- text-decoration: none;
18
- text-transform: uppercase;
19
- white-space: nowrap;
20
- }
21
- .ldt-button:hover:not(:disabled, [aria-disabled='true']) {
22
- color: var(--loidolt-text-inverse);
23
- background: var(--loidolt-surface-inverse);
24
- }
25
- .ldt-button--primary {
26
- color: var(--loidolt-on-accent);
27
- border-color: var(--loidolt-accent);
28
- background: var(--loidolt-accent);
29
- }
30
- .ldt-button--primary:hover:not(:disabled, [aria-disabled='true']) {
31
- color: var(--loidolt-on-accent);
32
- border-color: var(--loidolt-accent-hover);
33
- background: var(--loidolt-accent-hover);
34
- }
35
- .ldt-button--quiet {
36
- color: var(--loidolt-text-muted);
37
- border-color: var(--loidolt-border);
38
- }
39
- .ldt-button--danger {
40
- color: var(--loidolt-on-danger);
41
- border-color: var(--loidolt-danger);
42
- background: var(--loidolt-danger);
43
- }
44
- /* Without this, the base hover would flip a destructive button to the neutral inverse
45
- surface — the danger affordance must survive hover. */
46
- .ldt-button--danger:hover:not(:disabled, [aria-disabled='true']) {
47
- color: var(--loidolt-on-danger);
48
- border-color: var(--loidolt-danger-hover);
49
- background: var(--loidolt-danger-hover);
50
- }
51
- .ldt-button--ghost,
52
- .ldt-button--text {
53
- border-color: transparent;
54
- background: transparent;
55
- }
56
- .ldt-button--text {
57
- /* 1.5rem is the WCAG 2.2 minimum target size; `auto` left this at ~22px. */
58
- min-height: 1.5rem;
59
- padding: 0.25rem;
60
- color: var(--loidolt-text-muted);
61
- }
62
- .ldt-button--text:hover:not(:disabled, [aria-disabled='true']) {
63
- color: var(--loidolt-text-accent);
64
- background: transparent;
65
- }
66
- .ldt-button--sm {
67
- min-height: var(--loidolt-size-control-sm);
68
- padding: 0.38rem 0.65rem;
69
- font-size: var(--loidolt-font-size-xs);
70
- }
71
- .ldt-button--lg {
72
- min-height: var(--loidolt-size-control-lg);
73
- padding-inline: 1.2rem;
74
- }
75
- .ldt-button:disabled,
76
- .ldt-button[aria-disabled='true'] {
77
- opacity: 0.4;
78
- cursor: not-allowed;
79
- }
80
- .ldt-icon-button {
81
- width: var(--loidolt-size-control);
82
- min-width: var(--loidolt-size-control);
83
- padding: 0;
84
- }
85
- .ldt-icon-button.ldt-button--sm {
86
- width: var(--loidolt-size-control-sm);
87
- min-width: var(--loidolt-size-control-sm);
88
- padding: 0;
89
- }
90
- .ldt-icon-button.ldt-button--lg {
91
- width: var(--loidolt-size-control-lg);
92
- min-width: var(--loidolt-size-control-lg);
93
- padding: 0;
94
- }
95
- .ldt-spinner {
96
- width: 1em;
97
- height: 1em;
98
- border: 2px solid currentColor;
99
- border-right-color: transparent;
100
- border-radius: 50%;
101
- animation: ldt-spin 0.7s linear infinite;
102
- }
103
- @keyframes ldt-spin {
104
- to {
105
- transform: rotate(360deg);
106
- }
107
- }
108
-
109
- .ldt-field {
110
- display: grid;
111
- gap: 0.35rem;
112
- min-width: 0;
113
- }
114
- .ldt-label,
115
- .ldt-field__label,
116
- .ldt-legend {
117
- display: flex;
118
- justify-content: space-between;
119
- color: var(--loidolt-text-muted);
120
- font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
121
- letter-spacing: var(--loidolt-font-tracking-utility);
122
- text-transform: uppercase;
123
- }
124
- .ldt-field__description {
125
- margin: 0;
126
- color: var(--loidolt-text-muted);
127
- font: var(--loidolt-font-size-xs) / 1.5 var(--loidolt-font-utility);
128
- }
129
- .ldt-field__error {
130
- margin: 0;
131
- /* Status *as text on a surface* — not the fill role, which is tuned for `on-danger` ink. */
132
- color: var(--loidolt-text-danger);
133
- font: var(--loidolt-font-size-xs) / 1.5 var(--loidolt-font-utility);
134
- }
135
- .ldt-input,
136
- .ldt-select,
137
- .ldt-textarea,
138
- .ldt-number-field__input {
139
- width: 100%;
140
- min-height: var(--loidolt-size-control);
141
- border: 0;
142
- border-bottom: var(--loidolt-border-width) solid var(--loidolt-border-control);
143
- border-radius: 0;
144
- padding: 0.45rem 0.15rem;
145
- color: var(--loidolt-text);
146
- background: transparent;
147
- }
148
- .ldt-input--boxed,
149
- .ldt-select--boxed,
150
- .ldt-textarea--boxed,
151
- .ldt-number-field--boxed {
152
- border: var(--loidolt-border-width) solid var(--loidolt-border-control);
153
- padding-inline: 0.65rem;
154
- background: var(--loidolt-surface-input);
155
- }
156
- /* The focus ring itself comes from the `loidolt.a11y` layer; this only tints the border. */
157
- .ldt-input:focus-visible,
158
- .ldt-select:focus-visible,
159
- .ldt-textarea:focus-visible,
160
- .ldt-number-field__input:focus-visible {
161
- border-color: var(--loidolt-accent);
162
- }
163
- .ldt-input[aria-invalid='true'],
164
- .ldt-select[aria-invalid='true'],
165
- .ldt-textarea[aria-invalid='true'] {
166
- border-color: var(--loidolt-danger);
167
- }
168
- .ldt-textarea {
169
- min-height: 6rem;
170
- resize: vertical;
171
- }
172
- .ldt-choice {
173
- /* The label is the pointer target for the input it wraps, so it carries the 24px minimum. */
174
- min-height: 1.5rem;
175
- display: inline-flex;
176
- align-items: center;
177
- gap: 0.55rem;
178
- color: var(--loidolt-text-muted);
179
- font: var(--loidolt-font-size-sm) var(--loidolt-font-utility);
180
- letter-spacing: 0.06em;
181
- }
182
- .ldt-choice input {
183
- width: 1rem;
184
- height: 1rem;
185
- accent-color: var(--loidolt-accent);
186
- }
187
- .ldt-fieldset {
188
- min-width: 0;
189
- margin: 0;
190
- padding: 0;
191
- border: 0;
192
- }
193
- /* A legend is shrink-to-fit by default, which collapses the space-between that pushes the
194
- "optional" marker to the far end. */
195
- .ldt-legend {
196
- width: 100%;
197
- }
198
- .ldt-fieldset__body {
199
- display: grid;
200
- gap: var(--ldt-gap, var(--loidolt-space-3));
201
- margin-top: 0.35rem;
202
- }
203
- .ldt-fieldset > :where(.ldt-field__description, .ldt-field__error) {
204
- margin-top: 0.35rem;
205
- }
206
- .ldt-radio-group {
207
- display: flex;
208
- flex-wrap: wrap;
209
- gap: 0.75rem 1rem;
210
- }
211
- .ldt-radio-group--vertical {
212
- flex-direction: column;
213
- }
214
- .ldt-switch {
215
- min-height: 1.5rem;
216
- display: inline-flex;
217
- align-items: center;
218
- gap: 0.65rem;
219
- border: 0;
220
- padding: 0;
221
- background: transparent;
222
- }
223
- .ldt-switch__track {
224
- width: 2.4rem;
225
- height: 1.25rem;
226
- padding: 2px;
227
- border: var(--loidolt-border-width) solid var(--loidolt-border-control);
228
- background: var(--loidolt-surface-alt);
229
- }
230
- .ldt-switch__thumb {
231
- display: block;
232
- width: 0.9rem;
233
- height: 0.9rem;
234
- background: var(--loidolt-text-muted);
235
- transition: transform var(--loidolt-motion-fast) var(--loidolt-motion-easing);
236
- }
237
- .ldt-switch[aria-checked='true'] .ldt-switch__track {
238
- border-color: var(--loidolt-accent);
239
- background: var(--loidolt-accent);
240
- }
241
- .ldt-switch[aria-checked='true'] .ldt-switch__thumb {
242
- background: var(--loidolt-on-accent);
243
- transform: translateX(1.1rem);
244
- }
245
- .ldt-number-field {
246
- display: grid;
247
- grid-template-columns: 2rem minmax(0, 1fr) 2rem;
248
- border-bottom: var(--loidolt-border-width) solid var(--loidolt-border-control);
249
- }
250
- .ldt-number-field .ldt-number-field__input {
251
- border: 0;
252
- text-align: center;
253
- }
254
- .ldt-number-field__button {
255
- border: 0;
256
- background: transparent;
257
- }
258
- .ldt-number-field__button:hover:not(:disabled, [aria-disabled='true']) {
259
- color: var(--loidolt-text-accent);
260
- background: var(--loidolt-surface-input);
261
- }
262
- .ldt-number-field__button[aria-disabled='true'] {
263
- opacity: 0.4;
264
- cursor: not-allowed;
265
- }
266
-
267
- .ldt-card,
268
- .ldt-panel {
269
- border: var(--loidolt-border-width) solid var(--loidolt-border);
270
- color: var(--loidolt-text);
271
- background: var(--loidolt-surface);
272
- }
273
- .ldt-card__header,
274
- .ldt-card__content,
275
- .ldt-card__footer,
276
- .ldt-panel__header,
277
- .ldt-panel__content,
278
- .ldt-panel__footer {
279
- padding: var(--loidolt-space-4);
280
- }
281
- .ldt-card__header,
282
- .ldt-panel__header {
283
- border-bottom: var(--loidolt-border-width) solid var(--loidolt-border-soft);
284
- }
285
- .ldt-card__footer,
286
- .ldt-panel__footer {
287
- border-top: var(--loidolt-border-width) solid var(--loidolt-border-soft);
288
- }
289
- .ldt-card__title,
290
- .ldt-panel__title {
291
- margin: 0;
292
- font-size: var(--loidolt-font-size-lg);
293
- }
294
- .ldt-card__description {
295
- margin: 0.35rem 0 0;
296
- color: var(--loidolt-text-muted);
297
- font-family: var(--loidolt-font-utility);
298
- font-size: var(--loidolt-font-size-sm);
299
- }
300
- /*
301
- * A badge reports state; it is never pressable. Standing at control height it would otherwise be
302
- * indistinguishable from a button, so three things separate them, none of which depend on hover:
303
- * the pill silhouette against the system's hard corners, the recessed fill instead of a raised
304
- * one, and text that stays a step smaller than button text at every size.
305
- */
306
- .ldt-badge {
307
- display: inline-flex;
308
- align-items: center;
309
- min-height: 1.4rem;
310
- padding: 0.15rem 0.5rem;
311
- border: var(--loidolt-border-width) solid var(--loidolt-border);
312
- border-radius: var(--loidolt-border-radius-pill);
313
- color: var(--loidolt-text-muted);
314
- background: var(--loidolt-surface-sunken);
315
- font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
316
- /* The label voice (`.ldt-eyebrow`, `.ldt-field__label`), not the tighter control voice. */
317
- letter-spacing: var(--loidolt-font-tracking-wide);
318
- text-transform: uppercase;
319
- }
320
- /*
321
- * Size steps take the button scale's *box* so a badge in a row of controls lines up with them,
322
- * but not its type scale — the smaller text is part of what marks the badge as inert. Without a
323
- * size class the badge keeps its compact inline metrics, which is what table cells and running
324
- * copy want.
325
- */
326
- .ldt-badge--sm {
327
- min-height: var(--loidolt-size-control-sm);
328
- padding: 0.38rem 0.7rem;
329
- line-height: 1;
330
- }
331
- .ldt-badge--md {
332
- min-height: var(--loidolt-size-control);
333
- padding: 0.5rem 0.9rem;
334
- line-height: 1;
335
- }
336
- .ldt-badge--lg {
337
- min-height: var(--loidolt-size-control-lg);
338
- padding: 0.5rem 1.25rem;
339
- line-height: 1;
340
- }
341
- .ldt-badge--accent {
342
- color: var(--loidolt-on-accent);
343
- border-color: var(--loidolt-accent);
344
- background: var(--loidolt-accent);
345
- }
346
- .ldt-badge--success {
347
- color: var(--loidolt-on-success);
348
- border-color: var(--loidolt-success);
349
- background: var(--loidolt-success);
350
- }
351
- .ldt-badge--warning {
352
- color: var(--loidolt-on-warning);
353
- border-color: var(--loidolt-warning);
354
- background: var(--loidolt-warning);
355
- }
356
- .ldt-badge--error {
357
- color: var(--loidolt-on-danger);
358
- border-color: var(--loidolt-danger);
359
- background: var(--loidolt-danger);
360
- }
361
- .ldt-badge--info {
362
- color: var(--loidolt-on-info);
363
- border-color: var(--loidolt-info);
364
- background: var(--loidolt-info);
365
- }
366
- .ldt-separator {
367
- width: 100%;
368
- height: var(--loidolt-border-width);
369
- border: 0;
370
- background: var(--loidolt-border);
371
- }
372
- .ldt-separator--vertical {
373
- width: var(--loidolt-border-width);
374
- height: auto;
375
- min-height: 1em;
376
- align-self: stretch;
377
- }
378
- .ldt-table-wrap {
379
- width: 100%;
380
- overflow-x: auto;
381
- border: var(--loidolt-border-width) solid var(--loidolt-border);
382
- }
383
- .ldt-table {
384
- width: 100%;
385
- border-collapse: collapse;
386
- color: var(--loidolt-text);
387
- background: var(--loidolt-surface);
388
- }
389
- .ldt-table :where(th, td) {
390
- padding: 0.7rem 0.8rem;
391
- border-bottom: var(--loidolt-border-width) solid var(--loidolt-border-soft);
392
- text-align: left;
393
- }
394
- .ldt-table th {
395
- color: var(--loidolt-text-muted);
396
- font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
397
- letter-spacing: var(--loidolt-font-tracking-utility);
398
- text-transform: uppercase;
399
- }
400
- .ldt-table tbody tr:last-child td {
401
- border-bottom: 0;
402
- }
403
- /* Logical values: an `end`-aligned column follows the writing direction rather than pinning
404
- itself to the right in RTL. */
405
- .ldt-table :where(th, td)[data-align='start'] {
406
- text-align: start;
407
- }
408
- .ldt-table :where(th, td)[data-align='center'] {
409
- text-align: center;
410
- }
411
- .ldt-table :where(th, td)[data-align='end'] {
412
- text-align: end;
413
- }
414
- /*
415
- * Sticky header. The scroll container has to be bounded or there is nothing to stick within —
416
- * `--ldt-table-height` is that bound, and the wrapper switches to two-axis scrolling.
417
- */
418
- .ldt-table-wrap--sticky {
419
- max-height: var(--ldt-table-height, 24rem);
420
- overflow: auto;
421
- }
422
- .ldt-table--sticky thead :where(th) {
423
- position: sticky;
424
- z-index: var(--loidolt-z-raised);
425
- top: 0;
426
- background: var(--loidolt-surface-alt);
427
- /* `border-collapse: collapse` drops the borders of a sticky cell — the collapsed edge belongs
428
- to the table, which scrolls away. An inset shadow is painted by the cell itself and stays. */
429
- border-bottom: 0;
430
- box-shadow: inset 0 -1px 0 var(--loidolt-border);
431
- }
432
- .ldt-table__sort {
433
- display: inline-flex;
434
- align-items: center;
435
- gap: 0.4rem;
436
- border: 0;
437
- padding: 0;
438
- color: inherit;
439
- background: transparent;
440
- font: inherit;
441
- letter-spacing: inherit;
442
- text-transform: inherit;
443
- cursor: pointer;
444
- }
445
- .ldt-table__sort:hover {
446
- color: var(--loidolt-text);
447
- }
448
- /* A CSS triangle rather than a glyph: no icon dependency, and nothing that can fall back to
449
- tofu in a font that lacks the arrow. */
450
- .ldt-table__sort-indicator {
451
- width: 0;
452
- height: 0;
453
- border-inline: 0.3rem solid transparent;
454
- border-bottom: 0.34rem solid currentColor;
455
- opacity: 0;
456
- }
457
- .ldt-table__sort:hover .ldt-table__sort-indicator {
458
- opacity: 0.4;
459
- }
460
- .ldt-table__sort[data-sort='ascending'] .ldt-table__sort-indicator,
461
- .ldt-table__sort[data-sort='descending'] .ldt-table__sort-indicator {
462
- opacity: 1;
463
- }
464
- .ldt-table__sort[data-sort='descending'] .ldt-table__sort-indicator {
465
- transform: rotate(180deg);
466
- }
467
- .ldt-table__empty td {
468
- padding: 0;
469
- border-bottom: 0;
470
- }
471
- /* Inside a table the surrounding rule is already the boundary; a second dashed one reads as a
472
- rendering fault. */
473
- .ldt-table__empty .ldt-empty-state {
474
- border: 0;
475
- }
476
- .ldt-empty-state {
477
- display: grid;
478
- justify-items: center;
479
- gap: 0.5rem;
480
- padding: var(--loidolt-space-10) var(--loidolt-space-6);
481
- border: var(--loidolt-border-width) dashed var(--loidolt-border);
482
- color: var(--loidolt-text-muted);
483
- background: var(--loidolt-surface);
484
- text-align: center;
485
- }
486
- .ldt-empty-state__icon {
487
- color: var(--loidolt-text-muted);
488
- font-size: var(--loidolt-font-size-xl);
489
- line-height: 1;
490
- }
491
- .ldt-empty-state__title {
492
- margin: 0;
493
- color: var(--loidolt-text);
494
- font-size: var(--loidolt-font-size-md);
495
- }
496
- .ldt-empty-state__description {
497
- max-width: 42rem;
498
- margin: 0;
499
- }
500
- .ldt-empty-state__actions {
501
- display: flex;
502
- flex-wrap: wrap;
503
- justify-content: center;
504
- gap: var(--loidolt-space-2);
505
- margin-top: var(--loidolt-space-2);
506
- }
507
-
508
- .ldt-alert {
509
- padding: 0.8rem 1rem;
510
- border: var(--loidolt-border-width) solid var(--loidolt-border);
511
- border-left: 3px solid var(--loidolt-info);
512
- color: var(--loidolt-text);
513
- background: var(--loidolt-surface);
514
- }
515
- .ldt-alert--info {
516
- border-left-color: var(--loidolt-info);
517
- }
518
- .ldt-alert--success {
519
- border-left-color: var(--loidolt-success);
520
- }
521
- .ldt-alert--warning {
522
- border-left-color: var(--loidolt-warning);
523
- }
524
- .ldt-alert--error {
525
- border-left-color: var(--loidolt-danger);
526
- }
527
- .ldt-alert__title {
528
- margin: 0 0 0.2rem;
529
- font: var(--loidolt-font-size-sm) var(--loidolt-font-utility);
530
- letter-spacing: 0.06em;
531
- text-transform: uppercase;
532
- }
533
- .ldt-alert__description {
534
- margin: 0;
535
- color: var(--loidolt-text-muted);
536
- }
537
- .ldt-progress {
538
- width: 100%;
539
- height: 0.35rem;
540
- overflow: hidden;
541
- background: var(--loidolt-border-soft);
542
- }
543
- .ldt-progress__bar {
544
- width: 100%;
545
- height: 100%;
546
- background: var(--loidolt-accent);
547
- /*
548
- * Scale rather than animate `width`: a width transition relayouts on every frame, while a
549
- * transform is composited. `--ldt-progress-value` is the 0..1 fraction, set by the component.
550
- */
551
- transform: scaleX(var(--ldt-progress-value, 0));
552
- transform-origin: left center;
553
- transition: transform var(--loidolt-motion-normal) var(--loidolt-motion-easing);
554
- }
555
- .ldt-progress--indeterminate .ldt-progress__bar {
556
- width: 40%;
557
- transform: none;
558
- animation: ldt-progress-slide 1.2s var(--loidolt-motion-easing) infinite;
559
- }
560
- @keyframes ldt-progress-slide {
561
- from {
562
- transform: translateX(-100%);
563
- }
564
- to {
565
- transform: translateX(250%);
566
- }
567
- }
568
- .ldt-skeleton {
569
- min-height: 1rem;
570
- background: linear-gradient(
571
- 90deg,
572
- var(--loidolt-border-soft),
573
- var(--loidolt-surface),
574
- var(--loidolt-border-soft)
575
- );
576
- background-size: 200% 100%;
577
- animation: ldt-shimmer 1.5s linear infinite;
578
- }
579
- @keyframes ldt-shimmer {
580
- to {
581
- background-position: -200% 0;
582
- }
583
- }
584
- .ldt-toast-viewport {
585
- position: fixed;
586
- z-index: var(--loidolt-z-toast);
587
- right: 1rem;
588
- bottom: 1rem;
589
- display: grid;
590
- width: min(24rem, calc(100vw - 2rem));
591
- gap: 0.5rem;
592
- }
593
- .ldt-toast {
594
- display: grid;
595
- grid-template-columns: minmax(0, 1fr) auto;
596
- gap: 0.4rem 1rem;
597
- padding: 0.8rem 1rem;
598
- border: var(--loidolt-border-width) solid var(--loidolt-border-strong);
599
- border-left: 3px solid var(--loidolt-border-strong);
600
- color: var(--loidolt-text);
601
- background: var(--loidolt-surface);
602
- box-shadow: var(--loidolt-shadow-popover);
603
- }
604
- .ldt-toast--info {
605
- border-left-color: var(--loidolt-info);
606
- }
607
- .ldt-toast--success {
608
- border-left-color: var(--loidolt-success);
609
- }
610
- .ldt-toast--warning {
611
- border-left-color: var(--loidolt-warning);
612
- }
613
- .ldt-toast--error {
614
- border-left-color: var(--loidolt-danger);
615
- }
616
- .ldt-toast__title {
617
- font: var(--loidolt-font-size-sm) var(--loidolt-font-utility);
618
- letter-spacing: 0.06em;
619
- text-transform: uppercase;
620
- }
621
- .ldt-toast__description {
622
- grid-column: 1;
623
- margin: 0;
624
- color: var(--loidolt-text-muted);
625
- }
626
- .ldt-toast__dismiss {
627
- grid-area: 1 / 2 / span 2 / auto;
628
- align-self: start;
629
- }
630
-
631
- .ldt-overlay {
632
- position: fixed;
633
- z-index: var(--loidolt-z-overlay);
634
- inset: 0;
635
- background: var(--loidolt-scrim);
636
- }
637
- .ldt-dialog {
638
- position: fixed;
639
- z-index: var(--loidolt-z-dialog);
640
- top: 50%;
641
- left: 50%;
642
- display: grid;
643
- width: min(var(--ldt-dialog-width, 34rem), calc(100vw - 2rem));
644
- max-height: min(48rem, calc(100dvh - 2rem));
645
- overflow: hidden;
646
- border: var(--loidolt-border-width) solid var(--loidolt-border-strong);
647
- color: var(--loidolt-text);
648
- background: var(--loidolt-surface);
649
- box-shadow: var(--loidolt-shadow-modal);
650
- transform: translate(-50%, -50%);
651
- }
652
- .ldt-dialog--sm {
653
- --ldt-dialog-width: 24rem;
654
- }
655
- .ldt-dialog--md {
656
- --ldt-dialog-width: 34rem;
657
- }
658
- .ldt-dialog--lg {
659
- --ldt-dialog-width: 46rem;
660
- }
661
- .ldt-dialog--xl {
662
- --ldt-dialog-width: 60rem;
663
- }
664
- .ldt-dialog__header,
665
- .ldt-dialog__body,
666
- .ldt-dialog__footer {
667
- padding: 1rem 1.25rem;
668
- }
669
- .ldt-dialog__header {
670
- display: flex;
671
- align-items: start;
672
- justify-content: space-between;
673
- gap: 1rem;
674
- border-bottom: var(--loidolt-border-width) solid var(--loidolt-border);
675
- }
676
- .ldt-dialog__body {
677
- overflow-y: auto;
678
- }
679
- .ldt-dialog__footer {
680
- display: flex;
681
- justify-content: flex-end;
682
- gap: 0.5rem;
683
- border-top: var(--loidolt-border-width) solid var(--loidolt-border);
684
- }
685
- .ldt-dialog__title {
686
- margin: 0;
687
- font-size: var(--loidolt-font-size-lg);
688
- }
689
- .ldt-dialog__description {
690
- margin: 0.25rem 0 0;
691
- color: var(--loidolt-text-muted);
692
- }
693
- /*
694
- * Drawer: a dialog anchored to an edge. `--ldt-drawer-size` is the measure across that edge —
695
- * width for left/right, height for top/bottom — always capped so the scrim stays reachable and
696
- * the panel never becomes a full-screen trap with no visible way out.
697
- */
698
- .ldt-drawer {
699
- position: fixed;
700
- z-index: var(--loidolt-z-dialog);
701
- display: grid;
702
- grid-template-rows: auto minmax(0, 1fr) auto;
703
- overflow: hidden;
704
- border: 0 solid var(--loidolt-border-strong);
705
- color: var(--loidolt-text);
706
- background: var(--loidolt-surface);
707
- box-shadow: var(--loidolt-shadow-modal);
708
- }
709
- .ldt-drawer--left,
710
- .ldt-drawer--right {
711
- inset-block: 0;
712
- width: min(var(--ldt-drawer-size, 20rem), calc(100vw - 3rem));
713
- }
714
- .ldt-drawer--left {
715
- left: 0;
716
- border-right-width: var(--loidolt-border-width);
717
- animation: ldt-drawer-in-left var(--loidolt-motion-slow) var(--loidolt-motion-easing);
718
- }
719
- .ldt-drawer--right {
720
- right: 0;
721
- border-left-width: var(--loidolt-border-width);
722
- animation: ldt-drawer-in-right var(--loidolt-motion-slow) var(--loidolt-motion-easing);
723
- }
724
- .ldt-drawer--top,
725
- .ldt-drawer--bottom {
726
- inset-inline: 0;
727
- height: min(var(--ldt-drawer-size, 20rem), calc(100dvh - 3rem));
728
- }
729
- .ldt-drawer--top {
730
- top: 0;
731
- border-bottom-width: var(--loidolt-border-width);
732
- animation: ldt-drawer-in-top var(--loidolt-motion-slow) var(--loidolt-motion-easing);
733
- }
734
- .ldt-drawer--bottom {
735
- bottom: 0;
736
- border-top-width: var(--loidolt-border-width);
737
- animation: ldt-drawer-in-bottom var(--loidolt-motion-slow) var(--loidolt-motion-easing);
738
- }
739
- @keyframes ldt-drawer-in-left {
740
- from {
741
- transform: translateX(-100%);
742
- }
743
- }
744
- @keyframes ldt-drawer-in-right {
745
- from {
746
- transform: translateX(100%);
747
- }
748
- }
749
- @keyframes ldt-drawer-in-top {
750
- from {
751
- transform: translateY(-100%);
752
- }
753
- }
754
- @keyframes ldt-drawer-in-bottom {
755
- from {
756
- transform: translateY(100%);
757
- }
758
- }
759
- .ldt-drawer__header,
760
- .ldt-drawer__body,
761
- .ldt-drawer__footer {
762
- padding: 1rem 1.25rem;
763
- }
764
- .ldt-drawer__header {
765
- display: flex;
766
- align-items: start;
767
- justify-content: space-between;
768
- gap: 1rem;
769
- border-bottom: var(--loidolt-border-width) solid var(--loidolt-border);
770
- }
771
- .ldt-drawer__body {
772
- overflow-y: auto;
773
- }
774
- .ldt-drawer__footer {
775
- display: flex;
776
- justify-content: flex-end;
777
- gap: 0.5rem;
778
- border-top: var(--loidolt-border-width) solid var(--loidolt-border);
779
- }
780
- .ldt-drawer__title {
781
- margin: 0;
782
- font-size: var(--loidolt-font-size-lg);
783
- }
784
- .ldt-drawer__description {
785
- margin: 0.25rem 0 0;
786
- color: var(--loidolt-text-muted);
787
- }
788
- .ldt-popover,
789
- .ldt-menu {
790
- z-index: var(--loidolt-z-menu);
791
- min-width: 13rem;
792
- max-width: min(22rem, calc(100vw - 2rem));
793
- padding: 0.45rem;
794
- border: var(--loidolt-border-width) solid var(--loidolt-border-strong);
795
- color: var(--loidolt-text);
796
- background: var(--loidolt-surface);
797
- box-shadow: var(--loidolt-shadow-popover);
798
- }
799
- .ldt-menu {
800
- display: grid;
801
- gap: 0.1rem;
802
- }
803
- .ldt-menu__label {
804
- padding: 0.45rem 0.55rem 0.3rem;
805
- color: var(--loidolt-text-accent);
806
- font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
807
- letter-spacing: 0.09em;
808
- text-transform: uppercase;
809
- }
810
- .ldt-menu__item {
811
- width: 100%;
812
- display: flex;
813
- align-items: center;
814
- justify-content: space-between;
815
- gap: 1rem;
816
- border: 0;
817
- padding: 0.65rem 0.55rem;
818
- color: var(--loidolt-text);
819
- background: transparent;
820
- text-align: left;
821
- text-decoration: none;
822
- }
823
- .ldt-menu__item:hover:not(:disabled, [data-disabled]),
824
- .ldt-menu__item[data-highlighted] {
825
- color: var(--loidolt-text-inverse);
826
- background: var(--loidolt-surface-inverse);
827
- }
828
- /* Exposed to assistive tech (no aria-hidden): a shortcut nobody can hear may as well
829
- not exist. Muted normally; inherits the inverse ink while highlighted. */
830
- .ldt-menu__hint {
831
- color: var(--loidolt-text-muted);
832
- font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
833
- letter-spacing: 0.08em;
834
- }
835
- .ldt-menu__item:hover:not(:disabled, [data-disabled]) .ldt-menu__hint,
836
- .ldt-menu__item[data-highlighted] .ldt-menu__hint {
837
- color: inherit;
838
- }
839
- .ldt-menu__item[data-disabled],
840
- .ldt-menu__item:disabled {
841
- opacity: 0.4;
842
- cursor: not-allowed;
843
- }
844
- .ldt-menu__separator {
845
- height: var(--loidolt-border-width);
846
- margin: 0.25rem 0;
847
- border: 0;
848
- background: var(--loidolt-border-soft);
849
- }
850
- .ldt-tooltip {
851
- z-index: var(--loidolt-z-tooltip);
852
- max-width: 18rem;
853
- padding: 0.4rem 0.55rem;
854
- color: var(--loidolt-text-inverse);
855
- background: var(--loidolt-surface-inverse);
856
- font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
857
- box-shadow: var(--loidolt-shadow-popover);
858
- }
859
- /*
860
- * Bits UI stamps `data-orientation` on the root, list, triggers and panels, so the vertical
861
- * layout keys off that rather than needing a second class.
862
- */
863
- .ldt-tabs[data-orientation='vertical'] {
864
- display: grid;
865
- grid-template-columns: auto minmax(0, 1fr);
866
- gap: var(--loidolt-space-4);
867
- }
868
- .ldt-tabs__list {
869
- display: flex;
870
- gap: 2px;
871
- border-bottom: var(--loidolt-border-width) solid var(--loidolt-border);
872
- }
873
- .ldt-tabs__list[data-orientation='vertical'] {
874
- flex-direction: column;
875
- align-items: stretch;
876
- border-bottom: 0;
877
- border-right: var(--loidolt-border-width) solid var(--loidolt-border);
878
- }
879
- .ldt-tabs__trigger {
880
- min-height: var(--loidolt-size-control);
881
- border: 0;
882
- border-bottom: 2px solid transparent;
883
- padding: 0 0.85rem;
884
- color: var(--loidolt-text-muted);
885
- background: transparent;
886
- font: var(--loidolt-font-size-sm) var(--loidolt-font-utility);
887
- letter-spacing: 0.08em;
888
- text-transform: uppercase;
889
- }
890
- .ldt-tabs__trigger[data-orientation='vertical'] {
891
- border-bottom: 0;
892
- border-right: 2px solid transparent;
893
- padding: 0 0.85rem;
894
- text-align: left;
895
- }
896
- .ldt-tabs__trigger[data-state='active'],
897
- .ldt-tabs__trigger[aria-selected='true'] {
898
- color: var(--loidolt-text);
899
- border-color: var(--loidolt-accent);
900
- }
901
- .ldt-tabs__content[data-orientation='vertical'] {
902
- padding-block: 0;
903
- }
904
- .ldt-tabs__content {
905
- padding-block: 1rem;
906
- }
907
-
908
- .ldt-accordion {
909
- border-top: var(--loidolt-border-width) solid var(--loidolt-border);
910
- }
911
- .ldt-accordion__item {
912
- border-bottom: var(--loidolt-border-width) solid var(--loidolt-border);
913
- }
914
- .ldt-accordion__heading {
915
- margin: 0;
916
- }
917
- .ldt-accordion__trigger {
918
- width: 100%;
919
- min-height: var(--loidolt-size-control-lg);
920
- display: flex;
921
- align-items: center;
922
- justify-content: space-between;
923
- gap: 1rem;
924
- border: 0;
925
- padding: 0.75rem 0;
926
- color: var(--loidolt-text);
927
- background: transparent;
928
- font: var(--loidolt-font-size-sm) var(--loidolt-font-utility);
929
- letter-spacing: 0.08em;
930
- text-align: left;
931
- text-transform: uppercase;
932
- }
933
- .ldt-accordion__trigger:hover:not([data-disabled]) {
934
- color: var(--loidolt-text-accent);
935
- }
936
- .ldt-accordion__trigger[data-disabled] {
937
- opacity: 0.4;
938
- cursor: not-allowed;
939
- }
940
- .ldt-accordion__indicator {
941
- width: 0;
942
- height: 0;
943
- flex: 0 0 auto;
944
- border-inline: 0.3rem solid transparent;
945
- border-top: 0.34rem solid currentColor;
946
- transition: transform var(--loidolt-motion-normal) var(--loidolt-motion-easing);
947
- }
948
- .ldt-accordion__trigger[data-state='open'] .ldt-accordion__indicator {
949
- transform: rotate(180deg);
950
- }
951
- .ldt-accordion__body {
952
- padding-bottom: 1rem;
953
- color: var(--loidolt-text-muted);
954
- }
955
- .ldt-toggle-group {
956
- display: inline-flex;
957
- border: var(--loidolt-border-width) solid var(--loidolt-border-strong);
958
- }
959
- .ldt-toggle-group[data-orientation='vertical'] {
960
- flex-direction: column;
961
- }
962
- .ldt-toggle-group__item {
963
- min-height: var(--loidolt-size-control);
964
- display: inline-flex;
965
- align-items: center;
966
- justify-content: center;
967
- gap: 0.4rem;
968
- border: 0;
969
- padding: 0 0.85rem;
970
- color: var(--loidolt-text-muted);
971
- background: transparent;
972
- font: var(--loidolt-font-size-sm) var(--loidolt-font-utility);
973
- letter-spacing: 0.08em;
974
- line-height: 1;
975
- text-transform: uppercase;
976
- white-space: nowrap;
977
- }
978
- /* One shared rule between neighbours, so the group reads as a single object rather than a row
979
- of separate buttons. */
980
- .ldt-toggle-group__item + .ldt-toggle-group__item {
981
- border-left: var(--loidolt-border-width) solid var(--loidolt-border);
982
- }
983
- .ldt-toggle-group[data-orientation='vertical'] .ldt-toggle-group__item + .ldt-toggle-group__item {
984
- border-left: 0;
985
- border-top: var(--loidolt-border-width) solid var(--loidolt-border);
986
- }
987
- .ldt-toggle-group__item:hover:not([data-disabled], :disabled) {
988
- color: var(--loidolt-text);
989
- }
990
- .ldt-toggle-group__item[data-state='on'] {
991
- color: var(--loidolt-on-accent);
992
- background: var(--loidolt-accent);
993
- }
994
- .ldt-toggle-group__item[data-state='on']:hover:not([data-disabled], :disabled) {
995
- color: var(--loidolt-on-accent);
996
- background: var(--loidolt-accent-hover);
997
- }
998
- .ldt-toggle-group__item[data-disabled],
999
- .ldt-toggle-group__item:disabled {
1000
- opacity: 0.4;
1001
- cursor: not-allowed;
1002
- }
1003
- .ldt-toggle-group--sm .ldt-toggle-group__item {
1004
- min-height: var(--loidolt-size-control-sm);
1005
- padding: 0 0.65rem;
1006
- font-size: var(--loidolt-font-size-xs);
1007
- }
1008
- .ldt-toggle-group--lg .ldt-toggle-group__item {
1009
- min-height: var(--loidolt-size-control-lg);
1010
- padding: 0 1.2rem;
1011
- }
1012
- .ldt-breadcrumbs__list {
1013
- display: flex;
1014
- flex-wrap: wrap;
1015
- align-items: center;
1016
- gap: 0.35rem 0.5rem;
1017
- margin: 0;
1018
- padding: 0;
1019
- list-style: none;
1020
- }
1021
- .ldt-breadcrumbs__item {
1022
- min-width: 0;
1023
- display: inline-flex;
1024
- align-items: center;
1025
- gap: 0.5rem;
1026
- }
1027
- /* Generated content, so the separator is never selected, copied, or read aloud. */
1028
- .ldt-breadcrumbs__item + .ldt-breadcrumbs__item::before {
1029
- content: var(--ldt-breadcrumb-separator, '/');
1030
- color: var(--loidolt-text-muted);
1031
- }
1032
- .ldt-breadcrumbs__link,
1033
- .ldt-breadcrumbs__current {
1034
- overflow: hidden;
1035
- font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
1036
- letter-spacing: var(--loidolt-font-tracking-utility);
1037
- text-overflow: ellipsis;
1038
- text-transform: uppercase;
1039
- white-space: nowrap;
1040
- }
1041
- .ldt-breadcrumbs__link {
1042
- color: var(--loidolt-text-muted);
1043
- text-decoration: none;
1044
- }
1045
- .ldt-breadcrumbs__link:hover {
1046
- color: var(--loidolt-text-accent);
1047
- text-decoration: underline;
1048
- }
1049
- .ldt-breadcrumbs__current {
1050
- color: var(--loidolt-text);
1051
- }
1052
- .ldt-pagination__list {
1053
- display: flex;
1054
- flex-wrap: wrap;
1055
- align-items: center;
1056
- gap: 0.3rem;
1057
- }
1058
- .ldt-pagination__ellipsis {
1059
- padding-inline: 0.35rem;
1060
- color: var(--loidolt-text-muted);
1061
- }
1062
- .ldt-pagination__page {
1063
- min-width: var(--loidolt-size-control-sm);
1064
- }
1065
- .ldt-pagination__page[aria-current='page'],
1066
- /* The base button hover is more specific than a plain `[aria-current]` rule, so the current
1067
- page needs its own hover or it flips to the neutral inverse surface on the way past. */
1068
- .ldt-pagination__page[aria-current='page']:hover:not(:disabled, [aria-disabled='true']) {
1069
- color: var(--loidolt-on-accent);
1070
- border-color: var(--loidolt-accent);
1071
- background: var(--loidolt-accent);
1072
- }
1073
- .ldt-app-shell {
1074
- min-height: 100dvh;
1075
- display: grid;
1076
- grid-template-rows: auto minmax(0, 1fr) auto;
1077
- /*
1078
- * Without an explicit column the implicit one is content-sized, so anything too wide for the
1079
- * viewport — a topbar with many links, a wide table — stretched the entire shell and put the
1080
- * page into horizontal scroll. `minmax(0, 1fr)` caps it at the container width.
1081
- */
1082
- grid-template-columns: minmax(0, 1fr);
1083
- color: var(--loidolt-text);
1084
- background: var(--loidolt-background);
1085
- }
1086
- .ldt-app-shell > :where(header, main, footer) {
1087
- min-width: 0;
1088
- }
1089
- .ldt-topbar {
1090
- min-width: 0;
1091
- min-height: var(--loidolt-size-topbar);
1092
- display: flex;
1093
- /* Reflow at whatever width runs out of room, rather than only at the compact breakpoint. */
1094
- flex-wrap: wrap;
1095
- align-items: center;
1096
- gap: 1.25rem;
1097
- padding: 0 1.35rem;
1098
- color: var(--loidolt-text);
1099
- background: var(--loidolt-surface);
1100
- }
1101
- .ldt-brand {
1102
- display: inline-flex;
1103
- flex: 0 0 auto;
1104
- align-items: baseline;
1105
- gap: 0.55rem;
1106
- color: var(--loidolt-text);
1107
- text-decoration: none;
1108
- }
1109
- .ldt-brand:hover {
1110
- text-decoration: none;
1111
- }
1112
- .ldt-brand__name {
1113
- font-size: var(--loidolt-font-size-lg);
1114
- font-weight: 500;
1115
- letter-spacing: -0.02em;
1116
- }
1117
- .ldt-brand__meta {
1118
- color: var(--loidolt-text-accent);
1119
- font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
1120
- letter-spacing: 0.12em;
1121
- text-transform: uppercase;
1122
- }
1123
- .ldt-topbar__nav {
1124
- /*
1125
- * Flex items refuse to shrink below their content width without `min-width: 0`, so a nav
1126
- * with more links than room pushed the whole page into horizontal scroll. Let it shrink,
1127
- * and scroll on its own when even the wrapped layout cannot fit the links.
1128
- */
1129
- min-width: 0;
1130
- display: flex;
1131
- align-self: stretch;
1132
- overflow-x: auto;
1133
- scrollbar-width: thin;
1134
- }
1135
- .ldt-topbar__actions {
1136
- min-width: 0;
1137
- margin-left: auto;
1138
- display: flex;
1139
- align-items: center;
1140
- gap: 0.4rem;
1141
- }
1142
- .ldt-nav-menu {
1143
- min-height: var(--loidolt-size-control);
1144
- display: inline-flex;
1145
- align-items: center;
1146
- gap: 0.35rem;
1147
- border: 0;
1148
- border-bottom: 2px solid transparent;
1149
- padding: 0 0.75rem;
1150
- color: var(--loidolt-text-muted);
1151
- background: transparent;
1152
- font: var(--loidolt-font-size-sm) var(--loidolt-font-utility);
1153
- letter-spacing: 0.08em;
1154
- text-transform: uppercase;
1155
- }
1156
- .ldt-nav-menu:hover:not(:disabled, [aria-disabled='true']) {
1157
- color: var(--loidolt-text);
1158
- }
1159
- .ldt-nav-menu[data-state='open'] {
1160
- color: var(--loidolt-text);
1161
- }
1162
- .ldt-nav-menu--active,
1163
- .ldt-nav-menu[aria-current='page'] {
1164
- color: var(--loidolt-text);
1165
- border-bottom-color: var(--loidolt-accent);
1166
- }
1167
- .ldt-contextbar {
1168
- min-width: 0;
1169
- min-height: var(--loidolt-size-contextbar);
1170
- display: flex;
1171
- align-items: center;
1172
- justify-content: space-between;
1173
- gap: 1rem;
1174
- padding: 0.4rem 1.35rem;
1175
- border-block: var(--loidolt-border-width) solid var(--loidolt-border);
1176
- color: var(--loidolt-text);
1177
- background: var(--loidolt-surface-alt);
1178
- }
1179
- .ldt-contextbar__location {
1180
- min-width: 0;
1181
- display: flex;
1182
- align-items: baseline;
1183
- gap: 0.65rem;
1184
- }
1185
- .ldt-contextbar__section {
1186
- flex: 0 0 auto;
1187
- color: var(--loidolt-text-accent);
1188
- font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
1189
- letter-spacing: 0.1em;
1190
- text-transform: uppercase;
1191
- }
1192
- .ldt-contextbar__actions {
1193
- flex: 0 0 auto;
1194
- display: flex;
1195
- align-items: center;
1196
- gap: var(--ldt-gap, var(--loidolt-space-2));
1197
- }
1198
- .ldt-contextbar__title,
1199
- .ldt-contextbar__detail {
1200
- overflow: hidden;
1201
- text-overflow: ellipsis;
1202
- white-space: nowrap;
1203
- }
1204
- .ldt-contextbar__detail {
1205
- color: var(--loidolt-text-muted);
1206
- font: var(--loidolt-font-size-xs) var(--loidolt-font-utility);
1207
- }
1208
- .ldt-workspace {
1209
- min-width: 0;
1210
- min-height: 0;
1211
- display: grid;
1212
- grid-template-columns: minmax(0, 1fr);
1213
- }
1214
- .ldt-workspace--sidebar {
1215
- grid-template-columns: var(--ldt-sidebar-width, var(--loidolt-size-sidebar)) minmax(0, 1fr);
1216
- }
1217
- .ldt-workspace--inspector {
1218
- grid-template-columns: minmax(0, 1fr) var(--ldt-inspector-width, var(--loidolt-size-inspector));
1219
- }
1220
- .ldt-workspace--sidebar.ldt-workspace--inspector {
1221
- grid-template-columns: var(--ldt-sidebar-width, var(--loidolt-size-sidebar)) minmax(0, 1fr) var(
1222
- --ldt-inspector-width,
1223
- var(--loidolt-size-inspector)
1224
- );
1225
- }
1226
- .ldt-sidebar {
1227
- min-width: 0;
1228
- overflow-y: auto;
1229
- padding: 1.25rem;
1230
- border-right: var(--loidolt-border-width) solid var(--loidolt-border);
1231
- color: var(--loidolt-text);
1232
- background: var(--loidolt-surface);
1233
- }
1234
- .ldt-sidebar--right {
1235
- border-right: 0;
1236
- border-left: var(--loidolt-border-width) solid var(--loidolt-border);
1237
- }
1238
- .ldt-workspace__main {
1239
- min-width: 0;
1240
- padding: var(--loidolt-space-6);
1241
- }
1242
- .ldt-page-header {
1243
- display: flex;
1244
- align-items: end;
1245
- justify-content: space-between;
1246
- gap: 1rem;
1247
- margin-bottom: var(--loidolt-space-6);
1248
- padding-bottom: var(--loidolt-space-4);
1249
- border-bottom: var(--loidolt-border-width) solid var(--loidolt-border);
1250
- }
1251
- .ldt-page-header__title {
1252
- margin: 0;
1253
- font-size: var(--loidolt-font-size-xl);
1254
- }
1255
- .ldt-page-header__description {
1256
- max-width: 48rem;
1257
- margin: 0.4rem 0 0;
1258
- color: var(--loidolt-text-muted);
1259
- }
1260
- .ldt-section {
1261
- padding-block: var(--loidolt-space-6);
1262
- border-bottom: var(--loidolt-border-width) solid var(--loidolt-border-soft);
1263
- }
1264
- .ldt-section__heading {
1265
- display: flex;
1266
- align-items: baseline;
1267
- justify-content: space-between;
1268
- gap: 1rem;
1269
- margin-bottom: var(--loidolt-space-4);
1270
- }
1271
- .ldt-section__title {
1272
- margin: 0;
1273
- font-size: var(--loidolt-font-size-lg);
1274
- }
1275
-
1276
- /* Single breakpoint, mirroring `tokens.breakpoints.compact`. */
1277
- @media (max-width: 760px) {
1278
- .ldt-topbar {
1279
- min-height: auto;
1280
- padding-block: 0.75rem;
1281
- gap: 0.75rem;
1282
- }
1283
- .ldt-topbar__actions {
1284
- width: 100%;
1285
- margin-left: 0;
1286
- overflow-x: auto;
1287
- }
1288
- .ldt-contextbar {
1289
- align-items: start;
1290
- }
1291
- .ldt-contextbar__location {
1292
- display: grid;
1293
- gap: 0.15rem;
1294
- }
1295
- .ldt-contextbar__detail {
1296
- display: none;
1297
- }
1298
- .ldt-workspace,
1299
- .ldt-workspace--sidebar,
1300
- .ldt-workspace--inspector,
1301
- .ldt-workspace--sidebar.ldt-workspace--inspector {
1302
- display: block;
1303
- }
1304
- .ldt-sidebar,
1305
- .ldt-sidebar--right {
1306
- border: 0;
1307
- border-bottom: var(--loidolt-border-width) solid var(--loidolt-border);
1308
- }
1309
- .ldt-workspace__main {
1310
- padding: var(--loidolt-space-4);
1311
- }
1312
- .ldt-page-header {
1313
- align-items: start;
1314
- flex-direction: column;
1315
- }
1316
- }
1
+ @import './components/actions.css';
2
+ @import './components/forms.css';
3
+ @import './components/surfaces.css';
4
+ @import './components/data.css';
5
+ @import './components/feedback.css';
6
+ @import './components/overlays.css';
7
+ @import './components/selection.css';
8
+ @import './components/layout.css';
9
+ @import './components/prose.css';