@graupl/core 1.0.0-beta.22 → 1.0.0-beta.24

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 (273) hide show
  1. package/dist/css/base/button.css +2 -2
  2. package/dist/css/base/button.css.map +1 -1
  3. package/dist/css/base/form.css +2 -2
  4. package/dist/css/base/form.css.map +1 -1
  5. package/dist/css/base/link.css +2 -2
  6. package/dist/css/base/link.css.map +1 -1
  7. package/dist/css/base/table.css +2 -2
  8. package/dist/css/base/table.css.map +1 -1
  9. package/dist/css/base.css +2 -2
  10. package/dist/css/base.css.map +1 -1
  11. package/dist/css/component/accordion.css +2 -5
  12. package/dist/css/component/accordion.css.map +1 -1
  13. package/dist/css/component/alert.css +2 -2
  14. package/dist/css/component/alert.css.map +1 -1
  15. package/dist/css/component/badge.css +2 -2
  16. package/dist/css/component/badge.css.map +1 -1
  17. package/dist/css/component/card.css +2 -2
  18. package/dist/css/component/card.css.map +1 -1
  19. package/dist/css/component/carousel.css +2 -2
  20. package/dist/css/component/carousel.css.map +1 -1
  21. package/dist/css/component/disclosure.css +2 -2
  22. package/dist/css/component/disclosure.css.map +1 -1
  23. package/dist/css/component/input-group.css +2 -2
  24. package/dist/css/component/input-group.css.map +1 -1
  25. package/dist/css/component/list.css +2 -2
  26. package/dist/css/component/list.css.map +1 -1
  27. package/dist/css/component/menu.css +2 -2
  28. package/dist/css/component/menu.css.map +1 -1
  29. package/dist/css/component/navigation.css +2 -2
  30. package/dist/css/component/navigation.css.map +1 -1
  31. package/dist/css/component.css +2 -5
  32. package/dist/css/component.css.map +1 -1
  33. package/dist/css/graupl.css +2 -5
  34. package/dist/css/graupl.css.map +1 -1
  35. package/dist/css/init.css +2 -2
  36. package/dist/css/init.css.map +1 -1
  37. package/dist/css/layout/columns.css +2 -2
  38. package/dist/css/layout/columns.css.map +1 -1
  39. package/dist/css/layout/container.css +2 -2
  40. package/dist/css/layout/container.css.map +1 -1
  41. package/dist/css/layout/flex-columns.css +2 -2
  42. package/dist/css/layout/flex-columns.css.map +1 -1
  43. package/dist/css/layout.css +2 -5
  44. package/dist/css/layout.css.map +1 -1
  45. package/dist/css/normalize.css +2 -2
  46. package/dist/css/normalize.css.map +1 -1
  47. package/dist/css/state/focus.css +2 -2
  48. package/dist/css/state/focus.css.map +1 -1
  49. package/dist/css/state.css +2 -2
  50. package/dist/css/state.css.map +1 -1
  51. package/dist/css/theme/color.css +2 -2
  52. package/dist/css/theme/color.css.map +1 -1
  53. package/dist/css/theme/typography.css +2 -2
  54. package/dist/css/theme/typography.css.map +1 -1
  55. package/dist/css/theme.css +2 -2
  56. package/dist/css/theme.css.map +1 -1
  57. package/dist/css/utilities/alignment.css +1 -1
  58. package/dist/css/utilities/alignment.css.map +1 -1
  59. package/dist/css/utilities/background.css +2 -2
  60. package/dist/css/utilities/background.css.map +1 -1
  61. package/dist/css/utilities/border.css +2 -2
  62. package/dist/css/utilities/border.css.map +1 -1
  63. package/dist/css/utilities/color.css +2 -2
  64. package/dist/css/utilities/color.css.map +1 -1
  65. package/dist/css/utilities/container.css +1 -1
  66. package/dist/css/utilities/container.css.map +1 -1
  67. package/dist/css/utilities/display.css +2 -2
  68. package/dist/css/utilities/display.css.map +1 -1
  69. package/dist/css/utilities/flex.css +2 -2
  70. package/dist/css/utilities/flex.css.map +1 -1
  71. package/dist/css/utilities/gradient.css +2 -2
  72. package/dist/css/utilities/gradient.css.map +1 -1
  73. package/dist/css/utilities/height.css +2 -2
  74. package/dist/css/utilities/height.css.map +1 -1
  75. package/dist/css/utilities/inset.css +2 -2
  76. package/dist/css/utilities/inset.css.map +1 -1
  77. package/dist/css/utilities/justification.css +1 -1
  78. package/dist/css/utilities/justification.css.map +1 -1
  79. package/dist/css/utilities/list.css +1 -1
  80. package/dist/css/utilities/list.css.map +1 -1
  81. package/dist/css/utilities/order.css +2 -2
  82. package/dist/css/utilities/order.css.map +1 -1
  83. package/dist/css/utilities/position.css +2 -2
  84. package/dist/css/utilities/position.css.map +1 -1
  85. package/dist/css/utilities/ratio.css +2 -2
  86. package/dist/css/utilities/ratio.css.map +1 -1
  87. package/dist/css/utilities/spacing.css +2 -2
  88. package/dist/css/utilities/spacing.css.map +1 -1
  89. package/dist/css/utilities/typography.css +2 -2
  90. package/dist/css/utilities/typography.css.map +1 -1
  91. package/dist/css/utilities/visibility.css +2 -2
  92. package/dist/css/utilities/visibility.css.map +1 -1
  93. package/dist/css/utilities/visually-hidden.css +2 -2
  94. package/dist/css/utilities/visually-hidden.css.map +1 -1
  95. package/dist/css/utilities/width.css +2 -2
  96. package/dist/css/utilities/width.css.map +1 -1
  97. package/dist/css/utilities/z-index.css +1 -1
  98. package/dist/css/utilities/z-index.css.map +1 -1
  99. package/dist/css/utilities.css +2 -2
  100. package/dist/css/utilities.css.map +1 -1
  101. package/dist/js/accordion.js.map +1 -1
  102. package/dist/js/alert.js.map +1 -1
  103. package/dist/js/carousel.js.map +1 -1
  104. package/dist/js/component/accordion.cjs.js.map +1 -1
  105. package/dist/js/component/accordion.es.js.map +1 -1
  106. package/dist/js/component/accordion.iife.js.map +1 -1
  107. package/dist/js/component/alert.cjs.js.map +1 -1
  108. package/dist/js/component/alert.es.js.map +1 -1
  109. package/dist/js/component/alert.iife.js.map +1 -1
  110. package/dist/js/component/carousel.cjs.js.map +1 -1
  111. package/dist/js/component/carousel.es.js.map +1 -1
  112. package/dist/js/component/carousel.iife.js.map +1 -1
  113. package/dist/js/component/disclosure.cjs.js +2 -2
  114. package/dist/js/component/disclosure.cjs.js.map +1 -1
  115. package/dist/js/component/disclosure.es.js +2 -2
  116. package/dist/js/component/disclosure.es.js.map +1 -1
  117. package/dist/js/component/disclosure.iife.js +2 -2
  118. package/dist/js/component/disclosure.iife.js.map +1 -1
  119. package/dist/js/component/tabs.cjs.js +5 -0
  120. package/dist/js/component/tabs.cjs.js.map +1 -0
  121. package/dist/js/component/tabs.es.js +5 -0
  122. package/dist/js/component/tabs.es.js.map +1 -0
  123. package/dist/js/component/tabs.iife.js +5 -0
  124. package/dist/js/component/tabs.iife.js.map +1 -0
  125. package/dist/js/disclosure.js +2 -2
  126. package/dist/js/disclosure.js.map +1 -1
  127. package/dist/js/generator/accordion.cjs.js.map +1 -1
  128. package/dist/js/generator/accordion.es.js.map +1 -1
  129. package/dist/js/generator/accordion.iife.js.map +1 -1
  130. package/dist/js/generator/alert.cjs.js.map +1 -1
  131. package/dist/js/generator/alert.es.js.map +1 -1
  132. package/dist/js/generator/alert.iife.js.map +1 -1
  133. package/dist/js/generator/carousel.cjs.js.map +1 -1
  134. package/dist/js/generator/carousel.es.js.map +1 -1
  135. package/dist/js/generator/carousel.iife.js.map +1 -1
  136. package/dist/js/generator/disclosure.cjs.js +2 -2
  137. package/dist/js/generator/disclosure.cjs.js.map +1 -1
  138. package/dist/js/generator/disclosure.es.js +2 -2
  139. package/dist/js/generator/disclosure.es.js.map +1 -1
  140. package/dist/js/generator/disclosure.iife.js +2 -2
  141. package/dist/js/generator/disclosure.iife.js.map +1 -1
  142. package/dist/js/generator/navigation.cjs.js.map +1 -1
  143. package/dist/js/generator/navigation.es.js.map +1 -1
  144. package/dist/js/generator/navigation.iife.js.map +1 -1
  145. package/dist/js/generator/tabs.cjs.js +5 -0
  146. package/dist/js/generator/tabs.cjs.js.map +1 -0
  147. package/dist/js/generator/tabs.es.js +5 -0
  148. package/dist/js/generator/tabs.es.js.map +1 -0
  149. package/dist/js/generator/tabs.iife.js +5 -0
  150. package/dist/js/generator/tabs.iife.js.map +1 -0
  151. package/dist/js/graupl.js +5 -5
  152. package/dist/js/graupl.js.map +1 -1
  153. package/dist/js/navigation.js.map +1 -1
  154. package/dist/js/tabs.js +5 -0
  155. package/dist/js/tabs.js.map +1 -0
  156. package/package.json +4 -3
  157. package/src/js/disclosure/Disclosure.js +25 -45
  158. package/src/js/domHelpers.js +39 -22
  159. package/src/js/tabs/TabToggle.js +378 -0
  160. package/src/js/tabs/Tabs.js +1091 -0
  161. package/src/js/tabs/generator.js +32 -0
  162. package/src/js/tabs/index.js +5 -0
  163. package/src/scss/_defaults.scss +21 -88
  164. package/src/scss/_variables.scss +70 -0
  165. package/src/scss/base/button/_defaults.scss +2 -24
  166. package/src/scss/base/button/_index.scss +53 -52
  167. package/src/scss/base/button/_mixins.scss +24 -58
  168. package/src/scss/base/button/_variables.scss +139 -0
  169. package/src/scss/base/form/_defaults.scss +72 -2
  170. package/src/scss/base/form/_index.scss +196 -70
  171. package/src/scss/base/form/_variables.scss +166 -0
  172. package/src/scss/base/link/_defaults.scss +31 -0
  173. package/src/scss/base/link/_index.scss +177 -172
  174. package/src/scss/base/link/_variables.scss +215 -0
  175. package/src/scss/base/table/_defaults.scss +1 -11
  176. package/src/scss/base/table/_index.scss +126 -117
  177. package/src/scss/base/table/_variables.scss +214 -3
  178. package/src/scss/component/_index.scss +1 -0
  179. package/src/scss/component/accordion/_defaults.scss +73 -22
  180. package/src/scss/component/accordion/_index.scss +437 -62
  181. package/src/scss/component/accordion/_variables.scss +527 -101
  182. package/src/scss/component/alert/_defaults.scss +23 -32
  183. package/src/scss/component/alert/_index.scss +236 -30
  184. package/src/scss/component/alert/_variables.scss +155 -6
  185. package/src/scss/component/badge/_defaults.scss +1 -0
  186. package/src/scss/component/badge/_index.scss +25 -28
  187. package/src/scss/component/badge/_variables.scss +66 -2
  188. package/src/scss/component/card/_defaults.scss +64 -13
  189. package/src/scss/component/card/_index.scss +276 -30
  190. package/src/scss/component/card/_variables.scss +132 -0
  191. package/src/scss/component/carousel/_defaults.scss +73 -15
  192. package/src/scss/component/carousel/_index.scss +357 -41
  193. package/src/scss/component/carousel/_variables.scss +391 -0
  194. package/src/scss/component/disclosure/_index.scss +4 -4
  195. package/src/scss/component/disclosure/_variables.scss +127 -2
  196. package/src/scss/component/input-group/_defaults.scss +10 -3
  197. package/src/scss/component/input-group/_index.scss +72 -4
  198. package/src/scss/component/input-group/_variables.scss +37 -0
  199. package/src/scss/component/list/_defaults.scss +35 -2
  200. package/src/scss/component/list/_index.scss +159 -5
  201. package/src/scss/component/list/_variables.scss +152 -0
  202. package/src/scss/component/menu/_defaults.scss +49 -7
  203. package/src/scss/component/menu/_index.scss +325 -99
  204. package/src/scss/component/menu/_variables.scss +484 -1
  205. package/src/scss/component/navigation/_defaults.scss +45 -3
  206. package/src/scss/component/navigation/_index.scss +249 -98
  207. package/src/scss/component/navigation/_variables.scss +334 -5
  208. package/src/scss/component/tabs/_defaults.scss +82 -0
  209. package/src/scss/component/tabs/_index.scss +497 -0
  210. package/src/scss/component/tabs/_variables.scss +974 -0
  211. package/src/scss/layout/columns/_defaults.scss +5 -3
  212. package/src/scss/layout/columns/_index.scss +27 -21
  213. package/src/scss/layout/columns/_variables.scss +13 -0
  214. package/src/scss/layout/container/_defaults.scss +28 -11
  215. package/src/scss/layout/container/_index.scss +305 -161
  216. package/src/scss/layout/container/_variables.scss +148 -15
  217. package/src/scss/layout/flex-columns/_defaults.scss +5 -3
  218. package/src/scss/layout/flex-columns/_index.scss +28 -20
  219. package/src/scss/layout/flex-columns/_variables.scss +9 -0
  220. package/src/scss/mixins/_state.scss +37 -0
  221. package/src/scss/mixins/_theme.scss +36 -1
  222. package/src/scss/state/focus/_index.scss +17 -12
  223. package/src/scss/state/focus/_variables.scss +30 -4
  224. package/src/scss/theme/color/_defaults.scss +6 -35
  225. package/src/scss/theme/color/_index.scss +167 -1
  226. package/src/scss/theme/color/_variables.scss +155 -0
  227. package/src/scss/theme/typography/_defaults.scss +26 -19
  228. package/src/scss/theme/typography/_index.scss +176 -20
  229. package/src/scss/theme/typography/_variables.scss +186 -0
  230. package/src/scss/utilities/_template/_index.scss +0 -1
  231. package/src/scss/utilities/alignment/_defaults.scss +0 -33
  232. package/src/scss/utilities/alignment/_index.scss +24 -25
  233. package/src/scss/utilities/background/_defaults.scss +0 -77
  234. package/src/scss/utilities/background/_index.scss +32 -37
  235. package/src/scss/utilities/border/_defaults.scss +0 -33
  236. package/src/scss/utilities/border/_index.scss +25 -26
  237. package/src/scss/utilities/color/_defaults.scss +0 -19
  238. package/src/scss/utilities/color/_index.scss +22 -22
  239. package/src/scss/utilities/container/_defaults.scss +0 -11
  240. package/src/scss/utilities/container/_index.scss +20 -19
  241. package/src/scss/utilities/display/_defaults.scss +0 -11
  242. package/src/scss/utilities/display/_index.scss +20 -19
  243. package/src/scss/utilities/flex/_defaults.scss +0 -55
  244. package/src/scss/utilities/flex/_index.scss +28 -31
  245. package/src/scss/utilities/gradient/_defaults.scss +0 -28
  246. package/src/scss/utilities/gradient/_index.scss +27 -28
  247. package/src/scss/utilities/gradient/_variables.scss +15 -0
  248. package/src/scss/utilities/height/_defaults.scss +0 -8
  249. package/src/scss/utilities/height/_index.scss +22 -21
  250. package/src/scss/utilities/inset/_defaults.scss +0 -16
  251. package/src/scss/utilities/inset/_index.scss +20 -20
  252. package/src/scss/utilities/justification/_defaults.scss +0 -33
  253. package/src/scss/utilities/justification/_index.scss +24 -25
  254. package/src/scss/utilities/list/_defaults.scss +0 -22
  255. package/src/scss/utilities/list/_index.scss +22 -22
  256. package/src/scss/utilities/order/_defaults.scss +0 -8
  257. package/src/scss/utilities/order/_index.scss +20 -19
  258. package/src/scss/utilities/position/_defaults.scss +0 -11
  259. package/src/scss/utilities/position/_index.scss +20 -19
  260. package/src/scss/utilities/ratio/_defaults.scss +0 -8
  261. package/src/scss/utilities/ratio/_index.scss +22 -21
  262. package/src/scss/utilities/ratio/_variables.scss +6 -0
  263. package/src/scss/utilities/spacing/_defaults.scss +0 -11
  264. package/src/scss/utilities/spacing/_index.scss +18 -17
  265. package/src/scss/utilities/typography/_defaults.scss +0 -22
  266. package/src/scss/utilities/typography/_index.scss +27 -26
  267. package/src/scss/utilities/visibility/_defaults.scss +0 -11
  268. package/src/scss/utilities/visibility/_index.scss +19 -18
  269. package/src/scss/utilities/visually-hidden/_index.scss +19 -17
  270. package/src/scss/utilities/width/_defaults.scss +0 -8
  271. package/src/scss/utilities/width/_index.scss +21 -20
  272. package/src/scss/utilities/z-index/_defaults.scss +0 -11
  273. package/src/scss/utilities/z-index/_index.scss +19 -18
