@primer/css 0.0.0-2021102331850 → 0.0.0-2021102434749

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 (98) hide show
  1. package/CHANGELOG.md +31 -3
  2. package/DEVELOP.md +15 -0
  3. package/base/normalize.scss +1 -1
  4. package/box/box-overlay.scss +40 -0
  5. package/box/index.scss +1 -0
  6. package/color-modes/index.scss +1 -0
  7. package/color-modes/themes/dark.scss +2 -2
  8. package/color-modes/themes/dark_colorblind.scss +2 -2
  9. package/color-modes/themes/dark_dimmed.scss +2 -2
  10. package/color-modes/themes/dark_high_contrast.scss +2 -2
  11. package/color-modes/themes/light.scss +2 -2
  12. package/color-modes/themes/light_colorblind.scss +2 -2
  13. package/color-modes/themes/light_high_contrast.scss +7 -0
  14. package/deprecations.json +4 -0
  15. package/dist/actionlist.css.map +1 -1
  16. package/dist/alerts.css.map +1 -1
  17. package/dist/autocomplete.css.map +1 -1
  18. package/dist/avatars.css.map +1 -1
  19. package/dist/base.css +1 -1
  20. package/dist/base.css.map +1 -1
  21. package/dist/blankslate.css.map +1 -1
  22. package/dist/box.css +1 -1
  23. package/dist/box.css.map +1 -1
  24. package/dist/branch-name.css.map +1 -1
  25. package/dist/breadcrumb.css.map +1 -1
  26. package/dist/buttons.css.map +1 -1
  27. package/dist/color-modes.css +1 -1
  28. package/dist/color-modes.css.map +1 -1
  29. package/dist/core.css +1 -1
  30. package/dist/core.css.map +1 -1
  31. package/dist/deprecations.json +4 -0
  32. package/dist/dropdown.css.map +1 -1
  33. package/dist/forms.css.map +1 -1
  34. package/dist/header.css.map +1 -1
  35. package/dist/labels.css +1 -1
  36. package/dist/labels.css.map +1 -1
  37. package/dist/layout.css +1 -1
  38. package/dist/layout.css.map +1 -1
  39. package/dist/links.css.map +1 -1
  40. package/dist/loaders.css.map +1 -1
  41. package/dist/markdown.css.map +1 -1
  42. package/dist/marketing-buttons.css +1 -1
  43. package/dist/marketing-buttons.css.map +1 -1
  44. package/dist/marketing-type.css.map +1 -1
  45. package/dist/marketing-utilities.css.map +1 -1
  46. package/dist/marketing.css +1 -1
  47. package/dist/marketing.css.map +1 -1
  48. package/dist/meta.json +76 -89
  49. package/dist/navigation.css +1 -1
  50. package/dist/navigation.css.map +1 -1
  51. package/dist/pagination.css.map +1 -1
  52. package/dist/popover.css +1 -1
  53. package/dist/popover.css.map +1 -1
  54. package/dist/primer.css +4 -4
  55. package/dist/primer.css.map +1 -1
  56. package/dist/product.css +1 -1
  57. package/dist/product.css.map +1 -1
  58. package/dist/progress.css.map +1 -1
  59. package/dist/select-menu.css.map +1 -1
  60. package/dist/stats/base.json +1 -1
  61. package/dist/stats/box.json +1 -1
  62. package/dist/stats/color-modes.json +1 -1
  63. package/dist/stats/core.json +1 -1
  64. package/dist/stats/labels.json +1 -1
  65. package/dist/stats/layout.json +1 -1
  66. package/dist/stats/marketing-buttons.json +1 -1
  67. package/dist/stats/marketing.json +1 -1
  68. package/dist/stats/navigation.json +1 -1
  69. package/dist/stats/popover.json +1 -1
  70. package/dist/stats/primer.json +1 -1
  71. package/dist/stats/product.json +1 -1
  72. package/dist/subhead.css.map +1 -1
  73. package/dist/timeline.css.map +1 -1
  74. package/dist/toasts.css.map +1 -1
  75. package/dist/tooltips.css.map +1 -1
  76. package/dist/truncate.css.map +1 -1
  77. package/dist/utilities.css.map +1 -1
  78. package/dist/variables.json +62 -62
  79. package/index.scss +4 -4
  80. package/labels/labels.scss +0 -1
  81. package/layout/index.scss +0 -1
  82. package/marketing/buttons/button.scss +95 -53
  83. package/marketing/buttons/index.scss +2 -2
  84. package/marketing/support/index.scss +2 -3
  85. package/marketing/support/variables.scss +4 -5
  86. package/marketing/type/index.scss +2 -2
  87. package/marketing/type/typography.scss +23 -23
  88. package/marketing/utilities/index.scss +5 -5
  89. package/marketing/utilities/layout.scss +1 -1
  90. package/navigation/underline-nav.scss +56 -28
  91. package/package.json +10 -10
  92. package/popover/popover.scss +42 -4
  93. package/support/mixins/layout.scss +5 -5
  94. package/support/mixins/misc.scss +25 -1
  95. package/support/variables/layout.scss +8 -7
  96. package/support/variables/typography.scss +1 -1
  97. package/layout/layout-beta.scss +0 -497
  98. package/marketing/support/mixins.scss +0 -66
