@graupl/graupl 1.0.0-alpha.6 → 1.0.0-alpha.8

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 (153) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/dist/base/form.css.map +1 -0
  3. package/dist/base/link.css.map +1 -0
  4. package/dist/base/table.css +2 -0
  5. package/dist/base/table.css.map +1 -0
  6. package/dist/base.css +2 -0
  7. package/dist/base.css.map +1 -0
  8. package/dist/component/button.css +2 -0
  9. package/dist/component/button.css.map +1 -0
  10. package/dist/component/input-group.css +2 -0
  11. package/dist/component/input-group.css.map +1 -0
  12. package/dist/component/table.css +2 -0
  13. package/dist/component/table.css.map +1 -0
  14. package/dist/component.css +2 -0
  15. package/dist/component.css.map +1 -0
  16. package/dist/graupl.css +1 -1
  17. package/dist/graupl.css.map +1 -1
  18. package/dist/layout/{columns/columns.css → columns.css} +1 -1
  19. package/dist/layout/columns.css.map +1 -0
  20. package/dist/layout/container.css +2 -0
  21. package/dist/layout/container.css.map +1 -0
  22. package/dist/layout.css +2 -0
  23. package/dist/layout.css.map +1 -0
  24. package/dist/state/focus.css.map +1 -0
  25. package/dist/state.css +2 -0
  26. package/dist/state.css.map +1 -0
  27. package/dist/theme/color.css.map +1 -0
  28. package/dist/theme/typography.css +2 -0
  29. package/dist/theme/typography.css.map +1 -0
  30. package/dist/theme.css +2 -0
  31. package/dist/theme.css.map +1 -0
  32. package/dist/utilities/colors.css.map +1 -0
  33. package/dist/utilities/spacing.css +2 -0
  34. package/dist/utilities/spacing.css.map +1 -0
  35. package/dist/utilities/typography.css +2 -0
  36. package/dist/utilities/typography.css.map +1 -0
  37. package/dist/utilities.css +2 -0
  38. package/dist/utilities.css.map +1 -0
  39. package/docs/.vitepress/theme/custom.scss +1 -1
  40. package/index.html +327 -75
  41. package/package.json +32 -16
  42. package/scss/base/form.scss +3 -0
  43. package/scss/base/link.scss +3 -0
  44. package/scss/base/table.scss +3 -0
  45. package/scss/base.scss +3 -0
  46. package/scss/component/button.scss +3 -0
  47. package/scss/component/input-group.scss +3 -0
  48. package/scss/component/table.scss +3 -0
  49. package/scss/component.scss +3 -0
  50. package/scss/graupl.scss +1 -1
  51. package/scss/layout/columns.scss +3 -0
  52. package/scss/layout/container.scss +3 -0
  53. package/scss/layout.scss +3 -0
  54. package/scss/state/focus.scss +3 -0
  55. package/scss/state.scss +3 -0
  56. package/scss/theme/color.scss +3 -0
  57. package/scss/theme/typography.scss +3 -0
  58. package/scss/theme.scss +3 -0
  59. package/scss/utilities/colors.scss +3 -0
  60. package/scss/utilities/spacing.scss +3 -0
  61. package/scss/utilities/typography.scss +3 -0
  62. package/scss/utilities.scss +3 -0
  63. package/{scss → src/scss}/_defaults.scss +25 -6
  64. package/{scss → src/scss}/_variables.scss +4 -4
  65. package/{scss → src/scss}/base/_index.scss +1 -0
  66. package/src/scss/base/table/_defaults.scss +8 -0
  67. package/src/scss/base/table/_index.scss +27 -0
  68. package/src/scss/base/table/_variables.scss +65 -0
  69. package/{scss → src/scss}/component/_index.scss +2 -0
  70. package/src/scss/component/button/_defaults.scss +39 -0
  71. package/{scss → src/scss}/component/button/_index.scss +4 -21
  72. package/{scss → src/scss}/component/button/_variables.scss +5 -7
  73. package/src/scss/component/input-group/_defaults.scss +23 -0
  74. package/src/scss/component/input-group/_index.scss +45 -0
  75. package/src/scss/component/input-group/_variables.scss +63 -0
  76. package/src/scss/component/table/_defaults.scss +30 -0
  77. package/src/scss/component/table/_index.scss +77 -0
  78. package/src/scss/component/table/_variables.scss +64 -0
  79. package/{scss → src/scss}/functions/_theme.scss +8 -1
  80. package/{scss → src/scss}/layout/columns/_defaults.scss +1 -2
  81. package/{scss → src/scss}/layout/columns/_index.scss +2 -1
  82. package/src/scss/layout/container/_index.scss +36 -0
  83. package/{scss → src/scss}/layout/container/_variables.scss +16 -0
  84. package/{scss → src/scss}/mixins/_media-queries.scss +11 -0
  85. package/{scss → src/scss}/theme/color/_defaults.scss +4 -2
  86. package/{scss → src/scss}/theme/typography/_defaults.scss +14 -3
  87. package/{scss → src/scss}/theme/typography/_index.scss +1 -1
  88. package/{scss → src/scss}/theme/typography/_variables.scss +7 -4
  89. package/{scss → src/scss}/utilities/spacing/_defaults.scss +21 -2
  90. package/stylelint.config.js +2 -0
  91. package/dist/base/form/form.css.map +0 -1
  92. package/dist/base/link/link.css.map +0 -1
  93. package/dist/component/button/button.css +0 -2
  94. package/dist/component/button/button.css.map +0 -1
  95. package/dist/layout/columns/columns.css.map +0 -1
  96. package/dist/layout/container/container.css +0 -2
  97. package/dist/layout/container/container.css.map +0 -1
  98. package/dist/state/focus/focus.css.map +0 -1
  99. package/dist/theme/color/color.css.map +0 -1
  100. package/dist/theme/typography/typography.css +0 -2
  101. package/dist/theme/typography/typography.css.map +0 -1
  102. package/dist/utilities/colors/colors.css.map +0 -1
  103. package/dist/utilities/spacing/spacing.css +0 -2
  104. package/dist/utilities/spacing/spacing.css.map +0 -1
  105. package/dist/utilities/typography/typography.css +0 -2
  106. package/dist/utilities/typography/typography.css.map +0 -1
  107. package/scss/base/form/form.scss +0 -3
  108. package/scss/base/link/link.scss +0 -3
  109. package/scss/component/button/_defaults.scss +0 -10
  110. package/scss/component/button/button.scss +0 -3
  111. package/scss/layout/columns/columns.scss +0 -3
  112. package/scss/layout/container/_index.scss +0 -54
  113. package/scss/layout/container/container.scss +0 -3
  114. package/scss/state/focus/focus.scss +0 -3
  115. package/scss/theme/color/color.scss +0 -3
  116. package/scss/theme/typography/typography.scss +0 -3
  117. package/scss/utilities/colors/colors.scss +0 -3
  118. package/scss/utilities/spacing/spacing.scss +0 -3
  119. package/scss/utilities/typography/typography.scss +0 -3
  120. /package/dist/base/{form/form.css → form.css} +0 -0
  121. /package/dist/base/{link/link.css → link.css} +0 -0
  122. /package/dist/state/{focus/focus.css → focus.css} +0 -0
  123. /package/dist/theme/{color/color.css → color.css} +0 -0
  124. /package/dist/utilities/{colors/colors.css → colors.css} +0 -0
  125. /package/{scss → src/scss}/_index.scss +0 -0
  126. /package/{scss → src/scss}/_init.scss +0 -0
  127. /package/{scss → src/scss}/base/form/_defaults.scss +0 -0
  128. /package/{scss → src/scss}/base/form/_index.scss +0 -0
  129. /package/{scss → src/scss}/base/form/_variables.scss +0 -0
  130. /package/{scss → src/scss}/base/link/_defaults.scss +0 -0
  131. /package/{scss → src/scss}/base/link/_index.scss +0 -0
  132. /package/{scss → src/scss}/base/link/_variables.scss +0 -0
  133. /package/{scss → src/scss}/functions/_important.scss +0 -0
  134. /package/{scss → src/scss}/layout/_index.scss +0 -0
  135. /package/{scss → src/scss}/layout/columns/_variables.scss +0 -0
  136. /package/{scss → src/scss}/layout/container/_defaults.scss +0 -0
  137. /package/{scss → src/scss}/mixins/_layer.scss +0 -0
  138. /package/{scss → src/scss}/state/_index.scss +0 -0
  139. /package/{scss → src/scss}/state/focus/_defaults.scss +0 -0
  140. /package/{scss → src/scss}/state/focus/_index.scss +0 -0
  141. /package/{scss → src/scss}/state/focus/_variables.scss +0 -0
  142. /package/{scss → src/scss}/theme/_index.scss +0 -0
  143. /package/{scss → src/scss}/theme/color/_index.scss +0 -0
  144. /package/{scss → src/scss}/theme/color/_variables.scss +0 -0
  145. /package/{scss → src/scss}/utilities/_index.scss +0 -0
  146. /package/{scss → src/scss}/utilities/colors/_defaults.scss +0 -0
  147. /package/{scss → src/scss}/utilities/colors/_index.scss +0 -0
  148. /package/{scss → src/scss}/utilities/colors/_variables.scss +0 -0
  149. /package/{scss → src/scss}/utilities/spacing/_index.scss +0 -0
  150. /package/{scss → src/scss}/utilities/spacing/_variables.scss +0 -0
  151. /package/{scss → src/scss}/utilities/typography/_defaults.scss +0 -0
  152. /package/{scss → src/scss}/utilities/typography/_index.scss +0 -0
  153. /package/{scss → src/scss}/utilities/typography/_variables.scss +0 -0
