@oruga-ui/theme-oruga 0.7.1 → 0.8.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 (45) hide show
  1. package/README.md +4 -4
  2. package/dist/scss/components/_autocomplete.scss +3 -12
  3. package/dist/scss/components/_breadcrumb.scss +122 -103
  4. package/dist/scss/components/_button.scss +228 -173
  5. package/dist/scss/components/_carousel.scss +164 -142
  6. package/dist/scss/components/_checkbox.scss +118 -118
  7. package/dist/scss/components/_collapse.scss +1 -1
  8. package/dist/scss/components/_datepicker.scss +228 -290
  9. package/dist/scss/components/_datetimepicker.scss +8 -2
  10. package/dist/scss/components/_dropdown.scss +191 -164
  11. package/dist/scss/components/_field.scss +68 -39
  12. package/dist/scss/components/_icon.scss +24 -29
  13. package/dist/scss/components/_input.scss +112 -97
  14. package/dist/scss/components/_loading.scss +35 -15
  15. package/dist/scss/components/_menu.scss +113 -109
  16. package/dist/scss/components/_modal.scss +112 -50
  17. package/dist/scss/components/_notification.scss +113 -97
  18. package/dist/scss/components/_pagination.scss +173 -106
  19. package/dist/scss/components/_radio.scss +91 -84
  20. package/dist/scss/components/_select.scss +108 -115
  21. package/dist/scss/components/_sidebar.scss +102 -101
  22. package/dist/scss/components/_skeleton.scss +50 -39
  23. package/dist/scss/components/_slider.scss +221 -159
  24. package/dist/scss/components/_steps.scss +223 -261
  25. package/dist/scss/components/_switch.scss +126 -90
  26. package/dist/scss/components/_table.scss +307 -251
  27. package/dist/scss/components/_tabs.scss +360 -247
  28. package/dist/scss/components/_tag.scss +95 -39
  29. package/dist/scss/components/_taginput.scss +48 -36
  30. package/dist/scss/components/_timepicker.scss +61 -62
  31. package/dist/scss/components/_tooltip.scss +129 -254
  32. package/dist/scss/components/_upload.scss +83 -35
  33. package/dist/scss/theme-build.scss +9 -0
  34. package/dist/scss/theme.scss +42 -0
  35. package/dist/scss/utils/_animations.scss +30 -9
  36. package/dist/scss/utils/_base.scss +6 -4
  37. package/dist/scss/utils/_helpers.scss +84 -22
  38. package/dist/scss/utils/_root.scss +82 -29
  39. package/dist/scss/utils/_variables.scss +64 -42
  40. package/dist/theme.css +2 -0
  41. package/dist/theme.js +1 -1
  42. package/package.json +26 -19
  43. package/dist/oruga.css +0 -2
  44. package/dist/scss/oruga-build.scss +0 -9
  45. package/dist/scss/oruga.scss +0 -42
@@ -1,57 +1,52 @@
1
1
  @use "sass:list";
2
+ @use "../utils/helpers" as h;
3
+ @use "../utils/variables" as vars;
2
4
 
3
5
  /* @docs */
4
- $icon-spin-duration: 2s !default;
6
+ $icon-color: inherit;
7
+ $icon-font-size: inherit;
8
+ $icon-spin-animation-duration: 2s !default;
5
9
  /* @docs */
6
10
 
