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.
Files changed (61) hide show
  1. package/dist/main-rgb.css +1 -1
  2. package/dist/main.css +1 -1
  3. package/dist/tailwind.css +1 -1
  4. package/package.json +17 -17
  5. package/src/base/config/font.css +11 -0
  6. package/src/base/{icons.css → config/mask.css} +4 -4
  7. package/src/base/config/rounded.css +14 -0
  8. package/src/base/config/spacing.css +15 -0
  9. package/src/base/config/text.css +15 -0
  10. package/src/base/config/transition.css +19 -0
  11. package/src/base/config/z.css +7 -0
  12. package/src/base/config.css +7 -86
  13. package/src/base/default.css +5 -1
  14. package/src/base/index.css +0 -3
  15. package/src/base/reset.css +10 -7
  16. package/src/base/tailwind/container.css +9 -4
  17. package/src/base/tailwind/utilities.css +8 -24
  18. package/src/base/theme/dark-rgb.css +3 -0
  19. package/src/base/theme/dark.css +3 -4
  20. package/src/base/theme/default-rgb.css +25 -0
  21. package/src/base/theme/default.css +21 -22
  22. package/src/components/dialog.css +4 -9
  23. package/src/components/field.css +1 -3
  24. package/src/libraries/dialog.css +14 -15
  25. package/src/libraries/dialog.js +1 -0
  26. package/src/libraries/ripple.css +2 -5
  27. package/src/main-rgb.css +2 -0
  28. package/src/ui/badge/bordered-rgb.css +1 -1
  29. package/src/ui/badge/bordered.css +9 -8
  30. package/src/ui/badge/default.css +10 -14
  31. package/src/ui/badge/lg.css +1 -1
  32. package/src/ui/badge/muted.css +1 -1
  33. package/src/ui/badge/sm.css +1 -1
  34. package/src/ui/btn/bordered.css +14 -13
  35. package/src/ui/btn/default.css +3 -5
  36. package/src/ui/btn/gradient-bordered.css +27 -21
  37. package/src/ui/btn/interactive.css +4 -0
  38. package/src/ui/btn/raised.css +1 -2
  39. package/src/ui/btn/wide.css +1 -2
  40. package/src/ui/check.css +27 -53
  41. package/src/ui/control/color.css +5 -8
  42. package/src/ui/control/default.css +35 -45
  43. package/src/ui/control/file.css +9 -12
  44. package/src/ui/control/floating-interactive.css +12 -0
  45. package/src/ui/control/floating.css +22 -26
  46. package/src/ui/control/icon.css +15 -16
  47. package/src/ui/control/index.css +1 -1
  48. package/src/ui/control/select.css +6 -6
  49. package/src/ui/image.css +8 -19
  50. package/src/ui/info.css +6 -5
  51. package/src/ui/label.css +6 -5
  52. package/src/ui/notice.css +7 -15
  53. package/src/ui/progress/default.css +4 -8
  54. package/src/ui/progress/lg.css +1 -1
  55. package/src/ui/progress/sm.css +1 -1
  56. package/src/ui/switch.css +28 -41
  57. package/src/ui/title/default.css +1 -1
  58. package/tailwind.config.js +5 -1
  59. package/utils/tailwind.cjs +71 -19
  60. package/utils/tailwind.js +63 -18
  61. package/src/ui/control/floating-focus.css +0 -12
