@carbon/layout 10.35.0 → 10.37.0-rc.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.
package/docs/sass.md ADDED
@@ -0,0 +1,58 @@
1
+ # Sass
2
+
3
+ > Sass documentation for `@carbon/layout`
4
+
5
+ ## Usage
6
+
7
+ The `@carbon/layout` package provides spacing tokens and conversion utilities
8
+ for the Carbon Design System. You can access these tokens and helpers by writing
9
+ the following:
10
+
11
+ ```scss
12
+ @use '@carbon/layout';
13
+
14
+ .selector {
15
+ margin-bottom: layout.$spacing-05;
16
+ width: layout.rem(24px);
17
+ height: layout.rem(24px);
18
+ }
19
+ ```
20
+
21
+ ## API
22
+
23
+ | Export | Description | !default |
24
+ | :------------------ | :---------- | :------- |
25
+ | `$spacing-01` | | ✅ |
26
+ | `$spacing-02` | | ✅ |
27
+ | `$spacing-03` | | ✅ |
28
+ | `$spacing-04` | | ✅ |
29
+ | `$spacing-05` | | ✅ |
30
+ | `$spacing-06` | | ✅ |
31
+ | `$spacing-07` | | ✅ |
32
+ | `$spacing-08` | | ✅ |
33
+ | `$spacing-09` | | ✅ |
34
+ | `$spacing-10` | | ✅ |
35
+ | `$spacing-11` | | ✅ |
36
+ | `$spacing-12` | | ✅ |
37
+ | `$spacing-13` | | ✅ |
38
+ | `$spacing ` | | |
39
+ | `$fluid-spacing-01` | | ✅ |
40
+ | `$fluid-spacing-02` | | ✅ |
41
+ | `$fluid-spacing-03` | | ✅ |
42
+ | `$fluid-spacing-04` | | ✅ |
43
+ | `$fluid-spacing ` | | |
44
+ | `@function em` | | |
45
+ | `@function rem` | | |
46
+ | `$base-font-size` | | ✅ |
47
+
48
+ ### Configuration
49
+
50
+ You can configure parts of the `@carbon/layout` package that are `!default` with
51
+ Sass Modules. For example, you can change the `$base-font-size` by writing the
52
+ following:
53
+
54
+ ```scss
55
+ @use '@carbon/layout' with (
56
+ $base-font-size: 18px
57
+ );
58
+ ```
package/index.scss CHANGED
@@ -5,8 +5,5 @@
5
5
  // LICENSE file in the root directory of this source tree.
6
6
  //
7
7
 
8
- @forward 'scss/modules/breakpoint';
9
8
  @forward 'scss/modules/convert';
10
9
  @forward 'scss/modules/spacing';
11
- // TODO: should these be public?
12
- @forward 'scss/modules/utilities';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@carbon/layout",
3
3
  "description": "Layout helpers for digital and software products using the Carbon Design System",
4
- "version": "10.35.0",
4
+ "version": "10.37.0-rc.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -29,7 +29,7 @@
29
29
  "clean": "rimraf es lib umd scss/generated scss/modules/generated"
30
30
  },
31
31
  "devDependencies": {
32
- "@carbon/cli": "^10.32.0",
32
+ "@carbon/cli": "^10.34.0-rc.0",
33
33
  "@carbon/cli-reporter": "^10.5.0",
34
34
  "@carbon/scss-generator": "^10.13.0",
35
35
  "@carbon/test-utils": "^10.21.0",
@@ -42,5 +42,5 @@
42
42
  "sassDir": "scss",
43
43
  "needs": "^1.3.0"
44
44
  },
45
- "gitHead": "ac4b4bf03cf93cb8463916231619fbfdc72f0be5"
45
+ "gitHead": "e41618f5aaa9a10ce93edd844f1a280dc29eaf50"
46
46
  }
@@ -21,8 +21,8 @@
21
21
 
22
22
  @use 'sass:meta';
23
23
  @use "sass:math";
24
- @import 'breakpoint'; /* stylelint-disable-line no-invalid-position-at-import-rule */
25
- @import 'utilities'; /* stylelint-disable-line no-invalid-position-at-import-rule */
24
+ @import 'breakpoint';
25
+ @import 'utilities';
26
26
 
27
27
  /// Get the column width for a given breakpoint
28
28
  /// @param {String} $breakpoint
@@ -14,7 +14,7 @@
14
14
  /// @group @carbon/layout
15
15
  @function map-deep-get($map, $keys...) {
16
16
  @each $key in $keys {
17
- $map: map-get($map, $key);
17
+ $map: map.get($map, $key);
18
18
  }
19
19
  @return $map;
20
20
  }
@@ -26,7 +26,7 @@
26
26
  /// @return {String} Desired value
27
27
  /// @group @carbon/layout
28
28
  @function key-by-index($map, $index) {
29
- $keys: map-keys($map);
29
+ $keys: map.keys($map);
30
30
  @return nth($keys, $index);
31
31
  }
32
32
 
@@ -36,6 +36,6 @@
36
36
  /// @return {*} Desired value
