@graupl/core 1.0.0-beta.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 (303) hide show
  1. package/dist/css/base/button.css +2 -0
  2. package/dist/css/base/button.css.map +1 -0
  3. package/dist/css/base/form.css +2 -0
  4. package/dist/css/base/form.css.map +1 -0
  5. package/dist/css/base/link.css +2 -0
  6. package/dist/css/base/link.css.map +1 -0
  7. package/dist/css/base/table.css +2 -0
  8. package/dist/css/base/table.css.map +1 -0
  9. package/dist/css/base.css +2 -0
  10. package/dist/css/base.css.map +1 -0
  11. package/dist/css/component/accordion.css +5 -0
  12. package/dist/css/component/accordion.css.map +1 -0
  13. package/dist/css/component/alert.css +2 -0
  14. package/dist/css/component/alert.css.map +1 -0
  15. package/dist/css/component/card.css +2 -0
  16. package/dist/css/component/card.css.map +1 -0
  17. package/dist/css/component/carousel.css +2 -0
  18. package/dist/css/component/carousel.css.map +1 -0
  19. package/dist/css/component/input-group.css +2 -0
  20. package/dist/css/component/input-group.css.map +1 -0
  21. package/dist/css/component/list.css +2 -0
  22. package/dist/css/component/list.css.map +1 -0
  23. package/dist/css/component/menu.css +2 -0
  24. package/dist/css/component/menu.css.map +1 -0
  25. package/dist/css/component/navigation.css +2 -0
  26. package/dist/css/component/navigation.css.map +1 -0
  27. package/dist/css/component.css +5 -0
  28. package/dist/css/component.css.map +1 -0
  29. package/dist/css/graupl.css +5 -0
  30. package/dist/css/graupl.css.map +1 -0
  31. package/dist/css/init.css +2 -0
  32. package/dist/css/init.css.map +1 -0
  33. package/dist/css/layout/columns.css +2 -0
  34. package/dist/css/layout/columns.css.map +1 -0
  35. package/dist/css/layout/container.css +2 -0
  36. package/dist/css/layout/container.css.map +1 -0
  37. package/dist/css/layout/flex-columns.css +2 -0
  38. package/dist/css/layout/flex-columns.css.map +1 -0
  39. package/dist/css/layout.css +5 -0
  40. package/dist/css/layout.css.map +1 -0
  41. package/dist/css/normalize.css +2 -0
  42. package/dist/css/normalize.css.map +1 -0
  43. package/dist/css/state/focus.css +2 -0
  44. package/dist/css/state/focus.css.map +1 -0
  45. package/dist/css/state.css +2 -0
  46. package/dist/css/state.css.map +1 -0
  47. package/dist/css/theme/color.css +2 -0
  48. package/dist/css/theme/color.css.map +1 -0
  49. package/dist/css/theme/typography.css +2 -0
  50. package/dist/css/theme/typography.css.map +1 -0
  51. package/dist/css/theme.css +2 -0
  52. package/dist/css/theme.css.map +1 -0
  53. package/dist/css/utilities/alignment.css +2 -0
  54. package/dist/css/utilities/alignment.css.map +1 -0
  55. package/dist/css/utilities/background.css +2 -0
  56. package/dist/css/utilities/background.css.map +1 -0
  57. package/dist/css/utilities/border.css +2 -0
  58. package/dist/css/utilities/border.css.map +1 -0
  59. package/dist/css/utilities/color.css +2 -0
  60. package/dist/css/utilities/color.css.map +1 -0
  61. package/dist/css/utilities/container.css +2 -0
  62. package/dist/css/utilities/container.css.map +1 -0
  63. package/dist/css/utilities/display.css +2 -0
  64. package/dist/css/utilities/display.css.map +1 -0
  65. package/dist/css/utilities/flex.css +2 -0
  66. package/dist/css/utilities/flex.css.map +1 -0
  67. package/dist/css/utilities/gradient.css +2 -0
  68. package/dist/css/utilities/gradient.css.map +1 -0
  69. package/dist/css/utilities/height.css +2 -0
  70. package/dist/css/utilities/height.css.map +1 -0
  71. package/dist/css/utilities/inset.css +2 -0
  72. package/dist/css/utilities/inset.css.map +1 -0
  73. package/dist/css/utilities/justification.css +2 -0
  74. package/dist/css/utilities/justification.css.map +1 -0
  75. package/dist/css/utilities/list.css +2 -0
  76. package/dist/css/utilities/list.css.map +1 -0
  77. package/dist/css/utilities/order.css +2 -0
  78. package/dist/css/utilities/order.css.map +1 -0
  79. package/dist/css/utilities/position.css +2 -0
  80. package/dist/css/utilities/position.css.map +1 -0
  81. package/dist/css/utilities/ratio.css +2 -0
  82. package/dist/css/utilities/ratio.css.map +1 -0
  83. package/dist/css/utilities/spacing.css +2 -0
  84. package/dist/css/utilities/spacing.css.map +1 -0
  85. package/dist/css/utilities/typography.css +2 -0
  86. package/dist/css/utilities/typography.css.map +1 -0
  87. package/dist/css/utilities/visibility.css +2 -0
  88. package/dist/css/utilities/visibility.css.map +1 -0
  89. package/dist/css/utilities/visually-hidden.css +2 -0
  90. package/dist/css/utilities/visually-hidden.css.map +1 -0
  91. package/dist/css/utilities/width.css +2 -0
  92. package/dist/css/utilities/width.css.map +1 -0
  93. package/dist/css/utilities/z-index.css +2 -0
  94. package/dist/css/utilities/z-index.css.map +1 -0
  95. package/dist/css/utilities.css +2 -0
  96. package/dist/css/utilities.css.map +1 -0
  97. package/package.json +58 -0
  98. package/scss/base/button.scss +3 -0
  99. package/scss/base/form.scss +3 -0
  100. package/scss/base/link.scss +3 -0
  101. package/scss/base/table.scss +3 -0
  102. package/scss/base.scss +3 -0
  103. package/scss/component/accordion.scss +3 -0
  104. package/scss/component/alert.scss +3 -0
  105. package/scss/component/card.scss +3 -0
  106. package/scss/component/carousel.scss +3 -0
  107. package/scss/component/input-group.scss +3 -0
  108. package/scss/component/list.scss +3 -0
  109. package/scss/component/menu.scss +3 -0
  110. package/scss/component/navigation.scss +3 -0
  111. package/scss/component.scss +3 -0
  112. package/scss/graupl.scss +3 -0
  113. package/scss/init.scss +3 -0
  114. package/scss/layout/columns.scss +3 -0
  115. package/scss/layout/container.scss +3 -0
  116. package/scss/layout/flex-columns.scss +3 -0
  117. package/scss/layout.scss +3 -0
  118. package/scss/normalize.scss +3 -0
  119. package/scss/state/focus.scss +3 -0
  120. package/scss/state.scss +3 -0
  121. package/scss/theme/color.scss +3 -0
  122. package/scss/theme/typography.scss +3 -0
  123. package/scss/theme.scss +3 -0
  124. package/scss/utilities/alignment.scss +3 -0
  125. package/scss/utilities/background.scss +3 -0
  126. package/scss/utilities/border.scss +3 -0
  127. package/scss/utilities/color.scss +3 -0
  128. package/scss/utilities/container.scss +3 -0
  129. package/scss/utilities/display.scss +3 -0
  130. package/scss/utilities/flex.scss +3 -0
  131. package/scss/utilities/gradient.scss +3 -0
  132. package/scss/utilities/height.scss +3 -0
  133. package/scss/utilities/inset.scss +3 -0
  134. package/scss/utilities/justification.scss +3 -0
  135. package/scss/utilities/list.scss +3 -0
  136. package/scss/utilities/order.scss +3 -0
  137. package/scss/utilities/position.scss +3 -0
  138. package/scss/utilities/ratio.scss +3 -0
  139. package/scss/utilities/spacing.scss +3 -0
  140. package/scss/utilities/typography.scss +3 -0
  141. package/scss/utilities/visibility.scss +3 -0
  142. package/scss/utilities/visually-hidden.scss +3 -0
  143. package/scss/utilities/width.scss +3 -0
  144. package/scss/utilities/z-index.scss +3 -0
  145. package/scss/utilities.scss +3 -0
  146. package/src/js/accordion/Accordion.js +1163 -0
  147. package/src/js/accordion/AccordionItem.js +496 -0
  148. package/src/js/accordion/index.js +10 -0
  149. package/src/js/alert/Alert.js +581 -0
  150. package/src/js/alert/index.js +11 -0
  151. package/src/js/carousel/Carousel.js +1427 -0
  152. package/src/js/carousel/index.js +10 -0
  153. package/src/js/domHelpers.js +37 -0
  154. package/src/js/eventHandlers.js +39 -0
  155. package/src/js/navigation/index.js +36 -0
  156. package/src/js/storage.js +106 -0
  157. package/src/js/validate.js +225 -0
  158. package/src/scss/_defaults.scss +184 -0
  159. package/src/scss/_index.scss +15 -0
  160. package/src/scss/_init.scss +6 -0
  161. package/src/scss/_normalize.scss +197 -0
  162. package/src/scss/_variables.scss +95 -0
  163. package/src/scss/base/_index.scss +6 -0
  164. package/src/scss/base/button/_defaults.scss +49 -0
  165. package/src/scss/base/button/_index.scss +206 -0
  166. package/src/scss/base/button/_mixins.scss +104 -0
  167. package/src/scss/base/button/_variables.scss +252 -0
  168. package/src/scss/base/form/_defaults.scss +24 -0
  169. package/src/scss/base/form/_index.scss +227 -0
  170. package/src/scss/base/form/_variables.scss +245 -0
  171. package/src/scss/base/link/_defaults.scss +35 -0
  172. package/src/scss/base/link/_index.scss +245 -0
  173. package/src/scss/base/link/_variables.scss +370 -0
  174. package/src/scss/base/table/_defaults.scss +68 -0
  175. package/src/scss/base/table/_index.scss +314 -0
  176. package/src/scss/base/table/_variables.scss +309 -0
  177. package/src/scss/component/_index.scss +10 -0
  178. package/src/scss/component/accordion/_defaults.scss +40 -0
  179. package/src/scss/component/accordion/_index.scss +198 -0
  180. package/src/scss/component/accordion/_variables.scss +356 -0
  181. package/src/scss/component/alert/_defaults.scss +49 -0
  182. package/src/scss/component/alert/_index.scss +119 -0
  183. package/src/scss/component/alert/_variables.scss +200 -0
  184. package/src/scss/component/card/_defaults.scss +32 -0
  185. package/src/scss/component/card/_index.scss +212 -0
  186. package/src/scss/component/card/_variables.scss +216 -0
  187. package/src/scss/component/carousel/_defaults.scss +43 -0
  188. package/src/scss/component/carousel/_index.scss +192 -0
  189. package/src/scss/component/carousel/_variables.scss +104 -0
  190. package/src/scss/component/input-group/_defaults.scss +30 -0
  191. package/src/scss/component/input-group/_index.scss +47 -0
  192. package/src/scss/component/input-group/_variables.scss +66 -0
  193. package/src/scss/component/list/_defaults.scss +15 -0
  194. package/src/scss/component/list/_index.scss +52 -0
  195. package/src/scss/component/list/_variables.scss +236 -0
  196. package/src/scss/component/menu/_defaults.scss +57 -0
  197. package/src/scss/component/menu/_index.scss +308 -0
  198. package/src/scss/component/menu/_variables.scss +642 -0
  199. package/src/scss/component/navigation/_defaults.scss +23 -0
  200. package/src/scss/component/navigation/_index.scss +190 -0
  201. package/src/scss/component/navigation/_variables.scss +290 -0
  202. package/src/scss/functions/_container.scss +38 -0
  203. package/src/scss/functions/_important.scss +36 -0
  204. package/src/scss/functions/_screen.scss +38 -0
  205. package/src/scss/functions/_theme.scss +39 -0
  206. package/src/scss/functions/_utility.scss +28 -0
  207. package/src/scss/layout/_index.scss +5 -0
  208. package/src/scss/layout/columns/_defaults.scss +24 -0
  209. package/src/scss/layout/columns/_index.scss +137 -0
  210. package/src/scss/layout/columns/_variables.scss +55 -0
  211. package/src/scss/layout/container/_defaults.scss +35 -0
  212. package/src/scss/layout/container/_index.scss +628 -0
  213. package/src/scss/layout/container/_variables.scss +114 -0
  214. package/src/scss/layout/flex-columns/_defaults.scss +28 -0
  215. package/src/scss/layout/flex-columns/_index.scss +184 -0
  216. package/src/scss/layout/flex-columns/_variables.scss +30 -0
  217. package/src/scss/mixins/_animation.scss +15 -0
  218. package/src/scss/mixins/_container.scss +80 -0
  219. package/src/scss/mixins/_layer.scss +16 -0
  220. package/src/scss/mixins/_screen.scss +77 -0
  221. package/src/scss/mixins/_state.scss +18 -0
  222. package/src/scss/mixins/_theme.scss +15 -0
  223. package/src/scss/mixins/_utility.scss +185 -0
  224. package/src/scss/mixins/_visually-hidden.scss +30 -0
  225. package/src/scss/state/_index.scss +3 -0
  226. package/src/scss/state/focus/_defaults.scss +9 -0
  227. package/src/scss/state/focus/_index.scss +42 -0
  228. package/src/scss/state/focus/_mixins.scss +13 -0
  229. package/src/scss/state/focus/_variables.scss +50 -0
  230. package/src/scss/theme/_index.scss +4 -0
  231. package/src/scss/theme/color/_defaults.scss +143 -0
  232. package/src/scss/theme/color/_index.scss +42 -0
  233. package/src/scss/theme/color/_variables.scss +133 -0
  234. package/src/scss/theme/typography/_defaults.scss +54 -0
  235. package/src/scss/theme/typography/_index.scss +120 -0
  236. package/src/scss/theme/typography/_variables.scss +248 -0
  237. package/src/scss/utilities/_index.scss +23 -0
  238. package/src/scss/utilities/_template/_defaults.scss +41 -0
  239. package/src/scss/utilities/_template/_index.scss +171 -0
  240. package/src/scss/utilities/_template/_variables.scss +6 -0
  241. package/src/scss/utilities/alignment/_defaults.scss +76 -0
  242. package/src/scss/utilities/alignment/_index.scss +336 -0
  243. package/src/scss/utilities/alignment/_variables.scss +6 -0
  244. package/src/scss/utilities/background/_defaults.scss +122 -0
  245. package/src/scss/utilities/background/_index.scss +634 -0
  246. package/src/scss/utilities/background/_variables.scss +6 -0
  247. package/src/scss/utilities/border/_defaults.scss +73 -0
  248. package/src/scss/utilities/border/_index.scss +558 -0
  249. package/src/scss/utilities/border/_variables.scss +6 -0
  250. package/src/scss/utilities/color/_defaults.scss +49 -0
  251. package/src/scss/utilities/color/_index.scss +469 -0
  252. package/src/scss/utilities/color/_variables.scss +6 -0
  253. package/src/scss/utilities/container/_defaults.scss +40 -0
  254. package/src/scss/utilities/container/_index.scss +174 -0
  255. package/src/scss/utilities/container/_variables.scss +6 -0
  256. package/src/scss/utilities/display/_defaults.scss +47 -0
  257. package/src/scss/utilities/display/_index.scss +184 -0
  258. package/src/scss/utilities/display/_variables.scss +6 -0
  259. package/src/scss/utilities/flex/_defaults.scss +99 -0
  260. package/src/scss/utilities/flex/_index.scss +486 -0
  261. package/src/scss/utilities/flex/_variables.scss +6 -0
  262. package/src/scss/utilities/gradient/_defaults.scss +70 -0
  263. package/src/scss/utilities/gradient/_index.scss +696 -0
  264. package/src/scss/utilities/gradient/_variables.scss +29 -0
  265. package/src/scss/utilities/height/_defaults.scss +54 -0
  266. package/src/scss/utilities/height/_index.scss +525 -0
  267. package/src/scss/utilities/height/_variables.scss +6 -0
  268. package/src/scss/utilities/inset/_defaults.scss +55 -0
  269. package/src/scss/utilities/inset/_index.scss +258 -0
  270. package/src/scss/utilities/inset/_variables.scss +6 -0
  271. package/src/scss/utilities/justification/_defaults.scss +73 -0
  272. package/src/scss/utilities/justification/_index.scss +333 -0
  273. package/src/scss/utilities/justification/_variables.scss +6 -0
  274. package/src/scss/utilities/list/_defaults.scss +53 -0
  275. package/src/scss/utilities/list/_index.scss +253 -0
  276. package/src/scss/utilities/list/_variables.scss +6 -0
  277. package/src/scss/utilities/order/_defaults.scss +36 -0
  278. package/src/scss/utilities/order/_index.scss +246 -0
  279. package/src/scss/utilities/order/_variables.scss +6 -0
  280. package/src/scss/utilities/position/_defaults.scss +41 -0
  281. package/src/scss/utilities/position/_index.scss +178 -0
  282. package/src/scss/utilities/position/_variables.scss +6 -0
  283. package/src/scss/utilities/ratio/_defaults.scss +42 -0
  284. package/src/scss/utilities/ratio/_index.scss +188 -0
  285. package/src/scss/utilities/ratio/_variables.scss +9 -0
  286. package/src/scss/utilities/spacing/_defaults.scss +64 -0
  287. package/src/scss/utilities/spacing/_index.scss +970 -0
  288. package/src/scss/utilities/spacing/_variables.scss +6 -0
  289. package/src/scss/utilities/typography/_defaults.scss +58 -0
  290. package/src/scss/utilities/typography/_index.scss +1089 -0
  291. package/src/scss/utilities/typography/_variables.scss +6 -0
  292. package/src/scss/utilities/visibility/_defaults.scss +39 -0
  293. package/src/scss/utilities/visibility/_index.scss +173 -0
  294. package/src/scss/utilities/visibility/_variables.scss +6 -0
  295. package/src/scss/utilities/visually-hidden/_defaults.scss +29 -0
  296. package/src/scss/utilities/visually-hidden/_index.scss +189 -0
  297. package/src/scss/utilities/visually-hidden/_variables.scss +6 -0
  298. package/src/scss/utilities/width/_defaults.scss +54 -0
  299. package/src/scss/utilities/width/_index.scss +525 -0
  300. package/src/scss/utilities/width/_variables.scss +6 -0
  301. package/src/scss/utilities/z-index/_defaults.scss +40 -0
  302. package/src/scss/utilities/z-index/_index.scss +173 -0
  303. package/src/scss/utilities/z-index/_variables.scss +6 -0