7
- @keyframes icon-spin {
8
- 0% {
9
- -webkit-transform: rotate(0deg);
10
- transform: rotate(0deg);
11
- }
12
-
13
- 100% {
14
- -webkit-transform: rotate(359deg);
15
- transform: rotate(359deg);
16
- }
17
- }
18
-
19
11
  .o-icon {
12
+ @include h.defineVar("icon-color", $icon-color);
13
+ @include h.defineVar("icon-font-size", $icon-font-size);
14
+ @include h.defineVar(
15
+ "icon-spin-animation-duration",
16
+ $icon-spin-animation-duration
17
+ );
18
+
20
19
  align-items: center;
21
20
  display: inline-flex;
22
21
  justify-content: center;
22
+ color: h.useVar("icon-color");
23
+ font-size: h.useVar("icon-font-size");
23
24
  transition:
24
- transform $animation-speed $animation-timing,
25
- opacity $animation-speed-fast $animation-timing;
25
+ transform h.useVar("animation-speed-fast") h.useVar("animation-timing"),
26
+ opacity h.useVar("animation-speed") h.useVar("animation-timing");
26
27
 
27
- // sizes
28
- @each $name, $value in $sizes {
28
+ // size variants
29
+ @each $name, $value in vars.$sizes {
29
30
  &--#{$name} {
30
- font-size: var(--#{$prefix}icon-font-size-#{$name}, $value);
31
+ @include h.defineVar("icon-font-size", h.useVar("size-#{$name}"));
31
32
  }
32
33
  }
33
34
 
34
35
  // color variants
35
- @each $name, $pair in $colors {
36
- $color: list.nth($pair, 1);
37
-
36
+ @each $name, $pair in vars.$colors {
38
37
  &--#{$name} {
39
- color: var(--#{$prefix}variant-#{$name}, $color);
38
+ @include h.defineVar("icon-color", h.useVar($name));
40
39
  }
41
40
  }
42
41
 
43
42
  &--clickable {
44
- pointer-events: auto;
45
- cursor: pointer;
43
+ @include h.clickable;
46
44
  }
47
45
 
48
46
  &--spin {
49
- animation-name: icon-spin;
47
+ animation-name: spinAround;
50
48
  animation-iteration-count: infinite;
51
49
  animation-timing-function: linear;
52
- animation-duration: var(
53
- --#{$prefix}icon-spin-duration,
54
- $icon-spin-duration
55
- );
50
+ animation-duration: h.useVar("icon-spin-animation-duration");
56
51
  }
57
52
  }
@@ -1,69 +1,120 @@
1
1
  @use "sass:list";
2
+ @use "../utils/helpers" as h;
3
+ @use "../utils/variables" as vars;
2
4
 
3
5
  /* @docs */
4
- $input-background-color: #ffffff !default;
5
- $input-border-color: var(--#{$prefix}grey-lighter) !default;
6
+ $input-color: h.useVar("font-color") !default;
7
+ $input-font-size: h.useVar("font-size") !default;
8
+ $input-font-weight: h.useVar("font-weight") !default;
9
+ $input-line-height: h.useVar("line-height") !default;
10
+ $input-height: h.useVar("control-height") !default;
11
+
12
+ $input-padding: h.useVar("control-padding-vertical")
13
+ h.useVar("control-padding-horizontal") !default;
14
+ $input-disabled-opacity: h.useVar("control-disabled-opacity") !default;
15
+
16
+ $input-box-shadow: h.useVar("control-box-shadow-inset") !default;
17
+ $input-border-width: h.useVar("control-border-width") !default;
6
18
  $input-border-style: solid !default;
7
- $input-border-width: 1px !default;
8
- $input-border-radius: var(--#{$prefix}base-border-radius) !default;
9
- $input-rounded-border-radius: var(
10
- --#{$prefix}base-border-radius-rounded
11
- ) !default;
12
- $input-box-shadow: $control-box-shadow !default;
13
- $input-color: #363636 !default;
14
- $input-icon-zindex: 4 !default;
15
- $input-height: $control-height !default;
16
- $input-line-height: var(--#{$prefix}base-line-height) !default;
17
- $input-margin: 0 !default;
18
- $input-padding: $control-padding-vertical $control-padding-horizontal !default;
19
- $input-counter-font-size: 0.75rem !default;
20
- $input-counter-margin: 0.25rem 0.5rem !default;
21
- $input-textarea-max-height: 600px !default;
19
+ $input-border-color: h.useVar("control-border-color") !default;
20
+ $input-border-radius: h.useVar("border-radius") !default;
21
+ $input-border-radius-rounded: h.useVar("border-radius-rounded") !default;
22
+ $input-background-color: h.useVar("control-brackground-color") !default;
23
+
22
24
  $input-textarea-min-height: 120px !default;
23
- $input-textarea-padding: 0.625em !default;
25
+ $input-textarea-max-height: 600px !default;
26
+ $input-textarea-padding: h.useVar("control-spacer") !default;
27
+
28
+ $input-counter-font-size: 0.75rem !default;
29
+ $input-counter-padding: 0.25rem 0.5rem !default;
24
30
  /* @docs */
25
31
 
26
32
  .o-input {
33
+ @include h.defineVar("input-height", $input-height);
34
+ @include h.defineVar("input-padding", $input-padding);
35
+ @include h.defineVar("input-disabled-opacity", $input-disabled-opacity);
36
+
37
+ @include h.defineVar("input-color", $input-color);
38
+ @include h.defineVar("input-font-size", $input-font-size);
39
+ @include h.defineVar("input-font-weight", $input-font-weight);
40
+ @include h.defineVar("input-line-height", $input-line-height);
41
+
42
+ @include h.defineVar("input-box-shadow", $input-box-shadow);
43
+ @include h.defineVar("input-background-color", $input-background-color);
44
+ @include h.defineVar("input-border-width", $input-border-width);
45
+ @include h.defineVar("input-border-style", $input-border-style);
46
+ @include h.defineVar("input-border-color", $input-border-color);
47
+ @include h.defineVar("input-border-radius", $input-border-radius);
48
+ @include h.defineVar(
49
+ "input-border-radius-rounded",
50
+ $input-border-radius-rounded
51
+ );
52
+
53
+ @include h.defineVar(
54
+ "input-textarea-min-height",
55
+ $input-textarea-min-height
56
+ );
57
+ @include h.defineVar(
58
+ "input-textarea-max-height",
59
+ $input-textarea-max-height
60
+ );
61
+ @include h.defineVar("input-textarea-padding", $input-textarea-padding);
62
+
63
+ @include h.defineVar("input-counter-font-size", $input-counter-font-size);
64
+ @include h.defineVar("input-counter-padding", $input-counter-padding);
65
+
66
+ // define focus shadow effect
67
+ @include h.focusable(".o-input__input");
68
+
69
+ // add clickable cursor
70
+ @include h.clickable;
71
+
27
72
  display: inline-block;
28
73
  position: relative;
29
74
 
75
+ // size variants
76
+ @each $name, $value in vars.$sizes {
77
+ &--#{$name} {
78
+ @include h.defineVar("input-font-size", h.useVar("size-#{$name}"));
79
+ }
80
+ }
81
+
82
+ // color variants
83
+ @each $name, $pair in vars.$colors {
84
+ &--#{$name} {
85
+ @include h.defineVar("input-border-color", h.useVar($name));
86
+ }
87
+ }
88
+
30
89
  &__input {
31
- -moz-appearance: none;
32
- -webkit-appearance: none;
33
- display: inline-flex;
90
+ // remove default appearance
91
+ @include h.removeAppearance;
92
+
93
+ display: inline-block;
34
94
  position: relative;
35
- vertical-align: top;
36
-
37
- color: var(--#{$prefix}input-color, $input-color);
38
- font-size: var(--#{$prefix}base-font-size, $base-font-size);
39
- box-shadow: var(--#{$prefix}input-box-shadow, $input-box-shadow);
40
- background-color: var(
41
- --#{$prefix}input-background-color,
42
- $input-background-color
43
- );
44
- border-color: var(--#{$prefix}input-border-color, $input-border-color);
45
- border-style: var(--#{$prefix}input-border-style, $input-border-style);
46
- border-width: var(--#{$prefix}input-border-width, $input-border-width);
47
- border-radius: var(
48
- --#{$prefix}input-border-radius,
49
- $input-border-radius
50
- );
51
95
 
52
- height: var(--#{$prefix}input-height, $input-height);
53
- line-height: var(--#{$prefix}input-line-height, $input-line-height);
54
- padding: var(--#{$prefix}input-padding, $input-padding);
55
- margin: var(--#{$prefix}input-margin, $input-margin);
96
+ height: h.useVar("input-height");
97
+ padding: h.useVar("input-padding");
98
+
99
+ color: h.useVar("input-color");
100
+ font-size: h.useVar("input-font-size");
101
+ font-weight: h.useVar("input-font-weight");
102
+ line-height: h.useVar("input-line-height");
103
+
104
+ box-shadow: h.useVar("input-box-shadow");
105
+ background-color: h.useVar("input-background-color");
106
+
107
+ border-color: h.useVar("input-border-color");
108
+ border-style: h.useVar("input-border-style");
109
+ border-width: h.useVar("input-border-width");
110
+ border-radius: h.useVar("input-border-radius");
56
111
 
57
112
  &--iconspace-left {
58
- padding-left: var(--#{$prefix}input-height, $input-height);
113
+ padding-left: h.useVar("input-height");
59
114
  }
60
115
 
61
116
  &--iconspace-right {
62
- padding-right: var(--#{$prefix}input-height, $input-height);
63
- }
64
-
65
- &[disabled] {
66
- cursor: inherit;
117
+ padding-right: h.useVar("input-height");
67
118
  }
68
119
  }
69
120
 
@@ -73,46 +124,23 @@ $input-textarea-padding: 0.625em !default;
73
124
  min-width: 100%;
74
125
  height: auto;
75
126
  resize: vertical;
76
- padding: var(
77
- --#{$prefix}input-textarea-padding,
78
- $input-textarea-padding
79
- );
127
+ padding: h.useVar("input-textarea-padding");
80
128
 
81
129
  &:not([rows]) {
82
- max-height: var(
83
- --#{$prefix}input-textarea-max-height,
84
- $input-textarea-max-height
85
- );
86
- min-height: var(
87
- --#{$prefix}input-textarea-min-height,
88
- $input-textarea-min-height
89
- );
130
+ max-height: h.useVar("input-textarea-max-height");
131
+ min-height: h.useVar("input-textarea-min-height");
90
132
  }
91
133
  }
92
134
 
93
- // size variants
94
- @each $name, $value in $sizes {
95
- &--#{$name} .o-input__input {
96
- font-size: var(--#{$prefix}input-font-size-#{$name}, $value);
97
- }
98
- }
99
-
100
- // colar variants
101
- @each $name, $pair in $colors {
102
- $color: list.nth($pair, 1);
103
-
104
- &--#{$name} .o-input__input {
105
- --#{$prefix}focus: #{createFocus($color)};
106
-
107
- border-color: var(--#{$prefix}variant-#{$name}, $color);
108
- }
135
+ &--rounded {
136
+ @include h.defineVar(
137
+ "input-border-radius",
138
+ h.useVar("input-border-radius-rounded")
139
+ );
109
140
  }
110
141
 
111
- &--rounded .o-input__input {
112
- border-radius: var(
113
- --#{$prefix}input-rounded-border-radius,
114
- $input-rounded-border-radius
115
- );
142
+ &--disabled {
143
+ @include h.disabled(h.useVar("input-disabled-opacity"));
116
144
  }
117
145
 
118
146
  &--expanded {
@@ -128,11 +156,9 @@ $input-textarea-padding: 0.625em !default;
128
156
  &__counter {
129
157
  display: block;
130
158
  float: right;
131
- font-size: var(
132
- --#{$prefix}input-counter-font-size,
133
- $input-counter-font-size
134
- );
135
- margin: var(--#{$prefix}input-counter-margin, $input-counter-margin);
159
+ font-size: h.useVar("input-counter-font-size");
160
+ padding: h.useVar("input-counter-padding");
161
+ height: h.useVar("input-height");
136
162
  }
137
163
 
138
164
  &__icon-left,
@@ -140,8 +166,7 @@ $input-textarea-padding: 0.625em !default;
140
166
  position: absolute;
141
167
  top: 0;
142
168
  height: 100%;
143
- width: var(--#{$prefix}input-height, $input-height);
144
- z-index: var(--#{$prefix}input-icon-zindex, $input-icon-zindex);
169
+ width: h.useVar("input-height");
145
170
  }
146
171
 
147
172
  &__icon-right {
@@ -151,14 +176,4 @@ $input-textarea-padding: 0.625em !default;
151
176
  &__icon-left {
152
177
  left: 0;
153
178
  }
154
-
155
- // focus effect
156
- &:focus,
157
- &:focus-visible,
158
- &:focus-within {
159
- .o-input__input {
160
- box-shadow: 0 0 0 0.25rem var(--#{$prefix}focus);
161
- outline: none;
162
- }
163
- }
164
179
  }
@@ -1,28 +1,44 @@
1
+ @use "sass:map";
2
+ @use "../utils/helpers" as h;
3
+ @use "../utils/variables" as vars;
4
+
1
5
  /* @docs */
2
- $loading-overlay-legacy: #7f7f7f !default;
3
- $loading-overlay: rgba(255, 255, 255, 0.5) !default;
4
- $loading-zindex: 29 !default;
5
- $loading-fullpage-zindex: 999 !default;
6
+ $loading-spacer: h.useVar("control-spacer") !default;
7
+ $loading-color: h.useVar("font-color") !default;
8
+ $loading-font-size: h.useVar("font-size") !default;
9
+ $loading-font-weight: h.useVar("font-weight") !default;
10
+ $loading-zindex: map.get(vars.$zindex, "sticky") !default;
11
+ $loading-fullpage-zindex: map.get(vars.$zindex, "fixed") !default;
12
+ $loading-overlay-background-color: rgba(255, 255, 255, 0.5) !default;
6
13
  /* @docs */
7
14
 
8
15
  .o-loading {
16
+ @include h.defineVar("loading-spacer", $loading-spacer);
17
+ @include h.defineVar("loading-color", $loading-color);
18
+ @include h.defineVar("loading-size", $loading-font-size);
19
+ @include h.defineVar("loading-weight", $loading-font-weight);
20
+ @include h.defineVar("loading-zindex", $loading-zindex);
21
+ @include h.defineVar("loading-fullpage-zindex", $loading-fullpage-zindex);
22
+ @include h.defineVar(
23
+ "loading-overlay-background-color",
24
+ $loading-overlay-background-color
25
+ );
26
+
9
27
  position: absolute;
10
28
  bottom: 0;
11
29
  left: 0;
12
30
  right: 0;
13
31
  top: 0;
14
- align-items: center;
15
32
  display: flex;
33
+ flex-direction: column;
34
+ align-items: center;
16
35
  justify-content: center;
17
36
  overflow: hidden;
18
- z-index: var(--#{$prefix}loading-zindex, $loading-zindex);
37
+ z-index: h.useVar("loading-zindex");
19
38
 
20
39
  &--fullpage {
21
40
  position: fixed;
22
- z-index: var(
23
- --#{$prefix}loading-fullpage-zindex,
24
- $loading-fullpage-zindex
25
- );
41
+ z-index: h.useVar("loading-fullpage-zindex");
26
42
  }
27
43
 
28
44
  &__overlay {
@@ -31,10 +47,14 @@ $loading-fullpage-zindex: 999 !default;
31
47
  left: 0;
32
48
  right: 0;
33
49
  top: 0;
34
- background: var(
35
- --#{$prefix}loading-overlay-legacy,
36
- $loading-overlay-legacy
37
- );
38
- background: var(--#{$prefix}loading-overlay, $loading-overlay);
50
+ background: h.useVar("loading-overlay-background-color");
51
+ }
52
+
53
+ &__label {
54
+ z-index: 1;
55
+ color: h.useVar("loading-color");
56
+ font-size: h.useVar("loading-size");
57
+ font-weight: h.useVar("loading-weight");
58
+ padding: 0 h.useVar("loading-spacer");
39
59
  }
40
60
  }
@@ -1,134 +1,138 @@
1
+ @use "../utils/helpers" as h;
2
+ @use "../utils/variables" as vars;
3
+
1
4
  /* @docs */
2
- $menu-item-color: var(--#{$prefix}grey-dark) !default;
3
- $menu-item-background-color: transparent !default;
4
- $menu-item-hover-color: var(--#{$prefix}white) !default;
5
- $menu-item-hover-background-color: var(--#{$prefix}secondary) !default;
6
- $menu-item-active-color: var(--#{$prefix}primary-invert) !default;
7
- $menu-item-active-background-color: var(--#{$prefix}primary) !default;
8
- $menu-item-disabled-color: var(--#{$prefix}grey-light) !default;
9
- $menu-list-border-left: 1px solid var(--#{$prefix}primary) !default;
10
- $menu-list-border-radius: var(--#{$prefix}base-border-radius) !default;
11
- $menu-list-line-height: 1.25em !default;
12
- $menu-item-padding: 0.5em 0.75em !default;
13
- $menu-nested-list-margin: 0.75em 1.25em !default;
14
- $menu-nested-list-padding-left: 0.75em !default;
15
- $menu-label-color: $grey !default;
16
- $menu-label-font-size: 0.75em !default;
17
- $menu-label-spacing: 1em !default;
18
- $menu-icon-spacer: 0.5rem !default;
19
- /* @docs */
5
+ $menu-spacer: 0.5rem !default;
6
+ $menu-border: 1px solid h.useVar("primary") !default;
7
+ $menu-disabled-opacity: h.useVar("control-disabled-opacity") !default;
20
8
 
21
- .o-menu {
22
- // size variants
23
- @each $name, $value in $sizes {
24
- &--#{$name} {
25
- font-size: var(--#{$prefix}menu-font-size-#{$name}, $value);
26
- }
27
- }
9
+ $menu-label-color: h.useVar("font-color") !default;
10
+ $menu-label-font-size: calc(h.useVar("font-size") * 0.75) !default;
11
+ $menu-label-font-weight: h.useVar("font-weight") !default;
12
+ $menu-label-line-heigth: h.useVar("line-heigth") !default;
28
13
 
29
- &__list,
30
- &__item {
31
- list-style: none;
32
- }
14
+ $menu-item-padding: 0.5em 0.75em !default;
15
+ $menu-item-color: h.useVar("font-color") !default;
16
+ $menu-item-font-size: h.useVar("font-size") !default;
17
+ $menu-item-font-weight: h.useVar("font-weight") !default;
18
+ $menu-item-line-heigth: h.useVar("line-heigth") !default;
33
19
 
34
- &__list {
35
- padding: unset;
36
- line-height: var(
37
- --#{$prefix}menu-list-line-height,
38
- $menu-list-line-height
39
- );
40
- padding-left: var(
41
- --#{$prefix}menu-nested-list-padding-left,
42
- $menu-nested-list-padding-left
43
- );
44
- }
20
+ $menu-item-border: unset !default;
21
+ $menu-item-border-radius: h.useVar("border-radius") !default;
22
+ $menu-item-background-color: transparent !default;
45
23
 
46
- &__item__submenu {
47
- border-left: var(
48
- --#{$prefix}menu-list-border-left,
49
- $menu-list-border-left
50
- );
51
- padding-left: var(
52
- --#{$prefix}menu-nested-list-padding-left,
53
- $menu-nested-list-padding-left
54
- );
55
- margin: var(
56
- --#{$prefix}menu-nested-list-margin,
57
- $menu-nested-list-margin
58
- );
59
- }
24
+ $menu-item-hover-color: h.useVar("white") !default;
25
+ $menu-item-hover-background-color: h.useVar("secondary") !default;
26
+ $menu-item-active-color: h.useVar("primary-invert") !default;
27
+ $menu-item-active-background-color: h.useVar("primary") !default;
28
+ /* @docs */
29
+
30
+ .o-menu {
31
+ @include h.defineVar("menu-spacer", $menu-spacer);
32
+ @include h.defineVar("menu-label-color", $menu-label-color);
33
+ @include h.defineVar("menu-label-font-size", $menu-label-font-size);
34
+ @include h.defineVar("menu-label-font-weight", $menu-label-font-weight);
35
+ @include h.defineVar("menu-label-line-heigth", $menu-label-line-heigth);
36
+ @include h.defineVar("menu-border", $menu-border);
37
+ @include h.defineVar("menu-item-padding", $menu-item-padding);
38
+ @include h.defineVar("menu-item-color", $menu-item-color);
39
+ @include h.defineVar("menu-item-font-weight", $menu-item-font-weight);
40
+ @include h.defineVar("menu-item-line-heigth", $menu-item-line-heigth);
41
+ @include h.defineVar("menu-item-border", $menu-item-border);
42
+ @include h.defineVar("menu-item-border-radius", $menu-item-border-radius);
43
+ @include h.defineVar(
44
+ "menu-item-background-color",
45
+ $menu-item-background-color
46
+ );
47
+ @include h.defineVar("menu-item-hover-color", $menu-item-hover-color);
48
+ @include h.defineVar(
49
+ "menu-item-hover-background-color",
50
+ $menu-item-hover-background-color
51
+ );
52
+ @include h.defineVar("menu-item-active-color", $menu-item-active-color);
53
+ @include h.defineVar(
54
+ "menu-item-active-background-color",
55
+ $menu-item-active-background-color
56
+ );
57
+ @include h.defineVar("menu-disabled-opacity", $menu-disabled-opacity);
60
58
 
61
59
  &__label {
62
60
  text-transform: uppercase;
63
- color: var(--#{$prefix}menu-label-color, $menu-label-color);
64
- font-size: var(--#{$prefix}menu-label-font-size, $menu-label-font-size);
61
+ color: h.useVar("menu-label-color");
62
+ font-size: h.useVar("menu-label-font-size");
63
+ font-weight: h.useVar("menu-label-font-weight");
64
+ line-height: h.useVar("menu-label-line-height");
65
65
 
66
66
  &:not(:first-child) {
67
- margin-top: var(
68
- --#{$prefix}menu-label-spacing,
69
- $menu-label-spacing
70
- );
67
+ padding-top: h.useVar("menu-spacer");
71
68
  }
72
69
 
73
70
  &:not(:last-child) {
74
- margin-bottom: var(
75
- --#{$prefix}menu-label-spacing,
76
- $menu-label-spacing
77
- );
71
+ padding-bottom: h.useVar("menu-spacer");
78
72
  }
79
73
  }
80
74
 
81
- &__item__button {
82
- -moz-appearance: none;
83
- -webkit-appearance: none;
84
- display: block;
75
+ &__list,
76
+ &__item {
85
77
  list-style: none;
86
- cursor: pointer;
87
- border: transparent;
88
- background-color: var(
89
- --#{$prefix}menu-item-background-color,
90
- $menu-item-background-color
91
- );
92
- color: var(--#{$prefix}menu-item-color, $menu-item-color);
93
- padding: var(--#{$prefix}menu-item-padding, $menu-item-padding);
94
- font-size: var(--#{$prefix}menu-item-size, $base-font-size);
95
- border-radius: var(
96
- --#{$prefix}menu-list-border-radius,
97
- $menu-list-border-radius
98
- );
99
-
100
- &:hover:not(&--active):not(&--disabled) {
101
- color: var(
102
- --#{$prefix}menu-item-hover-color,
103
- $menu-item-hover-color
104
- );
105
- background-color: var(
106
- --#{$prefix}menu-item-hover-background-color,
107
- $menu-item-hover-background-color
108
- );
109
- }
78
+ padding: unset;
79
+ margin: unset;
80
+ }
110
81
 
111
- &--icon .o-icon {
112
- margin-right: var(--#{$prefix}menu-icon-spacer, $menu-icon-spacer);
82
+ &__item {
83
+ &__submenu {
84
+ border-left: h.useVar("menu-border");
85
+ padding-left: h.useVar("menu-spacer");
86
+ margin: calc(1.5 * h.useVar("menu-spacer"))
87
+ calc(2.5 * h.useVar("menu-spacer"));
113
88
  }
114
89
 
115
- &--active {
116
- color: var(
117
- --#{$prefix}menu-item-active-color,
118
- $menu-item-active-color
119
- );
120
- background-color: var(
121
- --#{$prefix}menu-item-active-background-color,
122
- $menu-item-active-background-color
123
- );
90
+ &__button {
91
+ // add clickable cursor
92
+ @include h.clickable;
93
+
94
+ // disable default appearance
95
+ appearance: none;
96
+ -moz-appearance: none;
97
+ -webkit-appearance: none;
98
+
99
+ display: block;
100
+ padding: h.useVar("menu-item-padding");
101
+
102
+ color: h.useVar("menu-item-color");
103
+ font-size: h.useVar("menu-item-font-size");
104
+ font-weight: h.useVar("menu-item-font-weight");
105
+ line-height: h.useVar("menu-item-line-height");
106
+
107
+ background-color: h.useVar("menu-item-background-color");
108
+ border: h.useVar("menu-item-border");
109
+ border-radius: h.useVar("menu-item-border-radius");
110
+
111
+ &--focused,
112
+ &:hover:not(&--active):not(&--disabled) {
113
+ color: h.useVar("menu-item-hover-color");
114
+ background-color: h.useVar("menu-item-hover-background-color");
115
+ }
116
+
117
+ &--active {
118
+ color: h.useVar("menu-item-active-color");
119
+ background-color: h.useVar("menu-item-active-background-color");
120
+ }
121
+
122
+ &--icon .o-icon {
123
+ margin-right: h.useVar("menu-spacer");
124
+ }
125
+
126
+ &--disabled {
127
+ @include h.disabled(h.useVar("menu-disabled-opacity"));
128
+ }
124
129
  }
130
+ }
125
131
 
126
- &--disabled {
127
- cursor: inherit;
128
- color: var(
129
- --#{$prefix}menu-item-disabled-color,
130
- $menu-item-disabled-color
131
- );
132
+ // size variants
133
+ @each $name, $value in vars.$sizes {
134
+ &--#{$name} {
135
+ @include h.defineVar("menu-font-size", h.useVar("size-#{$name}"));
132
136
  }
133
137
  }
134
138
  }