@sigx/zero-daisyui 0.11.0 → 0.13.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/README.md CHANGED
@@ -30,6 +30,11 @@ each is geometry that interpolates between states, so it rides the size ramp and
30
30
  animates. Under `forced-colors` and `print` the checkbox swaps to a `✔`/`−`
31
31
  glyph; the rating keeps its geometry, since no glyph can say "half".
32
32
 
33
+ Daisy has no group component for radios or checkboxes; its forms stack rows. The
34
+ `radio-group` and `checkbox-group` roots stack their items the same way, and
35
+ `orientation="horizontal"` lays them in a wrapping row with a `--space-lg` gap
36
+ (#393).
37
+
33
38
  The slider is **rebuilt** with `appearance: none` (#26), like every other skin,
34
39
  instead of a stock native range behind `accent-color`: daisy's `range.css` track
35
40
  (half the thumb's height, `--radius-selector`) and its real thumb — a `base-100`
@@ -16,11 +16,12 @@
16
16
  flex-wrap: wrap;
17
17
  min-width: 13rem;
18
18
  box-sizing: border-box;
19
- height: calc(var(--size-field) * 12);
19
+ height: auto;
20
20
  background: var(--color-base-100);
21
21
  border: var(--border) solid var(--color-base-300);
22
22
  border-radius: var(--radius-field);
23
23
  box-shadow: var(--shadow-xs);
24
+ min-height: calc(var(--size-field) * 12);
24
25
  transition: border-color var(--duration-fast) var(--ease-standard);
25
26
  }
26
27
 
@@ -13,6 +13,12 @@
13
13
  gap: var(--space-md);
14
14
  }
15
15
 
16
+ [data-scope="radio-group"][data-part="root"][data-orientation="horizontal"] {
17
+ flex-direction: row;
18
+ flex-wrap: wrap;
19
+ column-gap: var(--space-lg);
20
+ }
21
+
16
22
  [data-scope="radio-group"][data-part="label"] {
17
23
  font-size: var(--text-sm);
18
24
  font-weight: var(--weight-semibold);
@@ -3308,6 +3308,12 @@
3308
3308
  gap: var(--space-md);
3309
3309
  }
3310
3310
 
3311
+ [data-scope="radio-group"][data-part="root"][data-orientation="horizontal"] {
3312
+ flex-direction: row;
3313
+ flex-wrap: wrap;
3314
+ column-gap: var(--space-lg);
3315
+ }
3316
+
3311
3317
  [data-scope="radio-group"][data-part="label"] {
3312
3318
  font-size: var(--text-sm);
3313
3319
  font-weight: var(--weight-semibold);
@@ -5236,11 +5242,12 @@
5236
5242
  flex-wrap: wrap;
5237
5243
  min-width: 13rem;
5238
5244
  box-sizing: border-box;
5239
- height: calc(var(--size-field) * 12);
5245
+ height: auto;
5240
5246
  background: var(--color-base-100);
5241
5247
  border: var(--border) solid var(--color-base-300);
5242
5248
  border-radius: var(--radius-field);
5243
5249
  box-shadow: var(--shadow-xs);
5250
+ min-height: calc(var(--size-field) * 12);
5244
5251
  transition: border-color var(--duration-fast) var(--ease-standard);
5245
5252
  }
5246
5253
 
@@ -9,6 +9,7 @@
9
9
  align-items: center;
10
10
  gap: var(--space-md);
11
11
  cursor: pointer;
12
+ flex-direction: row;
12
13
  }
13
14
 
14
15
  .zx-checkbox__root.zx-f-readonly {
@@ -21,7 +22,7 @@
21
22
  }
22
23
 
23
24
  .zx-checkbox__control {
24
- display: inline-block;
25
+ display: flex;
25
26
  position: relative;
26
27
  vertical-align: middle;
27
28
  flex-shrink: 0;
@@ -34,7 +35,6 @@
34
35
  color: var(--checkbox-on-accent);
35
36
  box-shadow: 0 1px var(--depth-shade) inset, 0 0 #0000 inset, 0 0 #0000;
36
37
  background-size: auto, calc(var(--noise) * 100%);
37
- background-image: none, var(--fx-noise);
38
38
  cursor: pointer;
39
39
  transition: background-color var(--duration-normal) var(--ease-standard), box-shadow var(--duration-normal) var(--ease-standard);
40
40
  }