@@ -1,5 +1,5 @@
1
1
  /***
2
- The new CSS reset - version 1.11.1 (last updated 24.10.2023)
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] min(100% - (var(--container-padding) * 2), var(--container-width)) [container-end]
16
- minmax(0, var(--container-lg)) [container-lg-end]
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
  }
@@ -1,4 +1,7 @@
1
1
  :root.dark, :host.dark {
2
+ --color-scheme: dark;
3
+ --color-main: rgb(var(--color-main-rgb));
4
+ --color-body: rgb(var(--color-body-rgb));
2
5
  --color-main-rgb: 255 255 255;
3
6
  --color-body-rgb: 25 26 27;
4
7
  }
@@ -1,6 +1,5 @@
1
1
  :root.dark, :host.dark {
2
- --color-main: rgb(var(--color-main-rgb));
3
- --color-body: rgb(var(--color-body-rgb));
4
-
5
- color-scheme: dark;
2
+ --color-scheme: dark;
3
+ --color-main: var(--color-light);
4
+ --color-body: var(--color-dark);
6
5
  }
@@ -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-current: rgb(var(--color-current-rgb));
3
- --color-current-fg: rgb(var(--color-current-fg-rgb));
4
- --color-accent: rgb(var(--color-accent-rgb));
5
- --color-accent-fg: rgb(var(--color-accent-fg-rgb));
6
- --color-primary: rgb(var(--color-primary-rgb));
7
- --color-primary-fg: rgb(var(--color-primary-fg-rgb));
8
- --color-main: var(--color-main-primary);
9
- --color-main-fg: rgb(var(--color-main-fg-rgb));
10
- --color-main-primary: rgb(var(--color-main-rgb));
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: var(--color-body-primary);
14
- --color-body-fg: rgb(var(--color-body-fg-rgb));
15
- --color-body-primary: rgb(var(--color-body-rgb));
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: rgb(var(--color-light-rgb));
19
- --color-light-fg: rgb(var(--color-light-fg-rgb));
20
- --color-dark: rgb(var(--color-dark-rgb));
21
- --color-dark-fg: rgb(var(--color-dark-fg-rgb));
22
- --color-success: rgb(var(--color-success-rgb));
23
- --color-error: rgb(var(--color-error-rgb));
24
- --color-warning: rgb(var(--color-warning-rgb));
25
- --color-info: rgb(var(--color-info-rgb));
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
- --c-dialog-py: 1.5rem;
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(--c-dialog-animation-duration) ease 0s forwards 1 fade-out-up;
13
+ animation: var(--duration) ease 0s forwards 1 fade-out-up;
19
14
  }
20
15
  }
@@ -1,9 +1,7 @@
1
1
  .c-field {
2
- --c-field-gap: 0.5rem;
3
-
4
2
  display: flex;
5
3
  flex-direction: column;
6
- gap: var(--c-field-gap);
4
+ gap: var(--c-field-gap, 0.5rem);
7
5
 
8
6
  .validated &:has(:invalid) {
9
7
  & :where(.ui-info[hidden]) {
@@ -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
- visibility: hidden;
16
- padding: var(--lib-dialog-py) var(--lib-dialog-px);
10
+ padding: var(--lib-dialog-py, 2rem) var(--lib-dialog-px, 1.5rem);
11
+ transition: var(--transition-background);
17
12
 
18
- &:not([open]) {
19
- animation: var(--lib-dialog-animation-duration) ease 0s forwards 1 fade-out;
20
- pointer-events: none;
13
+ &, &::backdrop {
14
+ visibility: hidden;
21
15
  }
22
16
 
23
- &[open] {
24
- animation: var(--lib-dialog-animation-duration) ease 0s backwards 1 fade-in;
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
- overflow: hidden;
34
- padding-right: var(--lib-dialog-scrollbar-width, 0);
28
+ scrollbar-width: none;
29
+ padding-inline-end: var(--lib-dialog-scrollbar-width, 0);
30
+
31
+ &::-webkit-scrollbar {
32
+ display: none;
33
+ }
35
34
  }
@@ -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
  }
@@ -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,3 +1,5 @@
1
+ @import "base/theme/default-rgb.css";
2
+ @import "base/theme/dark-rgb.css";
1
3
  @import "ui/btn/default-rgb.css";
2
4
  @import "ui/btn/bordered-rgb.css";
3
5
  @import "ui/btn/gradient-bordered-rgb.css";
@@ -1,3 +1,3 @@
1
1
  .ui-badge:where(.bordered) {
2
- border: var(--ui-badge-border-width) solid rgb(var(--color-accent-rgb) / var(--ui-badge-border-opacity));
2
+ border-color: rgb(var(--color-accent-rgb) / var(--ui-badge-border-opacity));
3
3
  }
@@ -1,10 +1,11 @@
1
- .ui-badge:where(.bordered) {
2
- --color-current: var(--color-accent);
3
- --ui-badge-bg-opacity: 0%;
4
- --ui-badge-border-width: 1px;
5
- --ui-badge-border-opacity: calc(var(--tw-border-opacity, 1) * 100%);
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
- border: var(--ui-badge-border-width) solid color-mix(in sRGB, var(--color-accent) var(--ui-badge-border-opacity), transparent);
8
- padding-left: calc(var(--ui-badge-px) - var(--ui-badge-border-width));
9
- padding-right: calc(var(--ui-badge-px) - var(--ui-badge-border-width));
7
+ &:is(.bordered) {
8
+ --color-current: var(--color-accent);
9
+ --ui-badge-bg-opacity: 0%;
10
+ }
10
11
  }
@@ -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: var(--spacing-sm);
7
- --ui-badge-border-radius: var(--rounded-lg);
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-size: var(--ui-badge-font-size);
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
  }
@@ -1,3 +1,3 @@
1
- .ui-badge:where(.lg) {
1
+ .ui-badge:is(.lg) {
2
2
  --ui-badge-height: 1.75rem;
3
3
  }
@@ -1,4 +1,4 @@
1
- .ui-badge:where(.muted) {
1
+ .ui-badge:is(.muted) {
2
2
  --color-current: var(--color-accent);
3
3
  --ui-badge-bg-opacity: 10%;
4
4
  }
@@ -1,4 +1,4 @@
1
- .ui-badge:where(.sm) {
1
+ .ui-badge:is(.sm) {
2
2
  --ui-badge-height: 1.25rem;
3
3
  --ui-badge-font-size: 0.625rem;
4
4
  }
@@ -1,15 +1,16 @@
1
- .ui-btn:where(.bordered) {
2
- --color-current: var(--color-accent);
3
- --ui-btn-hover-bg-mix: transparent;
4
- --ui-btn-hover-bg-opacity: 10%;
5
- --ui-btn-active-bg-mix: transparent;
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
- border: var(--ui-btn-border-width) solid color-mix(in sRGB, var(--color-accent) var(--ui-btn-border-opacity), transparent);
13
- padding-left: calc(var(--ui-btn-px) - var(--ui-btn-border-width));
14
- padding-right: calc(var(--ui-btn-px) - var(--ui-btn-border-width));
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
  }
@@ -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, fit-content);
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, 0.875rem);
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:is(.gradient-bordered) {
2
- --ui-btn-border-width: 2px;
3
- --ui-btn-hover-bg-mix: transparent;
4
- --ui-btn-hover-bg-opacity: 10%;
5
- --ui-btn-active-bg-mix: transparent;
6
- --ui-btn-active-bg-opacity: 20%;
7
- --ui-btn-focus-outline-offset: 0;
8
- --ui-btn-bg-opacity: 0%;
9
- --color-current: var(--color-main);
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
- &::before {
12
- content: "";
13
- position: absolute;
14
- background-color: color-mix(in sRGB, var(--color-body) calc(100% - var(--ui-btn-bg-opacity)), transparent);
15
- inset: var(--ui-btn-border-width);
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
- &:where(.hover-fill) {
22
- --ui-btn-bg-opacity: 100%;
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
- &::before {
25
- background-color: color-mix(in sRGB, var(--color-body) var(--ui-btn-bg-opacity), transparent);
30
+ &:is(.hover-fill) {
31
+ --ui-btn-bg-opacity: 100%;
26
32
  }
27
33
  }
28
34
  }
@@ -1,4 +1,8 @@
1
1
  .ui-btn {
2
+ transition-property: var(--transition);
3
+ transition-timing-function: var(--ease-in-out);
4
+ transition-duration: var(--duration);
5
+
2
6
  &:is([href], button, [role="button"], input, .interactive) {
3
7
  cursor: pointer;
4
8
 
@@ -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-left: calc(var(--ui-btn-px) - var(--ui-btn-border-width));
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) {
@@ -1,4 +1,3 @@
1
1
  .ui-btn:where(.wide) {
2
- padding-left: calc(var(--ui-btn-px) * 1.5);
3
- padding-right: calc(var(--ui-btn-px) * 1.5);
2
+ padding-inline: calc(var(--ui-btn-px) * 1.5);
4
3
  }