@inchurch/matcha-theme 20.0.8 → 20.276.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/abstracts/_colors.scss +404 -404
  2. package/abstracts/_elevation.scss +102 -102
  3. package/abstracts/_functions.scss +1212 -1212
  4. package/abstracts/_media-breakpoint.scss +23 -23
  5. package/abstracts/_typography.scss +127 -127
  6. package/base/_reset.scss +438 -438
  7. package/components/app-page-header.scss +260 -0
  8. package/components/matcha-accordion.scss +294 -157
  9. package/components/matcha-avatar.scss +171 -31
  10. package/components/matcha-badge.scss +4 -4
  11. package/components/matcha-breadcrumb.scss +232 -126
  12. package/components/matcha-button-toggle.scss +44 -0
  13. package/components/matcha-buttons.scss +908 -784
  14. package/components/matcha-calendar.scss +70 -2
  15. package/components/matcha-cards.scss +28 -2
  16. package/components/matcha-checkbox.scss +191 -490
  17. package/components/matcha-chip.scss +297 -212
  18. package/components/matcha-command-palette.scss +291 -63
  19. package/components/matcha-crop.scss +407 -172
  20. package/components/matcha-date.scss +81 -81
  21. package/components/matcha-divider.scss +86 -31
  22. package/components/matcha-drawer.scss +201 -50
  23. package/components/matcha-drop-image.scss +14 -0
  24. package/components/matcha-drop-list.scss +42 -1
  25. package/components/matcha-empty-state.scss +195 -83
  26. package/components/matcha-flag.scss +93 -52
  27. package/components/matcha-footer.scss +68 -164
  28. package/components/matcha-form-field.scss +52 -0
  29. package/components/matcha-form-section.scss +101 -101
  30. package/components/matcha-header.scss +135 -325
  31. package/components/matcha-highlight.scss +65 -197
  32. package/components/matcha-hint-text.scss +21 -0
  33. package/components/matcha-horizontal-tree.scss +317 -317
  34. package/components/matcha-icon.scss +17 -25
  35. package/components/matcha-list.scss +5 -5
  36. package/components/matcha-menu.scss +13 -0
  37. package/components/matcha-modal.scss +58 -84
  38. package/components/matcha-nav.scss +361 -230
  39. package/components/matcha-notification.scss +413 -197
  40. package/components/matcha-option.scss +79 -23
  41. package/components/matcha-paginator.scss +689 -235
  42. package/components/matcha-panel.scss +42 -26
  43. package/components/matcha-profile-card.scss +50 -50
  44. package/components/matcha-progress-bar.scss +257 -153
  45. package/components/matcha-radio.scss +244 -452
  46. package/components/matcha-scrollbox-shadow.scss +122 -122
  47. package/components/matcha-select.scss +3 -3
  48. package/components/matcha-skeleton.scss +18 -0
  49. package/components/matcha-slide-toggle.scss +47 -2
  50. package/components/matcha-slider.scss +172 -75
  51. package/components/matcha-snack-bar.scss +114 -121
  52. package/components/matcha-spinner.scss +76 -57
  53. package/components/matcha-status-pill.scss +82 -0
  54. package/components/matcha-stepper.scss +377 -177
  55. package/components/matcha-table.scss +569 -785
  56. package/components/matcha-tabs.scss +624 -469
  57. package/components/matcha-text-editor.scss +98 -144
  58. package/components/matcha-toolbar.scss +359 -206
  59. package/components/matcha-tooltip.scss +156 -62
  60. package/components/matcha-tree-view.scss +189 -0
  61. package/components/matcha-uploader.scss +240 -62
  62. package/fonts/manrope/manrope-latin-ext.woff2 +0 -0
  63. package/fonts/manrope/manrope-latin.woff2 +0 -0
  64. package/layout/matcha-page-layout.scss +776 -0
  65. package/main.scss +232 -261
  66. package/package.json +1 -1
  67. package/tokens/_animations-tokens.scss +37 -37
  68. package/tokens/_breakpoints-tokens.scss +35 -26
  69. package/tokens/_color-tokens.scss +1152 -1152
  70. package/tokens/_css-custom-properties.scss +650 -568
  71. package/tokens/_spacing-tokens.scss +94 -94
  72. package/vendors/angular-editor.scss +56 -56
  73. package/vendors/angular-material-fixes.scss +297 -297
  74. package/vendors/charts.scss +92 -92
  75. package/vendors/ng5-slider.scss +56 -56
  76. package/vendors/ngx-material-timepicker.scss +50 -50
  77. package/fonts/CircularStd-Black.eot +0 -0
  78. package/fonts/CircularStd-Black.svg +0 -3426
  79. package/fonts/CircularStd-Black.ttf +0 -0
  80. package/fonts/CircularStd-Black.woff +0 -0
  81. package/fonts/CircularStd-Black.woff2 +0 -0
  82. package/fonts/CircularStd-Bold.eot +0 -0
  83. package/fonts/CircularStd-Bold.otf +0 -0
  84. package/fonts/CircularStd-Bold.svg +0 -13532
  85. package/fonts/CircularStd-Bold.ttf +0 -0
  86. package/fonts/CircularStd-Bold.woff +0 -0
  87. package/fonts/CircularStd-Bold.woff2 +0 -0
  88. package/fonts/CircularStd-Medium.eot +0 -0
  89. package/fonts/CircularStd-Medium.otf +0 -0
  90. package/fonts/CircularStd-Medium.svg +0 -13511
  91. package/fonts/CircularStd-Medium.ttf +0 -0
  92. package/fonts/CircularStd-Medium.woff +0 -0
  93. package/fonts/CircularStd-Medium.woff2 +0 -0
  94. package/fonts/CircularStd-Regular.eot +0 -0
  95. package/fonts/CircularStd-Regular.otf +0 -0
  96. package/fonts/CircularStd-Regular.svg +0 -2378
  97. package/fonts/CircularStd-Regular.ttf +0 -0
  98. package/fonts/CircularStd-Regular.woff +0 -0
  99. package/fonts/CircularStd-Regular.woff2 +0 -0
