ui-foundations 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +73 -0
- package/README.md +43 -8
- package/dist/macros/ui.njk +33 -0
- package/dist/main.css +230 -84
- package/dist/react/form.js +111 -0
- package/dist/react/index.js +1 -0
- package/dist/react/input.js +7 -0
- package/dist/react/textarea.js +7 -0
- package/dist/tokens/css/appearance-modes.tokens.mode-dark.css +7 -1
- package/dist/tokens/css/appearance-modes.tokens.mode-light.css +7 -1
- package/dist/tokens/css/components-ui.tokens.css +55 -33
- package/dist/tokens/css/core-primitives.tokens.css +1 -1
- package/dist/tokens/css/semantics-roles.tokens.css +1 -1
- package/dist/tokens/css/themes-brands.tokens.brand-a.css +1 -1
- package/dist/tokens/css/themes-brands.tokens.brand-b.css +1 -1
- package/dist/tokens/css/themes-brands.tokens.brand-c.css +1 -1
- package/dist/tokens/json/appearance-modes.tokens.mode-dark.json +24 -0
- package/dist/tokens/json/appearance-modes.tokens.mode-light.json +24 -0
- package/dist/tokens/json/components-ui.tokens.json +161 -25
- package/dist/tokens/tokens.yaml +509 -67
- package/dist/tokens/ts/appearance-modes.tokens.mode-dark.ts +7 -1
- package/dist/tokens/ts/appearance-modes.tokens.mode-light.ts +7 -1
- package/dist/tokens/ts/components-ui.tokens.ts +55 -33
- package/dist/tokens/ts/core-primitives.tokens.ts +1 -1
- package/dist/tokens/ts/semantics-roles.tokens.ts +1 -1
- package/dist/tokens/ts/themes-brands.tokens.brand-a.ts +1 -1
- package/dist/tokens/ts/themes-brands.tokens.brand-b.ts +1 -1
- package/dist/tokens/ts/themes-brands.tokens.brand-c.ts +1 -1
- package/dist/ui/index.css +1 -0
- package/dist/ui/patterns/button.css +3 -3
- package/dist/ui/patterns/checkbox.css +28 -28
- package/dist/ui/patterns/form.css +112 -0
- package/dist/ui/patterns/input.css +12 -12
- package/dist/ui/patterns/label.css +1 -1
- package/package.json +14 -3
package/dist/main.css
CHANGED
|
@@ -181,7 +181,7 @@
|
|
|
181
181
|
}
|
|
182
182
|
}
|
|
183
183
|
/* Auto-generated design tokens from Figma */
|
|
184
|
-
/* Generated on 2026-
|
|
184
|
+
/* Generated on 2026-06-06T14:29:01.194Z */
|
|
185
185
|
|
|
186
186
|
:root {
|
|
187
187
|
--color-neutral-100: rgb(230 230 230);
|
|
@@ -421,7 +421,7 @@
|
|
|
421
421
|
--zindex-hidden: -1;
|
|
422
422
|
}
|
|
423
423
|
/* Auto-generated design tokens from Figma */
|
|
424
|
-
/* Generated on 2026-
|
|
424
|
+
/* Generated on 2026-06-06T14:29:01.200Z */
|
|
425
425
|
|
|
426
426
|
:root {
|
|
427
427
|
--typography-heading-font-family: var(--brand-font-lead);
|
|
@@ -457,7 +457,7 @@
|
|
|
457
457
|
--corner-checkbox-radius: var(--brand-corner-input);
|
|
458
458
|
}
|
|
459
459
|
/* Auto-generated design tokens from Figma */
|
|
460
|
-
/* Generated on 2026-
|
|
460
|
+
/* Generated on 2026-06-06T14:29:01.180Z */
|
|
461
461
|
|
|
462
462
|
:root {
|
|
463
463
|
--button-border-size-hover: var(--size-border-100);
|
|
@@ -465,13 +465,13 @@
|
|
|
465
465
|
--button-solid-border-color-hover: var(--color-border-brand);
|
|
466
466
|
--button-solid-border-color-active: var(--color-border-brand);
|
|
467
467
|
--button-solid-border-color-focus: var(--color-border-brand);
|
|
468
|
-
--button-solid-text-color-default: var(--color-text-
|
|
468
|
+
--button-solid-text-color-default: var(--color-text-on-brand);
|
|
469
469
|
--button-solid-container-background-default: var(--color-fill-brand);
|
|
470
470
|
--button-solid-container-background-hover: var(--color-fill-brand);
|
|
471
471
|
--button-solid-container-background-active: var(--color-fill-brand);
|
|
472
472
|
--button-solid-container-background-focus: var(--color-fill-brand);
|
|
473
|
-
--button-solid-text-color-hover: var(--color-text-
|
|
474
|
-
--button-solid-text-color-active: var(--color-text-
|
|
473
|
+
--button-solid-text-color-hover: var(--color-text-on-brand);
|
|
474
|
+
--button-solid-text-color-active: var(--color-text-on-brand);
|
|
475
475
|
--button-outline-border-color-default: var(--color-border-brand);
|
|
476
476
|
--button-outline-border-color-hover: var(--color-border-brand);
|
|
477
477
|
--button-outline-border-color-active: var(--color-border-brand);
|
|
@@ -516,22 +516,22 @@
|
|
|
516
516
|
--modal-backdrop-color: var(--color-overlay-backdrop);
|
|
517
517
|
--modal-surface-color: var(--color-fill-surface);
|
|
518
518
|
--modal-surface-border-radius: var(--brand-corner-modal);
|
|
519
|
-
--input-text-
|
|
520
|
-
--input-text-
|
|
521
|
-
--input-text-
|
|
522
|
-
--input-text-
|
|
523
|
-
--input-text-
|
|
524
|
-
--input-border-
|
|
525
|
-
--input-border-
|
|
526
|
-
--input-border-
|
|
527
|
-
--input-border-
|
|
528
|
-
--input-border-
|
|
529
|
-
--input-border-
|
|
530
|
-
--input-border-
|
|
531
|
-
--input-border-
|
|
532
|
-
--input-border-
|
|
533
|
-
--input-border-
|
|
534
|
-
--input-border-
|
|
519
|
+
--input-text-color-default: var(--color-text-default);
|
|
520
|
+
--input-text-color-hover: var(--color-text-brand);
|
|
521
|
+
--input-text-color-active: var(--color-text-default);
|
|
522
|
+
--input-text-color-disabled: var(--color-text-disabled);
|
|
523
|
+
--input-text-color-placeholder: var(--color-text-subtle);
|
|
524
|
+
--input-border-color-default: var(--color-border-default);
|
|
525
|
+
--input-border-color-hover: var(--color-border-brand);
|
|
526
|
+
--input-border-color-active: var(--color-border-brand);
|
|
527
|
+
--input-border-color-focus: var(--color-border-brand);
|
|
528
|
+
--input-border-size-default: var(--size-border-100);
|
|
529
|
+
--input-border-size-hover: var(--size-border-100);
|
|
530
|
+
--input-border-size-active: var(--size-border-200);
|
|
531
|
+
--input-border-radius: var(--brand-corner-input);
|
|
532
|
+
--input-border-color-disabled: var(--color-border-disabled);
|
|
533
|
+
--input-border-color-invalid: var(--color-border-danger);
|
|
534
|
+
--input-border-color-valid: var(--color-border-strong);
|
|
535
535
|
--input-font-family: var(--brand-font-base);
|
|
536
536
|
--input-font-weight: var(--typography-body-font-weight);
|
|
537
537
|
--input-font-size: var(--typography-label-font-size);
|
|
@@ -549,6 +549,10 @@
|
|
|
549
549
|
--input-overlay-active: var(--color-transparent);
|
|
550
550
|
--input-height: 2.5rem;
|
|
551
551
|
--input-height-min: 2.5rem;
|
|
552
|
+
--input-radio-text-color-active: var(--color-text-default);
|
|
553
|
+
--input-radio-text-color-hover: var(--color-text-strong);
|
|
554
|
+
--input-radio-container-background-hover: var(--color-fill-surface);
|
|
555
|
+
--input-radio-border-color-focus: var(--color-border-brand);
|
|
552
556
|
--form-group-gap: var(--size-spacing-400);
|
|
553
557
|
--form-group-title-color: var(--color-text-default);
|
|
554
558
|
--form-padding-inline: var(--size-spacing-400);
|
|
@@ -562,10 +566,10 @@
|
|
|
562
566
|
--form-container-border-color: var(--color-border-subtle);
|
|
563
567
|
--form-border-size: var(--size-border-100);
|
|
564
568
|
--checkbox-text-color-default: var(--color-text-default);
|
|
565
|
-
--checkbox-text-color-hover: var(--color-text-
|
|
566
|
-
--checkbox-text-color-active: var(--color-text-
|
|
569
|
+
--checkbox-text-color-hover: var(--color-text-brand);
|
|
570
|
+
--checkbox-text-color-active: var(--color-text-on-brand);
|
|
567
571
|
--checkbox-border-color-default: var(--color-border-subtle);
|
|
568
|
-
--checkbox-border-color-hover: var(--color-border-
|
|
572
|
+
--checkbox-border-color-hover: var(--color-border-brand);
|
|
569
573
|
--checkbox-border-color-active: var(--color-border-brand);
|
|
570
574
|
--checkbox-border-color-focus: var(--color-border-brand);
|
|
571
575
|
--checkbox-border-color-invalid: var(--color-border-danger);
|
|
@@ -583,7 +587,7 @@
|
|
|
583
587
|
--input-radio-text-color-default: var(--color-text-default);
|
|
584
588
|
--input-radio-text-color-disabled: var(--color-text-disabled);
|
|
585
589
|
--input-radio-border-color-default: var(--color-border-subtle);
|
|
586
|
-
--input-radio-border-color-hover: var(--color-border-
|
|
590
|
+
--input-radio-border-color-hover: var(--color-border-brand);
|
|
587
591
|
--input-radio-border-color-active: var(--color-border-brand);
|
|
588
592
|
--input-radio-border-color-disabled: var(--color-border-disabled);
|
|
589
593
|
--input-radio-container-background-default: var(--color-fill-surface);
|
|
@@ -594,30 +598,48 @@
|
|
|
594
598
|
--badge-default-text-color: var(--color-text-default);
|
|
595
599
|
--badge-default-border-color: var(--color-transparent);
|
|
596
600
|
--badge-default-container-background: var(--color-fill-subtle);
|
|
597
|
-
--badge-brand-text-color: var(--color-text-
|
|
601
|
+
--badge-brand-text-color: var(--color-text-on-brand);
|
|
598
602
|
--badge-brand-border-color: var(--color-transparent);
|
|
599
603
|
--badge-brand-container-background: var(--color-fill-brand);
|
|
600
|
-
--badge-success-text-color: var(--color-text-
|
|
604
|
+
--badge-success-text-color: var(--color-text-on-success);
|
|
601
605
|
--badge-success-border-color: var(--color-transparent);
|
|
602
606
|
--badge-success-container-background: var(--color-fill-success);
|
|
603
607
|
--badge-font-family: var(--brand-font-lead);
|
|
604
608
|
--badge-font-weight: var(--typography-label-font-weight);
|
|
605
|
-
--badge-font-size: var(--typography-label-font-size);
|
|
606
|
-
--badge-line-height: var(--typography-label-line-height);
|
|
607
609
|
--badge-border-size-default: var(--size-border-100);
|
|
608
|
-
--badge-border-radius: var(--
|
|
609
|
-
--badge-padding-inline: var(--size-spacing-
|
|
610
|
+
--badge-border-radius: var(--size-radius-full);
|
|
611
|
+
--badge-padding-inline-md: var(--size-spacing-300);
|
|
610
612
|
--badge-padding-inline-icon-only: var(--size-spacing-200);
|
|
611
|
-
--badge-padding-block: var(--size-spacing-
|
|
612
|
-
--badge-gap: var(--size-spacing-
|
|
613
|
+
--badge-padding-block-md: var(--size-spacing-100);
|
|
614
|
+
--badge-gap: var(--size-spacing-100);
|
|
613
615
|
--badge-height-min: 2.5rem;
|
|
614
616
|
--badge-width-min: 2.5rem;
|
|
615
617
|
--badge-danger-container-background: var(--color-fill-danger);
|
|
616
618
|
--badge-danger-border-color: var(--color-transparent);
|
|
617
|
-
--badge-danger-text-color: var(--color-text-
|
|
619
|
+
--badge-danger-text-color: var(--color-text-on-danger);
|
|
620
|
+
--badge-font-size-sm: .75rem;
|
|
621
|
+
--badge-font-size-md: .875rem;
|
|
622
|
+
--badge-line-height-sm: 1rem;
|
|
623
|
+
--badge-line-height-md: 1.25rem;
|
|
624
|
+
--badge-padding-inline-sm: .5rem;
|
|
625
|
+
--badge-padding-block-sm: .125rem;
|
|
626
|
+
--switch-track-background-default: var(--color-fill-surface);
|
|
627
|
+
--switch-track-background-hover: var(--color-fill-surface);
|
|
628
|
+
--switch-track-background-active: var(--color-fill-brand);
|
|
629
|
+
--switch-track-background-disabled: var(--color-fill-disabled);
|
|
630
|
+
--switch-track-border-color-default: var(--color-border-default);
|
|
631
|
+
--switch-track-border-color-hover: var(--color-border-brand);
|
|
632
|
+
--switch-track-border-color-active: var(--color-border-brand);
|
|
633
|
+
--switch-track-border-color-disabled: var(--color-border-disabled);
|
|
634
|
+
--switch-thumb-background-default: var(--color-border-default);
|
|
635
|
+
--switch-thumb-background-hover: var(--color-border-brand);
|
|
636
|
+
--switch-thumb-background-active: var(--color-fill-surface);
|
|
637
|
+
--switch-thumb-background-disabled: var(--color-fill-surface);
|
|
638
|
+
--switch-text-color-default: var(--color-text-default);
|
|
639
|
+
--switch-text-color-disabled: var(--color-text-disabled);
|
|
618
640
|
}
|
|
619
641
|
/* Auto-generated design tokens from Figma */
|
|
620
|
-
/* Generated on 2026-
|
|
642
|
+
/* Generated on 2026-06-06T14:29:01.170Z */
|
|
621
643
|
|
|
622
644
|
:root[data-mode="dark"] {
|
|
623
645
|
--color-text-default: var(--color-neutral-800);
|
|
@@ -628,6 +650,12 @@
|
|
|
628
650
|
--color-text-strong: var(--color-neutral-1000);
|
|
629
651
|
--color-text-danger: var(--brand-color-functional-danger);
|
|
630
652
|
--color-text-success: var(--brand-color-functional-success);
|
|
653
|
+
--color-text-on-brand: var(--color-neutral-000);
|
|
654
|
+
--color-text-on-danger: var(--color-neutral-000);
|
|
655
|
+
--color-text-on-success: var(--color-neutral-000);
|
|
656
|
+
--color-text-on-subtle: var(--brand-color-primary-dark);
|
|
657
|
+
--color-text-on-active: var(--color-neutral-000);
|
|
658
|
+
--color-text-on-disabled: var(--color-neutral-800);
|
|
631
659
|
--color-fill-surface: var(--color-neutral-1000);
|
|
632
660
|
--color-fill-disabled: var(--color-neutral-300);
|
|
633
661
|
--color-fill-hover: var(--color-neutral-alpha-inverse-100);
|
|
@@ -649,7 +677,7 @@
|
|
|
649
677
|
--color-focus: var(--brand-color-primary-dark);
|
|
650
678
|
}
|
|
651
679
|
/* Auto-generated design tokens from Figma */
|
|
652
|
-
/* Generated on 2026-
|
|
680
|
+
/* Generated on 2026-06-06T14:29:01.166Z */
|
|
653
681
|
|
|
654
682
|
:root {
|
|
655
683
|
--color-text-default: var(--color-neutral-800);
|
|
@@ -660,6 +688,12 @@
|
|
|
660
688
|
--color-text-strong: var(--color-neutral-1000);
|
|
661
689
|
--color-text-danger: var(--brand-color-functional-danger);
|
|
662
690
|
--color-text-success: var(--brand-color-functional-success);
|
|
691
|
+
--color-text-on-brand: var(--color-neutral-000);
|
|
692
|
+
--color-text-on-danger: var(--color-neutral-000);
|
|
693
|
+
--color-text-on-success: var(--color-neutral-000);
|
|
694
|
+
--color-text-on-subtle: var(--brand-color-primary);
|
|
695
|
+
--color-text-on-active: var(--color-neutral-000);
|
|
696
|
+
--color-text-on-disabled: var(--color-neutral-800);
|
|
663
697
|
--color-fill-surface: var(--color-neutral-000);
|
|
664
698
|
--color-fill-disabled: var(--color-neutral-300);
|
|
665
699
|
--color-fill-hover: var(--color-neutral-alpha-500);
|
|
@@ -681,7 +715,7 @@
|
|
|
681
715
|
--color-focus: var(--brand-color-primary);
|
|
682
716
|
}
|
|
683
717
|
/* Auto-generated design tokens from Figma */
|
|
684
|
-
/* Generated on 2026-
|
|
718
|
+
/* Generated on 2026-06-06T14:29:01.202Z */
|
|
685
719
|
|
|
686
720
|
:root[data-brand="a"] {
|
|
687
721
|
--brand-color-functional-success: var(--color-brand-c-green-30);
|
|
@@ -703,7 +737,7 @@
|
|
|
703
737
|
--brand-corner-input: var(--size-radius-200);
|
|
704
738
|
}
|
|
705
739
|
/* Auto-generated design tokens from Figma */
|
|
706
|
-
/* Generated on 2026-
|
|
740
|
+
/* Generated on 2026-06-06T14:29:01.203Z */
|
|
707
741
|
|
|
708
742
|
:root[data-brand="b"] {
|
|
709
743
|
--brand-color-functional-success: var(--color-brand-b-green-600);
|
|
@@ -725,7 +759,7 @@
|
|
|
725
759
|
--brand-corner-input: var(--size-radius-000);
|
|
726
760
|
}
|
|
727
761
|
/* Auto-generated design tokens from Figma */
|
|
728
|
-
/* Generated on 2026-
|
|
762
|
+
/* Generated on 2026-06-06T14:29:01.205Z */
|
|
729
763
|
|
|
730
764
|
:root[data-brand="c"] {
|
|
731
765
|
--brand-color-functional-success: var(--color-brand-a-green-600);
|
|
@@ -756,7 +790,7 @@
|
|
|
756
790
|
.label-content {
|
|
757
791
|
display: inline-flex;
|
|
758
792
|
align-items: center;
|
|
759
|
-
gap: var(--label-gap, 0.5em);
|
|
793
|
+
gap: var(--typography-label-gap, 0.5em);
|
|
760
794
|
line-height: inherit;
|
|
761
795
|
}
|
|
762
796
|
|
|
@@ -812,7 +846,7 @@
|
|
|
812
846
|
min-height: var(--button-height-min);
|
|
813
847
|
background: var(--button-solid-container-background-default);
|
|
814
848
|
border-color: var(--button-solid-border-color-default);
|
|
815
|
-
border-width: var(--button-
|
|
849
|
+
border-width: var(--button-border-size-default);
|
|
816
850
|
border-style: solid;
|
|
817
851
|
color: var(--button-solid-text-color-default);
|
|
818
852
|
border-radius: var(--button-border-radius);
|
|
@@ -872,7 +906,7 @@
|
|
|
872
906
|
.button.outline {
|
|
873
907
|
background: var(--button-outline-container-background-default);
|
|
874
908
|
border-color: var(--button-outline-border-color-default);
|
|
875
|
-
border-width: var(--button-
|
|
909
|
+
border-width: var(--button-border-size-default);
|
|
876
910
|
border-style: solid;
|
|
877
911
|
color: var(--button-outline-text-color-default);
|
|
878
912
|
}
|
|
@@ -911,7 +945,7 @@
|
|
|
911
945
|
.button.ghost {
|
|
912
946
|
background: var(--button-ghost-container-background-default);
|
|
913
947
|
border-color: var(--button-ghost-border-color-default);
|
|
914
|
-
border-width: var(--button-
|
|
948
|
+
border-width: var(--button-border-size-default);
|
|
915
949
|
border-style: solid;
|
|
916
950
|
color: var(--button-ghost-text-color-default);
|
|
917
951
|
}
|
|
@@ -1052,25 +1086,25 @@
|
|
|
1052
1086
|
font-weight: var(--input-font-weight);
|
|
1053
1087
|
font-size: var(--input-font-size);
|
|
1054
1088
|
line-height: var(--input-line-height, var(--button-line-height, 1.5));
|
|
1055
|
-
color: var(--input-text-
|
|
1056
|
-
background: var(--input-
|
|
1089
|
+
color: var(--input-text-color-default);
|
|
1090
|
+
background: var(--input-container-background-default);
|
|
1057
1091
|
border-style: solid;
|
|
1058
1092
|
border-width: var(--input-border-size-default);
|
|
1059
|
-
border-color: var(--input-
|
|
1093
|
+
border-color: var(--input-border-color-default);
|
|
1060
1094
|
border-radius: var(--input-border-radius);
|
|
1061
1095
|
padding-inline: var(--input-padding-inline);
|
|
1062
1096
|
padding-block: var(--input-padding-block);
|
|
1063
1097
|
}
|
|
1064
1098
|
|
|
1065
1099
|
.input::placeholder {
|
|
1066
|
-
color: var(--input-text-
|
|
1100
|
+
color: var(--input-text-color-placeholder);
|
|
1067
1101
|
}
|
|
1068
1102
|
|
|
1069
1103
|
.input:hover,
|
|
1070
1104
|
.input.is-hover {
|
|
1071
1105
|
background:
|
|
1072
1106
|
linear-gradient(0deg, var(--input-overlay-hover), var(--input-overlay-hover)),
|
|
1073
|
-
var(--input-
|
|
1107
|
+
var(--input-container-background-default);
|
|
1074
1108
|
border-width: var(--input-border-size-hover);
|
|
1075
1109
|
padding-inline: calc(
|
|
1076
1110
|
var(--input-padding-inline) + var(--input-border-size-default) -
|
|
@@ -1080,15 +1114,15 @@
|
|
|
1080
1114
|
var(--input-padding-block) + var(--input-border-size-default) -
|
|
1081
1115
|
var(--input-border-size-hover)
|
|
1082
1116
|
);
|
|
1083
|
-
border-color: var(--input-
|
|
1084
|
-
color: var(--input-text-
|
|
1117
|
+
border-color: var(--input-border-color-hover);
|
|
1118
|
+
color: var(--input-text-color-hover);
|
|
1085
1119
|
}
|
|
1086
1120
|
|
|
1087
1121
|
.input:active,
|
|
1088
1122
|
.input.is-active {
|
|
1089
1123
|
background:
|
|
1090
1124
|
linear-gradient(0deg, var(--input-overlay-active), var(--input-overlay-active)),
|
|
1091
|
-
var(--input-
|
|
1125
|
+
var(--input-container-background-default);
|
|
1092
1126
|
border-width: var(--input-border-size-active);
|
|
1093
1127
|
padding-inline: calc(
|
|
1094
1128
|
var(--input-padding-inline) + var(--input-border-size-default) -
|
|
@@ -1098,14 +1132,14 @@
|
|
|
1098
1132
|
var(--input-padding-block) + var(--input-border-size-default) -
|
|
1099
1133
|
var(--input-border-size-active)
|
|
1100
1134
|
);
|
|
1101
|
-
border-color: var(--input-
|
|
1102
|
-
color: var(--input-text-
|
|
1135
|
+
border-color: var(--input-border-color-active);
|
|
1136
|
+
color: var(--input-text-color-active);
|
|
1103
1137
|
}
|
|
1104
1138
|
|
|
1105
1139
|
.input:focus-visible,
|
|
1106
1140
|
.input.is-focus-visible {
|
|
1107
|
-
background: var(--input-
|
|
1108
|
-
border-color: var(--input-
|
|
1141
|
+
background: var(--input-container-background-focus);
|
|
1142
|
+
border-color: var(--input-border-color-focus);
|
|
1109
1143
|
outline: none;
|
|
1110
1144
|
box-shadow: 0 0 0 var(--shadow-focus, 0) var(--color-focus, transparent);
|
|
1111
1145
|
}
|
|
@@ -1148,12 +1182,12 @@
|
|
|
1148
1182
|
font-weight: var(--typography-label-font-weight);
|
|
1149
1183
|
font-size: var(--typography-label-font-size);
|
|
1150
1184
|
line-height: var(--typography-label-line-height);
|
|
1151
|
-
color: var(--
|
|
1185
|
+
color: var(--checkbox-text-color-default);
|
|
1152
1186
|
cursor: pointer;
|
|
1153
1187
|
}
|
|
1154
1188
|
|
|
1155
1189
|
.checkbox-field.is-disabled {
|
|
1156
|
-
color: var(--
|
|
1190
|
+
color: var(--checkbox-text-color-disabled);
|
|
1157
1191
|
cursor: not-allowed;
|
|
1158
1192
|
}
|
|
1159
1193
|
|
|
@@ -1166,10 +1200,10 @@
|
|
|
1166
1200
|
place-content: center;
|
|
1167
1201
|
border-style: solid;
|
|
1168
1202
|
border-width: var(--checkbox-border-size-default);
|
|
1169
|
-
border-color: var(--
|
|
1203
|
+
border-color: var(--checkbox-border-color-default);
|
|
1170
1204
|
border-radius: var(--corner-checkbox-radius);
|
|
1171
|
-
background: var(--
|
|
1172
|
-
color: var(--
|
|
1205
|
+
background: var(--checkbox-container-background-default);
|
|
1206
|
+
color: var(--checkbox-text-color-active);
|
|
1173
1207
|
cursor: pointer;
|
|
1174
1208
|
}
|
|
1175
1209
|
|
|
@@ -1180,8 +1214,8 @@
|
|
|
1180
1214
|
|
|
1181
1215
|
.checkbox:checked,
|
|
1182
1216
|
.checkbox.is-checked {
|
|
1183
|
-
border-color: var(--
|
|
1184
|
-
background: var(--
|
|
1217
|
+
border-color: var(--checkbox-border-color-active);
|
|
1218
|
+
background: var(--checkbox-container-background-active);
|
|
1185
1219
|
}
|
|
1186
1220
|
|
|
1187
1221
|
.checkbox:checked::after,
|
|
@@ -1202,8 +1236,8 @@
|
|
|
1202
1236
|
|
|
1203
1237
|
.checkbox:indeterminate,
|
|
1204
1238
|
.checkbox.is-indeterminate {
|
|
1205
|
-
border-color: var(--
|
|
1206
|
-
background: var(--
|
|
1239
|
+
border-color: var(--checkbox-border-color-active);
|
|
1240
|
+
background: var(--checkbox-container-background-active);
|
|
1207
1241
|
}
|
|
1208
1242
|
|
|
1209
1243
|
.checkbox:indeterminate::after,
|
|
@@ -1218,9 +1252,9 @@
|
|
|
1218
1252
|
.checkbox.is-hover {
|
|
1219
1253
|
background:
|
|
1220
1254
|
linear-gradient(0deg, var(--color-overlay-hover), var(--color-overlay-hover)),
|
|
1221
|
-
var(--
|
|
1222
|
-
color: var(--
|
|
1223
|
-
border-color: var(--
|
|
1255
|
+
var(--checkbox-container-background-hover);
|
|
1256
|
+
color: var(--checkbox-text-color-hover);
|
|
1257
|
+
border-color: var(--checkbox-border-color-hover);
|
|
1224
1258
|
border-width: var(--checkbox-border-size-hover);
|
|
1225
1259
|
}
|
|
1226
1260
|
|
|
@@ -1228,9 +1262,9 @@
|
|
|
1228
1262
|
.checkbox.is-checked.is-hover {
|
|
1229
1263
|
background:
|
|
1230
1264
|
linear-gradient(0deg, var(--color-overlay-hover), var(--color-overlay-hover)),
|
|
1231
|
-
var(--
|
|
1232
|
-
color: var(--
|
|
1233
|
-
border-color: var(--
|
|
1265
|
+
var(--checkbox-container-background-active);
|
|
1266
|
+
color: var(--checkbox-text-color-hover);
|
|
1267
|
+
border-color: var(--checkbox-border-color-hover);
|
|
1234
1268
|
border-width: var(--checkbox-border-size-hover);
|
|
1235
1269
|
}
|
|
1236
1270
|
|
|
@@ -1238,9 +1272,9 @@
|
|
|
1238
1272
|
.checkbox.is-indeterminate.is-hover {
|
|
1239
1273
|
background:
|
|
1240
1274
|
linear-gradient(0deg, var(--color-overlay-hover), var(--color-overlay-hover)),
|
|
1241
|
-
var(--
|
|
1242
|
-
color: var(--
|
|
1243
|
-
border-color: var(--
|
|
1275
|
+
var(--checkbox-container-background-active);
|
|
1276
|
+
color: var(--checkbox-text-color-hover);
|
|
1277
|
+
border-color: var(--checkbox-border-color-hover);
|
|
1244
1278
|
border-width: var(--checkbox-border-size-hover);
|
|
1245
1279
|
}
|
|
1246
1280
|
|
|
@@ -1248,8 +1282,8 @@
|
|
|
1248
1282
|
.checkbox.is-active {
|
|
1249
1283
|
background:
|
|
1250
1284
|
linear-gradient(0deg, var(--color-overlay-active), var(--color-overlay-active)),
|
|
1251
|
-
var(--
|
|
1252
|
-
border-color: var(--
|
|
1285
|
+
var(--checkbox-container-background-default);
|
|
1286
|
+
border-color: var(--checkbox-border-color-active);
|
|
1253
1287
|
border-width: var(--size-border-200);
|
|
1254
1288
|
}
|
|
1255
1289
|
|
|
@@ -1257,21 +1291,21 @@
|
|
|
1257
1291
|
.checkbox.is-checked.is-active {
|
|
1258
1292
|
background:
|
|
1259
1293
|
linear-gradient(0deg, var(--color-overlay-active), var(--color-overlay-active)),
|
|
1260
|
-
var(--
|
|
1261
|
-
border-color: var(--
|
|
1294
|
+
var(--checkbox-container-background-active);
|
|
1295
|
+
border-color: var(--checkbox-border-color-active);
|
|
1262
1296
|
}
|
|
1263
1297
|
|
|
1264
1298
|
.checkbox:indeterminate:active,
|
|
1265
1299
|
.checkbox.is-indeterminate.is-active {
|
|
1266
1300
|
background:
|
|
1267
1301
|
linear-gradient(0deg, var(--color-overlay-active), var(--color-overlay-active)),
|
|
1268
|
-
var(--
|
|
1269
|
-
border-color: var(--
|
|
1302
|
+
var(--checkbox-container-background-active);
|
|
1303
|
+
border-color: var(--checkbox-border-color-active);
|
|
1270
1304
|
}
|
|
1271
1305
|
|
|
1272
1306
|
.checkbox:focus-visible,
|
|
1273
1307
|
.checkbox.is-focus-visible {
|
|
1274
|
-
border-color: var(--
|
|
1308
|
+
border-color: var(--checkbox-border-color-focus);
|
|
1275
1309
|
outline: none;
|
|
1276
1310
|
box-shadow: 0 0 0 var(--shadow-focus, 0) var(--color-focus, transparent);
|
|
1277
1311
|
}
|
|
@@ -1279,9 +1313,9 @@
|
|
|
1279
1313
|
.checkbox:disabled,
|
|
1280
1314
|
.checkbox.is-disabled {
|
|
1281
1315
|
border-width: var(--checkbox-border-size-disabled);
|
|
1282
|
-
border-color: var(--
|
|
1283
|
-
background: var(--
|
|
1284
|
-
color: var(--
|
|
1316
|
+
border-color: var(--checkbox-border-color-disabled);
|
|
1317
|
+
background: var(--checkbox-container-background-disabled);
|
|
1318
|
+
color: var(--checkbox-text-color-disabled);
|
|
1285
1319
|
cursor: not-allowed;
|
|
1286
1320
|
}
|
|
1287
1321
|
}
|
|
@@ -1946,3 +1980,115 @@
|
|
|
1946
1980
|
opacity: 1;
|
|
1947
1981
|
}
|
|
1948
1982
|
}
|
|
1983
|
+
@layer components {
|
|
1984
|
+
/* ----------------------------------------------------------------
|
|
1985
|
+
* Form — layout container for form fields
|
|
1986
|
+
* ---------------------------------------------------------------- */
|
|
1987
|
+
|
|
1988
|
+
.form {
|
|
1989
|
+
display: flex;
|
|
1990
|
+
flex-direction: column;
|
|
1991
|
+
gap: var(--form-gap);
|
|
1992
|
+
padding-inline: var(--form-padding-inline);
|
|
1993
|
+
padding-block: var(--form-padding-block);
|
|
1994
|
+
background: var(--form-container-background);
|
|
1995
|
+
border: var(--form-border-size) solid var(--form-container-border-color);
|
|
1996
|
+
border-radius: var(--form-border-radius);
|
|
1997
|
+
}
|
|
1998
|
+
|
|
1999
|
+
.form.borderless {
|
|
2000
|
+
border: none;
|
|
2001
|
+
padding: 0;
|
|
2002
|
+
background: transparent;
|
|
2003
|
+
}
|
|
2004
|
+
|
|
2005
|
+
/* ----------------------------------------------------------------
|
|
2006
|
+
* Form Group — groups related fields with an optional title
|
|
2007
|
+
* ---------------------------------------------------------------- */
|
|
2008
|
+
|
|
2009
|
+
.form-group {
|
|
2010
|
+
display: flex;
|
|
2011
|
+
flex-direction: column;
|
|
2012
|
+
gap: var(--form-group-gap);
|
|
2013
|
+
margin: 0;
|
|
2014
|
+
padding: 0;
|
|
2015
|
+
border: 0;
|
|
2016
|
+
min-inline-size: 0;
|
|
2017
|
+
}
|
|
2018
|
+
|
|
2019
|
+
.form-group__title {
|
|
2020
|
+
font-family: var(--typography-heading-font-family);
|
|
2021
|
+
font-weight: var(--typography-heading-font-weight);
|
|
2022
|
+
font-size: var(--typography-heading-font-size-sm);
|
|
2023
|
+
line-height: var(--typography-heading-line-height-sm);
|
|
2024
|
+
color: var(--form-group-title-color);
|
|
2025
|
+
margin: 0;
|
|
2026
|
+
}
|
|
2027
|
+
|
|
2028
|
+
/* ----------------------------------------------------------------
|
|
2029
|
+
* Form Field — single field with label, input, and helper/error
|
|
2030
|
+
* ---------------------------------------------------------------- */
|
|
2031
|
+
|
|
2032
|
+
.form-field {
|
|
2033
|
+
display: flex;
|
|
2034
|
+
flex-direction: column;
|
|
2035
|
+
gap: var(--form-field-gap);
|
|
2036
|
+
}
|
|
2037
|
+
|
|
2038
|
+
.form-field[data-label-position="side"] {
|
|
2039
|
+
flex-direction: row;
|
|
2040
|
+
align-items: flex-start;
|
|
2041
|
+
}
|
|
2042
|
+
|
|
2043
|
+
.form-field[data-label-position="side"] > .field-label {
|
|
2044
|
+
flex-shrink: 0;
|
|
2045
|
+
inline-size: 8rem;
|
|
2046
|
+
padding-block-start: var(--size-spacing-200);
|
|
2047
|
+
}
|
|
2048
|
+
|
|
2049
|
+
.form-field[data-label-position="side"] > .form-field__body {
|
|
2050
|
+
flex: 1;
|
|
2051
|
+
display: flex;
|
|
2052
|
+
flex-direction: column;
|
|
2053
|
+
gap: var(--form-field-gap);
|
|
2054
|
+
}
|
|
2055
|
+
|
|
2056
|
+
/* ----------------------------------------------------------------
|
|
2057
|
+
* Helper and error text
|
|
2058
|
+
* ---------------------------------------------------------------- */
|
|
2059
|
+
|
|
2060
|
+
.form-field__helper {
|
|
2061
|
+
font-family: var(--typography-body-font-family);
|
|
2062
|
+
font-size: var(--font-size-sm);
|
|
2063
|
+
line-height: var(--line-height-sm);
|
|
2064
|
+
color: var(--form-field-helper-text-color-default);
|
|
2065
|
+
margin: 0;
|
|
2066
|
+
}
|
|
2067
|
+
|
|
2068
|
+
.form-field.is-invalid .form-field__helper {
|
|
2069
|
+
color: var(--form-field-helper-text-color-invalid);
|
|
2070
|
+
}
|
|
2071
|
+
|
|
2072
|
+
/* ----------------------------------------------------------------
|
|
2073
|
+
* Form Actions — button area at the bottom
|
|
2074
|
+
* ---------------------------------------------------------------- */
|
|
2075
|
+
|
|
2076
|
+
.form-actions {
|
|
2077
|
+
display: flex;
|
|
2078
|
+
gap: var(--size-spacing-200);
|
|
2079
|
+
justify-content: flex-end;
|
|
2080
|
+
padding-block-start: var(--size-spacing-200);
|
|
2081
|
+
}
|
|
2082
|
+
|
|
2083
|
+
.form-actions[data-align="start"] {
|
|
2084
|
+
justify-content: flex-start;
|
|
2085
|
+
}
|
|
2086
|
+
|
|
2087
|
+
.form-actions[data-align="stretch"] {
|
|
2088
|
+
flex-direction: column;
|
|
2089
|
+
}
|
|
2090
|
+
|
|
2091
|
+
.form-actions[data-align="stretch"] > * {
|
|
2092
|
+
inline-size: 100%;
|
|
2093
|
+
}
|
|
2094
|
+
}
|