@primer/css 0.0.0-202111820121 → 0.0.0-2021118211841

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 (119) hide show
  1. package/CHANGELOG.md +3 -55
  2. package/DEVELOP.md +0 -15
  3. package/actionlist/action-list-item.scss +18 -50
  4. package/actionlist/action-list.scss +0 -5
  5. package/base/normalize.scss +1 -1
  6. package/box/index.scss +0 -1
  7. package/buttons/misc.scss +3 -7
  8. package/color-modes/index.scss +0 -1
  9. package/color-modes/themes/dark.scss +2 -2
  10. package/color-modes/themes/dark_colorblind.scss +2 -2
  11. package/color-modes/themes/dark_dimmed.scss +2 -2
  12. package/color-modes/themes/dark_high_contrast.scss +2 -2
  13. package/color-modes/themes/light.scss +2 -2
  14. package/color-modes/themes/light_colorblind.scss +2 -2
  15. package/deprecations.json +0 -4
  16. package/dist/actionlist.css +1 -1
  17. package/dist/actionlist.css.map +1 -1
  18. package/dist/alerts.css.map +1 -1
  19. package/dist/autocomplete.css.map +1 -1
  20. package/dist/avatars.css.map +1 -1
  21. package/dist/base.css +1 -1
  22. package/dist/base.css.map +1 -1
  23. package/dist/blankslate.css.map +1 -1
  24. package/dist/box.css +1 -1
  25. package/dist/box.css.map +1 -1
  26. package/dist/branch-name.css.map +1 -1
  27. package/dist/breadcrumb.css.map +1 -1
  28. package/dist/buttons.css +1 -1
  29. package/dist/buttons.css.map +1 -1
  30. package/dist/color-modes.css +1 -1
  31. package/dist/color-modes.css.map +1 -1
  32. package/dist/core.css +1 -1
  33. package/dist/core.css.map +1 -1
  34. package/dist/deprecations.json +0 -4
  35. package/dist/dropdown.css.map +1 -1
  36. package/dist/forms.css.map +1 -1
  37. package/dist/header.css.map +1 -1
  38. package/dist/labels.css +1 -1
  39. package/dist/labels.css.map +1 -1
  40. package/dist/layout.css +1 -1
  41. package/dist/layout.css.map +1 -1
  42. package/dist/links.css.map +1 -1
  43. package/dist/loaders.css.map +1 -1
  44. package/dist/markdown.css.map +1 -1
  45. package/dist/marketing-buttons.css +1 -1
  46. package/dist/marketing-buttons.css.map +1 -1
  47. package/dist/marketing-type.css +1 -1
  48. package/dist/marketing-type.css.map +1 -1
  49. package/dist/marketing-utilities.css +1 -1
  50. package/dist/marketing-utilities.css.map +1 -1
  51. package/dist/marketing.css +1 -1
  52. package/dist/marketing.css.map +1 -1
  53. package/dist/meta.json +91 -89
  54. package/dist/navigation.css +1 -1
  55. package/dist/navigation.css.map +1 -1
  56. package/dist/pagination.css.map +1 -1
  57. package/dist/popover.css +1 -1
  58. package/dist/popover.css.map +1 -1
  59. package/dist/primer.css +4 -4
  60. package/dist/primer.css.map +1 -1
  61. package/dist/product.css +1 -1
  62. package/dist/product.css.map +1 -1
  63. package/dist/progress.css.map +1 -1
  64. package/dist/select-menu.css.map +1 -1
  65. package/dist/stats/actionlist.json +1 -1
  66. package/dist/stats/base.json +1 -1
  67. package/dist/stats/box.json +1 -1
  68. package/dist/stats/buttons.json +1 -1
  69. package/dist/stats/color-modes.json +1 -1
  70. package/dist/stats/core.json +1 -1
  71. package/dist/stats/labels.json +1 -1
  72. package/dist/stats/layout.json +1 -1
  73. package/dist/stats/marketing-buttons.json +1 -1
  74. package/dist/stats/marketing-type.json +1 -1
  75. package/dist/stats/marketing-utilities.json +1 -1
  76. package/dist/stats/marketing.json +1 -1
  77. package/dist/stats/navigation.json +1 -1
  78. package/dist/stats/popover.json +1 -1
  79. package/dist/stats/primer.json +1 -1
  80. package/dist/stats/product.json +1 -1
  81. package/dist/subhead.css.map +1 -1
  82. package/dist/timeline.css.map +1 -1
  83. package/dist/toasts.css.map +1 -1
  84. package/dist/tooltips.css.map +1 -1
  85. package/dist/truncate.css.map +1 -1
  86. package/dist/utilities.css.map +1 -1
  87. package/dist/variables.json +62 -62
  88. package/index.scss +4 -4
  89. package/labels/counters.scss +1 -1
  90. package/labels/labels.scss +1 -0
  91. package/layout/index.scss +1 -0
  92. package/layout/mixins.scss +27 -1
  93. package/layout/page-layout.scss +370 -0
  94. package/marketing/buttons/button.scss +52 -102
  95. package/marketing/buttons/index.scss +2 -2
  96. package/marketing/index.scss +0 -1
  97. package/marketing/support/index.scss +3 -2
  98. package/marketing/support/mixins.scss +66 -0
  99. package/marketing/support/variables.scss +5 -4
  100. package/marketing/type/index.scss +2 -2
  101. package/marketing/type/typography.scss +49 -23
  102. package/marketing/utilities/animations.scss +0 -42
  103. package/marketing/utilities/index.scss +5 -5
  104. package/marketing/utilities/layout.scss +1 -1
  105. package/navigation/underline-nav.scss +31 -76
  106. package/package.json +14 -14
  107. package/popover/popover.scss +4 -42
  108. package/support/mixins/layout.scss +5 -5
  109. package/support/mixins/misc.scss +1 -25
  110. package/support/variables/layout.scss +7 -8
  111. package/support/variables/typography.scss +1 -1
  112. package/box/box-overlay.scss +0 -40
  113. package/color-modes/themes/light_high_contrast.scss +0 -7
  114. package/dist/marketing-links.css +0 -2
  115. package/dist/marketing-links.css.map +0 -1
  116. package/dist/marketing-links.js +0 -1
  117. package/dist/stats/marketing-links.json +0 -1
  118. package/marketing/links/index.scss +0 -3
  119. package/marketing/links/link.scss +0 -50
