@castlabs/ui 7.1.0 → 7.2.1

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 (139) hide show
  1. package/README.md +5 -21
  2. package/dist/assets/DMMono/index.scss +41 -0
  3. package/dist/assets/FontAwesome5/LICENSE.txt +34 -0
  4. package/{src/fonts/FontAwesome5/FontAwesome5.scss → dist/assets/FontAwesome5/index.scss} +6 -6
  5. package/{src/fonts/NonNaturalGroteskInktrap/NonNaturalGroteskInktrap.scss → dist/assets/NonNaturalGroteskInktrap/index.scss} +6 -3
  6. package/dist/castlabs-ui.common.js +1 -1
  7. package/dist/castlabs-ui.common.js.map +1 -1
  8. package/dist/castlabs-ui.css +5 -5
  9. package/dist/castlabs-ui.umd.js +9 -9
  10. package/dist/castlabs-ui.umd.js.map +1 -1
  11. package/package.json +1 -1
  12. package/src/components/ClAlert/style.scss +2 -0
  13. package/src/components/ClBadge/style.scss +2 -1
  14. package/src/components/ClBadge/style.variables.scss +2 -0
  15. package/src/components/ClBlockquote/style.scss +13 -0
  16. package/src/components/ClBlockquote/style.variables.scss +15 -0
  17. package/src/components/ClButton/style.scss +6 -4
  18. package/src/components/ClCard/style.scss +2 -1
  19. package/src/components/ClCard/style.variables.scss +2 -0
  20. package/src/components/ClDropdown/style.scss +2 -0
  21. package/src/components/ClDropzone/style.scss +2 -0
  22. package/src/components/ClFooter/style.scss +2 -0
  23. package/src/components/ClHighlight/style.scss +2 -0
  24. package/src/components/ClIcon/style.scss +2 -6
  25. package/src/components/ClIconotron/style.scss +2 -0
  26. package/src/components/ClList/style.scss +3 -2
  27. package/src/components/ClList/style.variables.scss +3 -3
  28. package/src/components/ClListGroup/style.scss +3 -1
  29. package/src/components/ClPagination/style.scss +3 -1
  30. package/src/components/ClProgress/style.scss +7 -1
  31. package/src/components/ClScrollbar/style.scss +2 -1
  32. package/src/components/ClSpinner/style.scss +2 -0
  33. package/src/components/ClTabs/style.scss +2 -0
  34. package/src/components/ClToggle/style.scss +2 -0
  35. package/src/components/ClTooltip/style.scss +3 -1
  36. package/src/components/ClWizard/style.scss +2 -0
  37. package/src/components/form/ClField/style.scss +2 -0
  38. package/src/components/form/ClFieldCheck/style.scss +7 -2
  39. package/src/components/form/ClFieldFile/style.scss +2 -0
  40. package/src/components/form/ClFieldGroup/style.scss +2 -0
  41. package/src/components/form/ClFieldInput/style.scss +2 -0
  42. package/src/components/form/ClFieldSelect/style.scss +8 -5
  43. package/src/components/form/ClFieldSet/style.scss +2 -0
  44. package/src/components/form/ClForm/style.scss +2 -0
  45. package/src/components/modal/ClModal/style.scss +3 -0
  46. package/src/components/navigation/ClNavSide/ClNavDrawer/style.scss +1 -0
  47. package/src/components/navigation/ClNavSide/ClNavSideMenu/style.scss +2 -0
  48. package/src/components/navigation/ClNavSide/style.scss +1 -4
  49. package/src/components/navigation/ClNavTop/style.scss +6 -4
  50. package/src/components/section/ClSectionForm/style.scss +2 -0
  51. package/src/components/section/ClSectionHeadline/style.scss +2 -0
  52. package/src/components/section/ClSectionMainSide/style.scss +2 -0
  53. package/src/components/table/ClTable/style.scss +2 -1
  54. package/src/components/table/ClTable/style.variables.scss +3 -2
  55. package/src/components/table/ClTableCel/Actions/style.scss +3 -1
  56. package/src/components/table/ClTableCel/Audit/style.scss +4 -2
  57. package/src/components/table/ClTableCel/Boolean/style.scss +3 -1
  58. package/src/components/table/ClTableCel/Checkbox/style.scss +2 -0
  59. package/src/components/table/ClTableCel/Code/style.scss +4 -1
  60. package/src/components/table/ClTableCel/Currency/style.scss +3 -1
  61. package/src/components/table/ClTableCel/Date/style.scss +3 -1
  62. package/src/components/table/ClTableCel/ID/style.scss +4 -1
  63. package/src/components/table/ClTableCel/Links/style.scss +4 -2
  64. package/src/components/table/ClTableCel/style.scss +2 -1
  65. package/src/components/table/ClTableCel/style.variables.scss +3 -0
  66. package/src/components/table/ClTableFootChecked/style.scss +2 -0
  67. package/src/components/table/ClTableHead/style.scss +3 -1
  68. package/src/components/text/ClCopy/style.scss +2 -0
  69. package/src/components/text/ClHashtag/style.scss +3 -0
  70. package/src/components/text/ClLinkExternal/style.scss +2 -0
  71. package/src/components/text/ClOrg/style.scss +2 -0
  72. package/src/components/text/ClPlan/style.scss +3 -0
  73. package/src/components/text/ClRole/style.scss +3 -0
  74. package/src/components/widget/ClBackCancelOk/style.scss +2 -0
  75. package/src/components/widget/ClCookieBanner/style.scss +2 -0
  76. package/src/components/widget/ClPage/style.scss +2 -0
  77. package/src/styles/_global.scss +12 -51
  78. package/src/styles/abstracts/app.scss +23 -0
  79. package/src/styles/{components/button.variables.scss → abstracts/button.scss} +5 -9
  80. package/src/styles/abstracts/color.scss +20 -0
  81. package/src/styles/{assets/fontawesome.variables.scss → abstracts/fontawesome.scss} +3 -0
  82. package/src/styles/{components/form.variables.scss → abstracts/form.scss} +6 -0
  83. package/src/styles/{layout/grid.variables.scss → abstracts/grid.scss} +8 -1
  84. package/src/styles/abstracts/responsive.scss +84 -0
  85. package/src/styles/abstracts/spacing.scss +51 -0
  86. package/src/styles/abstracts/tools.scss +6 -0
  87. package/src/styles/{layout/typography.variables.scss → abstracts/typography.scss} +18 -11
  88. package/src/styles/assets/logo.scss +7 -2
  89. package/src/styles/fonts/DMMono/DM_Mono_300.woff2 +0 -0
  90. package/src/styles/fonts/DMMono/DM_Mono_300italic.woff2 +0 -0
  91. package/src/styles/fonts/DMMono/DM_Mono_400.woff2 +0 -0
  92. package/src/styles/fonts/DMMono/DM_Mono_400italic.woff2 +0 -0
  93. package/src/styles/fonts/DMMono/DM_Mono_500.woff2 +0 -0
  94. package/src/styles/fonts/DMMono/DM_Mono_500italic.woff2 +0 -0
  95. package/src/styles/fonts/DMMono/index.scss +41 -0
  96. package/src/styles/fonts/FontAwesome5/fa-brands-400.woff2 +0 -0
  97. package/src/styles/fonts/FontAwesome5/fa-regular-400.woff2 +0 -0
  98. package/src/styles/fonts/FontAwesome5/fa-solid-900.woff2 +0 -0
  99. package/src/styles/fonts/FontAwesome5/index.scss +6124 -0
  100. package/src/styles/fonts/NonNaturalGroteskInktrap/NonNaturalGroteskInktrap-Bold.woff2 +0 -0
  101. package/src/styles/fonts/NonNaturalGroteskInktrap/NonNaturalGroteskInktrap-Medium.woff2 +0 -0
  102. package/src/styles/fonts/NonNaturalGroteskInktrap/NonNaturalGroteskInktrap-Regular.woff2 +0 -0
  103. package/src/styles/fonts/NonNaturalGroteskInktrap/index.scss +37 -0
  104. package/src/styles/layout/animation.scss +2 -0
  105. package/src/styles/layout/app.scss +2 -0
  106. package/src/styles/layout/color.scss +2 -0
  107. package/src/styles/layout/grid.scss +3 -4
  108. package/src/styles/layout/helper.scss +3 -0
  109. package/src/styles/layout/scrollbar.scss +2 -0
  110. package/src/styles/layout/section.scss +1 -9
  111. package/src/styles/layout/spacing.scss +3 -4
  112. package/src/styles/layout/typography.scss +16 -12
  113. package/src/styles/ui.scss +96 -77
  114. package/src/styles/vendors/bootstrap.scss +20 -19
  115. package/src/assets/bs/checked.svg +0 -1
  116. package/src/assets/bs/select-disabled.svg +0 -1
  117. package/src/assets/bs/select.svg +0 -1
  118. package/src/assets/castlabs-logo-eggshell.svg +0 -33
  119. package/src/assets/castlabs-logo.svg +0 -33
  120. package/src/fonts/DMMono/DMMono.scss +0 -44
  121. package/src/styles/abstracts/brand.scss +0 -9
  122. package/src/styles/abstracts/layer.scss +0 -10
  123. package/src/styles/assets/fontawesome.scss +0 -2
  124. package/src/styles/vendors/castlabs.scss +0 -17
  125. /package/{src/fonts → dist/assets}/DMMono/DM_Mono_300.woff2 +0 -0
  126. /package/{src/fonts → dist/assets}/DMMono/DM_Mono_300italic.woff2 +0 -0
  127. /package/{src/fonts → dist/assets}/DMMono/DM_Mono_400.woff2 +0 -0
  128. /package/{src/fonts → dist/assets}/DMMono/DM_Mono_400italic.woff2 +0 -0
  129. /package/{src/fonts → dist/assets}/DMMono/DM_Mono_500.woff2 +0 -0
  130. /package/{src/fonts → dist/assets}/DMMono/DM_Mono_500italic.woff2 +0 -0
  131. /package/{src/fonts → dist/assets}/FontAwesome5/fa-brands-400.woff2 +0 -0
  132. /package/{src/fonts → dist/assets}/FontAwesome5/fa-regular-400.woff2 +0 -0
  133. /package/{src/fonts → dist/assets}/FontAwesome5/fa-solid-900.woff2 +0 -0
  134. /package/{src/fonts → dist/assets}/NonNaturalGroteskInktrap/NonNaturalGroteskInktrap-Bold.woff2 +0 -0
  135. /package/{src/fonts → dist/assets}/NonNaturalGroteskInktrap/NonNaturalGroteskInktrap-Medium.woff2 +0 -0
  136. /package/{src/fonts → dist/assets}/NonNaturalGroteskInktrap/NonNaturalGroteskInktrap-Regular.woff2 +0 -0
  137. /package/dist/assets/{bs/checked.svg → checked.svg} +0 -0
  138. /package/dist/assets/{bs/select-disabled.svg → select-disabled.svg} +0 -0
  139. /package/dist/assets/{bs/select.svg → select.svg} +0 -0
