@volverjs/style 0.1.6 → 0.1.7

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 (39) hide show
  1. package/dist/components/vv-avatar-group.css +1 -0
  2. package/dist/components/vv-avatar.css +1 -1
  3. package/dist/components/vv-badge.css +1 -1
  4. package/dist/components/vv-button.css +1 -1
  5. package/dist/components/vv-dropdown-action.css +1 -0
  6. package/dist/components/vv-dropdown.css +1 -1
  7. package/dist/components/vv-input-text.css +1 -1
  8. package/dist/components/vv-select.css +1 -1
  9. package/dist/components/vv-textarea.css +1 -1
  10. package/dist/components.css +1 -1
  11. package/dist/export.css +1 -1
  12. package/dist/props/input.css +1 -1
  13. package/dist/props/transitions.css +1 -1
  14. package/dist/props.css +1 -1
  15. package/dist/utilities/transforms.css +1 -1
  16. package/dist/utilities/transitions.css +1 -1
  17. package/dist/utilities.css +1 -1
  18. package/dist/volver.css +1 -1
  19. package/package.json +5 -1
  20. package/src/_config.scss +2 -0
  21. package/src/components/index.scss +2 -0
  22. package/src/components/vv-avatar-group.scss +13 -0
  23. package/src/components/vv-dropdown-action.scss +13 -0
  24. package/src/props/transitions.scss +11 -5
  25. package/src/settings/_index.scss +2 -0
  26. package/src/settings/_input.scss +1 -3
  27. package/src/settings/_transitions.scss +0 -2
  28. package/src/settings/components/_vv-avatar-group.scss +23 -0
  29. package/src/settings/components/_vv-avatar.scss +118 -20
  30. package/src/settings/components/_vv-badge.scss +27 -0
  31. package/src/settings/components/_vv-button.scss +5 -5
  32. package/src/settings/components/_vv-dropdown-action.scss +52 -0
  33. package/src/settings/components/_vv-dropdown.scss +92 -17
  34. package/src/settings/components/_vv-input-text.scss +28 -17
  35. package/src/settings/components/_vv-select.scss +30 -13
  36. package/src/settings/components/_vv-textarea.scss +26 -11
  37. package/src/tools/_functions.scss +16 -0
  38. package/src/tools/_mixins.scss +15 -0
  39. package/src/utilities/transforms.scss +2 -2
package/package.json CHANGED
@@ -24,7 +24,7 @@
24
24
  "bugs": {
25
25
  "url": "https://github.com/volverjs/style/issues"
26
26
  },
27
- "version": "0.1.6",
27
+ "version": "0.1.7",
28
28
  "engines": {
29
29
  "node": ">= 12.x"
30
30
  },
@@ -95,6 +95,8 @@
95
95
  "./scss/components/vv-accordion": "./src/components/vv-accordion.scss",
96
96
  "./components/vv-alert": "./dist/components/vv-alert.css",
97
97
  "./scss/components/vv-alert": "./src/components/vv-alert.scss",
98
+ "./components/vv-avatar-group": "./dist/components/vv-avatar-group.css",
99
+ "./scss/components/vv-avatar-group": "./src/components/vv-avatar-group.scss",
98
100
  "./components/vv-avatar": "./dist/components/vv-avatar.css",
99
101
  "./scss/components/vv-avatar": "./src/components/vv-avatar.scss",
100
102
  "./components/vv-badge": "./dist/components/vv-badge.css",
@@ -113,6 +115,8 @@
113
115
  "./scss/components/vv-checkbox": "./src/components/vv-checkbox.scss",
114
116
  "./components/vv-dialog": "./dist/components/vv-dialog.css",
115
117
  "./scss/components/vv-dialog": "./src/components/vv-dialog.scss",
118
+ "./components/vv-dropdown-action": "./dist/components/vv-dropdown-action.css",
119
+ "./scss/components/vv-dropdown-action": "./src/components/vv-dropdown-action.scss",
116
120
  "./components/vv-dropdown": "./dist/components/vv-dropdown.css",
117
121
  "./scss/components/vv-dropdown": "./src/components/vv-dropdown.scss",