@@ -11,7 +11,7 @@
11
11
  color: var(--color-fg-default);
12
12
  text-align: center;
13
13
  background-color: var(--color-neutral-muted);
14
- border: $border-width $border-style var(--color-counter-border);
14
+ border: $border-width $border-style transparent; // Support Firefox custom colors
15
15
  // stylelint-disable-next-line primer/borders
16
16
  border-radius: 2em;
17
17
 
@@ -10,6 +10,7 @@
10
10
  .label, // TODO: Deprecte
11
11
  .Label {
12
12
  @include labels-base;
13
+ background-color: transparent !important; // TODO: Remove again
13
14
  border-color: var(--color-border-default);
14
15
 
15
16
  &:hover {
package/layout/index.scss CHANGED
@@ -5,3 +5,4 @@
5
5
  @import './grid.scss';
6
6
  @import './grid-offset.scss';
7
7
  @import './layout.scss';
8
+ @import './page-layout.scss';
@@ -1,4 +1,4 @@
1
- // Layout mixins
1
+ // Layout alpha mixins
2
2
 
3
3
  @mixin flow-as-row {
4
4
  grid-auto-flow: row;
@@ -77,3 +77,29 @@
77
77
  }
78
78
  }
79
79
  }
80
+
81
+ // Layout beta mixins
82
+
83
+ // responsive region dividers
84
+
85
+ @mixin Layout-line-divider {
86
+ content: "";
87
+ display: block;
88
+ position: absolute;
89
+ background-color: $Layout-divider-color;
90
+ width: calc(100% + (var(--Layout-outer-spacing-x) * 2));
91
+ height: 1px;
92
+ left: calc(var(--Layout-outer-spacing-x) * -1);
93
+ }
94
+
95
+ @mixin Layout-filled-divider {
96
+ content: "";
97
+ display: block;
98
+ position: absolute;
99
+ left: calc(var(--Layout-outer-spacing-x) * -1);
100
+ bottom: calc(#{$spacer-2} * -1); // -8px
101
+ width: calc(100% + (var(--Layout-outer-spacing-x) * 2));
102
+ height: #{$spacer-2}; // 8px
103
+ background-color: var(--color-canvas-inset);
104
+ box-shadow: inset 0 1px $Layout-divider-color, inset 0 -1px $Layout-divider-color;
105
+ }
@@ -0,0 +1,370 @@
1
+ // component id
2
+
3
+ $Layout-divider-color: red !default; // var(--color-border-default)
4
+ $Layout-responsive-variant-max-breakpoint: 'md' !default;
5
+
6
+ :root {
7
+ --Layout-pane-width: #{map-get($sidebar-width, 'sm')};
8
+ --Layout-content-width: 100%;
9
+ // stylelint-disable-next-line primer/no-undefined-vars
10
+ --Layout-template-columns: 1fr var(--Layout-pane-width);
11
+ --Layout-template-areas: 'content pane';
12
+ --Layout-column-gap: #{$spacer-3};
13
+ --Layout-row-gap: #{$spacer-3};
14
+
15
+ // the `px` unit is mandatory for `calc()` execution. See https://stackoverflow.com/a/32518348
16
+ // stylelint-disable length-zero-no-unit
17
+ --Layout-outer-spacing-x: 0px; // wrapper margin x
18
+ --Layout-outer-spacing-y: 0px; // wrapper margin y
19
+
20
+ --Layout-inner-spacing-min: 0px; // default region padding
21
+ --Layout-inner-spacing-max: 0px; // relaxed content horizontal padding
22
+ // stylelint-enable length-zero-no-unit
23
+ }
24
+
25
+ .PageLayout {
26
+ // stylelint-disable-next-line primer/spacing
27
+ margin: var(--Layout-outer-spacing-y) var(--Layout-outer-spacing-x);
28
+
29
+ > .PageLayout-wrapper {
30
+ display: grid;
31
+ grid: auto-flow / 1fr;
32
+ row-gap: var(--Layout-row-gap);
33
+
34
+ > .PageLayout-columns {
35
+ display: grid;
36
+ column-gap: var(--Layout-column-gap);
37
+ row-gap: var(--Layout-row-gap);
38
+ grid-template-columns: var(--Layout-template-columns);
39
+ grid-template-rows: 1fr;
40
+ grid-template-areas: var(--Layout-template-areas);
41
+ }
42
+ }
43
+
44
+ // outer spacing
45
+
46
+ &.PageLayout--outerSpacing-normal {
47
+ --Layout-outer-spacing-x: #{$spacer-3}; // 16px
48
+ --Layout-outer-spacing-y: #{$spacer-3}; // 16px
49
+
50
+ @include breakpoint(lg) {
51
+ --Layout-outer-spacing-x: #{$spacer-4}; // 24px
52
+ --Layout-outer-spacing-y: #{$spacer-4}; // 24px
53
+ }
54
+ }
55
+
56
+ &.PageLayout--outerSpacing-condensed {
57
+ --Layout-outer-spacing-x: #{$spacer-3}; // 16px
58
+ --Layout-outer-spacing-y: #{$spacer-3}; // 16px
59
+ }
60
+
61
+ // inner spacing
62
+
63
+ &.PageLayout--innerSpacing-normal {
64
+ --Layout-inner-spacing-min: #{$spacer-3}; // 16px
65
+ --Layout-inner-spacing-max: #{$spacer-3}; // 16px
66
+
67
+ @include breakpoint(lg) {
68
+ --Layout-inner-spacing-max: #{$spacer-4}; // 24px
69
+ }
70
+ }
71
+
72
+ &.PageLayout--innerSpacing-condensed {
73
+ --Layout-inner-spacing-min: #{$spacer-3}; // 16px
74
+ --Layout-inner-spacing-max: #{$spacer-3}; // 16px
75
+ }
76
+
77
+ // column gap
78
+
79
+ &.PageLayout--columnGap-normal {
80
+ --Layout-column-gap: #{$spacer-3}; // 16px
81
+
82
+ @include breakpoint(lg) {
83
+ --Layout-column-gap: #{$spacer-4}; // 24px
84
+ }
85
+ }
86
+
87
+ &.PageLayout--columnGap-condensed {
88
+ --Layout-column-gap: #{$spacer-3}; // 16px
89
+ }
90
+
91
+ &.PageLayout--columnGap-none {
92
+ // the `px` unit is mandatory for `calc()` execution. See https://stackoverflow.com/a/32518348
93
+ // stylelint-disable-next-line length-zero-no-unit
94
+ --Layout-column-gap: 0px;
95
+ }
96
+
97
+ // row gap
98
+
99
+ &.PageLayout--rowGap-normal {
100
+ --Layout-row-gap: #{$spacer-3}; // 16px
101
+
102
+ @include breakpoint(lg) {
103
+ --Layout-row-gap: #{$spacer-4}; // 24px
104
+ }
105
+ }
106
+
107
+ &.PageLayout--rowGap-none {
108
+ // the `px` unit is mandatory for `calc()` execution. See https://stackoverflow.com/a/32518348
109
+ // stylelint-disable length-zero-no-unit
110
+ --Layout-row-gap: 0px;
111
+ }
112
+
113
+ &.PageLayout--rowGap-condensed {
114
+ --Layout-row-gap: #{$spacer-3}; // 16px
115
+ }
116
+
117
+ // regions
118
+
119
+ .PageLayout-header,
120
+ .PageLayout-content,
121
+ .PageLayout-pane,
122
+ .PageLayout-footer {
123
+ // stylelint-disable-next-line primer/spacing
124
+ padding: var(--Layout-inner-spacing-min);
125
+ }
126
+
127
+ .PageLayout-header {
128
+ background: lightpink;
129
+ }
130
+
131
+ .PageLayout-content {
132
+ // stylelint-disable primer/spacing
133
+ padding-left: var(--Layout-inner-spacing-max);
134
+ padding-right: var(--Layout-inner-spacing-max);
135
+ // stylelint-enable primer/spacing
136
+ grid-area: content;
137
+ background: rgb(255, 197, 253);
138
+ }
139
+
140
+ .PageLayout-pane {
141
+ grid-area: pane;
142
+ background: rgb(215, 255, 233);
143
+ }
144
+
145
+ .PageLayout-footer {
146
+ background: lightyellow;
147
+ }
148
+
149
+ // multi-column desktop-friendly layout
150
+
151
+ @include breakpoint($Layout-responsive-variant-max-breakpoint) {
152
+
153
+ // Set a `content` region width, to work with loading states when
154
+ // `pane` is not yet loaded. See https://github.com/primer/css/pull/1818
155
+ $Layout-content-full-width: minmax(0, calc(100% - var(--Layout-pane-width) - var(--Layout-column-gap)));
156
+
157
+ &.PageLayout--panePos-start {
158
+ --Layout-template-columns: var(--Layout-pane-width) #{$Layout-content-full-width};
159
+ --Layout-template-areas: 'pane content';
160
+ }
161
+
162
+ &.PageLayout--panePos-end {
163
+ --Layout-template-columns: #{$Layout-content-full-width} var(--Layout-pane-width);
164
+ --Layout-template-areas: 'content pane';
165
+ }
166
+
167
+ // header divider
168
+
169
+ &.PageLayout--hasHeaderDivider {
170
+ .PageLayout-header {
171
+ padding-bottom: max(var(--Layout-row-gap), var(--Layout-inner-spacing-min));
172
+ border-bottom: 1px solid $Layout-divider-color;
173
+ }
174
+ }
175
+
176
+ // footer divider
177
+
178
+ &.PageLayout--hasFooterDivider {
179
+ .PageLayout-footer {
180
+ padding-top: max(var(--Layout-row-gap), var(--Layout-inner-spacing-min));
181
+ border-top: 1px solid $Layout-divider-color;
182
+ }
183
+ }
184
+
185
+ // pane divider
186
+
187
+ &.PageLayout--hasPaneDivider {
188
+ &.PageLayout--panePos-start {
189
+ .PageLayout-pane {
190
+ border-right: 1px solid $Layout-divider-color;
191
+ }
192
+
193
+ &:not(.PageLayout--columnGap-none) {
194
+ .PageLayout-pane {
195
+ padding-right: calc(var(--Layout-column-gap) - 1px);
196
+ margin-right: calc(var(--Layout-column-gap) * -1);
197
+ }
198
+ .PageLayout-content {
199
+ margin-left: var(--Layout-column-gap);
200
+ }
201
+ }
202
+ }
203
+
204
+ &.PageLayout--panePos-end {
205
+ .PageLayout-pane {
206
+ border-left: 1px solid $Layout-divider-color;
207
+ }
208
+
209
+ &:not(.PageLayout--columnGap-none) {
210
+ .PageLayout-pane {
211
+ margin-left: calc(var(--Layout-column-gap) * -1);
212
+ padding-left: calc(var(--Layout-column-gap) - 1px);
213
+ }
214
+ .PageLayout-content {
215
+ margin-right: var(--Layout-column-gap);
216
+ }
217
+ }
218
+ }
219
+ }
220
+
221
+ // sticky pane
222
+
223
+ &.PageLayout--isPaneSticky {
224
+ .PageLayout-pane {
225
+ position: sticky;
226
+ top: 0;
227
+ max-height: 100vh;
228
+ overflow: auto;
229
+ }
230
+ }
231
+
232
+ // content width
233
+
234
+ [class^="PageLayout-content-centered-"] {
235
+ max-width: calc(var(--Layout-content-width) + var(--Layout-pane-width) + var(--Layout-column-gap));
236
+ margin-right: auto;
237
+ margin-left: auto;
238
+ }
239
+
240
+ &.PageLayout--hasPaneDivider {
241
+ [class^="PageLayout-content-centered-"] {
242
+ max-width: calc(var(--Layout-content-width) + var(--Layout-pane-width) + (var(--Layout-column-gap) * 2));
243
+ }
244
+ }
245
+
246
+ &.PageLayout--panePos-start {
247
+ [class^="PageLayout-content-centered-"] > [class^='container-'] {
248
+ margin-left: 0;
249
+ }
250
+ }
251
+
252
+ &.PageLayout--panePos-end {
253
+ [class^="PageLayout-content-centered-"] > [class^='container-'] {
254
+ margin-right: 0;
255
+ }
256
+ }
257
+
258
+ @each $breakpoint in map-keys($breakpoints) {
259
+ .PageLayout-content-centered-#{$breakpoint} {
260
+ --Layout-content-width: #{map-get($breakpoints, $breakpoint)};
261
+ }
262
+ }
263
+
264
+ // pane width
265
+
266
+ @each $breakpoint in map-keys($sidebar-width) {
267
+ @include breakpoint($breakpoint) {
268
+ --Layout-pane-width: #{map-get($sidebar-width, $breakpoint)};
269
+ }
270
+ }
271
+
272
+ &.PageLayout--paneWidth-narrow {
273
+ @each $breakpoint in map-keys($sidebar-narrow-width) {
274
+ @include breakpoint($breakpoint) {
275
+ --Layout-pane-width: #{map-get($sidebar-narrow-width, $breakpoint)};
276
+ }
277
+ }
278
+ }
279
+
280
+ &.PageLayout--paneWidth-wide {
281
+ @each $breakpoint in map-keys($sidebar-wide-width) {
282
+ @include breakpoint($breakpoint) {
283
+ --Layout-pane-width: #{map-get($sidebar-wide-width, $breakpoint)};
284
+ }
285
+ }
286
+ }
287
+ }
288
+
289
+ // responsive variants
290
+
291
+ @media (max-width: #{map-get($breakpoints, $Layout-responsive-variant-max-breakpoint) - 0.02px}) {
292
+
293
+ // variant: stackRegions
294
+
295
+ &.PageLayout--variant-stackRegions {
296
+ --Layout-template-columns: 1fr;
297
+
298
+ // responsive-panePos: end (default)
299
+ --Layout-template-areas: 'content' 'pane';
300
+
301
+ // responsive-panePos: start
302
+ &.PageLayout--variant-stackRegions-panePos-start {
303
+ --Layout-template-areas: 'pane' 'content';
304
+ }
305
+ }
306
+
307
+ // variant: separateRegions
308
+
309
+ &.PageLayout--variant-separateRegions {
310
+ --Layout-template-columns: 1fr;
311
+ --Layout-template-areas: 'content';
312
+
313
+ &.PageLayout--variant-separateRegions-primary-content {
314
+ --Layout-template-areas: 'content';
315
+ .PageLayout-pane {
316
+ display: none;
317
+ }
318
+ }
319
+
320
+ &.PageLayout--variant-separateRegions-primary-pane {
321
+ --Layout-template-areas: 'pane';
322
+ .PageLayout-content {
323
+ display: none;
324
+ }
325
+ }
326
+ }
327
+
328
+ // region dividers for responsive variants
329
+
330
+ .PageLayout-region--hasDivider-line-before {
331
+ position: relative;
332
+ margin-top: var(--Layout-row-gap);
333
+
334
+ &:before {
335
+ @include Layout-line-divider;
336
+ top: calc(-1px - var(--Layout-row-gap));
337
+ }
338
+ }
339
+
340
+ .PageLayout-region--hasDivider-line-after {
341
+ position: relative;
342
+ margin-bottom: var(--Layout-row-gap);
343
+
344
+ &:after {
345
+ @include Layout-line-divider;
346
+ bottom: calc(-1px - var(--Layout-row-gap));
347
+ }
348
+ }
349
+
350
+ .PageLayout-region--hasDivider-filled-before {
351
+ position: relative;
352
+ margin-top: calc(#{$spacer-2} + var(--Layout-row-gap));
353
+
354
+ &:after {
355
+ @include Layout-filled-divider;
356
+ top: calc(#{$spacer-2 * -1} - var(--Layout-row-gap));
357
+ }
358
+ }
359
+
360
+ .PageLayout-region--hasDivider-filled-after {
361
+ position: relative;
362
+ margin-bottom: calc(#{$spacer-2} + var(--Layout-row-gap));
363
+
364
+ &:before {
365
+ @include Layout-filled-divider;
366
+ bottom: calc(#{$spacer-2 * -1} - var(--Layout-row-gap));
367
+ }
368
+ }
369
+ }
370
+ }
@@ -2,145 +2,95 @@
2
2
  position: relative;
3
3
  z-index: 1;
4
4
  display: inline-block;
5
+ appearance: none !important;
5
6
  // stylelint-disable-next-line primer/spacing
6
7
  padding: 0.9rem 1.5rem 1.1rem;
7
8
  // stylelint-disable-next-line primer/typography
8
9
  font-size: 1rem;
9
10
  font-weight: $font-weight-bold;
10
11
  line-height: 1;
11
- color: var(--color-canvas-default);
12
- text-align: center;
13
12
  white-space: nowrap;
14
13
  vertical-align: middle;
15
14
  user-select: none;
16
- background: linear-gradient(180deg, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0) 100%), var(--color-mktg-btn-bg) !important;
17
15
  border: 0;
18
16
  // stylelint-disable-next-line primer/borders
19
17
  border-radius: 0.375rem;
20
- transition: box-shadow 0.2s;
21
- appearance: none !important;
18
+
19
+ @include btn-solid-mktg(
20
+ var(--color-mktg-btn-text),
21
+ var(--color-mktg-btn-bg-top),
22
+ var(--color-mktg-btn-bg-bottom),
23
+ var(--color-mktg-btn-bg-overlay-top),
24
+ var(--color-mktg-btn-bg-overlay-bottom),
25
+ );
22
26
 
23
27
  &::before {
28
+ background-blend-mode: overlay, normal;
24
29
  position: absolute;
25
30
  top: 0;
26
31
  right: 0;
27
32
  bottom: 0;
28
33
  left: 0;
29
34
  z-index: -1;
30
- content: '';
31
- // stylelint-disable-next-line primer/colors
32
- background: linear-gradient(180deg, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0) 100%) !important;
33
- border-radius: inherit;
35
+ content: "";
36
+ // stylelint-disable-next-line primer/borders
37
+ border-radius: 0.375rem;
34
38
  opacity: 0;
35
- opacity: 0;
36
- transition: opacity 0.2s;
37
- background-blend-mode: normal;
39
+ transition: opacity 0.4s;
38
40
  }
39
41
 
40
42
  &:hover {
41
43
  text-decoration: none;
42
- box-shadow: var(--color-mktg-btn-shadow-hover) !important;
43
- }
44
44
 
45
- &:focus,
46
- &.focus {
47
- outline: 0;
48
- box-shadow: var(--color-mktg-btn-shadow-focus), var(--color-mktg-btn-shadow-hover) !important;
49
- }
50
-
51
- &:hover,
52
- &:focus,
53
- &.focus {
54
45
  &::before {
55
46
  opacity: 1;
56
- }
57
-
58
- &:disabled {
59
- box-shadow: none !important;
47
+ transition: opacity 0.4s;
60
48
  }
61
49
  }
62
-
63
- &:active {
64
- outline: none;
65
- // stylelint-disable-next-line primer/box-shadow
66
- box-shadow: 0 0 0 transparent;
67
-
68
- &::before {
69
- opacity: 0.5 !important;
70
- }
71
- }
72
-
73
- &.disabled,
74
- &[disabled] {
75
- pointer-events: none;
76
- cursor: default;
77
- opacity: 0.5;
78
- }
79
50
  }
80
51
 
81
- .btn-muted-mktg {
82
- color: var(--color-fg-default) !important;
83
- background: none !important;
84
- box-shadow: var(--color-mktg-btn-shadow-outline);
85
-
86
- &::before {
87
- display: none;
88
- }
89
-
90
- &:hover {
91
- box-shadow: var(--color-mktg-btn-shadow-hover-muted) !important;
92
- }
93
-
94
- &:focus,
95
- &.focus {
96
- box-shadow: var(--color-mktg-btn-shadow-hover-muted), var(--color-mktg-btn-shadow-focus) !important;
97
- }
98
-
99
- &:active {
100
- // stylelint-disable-next-line primer/box-shadow
101
- box-shadow: var(--color-fg-default) 0 0 0 3px inset !important;
102
- }
103
-
104
- &:disabled {
105
- // stylelint-disable-next-line primer/box-shadow
106
- box-shadow: var(--color-fg-subtle) 0 0 0 1px inset !important;
107
- }
52
+ .btn-primary-mktg {
53
+ @include btn-solid-mktg(
54
+ var(--color-mktg-btn-primary-text),
55
+ var(--color-mktg-btn-primary-bg-top),
56
+ var(--color-mktg-btn-primary-bg-bottom),
57
+ var(--color-mktg-btn-primary-bg-overlay-top),
58
+ var(--color-mktg-btn-primary-bg-overlay-bottom),
59
+ );
108
60
  }
109
61
 
110
- .btn-subtle-mktg {
111
- color: var(--color-fg-default) !important;
112
- background: none !important;
113
- box-shadow: none !important;
114
-
115
- &::before {
116
- background: none !important;
117
- }
118
-
119
- &:hover {
120
- box-shadow: var(--color-mktg-btn-shadow-hover-muted) !important;
121
- }
122
-
123
- &:focus,
124
- .focus {
125
- box-shadow: var(--color-mktg-btn-shadow-hover-muted), var(--color-mktg-btn-shadow-focus) !important;
126
- }
62
+ .btn-enterprise-mktg {
63
+ @include btn-solid-mktg(
64
+ var(--color-mktg-btn-enterprise-text),
65
+ var(--color-mktg-btn-enterprise-bg-top),
66
+ var(--color-mktg-btn-enterprise-bg-bottom),
67
+ var(--color-mktg-btn-enterprise-bg-overlay-top),
68
+ var(--color-mktg-btn-enterprise-bg-overlay-bottom),
69
+ );
127
70
  }
128
71
 
129
- .btn-signup-mktg {
130
- // stylelint-disable-next-line primer/colors
131
- color: #fff;
132
- // stylelint-disable-next-line primer/colors
133
- background: linear-gradient(180deg, rgba(52, 183, 89, 0.15) 0%, rgba(46, 164, 79, 0) 100%), rgb(46, 164, 79) !important;
134
-
135
- &::before {
136
- // stylelint-disable-next-line primer/colors
137
- background: linear-gradient(180deg, rgba(52, 183, 89, 0.15) 0%, rgba(46, 164, 79, 0) 100%) !important;
138
- }
72
+ .btn-outline-mktg {
73
+ @include btn-outline-mktg(
74
+ var(--color-mktg-btn-outline-text),
75
+ var(--color-mktg-btn-outline-hover-text),
76
+ var(--color-mktg-btn-outline-border),
77
+ var(--color-mktg-btn-outline-hover-border),
78
+ var(--color-mktg-btn-outline-focus-border),
79
+ var(--color-mktg-btn-outline-focus-border-inset)
80
+ );
81
+ transition: box-shadow 0.4s, color 0.4s;
82
+ }
139
83
 
140
- &:focus {
141
- // stylelint-disable-next-line primer/box-shadow
142
- box-shadow: rgba(46, 164, 79, 0.45) 0 0 0 4px !important;
143
- }
84
+ .btn-transparent {
85
+ @include btn-outline-mktg(
86
+ var(--color-mktg-btn-dark-text),
87
+ var(--color-mktg-btn-dark-hover-text),
88
+ var(--color-mktg-btn-dark-border),
89
+ var(--color-mktg-btn-dark-hover-border),
90
+ var(--color-mktg-btn-dark-focus-border),
91
+ var(--color-mktg-btn-dark-focus-border-inset)
92
+ );
93
+ transition: box-shadow 0.4s, color 0.4s;
144
94
  }
145
95
 
146
96
  // Size modifiers
@@ -1,3 +1,3 @@
1
1
  // support files
2
- @import '../support/index.scss';
3
- @import './button.scss';
2
+ @import "../support/index.scss";
3
+ @import "./button.scss";
@@ -11,5 +11,4 @@
11
11
  // marketing specific css modules
12
12
  @import './type/index.scss';
13
13
  @import './buttons/index.scss';
14
- @import './links/index.scss';
15
14
  @import './utilities/index.scss';
@@ -1,2 +1,3 @@
1
- @import '../../support/index.scss';
2
- @import './variables.scss';
1
+ @import "../../support/index.scss";
2
+ @import "./mixins.scss";
3
+ @import "./variables.scss";