@@ -69,8 +69,9 @@
69
69
  }
70
70
 
71
71
  .zx-checkbox__control.zx-f-focus-visible {
72
- outline: 2px solid var(--checkbox-accent);
72
+ outline: none;
73
73
  outline-offset: 2px;
74
+ box-shadow: 0 0 0 2px var(--color-base-100), 0 0 0 4px var(--checkbox-accent), 0 1px var(--depth-shade) inset;
74
75
  }
75
76
 
76
77
  .zx-checkbox__control.zx-f-invalid {
@@ -83,27 +84,59 @@
83
84
 
84
85
  .zx-checkbox__indicator {
85
86
  display: block;
86
- width: 100%;
87
+ width: 50%;
87
88
  height: 100%;
88
89
  opacity: 0;
89
- background-color: var(--checkbox-on-accent);
90
- clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 80%, 70% 80%, 70% 100%);
91
- box-shadow: 0 3px 0 0 var(--depth-sheen) inset;
90
+ background-color: transparent;
91
+ box-shadow: none;
92
92
  font-size: 16px;
93
93
  line-height: 0.75;
94
- transition: clip-path var(--duration-slow) var(--ease-standard) var(--duration-instant), opacity var(--duration-instant) var(--ease-standard) var(--duration-instant), transform var(--duration-slow) var(--ease-standard) var(--duration-instant);
94
+ transition: opacity var(--duration-instant) var(--ease-standard) var(--duration-instant), transform var(--duration-slow) var(--ease-standard) var(--duration-instant);
95
+ box-sizing: border-box;
96
+ margin-left: 20%;
97
+ border-style: solid;
98
+ border-color: var(--checkbox-on-accent);
99
+ border-top-width: 0;
100
+ border-left-width: 0;
101
+ border-right-width: calc(((var(--size-selector) * 6) - var(--checkbox-pad) * 2 - var(--border) * 2) * 0.2);
102
+ border-bottom-width: calc(((var(--size-selector) * 6) - var(--checkbox-pad) * 2 - var(--border) * 2) * 0.2);
103
+ transform-origin: 60% 50%;
95
104
  transform: rotate(45deg);
96
105
  }
97
106
 
107
+ .zx-checkbox__indicator.zx-a-size-xs {
108
+ border-right-width: calc(((var(--size-selector) * 4) - var(--checkbox-pad) * 2 - var(--border) * 2) * 0.2);
109
+ border-bottom-width: calc(((var(--size-selector) * 4) - var(--checkbox-pad) * 2 - var(--border) * 2) * 0.2);
110
+ }
111
+
112
+ .zx-checkbox__indicator.zx-a-size-sm {
113
+ border-right-width: calc(((var(--size-selector) * 5) - var(--checkbox-pad) * 2 - var(--border) * 2) * 0.2);
114
+ border-bottom-width: calc(((var(--size-selector) * 5) - var(--checkbox-pad) * 2 - var(--border) * 2) * 0.2);
115
+ }
116
+
117
+ .zx-checkbox__indicator.zx-a-size-lg {
118
+ border-right-width: calc(((var(--size-selector) * 7) - var(--checkbox-pad) * 2 - var(--border) * 2) * 0.2);
119
+ border-bottom-width: calc(((var(--size-selector) * 7) - var(--checkbox-pad) * 2 - var(--border) * 2) * 0.2);
120
+ }
121
+
122
+ .zx-checkbox__indicator.zx-a-size-xl {
123
+ border-right-width: calc(((var(--size-selector) * 8) - var(--checkbox-pad) * 2 - var(--border) * 2) * 0.2);
124
+ border-bottom-width: calc(((var(--size-selector) * 8) - var(--checkbox-pad) * 2 - var(--border) * 2) * 0.2);
125
+ }
126
+
98
127
  .zx-checkbox__indicator.zx-s-checked {
99
- clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 0%, 70% 0%, 70% 100%);
100
128
  opacity: 1;
