@volverjs/style 0.1.6 → 0.1.8

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 (54) hide show
  1. package/LICENSE +1 -1
  2. package/dist/base.css +1 -0
  3. package/dist/components/vv-avatar-group.css +1 -0
  4. package/dist/components/vv-avatar.css +1 -1
  5. package/dist/components/vv-badge.css +1 -1
  6. package/dist/components/vv-button.css +1 -1
  7. package/dist/components/vv-dropdown-action.css +1 -0
  8. package/dist/components/vv-dropdown-option.css +1 -0
  9. package/dist/components/vv-dropdown.css +1 -1
  10. package/dist/components/vv-input-text.css +1 -1
  11. package/dist/components/vv-select.css +1 -1
  12. package/dist/components/vv-textarea.css +1 -1
  13. package/dist/components.css +1 -1
  14. package/dist/export.css +1 -1
  15. package/dist/props/input.css +1 -1
  16. package/dist/props/spacing.css +1 -1
  17. package/dist/props/transitions.css +1 -1
  18. package/dist/props.css +1 -1
  19. package/dist/utilities/flexbox.css +1 -1
  20. package/dist/utilities/layout.css +1 -1
  21. package/dist/utilities/sizing.css +1 -1
  22. package/dist/utilities/spacing.css +1 -1
  23. package/dist/utilities/transforms.css +1 -1
  24. package/dist/utilities/transitions.css +1 -1
  25. package/dist/utilities.css +1 -1
  26. package/dist/volver.css +1 -1
  27. package/package.json +20 -12
  28. package/src/_config.scss +3 -0
  29. package/src/_preflight.scss +0 -10
  30. package/src/base.scss +15 -0
  31. package/src/components/index.scss +3 -0
  32. package/src/components/vv-avatar-group.scss +13 -0
  33. package/src/components/vv-dropdown-action.scss +13 -0
  34. package/src/components/vv-dropdown-option.scss +13 -0
  35. package/src/props/transitions.scss +11 -5
  36. package/src/settings/_index.scss +3 -0
  37. package/src/settings/_input.scss +2 -4
  38. package/src/settings/_spacing.scss +1 -0
  39. package/src/settings/_transitions.scss +0 -2
  40. package/src/settings/components/_vv-avatar-group.scss +23 -0
  41. package/src/settings/components/_vv-avatar.scss +118 -20
  42. package/src/settings/components/_vv-badge.scss +27 -0
  43. package/src/settings/components/_vv-button.scss +5 -5
  44. package/src/settings/components/_vv-dropdown-action.scss +26 -0
  45. package/src/settings/components/_vv-dropdown-option.scss +63 -0
  46. package/src/settings/components/_vv-dropdown.scss +92 -17
  47. package/src/settings/components/_vv-input-text.scss +28 -17
  48. package/src/settings/components/_vv-select.scss +30 -13
  49. package/src/settings/components/_vv-textarea.scss +26 -11
  50. package/src/tools/_functions.scss +16 -0
  51. package/src/tools/_mixins.scss +15 -0
  52. package/src/utilities/layout.scss +2 -8
  53. package/src/utilities/transforms.scss +2 -2
  54. package/src/volver.scss +2 -5