@@ -1,14 +1,148 @@
1
- // @graupl/core card component styles.
1
+ // @graupl/core list component styles.
2
+ //
3
+ // This module provides the list component styles.
4
+ //
5
+ // The following selectors are generated by default:
6
+ // - `.list`: The list container.
7
+ // - `.list-item`: The list item.
8
+ //
9
+ // The following custom properties can be used to customize the list component:
10
+ // | Property | Description | Default Value |
11
+ // | ---------------------------------------------- | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
12
+ // | `--graupl-list-padding-x` | Horizontal padding of the list. | `var(--graupl-spacer-0)` |
13
+ // | `--graupl-list-padding-y` | Vertical padding of the list. | `var(--graupl-spacer-0)` |
14
+ // | `--graupl-list-padding` | Shorthand padding of the list. | `var(--graupl-list-padding-y) var(--graupl-list-padding-x)` |
15
+ // | `--graupl-list-margin-x` | Horizontal margin of the list. | `var(--graupl-spacer-0)` |
16
+ // | `--graupl-list-margin-y` | Vertical margin of the list. | `var(--graupl-spacer-0)` |
17
+ // | `--graupl-list-margin` | Shorthand margin of the list. | `var(--graupl-list-margin-y) var(--graupl-list-margin-x)` |
18
+ // | `--graupl-list-gap` | Gap between list items (column/row). | `var(--graupl-list-column-gap) var(--graupl-list-row-gap)` |
19
+ // | `--graupl-list-background` | Background colour of the list. | `var(--graupl-background)` |
20
+ // | `--graupl-list-color` | Text colour of the list. | `var(--graupl-color)` |
21
+ // | `--graupl-list-border-width` | Border width of the list. | `0 0 0 0` |
22
+ // | `--graupl-list-border-style` | Border style of the list. | `var(--graupl-border-top-style) var(--graupl-border-right-style) var(--graupl-border-bottom-style) var(--graupl-border-left-style)` |
23
+ // | `--graupl-list-border-radius` | Border radius of the list. | `var(--graupl-border-top-left-radius) var(--graupl-border-top-right-radius) var(--graupl-border-bottom-right-radius) var(--graupl-border-bottom-left-radius)` |
24
+ // | `--graupl-list-border-color` | Border colour of the list. | `var(--graupl-list-color)` |
25
+ // | `--graupl-list-item-padding` | Padding for a list item. | `var(--graupl-spacer-3) var(--graupl-spacer-5)` |
26
+ // | `--graupl-list-item-transition` | Transition applied to list items. | `transform var(--graupl-transition-duration-fast) var(--graupl-transition-timing-function)` |
27
+ // | `--graupl-list-item-transition-reduced-motion` | Transition for items when reduced motion is enabled. | `none` |
28
+ // | `--graupl-list-item-transform` | Base transform for list items. | `none` |
29
+ // | `--graupl-list-item-hover-transform` | Transform for hovered list items. | `none` |
30
+ // | `--graupl-list-item-background` | Background colour of list items. | `var(--graupl-background)` |
31
+ // | `--graupl-list-item-color` | Text colour of list items. | `var(--graupl-color)` |
32
+ // | `--graupl-list-item-border-width` | Border width of list items. | `var(--graupl-border-top-width) var(--graupl-border-right-width) var(--graupl-border-bottom-width) var(--graupl-border-left-width)` |
33
+ // | `--graupl-list-item-border-style` | Border style of list items. | `var(--graupl-border-top-style) var(--graupl-border-right-style) var(--graupl-border-bottom-style) var(--graupl-border-left-style)` |
34
+ // | `--graupl-list-item-border-radius` | Border radius of list items. | `var(--graupl-border-top-left-radius) var(--graupl-border-top-right-radius) var(--graupl-border-bottom-right-radius) var(--graupl-border-bottom-left-radius)` |
35
+ // | `--graupl-list-item-border-color` | Border colour of list items. | `var(--graupl-list-item-color)` |
36
+ //
37
+ // The following sass variables can be used to customize the generation of the list component:
38
+ // | Variable | Description | Default Value |
39
+ // | ---------------------------- | ----------------------------------------- | ---------------- |
40
+ // | `$selector-base` | Selector base for the component. | `"."` |
41
+ // | `$modifier-selector-base` | Selector base for component modifiers. | `"."` |
42
+ // | `$generate-base-theme-map` | Flag to generate the base theme map. | `true` |
43
+ // | `$themeable` | Flag to generate theme modifiers. | `false` |
44
+ // | `$list-selector-base` | Selector base for the list container. | `$selector-base` |
45
+ // | `$list-selector` | Selector for the list container. | `"list"` |
46
+ // | `$list-theme-selector-base` | Selector base for theme modifiers. | `"."` |
47
+ // | `$list-theme-selector-prefix`| Selector prefix for theme modifiers. | `""` |
48
+ // | `$list-item-selector-base` | Selector base for list items. | `$selector-base` |
49
+ // | `$list-item-selector` | Selector for list items. | `"list-item"` |
50
+ // | `$list-item-transform` | Base transform for list items. | `none` |
51
+ // | `$list-item-hover-transform` | Hover transform for list items. | `none` |
52
+ // | `$list-theme-mappings` | Map of properties/shades for list themes. | `()` |
53
+ // | `$list-theme-map` | Expanded map of properties/colors/shades. | `()` |
54
+ //
55
+ // ## Using `$list-theme-mappings`
56
+ //
57
+ // `$list-theme-mappings` is a 1-level map of properties and shade values.
58
+ //
59
+ // e.g.
60
+ // ```scss
61
+ // $list-theme-mappings: (
62
+ // color: 900,
63
+ // border-color: 700,
64
+ // )
65
+ // ```
66
+ //
67
+ // This directly[1] maps to all list variants, telling them what shade to use for the base colour slots.
68
+ // All list variants will use the following based on the example above:
69
+ // - Primary lists will have their `--graupl-list-color` property set to `--graupl-theme-active--primary--900` and `--graupl-list-border-color` to `--graupl-theme-active--primary--700`,
70
+ // - Secondary lists will use the same shades for the secondary palette, and
71
+ // - Tertiary lists will use the same shades for the tertiary palette.
72
+ //
73
+ // You can use this to customize _all_ list variants in the same way.
74
+ //
75
+ // For example, if you use the following map:
76
+ // ```scss
77
+ // $list-theme-mappings: (
78
+ // color: 500,
79
+ // item-color: 500,
80
+ // )
81
+ // ```
82
+ //
83
+ // All list variants will use the following:
84
+ // - Primary lists will have their `--graupl-list-color` and `--graupl-list-item-color` properties set to `--graupl-theme-active--primary--500`,
85
+ // - Secondary lists will have theirs set to `--graupl-theme-active--secondary--500`, and
86
+ // - Tertiary lists will have theirs set to `--graupl-theme-active--tertiary--500`.
87
+ //
88
+ // [1] `$list-theme-mappings` gets parsed into a larger, more explicit map: `$list-theme-map`.
89
+ //
90
+ // Using `$list-theme-map`
91
+ //
92
+ // `$list-theme-map` is a multi-level map of properties, colors, and shade values.
93
+ //
94
+ // e.g.
95
+ // ```scss
96
+ // $list-theme-map: (
97
+ // primary: (
98
+ // item-border-color: (
99
+ // color: secondary,
100
+ // shade: 700
101
+ // ),
102
+ // ),
103
+ // secondary: (
104
+ // item-border-color: (
105
+ // color: secondary,
106
+ // shade: 500
107
+ // ),
108
+ // ),
109
+ // tertiary: (
110
+ // item-border-color: (
111
+ // color: tertiary,
112
+ // shade: 300
113
+ // ),
114
+ // ),
115
+ // )
116
+ // ```
117
+ //
118
+ // This directly maps to all list variants, telling them what shade to use for said property.
119
+ // You can use this to customize list variants individually.
120
+ //
121
+ // @example
122
+ // <ul class="list">
123
+ // <li class="list-item">First item</li>
124
+ // <li class="list-item">Second item</li>
125
+ // <li class="list-item">Third item</li>
126
+ // </ul>
127
+ //
128
+ // @example
129
+ // <ol class="list list-style-decimal list-style-inside">
130
+ // <li class="list-item">Numbered item one</li>
131
+ // <li class="list-item">Numbered item two</li>
132
+ // <li class="list-item">Numbered item three</li>
133
+ // </ol>
2
134
 
