winduum 0.5.0-next.8 → 0.5.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/dist/main-rgb.css +1 -1
- package/dist/main.css +1 -1
- package/dist/tailwind.css +1 -1
- package/package.json +17 -17
- package/src/base/config/font.css +11 -0
- package/src/base/{icons.css → config/mask.css} +4 -4
- package/src/base/config/rounded.css +14 -0
- package/src/base/config/spacing.css +15 -0
- package/src/base/config/text.css +15 -0
- package/src/base/config/transition.css +19 -0
- package/src/base/config/z.css +7 -0
- package/src/base/config.css +7 -86
- package/src/base/default.css +5 -1
- package/src/base/index.css +0 -3
- package/src/base/reset.css +10 -7
- package/src/base/tailwind/container.css +9 -4
- package/src/base/tailwind/utilities.css +8 -24
- package/src/base/theme/dark-rgb.css +3 -0
- package/src/base/theme/dark.css +3 -4
- package/src/base/theme/default-rgb.css +25 -0
- package/src/base/theme/default.css +21 -22
- package/src/components/dialog.css +4 -9
- package/src/components/field.css +1 -3
- package/src/libraries/dialog.css +14 -15
- package/src/libraries/dialog.js +1 -0
- package/src/libraries/ripple.css +2 -5
- package/src/main-rgb.css +2 -0
- package/src/ui/badge/bordered-rgb.css +1 -1
- package/src/ui/badge/bordered.css +9 -8
- package/src/ui/badge/default.css +10 -14
- package/src/ui/badge/lg.css +1 -1
- package/src/ui/badge/muted.css +1 -1
- package/src/ui/badge/sm.css +1 -1
- package/src/ui/btn/bordered.css +14 -13
- package/src/ui/btn/default.css +3 -5
- package/src/ui/btn/gradient-bordered.css +27 -21
- package/src/ui/btn/interactive.css +4 -0
- package/src/ui/btn/raised.css +1 -2
- package/src/ui/btn/wide.css +1 -2
- package/src/ui/check.css +27 -53
- package/src/ui/control/color.css +5 -8
- package/src/ui/control/default.css +35 -45
- package/src/ui/control/file.css +9 -12
- package/src/ui/control/floating-interactive.css +12 -0
- package/src/ui/control/floating.css +22 -26
- package/src/ui/control/icon.css +15 -16
- package/src/ui/control/index.css +1 -1
- package/src/ui/control/select.css +6 -6
- package/src/ui/image.css +8 -19
- package/src/ui/info.css +6 -5
- package/src/ui/label.css +6 -5
- package/src/ui/notice.css +7 -15
- package/src/ui/progress/default.css +4 -8
- package/src/ui/progress/lg.css +1 -1
- package/src/ui/progress/sm.css +1 -1
- package/src/ui/switch.css +28 -41
- package/src/ui/title/default.css +1 -1
- package/tailwind.config.js +5 -1
- package/utils/tailwind.cjs +71 -19
- package/utils/tailwind.js +63 -18
- package/src/ui/control/floating-focus.css +0 -12
package/src/ui/check.css
CHANGED
|
@@ -1,33 +1,18 @@
|
|
|
1
1
|
.ui-check {
|
|
2
|
-
--ui-check-width: 1.
|
|
3
|
-
--ui-check-font-size: 0.875rem;
|
|
4
|
-
--ui-check-gap: 0.625rem;
|
|
5
|
-
--ui-check-bg: transparent;
|
|
6
|
-
--ui-check-bg-mix: transparent;
|
|
7
|
-
--ui-check-bg-opacity: calc(var(--tw-bg-opacity, 0.1) * 100%);
|
|
8
|
-
--ui-check-border-color: var(--color-current);
|
|
9
|
-
--ui-check-border-mix: transparent;
|
|
10
|
-
--ui-check-border-opacity: calc(var(--tw-border-opacity, 0.2) * 100%);
|
|
11
|
-
--ui-check-border-width: 1px;
|
|
2
|
+
--ui-check-width: 1.25rem;
|
|
12
3
|
--ui-check-checked-bg: var(--color-accent);
|
|
13
|
-
--ui-check-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
--ui-check-
|
|
17
|
-
--ui-check-
|
|
18
|
-
--ui-check-
|
|
19
|
-
--ui-check-
|
|
20
|
-
--ui-check-
|
|
21
|
-
|
|
22
|
-
display: flex;
|
|
23
|
-
align-items: center;
|
|
24
|
-
gap: 0 var(--ui-check-gap);
|
|
25
|
-
width: fit-content;
|
|
26
|
-
font-size: var(--ui-check-font-size);
|
|
4
|
+
--ui-check-icon-width: 1.125rem;
|
|
5
|
+
|
|
6
|
+
display: inline-flex;
|
|
7
|
+
gap: var(--ui-check-gap, 0.75rem);
|
|
8
|
+
font-weight: var(--ui-check-font-weight, var(--font-normal));
|
|
9
|
+
font-size: var(--ui-check-font-size, var(--text-sm));
|
|
10
|
+
line-height: var(--ui-check-line-height, calc(1em + var(--ui-check-line-height-ratio, 0.25lh)));
|
|
11
|
+
letter-spacing: var(--ui-check-letter-spacing, inherit);
|
|
27
12
|
text-wrap: balance;
|
|
28
13
|
|
|
29
14
|
&:has([type="radio"]) {
|
|
30
|
-
--ui-check-icon: var(--
|
|
15
|
+
--ui-check-icon: var(--mask-radio);
|
|
31
16
|
--ui-check-radius: 50%;
|
|
32
17
|
}
|
|
33
18
|
|
|
@@ -44,37 +29,28 @@
|
|
|
44
29
|
display: flex;
|
|
45
30
|
width: var(--ui-check-width);
|
|
46
31
|
height: var(--ui-check-width);
|
|
47
|
-
background-color: color-mix(in sRGB, var(--
|
|
48
|
-
border: var(--ui-check-border-width) solid color-mix(in sRGB, var(--ui-check-border-color) var(--ui-check-border-opacity), var(--ui-check-border-mix));
|
|
49
|
-
border-radius: var(--ui-check-radius);
|
|
50
|
-
|
|
51
|
-
outline: var(--ui-check-outline-width) solid transparent;
|
|
32
|
+
background-color: var(--ui-check-bg, color-mix(in sRGB, var(--color-current) var(--ui-check-bg-opacity, 0), var(--ui-check-bg-mix, transparent)));
|
|
33
|
+
border: var(--ui-check-border-width, 1px) solid color-mix(in sRGB, var(--ui-check-border-color, var(--color-current)) var(--ui-check-border-opacity, calc(var(--tw-border-opacity, 0.2) * 100%)), var(--ui-check-border-mix, transparent));
|
|
34
|
+
border-radius: var(--ui-check-radius, var(--rounded-md));
|
|
35
|
+
outline: var(--ui-check-outline-width, 3px) solid transparent;
|
|
52
36
|
outline-offset: 0;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
transition:
|
|
56
|
-
var(--transition-border),
|
|
57
|
-
var(--transition-background),
|
|
58
|
-
outline-color var(--duration),
|
|
59
|
-
outline-offset var(--duration);
|
|
60
|
-
font-size: var(--ui-check-icon-font-size);
|
|
61
|
-
cursor: pointer;
|
|
37
|
+
transition-property: var(--transition);
|
|
38
|
+
transition-timing-function: var(--ease-in-out);
|
|
39
|
+
transition-duration: var(--duration);
|
|
62
40
|
flex-shrink: 0;
|
|
63
41
|
|
|
64
42
|
&::before {
|
|
65
|
-
line-height: var(--ui-check-icon-font-size);
|
|
66
|
-
text-indent: 0;
|
|
67
|
-
display: block;
|
|
68
43
|
transition: var(--transition-color), var(--transition-opacity), var(--transition-transform);
|
|
69
44
|
color: var(--color-accent-fg);
|
|
70
45
|
content: "";
|
|
71
46
|
background-color: currentColor;
|
|
72
|
-
mask: var(--ui-check-icon);
|
|
47
|
+
mask: var(--ui-check-icon, var(--mask-check));
|
|
73
48
|
opacity: 0;
|
|
74
49
|
transform: scale(0);
|
|
75
50
|
will-change: transform;
|
|
76
|
-
width:
|
|
77
|
-
height:
|
|
51
|
+
width: var(--ui-check-icon-width);
|
|
52
|
+
height: var(--ui-check-icon-width);
|
|
53
|
+
margin: auto;
|
|
78
54
|
}
|
|
79
55
|
|
|
80
56
|
&:where(:required) {
|
|
@@ -86,7 +62,7 @@
|
|
|
86
62
|
|
|
87
63
|
&:not(:disabled) {
|
|
88
64
|
&:is(:hover, :focus-visible) {
|
|
89
|
-
--
|
|
65
|
+
--color-current: var(--ui-check-checked-bg);
|
|
90
66
|
--ui-check-border-color: var(--ui-check-checked-bg);
|
|
91
67
|
--ui-check-border-opacity: 75%;
|
|
92
68
|
--ui-check-bg-opacity: 10%;
|
|
@@ -96,23 +72,21 @@
|
|
|
96
72
|
--ui-check-border-color: var(--ui-check-checked-bg);
|
|
97
73
|
--ui-check-border-opacity: 75%;
|
|
98
74
|
|
|
99
|
-
outline-color: color-mix(in sRGB, var(--ui-check-checked-bg) var(--ui-check-outline-opacity), transparent);
|
|
100
|
-
outline-offset: var(--ui-check-outline-offset);
|
|
75
|
+
outline-color: color-mix(in sRGB, var(--ui-check-checked-bg) var(--ui-check-outline-opacity, 20%), transparent);
|
|
76
|
+
outline-offset: var(--ui-check-outline-offset, 0);
|
|
101
77
|
}
|
|
102
78
|
}
|
|
103
79
|
|
|
104
80
|
&:disabled {
|
|
105
81
|
--ui-check-bg-opacity: 15%;
|
|
106
|
-
--ui-check-bg: var(--color-current);
|
|
107
82
|
|
|
108
83
|
cursor: not-allowed;
|
|
109
|
-
opacity: var(--ui-check-disabled-opacity);
|
|
84
|
+
opacity: var(--ui-check-disabled-opacity, 0.5);
|
|
110
85
|
}
|
|
111
86
|
|
|
112
87
|
&:checked {
|
|
113
88
|
--ui-check-border-opacity: 0%;
|
|
114
|
-
|
|
115
|
-
background-color: var(--ui-check-checked-bg);
|
|
89
|
+
--ui-check-bg: var(--ui-check-checked-bg);
|
|
116
90
|
|
|
117
91
|
&::before {
|
|
118
92
|
opacity: 1;
|
|
@@ -122,7 +96,7 @@
|
|
|
122
96
|
}
|
|
123
97
|
|
|
124
98
|
&.invalid, .validated & :where(input):invalid {
|
|
125
|
-
--
|
|
99
|
+
--color-current: var(--color-error);
|
|
126
100
|
--ui-check-border-color: var(--color-error);
|
|
127
101
|
--ui-check-checked-bg: var(--color-error);
|
|
128
102
|
--ui-check-border-opacity: 100%;
|
package/src/ui/control/color.css
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
.ui-control {
|
|
2
2
|
--ui-control-color-swatch-width: 1.25rem;
|
|
3
3
|
--ui-control-color-swatch-height: 1.25rem;
|
|
4
|
-
--ui-control-color-swatch-
|
|
4
|
+
--ui-control-color-swatch-border-radius: var(--rounded-full);
|
|
5
5
|
|
|
6
|
-
& :where(input
|
|
6
|
+
& :where(input) {
|
|
7
7
|
&::-webkit-color-swatch-wrapper {
|
|
8
8
|
width: var(--ui-control-color-swatch-width);
|
|
9
9
|
height: var(--ui-control-color-swatch-height);
|
|
@@ -13,19 +13,16 @@
|
|
|
13
13
|
&::-moz-color-swatch {
|
|
14
14
|
width: var(--ui-control-color-swatch-width);
|
|
15
15
|
height: var(--ui-control-color-swatch-height);
|
|
16
|
-
border-radius: var(--ui-control-border-radius);
|
|
16
|
+
border-radius: var(--ui-control-color-swatch-border-radius);
|
|
17
17
|
margin: 0;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
&::-webkit-color-swatch {
|
|
21
|
-
border-radius: var(--ui-control-border-radius);
|
|
21
|
+
border-radius: var(--ui-control-color-swatch-border-radius);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
&[type="color"] ~ label {
|
|
25
|
-
|
|
26
|
-
display: flex;
|
|
27
|
-
align-items: center;
|
|
28
|
-
padding-inline: calc(var(--ui-control-px) + var(--ui-control-color-swatch-px)) var(--ui-control-px);
|
|
25
|
+
margin-inline-start: calc(var(--ui-control-px) + var(--ui-control-color-swatch-width));
|
|
29
26
|
}
|
|
30
27
|
}
|
|
31
28
|
}
|
|
@@ -2,69 +2,59 @@
|
|
|
2
2
|
--ui-control-height: 3rem;
|
|
3
3
|
--ui-control-height-textarea: 8rem;
|
|
4
4
|
--ui-control-px: 0.75rem;
|
|
5
|
-
--ui-control-
|
|
6
|
-
--ui-control-pe: 0rem;
|
|
7
|
-
--ui-control-bg: transparent;
|
|
8
|
-
--ui-control-color: currentColor;
|
|
9
|
-
--ui-control-placeholder-color: currentColor;
|
|
10
|
-
--ui-control-placeholder-opacity: 0.5;
|
|
11
|
-
--ui-control-font-size: 0.875rem;
|
|
12
|
-
--ui-control-font-weight: var(--font-medium);
|
|
5
|
+
--ui-control-py: 0.75rem;
|
|
13
6
|
--ui-control-border-width: 1px;
|
|
14
|
-
--ui-control-border-color: var(--color-current);
|
|
15
|
-
--ui-control-border-mix: transparent;
|
|
16
|
-
--ui-control-border-opacity: 15%;
|
|
17
|
-
--ui-control-border-radius: var(--rounded);
|
|
18
|
-
--ui-control-outline-width: 3px;
|
|
19
|
-
--ui-control-outline-offset: 0;
|
|
20
|
-
--ui-control-outline-opacity: 20%;
|
|
21
|
-
--ui-control-disabled-opacity: 5%;
|
|
22
|
-
--ui-control-invalid-bg-opacity: 10%;
|
|
23
7
|
|
|
24
8
|
display: grid;
|
|
25
|
-
grid-template-areas: "body";
|
|
26
|
-
position: relative;
|
|
27
|
-
font-size: var(--ui-control-font-size);
|
|
28
|
-
border-radius: var(--ui-control-border-radius);
|
|
29
|
-
background-color: var(--ui-control-bg);
|
|
30
|
-
transition:
|
|
31
|
-
var(--transition-border),
|
|
32
|
-
outline-color var(--duration),
|
|
33
|
-
outline-offset var(--duration);
|
|
34
|
-
font-weight: var(--ui-control-font-weight);
|
|
35
|
-
color: var(--ui-control-color);
|
|
36
|
-
border: var(--ui-control-border-width) solid color-mix(in sRGB, var(--ui-control-border-color) var(--ui-control-border-opacity), var(--ui-control-border-mix));
|
|
37
|
-
outline: var(--ui-control-outline-width) solid transparent;
|
|
38
|
-
outline-offset: 0;
|
|
39
9
|
height: var(--ui-control-height);
|
|
10
|
+
font-family: var(--ui-contro-font-family, var(--font-primary));
|
|
11
|
+
font-weight: var(--ui-control-font-weight, var(--font-medium));
|
|
12
|
+
font-size: var(--ui-control-font-size, var(--text-sm));
|
|
13
|
+
letter-spacing: var(--ui-control-letter-spacing, inherit);
|
|
14
|
+
background-color: var(--ui-control-bg, transparent);
|
|
15
|
+
color: var(--ui-control-color, currentColor);
|
|
16
|
+
border-radius: var(--ui-control-border-radius, var(--rounded));
|
|
17
|
+
border: var(--ui-control-border-width) solid color-mix(in sRGB, var(--ui-control-border-color, var(--color-current)) var(--ui-control-border-opacity, 15%), var(--ui-control-border-mix, transparent));
|
|
18
|
+
outline: var(--ui-control-outline-width, 3px) solid transparent;
|
|
19
|
+
outline-offset: 0;
|
|
20
|
+
transition-property: var(--transition);
|
|
21
|
+
transition-timing-function: var(--ease-in-out);
|
|
22
|
+
transition-duration: var(--duration);
|
|
23
|
+
grid-template:
|
|
24
|
+
[control-start] calc(var(--ui-control-py) - var(--ui-control-border-width))
|
|
25
|
+
[control-p] 1fr
|
|
26
|
+
calc(var(--ui-control-py) - var(--ui-control-border-width)) [control-end] /
|
|
27
|
+
[control-start] var(--ui-control-px)
|
|
28
|
+
[control-p] 1fr
|
|
29
|
+
var(--ui-control-px) [control-end];
|
|
40
30
|
|
|
41
31
|
&:has(textarea) {
|
|
42
32
|
height: auto;
|
|
43
33
|
}
|
|
44
34
|
|
|
45
|
-
& > * {
|
|
46
|
-
grid-area:
|
|
35
|
+
& > :where(*) {
|
|
36
|
+
grid-area: control-p;
|
|
37
|
+
align-self: center;
|
|
47
38
|
}
|
|
48
39
|
|
|
49
40
|
& :where(input, textarea, select) {
|
|
50
|
-
place-self: stretch;
|
|
51
|
-
padding-top: var(--ui-control-pt, 0);
|
|
52
|
-
padding-inline: calc(var(--ui-control-px) + var(--ui-control-ps)) calc(var(--ui-control-px) + var(--ui-control-pe));
|
|
53
41
|
text-overflow: ellipsis;
|
|
54
|
-
overflow:
|
|
55
|
-
|
|
56
|
-
|
|
42
|
+
overflow: clip;
|
|
43
|
+
padding-block: var(--ui-control-py);
|
|
44
|
+
padding-inline: calc(var(--ui-control-px) + var(--ui-control-ps, 0rem)) calc(var(--ui-control-px) + var(--ui-control-pe, 0rem));
|
|
45
|
+
grid-area: control;
|
|
46
|
+
align-self: stretch;
|
|
57
47
|
|
|
58
48
|
&:disabled {
|
|
59
49
|
cursor: not-allowed;
|
|
60
|
-
background-color: color-mix(in sRGB, var(--color-current) var(--ui-control-disabled-opacity), var(--ui-control-bg));
|
|
50
|
+
background-color: color-mix(in sRGB, var(--color-current) var(--ui-control-disabled-opacity, 5%), var(--ui-control-bg, transparent));
|
|
61
51
|
}
|
|
62
52
|
}
|
|
63
53
|
|
|
64
54
|
& :where(input, textarea) {
|
|
65
55
|
&::placeholder {
|
|
66
|
-
color: var(--ui-control-placeholder-color);
|
|
67
|
-
opacity: var(--ui-control-placeholder-opacity);
|
|
56
|
+
color: var(--ui-control-placeholder-color, currentColor);
|
|
57
|
+
opacity: var(--ui-control-placeholder-opacity, 0.5);
|
|
68
58
|
}
|
|
69
59
|
}
|
|
70
60
|
|
|
@@ -77,8 +67,8 @@
|
|
|
77
67
|
--ui-control-border-opacity: 100%;
|
|
78
68
|
--ui-control-border-color: var(--color-accent);
|
|
79
69
|
|
|
80
|
-
outline-color: color-mix(in sRGB, var(--color-accent) var(--ui-control-outline-opacity), transparent);
|
|
81
|
-
outline-offset: var(--ui-control-outline-offset);
|
|
70
|
+
outline-color: color-mix(in sRGB, var(--color-accent) var(--ui-control-outline-opacity, 20%), transparent);
|
|
71
|
+
outline-offset: var(--ui-control-outline-offset, 0);
|
|
82
72
|
}
|
|
83
73
|
|
|
84
74
|
&.invalid, .validated &:has(:invalid) {
|
|
@@ -87,6 +77,6 @@
|
|
|
87
77
|
--ui-control-color: var(--color-error);
|
|
88
78
|
--color-accent: var(--color-error);
|
|
89
79
|
|
|
90
|
-
background-color: color-mix(in sRGB, var(--color-error) var(--ui-control-invalid-bg-opacity), var(--ui-control-bg));
|
|
80
|
+
background-color: color-mix(in sRGB, var(--color-error) var(--ui-control-invalid-bg-opacity, 10%), var(--ui-control-bg));
|
|
91
81
|
}
|
|
92
82
|
}
|
package/src/ui/control/file.css
CHANGED
|
@@ -1,25 +1,22 @@
|
|
|
1
1
|
.ui-control:has([type="file"]) {
|
|
2
|
-
overflow:
|
|
2
|
+
overflow: clip;
|
|
3
3
|
|
|
4
4
|
:where([type="file"]) {
|
|
5
|
-
--file-selector-button-bg-opacity: 15%;
|
|
6
|
-
|
|
7
5
|
&:is(:hover, :focus) {
|
|
8
|
-
--file-selector-button-bg-opacity: 20%;
|
|
6
|
+
--ui-control-file-selector-button-bg-opacity: 20%;
|
|
9
7
|
}
|
|
10
8
|
|
|
11
9
|
&::file-selector-button {
|
|
12
10
|
all: unset;
|
|
13
|
-
background-color: color-mix(in sRGB, var(--color-current) var(--file-selector-button-bg-opacity), transparent);
|
|
11
|
+
background-color: color-mix(in sRGB, var(--color-current) var(--ui-control-file-selector-button-bg-opacity, 15%), transparent);
|
|
14
12
|
height: calc(var(--ui-control-height) - var(--ui-control-border-width) * 2);
|
|
15
|
-
padding:
|
|
16
|
-
margin-
|
|
17
|
-
|
|
18
|
-
border-
|
|
19
|
-
|
|
20
|
-
margin-top: calc(var(--ui-control-py) * -1);
|
|
21
|
-
margin-left: calc(var(--ui-control-px) * -1);
|
|
13
|
+
padding-inline: var(--ui-control-px);
|
|
14
|
+
margin-inline: calc(var(--ui-control-px) * -1) var(--ui-control-px);
|
|
15
|
+
margin-block-start: calc(var(--ui-control-py) * -1);
|
|
16
|
+
border-top-right-radius: var(--ui-control-border-radius, var(--rounded));
|
|
17
|
+
border-bottom-right-radius: var(--ui-control-border-radius, var(--rounded));
|
|
22
18
|
transition: var(--transition-background);
|
|
19
|
+
cursor: pointer;
|
|
23
20
|
}
|
|
24
21
|
}
|
|
25
22
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
.ui-control:where(:has(:not([type="color"]) ~ label)) {
|
|
2
|
+
--ui-control-placeholder-color: transparent;
|
|
3
|
+
|
|
4
|
+
& :where(input, textarea, select) {
|
|
5
|
+
&:is(:focus, :not(:placeholder-shown)) {
|
|
6
|
+
~ label {
|
|
7
|
+
transform: translateY(calc(var(--ui-control-label-translate-y) * -1)) scale(var(--ui-control-label-scale));
|
|
8
|
+
opacity: var(--ui-control-label-focus-opacity, 0.5);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -1,43 +1,39 @@
|
|
|
1
|
-
.ui-control:has(:not([type="color"]) ~ label) {
|
|
2
|
-
--ui-control-
|
|
3
|
-
--ui-control-label-
|
|
4
|
-
--ui-control-label-font-weight: var(--font-medium);
|
|
5
|
-
--ui-control-label-transition-duration: 0.4s;
|
|
1
|
+
.ui-control:where(:has(:not([type="color"]) ~ label)) {
|
|
2
|
+
--ui-control-label-translate-y: 0.625rem;
|
|
3
|
+
--ui-control-label-scale: 0.8;
|
|
6
4
|
|
|
7
5
|
& :where(label) {
|
|
8
|
-
align-self: start;
|
|
9
6
|
pointer-events: none;
|
|
10
|
-
transition:
|
|
7
|
+
transition: var(--transition-transform), var(--transition-color), var(--transition-opacity);
|
|
11
8
|
transform-origin: 0 50%;
|
|
12
9
|
white-space: nowrap;
|
|
13
10
|
text-overflow: ellipsis;
|
|
14
|
-
overflow:
|
|
15
|
-
transform: perspective(100px);
|
|
11
|
+
overflow: clip;
|
|
16
12
|
will-change: transform;
|
|
17
|
-
|
|
18
|
-
line-height: var(--ui-control-label-font-size);
|
|
19
|
-
margin-top: calc(var(--ui-control-height) / 2 - (var(--ui-control-font-size) / 2));
|
|
20
|
-
margin-inline: calc(var(--ui-control-px) + var(--ui-control-ps)) calc(var(--ui-control-px) + var(--ui-control-pe));
|
|
13
|
+
margin-inline: var(--ui-control-ps, 0) var(--ui-control-pe, 0);
|
|
21
14
|
}
|
|
22
15
|
|
|
23
|
-
&:has(:required) label {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
content: " *";
|
|
27
|
-
}
|
|
16
|
+
&:where(:has(:required)) :where(label)::after {
|
|
17
|
+
color: var(--color-error);
|
|
18
|
+
content: " *";
|
|
28
19
|
}
|
|
29
20
|
|
|
30
|
-
& :where(
|
|
31
|
-
|
|
32
|
-
margin-top: calc(var(--ui-control-pt) * -1);
|
|
33
|
-
}
|
|
21
|
+
& :where(textarea) {
|
|
22
|
+
padding-block-start: calc(var(--ui-control-py) + var(--ui-control-label-translate-y) * var(--ui-control-label-scale));
|
|
34
23
|
|
|
35
|
-
|
|
36
|
-
|
|
24
|
+
& + :where(label) {
|
|
25
|
+
align-self: start;
|
|
37
26
|
}
|
|
38
27
|
}
|
|
39
28
|
|
|
40
|
-
& :where(
|
|
41
|
-
padding-
|
|
29
|
+
& :where(input, select) {
|
|
30
|
+
padding-block: calc(var(--ui-control-py) + var(--ui-control-label-translate-y) * var(--ui-control-label-scale)) calc(var(--ui-control-py) - var(--ui-control-label-translate-y) * var(--ui-control-label-scale));
|
|
31
|
+
|
|
32
|
+
&::-webkit-calendar-picker-indicator,
|
|
33
|
+
&::-webkit-search-cancel-button,
|
|
34
|
+
&::-webkit-outer-spin-button,
|
|
35
|
+
&::-webkit-inner-spin-button {
|
|
36
|
+
transform: translateY(calc(var(--ui-control-label-translate-y) * var(--ui-control-label-scale) * -1));
|
|
37
|
+
}
|
|
42
38
|
}
|
|
43
39
|
}
|
package/src/ui/control/icon.css
CHANGED
|
@@ -1,41 +1,40 @@
|
|
|
1
1
|
.ui-control {
|
|
2
2
|
--ui-control-icon-size: 1.25rem;
|
|
3
3
|
--ui-control-icon-gap: 0.375rem;
|
|
4
|
-
--ui-control-icon-count-s
|
|
5
|
-
--ui-control-icon-count-e
|
|
4
|
+
--ui-control-icon-s: calc(var(--ui-control-icon-count-s, 1) * (var(--ui-control-icon-size) + var(--ui-control-icon-gap)) - var(--ui-control-icon-gap));
|
|
5
|
+
--ui-control-icon-e: calc(var(--ui-control-icon-count-e, 1) * (var(--ui-control-icon-size) + var(--ui-control-icon-gap)) - var(--ui-control-icon-gap));
|
|
6
6
|
|
|
7
|
-
&:has(.icon-
|
|
8
|
-
--ui-control-ps: calc(var(--ui-control-icon-
|
|
7
|
+
&:has(.icon-s) {
|
|
8
|
+
--ui-control-ps: calc(var(--ui-control-icon-s) + var(--ui-control-px));
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
&:has(.icon-
|
|
12
|
-
--ui-control-pe: calc(var(--ui-control-icon-
|
|
11
|
+
&:has(.icon-e) {
|
|
12
|
+
--ui-control-pe: calc(var(--ui-control-icon-e) + var(--ui-control-px));
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
&:has(.icon-
|
|
15
|
+
&:has(.icon-s > *:nth-child(2)) {
|
|
16
16
|
--ui-control-icon-count-s: 2;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
&:has(.icon-
|
|
19
|
+
&:has(.icon-e > *:nth-child(2)) {
|
|
20
20
|
--ui-control-icon-count-e: 2;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
& :where(.icon-
|
|
24
|
-
inset-inline-start: var(--ui-control-px);
|
|
23
|
+
& :where(.icon-s) {
|
|
25
24
|
margin-inline-end: auto;
|
|
26
25
|
}
|
|
27
26
|
|
|
28
|
-
& :where(.icon-
|
|
29
|
-
inset-inline-end: var(--ui-control-px);
|
|
27
|
+
& :where(.icon-e) {
|
|
30
28
|
margin-inline-start: auto;
|
|
31
29
|
}
|
|
32
30
|
|
|
33
|
-
& :where(.icon-
|
|
34
|
-
position: relative;
|
|
31
|
+
& :where(.icon-s, .icon-e) {
|
|
35
32
|
display: flex;
|
|
36
|
-
flex-direction: row;
|
|
37
33
|
align-items: center;
|
|
38
|
-
align-self: center;
|
|
39
34
|
gap: var(--ui-control-icon-gap);
|
|
40
35
|
}
|
|
36
|
+
|
|
37
|
+
&:has(textarea) :where(.icon-s, .icon-e) {
|
|
38
|
+
margin-block-start: var(--ui-control-py);
|
|
39
|
+
}
|
|
41
40
|
}
|
package/src/ui/control/index.css
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
.ui-control:has(select) {
|
|
2
2
|
--ui-control-select-icon-size: 1.5rem;
|
|
3
|
-
--ui-control-select-icon-me:
|
|
4
|
-
--ui-control-pe: calc(var(--ui-control-select-icon-size) +
|
|
3
|
+
--ui-control-select-icon-me: -0.25rem;
|
|
4
|
+
--ui-control-pe: calc(var(--ui-control-select-icon-size) + var(--ui-control-select-icon-me));
|
|
5
5
|
|
|
6
|
-
&:has(.icon-
|
|
6
|
+
&:has(.icon-e) {
|
|
7
7
|
--ui-control-icon-count-e: 2;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
& :where(.icon-
|
|
10
|
+
& :where(.icon-e) {
|
|
11
11
|
margin-inline-end: var(--ui-control-select-icon-size);
|
|
12
12
|
}
|
|
13
13
|
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
width: var(--ui-control-select-icon-size);
|
|
17
17
|
height: var(--ui-control-select-icon-size);
|
|
18
18
|
background-color: currentColor;
|
|
19
|
-
mask: var(--
|
|
19
|
+
mask: var(--mask-angle-down);
|
|
20
20
|
pointer-events: none;
|
|
21
|
-
grid-area:
|
|
21
|
+
grid-area: control-p;
|
|
22
22
|
align-self: center;
|
|
23
23
|
margin-inline: auto var(--ui-control-select-icon-me);
|
|
24
24
|
}
|
package/src/ui/image.css
CHANGED
|
@@ -1,32 +1,21 @@
|
|
|
1
1
|
.ui-image {
|
|
2
2
|
position: relative;
|
|
3
|
-
display:
|
|
3
|
+
display: flex;
|
|
4
4
|
border-radius: inherit;
|
|
5
5
|
flex-shrink: 0;
|
|
6
|
+
max-width: max-content;
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
content: "";
|
|
8
|
+
&::before {
|
|
9
9
|
position: absolute;
|
|
10
10
|
inset: 0;
|
|
11
|
-
background:
|
|
12
|
-
linear-gradient(
|
|
13
|
-
270deg,
|
|
14
|
-
color-mix(in sRGB, var(--color-body) 50%, var(--color-main)),
|
|
15
|
-
color-mix(in sRGB, var(--color-body) 80%, var(--color-main)),
|
|
16
|
-
color-mix(in sRGB, var(--color-body) 80%, var(--color-main)),
|
|
17
|
-
color-mix(in sRGB, var(--color-body) 50%, var(--color-main))
|
|
18
|
-
);
|
|
19
|
-
background-size: 400% 100%;
|
|
20
|
-
animation: skeleton-wave 1.5s linear infinite;
|
|
21
|
-
border-radius: inherit;
|
|
22
11
|
z-index: -1;
|
|
23
|
-
|
|
12
|
+
border-radius: inherit;
|
|
24
13
|
}
|
|
25
14
|
|
|
26
|
-
& >
|
|
27
|
-
display: block;
|
|
28
|
-
width: 100%;
|
|
29
|
-
height: 100%;
|
|
15
|
+
& > :where(img, video, iframe, object, svg) {
|
|
30
16
|
border-radius: inherit;
|
|
17
|
+
min-width: 100%;
|
|
18
|
+
height: auto;
|
|
19
|
+
object-fit: cover;
|
|
31
20
|
}
|
|
32
21
|
}
|
package/src/ui/info.css
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
.ui-info {
|
|
2
|
-
--ui-info-font-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
font-family: var(--ui-info-font-family, inherit);
|
|
3
|
+
font-weight: var(--ui-info-font-weight, inherit);
|
|
4
|
+
font-size: var(--ui-info-font-size, var(--text-xs));
|
|
5
|
+
line-height: var(--ui-info-line-height, calc(1em + var(--ui-info-line-height-ratio, 0.15lh)));
|
|
6
|
+
letter-spacing: var(--ui-info-letter-spacing, inherit);
|
|
7
|
+
text-wrap: balance;
|
|
7
8
|
}
|
package/src/ui/label.css
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
.ui-label {
|
|
2
|
-
--ui-label-font-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
font-family: var(--ui-label-font-family, inherit);
|
|
3
|
+
font-weight: var(--ui-label-font-weight, inherit);
|
|
4
|
+
font-size: var(--ui-label-font-size, var(--text-sm));
|
|
5
|
+
line-height: var(--ui-label-line-height, calc(1em + var(--ui-label-line-height-ratio, 0.15lh)));
|
|
6
|
+
letter-spacing: var(--ui-label-letter-spacing, inherit);
|
|
7
|
+
text-wrap: balance;
|
|
7
8
|
}
|
package/src/ui/notice.css
CHANGED
|
@@ -1,26 +1,18 @@
|
|
|
1
1
|
.ui-notice {
|
|
2
2
|
--color-current: var(--color-accent);
|
|
3
|
-
--ui-notice-bg: 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
3
|
--ui-notice-outline-width: 1px;
|
|
9
|
-
--ui-notice-outline-offset: calc(var(--ui-notice-outline-width) * -1);
|
|
10
|
-
--ui-notice-outline-opacity: 10%;
|
|
11
|
-
--ui-notice-gap: 1.25rem;
|
|
12
4
|
|
|
13
5
|
position: relative;
|
|
14
6
|
display: flex;
|
|
15
7
|
flex-direction: column;
|
|
16
|
-
padding: var(--ui-notice-py) var(--ui-notice-px);
|
|
17
|
-
font-size: var(--ui-notice-font-size);
|
|
18
|
-
border-radius:
|
|
19
|
-
background-color: color-mix(in sRGB, var(--
|
|
20
|
-
outline: var(--ui-notice-outline-width) solid color-mix(in sRGB, var(--
|
|
21
|
-
outline-offset: var(--ui-notice-outline-offset);
|
|
8
|
+
padding: var(--ui-notice-py, 1.25rem) var(--ui-notice-px, 1.5rem);
|
|
9
|
+
font-size: var(--ui-notice-font-size, var(--text-sm));
|
|
10
|
+
border-radius: var(--rounded);
|
|
11
|
+
background-color: color-mix(in sRGB, var(--color-accent) 10%, transparent);
|
|
12
|
+
outline: var(--ui-notice-outline-width) solid color-mix(in sRGB, var(--color-accent) var(--ui-notice-outline-opacity, 10%), transparent);
|
|
13
|
+
outline-offset: var(--ui-notice-outline-offset, calc(var(--ui-notice-outline-width) * -1));
|
|
22
14
|
color: var(--color-accent);
|
|
23
|
-
gap: var(--ui-notice-gap);
|
|
15
|
+
gap: var(--ui-notice-gap, 1.25rem);
|
|
24
16
|
text-wrap: balance;
|
|
25
17
|
|
|
26
18
|
& :where(hr) {
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
.ui-progress {
|
|
2
|
-
--ui-progress-height: 1rem;
|
|
3
|
-
--ui-progress-border-radius: var(--rounded-full);
|
|
4
2
|
--ui-progress-bg: color-mix(in sRGB, var(--color-accent) var(--ui-progress-bg-opacity), var(--color-body));
|
|
5
|
-
--ui-progress-bg-opacity: 10
|
|
3
|
+
--ui-progress-bg-opacity: calc(var(--tw-bg-opacity, 1) * 10%);
|
|
6
4
|
|
|
7
5
|
appearance: none;
|
|
8
|
-
height: var(--ui-progress-height);
|
|
9
|
-
border-radius: var(--ui-progress-border-radius);
|
|
6
|
+
height: var(--ui-progress-height, 1rem);
|
|
7
|
+
border-radius: var(--ui-progress-border-radius, var(--rounded-full));
|
|
10
8
|
background-color: var(--ui-progress-bg);
|
|
11
9
|
width: 100%;
|
|
10
|
+
overflow: clip;
|
|
12
11
|
|
|
13
12
|
&::-webkit-progress-bar {
|
|
14
13
|
background-color: transparent;
|
|
@@ -16,12 +15,10 @@
|
|
|
16
15
|
|
|
17
16
|
&::-webkit-progress-value {
|
|
18
17
|
background-color: var(--color-accent);
|
|
19
|
-
border-radius: var(--ui-progress-border-radius);
|
|
20
18
|
}
|
|
21
19
|
|
|
22
20
|
&::-moz-progress-bar {
|
|
23
21
|
background-color: var(--color-accent);
|
|
24
|
-
border-radius: var(--ui-progress-border-radius);
|
|
25
22
|
}
|
|
26
23
|
|
|
27
24
|
&:indeterminate {
|
|
@@ -30,7 +27,6 @@
|
|
|
30
27
|
background-position: top left;
|
|
31
28
|
background-repeat: no-repeat;
|
|
32
29
|
background-size: 150% 150%;
|
|
33
|
-
border-radius: var(--ui-progress-border-radius);
|
|
34
30
|
|
|
35
31
|
&::-moz-progress-bar {
|
|
36
32
|
background-color: transparent;
|
package/src/ui/progress/lg.css
CHANGED
package/src/ui/progress/sm.css
CHANGED