@@ -0,0 +1,15 @@
1
+ // @graupl/core list component default values.
2
+ //
3
+ // Generally, these should not be used directly when styling components unless a static value is needed.
4
+ // They are mainly used to provide class selectors, fallbacks for custom properties, or loop values.
5
+ //
6
+ // They should not be used to define direct property values (i.e. font-size, color, etc.).
7
+ // Those should be defined as custom properties in the `_variables.scss` file.
8
+
9
+ // Card selectors.
10
+ $list-selector: ".list" !default;
11
+ $list-item-selector: ".list-item" !default;
12
+
13
+ // List item properties.
14
+ $list-item-transform: none !default;
15
+ $list-item-hover-transform: $list-item-transform !default;
@@ -0,0 +1,52 @@
1
+ // @graupl/core card component styles.
2
+
3
+ @use "../../defaults" as root-defaults;
4
+ @use "../../mixins/animation";
5
+ @use "../../mixins/layer" as *;
6
+ @use "defaults";
7
+ @use "sass:map";
8
+ @use "variables" as *;
9
+
10
+ @include layer(component) {
11
+ #{defaults.$list-selector} {
12
+ display: grid;
13
+ position: relative;
14
+ margin: $list-margin;
15
+ padding: $list-padding;
16
+ border-width: $list-border-width;
17
+ border-style: $list-border-style;
18
+ border-radius: $list-border-radius;
19
+ list-style: none;
20
+ gap: $list-gap;
21
+ }
22
+
23
+ #{defaults.$list-item-selector} {
24
+ position: relative;
25
+ padding: $list-item-padding;
26
+ transform: $list-item-transform;
27
+ transition: $list-item-transition;
28
+ border-width: $list-item-border-width;
29
+ border-style: $list-item-border-style;
30
+ border-radius: $list-item-border-radius;
31
+
32
+ @each $selector in map.get(root-defaults.$state-selectors, hover) {
33
+ &#{$selector} {
34
+ --#{root-defaults.$prefix}list-item-transform: $list-item-hover-transform;
35
+ }
36
+ }
37
+ }
38
+ }
39
+
40
+ @include layer(theme) {
41
+ #{defaults.$list-selector} {
42
+ border-color: $list-border-color;
43
+ background: $list-background;
44
+ color: $list-color;
45
+ }
46
+
47
+ #{defaults.$list-item-selector} {
48
+ border-color: $list-item-border-color;
49
+ background: $list-item-background;
50
+ color: $list-item-color;
51
+ }
52
+ }
@@ -0,0 +1,236 @@
1
+ // @graupl/core list component variables.
2
+ //
3
+ // These values are to be used to directly style components and provide a
4
+ // cleaner way to reference custom properties.
5
+
6
+ @use "../../defaults" as root-defaults;
7
+ @use "../../theme/color/variables" as color;
8
+ @use "../../variables" as root-variables;
9
+ @use "defaults";
10
+ @use "sass:map";
11
+
12
+ // List properties.
13
+ $list-padding-x: var(
14
+ --#{root-defaults.$prefix}list-padding-x,
15
+ #{map.get(root-variables.$spacers, 0)}
16
+ );
17
+ $list-padding-y: var(
18
+ --#{root-defaults.$prefix}list-padding-y,
19
+ #{map.get(root-variables.$spacers, 0)}
20
+ );
21
+ $list-padding: var(
22
+ --#{root-defaults.$prefix}list-padding,
23
+ #{$list-padding-y} #{$list-padding-x}
24
+ );
25
+ $list-margin-x: var(
26
+ --#{root-defaults.$prefix}list-margin-x,
27
+ #{map.get(root-variables.$spacers, 0)}
28
+ );
29
+ $list-margin-y: var(
30
+ --#{root-defaults.$prefix}list-margin-y,
31
+ #{map.get(root-variables.$spacers, 0)}
32
+ );
33
+ $list-margin: var(
34
+ --#{root-defaults.$prefix}list-margin,
35
+ #{$list-margin-y} #{$list-margin-x}
36
+ );
37
+
38
+ // List gap properties.
39
+ $list-column-gap: var(
40
+ --#{root-defaults.$prefix}list-column-gap,
41
+ #{map.get(root-variables.$spacers, 2)}
42
+ );
43
+ $list-row-gap: var(
44
+ --#{root-defaults.$prefix}list-row-gap,
45
+ #{map.get(root-variables.$spacers, 2)}
46
+ );
47
+ $list-gap: var(
48
+ --#{root-defaults.$prefix}list-gap,
49
+ #{$list-column-gap} #{$list-row-gap}
50
+ );
51
+
52
+ // List color properties.
53
+ $list-background: var(
54
+ --#{root-defaults.$prefix}list-background,
55
+ #{color.$background}
56
+ );
57
+ $list-color: var(--#{root-defaults.$prefix}list-color, #{color.$color});
58
+
59
+ // List border-properties.
60
+ $list-border-color: var(
61
+ --#{root-defaults.$prefix}list-border-color,
62
+ #{$list-color}
63
+ );
64
+ $list-border-top-left-radius: var(
65
+ --#{root-defaults.$prefix}list-border-top-left-radius,
66
+ #{root-variables.$border-top-left-radius}
67
+ );
68
+ $list-border-top-right-radius: var(
69
+ --#{root-defaults.$prefix}list-border-top-right-radius,
70
+ #{root-variables.$border-top-right-radius}
71
+ );
72
+ $list-border-bottom-left-radius: var(
73
+ --#{root-defaults.$prefix}list-border-bottom-left-radius,
74
+ #{root-variables.$border-bottom-left-radius}
75
+ );
76
+ $list-border-bottom-right-radius: var(
77
+ --#{root-defaults.$prefix}list-border-bottom-right-radius,
78
+ #{root-variables.$border-bottom-right-radius}
79
+ );
80
+ $list-border-radius: var(
81
+ --#{root-defaults.$prefix}list-border-radius,
82
+ #{$list-border-top-left-radius} #{$list-border-top-right-radius}
83
+ #{$list-border-bottom-right-radius} #{$list-border-bottom-left-radius}
84
+ );
85
+ $list-border-top-width: var(--#{root-defaults.$prefix}list-border-top-width, 0);
86
+ $list-border-right-width: var(
87
+ --#{root-defaults.$prefix}list-border-right-width,
88
+ 0
89
+ );
90
+ $list-border-bottom-width: var(
91
+ --#{root-defaults.$prefix}list-border-bottom-width,
92
+ 0
93
+ );
94
+ $list-border-left-width: var(
95
+ --#{root-defaults.$prefix}list-border-left-width,
96
+ 0
97
+ );
98
+ $list-border-width: var(
99
+ --#{root-defaults.$prefix}list-border-width,
100
+ #{$list-border-top-width} #{$list-border-right-width}
101
+ #{$list-border-bottom-width} #{$list-border-left-width}
102
+ );
103
+ $list-border-top-style: var(
104
+ --#{root-defaults.$prefix}list-border-top-style,
105
+ #{root-variables.$border-top-style}
106
+ );
107
+ $list-border-right-style: var(
108
+ --#{root-defaults.$prefix}list-border-right-style,
109
+ #{root-variables.$border-right-style}
110
+ );
111
+ $list-border-bottom-style: var(
112
+ --#{root-defaults.$prefix}list-border-bottom-style,
113
+ #{root-variables.$border-bottom-style}
114
+ );
115
+ $list-border-left-style: var(
116
+ --#{root-defaults.$prefix}list-border-left-style,
117
+ #{root-variables.$border-left-style}
118
+ );
119
+ $list-border-style: var(
120
+ --#{root-defaults.$prefix}list-border-style,
121
+ #{$list-border-top-style} #{$list-border-right-style}
122
+ #{$list-border-bottom-style} #{$list-border-left-style}
123
+ );
124
+
125
+ // List item properties.
126
+ $list-item-padding-x: var(
127
+ --#{root-defaults.$prefix}list-item-padding-x,
128
+ #{map.get(root-variables.$spacers, 5)}
129
+ );
130
+ $list-item-padding-y: var(
131
+ --#{root-defaults.$prefix}list-item-padding-y,
132
+ #{map.get(root-variables.$spacers, 3)}
133
+ );
134
+ $list-item-padding: var(
135
+ --#{root-defaults.$prefix}list-item-padding,
136
+ #{$list-item-padding-y} #{$list-item-padding-x}
137
+ );
138
+ $list-item-transition: var(
139
+ --#{root-defaults.$prefix}list-item-transition,
140
+ transform #{map.get(root-variables.$transition-durations, fast)}
141
+ #{root-variables.$transition-timing-function}
142
+ );
143
+ $list-item-transition-reduced-motion: var(
144
+ --#{root-defaults.$prefix}list-item-transition-reduced-motion,
145
+ none
146
+ );
147
+
148
+ // List item transform properties.
149
+ $list-item-transform: var(
150
+ --#{root-defaults.$prefix}list-item-transform,
151
+ #{defaults.$list-item-transform}
152
+ );
153
+ $list-item-hover-transform: var(
154
+ --#{root-defaults.$prefix}list-item-hover-transform,
155
+ #{defaults.$list-item-hover-transform}
156
+ );
157
+
158
+ // List item color properties.
159
+ $list-item-background: var(
160
+ --#{root-defaults.$prefix}list-item-background,
161
+ #{color.$background}
162
+ );
163
+ $list-item-color: var(
164
+ --#{root-defaults.$prefix}list-item-color,
165
+ #{color.$color}
166
+ );
167
+
168
+ // List item border-properties.
169
+ $list-item-border-color: var(
170
+ --#{root-defaults.$prefix}list-item-border-color,
171
+ #{$list-item-color}
172
+ );
173
+ $list-item-border-top-left-radius: var(
174
+ --#{root-defaults.$prefix}list-item-border-top-left-radius,
175
+ #{root-variables.$border-top-left-radius}
176
+ );
177
+ $list-item-border-top-right-radius: var(
178
+ --#{root-defaults.$prefix}list-item-border-top-right-radius,
179
+ #{root-variables.$border-top-right-radius}
180
+ );
181
+ $list-item-border-bottom-left-radius: var(
182
+ --#{root-defaults.$prefix}list-item-border-bottom-left-radius,
183
+ #{root-variables.$border-bottom-left-radius}
184
+ );
185
+ $list-item-border-bottom-right-radius: var(
186
+ --#{root-defaults.$prefix}list-item-border-bottom-right-radius,
187
+ #{root-variables.$border-bottom-right-radius}
188
+ );
189
+ $list-item-border-radius: var(
190
+ --#{root-defaults.$prefix}list-item-border-radius,
191
+ #{$list-item-border-top-left-radius} #{$list-item-border-top-right-radius}
192
+ #{$list-item-border-bottom-right-radius}
193
+ #{$list-item-border-bottom-left-radius}
194
+ );
195
+ $list-item-border-top-width: var(
196
+ --#{root-defaults.$prefix}list-item-border-top-width,
197
+ #{root-variables.$border-top-width}
198
+ );
199
+ $list-item-border-right-width: var(
200
+ --#{root-defaults.$prefix}list-item-border-right-width,
201
+ #{root-variables.$border-right-width}
202
+ );
203
+ $list-item-border-bottom-width: var(
204
+ --#{root-defaults.$prefix}list-item-border-bottom-width,
205
+ #{root-variables.$border-bottom-width}
206
+ );
207
+ $list-item-border-left-width: var(
208
+ --#{root-defaults.$prefix}list-item-border-left-width,
209
+ #{root-variables.$border-left-width}
210
+ );
211
+ $list-item-border-width: var(
212
+ --#{root-defaults.$prefix}list-item-border-width,
213
+ #{$list-item-border-top-width} #{$list-item-border-right-width}
214
+ #{$list-item-border-bottom-width} #{$list-item-border-left-width}
215
+ );
216
+ $list-item-border-top-style: var(
217
+ --#{root-defaults.$prefix}list-item-border-top-style,
218
+ #{root-variables.$border-top-style}
219
+ );
220
+ $list-item-border-right-style: var(
221
+ --#{root-defaults.$prefix}list-item-border-right-style,
222
+ #{root-variables.$border-right-style}
223
+ );
224
+ $list-item-border-bottom-style: var(
225
+ --#{root-defaults.$prefix}list-item-border-bottom-style,
226
+ #{root-variables.$border-bottom-style}
227
+ );
228
+ $list-item-border-left-style: var(
229
+ --#{root-defaults.$prefix}list-item-border-left-style,
230
+ #{root-variables.$border-left-style}
231
+ );
232
+ $list-item-border-style: var(
233
+ --#{root-defaults.$prefix}list-item-border-style,
234
+ #{$list-item-border-top-style} #{$list-item-border-right-style}
235
+ #{$list-item-border-bottom-style} #{$list-item-border-left-style}
236
+ );
@@ -0,0 +1,57 @@
1
+ // @graupl/core menu component default values.
2
+ //
3
+ // Generally, these should not be used directly when styling components unless a static value is needed.
4
+ // They are mainly used to provide class selectors, fallbacks for custom properties, or loop values.
5
+ //
6
+ // They should not be used to define direct property values (i.e. font-size, color, etc.).
7
+ // Those should be defined as custom properties in the `_variables.scss` file.
8
+
9
+ // Menu selectors.
10
+ $menu-selector: ".menu" !default;
11
+ $submenu-selector: ".submenu" !default;
12
+ $menu-item-selector: ".menu-item" !default;
13
+ $menu-link-selector: ".menu-link" !default;
14
+ $submenu-toggle-selector: ".submenu-toggle" !default;
15
+ $menu-show-selector: ".show" !default;
16
+ $menu-hide-selector: ".hide" !default;
17
+
18
+ // Flex properties.
19
+ $menu-flex-direction: row !default;
20
+ $submenu-flex-direction: column !default;
21
+
22
+ // Visibility properties.
23
+ $menu-show-display: flex !default;
24
+ $menu-hide-display: none !default;
25
+ $submenu-show-display: $menu-show-display !default;
26
+ $submenu-hide-display: $menu-hide-display !default;
27
+
28
+ // Menu item properties.
29
+ $menu-item-min-width: min-content !default;
30
+ $menu-item-max-width: 100% !default;
31
+
32
+ // Submenu properties.
33
+ $submenu-position: absolute !default;
34
+ $submenu-z-index: 2 !default;
35
+ $submenu-top: 100% !default;
36
+ $submenu-right: auto !default;
37
+ $submenu-bottom: auto !default;
38
+ $submenu-left: 0 !default;
39
+
40
+ // Submenu item properties.
41
+ $submenu-item-width: 100% !default;
42
+
43
+ // Menu link properties.
44
+ $menu-link-initial-text-decoration: none !default;
45
+ $menu-link-final-text-decoration: $menu-link-initial-text-decoration !default;
46
+ $menu-link-disabled-text-decoration: $menu-link-initial-text-decoration !default;
47
+ $menu-link-initial-text-decoration-style: solid !default;
48
+ $menu-link-final-text-decoration-style: $menu-link-initial-text-decoration-style !default;
49
+ $menu-link-disabled-text-decoration-style: $menu-link-initial-text-decoration-style !default;
50
+ $menu-link-initial-transform: none !default;
51
+ $menu-link-final-transform: $menu-link-initial-transform !default;
52
+ $menu-link-disabled-transform: $menu-link-initial-transform !default;
53
+ $menu-border-width: 0 !default;
54
+ $menu-link-border-width: 0 !default;
55
+ $submenu-toggle-transform: rotate(0deg) !default;
56
+ $submenu-toggle-open-transform: rotate(-180deg) !default;
57
+ $submenu-toggle-content: "'↓'" !default;
@@ -0,0 +1,308 @@
1
+ // @graupl/core menu component styles.
2
+
3
+ @use "defaults";
4
+ @use "variables" as *;
5
+ @use "../../defaults" as root-defaults;
6
+ @use "../../base/button/defaults" as button-defaults;
7
+ @use "../../base/button/variables" as button-variables;
8
+ @use "../../mixins/layer" as *;
9
+ @use "../../mixins/animation";
10
+
11
+ @include layer(component) {
12
+ #{defaults.$menu-selector} {
13
+ --#{root-defaults.$prefix}link-padding: #{$menu-link-padding};
14
+ --#{root-defaults.$prefix}link-border-width: #{$menu-link-border-width};
15
+ --#{root-defaults.$prefix}link-border-radius: #{$menu-link-border-radius};
16
+ --#{root-defaults.$prefix}link-border-style: #{$menu-link-border-style};
17
+ --#{root-defaults.$prefix}link-text-decoration: #{$menu-link-text-decoration};
18
+ --#{root-defaults.$prefix}link-text-decoration-thickness: #{$menu-link-text-decoration-thickness};
19
+ --#{root-defaults.$prefix}link-text-decoration-style: #{$menu-link-text-decoration-style};
20
+ --#{root-defaults.$prefix}link-transform: #{$menu-link-transform};
21
+ --#{root-defaults.$prefix}link-visited-text-decoration: #{$menu-link-visited-text-decoration};
22
+ --#{root-defaults.$prefix}link-visited-text-decoration-thickness: #{$menu-link-visited-text-decoration-thickness};
23
+ --#{root-defaults.$prefix}link-visited-text-decoration-style: #{$menu-link-visited-text-decoration-style};
24
+ --#{root-defaults.$prefix}link-visited-transform: #{$menu-link-visited-transform};
25
+ --#{root-defaults.$prefix}link-focus-text-decoration: #{$menu-link-focus-text-decoration};
26
+ --#{root-defaults.$prefix}link-focus-text-decoration-thickness: #{$menu-link-focus-text-decoration-thickness};
27
+ --#{root-defaults.$prefix}link-focus-text-decoration-style: #{$menu-link-focus-text-decoration-style};
28
+ --#{root-defaults.$prefix}link-focus-transform: #{$menu-link-focus-transform};
29
+ --#{root-defaults.$prefix}link-hover-text-decoration: #{$menu-link-hover-text-decoration};
30
+ --#{root-defaults.$prefix}link-hover-text-decoration-thickness: #{$menu-link-hover-text-decoration-thickness};
31
+ --#{root-defaults.$prefix}link-hover-text-decoration-style: #{$menu-link-hover-text-decoration-style};
32
+ --#{root-defaults.$prefix}link-hover-transform: #{$menu-link-hover-transform};
33
+ --#{root-defaults.$prefix}link-active-text-decoration: #{$menu-link-active-text-decoration};
34
+ --#{root-defaults.$prefix}link-active-text-decoration-thickness: #{$menu-link-active-text-decoration-thickness};
35
+ --#{root-defaults.$prefix}link-active-text-decoration-style: #{$menu-link-active-text-decoration-style};
36
+ --#{root-defaults.$prefix}link-active-transform: #{$menu-link-active-transform};
37
+ --#{root-defaults.$prefix}link-disabled-text-decoration: #{$menu-link-disabled-text-decoration};
38
+ --#{root-defaults.$prefix}link-disabled-text-decoration-thickness: #{$menu-link-disabled-text-decoration-thickness};
39
+ --#{root-defaults.$prefix}link-disabled-text-decoration-style: #{$menu-link-disabled-text-decoration-style};
40
+ --#{root-defaults.$prefix}link-disabled-transform: #{$menu-link-disabled-transform};
41
+
42
+ display: $menu-display;
43
+ flex-direction: $menu-flex-direction;
44
+ padding: $menu-padding;
45
+ border-width: $menu-border-width;
46
+ border-style: $menu-border-style;
47
+ border-radius: $menu-border-radius;
48
+ list-style: none;
49
+ gap: $menu-gap;
50
+ isolation: isolate;
51
+
52
+ &#{defaults.$menu-show-selector} {
53
+ --#{root-defaults.$prefix}menu-display: #{$menu-show-display};
54
+ }
55
+
56
+ &#{defaults.$menu-hide-selector} {
57
+ --#{root-defaults.$prefix}menu-display: #{$menu-hide-display};
58
+ }
59
+ }
60
+
61
+ #{defaults.$submenu-selector} {
62
+ display: $submenu-display;
63
+ position: $submenu-position;
64
+ z-index: $submenu-z-index;
65
+ flex: 1 1;
66
+ flex-direction: $submenu-flex-direction;
67
+ padding: $submenu-padding;
68
+ border-width: $submenu-border-width;
69
+ border-style: $submenu-border-style;
70
+ border-radius: $submenu-border-radius;
71
+ list-style: none;
72
+ gap: $submenu-gap;
73
+ isolation: isolate;
74
+ inset: $submenu-inset;
75
+
76
+ &#{defaults.$menu-show-selector} {
77
+ --#{root-defaults.$prefix}submenu-display: #{$submenu-show-display};
78
+ }
79
+
80
+ &#{defaults.$menu-hide-selector} {
81
+ --#{root-defaults.$prefix}submenu-display: #{$submenu-hide-display};
82
+ }
83
+ }
84
+
85
+ #{defaults.$menu-item-selector} {
86
+ display: flex;
87
+ position: relative;
88
+ flex-wrap: wrap;
89
+ align-items: center;
90
+ justify-content: center;
91
+ min-width: $menu-item-min-width;
92
+ max-width: $menu-item-max-width;
93
+ padding: $menu-item-padding;
94
+ }
95
+
96
+ #{defaults.$menu-link-selector} {
97
+ display: flex;
98
+ width: 100%;
99
+ padding: $menu-link-padding;
100
+ transform: $menu-link-transform;
101
+ transition: $menu-link-transition;
102
+ border-width: $menu-link-border-width;
103
+ border-style: $menu-link-border-style;
104
+ border-radius: $menu-link-border-radius;
105
+ text-decoration: $menu-link-text-decoration;
106
+ text-decoration-style: $menu-link-text-decoration-style;
107
+ gap: $menu-link-gap;
108
+ text-decoration-thickness: $menu-link-text-decoration-thickness;
109
+
110
+ &:visited {
111
+ --#{root-defaults.$prefix}menu-link-text-decoration: #{$menu-link-visited-text-decoration};
112
+ --#{root-defaults.$prefix}menu-link-text-decoration-thickness: #{$menu-link-visited-text-decoration-thickness};
113
+ --#{root-defaults.$prefix}menu-link-text-decoration-style: #{$menu-link-visited-text-decoration-style};
114
+ --#{root-defaults.$prefix}menu-link-transform: #{$menu-link-visited-transform};
115
+ }
116
+
117
+ &:focus-visible {
118
+ --#{root-defaults.$prefix}menu-link-text-decoration: #{$menu-link-focus-text-decoration};
119
+ --#{root-defaults.$prefix}menu-link-text-decoration-thickness: #{$menu-link-focus-text-decoration-thickness};
120
+ --#{root-defaults.$prefix}menu-link-text-decoration-style: #{$menu-link-focus-text-decoration-style};
121
+ --#{root-defaults.$prefix}menu-link-transform: #{$menu-link-focus-transform};
122
+ }
123
+
124
+ &:hover {
125
+ --#{root-defaults.$prefix}menu-link-text-decoration: #{$menu-link-hover-text-decoration};
126
+ --#{root-defaults.$prefix}menu-link-text-decoration-thickness: #{$menu-link-hover-text-decoration-thickness};
127
+ --#{root-defaults.$prefix}menu-link-text-decoration-style: #{$menu-link-hover-text-decoration-style};
128
+ --#{root-defaults.$prefix}menu-link-transform: #{$menu-link-hover-transform};
129
+ }
130
+
131
+ &:active {
132
+ --#{root-defaults.$prefix}menu-link-text-decoration: #{$menu-link-active-text-decoration};
133
+ --#{root-defaults.$prefix}menu-link-text-decoration-thickness: #{$menu-link-active-text-decoration-thickness};
134
+ --#{root-defaults.$prefix}menu-link-text-decoration-style: #{$menu-link-active-text-decoration-style};
135
+ --#{root-defaults.$prefix}menu-link-transform: #{$menu-link-active-transform};
136
+ }
137
+
138
+ &:disabled,
139
+ &[disabled] {
140
+ &,
141
+ &:visited,
142
+ &:focus-visible,
143
+ &:hover,
144
+ &:active {
145
+ --#{root-defaults.$prefix}menu-link-text-decoration: #{$menu-link-disabled-text-decoration};
146
+ --#{root-defaults.$prefix}menu-link-text-decoration-thickness: #{$menu-link-disabled-text-decoration-thickness};
147
+ --#{root-defaults.$prefix}menu-link-text-decoration-style: #{$menu-link-disabled-text-decoration-style};
148
+ --#{root-defaults.$prefix}menu-link-transform: #{$menu-link-disabled-transform};
149
+ }
150
+ }
151
+
152
+ &#{button-defaults.$button-selector-base}#{button-defaults.$button-selector} {
153
+ --#{root-defaults.$prefix}menu-link-padding: #{button-variables.$button-padding};
154
+ --#{root-defaults.$prefix}menu-link-border-width: #{button-variables.$button-border-width};
155
+ --#{root-defaults.$prefix}menu-link-border-radius: #{button-variables.$button-border-radius};
156
+ --#{root-defaults.$prefix}menu-link-border-style: #{button-variables.$button-border-style};
157
+ --#{root-defaults.$prefix}menu-link-text-decoration: none;
158
+ --#{root-defaults.$prefix}menu-link-visited-text-decoration: none;
159
+ --#{root-defaults.$prefix}menu-link-focus-text-decoration: none;
160
+ --#{root-defaults.$prefix}menu-link-hover-text-decoration: none;
161
+ --#{root-defaults.$prefix}menu-link-active-text-decoration: none;
162
+ --#{root-defaults.$prefix}menu-link-disabled-text-decoration: none;
163
+ --#{root-defaults.$prefix}menu-link-transition: #{button-variables.$button-transition};
164
+ --#{root-defaults.$prefix}menu-link-transition-reduced-motion: #{button-variables.$button-transition-reduced-motion};
165
+ --#{root-defaults.$prefix}menu-link-transform: #{button-variables.$button-transform};
166
+ --#{root-defaults.$prefix}menu-link-visited-transform: #{button-variables.$button-visited-transform};
167
+ --#{root-defaults.$prefix}menu-link-focus-transform: #{button-variables.$button-focus-transform};
168
+ --#{root-defaults.$prefix}menu-link-hover-transform: #{button-variables.$button-hover-transform};
169
+ --#{root-defaults.$prefix}menu-link-active-transform: #{button-variables.$button-active-transform};
170
+ --#{root-defaults.$prefix}menu-link-disabled-transform: #{button-variables.$button-disabled-transform};
171
+ }
172
+ }
173
+
174
+ #{defaults.$submenu-toggle-selector} {
175
+ display: flex;
176
+ align-items: center;
177
+ justify-content: space-between;
178
+
179
+ &::after {
180
+ content: $submenu-toggle-content;
181
+ display: block;
182
+ transform: $submenu-toggle-transform;
183
+ transition: $submenu-toggle-transition;
184
+ }
185
+
186
+ &[aria-expanded="true"]::after {
187
+ --#{root-defaults.$prefix}submenu-toggle-transform: #{$submenu-toggle-open-transform};
188
+ }
189
+ }
190
+
191
+ @include animation.off {
192
+ #{defaults.$menu-link-selector} {
193
+ --#{root-defaults.$prefix}menu-link-transition: #{$menu-link-transition-reduced-motion};
194
+ }
195
+
196
+ #{defaults.$submenu-toggle-selector}::after {
197
+ --#{root-defaults.$prefix}submenu-toggle-transition: #{$submenu-toggle-transition-reduced-motion};
198
+ }
199
+ }
200
+ }
201
+
202
+ @include layer(theme) {
203
+ #{defaults.$menu-selector} {
204
+ --#{root-defaults.$prefix}link-color: #{$menu-link-color};
205
+ --#{root-defaults.$prefix}link-background: #{$menu-link-background};
206
+ --#{root-defaults.$prefix}link-border-color: #{$menu-link-border-color};
207
+ --#{root-defaults.$prefix}link-text-decoration-color: #{$menu-link-text-decoration-color};
208
+ --#{root-defaults.$prefix}link-visited-color: #{$menu-link-visited-color};
209
+ --#{root-defaults.$prefix}link-visited-background: #{$menu-link-visited-background};
210
+ --#{root-defaults.$prefix}link-visited-border-color: #{$menu-link-visited-border-color};
211
+ --#{root-defaults.$prefix}link-visited-text-decoration-color: #{$menu-link-visited-text-decoration-color};
212
+ --#{root-defaults.$prefix}link-focus-color: #{$menu-link-focus-color};
213
+ --#{root-defaults.$prefix}link-focus-background: #{$menu-link-focus-background};
214
+ --#{root-defaults.$prefix}link-focus-border-color: #{$menu-link-focus-border-color};
215
+ --#{root-defaults.$prefix}link-focus-text-decoration-color: #{$menu-link-focus-text-decoration-color};
216
+ --#{root-defaults.$prefix}link-hover-color: #{$menu-link-hover-color};
217
+ --#{root-defaults.$prefix}link-hover-background: #{$menu-link-hover-background};
218
+ --#{root-defaults.$prefix}link-hover-border-color: #{$menu-link-hover-border-color};
219
+ --#{root-defaults.$prefix}link-hover-text-decoration-color: #{$menu-link-hover-text-decoration-color};
220
+ --#{root-defaults.$prefix}link-active-color: #{$menu-link-active-color};
221
+ --#{root-defaults.$prefix}link-active-background: #{$menu-link-active-background};
222
+ --#{root-defaults.$prefix}link-active-border-color: #{$menu-link-active-border-color};
223
+ --#{root-defaults.$prefix}link-active-text-decoration-color: #{$menu-link-active-text-decoration-color};
224
+ --#{root-defaults.$prefix}link-disabled-color: #{$menu-link-disabled-color};
225
+ --#{root-defaults.$prefix}link-disabled-background: #{$menu-link-disabled-background};
226
+ --#{root-defaults.$prefix}link-disabled-border-color: #{$menu-link-disabled-border-color};
227
+ --#{root-defaults.$prefix}link-disabled-text-decoration-color: #{$menu-link-disabled-text-decoration-color};
228
+
229
+ border-color: $menu-border-color;
230
+ background: $menu-background;
231
+ color: $menu-color;
232
+ }
233
+
234
+ #{defaults.$submenu-selector} {
235
+ border-color: $submenu-border-color;
236
+ background: $submenu-background;
237
+ color: $submenu-color;
238
+ }
239
+
240
+ #{defaults.$menu-link-selector} {
241
+ border-color: $menu-link-border-color;
242
+ background: $menu-link-background;
243
+ color: $menu-link-color;
244
+ text-decoration-color: $menu-link-text-decoration-color;
245
+
246
+ &:visited {
247
+ --#{root-defaults.$prefix}menu-link-background: #{$menu-link-visited-background};
248
+ --#{root-defaults.$prefix}menu-link-color: #{$menu-link-visited-color};
249
+ --#{root-defaults.$prefix}menu-link-text-decoration-color: #{$menu-link-visited-text-decoration-color};
250
+ --#{root-defaults.$prefix}menu-link-border-color: #{$menu-link-visited-border-color};
251
+ }
252
+
253
+ &:focus-visible {
254
+ --#{root-defaults.$prefix}menu-link-background: #{$menu-link-focus-background};
255
+ --#{root-defaults.$prefix}menu-link-color: #{$menu-link-focus-color};
256
+ --#{root-defaults.$prefix}menu-link-text-decoration-color: #{$menu-link-focus-text-decoration-color};
257
+ --#{root-defaults.$prefix}menu-link-border-color: #{$menu-link-focus-border-color};
258
+ }
259
+
260
+ &:hover {
261
+ --#{root-defaults.$prefix}menu-link-background: #{$menu-link-hover-background};
262
+ --#{root-defaults.$prefix}menu-link-color: #{$menu-link-hover-color};
263
+ --#{root-defaults.$prefix}menu-link-text-decoration-color: #{$menu-link-hover-text-decoration-color};
264
+ --#{root-defaults.$prefix}menu-link-border-color: #{$menu-link-hover-border-color};
265
+ }
266
+
267
+ &:active {
268
+ --#{root-defaults.$prefix}menu-link-background: #{$menu-link-active-background};
269
+ --#{root-defaults.$prefix}menu-link-color: #{$menu-link-active-color};
270
+ --#{root-defaults.$prefix}menu-link-text-decoration-color: #{$menu-link-active-text-decoration-color};
271
+ --#{root-defaults.$prefix}menu-link-border-color: #{$menu-link-active-border-color};
272
+ }
273
+
274
+ &:disabled {
275
+ &,
276
+ &:hover,
277
+ &:active,
278
+ &:focus-visible,
279
+ &:visited {
280
+ --#{root-defaults.$prefix}menu-link-background: #{$menu-link-disabled-background};
281
+ --#{root-defaults.$prefix}menu-link-color: #{$menu-link-disabled-color};
282
+ --#{root-defaults.$prefix}menu-link-text-decoration-color: #{$menu-link-disabled-text-decoration-color};
283
+ --#{root-defaults.$prefix}menu-link-border-color: #{$menu-link-disabled-border-color};
284
+ }
285
+ }
286
+
287
+ &#{button-defaults.$button-selector-base}#{button-defaults.$button-selector} {
288
+ --#{root-defaults.$prefix}menu-link-background: #{button-variables.$button-background};
289
+ --#{root-defaults.$prefix}menu-link-color: #{button-variables.$button-color};
290
+ --#{root-defaults.$prefix}menu-link-border-color: #{button-variables.$button-border-color};
291
+ --#{root-defaults.$prefix}menu-link-visited-background: #{button-variables.$button-visited-background};
292
+ --#{root-defaults.$prefix}menu-link-visited-color: #{button-variables.$button-visited-color};
293
+ --#{root-defaults.$prefix}menu-link-visited-border-color: #{button-variables.$button-visited-border-color};
294
+ --#{root-defaults.$prefix}menu-link-focus-background: #{button-variables.$button-focus-background};
295
+ --#{root-defaults.$prefix}menu-link-focus-color: #{button-variables.$button-focus-color};
296
+ --#{root-defaults.$prefix}menu-link-focus-border-color: #{button-variables.$button-focus-border-color};
297
+ --#{root-defaults.$prefix}menu-link-hover-background: #{button-variables.$button-hover-background};
298
+ --#{root-defaults.$prefix}menu-link-hover-color: #{button-variables.$button-hover-color};
299
+ --#{root-defaults.$prefix}menu-link-hover-border-color: #{button-variables.$button-hover-border-color};
300
+ --#{root-defaults.$prefix}menu-link-active-background: #{button-variables.$button-active-background};
301
+ --#{root-defaults.$prefix}menu-link-active-color: #{button-variables.$button-active-color};
302
+ --#{root-defaults.$prefix}menu-link-active-border-color: #{button-variables.$button-active-border-color};
303
+ --#{root-defaults.$prefix}menu-link-disabled-background: #{button-variables.$button-disabled-background};
304
+ --#{root-defaults.$prefix}menu-link-disabled-color: #{button-variables.$button-disabled-color};
305
+ --#{root-defaults.$prefix}menu-link-disabled-border-color: #{button-variables.$button-disabled-border-color};
306
+ }
307
+ }
308
+ }