101
129
  }
102
130
 
103
131
  .zx-checkbox__indicator.zx-s-indeterminate {
104
- clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 80%, 80% 80%, 80% 100%);
105
132
  opacity: 1;
106
- transform: translateY(-35%) rotate(0deg);
133
+ width: 60%;
134
+ height: 20%;
135
+ align-self: center;
136
+ border-right-width: 0;
137
+ border-bottom-width: 0;
138
+ background-color: var(--checkbox-on-accent);
139
+ transform: rotate(0deg);
107
140
  }
108
141
 
109
142
  .zx-checkbox__label {
@@ -13,11 +13,12 @@
13
13
  flex-wrap: wrap;
14
14
  min-width: 208px;
15
15
  box-sizing: border-box;
16
- height: calc(var(--size-field) * 12);
16
+ height: auto;
17
17
  background: var(--color-base-100);
18
18
  border: var(--border) solid var(--color-base-300);
19
19
  border-radius: var(--radius-field);
20
20
  box-shadow: var(--shadow-xs);
21
+ min-height: calc(var(--size-field) * 12);
21
22
  transition: border-color var(--duration-fast) var(--ease-standard);
22
23
  }
23
24
 
@@ -3,19 +3,28 @@
3
3
  }
4
4
 
5
5
  .zx-fieldset__root {
6
- display: grid;
6
+ display: flex;
7
7
  grid-template-columns: 1fr;
8
8
  grid-auto-rows: max-content;
9
9
  gap: var(--space-sm);
10
10
  min-inline-size: 0;
11
11
  margin: 0;
12
12
  border: none;
13
+ flex-direction: column;
14
+ padding-top: var(--space-xs);
15
+ padding-bottom: var(--space-xs);
16
+ padding-left: 0;
17
+ padding-right: 0;
13
18
  }
14
19
 
15
20
  .zx-fieldset__legend {
16
21
  font-size: var(--text-sm);
17
22
  font-weight: var(--weight-semibold);
18
23
  color: var(--fieldset-accent);
24
+ padding-top: var(--space-sm);
25
+ padding-bottom: var(--space-sm);
26
+ padding-left: 0;
27
+ padding-right: 0;
19
28
  }
20
29
 
21
30
  .zx-fieldset__legend.zx-f-disabled {
@@ -49,6 +49,7 @@
49
49
  box-shadow: var(--shadow-xs);
50
50
  overflow: hidden;
51
51
  transition: border-color var(--duration-fast) var(--ease-standard);
52
+ flex-direction: row;
52
53
  }
53
54
 
54
55
  .zx-input__control.zx-f-invalid {
@@ -60,8 +61,9 @@
60
61
  }
61
62
 
62
63
  .zx-input__control.zx-f-focus-visible {
63
- outline: 2px solid var(--input-accent);
64
+ outline: none;
64
65
  outline-offset: 2px;
66
+ box-shadow: 0 0 0 2px var(--color-base-100), 0 0 0 4px var(--input-accent);
65
67
  }
66
68
 
67
69
  .zx-input__input {
@@ -71,10 +73,32 @@
71
73
  border: none;
72
74
  outline: none;
73
75
  background: transparent;
74
- color: inherit;
76
+ color: var(--color-base-content);
75
77
  font: inherit;
76
78
  font-size: var(--text-sm);
77
79
  padding: var(--space-sm) var(--space-md);
80
+ flex-grow: 1;
81
+ flex-shrink: 1;
82
+ }
83
+
84
+ .zx-root .zx-input__input {
85
+ -x-placeholder-color: #18181b99;
86
+ }
87
+
88
+ .zx-root.zx-theme-dark .zx-input__input {
89
+ -x-placeholder-color: #ecf9ff99;
90
+ }
91
+
92
+ .zx-root.zx-theme-dim .zx-input__input {
93
+ -x-placeholder-color: #b2ccd699;
94
+ }
95
+
96
+ .zx-root.zx-theme-nord .zx-input__input {
97
+ -x-placeholder-color: #2e344099;
98
+ }
99
+
100
+ .zx-root.zx-theme-sunset .zx-input__input {
101
+ -x-placeholder-color: #9fb9d099;
78
102
  }