3
135
  @use "../../defaults" as root-defaults;
4
136
  @use "../../mixins/animation";
5
137
  @use "../../mixins/layer" as *;
138
+ @use "../../mixins/theme" as theme;
6
139
  @use "defaults";
7
140
  @use "sass:map";
8
141
  @use "variables" as *;
9
142
 
10
143
  @include layer(component) {
11
- #{defaults.$list-selector} {
144
+ // .list
145
+ #{defaults.$list-selector-base}#{defaults.$list-selector} {
12
146
  display: grid;
13
147
  position: relative;
14
148
  margin: $list-margin;
@@ -20,7 +154,8 @@
20
154
  gap: $list-gap;
21
155
  }
22
156
 
23
- #{defaults.$list-item-selector} {
157
+ // .list-item
158
+ #{defaults.$list-item-selector-base}#{defaults.$list-item-selector} {
24
159
  position: relative;
25
160
  padding: $list-item-padding;
26
161
  transform: $list-item-transform;
@@ -30,6 +165,7 @@
30
165
  border-radius: $list-item-border-radius;
31
166
 
32
167
  @each $selector in map.get(root-defaults.$state-selectors, hover) {
168
+ // e.g &:hover, &.hover
33
169
  &#{$selector} {
34
170
  --#{root-defaults.$prefix}list-item-transform: $list-item-hover-transform;
35
171
  }