@@ -1,9 +1,11 @@
1
+ @use '../../../../styles/global' as *;
2
+
1
3
  .cl-table-data {
2
4
  .cl-td-date {
3
5
  overflow-wrap: break-word;
4
6
  width: 9.5em;
5
7
 
6
- @include media-breakpoint-down($table-responsive) {
8
+ @include media-breakpoint-down($grid-table-responsive) {
7
9
  table:not(.cl-table-nonresponsive) & {
8
10
  width: 100%;
9
11
  }
@@ -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;
@@ -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 {
@@ -133,6 +144,9 @@ $bar-ui-width: px(4);
133
144
  #{'--cl-color-active'}: $color-ci-berry;
134
145
  #{'--cl-color-hover'}: $color-ci-red;
135
146
  #{'--cl-color-focus'}: $color-ci-night;
147
+ #{'--cl-color-disabled-background'}: $color-ci-clay;
148
+ #{'--cl-color-disabled-border'}: $color-ci-clay;
149
+ #{'--cl-color-disabled-text'}: $color-ci-eggshell;
136
150
  }
137
151
 
138
152
  %cl-color-night-outline {
@@ -145,6 +159,9 @@ $bar-ui-width: px(4);
145
159
  #{'--cl-color-highlight'}: rgba(#fff, 0.85);
146
160
  #{'--cl-color-link'}: $color-ci-berry;
147
161
  #{'--cl-color-focus'}: $color-ci-night;
162
+ #{'--cl-color-disabled-background'}: transparent;
163
+ #{'--cl-color-disabled-border'}: $color-ci-clay;
164
+ #{'--cl-color-disabled-text'}: $color-ci-clay;
148
165
  }
149
166
 
150
167
  %cl-color-red {
@@ -166,6 +183,9 @@ $bar-ui-width: px(4);
166
183
  #{'--cl-color-highlight'}: rgba(#fff, 0.85);
167
184
  #{'--cl-color-link'}: $color-ci-berry;
168
185
  #{'--cl-color-focus'}: $color-ci-red;
186
+ #{'--cl-color-disabled-background'}: transparent;
187
+ #{'--cl-color-disabled-border'}: $color-ci-clay;
188
+ #{'--cl-color-disabled-text'}: $color-ci-clay;
169
189
  }
170
190
 
171
191
  %cl-color-sky {
@@ -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
  ///
@@ -5,6 +5,12 @@
5
5
 
6
6
  // This file defines our basic typography rules.
7
7
 
8
+ @use './app' as *;
9
+ @use './color' as *;
10
+ @use './spacing' as *;
11
+ @use './tools' as *;
12
+ @use 'sass:meta';
13
+
8
14
  // h1 (deco): 100
9
15
  // h2 48
10
16
  // h3 40
@@ -184,7 +190,7 @@ $typography-responsive-scale: 0.8;
184
190
  @include cl-btn-a(34);
185
191
  }
186
192
 
187
- @if mixin-exists('media-breakpoint-only') {
193
+ @if meta.mixin-exists('media-breakpoint-only') {
188
194
  // we might be used without bootstrap
189
195
  @include media-breakpoint-only(xs) {
190
196
  @include typography-font(
@@ -221,7 +227,7 @@ $typography-responsive-scale: 0.8;
221
227
  @include cl-btn-a(34);
222
228
  }
223
229
 
224
- @if mixin-exists('media-breakpoint-only') {
230
+ @if meta.mixin-exists('media-breakpoint-only') {
225
231
  // we might be used without bootstrap
226
232
  @include media-breakpoint-only(xs) {
227
233
  @include typography-font(
@@ -258,7 +264,7 @@ $typography-responsive-scale: 0.8;
258
264
  @include cl-btn-a(27);
259
265
  }
260
266
 
261
- @if mixin-exists('media-breakpoint-only') {
267
+ @if meta.mixin-exists('media-breakpoint-only') {
262
268
  // we might be used without bootstrap
263
269
  @include media-breakpoint-only(xs) {
264
270
  @include typography-font(
@@ -296,7 +302,7 @@ $typography-responsive-scale: 0.8;
296
302
  @include cl-btn-a(21);
297
303
  }
298
304
 
299
- @if mixin-exists('media-breakpoint-only') {
305
+ @if meta.mixin-exists('media-breakpoint-only') {
300
306
  // we might be used without bootstrap
301
307
  @include media-breakpoint-only(xs) {
302
308
  @include typography-font(
@@ -323,7 +329,7 @@ $typography-responsive-scale: 0.8;
323
329
  -0.1em
324
330
  );
325
331
 
326
- @if mixin-exists('media-breakpoint-only') {
332
+ @if meta.mixin-exists('media-breakpoint-only') {
327
333
  // we might be used without bootstrap
328
334
  @include media-breakpoint-only(xs) {
329
335
  @include typography-font(
@@ -350,7 +356,7 @@ $typography-responsive-scale: 0.8;
350
356
  -0.1em
351
357
  );
352
358
 
353
- @if mixin-exists('media-breakpoint-only') {
359
+ @if meta.mixin-exists('media-breakpoint-only') {
354
360
  // we might be used without bootstrap
355
361
  @include media-breakpoint-only(xs) {
356
362
  @include typography-font(
@@ -377,7 +383,7 @@ $typography-responsive-scale: 0.8;
377
383
  -0.1em
378
384
  );
379
385
 
380
- @if mixin-exists('media-breakpoint-only') {
386
+ @if meta.mixin-exists('media-breakpoint-only') {
381
387
  // we might be used without bootstrap
382
388
  @include media-breakpoint-only(xs) {
383
389
  @include typography-font(
@@ -404,7 +410,7 @@ $typography-responsive-scale: 0.8;
404
410
  -0.1em
405
411
  );
406
412
 
407
- @if mixin-exists('media-breakpoint-only') {
413
+ @if meta.mixin-exists('media-breakpoint-only') {
408
414
  // we might be used without bootstrap
409
415
  @include media-breakpoint-only(xs) {
410
416
  @include typography-font(
@@ -431,8 +437,9 @@ $typography-responsive-scale: 0.8;
431
437
  @extend %cl-p-medium;
432
438
 
433
439
  font-size: px(16);
440
+ font-weight: 500;
434
441
 
435
- @if mixin-exists('media-breakpoint-only') {
442
+ @if meta.mixin-exists('media-breakpoint-only') {
436
443
  // we might be used without bootstrap
437
444
  @include media-breakpoint-only(xs) {
438
445
  font-size: px(16 * $typography-responsive-scale);
@@ -454,12 +461,12 @@ $typography-responsive-scale: 0.8;
454
461
 
455
462
  border: $brand-line-width solid var(--cl-color-text);
456
463
  border-radius: $brand-border-radius;
457
- clip-path: inset(0 round 19px);
464
+ clip-path: inset(0 round 20px);
458
465
  font-size: px(16);
459
466
  line-height: 1.4;
460
467
  margin-top: $spacing-small;
461
468
  padding: $spacing-small;
462
- padding-bottom: 1.01rem; // fix for overlapping scrollbar
469
+ padding-bottom: 0.95rem; // fix for overlapping scrollbar/clip
463
470
  }
464
471
 
465
472
  %cl-p-tag {