@newlogic-digital/ui 3.4.2 → 3.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 (144) hide show
  1. package/README.md +10 -14
  2. package/package.json +12 -11
  3. package/src/data/main.json +2 -7
  4. package/src/emails/{templates/Content.twig → templates.test/Content.latte} +10 -2
  5. package/src/emails/{templates/Header.twig → templates.test/Header.latte} +1 -1
  6. package/src/emails/{templates/Layout.twig → templates.test/Layout.latte} +1 -1
  7. package/src/icons.svg +34 -28
  8. package/src/scripts/Components/CookieConsent.js +22 -27
  9. package/src/scripts/Layout/Header.js +15 -13
  10. package/src/scripts/Layout/Main.js +28 -25
  11. package/src/scripts/Libraries/+.js +2 -4
  12. package/src/scripts/Libraries/Dialog.js +11 -9
  13. package/src/scripts/Libraries/Drawer.js +21 -24
  14. package/src/scripts/Libraries/Form.js +7 -14
  15. package/src/scripts/Libraries/Naja.js +5 -7
  16. package/src/scripts/Libraries/ReCaptcha.js +7 -12
  17. package/src/scripts/Libraries/Ripple.js +6 -22
  18. package/src/scripts/Libraries/Script.js +1 -2
  19. package/src/scripts/Libraries/Slider.js +160 -0
  20. package/src/scripts/Libraries/Stimulus.js +0 -1
  21. package/src/scripts/Libraries/Swup.js +38 -10
  22. package/src/scripts/Libraries/Tippy.js +17 -20
  23. package/src/scripts/Ui/+.js +3 -3
  24. package/src/scripts/Ui/Check.js +8 -0
  25. package/src/scripts/Ui/Control.js +186 -0
  26. package/src/scripts/Ui/ControlSelect.js +24 -0
  27. package/src/scripts/Ui/Text.js +8 -10
  28. package/src/scripts/Utils/Functions/+.js +3 -2
  29. package/src/scripts/Utils/Functions/importScript.js +1 -1
  30. package/src/scripts/Utils/Functions/importStyle.js +1 -1
  31. package/src/scripts/Utils/Functions/inputStep.js +9 -0
  32. package/src/scripts/Utils/Functions/inputValidity.js +57 -0
  33. package/src/scripts/Utils/Functions/loadStimulus.js +10 -10
  34. package/src/scripts/Utils/Functions/replaceScript.js +4 -0
  35. package/src/scripts/Utils/Functions/replaceTag.js +1 -5
  36. package/src/scripts/Utils/cdn.js +1 -2
  37. package/src/scripts/Utils/global.js +1 -1
  38. package/src/styles/Components/+.css +1 -1
  39. package/src/styles/Components/CookieConsent.css +22 -25
  40. package/src/styles/Components/Dialog/Default.css +8 -25
  41. package/src/styles/Components/Dropdown/Default.css +6 -3
  42. package/src/styles/Components/Field.css +1 -0
  43. package/src/styles/Layout/Header.css +13 -17
  44. package/src/styles/Layout/Main.css +8 -75
  45. package/src/styles/Layout/Nav.css +31 -27
  46. package/src/styles/Libraries/+.css +1 -2
  47. package/src/styles/Libraries/Datepicker.css +38 -229
  48. package/src/styles/Libraries/Dialog.css +1 -35
  49. package/src/styles/Libraries/Drawer.css +15 -21
  50. package/src/styles/Libraries/Hint.css +86 -101
  51. package/src/styles/Libraries/Pickr.css +13 -0
  52. package/src/styles/Libraries/Ripple.css +1 -16
  53. package/src/styles/Libraries/Tippy.css +25 -39
  54. package/src/styles/Ui/+.css +6 -5
  55. package/src/styles/Ui/Badge.css +7 -82
  56. package/src/styles/Ui/Btn.css +13 -226
  57. package/src/styles/Ui/Check.css +1 -0
  58. package/src/styles/Ui/Control.css +47 -0
  59. package/src/styles/Ui/ControlSelect.css +66 -0
  60. package/src/styles/Ui/Dot.css +22 -0
  61. package/src/styles/Ui/Group.css +1 -0
  62. package/src/styles/Ui/Heading.css +3 -22
  63. package/src/styles/Ui/Image.css +1 -17
  64. package/src/styles/Ui/Info.css +1 -0
  65. package/src/styles/Ui/Label.css +1 -14
  66. package/src/styles/Ui/Link.css +2 -41
  67. package/src/styles/Ui/Notice.css +1 -47
  68. package/src/styles/Ui/Progress.css +1 -56
  69. package/src/styles/Ui/Switch.css +1 -70
  70. package/src/styles/Ui/Text.css +4 -250
  71. package/src/styles/Ui/Title.css +5 -13
  72. package/src/styles/Utils/+.css +8 -10
  73. package/src/styles/Utils/breakpoints.css +1 -9
  74. package/src/styles/Utils/config.css +5 -0
  75. package/src/styles/Utils/default.css +8 -26
  76. package/src/styles/Utils/icons.css +3 -7
  77. package/src/styles/Utils/keyframes.css +1 -182
  78. package/src/styles/Utils/{tailwind/utilities.css → tailwind.css} +32 -30
  79. package/src/styles/Utils/theme/main.css +14 -23
  80. package/src/styles/main.css +19 -14
  81. package/src/styles/tinymce.css +34 -0
  82. package/src/templates/Components/CookieConsent.latte +28 -0
  83. package/src/templates/Components/Dialogs/{Basic.twig → Basic.latte} +9 -9
  84. package/src/templates/Layout/Footer.latte +0 -0
  85. package/src/templates/Layout/{Header.twig → Header.latte} +15 -17
  86. package/src/templates/Layout/Main.latte +62 -0
  87. package/src/templates/Sections/Gdpr.latte +127 -0
  88. package/src/templates/Sections/Site.latte +141 -0
  89. package/src/templates/Sections/Ui/Docs/@intro.html +13 -62
  90. package/src/templates/Sections/Ui/Docs/@nav.html +41 -92
  91. package/src/templates/Sections/Ui/Docs/@styles.html +2 -6
  92. package/src/templates/Sections/Ui/Docs/Default.latte +1059 -0
  93. package/src/templates/Sections/Ui/Icons.html +11 -9
  94. package/src/templates/Sections/Ui/Intro.html +66 -37
  95. package/src/templates/Sections/Ui.latte +8 -0
  96. package/src/templates/Ui/+.latte +5 -0
  97. package/src/templates/Ui/Check.latte +7 -0
  98. package/src/templates/Ui/Control.latte +9 -0
  99. package/src/templates/Ui/ControlDate.latte +14 -0
  100. package/src/templates/Ui/ControlSelect.latte +9 -0
  101. package/src/templates/Ui/ControlTime.latte +14 -0
  102. package/src/templates/Utils/sections.latte +3 -0
  103. package/src/views/dialog/basic.json.latte +5 -0
  104. package/src/views/dropdown/{tippy.json.twig → tippy.json.latte} +7 -4
  105. package/src/views/email/email.latte +6 -0
  106. package/src/views/email/email.test.latte +6 -0
  107. package/src/views/gdpr.json +1 -1
  108. package/src/views/index.json +1 -1
  109. package/src/views/site.json +11 -0
  110. package/src/views/ui-icons.json +1 -1
  111. package/src/views/ui.json +1 -1
  112. package/vite.config.js +2 -8
  113. package/src/scripts/Libraries/Anchor.js +0 -35
  114. package/src/scripts/Libraries/NativeSlider.js +0 -138
  115. package/src/scripts/Libraries/Tabs.js +0 -16
  116. package/src/scripts/Ui/Checkbox.js +0 -10
  117. package/src/scripts/Ui/Input.js +0 -259
  118. package/src/scripts/Ui/Select.js +0 -53
  119. package/src/scripts/Utils/Functions/checkValidity.js +0 -44
  120. package/src/scripts/Utils/Functions/dataValue.js +0 -52
  121. package/src/styles/Components/Form/+.css +0 -1
  122. package/src/styles/Components/Form/CookieConsent.css +0 -31
  123. package/src/styles/Libraries/NativeSlider.css +0 -60
  124. package/src/styles/Libraries/Tabs.css +0 -19
  125. package/src/styles/Ui/Checkbox.css +0 -150
  126. package/src/styles/Ui/Icon.css +0 -33
  127. package/src/styles/Ui/Input.css +0 -467
  128. package/src/styles/Ui/Radio.css +0 -4
  129. package/src/styles/Ui/Select.css +0 -137
  130. package/src/styles/Utils/normalize.css +0 -223
  131. package/src/styles/Utils/tailwind/+.css +0 -3
  132. package/src/styles/Utils/tailwind/base.css +0 -3
  133. package/src/styles/Utils/tailwind/gutters.css +0 -346
  134. package/src/styles/Utils/vars.css +0 -91
  135. package/src/styles/Utils/vendor.css +0 -2
  136. package/src/templates/Components/CookieConsent.twig +0 -30
  137. package/src/templates/Layout/Main.twig +0 -49
  138. package/src/templates/Sections/Gdpr.twig +0 -64
  139. package/src/templates/Sections/Ui/Docs/Default.twig +0 -1600
  140. package/src/templates/Sections/Ui.twig +0 -8
  141. package/src/templates/Utils/sections.twig +0 -3
  142. package/src/views/dialog/basic.json.twig +0 -3
  143. package/src/views/email/email.twig +0 -6
  144. /package/src/{templates/Layout/Footer.twig → emails/templates/.gitkeep} +0 -0
