@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
@@ -6,7 +6,8 @@
6
6
  @use "variables" as *;
7
7
  @use "../../mixins/layer" as *;
8
8
  @use "../../mixins/animation";
9
- @use "../../functions/theme";
9
+ @use "../../mixins/state";
10
+ @use "../../mixins/theme";
10
11
  @use "sass:map";
11
12
 
12
13
  /// Mixin to apply base styles for buttons.
@@ -25,28 +26,15 @@
25
26
  font-size: $button-font-size;
26
27
  cursor: pointer;
27
28
 
28
- @each $state, $selectors in root-defaults.$state-selectors {
29
- @each $selector in $selectors {
30
- // e.g &:visited, &:focus-visible, &:hover, &:active, &:disabled
31
- &#{$selector} {
32
- transform: map.get($button-transform-states, $state);
29
+ @include state.generate-modifiers(
30
+ (
31
+ transform: $button-transform-states,
32
+ )
33
+ );
33
34
 
34
- // If the state is disabled, we want that to supersede all other states.
35
- @if $state == "disabled" {
36
- cursor: not-allowed;
37
-
38
- @each $sub-state, $sub-selectors in root-defaults.$state-selectors {
39
- @if $sub-state != $state {
40
- @each $sub-selector in $sub-selectors {
41
- // e.g &:visited, &:focus-visible, &:hover, &:active
42
- &#{$sub-selector} {
43
- transform: map.get($button-transform-states, $state);
44
- }
45
- }
46
- }
47
- }
48
- }
49
- }
35
+ @each $selector in map.get(root-defaults.$state-selectors, "disabled") {
36
+ &#{$selector} {
37
+ cursor: not-allowed;
50
38
  }
51
39
  }
52
40
 
@@ -61,43 +49,21 @@
61
49
  background: $button-background;
62
50
  color: $button-color;
63
51
 
64
- @each $color, $map in defaults.$button-theme-map {
65
- // e.g. &.primary, &.secondary, &.tertiary
66
- &#{defaults.$button-theme-selector-base}#{defaults.$button-theme-selector-prefix}#{$color} {
67
- @each $prop, $value in $map {
68
- --#{root-defaults.$prefix}button-#{$prop}: #{theme.get(
69
- map.get($value, color),
70
- map.get($value, shade)
71
- )};
72
- }
73
- }
74
- }
52
+ @include state.generate-modifiers(
53
+ (
54
+ border-color: $button-border-color-states,
55
+ background: $button-background-states,
56
+ color: $button-color-states,
57
+ )
58
+ );
75
59
 
76
- @each $state, $selectors in root-defaults.$state-selectors {
77
- @each $selector in $selectors {
78
- // e.g &:visited, &:focus-visible, &:hover, &:active, &:disabled
79
- &#{$selector} {
80
- border-color: map.get($button-border-color-states, $state);
81
- background: map.get($button-background-states, $state);
82
- color: map.get($button-color-states, $state);
83
-
84
- // If the state is disabled, we want that to supersede all other states.
85
- @if $state == "disabled" {
86
- @each $sub-state, $sub-selectors in root-defaults.$state-selectors {
87
- @if $sub-state != $state {
88
- @each $sub-selector in $sub-selectors {
89
- // e.g &:visited, &:focus-visible, &:hover, &:active
90
- &#{$sub-selector} {
91
- border-color: map.get($button-border-color-states, $state);
92
- background: map.get($button-background-states, $state);
93
- color: map.get($button-color-states, $state);
94
- }
95
- }
96
- }
97
- }
98
- }
99
- }
100
- }
60
+ @if root-defaults.$themeable-components and defaults.$themeable {
61
+ @include theme.generate-modifiers(
62
+ defaults.$button-theme-map,
63
+ defaults.$button-theme-selector-base,
64
+ defaults.$button-theme-selector-prefix,
65
+ "button-"
66
+ );
101
67
  }
102
68
  }
103
69
 
@@ -3,6 +3,57 @@
3
3
  // These values are to be used to directly style bases and provide a
4
4
  // cleaner way to reference custom properties.
5
5
 
