@primer/css 0.0.0-2021102434953 → 0.0.0-20211029165521

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 (99) hide show
  1. package/CHANGELOG.md +3 -31
  2. package/DEVELOP.md +0 -15
  3. package/base/normalize.scss +1 -1
  4. package/box/index.scss +0 -1
  5. package/color-modes/index.scss +0 -1
  6. package/color-modes/themes/dark.scss +2 -2
  7. package/color-modes/themes/dark_colorblind.scss +2 -2
  8. package/color-modes/themes/dark_dimmed.scss +2 -2
  9. package/color-modes/themes/dark_high_contrast.scss +2 -2
  10. package/color-modes/themes/light.scss +2 -2
  11. package/color-modes/themes/light_colorblind.scss +2 -2
  12. package/deprecations.json +0 -4
  13. package/dist/actionlist.css.map +1 -1
  14. package/dist/alerts.css.map +1 -1
  15. package/dist/autocomplete.css.map +1 -1
  16. package/dist/avatars.css.map +1 -1
  17. package/dist/base.css +1 -1
  18. package/dist/base.css.map +1 -1
  19. package/dist/blankslate.css.map +1 -1
  20. package/dist/box.css +1 -1
  21. package/dist/box.css.map +1 -1
  22. package/dist/branch-name.css.map +1 -1
  23. package/dist/breadcrumb.css.map +1 -1
  24. package/dist/buttons.css.map +1 -1
  25. package/dist/color-modes.css +1 -1
  26. package/dist/color-modes.css.map +1 -1
  27. package/dist/core.css +1 -1
  28. package/dist/core.css.map +1 -1
  29. package/dist/deprecations.json +0 -4
  30. package/dist/dropdown.css.map +1 -1
  31. package/dist/forms.css.map +1 -1
  32. package/dist/header.css.map +1 -1
  33. package/dist/labels.css +1 -1
  34. package/dist/labels.css.map +1 -1
  35. package/dist/layout.css +1 -1
  36. package/dist/layout.css.map +1 -1
  37. package/dist/links.css.map +1 -1
  38. package/dist/loaders.css.map +1 -1
  39. package/dist/markdown.css.map +1 -1
  40. package/dist/marketing-buttons.css +1 -1
  41. package/dist/marketing-buttons.css.map +1 -1
  42. package/dist/marketing-type.css.map +1 -1
  43. package/dist/marketing-utilities.css.map +1 -1
  44. package/dist/marketing.css +1 -1
  45. package/dist/marketing.css.map +1 -1
  46. package/dist/meta.json +79 -66
  47. package/dist/navigation.css +1 -1
  48. package/dist/navigation.css.map +1 -1
  49. package/dist/pagination.css.map +1 -1
  50. package/dist/popover.css +1 -1
  51. package/dist/popover.css.map +1 -1
  52. package/dist/primer.css +4 -4
  53. package/dist/primer.css.map +1 -1
  54. package/dist/product.css +1 -1
  55. package/dist/product.css.map +1 -1
  56. package/dist/progress.css.map +1 -1
  57. package/dist/select-menu.css.map +1 -1
  58. package/dist/stats/base.json +1 -1
  59. package/dist/stats/box.json +1 -1
  60. package/dist/stats/color-modes.json +1 -1
  61. package/dist/stats/core.json +1 -1
  62. package/dist/stats/labels.json +1 -1
  63. package/dist/stats/layout.json +1 -1
  64. package/dist/stats/marketing-buttons.json +1 -1
  65. package/dist/stats/marketing.json +1 -1
  66. package/dist/stats/navigation.json +1 -1
  67. package/dist/stats/popover.json +1 -1
  68. package/dist/stats/primer.json +1 -1
  69. package/dist/stats/product.json +1 -1
  70. package/dist/subhead.css.map +1 -1
  71. package/dist/timeline.css.map +1 -1
  72. package/dist/toasts.css.map +1 -1
  73. package/dist/tooltips.css.map +1 -1
  74. package/dist/truncate.css.map +1 -1
  75. package/dist/utilities.css.map +1 -1
  76. package/dist/variables.json +62 -62
  77. package/index.scss +4 -4
  78. package/labels/labels.scss +1 -0
  79. package/layout/index.scss +1 -0
  80. package/layout/layout-beta.scss +444 -0
  81. package/layout/mixins.scss +97 -1
  82. package/marketing/buttons/button.scss +53 -95
  83. package/marketing/buttons/index.scss +2 -2
  84. package/marketing/support/index.scss +3 -2
  85. package/marketing/support/mixins.scss +66 -0
  86. package/marketing/support/variables.scss +5 -4
  87. package/marketing/type/index.scss +2 -2
  88. package/marketing/type/typography.scss +23 -23
  89. package/marketing/utilities/index.scss +5 -5
  90. package/marketing/utilities/layout.scss +1 -1
  91. package/navigation/underline-nav.scss +28 -56
  92. package/package.json +10 -10
  93. package/popover/popover.scss +4 -42
  94. package/support/mixins/layout.scss +5 -5
  95. package/support/mixins/misc.scss +1 -25
  96. package/support/variables/layout.scss +7 -8
  97. package/support/variables/typography.scss +1 -1
  98. package/box/box-overlay.scss +0 -40
  99. package/color-modes/themes/light_high_contrast.scss +0 -7