@@ -10,7 +10,7 @@
10
10
  width: 8px;
11
11
  height: 16px;
12
12
  pointer-events: none;
13
- content: " ";
13
+ content: ' ';
14
14
  clip-path: polygon(0 50%, 100% 0, 100% 100%);
15
15
  }
16
16
 
@@ -24,3 +24,27 @@
24
24
  background-color: $border;
25
25
  }
26
26
  }
27
+
28
+ // global focus styles
29
+
30
+ @mixin focusOutline {
31
+ z-index: 1;
32
+ outline: 2px solid var(--color-accent-fg);
33
+ outline-offset: 2px;
34
+ }
35
+
36
+ // if min-width is undefined, return only min-height
37
+ @mixin minTouchTarget($min-height: 32px, $min-width: '') {
38
+ content: '';
39
+ position: absolute;
40
+ width: 100%;
41
+ height: 100%;
42
+ min-height: $min-height;
43
+ top: 50%;
44
+ left: 50%;
45
+ transform: translateX(-50%) translateY(-50%);
46
+
47
+ @if $min-width != '' {
48
+ min-width: $min-width;
49
+ }
50
+ }
@@ -150,11 +150,11 @@ $breakpoints: (
150
150
  // breakpoints and create both responsive and non-responsive classes in one
151
151
  // loop:
152
152
  $responsive-variants: (
153
- "": "",
154
- sm: "-sm",
155
- md: "-md",
156
- lg: "-lg",
157
- xl: "-xl",
153
+ '': '',
154
+ sm: '-sm',
155
+ md: '-md',
156
+ lg: '-lg',
157
+ xl: '-xl',
158
158
  ) !default;
159
159
 
160
160
  // responive utility position values
@@ -178,8 +178,9 @@ $sidebar-narrow-width: (
178
178
  ) !default;
179
179
 
180
180
  $sidebar-wide-width: (
181
+ md: 296px,
181
182
  lg: 320px,
182
- xl: 336px
183
+ xl: 344px
183
184
  ) !default;
184
185
 
185
186
  $gutter: (
@@ -198,4 +199,4 @@ $gutter-spacious: (
198
199
  md: $spacer-4,
199
200
  lg: $spacer-5,
200
201
  xl: $spacer-6
201
- ) !default;
202
+ ) !default;
@@ -32,7 +32,7 @@ $lh-condensed: 1.25 !default;
32
32
  $lh-default: 1.5 !default;
33
33
 
34
34
  // Font stacks
35
- $body-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji" !default;
35
+ $body-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji' !default;
36
36
 
37
37
  // Monospace font stack
38
38
  // Note: SFMono-Regular needs to come before SF Mono to fix an older version of the font in Chrome
@@ -1,497 +0,0 @@
1
- // Component className
2
-
3
- $Layout: "LayoutBeta" !default;
4
- $Layout-divider-color: red !default; // var(--color-border-default)
5
-
6
- // Property modifier names
7
-
8
- $Layout-prop-wrapper-sizing: "wrapper-sizing" !default; // size?
9
-
10
- $Layout-prop-outer-spacing: "outer-spacing" !default; // outer-m?
11
- $Layout-prop-inner-spacing: "inner-spacing" !default; // inner-p?
12
- $Layout-prop-column-gap: "column-gap" !default;
13
- $Layout-prop-row-gap: "row-gap" !default;
14
-
15
- $Layout-prop-pane-divider: "pane-divider" !default;
16
- $Layout-prop-header-divider: "header-divider" !default;
17
- $Layout-prop-footer-divider: "footer-divider" !default;
18
-
19
- $Layout-prop-pane-position: "pane-position" !default; // pane-pos?
20
- $Layout-prop-pane-width: "pane-width" !default; // pane-w?
21
- $Layout-prop-pane-is-sticky: "pane-is-sticky" !default; // pane-sticky?
22
- $Layout-prop-content-width: "content-width" !default; // content-w?
23
-
24
- $Layout-prop-flow-horizontal: "flow-horizontal" !default; // flow-h?
25
- $Layout-prop-responsive-behavior: "responsive" !default; // r?
26
- $Layout-prop-responsive-primary-region: "responsive-primary" !default; // r-primary-region?
27
- $Layout-prop-responsive-pane-position: "responsive-pane-position" !default; // r-pane-pos?
28
- $Layout-prop-responsive-at: "responsive-at" !default; // r-at?
29
-
30
- $Layout-prop-has-header: "has-header" !default;
31
- $Layout-prop-has-footer: "has-footer" !default;
32
-
33
-
34
- .#{$Layout} {
35
- --Layout-pane-width: #{map-get($sidebar-width, 'sm')};
36
- --Layout-content-width: 100%;
37
-
38
- --Layout-template-columns: 1fr var(--Layout-pane-width);
39
- --Layout-template-rows: 1fr;
40
- --Layout-template-areas: "content pane";
41
-
42
- --Layout-column-gap: #{$spacer-3};
43
- --Layout-row-gap: #{$spacer-3};
44
-
45
- --Layout-outer-spacing-x: 0px; // wrapper margin x
46
- --Layout-outer-spacing-y: 0px; // wrapper margin y
47
-
48
- --Layout-inner-spacing-min: 0px; // default region padding
49
- --Layout-inner-spacing-max: 0px; // relaxed content horizontal padding
50
-
51
- // Outer spacing
52
-
53
- margin: var(--Layout-outer-spacing-y) var(--Layout-outer-spacing-x);
54
-
55
- > .#{$Layout}-regions {
56
- display: grid;
57
- column-gap: var(--Layout-column-gap);
58
- row-gap: var(--Layout-row-gap);
59
- grid-template-columns: var(--Layout-template-columns);
60
- grid-template-rows: var(--Layout-template-rows);
61
- grid-template-areas: var(--Layout-template-areas);
62
- }
63
-
64
- &.#{$Layout}--#{$Layout-prop-outer-spacing}-normal {
65
- --Layout-outer-spacing-x: #{$spacer-3}; // 16px
66
- --Layout-outer-spacing-y: #{$spacer-3}; // 16px
67
-
68
- @include breakpoint(lg) {
69
- --Layout-outer-spacing-x: #{$spacer-4}; // 24px
70
- --Layout-outer-spacing-y: #{$spacer-4}; // 24px
71
- }
72
- }
73
-
74
- &.#{$Layout}--#{$Layout-prop-outer-spacing}-condensed {
75
- --Layout-outer-spacing-x: #{$spacer-3}; // 16px
76
- --Layout-outer-spacing-y: #{$spacer-3}; // 16px
77
- }
78
-
79
- // Inner spacing
80
-
81
- &.#{$Layout}--#{$Layout-prop-inner-spacing}-normal {
82
- --Layout-inner-spacing-min: #{$spacer-3}; // 16px
83
- --Layout-inner-spacing-max: #{$spacer-3}; // 16px
84
-
85
- @include breakpoint(lg) {
86
- --Layout-inner-spacing-max: #{$spacer-4}; // 24px
87
- }
88
- }
89
-
90
- &.#{$Layout}--#{$Layout-prop-inner-spacing}-condensed {
91
- --Layout-inner-spacing-min: #{$spacer-3}; // 16px
92
- --Layout-inner-spacing-max: #{$spacer-3}; // 16px
93
- }
94
-
95
- // Column gap
96
-
97
- &.#{$Layout}--#{$Layout-prop-column-gap}-normal {
98
- --Layout-column-gap: #{$spacer-3}; // 16px
99
-
100
- @include breakpoint(lg) {
101
- --Layout-column-gap: #{$spacer-4}; // 24px
102
- }
103
- }
104
-
105
- &.#{$Layout}--#{$Layout-prop-column-gap}-condensed {
106
- --Layout-column-gap: #{$spacer-3}; // 16px
107
- }
108
-
109
- &.#{$Layout}--#{$Layout-prop-column-gap}-none {
110
- // A `px` unit is needed in here to define it as a length type
111
- // See https://stackoverflow.com/a/32518348
112
- --Layout-column-gap: 0px;
113
- }
114
-
115
- // Row gap
116
-
117
- &.#{$Layout}--#{$Layout-prop-row-gap}-normal {
118
- --Layout-row-gap: #{$spacer-3}; // 16px
119
-
120
- @include breakpoint(lg) {
121
- --Layout-row-gap: #{$spacer-4}; // 24px
122
- }
123
- }
124
-
125
- &.#{$Layout}--#{$Layout-prop-row-gap}-none {
126
- // A `px` unit is needed in here to define it as a length type
127
- // See https://stackoverflow.com/a/32518348
128
- --Layout-row-gap: 0px;
129
- }
130
-
131
- &.#{$Layout}--#{$Layout-prop-row-gap}-condensed {
132
- --Layout-row-gap: #{$spacer-3}; // 16px
133
- }
134
-
135
- // `flow-horizontal` determines whether `Layout` can render desktop-friendly
136
- // two-column layouts. It should appear by default for compatibility
137
- // with desktop browsers that have JavaScript disabled.
138
-
139
- // Use `responsive-behaviorAt` to determine in which breakpoint `Layout` will
140
- // stop flowing horizontally. In these cases `flow-horizontal` class will be
141
- // removed.
142
-
143
- // The reason this is not a media query is because it's still not possible to
144
- // use CSS variables to determine the breakpoint dinamically. (And the other
145
- // option would be to duplicate too much code.)
146
-
147
- &.#{$Layout}--#{$Layout-prop-flow-horizontal} {
148
-
149
- // Region position
150
-
151
- &.#{$Layout}--#{$Layout-prop-pane-position}-start {
152
- --Layout-template-columns: var(--Layout-pane-width) 1fr;
153
- --Layout-template-areas: "pane content";
154
-
155
- &.#{$Layout}--#{$Layout-prop-has-header} {
156
- --Layout-template-areas: "header header" "pane content";
157
- }
158
-
159
- &.#{$Layout}--#{$Layout-prop-has-footer} {
160
- --Layout-template-areas: "pane content" "footer footer";
161
- }
162
-
163
- &.#{$Layout}--#{$Layout-prop-has-header}.#{$Layout}--#{$Layout-prop-has-footer} {
164
- --Layout-template-areas: "header header" "pane content" "footer footer";
165
- }
166
- }
167
-
168
- &.#{$Layout}--#{$Layout-prop-pane-position}-end {
169
- --Layout-template-columns: 1fr var(--Layout-pane-width);
170
- --Layout-template-areas: "content pane";
171
-
172
- &.#{$Layout}--#{$Layout-prop-has-header} {
173
- --Layout-template-areas: "header header" "content pane";
174
- }
175
-
176
- &.#{$Layout}--#{$Layout-prop-has-footer} {
177
- --Layout-template-areas: "content pane" "footer footer";
178
- }
179
-
180
- &.#{$Layout}--#{$Layout-prop-has-header}.#{$Layout}--#{$Layout-prop-has-footer} {
181
- --Layout-template-areas: "header header" "content pane" "footer footer";
182
- }
183
- }
184
-
185
- // Template rows heights
186
-
187
- &.#{$Layout}--#{$Layout-prop-has-header} {
188
- --Layout-template-rows: min-content 1fr;
189
- }
190
-
191
- &.#{$Layout}--#{$Layout-prop-has-footer} {
192
- --Layout-template-rows: 1fr min-content;
193
- }
194
-
195
- &.#{$Layout}--#{$Layout-prop-has-header}.#{$Layout}--#{$Layout-prop-has-footer} {
196
- --Layout-template-rows: min-content 1fr min-content;
197
- }
198
-
199
- // Pane divider
200
-
201
- &.#{$Layout}--#{$Layout-prop-pane-divider} {
202
- &.#{$Layout}--#{$Layout-prop-pane-position}-start {
203
- .#{$Layout}-pane {
204
- border-right: 1px solid $Layout-divider-color;
205
- }
206
-
207
- &:not(.#{$Layout}--#{$Layout-prop-column-gap}-none) {
208
- .#{$Layout}-pane {
209
- margin-right: calc(var(--Layout-column-gap) * -1);
210
- padding-right: calc(var(--Layout-column-gap) - 1px);
211
- }
212
- .#{$Layout}-content {
213
- margin-left: var(--Layout-column-gap);
214
- }
215
- }
216
- }
217
-
218
- &.#{$Layout}--#{$Layout-prop-pane-position}-end {
219
- .#{$Layout}-pane {
220
- border-left: 1px solid $Layout-divider-color;
221
- }
222
-
223
- &:not(.#{$Layout}--#{$Layout-prop-column-gap}-none) {
224
- .#{$Layout}-pane {
225
- margin-left: calc(var(--Layout-column-gap) * -1);
226
- padding-left: calc(var(--Layout-column-gap) - 1px);
227
- }
228
- .#{$Layout}-content {
229
- margin-right: var(--Layout-column-gap);
230
- }
231
- }
232
- }
233
- }
234
-
235
- // Header divider
236
-
237
- &.#{$Layout}--#{$Layout-prop-header-divider} {
238
- .#{$Layout}-header {
239
- border-bottom: 1px solid $Layout-divider-color;
240
- }
241
- }
242
-
243
- // Footer divider
244
-
245
- &.#{$Layout}--#{$Layout-prop-footer-divider} {
246
- .#{$Layout}-footer {
247
- border-top: 1px solid $Layout-divider-color;
248
- }
249
- }
250
-
251
- // Content width
252
-
253
- [class^="#{$Layout}-content-centered-"] {
254
- margin-left: auto;
255
- margin-right: auto;
256
- max-width: calc(var(--Layout-content-width) + var(--Layout-pane-width) + var(--Layout-column-gap));
257
-
258
- > [class^="container-"] {
259
- margin-left: 0;
260
- }
261
- }
262
-
263
- &.#{$Layout}--#{$Layout-prop-pane-divider} {
264
- [class^="#{$Layout}-content-centered-"] {
265
- max-width: calc(var(--Layout-content-width) + var(--Layout-pane-width) + (var(--Layout-column-gap) * 2));
266
- }
267
- }
268
-
269
- .#{$Layout}-content-centered-sm {
270
- --Layout-content-width: #{$container-sm};
271
- }
272
-
273
- .#{$Layout}-content-centered-md {
274
- --Layout-content-width: #{$container-md};
275
- }
276
-
277
- .#{$Layout}-content-centered-lg {
278
- --Layout-content-width: #{$container-lg};
279
- }
280
-
281
- .#{$Layout}-content-centered-xl {
282
- --Layout-content-width: #{$container-xl};
283
- }
284
-
285
- // Sticky pane
286
- // FIXME - this is currently broken if footer is present
287
-
288
- &.#{$Layout}--#{$Layout-prop-pane-is-sticky} {
289
- .#{$Layout}-pane {
290
- position: sticky;
291
- max-height: 100vh;
292
- overflow: auto;
293
- }
294
- }
295
-
296
- }
297
-
298
- // pane-width
299
-
300
- @each $breakpoint in map-keys($sidebar-width) {
301
- @include breakpoint($breakpoint) {
302
- --Layout-pane-width: #{map-get($sidebar-width, $breakpoint)};
303
- }
304
- }
305
-
306
- &.#{$Layout}--#{$Layout-prop-pane-width}-narrow {
307
- @each $breakpoint in map-keys($sidebar-narrow-width) {
308
- @include breakpoint($breakpoint) {
309
- --Layout-pane-width: #{map-get($sidebar-narrow-width, $breakpoint)};
310
- }
311
- }
312
- }
313
-
314
- &.#{$Layout}--#{$Layout-prop-pane-width}-wide {
315
- @each $breakpoint in map-keys($sidebar-wide-width) {
316
- @include breakpoint($breakpoint) {
317
- --Layout-pane-width: #{map-get($sidebar-wide-width, $breakpoint)};
318
- }
319
- }
320
- }
321
-
322
- // Responsive behavior
323
-
324
- // -- Flow horizontal
325
-
326
- &.#{$Layout}--#{$Layout-prop-responsive-behavior}-flowVertical:not(.#{$Layout}--#{$Layout-prop-flow-horizontal}) {
327
-
328
- // Region position
329
-
330
- > .#{$Layout}-regions {
331
- display: grid;
332
- grid-template-columns: 1fr;
333
- grid-template-areas: var(--Layout-template-areas);
334
- }
335
-
336
- // responsive-pane-position: end (default)
337
-
338
- &:not(.#{$Layout}--#{$Layout-prop-responsive-pane-position}-start) {
339
- --Layout-template-areas: "content" "pane";
340
-
341
- &.#{$Layout}--#{$Layout-prop-has-header} {
342
- --Layout-template-areas: "header" "content" "pane";
343
- }
344
-
345
- &.#{$Layout}--#{$Layout-prop-has-footer} {
346
- --Layout-template-areas: "content" "pane" "footer";
347
- }
348
-
349
- &.#{$Layout}--#{$Layout-prop-has-header}.#{$Layout}--#{$Layout-prop-has-footer} {
350
- --Layout-template-areas: "header" "content" "pane" "footer";
351
- }
352
- }
353
-
354
- // responsive-pane-position: start
355
-
356
- &.#{$Layout}--#{$Layout-prop-responsive-pane-position}-start {
357
- --Layout-template-areas: "pane" "content";
358
-
359
- &.#{$Layout}--#{$Layout-prop-has-header} {
360
- --Layout-template-areas: "header" "pane" "content";
361
- }
362
-
363
- &.#{$Layout}--#{$Layout-prop-has-footer} {
364
- --Layout-template-areas: "pane" "content" "footer";
365
- }
366
-
367
- &.#{$Layout}--#{$Layout-prop-has-header}.#{$Layout}--#{$Layout-prop-has-footer} {
368
- --Layout-template-areas: "header" "pane" "content" "footer";
369
- }
370
- }
371
- }
372
-
373
- // -- Split as pages
374
-
375
- &.#{$Layout}--#{$Layout-prop-responsive-behavior}-splitAsPages:not(.#{$Layout}--#{$Layout-prop-flow-horizontal}) {
376
-
377
- // Region position
378
-
379
- > .#{$Layout}-regions {
380
- display: grid;
381
- grid-template-columns: 1fr;
382
- grid-template-areas: var(--Layout-template-areas);
383
- }
384
-
385
- &.#{$Layout}--#{$Layout-prop-responsive-primary-region}-content {
386
-
387
- --Layout-template-areas: "content";
388
-
389
- .#{$Layout}-pane {
390
- display: none;
391
- }
392
-
393
- &.#{$Layout}--#{$Layout-prop-has-header} {
394
- --Layout-template-areas: "header" "content";
395
- }
396
-
397
- &.#{$Layout}--#{$Layout-prop-has-footer} {
398
- --Layout-template-areas: "content" "footer";
399
- }
400
-
401
- &.#{$Layout}--#{$Layout-prop-has-header}.#{$Layout}--#{$Layout-prop-has-footer} {
402
- --Layout-template-areas: "header" "content" "footer";
403
- }
404
- }
405
-
406
- &.#{$Layout}--#{$Layout-prop-responsive-primary-region}-pane {
407
-
408
- --Layout-template-areas: "pane";
409
-
410
- .#{$Layout}-content {
411
- display: none;
412
- }
413
-
414
- &.#{$Layout}--#{$Layout-prop-has-header} {
415
- --Layout-template-areas: "header" "pane";
416
- }
417
-
418
- &.#{$Layout}--#{$Layout-prop-has-footer} {
419
- --Layout-template-areas: "content" "pane";
420
- }
421
-
422
- &.#{$Layout}--#{$Layout-prop-has-header}.#{$Layout}--#{$Layout-prop-has-footer} {
423
- --Layout-template-areas: "header" "pane" "footer";
424
- }
425
- }
426
- }
427
-
428
- // Responsive divider
429
-
430
- &.#{$Layout}:not(.#{$Layout}--#{$Layout-prop-flow-horizontal}) {
431
- .#{$Layout}-region--line-divider {
432
- position: relative;
433
- padding-bottom: max(var(--Layout-row-gap), var(--Layout-inner-spacing-min));
434
- border-bottom: 1px solid transparent;
435
-
436
- &:after {
437
- content: "";
438
- display: block;
439
- position: absolute;
440
- background-color: var(--color-canvas-inset);
441
- background-color: red;
442
- width: calc(100% + (var(--Layout-outer-spacing-x) * 2));
443
- height: 1px;
444
- left: calc(var(--Layout-outer-spacing-x) * -1);
445
- bottom: -1px;
446
- }
447
- }
448
-
449
- .#{$Layout}-region--shallow-divider {
450
- position: relative;
451
- padding-bottom: max(var(--Layout-row-gap), var(--Layout-inner-spacing-min));
452
- margin-bottom: #{$spacer-2}; // 8px
453
-
454
- &:after {
455
- content: "";
456
- display: block;
457
- position: absolute;
458
- left: calc(var(--Layout-outer-spacing-x) * -1);
459
- bottom: calc(#{$spacer-2} * -1); // -8px
460
- width: calc(100% + (var(--Layout-outer-spacing-x) * 2));
461
- height: #{$spacer-2}; // 8px
462
- background-color: var(--color-canvas-inset);
463
- box-shadow: inset 0 1px $Layout-divider-color, inset 0 -1px $Layout-divider-color;
464
- }
465
- }
466
- }
467
-
468
-
469
- // Regions
470
-
471
- .#{$Layout}-header, .#{$Layout}-content, .#{$Layout}-pane, .#{$Layout}-footer {
472
- padding: var(--Layout-inner-spacing-min);
473
- }
474
-
475
- .#{$Layout}-header {
476
- grid-area: header;
477
- background: lightpink;
478
- }
479
-
480
- .#{$Layout}-content {
481
- padding-left: var(--Layout-inner-spacing-max);
482
- padding-right: var(--Layout-inner-spacing-max);
483
- grid-area: content;
484
- background: rgb(255, 197, 253);
485
- }
486
-
487
- .#{$Layout}-pane {
488
- grid-area: pane;
489
- background: rgb(215, 255, 233);
490
- }
491
-
492
- .#{$Layout}-footer {
493
- grid-area: footer;
494
- background: lightyellow;
495
- }
496
-
497
- }
@@ -1,66 +0,0 @@
1
- @mixin btn-solid-mktg($color, $bg, $bg2, $bg3, $bg4) {
2
- color: $color;
3
- background-color: $bg2;
4
- background-image: linear-gradient(-180deg, $bg 0%, $bg2 100%);
5
-
6
- &::before {
7
- background-image: linear-gradient(-180deg, $bg3 0%, $bg4 100%);
8
- }
9
-
10
- &:hover,
11
- &.hover,
12
- &:active,
13
- &.selected,
14
- &[aria-selected=true],
15
- [open] > & {
16
- background-color: $bg2;
17
- background-image: linear-gradient(-180deg, $bg 0%, $bg2 100%);
18
- }
19
-
20
- &:focus,
21
- &.focus {
22
- outline: 0;
23
- box-shadow: 0 0 0 0.2em rgba($bg2, 0.4);
24
- }
25
-
26
- &:disabled,
27
- &.disabled,
28
- &[aria-disabled=true] {
29
- pointer-events: none;
30
- cursor: default;
31
- opacity: 0.5;
32
- }
33
- }
34
-
35
- @mixin btn-outline-mktg($color, $color2, $border, $borderHover, $borderFocus, $borderFocusInset) {
36
- color: $color;
37
- background: none;
38
- box-shadow: 0 0 0 1px $border inset;
39
-
40
- &::before {
41
- display: none;
42
- }
43
-
44
- &:hover,
45
- &.hover,
46
- &:active,
47
- &.selected,
48
- &[aria-selected=true],
49
- [open] > & {
50
- color: $color2;
51
- background: none;
52
- box-shadow: 0 0 0 2px $borderHover inset;
53
- }
54
-
55
- &:focus,
56
- &.focus {
57
- outline: 0;
58
- box-shadow: 0 0 0 2px $borderFocus inset, 0 0 0 4px $borderFocusInset;
59
- }
60
-
61
- &:disabled,
62
- &.disabled,
63
- &[aria-disabled=true] {
64
- opacity: 0.5;
65
- }
66
- }