6
+ // Custom property defaults:
7
+ // | Custom property | Default |
8
+ // | ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
9
+ // | --graupl-button-min-width | 44px |
10
+ // | --graupl-button-min-height | 44px |
11
+ // | --graupl-button-padding-x | var(--graupl-spacer-5) |
12
+ // | --graupl-button-padding-y | var(--graupl-spacer-3) |
13
+ // | --graupl-button-padding | var(--graupl-button-padding-y) var(--graupl-button-padding-x) |
14
+ // | --graupl-button-font-size | var(--graupl-font-base) |
15
+ // | --graupl-button-transition | background var(--graupl-transition-duration-fast) var(--graupl-transition-timing-function), color var(--graupl-transition-duration-fast) var(--graupl-transition-timing-function), transform var(--graupl-transition-duration-fast) var(--graupl-transition-timing-function) |
16
+ // | --graupl-button-transition-reduced-motion | background var(--graupl-transition-duration-none) var(--graupl-transition-timing-function), color var(--graupl-transition-duration-none) var(--graupl-transition-timing-function) |
17
+ // | --graupl-button-transform | none |
18
+ // | --graupl-button-visited-transform | var(--graupl-button-transform) |
19
+ // | --graupl-button-focus-transform | var(--graupl-button-transform) |
20
+ // | --graupl-button-hover-transform | var(--graupl-button-transform) |
21
+ // | --graupl-button-active-transform | scale(0.95) |
22
+ // | --graupl-button-disabled-transform | none |
23
+ // | --graupl-button-background | var(--graupl-background) |
24
+ // | --graupl-button-visited-background | var(--graupl-button-background) |
25
+ // | --graupl-button-focus-background | var(--graupl-button-background) |
26
+ // | --graupl-button-hover-background | var(--graupl-color) |
27
+ // | --graupl-button-active-background | var(--graupl-button-hover-background) |
28
+ // | --graupl-button-disabled-background | var(--graupl-background) |
29
+ // | --graupl-button-color | var(--graupl-color) |
30
+ // | --graupl-button-visited-color | var(--graupl-button-color) |
31
+ // | --graupl-button-focus-color | var(--graupl-button-color) |
32
+ // | --graupl-button-hover-color | var(--graupl-background) |
33
+ // | --graupl-button-active-color | var(--graupl-button-hover-color) |
34
+ // | --graupl-button-disabled-color | var(--graupl-theme-active--primary--200) |
35
+ // | --graupl-button-border-top-width | var(--graupl-border-top-width) |
36
+ // | --graupl-button-border-right-width | var(--graupl-border-right-width) |
37
+ // | --graupl-button-border-bottom-width | var(--graupl-border-bottom-width) |
38
+ // | --graupl-button-border-left-width | var(--graupl-border-left-width) |
39
+ // | --graupl-button-border-width | var(--graupl-button-border-top-width) var(--graupl-button-border-right-width) var(--graupl-button-border-bottom-width) var(--graupl-button-border-left-width) |
40
+ // | --graupl-button-border-top-style | var(--graupl-border-top-style) |
41
+ // | --graupl-button-border-right-style | var(--graupl-border-right-style) |
42
+ // | --graupl-button-border-bottom-style | var(--graupl-border-bottom-style) |
43
+ // | --graupl-button-border-left-style | var(--graupl-border-left-style) |
44
+ // | --graupl-button-border-style | var(--graupl-button-border-top-style) var(--graupl-button-border-right-style) var(--graupl-button-border-bottom-style) var(--graupl-button-border-left-style) |
45
+ // | --graupl-button-border-top-left-radius | var(--graupl-border-top-left-radius) |
46
+ // | --graupl-button-border-top-right-radius | var(--graupl-border-top-right-radius) |
47
+ // | --graupl-button-border-bottom-right-radius | var(--graupl-border-bottom-right-radius) |
48
+ // | --graupl-button-border-bottom-left-radius | var(--graupl-border-bottom-left-radius) |
49
+ // | --graupl-button-border-radius | var(--graupl-button-border-top-left-radius) var(--graupl-button-border-top-right-radius) var(--graupl-button-border-bottom-right-radius) var(--graupl-button-border-bottom-left-radius) |
50
+ // | --graupl-button-border-color | var(--graupl-border-color) |
51
+ // | --graupl-button-visited-border-color | var(--graupl-button-border-color) |
52
+ // | --graupl-button-focus-border-color | var(--graupl-button-border-color) |
53
+ // | --graupl-button-hover-border-color | var(--graupl-border-color) |
54
+ // | --graupl-button-active-border-color | var(--graupl-button-hover-border-color) |
55
+ // | --graupl-button-disabled-border-color | var(--graupl-theme-active--primary--200) |
56
+
6
57
  @use "defaults";