@@ -1,187 +1,91 @@
1
1
  @use "sass:map";
2
2
 
3
3
  // =============================================================================
4
- // matcha-footer.scss — App footer bar (branding + actions)
5
- // Aligned with Figma matcha/footer (3 variantes: Default, Expanded, Mobile)
6
- // Angular: matcha-footer (standalone component)
4
+ // matcha-footer.scss — App footer bar
5
+ // 1:1 com Figma DSV3 matcha/footer (nodeId 15930:27)
6
+ // Default · w fluida · h 28 · padding 8/16
7
+ // • Expanded · w fluida · h 28 · padding 8/16
8
+ // • Mobile · w fluida · h 24 · padding 6/16
9
+ // • bg surface/card · border-top hairline surface/border
10
+ // • topLeftRadius/topRightRadius = 8 · bottom = 0
11
+ // • Conteúdo centralizado (brand inchurch via matcha-brand)
7
12
  // =============================================================================
8
13
 
9
14
  @mixin matcha-footer-theme($theme) {
10
- $is-dark: map.get($theme, is-dark);
15
+ $is-dark: map.get($theme, is-dark);
11
16
 
12
- // ── Footer Container ──
13
- .matcha-footer {
14
- background: var(--matcha-color-surface, #{getSurface($theme)});
15
- border-top: var(--matcha-border-hairline, 1px) solid var(--matcha-color-border, #{getGrey($theme)});
16
-
17
- // ── Brand area ──
18
- .matcha-footer__brand {
19
- color: var(--matcha-color-text-label, #{getBlueGrey($theme)});
20
- }
21
-
22
- .matcha-footer__brand-icon {
23
- color: var(--matcha-color-accent, #{getAccent($theme)});
24
- }
25
-
26
- .matcha-footer__brand-text {
27
- color: var(--matcha-color-fg, #{getForeground($theme)});
28
- }
29
-
30
- // ── Copyright ──
31
- .matcha-footer__copyright {
32
- color: var(--matcha-color-text-placeholder, #{getBlueGrey($theme)});
33
- }
34
-
35
- // ── Version info ──
36
- .matcha-footer__version {
37
- color: var(--matcha-color-text-placeholder, #{getBlueGrey($theme)});
38
- }
39
- }
40
-
41
- // ── Chat FAB ──
42
- .matcha-footer-fab {
43
- background: var(--matcha-color-accent, #{getAccent($theme)});
44
- color: var(--matcha-color-accent-contrast, #{getAccentContrast($theme)});
45
- box-shadow: var(--matcha-shadow-2, #{if($is-dark, $shadow-2-dark, $shadow-2-light)});
46
-
47
- &:hover {
48
- opacity: 0.9;
17
+ .matcha-footer {
18
+ background: var(--matcha-color-surface-card, #{getSurface($theme)});
19
+ border-top: var(--matcha-border-hairline, 1px) solid var(--matcha-color-surface-border, #{getGrey($theme)});
20
+ color: var(--matcha-color-text-label, #{getBlueGrey($theme)});
49
21
  }
50
-
51
- &:focus-visible {
52
- outline: var(--matcha-state-focus-ring-width, 2px) solid var(--matcha-color-accent, #{getAccent($theme)});
53
- outline-offset: var(--matcha-state-focus-ring-offset, 2px);
54
- }
55
-
56
- .matcha-footer-fab__badge {
57
- background: var(--matcha-color-feedback-danger, #{getDanger($theme)});
58
- color: var(--matcha-color-feedback-danger-contrast, #{getDangerContrast($theme)});
59
- }
60
- }
61
22
  }
62
23
 
63
- // ── Layout ──────────────────────────────────────────────────────────────────
64
-
65
24
  .matcha-footer {
66
- display: flex;
67
- align-items: center;
68
- justify-content: center;
69
- width: 100%;
70
- // Figma matcha/footer: h 28, pad 8/16
71
- min-height: 28px;
72
- padding: var(--matcha-space-100, 8px) var(--matcha-space-200, 16px);
73
- box-sizing: border-box;
74
- position: relative;
75
- z-index: 1;
76
- }
77
-
78
- .matcha-footer__brand {
79
- display: flex;
80
- align-items: center;
81
- gap: var(--matcha-space-050, 4px);
82
- }
83
-
84
- .matcha-footer__brand-icon {
85
- display: flex;
86
- align-items: center;
87
- justify-content: center;
88
- width: var(--matcha-icon-size-sm, 16px);
89
- height: var(--matcha-icon-size-sm, 16px);
90
- flex-shrink: 0;
91
- }
92
-
93
- .matcha-footer__brand-text {
94
- font-family: var(--matcha-font-family);
95
- font-size: var(--matcha-text-body-sm, 12px);
96
- font-weight: var(--matcha-weight-semibold, 600);
97
- line-height: var(--matcha-leading-body-sm, 16px);
98
- white-space: nowrap;
25
+ display: flex;
26
+ align-items: center;
27
+ justify-content: center;
28
+ box-sizing: border-box;
29
+ position: relative;
30
+ z-index: 1;
31
+ // Gap default footer nunca colado no conteúdo nem nas bordas.
32
+ // Tokens: --matcha-footer-gap-block (top) e --matcha-footer-gap-inline (laterais).
33
+ // Fallback unificado --matcha-footer-gap controla os 3 simultaneamente.
34
+ margin-block-start: var(--matcha-footer-gap-block, var(--matcha-footer-gap, var(--matcha-space-300, 24px)));
35
+ margin-inline: var(--matcha-footer-gap-inline, var(--matcha-footer-gap, var(--matcha-space-300, 24px)));
36
+ // max(0, ...) protege de width negativo se container <= 2 * gap-inline.
37
+ width: max(0px, calc(100% - 2 * var(--matcha-footer-gap-inline, var(--matcha-footer-gap, var(--matcha-space-300, 24px)))));
38
+ // Figma DSV3 Default/Expanded: h 28, padding 8/16. Logical props pra RTL.
39
+ min-block-size: var(--matcha-footer-height, 28px);
40
+ padding-block: var(--matcha-space-100, 8px);
41
+ padding-inline: var(--matcha-space-200, 16px);
42
+ // Top corners arredondados (Figma DSV3 topLeftRadius/topRightRadius = 8).
43
+ border-start-start-radius: var(--matcha-radius-lg, 8px);
44
+ border-start-end-radius: var(--matcha-radius-lg, 8px);
45
+ border-end-start-radius: 0;
46
+ border-end-end-radius: 0;
47
+ font-family: var(--matcha-font-family);
48
+ font-size: var(--matcha-text-body-sm, 12px);
49
+ line-height: var(--matcha-leading-body-sm, 16px);
99
50
  }
100
51
 
101
- .matcha-footer__copyright {
102
- font-family: var(--matcha-font-family);
103
- font-size: var(--matcha-text-body-sm, 12px);
104
- line-height: var(--matcha-leading-body-sm, 16px);
105
- white-space: nowrap;
52
+ // ── Forced colors (Windows High Contrast) ──────────────────────────────────
53
+ // Border hairline com surface/border (12% opacidade) pode sumir em high-contrast.
54
+ // CanvasText é o token system semantic — sempre visível.
55
+ @media (forced-colors: active) {
56
+ .matcha-footer {
57
+ border-top: 1px solid CanvasText;
58
+ }
106
59
  }
107
60
 
108
- .matcha-footer__version {
109
- font-family: var(--matcha-font-family);
110
- font-size: var(--matcha-text-body-xs, 10px);
111
- line-height: 1.4;
112
- white-space: nowrap;
61
+ // ── Reduced motion (defensivo) ──────────────────────────────────────────────
62
+ // Hoje footer não tem transitions, mas mantemos o block pra futuro (sticky
63
+ // shadow, scroll-shrink) — quando adicionar, já está coberto.
64
+ @media (prefers-reduced-motion: reduce) {
65
+ .matcha-footer {
66
+ transition: none !important;
67
+ animation: none !important;
68
+ }
113
69
  }
114
70
 
115
- // ── Chat FAB ────────────────────────────────────────────────────────────────
116
-
117
- .matcha-footer-fab {
118
- position: fixed;
119
- bottom: var(--matcha-space-200, 16px);
120
- right: var(--matcha-space-200, 16px);
121
- display: flex;
122
- align-items: center;
123
- justify-content: center;
124
- width: 48px;
125
- height: 48px;
126
- border: none;
127
- border-radius: var(--matcha-radius-pill, 9999px);
128
- cursor: pointer;
129
- z-index: 100;
130
- transition: opacity var(--matcha-duration-instant, 80ms) linear;
131
-
132
- .matcha-footer-fab__icon {
133
- width: var(--matcha-icon-size-md, 24px);
134
- height: var(--matcha-icon-size-md, 24px);
135
- }
136
-
137
- .matcha-footer-fab__badge {
138
- position: absolute;
139
- top: var(--matcha-space-050, 4px);
140
- right: var(--matcha-space-050, 4px);
141
- min-width: var(--matcha-space-200, 16px);
142
- height: var(--matcha-space-200, 16px);
143
- border-radius: var(--matcha-radius-pill, 9999px);
144
- font-family: var(--matcha-font-family);
145
- font-size: var(--matcha-text-body-xs, 10px);
146
- font-weight: var(--matcha-weight-bold, 700);
147
- display: flex;
148
- align-items: center;
149
- justify-content: center;
150
- padding: 0 var(--matcha-space-050, 4px);
151
- }
152
-
153
- // Empty badge (dot only)
154
- .matcha-footer-fab__badge--dot {
155
- min-width: var(--matcha-space-100, 8px);
156
- height: var(--matcha-space-100, 8px);
157
- padding: 0;
158
- }
71
+ // ── Print ──────────────────────────────────────────────────────────────────
72
+ // Convenção DS: chrome (header/footer) some em impressão, conteúdo full-page.
73
+ @media print {
74
+ .matcha-footer {
75
+ display: none;
76
+ }
159
77
  }
160
78
 
161
79
  // ── Responsive ──────────────────────────────────────────────────────────────
162
80
 
163
81
  @include media-breakpoint('xs') {
164
- .matcha-footer {
165
- min-height: var(--matcha-space-400, 32px);
166
- padding: var(--matcha-space-075, 6px) var(--matcha-space-200, 16px);
167
- }
168
-
169
- .matcha-footer__brand-text {
170
- font-size: var(--matcha-text-body-xs, 10px);
171
- }
172
-
173
- .matcha-footer-fab {
174
- bottom: var(--matcha-space-150, 12px);
175
- right: var(--matcha-space-150, 12px);
176
- width: 48px;
177
- height: 48px;
178
- }
179
- }
180
-
181
- // ── Reduced motion ──────────────────────────────────────────────────────────
182
-
183
- @media (prefers-reduced-motion: reduce) {
184
- .matcha-footer-fab {
185
- transition: none;
186
- }
82
+ .matcha-footer {
83
+ // Figma DSV3 Mobile: h 24, padding 6/16. Gap reduzido em mobile.
84
+ min-block-size: 24px;
85
+ padding-block: var(--matcha-space-075, 6px);
86
+ padding-inline: var(--matcha-space-200, 16px);
87
+ margin-block-start: var(--matcha-footer-gap-block, var(--matcha-footer-gap, var(--matcha-space-200, 16px)));
88
+ margin-inline: var(--matcha-footer-gap-inline, var(--matcha-footer-gap, var(--matcha-space-200, 16px)));
89
+ width: max(0px, calc(100% - 2 * var(--matcha-footer-gap-inline, var(--matcha-footer-gap, var(--matcha-space-200, 16px)))));
90
+ }
187
91
  }
@@ -550,3 +550,55 @@ matcha-form-field[readonly="true"] .matcha-form-field {
550
550
  @include generate-matcha-form-field-size-classes($helper-breakpoints);
551
551
  }
552
552
  }
553
+
554
+ // ── Forced colors ──
555
+ // Field precisa border + bg explícitos pra ser visível como input.
556
+ @media (forced-colors: active) {
557
+ matcha-form-field {
558
+ .matcha-field-control,
559
+ .matcha-form-field__control {
560
+ border: 1px solid CanvasText !important;
561
+ background: Canvas !important;
562
+ color: CanvasText !important;
563
+ }
564
+
565
+ // Estado focused
566
+ &.is-focused .matcha-field-control,
567
+ &.is-focused .matcha-form-field__control,
568
+ .matcha-field-control:focus-within,
569
+ .matcha-form-field__control:focus-within {
570
+ outline: 2px solid CanvasText !important;
571
+ outline-offset: 2px;
572
+ }
573
+
574
+ // Estado erro/invalid
575
+ &.is-invalid .matcha-field-control,
576
+ &.has-error .matcha-form-field__control {
577
+ border-color: CanvasText !important;
578
+ border-width: 2px !important;
579
+ }
580
+
581
+ &[disabled],
582
+ &.is-disabled {
583
+ opacity: 0.5;
584
+
585
+ .matcha-field-control,
586
+ .matcha-form-field__control {
587
+ border-color: GrayText !important;
588
+ color: GrayText !important;
589
+ }
590
+ }
591
+ }
592
+ }
593
+
594
+ // ── Print ──
595
+ // Form fields preservam estado (form values). Sem fundo decorativo.
596
+ @media print {
597
+ matcha-form-field {
598
+ .matcha-field-control,
599
+ .matcha-form-field__control {
600
+ border: 1px solid currentColor !important;
601
+ background: transparent !important;
602
+ }
603
+ }
604
+ }
@@ -1,101 +1,101 @@
1
- @use "sass:map";
2
-
3
- // =============================================================================
4
- // matcha-form-section.scss — Form section divider for CRUD pages
5
- // Aligned with Figma matcha/form-section:
6
- // Tipo(3: Section, Sub-section, Section + Descrição)
7
- // Usage: Inline divider inside form flows to group related fields
8
- // NOT a card — just a heading row with accent indicator
9
- // =============================================================================
10
-
11
- @mixin matcha-form-section-theme($theme) {
12
- $is-dark: map.get($theme, is-dark);
13
-
14
- // ── Section (accent bar + title) ──
15
- .matcha-form-section {
16
- .matcha-form-section__bar {
17
- background: var(--matcha-color-accent, #{getAccent($theme)});
18
- }
19
-
20
- .matcha-form-section__title {
21
- color: var(--matcha-color-fg, #{getForeground($theme)});
22
- }
23
-
24
- .matcha-form-section__description {
25
- color: var(--matcha-color-text-secondary, #{getBlueGrey($theme)});
26
- }
27
- }
28
-
29
- // ── Sub-section (bullet + title) ──
30
- .matcha-form-subsection {
31
- .matcha-form-subsection__bullet {
32
- background: var(--matcha-color-fg, #{getForeground($theme)});
33
- }
34
-
35
- .matcha-form-subsection__title {
36
- color: var(--matcha-color-fg, #{getForeground($theme)});
37
- }
38
- }
39
- }
40
-
41
- // ── Section Layout ─────────────────────────────────────────────────────────
42
-
43
- .matcha-form-section {
44
- display: flex;
45
- align-items: flex-start;
46
- gap: var(--matcha-space-150, 12px);
47
- width: 100%;
48
- }
49
-
50
- .matcha-form-section__bar {
51
- width: var(--matcha-border-medium, 4px);
52
- align-self: stretch;
53
- border-radius: var(--matcha-radius-sm, 2px);
54
- flex-shrink: 0;
55
- min-height: var(--matcha-space-250, 20px);
56
- }
57
-
58
- .matcha-form-section__content {
59
- display: flex;
60
- flex-direction: column;
61
- gap: var(--matcha-space-050, 4px);
62
- flex: 1;
63
- min-width: 0;
64
- }
65
-
66
- .matcha-form-section__title {
67
- font-family: var(--matcha-font-family);
68
- font-size: var(--matcha-text-title-sm, 16px);
69
- font-weight: var(--matcha-weight-semibold, 600);
70
- line-height: var(--matcha-leading-title-sm, 22px);
71
- }
72
-
73
- .matcha-form-section__description {
74
- font-family: var(--matcha-font-family);
75
- font-size: var(--matcha-text-body-sm, 12px);
76
- font-weight: var(--matcha-weight-regular, 400);
77
- line-height: var(--matcha-leading-body-sm, 16px);
78
- }
79
-
80
- // ── Sub-section Layout ─────────────────────────────────────────────────────
81
-
82
- .matcha-form-subsection {
83
- display: flex;
84
- align-items: center;
85
- gap: var(--matcha-space-100, 8px);
86
- width: 100%;
87
- }
88
-
89
- .matcha-form-subsection__bullet {
90
- width: 6px;
91
- height: 6px;
92
- border-radius: var(--matcha-radius-pill, 9999px);
93
- flex-shrink: 0;
94
- }
95
-
96
- .matcha-form-subsection__title {
97
- font-family: var(--matcha-font-family);
98
- font-size: var(--matcha-text-body-md, 14px);
99
- font-weight: var(--matcha-weight-medium, 500);
100
- line-height: var(--matcha-leading-body-md, 20px);
101
- }
1
+ @use "sass:map";
2
+
3
+ // =============================================================================
4
+ // matcha-form-section.scss — Form section divider for CRUD pages
5
+ // Aligned with Figma matcha/form-section:
6
+ // Tipo(3: Section, Sub-section, Section + Descrição)
7
+ // Usage: Inline divider inside form flows to group related fields
8
+ // NOT a card — just a heading row with accent indicator
9
+ // =============================================================================
10
+
11
+ @mixin matcha-form-section-theme($theme) {
12
+ $is-dark: map.get($theme, is-dark);
13
+
14
+ // ── Section (accent bar + title) ──
15
+ .matcha-form-section {
16
+ .matcha-form-section__bar {
17
+ background: var(--matcha-color-accent, #{getAccent($theme)});
18
+ }
19
+
20
+ .matcha-form-section__title {
21
+ color: var(--matcha-color-fg, #{getForeground($theme)});
22
+ }
23
+
24
+ .matcha-form-section__description {
25
+ color: var(--matcha-color-text-secondary, #{getBlueGrey($theme)});
26
+ }
27
+ }
28
+
29
+ // ── Sub-section (bullet + title) ──
30
+ .matcha-form-subsection {
31
+ .matcha-form-subsection__bullet {
32
+ background: var(--matcha-color-fg, #{getForeground($theme)});
33
+ }
34
+
35
+ .matcha-form-subsection__title {
36
+ color: var(--matcha-color-fg, #{getForeground($theme)});
37
+ }
38
+ }
39
+ }
40
+
41
+ // ── Section Layout ─────────────────────────────────────────────────────────
42
+
43
+ .matcha-form-section {
44
+ display: flex;
45
+ align-items: flex-start;
46
+ gap: var(--matcha-space-150, 12px);
47
+ width: 100%;
48
+ }
49
+
50
+ .matcha-form-section__bar {
51
+ width: var(--matcha-border-medium, 4px);
52
+ align-self: stretch;
53
+ border-radius: var(--matcha-radius-sm, 2px);
54
+ flex-shrink: 0;
55
+ min-height: var(--matcha-space-250, 20px);
56
+ }
57
+
58
+ .matcha-form-section__content {
59
+ display: flex;
60
+ flex-direction: column;
61
+ gap: var(--matcha-space-050, 4px);
62
+ flex: 1;
63
+ min-width: 0;
64
+ }
65
+
66
+ .matcha-form-section__title {
67
+ font-family: var(--matcha-font-family);
68
+ font-size: var(--matcha-text-title-sm, 16px);
69
+ font-weight: var(--matcha-weight-semibold, 600);
70
+ line-height: var(--matcha-leading-title-sm, 22px);
71
+ }
72
+
73
+ .matcha-form-section__description {
74
+ font-family: var(--matcha-font-family);
75
+ font-size: var(--matcha-text-body-sm, 12px);
76
+ font-weight: var(--matcha-weight-regular, 400);
77
+ line-height: var(--matcha-leading-body-sm, 16px);
78
+ }
79
+
80
+ // ── Sub-section Layout ─────────────────────────────────────────────────────
81
+
82
+ .matcha-form-subsection {
83
+ display: flex;
84
+ align-items: center;
85
+ gap: var(--matcha-space-100, 8px);
86
+ width: 100%;
87
+ }
88
+
89
+ .matcha-form-subsection__bullet {
90
+ width: 6px;
91
+ height: 6px;
92
+ border-radius: var(--matcha-radius-pill, 9999px);
93
+ flex-shrink: 0;
94
+ }
95
+
96
+ .matcha-form-subsection__title {
97
+ font-family: var(--matcha-font-family);
98
+ font-size: var(--matcha-text-body-md, 14px);
99
+ font-weight: var(--matcha-weight-medium, 500);
100
+ line-height: var(--matcha-leading-body-md, 20px);
101
+ }