@@ -38,13 +174,31 @@
38
174
  }
39
175
 
40
176
  @include layer(theme) {
41
- #{defaults.$list-selector} {
177
+ // .list
178
+ #{defaults.$list-selector-base}#{defaults.$list-selector} {
42
179
  border-color: $list-border-color;
43
180
  background: $list-background;
44
181
  color: $list-color;
182
+
183
+ @if root-defaults.$themeable-components and defaults.$themeable {
184
+ @include theme.generate-modifiers(
185
+ defaults.$list-theme-map,
186
+ defaults.$list-theme-selector-base,
187
+ defaults.$list-theme-selector-prefix,
188
+ "list-"
189
+ );
190
+ @include theme.generate-modifiers(
191
+ defaults.$list-theme-map,
192
+ defaults.$list-theme-selector-base,
193
+ defaults.$list-theme-selector-prefix,
194
+ "list-",
195
+ ""
196
+ );
197
+ }
45
198
  }
46
199
 
47
- #{defaults.$list-item-selector} {
200
+ // .list-item
201
+ #{defaults.$list-item-selector-base}#{defaults.$list-item-selector} {
48
202
  border-color: $list-item-border-color;
49
203
  background: $list-item-background;
50
204
  color: $list-item-color;
@@ -3,6 +3,62 @@
3
3
  // These values are to be used to directly style components and provide a