7
58
  @use "../../variables" as root-variables;
8
59
  @use "../../defaults" as root-defaults;
@@ -12,30 +63,43 @@
12
63
  @use "sass:map";
13
64
 
14
65
  // Button properties.
66
+ // --graupl-button-min-width
15
67
  $button-min-width: var(
16
68
  --#{root-defaults.$prefix}button-min-width,
17
69
  #{root-defaults.$interactive-min-width}
18
70
  );
71
+
72
+ // --graupl-button-min-height
19
73
  $button-min-height: var(
20
74
  --#{root-defaults.$prefix}button-min-height,
21
75
  #{root-defaults.$interactive-min-height}
22
76
  );
77
+
78
+ // --graupl-button-padding-x
23
79
  $button-padding-x: var(
24
80
  --#{root-defaults.$prefix}button-padding-x,
25
81
  #{map.get(root-variables.$spacers, 5)}
26
82
  );
83
+
84
+ // --graupl-button-padding-y
27
85
  $button-padding-y: var(
28
86
  --#{root-defaults.$prefix}button-padding-y,
29
87
  #{map.get(root-variables.$spacers, 3)}
30
88
  );
89
+
90
+ // --graupl-button-padding
31
91
  $button-padding: var(
32
92
  --#{root-defaults.$prefix}button-padding,
33
93
  #{$button-padding-y} #{$button-padding-x}
34
94
  );
95
+
96
+ // --graupl-button-font-size
35
97
  $button-font-size: var(
36
98
  --#{root-defaults.$prefix}button-font-size,
37
99
  #{map.get(typography.$font-sizes, base)}
38
100
  );
