@primer/css 0.0.0-2021116205147 → 0.0.0-2021117221921

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