79
103
 
80
104
  .zx-input__input.zx-f-disabled {
@@ -111,10 +135,12 @@
111
135
 
112
136
  .zx-input__adornment.zx-p-start {
113
137
  order: -1;
138
+ padding-left: var(--space-md);
114
139
  }
115
140
 
116
141
  .zx-input__adornment.zx-p-end {
117
142
  order: 1;
143
+ padding-right: var(--space-md);
118
144
  }
119
145
 
120
146
  .zx-input__clear-trigger {
@@ -130,6 +156,7 @@
130
156
  font-weight: var(--weight-semibold);
131
157
  line-height: var(--leading-none);
132
158
  cursor: pointer;
159
+ margin-right: var(--space-xs);
133
160
  }
134
161
 
135
162
  .zx-root .zx-input__clear-trigger {
@@ -161,6 +188,11 @@
161
188
  outline-offset: 2px;
162
189
  }
163
190
 
191
+ .zx-input__clear-trigger.zx-f-pressed {
192
+ color: var(--color-base-content);
193
+ background: var(--color-base-200);
194
+ }
195
+
164
196
  .zx-input__visibility-trigger {
165
197
  appearance: none;
166
198
  border: none;
@@ -174,6 +206,7 @@
174
206
  font-weight: var(--weight-semibold);
175
207
  line-height: var(--leading-none);
176
208
  cursor: pointer;
209
+ margin-right: var(--space-xs);
177
210
  }
178
211
 
179
212
  .zx-root .zx-input__visibility-trigger {
@@ -210,6 +243,11 @@
210
243
  outline-offset: 2px;
211
244
  }
212
245
 
246
+ .zx-input__visibility-trigger.zx-f-pressed {
247
+ color: var(--color-base-content);
248
+ background: var(--color-base-200);
249
+ }
250
+
213
251
  .zx-input__root.zx-a-color-primary {
214
252
  --input-accent: var(--color-primary);
215
253
  }
@@ -6,6 +6,7 @@
6
6
  display: flex;
7
7
  flex-direction: column;
8
8
  gap: var(--space-sm);
9
+ align-items: flex-start;
9
10
  }
10
11
 
11
12
  .zx-number-input__label {
@@ -46,7 +47,7 @@
46
47
  border: var(--border) solid var(--color-base-300);
47
48
  border-radius: var(--radius-field);
48
49
  box-shadow: var(--shadow-xs);
49
- overflow: hidden;
50
+ overflow: visible;
50
51
  transition: border-color var(--duration-fast) var(--ease-standard);
51
52
  }
52
53
 
@@ -59,8 +60,9 @@
59
60
  }
60
61
 
61
62
  .zx-number-input__control.zx-f-focus-visible {
62
- outline: 2px solid var(--number-input-accent);
63
+ outline: none;
63
64
  outline-offset: 2px;
65
+ box-shadow: 0 0 0 2px var(--color-base-100), 0 0 0 4px var(--number-input-accent);
64
66
  }
65
67
 
66
68
  .zx-number-input__input {
@@ -70,12 +72,33 @@
70
72
  border: none;
71
73
  outline: none;
72
74
  background: transparent;
73
- color: inherit;
75
+ color: var(--color-base-content);
74
76
  font: inherit;
75
77
  font-size: var(--text-sm);
76
78
  font-weight: var(--weight-medium);
77
79
  text-align: center;
78
80
  padding: var(--space-sm) var(--space-md);
81
+ flex-grow: 1;
82
+ }
83
+
84
+ .zx-root .zx-number-input__input {
85
+ -x-placeholder-color: #18181b99;
86
+ }
87
+
88
+ .zx-root.zx-theme-dark .zx-number-input__input {
89
+ -x-placeholder-color: #ecf9ff99;
90
+ }
91
+
92
+ .zx-root.zx-theme-dim .zx-number-input__input {
93
+ -x-placeholder-color: #b2ccd699;
94
+ }
95
+
96
+ .zx-root.zx-theme-nord .zx-number-input__input {
97
+ -x-placeholder-color: #2e344099;
98
+ }
99
+
100
+ .zx-root.zx-theme-sunset .zx-number-input__input {
101
+ -x-placeholder-color: #9fb9d099;
79
102
  }
