winduum 0.1.0 → 0.1.2

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.
@@ -1,17 +1,15 @@
1
- @layer utilities {
2
- :where(.ui-image) {
3
- --ui-image-bg: rgb(var(--color-background-200));
4
- --ui-image-border-radius: 0;
1
+ :where(.ui-image) {
2
+ --ui-image-bg: rgb(var(--color-background-200));
3
+ --ui-image-border-radius: 0;
5
4
 
6
- position: relative;
7
- display: block;
8
- background-color: var(--ui-image-bg);
9
- border-radius: var(--ui-image-border-radius);
5
+ position: relative;
6
+ display: block;
7
+ background-color: var(--ui-image-bg);
8
+ border-radius: var(--ui-image-border-radius);
10
9
 
11
- & > * {
12
- width: 100%;
13
- height: 100%;
14
- border-radius: inherit;
15
- }
10
+ & > * {
11
+ width: 100%;
12
+ height: 100%;
13
+ border-radius: inherit;
16
14
  }
17
15
  }
@@ -1,271 +1,269 @@
1
- @layer utilities {
2
- :where(.ui-input, .ui-input-group, .ui-input-mask, .ui-select) {
3
- --ui-input-height: 3rem;
4
- --ui-input-height-textarea: 8rem;
5
- --ui-input-pt-floating: 1.25rem;
6
- --ui-input-pb-floating: 0.4375rem;
7
- --ui-input-py: 0.875rem;
8
- --ui-input-px: 1rem;
9
- --ui-input-pl: var(--ui-input-px);
10
- --ui-input-pr: var(--ui-input-px);
11
- --ui-input-bg: rgb(var(--color-background));
12
- --ui-input-color: currentColor;
13
- --ui-input-placeholder-color: currentColor;
14
- --ui-input-placeholder-opacity: 0.5;
15
- --ui-input-font-size: 0.875rem;
16
- --ui-input-font-weight: var(--font-medium);
17
- --ui-input-border-width: 1px;
18
- --ui-input-border-color: var(--color-current);
19
- --ui-input-border-opacity: 0.15;
20
- --ui-input-border-radius: var(--rounded);
21
- --ui-input-box-shadow: none;
22
- --ui-input-gap: 0.5rem;
23
- --ui-input-icon-font-size: 1.25rem;
24
- --ui-input-icon-count-l: 1;
25
- --ui-input-icon-count-r: 1;
26
- --ui-input-icon-gap: 0.375rem;
27
- --ui-input-icon-inset-x: calc(var(--ui-input-px) - 0.25rem);
28
- --ui-input-icon-inset-x-gap: 0.125rem;
29
- --ui-input-icon-offset-l: calc(var(--ui-input-icon-inset-x) + var(--ui-input-icon-inset-x-gap) + (var(--ui-input-icon-font-size) + var(--ui-input-icon-gap)) * var(--ui-input-icon-count-l));
30
- --ui-input-icon-offset-r: calc(var(--ui-input-icon-inset-x) + var(--ui-input-icon-inset-x-gap) + (var(--ui-input-icon-font-size) + var(--ui-input-icon-gap)) * var(--ui-input-icon-count-r));
31
- --ui-input-validity-size: 0.875rem;
32
- --ui-input-validity-offset: 0.375rem;
33
- --ui-input-label-font-size: 0.875rem;
34
- --ui-input-label-font-weight: var(--font-medium);
35
- --ui-input-label-focus-transform: translateY(-0.75rem) scale(0.8);
36
- --ui-input-label-focus-opacity: 0.5;
37
-
38
- & > :where(label:not([class^="ui"])) {
39
- display: block;
40
- margin-bottom: var(--ui-input-gap);
41
- font-size: var(--ui-input-label-font-size);
42
- font-weight: var(--ui-input-label-font-weight);
43
- }
44
-
45
- & :where(em) {
46
- grid-area: info;
47
- display: none;
48
- margin-top: var(--ui-input-validity-offset);
49
- font-size: var(--ui-input-validity-size);
50
- color: rgb(var(--color-error));
51
- font-style: normal;
52
- }
1
+ :where(.ui-input, .ui-input-group, .ui-input-mask, .ui-select) {
2
+ --ui-input-height: 3rem;
3
+ --ui-input-height-textarea: 8rem;
4
+ --ui-input-pt-floating: 1.25rem;
5
+ --ui-input-pb-floating: 0.4375rem;
6
+ --ui-input-py: 0.875rem;
7
+ --ui-input-px: 1rem;
8
+ --ui-input-pl: var(--ui-input-px);
9
+ --ui-input-pr: var(--ui-input-px);
10
+ --ui-input-bg: rgb(var(--color-background));
11
+ --ui-input-color: currentColor;
12
+ --ui-input-placeholder-color: currentColor;
13
+ --ui-input-placeholder-opacity: 0.5;
14
+ --ui-input-font-size: 0.875rem;
15
+ --ui-input-font-weight: var(--font-medium);
16
+ --ui-input-border-width: 1px;
17
+ --ui-input-border-color: var(--color-current);
18
+ --ui-input-border-opacity: 0.15;
19
+ --ui-input-border-radius: var(--rounded);
20
+ --ui-input-box-shadow: none;
21
+ --ui-input-gap: 0.5rem;
22
+ --ui-input-icon-font-size: 1.25rem;
23
+ --ui-input-icon-count-l: 1;
24
+ --ui-input-icon-count-r: 1;
25
+ --ui-input-icon-gap: 0.375rem;
26
+ --ui-input-icon-inset-x: calc(var(--ui-input-px) - 0.25rem);
27
+ --ui-input-icon-inset-x-gap: 0.125rem;
28
+ --ui-input-icon-offset-l: calc(var(--ui-input-icon-inset-x) + var(--ui-input-icon-inset-x-gap) + (var(--ui-input-icon-font-size) + var(--ui-input-icon-gap)) * var(--ui-input-icon-count-l));
29
+ --ui-input-icon-offset-r: calc(var(--ui-input-icon-inset-x) + var(--ui-input-icon-inset-x-gap) + (var(--ui-input-icon-font-size) + var(--ui-input-icon-gap)) * var(--ui-input-icon-count-r));
30
+ --ui-input-validity-size: 0.875rem;
31
+ --ui-input-validity-offset: 0.375rem;
32
+ --ui-input-label-font-size: 0.875rem;
33
+ --ui-input-label-font-weight: var(--font-medium);
34
+ --ui-input-label-focus-transform: translateY(-0.75rem) scale(0.8);
35
+ --ui-input-label-focus-opacity: 0.5;
36
+
37
+ & > :where(label:not([class^="ui"])) {
38
+ display: block;
39
+ margin-bottom: var(--ui-input-gap);
40
+ font-size: var(--ui-input-label-font-size);
41
+ font-weight: var(--ui-input-label-font-weight);
53
42
  }
54
43
 
55
- :where(.ui-input, .ui-select) {
56
- display: grid;
57
- grid-template-areas: "label" "input" "info";
58
- font-size: var(--ui-input-font-size);
59
- position: relative;
44
+ & :where(em) {
45
+ grid-area: info;
46
+ display: none;
47
+ margin-top: var(--ui-input-validity-offset);
48
+ font-size: var(--ui-input-validity-size);
49
+ color: rgb(var(--color-error));
50
+ font-style: normal;
51
+ }
52
+ }
60
53
 
61
- &:has(.icon-l) {
62
- --ui-input-pl: var(--ui-input-icon-offset-l);
63
- }
54
+ :where(.ui-input, .ui-select) {
55
+ display: grid;
56
+ grid-template-areas: "label" "input" "info";
57
+ font-size: var(--ui-input-font-size);
58
+ position: relative;
64
59
 
65
- &:has(.icon-r) {
66
- --ui-input-pr: var(--ui-input-icon-offset-r);
67
- }
60
+ &:has(.icon-l) {
61
+ --ui-input-pl: var(--ui-input-icon-offset-l);
62
+ }
68
63
 
69
- &:has(.icon-l > *:nth-child(2)) {
70
- --ui-input-icon-count-r: 2;
71
- }
64
+ &:has(.icon-r) {
65
+ --ui-input-pr: var(--ui-input-icon-offset-r);
66
+ }
72
67
 
73
- &:has(.icon-r > *:nth-child(2)) {
74
- --ui-input-icon-count-r: 2;
75
- }
68
+ &:has(.icon-l > *:nth-child(2)) {
69
+ --ui-input-icon-count-r: 2;
70
+ }
76
71
 
77
- & :where(label) {
78
- grid-area: label;
79
- order: -1;
80
- }
72
+ &:has(.icon-r > *:nth-child(2)) {
73
+ --ui-input-icon-count-r: 2;
74
+ }
81
75
 
82
- & :where(svg) {
83
- font-size: var(--ui-input-icon-font-size);
84
- width: 1em;
85
- height: var(--ui-input-height);
86
- }
76
+ & :where(label) {
77
+ grid-area: label;
78
+ order: -1;
79
+ }
87
80
 
88
- & :where(input, textarea, select) {
89
- grid-area: input;
90
- background-clip: padding-box;
91
- background-color: var(--ui-input-bg);
92
- padding: var(--ui-input-py) var(--ui-input-pr) var(--ui-input-py) var(--ui-input-pl);
93
- transition: var(--transition-border), var(--transition-shadow);
94
- box-shadow: var(--ui-input-box-shadow);
95
- line-height: normal;
96
- font-size: inherit;
97
- height: var(--ui-input-height);
98
- font-weight: var(--ui-input-font-weight);
99
- border-radius: var(--ui-input-border-radius);
100
- color: var(--ui-input-color);
101
- border: var(--ui-input-border-width) solid rgb(var(--ui-input-border-color) / var(--ui-input-border-opacity));
81
+ & :where(svg) {
82
+ font-size: var(--ui-input-icon-font-size);
83
+ width: 1em;
84
+ height: var(--ui-input-height);
85
+ }
102
86
 
103
- @nest .is-validated &:invalid {
104
- & ~ em {
105
- display: block;
106
- }
87
+ & :where(input, textarea, select) {
88
+ grid-area: input;
89
+ background-clip: padding-box;
90
+ background-color: var(--ui-input-bg);
91
+ padding: var(--ui-input-py) var(--ui-input-pr) var(--ui-input-py) var(--ui-input-pl);
92
+ transition: var(--transition-border), var(--transition-shadow);
93
+ box-shadow: var(--ui-input-box-shadow);
94
+ line-height: normal;
95
+ font-size: inherit;
96
+ height: var(--ui-input-height);
97
+ font-weight: var(--ui-input-font-weight);
98
+ border-radius: var(--ui-input-border-radius);
99
+ color: var(--ui-input-color);
100
+ border: var(--ui-input-border-width) solid rgb(var(--ui-input-border-color) / var(--ui-input-border-opacity));
101
+
102
+ @nest .is-validated &:invalid {
103
+ & ~ em {
104
+ display: block;
107
105
  }
106
+ }
108
107
 
109
- &:focus {
110
- --ui-input-border-opacity: 1;
111
- --ui-input-border-color: var(--color-accent);
112
- --ui-input-box-shadow:
113
- 0 0 0 0 rgb(var(--color-current)),
114
- 0 0 0 3px rgb(var(--color-accent) / 0.2),
115
- 0 1px 2px 0 rgb(var(--color-current) / 0.05);
116
- }
108
+ &:focus {
109
+ --ui-input-border-opacity: 1;
110
+ --ui-input-border-color: var(--color-accent);
111
+ --ui-input-box-shadow:
112
+ 0 0 0 0 rgb(var(--color-current)),
113
+ 0 0 0 3px rgb(var(--color-accent) / 0.2),
114
+ 0 1px 2px 0 rgb(var(--color-current) / 0.05);
115
+ }
117
116
 
118
- &:disabled {
119
- cursor: default;
120
- background-color: rgb(var(--color-default) / 0.1);
121
- }
117
+ &:disabled {
118
+ cursor: default;
119
+ background-color: rgb(var(--color-default) / 0.1);
120
+ }
122
121
 
123
- &:required {
124
- & ~ label {
125
- &::after {
126
- color: rgb(var(--color-error));
127
- content: " *";
128
- }
122
+ &:required {
123
+ & ~ label {
124
+ &::after {
125
+ color: rgb(var(--color-error));
126
+ content: " *";
129
127
  }
130
128
  }
131
129
  }
130
+ }
132
131
 
133
- & :where(input, textarea) {
134
- &::placeholder {
135
- color: var(--ui-input-placeholder-color);
136
- opacity: var(--ui-input-placeholder-opacity);
137
- }
132
+ & :where(input, textarea) {
133
+ &::placeholder {
134
+ color: var(--ui-input-placeholder-color);
135
+ opacity: var(--ui-input-placeholder-opacity);
138
136
  }
137
+ }
139
138
 
140
- & :where(textarea) {
141
- resize: vertical;
142
- overflow: hidden;
143
- min-height: var(--ui-input-height-textarea);
144
- }
139
+ & :where(textarea) {
140
+ resize: vertical;
141
+ overflow: hidden;
142
+ min-height: var(--ui-input-height-textarea);
143
+ }
145
144
 
146
- & :where([class^="icon-"]) {
147
- grid-area: input;
148
- position: relative;
149
- transition: var(--transition-opacity);
150
- content: "";
151
- line-height: 1em;
152
- display: flex;
153
- flex-direction: row;
154
- flex-shrink: 0;
155
- gap: var(--ui-input-icon-gap);
156
- align-items: center;
157
-
158
- &.icon-l {
159
- left: var(--ui-input-icon-inset-x);
160
- margin-right: auto;
161
- }
145
+ & :where([class^="icon-"]) {
146
+ grid-area: input;
147
+ position: relative;
148
+ transition: var(--transition-opacity);
149
+ content: "";
150
+ line-height: 1em;
151
+ display: flex;
152
+ flex-direction: row;
153
+ flex-shrink: 0;
154
+ gap: var(--ui-input-icon-gap);
155
+ align-items: center;
156
+
157
+ &.icon-l {
158
+ left: var(--ui-input-icon-inset-x);
159
+ margin-right: auto;
160
+ }
162
161
 
163
- &.icon-r {
164
- right: var(--ui-input-icon-inset-x);
165
- margin-left: auto;
166
- }
162
+ &.icon-r {
163
+ right: var(--ui-input-icon-inset-x);
164
+ margin-left: auto;
167
165
  }
166
+ }
168
167
 
169
- & :where([aria-label]) {
170
- &::after {
171
- content: attr(aria-label);
172
- font-size: var(--ui-input-font-size);
173
- min-width: var(--ui-input-icon-font-size);
174
- text-align: center;
175
- line-height: var(--ui-input-icon-font-size);
176
- display: block;
177
- }
168
+ & :where([aria-label]) {
169
+ &::after {
170
+ content: attr(aria-label);
171
+ font-size: var(--ui-input-font-size);
172
+ min-width: var(--ui-input-icon-font-size);
173
+ text-align: center;
174
+ line-height: var(--ui-input-icon-font-size);
175
+ display: block;
178
176
  }
177
+ }
179
178
 
180
- & :where([class*="lib-hint"]) {
181
- &::after {
182
- white-space: normal;
183
- line-height: 1.5;
184
- word-wrap: normal;
185
- width: 10rem;
186
- font-weight: var(--font-normal);
187
- font-size: 0.75rem;
188
- }
179
+ & :where([class*="lib-hint"]) {
180
+ &::after {
181
+ white-space: normal;
182
+ line-height: 1.5;
183
+ word-wrap: normal;
184
+ width: 10rem;
185
+ font-weight: var(--font-normal);
186
+ font-size: 0.75rem;
189
187
  }
188
+ }
190
189
 
191
- &:where(.is-floating) {
192
- --ui-input-placeholder-color: transparent;
193
-
194
- & :where(label) {
195
- position: absolute;
196
- z-index: 1;
197
- pointer-events: none;
198
- transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), var(--transition-color), var(--transition-opacity);
199
- transform-origin: 0 50%;
200
- white-space: nowrap;
201
- text-overflow: ellipsis;
202
- overflow: hidden;
203
- transform: perspective(100px);
204
- will-change: transform;
205
- font-weight: var(--ui-input-font-weight);
206
- left: var(--ui-input-pl);
207
- right: var(--ui-input-pr);
208
- top: calc(var(--ui-input-height) / 2);
209
- line-height: var(--ui-input-font-size);
210
- margin-top: calc(var(--ui-input-font-size) / 2 * -1);
211
- }
190
+ &:where(.is-floating) {
191
+ --ui-input-placeholder-color: transparent;
212
192
 
213
- & :where(input, textarea, select) {
214
- padding-top: calc(var(--ui-input-pt-floating));
215
- padding-bottom: calc(var(--ui-input-pb-floating));
193
+ & :where(label) {
194
+ position: absolute;
195
+ z-index: 1;
196
+ pointer-events: none;
197
+ transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), var(--transition-color), var(--transition-opacity);
198
+ transform-origin: 0 50%;
199
+ white-space: nowrap;
200
+ text-overflow: ellipsis;
201
+ overflow: hidden;
202
+ transform: perspective(100px);
203
+ will-change: transform;
204
+ font-weight: var(--ui-input-font-weight);
205
+ left: var(--ui-input-pl);
206
+ right: var(--ui-input-pr);
207
+ top: calc(var(--ui-input-height) / 2);
208
+ line-height: var(--ui-input-font-size);
209
+ margin-top: calc(var(--ui-input-font-size) / 2 * -1);
210
+ }
216
211
 
217
- &:is(:focus, :not(:placeholder-shown)) ~ label {
218
- transform: var(--ui-input-label-focus-transform);
219
- opacity: var(--ui-input-label-focus-opacity);
220
- }
212
+ & :where(input, textarea, select) {
213
+ padding-top: calc(var(--ui-input-pt-floating));
214
+ padding-bottom: calc(var(--ui-input-pb-floating));
215
+
216
+ &:is(:focus, :not(:placeholder-shown)) ~ label {
217
+ transform: var(--ui-input-label-focus-transform);
218
+ opacity: var(--ui-input-label-focus-opacity);
221
219
  }
222
220
  }
221
+ }
223
222
 
224
- @nest &.is-invalid, .is-validated & :where(input, textarea, select):invalid {
225
- --ui-input-bg: rgb(var(--color-error) / 0.1);
226
- --ui-input-border-opacity: 1;
227
- --ui-input-border-color: var(--color-error);
228
- --ui-input-color: rgb(var(--color-error));
229
- }
223
+ @nest &.is-invalid, .is-validated & :where(input, textarea, select):invalid {
224
+ --ui-input-bg: rgb(var(--color-error) / 0.1);
225
+ --ui-input-border-opacity: 1;
226
+ --ui-input-border-color: var(--color-error);
227
+ --ui-input-color: rgb(var(--color-error));
230
228
  }
229
+ }
231
230
 
232
- :where(.ui-input-group) {
233
- display: flex;
234
- align-items: flex-end;
235
- flex-wrap: wrap;
231
+ :where(.ui-input-group) {
232
+ display: flex;
233
+ align-items: flex-end;
234
+ flex-wrap: wrap;
236
235
 
237
- & .ui-btn {
238
- --ui-btn-outline-width: 1px;
239
- --ui-btn-height: var(--ui-input-height);
240
- }
236
+ & .ui-btn {
237
+ --ui-btn-outline-width: 1px;
238
+ --ui-btn-height: var(--ui-input-height);
239
+ }
241
240
 
242
- & :where(em, label) {
243
- display: block;
244
- width: 100%;
245
- }
241
+ & :where(em, label) {
242
+ display: block;
243
+ width: 100%;
244
+ }
246
245
 
247
- & > * {
248
- &:not(:first-child, label + *) {
249
- margin-left: calc(var(--ui-input-border-width) * -1);
246
+ & > * {
247
+ &:not(:first-child, label + *) {
248
+ margin-left: calc(var(--ui-input-border-width) * -1);
250
249
 
251
- &, & :where(input, select) {
252
- border-top-left-radius: 0;
253
- border-bottom-left-radius: 0;
254
- }
250
+ &, & :where(input, select) {
251
+ border-top-left-radius: 0;
252
+ border-bottom-left-radius: 0;
255
253
  }
254
+ }
256
255
 
257
- &:not(:last-child, :has(+ em)) {
258
- &, & :where(input, select) {
259
- border-top-right-radius: 0;
260
- border-bottom-right-radius: 0;
261
- }
256
+ &:not(:last-child, :has(+ em)) {
257
+ &, & :where(input, select) {
258
+ border-top-right-radius: 0;
259
+ border-bottom-right-radius: 0;
262
260
  }
263
261
  }
264
262
  }
263
+ }
265
264
 
266
- :where(.ui-input-mask) {
267
- & :where([class^="ui-"]) {
268
- min-height: var(--ui-input-height);
269
- }
265
+ :where(.ui-input-mask) {
266
+ & :where([class^="ui-"]) {
267
+ min-height: var(--ui-input-height);
270
268
  }
271
269
  }
@@ -1,43 +1,41 @@
1
- @layer utilities {
2
- :where(.ui-notice) {
3
- --color-current: var(--color-accent);
4
- --ui-notice-bg: rgb(var(--color-accent));
5
- --ui-notice-py: 1.25rem;
6
- --ui-notice-px: 1.5rem;
7
- --ui-notice-font-size: 0.875rem;
8
- --ui-notice-border-radius: var(--rounded);
9
- --ui-notice-outline-opacity: 0.1;
10
- --ui-notice-gap: 1rem;
1
+ :where(.ui-notice) {
2
+ --color-current: var(--color-accent);
3
+ --ui-notice-bg: rgb(var(--color-accent));
4
+ --ui-notice-py: 1.25rem;
5
+ --ui-notice-px: 1.5rem;
6
+ --ui-notice-font-size: 0.875rem;
7
+ --ui-notice-border-radius: var(--rounded);
8
+ --ui-notice-outline-opacity: 0.1;
9
+ --ui-notice-gap: 1rem;
11
10
 
12
- position: relative;
13
- display: flex;
14
- flex-direction: column;
15
- padding: var(--ui-notice-py) var(--ui-notice-px);
16
- font-size: var(--ui-notice-font-size);
17
- border-radius: var(--ui-notice-border-radius);
18
- color: rgb(var(--color-current));
19
- gap: var(--ui-notice-gap);
11
+ position: relative;
12
+ display: flex;
13
+ flex-direction: column;
14
+ padding: var(--ui-notice-py) var(--ui-notice-px);
15
+ font-size: var(--ui-notice-font-size);
16
+ border-radius: var(--ui-notice-border-radius);
17
+ color: rgb(var(--color-current));
18
+ gap: var(--ui-notice-gap);
20
19
 
21
- & :where(hr) {
22
- --tw-border-opacity: 0.2;
23
- }
20
+ & :where(hr) {
21
+ --tw-border-opacity: 0.2;
22
+ }
24
23
 
25
- &::before, &::after {
26
- position: absolute;
27
- inset: 0;
28
- border-radius: var(--ui-notice-border-radius);
29
- z-index: -1;
30
- content: "";
31
- }
24
+ &::before, &::after {
25
+ position: absolute;
26
+ inset: 0;
27
+ border-radius: var(--ui-notice-border-radius);
28
+ z-index: -1;
29
+ content: "";
30
+ }
32
31
 
33
- &::before {
34
- background-color: var(--ui-notice-bg);
35
- opacity: var(--ui-notice-outline-opacity);
36
- }
32
+ &::before {
33
+ background-color: var(--ui-notice-bg);
34
+ opacity: var(--ui-notice-outline-opacity);
35
+ }
37
36
 
38
- &::after {
39
- box-shadow: inset 0 0 0 1px var(--ui-notice-bg);
40
- opacity: var(--ui-notice-outline-opacity);
41
- }
37
+ &::after {
38
+ box-shadow: inset 0 0 0 1px var(--ui-notice-bg);
39
+ opacity: var(--ui-notice-outline-opacity);
42
40
  }
43
41
  }