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/base/reset.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/***
|
|
2
|
-
The new CSS reset - version 1.11.
|
|
2
|
+
The new CSS reset - version 1.11.2 (last updated 15.11.2023)
|
|
3
3
|
GitHub page: https://github.com/elad2412/the-new-css-reset
|
|
4
4
|
***/
|
|
5
5
|
|
|
@@ -79,12 +79,6 @@ html {
|
|
|
79
79
|
content: initial;
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
/* fix the feature of 'hidden' attribute.
|
|
83
|
-
display:revert; revert to element instead of attribute */
|
|
84
|
-
:where([hidden]) {
|
|
85
|
-
display: none;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
82
|
/* revert for bug in Chromium browsers
|
|
89
83
|
- fix for the content editable attribute will work properly.
|
|
90
84
|
- webkit-user-select: auto; added for Safari in case of using user-select:none on wrapper element */
|
|
@@ -101,7 +95,16 @@ html {
|
|
|
101
95
|
-webkit-user-drag: element;
|
|
102
96
|
}
|
|
103
97
|
|
|
98
|
+
/* Remove details summary webkit styles */
|
|
99
|
+
::-webkit-details-marker {
|
|
100
|
+
display: none;
|
|
101
|
+
}
|
|
102
|
+
|
|
104
103
|
/* fix firefox svg */
|
|
105
104
|
:where(svg, use, path, symbol) {
|
|
106
105
|
all: revert-layer;
|
|
107
106
|
}
|
|
107
|
+
|
|
108
|
+
:where(search) {
|
|
109
|
+
display: block;
|
|
110
|
+
}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
:root, :host {
|
|
2
|
+
--container: min(100% - (var(--container-padding) * 2), var(--container-width));
|
|
3
|
+
--container-sm: min(100% - (var(--container-padding) * 2), var(--container-sm-width));
|
|
4
|
+
--container-lg: min(100% - (var(--container-padding) * 2), var(--container-lg-width));
|
|
2
5
|
--container-width: 80rem;
|
|
6
|
+
--container-sm-width: 50rem;
|
|
3
7
|
--container-lg-width: 90rem;
|
|
4
|
-
--container-lg: calc((var(--container-lg-width) - var(--container-width)) / 2);
|
|
5
8
|
--container-padding: 5vw;
|
|
6
9
|
--container-padding-calc: max(calc(50vw - (var(--container-width) / 2)), var(--container-padding));
|
|
7
10
|
}
|
|
@@ -11,9 +14,11 @@
|
|
|
11
14
|
display: grid;
|
|
12
15
|
grid-template-columns:
|
|
13
16
|
[container-full-start] minmax(var(--container-padding), 1fr)
|
|
14
|
-
[container-lg-start] minmax(0, var(--container-lg))
|
|
15
|
-
[container-start]
|
|
16
|
-
|
|
17
|
+
[container-lg-start] minmax(0, calc((var(--container-lg-width) - var(--container-width)) / 2))
|
|
18
|
+
[container-start] minmax(0, calc((var(--container-width) - var(--container-sm-width)) / 2))
|
|
19
|
+
[container-sm-start] min(100% - (var(--container-padding) * 2), var(--container-sm-width)) [container-sm-end]
|
|
20
|
+
minmax(0, calc((var(--container-width) - var(--container-sm-width)) / 2)) [container-end]
|
|
21
|
+
minmax(0, calc((var(--container-lg-width) - var(--container-width)) / 2)) [container-lg-end]
|
|
17
22
|
minmax(var(--container-padding), 1fr) [container-full-end];
|
|
18
23
|
}
|
|
19
24
|
|
|
@@ -25,30 +25,6 @@
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
:where(.border-inner-t > *:not(:first-child)) {
|
|
29
|
-
border-top: 1px solid var(--border-inner-t-color, var(--color-body-tertiary));
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
:where(.border-inner-r > *:not(:first-child)) {
|
|
33
|
-
border-left: 1px solid var(--border-inner-r-color, var(--color-body-tertiary));
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.flex-col {
|
|
37
|
-
display: flex;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
.flex-between {
|
|
41
|
-
display: flex;
|
|
42
|
-
justify-content: space-between;
|
|
43
|
-
gap: 0.5rem;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.flex-center {
|
|
47
|
-
display: flex;
|
|
48
|
-
align-items: center;
|
|
49
|
-
gap: 0.5rem;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
28
|
.skeleton {
|
|
53
29
|
background:
|
|
54
30
|
linear-gradient(
|
|
@@ -63,4 +39,12 @@
|
|
|
63
39
|
opacity: 0.3;
|
|
64
40
|
transition: opacity 0.3s ease-out;
|
|
65
41
|
}
|
|
42
|
+
|
|
43
|
+
.flex-col {
|
|
44
|
+
display: flex;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
[hidden] {
|
|
48
|
+
display: none;
|
|
49
|
+
}
|
|
66
50
|
}
|
package/src/base/theme/dark.css
CHANGED
|
@@ -1,4 +1,29 @@
|
|
|
1
1
|
:root, :host {
|
|
2
|
+
--color-scheme: light;
|
|
3
|
+
--color-current: rgb(var(--color-current-rgb));
|
|
4
|
+
--color-current-fg: rgb(var(--color-current-fg-rgb));
|
|
5
|
+
--color-accent: rgb(var(--color-accent-rgb));
|
|
6
|
+
--color-accent-fg: rgb(var(--color-accent-fg-rgb));
|
|
7
|
+
--color-primary: rgb(var(--color-primary-rgb));
|
|
8
|
+
--color-primary-fg: rgb(var(--color-primary-fg-rgb));
|
|
9
|
+
--color-main: var(--color-main-primary);
|
|
10
|
+
--color-main-fg: rgb(var(--color-main-fg-rgb));
|
|
11
|
+
--color-main-primary: rgb(var(--color-main-rgb));
|
|
12
|
+
--color-main-secondary: color-mix(in sRGB, var(--color-main) 75%, var(--color-main-fg));
|
|
13
|
+
--color-main-tertiary: color-mix(in sRGB, var(--color-main) 50%, var(--color-main-fg));
|
|
14
|
+
--color-body: var(--color-body-primary);
|
|
15
|
+
--color-body-fg: rgb(var(--color-body-fg-rgb));
|
|
16
|
+
--color-body-primary: rgb(var(--color-body-rgb));
|
|
17
|
+
--color-body-secondary: color-mix(in sRGB, var(--color-body) 95%, var(--color-body-fg));
|
|
18
|
+
--color-body-tertiary: color-mix(in sRGB, var(--color-body) 90%, var(--color-body-fg));
|
|
19
|
+
--color-light: rgb(var(--color-light-rgb));
|
|
20
|
+
--color-light-fg: rgb(var(--color-light-fg-rgb));
|
|
21
|
+
--color-dark: rgb(var(--color-dark-rgb));
|
|
22
|
+
--color-dark-fg: rgb(var(--color-dark-fg-rgb));
|
|
23
|
+
--color-success: rgb(var(--color-success-rgb));
|
|
24
|
+
--color-error: rgb(var(--color-error-rgb));
|
|
25
|
+
--color-warning: rgb(var(--color-warning-rgb));
|
|
26
|
+
--color-info: rgb(var(--color-info-rgb));
|
|
2
27
|
--color-current-rgb: var(--color-main-rgb);
|
|
3
28
|
--color-current-fg-rgb: var(--color-main-fg-rgb);
|
|
4
29
|
--color-accent-rgb: var(--color-primary-rgb);
|
|
@@ -1,28 +1,27 @@
|
|
|
1
1
|
:root, :host {
|
|
2
|
-
--color-
|
|
3
|
-
--color-current
|
|
4
|
-
--color-
|
|
5
|
-
--color-accent
|
|
6
|
-
--color-
|
|
7
|
-
--color-primary
|
|
8
|
-
--color-
|
|
9
|
-
--color-main
|
|
10
|
-
--color-main-
|
|
2
|
+
--color-scheme: light;
|
|
3
|
+
--color-current: var(--color-main);
|
|
4
|
+
--color-current-fg: var(--color-main-fg);
|
|
5
|
+
--color-accent: var(--color-primary);
|
|
6
|
+
--color-accent-fg: var(--color-primary-fg);
|
|
7
|
+
--color-primary: #3b82f6; /* color.blue.500 */
|
|
8
|
+
--color-primary-fg: var(--color-light);
|
|
9
|
+
--color-main: #171717; /* color.neutral.900 */
|
|
10
|
+
--color-main-fg: var(--color-body);
|
|
11
|
+
--color-main-primary: var(--color-main);
|
|
11
12
|
--color-main-secondary: color-mix(in sRGB, var(--color-main) 75%, var(--color-main-fg));
|
|
12
13
|
--color-main-tertiary: color-mix(in sRGB, var(--color-main) 50%, var(--color-main-fg));
|
|
13
|
-
--color-body:
|
|
14
|
-
--color-body-fg:
|
|
15
|
-
--color-body-primary:
|
|
14
|
+
--color-body: #fff; /* color.white */
|
|
15
|
+
--color-body-fg: var(--color-main);
|
|
16
|
+
--color-body-primary: var(--color-body);
|
|
16
17
|
--color-body-secondary: color-mix(in sRGB, var(--color-body) 95%, var(--color-body-fg));
|
|
17
18
|
--color-body-tertiary: color-mix(in sRGB, var(--color-body) 90%, var(--color-body-fg));
|
|
18
|
-
--color-light:
|
|
19
|
-
--color-light-fg:
|
|
20
|
-
--color-dark:
|
|
21
|
-
--color-dark-fg:
|
|
22
|
-
--color-success:
|
|
23
|
-
--color-error:
|
|
24
|
-
--color-warning:
|
|
25
|
-
--color-info:
|
|
26
|
-
|
|
27
|
-
color-scheme: light;
|
|
19
|
+
--color-light: #fff; /* color.white */
|
|
20
|
+
--color-light-fg: var(--color-dark);
|
|
21
|
+
--color-dark: #171717; /* color.neutral.900 */
|
|
22
|
+
--color-dark-fg: var(--color-light);
|
|
23
|
+
--color-success: #16a34a; /* color.green.600 */
|
|
24
|
+
--color-error: #dc2626; /* color.red.600 */
|
|
25
|
+
--color-warning: #eab308; /* color.yellow.500 */
|
|
26
|
+
--color-info: #0ea5e9; /* color.sky.500 */
|
|
28
27
|
}
|
|
@@ -1,20 +1,15 @@
|
|
|
1
1
|
.c-dialog {
|
|
2
|
-
--
|
|
3
|
-
--c-dialog-px: 1.5rem;
|
|
4
|
-
--c-dialog-width: 35rem;
|
|
5
|
-
--c-dialog-animation-duration: var(--duration);
|
|
6
|
-
|
|
7
|
-
animation: var(--c-dialog-animation-duration) ease 0s backwards 1 fade-in-down;
|
|
2
|
+
animation: var(--duration) ease 0s backwards 1 fade-in-down;
|
|
8
3
|
position: relative;
|
|
9
4
|
z-index: var(--z-20);
|
|
10
5
|
margin: auto;
|
|
11
6
|
background-color: var(--color-body-primary);
|
|
12
7
|
width: 100%;
|
|
13
|
-
max-width: var(--c-dialog-width);
|
|
8
|
+
max-width: var(--c-dialog-width, 35rem);
|
|
14
9
|
border-radius: var(--rounded-3xl);
|
|
15
|
-
padding: var(--c-dialog-py) var(--c-dialog-px);
|
|
10
|
+
padding: var(--c-dialog-py, 1.5rem) var(--c-dialog-px, 1.5rem);
|
|
16
11
|
|
|
17
12
|
:where(dialog:not([open])) & {
|
|
18
|
-
animation: var(--
|
|
13
|
+
animation: var(--duration) ease 0s forwards 1 fade-out-up;
|
|
19
14
|
}
|
|
20
15
|
}
|
package/src/components/field.css
CHANGED
package/src/libraries/dialog.css
CHANGED
|
@@ -1,27 +1,22 @@
|
|
|
1
1
|
.lib-dialog {
|
|
2
|
-
--lib-ripple-bg: color-mix(in sRGB, var(--color-dark) calc(var(--tw-bg-opacity, 0.8) * 100%), transparent);
|
|
3
|
-
--lib-dialog-py: 2rem;
|
|
4
|
-
--lib-dialog-px: 1.5rem;
|
|
5
|
-
--lib-dialog-animation-duration: var(--duration);
|
|
6
|
-
|
|
7
2
|
inset: 0;
|
|
8
3
|
z-index: var(--z-30);
|
|
9
4
|
position: fixed;
|
|
10
5
|
overflow: auto;
|
|
11
6
|
-webkit-overflow-scrolling: touch;
|
|
12
|
-
background-color: var(--lib-ripple-bg);
|
|
7
|
+
background-color: var(--lib-ripple-bg, color-mix(in sRGB, var(--color-dark) calc(var(--tw-bg-opacity, 0.8) * 100%), transparent));
|
|
13
8
|
overscroll-behavior: contain;
|
|
14
9
|
display: flex;
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
padding: var(--lib-dialog-py, 2rem) var(--lib-dialog-px, 1.5rem);
|
|
11
|
+
transition: var(--transition-background);
|
|
17
12
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
pointer-events: none;
|
|
13
|
+
&, &::backdrop {
|
|
14
|
+
visibility: hidden;
|
|
21
15
|
}
|
|
22
16
|
|
|
23
|
-
|
|
24
|
-
|
|
17
|
+
&:not([open]) {
|
|
18
|
+
background-color: transparent;
|
|
19
|
+
pointer-events: none;
|
|
25
20
|
}
|
|
26
21
|
|
|
27
22
|
.is-lib-dialog-open & {
|
|
@@ -30,6 +25,10 @@
|
|
|
30
25
|
}
|
|
31
26
|
|
|
32
27
|
.is-lib-dialog-open {
|
|
33
|
-
|
|
34
|
-
padding-
|
|
28
|
+
scrollbar-width: none;
|
|
29
|
+
padding-inline-end: var(--lib-dialog-scrollbar-width, 0);
|
|
30
|
+
|
|
31
|
+
&::-webkit-scrollbar {
|
|
32
|
+
display: none;
|
|
33
|
+
}
|
|
35
34
|
}
|
package/src/libraries/dialog.js
CHANGED
|
@@ -31,6 +31,7 @@ export const dismissDialog = async (selector, options = defaultOptions.close) =>
|
|
|
31
31
|
options.remove && selector.remove()
|
|
32
32
|
|
|
33
33
|
if (!document.querySelector('dialog[open]')) {
|
|
34
|
+
document.documentElement.style.removeProperty(defaultOptions.scrollbarWidthProperty)
|
|
34
35
|
document.documentElement.classList.remove(defaultOptions.openClass)
|
|
35
36
|
}
|
|
36
37
|
}
|
package/src/libraries/ripple.css
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
.lib-ripple {
|
|
2
|
-
--lib-ripple-animation-duration: 1s;
|
|
3
|
-
--lib-ripple-bg: color-mix(in sRGB, var(--color-body) calc(var(--tw-bg-opacity, 0.4) * 100%), transparent);
|
|
4
|
-
|
|
5
2
|
position: absolute;
|
|
6
|
-
background: var(--lib-ripple-bg);
|
|
3
|
+
background: var(--lib-ripple-bg, color-mix(in sRGB, var(--color-body) calc(var(--tw-bg-opacity, 0.4) * 100%), transparent));
|
|
7
4
|
border-radius: 50%;
|
|
8
5
|
transform: scale(0);
|
|
9
|
-
animation-duration: var(--lib-ripple-animation-duration);
|
|
6
|
+
animation-duration: var(--lib-ripple-animation-duration, 1s);
|
|
10
7
|
pointer-events: none;
|
|
11
8
|
}
|
package/src/main-rgb.css
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
.ui-badge
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
.ui-badge {
|
|
2
|
+
&:where(.bordered) {
|
|
3
|
+
border: var(--ui-badge-border-width, 1px) solid color-mix(in sRGB, var(--color-accent) var(--ui-badge-border-opacity, calc(var(--tw-border-opacity, 1) * 100%)), transparent);
|
|
4
|
+
padding-inline: calc(var(--ui-badge-px) - var(--ui-badge-border-width, 1px));
|
|
5
|
+
}
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
&:is(.bordered) {
|
|
8
|
+
--color-current: var(--color-accent);
|
|
9
|
+
--ui-badge-bg-opacity: 0%;
|
|
10
|
+
}
|
|
10
11
|
}
|
package/src/ui/badge/default.css
CHANGED
|
@@ -1,34 +1,30 @@
|
|
|
1
1
|
.ui-badge {
|
|
2
2
|
--color-current: var(--color-accent-fg);
|
|
3
|
-
--ui-badge-width: fit-content;
|
|
4
3
|
--ui-badge-height: 1.5rem;
|
|
5
4
|
--ui-badge-py: 0;
|
|
6
|
-
--ui-badge-px:
|
|
7
|
-
--ui-badge-
|
|
8
|
-
--ui-badge-font-size: var(--text-xs);
|
|
9
|
-
--ui-badge-font-weight: var(--font-normal);
|
|
10
|
-
--ui-badge-bg: color-mix(in sRGB, var(--color-accent) var(--ui-badge-bg-opacity), var(--ui-badge-bg-mix));
|
|
11
|
-
--ui-badge-bg-mix: transparent;
|
|
5
|
+
--ui-badge-px: 0.5rem;
|
|
6
|
+
--ui-badge-bg: color-mix(in sRGB, var(--color-accent) var(--ui-badge-bg-opacity), var(--ui-badge-bg-mix, transparent));
|
|
12
7
|
--ui-badge-bg-opacity: calc(var(--tw-bg-opacity, 1) * 100%);
|
|
13
8
|
--ui-badge-color: color-mix(in sRGB, var(--color-current) var(--ui-badge-color-opacity), transparent);
|
|
14
9
|
--ui-badge-color-opacity: calc(var(--tw-text-opacity, 1) * 100%);
|
|
15
|
-
--ui-badge-gap: var(--spacing-xs);
|
|
16
10
|
|
|
17
|
-
width: var(--ui-badge-width);
|
|
11
|
+
width: var(--ui-badge-width, auto);
|
|
18
12
|
height: var(--ui-badge-height);
|
|
19
13
|
padding: var(--ui-badge-py) var(--ui-badge-px);
|
|
20
|
-
border-radius: var(--ui-badge-border-radius);
|
|
21
|
-
font-
|
|
22
|
-
font-weight: var(--ui-badge-font-weight);
|
|
14
|
+
border-radius: var(--ui-badge-border-radius, var(--rounded-lg));
|
|
15
|
+
font-family: var(--ui-badge-font-family, inherit);
|
|
16
|
+
font-weight: var(--ui-badge-font-weight, inherit);
|
|
17
|
+
font-size: var(--ui-badge-font-size, var(--text-xs));
|
|
18
|
+
letter-spacing: var(--ui-badge-letter-spacing, inherit);
|
|
23
19
|
background-color: var(--ui-badge-bg);
|
|
24
20
|
color: var(--ui-badge-color);
|
|
25
21
|
display: inline-flex;
|
|
26
|
-
align-items: center;
|
|
27
22
|
text-align: center;
|
|
23
|
+
align-items: center;
|
|
28
24
|
justify-content: center;
|
|
29
25
|
white-space: nowrap;
|
|
30
26
|
flex-shrink: 0;
|
|
31
27
|
position: relative;
|
|
32
|
-
gap: var(--ui-badge-gap);
|
|
28
|
+
gap: var(--ui-badge-gap, var(--spacing-xs));
|
|
33
29
|
transition: var(--transition-opacity);
|
|
34
30
|
}
|
package/src/ui/badge/lg.css
CHANGED
package/src/ui/badge/muted.css
CHANGED
package/src/ui/badge/sm.css
CHANGED
package/src/ui/btn/bordered.css
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
.ui-btn
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
--ui-btn-active-bg-opacity: 20%;
|
|
7
|
-
--ui-btn-focus-outline-offset: -2px;
|
|
8
|
-
--ui-btn-bg-opacity: 0%;
|
|
9
|
-
--ui-btn-border-width: 1px;
|
|
10
|
-
--ui-btn-border-opacity: calc(var(--tw-border-opacity, 0.3) * 100%);
|
|
1
|
+
.ui-btn {
|
|
2
|
+
&:where(.bordered) {
|
|
3
|
+
border: var(--ui-btn-border-width, 1px) solid color-mix(in sRGB, var(--color-accent) var(--ui-btn-border-opacity, calc(var(--tw-border-opacity, 0.3) * 100%)), transparent);
|
|
4
|
+
padding-inline: calc(var(--ui-btn-px) - var(--ui-btn-border-width, 1px));
|
|
5
|
+
}
|
|
11
6
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
7
|
+
&:is(.bordered) {
|
|
8
|
+
--color-current: var(--color-accent);
|
|
9
|
+
--ui-btn-hover-bg-mix: transparent;
|
|
10
|
+
--ui-btn-hover-bg-opacity: 10%;
|
|
11
|
+
--ui-btn-active-bg-mix: transparent;
|
|
12
|
+
--ui-btn-active-bg-opacity: 20%;
|
|
13
|
+
--ui-btn-focus-outline-offset: -2px;
|
|
14
|
+
--ui-btn-bg-opacity: 0%;
|
|
15
|
+
}
|
|
15
16
|
}
|
package/src/ui/btn/default.css
CHANGED
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
--ui-btn-color: color-mix(in sRGB, var(--color-current) var(--ui-btn-color-opacity), transparent);
|
|
9
9
|
--ui-btn-color-opacity: calc(var(--tw-text-opacity, 1) * 100%);
|
|
10
10
|
|
|
11
|
-
width: var(--ui-btn-width,
|
|
11
|
+
width: var(--ui-btn-width, auto);
|
|
12
12
|
height: var(--ui-btn-height);
|
|
13
13
|
padding: var(--ui-btn-py) var(--ui-btn-px);
|
|
14
14
|
border-radius: var(--ui-btn-border-radius, var(--rounded));
|
|
15
|
-
font-size: var(--ui-btn-font-size,
|
|
15
|
+
font-size: var(--ui-btn-font-size, var(--text-sm));
|
|
16
16
|
font-weight: var(--ui-btn-font-weight, var(--font-medium));
|
|
17
17
|
letter-spacing: var(--ui-btn-letter-spacing, 0);
|
|
18
18
|
background-color: var(--ui-btn-bg);
|
|
@@ -20,15 +20,13 @@
|
|
|
20
20
|
user-select: none;
|
|
21
21
|
overflow: hidden;
|
|
22
22
|
display: inline-flex;
|
|
23
|
+
text-align: center;
|
|
23
24
|
align-items: center;
|
|
24
25
|
justify-content: center;
|
|
25
26
|
white-space: nowrap;
|
|
26
27
|
position: relative;
|
|
27
28
|
flex-shrink: 0;
|
|
28
29
|
z-index: 0;
|
|
29
|
-
transition-property: var(--transition), outline-color, outline-offset;
|
|
30
|
-
transition-timing-function: var(--ease-in-out);
|
|
31
|
-
transition-duration: var(--duration);
|
|
32
30
|
gap: var(--ui-btn-gap, 0.375rem);
|
|
33
31
|
outline: var(--ui-btn-outline-width, 2px) solid transparent;
|
|
34
32
|
outline-offset: 0;
|
|
@@ -1,28 +1,34 @@
|
|
|
1
|
-
.ui-btn
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
.ui-btn {
|
|
2
|
+
&:where(.gradient-bordered) {
|
|
3
|
+
&::before {
|
|
4
|
+
content: "";
|
|
5
|
+
position: absolute;
|
|
6
|
+
background-color: color-mix(in sRGB, var(--color-body) calc(100% - var(--ui-btn-bg-opacity)), transparent);
|
|
7
|
+
inset: var(--ui-btn-border-width);
|
|
8
|
+
border-radius: calc(var(--ui-btn-border-radius, var(--rounded)) / 1.25);
|
|
9
|
+
z-index: -1;
|
|
10
|
+
transition: var(--transition-background);
|
|
11
|
+
}
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
border-radius: calc(var(--ui-btn-border-radius, var(--rounded)) / 1.25);
|
|
17
|
-
z-index: -1;
|
|
18
|
-
transition: var(--transition-background);
|
|
13
|
+
&:where(.hover-fill) {
|
|
14
|
+
&::before {
|
|
15
|
+
background-color: color-mix(in sRGB, var(--color-body) var(--ui-btn-bg-opacity), transparent);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
19
18
|
}
|
|
20
19
|
|
|
21
|
-
&:
|
|
22
|
-
--ui-btn-
|
|
20
|
+
&:is(.gradient-bordered) {
|
|
21
|
+
--ui-btn-border-width: 2px;
|
|
22
|
+
--ui-btn-hover-bg-mix: transparent;
|
|
23
|
+
--ui-btn-hover-bg-opacity: 10%;
|
|
24
|
+
--ui-btn-active-bg-mix: transparent;
|
|
25
|
+
--ui-btn-active-bg-opacity: 20%;
|
|
26
|
+
--ui-btn-focus-outline-offset: 0;
|
|
27
|
+
--ui-btn-bg-opacity: 0%;
|
|
28
|
+
--color-current: var(--color-main);
|
|
23
29
|
|
|
24
|
-
|
|
25
|
-
|
|
30
|
+
&:is(.hover-fill) {
|
|
31
|
+
--ui-btn-bg-opacity: 100%;
|
|
26
32
|
}
|
|
27
33
|
}
|
|
28
34
|
}
|
package/src/ui/btn/raised.css
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
.ui-btn {
|
|
2
2
|
&:where(.raised) {
|
|
3
3
|
border: var(--ui-btn-border-width) solid color-mix(in sRGB, var(--color-accent) var(--ui-btn-border-opacity), var(--color-current));
|
|
4
|
-
padding-
|
|
5
|
-
padding-right: calc(var(--ui-btn-px) - var(--ui-btn-border-width));
|
|
4
|
+
padding-inline: calc(var(--ui-btn-px) - var(--ui-btn-border-width));
|
|
6
5
|
}
|
|
7
6
|
|
|
8
7
|
&:is(.raised) {
|
package/src/ui/btn/wide.css
CHANGED