80
103
 
81
104
  .zx-number-input__input.zx-f-disabled {
@@ -95,8 +118,14 @@
95
118
  user-select: none;
96
119
  border-inline-start: var(--border) solid var(--color-base-300);
97
120
  transition: background var(--duration-fast) var(--ease-standard);
121
+ display: flex;
122
+ align-items: center;
123
+ justify-content: center;
98
124
  padding-left: var(--space-lg);
99
125
  padding-right: var(--space-lg);
126
+ border-left: var(--border) solid var(--color-base-300);
127
+ border-top-right-radius: var(--radius-field);
128
+ border-bottom-right-radius: var(--radius-field);
100
129
  }
101
130
 
102
131
  .zx-number-input__increment-trigger.zx-f-disabled {
@@ -121,8 +150,14 @@
121
150
  user-select: none;
122
151
  border-inline-end: var(--border) solid var(--color-base-300);
123
152
  transition: background var(--duration-fast) var(--ease-standard);
153
+ display: flex;
154
+ align-items: center;
155
+ justify-content: center;
124
156
  padding-left: var(--space-lg);
125
157
  padding-right: var(--space-lg);
158
+ border-right: var(--border) solid var(--color-base-300);
159
+ border-top-left-radius: var(--radius-field);
160
+ border-bottom-left-radius: var(--radius-field);
126
161
  }
127
162
 
128
163
  .zx-number-input__decrement-trigger.zx-f-disabled {
@@ -9,6 +9,12 @@
9
9
  gap: var(--space-md);
10
10
  }
11
11
 
12
+ .zx-radio-group__root.zx-o-horizontal {
13
+ flex-direction: row;
14
+ flex-wrap: wrap;
15
+ column-gap: var(--space-lg);
16
+ }
17
+
12
18
  .zx-radio-group__label {
13
19
  font-size: var(--text-sm);
14
20
  font-weight: var(--weight-semibold);
@@ -23,6 +29,7 @@
23
29
  align-items: center;
24
30
  gap: var(--space-md);
25
31
  cursor: pointer;
32
+ flex-direction: row;
26
33
  }
27
34
 
28
35
  .zx-radio-group__item.zx-f-readonly {
@@ -35,7 +42,7 @@
35
42
  }
36
43
 
37
44
  .zx-radio-group__item-control {
38
- display: inline-block;
45
+ display: flex;
39
46
  position: relative;
40
47
  vertical-align: middle;
41
48
  flex-shrink: 0;
@@ -81,8 +88,9 @@
81
88
  }
82
89
 
83
90
  .zx-radio-group__item-control.zx-f-focus-visible {
84
- outline: 2px solid var(--radio-accent);
91
+ outline: none;
85
92
  outline-offset: 2px;
93
+ box-shadow: 0 0 0 2px var(--color-base-100), 0 0 0 4px var(--radio-accent), 0 1px var(--depth-shade) inset;
86
94
  }
87
95
 
88
96
  .zx-radio-group__item-indicator {
@@ -92,7 +100,6 @@
92
100
  border-radius: 9999px;
93
101
  background-color: transparent;
94
102
  background-size: auto, calc(var(--noise) * 100%);
95
- background-image: none, var(--fx-noise);
96
103
  transition: background-color var(--duration-instant) var(--ease-standard);
97
104
  }
98
105
 
@@ -45,21 +45,43 @@
45
45
  border-radius: var(--radius-field);
46
46
  box-shadow: var(--shadow-xs);
47
47
  display: block;
48
- min-height: calc(calc(var(--size-field) * 12) * 2);
48
+ min-height: calc(var(--size-field) * 24);
49
49
  width: 100%;
50
50
  min-width: 0;
51
51
  appearance: none;
52
- color: inherit;
52
+ color: var(--color-base-content);
53
53
  font: inherit;
54
54
  font-size: var(--text-sm);
