@threadlabs/looma 0.26.4 → 0.26.5
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/components/ui-badge/ui-badge.html +41 -4
- package/components/ui-button/ui-button.html +50 -5
- package/components/ui-icon-button/ui-icon-button.html +35 -7
- package/components/ui-input-group/ui-input-group.html +9 -0
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/styles/ui-badge.css +40 -1
- package/styles/ui-button.css +53 -5
- package/styles/ui-icon-button.css +35 -7
- package/styles/ui-input-group.css +6 -0
- package/vanilla/UiBadge.d.ts +1 -1
- package/vanilla/UiBadge.js +1 -1
- package/vanilla/UiButton.js +47 -21
- package/vanilla/UiInputGroup.d.ts +1 -0
- package/vanilla/UiInputGroup.js +4 -4
- package/vue/UiBadge.d.ts +3 -3
- package/vue/UiBadge.vue +79 -6
- package/vue/UiButton.d.ts +6 -2
- package/vue/UiButton.vue +56 -6
- package/vue/UiIconButton.vue +40 -7
- package/vue/UiInputGroup.d.ts +9 -0
- package/vue/UiInputGroup.vue +29 -1
- package/vue/chunks/UiBadge.js +3 -2
- package/vue/chunks/UiButton.js +15 -5
- package/vue/chunks/UiIconButton.js +1 -1
- package/vue/chunks/UiInputGroup.js +29 -4
- package/vue/components.css +347 -197
package/vue/components.css
CHANGED
|
@@ -312,6 +312,10 @@ svg[data-v-abaeb064] {
|
|
|
312
312
|
syntax: "*";
|
|
313
313
|
inherits: false;
|
|
314
314
|
}
|
|
315
|
+
@property --ui-badge-circle-opacity {
|
|
316
|
+
syntax: "*";
|
|
317
|
+
inherits: false;
|
|
318
|
+
}
|
|
315
319
|
@property --ui-badge-dot-size {
|
|
316
320
|
syntax: "*";
|
|
317
321
|
inherits: false;
|
|
@@ -356,7 +360,7 @@ svg[data-v-abaeb064] {
|
|
|
356
360
|
syntax: "*";
|
|
357
361
|
inherits: false;
|
|
358
362
|
}
|
|
359
|
-
[data-component~="ui-badge"][data-v-
|
|
363
|
+
[data-component~="ui-badge"][data-v-57826cf9] {
|
|
360
364
|
--_badge-surface: color-mix(in srgb, var(--ui-surface-subtle) 80%, var(--ui-surface-default));
|
|
361
365
|
--_badge-text: var(--ui-text-secondary);
|
|
362
366
|
/* Sit between the soft fill and its stronger theme ink. */
|
|
@@ -402,27 +406,27 @@ svg[data-v-abaeb064] {
|
|
|
402
406
|
|
|
403
407
|
/* A constrained badge keeps its surface intact and ellipsizes only its label. The full
|
|
404
408
|
text stays in the DOM for accessible names and consumers' selected values. */
|
|
405
|
-
.label[data-v-
|
|
409
|
+
.label[data-v-57826cf9] {
|
|
406
410
|
display: block;
|
|
407
411
|
min-inline-size: 0;
|
|
408
412
|
overflow: hidden;
|
|
409
413
|
text-overflow: ellipsis;
|
|
410
414
|
}
|
|
411
|
-
.label[data-v-
|
|
415
|
+
.label[data-v-57826cf9]:empty {
|
|
412
416
|
display: none;
|
|
413
417
|
}
|
|
414
418
|
|
|
415
419
|
/* Icon content has its own flex item so label ellipsis never clips its strokes. */
|
|
416
|
-
.icon[data-v-
|
|
420
|
+
.icon[data-v-57826cf9] {
|
|
417
421
|
display: inline-flex;
|
|
418
422
|
align-items: center;
|
|
419
423
|
justify-content: center;
|
|
420
424
|
flex: none;
|
|
421
425
|
}
|
|
422
|
-
.icon[data-v-
|
|
426
|
+
.icon[data-v-57826cf9]:empty {
|
|
423
427
|
display: none;
|
|
424
428
|
}
|
|
425
|
-
.icon svg[data-v-
|
|
429
|
+
.icon svg[data-v-57826cf9-s] {
|
|
426
430
|
display: block;
|
|
427
431
|
inline-size: 1em;
|
|
428
432
|
block-size: 1em;
|
|
@@ -430,39 +434,39 @@ svg[data-v-abaeb064] {
|
|
|
430
434
|
}
|
|
431
435
|
|
|
432
436
|
/* Ordinary icon-plus-text children keep inline ellipsis, with explicit glyph spacing. */
|
|
433
|
-
.label svg[data-v-
|
|
437
|
+
.label svg[data-v-57826cf9-s] {
|
|
434
438
|
inline-size: 1em;
|
|
435
439
|
block-size: 1em;
|
|
436
440
|
vertical-align: middle;
|
|
437
441
|
margin-inline-end: var(--ui-space-1);
|
|
438
442
|
}
|
|
439
|
-
.label[data-v-
|
|
443
|
+
.label[data-v-57826cf9]:has(svg) {
|
|
440
444
|
text-box-trim: none;
|
|
441
445
|
}
|
|
442
446
|
|
|
443
447
|
/* Center the capital/baseline text box, while clipping only inline overflow for ellipsis.
|
|
444
448
|
Vertical ink remains visible so trimming never cuts off ascenders or descenders. */
|
|
445
449
|
@supports (text-box-trim: trim-both) {
|
|
446
|
-
[data-component~="ui-badge"][data-v-
|
|
450
|
+
[data-component~="ui-badge"][data-v-57826cf9] {
|
|
447
451
|
display: inline-block;
|
|
448
452
|
min-block-size: var(--ui-badge-min-block-size, 1.5rem);
|
|
449
453
|
text-align: center;
|
|
450
454
|
align-content: center;
|
|
451
455
|
text-box-trim: none;
|
|
452
456
|
}
|
|
453
|
-
[data-component~="ui-badge"][data-v-
|
|
454
|
-
[data-component~="ui-badge"][data-v-
|
|
457
|
+
[data-component~="ui-badge"][data-v-57826cf9]:has(.icon:not(:empty)),
|
|
458
|
+
[data-component~="ui-badge"][data-v-57826cf9]:has(.label svg) {
|
|
455
459
|
display: inline-flex;
|
|
456
460
|
text-box-trim: none;
|
|
457
461
|
}
|
|
458
|
-
.label[data-v-
|
|
462
|
+
.label[data-v-57826cf9]:not(:has(svg)) {
|
|
459
463
|
text-box-trim: trim-both;
|
|
460
464
|
text-box-edge: cap alphabetic;
|
|
461
465
|
overflow-x: clip;
|
|
462
466
|
overflow-y: visible;
|
|
463
467
|
}
|
|
464
468
|
}
|
|
465
|
-
[data-component~="ui-badge"][data-ui-badge-state~="size=xs"][data-v-
|
|
469
|
+
[data-component~="ui-badge"][data-ui-badge-state~="size=xs"][data-v-57826cf9] {
|
|
466
470
|
box-sizing: border-box;
|
|
467
471
|
min-inline-size: 1rem;
|
|
468
472
|
min-block-size: var(--ui-badge-min-block-size, 1rem);
|
|
@@ -470,52 +474,56 @@ svg[data-v-abaeb064] {
|
|
|
470
474
|
font-size: var(--ui-badge-font-size, var(--ui-font-size-2xs));
|
|
471
475
|
line-height: var(--ui-badge-line-height, 1);
|
|
472
476
|
}
|
|
473
|
-
[data-component~="ui-badge"][data-ui-badge-state~="
|
|
477
|
+
[data-component~="ui-badge"][data-ui-badge-state~="size=sm"][data-v-57826cf9] {
|
|
478
|
+
font-size: var(--ui-badge-font-size, var(--ui-font-size-2xs));
|
|
479
|
+
line-height: var(--ui-badge-line-height, 1);
|
|
480
|
+
}
|
|
481
|
+
[data-component~="ui-badge"][data-ui-badge-state~="tone=accent"][data-v-57826cf9] {
|
|
474
482
|
--_badge-surface: var(--ui-accent-strong-surface, var(--ui-accent-solid));
|
|
475
483
|
--_badge-border: var(--ui-accent-strong-surface, var(--ui-accent-solid));
|
|
476
484
|
--_badge-text: var(--ui-accent-on-strong, var(--ui-text-on-accent));
|
|
477
485
|
}
|
|
478
|
-
[data-component~="ui-badge"][data-ui-badge-state~="tone=danger"][data-v-
|
|
486
|
+
[data-component~="ui-badge"][data-ui-badge-state~="tone=danger"][data-v-57826cf9] {
|
|
479
487
|
--_badge-surface: var(--ui-danger-strong-surface, var(--ui-danger-solid));
|
|
480
488
|
--_badge-border: var(--ui-danger-strong-surface, var(--ui-danger-solid));
|
|
481
489
|
--_badge-text: var(--ui-danger-on-strong, var(--ui-text-on-accent));
|
|
482
490
|
}
|
|
483
|
-
[data-component~="ui-badge"][data-ui-badge-state~="tone=success"][data-v-
|
|
491
|
+
[data-component~="ui-badge"][data-ui-badge-state~="tone=success"][data-v-57826cf9] {
|
|
484
492
|
--_badge-surface: var(--ui-success-strong-surface, var(--ui-success-solid));
|
|
485
493
|
--_badge-border: var(--ui-success-strong-surface, var(--ui-success-solid));
|
|
486
494
|
--_badge-text: var(--ui-success-on-strong, var(--ui-text-on-accent));
|
|
487
495
|
}
|
|
488
|
-
[data-component~="ui-badge"][data-ui-badge-state~="tone=warning"][data-v-
|
|
496
|
+
[data-component~="ui-badge"][data-ui-badge-state~="tone=warning"][data-v-57826cf9] {
|
|
489
497
|
--_badge-surface: var(--ui-warning-strong-surface, var(--ui-warning-solid));
|
|
490
498
|
--_badge-border: var(--ui-warning-strong-surface, var(--ui-warning-solid));
|
|
491
499
|
--_badge-text: var(--ui-warning-on-strong, var(--ui-text-on-accent));
|
|
492
500
|
}
|
|
493
|
-
[data-component~="ui-badge"][data-ui-badge-state~="tone=info"][data-v-
|
|
501
|
+
[data-component~="ui-badge"][data-ui-badge-state~="tone=info"][data-v-57826cf9] {
|
|
494
502
|
--_badge-surface: var(--ui-info-strong-surface, var(--ui-info-solid));
|
|
495
503
|
--_badge-border: var(--ui-info-strong-surface, var(--ui-info-solid));
|
|
496
504
|
--_badge-text: var(--ui-info-on-strong, var(--ui-text-on-accent));
|
|
497
505
|
}
|
|
498
|
-
[data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=accent"][data-v-
|
|
506
|
+
[data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=accent"][data-v-57826cf9] {
|
|
499
507
|
--_badge-surface: color-mix(in srgb, var(--ui-accent-solid) 19%, var(--ui-surface-default));
|
|
500
508
|
--_badge-border: color-mix(in srgb, var(--ui-accent-solid) 25%, var(--ui-surface-default));
|
|
501
509
|
--_badge-text: var(--ui-accent-subtle-text, var(--ui-accent-solid));
|
|
502
510
|
}
|
|
503
|
-
[data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=danger"][data-v-
|
|
511
|
+
[data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=danger"][data-v-57826cf9] {
|
|
504
512
|
--_badge-surface: color-mix(in srgb, var(--ui-danger-solid) 19%, var(--ui-surface-default));
|
|
505
513
|
--_badge-border: color-mix(in srgb, var(--ui-danger-solid) 25%, var(--ui-surface-default));
|
|
506
514
|
--_badge-text: var(--ui-danger-subtle-text, var(--ui-danger-solid));
|
|
507
515
|
}
|
|
508
|
-
[data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=success"][data-v-
|
|
516
|
+
[data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=success"][data-v-57826cf9] {
|
|
509
517
|
--_badge-surface: color-mix(in srgb, var(--ui-success-solid) 19%, var(--ui-surface-default));
|
|
510
518
|
--_badge-border: color-mix(in srgb, var(--ui-success-solid) 25%, var(--ui-surface-default));
|
|
511
519
|
--_badge-text: var(--ui-success-subtle-text, var(--ui-success-solid));
|
|
512
520
|
}
|
|
513
|
-
[data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=warning"][data-v-
|
|
521
|
+
[data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=warning"][data-v-57826cf9] {
|
|
514
522
|
--_badge-surface: color-mix(in srgb, var(--ui-warning-solid) 19%, var(--ui-surface-default));
|
|
515
523
|
--_badge-border: color-mix(in srgb, var(--ui-warning-solid) 25%, var(--ui-surface-default));
|
|
516
524
|
--_badge-text: var(--ui-warning-subtle-text, var(--ui-warning-solid));
|
|
517
525
|
}
|
|
518
|
-
[data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=info"][data-v-
|
|
526
|
+
[data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=info"][data-v-57826cf9] {
|
|
519
527
|
--_badge-surface: color-mix(in srgb, var(--ui-info-solid) 19%, var(--ui-surface-default));
|
|
520
528
|
--_badge-border: color-mix(in srgb, var(--ui-info-solid) 25%, var(--ui-surface-default));
|
|
521
529
|
--_badge-text: var(--ui-info-subtle-text, var(--ui-info-solid));
|
|
@@ -523,7 +531,7 @@ svg[data-v-abaeb064] {
|
|
|
523
531
|
|
|
524
532
|
/* A solid colour fills with the ink. Its text is the page surface, mixed at 0% only so that it too is
|
|
525
533
|
invalid while the hook is unset. */
|
|
526
|
-
[data-component~="ui-badge"][data-ui-badge-state~="variant=solid"][data-v-
|
|
534
|
+
[data-component~="ui-badge"][data-ui-badge-state~="variant=solid"][data-v-57826cf9] {
|
|
527
535
|
--_badge-color-surface: var(--_badge-color-ink);
|
|
528
536
|
--_badge-color-border: var(--_badge-color-ink);
|
|
529
537
|
--_badge-color-text: color-mix(in oklab, var(--_ui-badge-color) 0%, var(--ui-surface-default));
|
|
@@ -531,7 +539,7 @@ svg[data-v-abaeb064] {
|
|
|
531
539
|
|
|
532
540
|
/* A translucent inverse surface picks up its filled control's tone. Deepen the tone ink
|
|
533
541
|
toward the theme text to retain contrast against that composed surface. */
|
|
534
|
-
[data-component~="ui-badge"][data-ui-badge-state~="variant=inverse"][data-v-
|
|
542
|
+
[data-component~="ui-badge"][data-ui-badge-state~="variant=inverse"][data-v-57826cf9] {
|
|
535
543
|
--_badge-color-surface: color-mix(
|
|
536
544
|
in srgb,
|
|
537
545
|
color-mix(in oklab, var(--_ui-badge-color) 0%, var(--ui-surface-default)) 88%,
|
|
@@ -554,16 +562,81 @@ svg[data-v-abaeb064] {
|
|
|
554
562
|
/* Paint each translucent layer once, including the border, without a bright double-painted ring. */
|
|
555
563
|
background-clip: padding-box;
|
|
556
564
|
}
|
|
557
|
-
|
|
558
|
-
|
|
565
|
+
|
|
566
|
+
/* A circular count has a tone-tinted surface, a separate lighter rim and readable tone ink.
|
|
567
|
+
Dark controls retain a shaded surface and theme ink with a quieter rim. */
|
|
568
|
+
[data-component~="ui-badge"][data-ui-badge-state~="variant=inverse"][data-ui-badge-state~="shape=circle"][data-v-57826cf9] {
|
|
569
|
+
--_badge-color-surface: light-dark(
|
|
570
|
+
color-mix(
|
|
571
|
+
in srgb,
|
|
572
|
+
color-mix(in oklab, var(--_ui-badge-color) 0%, var(--ui-surface-default)) var(
|
|
573
|
+
--ui-badge-circle-opacity,
|
|
574
|
+
66%
|
|
575
|
+
),
|
|
576
|
+
transparent
|
|
577
|
+
),
|
|
578
|
+
color-mix(
|
|
579
|
+
in srgb,
|
|
580
|
+
color-mix(in oklab, var(--_ui-badge-color) 0%, var(--ui-surface-default)) var(
|
|
581
|
+
--ui-badge-circle-opacity,
|
|
582
|
+
56%
|
|
583
|
+
),
|
|
584
|
+
transparent
|
|
585
|
+
)
|
|
586
|
+
);
|
|
587
|
+
--_badge-color-border: light-dark(
|
|
588
|
+
color-mix(
|
|
589
|
+
in srgb,
|
|
590
|
+
color-mix(in oklab, var(--_ui-badge-color) 0%, var(--ui-surface-default)) 88%,
|
|
591
|
+
transparent
|
|
592
|
+
),
|
|
593
|
+
color-mix(
|
|
594
|
+
in srgb,
|
|
595
|
+
color-mix(in oklab, var(--_ui-badge-color) 0%, var(--ui-surface-default)) 44%,
|
|
596
|
+
transparent
|
|
597
|
+
)
|
|
598
|
+
);
|
|
599
|
+
--_badge-color-text: light-dark(
|
|
600
|
+
color-mix(in srgb, var(--_badge-color-ink) 65%, var(--ui-text-primary)),
|
|
601
|
+
color-mix(in oklab, var(--_ui-badge-color) 0%, var(--ui-text-primary))
|
|
602
|
+
);
|
|
603
|
+
--_badge-count-surface: light-dark(
|
|
604
|
+
color-mix(in srgb, var(--_badge-text) var(--ui-badge-circle-opacity, 66%), transparent),
|
|
605
|
+
color-mix(in srgb, var(--_badge-text) var(--ui-badge-circle-opacity, 56%), transparent)
|
|
606
|
+
);
|
|
607
|
+
--_badge-outline-surface: var(
|
|
608
|
+
--ui-badge-surface,
|
|
609
|
+
var(--_badge-color-surface, var(--_badge-count-surface))
|
|
610
|
+
);
|
|
611
|
+
border-color: var(
|
|
612
|
+
--ui-badge-border,
|
|
613
|
+
var(
|
|
614
|
+
--_badge-color-border,
|
|
615
|
+
light-dark(
|
|
616
|
+
color-mix(in srgb, var(--_badge-text) 88%, transparent),
|
|
617
|
+
color-mix(in srgb, var(--_badge-text) 44%, transparent)
|
|
618
|
+
)
|
|
619
|
+
)
|
|
620
|
+
);
|
|
621
|
+
color: var(
|
|
622
|
+
--ui-badge-text,
|
|
623
|
+
var(
|
|
624
|
+
--_badge-color-text,
|
|
625
|
+
light-dark(
|
|
626
|
+
color-mix(in srgb, var(--_badge-surface) 65%, var(--ui-text-primary)),
|
|
627
|
+
var(--ui-text-primary)
|
|
628
|
+
)
|
|
629
|
+
)
|
|
630
|
+
);
|
|
631
|
+
box-shadow: 0 1px 1px light-dark(rgb(0 0 0 / 0.08), rgb(0 0 0 / 0.12));
|
|
559
632
|
}
|
|
560
633
|
|
|
561
634
|
/* Neutral reverses a subtle surface/ink pair rather than a strong tone. Keep its original
|
|
562
635
|
surface ink: moving it toward dark-theme primary text would reduce overlay contrast. */
|
|
563
|
-
[data-component~="ui-badge"][data-ui-badge-state~="variant=inverse"][data-ui-badge-state~="tone=neutral"][data-v-
|
|
636
|
+
[data-component~="ui-badge"][data-ui-badge-state~="variant=inverse"][data-ui-badge-state~="tone=neutral"][data-v-57826cf9] {
|
|
564
637
|
color: var(--ui-badge-text, var(--_badge-color-text, var(--_badge-surface)));
|
|
565
638
|
}
|
|
566
|
-
[data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-v-
|
|
639
|
+
[data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-v-57826cf9] {
|
|
567
640
|
--_badge-surface: var(--ui-surface-default);
|
|
568
641
|
--_badge-border: var(--ui-border-strong);
|
|
569
642
|
--_badge-text: var(--ui-text-secondary);
|
|
@@ -571,29 +644,29 @@ svg[data-v-abaeb064] {
|
|
|
571
644
|
--_badge-color-surface: initial;
|
|
572
645
|
--_badge-color-border: var(--_badge-color-ink);
|
|
573
646
|
}
|
|
574
|
-
[data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=accent"][data-v-
|
|
647
|
+
[data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=accent"][data-v-57826cf9] {
|
|
575
648
|
--_badge-border: var(--ui-accent-solid);
|
|
576
649
|
--_badge-text: var(--ui-accent-subtle-text, var(--ui-accent-solid));
|
|
577
650
|
}
|
|
578
|
-
[data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=danger"][data-v-
|
|
651
|
+
[data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=danger"][data-v-57826cf9] {
|
|
579
652
|
--_badge-border: var(--ui-danger-solid);
|
|
580
653
|
--_badge-text: var(--ui-danger-subtle-text, var(--ui-danger-solid));
|
|
581
654
|
}
|
|
582
|
-
[data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=success"][data-v-
|
|
655
|
+
[data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=success"][data-v-57826cf9] {
|
|
583
656
|
--_badge-border: var(--ui-success-solid);
|
|
584
657
|
--_badge-text: var(--ui-success-subtle-text, var(--ui-success-solid));
|
|
585
658
|
}
|
|
586
|
-
[data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=warning"][data-v-
|
|
659
|
+
[data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=warning"][data-v-57826cf9] {
|
|
587
660
|
--_badge-border: var(--ui-warning-solid);
|
|
588
661
|
--_badge-text: var(--ui-warning-subtle-text, var(--ui-warning-solid));
|
|
589
662
|
}
|
|
590
|
-
[data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=info"][data-v-
|
|
663
|
+
[data-component~="ui-badge"][data-ui-badge-state~="variant=outline"][data-ui-badge-state~="tone=info"][data-v-57826cf9] {
|
|
591
664
|
--_badge-border: var(--ui-info-solid);
|
|
592
665
|
--_badge-text: var(--ui-info-subtle-text, var(--ui-info-solid));
|
|
593
666
|
}
|
|
594
667
|
|
|
595
668
|
/* An icon mark keeps the existing tone recipe and follows the global spacing and radius. */
|
|
596
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=square"][data-v-
|
|
669
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=square"][data-v-57826cf9] {
|
|
597
670
|
--_badge-square-size: var(--ui-badge-square-size, calc(var(--ui-space-4) * 2));
|
|
598
671
|
display: inline-flex;
|
|
599
672
|
box-sizing: border-box;
|
|
@@ -606,29 +679,29 @@ svg[data-v-abaeb064] {
|
|
|
606
679
|
border-radius: var(--ui-radius-md);
|
|
607
680
|
text-box-trim: none;
|
|
608
681
|
}
|
|
609
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=square"][data-ui-badge-state~="size=xs"][data-v-
|
|
682
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=square"][data-ui-badge-state~="size=xs"][data-v-57826cf9] {
|
|
610
683
|
--_badge-square-size: var(--ui-badge-square-size, calc(var(--ui-space-3) * 2));
|
|
611
684
|
}
|
|
612
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=square"][data-ui-badge-state~="size=lg"][data-v-
|
|
685
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=square"][data-ui-badge-state~="size=lg"][data-v-57826cf9] {
|
|
613
686
|
--_badge-square-size: var(
|
|
614
687
|
--ui-badge-square-size,
|
|
615
688
|
calc(var(--ui-space-4) * 2 + var(--ui-space-2))
|
|
616
689
|
);
|
|
617
690
|
}
|
|
618
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label[data-v-
|
|
691
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label[data-v-57826cf9] {
|
|
619
692
|
display: inline-flex;
|
|
620
693
|
align-items: center;
|
|
621
694
|
justify-content: center;
|
|
622
695
|
}
|
|
623
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label svg[data-v-
|
|
696
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label svg[data-v-57826cf9-s] {
|
|
624
697
|
margin-inline-end: 0;
|
|
625
698
|
}
|
|
626
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label[data-v-
|
|
699
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label[data-v-57826cf9]:empty {
|
|
627
700
|
display: none;
|
|
628
701
|
}
|
|
629
702
|
|
|
630
703
|
/* A visible glyph needs fixed geometry, unlike a content-sized pill or a hidden-label dot. */
|
|
631
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-v-
|
|
704
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-v-57826cf9] {
|
|
632
705
|
--_badge-circle-size: var(--ui-badge-circle-size, calc(var(--ui-space-3) * 2));
|
|
633
706
|
display: inline-flex;
|
|
634
707
|
flex: none;
|
|
@@ -640,31 +713,31 @@ svg[data-v-abaeb064] {
|
|
|
640
713
|
border-radius: var(--ui-radius-round);
|
|
641
714
|
text-box-trim: none;
|
|
642
715
|
}
|
|
643
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-ui-badge-state~="size=xs"][data-v-
|
|
716
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-ui-badge-state~="size=xs"][data-v-57826cf9] {
|
|
644
717
|
--_badge-circle-size: var(--ui-badge-circle-size, var(--ui-space-4));
|
|
645
718
|
}
|
|
646
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-ui-badge-state~="size=lg"][data-v-
|
|
719
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=circle"][data-ui-badge-state~="size=lg"][data-v-57826cf9] {
|
|
647
720
|
--_badge-circle-size: var(--ui-badge-circle-size, calc(var(--ui-space-4) * 2));
|
|
648
721
|
}
|
|
649
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label[data-v-
|
|
722
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label[data-v-57826cf9] {
|
|
650
723
|
display: inline-flex;
|
|
651
724
|
align-items: center;
|
|
652
725
|
justify-content: center;
|
|
653
726
|
line-height: 1;
|
|
654
727
|
text-box-trim: none;
|
|
655
728
|
}
|
|
656
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label svg[data-v-
|
|
729
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label svg[data-v-57826cf9-s] {
|
|
657
730
|
margin-inline-end: 0;
|
|
658
731
|
}
|
|
659
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label[data-v-
|
|
732
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label[data-v-57826cf9]:empty {
|
|
660
733
|
display: none;
|
|
661
734
|
}
|
|
662
735
|
|
|
663
736
|
/* Center capital and numeral ink, rather than the font's ascent/descent line box.
|
|
664
737
|
Icon labels retain flex geometry; untrimmed browsers keep that fallback too. */
|
|
665
738
|
@supports (text-box-trim: trim-both) {
|
|
666
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label[data-v-
|
|
667
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label[data-v-
|
|
739
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=circle"] .label[data-v-57826cf9]:not(:has(svg)),
|
|
740
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=square"] .label[data-v-57826cf9]:not(:has(svg)) {
|
|
668
741
|
display: block;
|
|
669
742
|
text-box-trim: trim-both;
|
|
670
743
|
text-box-edge: cap alphabetic;
|
|
@@ -673,7 +746,7 @@ svg[data-v-abaeb064] {
|
|
|
673
746
|
}
|
|
674
747
|
|
|
675
748
|
/* A dot uses the badge's tone recipe; only its silhouette and visible label change. */
|
|
676
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=dot"][data-v-
|
|
749
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=dot"][data-v-57826cf9] {
|
|
677
750
|
position: relative;
|
|
678
751
|
box-sizing: border-box;
|
|
679
752
|
flex: none;
|
|
@@ -685,7 +758,7 @@ svg[data-v-abaeb064] {
|
|
|
685
758
|
border-radius: var(--ui-radius-round);
|
|
686
759
|
text-box-trim: none;
|
|
687
760
|
}
|
|
688
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=dot"] .label[data-v-
|
|
761
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=dot"] .label[data-v-57826cf9] {
|
|
689
762
|
position: absolute;
|
|
690
763
|
inline-size: 1px;
|
|
691
764
|
block-size: 1px;
|
|
@@ -696,7 +769,7 @@ svg[data-v-abaeb064] {
|
|
|
696
769
|
|
|
697
770
|
/* The clipped point needs an inset surface over an outer border-colour shape: a native border
|
|
698
771
|
has no diagonal edge to follow. Keep this edge for every tag variant. */
|
|
699
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-
|
|
772
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-57826cf9] {
|
|
700
773
|
--_badge-point: var(--ui-badge-point, var(--ui-space-2));
|
|
701
774
|
|
|
702
775
|
position: relative;
|
|
@@ -713,7 +786,7 @@ svg[data-v-abaeb064] {
|
|
|
713
786
|
0 100%
|
|
714
787
|
);
|
|
715
788
|
}
|
|
716
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-
|
|
789
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-57826cf9]::before {
|
|
717
790
|
content: "";
|
|
718
791
|
position: absolute;
|
|
719
792
|
inset: 0;
|
|
@@ -728,37 +801,37 @@ svg[data-v-abaeb064] {
|
|
|
728
801
|
);
|
|
729
802
|
pointer-events: none;
|
|
730
803
|
}
|
|
731
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-ui-badge-state~="variant=inverse"][data-v-
|
|
804
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-ui-badge-state~="variant=inverse"][data-v-57826cf9] {
|
|
732
805
|
background: var(--ui-badge-border, var(--_badge-color-border, var(--_badge-text)));
|
|
733
806
|
}
|
|
734
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-
|
|
807
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-57826cf9]:dir(rtl) {
|
|
735
808
|
padding-inline-end: var(--ui-badge-padding-inline, var(--ui-space-2));
|
|
736
809
|
padding-inline-start: calc(
|
|
737
810
|
var(--ui-badge-padding-inline, var(--ui-space-2)) + var(--_badge-point)
|
|
738
811
|
);
|
|
739
812
|
clip-path: polygon(var(--_badge-point) 0, 100% 0, 100% 100%, var(--_badge-point) 100%, 0 50%);
|
|
740
813
|
}
|
|
741
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-
|
|
814
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-57826cf9]:dir(rtl)::before {
|
|
742
815
|
clip-path: polygon(var(--_badge-point) 0, 100% 0, 100% 100%, var(--_badge-point) 100%, 0 50%);
|
|
743
816
|
}
|
|
744
817
|
@media (forced-colors: active) {
|
|
745
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=dot"][data-v-
|
|
818
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=dot"][data-v-57826cf9] {
|
|
746
819
|
forced-color-adjust: none;
|
|
747
820
|
border-color: CanvasText;
|
|
748
821
|
background: CanvasText;
|
|
749
822
|
}
|
|
750
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-
|
|
823
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-57826cf9] {
|
|
751
824
|
forced-color-adjust: none;
|
|
752
825
|
background: CanvasText;
|
|
753
826
|
color: CanvasText;
|
|
754
827
|
}
|
|
755
|
-
[data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-
|
|
828
|
+
[data-component~="ui-badge"][data-ui-badge-state~="shape=tag"][data-v-57826cf9]::before {
|
|
756
829
|
background: Canvas;
|
|
757
830
|
}
|
|
758
831
|
}
|
|
759
832
|
|
|
760
833
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
761
|
-
[data-component~="ui-badge"][hidden][data-v-
|
|
834
|
+
[data-component~="ui-badge"][hidden][data-v-57826cf9] {
|
|
762
835
|
display: none;
|
|
763
836
|
}
|
|
764
837
|
|
|
@@ -968,7 +1041,22 @@ svg[data-v-6551ff4d],
|
|
|
968
1041
|
syntax: "*";
|
|
969
1042
|
inherits: false;
|
|
970
1043
|
}
|
|
971
|
-
[data-component~="ui-button"][data-v-
|
|
1044
|
+
[data-component~="ui-button"][data-v-e56c4e01] {
|
|
1045
|
+
/* Optional inherited action-group values keep text and icon actions under the same light.
|
|
1046
|
+
One fine top/start highlight follows the bottom/end lowlight at a joined action seam.
|
|
1047
|
+
A single ambient lift avoids stacking a face gradient or another inset bevel. */
|
|
1048
|
+
--_ui-action-start: 1px;
|
|
1049
|
+
--_ui-action-edge: var(
|
|
1050
|
+
--ui-action-edge,
|
|
1051
|
+
inset var(--_ui-action-start) 1px 0 light-dark(
|
|
1052
|
+
rgb(255 255 255 / 0.08),
|
|
1053
|
+
rgb(255 255 255 / 0.06)
|
|
1054
|
+
),
|
|
1055
|
+
inset calc(-1 * var(--_ui-action-start)) -1px 0 light-dark(rgb(0 0 0 / 0.08), rgb(0 0 0 / 0.08))
|
|
1056
|
+
);
|
|
1057
|
+
--_ui-action-shadow:
|
|
1058
|
+
var(--_ui-action-edge),
|
|
1059
|
+
0 1px 2px light-dark(rgb(0 0 0 / 0.10), rgb(0 0 0 / 0.20));
|
|
972
1060
|
--_hue: var(--ui-accent);
|
|
973
1061
|
--_hue-hover: var(--ui-accent-hover);
|
|
974
1062
|
--_hue-active: var(--ui-accent-active);
|
|
@@ -988,15 +1076,18 @@ svg[data-v-6551ff4d],
|
|
|
988
1076
|
vertical-align: middle;
|
|
989
1077
|
color: var(--_tone-text);
|
|
990
1078
|
}
|
|
991
|
-
[data-component~="ui-button"][data-
|
|
1079
|
+
[data-component~="ui-button"][data-v-e56c4e01]:dir(rtl) {
|
|
1080
|
+
--_ui-action-start: -1px;
|
|
1081
|
+
}
|
|
1082
|
+
[data-component~="ui-button"][data-ui-button-state~="align=start"][data-v-e56c4e01] {
|
|
992
1083
|
justify-content: flex-start;
|
|
993
1084
|
text-align: start;
|
|
994
1085
|
}
|
|
995
|
-
[data-component~="ui-button"][data-ui-button-state~="stretch"][data-v-
|
|
1086
|
+
[data-component~="ui-button"][data-ui-button-state~="stretch"][data-v-e56c4e01] {
|
|
996
1087
|
display: flex;
|
|
997
1088
|
inline-size: 100%;
|
|
998
1089
|
}
|
|
999
|
-
[data-component~="ui-button"][data-v-
|
|
1090
|
+
[data-component~="ui-button"][data-v-e56c4e01] {
|
|
1000
1091
|
appearance: none;
|
|
1001
1092
|
min-block-size: var(--ui-button-min-block-size, var(--ui-control-size-md));
|
|
1002
1093
|
border-style: solid;
|
|
@@ -1012,8 +1103,8 @@ svg[data-v-6551ff4d],
|
|
|
1012
1103
|
white-space: var(--ui-button-white-space, inherit);
|
|
1013
1104
|
line-height: var(--ui-line-height-tight);
|
|
1014
1105
|
padding: var(--ui-space-2) var(--ui-space-3);
|
|
1015
|
-
background-image:
|
|
1016
|
-
box-shadow: var(--ui-button-shadow, var(--ui-
|
|
1106
|
+
background-image: none;
|
|
1107
|
+
box-shadow: var(--ui-button-shadow, var(--ui-action-shadow, var(--_ui-action-shadow)));
|
|
1017
1108
|
cursor: pointer;
|
|
1018
1109
|
transition:
|
|
1019
1110
|
background-color var(--ui-motion-fast) var(--ui-motion-ease),
|
|
@@ -1024,34 +1115,48 @@ svg[data-v-6551ff4d],
|
|
|
1024
1115
|
}
|
|
1025
1116
|
|
|
1026
1117
|
/* An anchor keeps the boxed button look even when an app styles ordinary links. */
|
|
1027
|
-
[data-component~="ui-button"][data-v-
|
|
1118
|
+
[data-component~="ui-button"][data-v-e56c4e01]:is(a) {
|
|
1028
1119
|
text-decoration: none;
|
|
1029
1120
|
}
|
|
1030
|
-
.spinner-wrap[data-v-
|
|
1121
|
+
.spinner-wrap[data-v-e56c4e01] {
|
|
1031
1122
|
display: inline-flex;
|
|
1032
1123
|
flex: none;
|
|
1033
1124
|
vertical-align: middle;
|
|
1034
1125
|
}
|
|
1126
|
+
|
|
1127
|
+
/* A count is an adornment, not another line of label text. Keep the standard control height
|
|
1128
|
+
with enough inset for a 24px mark; large content can still grow the button naturally. */
|
|
1129
|
+
[data-component~="ui-button"][data-v-e56c4e01]:not([variant="link"]):has(.badge:not(:empty)) {
|
|
1130
|
+
padding-block: var(--ui-space-0-5);
|
|
1131
|
+
}
|
|
1132
|
+
.badge[data-v-e56c4e01] {
|
|
1133
|
+
display: inline-flex;
|
|
1134
|
+
align-items: center;
|
|
1135
|
+
flex: none;
|
|
1136
|
+
}
|
|
1137
|
+
.badge[data-v-e56c4e01]:empty {
|
|
1138
|
+
display: none;
|
|
1139
|
+
}
|
|
1035
1140
|
@supports (text-box-trim: trim-both) {
|
|
1036
|
-
[data-component~="ui-button"][data-v-
|
|
1141
|
+
[data-component~="ui-button"][data-v-e56c4e01] {
|
|
1037
1142
|
text-box-trim: trim-both;
|
|
1038
1143
|
text-box-edge: cap alphabetic;
|
|
1039
1144
|
}
|
|
1040
1145
|
}
|
|
1041
|
-
[data-component~="ui-button"][data-ui-button-state~="size=xs"][data-v-
|
|
1146
|
+
[data-component~="ui-button"][data-ui-button-state~="size=xs"][data-v-e56c4e01] {
|
|
1042
1147
|
min-block-size: 1.5rem;
|
|
1043
1148
|
padding: calc(var(--ui-space-0-5) * 1.5) calc(var(--ui-space-1) * 1.25);
|
|
1044
1149
|
font-size: var(--ui-font-size-xs);
|
|
1045
1150
|
}
|
|
1046
|
-
[data-component~="ui-button"][data-ui-button-state~="shape=pill"][data-v-
|
|
1151
|
+
[data-component~="ui-button"][data-ui-button-state~="shape=pill"][data-v-e56c4e01] {
|
|
1047
1152
|
border-radius: var(--ui-button-radius, var(--ui-radius-round));
|
|
1048
1153
|
}
|
|
1049
|
-
[data-component~="ui-button"][data-ui-button-state~="size=sm"][data-v-
|
|
1154
|
+
[data-component~="ui-button"][data-ui-button-state~="size=sm"][data-v-e56c4e01] {
|
|
1050
1155
|
min-block-size: var(--ui-control-size-sm);
|
|
1051
1156
|
padding: var(--ui-space-1) var(--ui-space-2);
|
|
1052
1157
|
font-size: var(--ui-font-size-sm);
|
|
1053
1158
|
}
|
|
1054
|
-
[data-component~="ui-button"][data-ui-button-state~="size=lg"][data-v-
|
|
1159
|
+
[data-component~="ui-button"][data-ui-button-state~="size=lg"][data-v-e56c4e01] {
|
|
1055
1160
|
min-block-size: var(--ui-control-size-lg);
|
|
1056
1161
|
padding: var(--ui-space-3) var(--ui-space-4);
|
|
1057
1162
|
font-size: var(--ui-font-size-md);
|
|
@@ -1059,7 +1164,7 @@ svg[data-v-6551ff4d],
|
|
|
1059
1164
|
|
|
1060
1165
|
/* Card actions inherit Button's palette and behavior; only their shared layout changes.
|
|
1061
1166
|
The icon may contain any decorative composition. Empty icons remove their column. */
|
|
1062
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=card"][data-v-
|
|
1167
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=card"][data-v-e56c4e01] {
|
|
1063
1168
|
display: grid;
|
|
1064
1169
|
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
1065
1170
|
align-content: center;
|
|
@@ -1072,23 +1177,23 @@ svg[data-v-6551ff4d],
|
|
|
1072
1177
|
box-shadow: none;
|
|
1073
1178
|
background-image: none;
|
|
1074
1179
|
}
|
|
1075
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=card"][data-ui-button-state~="size=lg"][data-v-
|
|
1180
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=card"][data-ui-button-state~="size=lg"][data-v-e56c4e01] {
|
|
1076
1181
|
min-block-size: max(var(--ui-control-min-block-size), var(--ui-control-size-lg));
|
|
1077
1182
|
}
|
|
1078
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=card"][data-v-
|
|
1183
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=card"][data-v-e56c4e01]:has(.card-icon:empty) {
|
|
1079
1184
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
1080
1185
|
}
|
|
1081
|
-
.card-icon[data-v-
|
|
1186
|
+
.card-icon[data-v-e56c4e01] {
|
|
1082
1187
|
display: flex;
|
|
1083
1188
|
align-items: flex-start;
|
|
1084
1189
|
}
|
|
1085
|
-
.card-icon[data-v-
|
|
1190
|
+
.card-icon[data-v-e56c4e01]:empty {
|
|
1086
1191
|
display: none;
|
|
1087
1192
|
}
|
|
1088
|
-
.card-content[data-v-
|
|
1193
|
+
.card-content[data-v-e56c4e01] {
|
|
1089
1194
|
min-inline-size: 0;
|
|
1090
1195
|
}
|
|
1091
|
-
.card-action[data-v-
|
|
1196
|
+
.card-action[data-v-e56c4e01] {
|
|
1092
1197
|
display: flex;
|
|
1093
1198
|
align-items: center;
|
|
1094
1199
|
align-self: center;
|
|
@@ -1096,29 +1201,37 @@ svg[data-v-6551ff4d],
|
|
|
1096
1201
|
|
|
1097
1202
|
/* A link is never :enabled, so interactive states test "not unavailable" instead: for a button that
|
|
1098
1203
|
is exactly :enabled, at the same specificity, and it also matches a link that can be followed. */
|
|
1099
|
-
[data-component~="ui-button"][data-v-
|
|
1204
|
+
[data-component~="ui-button"][data-v-e56c4e01]:hover:not(:disabled, [aria-disabled="true"]) {
|
|
1100
1205
|
border-color: var(--ui-button-hover-border, var(--_tone-hover));
|
|
1101
1206
|
background-color: var(--ui-button-hover-surface, oklch(from var(--_tone) l c h / 12%));
|
|
1102
1207
|
}
|
|
1103
1208
|
|
|
1209
|
+
/* A neutral card encloses content quietly; ordinary outlines keep their action-tone edge. */
|
|
1210
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=card"][data-ui-button-state~="tone=neutral"][data-v-e56c4e01] {
|
|
1211
|
+
border-color: var(--ui-button-border, var(--ui-border));
|
|
1212
|
+
}
|
|
1213
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=card"][data-ui-button-state~="tone=neutral"][data-v-e56c4e01]:hover:not(:disabled, [aria-disabled="true"]) {
|
|
1214
|
+
border-color: var(--ui-button-hover-border, var(--ui-border-strong));
|
|
1215
|
+
}
|
|
1216
|
+
|
|
1104
1217
|
/* Pressed reads as pressed in: the highlight goes, and the shadow moves inside. */
|
|
1105
|
-
[data-component~="ui-button"][data-v-
|
|
1218
|
+
[data-component~="ui-button"][data-v-e56c4e01]:active:not(:disabled, [aria-disabled="true"]) {
|
|
1106
1219
|
background-color: var(--ui-button-active-surface, oklch(from var(--_tone) l c h / 18%));
|
|
1107
1220
|
background-image: none;
|
|
1108
1221
|
box-shadow: var(--ui-pressed);
|
|
1109
1222
|
}
|
|
1110
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-
|
|
1111
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-
|
|
1223
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-e56c4e01],
|
|
1224
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-e56c4e01] {
|
|
1112
1225
|
border-color: var(--_tone);
|
|
1113
1226
|
background-color: var(--_tone);
|
|
1114
1227
|
color: var(--_on-tone);
|
|
1115
|
-
box-shadow: var(--ui-button-solid-shadow, var(--ui-
|
|
1228
|
+
box-shadow: var(--ui-button-solid-shadow, var(--ui-action-shadow, var(--_ui-action-shadow)));
|
|
1116
1229
|
}
|
|
1117
|
-
:is([data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-
|
|
1230
|
+
:is([data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-e56c4e01], [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-e56c4e01]):hover:not(:disabled, [aria-disabled="true"]) {
|
|
1118
1231
|
background-color: var(--_tone-hover);
|
|
1119
1232
|
border-color: var(--_tone-hover);
|
|
1120
1233
|
}
|
|
1121
|
-
:is([data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-
|
|
1234
|
+
:is([data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-e56c4e01], [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-e56c4e01]):active:not(:disabled, [aria-disabled="true"]) {
|
|
1122
1235
|
background-color: var(--_tone-active);
|
|
1123
1236
|
border-color: var(--_tone-active);
|
|
1124
1237
|
background-image: none;
|
|
@@ -1127,43 +1240,43 @@ svg[data-v-6551ff4d],
|
|
|
1127
1240
|
|
|
1128
1241
|
/* Tone is the colour, variant is the volume. Every pairing works: a danger outline is a
|
|
1129
1242
|
destructive secondary action, not a special case. */
|
|
1130
|
-
[data-component~="ui-button"][data-ui-button-state~="tone=neutral"][data-v-
|
|
1243
|
+
[data-component~="ui-button"][data-ui-button-state~="tone=neutral"][data-v-e56c4e01] {
|
|
1131
1244
|
--_hue: var(--ui-text);
|
|
1132
1245
|
--_hue-hover: var(--ui-text);
|
|
1133
1246
|
--_hue-active: var(--ui-text);
|
|
1134
1247
|
--_hue-text: var(--ui-text);
|
|
1135
1248
|
--_on-hue: var(--ui-surface);
|
|
1136
1249
|
}
|
|
1137
|
-
[data-component~="ui-button"][data-ui-button-state~="tone=danger"][data-v-
|
|
1138
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-
|
|
1250
|
+
[data-component~="ui-button"][data-ui-button-state~="tone=danger"][data-v-e56c4e01],
|
|
1251
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-e56c4e01] {
|
|
1139
1252
|
--_hue: var(--ui-danger);
|
|
1140
1253
|
--_hue-hover: var(--ui-danger-hover);
|
|
1141
1254
|
--_hue-active: var(--ui-danger-hover);
|
|
1142
1255
|
--_hue-text: var(--ui-danger-hover);
|
|
1143
1256
|
--_on-hue: var(--ui-on-danger);
|
|
1144
1257
|
}
|
|
1145
|
-
[data-component~="ui-button"][data-ui-button-state~="tone=success"][data-v-
|
|
1258
|
+
[data-component~="ui-button"][data-ui-button-state~="tone=success"][data-v-e56c4e01] {
|
|
1146
1259
|
--_hue: var(--ui-success);
|
|
1147
1260
|
--_hue-hover: color-mix(in srgb, var(--ui-success) 85%, #000);
|
|
1148
1261
|
--_hue-active: color-mix(in srgb, var(--ui-success) 75%, #000);
|
|
1149
1262
|
--_hue-text: color-mix(in srgb, var(--ui-success) 85%, #000);
|
|
1150
1263
|
--_on-hue: var(--ui-surface);
|
|
1151
1264
|
}
|
|
1152
|
-
[data-component~="ui-button"][data-ui-button-state~="tone=warning"][data-v-
|
|
1265
|
+
[data-component~="ui-button"][data-ui-button-state~="tone=warning"][data-v-e56c4e01] {
|
|
1153
1266
|
--_hue: var(--ui-warning);
|
|
1154
1267
|
--_hue-hover: color-mix(in srgb, var(--ui-warning) 85%, #000);
|
|
1155
1268
|
--_hue-active: color-mix(in srgb, var(--ui-warning) 75%, #000);
|
|
1156
1269
|
--_hue-text: color-mix(in srgb, var(--ui-warning) 85%, #000);
|
|
1157
1270
|
--_on-hue: var(--ui-surface);
|
|
1158
1271
|
}
|
|
1159
|
-
[data-component~="ui-button"][data-ui-button-state~="tone=info"][data-v-
|
|
1272
|
+
[data-component~="ui-button"][data-ui-button-state~="tone=info"][data-v-e56c4e01] {
|
|
1160
1273
|
--_hue: var(--ui-info);
|
|
1161
1274
|
--_hue-hover: color-mix(in srgb, var(--ui-info) 85%, #000);
|
|
1162
1275
|
--_hue-active: color-mix(in srgb, var(--ui-info) 75%, #000);
|
|
1163
1276
|
--_hue-text: color-mix(in srgb, var(--ui-info) 85%, #000);
|
|
1164
1277
|
--_on-hue: var(--ui-surface);
|
|
1165
1278
|
}
|
|
1166
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-
|
|
1279
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-e56c4e01] {
|
|
1167
1280
|
border-color: transparent;
|
|
1168
1281
|
background: transparent;
|
|
1169
1282
|
box-shadow: none;
|
|
@@ -1171,14 +1284,14 @@ svg[data-v-6551ff4d],
|
|
|
1171
1284
|
}
|
|
1172
1285
|
|
|
1173
1286
|
/* Tints derive from the text colour, not a surface token, so hover and press show on any background. */
|
|
1174
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-
|
|
1287
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-e56c4e01]:hover:not(:disabled, [aria-disabled="true"]) {
|
|
1175
1288
|
background-color: var(--ui-button-ghost-hover-surface, oklch(from var(--_tone) l c h / 10%));
|
|
1176
1289
|
border-color: transparent;
|
|
1177
1290
|
}
|
|
1178
1291
|
|
|
1179
1292
|
/* Pressed, or holding its menu open, a ghost button sinks slightly: a light surface with a faint
|
|
1180
1293
|
edge and a soft inner shadow. Lighter than hover, so an open menu's trigger never reads as heavy. */
|
|
1181
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-
|
|
1294
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-e56c4e01]:is(:active, [aria-expanded="true"]):not(:disabled, [aria-disabled="true"]) {
|
|
1182
1295
|
background-color: var(
|
|
1183
1296
|
--ui-button-ghost-active-surface,
|
|
1184
1297
|
color-mix(in oklch, var(--ui-surface), var(--_tone) 3%)
|
|
@@ -1190,21 +1303,24 @@ svg[data-v-6551ff4d],
|
|
|
1190
1303
|
}
|
|
1191
1304
|
|
|
1192
1305
|
/* A soft halo that transitions in with the other box-shadow changes, layered on the raised shadow. */
|
|
1193
|
-
[data-component~="ui-button"][data-v-
|
|
1306
|
+
[data-component~="ui-button"][data-v-e56c4e01]:focus-visible {
|
|
1194
1307
|
outline: none;
|
|
1195
1308
|
box-shadow:
|
|
1196
|
-
var(--ui-button-shadow, var(--ui-
|
|
1309
|
+
var(--ui-button-shadow, var(--ui-action-shadow, var(--_ui-action-shadow))),
|
|
1197
1310
|
var(--ui-focus-halo);
|
|
1198
1311
|
}
|
|
1199
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-
|
|
1312
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-e56c4e01]:focus-visible {
|
|
1200
1313
|
box-shadow:
|
|
1201
|
-
var(--ui-button-solid-shadow, var(--ui-
|
|
1314
|
+
var(--ui-button-solid-shadow, var(--ui-action-shadow, var(--_ui-action-shadow))),
|
|
1202
1315
|
var(--ui-focus-halo);
|
|
1203
1316
|
}
|
|
1317
|
+
:is([data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-e56c4e01], [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-e56c4e01], [data-component~="ui-button"][data-ui-button-state~="variant=card"][data-v-e56c4e01]):focus-visible {
|
|
1318
|
+
box-shadow: var(--ui-focus-halo);
|
|
1319
|
+
}
|
|
1204
1320
|
|
|
1205
1321
|
/* A loading action stays visually active; only an explicitly disabled action takes the
|
|
1206
1322
|
neutral disabled palette. Its flat surface and muted ink make the state unambiguous. */
|
|
1207
|
-
[data-component~="ui-button"][data-v-
|
|
1323
|
+
[data-component~="ui-button"][data-v-e56c4e01]:is(:disabled, [aria-disabled="true"]:not([aria-busy="true"])) {
|
|
1208
1324
|
border-color: var(--ui-disabled-border);
|
|
1209
1325
|
background-color: var(--ui-disabled-surface);
|
|
1210
1326
|
color: var(--ui-disabled-text);
|
|
@@ -1214,19 +1330,19 @@ svg[data-v-6551ff4d],
|
|
|
1214
1330
|
background-image: none;
|
|
1215
1331
|
box-shadow: none;
|
|
1216
1332
|
}
|
|
1217
|
-
:is([data-component~="ui-button"][data-ui-button-state~="loading"][data-v-
|
|
1333
|
+
:is([data-component~="ui-button"][data-ui-button-state~="loading"][data-v-e56c4e01], [data-component~="ui-button"][data-ui-button-state~="pending"][data-v-e56c4e01]):focus-visible {
|
|
1218
1334
|
box-shadow: var(--ui-focus-halo);
|
|
1219
1335
|
}
|
|
1220
1336
|
|
|
1221
1337
|
/* Ghost keeps no border, but gains the same neutral surface as other disabled buttons. */
|
|
1222
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-
|
|
1338
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-e56c4e01]:is(:disabled, [aria-disabled="true"]:not([aria-busy="true"])) {
|
|
1223
1339
|
background-color: var(--ui-disabled-surface);
|
|
1224
1340
|
border-color: transparent;
|
|
1225
1341
|
}
|
|
1226
1342
|
|
|
1227
1343
|
/* The size states outrank :host, so sm is named too, or a small button would stay small. */
|
|
1228
1344
|
@media (pointer: coarse) {
|
|
1229
|
-
[data-component~="ui-button"][data-v-
|
|
1345
|
+
[data-component~="ui-button"][data-v-e56c4e01], [data-component~="ui-button"][data-ui-button-state~="size=sm"][data-v-e56c4e01] {
|
|
1230
1346
|
min-block-size: var(--ui-control-min-block-size);
|
|
1231
1347
|
}
|
|
1232
1348
|
}
|
|
@@ -1237,15 +1353,15 @@ svg[data-v-6551ff4d],
|
|
|
1237
1353
|
area. xs sits inside a line of text the same way, so it keeps its size and gains the area too.
|
|
1238
1354
|
Only these need it: a hit area on every button would reach over its neighbours. */
|
|
1239
1355
|
html[data-ui-input-modality="touch"]
|
|
1240
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-
|
|
1356
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-e56c4e01],
|
|
1241
1357
|
html[data-ui-input-modality="touch"]
|
|
1242
|
-
[data-component~="ui-button"][data-ui-button-state~="size=xs"][data-v-
|
|
1358
|
+
[data-component~="ui-button"][data-ui-button-state~="size=xs"][data-v-e56c4e01] {
|
|
1243
1359
|
position: relative;
|
|
1244
1360
|
}
|
|
1245
1361
|
html[data-ui-input-modality="touch"]
|
|
1246
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-
|
|
1362
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-e56c4e01]::after,
|
|
1247
1363
|
html[data-ui-input-modality="touch"]
|
|
1248
|
-
[data-component~="ui-button"][data-ui-button-state~="size=xs"][data-v-
|
|
1364
|
+
[data-component~="ui-button"][data-ui-button-state~="size=xs"][data-v-e56c4e01]::after {
|
|
1249
1365
|
position: absolute;
|
|
1250
1366
|
inset: 50% auto auto 50%;
|
|
1251
1367
|
inline-size: max(100%, var(--ui-control-min-block-size));
|
|
@@ -1256,7 +1372,7 @@ html[data-ui-input-modality="touch"]
|
|
|
1256
1372
|
|
|
1257
1373
|
/* Link: an inline text action. No box, padding, or minimum height (inline targets are exempt under
|
|
1258
1374
|
WCAG 2.5.8); the inherited font; an underline that strengthens on hover; a visible focus ring. */
|
|
1259
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-
|
|
1375
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-e56c4e01] {
|
|
1260
1376
|
display: inline;
|
|
1261
1377
|
min-block-size: 0;
|
|
1262
1378
|
padding: 0;
|
|
@@ -1274,21 +1390,21 @@ html[data-ui-input-modality="touch"]
|
|
|
1274
1390
|
color var(--ui-motion-fast) var(--ui-motion-ease),
|
|
1275
1391
|
text-decoration-color var(--ui-motion-fast) var(--ui-motion-ease);
|
|
1276
1392
|
}
|
|
1277
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-
|
|
1393
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-e56c4e01]:hover:not(:disabled, [aria-disabled="true"]) {
|
|
1278
1394
|
color: var(--ui-button-link-hover-text, var(--ui-text-primary));
|
|
1279
1395
|
text-decoration-color: currentColor;
|
|
1280
1396
|
background: none;
|
|
1281
1397
|
transform: none;
|
|
1282
1398
|
}
|
|
1283
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-
|
|
1399
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-e56c4e01]:active:not(:disabled, [aria-disabled="true"]) {
|
|
1284
1400
|
background: none;
|
|
1285
1401
|
transform: none;
|
|
1286
1402
|
}
|
|
1287
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-
|
|
1403
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-e56c4e01]:is(:disabled, [aria-disabled="true"]:not([aria-busy="true"])) {
|
|
1288
1404
|
background: none;
|
|
1289
1405
|
border-color: transparent;
|
|
1290
1406
|
}
|
|
1291
|
-
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-
|
|
1407
|
+
[data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-e56c4e01]:focus-visible {
|
|
1292
1408
|
box-shadow: none;
|
|
1293
1409
|
/* Fallback keeps the ring if the token is missing: an unresolved var() would void the outline. */
|
|
1294
1410
|
outline: var(--ui-focus-width) solid var(--ui-focus-ring);
|
|
@@ -1296,7 +1412,7 @@ html[data-ui-input-modality="touch"]
|
|
|
1296
1412
|
}
|
|
1297
1413
|
|
|
1298
1414
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
1299
|
-
[data-component~="ui-button"][hidden][data-v-
|
|
1415
|
+
[data-component~="ui-button"][hidden][data-v-e56c4e01] {
|
|
1300
1416
|
display: none;
|
|
1301
1417
|
}
|
|
1302
1418
|
|
|
@@ -4801,7 +4917,22 @@ svg[data-v-955cfa65-s] {
|
|
|
4801
4917
|
syntax: "*";
|
|
4802
4918
|
inherits: false;
|
|
4803
4919
|
}
|
|
4804
|
-
[data-component~="ui-icon-button"][data-v-
|
|
4920
|
+
[data-component~="ui-icon-button"][data-v-219fa683] {
|
|
4921
|
+
/* Optional inherited action-group values keep text and icon actions under the same light.
|
|
4922
|
+
One fine top/start highlight follows the bottom/end lowlight at a joined action seam.
|
|
4923
|
+
A single ambient lift avoids stacking a face gradient or another inset bevel. */
|
|
4924
|
+
--_ui-action-start: 1px;
|
|
4925
|
+
--_ui-action-edge: var(
|
|
4926
|
+
--ui-action-edge,
|
|
4927
|
+
inset var(--_ui-action-start) 1px 0 light-dark(
|
|
4928
|
+
rgb(255 255 255 / 0.08),
|
|
4929
|
+
rgb(255 255 255 / 0.06)
|
|
4930
|
+
),
|
|
4931
|
+
inset calc(-1 * var(--_ui-action-start)) -1px 0 light-dark(rgb(0 0 0 / 0.08), rgb(0 0 0 / 0.08))
|
|
4932
|
+
);
|
|
4933
|
+
--_ui-action-shadow:
|
|
4934
|
+
var(--_ui-action-edge),
|
|
4935
|
+
0 1px 2px light-dark(rgb(0 0 0 / 0.10), rgb(0 0 0 / 0.20));
|
|
4805
4936
|
/* Hooks do not inherit, so the parts below read them from the root. */
|
|
4806
4937
|
--_ui-icon-button-icon-size: var(--ui-icon-button-icon-size);
|
|
4807
4938
|
--_ui-icon-button-icon-stroke-width: var(--ui-icon-button-icon-stroke-width);
|
|
@@ -4809,7 +4940,10 @@ svg[data-v-955cfa65-s] {
|
|
|
4809
4940
|
display: inline-flex;
|
|
4810
4941
|
color: var(--ui-text-secondary);
|
|
4811
4942
|
}
|
|
4812
|
-
[data-component~="ui-icon-button"][data-
|
|
4943
|
+
[data-component~="ui-icon-button"][data-v-219fa683]:dir(rtl) {
|
|
4944
|
+
--_ui-action-start: -1px;
|
|
4945
|
+
}
|
|
4946
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="tone=accent"][data-v-219fa683] {
|
|
4813
4947
|
--_icon-button-border: var(--ui-accent-solid);
|
|
4814
4948
|
--_icon-button-hover-border: var(--ui-accent-hover);
|
|
4815
4949
|
--_icon-button-text: var(--ui-accent-subtle-text, var(--ui-accent-solid));
|
|
@@ -4822,15 +4956,15 @@ svg[data-v-955cfa65-s] {
|
|
|
4822
4956
|
}
|
|
4823
4957
|
|
|
4824
4958
|
/* Omitted tone retains the existing accent solid; explicit neutral is additive. */
|
|
4825
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="tone=neutral"][data-v-
|
|
4959
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="tone=neutral"][data-v-219fa683] {
|
|
4826
4960
|
--_icon-button-solid-surface: var(--ui-text-primary);
|
|
4827
4961
|
--_icon-button-solid-hover-surface: var(--ui-text-primary);
|
|
4828
4962
|
--_icon-button-solid-text: var(--ui-surface-default);
|
|
4829
4963
|
}
|
|
4830
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-
|
|
4964
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-219fa683] {
|
|
4831
4965
|
position: relative;
|
|
4832
4966
|
}
|
|
4833
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-
|
|
4967
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-219fa683]::before {
|
|
4834
4968
|
content: "";
|
|
4835
4969
|
position: absolute;
|
|
4836
4970
|
inset: 50% auto auto 50%;
|
|
@@ -4844,13 +4978,13 @@ svg[data-v-955cfa65-s] {
|
|
|
4844
4978
|
transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
|
|
4845
4979
|
pointer-events: none;
|
|
4846
4980
|
}
|
|
4847
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-
|
|
4981
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-219fa683]:disabled::before {
|
|
4848
4982
|
opacity: 0;
|
|
4849
4983
|
}
|
|
4850
4984
|
|
|
4851
4985
|
/* At rest an anticipatory button shows only its guide dot. The icon grows into place when
|
|
4852
4986
|
proximity, hover, or focus reveals it; the button's hit area and guide remain stable. */
|
|
4853
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"] .content[data-v-
|
|
4987
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"] .content[data-v-219fa683] {
|
|
4854
4988
|
opacity: 1;
|
|
4855
4989
|
transform: scale(1);
|
|
4856
4990
|
transition:
|
|
@@ -4858,22 +4992,22 @@ svg[data-v-955cfa65-s] {
|
|
|
4858
4992
|
transform calc(var(--ui-motion-fast) * 2) cubic-bezier(0.2, 1.4, 0.35, 1);
|
|
4859
4993
|
}
|
|
4860
4994
|
@media (hover: hover) and (pointer: fine) {
|
|
4861
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-
|
|
4995
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-219fa683]:not([data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"], [data-component~="ui-icon-button"][data-ui-icon-button-state~="loading"], [data-component~="ui-icon-button"][data-ui-icon-button-state~="pending"], :disabled, [aria-pressed="true"], [data-ui-proximity="near"], :hover, :focus-visible) {
|
|
4862
4996
|
border-color: transparent;
|
|
4863
4997
|
background-color: transparent;
|
|
4864
4998
|
box-shadow: none;
|
|
4865
4999
|
}
|
|
4866
5000
|
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"]:not([data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"], [data-component~="ui-icon-button"][data-ui-icon-button-state~="loading"], [data-component~="ui-icon-button"][data-ui-icon-button-state~="pending"], :disabled, [aria-pressed="true"], [data-ui-proximity="near"], :hover, :focus-visible)
|
|
4867
|
-
.content[data-v-
|
|
5001
|
+
.content[data-v-219fa683] {
|
|
4868
5002
|
opacity: 0;
|
|
4869
5003
|
transform: scale(0.65);
|
|
4870
5004
|
transition-duration: var(--ui-motion-fast);
|
|
4871
5005
|
}
|
|
4872
5006
|
}
|
|
4873
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-
|
|
5007
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-219fa683]:is([data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"], [aria-pressed="true"], [data-ui-proximity="near"], :hover, :focus-visible)::before {
|
|
4874
5008
|
opacity: 0;
|
|
4875
5009
|
}
|
|
4876
|
-
[data-component~="ui-icon-button"][data-v-
|
|
5010
|
+
[data-component~="ui-icon-button"][data-v-219fa683] {
|
|
4877
5011
|
/* The size prop resolves here; --ui-icon-button-size overrides it on an element. */
|
|
4878
5012
|
--_size: 2rem;
|
|
4879
5013
|
appearance: none;
|
|
@@ -4899,7 +5033,7 @@ svg[data-v-955cfa65-s] {
|
|
|
4899
5033
|
transform var(--ui-motion-fast) var(--ui-motion-ease);
|
|
4900
5034
|
}
|
|
4901
5035
|
@media (hover: none), (pointer: coarse) {
|
|
4902
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-
|
|
5036
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-219fa683]::before {
|
|
4903
5037
|
opacity: 0;
|
|
4904
5038
|
}
|
|
4905
5039
|
}
|
|
@@ -4907,10 +5041,10 @@ svg[data-v-955cfa65-s] {
|
|
|
4907
5041
|
/* A touch target without a bigger button: an invisible hit area, at least the control
|
|
4908
5042
|
minimum, centred on the button (::before is the anticipatory guide). */
|
|
4909
5043
|
@media (pointer: coarse) {
|
|
4910
|
-
[data-component~="ui-icon-button"][data-v-
|
|
5044
|
+
[data-component~="ui-icon-button"][data-v-219fa683] {
|
|
4911
5045
|
position: relative;
|
|
4912
5046
|
}
|
|
4913
|
-
[data-component~="ui-icon-button"][data-v-
|
|
5047
|
+
[data-component~="ui-icon-button"][data-v-219fa683]::after {
|
|
4914
5048
|
content: "";
|
|
4915
5049
|
position: absolute;
|
|
4916
5050
|
inset: 50% auto auto 50%;
|
|
@@ -4919,10 +5053,10 @@ svg[data-v-955cfa65-s] {
|
|
|
4919
5053
|
transform: translate(-50%, -50%);
|
|
4920
5054
|
}
|
|
4921
5055
|
}
|
|
4922
|
-
html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-
|
|
5056
|
+
html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-219fa683] {
|
|
4923
5057
|
position: relative;
|
|
4924
5058
|
}
|
|
4925
|
-
html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-
|
|
5059
|
+
html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-219fa683]::after {
|
|
4926
5060
|
content: "";
|
|
4927
5061
|
position: absolute;
|
|
4928
5062
|
inset: 50% auto auto 50%;
|
|
@@ -4930,14 +5064,14 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-b
|
|
|
4930
5064
|
block-size: max(100%, var(--ui-control-min-block-size));
|
|
4931
5065
|
transform: translate(-50%, -50%);
|
|
4932
5066
|
}
|
|
4933
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=sm"][data-v-
|
|
5067
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=sm"][data-v-219fa683] {
|
|
4934
5068
|
--_size: 1.75rem;
|
|
4935
5069
|
inline-size: var(--ui-icon-button-size, var(--_size));
|
|
4936
5070
|
block-size: var(--ui-icon-button-size, var(--_size));
|
|
4937
5071
|
min-inline-size: var(--ui-icon-button-size, var(--_size));
|
|
4938
5072
|
min-block-size: var(--ui-icon-button-size, var(--_size));
|
|
4939
5073
|
}
|
|
4940
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=lg"][data-v-
|
|
5074
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=lg"][data-v-219fa683] {
|
|
4941
5075
|
--_size: 2.5rem;
|
|
4942
5076
|
inline-size: var(--ui-icon-button-size, var(--_size));
|
|
4943
5077
|
block-size: var(--ui-icon-button-size, var(--_size));
|
|
@@ -4946,19 +5080,19 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-b
|
|
|
4946
5080
|
}
|
|
4947
5081
|
|
|
4948
5082
|
/* A text button's companion uses control geometry; compact icon buttons keep their own density. */
|
|
4949
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="matchButton"][data-v-
|
|
5083
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="matchButton"][data-v-219fa683] {
|
|
4950
5084
|
--_size: var(--ui-control-size-md);
|
|
4951
5085
|
block-size: auto;
|
|
4952
5086
|
align-self: stretch;
|
|
4953
5087
|
}
|
|
4954
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="matchButton"][data-ui-icon-button-state~="size=sm"][data-v-
|
|
5088
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="matchButton"][data-ui-icon-button-state~="size=sm"][data-v-219fa683] {
|
|
4955
5089
|
--_size: var(--ui-control-size-sm);
|
|
4956
5090
|
}
|
|
4957
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="matchButton"][data-ui-icon-button-state~="size=lg"][data-v-
|
|
5091
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="matchButton"][data-ui-icon-button-state~="size=lg"][data-v-219fa683] {
|
|
4958
5092
|
--_size: var(--ui-control-size-lg);
|
|
4959
5093
|
}
|
|
4960
5094
|
@media (pointer: coarse) {
|
|
4961
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="matchButton"][data-v-
|
|
5095
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="matchButton"][data-v-219fa683] {
|
|
4962
5096
|
inline-size: max(var(--ui-icon-button-size, var(--_size)), var(--ui-control-min-block-size));
|
|
4963
5097
|
min-inline-size: max(
|
|
4964
5098
|
var(--ui-icon-button-size, var(--_size)),
|
|
@@ -4967,10 +5101,10 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-b
|
|
|
4967
5101
|
min-block-size: max(var(--ui-icon-button-size, var(--_size)), var(--ui-control-min-block-size));
|
|
4968
5102
|
}
|
|
4969
5103
|
}
|
|
4970
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="round"][data-v-
|
|
5104
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="round"][data-v-219fa683] {
|
|
4971
5105
|
border-radius: var(--ui-radius-round);
|
|
4972
5106
|
}
|
|
4973
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][data-v-
|
|
5107
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][data-v-219fa683] {
|
|
4974
5108
|
border-color: var(
|
|
4975
5109
|
--ui-icon-button-border,
|
|
4976
5110
|
var(--_icon-button-border, var(--ui-control-border, var(--ui-border-strong)))
|
|
@@ -4979,23 +5113,20 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-b
|
|
|
4979
5113
|
--ui-icon-button-outline-surface,
|
|
4980
5114
|
var(--_icon-button-outline-surface, var(--ui-surface-default))
|
|
4981
5115
|
);
|
|
4982
|
-
background-image:
|
|
5116
|
+
background-image: none;
|
|
4983
5117
|
color: var(--ui-icon-button-outline-text, var(--_icon-button-text, var(--ui-text-primary)));
|
|
4984
|
-
box-shadow: var(--ui-
|
|
5118
|
+
box-shadow: var(--ui-action-shadow, var(--_ui-action-shadow));
|
|
4985
5119
|
}
|
|
4986
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-v-
|
|
5120
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-v-219fa683] {
|
|
4987
5121
|
background-color: var(
|
|
4988
5122
|
--ui-icon-button-solid-surface,
|
|
4989
5123
|
var(--_icon-button-solid-surface, var(--ui-accent-solid))
|
|
4990
5124
|
);
|
|
4991
|
-
background-image:
|
|
5125
|
+
background-image: none;
|
|
4992
5126
|
color: var(--ui-icon-button-solid-text, var(--_icon-button-solid-text, var(--ui-text-on-accent)));
|
|
4993
|
-
box-shadow: var(
|
|
4994
|
-
--ui-icon-button-solid-shadow,
|
|
4995
|
-
0 1px 2px color-mix(in srgb, var(--ui-accent-solid) 18%, transparent)
|
|
4996
|
-
);
|
|
5127
|
+
box-shadow: var(--ui-icon-button-solid-shadow, var(--ui-action-shadow, var(--_ui-action-shadow)));
|
|
4997
5128
|
}
|
|
4998
|
-
[data-component~="ui-icon-button"][data-v-
|
|
5129
|
+
[data-component~="ui-icon-button"][data-v-219fa683]:hover:enabled:not([aria-disabled="true"]) {
|
|
4999
5130
|
/* Derived from the text colour so the ghost hover shows on any background. */
|
|
5000
5131
|
background-color: var(
|
|
5001
5132
|
--ui-icon-button-hover-surface,
|
|
@@ -5003,23 +5134,23 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-b
|
|
|
5003
5134
|
);
|
|
5004
5135
|
color: var(--ui-icon-button-hover-text, var(--_icon-button-text, var(--ui-text-primary)));
|
|
5005
5136
|
}
|
|
5006
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][data-v-
|
|
5137
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][data-v-219fa683]:hover:enabled:not([aria-disabled="true"]) {
|
|
5007
5138
|
border-color: var(
|
|
5008
5139
|
--ui-icon-button-hover-border,
|
|
5009
5140
|
var(--_icon-button-hover-border, var(--ui-control-border-hover, var(--ui-control-border)))
|
|
5010
5141
|
);
|
|
5011
5142
|
}
|
|
5012
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-v-
|
|
5143
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-v-219fa683]:hover:enabled:not([aria-disabled="true"]) {
|
|
5013
5144
|
background-color: var(
|
|
5014
5145
|
--ui-icon-button-solid-hover-surface,
|
|
5015
5146
|
var(--_icon-button-solid-hover-surface, var(--ui-accent-hover))
|
|
5016
5147
|
);
|
|
5017
5148
|
}
|
|
5018
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-ui-icon-button-state~="tone=accent"][data-v-
|
|
5019
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-ui-icon-button-state~="tone=neutral"][data-v-
|
|
5149
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-ui-icon-button-state~="tone=accent"][data-v-219fa683]:hover:enabled:not([aria-disabled="true"]),
|
|
5150
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-ui-icon-button-state~="tone=neutral"][data-v-219fa683]:hover:enabled:not([aria-disabled="true"]) {
|
|
5020
5151
|
color: var(--ui-icon-button-solid-text, var(--_icon-button-solid-text, var(--ui-text-on-accent)));
|
|
5021
5152
|
}
|
|
5022
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=ghost"][aria-expanded="true"][data-v-
|
|
5153
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=ghost"][aria-expanded="true"][data-v-219fa683]:enabled:not([aria-disabled="true"]) {
|
|
5023
5154
|
background-color: var(
|
|
5024
5155
|
--ui-icon-button-active-surface,
|
|
5025
5156
|
color-mix(in srgb, currentColor 16%, transparent)
|
|
@@ -5029,7 +5160,7 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-b
|
|
|
5029
5160
|
}
|
|
5030
5161
|
|
|
5031
5162
|
/* Native toggle state persists after pointer release, including during loading. */
|
|
5032
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][aria-pressed="true"][data-v-
|
|
5163
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][aria-pressed="true"][data-v-219fa683]:enabled {
|
|
5033
5164
|
background-color: var(
|
|
5034
5165
|
--ui-icon-button-active-surface,
|
|
5035
5166
|
color-mix(in srgb, currentColor 12%, var(--ui-surface-default))
|
|
@@ -5037,47 +5168,61 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-b
|
|
|
5037
5168
|
background-image: none;
|
|
5038
5169
|
box-shadow: var(--ui-pressed);
|
|
5039
5170
|
}
|
|
5040
|
-
[data-component~="ui-icon-button"][data-v-
|
|
5171
|
+
[data-component~="ui-icon-button"][data-v-219fa683]:active:enabled:not([aria-disabled="true"]) {
|
|
5041
5172
|
transform: scale(var(--ui-icon-button-active-scale, 0.96));
|
|
5042
5173
|
}
|
|
5043
|
-
:is([data-component~="ui-icon-button"][data-ui-icon-button-state~="loading"][data-v-
|
|
5174
|
+
:is([data-component~="ui-icon-button"][data-ui-icon-button-state~="loading"][data-v-219fa683], [data-component~="ui-icon-button"][data-ui-icon-button-state~="pending"][data-v-219fa683]) {
|
|
5044
5175
|
cursor: progress;
|
|
5045
5176
|
}
|
|
5046
|
-
.content[data-v-
|
|
5177
|
+
.content[data-v-219fa683] {
|
|
5047
5178
|
display: inline-flex;
|
|
5048
5179
|
align-items: center;
|
|
5049
5180
|
justify-content: center;
|
|
5050
5181
|
}
|
|
5051
5182
|
:is([data-component~="ui-icon-button"][data-ui-icon-button-state~="loading"], [data-component~="ui-icon-button"][data-ui-icon-button-state~="pending"])
|
|
5052
|
-
.content[data-v-
|
|
5183
|
+
.content[data-v-219fa683] {
|
|
5053
5184
|
display: none;
|
|
5054
5185
|
}
|
|
5055
5186
|
@media (prefers-reduced-motion: reduce) {
|
|
5056
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"] .content[data-v-
|
|
5187
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"] .content[data-v-219fa683] {
|
|
5057
5188
|
transition: none;
|
|
5058
5189
|
}
|
|
5059
5190
|
}
|
|
5060
|
-
[data-component~="ui-icon-button"][data-v-
|
|
5191
|
+
[data-component~="ui-icon-button"][data-v-219fa683]:focus-visible {
|
|
5061
5192
|
outline: none;
|
|
5062
5193
|
box-shadow: var(--ui-focus-halo);
|
|
5063
5194
|
}
|
|
5064
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][
|
|
5195
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][data-v-219fa683]:focus-visible {
|
|
5196
|
+
box-shadow:
|
|
5197
|
+
var(--ui-action-shadow, var(--_ui-action-shadow)),
|
|
5198
|
+
var(--ui-focus-halo);
|
|
5199
|
+
}
|
|
5200
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-v-219fa683]:focus-visible {
|
|
5201
|
+
box-shadow:
|
|
5202
|
+
var(--ui-icon-button-solid-shadow, var(--ui-action-shadow, var(--_ui-action-shadow))),
|
|
5203
|
+
var(--ui-focus-halo);
|
|
5204
|
+
}
|
|
5205
|
+
[data-component~="ui-icon-button"][data-v-219fa683]:is([data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"], [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"]):active:enabled:not([aria-disabled="true"]) {
|
|
5206
|
+
background-image: none;
|
|
5207
|
+
box-shadow: var(--ui-pressed);
|
|
5208
|
+
}
|
|
5209
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][aria-pressed="true"][data-v-219fa683]:enabled:focus-visible {
|
|
5065
5210
|
box-shadow:
|
|
5066
5211
|
var(--ui-pressed),
|
|
5067
5212
|
var(--ui-focus-halo);
|
|
5068
5213
|
}
|
|
5069
5214
|
@media (forced-colors: active) {
|
|
5070
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][aria-pressed="true"][data-v-
|
|
5215
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][aria-pressed="true"][data-v-219fa683]:enabled {
|
|
5071
5216
|
outline: var(--ui-focus-width) solid Highlight;
|
|
5072
5217
|
outline-offset: calc(-2 * var(--ui-focus-width));
|
|
5073
5218
|
}
|
|
5074
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][aria-pressed="true"][data-v-
|
|
5219
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][aria-pressed="true"][data-v-219fa683]:enabled:focus-visible {
|
|
5075
5220
|
outline-offset: var(--ui-focus-width);
|
|
5076
5221
|
}
|
|
5077
5222
|
}
|
|
5078
5223
|
|
|
5079
5224
|
/* Disabled is a flat neutral control, independent of the active variant's tone. */
|
|
5080
|
-
[data-component~="ui-icon-button"][data-v-
|
|
5225
|
+
[data-component~="ui-icon-button"][data-v-219fa683]:disabled {
|
|
5081
5226
|
border-color: var(--ui-disabled-border);
|
|
5082
5227
|
background-color: var(--ui-disabled-surface);
|
|
5083
5228
|
color: var(--ui-disabled-text);
|
|
@@ -5087,23 +5232,23 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-b
|
|
|
5087
5232
|
box-shadow: none;
|
|
5088
5233
|
background-image: none;
|
|
5089
5234
|
}
|
|
5090
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=ghost"][data-v-
|
|
5235
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=ghost"][data-v-219fa683]:disabled {
|
|
5091
5236
|
border-color: transparent;
|
|
5092
5237
|
}
|
|
5093
|
-
[data-component~="ui-icon-button"][data-v-
|
|
5238
|
+
[data-component~="ui-icon-button"][data-v-219fa683] {
|
|
5094
5239
|
--_icon-button-icon-default: var(--ui-icon-size-md);
|
|
5095
5240
|
/* A slotted ui-icon is its own component, out of reach of the svg rule below; these are its
|
|
5096
5241
|
defaults, which its own --ui-icon-* hooks still override. */
|
|
5097
5242
|
--_ui-default-icon-size: var(--_ui-icon-button-icon-size, var(--_icon-button-icon-default));
|
|
5098
5243
|
--_ui-default-icon-stroke-width: var(--_ui-icon-button-icon-stroke-width, 1.75);
|
|
5099
5244
|
}
|
|
5100
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=sm"][data-v-
|
|
5245
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=sm"][data-v-219fa683] {
|
|
5101
5246
|
--_icon-button-icon-default: var(--ui-icon-size-sm);
|
|
5102
5247
|
}
|
|
5103
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=lg"][data-v-
|
|
5248
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=lg"][data-v-219fa683] {
|
|
5104
5249
|
--_icon-button-icon-default: var(--ui-icon-size-lg);
|
|
5105
5250
|
}
|
|
5106
|
-
svg[data-v-
|
|
5251
|
+
svg[data-v-219fa683-s] {
|
|
5107
5252
|
inline-size: var(--_ui-icon-button-icon-size, var(--_icon-button-icon-default));
|
|
5108
5253
|
block-size: var(--_ui-icon-button-icon-size, var(--_icon-button-icon-default));
|
|
5109
5254
|
flex-shrink: 0;
|
|
@@ -5111,7 +5256,7 @@ svg[data-v-b66a1661-s] {
|
|
|
5111
5256
|
}
|
|
5112
5257
|
|
|
5113
5258
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
5114
|
-
[data-component~="ui-icon-button"][hidden][data-v-
|
|
5259
|
+
[data-component~="ui-icon-button"][hidden][data-v-219fa683] {
|
|
5115
5260
|
display: none;
|
|
5116
5261
|
}
|
|
5117
5262
|
|
|
@@ -5491,7 +5636,7 @@ svg[data-v-b66a1661-s] {
|
|
|
5491
5636
|
whole value is. The action slot takes one button at the end, inside the border, for the one
|
|
5492
5637
|
thing the field is for ("Continue" after a site's address), so it reads as the field's action
|
|
5493
5638
|
and not the form's. */
|
|
5494
|
-
[data-component~="ui-input-group"][data-v-
|
|
5639
|
+
[data-component~="ui-input-group"][data-v-ac4d8095] {
|
|
5495
5640
|
/* The group's own border and height stand for the input's, so the group is a lone Input's height.
|
|
5496
5641
|
Hooks do not inherit, so these are defaults for the input; its own hooks still win. */
|
|
5497
5642
|
--_ui-default-input-border-width: 0;
|
|
@@ -5536,38 +5681,43 @@ svg[data-v-b66a1661-s] {
|
|
|
5536
5681
|
border-color var(--ui-motion-fast) var(--ui-motion-ease),
|
|
5537
5682
|
box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
|
|
5538
5683
|
}
|
|
5684
|
+
[data-component~="ui-input-group"][data-ui-input-group-state~="variant=subtle"][data-v-ac4d8095] {
|
|
5685
|
+
border-color: var(--ui-border);
|
|
5686
|
+
background: var(--ui-surface-muted);
|
|
5687
|
+
box-shadow: none;
|
|
5688
|
+
}
|
|
5539
5689
|
|
|
5540
5690
|
/* The frame takes its input's size, so a small group lines up with small buttons and fields. */
|
|
5541
|
-
[data-component~="ui-input-group"][data-v-
|
|
5691
|
+
[data-component~="ui-input-group"][data-v-ac4d8095]:has(.field [data-ui-input-state~="size=sm"]) {
|
|
5542
5692
|
min-block-size: var(--ui-control-size-sm);
|
|
5543
5693
|
}
|
|
5544
|
-
[data-component~="ui-input-group"][data-v-
|
|
5694
|
+
[data-component~="ui-input-group"][data-v-ac4d8095]:has(.field [data-ui-input-state~="size=lg"]) {
|
|
5545
5695
|
min-block-size: var(--ui-control-size-lg);
|
|
5546
5696
|
}
|
|
5547
5697
|
@media (pointer: coarse) {
|
|
5548
|
-
[data-component~="ui-input-group"][data-v-
|
|
5698
|
+
[data-component~="ui-input-group"][data-v-ac4d8095]:has(.field [data-ui-input-state~="size=sm"]) {
|
|
5549
5699
|
min-block-size: var(--ui-control-min-block-size);
|
|
5550
5700
|
}
|
|
5551
5701
|
}
|
|
5552
|
-
[data-component~="ui-input-group"][data-v-
|
|
5702
|
+
[data-component~="ui-input-group"][data-v-ac4d8095]:hover:not(:has(:is(input, textarea):focus, :is(input, textarea):disabled, :is(input, textarea):read-only, [aria-invalid="true"], :is(:user-invalid, [data-user-invalid]))) {
|
|
5553
5703
|
border-color: var(--ui-control-border-hover, var(--ui-text-secondary));
|
|
5554
5704
|
}
|
|
5555
5705
|
|
|
5556
5706
|
/* The ring shows when the field's input would show its own: when it is focus-visible, which a
|
|
5557
5707
|
text input is for a pointer as well as a keyboard. A focused action button draws its own. */
|
|
5558
|
-
[data-component~="ui-input-group"][data-v-
|
|
5708
|
+
[data-component~="ui-input-group"][data-v-ac4d8095]:has(.field :is(input, textarea):focus-visible) {
|
|
5559
5709
|
border-color: var(--ui-control-focus, var(--ui-accent-solid));
|
|
5560
5710
|
box-shadow:
|
|
5561
5711
|
var(--ui-control-inset),
|
|
5562
5712
|
var(--ui-control-focus-halo-shadow);
|
|
5563
5713
|
}
|
|
5564
|
-
[data-component~="ui-input-group"][data-v-
|
|
5714
|
+
[data-component~="ui-input-group"][data-v-ac4d8095]:has([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])) {
|
|
5565
5715
|
border-color: var(
|
|
5566
5716
|
--ui-input-group-invalid-border,
|
|
5567
5717
|
var(--ui-field-danger, var(--ui-danger-solid))
|
|
5568
5718
|
);
|
|
5569
5719
|
}
|
|
5570
|
-
[data-component~="ui-input-group"][data-v-
|
|
5720
|
+
[data-component~="ui-input-group"][data-v-ac4d8095]:has(:is(input, textarea):is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible) {
|
|
5571
5721
|
box-shadow: var(
|
|
5572
5722
|
--ui-input-group-invalid-focus-shadow,
|
|
5573
5723
|
var(--ui-control-inset),
|
|
@@ -5581,23 +5731,23 @@ svg[data-v-b66a1661-s] {
|
|
|
5581
5731
|
|
|
5582
5732
|
/* Forced colors drop box shadows, so the focus ring becomes an outline. */
|
|
5583
5733
|
@media (forced-colors: active) {
|
|
5584
|
-
[data-component~="ui-input-group"][data-v-
|
|
5734
|
+
[data-component~="ui-input-group"][data-v-ac4d8095]:has(:is(input, textarea):focus-visible) {
|
|
5585
5735
|
outline: var(--ui-focus-width) solid Highlight;
|
|
5586
5736
|
outline-offset: var(--ui-border-width);
|
|
5587
5737
|
}
|
|
5588
5738
|
}
|
|
5589
|
-
[data-component~="ui-input-group"][data-ui-input-group-state~="disabled"][data-v-
|
|
5590
|
-
[data-component~="ui-input-group"][data-v-
|
|
5739
|
+
[data-component~="ui-input-group"][data-ui-input-group-state~="disabled"][data-v-ac4d8095],
|
|
5740
|
+
[data-component~="ui-input-group"][data-v-ac4d8095]:has(:is(input, textarea):disabled) {
|
|
5591
5741
|
background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
|
|
5592
5742
|
box-shadow: none;
|
|
5593
5743
|
cursor: not-allowed;
|
|
5594
5744
|
}
|
|
5595
|
-
.field[data-v-
|
|
5745
|
+
.field[data-v-ac4d8095] {
|
|
5596
5746
|
display: flex;
|
|
5597
5747
|
flex: 1;
|
|
5598
5748
|
min-inline-size: 0;
|
|
5599
5749
|
}
|
|
5600
|
-
.affix[data-v-
|
|
5750
|
+
.affix[data-v-ac4d8095] {
|
|
5601
5751
|
display: inline-flex;
|
|
5602
5752
|
flex: none;
|
|
5603
5753
|
align-items: center;
|
|
@@ -5609,21 +5759,21 @@ svg[data-v-b66a1661-s] {
|
|
|
5609
5759
|
}
|
|
5610
5760
|
|
|
5611
5761
|
/* Fixed text is part of the value, but should not look editable. */
|
|
5612
|
-
.affix[data-v-
|
|
5613
|
-
.affix[data-v-
|
|
5762
|
+
.affix[data-v-ac4d8095]:has([slot="prefix"]),
|
|
5763
|
+
.affix[data-v-ac4d8095]:has([slot="suffix"]) {
|
|
5614
5764
|
background: var(--ui-surface-muted);
|
|
5615
5765
|
}
|
|
5616
|
-
.affix[data-v-
|
|
5766
|
+
.affix[data-v-ac4d8095]:has([slot="prefix"]) {
|
|
5617
5767
|
border-inline-end: var(--ui-border-width) solid var(--ui-border-divider);
|
|
5618
5768
|
}
|
|
5619
|
-
.affix[data-v-
|
|
5769
|
+
.affix[data-v-ac4d8095]:has([slot="suffix"]) {
|
|
5620
5770
|
border-inline-start: var(--ui-border-width) solid var(--ui-border-divider);
|
|
5621
5771
|
}
|
|
5622
|
-
[data-component~="ui-input-group"][data-ui-input-group-state~="prefixKind=icon"][data-v-
|
|
5772
|
+
[data-component~="ui-input-group"][data-ui-input-group-state~="prefixKind=icon"][data-v-ac4d8095] {
|
|
5623
5773
|
--_ui-default-input-padding-inline-start: var(--ui-space-2);
|
|
5624
5774
|
}
|
|
5625
5775
|
[data-component~="ui-input-group"][data-ui-input-group-state~="prefixKind=icon"]
|
|
5626
|
-
.affix[data-v-
|
|
5776
|
+
.affix[data-v-ac4d8095]:first-child {
|
|
5627
5777
|
padding-inline-end: 0;
|
|
5628
5778
|
border-inline-end: 0;
|
|
5629
5779
|
background: transparent;
|
|
@@ -5631,7 +5781,7 @@ svg[data-v-b66a1661-s] {
|
|
|
5631
5781
|
|
|
5632
5782
|
/* Centred rather than padded above and below: the group is exactly a lone Input's height, so a
|
|
5633
5783
|
small button sits inside it with the difference split evenly, and the field keeps its height. */
|
|
5634
|
-
.action[data-v-
|
|
5784
|
+
.action[data-v-ac4d8095] {
|
|
5635
5785
|
display: flex;
|
|
5636
5786
|
flex: none;
|
|
5637
5787
|
align-items: center;
|
|
@@ -5639,14 +5789,14 @@ svg[data-v-b66a1661-s] {
|
|
|
5639
5789
|
}
|
|
5640
5790
|
|
|
5641
5791
|
/* Multiline text owns the first row; its action remains inside the same frame below it. */
|
|
5642
|
-
[data-component~="ui-input-group"][data-ui-input-group-state~="multiline"][data-v-
|
|
5792
|
+
[data-component~="ui-input-group"][data-ui-input-group-state~="multiline"][data-v-ac4d8095] {
|
|
5643
5793
|
display: grid;
|
|
5644
5794
|
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
5645
5795
|
}
|
|
5646
|
-
[data-component~="ui-input-group"][data-ui-input-group-state~="multiline"] .field[data-v-
|
|
5796
|
+
[data-component~="ui-input-group"][data-ui-input-group-state~="multiline"] .field[data-v-ac4d8095] {
|
|
5647
5797
|
grid-column: 2;
|
|
5648
5798
|
}
|
|
5649
|
-
[data-component~="ui-input-group"][data-ui-input-group-state~="multiline"] .action[data-v-
|
|
5799
|
+
[data-component~="ui-input-group"][data-ui-input-group-state~="multiline"] .action[data-v-ac4d8095] {
|
|
5650
5800
|
grid-column: 1 / -1;
|
|
5651
5801
|
justify-content: end;
|
|
5652
5802
|
padding: var(--ui-space-2);
|
|
@@ -5655,30 +5805,30 @@ svg[data-v-b66a1661-s] {
|
|
|
5655
5805
|
|
|
5656
5806
|
/* The same textarea keeps its full resizeable box. Its text reserves the action's live width,
|
|
5657
5807
|
so a translated label or pending indicator cannot cover what the person types. */
|
|
5658
|
-
[data-component~="ui-input-group"][data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"][data-v-
|
|
5808
|
+
[data-component~="ui-input-group"][data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"][data-v-ac4d8095] {
|
|
5659
5809
|
--_ui-default-textarea-padding-inline-end: calc(
|
|
5660
5810
|
var(--_ui-input-group-action-inline-size, 7rem) + var(--ui-space-3)
|
|
5661
5811
|
);
|
|
5662
5812
|
}
|
|
5663
5813
|
[data-component~="ui-input-group"][data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"]
|
|
5664
|
-
.field[data-v-
|
|
5814
|
+
.field[data-v-ac4d8095] {
|
|
5665
5815
|
grid-row: 1;
|
|
5666
5816
|
}
|
|
5667
5817
|
[data-component~="ui-input-group"][data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"]
|
|
5668
|
-
.action[data-v-
|
|
5818
|
+
.action[data-v-ac4d8095] {
|
|
5669
5819
|
grid-column: 2;
|
|
5670
5820
|
grid-row: 1;
|
|
5671
5821
|
align-self: start;
|
|
5672
5822
|
justify-self: end;
|
|
5673
5823
|
padding: var(--ui-space-2);
|
|
5674
5824
|
}
|
|
5675
|
-
.affix[data-v-
|
|
5676
|
-
.action[data-v-
|
|
5825
|
+
.affix[data-v-ac4d8095]:empty,
|
|
5826
|
+
.action[data-v-ac4d8095]:empty {
|
|
5677
5827
|
display: none;
|
|
5678
5828
|
}
|
|
5679
5829
|
|
|
5680
5830
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
5681
|
-
[data-component~="ui-input-group"][hidden][data-v-
|
|
5831
|
+
[data-component~="ui-input-group"][hidden][data-v-ac4d8095] {
|
|
5682
5832
|
display: none;
|
|
5683
5833
|
}
|
|
5684
5834
|
|