@@ -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";
@@ -0,0 +1,66 @@
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
+ }
@@ -1,5 +1,6 @@
1
+ // stylelint-disable unit-no-unknown
1
2
  // Typography
2
- $marketing-font-path: '/fonts/' !default;
3
+ $marketing-font-path: "/fonts/" !default;
3
4
 
4
5
  $font-mktg: $body-font !default;
5
6
  $font-weight-medium: 450 !default;
@@ -121,7 +122,7 @@ $transition-time: 0.4s !default;
121
122
  $ease-mktg: cubic-bezier(0.16, 1, 0.3, 1) !default;
122
123
 
123
124
  $marketing-position-variants: (
124
- '': '',
125
- md: '-md',
126
- lg: '-lg',
125
+ "": "",
126
+ md: "-md",
127
+ lg: "-lg",
127
128
  ) !default;
@@ -1,3 +1,3 @@
1
1
  // support files
2
- @import '../support/index.scss';
3
- @import './typography.scss';
2
+ @import "../support/index.scss";
3
+ @import "./typography.scss";
@@ -19,20 +19,20 @@
19
19
  $pairing-md: map-get($mktg-header-pairings, nth($sizes, 2));
20
20
  $pairing-lg: map-get($mktg-header-pairings, nth($sizes, 3));
21
21
 
22
- font-size: map-get($pairing, 'size') !important;
23
- line-height: map-get($pairing, 'lh') !important;
24
- @if (map-get($pairing, 'size') >= $mktg-header-weight-threshold) { font-weight: $mktg-header-weight-large !important; }
22
+ font-size: map-get($pairing, "size") !important;
23
+ line-height: map-get($pairing, "lh") !important;
24
+ @if (map-get($pairing, "size") >= $mktg-header-weight-threshold) { font-weight: $mktg-header-weight-large !important; }
25
25
 