package/package.json CHANGED
@@ -1,32 +1,47 @@
1
1
  {
2
2
  "name": "@graupl/graupl",
3
- "version": "1.0.0-alpha.6",
3
+ "version": "1.0.0-alpha.8",
4
4
  "description": "A modular and modern CSS framework.",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  ".": {
8
- "sass": "./scss"
8
+ "sass": "./scss/graupl.scss"
9
9
  },
10
- "./base": {
11
- "sass": "./scss/base"
10
+ "./base.scss": {
11
+ "sass": "./scss/base.scss"
12
12
  },
13
- "./components": {
14
- "sass": "./scss/component"
13
+ "./base/*.scss": {
14
+ "sass": "./scss/base/*.scss"
15
15
  },
16
- "./layout": {
17
- "sass": "./scss/layout"
16
+ "./component.scss": {
17
+ "sass": "./scss/component.scss"
18
18
  },
19
- "./mixins": {
20
- "sass": "./scss/mixins"
19
+ "./component/*.scss": {
20
+ "sass": "./scss/component/*.scss"
21
21
  },
22
- "./state": {
23
- "sass": "./scss/state"
22
+ "./layout.scss": {
23
+ "sass": "./scss/layout.scss"
24
24
  },
25
- "./theme": {
26
- "sass": "./scss/theme"
25
+ "./layout/*.scss": {
26
+ "sass": "./scss/layout/*.scss"
27
27
  },
28
- "./utilities": {
29
- "sass": "./scss/utilities"
28
+ "./state.scss": {
29
+ "sass": "./scss/state.scss"
30
+ },
31
+ "./state/*.scss": {
32
+ "sass": "./scss/state/*.scss"
33
+ },
34
+ "./theme.scss": {
35
+ "sass": "./scss/theme.scss"
36
+ },
37
+ "./theme/*.scss": {
38
+ "sass": "./scss/theme/*.scss"
39
+ },
40
+ "./utilities.scss": {
41
+ "sass": "./scss/utilities.scss"
42
+ },
43
+ "./utilities/*.scss": {
44
+ "sass": "./scss/utilities/*.scss"
30
45
  }
31
46
  },
32
47
  "scripts": {
@@ -39,6 +54,7 @@
39
54
  "sass": "rm -rf dist && sass scss:dist",
40
55
  "postcss": "postcss 'dist/**/*.css' --replace",
41
56
  "build": "npm run sass && npm run postcss",
57
+ "postbuild": "npm run docs:build",
42
58
  "release": "git add dist/. && standard-version -a",
43
59
  "prerelease": "npm run lint && npm run build",
44
60
  "docs:dev": "vitepress dev docs",
@@ -0,0 +1,3 @@
1
+ // Graupl form base styles.
2
+
3
+ @forward "../../src/scss/base/form";
@@ -0,0 +1,3 @@
1
+ // Link base styles.
2
+
3
+ @forward "../../src/scss/base/link";
@@ -0,0 +1,3 @@
1
+ // Table base styles.
2
+
3
+ @forward "../../src/scss/base/table";
package/scss/base.scss ADDED
@@ -0,0 +1,3 @@
1
+ // Graupl base.
2
+
3
+ @forward "../src/scss/base";
@@ -0,0 +1,3 @@
1
+ // Graupl Button Component.
2
+
3
+ @forward "../../src/scss/component/button";
@@ -0,0 +1,3 @@
1
+ // Graupl Input group Component.
2
+
3
+ @forward "../../src/scss/component/input-group";
@@ -0,0 +1,3 @@
1
+ // Table component styles.
2
+
3
+ @forward "../../src/scss/component/table";
@@ -0,0 +1,3 @@
1
+ // Graupl components.
2
+
3
+ @forward "../src/scss/component";
package/scss/graupl.scss CHANGED
@@ -2,4 +2,4 @@
2
2
  //
3
3
  // Forwards all components for easy development.
4
4
 
5
- @forward "index";
5
+ @forward "../src/scss";
@@ -0,0 +1,3 @@
1
+ // Graupl Columns layout.
2
+
3
+ @forward "../../src/scss/layout/columns";
@@ -0,0 +1,3 @@
1
+ // Graupl Container layout.
2
+
3
+ @forward "../../src/scss/layout/container";
@@ -0,0 +1,3 @@
1
+ // Graupl layout.
2
+
3
+ @forward "../src/scss/";
@@ -0,0 +1,3 @@
1
+ // Focus state styles.
2
+
3
+ @forward "../../src/scss/state/focus";
@@ -0,0 +1,3 @@
1
+ // Graupl state.
2
+
3
+ @forward "../src/scss/state";
@@ -0,0 +1,3 @@
1
+ // Color theme styles.
2
+
3
+ @forward "../../src/scss/theme/color";
@@ -0,0 +1,3 @@
1
+ // Typography theme styles.
2
+
3
+ @forward "../../src/scss/theme/typography";
@@ -0,0 +1,3 @@
1
+ // Graupl theme.
2
+
3
+ @forward "../src/scss/theme";
@@ -0,0 +1,3 @@
1
+ // Graupl color utilities.
2
+
3
+ @forward "../../src/scss/utilities/colors";
@@ -0,0 +1,3 @@
1
+ // Graupl spacing utilities.
2
+
3
+ @forward "../../src/scss/utilities/spacing";
@@ -0,0 +1,3 @@
1
+ // Graupl typography utilities.
2
+
3
+ @forward "../../src/scss/utilities/typography";
@@ -0,0 +1,3 @@
1
+ // Graupl utilities.
2
+
3
+ @forward "../src/scss/utilities";
@@ -4,6 +4,8 @@
4
4
  // They are mainly used to provide default fallbacks for custom properties
5
5
  // which can be found in the `variables.scss` file.
6
6
 
7
+ @use "sass:map";
8
+
7
9
  // Prefix for custom properties and other naming conventions.
8
10
  $prefix: "graupl" !default;
9
11
 
@@ -13,9 +15,16 @@ $use-important: true !default;
13
15
  // Layout properties.
14
16
  $content-max-width: 96ch !default;
15
17
 
18
+ // Screen sizes.
19
+ $base-screen-sizes: (
20
+ xs: "(0 <= width <= 48ch)",
21
+ );
22
+ $custom-screen-sizes: () !default;
23
+ $screen-sizes: map.merge($base-screen-sizes, $custom-screen-sizes);
24
+
16
25
  // Spacing properties.
17
26
  $spacer: 1rem !default;
18
- $spacer-multipliers: (
27
+ $base-spacer-multipliers: (
19
28
  0: 0,
20
29
  1: 0.125,
21
30
  2: 0.25,
@@ -27,7 +36,12 @@ $spacer-multipliers: (
27
36
  8: 3,
28
37
  9: 5,
29
38
  10: 10,
30
- ) !default;
39
+ );
40
+ $custom-spacer-multipliers: () !default;
41
+ $spacer-multipliers: map.merge(
42
+ $base-spacer-multipliers,
43
+ $custom-spacer-multipliers
44
+ );
31
45
 
32
46
  // Size properties.
33
47
  $interactive-min-width: 44px !default;
@@ -39,10 +53,15 @@ $border-width: 2px !default;
39
53
  $border-style: solid !default;
40
54
 
41
55
  // Transition properties.
42
- $transition-duration-base: 100;
43
- $transition-duration: (
56
+ $transition-duration-base: 100 !default;
57
+ $transition-timing-function: ease !default;
58
+ $base-transition-durations: (
44
59
  fast: #{$transition-duration-base * 1.5}ms,
45
60
  default: #{$transition-duration-base * 2.5}ms,
46
61
  slow: #{$transition-duration-base * 3}ms,
47
- ) !default;
48
- $transition-timing-function: ease !default;
62
+ );
63
+ $custom-transition-durations: () !default;
64
+ $transition-durations: map.merge(
65
+ $base-transition-durations,
66
+ $custom-transition-durations
67
+ );
@@ -30,21 +30,21 @@ $border-width: var(--#{defaults.$prefix}-border-width, defaults.$border-width);
30
30
  $border-style: var(--#{defaults.$prefix}-border-style, defaults.$border-style);
31
31
 
32
32
  // Transition properties.
33
- $transition-duration: (
33
+ $transition-durations: (
34
34
  fast:
35
35
  var(
36
36
  --#{defaults.$prefix}-transition-duration-fast,
37
- map.get(defaults.$transition-duration, fast)
37
+ map.get(defaults.$transition-durations, fast)
38
38
  ),
39
39
  default:
40
40
  var(
41
41
  --#{defaults.$prefix}-transition-duration-default,
42
- map.get(defaults.$transition-duration, default)
42
+ map.get(defaults.$transition-durations, default)
43
43
  ),
44
44
  slow:
45
45
  var(
46
46
  --#{defaults.$prefix}-transition-duration-slow,
47
- map.get(defaults.$transition-duration, slow)
47
+ map.get(defaults.$transition-durations, slow)
48
48
  ),
49
49
  );
50
50
  $transition-timing-function: var(
@@ -2,3 +2,4 @@
2
2
 
3
3
  @forward "form";
4
4
  @forward "link";
5
+ @forward "table";
@@ -0,0 +1,8 @@
1
+ // Default values for Graupl.
2
+ //
3
+ // Generally, these should not be used directly when styling components.
4
+ // They are mainly used to provide default fallbacks for custom properties
5
+ // which can be found in the `variables.scss` file.
6
+
7
+ // Table properties.
8
+ $table-caption-side: bottom !default;
@@ -0,0 +1,27 @@
1
+ // Table base styles.
2
+
3
+ @use "variables" as *;
4
+ @use "../../mixins/layer" as *;
5
+
6
+ @include layer(base) {
7
+ table {
8
+ caption {
9
+ padding: $table-caption-padding;
10
+ caption-side: $table-caption-side;
11
+ }
12
+
13
+ th {
14
+ padding: $table-header-padding;
15
+ background: $table-header-background;
16
+ color: $table-header-color;
17
+ font-weight: $table-header-font-weight;
18
+ }
19
+
20
+ td,
21
+ tbody th {
22
+ padding: $table-cell-padding;
23
+ background: $table-cell-background;
24
+ color: $table-cell-color;
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,65 @@
1
+ // Variables referencing custom properties.
2
+
3
+ @use "defaults";
4
+ @use "../../defaults" as root-defaults;
5
+ @use "../../variables" as root-variables;
6
+ @use "../../theme/typography/variables" as typography;
7
+ @use "../../functions/theme" as theme;
8
+ @use "sass:map";
9
+
10
+ // Table caption properties.
11
+ $table-caption-side: var(
12
+ --#{root-defaults.$prefix}-table-caption-side,
13
+ #{defaults.$table-caption-side}
14
+ );
15
+ $table-caption-padding-x: var(
16
+ --#{root-defaults.$prefix}-table-caption-padding-x,
17
+ #{map.get(root-variables.$spacers, 3)}
18
+ );
19
+ $table-caption-padding-y: var(
20
+ --#{root-defaults.$prefix}-table-caption-padding-y,
21
+ #{map.get(root-variables.$spacers, 3)}
22
+ );
23
+ $table-caption-padding: $table-caption-padding-y $table-caption-padding-x;
24
+
25
+ // Table header properties.
26
+ $table-header-font-weight: var(
27
+ --#{root-defaults.$prefix}-table-header-font-weight,
28
+ #{typography.$font-weight-bold}
29
+ );
30
+ $table-header-padding-x: var(
31
+ --#{root-defaults.$prefix}-table-header-padding-x,
32
+ #{map.get(root-variables.$spacers, 3)}
33
+ );
34
+ $table-header-padding-y: var(
35
+ --#{root-defaults.$prefix}-table-header-padding-y,
36
+ #{map.get(root-variables.$spacers, 3)}
37
+ );
38
+ $table-header-padding: $table-header-padding-y $table-header-padding-x;
39
+ $table-header-background: var(
40
+ --#{root-defaults.$prefix}-table-header-background,
41
+ #{theme.get(primary, 100)}
42
+ );
43
+ $table-header-color: var(
44
+ --#{root-defaults.$prefix}-table-header-color,
45
+ #{theme.get(primary, 900)}
46
+ );
47
+
48
+ // Table cell properties.
49
+ $table-cell-padding-x: var(
50
+ --#{root-defaults.$prefix}-table-cell-padding-x,
51
+ #{map.get(root-variables.$spacers, 3)}
52
+ );
53
+ $table-cell-padding-y: var(
54
+ --#{root-defaults.$prefix}-table-cell-padding-y,
55
+ #{map.get(root-variables.$spacers, 3)}
56
+ );
57
+ $table-cell-padding: $table-cell-padding-y $table-cell-padding-x;
58
+ $table-cell-background: var(
59
+ --#{root-defaults.$prefix}-table-cell-background,
60
+ #{theme.get(primary, 100)}
61
+ );
62
+ $table-cell-color: var(
63
+ --#{root-defaults.$prefix}-table-cell-color,
64
+ #{theme.get(primary, 900)}
65
+ );
@@ -1,3 +1,5 @@
1
1
  // Graupl components.
2
2
 
3
3
  @forward "button";
4
+ @forward "input-group";
5
+ @forward "table";
@@ -0,0 +1,39 @@
1
+ // Default values for Graupl.
2
+ //
3
+ // Generally, these should not be used directly when styling components.
4
+ // They are mainly used to provide default fallbacks for custom properties
5
+ // which can be found in the `variables.scss` file.
6
+
7
+ @use "sass:map";
8
+
9
+ $button-hover-transform: none !default;
10
+ $button-hover-transform-reduced-motion: none !default;
11
+ $button-active-transform: scale(0.95) !default;
12
+ $button-active-transform-reduced-motion: scale(0.98) !default;
13
+
14
+ // Button state theme defaults.
15
+ // This map is used to define the default colour shades for the
16
+ // themed button components.
17
+ //
18
+ // e.g.
19
+ // Primary buttons will use primary--900 as the text colour, primary--100 as the background
20
+ // and primary--900 as the border colour.
21
+ //
22
+ // Secondary/tertiary buttons will use the same shade for their respective colours.
23
+ $base-button-state-theme-map: (
24
+ color: 900,
25
+ border-color: 700,
26
+ hover-color: 100,
27
+ hover-background: 700,
28
+ hover-border-color: 700,
29
+ active-color: 100,
30
+ active-background: 700,
31
+ active-border-color: 700,
32
+ disabled-color: 200,
33
+ disabled-border-color: 200,
34
+ );
35
+ $custom-button-state-theme-map: () !default;
36
+ $button-state-theme-map: map.merge(
37
+ $base-button-state-theme-map,
38
+ $custom-button-state-theme-map
39
+ );
@@ -1,5 +1,6 @@
1
1
  // Graupl Button Component.
2
2
 
3
+ @use "defaults";
3
4
  @use "../../defaults" as root-defaults;
4
5
  @use "../../theme/color/variables" as color;
5
6
  @use "variables" as *;
@@ -88,27 +89,9 @@
88
89
 
89
90
  @each $color, $map in color.$theme-active {
90
91
  &.#{$color} {
91
- --#{root-defaults.$prefix}-button-hover-background: #{map.get(
92
- $map,
93
- 700
94
- )};
95
- --#{root-defaults.$prefix}-button-active-background: #{map.get(
96
- $map,
97
- 700
98
- )};
99
- --#{root-defaults.$prefix}-button-border-color: #{map.get($map, 700)};
100
- --#{root-defaults.$prefix}-button-hover-border-color: #{map.get(
101
- $map,
102
- 700
103
- )};
104
- --#{root-defaults.$prefix}-button-active-border-color: #{map.get(
105
- $map,
106
- 700
107
- )};
108
- --#{root-defaults.$prefix}-button-disabled-border-color: #{map.get(
109
- $map,
110
- 200
111
- )};
92
+ @each $prop, $shade in defaults.$button-state-theme-map {
93
+ --#{root-defaults.$prefix}-button-#{$prop}: #{map.get($map, $shade)};
94
+ }
112
95
  }
113
96
  }
114
97
  }
@@ -34,16 +34,14 @@ $button-font-size: var(
34
34
  );
35
35
  $button-transition: var(
36
36
  --#{root-defaults.$prefix}-button-transition,
37
- background #{map.get(root-variables.$transition-duration, fast)} #{root-variables.$transition-timing-function},
38
- color #{map.get(root-variables.$transition-duration, fast)} #{root-variables.$transition-timing-function},
39
- border-color #{map.get(root-variables.$transition-duration, fast)} #{root-variables.$transition-timing-function},
40
- transform #{map.get(root-variables.$transition-duration, fast)} #{root-variables.$transition-timing-function}
37
+ background #{map.get(root-variables.$transition-durations, fast)} #{root-variables.$transition-timing-function},
38
+ color #{map.get(root-variables.$transition-durations, fast)} #{root-variables.$transition-timing-function},
39
+ transform #{map.get(root-variables.$transition-durations, fast)} #{root-variables.$transition-timing-function}
41
40
  );
42
41
  $button-transition-reduced-motion: var(
43
42
  --#{root-defaults.$prefix}-button-transition-reduced-motion,
44
- background #{map.get(root-variables.$transition-duration, none)} #{root-variables.$transition-timing-function},
45
- color #{map.get(root-variables.$transition-duration, none)} #{root-variables.$transition-timing-function},
46
- border-color #{map.get(root-variables.$transition-duration, none)} #{root-variables.$transition-timing-function}
43
+ background #{map.get(root-variables.$transition-durations, none)} #{root-variables.$transition-timing-function},
44
+ color #{map.get(root-variables.$transition-durations, none)} #{root-variables.$transition-timing-function}
47
45
  );
48
46
 
49
47
  // Transform properties.
@@ -0,0 +1,23 @@
1
+ // Default values for Graupl.
2
+ //
3
+ // Generally, these should not be used directly when styling components.
4
+ // They are mainly used to provide default fallbacks for custom properties
5
+ // which can be found in the `variables.scss` file.
6
+
7
+ // Grid names.
8
+ $input-group-grid-label-name: label !default;
9
+ $input-group-grid-input-name: input !default;
10
+ $input-group-grid-help-name: help !default;
11
+
12
+ // Input group properties.
13
+ $input-group-grid-template-columns: 100% !default;
14
+ $input-group-grid-template-rows: auto auto auto !default;
15
+
16
+ // Inline input group properties.
17
+ $input-group-inline-grid-template-columns: auto 1fr !default;
18
+ $input-group-inline-grid-template-rows: auto auto !default;
19
+
20
+ // Inner element properties.
21
+ $input-group-label-grid-area: $input-group-grid-label-name !default;
22
+ $input-group-input-grid-area: $input-group-grid-input-name !default;
23
+ $input-group-help-grid-area: $input-group-grid-help-name !default;
@@ -0,0 +1,45 @@
1
+ // Graupl Input group Component.
2
+
3
+ @use "variables" as *;
4
+ @use "../../mixins/layer" as *;
5
+ @use "../../mixins/media-queries" as *;
6
+
7
+ // stylelint-disable declaration-block-no-redundant-longhand-properties
8
+ @include layer(component) {
9
+ .input-group {
10
+ display: grid;
11
+ grid-template-areas: $input-group-grid-template-areas;
12
+ grid-template-columns: $input-group-grid-template-columns;
13
+ grid-template-rows: $input-group-grid-template-rows;
14
+ align-items: center;
15
+ gap: $input-group-gap;
16
+
17
+ label {
18
+ grid-area: $input-group-label-grid-area;
19
+ }
20
+
21
+ input,
22
+ textarea,
23
+ select {
24
+ grid-area: $input-group-input-grid-area;
25
+ }
26
+
27
+ .help-text {
28
+ grid-area: $input-group-help-grid-area;
29
+ }
30
+
31
+ &.inline {
32
+ grid-template-areas: $input-group-inline-grid-template-areas;
33
+ grid-template-columns: $input-group-inline-grid-template-columns;
34
+ grid-template-rows: $input-group-inline-grid-template-rows;
35
+ }
36
+ }
37
+
38
+ @include screen(xs) {
39
+ .input-group.inline {
40
+ grid-template-areas: $input-group-grid-template-areas;
41
+ grid-template-columns: $input-group-grid-template-columns;
42
+ grid-template-rows: $input-group-grid-template-rows;
43
+ }
44
+ }
45
+ }
@@ -0,0 +1,63 @@
1
+ // Variables referencing custom properties.
2
+
3
+ @use "defaults";
4
+ @use "../../defaults" as root-defaults;
5
+ @use "../../variables" as root-variables;
6
+ @use "sass:map";
7
+
8
+ // Input group properties.
9
+ $input-group-grid-template-areas: var(
10
+ --#{root-defaults.$prefix}-input-group-grid-template-areas,
11
+ "#{defaults.$input-group-grid-label-name}"
12
+ "#{defaults.$input-group-grid-input-name}"
13
+ "#{defaults.$input-group-grid-help-name}"
14
+ );
15
+ $input-group-grid-template-columns: var(
16
+ --#{root-defaults.$prefix}-input-group-grid-template-columns,
17
+ #{defaults.$input-group-grid-template-columns}
18
+ );
19
+ $input-group-grid-template-rows: var(
20
+ --#{root-defaults.$prefix}-input-group-grid-template-rows,
21
+ #{defaults.$input-group-grid-template-rows}
22
+ );
23
+ $input-group-row-gap: var(
24
+ --#{root-defaults.$prefix}-input-group-row-gap,
25
+ #{map.get(root-variables.$spacers, 2)}
26
+ );
27
+ $input-group-column-gap: var(
28
+ --#{root-defaults.$prefix}-input-group-column-gap,
29
+ #{map.get(root-variables.$spacers, 3)}
30
+ );
31
+ $input-group-gap: var(
32
+ --#{root-defaults.$prefix}-input-group-gap,
33
+ #{$input-group-row-gap} #{$input-group-column-gap}
34
+ );
35
+
36
+ // Inline input group properties.
37
+ $input-group-inline-grid-template-areas: var(
38
+ --#{root-defaults.$prefix}-input-group-inline-grid-template-areas,
39
+ "#{defaults.$input-group-grid-label-name} #{defaults.$input-group-grid-input-name}"
40
+ "- #{defaults.$input-group-grid-help-name}"
41
+ );
42
+ $input-group-inline-grid-template-columns: var(
43
+ --#{root-defaults.$prefix}-input-group-inline-grid-template-columns,
44
+ #{defaults.$input-group-inline-grid-template-columns}
45
+ );
46
+ $input-group-inline-grid-template-rows: var(
47
+ --#{root-defaults.$prefix}-input-group-inline-grid-template-rows,
48
+ #{defaults.$input-group-inline-grid-template-rows}
49
+ );
50
+
51
+ // Inner element properties.
52
+ $input-group-label-grid-area: var(
53
+ --#{root-defaults.$prefix}-input-group-label-grid-area,
54
+ #{defaults.$input-group-label-grid-area}
55
+ );
56
+ $input-group-input-grid-area: var(
57
+ --#{root-defaults.$prefix}-input-group-input-grid-area,
58
+ #{defaults.$input-group-input-grid-area}
59
+ );
60
+ $input-group-help-grid-area: var(
61
+ --#{root-defaults.$prefix}-input-group-help-grid-area,
62
+ #{defaults.$input-group-help-grid-area}
63
+ );
@@ -0,0 +1,30 @@
1
+ // Default values for Graupl.
2
+ //
3
+ // Generally, these should not be used directly when styling components.
4
+ // They are mainly used to provide default fallbacks for custom properties
5
+ // which can be found in the `variables.scss` file.
6
+
7
+ @use "sass:map";
8
+
9
+ // Table theme defaults.
10
+ // This map is used to define the default colour shades for the
11
+ // themed table components.
12
+ //
13
+ // e.g.
14
+ // Primary tables will use primary--700 as the header background,
15
+ // and primary--100 as the header text colour.
16
+ //
17
+ // Secondary/tertiary tables will use the same shade for their respective colours.
18
+ $base-table-theme-map: (
19
+ header-background: 700,
20
+ header-color: 100,
21
+ striped-background: 200,
22
+ striped-color: 900,
23
+ hover-background: 300,
24
+ hover-color: 900,
25
+ border-color: 900,
26
+ highlight-background: 500,
27
+ highlight-color: 100,
28
+ );
29
+ $custom-table-theme-map: () !default;
30
+ $table-theme-map: map.merge($base-table-theme-map, $custom-table-theme-map);