4
4
  // cleaner way to reference custom properties.
5
5
 
6
+ // Custom property defaults:
7
+ // | Custom property | Default |
8
+ // | --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
9
+ // | --graupl-list-padding-x | var(--graupl-spacer-0) |
10
+ // | --graupl-list-padding-y | var(--graupl-spacer-0) |
11
+ // | --graupl-list-padding | var(--graupl-list-padding-y) var(--graupl-list-padding-x) |
12
+ // | --graupl-list-margin-x | var(--graupl-spacer-0) |
13
+ // | --graupl-list-margin-y | var(--graupl-spacer-0) |
14
+ // | --graupl-list-margin | var(--graupl-list-margin-y) var(--graupl-list-margin-x) |
15
+ // | --graupl-list-column-gap | var(--graupl-spacer-2) |
16
+ // | --graupl-list-row-gap | var(--graupl-spacer-2) |
17
+ // | --graupl-list-gap | var(--graupl-list-column-gap) var(--graupl-list-row-gap) |
18
+ // | --graupl-list-background | var(--graupl-background) |
19
+ // | --graupl-list-color | var(--graupl-color) |
20
+ // | --graupl-list-border-color | var(--graupl-list-color) |
21
+ // | --graupl-list-border-top-left-radius | var(--graupl-border-top-left-radius) |
22
+ // | --graupl-list-border-top-right-radius | var(--graupl-border-top-right-radius) |
23
+ // | --graupl-list-border-bottom-left-radius | var(--graupl-border-bottom-left-radius) |
24
+ // | --graupl-list-border-bottom-right-radius | var(--graupl-border-bottom-right-radius) |
25
+ // | --graupl-list-border-radius | var(--graupl-list-border-top-left-radius) var(--graupl-list-border-top-right-radius) var(--graupl-list-border-bottom-right-radius) var(--graupl-list-border-bottom-left-radius) |
26
+ // | --graupl-list-border-top-width | 0 |
27
+ // | --graupl-list-border-right-width | 0 |
28
+ // | --graupl-list-border-bottom-width | 0 |
29
+ // | --graupl-list-border-left-width | 0 |
30
+ // | --graupl-list-border-width | var(--graupl-list-border-top-width) var(--graupl-list-border-right-width) var(--graupl-list-border-bottom-width) var(--graupl-list-border-left-width) |
31
+ // | --graupl-list-border-top-style | var(--graupl-border-top-style) |
32
+ // | --graupl-list-border-right-style | var(--graupl-border-right-style) |
33
+ // | --graupl-list-border-bottom-style | var(--graupl-border-bottom-style) |
34
+ // | --graupl-list-border-left-style | var(--graupl-border-left-style) |
35
+ // | --graupl-list-border-style | var(--graupl-list-border-top-style) var(--graupl-list-border-right-style) var(--graupl-list-border-bottom-style) var(--graupl-list-border-left-style) |
36
+ // | --graupl-list-item-padding-x | var(--graupl-spacer-5) |
37
+ // | --graupl-list-item-padding-y | var(--graupl-spacer-3) |
38
+ // | --graupl-list-item-padding | var(--graupl-list-item-padding-y) var(--graupl-list-item-padding-x) |
39
+ // | --graupl-list-item-transition | transform var(--graupl-transition-duration-fast) var(--graupl-transition-timing-function) |
40
+ // | --graupl-list-item-transition-reduced-motion | none |
41
+ // | --graupl-list-item-transform | none |
42
+ // | --graupl-list-item-hover-transform | none |
43
+ // | --graupl-list-item-background | var(--graupl-background) |
44
+ // | --graupl-list-item-color | var(--graupl-color) |
45
+ // | --graupl-list-item-border-color | var(--graupl-list-item-color) |
46
+ // | --graupl-list-item-border-top-left-radius | var(--graupl-border-top-left-radius) |
47
+ // | --graupl-list-item-border-top-right-radius | var(--graupl-border-top-right-radius) |
48
+ // | --graupl-list-item-border-bottom-left-radius | var(--graupl-border-bottom-left-radius) |
49
+ // | --graupl-list-item-border-bottom-right-radius | var(--graupl-border-bottom-right-radius) |
50
+ // | --graupl-list-item-border-radius | var(--graupl-list-item-border-top-left-radius) var(--graupl-list-item-border-top-right-radius) var(--graupl-list-item-border-bottom-right-radius) var(--graupl-list-item-border-bottom-left-radius) |
51
+ // | --graupl-list-item-border-top-width | var(--graupl-border-top-width) |
52
+ // | --graupl-list-item-border-right-width | var(--graupl-border-right-width) |
53
+ // | --graupl-list-item-border-bottom-width | var(--graupl-border-bottom-width) |
54
+ // | --graupl-list-item-border-left-width | var(--graupl-border-left-width) |
55
+ // | --graupl-list-item-border-width | var(--graupl-list-item-border-top-width) var(--graupl-list-item-border-right-width) var(--graupl-list-item-border-bottom-width) var(--graupl-list-item-border-left-width) |
56
+ // | --graupl-list-item-border-top-style | var(--graupl-border-top-style) |
57
+ // | --graupl-list-item-border-right-style | var(--graupl-border-right-style) |
58
+ // | --graupl-list-item-border-bottom-style | var(--graupl-border-bottom-style) |
59
+ // | --graupl-list-item-border-left-style | var(--graupl-border-left-style) |
60
+ // | --graupl-list-item-border-style | var(--graupl-list-item-border-top-style) var(--graupl-list-item-border-right-style) var(--graupl-list-item-border-bottom-style) var(--graupl-list-item-border-left-style) |
61
+
6
62
  @use "../../defaults" as root-defaults;