118
122
  "./components/vv-input-text": "./dist/components/vv-input-text.css",
package/src/_config.scss CHANGED
@@ -22,11 +22,13 @@ $components-names: (
22
22
  vv-card: $components-prefix + -card,
23
23
  vv-dialog: $components-prefix + -dialog,
24
24
  vv-dropdown: $components-prefix + -dropdown,
25
+ vv-dropdown-action: $components-prefix + -dropdown-action,
25
26
  vv-checkbox-group: $components-prefix + -checkbox-group,
26
27
  vv-checkbox: $components-prefix + -checkbox,
27
28
  vv-radio-group: $components-prefix + -radio-group,
28
29
  vv-radio: $components-prefix + -radio,
29
30
  vv-avatar: $components-prefix + -avatar,
31
+ vv-avatar-group: $components-prefix + -avatar-group,
30
32
  vv-input-text: $components-prefix + -input-text,
31
33
  vv-nav: $components-prefix + -nav,
32
34
  vv-progress: $components-prefix + -progress,
@@ -8,11 +8,13 @@
8
8
  @use 'vv-card';
9
9
  @use 'vv-dialog';
10
10
  @use 'vv-dropdown';
11
+ @use 'vv-dropdown-action';
11
12
  @use 'vv-checkbox-group';
12
13
  @use 'vv-checkbox';
13
14
  @use 'vv-radio-group';
14
15
  @use 'vv-radio';
15
16
  @use 'vv-avatar';
17
+ @use 'vv-avatar-group';
16
18
  @use 'vv-input-text';
17
19
  @use 'vv-nav';
18
20
  @use 'vv-progress';
@@ -0,0 +1,13 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ $component-name: map.get($components-names, vv-avatar-group);
5
+ $component-map: $vv-avatar-group;
6
+
7
+ @include spread-map-into-bem(
8
+ $map: $component-map,
9
+ $block: $component-name,
10
+ $props: $use-custom-props-for-components,
11
+ $zero-specificity: $zero-specificity-for-components,
12
+ $bps: $breakpoints
13
+ );
@@ -0,0 +1,13 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ $component-name: map.get($components-names, vv-dropdown-action);
5
+ $component-map: $vv-dropdown-action;
6
+
7
+ @include spread-map-into-bem(
8
+ $map: $component-map,
9
+ $block: $component-name,
10
+ $props: $use-custom-props-for-components,
11
+ $zero-specificity: $zero-specificity-for-components,
12
+ $bps: $breakpoints
13
+ );
@@ -1,4 +1,5 @@
1
1
  @use '../context' as *;
2
+ @use 'sass:string';
2
3
 
3
4
  :where(:host, :root, .theme) {
4
5
  // animation
@@ -27,11 +28,16 @@
27
28
  // transition
28
29
  @each $property, $value in $transition-property {
29
30
  @if $property != 'none' {
30
- --transition-#{$property}: var(
31
- --transition-property-#{$property}
32
- )
33
- var(--duration-300)
34
- var(--ease-in-out);
31
+ $transition: '';
32
+ @each $prop in str-split($value, ', ') {
33
+ $transition: $transition +
34
+ $prop +
35
+ ' var(--duration-300) var(--ease-in-out), ';
36
+ }
37
+
38
+ $transition: string.slice($transition, 1, -3);
39
+
40
+ --transition-#{$property}: #{$transition};
35
41
  } @else {
36
42
  --transition-#{$property}: none;
37
43
  }
@@ -28,11 +28,13 @@
28
28
  @forward 'components/vv-card';
29
29
  @forward 'components/vv-dialog';
30
30
  @forward 'components/vv-dropdown';
31
+ @forward 'components/vv-dropdown-action';
31
32
  @forward 'components/vv-checkbox-group';
32
33
  @forward 'components/vv-checkbox';
33
34
  @forward 'components/vv-radio-group';
34
35
  @forward 'components/vv-radio';
35
36
  @forward 'components/vv-avatar';
37
+ @forward 'components/vv-avatar-group';
36
38
  @forward 'components/vv-input-text';
37
39
  @forward 'components/vv-nav';
38
40
  @forward 'components/vv-progress';
@@ -27,10 +27,8 @@ $input: (
27
27
  icon: (
28
28
  position: absolute,
29
29
  width: 1em,
30
- height: calc(var(--input-icon-width) * var(--input-line-height)),
31
- padding: calc((var(--input-icon-height) - var(--input-icon-width)) / 2)
32
- 0,
33
30
  pointer-events: none,
31
+ margin: 0 var(--spacing-sm),
34
32
  ),
35
33
  hint: (
36
34
  display: block,
@@ -2,8 +2,6 @@
2
2
  $transition-property: (
3
3
  none: none,
4
4
  all: all,
5
- transition:
6
- 'color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter',
7
5
  colors:
8
6
  'color, background-color, border-color, text-decoration-color, fill, stroke',
9
7
  opacity: opacity,
@@ -0,0 +1,23 @@
1
+ $vv-avatar-group: (
2
+ --avatar-group-spacing: var(--spacing-9),
3
+ display: flex,
4
+ align-items: flex-end,
5
+ element: (
6
+ item: (
7
+ _alias: '> *',
8
+ box-shadow: var(--shadow-md),
9
+ ),
10
+ item-not-first: (
11
+ _alias: '> *:not(:first-child)',
12
+ [margin-left]: calc(-1 * var(--avatar-group-spacing)),
13
+ ),
14
+ ),
15
+ modifier: (
16
+ tight: (
17
+ --avatar-group-spacing: var(--spacing-12),
18
+ ),
19
+ relaxed: (
20
+ --avatar-group-spacing: var(--spacing-6),
21
+ ),
22
+ ),
23
+ ) !default;
@@ -1,4 +1,11 @@
1
1
  $vv-avatar: (
2
+ --avatar-background-color: var(--color-brand),
3
+ --avatar-color: var(--color-white),
4
+ --avatar-border-radius: var(--rounded),
5
+ --avatar-border-color: var(--color-brand-darken-3),
6
+ [background-color]: var(--avatar-background-color),
7
+ [border-radius]: var(--avatar-border-radius),
8
+ [color]: var(--avatar-color),
2
9
  display: inline-flex,
3
10
  position: relative,
4
11
  justify-content: center,
@@ -7,28 +14,10 @@ $vv-avatar: (
7
14
  line-height: var(--leading-none),
8
15
  width: var(--spacing-28),
9
16
  height: var(--spacing-28),
10
- border-radius: var(--rounded),
11
17
  background-position: center,
12
18
  background-size: contain,
13
19
  background-repeat: no-repeat,
14
- color: var(--color-white),
15
20
  object-fit: contain,
16
- modifier: (
17
- rounded: (
18
- border-radius: var(--rounded-full),
19
- overflow: hidden,
20
- ),
21
- md: (
22
- font-size: var(--text-14),
23
- width: var(--spacing-34),
24
- height: var(--spacing-34),
25
- ),
26
- lg: (
27
- font-size: var(--text-16),
28
- width: var(--spacing-40),
29
- height: var(--spacing-40),
30
- ),
31
- ),
32
21
  state: (
33
22
  focus: (
34
23
  outline: var(--spacing-px) solid var(--color-brand),
@@ -41,15 +30,124 @@ $vv-avatar: (
41
30
  position: absolute,
42
31
  top: 0,
43
32
  right: 0,
44
- transform: translate(50%, -50%),
33
+ transform: translate(50%, -33.3%),
34
+ box-shadow: var(--shadow-sm),
35
+ ),
36
+ badge-bottom: (
37
+ _alias: '> sub',
38
+ position: absolute,
39
+ bottom: 0,
40
+ right: 0,
41
+ transform: translate(50%, 33.3%),
45
42
  box-shadow: var(--shadow-sm),
46
43
  ),
47
44
  image: (
48
45
  _alias: '> img',
49
46
  width: 100%,
50
47
  height: 100%,
51
- border-radius: inherit,
52
48
  object-fit: inherit,
49
+ [border-radius]: var(--avatar-border-radius),
50
+ overflow: hidden,
51
+ ),
52
+ ),
53
+ modifier: (
54
+ rounded: (
55
+ --avatar-border-radius: var(--rounded-full),
56
+ ),
57
+ square: (
58
+ --avatar-border-radius: var(--rounded-none),
59
+ ),
60
+ bordered: (
61
+ [border-color]: var(--avatar-border-color),
62
+ border-width: var(--border),
63
+ border-style: solid,
64
+ ),
65
+ md: (
66
+ font-size: var(--text-14),
67
+ width: var(--spacing-34),
68
+ height: var(--spacing-34),
69
+ ),
70
+ lg: (
71
+ font-size: var(--text-16),
72
+ width: var(--spacing-40),
73
+ height: var(--spacing-40),
74
+ ),
75
+ transparent: (
76
+ --avatar-background-color: var(--color-transparent),
77
+ ),
78
+ surface: (
79
+ --avatar-background-color: var(--color-surface-1),
80
+ --avatar-border-color: var(--color-surface-3),
81
+ --avatar-color: var(--color-word-2),
82
+ ),
83
+ danger: (
84
+ --avatar-background-color: var(--color-danger),
85
+ --avatar-border-color: var(--color-danger-darken-3),
86
+ ),
87
+ success: (
88
+ --avatar-background-color: var(--color-success),
89
+ --avatar-border-color: var(--color-success-darken-3),
90
+ ),
91
+ warning: (
92
+ --avatar-background-color: var(--color-warning),
93
+ --avatar-border-color: var(--color-warning-darken-3),
94
+ ),
95
+ info: (
96
+ --avatar-background-color: var(--color-info),
97
+ --avatar-border-color: var(--color-info-darken-3),
98
+ ),
99
+ accent: (
100
+ --avatar-background-color: var(--color-accent),
101
+ --avatar-border-color: var(--color-accent-darken-3),
102
+ ),
103
+ gray: (
104
+ --avatar-background-color: var(--color-gray),
105
+ --avatar-border-color: var(--color-gray-darken-3),
106
+ ),
107
+ ring: (
108
+ --avatar-color: var(--color-brand),
109
+ --avatar-background-color: var(--color-surface-brand),
110
+ --avatar-border-color: var(--color-brand),
111
+ [border-color]: var(--avatar-border-color),
112
+ border-width: var(--border),
113
+ border-style: solid,
114
+ modifier: (
115
+ surface: (
116
+ --avatar-background-color: var(--color-surface),
117
+ --avatar-border-color: var(--color-surface-5),
118
+ --avatar-color: var(--color-word-2),
119
+ ),
120
+ danger: (
121
+ --avatar-background-color: var(--color-surface-danger),
122
+ --avatar-border-color: var(--color-danger),
123
+ --avatar-color: var(--color-danger),
124
+ ),
125
+ success: (
126
+ --avatar-background-color: var(--color-surface-success),
127
+ --avatar-border-color: var(--color-success),
128
+ --avatar-color: var(--color-success),
129
+ ),
130
+ warning: (
131
+ --avatar-background-color: var(--color-surface-warning),
132
+ --avatar-border-color: var(--color-warning),
133
+ --avatar-color: var(--color-warning),
134
+ ),
135
+ info: (
136
+ --avatar-background-color: var(--color-surface-info),
137
+ --avatar-border-color: var(--color-info),
138
+ --avatar-color: var(--color-info),
139
+ ),
140
+ accent: (
141
+ --avatar-background-color: var(--color-surface-accent),
142
+ --avatar-border-color: var(--color-accent),
143
+ --avatar-color: var(--color-accent),
144
+ ),
145
+ gray: (
146
+ --avatar-background-color: var(--color-surface-4),
147
+ --avatar-border-color: var(--color-gray),
148
+ --avatar-color: var(--color-word-2),
149
+ ),
150
+ ),
53
151
  ),
54
152
  ),
55
153
  ) !default;
@@ -22,6 +22,8 @@ $vv-badge: (
22
22
  font-weight: var(--font-normal),
23
23
  text-shadow: none,
24
24
  line-height: var(--leading-none),
25
+ overflow: hidden,
26
+ flex-shrink: 0,
25
27
  state: (
26
28
  empty: (
27
29
  font-size: inherit,
@@ -32,8 +34,33 @@ $vv-badge: (
32
34
  [border-radius]: calc(var(--badge-font-size) * 0.5),
33
35
  padding: 0,
34
36
  ),
37
+ focus-within: (
38
+ outline-offset: var(--spacing-4),
39
+ [outline]: var(--spacing-px) solid var(--badge-background-color),
40
+ ),
41
+ ),
42
+ element: (
43
+ button: (
44
+ _alias: '> button',
45
+ cursor: pointer,
46
+ padding: 0 0.5em,
47
+ margin: 0 -0.5em,
48
+ min-height: 2em,
49
+ transition: var(--transition-colors),
50
+ state: (
51
+ hover: (
52
+ background-color: var(--color-alpha-3),
53
+ ),
54
+ active: (
55
+ background-color: var(--color-alpha-5),
56
+ ),
57
+ ),
58
+ ),
35
59
  ),
36
60
  modifier: (
61
+ action: (
62
+ gap: calc(0.5ch + 0.5em),
63
+ ),
37
64
  sm: (
38
65
  --badge-font-size: 0.6rem,
39
66
  ),
@@ -47,11 +47,7 @@ $vv-button: (
47
47
  block-size: 1.1em,
48
48
  inline-size: 1.1em,
49
49
  margin: 0,
50
- stroke: currentcolor,
51
- fill: none,
52
50
  flex-shrink: 0,
53
- stroke-linecap: round,
54
- stroke-linejoin: round,
55
51
  [min-height]: calc(1em * var(--button-line-height)),
56
52
  ),
57
53
  label: (
@@ -176,6 +172,11 @@ $vv-button: (
176
172
  color: var(--color-brand-darken-3),
177
173
  ),
178
174
  ),
175
+ element: (
176
+ icon: (
177
+ margin: var(--spacing-0),
178
+ ),
179
+ ),
179
180
  ),
180
181
  static-light: (
181
182
  background: var(--color-white),
@@ -300,7 +301,6 @@ $vv-button: (
300
301
  border-radius: var(--rounded-full),
301
302
  ),
302
303
  block: (
303
- display: block,
304
304
  width: 100%,
305
305
  max-width: auto,
306
306
  ),
@@ -0,0 +1,52 @@
1
+ $vv-dropdown-action: (
2
+ display: flex,
3
+ min-width: 0,
4
+ overflow: hidden,
5
+ gap: var(--spacing-sm),
6
+ align-items: center,
7
+ padding: var(--spacing-sm),
8
+ state: (
9
+ disabled: (
10
+ opacity: var(--opacity-50),
11
+ cursor: not-allowed,
12
+ pointer-events: none,
13
+ ),
14
+ focus-visible: (
15
+ background-color: var(--color-surface-success),
16
+ color: var(--color-success),
17
+ element: (
18
+ hint: (
19
+ opacity: var(--opacity-100),
20
+ ),
21
+ ),
22
+ ),
23
+ selected: (
24
+ font-weight: var(--font-bold),
25
+ background-color: var(--color-surface-brand),
26
+ color: var(--color-brand),
27
+ ),
28
+ ),
29
+ modifier: (
30
+ unselectable: (
31
+ state: (
32
+ focus-visible: (
33
+ background-color: var(--color-surface-danger),
34
+ color: var(--color-danger),
35
+ ),
36
+ ),
37
+ ),
38
+ ),
39
+ element: (
40
+ hint: (
41
+ opacity: var(--opacity-0),
42
+ transition: var(--transition-opacity),
43
+ will-change: opacity,
44
+ margin-left: auto,
45
+ font-size: 0.8em,
46
+ font-weight: var(--font-normal),
47
+ text-overflow: ellipsis,
48
+ white-space: nowrap,
49
+ overflow: hidden,
50
+ ),
51
+ ),
52
+ ) !default;
@@ -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
+ overflow: auto,
9
10
  element: (
11
+ list: (
12
+ _alias: 'ul',
13
+ [border-radius]: var(--dropdown-border-radius),
14
+ background-color: var(--color-surface-1),
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;