@sigx/zero-daisyui 0.11.0 → 0.12.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`
@@ -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);
@@ -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;
@@ -69,8 +70,9 @@
69
70
  }
70
71
 
71
72
  .zx-checkbox__control.zx-f-focus-visible {
72
- outline: 2px solid var(--checkbox-accent);
73
+ outline: none;
73
74
  outline-offset: 2px;
75
+ box-shadow: 0 0 0 2px var(--color-base-100), 0 0 0 4px var(--checkbox-accent), 0 1px var(--depth-shade) inset;
74
76
  }
75
77
 
76
78
  .zx-checkbox__control.zx-f-invalid {
@@ -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,13 @@
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;
79
82
  }
80
83
 
81
84
  .zx-number-input__input.zx-f-disabled {
@@ -95,8 +98,14 @@
95
98
  user-select: none;
96
99
  border-inline-start: var(--border) solid var(--color-base-300);
97
100
  transition: background var(--duration-fast) var(--ease-standard);
101
+ display: flex;
102
+ align-items: center;
103
+ justify-content: center;
98
104
  padding-left: var(--space-lg);
99
105
  padding-right: var(--space-lg);
106
+ border-left: var(--border) solid var(--color-base-300);
107
+ border-top-right-radius: var(--radius-field);
108
+ border-bottom-right-radius: var(--radius-field);
100
109
  }
101
110
 
102
111
  .zx-number-input__increment-trigger.zx-f-disabled {
@@ -121,8 +130,14 @@
121
130
  user-select: none;
122
131
  border-inline-end: var(--border) solid var(--color-base-300);
123
132
  transition: background var(--duration-fast) var(--ease-standard);
133
+ display: flex;
134
+ align-items: center;
135
+ justify-content: center;
124
136
  padding-left: var(--space-lg);
125
137
  padding-right: var(--space-lg);
138
+ border-right: var(--border) solid var(--color-base-300);
139
+ border-top-left-radius: var(--radius-field);
140
+ border-bottom-left-radius: var(--radius-field);
126
141
  }
127
142
 
128
143
  .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 {
@@ -49,7 +49,7 @@
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);
@@ -58,6 +58,26 @@
58
58
  transition: border-color var(--duration-fast) var(--ease-standard);
59
59
  }
60
60
 
61
+ .zx-root .zx-textarea__textarea {
62
+ -x-placeholder-color: #18181b99;
63
+ }
64
+
65
+ .zx-root.zx-theme-dark .zx-textarea__textarea {
66
+ -x-placeholder-color: #ecf9ff99;
67
+ }
68
+
69
+ .zx-root.zx-theme-dim .zx-textarea__textarea {
70
+ -x-placeholder-color: #b2ccd699;
71
+ }
72
+
73
+ .zx-root.zx-theme-nord .zx-textarea__textarea {
74
+ -x-placeholder-color: #2e344099;
75
+ }
76
+
77
+ .zx-root.zx-theme-sunset .zx-textarea__textarea {
78
+ -x-placeholder-color: #9fb9d099;
79
+ }
80
+
61
81
  .zx-textarea__textarea.zx-f-invalid {
62
82
  border-color: var(--color-error);
63
83
  }
@@ -68,8 +88,9 @@
68
88
  }
69
89
 
70
90
  .zx-textarea__textarea.zx-f-focus-visible {
71
- outline: 2px solid var(--textarea-accent);
91
+ outline: none;
72
92
  outline-offset: 2px;
93
+ box-shadow: 0 0 0 2px var(--color-base-100), 0 0 0 4px var(--textarea-accent);
73
94
  }
74
95
 
75
96
  .zx-textarea__root.zx-a-color-primary {
@@ -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 {
@@ -18,6 +29,11 @@
18
29
 
19
30
  .zx-toggle-group__root.zx-o-vertical {
20
31
  flex-direction: column;
32
+ border-top-width: 0;
33
+ }
34
+
35
+ .zx-toggle-group__root.zx-o-horizontal {
36
+ border-left-width: 0;
21
37
  }
22
38
 
23
39
  .zx-toggle-group__item {
@@ -36,6 +52,8 @@
36
52
  line-height: var(--leading-none);
37
53
  cursor: pointer;
38
54
  transition: background var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);
55
+ flex-shrink: 0;
56
+ flex-wrap: nowrap;
39
57
  }
40
58
 
41
59
  .zx-toggle-group__item.zx-s-on {
@@ -49,8 +67,29 @@
49
67
  }
50
68
 
51
69
  .zx-toggle-group__item.zx-f-focus-visible {
52
- outline: 2px solid var(--toggle-group-accent);
70
+ outline: none;
53
71
  outline-offset: -2px;
72
+ box-shadow: inset 0 0 0 2px var(--toggle-group-accent);
73
+ }
74
+
75
+ .zx-toggle-group__item.zx-f-pressed {
76
+ background: var(--color-base-300);
77
+ }
78
+
79
+ .zx-toggle-group__item.zx-s-on.zx-f-pressed {
80
+ background: var(--toggle-group-accent);
81
+ }
82
+
83
+ .zx-toggle-group__item.zx-o-horizontal {
84
+ border-left-width: var(--border);
85
+ border-left-style: solid;
86
+ border-left-color: var(--color-base-300);
87
+ }
88
+
89
+ .zx-toggle-group__item.zx-o-vertical {
90
+ border-top-width: var(--border);
91
+ border-top-style: solid;
92
+ border-top-color: var(--color-base-300);
54
93
  }
55
94
 
56
95
  .zx-toggle-group__item.zx-a-size-xs {
@@ -12,7 +12,7 @@
12
12
  gap: 0.5em;
13
13
  color: var(--color-base-content);
14
14
  background: var(--color-base-200);
15
- border: var(--border) solid var(--color-base-300);
15
+ border: 0 solid transparent;
16
16
  border-radius: var(--radius-field);
17
17
  box-shadow: var(--shadow-xs);
18
18
  font-family: inherit;
@@ -20,12 +20,28 @@
20
20
  line-height: var(--leading-none);
21
21
  cursor: pointer;
22
22
  transition: background var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);
23
+ width: max-content;
24
+ flex-shrink: 0;
25
+ flex-wrap: nowrap;
26
+ flex-direction: row;
27
+ border-top-width: var(--border);
28
+ border-right-width: var(--border);
29
+ border-bottom-width: var(--border);
30
+ border-left-width: var(--border);
31
+ border-top-color: var(--color-base-300);
32
+ border-right-color: var(--color-base-300);
33
+ border-bottom-color: var(--color-base-300);
34
+ border-left-color: var(--color-base-300);
23
35
  }
24
36
 
25
37
  .zx-toggle__root.zx-s-on {
26
38
  background: var(--toggle-accent);
27
39
  color: var(--toggle-on-accent);
28
40
  border-color: var(--toggle-accent);
41
+ border-top-color: var(--toggle-accent);
42
+ border-right-color: var(--toggle-accent);
43
+ border-bottom-color: var(--toggle-accent);
44
+ border-left-color: var(--toggle-accent);
29
45
  }
30
46
 
31
47
  .zx-toggle__root.zx-f-disabled {
@@ -34,8 +50,13 @@
34
50
  }
35
51
 
36
52
  .zx-toggle__root.zx-f-focus-visible {
37
- outline: 2px solid var(--toggle-accent);
53
+ outline: none;
38
54
  outline-offset: 2px;
55
+ box-shadow: 0 0 0 2px var(--color-base-100), 0 0 0 4px var(--toggle-accent);
56
+ }
57
+
58
+ .zx-toggle__root.zx-f-pressed {
59
+ background: var(--color-base-300);
39
60
  }
40
61
 
41
62
  .zx-toggle__root.zx-f-pressed {
@@ -43,6 +64,10 @@
43
64
  box-shadow: none;
44
65
  }
45
66
 
67
+ .zx-toggle__root.zx-s-on.zx-f-pressed {
68
+ background: var(--toggle-accent);
69
+ }
70
+
46
71
  .zx-toggle__root.zx-a-color-primary {
47
72
  --toggle-accent: var(--color-primary);
48
73
  --toggle-on-accent: var(--color-primary-content);