@castlabs/ui 7.1.0 → 7.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/README.md +5 -21
  2. package/dist/castlabs-ui.common.js +1 -1
  3. package/dist/castlabs-ui.common.js.map +1 -1
  4. package/dist/castlabs-ui.css +7 -7
  5. package/dist/castlabs-ui.umd.js +11 -11
  6. package/dist/castlabs-ui.umd.js.map +1 -1
  7. package/package.json +1 -1
  8. package/src/components/ClAlert/style.scss +2 -0
  9. package/src/components/ClBadge/style.scss +2 -1
  10. package/src/components/ClBadge/style.variables.scss +2 -0
  11. package/src/components/ClBlockquote/style.scss +13 -0
  12. package/src/components/ClBlockquote/style.variables.scss +15 -0
  13. package/src/components/ClButton/style.scss +3 -1
  14. package/src/components/ClCard/style.scss +2 -1
  15. package/src/components/ClCard/style.variables.scss +2 -0
  16. package/src/components/ClDropdown/style.scss +2 -0
  17. package/src/components/ClDropzone/style.scss +2 -0
  18. package/src/components/ClFooter/style.scss +2 -0
  19. package/src/components/ClHighlight/style.scss +2 -0
  20. package/src/components/ClIcon/style.scss +2 -6
  21. package/src/components/ClIconotron/style.scss +2 -0
  22. package/src/components/ClList/style.scss +3 -2
  23. package/src/components/ClList/style.variables.scss +3 -3
  24. package/src/components/ClListGroup/style.scss +3 -1
  25. package/src/components/ClPagination/style.scss +3 -1
  26. package/src/components/ClProgress/style.scss +7 -1
  27. package/src/components/ClScrollbar/style.scss +2 -1
  28. package/src/components/ClSpinner/style.scss +2 -0
  29. package/src/components/ClTabs/style.scss +2 -0
  30. package/src/components/ClToggle/style.scss +2 -0
  31. package/src/components/ClTooltip/style.scss +3 -1
  32. package/src/components/ClWizard/style.scss +2 -0
  33. package/src/components/form/ClField/style.scss +2 -0
  34. package/src/components/form/ClFieldCheck/style.scss +6 -2
  35. package/src/components/form/ClFieldFile/style.scss +2 -0
  36. package/src/components/form/ClFieldGroup/style.scss +2 -0
  37. package/src/components/form/ClFieldInput/style.scss +2 -0
  38. package/src/components/form/ClFieldSelect/style.scss +7 -3
  39. package/src/components/form/ClFieldSet/style.scss +2 -0
  40. package/src/components/form/ClForm/style.scss +2 -0
  41. package/src/components/modal/ClModal/style.scss +3 -0
  42. package/src/components/navigation/ClNavSide/ClNavDrawer/style.scss +1 -0
  43. package/src/components/navigation/ClNavSide/ClNavSideMenu/style.scss +2 -0
  44. package/src/components/navigation/ClNavSide/style.scss +1 -4
  45. package/src/components/navigation/ClNavTop/style.scss +6 -4
  46. package/src/components/section/ClSectionForm/style.scss +2 -0
  47. package/src/components/section/ClSectionHeadline/style.scss +2 -0
  48. package/src/components/section/ClSectionMainSide/style.scss +2 -0
  49. package/src/components/table/ClTable/style.scss +2 -1
  50. package/src/components/table/ClTable/style.variables.scss +3 -2
  51. package/src/components/table/ClTableCel/Actions/style.scss +3 -1
  52. package/src/components/table/ClTableCel/Audit/style.scss +4 -2
  53. package/src/components/table/ClTableCel/Boolean/style.scss +3 -1
  54. package/src/components/table/ClTableCel/Checkbox/style.scss +2 -0
  55. package/src/components/table/ClTableCel/Code/style.scss +4 -1
  56. package/src/components/table/ClTableCel/Currency/style.scss +3 -1
  57. package/src/components/table/ClTableCel/Date/style.scss +3 -1
  58. package/src/components/table/ClTableCel/ID/style.scss +4 -1
  59. package/src/components/table/ClTableCel/Links/style.scss +4 -2
  60. package/src/components/table/ClTableCel/style.scss +2 -1
  61. package/src/components/table/ClTableCel/style.variables.scss +3 -0
  62. package/src/components/table/ClTableFootChecked/style.scss +2 -0
  63. package/src/components/table/ClTableHead/style.scss +3 -1
  64. package/src/components/text/ClCopy/style.scss +2 -0
  65. package/src/components/text/ClHashtag/style.scss +3 -0
  66. package/src/components/text/ClLinkExternal/style.scss +2 -0
  67. package/src/components/text/ClOrg/style.scss +2 -0
  68. package/src/components/text/ClPlan/style.scss +3 -0
  69. package/src/components/text/ClRole/style.scss +3 -0
  70. package/src/components/widget/ClBackCancelOk/style.scss +2 -0
  71. package/src/components/widget/ClCookieBanner/style.scss +2 -0
  72. package/src/components/widget/ClPage/style.scss +2 -0
  73. package/src/fonts/DMMono/DMMono.scss +8 -6
  74. package/src/fonts/FontAwesome5/FontAwesome5.scss +5 -3
  75. package/src/fonts/NonNaturalGroteskInktrap/NonNaturalGroteskInktrap.scss +5 -3
  76. package/src/styles/_global.scss +12 -51
  77. package/src/styles/abstracts/app.scss +23 -0
  78. package/src/styles/{components/button.variables.scss → abstracts/button.scss} +5 -9
  79. package/src/styles/abstracts/color.scss +11 -0
  80. package/src/styles/{assets/fontawesome.variables.scss → abstracts/fontawesome.scss} +3 -0
  81. package/src/styles/{components/form.variables.scss → abstracts/form.scss} +6 -0
  82. package/src/styles/{layout/grid.variables.scss → abstracts/grid.scss} +8 -1
  83. package/src/styles/abstracts/responsive.scss +84 -0
  84. package/src/styles/abstracts/spacing.scss +51 -0
  85. package/src/styles/abstracts/tools.scss +6 -0
  86. package/src/styles/{layout/typography.variables.scss → abstracts/typography.scss} +18 -11
  87. package/src/styles/assets/fontawesome.scss +4 -2
  88. package/src/styles/assets/logo.scss +6 -2
  89. package/src/styles/layout/animation.scss +2 -0
  90. package/src/styles/layout/app.scss +2 -0
  91. package/src/styles/layout/color.scss +2 -0
  92. package/src/styles/layout/grid.scss +3 -4
  93. package/src/styles/layout/helper.scss +3 -0
  94. package/src/styles/layout/scrollbar.scss +2 -0
  95. package/src/styles/layout/section.scss +1 -9
  96. package/src/styles/layout/spacing.scss +3 -4
  97. package/src/styles/layout/typography.scss +13 -12
  98. package/src/styles/ui.scss +88 -77
  99. package/src/styles/vendors/bootstrap.scss +19 -19
  100. package/src/styles/abstracts/brand.scss +0 -9
  101. package/src/styles/abstracts/layer.scss +0 -10
  102. package/src/styles/vendors/castlabs.scss +0 -17