101
+
102
+ // --graupl-button-transition
39
103
  $button-transition: var(
40
104
  --#{root-defaults.$prefix}button-transition,
41
105
  background #{map.get(root-variables.$transition-durations, fast)}
@@ -45,6 +109,8 @@ $button-transition: var(
45
109
  transform #{map.get(root-variables.$transition-durations, fast)}
46
110
  #{root-variables.$transition-timing-function}
47
111
  );
112
+
113
+ // --graupl-button-transition-reduced-motion
48
114
  $button-transition-reduced-motion: var(
49
115
  --#{root-defaults.$prefix}button-transition-reduced-motion,
50
116
  background #{map.get(root-variables.$transition-durations, none)}
@@ -54,26 +120,37 @@ $button-transition-reduced-motion: var(
54
120
  );
55
121
 
56
122
  // Transform properties.
123
+ // --graupl-button-transform
57
124
  $button-transform: var(
58
125
  --#{root-defaults.$prefix}button-transform,
59
126
  #{defaults.$button-initial-transform}
60
127
  );
128
+
129
+ // --graupl-button-visited-transform
61
130
  $button-visited-transform: var(
62
131
  --#{root-defaults.$prefix}button-visited-transform,
63
132
  #{$button-transform}
64
133
  );
134
+
135
+ // --graupl-button-focus-transform
65
136
  $button-focus-transform: var(
66
137
  --#{root-defaults.$prefix}button-focus-transform,
67
138
  #{$button-transform}
68
139
  );
140
+
141
+ // --graupl-button-hover-transform
69
142
  $button-hover-transform: var(
70
143
  --#{root-defaults.$prefix}button-hover-transform,
71
144
  #{$button-transform}
72
145
  );
146
+
147
+ // --graupl-button-active-transform
73
148
  $button-active-transform: var(
74
149
  --#{root-defaults.$prefix}button-active-transform,
75
150
  #{defaults.$button-final-transform}
76
151
  );
152
+
153
+ // --graupl-button-disabled-transform
77
154
  $button-disabled-transform: var(
78
155
  --#{root-defaults.$prefix}button-disabled-transform,
79
156
  #{defaults.$button-disabled-transform}
@@ -88,26 +165,37 @@ $button-transform-states: (
88
165
  );
89
166
 
90
167
  // Background properties.
168
+ // --graupl-button-background
91
169
  $button-background: var(
92
170
  --#{root-defaults.$prefix}button-background,
93
171
  #{color.$background}
94
172
  );
173
+
174
+ // --graupl-button-visited-background
95
175
  $button-visited-background: var(
96
176
  --#{root-defaults.$prefix}button-visited-background,
97
177
  #{$button-background}
98
178
  );
179
+
180
+ // --graupl-button-focus-background
99
181
  $button-focus-background: var(
100
182
  --#{root-defaults.$prefix}button-focus-background,
101
183
  #{$button-background}
102
184
  );
185
+
186
+ // --graupl-button-hover-background
103
187
  $button-hover-background: var(
104
188
  --#{root-defaults.$prefix}button-hover-background,
105
189
  #{color.$color}
106
190
  );
191
+
192
+ // --graupl-button-active-background
107
193
  $button-active-background: var(
108
194
  --#{root-defaults.$prefix}button-active-background,
109
195
  #{$button-hover-background}
110
196
  );
197
+
198
+ // --graupl-button-disabled-background
111
199
  $button-disabled-background: var(
112
200
  --#{root-defaults.$prefix}button-disabled-background,
113
201
  #{color.$background}
@@ -122,23 +210,34 @@ $button-background-states: (
122
210
  );
123
211
 
124
212
  // Text properties.
213
+ // --graupl-button-color
125
214
  $button-color: var(--#{root-defaults.$prefix}button-color, #{color.$color});
215
+
216
+ // --graupl-button-visited-color
126
217
  $button-visited-color: var(
127
218
  --#{root-defaults.$prefix}button-visited-color,
128
219
  #{$button-color}
129
220
  );
221
+
222
+ // --graupl-button-focus-color
130
223
  $button-focus-color: var(
131
224
  --#{root-defaults.$prefix}button-focus-color,
132
225
  #{$button-color}
133
226
  );
227
+
228
+ // --graupl-button-hover-color
134
229
  $button-hover-color: var(
135
230
  --#{root-defaults.$prefix}button-hover-color,
136
231
  #{color.$background}
137
232
  );
233
+
234
+ // --graupl-button-active-color
138
235
  $button-active-color: var(
139
236
  --#{root-defaults.$prefix}button-active-color,
140
237
  #{$button-hover-color}
141
238
  );
239
+
240
+ // --graupl-button-disabled-color
142
241
  $button-disabled-color: var(
143
242
  --#{root-defaults.$prefix}button-disabled-color,
144
243
  #{theme.get(primary, 200)}
@@ -153,64 +252,93 @@ $button-color-states: (
153
252
  );
154
253
 
155
254
  // Border properties.
255
+ // --graupl-button-border-top-width
156
256
  $button-border-top-width: var(
157
257
  --#{root-defaults.$prefix}button-border-top-width,
158
258
  #{root-variables.$border-top-width}
159
259
  );
260
+
261
+ // --graupl-button-border-right-width
160
262
  $button-border-right-width: var(
161
263
  --#{root-defaults.$prefix}button-border-right-width,
162
264
  #{root-variables.$border-right-width}
163
265
  );
266
+
267
+ // --graupl-button-border-bottom-width
164
268
  $button-border-bottom-width: var(
165
269
  --#{root-defaults.$prefix}button-border-bottom-width,
166
270
  #{root-variables.$border-bottom-width}
167
271
  );
272
+
273
+ // --graupl-button-border-left-width
168
274
  $button-border-left-width: var(
169
275
  --#{root-defaults.$prefix}button-border-left-width,
170
276
  #{root-variables.$border-left-width}
171
277
  );
278
+
279
+ // --graupl-button-border-width
172
280
  $button-border-width: var(
173
281
  --#{root-defaults.$prefix}button-border-width,
174
282
  #{$button-border-top-width} #{$button-border-right-width}
175
283
  #{$button-border-bottom-width} #{$button-border-left-width}
176
284
  );
285
+
286
+ // --graupl-button-border-top-style
177
287
  $button-border-top-style: var(
178
288
  --#{root-defaults.$prefix}button-border-top-style,
179
289
  #{root-variables.$border-top-style}
180
290
  );
291
+
292
+ // --graupl-button-border-right-style
181
293
  $button-border-right-style: var(
182
294
  --#{root-defaults.$prefix}button-border-right-style,
183
295
  #{root-variables.$border-right-style}
184
296
  );
297
+
298
+ // --graupl-button-border-bottom-style
185
299
  $button-border-bottom-style: var(
186
300
  --#{root-defaults.$prefix}button-border-bottom-style,
187
301
  #{root-variables.$border-bottom-style}
188
302
  );
303
+
304
+ // --graupl-button-border-left-style
189
305
  $button-border-left-style: var(
190
306
  --#{root-defaults.$prefix}button-border-left-style,
191
307
  #{root-variables.$border-left-style}
192
308
  );
309
+
310
+ // --graupl-button-border-style
193
311
  $button-border-style: var(
194
312
  --#{root-defaults.$prefix}button-border-style,
195
313
  #{$button-border-top-style} #{$button-border-right-style}
196
314
  #{$button-border-bottom-style} #{$button-border-left-style}
197
315
  );
316
+
317
+ // --graupl-button-border-top-left-radius
198
318
  $button-border-top-left-radius: var(
199
319
  --#{root-defaults.$prefix}button-border-top-left-radius,
200
320
  #{root-variables.$border-top-left-radius}
201
321
  );
322
+
323
+ // --graupl-button-border-top-right-radius
202
324
  $button-border-top-right-radius: var(
203
325
  --#{root-defaults.$prefix}button-border-top-right-radius,
204
326
  #{root-variables.$border-top-right-radius}
205
327
  );
328
+
329
+ // --graupl-button-border-bottom-right-radius
206
330
  $button-border-bottom-right-radius: var(
207
331
  --#{root-defaults.$prefix}button-border-bottom-right-radius,
208
332
  #{root-variables.$border-bottom-right-radius}
209
333
  );
334
+
335
+ // --graupl-button-border-bottom-left-radius
210
336
  $button-border-bottom-left-radius: var(
211
337
  --#{root-defaults.$prefix}button-border-bottom-left-radius,
212
338
  #{root-variables.$border-bottom-left-radius}
213
339
  );
340
+
341
+ // --graupl-button-border-radius
214
342
  $button-border-radius: var(
215
343
  --#{root-defaults.$prefix}button-border-radius,
216
344
  #{$button-border-top-left-radius} #{$button-border-top-right-radius}
@@ -218,26 +346,37 @@ $button-border-radius: var(
218
346
  );
219
347
 
220
348
  // Border colour properties.
349
+ // --graupl-button-border-color
221
350
  $button-border-color: var(
222
351
  --#{root-defaults.$prefix}button-border-color,
223
352
  #{color.$border-color}
224
353
  );
354
+
355
+ // --graupl-button-visited-border-color
225
356
  $button-visited-border-color: var(
226
357
  --#{root-defaults.$prefix}button-visited-border-color,
227
358
  #{$button-border-color}
228
359
  );
360
+
361
+ // --graupl-button-focus-border-color
229
362
  $button-focus-border-color: var(
230
363
  --#{root-defaults.$prefix}button-focus-border-color,
231
364
  #{$button-border-color}
232
365
  );
366
+
367
+ // --graupl-button-hover-border-color
233
368
  $button-hover-border-color: var(
234
369
  --#{root-defaults.$prefix}button-hover-border-color,
235
370
  #{color.$border-color}
236
371
  );
372
+
373
+ // --graupl-button-active-border-color
237
374
  $button-active-border-color: var(
238
375
  --#{root-defaults.$prefix}button-active-border-color,
239
376
  #{$button-hover-border-color}
240
377
  );
378
+
379
+ // --graupl-button-disabled-border-color
241
380
  $button-disabled-border-color: var(
242
381
  --#{root-defaults.$prefix}button-disabled-border-color,
243
382
  #{theme.get(primary, 200)}
@@ -6,19 +6,89 @@
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
  // Form selectors.
10
- $selector-base: "" !default;
11
- $modifier-selector-base: $selector-base !default;
14
+ $selector-base: root-defaults.$element-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: true !default;
12
18
  $input-selector-base: $selector-base !default;
13
19
  $input-selector: "input" !default;
20
+ $input-theme-prefix-selector-base: $modifier-selector-base !default;
21
+ $input-theme-prefix-selector: "" !default;
14
22
  $textarea-selector-base: $selector-base !default;
15
23
  $textarea-selector: "textarea" !default;
16
24
  $select-selector-base: $selector-base !default;
17
25
  $select-selector: "select" !default;
18
26
  $label-selector-base: $selector-base !default;
19
27
  $label-selector: "label" !default;
28
+ $label-theme-prefix-selector-base: $input-theme-prefix-selector-base !default;
29
+ $label-theme-prefix-selector: $input-theme-prefix-selector !default;
20
30
  $fieldset-selector-base: $selector-base !default;
21
31
  $fieldset-selector: "fieldset" !default;
32
+ $fieldset-theme-prefix-selector-base: $input-theme-prefix-selector-base !default;
33
+ $fieldset-theme-prefix-selector: $input-theme-prefix-selector !default;
22
34
 
23
35
  // Fieldset properties.
24
36
  $fieldset-direction: column !default;
37
+
38
+ // Input theme defaults.
39
+ // This map is used to define the default colour shades for the
40
+ // themed input bases.
41
+ //
42
+ // e.g.
43
+ // Primary inputs will use primary--700 as the header background,
44
+ // and primary--100 as the header text colour.
45
+ //
46
+ // Secondary/tertiary inputs will use the same shade for their respective colours.
47
+ $-input-theme-mappings: (
48
+ color: 900,
49
+ background: 100,
50
+ border-color: 700,
51
+ placeholder-color: 600,
52
+ disabled-color: 200,
53
+ disabled-border-color: 200,
54
+ );
55
+ $input-theme-mappings: () !default;
56
+ $-label-theme-mappings: (
57
+ color: 900,
58
+ background: 100,
59
+ border-color: 700,
60
+ );
61
+ $label-theme-mappings: () !default;
62
+ $-fieldset-theme-mappings: (
63
+ color: 900,
64
+ background: 100,
65
+ border-color: 700,
66
+ accent-color: 700,
67
+ );
68
+ $fieldset-theme-mappings: () !default;
69
+
70
+ // Merge the custom input theme map with the default one.
71
+ @if $generate-base-theme-map {
72
+ $input-theme-mappings: map.merge(
73
+ $-input-theme-mappings,
74
+ $input-theme-mappings
75
+ );
76
+ $label-theme-mappings: map.merge(
77
+ $-label-theme-mappings,
78
+ $label-theme-mappings
79
+ );
80
+ $fieldset-theme-mappings: map.merge(
81
+ $-fieldset-theme-mappings,
82
+ $fieldset-theme-mappings
83
+ );
84
+ }
85
+
86
+ $-input-theme-map: theme.generate-property-map($input-theme-mappings);
87
+ $input-theme-map: () !default;
88
+ $input-theme-map: map.deep-merge($-input-theme-map, $input-theme-map);
89
+ $-label-theme-map: theme.generate-property-map($label-theme-mappings);
90
+ $label-theme-map: () !default;
91
+ $label-theme-map: map.deep-merge($-label-theme-map, $label-theme-map);
92
+ $-fieldset-theme-map: theme.generate-property-map($fieldset-theme-mappings);
93
+ $fieldset-theme-map: () !default;
94
+ $fieldset-theme-map: map.deep-merge($-fieldset-theme-map, $fieldset-theme-map);