7
63
  @use "../../theme/color/variables" as color;
8
64
  @use "../../variables" as root-variables;
@@ -10,112 +66,162 @@
10
66
  @use "sass:map";
11
67
 
12
68
  // List properties.
69
+ // --graupl-list-padding-x
13
70
  $list-padding-x: var(
14
71
  --#{root-defaults.$prefix}list-padding-x,
15
72
  #{map.get(root-variables.$spacers, 0)}
16
73
  );
74
+
75
+ // --graupl-list-padding-y
17
76
  $list-padding-y: var(
18
77
  --#{root-defaults.$prefix}list-padding-y,
19
78
  #{map.get(root-variables.$spacers, 0)}
20
79
  );
80
+
81
+ // --graupl-list-padding
21
82
  $list-padding: var(
22
83
  --#{root-defaults.$prefix}list-padding,
23
84
  #{$list-padding-y} #{$list-padding-x}
24
85
  );
86
+
87
+ // --graupl-list-margin-x
25
88
  $list-margin-x: var(
26
89
  --#{root-defaults.$prefix}list-margin-x,
27
90
  #{map.get(root-variables.$spacers, 0)}
28
91
  );
92
+
93
+ // --graupl-list-margin-y
29
94
  $list-margin-y: var(
30
95
  --#{root-defaults.$prefix}list-margin-y,
31
96
  #{map.get(root-variables.$spacers, 0)}
32
97
  );
98
+
99
+ // --graupl-list-margin
33
100
  $list-margin: var(
34
101
  --#{root-defaults.$prefix}list-margin,
35
102
  #{$list-margin-y} #{$list-margin-x}
36
103
  );
37
104
 
38
105
  // List gap properties.
106
+ // --graupl-list-column-gap
39
107
  $list-column-gap: var(
40
108
  --#{root-defaults.$prefix}list-column-gap,
41
109
  #{map.get(root-variables.$spacers, 2)}
42
110
  );
111
+
112
+ // --graupl-list-row-gap
43
113
  $list-row-gap: var(
44
114
  --#{root-defaults.$prefix}list-row-gap,
45
115
  #{map.get(root-variables.$spacers, 2)}
46
116
  );
117
+
118
+ // --graupl-list-gap
47
119
  $list-gap: var(
48
120
  --#{root-defaults.$prefix}list-gap,
49
121
  #{$list-column-gap} #{$list-row-gap}
50
122
  );
51
123
 
52
124
  // List color properties.
125
+ // --graupl-list-background
53
126
  $list-background: var(
54
127
  --#{root-defaults.$prefix}list-background,
55
128
  #{color.$background}
56
129
  );