@@ -1,226 +1,13 @@
1
- .ui-btn {
2
- --ui-btn-width: auto;
3
- --ui-btn-height: 2.375rem;
4
- --ui-btn-py: 0.375rem;
5
- --ui-btn-px: 1rem;
6
- --ui-btn-size: 0.875rem;
7
- --ui-btn-radius: var(--radius);
8
- --ui-btn-weight: var(--font-medium);
9
- --ui-btn-bg-opacity: var(--tw-bg-opacity, 1);
10
- --ui-btn-text-opacity: var(--tw-text-opacity, 1);
11
- --ui-btn-bg: rgb(var(--color-accent) / var(--ui-btn-bg-opacity));
12
- --ui-btn-color: rgb(var(--color-light) / var(--ui-btn-text-opacity));
13
- --ui-btn-hover-opacity: 0.2;
14
- --ui-btn-outline-width: 2px;
15
- --ui-btn-outline-opacity: 0.5;
16
- --ui-btn-icon-size: 1.125rem;
17
- --ui-btn-icon-offset: calc((var(--ui-btn-py) / 1) * -1);
18
-
19
- display: inline-flex;
20
- align-items: center;
21
- text-align: center;
22
- justify-content: center;
23
- cursor: pointer;
24
- overflow: hidden;
25
- position: relative;
26
- z-index: 1;
27
- white-space: nowrap;
28
- flex-shrink: 0;
29
- font-size: var(--ui-btn-size);
30
- font-weight: var(--ui-btn-weight);
31
- width: var(--ui-btn-width);
32
- height: var(--ui-btn-height);
33
- padding: var(--ui-btn-py) var(--ui-btn-px);
34
- border-radius: var(--ui-btn-radius);
35
- transition: var(--transition-opacity), var(--transition-background), var(--transition-color);
36
- background-color: var(--ui-btn-bg);
37
- color: var(--ui-btn-color);
38
-
39
- @nest .dark &.accent-dark {
40
- --ui-btn-color: rgb(var(--color-dark));
41
- --color-accent: var(--color-light);
42
- }
43
-
44
- &:--theme-light {
45
- --ui-btn-color: rgb(var(--color-light) / var(--tw-text-opacity, 1));
46
- }
47
-
48
- &:--theme-dark {
49
- --ui-btn-color: rgb(var(--color-dark) / var(--tw-text-opacity, 1));
50
- }
51
-
52
- &::before {
53
- position: absolute;
54
- inset: 0;
55
- width: 100%;
56
- height: 100%;
57
- content: "";
58
- background-color: var(--ui-btn-color);
59
- z-index: -1;
60
- opacity: 0;
61
- transition: var(--transition-opacity);
62
-
63
- @nest .no-touch :is(:hover, :focus-visible)&, :is(:--state-active)& {
64
- opacity: var(--ui-btn-hover-opacity);
65
- }
66
- }
67
-
68
- & > svg {
69
- width: 1em;
70
- height: 1em;
71
- }
72
-
73
- & > [class^="icon"] {
74
- font-size: var(--ui-btn-icon-size);
75
-
76
- &.icon-l {
77
- &:not([class*="mr-"]) {
78
- margin-right: var(--ui-btn-py);
79
- margin-left: var(--ui-btn-icon-offset);
80
- }
81
- }
82
-
83
- &.icon-r {
84
- &:not([class*="ml-"]) {
85
- margin-left: var(--ui-btn-py);
86
- margin-right: var(--ui-btn-icon-offset);
87
- }
88
-
89
- order: 1;
90
- }
91
- }
92
-
93
- &[disabled] {
94
- pointer-events: none;
95
-
96
- &::before {
97
- opacity: 0.5;
98
- }
99
- }
100
-
101
- &:--type-text {
102
- @nest :not(:hover, :focus-visible, :--state-active)& {
103
- --ui-btn-color: currentColor;
104
-
105
- background-color: transparent;
106
- }
107
- }
108
-
109
- &:--type-outline {
110
- --ui-btn-color: rgb(var(--color-current));
111
- --ui-btn-hover-opacity: 0.1;
112
-
113
- background-color: transparent;
114
-
115
- &::before {
116
- background-color: var(--ui-btn-bg);
117
- }
118
-
119
- &::after {
120
- position: absolute;
121
- inset: 0;
122
- width: 100%;
123
- height: 100%;
124
- content: "";
125
- background-color: transparent;
126
- border: var(--ui-btn-outline-width) solid var(--ui-btn-bg);
127
- box-sizing: border-box;
128
- opacity: var(--ui-btn-outline-opacity);
129
- border-radius: var(--ui-btn-radius);
130
- }
131
- }
132
-
133
- &:--type-square, &:--type-circle {
134
- --ui-btn-py: var(--ui-btn-py);
135
- --ui-btn-width: var(--ui-btn-height);
136
- }
137
-
138
- &:--type-circle {
139
- border-radius: 50%;
140
- }
141
-
142
- &:--size-sm {
143
- --ui-btn-height: 2.25rem;
144
- --ui-btn-px: 1rem;
145
- }
146
-
147
- &:--size-lg {
148
- --ui-btn-icon-size: 1.5rem;
149
- --ui-btn-height: 3rem;
150
- --ui-btn-px: 1.25rem;
151
- }
152
-
153
- &:--state-loading {
154
- pointer-events: none;
155
- color: transparent;
156
-
157
- & > * {
158
- opacity: 0;
159
- }
160
-
161
- &::before {
162
- z-index: 1;
163
- width: 1rem;
164
- height: 1rem;
165
- content: "";
166
- background-color: transparent;
167
- border: 2px solid var(--ui-btn-color);
168
- border-right-color: transparent;
169
- border-radius: 50%;
170
- animation: spin 0.45s infinite linear;
171
- position: absolute;
172
- margin-left: -0.625rem;
173
- margin-top: -0.625rem;
174
- left: 50%;
175
- top: 50%;
176
- opacity: 1 !important;
177
- }
178
- }
179
-
180
- @media (--media-m) {
181
- &:--type-square-m, &:--type-circle-m {
182
- --ui-btn-py: var(--ui-btn-py);
183
- --ui-btn-width: var(--ui-btn-height);
184
-
185
- & > * {
186
- margin: 0 !important;
187
- }
188
- }
189
-
190
- &:--type-circle-m {
191
- border-radius: 50%;
192
- }
193
- }
194
- }
195
-
196
- .ui-btn-group {
197
- display: flex;
198
-
199
- & .ui-btn {
200
- &:not(:last-of-type) {
201
- &, &::after {
202
- border-top-right-radius: 0;
203
- border-bottom-right-radius: 0;
204
- }
205
- }
206
-
207
- &:not(:first-of-type) {
208
- &, &::after {
209
- border-top-left-radius: 0;
210
- border-bottom-left-radius: 0;
211
- }
212
-
213
- &::after {
214
- border-left: 0;
215
- }
216
-
217
- &, &:--theme-light {
218
- box-shadow: -1px 0 rgb(var(--color-light) / var(--ui-btn-hover-opacity));
219
- }
220
-
221
- &:--theme-dark {
222
- box-shadow: -1px 0 rgb(var(--color-dark) / var(--ui-btn-hover-opacity));
223
- }
224
- }
225
- }
226
- }
1
+ @import "winduum/src/ui/btn/default.css";
2
+ @import "winduum/src/ui/btn/sm.css";
3
+ @import "winduum/src/ui/btn/lg.css";
4
+ @import "winduum/src/ui/btn/loading.css";
5
+ @import "winduum/src/ui/btn/wide.css";
6
+ @import "winduum/src/ui/btn/bordered.css";
7
+ @import "winduum/src/ui/btn/hover-fill.css";
8
+ @import "winduum/src/ui/btn/gradient.css";
9
+ @import "winduum/src/ui/btn/gradient-bordered.css";
10
+ @import "winduum/src/ui/btn/muted.css";
11
+ @import "winduum/src/ui/btn/raised.css";
12
+ @import "winduum/src/ui/btn/square.css";
13
+ @import "winduum/src/ui/btn/circle.css";
@@ -0,0 +1 @@
1
+ @import "winduum/src/ui/check.css";
@@ -0,0 +1,47 @@
1
+ @import "winduum/src/ui/control/default.css";
2
+ @import "winduum/src/ui/control/file.css";
3
+ @import "winduum/src/ui/control/select.css";
4
+ @import "winduum/src/ui/control/icon.css";
5
+ @import "winduum/src/ui/control/floating.css";
6
+
7
+ .ui-control {
8
+ &.active label,
9
+ :where(input, textarea):is(:focus, [placeholder]) ~ label,
10
+ :where(select):is([data-placeholder]) ~ label,
11
+ &:has(.-active-) label {
12
+ transform: var(--ui-control-floating-label-focus-transform);
13
+ opacity: var(--ui-control-floating-label-focus-opacity);
14
+ }
15
+
16
+ &:has(label):not(.active) select:not([data-placeholder]) {
17
+ font-size: 0;
18
+
19
+ & option {
20
+ font-size: var(--ui-control-font-size);
21
+ }
22
+ }
23
+
24
+ :where(.color) {
25
+ width: var(--ui-control-icon-font-size);
26
+ height: var(--ui-control-icon-font-size);
27
+ border-radius: 50%;
28
+ overflow: hidden;
29
+ display: block;
30
+ border: 1px solid rgb(0 0 0 / 15%);
31
+ }
32
+
33
+ :where([type="number"]) {
34
+ -moz-appearance: textfield;
35
+
36
+ &::-webkit-outer-spin-button,
37
+ &::-webkit-inner-spin-button {
38
+ -webkit-appearance: none;
39
+ }
40
+ }
41
+
42
+ :where(input) {
43
+ &::-webkit-calendar-picker-indicator {
44
+ display: none;
45
+ }
46
+ }
47
+ }
@@ -0,0 +1,66 @@
1
+ .ui-control[data-controller~="ui-control-select"] {
2
+ cursor: pointer;
3
+
4
+ & select {
5
+ pointer-events: none;
6
+ }
7
+
8
+ & div[aria-hidden] {
9
+ will-change: transform;
10
+ border-radius: var(--ui-control-border-radius);
11
+ position: absolute;
12
+ background-color: rgb(var(--color-body-rgb));
13
+ z-index: 100;
14
+ left: 0;
15
+ right: 0;
16
+ top: 100%;
17
+ margin-top: 0.5rem;
18
+ border: 1px solid rgb(var(--color-current) / 7.5%);
19
+ transform: scaleY(0);
20
+ opacity: 0;
21
+ transition: var(--transition-opacity), var(--transition-transform);
22
+ transition-timing-function: cubic-bezier(0.54, 1.5, 0.38, 1.11);
23
+ transition-duration: 200ms;
24
+ backface-visibility: hidden;
25
+ transform-origin: center top;
26
+ user-select: none;
27
+ max-height: 12rem;
28
+ overflow-y: auto;
29
+ box-shadow: 0 0.15em 1.5em 0 rgb(var(--color-dark-rgb) / 5%), 0 0 1em 0 rgb(var(--color-dark-rgb) / 5%);
30
+ padding: 0.375rem;
31
+ color: rgb(var(--color-current));
32
+ cursor: default;
33
+
34
+ & [data-option] {
35
+ padding: calc(var(--ui-control-px) / 1.5) var(--ui-control-px);
36
+ cursor: pointer;
37
+ transition: var(--transition-background);
38
+ font-size: var(--ui-control-font-size);
39
+ border-radius: var(--ui-control-border-radius);
40
+
41
+ &[data-disabled] {
42
+ opacity: 0.5;
43
+ pointer-events: none;
44
+ }
45
+
46
+ &:is(:hover, :focus) {
47
+ background-color: rgb(var(--color-accent-rgb) / 10%);
48
+ }
49
+ }
50
+ }
51
+
52
+ &:focus-within {
53
+ --ui-control-border-opacity: 100%;
54
+ --ui-control-border-color: var(--color-accent);
55
+
56
+ & select {
57
+ outline-color: color-mix(in srgb, var(--color-accent) var(--ui-control-outline-opacity), transparent);
58
+ outline-offset: var(--ui-control-outline-offset);
59
+ }
60
+ }
61
+
62
+ &:focus-within select ~ div[aria-hidden] {
63
+ opacity: 1;
64
+ transform: none;
65
+ }
66
+ }
@@ -0,0 +1,22 @@
1
+ .ui-dot {
2
+ --ui-dot-sq: 0.375rem;
3
+ --ui-dot-bg-opacity: 0.2;
4
+
5
+ width: var(--ui-dot-sq);
6
+ height: var(--ui-dot-sq);
7
+ border-radius: var(--rounded-full);
8
+ background-color: rgb(var(--color-accent-rgb) / var(--ui-dot-bg-opacity));
9
+ transition: var(--transition-background), width var(--transition-duration), height var(--transition-duration);
10
+ position: relative;
11
+
12
+ &::before {
13
+ content: "";
14
+ position: absolute;
15
+ inset: -0.25rem;
16
+ }
17
+
18
+ &.active {
19
+ --ui-dot-bg-opacity: 1;
20
+ --ui-dot-sq: 0.5625rem;
21
+ }
22
+ }
@@ -0,0 +1 @@
1
+ @import "winduum/src/ui/group.css";
@@ -1,22 +1,3 @@
1
- .ui-heading {
2
- --ui-heading-size: 1.5rem;
3
- --ui-heading-weight: var(--font-bold);
4
- --ui-heading-size-line: 0.5rem;
5
-
6
- display: block;
7
- font-weight: var(--ui-heading-weight);
8
- font-size: var(--ui-heading-size);
9
- line-height: calc(var(--ui-heading-size) + var(--ui-heading-size-line));
10
-
11
- &:--size-lg {
12
- --ui-heading-size: 1.75rem;
13
-
14
- @media (--media-t) {
15
- --ui-heading-size: 2rem;
16
- }
17
- }
18
-
19
- &:--size-sm {
20
- --ui-heading-size: 1.25rem;
21
- }
22
- }
1
+ @import "winduum/src/ui/heading/default.css";
2
+ @import "winduum/src/ui/heading/sm.css";
3
+ @import "winduum/src/ui/heading/lg.css";
@@ -1,17 +1 @@
1
- .ui-image {
2
- position: relative;
3
- display: block;
4
-
5
- &:not(.bg-transparent) {
6
- background-color: rgb(var(--color-background-100));
7
- }
8
-
9
- & > * {
10
- width: 100%;
11
- height: 100%;
12
- }
13
-
14
- @nest picture& > img {
15
- object-fit: cover;
16
- }
17
- }
1
+ @import "winduum/src/ui/image.css";
@@ -0,0 +1 @@
1
+ @import "winduum/src/ui/info.css";
@@ -1,14 +1 @@
1
- .ui-label {
2
- --ui-label-size: 0.875rem;
3
- --ui-label-size-line: 0.5rem;
4
- --ui-label-spacing: 0.05rem;
5
-
6
- display: block;
7
- font-size: var(--ui-label-size);
8
- line-height: calc(var(--ui-label-size-line) + var(--ui-label-size-line));
9
- font-weight: var(--font-medium);
10
-
11
- & ~ :is([class^="ui-"]:not(&), [class^="c-"]) {
12
- margin-top: 0.5rem;
13
- }
14
- }
1
+ @import "winduum/src/ui/label.css";
@@ -1,41 +1,2 @@
1
- .ui-link {
2
- --ui-link-size: 0.875rem;
3
- --ui-link-weight: var(--font-normal);
4
- --ui-link-hover-opacity: 0.8;
5
- --ui-link-hover-color: rgb(var(--color-accent));
6
- --ui-link-underline-opacity: 0.5;
7
-
8
- display: inline-flex;
9
- align-self: flex-start;
10
- cursor: pointer;
11
- font-size: var(--ui-link-size);
12
- font-weight: var(--ui-link-weight);
13
- transition: var(--transition-opacity), var(--transition-color);
14
- position: relative;
15
- white-space: nowrap;
16
- line-height: 1.5;
17
-
18
- &:--size-sm {
19
- --ui-link-size: 0.75rem;
20
- }
21
-
22
- @nest &:focus-visible, .no-touch &:is([href], button):hover {
23
- opacity: var(--ui-link-hover-opacity);
24
- color: var(--ui-link-hover-color);
25
- }
26
-
27
- &[data-type~="underline"]::after {
28
- content: "";
29
- border-bottom: 1px solid currentColor;
30
- opacity: 0;
31
- position: absolute;
32
- inset: auto 0 0;
33
- transition: var(--transition-opacity), var(--transition-transform);
34
- transform: translateY(-0.25rem);
35
-
36
- @nest .no-touch :not([href^="tel:"], [href^="mailto:"]):is(:hover, :focus-visible)& {
37
- transform: none;
38
- opacity: var(--ui-link-underline-opacity);
39
- }
40
- }
41
- }
1
+ @import "winduum/src/ui/link/default.css";
2
+ @import "winduum/src/ui/link/underlined.css";
@@ -1,47 +1 @@
1
- .ui-notice {
2
- --color-current: var(--color-accent);
3
- --ui-notice-bg: rgb(var(--color-accent));
4
- --ui-notice-outline-opacity: 0.1;
5
- --ui-notice-size: 0.875rem;
6
- --ui-notice-py: 1.25rem;
7
- --ui-notice-px: 1.5rem;
8
-
9
- position: relative;
10
- z-index: 1;
11
- padding: var(--ui-notice-py) var(--ui-notice-px);
12
- font-size: var(--ui-notice-size);
13
- border-radius: var(--radius);
14
- color: rgb(var(--color-current));
15
-
16
- &:not([class*="bg-"]) {
17
- &::before, &::after {
18
- position: absolute;
19
- inset: 0;
20
- width: 100%;
21
- height: 100%;
22
- border-radius: var(--radius);
23
- z-index: -1;
24
- content: "";
25
- }
26
-
27
- &::before {
28
- background-color: var(--ui-notice-bg);
29
- opacity: var(--ui-notice-outline-opacity);
30
- }
31
-
32
- &::after {
33
- box-shadow: inset 0 0 0 1px var(--ui-notice-bg);
34
- opacity: var(--ui-notice-outline-opacity);
35
- }
36
- }
37
-
38
- & a {
39
- text-decoration: underline;
40
- transition: var(--transition-opacity);
41
- color: currentColor !important;
42
-
43
- @nest .no-touch &[href]:is(:hover, :focus-visible) {
44
- opacity: 0.8;
45
- }
46
- }
47
- }
1
+ @import "winduum/src/ui/notice.css";
@@ -1,56 +1 @@
1
- .ui-progress {
2
- --ui-progress-height: 1rem;
3
- --ui-progress-radius: 9999px;
4
- --ui-progress-bg: var(--color-background-200);
5
- --ui-progress-bg-opacity: 1;
6
-
7
- appearance: none;
8
- box-shadow: none;
9
- border: 0;
10
- height: var(--ui-progress-height);
11
- border-radius: var(--ui-progress-radius);
12
- background-color: rgb(var(--ui-progress-bg) / var(--ui-progress-bg-opacity));
13
- color: rgb(var(--color-accent));
14
- width: 100%;
15
-
16
- @nest .bg-dark & {
17
- &, &::-webkit-progress-bar {
18
- background-color: rgb(var(--color-light) / 0.1);
19
- }
20
- }
21
-
22
- &:--size-sm {
23
- --ui-progress-height: 0.5rem;
24
- }
25
-
26
- &:--size-lg {
27
- --ui-progress-height: 1.5rem;
28
- }
29
-
30
- &::-webkit-progress-bar {
31
- background-color: transparent;
32
- }
33
-
34
- &::-webkit-progress-value {
35
- background-color: currentColor;
36
- border-radius: var(--ui-progress-radius);
37
- }
38
-
39
- &::-moz-progress-bar {
40
- background-color: currentColor;
41
- border-radius: var(--ui-progress-radius);
42
- }
43
-
44
- &:indeterminate {
45
- animation: 1.5s linear 0s forwards infinite move-indeterminate;
46
- background-image: linear-gradient(to right, currentColor 30%, rgb(var(--ui-progress-bg) / var(--ui-progress-bg-opacity)) 30%);
47
- background-position: top left;
48
- background-repeat: no-repeat;
49
- background-size: 150% 150%;
50
- border-radius: var(--ui-progress-radius);
51
-
52
- &::-moz-progress-bar {
53
- background-color: transparent;
54
- }
55
- }
56
- }
1
+ @import "winduum/src/ui/progress.css";
@@ -1,70 +1 @@
1
- .ui-switch {
2
- --ui-switch-width: 3rem;
3
- --ui-switch-height: 1.5rem;
4
- --ui-switch-padding: 0.375rem;
5
- --ui-swtich-bg: var(--color-dark);
6
- --ui-swtich-bg-opacity: 0.2;
7
- --ui-swtich-fg: var(--color-accent);
8
- --ui-switch-radius: 999px;
9
-
10
- @nest .dark & {
11
- --ui-swtich-bg: var(--color-background-300);
12
- }
13
-
14
- display: inline-flex;
15
- color: rgb(var(--ui-swtich-fg));
16
- position: relative;
17
-
18
- &:--size-sm {
19
- --ui-switch-width: 2.5rem;
20
- --ui-switch-height: 1.25rem;
21
- }
22
-
23
- &:--size-lg {
24
- --ui-switch-width: 4rem;
25
- --ui-switch-height: 2rem;
26
- }
27
-
28
- & input {
29
- width: var(--ui-switch-width);
30
- height: var(--ui-switch-height);
31
- display: block;
32
- position: relative;
33
- border-radius: var(--ui-switch-radius);
34
- background-color: rgb(var(--ui-swtich-bg));
35
- transition: var(--transition-background);
36
- cursor: pointer;
37
- appearance: none;
38
- outline: none;
39
- color: inherit;
40
-
41
- &[disabled] {
42
- opacity: 0.8;
43
- pointer-events: none;
44
- }
45
-
46
- &::before {
47
- width: calc(var(--ui-switch-height) - var(--ui-switch-padding));
48
- height: calc(var(--ui-switch-height) - var(--ui-switch-padding));
49
- background-color: rgb(var(--color-light));
50
- border-radius: var(--ui-switch-radius);
51
- position: absolute;
52
- left: var(--ui-switch-height);
53
- top: 50%;
54
- content: "";
55
- display: block;
56
- margin-left: calc((var(--ui-switch-height) - var(--ui-switch-padding) + var(--ui-switch-padding) / 2) * -1);
57
- transition: left var(--transition), var(--transition-background);
58
- transform: translateY(-50%);
59
- }
60
-
61
- &:checked {
62
- background-color: currentColor;
63
-
64
- &::before {
65
- background-color: rgb(var(--color-light));
66
- left: 100%;
67
- }
68
- }
69
- }
70
- }
1
+ @import "winduum/src/ui/switch.css";