26
26
  @if (nth($sizes, 1) != nth($sizes, 2)) {
27
27
  @include breakpoint(md) {
28
- font-size: map-get($pairing-md, 'size') !important;
29
- line-height: map-get($pairing-md, 'lh') !important;
28
+ font-size: map-get($pairing-md, "size") !important;
29
+ line-height: map-get($pairing-md, "lh") !important;
30
30
 
31
- @if (map-get($pairing-md, 'size') >= $mktg-header-spacing-threshold and map-get($pairing, 'size') < $mktg-header-spacing-threshold) {
31
+ @if (map-get($pairing-md, "size") >= $mktg-header-spacing-threshold and map-get($pairing, "size") < $mktg-header-spacing-threshold) {
32
32
  letter-spacing: $mktg-header-spacing-large !important;
33
33
  }
34
34
 
35
- @if (map-get($pairing-md, 'size') >= $mktg-header-weight-threshold and map-get($pairing, 'size') < $mktg-header-weight-threshold) {
35
+ @if (map-get($pairing-md, "size") >= $mktg-header-weight-threshold and map-get($pairing, "size") < $mktg-header-weight-threshold) {
36
36
  font-weight: $mktg-header-weight-large !important;
37
37
  }
38
38
  }
@@ -40,14 +40,14 @@
40
40
 
41
41
  @if (nth($sizes, 2) != nth($sizes, 3)) {
42
42
  @include breakpoint(lg) {
43
- font-size: map-get($pairing-lg, 'size') !important;
44
- line-height: map-get($pairing-lg, 'lh') !important;
43
+ font-size: map-get($pairing-lg, "size") !important;
44
+ line-height: map-get($pairing-lg, "lh") !important;
45
45
 
46
- @if (map-get($pairing-lg, 'size') >= $mktg-header-spacing-threshold and map-get($pairing-md, 'size') < $mktg-header-spacing-threshold) {
46
+ @if (map-get($pairing-lg, "size") >= $mktg-header-spacing-threshold and map-get($pairing-md, "size") < $mktg-header-spacing-threshold) {
47
47
  letter-spacing: $mktg-header-spacing-large !important;
48
48
  }
49
49
 
50
- @if (map-get($pairing-lg, 'size') >= $mktg-header-weight-threshold and map-get($pairing-md, 'size') < $mktg-header-weight-threshold) {
50
+ @if (map-get($pairing-lg, "size") >= $mktg-header-weight-threshold and map-get($pairing-md, "size") < $mktg-header-weight-threshold) {
51
51
  font-weight: $mktg-header-weight-large !important;
52
52
  }
53
53
  }
@@ -73,21 +73,21 @@
73
73
  $pairing-md: map-get($mktg-body-pairings, nth($sizes, 2));
74
74
  $pairing-lg: map-get($mktg-body-pairings, nth($sizes, 3));
75
75
 
76
- font-size: map-get($pairing, 'size') !important;
77
- line-height: map-get($pairing, 'lh') !important;
78
- @if (map-get($pairing, 'size') >= $mktg-body-spacing-threshold) { letter-spacing: $mktg-body-spacing-large !important; }
79
- @if (map-get($pairing, 'size') >= $mktg-body-weight-threshold) { font-weight: $font-weight-semibold; }
76
+ font-size: map-get($pairing, "size") !important;
77
+ line-height: map-get($pairing, "lh") !important;
78
+ @if (map-get($pairing, "size") >= $mktg-body-spacing-threshold) { letter-spacing: $mktg-body-spacing-large !important; }
79
+ @if (map-get($pairing, "size") >= $mktg-body-weight-threshold) { font-weight: $font-weight-semibold; }
80
80
 
81
81
  @if (nth($sizes, 1) != nth($sizes, 2)) {
82
82
  @include breakpoint(md) {
83
- font-size: map-get($pairing-md, 'size') !important;
84
- line-height: map-get($pairing-md, 'lh') !important;
83
+ font-size: map-get($pairing-md, "size") !important;
84
+ line-height: map-get($pairing-md, "lh") !important;
85
85
 
86
- @if (map-get($pairing-md, 'size') >= $mktg-body-spacing-threshold and map-get($pairing, 'size') < $mktg-body-spacing-threshold) {
86
+ @if (map-get($pairing-md, "size") >= $mktg-body-spacing-threshold and map-get($pairing, "size") < $mktg-body-spacing-threshold) {
87
87
  letter-spacing: $mktg-body-spacing-large !important;
88
88
  }
89
89
 
90
- @if (map-get($pairing-md, 'size') >= $mktg-body-weight-threshold and map-get($pairing, 'size') < $mktg-body-weight-threshold) {
90
+ @if (map-get($pairing-md, "size") >= $mktg-body-weight-threshold and map-get($pairing, "size") < $mktg-body-weight-threshold) {
91
91
  font-weight: $font-weight-medium;
92
92
  }
93
93
  }
@@ -95,14 +95,14 @@
95
95
 
96
96
  @if (nth($sizes, 2) != nth($sizes, 3)) {
97
97
  @include breakpoint(lg) {
98
- font-size: map-get($pairing-lg, 'size') !important;
99
- line-height: map-get($pairing-lg, 'lh') !important;
98
+ font-size: map-get($pairing-lg, "size") !important;
99
+ line-height: map-get($pairing-lg, "lh") !important;
100
100
 
101
- @if (map-get($pairing-lg, 'size') >= $mktg-body-spacing-threshold and map-get($pairing-md, 'size') < $mktg-body-spacing-threshold) {
101
+ @if (map-get($pairing-lg, "size") >= $mktg-body-spacing-threshold and map-get($pairing-md, "size") < $mktg-body-spacing-threshold) {
102
102
  letter-spacing: $mktg-body-spacing-large !important;
103
103
  }
104
104
 
105
- @if (map-get($pairing-lg, 'size') >= $mktg-body-weight-threshold and map-get($pairing-md, 'size') < $mktg-body-weight-threshold) {
105
+ @if (map-get($pairing-lg, "size") >= $mktg-body-weight-threshold and map-get($pairing-md, "size") < $mktg-body-weight-threshold) {
106
106
  font-weight: $font-weight-medium;
107
107
  }
108
108
  }
@@ -1,6 +1,6 @@
1
- @import '../support/index.scss';
1
+ @import "../support/index.scss";
2
2
  // utilities
3
- @import './animations.scss';
4
- @import './borders.scss';
5
- @import './filters.scss';
6
- @import './layout.scss';
3
+ @import "./animations.scss";
4
+ @import "./borders.scss";
5
+ @import "./filters.scss";
6
+ @import "./layout.scss";
@@ -6,7 +6,7 @@
6
6
  @each $breakpoint, $variant in $marketing-position-variants {
7
7
  @include breakpoint($breakpoint) {
8
8
  @each $scale, $size in $spacer-map-extended {
9
- @if ($size != 0 or $variant != '') {
9
+ @if ($size != 0 or $variant != "") {
10
10
  .top#{$variant}-#{$scale} { top: $size !important; }
11
11
  .right#{$variant}-#{$scale} { right: $size !important; }
12
12
  .bottom#{$variant}-#{$scale} { bottom: $size !important; }
@@ -1,8 +1,7 @@
1
- $nav-height: $spacer-3 * 3 !default; // 48px
2
-
3
1
  .UnderlineNav {
4
2
  display: flex;
5
- min-height: $nav-height;
3
+ overflow-x: auto;
4
+ overflow-y: hidden;
6
5
  // stylelint-disable-next-line primer/box-shadow
7
6
  box-shadow: inset 0 -1px 0 var(--color-border-muted);
8
7
  justify-content: space-between;
@@ -10,13 +9,10 @@ $nav-height: $spacer-3 * 3 !default; // 48px
10
9
 
11
10
  .UnderlineNav-body {
12
11
  display: flex;
13
- align-items: center;
14
- gap: $spacer-2;
15
12
  }
16
13
 
17
14
  .UnderlineNav-item {
18
- position: relative;
19
- padding: 0 $spacer-2;
15
+ padding: $spacer-2 $spacer-3;
20
16
  font-size: $body-font-size;
21
17
  // stylelint-disable-next-line primer/typography
22
18
  line-height: 30px;
@@ -25,62 +21,32 @@ $nav-height: $spacer-3 * 3 !default; // 48px
25
21
  white-space: nowrap;
26
22
  background-color: transparent;
27
23
  border: 0;
28
- border-radius: $border-radius;
29
-
30
- // increase touch target area
31
- &::before {
32
- @include minTouchTarget($min-height: $nav-height);
33
- }
24
+ // stylelint-disable-next-line primer/borders
25
+ border-bottom: 2px $border-style transparent;
34
26
 
35
- &:hover {
27
+ &:hover,
28
+ &:focus {
36
29
  color: var(--color-fg-default);
37
30
  text-decoration: none;
38
- background: var(--color-neutral-muted);
39
- transition: background 0.12s ease-out;
31
+ border-bottom-color: var(--color-neutral-muted);
32
+ outline: 1px dotted transparent; // Support Firefox custom colors
33
+ outline-offset: -1px;
34
+ transition: border-bottom-color 0.12s ease-out;
40
35
  }
41
36
 
42
37
  &.selected,
43
- &[role='tab'][aria-selected='true'],
44
- &[aria-current]:not([aria-current='false']) {
38
+ &[role=tab][aria-selected=true],
39
+ &[aria-current]:not([aria-current=false]) {
45
40
  font-weight: $font-weight-bold;
46
41
  color: var(--color-fg-default);
47
-
48
- // current/selected underline
49
- &::after {
50
- position: absolute;
51
- right: 50%;
52
- // 48px total height / 2 (24px) + 1px
53
- bottom: calc(50% - 25px);
54
- width: 100%;
55
- height: 2px;
56
- content: '';
57
- background: var(--color-primer-border-active);
58
- border-radius: $border-radius;
59
- transform: translate(50%, -50%);
60
- }
42
+ border-bottom-color: var(--color-primer-border-active);
43
+ outline: 1px dotted transparent; // Support Firefox custom colors
44
+ outline-offset: -1px;
61
45
 
62
46
  .UnderlineNav-octicon {
63
47
  color: var(--color-fg-muted);
64
48
  }
65
49
  }
66
-
67
- // remove when global focus state is merged
68
- &.focus,
69
- &:focus {
70
- @include focusOutline;
71
- outline-offset: 0;
72
- }
73
-
74
- .Counter {
75
- margin-left: $spacer-2;
76
- color: var(--color-fg-default);
77
- background-color: var(--color-neutral-muted);
78
-
79
- &--primary {
80
- color: var(--color-fg-on-emphasis);
81
- background-color: var(--color-neutral-emphasis);
82
- }
83
- }
84
50
  }
85
51
 
86
52
  .UnderlineNav--right {
@@ -97,18 +63,24 @@ $nav-height: $spacer-3 * 3 !default; // 48px
97
63
 
98
64
  .UnderlineNav--full {
99
65
  display: block;
100
-
101
- // required for underline to align with additional wrapper element
102
- .UnderlineNav-body {
103
- min-height: $nav-height;
104
- }
105
66
  }
106
67
 
107
68
  .UnderlineNav-octicon {
108
- margin-right: $spacer-2;
69
+ margin-right: $spacer-1;
109
70
  color: var(--color-fg-subtle);
110
71
  }
111
72
 
73
+ .UnderlineNav .Counter {
74
+ margin-left: $spacer-1;
75
+ color: var(--color-fg-default);
76
+ background-color: var(--color-neutral-muted);
77
+
78
+ &--primary {
79
+ color: var(--color-fg-on-emphasis);
80
+ background-color: var(--color-neutral-emphasis);
81
+ }
82
+ }
83
+
112
84
  .UnderlineNav-container {
113
85
  display: flex;
114
86
  justify-content: space-between;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primer/css",
3
- "version": "0.0.0-2021102434953",
3
+ "version": "0.0.0-20211029165521",
4
4
  "description": "The CSS implementation of GitHub's Primer Design System",
5
5
  "homepage": "https://primer.style/css",
6
6
  "author": "GitHub, Inc.",
@@ -24,7 +24,7 @@
24
24
  ],
25
25
  "scripts": {
26
26
  "dist": "script/dist.js",
27
- "stylelint": "stylelint --quiet 'src/**/*.scss'",
27
+ "stylelint": "stylelint --quiet src/**/*.scss",
28
28
  "eslint": "eslint deprecations.js __tests__ script",
29
29
  "prepublishOnly": "script/prepublish",
30
30
  "start": "yarn dev",
@@ -35,19 +35,19 @@
35
35
  "storybook": "cd docs && yarn && yarn storybook"
36
36
  },
37
37
  "dependencies": {
38
- "@primer/primitives": "^7.1.0"
38
+ "@primer/primitives": "^6.1.0"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@changesets/changelog-github": "0.4.1",
42
- "@changesets/cli": "2.18.0",
42
+ "@changesets/cli": "2.17.0",
43
43
  "@github/prettier-config": "0.0.4",
44
44
  "@koddsson/postcss-sass": "5.0.0",
45
- "@primer/stylelint-config": "12.1.1",
45
+ "@primer/stylelint-config": "12.1.0",
46
46
  "autoprefixer": "10.4.0",
47
47
  "cssstats": "4.0.2",
48
- "eslint": "8.3.0",
49
- "eslint-plugin-github": "4.3.5",
50
- "eslint-plugin-jest": "25.2.4",
48
+ "eslint": "8.1.0",
49
+ "eslint-plugin-github": "4.3.3",
50
+ "eslint-plugin-jest": "25.2.2",
51
51
  "eslint-plugin-prettier": "4.0.0",
52
52
  "filesize": "8.0.6",
53
53
  "front-matter": "4.0.2",
@@ -63,9 +63,9 @@
63
63
  "postcss-simple-vars": "6.0.3",
64
64
  "prettier": "2.4.1",
65
65
  "semver": "7.3.5",
66
- "stylelint": "14.1.0",
66
+ "stylelint": "14.0.1",
67
67
  "stylelint-scss": "4.0.0",
68
- "table": "6.7.3"
68
+ "table": "6.7.2"
69
69
  },
70
70
  "jest": {
71
71
  "testEnvironment": "node",
@@ -8,9 +8,6 @@
8
8
  width: 232px;
9
9
  margin-right: auto;
10
10
  margin-left: auto;
11
- background-color: var(--color-canvas-overlay);
12
- border: $border-width $border-style var(--color-border-default);
13
- border-radius: $border-radius;
14
11
 
15
12
  // Carets
16
13
  &::before,
@@ -37,13 +34,10 @@
37
34
  border: 7px $border-style transparent;
38
35
  border-bottom-color: var(--color-canvas-overlay);
39
36
  }
40
- }
41
37
 
42
- // No caret
43
- .Popover-message--no-caret {
44
- &::before,
45
- &::after {
46
- display: none;
38
+ // TODO: Refactor so that .Popover is not dependant on .Box
39
+ &.Box {
40
+ background-color: var(--color-canvas-overlay);
47
41
  }
48
42
  }
49
43
 
@@ -188,40 +182,8 @@
188
182
  }
189
183
 
190
184
  .Popover-message--large {
185
+
191
186
  @include breakpoint(sm) {
192
187
  min-width: 320px;
193
188
  }
194
189
  }
195
-
196
- // Responsive Popover
197
- // For < md it will show full-width anchored to the bottom
198
-
199
- @media (max-width: ($width-md - 1px)) {
200
- .Popover {
201
- position: fixed;
202
- top: auto;
203
- right: 0;
204
- bottom: 0;
205
- left: 0;
206
- }
207
-
208
- .Popover-message {
209
- top: auto;
210
- right: auto;
211
- bottom: auto;
212
- left: auto;
213
- width: auto;
214
- margin: $spacer-2;
215
- }
216
-
217
- // Increase tap area for touch input
218
- .Popover-message > .btn-octicon {
219
- padding: $spacer-2 + $spacer-1 !important;
220
- }
221
-
222
- // Remove caret
223
- .Popover-message::after,
224
- .Popover-message::before {
225
- display: none;
226
- }
227
- }