37
37
  /// @group @carbon/layout
38
38
  @function last-map-item($map) {
39
- $total-length: length($map);
39
+ $total-length: list.length($map);
40
40
  @return map-get($map, carbon--key-by-index($map, $total-length));
41
41
  }
@@ -1,232 +0,0 @@
1
- //
2
- // Copyright IBM Corp. 2018, 2018
3
- //
4
- // This source code is licensed under the Apache-2.0 license found in the
5
- // LICENSE file in the root directory of this source tree.
6
- //
7
-
8
- // https://github.com/twbs/bootstrap/blob/v4-dev/scss/mixins/_breakpoints.scss
9
- @use 'sass:list';
10
- @use 'sass:map';
11
- @use 'sass:meta';
12
- @use 'convert';
13
- @use 'utilities';
14
-
15
- /// Carbon gutter size in rem
16
- /// @type Number
17
- /// @access public
18
- /// @group @carbon/layout
19
- $grid-gutter: convert.rem(32px);
20
-
21
- /// Carbon condensed gutter size in rem
22
- /// @type Number
23
- /// @access public
24
- /// @group @carbon/layout
25
- $grid-gutter--condensed: convert.rem(1px);
26
-
27
- // Initial map of our breakpoints and their values
28
- /// @type Map
29
- /// @access public
30
- /// @group @carbon/layout
31
- $grid-breakpoints: (
32
- sm: (
33
- columns: 4,
34
- margin: 0,
35
- width: convert.rem(320px),
36
- ),
37
- md: (
38
- columns: 8,
39
- margin: convert.rem(16px),
40
- width: convert.rem(672px),
41
- ),
42
- lg: (
43
- columns: 16,
44
- margin: convert.rem(16px),
45
- width: convert.rem(1056px),
46
- ),
47
- xlg: (
48
- columns: 16,
49
- margin: convert.rem(16px),
50
- width: convert.rem(1312px),
51
- ),
52
- max: (
53
- columns: 16,
54
- margin: convert.rem(24px),
55
- width: convert.rem(1584px),
56
- ),
57
- ) !default;
58
-
59
- /// Get the value of the next breakpoint, or null for the last breakpoint
60
- /// @param {String} $name - The name of the breakpoint
61
- /// @param {Map} $breakpoints [$grid-breakpoints] - A map of breakpoints where the key is the name of the breakpoint and the value is the values for the breakpoint
62
- /// @param {List} $breakpoint-names [map-keys($breakpoints)] - A list of names from the `$breakpoints` map
63
- /// @return {String}
64
- /// @access public
65
- /// @group @carbon/layout
66
- @function breakpoint-next(
67
- $name,
68
- $breakpoints: $grid-breakpoints,
69
- $breakpoint-names: map.keys($breakpoints)
70
- ) {
71
- $n: list.index($breakpoint-names, $name);
72
- @if $n != null and $n < list.length($breakpoint-names) {
73
- @return list.nth($breakpoint-names, $n + 1);
74
- }
75
- @return null;
76
- }
77
-
78
- /// Get the value of the previous breakpoint, or null for the first breakpoint
79
- /// @param {String} $name - The name of the breakpoint
80
- /// @param {Map} $breakpoints [$grid-breakpoints] - A map of breakpoints where the key is the name of the breakpoint and the value is the values for the breakpoint
81
- /// @param {List} $breakpoint-names [map-keys($breakpoints)] - A list of names from the `$breakpoints` map
82
- /// @return {String}
83
- /// @access public
84
- /// @group @carbon/layout
85
- @function breakpoint-prev(
86
- $name,
87
- $breakpoints: $grid-breakpoints,
88
- $breakpoint-names: map.keys($breakpoints)
89
- ) {
90
- $n: list.index($breakpoint-names, $name);
91
- @if $n != null and $n > 1 {
92
- @return list.nth($breakpoint-names, $n - 1);
93
- }
94
- @return null;
95
- }
96
-
97
- /// Check to see if the given breakpoint name
98
- /// @param {String} $name - The name of the breakpoint
99
- /// @param {Map} $breakpoints [$grid-breakpoints] - A map of breakpoints where the key is the name of the breakpoint and the value is the values for the breakpoint
100
- /// @return {Bool}
101
- /// @access public
102
- /// @group @carbon/layout
103
- @function is-smallest-breakpoint($name, $breakpoints: $grid-breakpoints) {
104
- @return list.index(map.keys($breakpoints), $name) == 1;
105
- }
106
-
107
- /// Returns the largest breakpoint name
108
- /// @param {Map} $breakpoints [$grid-breakpoints] - A map of breakpoints where the key is the name
109
- /// @return {String}
110
- /// @access public
111
- /// @group @carbon/layout
112
- @function largest-breakpoint-name($breakpoints: $grid-breakpoints) {
113
- $total-breakpoints: list.length($breakpoints);
114
- @return key-by-index($breakpoints, $total-breakpoints);
115
- }
116
-
117
- /// Get the infix for a given breakpoint in a list of breakpoints. Useful for generating the size part in a selector, for example: `.prefix--col-sm-2`.
118
- /// @param {String} $name - The name of the breakpoint
119
- /// @return {String}
120
- /// @access public
121
- /// @group @carbon/layout
122
- @function breakpoint-infix($name) {
123
- @return '-#{$name}';
124
- }
125
-
126
- /// Generate a media query from the width of the given breakpoint to infinity
127
- /// @param {String | Number} $name
128
- /// @param {Map} $breakpoints [$grid-breakpoints] - A map of breakpoints where the key is the name
129
- /// @content
130
- /// @access public
131
- /// @group @carbon/layout
132
- @mixin breakpoint-up($name, $breakpoints: $grid-breakpoints) {
133
- @if meta.type-of($name) == 'number' {
134
- @media (min-width: $name) {
135
- @content;
136
- }
137
- } @else if map.has-key($breakpoints, $name) {
138
- $breakpoint: map.get($breakpoints, $name);
139
- $width: map.get($breakpoint, width);
140
- @if is-smallest-breakpoint($name, $breakpoints) {
141
- @content;
142
- } @else {
143
- @media (min-width: $width) {
144
- @content;
145
- }
146
- }
147
- } @else {
148
- @error 'Unable to find a breakpoint with name `#{$name}`. Expected one of: (#{map.keys($breakpoints)})';
149
- }
150
- }
151
-
152
- /// Generate a media query for the maximum width of the given styles
153
- /// @param {String | Number} $name
154
- /// @param {Map} $breakpoints [$grid-breakpoints] - A map of breakpoints where the key is the name
155
- /// @content
156
- /// @access public
157
- /// @group @carbon/layout
158
- @mixin breakpoint-down($name, $breakpoints: $grid-breakpoints) {
159
- @if meta.type-of($name) == 'number' {
160
- @media (max-width: $name) {
161
- @content;
162
- }
163
- } @else if map.has-key($breakpoints, $name) {
164
- // We borrow this logic from bootstrap for specifying the value of the
165
- // max-width. The maximum width is calculated by finding the breakpoint and
166
- // subtracting .02 from its value. This value is used instead of .01 to
167
- // avoid rounding issues in Safari
168
- // https://github.com/twbs/bootstrap/blob/c5b1919deaf5393fcca9e9b9d7ce9c338160d99d/scss/mixins/_breakpoints.scss#L34-L46
169
- $breakpoint: map.get($breakpoints, $name);
170
- $width: map.get($breakpoint, width) - 0.02;
171
- @media (max-width: $width) {
172
- @content;
173
- }
174
- } @else {
175
- @error 'Unable to find a breakpoint with name `#{$name}`. Expected one of: (#{map.keys($breakpoints)})';
176
- }
177
- }
178
-
179
- /// Generate a media query for the range between the lower and upper breakpoints
180
- /// @param {String | Number} $lower
181
- /// @param {String | Number} $upper
182
- /// @param {Map} $breakpoints [$grid-breakpoints] - A map of breakpoints where the key is the name
183
- /// @content
184
- /// @access public
185
- /// @group @carbon/layout
186
- @mixin breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {
187
- $is-number-lower: meta.type-of($lower) == 'number';
188
- $is-number-upper: meta.type-of($upper) == 'number';
189
- $min: if($is-number-lower, $lower, map.get($breakpoints, $lower));
190
- $max: if($is-number-upper, $upper, map.get($breakpoints, $upper));
191
-
192
- @if $min and $max {
193
- $min-width: if(not $is-number-lower and $min, map.get($min, width), $min);
194
- $max-width: if(not $is-number-upper and $max, map.get($max, width), $max);
195
- @media (min-width: $min-width) and (max-width: $max-width) {
196
- @content;
197
- }
198
- } @else if $min != null and $max == null {
199
- @include breakpoint-up($lower) {
200
- @content;
201
- }
202
- } @else if $min == null and $max != null {
203
- @include breakpoint-down($upper) {
204
- @content;
205
- }
206
- } @else {
207
- @error 'Unable to find a breakpoint to satisfy: (#{$lower},#{$upper}). Expected both to be one of (#{map.keys($breakpoints)}).';
208
- }
209
- }
210
-
211
- /// Generate media query for the largest breakpoint
212
- /// @param {Map} $breakpoints [$grid-breakpoints] - A map of breakpoints where the key is the name
213
- /// @content
214
- /// @access public
215
- /// @group @carbon/layout
216
- @mixin largest-breakpoint($breakpoints: $grid-breakpoints) {
217
- @include breakpoint(largest-breakpoint-name()) {
218
- @content;
219
- }
220
- }
221
-
222
- /// Generate a media query for a given breakpoint
223
- /// @param {String | Number} $name
224
- /// @param {Map} $breakpoints [$grid-breakpoints] - A map of breakpoints where the key is the name
225
- /// @content
226
- /// @access public
227
- /// @group @carbon/layout
228
- @mixin breakpoint($name, $breakpoints: $grid-breakpoints) {
229
- @include breakpoint-up($name, $breakpoints) {
230
- @content;
231
- }
232
- }