winduum 2.2.0-next.1 → 2.2.0-next.3
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/package.json +12 -12
- package/src/components/breadcrumb/default.css +1 -1
- package/src/components/breadcrumb/props/default.css +1 -1
- package/src/components/check/default.css +3 -3
- package/src/components/check/interactive.css +1 -1
- package/src/components/check/props/default.css +4 -2
- package/src/components/control/file.css +2 -2
- package/src/components/control/index.css +2 -0
- package/src/components/control/props/select-picker.css +18 -0
- package/src/components/control/props/select.css +2 -1
- package/src/components/control/select-picker.css +94 -0
- package/src/components/control/select.css +5 -1
- package/src/components/rating/default.css +1 -1
- package/src/components/rating/props/default.css +1 -1
- package/src/tailwind.css +1 -0
- package/src/test.css +5 -2
- package/src/theme/config/index.css +0 -1
- package/src/utilities/divider.css +2 -1
- package/tailwindcss/theme/config/index.css +0 -1
- package/tailwindcss/utilities/divider.css +35 -0
- package/tailwindcss/utilities/dot.css +10 -0
- package/tailwindcss/utilities/grid-cols-container.css +12 -0
- package/tailwindcss/utilities/index.css +9 -0
- package/tailwindcss/utilities/ripple.css +16 -0
- package/tailwindcss/utilities/skeleton.css +14 -0
- package/tailwindcss/utilities/spinner.css +35 -0
- package/tailwindcss/utilities/swap.css +21 -0
- package/tailwindcss/utilities/underline.css +14 -0
- package/tailwindcss/utilities/view-transition.css +3 -0
- package/src/theme/config/mask.css +0 -8
- package/tailwindcss/theme/config/mask.css +0 -8
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "winduum",
|
|
3
|
-
"version": "2.2.0-next.
|
|
3
|
+
"version": "2.2.0-next.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"types": "types/index.d.ts",
|
|
6
6
|
"main": "plugin/index.cjs",
|
|
@@ -22,24 +22,24 @@
|
|
|
22
22
|
"@floating-ui/dom": "^1.6.13",
|
|
23
23
|
"@stylistic/stylelint-config": "^2.0.0",
|
|
24
24
|
"@tailwindcss/container-queries": "^0.1.1",
|
|
25
|
-
"@tailwindcss/vite": "^4.
|
|
26
|
-
"@vitejs/plugin-vue": "^5.2.
|
|
27
|
-
"autoprefixer": "^10.4.
|
|
28
|
-
"dts-buddy": "^0.
|
|
29
|
-
"eslint": "^9.
|
|
25
|
+
"@tailwindcss/vite": "^4.1.4",
|
|
26
|
+
"@vitejs/plugin-vue": "^5.2.3",
|
|
27
|
+
"autoprefixer": "^10.4.21",
|
|
28
|
+
"dts-buddy": "^0.6.1",
|
|
29
|
+
"eslint": "^9.25.1",
|
|
30
30
|
"fast-glob": "^3.3.3",
|
|
31
|
-
"neostandard": "^0.12.
|
|
32
|
-
"postcss": "^8.5.
|
|
31
|
+
"neostandard": "^0.12.1",
|
|
32
|
+
"postcss": "^8.5.3",
|
|
33
33
|
"postcss-custom-media": "^11.0.5",
|
|
34
34
|
"postcss-import": "^16.1.0",
|
|
35
35
|
"postcss-nesting": "^13.0.1",
|
|
36
36
|
"slide-element": "^2.3.1",
|
|
37
|
-
"stylelint": "^16.
|
|
38
|
-
"stylelint-config-standard": "^
|
|
39
|
-
"tailwindcss": "^4.
|
|
37
|
+
"stylelint": "^16.19.1",
|
|
38
|
+
"stylelint-config-standard": "^38.0.0",
|
|
39
|
+
"tailwindcss": "^4.1.4",
|
|
40
40
|
"tailwindcss-animate": "^1.0.7",
|
|
41
41
|
"typescript": "^5",
|
|
42
|
-
"vite": "^6.
|
|
42
|
+
"vite": "^6.3.4",
|
|
43
43
|
"vue": "^3.5.13"
|
|
44
44
|
},
|
|
45
45
|
"files": [
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
> li {
|
|
9
9
|
&:not(:last-child)::after {
|
|
10
|
-
mask: var(--x-breadcrumb-marker);
|
|
10
|
+
mask: var(--x-breadcrumb-marker-mask);
|
|
11
11
|
background-color: var(--x-breadcrumb-marker-background-color, currentColor);
|
|
12
12
|
margin-inline: var(--x-breadcrumb-gap);
|
|
13
13
|
inline-size: var(--x-breadcrumb-marker-size);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
:root, :host {
|
|
2
2
|
--x-breadcrumb-marker-size: 0.875rem;
|
|
3
|
-
--x-breadcrumb-marker:
|
|
3
|
+
--x-breadcrumb-marker-mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="m8.25 4.5 7.5 7.5-7.5 7.5" /></svg>');
|
|
4
4
|
--x-breadcrumb-gap: calc(var(--spacing) * 1);
|
|
5
5
|
}
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
text-wrap: pretty;
|
|
12
12
|
|
|
13
13
|
&:has([type="radio"]) {
|
|
14
|
-
--x-check-icon: var(--
|
|
15
|
-
--x-check-border-radius: 50
|
|
14
|
+
--x-check-icon-mask: var(--x-check-radio-icon-mask);
|
|
15
|
+
--x-check-border-radius: var(--x-check-radio-border-radius, 50%);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
:where(input) {
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
inline-size: var(--x-check-icon-size);
|
|
48
48
|
block-size: var(--x-check-icon-size);
|
|
49
49
|
color: var(--x-check-icon-color);
|
|
50
|
-
mask: var(--x-check-icon);
|
|
50
|
+
mask: var(--x-check-icon-mask);
|
|
51
51
|
transition: inherit;
|
|
52
52
|
content: "";
|
|
53
53
|
background-color: currentColor;
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
:root, :host {
|
|
2
2
|
--x-check-size: 1.25rem;
|
|
3
|
-
--x-check-icon-size: 1.125rem;
|
|
4
|
-
--x-check-icon: var(--mask-check);
|
|
5
3
|
--x-check-gap: calc(var(--spacing) * 3);
|
|
6
4
|
--x-check-font-size: var(--text-sm);
|
|
7
5
|
--x-check-line-height: calc(1em + 0.25rem);
|
|
@@ -10,4 +8,8 @@
|
|
|
10
8
|
--x-check-background-color: currentColor;
|
|
11
9
|
--x-check-border-color: currentColor;
|
|
12
10
|
--x-check-outline-width: 2px;
|
|
11
|
+
--x-check-icon-size: 1.125rem;
|
|
12
|
+
--x-check-icon-mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" /></svg>');
|
|
13
|
+
--x-check-radio-icon-mask: url('data:image/svg+xml, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 160c-53.019 0-96 42.981-96 96v0c0 53.019 42.981 96 96 96v0c53.019 0 96-42.981 96-96v0c0-53.019-42.981-96-96-96z"></path></svg>');
|
|
14
|
+
--x-check-indeterminate-icon-mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" stroke-width="2.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M5 12h14" /></svg>');
|
|
13
15
|
}
|
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
var(--x-control-file-background-color, currentColor) var(--x-control-file-background-color-opacity, 15%),
|
|
11
11
|
var(--x-control-file-background-color-mix, transparent)
|
|
12
12
|
);
|
|
13
|
-
block-size:
|
|
13
|
+
block-size: var(--x-control-block-size);
|
|
14
14
|
padding-inline: var(--x-control-padding-inline);
|
|
15
15
|
margin-inline: calc(var(--x-control-padding-inline) * -1) var(--x-control-padding-inline);
|
|
16
16
|
margin-block-start: calc(var(--x-control-padding-block) * -1);
|
|
17
17
|
border-start-end-radius: var(--x-control-border-radius);
|
|
18
18
|
border-end-end-radius: var(--x-control-border-radius);
|
|
19
19
|
transition: var(--transition-background);
|
|
20
|
-
cursor: pointer;
|
|
20
|
+
cursor: var(--cursor-pointer, pointer);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
&:is(:hover, :focus) {
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
@import "./props/icon.css";
|
|
4
4
|
@import "./props/floating.css";
|
|
5
5
|
@import "./props/select.css";
|
|
6
|
+
@import "./props/select-picker.css";
|
|
6
7
|
@import "./default.css";
|
|
7
8
|
@import "./interactive.css";
|
|
8
9
|
@import "./invalid.css";
|
|
@@ -13,3 +14,4 @@
|
|
|
13
14
|
@import "./floating-interactive.css";
|
|
14
15
|
@import "./select.css";
|
|
15
16
|
@import "./select-multiple.css";
|
|
17
|
+
@import "./select-picker.css";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
:root, :host {
|
|
2
|
+
--x-control-select-picker-border-width: 1px;
|
|
3
|
+
--x-control-select-picker-border-radius: var(--radius-lg);
|
|
4
|
+
--x-control-select-picker-border-color: currentColor;
|
|
5
|
+
--x-control-select-picker-background-color: var(--color-body-primary);
|
|
6
|
+
--x-control-select-picker-margin-block: 0.25rem;
|
|
7
|
+
--x-control-select-picker-padding-block: 0.25rem;
|
|
8
|
+
--x-control-select-picker-padding-inline: 0.25rem;
|
|
9
|
+
--x-control-select-picker-gap: 0.125rem;
|
|
10
|
+
--x-control-select-picker-scrollbar-color: currentColor var(--color-body-primary);
|
|
11
|
+
--x-control-select-option-padding-block: 0.5rem;
|
|
12
|
+
--x-control-select-option-padding-inline: 0.5rem;
|
|
13
|
+
--x-control-select-option-font-size: var(--text-sm);
|
|
14
|
+
--x-control-select-option-font-weight: var(--font-weight-semibold);
|
|
15
|
+
--x-control-select-option-line-height: calc(1em + 0.125rem);
|
|
16
|
+
--x-control-select-option-border-radius: var(--radius-md);
|
|
17
|
+
--x-control-select-option-hocus-background-color: var(--color-body-secondary);
|
|
18
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
:root, :host {
|
|
2
|
-
--x-control-select-icon-size: 1.
|
|
2
|
+
--x-control-select-icon-size: 1.25rem;
|
|
3
|
+
--x-control-select-icon-mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24" stroke="currentColor"><path d="M10.998 15.467c.491.71 1.513.71 2.004 0l3.767-5.453c.581-.843 0-2.013-1.002-2.014H8.234C7.232 8 6.65 9.17 7.231 10.014z" /></svg>');
|
|
3
4
|
--x-control-select-icon-margin-inline-end: -0.25rem;
|
|
4
5
|
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
.x-control:has(select:not([multiple])) {
|
|
2
|
+
&::after {
|
|
3
|
+
will-change: transform;
|
|
4
|
+
transition: var(--transition-transform);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
&:has(select:open) {
|
|
8
|
+
&::after {
|
|
9
|
+
transform: rotate(180deg);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
select {
|
|
14
|
+
&, &::picker(select) {
|
|
15
|
+
appearance: base-select;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
&::picker-icon {
|
|
19
|
+
display: none;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&::picker(select) {
|
|
23
|
+
border-radius: var(--x-control-select-picker-border-radius);
|
|
24
|
+
border:
|
|
25
|
+
var(--x-control-select-picker-border-width) solid
|
|
26
|
+
color-mix(
|
|
27
|
+
in var(--x-control-select-picker-border-color-space, srgb),
|
|
28
|
+
var(--x-control-select-picker-border-color) var(--x-control-select-picker-border-color-opacity, 15%),
|
|
29
|
+
var(--x-control-select-picker-border-color-mix, transparent)
|
|
30
|
+
);
|
|
31
|
+
background-color: var(--x-control-select-picker-background-color);
|
|
32
|
+
margin-block: var(--x-control-select-picker-margin-block);
|
|
33
|
+
padding-block: var(--x-control-select-picker-padding-block);
|
|
34
|
+
padding-inline: var(--x-control-select-picker-padding-inline);
|
|
35
|
+
gap: var(--x-control-select-picker-gap);
|
|
36
|
+
display: flex;
|
|
37
|
+
flex-direction: column;
|
|
38
|
+
cursor: auto;
|
|
39
|
+
transform-origin: top center;
|
|
40
|
+
scrollbar-width: thin;
|
|
41
|
+
scrollbar-color: var(--x-control-select-picker-scrollbar-color);
|
|
42
|
+
will-change: transform, opacity;
|
|
43
|
+
transition:
|
|
44
|
+
opacity var(--default-transition-duration) var(--ease-in-out),
|
|
45
|
+
transform var(--default-transition-duration) var(--ease-out),
|
|
46
|
+
display var(--default-transition-duration) allow-discrete,
|
|
47
|
+
overlay var(--default-transition-duration) allow-discrete;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
&:not(:open)::picker(select) {
|
|
51
|
+
opacity: 0%;
|
|
52
|
+
transform: scale(0.9);
|
|
53
|
+
display: revert;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
&:open::picker(select) {
|
|
57
|
+
opacity: 100%;
|
|
58
|
+
transform: scale(1);
|
|
59
|
+
|
|
60
|
+
@starting-style {
|
|
61
|
+
opacity: 0%;
|
|
62
|
+
transform: scale(0.95);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
option {
|
|
67
|
+
padding-block: var(--x-control-select-option-padding-block);
|
|
68
|
+
padding-inline: var(--x-control-select-option-padding-inline);
|
|
69
|
+
font-size: var(--x-control-select-option-font-size);
|
|
70
|
+
font-weight: var(--x-control-select-option-font-weight);
|
|
71
|
+
line-height: var(--x-control-select-option-line-height);
|
|
72
|
+
border-radius: var(--x-control-select-option-border-radius);
|
|
73
|
+
transition: var(--transition-background), var(--transition-color);
|
|
74
|
+
|
|
75
|
+
&::checkmark {
|
|
76
|
+
display: none;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
&:hover, &:focus-visible {
|
|
80
|
+
background-color: var(--x-control-select-option-hocus-background-color);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
&:checked {
|
|
84
|
+
color: var(--x-control-select-option-checked-color, var(--color-accent));
|
|
85
|
+
background-color:
|
|
86
|
+
color-mix(
|
|
87
|
+
in var(--x-control-select-option-checked-background-color-space, srgb),
|
|
88
|
+
var(--x-control-select-option-checked-background-color, var(--color-accent)) var(--x-control-select-option-checked-background-color-opacity, 10%),
|
|
89
|
+
var(--x-control-select-option-checked-background-color-mix, transparent)
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
&::after {
|
|
9
9
|
inline-size: var(--x-control-select-icon-size);
|
|
10
10
|
block-size: var(--x-control-select-icon-size);
|
|
11
|
-
mask: var(--x-control-select-icon-mask
|
|
11
|
+
mask: var(--x-control-select-icon-mask);
|
|
12
12
|
margin-inline: auto var(--x-control-select-icon-margin-inline-end);
|
|
13
13
|
grid-area: x-control-padding;
|
|
14
14
|
background-color: currentColor;
|
|
@@ -20,4 +20,8 @@
|
|
|
20
20
|
:where(.ms-auto) {
|
|
21
21
|
margin-inline-end: var(--x-control-select-icon-size);
|
|
22
22
|
}
|
|
23
|
+
|
|
24
|
+
:where(select, option) {
|
|
25
|
+
cursor: var(--cursor-pointer, pointer);
|
|
26
|
+
}
|
|
23
27
|
}
|
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
--x-rating-block-size: 1.25rem;
|
|
4
4
|
--x-rating-gap: 0.25rem;
|
|
5
5
|
--x-rating-opacity: 0.2;
|
|
6
|
-
--x-rating-icon:
|
|
6
|
+
--x-rating-icon-mask: url('data:image/svg+xml, <svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M10.788 3.21c.448-1.077 1.976-1.077 2.424 0l2.082 5.007 5.404.433c1.164.093 1.636 1.545.749 2.305l-4.117 3.527 1.257 5.273c.271 1.136-.964 2.033-1.96 1.425L12 18.354 7.373 21.18c-.996.608-2.231-.29-1.96-1.425l1.257-5.273-4.117-3.527c-.887-.76-.415-2.212.749-2.305l5.404-.433 2.082-5.006z" clip-rule="evenodd" /></svg>');
|
|
7
7
|
}
|
package/src/tailwind.css
CHANGED
package/src/test.css
CHANGED
|
@@ -4,8 +4,11 @@
|
|
|
4
4
|
@import "./theme/dark.css" layer(theme);
|
|
5
5
|
@import "./base/reset.css" layer(base);
|
|
6
6
|
@import "./base/defaults.css" layer(base);
|
|
7
|
-
@import "./components/index.css" layer(
|
|
8
|
-
@import "./utilities/
|
|
7
|
+
@import "./components/index.css" layer(utilities);
|
|
8
|
+
@import "./utilities/container/props/default.css" layer(theme);
|
|
9
|
+
@import "./utilities/ripple/keyframes/default.css";
|
|
10
|
+
@import "./utilities/skeleton/props/default.css" layer(theme);
|
|
11
|
+
@import "./utilities/spinner/keyframes/ring.css";
|
|
9
12
|
@import "../tailwindcss/utilities/index.css";
|
|
10
13
|
@import "tailwindcss/utilities" layer(utilities);
|
|
11
14
|
@import "../tailwindcss/variants/dark.css";
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
&::before, &::after {
|
|
13
13
|
content: "";
|
|
14
14
|
flex-grow: 1;
|
|
15
|
+
border: 0;
|
|
15
16
|
border-block-start:
|
|
16
17
|
1px solid color-mix(
|
|
17
18
|
in var(--divider-border-block-color-space, srgb),
|
|
@@ -22,7 +23,7 @@
|
|
|
22
23
|
|
|
23
24
|
&:where(.flex-col) {
|
|
24
25
|
&::before, &::after {
|
|
25
|
-
border
|
|
26
|
+
border: 0;
|
|
26
27
|
border-inline-start:
|
|
27
28
|
1px solid color-mix(
|
|
28
29
|
in var(--divider-border-inline-color-space, srgb),
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
@utility divider {
|
|
2
|
+
display: flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
align-self: stretch;
|
|
5
|
+
|
|
6
|
+
&:where(:not(:empty)) {
|
|
7
|
+
gap: var(--divider-gap, calc(var(--spacing) * 3));
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
&::before, &::after {
|
|
11
|
+
content: "";
|
|
12
|
+
flex-grow: 1;
|
|
13
|
+
border: 0;
|
|
14
|
+
border-block-start:
|
|
15
|
+
1px solid color-mix(
|
|
16
|
+
in var(--divider-border-block-color-space, srgb),
|
|
17
|
+
var(--divider-border-block-color, currentColor) var(--divider-border-block-color-opacity, 15%),
|
|
18
|
+
var(--divider-border-block-color-mix, transparent)
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@utility divider-vertical {
|
|
24
|
+
flex-direction: column;
|
|
25
|
+
|
|
26
|
+
&::before, &::after {
|
|
27
|
+
border: 0;
|
|
28
|
+
border-inline-start:
|
|
29
|
+
1px solid color-mix(
|
|
30
|
+
in var(--divider-border-inline-color-space, srgb),
|
|
31
|
+
var(--divider-border-inline-color, currentColor) var(--divider-border-inline-color-opacity, 15%),
|
|
32
|
+
var(--divider-border-inline-color-mix, transparent)
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
@utility grid-cols-container {
|
|
2
|
+
grid-template-columns:
|
|
3
|
+
[container-full-start] minmax(var(--container-padding), 1fr)
|
|
4
|
+
[container-breakout-start] minmax(0, calc((var(--container-breakout-width) - var(--container-width)) / 2))
|
|
5
|
+
[container-start] min(100% - (var(--container-padding) * 2), var(--container-width)) [container-end]
|
|
6
|
+
minmax(0, calc((var(--container-breakout-width) - var(--container-width)) / 2)) [container-breakout-end]
|
|
7
|
+
minmax(var(--container-padding), 1fr) [container-full-end];
|
|
8
|
+
|
|
9
|
+
& > :where(*) {
|
|
10
|
+
grid-column: container;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -1,3 +1,12 @@
|
|
|
1
1
|
@import "./accent.css";
|
|
2
2
|
@import "./animation.css";
|
|
3
3
|
@import "./divide-gap.css";
|
|
4
|
+
@import "./divider.css";
|
|
5
|
+
@import "./dot.css";
|
|
6
|
+
@import "./grid-cols-container.css";
|
|
7
|
+
@import "./ripple.css";
|
|
8
|
+
@import "./skeleton.css";
|
|
9
|
+
@import "./spinner.css";
|
|
10
|
+
@import "./swap.css";
|
|
11
|
+
@import "./underline.css";
|
|
12
|
+
@import "./view-transition.css";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
@utility ripple {
|
|
2
|
+
inline-size: var(--ripple-size, 5rem);
|
|
3
|
+
block-size: var(--ripple-size, 5rem);
|
|
4
|
+
background-color:
|
|
5
|
+
color-mix(
|
|
6
|
+
in var(--ripple-background-color-space, srgb),
|
|
7
|
+
var(--ripple-background-color, currentColor) var(--ripple-background-color-opacity, 15%),
|
|
8
|
+
var(--ripple-background-color-mix, transparent)
|
|
9
|
+
);
|
|
10
|
+
animation-duration: var(--ripple-animation-duration, 500ms);
|
|
11
|
+
animation-timing-function: var(--ripple-animation-timing-function, var(--ease-in-out));
|
|
12
|
+
position: absolute;
|
|
13
|
+
border-radius: 50%;
|
|
14
|
+
transform: scale(0);
|
|
15
|
+
pointer-events: none;
|
|
16
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
@utility skeleton {
|
|
2
|
+
background:
|
|
3
|
+
linear-gradient(
|
|
4
|
+
to right,
|
|
5
|
+
var(--skeleton-gradient-from),
|
|
6
|
+
var(--skeleton-gradient-to),
|
|
7
|
+
var(--skeleton-gradient-to),
|
|
8
|
+
var(--skeleton-gradient-from)
|
|
9
|
+
);
|
|
10
|
+
opacity: var(--skeleton-opacity);
|
|
11
|
+
transition: var(--transition-opacity);
|
|
12
|
+
animation: move-indeterminate 1.5s linear infinite;
|
|
13
|
+
background-size: 400% 100%;
|
|
14
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
@utility spinner {
|
|
2
|
+
inline-size: var(--spinner-inline-size, 1rem);
|
|
3
|
+
block-size: var(--spinner-block-size, 1rem);
|
|
4
|
+
border-radius: 50%;
|
|
5
|
+
border-width: var(--spinner-border-width, 2px);
|
|
6
|
+
border-color:
|
|
7
|
+
color-mix(in var(--default-color-space), currentColor var(--spinner-border-block-start-color-opacity, 100%), transparent)
|
|
8
|
+
color-mix(in var(--default-color-space), currentColor var(--spinner-border-inline-end-color-opacity, 100%), transparent)
|
|
9
|
+
color-mix(in var(--default-color-space), currentColor var(--spinner-border-block-end-color-opacity, 100%), transparent)
|
|
10
|
+
color-mix(in var(--default-color-space), currentColor var(--spinner-border-inline-start-color-opacity, 0%), transparent);
|
|
11
|
+
border-style: solid;
|
|
12
|
+
animation: linear var(--spinner-animation-duration, 1s) infinite spin;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@utility spinner-circle {
|
|
16
|
+
--spinner-border-inline-start-color-opacity: 25%;
|
|
17
|
+
--spinner-border-inline-end-color-opacity: 25%;
|
|
18
|
+
--spinner-border-block-end-color-opacity: 25%;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@utility spinner-ring {
|
|
22
|
+
--spinner-animation-duration: 2s;
|
|
23
|
+
|
|
24
|
+
transform-origin: center;
|
|
25
|
+
border: 0;
|
|
26
|
+
|
|
27
|
+
circle {
|
|
28
|
+
stroke-dasharray: 1, 200;
|
|
29
|
+
stroke-dashoffset: 0;
|
|
30
|
+
stroke-linecap: round;
|
|
31
|
+
animation: spinner-ring-stretch calc(var(--spinner-animation-duration) * 0.75) ease-in-out infinite;
|
|
32
|
+
fill: none;
|
|
33
|
+
stroke: currentColor;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
@utility swap {
|
|
2
|
+
cursor: var(--cursor-pointer, pointer);
|
|
3
|
+
display: inline-grid;
|
|
4
|
+
|
|
5
|
+
> :where(*) {
|
|
6
|
+
transition-property: var(--default-transition-property);
|
|
7
|
+
transition-timing-function: var(--ease-in-out);
|
|
8
|
+
transition-duration: var(--default-transition-duration);
|
|
9
|
+
grid-area: 1/-1;
|
|
10
|
+
opacity: 0%;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
> [aria-hidden="false"],
|
|
14
|
+
input:not(:checked, :indeterminate) + :where(*),
|
|
15
|
+
input:indeterminate ~ :where(*:nth-last-child(2)),
|
|
16
|
+
input:checked ~ :where(*:last-child) {
|
|
17
|
+
transform: none;
|
|
18
|
+
rotate: none;
|
|
19
|
+
opacity: 100%;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
@utility underline {
|
|
2
|
+
text-underline-offset: var(--default-underline-offset, 0.125em);
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
@utility underline-transparent {
|
|
6
|
+
&:where(:any-link, button:enabled, [role="button"]) {
|
|
7
|
+
transition: all var(--default-transition-duration) var(--ease-in-out);
|
|
8
|
+
|
|
9
|
+
&:not(:hover, :focus-visible) {
|
|
10
|
+
text-underline-offset: var(--default-underline-transparent-offset, -0.25em);
|
|
11
|
+
text-decoration-color: transparent;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
:root, :host {
|
|
2
|
-
--mask-check: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" /></svg>') no-repeat 50% 50% / contain;
|
|
3
|
-
--mask-radio: url('data:image/svg+xml, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 160c-53.019 0-96 42.981-96 96v0c0 53.019 42.981 96 96 96v0c53.019 0 96-42.981 96-96v0c0-53.019-42.981-96-96-96z"></path></svg>') no-repeat 50% 50% / contain;
|
|
4
|
-
--mask-angle-down: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24" stroke="currentColor"><path d="M10.998 15.467c.491.71 1.513.71 2.004 0l3.767-5.453c.581-.843 0-2.013-1.002-2.014H8.234C7.232 8 6.65 9.17 7.231 10.014z" /></svg>') no-repeat 50% 50% / contain;
|
|
5
|
-
--mask-chevron-right: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="m8.25 4.5 7.5 7.5-7.5 7.5" /></svg>') no-repeat 50% 50% / contain;
|
|
6
|
-
--mask-indeterminate: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" stroke-width="2.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M5 12h14" /></svg>') no-repeat 50% 50% / contain;
|
|
7
|
-
--mask-star: url('data:image/svg+xml, <svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M10.788 3.21c.448-1.077 1.976-1.077 2.424 0l2.082 5.007 5.404.433c1.164.093 1.636 1.545.749 2.305l-4.117 3.527 1.257 5.273c.271 1.136-.964 2.033-1.96 1.425L12 18.354 7.373 21.18c-.996.608-2.231-.29-1.96-1.425l1.257-5.273-4.117-3.527c-.887-.76-.415-2.212.749-2.305l5.404-.433 2.082-5.006z" clip-rule="evenodd" /></svg>') no-repeat 50% 50% / contain;
|
|
8
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
@theme {
|
|
2
|
-
--mask-check: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" /></svg>') no-repeat 50% 50% / contain;
|
|
3
|
-
--mask-radio: url('data:image/svg+xml, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 160c-53.019 0-96 42.981-96 96v0c0 53.019 42.981 96 96 96v0c53.019 0 96-42.981 96-96v0c0-53.019-42.981-96-96-96z"></path></svg>') no-repeat 50% 50% / contain;
|
|
4
|
-
--mask-angle-down: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24" stroke="currentColor"><path d="M10.998 15.467c.491.71 1.513.71 2.004 0l3.767-5.453c.581-.843 0-2.013-1.002-2.014H8.234C7.232 8 6.65 9.17 7.231 10.014z" /></svg>') no-repeat 50% 50% / contain;
|
|
5
|
-
--mask-chevron-right: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="m8.25 4.5 7.5 7.5-7.5 7.5" /></svg>') no-repeat 50% 50% / contain;
|
|
6
|
-
--mask-indeterminate: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" stroke-width="2.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M5 12h14" /></svg>') no-repeat 50% 50% / contain;
|
|
7
|
-
--mask-star: url('data:image/svg+xml, <svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M10.788 3.21c.448-1.077 1.976-1.077 2.424 0l2.082 5.007 5.404.433c1.164.093 1.636 1.545.749 2.305l-4.117 3.527 1.257 5.273c.271 1.136-.964 2.033-1.96 1.425L12 18.354 7.373 21.18c-.996.608-2.231-.29-1.96-1.425l1.257-5.273-4.117-3.527c-.887-.76-.415-2.212.749-2.305l5.404-.433 2.082-5.006z" clip-rule="evenodd" /></svg>') no-repeat 50% 50% / contain;
|
|
8
|
-
}
|