55
55
  line-height: var(--leading-normal);
56
56
  padding: var(--space-sm) var(--space-md);
57
57
  resize: vertical;
58
58
  transition: border-color var(--duration-fast) var(--ease-standard);
59
+ --textarea-edge: var(--color-base-300);
60
+ }
61
+
62
+ .zx-root .zx-textarea__textarea {
63
+ -x-placeholder-color: #18181b99;
64
+ }
65
+
66
+ .zx-root.zx-theme-dark .zx-textarea__textarea {
67
+ -x-placeholder-color: #ecf9ff99;
68
+ }
69
+
70
+ .zx-root.zx-theme-dim .zx-textarea__textarea {
71
+ -x-placeholder-color: #b2ccd699;
72
+ }
73
+
74
+ .zx-root.zx-theme-nord .zx-textarea__textarea {
75
+ -x-placeholder-color: #2e344099;
76
+ }
77
+
78
+ .zx-root.zx-theme-sunset .zx-textarea__textarea {
79
+ -x-placeholder-color: #9fb9d099;
59
80
  }
60
81
 
61
82
  .zx-textarea__textarea.zx-f-invalid {
62
83
  border-color: var(--color-error);
84
+ --textarea-edge: var(--color-error);
63
85
  }
64
86
 
65
87
  .zx-textarea__textarea.zx-f-disabled {
@@ -68,8 +90,10 @@
68
90
  }
69
91
 
70
92
  .zx-textarea__textarea.zx-f-focus-visible {
71
- outline: 2px solid var(--textarea-accent);
93
+ outline: none;
72
94
  outline-offset: 2px;
95
+ border-color: var(--color-base-100);
96
+ box-shadow: 0 0 0 2px var(--textarea-accent), inset 0 0 0 2px var(--textarea-edge);
73
97
  }
74
98
 
75
99
  .zx-textarea__root.zx-a-color-primary {
@@ -106,24 +130,24 @@
106
130
 
107
131
  .zx-textarea__textarea.zx-a-size-xs {
108
132
  font-size: var(--text-xs);
109
- min-height: calc(calc(var(--size-field) * 8) * 2);
133
+ min-height: calc(var(--size-field) * 16);
110
134
  padding: var(--space-2xs) var(--space-xs);
111
135
  }
112
136
 
113
137
  .zx-textarea__textarea.zx-a-size-sm {
114
138
  font-size: var(--text-xs);
115
- min-height: calc(calc(var(--size-field) * 10) * 2);
139
+ min-height: calc(var(--size-field) * 20);
116
140
  padding: var(--space-xs) var(--space-sm);
117
141
  }
118
142
 
119
143
  .zx-textarea__textarea.zx-a-size-lg {
120
144
  font-size: var(--text-md);
121
- min-height: calc(calc(var(--size-field) * 14) * 2);
145
+ min-height: calc(var(--size-field) * 28);
122
146
  padding: var(--space-md) var(--space-lg);
123
147
  }
124
148
 
125
149
  .zx-textarea__textarea.zx-a-size-xl {
126
150
  font-size: var(--text-lg);
127
- min-height: calc(calc(var(--size-field) * 16) * 2);
151
+ min-height: calc(var(--size-field) * 32);
128
152
  padding: var(--space-lg) var(--space-xl);
129
153
  }
@@ -117,10 +117,6 @@
117
117
  animation: zero-daisyui-toast-spin 0.75s linear infinite;
118
118
  }
119
119
 
120
- .zx-toast__indicator.zx-s-complete {
121
- clip-path: polygon(15.1% 41.3%, 1% 55%, 37.6% 92.8%, 99% 19.8%, 83.9% 7.2%, 36.6% 63.5%);
122
- }
123
-
124
120
  .zx-root .zx-toast__indicator.zx-s-complete {
125
121
  background: #2a7858;
126
122
  }
@@ -141,10 +137,6 @@
141
137
  background: #a6cebe;
142
138
  }
143
139
 
