winduum 0.4.0 → 0.5.0-next.10

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 (85) hide show
  1. package/dist/main.css +1 -1
  2. package/dist/tailwind.css +1 -1
  3. package/package.json +19 -19
  4. package/src/base/config/font.css +11 -0
  5. package/src/base/{icons.css → config/mask.css} +4 -4
  6. package/src/base/config/rounded.css +14 -0
  7. package/src/base/config/spacing.css +15 -0
  8. package/src/base/config/text.css +15 -0
  9. package/src/base/config/transition.css +19 -0
  10. package/src/base/config/z.css +7 -0
  11. package/src/base/config.css +7 -81
  12. package/src/base/default.css +5 -1
  13. package/src/base/index.css +0 -3
  14. package/src/base/reset.css +11 -8
  15. package/src/base/tailwind/container.css +28 -0
  16. package/src/base/tailwind/utilities.css +39 -10
  17. package/src/base/theme/dark-rgb.css +3 -0
  18. package/src/base/theme/dark.css +3 -4
  19. package/src/base/theme/default-rgb.css +25 -0
  20. package/src/base/theme/default.css +21 -22
  21. package/src/components/dialog.css +4 -9
  22. package/src/components/field.css +1 -3
  23. package/src/libraries/dialog.css +14 -15
  24. package/src/libraries/dialog.d.ts +2 -0
  25. package/src/libraries/dialog.js +13 -4
  26. package/src/libraries/ripple.css +2 -5
  27. package/src/main-rgb.css +2 -0
  28. package/src/tailwind.css +1 -1
  29. package/src/ui/badge/bordered-rgb.css +1 -1
  30. package/src/ui/badge/bordered.css +9 -8
  31. package/src/ui/badge/circle.css +1 -1
  32. package/src/ui/badge/default.css +9 -13
  33. package/src/ui/badge/lg.css +1 -1
  34. package/src/ui/badge/muted.css +1 -1
  35. package/src/ui/badge/sm.css +1 -1
  36. package/src/ui/badge/square.css +1 -1
  37. package/src/ui/btn/bordered.css +14 -13
  38. package/src/ui/btn/circle.css +1 -1
  39. package/src/ui/btn/default.css +13 -58
  40. package/src/ui/btn/ghosted.css +1 -1
  41. package/src/ui/btn/gradient-bordered-rgb.css +1 -1
  42. package/src/ui/btn/gradient-bordered.css +27 -21
  43. package/src/ui/btn/hover-fill.css +1 -1
  44. package/src/ui/btn/index.css +1 -0
  45. package/src/ui/btn/interactive.css +35 -0
  46. package/src/ui/btn/lg.css +1 -1
  47. package/src/ui/btn/muted.css +1 -1
  48. package/src/ui/btn/raised.css +9 -6
  49. package/src/ui/btn/sm.css +1 -1
  50. package/src/ui/btn/square.css +1 -1
  51. package/src/ui/btn/wide.css +1 -2
  52. package/src/ui/check.css +27 -53
  53. package/src/ui/control/color.css +5 -8
  54. package/src/ui/control/default.css +27 -42
  55. package/src/ui/control/file.css +7 -13
  56. package/src/ui/control/floating-interactive.css +12 -0
  57. package/src/ui/control/floating.css +22 -26
  58. package/src/ui/control/icon.css +4 -5
  59. package/src/ui/control/index.css +1 -1
  60. package/src/ui/control/select.css +4 -4
  61. package/src/ui/heading/default.css +5 -10
  62. package/src/ui/heading/lg.css +2 -2
  63. package/src/ui/heading/sm.css +2 -3
  64. package/src/ui/image.css +8 -19
  65. package/src/ui/index.css +0 -1
  66. package/src/ui/info.css +6 -5
  67. package/src/ui/label.css +6 -5
  68. package/src/ui/notice.css +7 -15
  69. package/src/ui/progress/default.css +4 -8
  70. package/src/ui/progress/lg.css +1 -1
  71. package/src/ui/progress/sm.css +1 -1
  72. package/src/ui/switch.css +28 -41
  73. package/src/ui/text.css +102 -113
  74. package/src/ui/title/default.css +5 -12
  75. package/src/ui/title/lg.css +2 -2
  76. package/src/ui/title/sm.css +2 -2
  77. package/tailwind.config.js +5 -1
  78. package/utils/tailwind.cjs +3 -0
  79. package/utils/tailwind.js +51 -8
  80. package/src/base/tailwind/gutters.css +0 -343
  81. package/src/ui/control/floating-focus.css +0 -12
  82. package/src/ui/link/default.css +0 -39
  83. package/src/ui/link/index.css +0 -2
  84. package/src/ui/link/underlined.css +0 -51
  85. package/src/ui/link.css +0 -1