@@ -1,3 +1,6 @@
1
+ @use '../../../../styles/global' as *;
2
+ @use '../../ClTable/style.variables' as *;
3
+
1
4
  .cl-table-data {
2
5
  .cl-td-id,
3
6
  .cl-td-uuid {
@@ -13,7 +16,7 @@
13
16
  overflow-wrap: unset;
14
17
  width: 2.5em;
15
18
 
16
- @include media-breakpoint-down($table-responsive) {
19
+ @include media-breakpoint-down($grid-table-responsive) {
17
20
  table:not(.cl-table-nonresponsive) & {
18
21
  width: 100%;
19
22
  }
@@ -1,3 +1,5 @@
1
+ @use '../../../../styles/global' as *;
2
+
1
3
  .cl-table-data {
2
4
  .cl-th-links {
3
5
  @extend %cl-p-label;
@@ -7,7 +9,7 @@
7
9
  right: 0;
8
10
  text-align: end;
9
11
 
10
- @include media-breakpoint-down($table-responsive) {
12
+ @include media-breakpoint-down($grid-table-responsive) {
11
13
  table:not(.cl-table-nonresponsive) & {
12
14
  display: none;
13
15
  }
@@ -38,7 +40,7 @@
38
40
  }
39
41
  }
40
42
 
41
- @include media-breakpoint-down($table-responsive) {
43
+ @include media-breakpoint-down($grid-table-responsive) {
42
44
  table:not(.cl-table-nonresponsive) & {
43
45
  text-align: end;
44
46
  }
@@ -1,6 +1,7 @@
1
1
  // styles that apply to all types of table cels
2
2
 
3
- @import 'style.variables';
3
+ @use '../../../styles/global' as *;
4
+ @use 'style.variables' as *;
4
5
 
5
6
  .cl-table-data {
6
7
  @extend %cl-table-data-cel;
@@ -1,5 +1,8 @@
1
1
  // styles that apply to all types of table cels
2
2
 
3
+ @use '../ClTable/style.variables' as *;
4
+ @use '../../../styles/global' as *;
5
+
3
6
  %cl-table-data-cel {
4
7
  td {
5
8
  @include typography-font($typography-sans-font-list, 400, px(16), $table-lineheight);
@@ -1,2 +1,4 @@
1
+ @use '../../../styles/global' as *;
2
+
1
3
  .cl-table-foot-checked {
2
4
  }
@@ -1,3 +1,5 @@
1
+ @use '../../../styles/global' as *;
2
+
1
3
  .cl-table-head {
2
4
  white-space: nowrap;
3
5
 
@@ -31,7 +33,7 @@
31
33
 
32
34
  .cl-table-data {
33
35
  th {
34
- @include media-breakpoint-down($table-responsive) {
36
+ @include media-breakpoint-down($grid-table-responsive) {
35
37
  table:not(.cl-table-nonresponsive) & {
36
38
  width: 100%;
37
39
  }
@@ -3,6 +3,8 @@
3
3
  /// @access public
4
4
  ////
5
5
 
6
+ @use '../../../styles/global' as *;
7
+
6
8
  .cl-copy {
7
9
  @include cl-fontawesome-postfix('\f0c5');
8
10
 
@@ -5,6 +5,9 @@
5
5
 
6
6
  // This file defines custom hashtag styles.
7
7
 
8
+ @use '../../../styles/global' as *;
9
+ @use '../../ClBadge/style.variables' as *;
10
+
8
11
  .cl-hashtag {
9
12
  @extend %cl-badge;
10
13
  @include cl-badge-small;
@@ -5,6 +5,8 @@
5
5
 
6
6
  // This file defines variants for hyperlinks.
7
7
 
8
+ @use '../../../styles/global' as *;
9
+
8
10
  .cl-a,
9
11
  .cl-p a,
10
12
  main a {
@@ -5,6 +5,8 @@
5
5
 
6
6
  // This file defines custom org lables.
7
7
 
8
+ @use '../../../styles/global' as *;
9
+
8
10
  .cl-org {
9
11
  font-weight: 700;
10
12
 
@@ -5,6 +5,9 @@
5
5
 
6
6
  // This file defines custom plan styles.
7
7
 
8
+ @use '../../../styles/global' as *;
9
+ @use '../../ClBadge/style.variables' as *;
10
+
8
11
  .cl-plan {
9
12
  @extend %cl-badge;
10
13
  @include cl-badge-small;
@@ -5,6 +5,9 @@
5
5
 
6
6
  // This file defines custom role styles.
7
7
 
8
+ @use '../../../styles/global' as *;
9
+ @use '../../ClBadge/style.variables' as *;
10
+
8
11
  .cl-role {
9
12
  @extend %cl-badge;
10
13
  @include cl-badge-small;
@@ -1,3 +1,5 @@
1
+ @use '../../../styles/global' as *;
2
+
1
3
  .cl-back-cancel-ok {
2
4
  padding-top: 0;
3
5
 
@@ -1,3 +1,5 @@
1
+ @use '../../../styles/global' as *;
2
+
1
3
  .cl-cookie-banner {
2
4
  bottom: $spacing-large;
3
5
  // box-shadow: 1px 1px 2px 1px $color-black-25a;
@@ -1,3 +1,5 @@
1
+ @use '../../../styles/global' as *;
2
+
1
3
  .cl-page-spinner {
2
4
  align-items: center;
3
5
  display: flex;
@@ -1,44 +1,46 @@
1
+ $cl-folder-prefix: '@' !default;
2
+
1
3
  @mixin DMMono {
2
4
  @font-face {
3
5
  font-family: 'DM Mono';
4
6
  font-style: normal;
5
7
  font-weight: 300;
6
- src: url('#{$castlabs-ui-asset-prefix}/fonts/DMMono/DM_Mono_300.woff2?no-inline')
8
+ src: url('#{$cl-folder-prefix}/fonts/DMMono/DM_Mono_300.woff2?no-inline')
7
9
  format('woff2');
8
10
  }
9
11
  @font-face {
10
12
  font-family: 'DM Mono';
11
13
  font-style: italic;
12
14
  font-weight: 300;
13
- src: url('#{$castlabs-ui-asset-prefix}/fonts/DMMono/DM_Mono_300italic.woff2?no-inline')
15
+ src: url('#{$cl-folder-prefix}/fonts/DMMono/DM_Mono_300italic.woff2?no-inline')
14
16
  format('woff2');
15
17
  }
16
18
  @font-face {
17
19
  font-family: 'DM Mono';
18
20
  font-style: normal;
19
21
  font-weight: 400;
20
- src: url('#{$castlabs-ui-asset-prefix}/fonts/DMMono/DM_Mono_400.woff2?no-inline')
22
+ src: url('#{$cl-folder-prefix}/fonts/DMMono/DM_Mono_400.woff2?no-inline')
21
23
  format('woff2');
22
24
  }
23
25
  @font-face {
24
26
  font-family: 'DM Mono';
25
27
  font-style: italic;
26
28
  font-weight: 400;
27
- src: url('#{$castlabs-ui-asset-prefix}/fonts/DMMono/DM_Mono_400italic.woff2?no-inline')
29
+ src: url('#{$cl-folder-prefix}/fonts/DMMono/DM_Mono_400italic.woff2?no-inline')
28
30
  format('woff2');
29
31
  }
30
32
  @font-face {
31
33
  font-family: 'DM Mono';
32
34
  font-style: normal;
33
35
  font-weight: 500;
34
- src: url('#{$castlabs-ui-asset-prefix}/fonts/DMMono/DM_Mono_500.woff2?no-inline')
36
+ src: url('#{$cl-folder-prefix}/fonts/DMMono/DM_Mono_500.woff2?no-inline')
35
37
  format('woff2');
36
38
  }
37
39
  @font-face {
38
40
  font-family: 'DM Mono';
39
41
  font-style: italic;
40
42
  font-weight: 500;
41
- src: url('#{$castlabs-ui-asset-prefix}/fonts/DMMono/DM_Mono_500italic.woff2?no-inline')
43
+ src: url('#{$cl-folder-prefix}/fonts/DMMono/DM_Mono_500italic.woff2?no-inline')
42
44
  format('woff2');
43
45
  }
44
46
  }
@@ -1,3 +1,5 @@
1
+ $cl-folder-prefix: '@' !default;
2
+
1
3
  /*!
2
4
  * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com
3
5
  * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
@@ -6085,7 +6087,7 @@ readers do not read off random characters that represent icons */
6085
6087
  font-family: 'Font Awesome 5 Brands';
6086
6088
  font-style: normal;
6087
6089
  font-weight: 400;
6088
- src: url('#{$castlabs-ui-asset-prefix}/fonts/FontAwesome5/fa-brands-400.woff2?no-inline')
6090
+ src: url('#{$cl-folder-prefix}/fonts/FontAwesome5/fa-brands-400.woff2?no-inline')
6089
6091
  format('woff2');
6090
6092
  }
6091
6093
 
@@ -6099,7 +6101,7 @@ readers do not read off random characters that represent icons */
6099
6101
  font-family: 'Font Awesome 5 Free';
6100
6102
  font-style: normal;
6101
6103
  font-weight: 400;
6102
- src: url('#{$castlabs-ui-asset-prefix}/fonts/FontAwesome5/fa-regular-400.woff2?no-inline')
6104
+ src: url('#{$cl-folder-prefix}/fonts/FontAwesome5/fa-regular-400.woff2?no-inline')
6103
6105
  format('woff2');
6104
6106
  }
6105
6107
 
@@ -6113,7 +6115,7 @@ readers do not read off random characters that represent icons */
6113
6115
  font-family: 'Font Awesome 5 Free';
6114
6116
  font-style: normal;
6115
6117
  font-weight: 900;
6116
- src: url('#{$castlabs-ui-asset-prefix}/fonts/FontAwesome5/fa-solid-900.woff2?no-inline')
6118
+ src: url('#{$cl-folder-prefix}/fonts/FontAwesome5/fa-solid-900.woff2?no-inline')
6117
6119
  format('woff2');
6118
6120
  }
6119
6121
 
@@ -1,5 +1,7 @@
1
1
  // stylelint-disable at-rule-descriptor-value-no-unknown
2
2
 
3
+ $cl-folder-prefix: '@' !default;
4
+
3
5
  $non-natural-ascent-override: 100%;
4
6
  $non-natural-descent-override: 40%;
5
7
 
@@ -10,7 +12,7 @@ $non-natural-descent-override: 40%;
10
12
  font-family: NonNaturalGroteskInktrap;
11
13
  font-style: normal;
12
14
  font-weight: 400;
13
- src: url('#{$castlabs-ui-asset-prefix}/fonts/NonNaturalGroteskInktrap/NonNaturalGroteskInktrap-Regular.woff2?no-inline')
15
+ src: url('#{$cl-folder-prefix}/fonts/NonNaturalGroteskInktrap/NonNaturalGroteskInktrap-Regular.woff2?no-inline')
14
16
  format('woff2');
15
17
  }
16
18
  @font-face {
@@ -19,7 +21,7 @@ $non-natural-descent-override: 40%;
19
21
  font-family: NonNaturalGroteskInktrap;
20
22
  font-style: normal;
21
23
  font-weight: 500;
22
- src: url('#{$castlabs-ui-asset-prefix}/fonts/NonNaturalGroteskInktrap/NonNaturalGroteskInktrap-Medium.woff2?no-inline')
24
+ src: url('#{$cl-folder-prefix}/fonts/NonNaturalGroteskInktrap/NonNaturalGroteskInktrap-Medium.woff2?no-inline')
23
25
  format('woff2');
24
26
  }
25
27
  @font-face {
@@ -28,7 +30,7 @@ $non-natural-descent-override: 40%;
28
30
  font-family: NonNaturalGroteskInktrap;
29
31
  font-style: normal;
30
32
  font-weight: 700;
31
- src: url('#{$castlabs-ui-asset-prefix}/fonts/NonNaturalGroteskInktrap/NonNaturalGroteskInktrap-Bold.woff2?no-inline')
33
+ src: url('#{$cl-folder-prefix}/fonts/NonNaturalGroteskInktrap/NonNaturalGroteskInktrap-Bold.woff2?no-inline')
32
34
  format('woff2');
33
35
  }
34
36
  }
@@ -6,54 +6,15 @@
6
6
  // This file defines all global variables and helper functions/mixins. It MUST
7
7
  // NOT not output any css, as it will be included by every Vue component.
8
8
 
9
- @use 'sass:math';
10
-
11
- // -----------------------------------------------------------------------------
12
-
13
- @import 'abstracts/tools';
14
- @import 'abstracts/brand';
15
- @import 'abstracts/color';
16
- @import 'abstracts/layer';
17
- @import 'abstracts/spacing';
18
- @import 'vendors/bootstrap';
19
- @import 'bootstrap/scss/mixins/breakpoints';
20
- @import 'assets/fontawesome.variables';
21
- @import 'layout/typography.variables';
22
- @import 'layout/grid.variables';
23
- @import 'components/button.variables';
24
- @import 'components/form.variables';
25
- @import '../components/ClList/style.variables';
26
- @import '../components/table/ClTable/style.variables';
27
- @import '../components/table/ClTableCel/style.variables';
28
- @import '../components/ClCard/style.variables';
29
- @import 'vendors/castlabs';
30
-
31
- // --- spacings ----------------------------------------------------------------
32
-
33
- %spacing-huge {
34
- margin-top: $spacing-huge;
35
- }
36
-
37
- %spacing-large {
38
- margin-top: $spacing-large;
39
- }
40
-
41
- %spacing-medium {
42
- margin-top: $spacing-medium;
43
- }
44
-
45
- %spacing-small {
46
- margin-top: $spacing-small;
47
- }
48
-
49
- %spacing-tiny {
50
- margin-top: $spacing-tiny;
51
- }
52
-
53
- %spacing-micro {
54
- margin-top: $spacing-micro;
55
- }
56
-
57
- %spacing-none {
58
- margin-top: 0;
59
- }
9
+ @forward 'abstracts/app';
10
+ @forward 'abstracts/button';
11
+ @forward 'abstracts/color';
12
+ @forward 'abstracts/fontawesome';
13
+ @forward 'abstracts/form';
14
+ @forward 'abstracts/grid';
15
+ @forward 'abstracts/responsive';
16
+ @forward 'abstracts/spacing';
17
+ @forward 'abstracts/tools';
18
+ @forward 'abstracts/typography';
19
+
20
+ // $castlabs-ui-asset-prefix: '@' !default;
@@ -0,0 +1,23 @@
1
+ ////
2
+ /// @group themes
3
+ /// @access public
4
+ ////
5
+
6
+ // global brand settings/values
7
+
8
+ @use './spacing' as *;
9
+ @use './tools' as *;
10
+
11
+ $brand-border-radius: px(20);
12
+ $brand-line-width: px(1);
13
+
14
+ $grid-spacing: $spacing-small;
15
+
16
+ $layer-z-modal: 2000;
17
+ $layer-z-sidenav: 1000;
18
+ $layer-z-content: 0;
19
+
20
+ $sidenav-width-open: 18rem;
21
+ $sidenav-width-closed: 0;
22
+ $sidenav-z-index: $layer-z-sidenav;
23
+ $sidenav-breakpoint: xl;
@@ -3,6 +3,11 @@
3
3
  /// @access public
4
4
  ////
5
5
 
6
+ @use './app' as *;
7
+ @use './color' as *;
8
+ @use './spacing' as *;
9
+ @use './tools' as *;
10
+
6
11
  @mixin cl-button {
7
12
  background-image: none;
8
13
  border-radius: $brand-border-radius;
@@ -78,12 +83,3 @@
78
83
  outline: 0 !important;
79
84
  }
80
85
  }
81
-
82
- @mixin cl-button-focus-outline() {
83
- .btn-check:focus-visible + &,
84
- &:focus-visible {
85
- @include cl-color-focus-outline;
86
-
87
- box-shadow: none;
88
- }
89
- }
@@ -5,6 +5,8 @@
5
5
 
6
6
  // Basic/generic color values.
7
7
 
8
+ @use './tools' as *;
9
+
8
10
  $color-black-50a: rgb(0 0 0 / 50%);
9
11
 
10
12
  $color-ci-red: #fa423c; // rgba(250, 66, 60, 1)
@@ -72,6 +74,15 @@ $bar-ui-width: px(4);
72
74
  }
73
75
  }
74
76
 
77
+ @mixin cl-button-focus-outline() {
78
+ .btn-check:focus-visible + &,
79
+ &:focus-visible {
80
+ @include cl-color-focus-outline;
81
+
82
+ box-shadow: none;
83
+ }
84
+ }
85
+
75
86
  @mixin cl-accent() {
76
87
  &.cl-accent-red,
77
88
  .cl-accent-red {
@@ -1,3 +1,6 @@
1
+ @use './color' as *;
2
+ @use './tools' as *;
3
+
1
4
  /// Add a fontawesome icon via codepoint.
2
5
  ///
3
6
  /// @example scss
@@ -5,6 +5,12 @@
5
5
 
6
6
  // This file defines form/input field variables
7
7
 
8
+ @use './app' as *;
9
+ @use './color' as *;
10
+ @use './spacing' as *;
11
+ @use './tools' as *;
12
+ @use './typography' as *;
13
+
8
14
  $form-field-fontsize: px(16);
9
15
  $form-field-line-height: 1.375;
10
16
  $form-field-min-height: px(36);
@@ -1,8 +1,15 @@
1
1
  ////
2
- /// @group layout
2
+ /// @group vendors
3
3
  /// @access public
4
4
  ////
5
5
 
6
+ // This file will define/override variables used by bootstrap to customize it
7
+ // to our needs.
8
+
9
+ @use 'sass:math';
10
+
11
+ @use './spacing' as *;
12
+
6
13
  @mixin grid-margins($spacing) {
7
14
  padding-bottom: math.div($spacing, 2);
8
15
  padding-top: math.div($spacing, 2);
@@ -0,0 +1,84 @@
1
+ ////
2
+ /// @group vendors
3
+ /// @access public
4
+ ////
5
+
6
+ // This file will define/override variables used by bootstrap to customize it
7
+ // to our needs.
8
+ // hint: see also vendors/bootstrap.scss for the actual Bootstrap imports
9
+
10
+ @use 'sass:map';
11
+
12
+ $grid-breakpoints: (
13
+ xs: 0,
14
+ sm: 576px,
15
+ md: 768px,
16
+ lg: 992px,
17
+ xl: 1200px,
18
+ xxl: 1400px
19
+ );
20
+
21
+ $grid-table-responsive: sm;
22
+
23
+ @function breakpoint-min($breakpoint) {
24
+ $min: map.get($grid-breakpoints, $breakpoint);
25
+ @return if($min != 0, $min, null);
26
+ }
27
+
28
+ @function breakpoint-max($breakpoint) {
29
+ $max: map.get($grid-breakpoints, $breakpoint);
30
+ @return if($max and $max > 0, $max - 0.02, null);
31
+ }
32
+
33
+ @function breakpoint-next($breakpoint, $breakpoint-names: map.keys($grid-breakpoints)) {
34
+ $n: index($breakpoint-names, $breakpoint);
35
+ @if not $n {
36
+ @error 'breakpoint `#{$breakpoint}` not found in `#{$grid-breakpoints}`';
37
+ }
38
+ @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);
39
+ }
40
+
41
+ @mixin media-breakpoint-up($breakpoint) {
42
+ $min: breakpoint-min($breakpoint);
43
+ @if $min {
44
+ // stylelint-disable-next-line media-query-no-invalid
45
+ @media (min-width: $min) {
46
+ @content;
47
+ }
48
+ } @else {
49
+ @content;
50
+ }
51
+ }
52
+
53
+ @mixin media-breakpoint-down($breakpoint) {
54
+ $max: breakpoint-max($breakpoint);
55
+ @if $max {
56
+ // stylelint-disable-next-line media-query-no-invalid
57
+ @media (max-width: $max) {
58
+ @content;
59
+ }
60
+ } @else {
61
+ @content;
62
+ }
63
+ }
64
+
65
+ @mixin media-breakpoint-only($breakpoint) {
66
+ $min: breakpoint-min($breakpoint);
67
+ $next: breakpoint-next($breakpoint);
68
+ $max: breakpoint-max($next);
69
+
70
+ @if $min != null and $max != null {
71
+ // stylelint-disable-next-line media-query-no-invalid
72
+ @media (min-width: $min) and (max-width: $max) {
73
+ @content;
74
+ }
75
+ } @else if $max == null {
76
+ @include media-breakpoint-up($breakpoint) {
77
+ @content;
78
+ }
79
+ } @else if $min == null {
80
+ @include media-breakpoint-down($next) {
81
+ @content;
82
+ }
83
+ }
84
+ }
@@ -5,6 +5,9 @@
5
5
 
6
6
  // Our global spacing values.
7
7
 
8
+ @use './responsive' as *;
9
+ @use './tools' as *;
10
+
8
11
  $spacing-none: px(0);
9
12
  $spacing-micro: px(4);
10
13
  $spacing-tiny: px(8);
@@ -13,6 +16,8 @@ $spacing-medium: px(24);
13
16
  $spacing-large: px(32);
14
17
  $spacing-huge: px(48);
15
18
 
19
+ $spacing-indent: $spacing-large; // uniform indent for lists, blockquotes, ...
20
+
16
21
  $header-nav-height: px(40);
17
22
 
18
23
  @mixin spacing-before-auto($value) {
@@ -32,3 +37,49 @@ $header-nav-height: px(40);
32
37
  margin-top: $margin-top;
33
38
  }
34
39
  }
40
+
41
+ %section-padding {
42
+ padding-left: $spacing-tiny;
43
+ padding-right: $spacing-tiny;
44
+
45
+ @include media-breakpoint-up(sm) {
46
+ padding-left: $spacing-medium;
47
+ padding-right: $spacing-medium;
48
+ }
49
+ }
50
+
51
+ %cl-grid-flex-centered {
52
+ > * {
53
+ @include spacing-before(0);
54
+ }
55
+ }
56
+
57
+ // --- spacings ----------------------------------------------------------------
58
+
59
+ %spacing-huge {
60
+ margin-top: $spacing-huge;
61
+ }
62
+
63
+ %spacing-large {
64
+ margin-top: $spacing-large;
65
+ }
66
+
67
+ %spacing-medium {
68
+ margin-top: $spacing-medium;
69
+ }
70
+
71
+ %spacing-small {
72
+ margin-top: $spacing-small;
73
+ }
74
+
75
+ %spacing-tiny {
76
+ margin-top: $spacing-tiny;
77
+ }
78
+
79
+ %spacing-micro {
80
+ margin-top: $spacing-micro;
81
+ }
82
+
83
+ %spacing-none {
84
+ margin-top: 0;
85
+ }
@@ -5,6 +5,12 @@
5
5
 
6
6
  @use 'sass:math';
7
7
 
8
+ $asset-img-huge: px(192);
9
+ $asset-img-large: px(128);
10
+ $asset-img-medium: px(96);
11
+ $asset-img-small: px(64);
12
+ $asset-img-tiny: px(32);
13
+
8
14
  /// Convert a px-length to rems. Will stick with pixels
9
15
  /// for small sizes. Based on 16px root font size.
10
16
  ///