144
- .zx-toast__indicator.zx-s-error {
145
- clip-path: polygon(20% 8%, 50% 38%, 80% 8%, 92% 20%, 62% 50%, 92% 80%, 80% 92%, 50% 62%, 20% 92%, 8% 80%, 38% 50%, 8% 20%);
146
- }
147
-
148
140
  .zx-root .zx-toast__indicator.zx-s-error {
149
141
  background: #8f424e;
150
142
  }
@@ -6,10 +6,21 @@
6
6
  .zx-toggle-group__root {
7
7
  display: flex;
8
8
  background: var(--color-base-200);
9
- border: var(--border) solid var(--color-base-300);
9
+ border: 0 solid transparent;
10
10
  border-radius: var(--radius-field);
11
11
  box-shadow: var(--shadow-xs);
12
12
  overflow: hidden;
13
+ width: max-content;
14
+ flex-shrink: 0;
15
+ flex-direction: row;
16
+ border-top-width: var(--border);
17
+ border-right-width: var(--border);
18
+ border-bottom-width: var(--border);
19
+ border-left-width: var(--border);
20
+ border-top-color: var(--color-base-300);
21
+ border-right-color: var(--color-base-300);
22
+ border-bottom-color: var(--color-base-300);
23
+ border-left-color: var(--color-base-300);
13
24
  }
14
25
 
15
26
  .zx-toggle-group__root.zx-f-disabled {
@@ -36,6 +47,8 @@
36
47
  line-height: var(--leading-none);
37
48
  cursor: pointer;
38
49
  transition: background var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);
50
+ flex-shrink: 0;
51
+ flex-wrap: nowrap;
39
52
  }
40
53
 
41
54
  .zx-toggle-group__item.zx-s-on {
@@ -49,8 +62,29 @@
49
62
  }
50
63
 
51
64
  .zx-toggle-group__item.zx-f-focus-visible {
52
- outline: 2px solid var(--toggle-group-accent);
65
+ outline: none;
53
66
  outline-offset: -2px;
67
+ box-shadow: inset 0 0 0 2px var(--toggle-group-accent);
68
+ }
69
+
70
+ .zx-toggle-group__item.zx-f-pressed {
71
+ background: var(--color-base-300);
72
+ }
73
+
74
+ .zx-toggle-group__item.zx-s-on.zx-f-pressed {
75
+ background: var(--toggle-group-accent);
76
+ }
77
+
78
+ .zx-toggle-group__item.zx-o-horizontal {
79
+ border-left-width: var(--border);
80
+ border-left-style: solid;
81
+ border-left-color: var(--color-base-300);
82
+ }
83
+
84
+ .zx-toggle-group__item.zx-o-vertical {
85
+ border-top-width: var(--border);
86
+ border-top-style: solid;
87
+ border-top-color: var(--color-base-300);
54
88
  }
55
89
 
56
90
  .zx-toggle-group__item.zx-a-size-xs {
@@ -112,3 +146,21 @@
112
146
  --toggle-group-accent: var(--color-error);
113
147
  --toggle-group-on-accent: var(--color-error-content);
114
148
  }
149
+ .zx-toggle-group__item.zx-m-first.zx-o-horizontal {
150
+ border-left-width: calc(var(--border) * 0);
151
+ border-top-left-radius: calc(var(--radius-field) - var(--border));
152
+ border-bottom-left-radius: calc(var(--radius-field) - var(--border));
153
+ }
154
+ .zx-toggle-group__item.zx-m-first.zx-o-vertical {
155
+ border-top-width: calc(var(--border) * 0);
156
+ border-top-left-radius: calc(var(--radius-field) - var(--border));
157
+ border-top-right-radius: calc(var(--radius-field) - var(--border));
158
+ }
159
+ .zx-toggle-group__item.zx-m-last.zx-o-horizontal {
160
+ border-top-right-radius: calc(var(--radius-field) - var(--border));
161
+ border-bottom-right-radius: calc(var(--radius-field) - var(--border));
162
+ }
163
+ .zx-toggle-group__item.zx-m-last.zx-o-vertical {
164
+ border-bottom-left-radius: calc(var(--radius-field) - var(--border));
165
+ border-bottom-right-radius: calc(var(--radius-field) - var(--border));
166
+ }