package/utils/tailwind.js CHANGED
@@ -2,7 +2,6 @@ import plugin from 'tailwindcss/plugin'
2
2
  import flattenColorPalette from 'tailwindcss/src/util/flattenColorPalette'
3
3
  import toColorValue from 'tailwindcss/src/util/toColorValue'
4
4
  import { parseColor, formatColor } from 'tailwindcss/src/util/color'
5
- import lodash from 'lodash'
6
5
 
7
6
  function withAlphaVariable ({ color, property, variable }) {
8
7
  const properties = [].concat(property)
@@ -45,11 +44,13 @@ export const defaultConfig = {
45
44
  ],
46
45
  fontFamily: ['primary', 'secondary'],
47
46
  fontWeight: ['light', 'normal', 'medium', 'semibold', 'bold', 'extrabold'],
47
+ ease: ['linear', 'in', 'out', 'in-out'],
48
48
  zIndex: [10, 20, 30, 40, 50, 60],
49
49
  fontSize: ['xs', 'sm', 'base', 'md', 'lg', 'xl', '2xl', '3xl', '3xl', '4xl', '5xl', '6xl', '7xl', '7xl', '8xl', '9xl'],
50
50
  spacing: ['xs', 'sm', 'md', 'lg', 'xl', '2xl', '3xl', '4xl', '5xl', '6xl', 'section'],
51
51
  borderRadius: ['xs', 'sm', 'base', 'md', 'lg', 'xl', '2xl', '3xl', '4xl', '5xl', '6xl', 'full'],
52
52
  animations: ['fade-in', 'fade-out', 'fade-in-down', 'fade-out-up', 'ripple', 'spin', 'move-indeterminate'],
53
+ mask: ['check', 'radio', 'angle-up', 'angle-down'],
53
54
  screens: {
54
55
  xs: '22.5em',
55
56
  sm: '26em',
@@ -63,7 +64,7 @@ export const defaultConfig = {
63
64
  '2xxl': '158em'
64
65
  },
65
66
  settings: {
66
- rgb: true,
67
+ rgb: false,
67
68
  colorMix: true
68
69
  }
69
70
  }
@@ -98,6 +99,18 @@ export const tailwindVariablesFont = (type, variables = [], values = {}) => {
98
99
  return values
99
100
  }
100
101
 
102
+ export const tailwindPropertyUtilities = (type, variables = []) => {
103
+ const result = {}
104
+
105
+ variables.forEach(name => {
106
+ result[`.${type}-${name}`] = {
107
+ [type]: `var(--${type}-${name})`
108
+ }
109
+ })
110
+
111
+ return result
112
+ }
113
+
101
114
  export const tailwindAnimations = (values) => {
102
115
  const result = {}
103
116
 
@@ -110,8 +123,23 @@ export const tailwindAnimations = (values) => {
110
123
  return result
111
124
  }
112
125
 
126
+ export const tailwindMask = (values) => {
127
+ const result = {}
128
+
129
+ values.forEach(value => {
130
+ result[`.mask-${value}`] = {
131
+ mask: value
132
+ }
133
+ })
134
+
135
+ return result
136
+ }
137
+
113
138
  export const createPlugin = (userConfig = {}) => {
114
- userConfig = lodash.merge(defaultConfig, userConfig)
139
+ userConfig = {
140
+ ...defaultConfig,
141
+ userConfig
142
+ }
115
143
 
116
144
  return plugin(({ addUtilities, matchUtilities, theme, variants, e, corePlugins }) => {
117
145
  matchUtilities(
@@ -212,25 +240,40 @@ export const createPlugin = (userConfig = {}) => {
212
240
  { values: flattenColorPalette(theme('textColor')), type: ['color', 'any'] }
213
241
  )
214
242
  addUtilities(tailwindAnimations(userConfig.animations))
243
+ addUtilities(tailwindPropertyUtilities('mask', userConfig.mask))
215
244
  addUtilities([
216
245
  Object.entries(theme('spacing')).map(([key, value]) => {
217
246
  return {
218
- [`.${e(`sq-${key}`)}`]: {
219
- width: value,
220
- height: value
247
+ [`.${e(`divide-gap-x-${key}`)}`]: {
248
+ '& > :where(*:not(:first-child))': {
249
+ paddingLeft: value,
250
+ marginLeft: value
251
+ }
252
+ },
253
+ [`.${e(`divide-gap-y-${key}`)}`]: {
254
+ '& > :where(*:not(:first-child))': {
255
+ paddingTop: value,
256
+ marginTop: value
257
+ }
221
258
  }
222
259
  }
223
260
  })
224
- ], variants('sq'))
261
+ ])
225
262
  }, {
226
263
  corePlugins: {
227
264
  preflight: false,
228
- container: false,
229
265
  textColor: false,
230
266
  accentColor: false
231
267
  },
232
268
  theme: {
233
269
  extend: {
270
+ transitionProperty: {
271
+ DEFAULT: 'var(--transition)'
272
+ },
273
+ transitionDuration: {
274
+ DEFAULT: 'var(--duration)'
275
+ },
276
+ transitionTimingFunction: tailwindVariables('ease', userConfig.ease),
234
277
  colors: tailwindColors(userConfig.colors),
235
278
  fontSize: tailwindVariablesFont('text', userConfig.fontSize),
236
279
  fontFamily: tailwindVariables('font', userConfig.fontFamily),
@@ -1,343 +0,0 @@
1
- @layer utilities {
2
- :where(.row) {
3
- --gx: 0rem;
4
- --gy: 0rem;
5
-
6
- display: flex;
7
- margin: calc(var(--gy) / -2) calc(var(--gx) / -2) calc(var(--gy) / -2) calc(var(--gx) / -2);
8
-
9
- & > * {
10
- padding: calc(var(--gy) / 2) calc(var(--gx) / 2) calc(var(--gy) / 2) calc(var(--gx) / 2);
11
- }
12
- }
13
-
14
- :where(.row-y) {
15
- --gy: 0rem;
16
-
17
- display: flex;
18
- margin-top: calc(var(--gy) / -2);
19
- margin-bottom: calc(var(--gy) / -2);
20
-
21
- & > * {
22
- padding-top: calc(var(--gy) / 2);
23
- padding-bottom: calc(var(--gy) / 2);
24
- }
25
- }
26
-
27
- :where(.row-x) {
28
- --gx: 0rem;
29
-
30
- display: flex;
31
- margin-left: calc(var(--gx) / -2);
32
- margin-right: calc(var(--gx) / -2);
33
-
34
- & > * {
35
- padding-left: calc(var(--gx) / 2);
36
- padding-right: calc(var(--gx) / 2);
37
- }
38
- }
39
-
40
- :where(.col) {
41
- display: flex;
42
- flex-direction: column;
43
- }
44
-
45
- .g-0 {
46
- --gx: 0rem;
47
- --gy: 0rem;
48
- }
49
-
50
- .g-1 {
51
- --gx: 0.25rem;
52
- --gy: 0.25rem;
53
- }
54
-
55
- .g-2 {
56
- --gx: 0.5rem;
57
- --gy: 0.5rem;
58
- }
59
-
60
- .g-3 {
61
- --gx: 0.75rem;
62
- --gy: 0.75rem;
63
- }
64
-
65
- .g-4 {
66
- --gx: 1rem;
67
- --gy: 1rem;
68
- }
69
-
70
- .g-5 {
71
- --gx: 1.25rem;
72
- --gy: 1.25rem;
73
- }
74
-
75
- .g-6 {
76
- --gx: 1.5rem;
77
- --gy: 1.5rem;
78
- }
79
-
80
- .g-7 {
81
- --gx: 1.75rem;
82
- --gy: 1.75rem;
83
- }
84
-
85
- .g-8 {
86
- --gx: 2rem;
87
- --gy: 2rem;
88
- }
89
-
90
- .g-9 {
91
- --gx: 2.25rem;
92
- --gy: 2.25rem;
93
- }
94
-
95
- .g-10 {
96
- --gx: 2.5rem;
97
- --gy: 2.5rem;
98
- }
99
-
100
- .g-11 {
101
- --gx: 2.75rem;
102
- --gy: 2.75rem;
103
- }
104
-
105
- .g-12 {
106
- --gx: 3rem;
107
- --gy: 3rem;
108
- }
109
-
110
- .g-14 {
111
- --gx: 3.5rem;
112
- --gy: 3.5rem;
113
- }
114
-
115
- .g-16 {
116
- --gx: 4rem;
117
- --gy: 4rem;
118
- }
119
-
120
- .g-20 {
121
- --gx: 5rem;
122
- --gy: 5rem;
123
- }
124
-
125
- .g-24 {
126
- --gx: 6rem;
127
- --gy: 6rem;
128
- }
129
-
130
- .g-28 {
131
- --gx: 7rem;
132
- --gy: 7rem;
133
- }
134
-
135
- .g-32 {
136
- --gx: 8rem;
137
- --gy: 8rem;
138
- }
139
-
140
- .gx-0 {
141
- --gx: 0;
142
- }
143
-
144
- .gx-1 {
145
- --gx: 0.25rem;
146
- }
147
-
148
- .gx-2 {
149
- --gx: 0.5rem;
150
- }
151
-
152
- .gx-3 {
153
- --gx: 0.75rem;
154
- }
155
-
156
- .gx-4 {
157
- --gx: 1rem;
158
- }
159
-
160
- .gx-5 {
161
- --gx: 1.25rem;
162
- }
163
-
164
- .gx-6 {
165
- --gx: 1.5rem;
166
- }
167
-
168
- .gx-7 {
169
- --gx: 1.75rem;
170
- }
171
-
172
- .gx-8 {
173
- --gx: 2rem;
174
- }
175
-
176
- .gx-9 {
177
- --gx: 2.25rem;
178
- }
179
-
180
- .gx-10 {
181
- --gx: 2.5rem;
182
- }
183
-
184
- .gx-11 {
185
- --gx: 2.75rem;
186
- }
187
-
188
- .gx-12 {
189
- --gx: 3rem;
190
- }
191
-
192
- .gx-14 {
193
- --gx: 3.5rem;
194
- }
195
-
196
- .gx-16 {
197
- --gx: 4rem;
198
- }
199
-
200
- .gx-20 {
201
- --gx: 5rem;
202
- }
203
-
204
- .gx-24 {
205
- --gx: 6rem;
206
- }
207
-
208
- .gx-28 {
209
- --gx: 7rem;
210
- }
211
-
212
- .gx-32 {
213
- --gx: 8rem;
214
- }
215
-
216
- .gy-0 {
217
- --gy: 0;
218
- }
219
-
220
- .gy-1 {
221
- --gy: 0.25rem;
222
- }
223
-
224
- .gy-2 {
225
- --gy: 0.5rem;
226
- }
227
-
228
- .gy-3 {
229
- --gy: 0.75rem;
230
- }
231
-
232
- .gy-4 {
233
- --gy: 1rem;
234
- }
235
-
236
- .gy-5 {
237
- --gy: 1.25rem;
238
- }
239
-
240
- .gy-6 {
241
- --gy: 1.5rem;
242
- }
243
-
244
- .gy-7 {
245
- --gy: 1.75rem;
246
- }
247
-
248
- .gy-8 {
249
- --gy: 2rem;
250
- }
251
-
252
- .gy-9 {
253
- --gy: 2.25rem;
254
- }
255
-
256
- .gy-10 {
257
- --gy: 2.5rem;
258
- }
259
-
260
- .gy-11 {
261
- --gy: 2.75rem;
262
- }
263
-
264
- .gy-12 {
265
- --gy: 3rem;
266
- }
267
-
268
- .gy-14 {
269
- --gy: 3.5rem;
270
- }
271
-
272
- .gy-16 {
273
- --gy: 4rem;
274
- }
275
-
276
- .gy-20 {
277
- --gy: 5rem;
278
- }
279
-
280
- .gy-24 {
281
- --gy: 6rem;
282
- }
283
-
284
- .gy-28 {
285
- --gy: 7rem;
286
- }
287
-
288
- .gy-32 {
289
- --gy: 8rem;
290
- }
291
-
292
- .col-auto {
293
- width: auto;
294
- }
295
-
296
- .col-1 {
297
- width: 8.3333%;
298
- }
299
-
300
- .col-2 {
301
- width: 16.6667%;
302
- }
303
-
304
- .col-3 {
305
- width: 25%;
306
- }
307
-
308
- .col-4 {
309
- width: 33.3333%;
310
- }
311
-
312
- .col-5 {
313
- width: 41.6667%;
314
- }
315
-
316
- .col-6 {
317
- width: 50%;
318
- }
319
-
320
- .col-7 {
321
- width: 58.3333%;
322
- }
323
-
324
- .col-8 {
325
- width: 66.6667%;
326
- }
327
-
328
- .col-9 {
329
- width: 75%;
330
- }
331
-
332
- .col-10 {
333
- width: 83.3333%;
334
- }
335
-
336
- .col-11 {
337
- width: 91.6667%;
338
- }
339
-
340
- .col-12 {
341
- width: 100%;
342
- }
343
- }
@@ -1,12 +0,0 @@
1
- .ui-control:has(:not([type="color"]) ~ label) {
2
- --ui-control-label-focus-transform: translateY(-0.6875rem) scale(0.8);
3
- --ui-control-label-focus-opacity: 50%;
4
- --ui-control-placeholder-color: transparent;
5
-
6
- & :where(input, textarea, select) {
7
- &:is(:focus, :not(:placeholder-shown)) ~ label {
8
- transform: var(--ui-control-label-focus-transform);
9
- opacity: var(--ui-control-label-focus-opacity);
10
- }
11
- }
12
- }
@@ -1,39 +0,0 @@
1
- .ui-link {
2
- --color-accent: var(--color-current);
3
- --ui-link-color: inherit;
4
- --ui-link-font-size: 0.875rem;
5
- --ui-link-font-weight: var(--font-medium);
6
- --ui-link-letter-spacing: 0;
7
- --ui-link-hover-color: var(--color-accent);
8
- --ui-link-hover-opacity: 0.75;
9
- --ui-link-active-opacity: 1;
10
- --ui-link-gap: 0.5rem;
11
-
12
- font-size: var(--ui-link-font-size);
13
- font-weight: var(--ui-link-font-weight);
14
- letter-spacing: var(--ui-link-letter-spacing);
15
- transition: var(--transition-opacity), var(--transition-color);
16
- display: inline-flex;
17
- align-items: center;
18
- position: relative;
19
- gap: var(--ui-link-gap);
20
- color: var(--ui-link-color);
21
-
22
- &:is([href], button) {
23
- &:hover {
24
- @media (hover: hover) and (pointer: fine) {
25
- color: var(--ui-link-hover-color);
26
- opacity: var(--ui-link-hover-opacity);
27
- }
28
- }
29
-
30
- &:focus-visible {
31
- color: var(--ui-link-hover-color);
32
- opacity: var(--ui-link-hover-opacity);
33
- }
34
-
35
- &:active {
36
- opacity: var(--ui-link-active-opacity);
37
- }
38
- }
39
- }
@@ -1,2 +0,0 @@
1
- @import "default.css";
2
- @import "underlined.css";
@@ -1,51 +0,0 @@
1
- .ui-link:where([class*="underlined"]) {
2
- --ui-link-hover-opacity: 1;
3
- --ui-link-active-opacity: 0.75;
4
- --ui-link-underline-color: currentColor;
5
- --ui-link-underline-width: 1px;
6
- --ui-link-underline-opacity: 0;
7
- --ui-link-underline-transform: translateY(-0.125rem);
8
-
9
- &:where(.underlined-visible) {
10
- --ui-link-underline-opacity: 1;
11
- --ui-link-underline-transform: none;
12
- --ui-link-underline-color: var(--color-accent);
13
- --ui-link-hover-opacity: 0.75;
14
- --ui-link-active-opacity: 1;
15
- }
16
-
17
- &::after, & span::after {
18
- content: "";
19
- border-bottom: var(--ui-link-underline-width) solid var(--ui-link-underline-color);
20
- opacity: var(--ui-link-underline-opacity);
21
- position: absolute;
22
- inset: auto 0 0;
23
- transition: var(--transition-opacity), var(--transition-transform);
24
- transform: var(--ui-link-underline-transform);
25
- }
26
-
27
- &:has(svg) {
28
- &::after {
29
- content: normal;
30
- }
31
- }
32
-
33
- & :where(span) {
34
- position: relative;
35
- inset: auto;
36
- }
37
-
38
- &:is([href], button) {
39
- &:hover {
40
- @media (hover: hover) and (pointer: fine) {
41
- --ui-link-underline-opacity: 1;
42
- --ui-link-underline-transform: none;
43
- }
44
- }
45
-
46
- &:focus-visible {
47
- --ui-link-underline-opacity: 1;
48
- --ui-link-underline-transform: none;
49
- }
50
- }
51
- }
package/src/ui/link.css DELETED
@@ -1 +0,0 @@
1
- @import "link/index.css";