@primer/css 20.8.0-rc.633d9477 → 20.8.0-rc.6d7cf325

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.
@@ -1,182 +1 @@
1
- // Layout component
2
-
3
- .Layout {
4
- display: grid;
5
-
6
- --Layout-sidebar-width: #{map-get($sidebar-width, 'sm')};
7
- --Layout-gutter: 16px;
8
-
9
- @media (max-width: calc(#{$width-sm} - 0.02px)) {
10
- @include flow-as-row;
11
- }
12
-
13
- &.Layout--flowRow-until-md {
14
- @media (max-width: calc(#{$width-md} - 0.02px)) {
15
- @include flow-as-row;
16
- }
17
- }
18
-
19
- &.Layout--flowRow-until-lg {
20
- @media (max-width: calc(#{$width-lg} - 0.02px)) {
21
- @include flow-as-row;
22
- }
23
- }
24
-
25
- // Flow as column
26
-
27
- grid-auto-flow: column;
28
- grid-template-columns: auto 0 minmax(0, calc(100% - var(--Layout-sidebar-width) - var(--Layout-gutter))); // sidebar column, separator, main column
29
- grid-gap: var(--Layout-gutter);
30
-
31
- .Layout-sidebar {
32
- grid-column: 1;
33
- }
34
-
35
- .Layout-divider {
36
- display: none;
37
- }
38
-
39
- .Layout-main {
40
- grid-column: 2 / span 2;
41
- }
42
-
43
- // Gutter spacing
44
-
45
- @include breakpoint(lg) {
46
- --Layout-gutter: 24px;
47
- }
48
-
49
- &.Layout--gutter-none {
50
- // stylelint-disable-next-line length-zero-no-unit
51
- --Layout-gutter: 0px;
52
- }
53
-
54
- &.Layout--gutter-condensed {
55
- --Layout-gutter: 16px;
56
- }
57
-
58
- &.Layout--gutter-spacious {
59
- @include breakpoint(lg) {
60
- --Layout-gutter: 32px;
61
- }
62
-
63
- @include breakpoint(xl) {
64
- --Layout-gutter: 40px;
65
- }
66
- }
67
-
68
- // Sidebar width
69
-
70
- @each $breakpoint in map-keys($sidebar-width) {
71
- @include breakpoint($breakpoint) {
72
- --Layout-sidebar-width: #{map-get($sidebar-width, $breakpoint)};
73
- }
74
- }
75
-
76
- &.Layout--sidebar-narrow {
77
- @each $breakpoint in map-keys($sidebar-narrow-width) {
78
- @include breakpoint($breakpoint) {
79
- --Layout-sidebar-width: #{map-get($sidebar-narrow-width, $breakpoint)};
80
- }
81
- }
82
- }
83
-
84
- &.Layout--sidebar-wide {
85
- @each $breakpoint in map-keys($sidebar-wide-width) {
86
- @include breakpoint($breakpoint) {
87
- --Layout-sidebar-width: #{map-get($sidebar-wide-width, $breakpoint)};
88
- }
89
- }
90
- }
91
-
92
- // Sidebar position
93
-
94
- &.Layout--sidebarPosition-start {
95
- .Layout-sidebar {
96
- grid-column: 1;
97
- }
98
-
99
- .Layout-main {
100
- grid-column: 2 / span 2;
101
- }
102
- }
103
-
104
- &.Layout--sidebarPosition-end {
105
- grid-template-columns: minmax(0, calc(100% - var(--Layout-sidebar-width) - var(--Layout-gutter))) 0 auto;
106
-
107
- .Layout-main {
108
- grid-column: 1;
109
- }
110
-
111
- .Layout-sidebar {
112
- grid-column: 2 / span 2;
113
- }
114
- }
115
-
116
- // Sidebar divider
117
-
118
- &.Layout--divided {
119
- .Layout-divider {
120
- display: block;
121
- grid-column: 2;
122
- width: 1px;
123
- // stylelint-disable-next-line primer/spacing
124
- margin-right: -1px;
125
- background: var(--color-border-default);
126
- }
127
-
128
- .Layout-main {
129
- grid-column: 3 / span 1;
130
- }
131
-
132
- &.Layout--sidebarPosition-end {
133
- .Layout-sidebar {
134
- grid-column: 3 / span 1;
135
- }
136
-
137
- .Layout-main {
138
- grid-column: 1;
139
- }
140
- }
141
- }
142
- }
143
-
144
- .Layout-divider {
145
- display: none;
146
- width: 1px;
147
- }
148
-
149
- .Layout-sidebar {
150
- width: var(--Layout-sidebar-width);
151
- }
152
-
153
- .Layout-main {
154
- min-width: 0;
155
-
156
- // Centered main column
157
- // FIXME: right-aligned sidebar
158
- .Layout-main-centered-md,
159
- .Layout-main-centered-lg,
160
- .Layout-main-centered-xl {
161
- margin-right: auto;
162
- margin-left: auto;
163
-
164
- > .container-md,
165
- > .container-lg,
166
- > .container-xl {
167
- margin-left: 0;
168
- }
169
- }
170
-
171
- .Layout-main-centered-md {
172
- max-width: calc(#{$container-md} + var(--Layout-sidebar-width) + var(--Layout-gutter));
173
- }
174
-
175
- .Layout-main-centered-lg {
176
- max-width: calc(#{$container-lg} + var(--Layout-sidebar-width) + var(--Layout-gutter));
177
- }
178
-
179
- .Layout-main-centered-xl {
180
- max-width: calc(#{$container-xl} + var(--Layout-sidebar-width) + var(--Layout-gutter));
181
- }
182
- }
1
+ @import '@primer/view-components/app/components/primer/alpha/layout';
@@ -22,6 +22,32 @@ $Layout-responsive-variant-max-breakpoint: 'md' !default;
22
22
  // stylelint-enable length-zero-no-unit
23
23
  }
24
24
 
25
+ // Layout beta mixins
26
+
27
+ // responsive region dividers
28
+
29
+ @mixin Layout-line-divider {
30
+ position: absolute;
31
+ left: calc(var(--Layout-outer-spacing-x) * -1);
32
+ display: block;
33
+ width: calc(100% + (var(--Layout-outer-spacing-x) * 2));
34
+ height: 1px;
35
+ content: '';
36
+ background-color: $Layout-divider-color;
37
+ }
38
+
39
+ @mixin Layout-filled-divider {
40
+ position: absolute;
41
+ bottom: calc(#{$spacer-2} * -1); // -8px
42
+ left: calc(var(--Layout-outer-spacing-x) * -1);
43
+ display: block;
44
+ width: calc(100% + (var(--Layout-outer-spacing-x) * 2));
45
+ height: #{$spacer-2}; // 8px
46
+ content: '';
47
+ background-color: var(--color-canvas-inset);
48
+ box-shadow: inset 0 1px $Layout-divider-color, inset 0 -1px $Layout-divider-color;
49
+ }
50
+
25
51
  .PageLayout {
26
52
  display: block;
27
53
  // stylelint-disable-next-line primer/spacing
@@ -1 +1 @@
1
- @import '@primer/view-components/app/components/primer/menu_component';
1
+ @import '@primer/view-components/app/components/primer/alpha/menu';
@@ -1,485 +1 @@
1
- // stylelint-disable selector-max-compound-selectors, max-nesting-depth, selector-max-specificity, primer/borders
2
- // replace with primitive
3
- $primer-borderRadius-large: 0.75rem;
4
-
5
- .Overlay--hidden {
6
- display: none !important;
7
- }
8
-
9
- .Overlay--visibilityHidden {
10
- height: 0;
11
- overflow: hidden;
12
- visibility: hidden;
13
- opacity: 0;
14
- }
15
-
16
- .Overlay {
17
- display: flex;
18
- width: min(var(--overlay-width), 100vw - 2rem);
19
- min-width: 192px;
20
- max-height: min(calc(100vh - 2rem), var(--overlay-height));
21
- white-space: normal;
22
- flex-direction: column;
23
- background-color: var(--color-canvas-overlay);
24
- border-radius: $primer-borderRadius-large;
25
- box-shadow: var(--color-overlay-shadow);
26
- opacity: 1;
27
-
28
- &.Overlay--size-auto {
29
- min-width: 192px;
30
- max-width: calc(100vw - 2rem);
31
- max-height: calc(100vh - 2rem);
32
- }
33
-
34
- &.Overlay--size-full {
35
- width: 100vw;
36
- height: 100vh;
37
- }
38
-
39
- &.Overlay--size-xsmall {
40
- --overlay-width: 192px;
41
-
42
- max-height: calc(100vh - 2rem);
43
- }
44
-
45
- &.Overlay--size-small {
46
- --overlay-height: 256px;
47
- --overlay-width: 320px;
48
- }
49
-
50
- &.Overlay--size-small-portrait {
51
- --overlay-height: 432px;
52
- --overlay-width: 320px;
53
- }
54
-
55
- &.Overlay--size-medium {
56
- --overlay-height: 320px;
57
- --overlay-width: 480px;
58
- }
59
-
60
- &.Overlay--size-medium-portrait {
61
- --overlay-height: 600px;
62
- --overlay-width: 480px;
63
- }
64
-
65
- &.Overlay--size-large {
66
- --overlay-height: 432px;
67
- --overlay-width: 640px;
68
- }
69
-
70
- &.Overlay--size-xlarge {
71
- --overlay-height: 600px;
72
- --overlay-width: 960px;
73
- }
74
-
75
- &.Overlay--height-auto {
76
- height: auto;
77
- }
78
-
79
- // start deprecate in favor of Alpha::Dialog
80
- &.Overlay--height-xsmall {
81
- height: min(192px, 100vh - 2rem);
82
- }
83
-
84
- &.Overlay--height-small {
85
- height: min(256px, 100vh - 2rem);
86
- }
87
-
88
- &.Overlay--height-medium {
89
- height: min(320px, 100vh - 2rem);
90
- }
91
-
92
- &.Overlay--height-large {
93
- height: min(432px, 100vh - 2rem);
94
- }
95
-
96
- &.Overlay--height-xlarge {
97
- height: min(600px, 100vh - 2rem);
98
- }
99
-
100
- &.Overlay--width-auto {
101
- width: auto;
102
- }
103
-
104
- &.Overlay--width-small {
105
- width: min(256px, 100vw - 2rem);
106
- }
107
-
108
- &.Overlay--width-medium {
109
- width: min(320px, 100vw - 2rem);
110
- }
111
-
112
- &.Overlay--width-large {
113
- // stylelint-disable-next-line primer/responsive-widths
114
- width: min(480px, 100vw - 2rem);
115
- }
116
-
117
- &.Overlay--width-xlarge {
118
- // stylelint-disable-next-line primer/responsive-widths
119
- width: min(640px, 100vw - 2rem);
120
- }
121
-
122
- &.Overlay--width-xxlarge {
123
- // stylelint-disable-next-line primer/responsive-widths
124
- width: min(960px, 100vw - 2rem);
125
- }
126
-
127
- // end deprecate
128
-
129
- &.Overlay--motion-scaleFade {
130
- @media screen and (prefers-reduced-motion: no-preference) {
131
- animation: 200ms cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running Overlay--motion-scaleFade;
132
- }
133
- }
134
-
135
- @keyframes Overlay--motion-scaleFade {
136
- 0% {
137
- opacity: 0;
138
- transform: scale(0.5);
139
- }
140
-
141
- 100% {
142
- opacity: 1;
143
- transform: scale(1);
144
- }
145
- }
146
- }
147
-
148
- // for <form> element that wraps entire contents of overlay
149
- .Overlay-form {
150
- display: flex;
151
- overflow: auto;
152
- flex-direction: column;
153
- flex-grow: 1;
154
- }
155
-
156
- .Overlay-header {
157
- z-index: 1;
158
- display: flex;
159
- flex-direction: column;
160
-
161
- &.Overlay-header--divided {
162
- padding-bottom: $spacer-2;
163
- // stylelint-disable-next-line primer/box-shadow
164
- box-shadow: inset 0 #{-$border-width} var(--color-border-default);
165
-
166
- + .Overlay-body {
167
- padding-top: $spacer-3;
168
- }
169
- }
170
-
171
- &.Overlay-header--large {
172
- .Overlay-headerContentWrap {
173
- .Overlay-titleWrap {
174
- gap: $spacer-2;
175
-
176
- .Overlay-title {
177
- font-size: $h3-size;
178
- }
179
-
180
- .Overlay-description {
181
- font-size: $body-font-size;
182
- }
183
- }
184
- }
185
- }
186
-
187
- .Overlay-headerContentWrap {
188
- display: flex;
189
- align-items: flex-start;
190
- gap: $spacer-2;
191
- padding: $spacer-2 $spacer-2 0 $spacer-2;
192
-
193
- .Overlay-actionWrap {
194
- display: flex;
195
- flex-direction: row;
196
- gap: $spacer-2;
197
- }
198
-
199
- .Overlay-titleWrap {
200
- display: flex;
201
- padding: ($spacer-2 * 0.75) 0 ($spacer-2 * 0.75) $spacer-2;
202
- flex-direction: column;
203
- flex-grow: 1;
204
- gap: $spacer-1;
205
-
206
- .Overlay-title {
207
- margin: 0;
208
- font-size: $body-font-size;
209
- font-weight: $font-weight-bold;
210
- }
211
-
212
- .Overlay-description {
213
- margin: 0;
214
- font-size: $font-size-small;
215
- font-weight: $font-weight-normal;
216
- color: var(--color-fg-muted);
217
- }
218
- }
219
- }
220
- }
221
-
222
- // generic body content slot
223
- .Overlay-body {
224
- padding: $spacer-3;
225
- padding-top: 0;
226
- overflow-y: auto;
227
- scrollbar-width: thin;
228
- font-size: $body-font-size;
229
- flex-grow: 1;
230
-
231
- &.Overlay-body--paddingCondensed {
232
- padding: $spacer-2;
233
- padding-top: 0;
234
- }
235
-
236
- &.Overlay-body--paddingNone {
237
- padding: 0;
238
- }
239
- }
240
-
241
- // generic footer slot
242
- .Overlay-footer {
243
- z-index: 1;
244
- display: flex;
245
- padding: 0 $spacer-3 $spacer-3 $spacer-3;
246
- flex-direction: row;
247
- flex-shrink: 0;
248
- flex-wrap: wrap;
249
-
250
- &.Overlay-footer--divided {
251
- padding-top: $spacer-3;
252
- // stylelint-disable-next-line primer/box-shadow
253
- box-shadow: inset 0 $border-width var(--color-border-default);
254
- }
255
-
256
- &.Overlay-footer--alignStart {
257
- justify-content: flex-start;
258
- gap: $spacer-2;
259
- }
260
-
261
- &.Overlay-footer--alignCenter {
262
- justify-content: center;
263
- gap: $spacer-2;
264
- }
265
-
266
- &.Overlay-footer--alignEnd {
267
- justify-content: flex-end;
268
- gap: $spacer-2;
269
- }
270
- }
271
-
272
- // TODO: replace with refactored IconButton
273
- .Overlay-closeButton {
274
- position: relative;
275
- display: grid;
276
- width: $spacer-5;
277
- height: $spacer-5;
278
- padding: 0;
279
- color: var(--color-fg-muted);
280
- cursor: pointer;
281
- user-select: none;
282
- background-color: transparent;
283
- border: $border-width $border-style transparent;
284
- border-radius: $border-radius;
285
- transition: 0.2s cubic-bezier(0.3, 0, 0.5, 1);
286
- transition-property: color, background-color, border-color;
287
- place-content: center;
288
- align-self: flex-start;
289
- flex-shrink: 0;
290
-
291
- &:hover,
292
- &:focus {
293
- background-color: var(--color-btn-hover-bg);
294
- border: $border-width $border-style var(--color-btn-hover-bg);
295
- }
296
- }
297
-
298
- @mixin Overlay-backdrop() {
299
- position: fixed;
300
- top: 0;
301
- right: 0;
302
- bottom: 0;
303
- left: 0;
304
- z-index: 999;
305
- display: flex;
306
- background-color: var(--color-neutral-muted);
307
- }
308
-
309
- @mixin Overlay-backdrop--transparent() {
310
- position: absolute;
311
- z-index: 999;
312
- background-color: transparent;
313
- }
314
-
315
- // variants must be mixins so we can extend within a media query (@extend is not supported inside media queries)
316
-
317
- // border-radius repeats within placement options to ensure the original radius is reset when two classes co-exist
318
-
319
- // center
320
- @mixin Overlay-backdrop--center {
321
- @include Overlay-backdrop;
322
-
323
- align-items: center;
324
- justify-content: center;
325
- }
326
-
327
- // anchor
328
- @mixin Overlay-backdrop--anchor {
329
- @include Overlay-backdrop--transparent;
330
-
331
- .Overlay {
332
- width: auto;
333
- }
334
- }
335
-
336
- // anchor side(s)
337
- @mixin Overlay-backdrop--side($responsiveVariant: '') {
338
- @include Overlay-backdrop;
339
-
340
- // default left
341
- align-items: center;
342
- justify-content: left;
343
-
344
- &.Overlay-backdrop--placement-left#{$responsiveVariant} {
345
- align-items: center;
346
- justify-content: left;
347
-
348
- > .Overlay#{$responsiveVariant} {
349
- height: 100vh;
350
- max-height: unset;
351
- border-radius: $primer-borderRadius-large;
352
- border-top-left-radius: 0;
353
- border-bottom-left-radius: 0;
354
-
355
- @media screen and (prefers-reduced-motion: no-preference) {
356
- animation: 250ms cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running Overlay--motion-slideInRight;
357
- }
358
- }
359
- }
360
-
361
- &.Overlay-backdrop--placement-right#{$responsiveVariant} {
362
- align-items: center;
363
- justify-content: right;
364
-
365
- > .Overlay#{$responsiveVariant} {
366
- height: 100vh;
367
- max-height: unset;
368
- border-radius: $primer-borderRadius-large;
369
- border-top-right-radius: 0;
370
- border-bottom-right-radius: 0;
371
-
372
- @media screen and (prefers-reduced-motion: no-preference) {
373
- animation: 250ms cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running Overlay--motion-slideInLeft;
374
- }
375
- }
376
- }
377
-
378
- &.Overlay-backdrop--placement-bottom#{$responsiveVariant} {
379
- align-items: end;
380
- justify-content: center;
381
-
382
- > .Overlay#{$responsiveVariant} {
383
- width: 100vw;
384
- height: auto;
385
- max-height: calc(100vh - 2rem);
386
- border-radius: $primer-borderRadius-large;
387
- border-bottom-right-radius: 0;
388
- border-bottom-left-radius: 0;
389
-
390
- @media screen and (prefers-reduced-motion: no-preference) {
391
- animation: 250ms cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running Overlay--motion-slideUp;
392
- }
393
- }
394
- }
395
-
396
- &.Overlay-backdrop--placement-top#{$responsiveVariant} {
397
- align-items: start;
398
- justify-content: center;
399
-
400
- > .Overlay#{$responsiveVariant} {
401
- border-radius: $primer-borderRadius-large;
402
- border-top-left-radius: 0;
403
- border-top-right-radius: 0;
404
-
405
- @media screen and (prefers-reduced-motion: no-preference) {
406
- animation: 250ms cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running Overlay--motion-slideDown;
407
- }
408
- }
409
- }
410
- }
411
-
412
- // full width
413
- @mixin Overlay-backdrop--full {
414
- @include Overlay-backdrop;
415
-
416
- .Overlay {
417
- width: 100%;
418
- max-width: 100vw;
419
- height: 100%;
420
- max-height: 100vh;
421
- border-radius: unset !important;
422
- flex-grow: 1;
423
- }
424
- }
425
-
426
- // Overlay variant classnames
427
- .Overlay-backdrop--center {
428
- @include Overlay-backdrop--center;
429
- }
430
-
431
- .Overlay-backdrop--anchor {
432
- @include Overlay-backdrop--anchor;
433
- }
434
-
435
- .Overlay-backdrop--side {
436
- @include Overlay-backdrop--side;
437
- }
438
-
439
- .Overlay-backdrop--full {
440
- @include Overlay-backdrop--full;
441
- }
442
-
443
- // responsive variants
444
- // up to 767px
445
- @media (max-width: #{map-get($breakpoints, 'md') - 0.02px}) {
446
- .Overlay-backdrop--center-whenNarrow {
447
- @include Overlay-backdrop--center;
448
- }
449
-
450
- .Overlay-backdrop--anchor-whenNarrow {
451
- @include Overlay-backdrop--anchor;
452
- }
453
-
454
- .Overlay-backdrop--side-whenNarrow {
455
- @include Overlay-backdrop--side('-whenNarrow');
456
- }
457
-
458
- .Overlay-backdrop--full-whenNarrow {
459
- @include Overlay-backdrop--full;
460
- }
461
- }
462
-
463
- @keyframes Overlay--motion-slideDown {
464
- from {
465
- transform: translateY(-100%);
466
- }
467
- }
468
-
469
- @keyframes Overlay--motion-slideUp {
470
- from {
471
- transform: translateY(100%);
472
- }
473
- }
474
-
475
- @keyframes Overlay--motion-slideInRight {
476
- from {
477
- transform: translateX(-100%);
478
- }
479
- }
480
-
481
- @keyframes Overlay--motion-slideInLeft {
482
- from {
483
- transform: translateX(100%);
484
- }
485
- }
1
+ @import '@primer/view-components/app/components/primer/alpha/dialog';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primer/css",
3
- "version": "20.8.0-rc.633d9477",
3
+ "version": "20.8.0-rc.6d7cf325",
4
4
  "description": "The CSS implementation of GitHub's Primer Design System",
5
5
  "homepage": "https://primer.style/css",
6
6
  "author": "GitHub, Inc.",
@@ -43,7 +43,7 @@
43
43
  },
44
44
  "dependencies": {
45
45
  "@primer/primitives": "^7.9.0",
46
- "@primer/view-components": "^0.0.112"
46
+ "@primer/view-components": "^0.0.115"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@changesets/changelog-github": "0.4.6",