130
+
131
+ // --graupl-list-color
57
132
  $list-color: var(--#{root-defaults.$prefix}list-color, #{color.$color});
58
133
 
59
134
  // List border-properties.
135
+ // --graupl-list-border-color
60
136
  $list-border-color: var(
61
137
  --#{root-defaults.$prefix}list-border-color,
62
138
  #{$list-color}
63
139
  );
140
+
141
+ // --graupl-list-border-top-left-radius
64
142
  $list-border-top-left-radius: var(
65
143
  --#{root-defaults.$prefix}list-border-top-left-radius,
66
144
  #{root-variables.$border-top-left-radius}
67
145
  );
146
+
147
+ // --graupl-list-border-top-right-radius
68
148
  $list-border-top-right-radius: var(
69
149
  --#{root-defaults.$prefix}list-border-top-right-radius,
70
150
  #{root-variables.$border-top-right-radius}
71
151
  );
152
+
153
+ // --graupl-list-border-bottom-left-radius
72
154
  $list-border-bottom-left-radius: var(
73
155
  --#{root-defaults.$prefix}list-border-bottom-left-radius,
74
156
  #{root-variables.$border-bottom-left-radius}
75
157
  );
158
+
159
+ // --graupl-list-border-bottom-right-radius
76
160
  $list-border-bottom-right-radius: var(
77
161
  --#{root-defaults.$prefix}list-border-bottom-right-radius,
78
162
  #{root-variables.$border-bottom-right-radius}
79
163
  );
164
+
165
+ // --graupl-list-border-radius
80
166
  $list-border-radius: var(
81
167
  --#{root-defaults.$prefix}list-border-radius,
82
168
  #{$list-border-top-left-radius} #{$list-border-top-right-radius}
83
169
  #{$list-border-bottom-right-radius} #{$list-border-bottom-left-radius}
84
170
  );
171
+
172
+ // --graupl-list-border-top-width
85
173
  $list-border-top-width: var(--#{root-defaults.$prefix}list-border-top-width, 0);
174
+
175
+ // --graupl-list-border-right-width
86
176
  $list-border-right-width: var(
87
177
  --#{root-defaults.$prefix}list-border-right-width,
88
178
  0
89
179
  );
180
+
181
+ // --graupl-list-border-bottom-width
90
182
  $list-border-bottom-width: var(
91
183
  --#{root-defaults.$prefix}list-border-bottom-width,
92
184
  0
93
185
  );
186
+
187
+ // --graupl-list-border-left-width
94
188
  $list-border-left-width: var(
95
189
  --#{root-defaults.$prefix}list-border-left-width,
96
190
  0
97
191
  );
192
+
193
+ // --graupl-list-border-width
98
194
  $list-border-width: var(
99
195
  --#{root-defaults.$prefix}list-border-width,
100
196
  #{$list-border-top-width} #{$list-border-right-width}
101
197
  #{$list-border-bottom-width} #{$list-border-left-width}
102
198
  );
199
+
200
+ // --graupl-list-border-top-style
103
201
  $list-border-top-style: var(
104
202
  --#{root-defaults.$prefix}list-border-top-style,
105
203
  #{root-variables.$border-top-style}
106
204
  );
205
+
206
+ // --graupl-list-border-right-style
107
207
  $list-border-right-style: var(
108
208
  --#{root-defaults.$prefix}list-border-right-style,
109
209
  #{root-variables.$border-right-style}
110
210
  );
211
+
212
+ // --graupl-list-border-bottom-style
111
213
  $list-border-bottom-style: var(
112
214
  --#{root-defaults.$prefix}list-border-bottom-style,
113
215
  #{root-variables.$border-bottom-style}
114
216
  );
217
+
218
+ // --graupl-list-border-left-style
115
219
  $list-border-left-style: var(
116
220
  --#{root-defaults.$prefix}list-border-left-style,
117
221
  #{root-variables.$border-left-style}
118
222
  );
223
+
224
+ // --graupl-list-border-style
119
225
  $list-border-style: var(
120
226
  --#{root-defaults.$prefix}list-border-style,
121
227
  #{$list-border-top-style} #{$list-border-right-style}
@@ -123,112 +229,158 @@ $list-border-style: var(
123
229
  );
124
230
 
125
231
  // List item properties.
232
+ // --graupl-list-item-padding-x
126
233
  $list-item-padding-x: var(
127
234
  --#{root-defaults.$prefix}list-item-padding-x,
128
235
  #{map.get(root-variables.$spacers, 5)}
129
236
  );
237
+
238
+ // --graupl-list-item-padding-y
130
239
  $list-item-padding-y: var(
131
240
  --#{root-defaults.$prefix}list-item-padding-y,
132
241
  #{map.get(root-variables.$spacers, 3)}
133
242
  );
243
+
244
+ // --graupl-list-item-padding
134
245
  $list-item-padding: var(
135
246
  --#{root-defaults.$prefix}list-item-padding,
136
247
  #{$list-item-padding-y} #{$list-item-padding-x}
137
248
  );
249
+
250
+ // --graupl-list-item-transition
138
251
  $list-item-transition: var(
139
252
  --#{root-defaults.$prefix}list-item-transition,
140
253
  transform #{map.get(root-variables.$transition-durations, fast)}
141
254
  #{root-variables.$transition-timing-function}
142
255
  );
256
+
257
+ // --graupl-list-item-transition-reduced-motion
143
258
  $list-item-transition-reduced-motion: var(
144
259
  --#{root-defaults.$prefix}list-item-transition-reduced-motion,
145
260
  none
146
261
  );
147
262
 
148
263
  // List item transform properties.
264
+ // --graupl-list-item-transform
149
265
  $list-item-transform: var(
150
266
  --#{root-defaults.$prefix}list-item-transform,
151
267
  #{defaults.$list-item-transform}
152
268
  );
269
+
270
+ // --graupl-list-item-hover-transform
153
271
  $list-item-hover-transform: var(
154
272
  --#{root-defaults.$prefix}list-item-hover-transform,
155
273
  #{defaults.$list-item-hover-transform}
156
274
  );
157
275
 
158
276
  // List item color properties.
277
+ // --graupl-list-item-background
159
278
  $list-item-background: var(
160
279
  --#{root-defaults.$prefix}list-item-background,
161
280
  #{color.$background}
162
281
  );
282
+
283
+ // --graupl-list-item-color
163
284
  $list-item-color: var(
164
285
  --#{root-defaults.$prefix}list-item-color,
165
286
  #{color.$color}
166
287
  );
167
288
 
168
289
  // List item border-properties.
290
+ // --graupl-list-item-border-color
169
291
  $list-item-border-color: var(
170
292
  --#{root-defaults.$prefix}list-item-border-color,
171
293
  #{$list-item-color}
172
294
  );
295
+
296
+ // --graupl-list-item-border-top-left-radius
173
297
  $list-item-border-top-left-radius: var(
174
298
  --#{root-defaults.$prefix}list-item-border-top-left-radius,
175
299
  #{root-variables.$border-top-left-radius}
176
300
  );
301
+
302
+ // --graupl-list-item-border-top-right-radius
177
303
  $list-item-border-top-right-radius: var(
178
304
  --#{root-defaults.$prefix}list-item-border-top-right-radius,
179
305
  #{root-variables.$border-top-right-radius}
180
306
  );
307
+
308
+ // --graupl-list-item-border-bottom-left-radius
181
309
  $list-item-border-bottom-left-radius: var(
182
310
  --#{root-defaults.$prefix}list-item-border-bottom-left-radius,
183
311
  #{root-variables.$border-bottom-left-radius}
184
312
  );
313
+
314
+ // --graupl-list-item-border-bottom-right-radius
185
315
  $list-item-border-bottom-right-radius: var(
186
316
  --#{root-defaults.$prefix}list-item-border-bottom-right-radius,
187
317
  #{root-variables.$border-bottom-right-radius}
188
318
  );
319
+
320
+ // --graupl-list-item-border-radius
189
321
  $list-item-border-radius: var(
190
322
  --#{root-defaults.$prefix}list-item-border-radius,
191
323
  #{$list-item-border-top-left-radius} #{$list-item-border-top-right-radius}
192
324
  #{$list-item-border-bottom-right-radius}
193
325
  #{$list-item-border-bottom-left-radius}
194
326
  );
327
+
328
+ // --graupl-list-item-border-top-width
195
329
  $list-item-border-top-width: var(
196
330
  --#{root-defaults.$prefix}list-item-border-top-width,
197
331
  #{root-variables.$border-top-width}
198
332
  );
333
+
334
+ // --graupl-list-item-border-right-width
199
335
  $list-item-border-right-width: var(
200
336
  --#{root-defaults.$prefix}list-item-border-right-width,
201
337
  #{root-variables.$border-right-width}
202
338
  );
339
+
340
+ // --graupl-list-item-border-bottom-width
203
341
  $list-item-border-bottom-width: var(
204
342
  --#{root-defaults.$prefix}list-item-border-bottom-width,
205
343
  #{root-variables.$border-bottom-width}
206
344
  );
345
+
346
+ // --graupl-list-item-border-left-width
207
347
  $list-item-border-left-width: var(
208
348
  --#{root-defaults.$prefix}list-item-border-left-width,
209
349
  #{root-variables.$border-left-width}
210
350
  );
351
+
352
+ // --graupl-list-item-border-width
211
353
  $list-item-border-width: var(
212
354
  --#{root-defaults.$prefix}list-item-border-width,
213
355
  #{$list-item-border-top-width} #{$list-item-border-right-width}
214
356
  #{$list-item-border-bottom-width} #{$list-item-border-left-width}
215
357
  );
358
+
359
+ // --graupl-list-item-border-top-style
216
360
  $list-item-border-top-style: var(
217
361
  --#{root-defaults.$prefix}list-item-border-top-style,
218
362
  #{root-variables.$border-top-style}
219
363
  );
364
+
365
+ // --graupl-list-item-border-right-style
220
366
  $list-item-border-right-style: var(
221
367
  --#{root-defaults.$prefix}list-item-border-right-style,
222
368
  #{root-variables.$border-right-style}
223
369
  );
370
+
371
+ // --graupl-list-item-border-bottom-style
224
372
  $list-item-border-bottom-style: var(
225
373
  --#{root-defaults.$prefix}list-item-border-bottom-style,
226
374
  #{root-variables.$border-bottom-style}
227
375
  );
376
+
377
+ // --graupl-list-item-border-left-style
228
378
  $list-item-border-left-style: var(
229
379
  --#{root-defaults.$prefix}list-item-border-left-style,
230
380
  #{root-variables.$border-left-style}
231
381
  );
382
+
383
+ // --graupl-list-item-border-style
232
384
  $list-item-border-style: var(
233
385
  --#{root-defaults.$prefix}list-item-border-style,
234
386
  #{$list-item-border-top-style} #{$list-item-border-right-style}
@@ -6,14 +6,31 @@
6
6
  // They should not be used to define direct property values (i.e. font-size, color, etc.).
7
7
  // Those should be defined as custom properties in the `_variables.scss` file.
8
8
 
9
+ @use "../../defaults" as root-defaults;
10
+ @use "../../functions/theme";
11
+ @use "sass:map";
12
+
9
13
  // 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;
14
+ $selector-base: root-defaults.$component-selector-base !default;
15
+ $modifier-selector-base: root-defaults.$modifier-selector-base !default;
16
+ $generate-base-theme-map: root-defaults.$generate-base-theme-maps !default;
17
+ $themeable: false !default;
18
+ $menu-selector-base: $selector-base !default;
19
+ $menu-selector: "menu" !default;
20
+ $menu-theme-selector-base: $modifier-selector-base !default;
21
+ $menu-theme-selector-prefix: "" !default;
22
+ $submenu-selector-base: $selector-base !default;
23
+ $submenu-selector: "submenu" !default;
24
+ $menu-item-selector-base: $selector-base !default;
25
+ $menu-item-selector: "menu-item" !default;
26
+ $menu-link-selector-base: $selector-base !default;
27
+ $menu-link-selector: "menu-link" !default;
28
+ $submenu-toggle-selector-base: $selector-base !default;
29
+ $submenu-toggle-selector: "submenu-toggle" !default;
30
+ $menu-show-selector-base: $modifier-selector-base !default;
31
+ $menu-show-selector: "show" !default;
32
+ $menu-hide-selector-base: $modifier-selector-base !default;
33
+ $menu-hide-selector: "hide" !default;
17
34
 
18
35
  // Flex properties.
19
36
  $menu-flex-direction: row !default;
@@ -55,3 +72,28 @@ $menu-link-border-width: 0 !default;
55
72
  $submenu-toggle-transform: rotate(0deg) !default;
56
73
  $submenu-toggle-open-transform: rotate(-180deg) !default;
57
74
  $submenu-toggle-content: "'↓'" !default;
75
+
76
+ // Menu state theme defaults.
77
+ // This map is used to define the default colour shades for the
78
+ // themed menu bases.
79
+ //
80
+ // e.g.
81
+ // Primary menus will use primary--900 as the text colour and primary--700 as the border colour.
82
+ //
83
+ // Secondary/tertiary menus will use the same shade for their respective colours.
84
+ $-menu-theme-mappings: (
85
+ color: 900,
86
+ border-color: 700,
87
+ link-hover-background: 700,
88
+ link-hover-color: 100,
89
+ );
90
+ $menu-theme-mappings: () !default;
91
+
92
+ // Merge the custom menu state theme map with the default one.
93
+ @if $generate-base-theme-map {
94
+ $menu-theme-mappings: map.merge($-menu-theme-mappings, $menu-theme-mappings);
95
+ }
96
+
97
+ $-menu-theme-map: theme.generate-property-map($menu-theme-mappings);
98
+ $menu-theme-map: () !default;
99
+ $menu-theme-map: map.deep-merge($-menu-theme-map, $menu-theme-map);