@@ -1,37 +1,112 @@
1
1
  $vv-dropdown: (
2
- position: absolute,
3
- inset: auto 0,
2
+ --dropdown-border-radius: 0px,
3
+ position: relative,
4
4
  z-index: var(--z-dropdown),
5
5
  display: flex,
6
6
  flex-direction: column,
7
- background-color: var(--color-surface-1),
8
7
  box-shadow: var(--shadow-lg),
8
+ width: 'max-content',
9
9
  element: (
10
+ list: (
11
+ _alias: 'ul',
12
+ [border-radius]: var(--dropdown-border-radius),
13
+ background-color: var(--color-surface-1),
14
+ overflow: auto,
15
+ ),
10
16
  item: (
11
- _alias: '> li > :where(a, label, button)',
17
+ _alias: 'li',
18
+ ),
19
+ item-first: (
20
+ _alias: 'li:first-child',
21
+ [border-top-left-radius]: var(--dropdown-border-radius),
22
+ [border-top-right-radius]: var(--dropdown-border-radius),
23
+ ),
24
+ item-last: (
25
+ _alias: 'li:last-child',
26
+ [border-bottom-left-radius]: var(--dropdown-border-radius),
27
+ [border-bottom-right-radius]: var(--dropdown-border-radius),
28
+ ),
29
+ item-not-last: (
30
+ _alias: 'li:not(:last-child)',
31
+ border-width: 0 0 var(--border) 0,
32
+ border-color: var(--color-surface-3),
33
+ border-style: solid,
34
+ ),
35
+ search: (
12
36
  display: block,
37
+ min-width: 0,
38
+ align-items: center,
39
+ min-height: var(--spacing-50),
40
+ background-color: var(--color-surface-2),
13
41
  padding: var(--spacing-sm),
14
- state: (
15
- hover: (
16
- background-color: var(--color-surface-2),
17
- ),
18
- active: (
19
- background-color: var(--color-surface-3),
42
+ pseudo: (
43
+ search-cancel-button: (
44
+ -webkit-appearance: none,
45
+ opacity: var(--opacity-0),
20
46
  ),
21
- checked-within: (
22
- color: var(--color-brand),
23
- background-color: var(--color-surface-3),
47
+ placeholder: (
48
+ color: var(--color-word-4),
49
+ text-overflow: ellipsis,
24
50
  ),
25
51
  ),
26
52
  ),
27
- input: (
28
- _alias: '> li > input',
29
- display: none,
53
+ arrow: (
54
+ position: absolute,
55
+ width: var(--spacing-20),
56
+ height: var(--spacing-20),
57
+ z-index: -1,
58
+ pointer-events: none,
59
+ border: none,
60
+ pseudo: (
61
+ before: (
62
+ position: absolute,
63
+ top: 0,
64
+ left: 0,
65
+ width: 0,
66
+ height: 0,
67
+ border-left: var(--spacing-10) solid transparent,
68
+ border-right: var(--spacing-10) solid transparent,
69
+ border-bottom: var(--spacing-10) solid
70
+ var(--color-surface-1),
71
+ ),
72
+ after: (
73
+ position: absolute,
74
+ bottom: 0,
75
+ left: 0,
76
+ width: 0,
77
+ height: 0,
78
+ border-left: var(--spacing-10) solid transparent,
79
+ border-right: var(--spacing-10) solid transparent,
80
+ border-top: var(--spacing-10) solid var(--color-surface-1),
81
+ ),
82
+ ),
30
83
  ),
31
84
  ),
32
85
  modifier: (
33
- place-top: (
86
+ rounded: (
87
+ --dropdown-border-radius: var(--rounded),
88
+ ),
89
+ block: (
90
+ width: 100%,
91
+ ),
92
+ bottom: (
93
+ position: absolute,
94
+ top: 100%,
95
+ right: 0,
96
+ left: 0,
97
+ ),
98
+ top: (
99
+ position: absolute,
100
+ left: 0,
101
+ right: 0,
34
102
  bottom: 100%,
35
103
  ),
104
+ full-bleed: (
105
+ element: (
106
+ item: (
107
+ min-width: 20ch,
108
+ ),
109
+ ),
110
+ ),
36
111
  ),
37
112
  ) !default;
@@ -60,12 +60,18 @@ $vv-input-text: (
60
60
  ),
61
61
  ),
62
62
  ),
63
+ inner: (
64
+ position: relative,
65
+ display: flex,
66
+ flex: 1,
67
+ ),
63
68
  input: (
64
69
  _alias: 'input',
65
- display: block,
70
+ display: flex,
66
71
  flex: 1,
72
+ align-items: center,
67
73
  color: var(--input-color),
68
- line-height: var(--leading-none),
74
+ line-height: var(--leading-normal),
69
75
  [padding-block]: var(--input-spacing-top)
70
76
  var(--input-spacing-bottom),
71
77
  [padding-inline]: var(--input-spacing-left)
@@ -75,7 +81,7 @@ $vv-input-text: (
75
81
  pseudo: (
76
82
  placeholder: (
77
83
  color: var(--input-placeholder-color),
78
- text-overlow: ellipsis,
84
+ text-overflow: ellipsis,
79
85
  ),
80
86
  calendar-picker-indicator: (
81
87
  position: absolute,
@@ -102,6 +108,9 @@ $vv-input-text: (
102
108
  inner-spin-button: (
103
109
  display: none,
104
110
  ),
111
+ datetime-edit: (
112
+ padding: 0,
113
+ ),
105
114
  datetime-edit-fields-wrapper: (
106
115
  padding: 0,
107
116
  ),
@@ -118,27 +127,29 @@ $vv-input-text: (
118
127
  ),
119
128
  ),
120
129
  ),
130
+ input-before: (
131
+ display: flex,
132
+ padding-left: var(--input-spacing-left),
133
+ ),
134
+ input-after: (
135
+ display: flex,
136
+ padding-right: var(--input-spacing-right),
137
+ ),
121
138
  number: (
122
139
  _alias: 'input[type="number"]',
123
140
  -moz-appearance: textfield,
124
141
  ),
125
142
  icon: (
126
- _alias: ':where(svg, [data-icon])',
127
- margin: var(--input-spacing-top) var(--input-spacing-right)
128
- var(--input-spacing-bottom) var(--input-spacing-left),
129
- width: var(--input-icon-width),
130
- height: var(--input-icon-height),
131
- padding: var(--input-icon-padding),
132
- ),
133
- icon-left: (
134
143
  _alias: '> div > :where(svg, [data-icon])',
135
144
  position: var(--input-icon-position),
145
+ width: var(--input-icon-width),
146
+ height: var(--input-min-height),
147
+ margin: var(--input-icon-margin),
136
148
  pointer-events: var(--input-icon-pointer-events),
137
149
  ),
138
- icon-right: (
150
+ icon-after: (
139
151
  _alias: 'input + :where(svg, [data-icon])',
140
152
  position: var(--input-icon-position),
141
- pointer-events: var(--input-icon-pointer-events),
142
153
  right: 0,
143
154
  ),
144
155
  actions-group: (
@@ -200,10 +211,10 @@ $vv-input-text: (
200
211
  ),
201
212
  ),
202
213
  modifier: (
203
- icon-left: (
214
+ icon-before: (
204
215
  --input-spacing-left: calc(var(--spacing-sm) * 2 + 1em),
205
216
  ),
206
- icon-right: (
217
+ icon-after: (
207
218
  --input-spacing-right: calc(var(--spacing-sm) * 2 + 1em),
208
219
  element: (
209
220
  limit: (
@@ -227,7 +238,7 @@ $vv-input-text: (
227
238
  limit: (
228
239
  color: var(--input-valid-color),
229
240
  ),
230
- icon-right: (
241
+ icon-after: (
231
242
  color: var(--input-valid-color),
232
243
  ),
233
244
  ),
@@ -248,7 +259,7 @@ $vv-input-text: (
248
259
  limit: (
249
260
  color: var(--input-invalid-color),
250
261
  ),
251
- icon-right: (
262
+ icon-after: (
252
263
  color: var(--input-invalid-color),
253
264
  ),
254
265
  ),
@@ -5,8 +5,8 @@ $vv-select: (
5
5
  margin-bottom: var(--input-gap),
6
6
  font-size: var(--input-font-size),
7
7
  line-height: var(--input-line-height),
8
- user-select: none,
9
8
  min-width: var(--input-min-width),
9
+ user-select: none,
10
10
  element: (
11
11
  label: (
12
12
  _alias: '> label',
@@ -68,19 +68,30 @@ $vv-select: (
68
68
  ),
69
69
  ),
70
70
  ),
71
+ inner: (
72
+ position: relative,
73
+ display: flex,
74
+ flex: 1,
75
+ width: 100%,
76
+ ),
71
77
  input: (
72
78
  _alias: 'select',
73
79
  display: flex,
74
80
  align-items: center,
75
- flex: 1,
81
+ flex-grow: 1,
82
+ flex-shrink: 1,
83
+ flex-wrap: wrap,
84
+ min-width: 0,
76
85
  color: var(--input-placeholder-color),
77
- [padding]: var(--input-spacing-top) var(--input-spacing-right)
86
+ [padding]: var(--input-spacing-top)
87
+ calc(var(--input-spacing-right) * 2 + 1em)
78
88
  var(--input-spacing-bottom) var(--input-spacing-left),
79
89
  background-image: var(--bg-chevron),
80
90
  background-repeat: no-repeat,
81
91
  [background-position]: right var(--input-spacing-right) center,
82
92
  background-size: 1em,
83
93
  min-height: var(--input-min-height),
94
+ gap: 0.5ch,
84
95
  state: (
85
96
  disabled: (
86
97
  cursor: not-allowed,
@@ -95,20 +106,26 @@ $vv-select: (
95
106
  ),
96
107
  ),
97
108
  ),
109
+ input-before: (
110
+ display: flex,
111
+ padding-left: var(--input-spacing-left),
112
+ ),
113
+ input-after: (
114
+ display: flex,
115
+ padding-right: var(--input-spacing-right),
116
+ ),
98
117
  option: (
99
118
  _alias: 'select > option',
100
119
  ),
101
120
  icon: (
102
- _alias: ':where(svg, [data-icon])',
103
- margin: var(--input-spacing-top) var(--input-spacing-right)
104
- var(--input-spacing-bottom) var(--input-spacing-left),
121
+ _alias: '> div > :where(svg, [data-icon])',
105
122
  position: var(--input-icon-position),
106
123
  width: var(--input-icon-width),
107
- height: var(--input-icon-height),
108
- padding: var(--input-icon-padding),
124
+ height: var(--input-min-height),
125
+ margin: var(--input-icon-margin),
109
126
  pointer-events: var(--input-icon-pointer-events),
110
127
  ),
111
- icon-right: (
128
+ icon-after: (
112
129
  _alias: 'select + :where(svg, [data-icon])',
113
130
  right: 0,
114
131
  ),
@@ -163,10 +180,10 @@ $vv-select: (
163
180
  ),
164
181
  ),
165
182
  ),
166
- icon-left: (
183
+ icon-before: (
167
184
  --input-spacing-left: calc(var(--spacing-sm) * 2 + 1em),
168
185
  ),
169
- icon-right: (
186
+ icon-after: (
170
187
  --input-spacing-right: calc(var(--spacing-sm) * 2 + 1em),
171
188
  ),
172
189
  valid: (
@@ -182,7 +199,7 @@ $vv-select: (
182
199
  hint: (
183
200
  color: var(--input-valid-color),
184
201
  ),
185
- icon-right: (
202
+ icon-after: (
186
203
  color: var(--input-valid-color),
187
204
  ),
188
205
  ),
@@ -200,7 +217,7 @@ $vv-select: (
200
217
  hint: (
201
218
  color: var(--input-invalid-color),
202
219
  ),
203
- icon-right: (
220
+ icon-after: (
204
221
  color: var(--input-invalid-color),
205
222
  ),
206
223
  ),
@@ -26,6 +26,11 @@ $vv-textarea: (
26
26
  font-size: var(--input-hint-font-size),
27
27
  color: var(--input-hint-color),
28
28
  ),
29
+ inner: (
30
+ position: relative,
31
+ display: flex,
32
+ flex: 1,
33
+ ),
29
34
  wrapper: (
30
35
  position: relative,
31
36
  display: flex,
@@ -79,7 +84,7 @@ $vv-textarea: (
79
84
  pseudo: (
80
85
  placeholder: (
81
86
  color: var(--input-placeholder-color),
82
- text-overlow: ellipsis,
87
+ text-overflow: ellipsis,
83
88
  ),
84
89
  ),
85
90
  state: (
@@ -91,17 +96,27 @@ $vv-textarea: (
91
96
  ),
92
97
  ),
93
98
  ),
99
+ input-before: (
100
+ display: flex,
101
+ align-items: center,
102
+ margin-top: var(--input-spacing-top),
103
+ margin-left: var(--input-spacing-left),
104
+ ),
105
+ input-after: (
106
+ display: flex,
107
+ align-items: center,
108
+ margin-top: var(--input-spacing-top),
109
+ margin-right: var(--input-spacing-right),
110
+ ),
94
111
  icon: (
95
- _alias: ':where(svg, [data-icon])',
96
- margin: var(--input-spacing-top) var(--input-spacing-right)
97
- var(--input-spacing-bottom) var(--input-spacing-left),
112
+ _alias: '> div > :where(svg, [data-icon])',
98
113
  position: var(--input-icon-position),
99
114
  width: var(--input-icon-width),
100
- height: var(--input-icon-height),
101
- padding: var(--input-icon-padding),
115
+ height: var(--input-min-height),
116
+ margin: var(--input-icon-margin),
102
117
  pointer-events: var(--input-icon-pointer-events),
103
118
  ),
104
- icon-right: (
119
+ icon-after: (
105
120
  _alias: 'textarea + :where(svg, [data-icon])',
106
121
  right: 0,
107
122
  ),
@@ -127,10 +142,10 @@ $vv-textarea: (
127
142
  ),
128
143
  ),
129
144
  modifier: (
130
- icon-left: (
145
+ icon-before: (
131
146
  --input-spacing-left: calc(var(--spacing-sm) * 2 + 1em),
132
147
  ),
133
- icon-right: (
148
+ icon-after: (
134
149
  --input-spacing-right: calc(var(--spacing-sm) * 2 + 1em),
135
150
  ),
136
151
  resizable: (
@@ -156,7 +171,7 @@ $vv-textarea: (
156
171
  limit: (
157
172
  color: var(--input-valid-color),
158
173
  ),
159
- icon-right: (
174
+ icon-after: (
160
175
  color: var(--input-valid-color),
161
176
  ),
162
177
  ),
@@ -177,7 +192,7 @@ $vv-textarea: (
177
192
  limit: (
178
193
  color: var(--input-invalid-color),
179
194
  ),
180
- icon-right: (
195
+ icon-after: (
181
196
  color: var(--input-invalid-color),
182
197
  ),
183
198
  ),
@@ -179,6 +179,22 @@
179
179
  @return $string;
180
180
  }
181
181
 
182
+ @function str-split($string, $separator) {
183
+ $split-arr: ();
184
+ $index: string.index($string, $separator);
185
+
186
+ @while $index != null {
187
+ $item: string.slice($string, 1, $index - 1);
188
+ $split-arr: list.append($split-arr, $item);
189
+ $string: string.slice($string, $index + 1);
190
+ $index: string.index($string, $separator);
191
+ }
192
+
193
+ $split-arr: list.append($split-arr, $string);
194
+
195
+ @return $split-arr;
196
+ }
197
+
182
198
  @function list-to-string($list, $glue: ', ') {
183
199
  $result: null;
184
200
 
@@ -422,6 +422,7 @@
422
422
  disabled,
423
423
  checked,
424
424
  checked-within,
425
+ selected,
425
426
  readonly,
426
427
  empty,
427
428
  placeholder-shown,
@@ -569,6 +570,18 @@
569
570
  '#{$modifier}#{$alias}[aria-pressed="true"]'
570
571
  );
571
572
  }
573
+ } @else if $state == 'selected' {
574
+ $selectors: list.join(
575
+ $selectors,
576
+ '#{$modifier}#{$block-item}[aria-selected="true"]'
577
+ );
578
+
579
+ @if $alias {
580
+ $selectors: list.join(
581
+ $selectors,
582
+ '#{$modifier}#{$alias}[aria-selected="true"]'
583
+ );
584
+ }
572
585
  } @else if $state != 'current' {
573
586
  $selectors: list.join(
574
587
  $selectors,
@@ -675,6 +688,7 @@
675
688
  progress-bar,
676
689
  progress-value,
677
690
  progress-inner-element,
691
+ datetime-edit,
678
692
  datetime-edit-fields-wrapper,
679
693
  datetime-edit-day-field
680
694
  ),
@@ -739,6 +753,7 @@
739
753
  progress-value,
740
754
  inner-element,
741
755
  marker,
756
+ datetime-edit,
742
757
  datetime-edit-fields-wrapper,
743
758
  datetime-edit-day-field,
744
759
  -webkit-progress-bar,
@@ -14,15 +14,9 @@
14
14
  // container
15
15
  %container {
16
16
  width: 100%;
17
-
18
- @each $breakpoint, $value in $breakpoints {
19
- @if $value > 0 {
20
- @include media-breakpoint-up($breakpoint, $breakpoints) {
21
- max-width: $value;
22
- }
23
- }
24
- }
17
+ max-width: var(--breakpoint-value, 100%);
25
18
  }
19
+
26
20
  @include wrap-with-where(
27
21
  $selector: '.container',
28
22
  $enabled: $zero-specificity-for-utilities
@@ -52,7 +52,7 @@
52
52
  // translate
53
53
  @each $size, $value in $translate {
54
54
  %translate-#{$size} {
55
- transform: translate(#{$value});
55
+ transform: translate(#{$value}, #{$value});
56
56
  }
57
57
  @include wrap-with-where(
58
58
  $selector: '.translate-#{$size}',
@@ -82,7 +82,7 @@
82
82
  }
83
83
 
84
84
  %-translate-#{$size} {
85
- transform: translate(-#{$value});
85
+ transform: translate(-#{$value}, -#{$value});
86
86
  }
87
87
  @include wrap-with-where(
88
88
  $selector: '.-translate-#{$size}',
package/src/volver.scss CHANGED
@@ -1,8 +1,5 @@
1
- // reset
2
- @use 'reset';
3
-
4
- // props
5
- @use 'props';
1
+ // base
2
+ @use 'base';
6
3
 
7
4
  // components
8
5
  @use 'components';