@primer/css 19.8.1 → 20.0.0-rc.04a33ecf

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 (114) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/DEVELOP.md +26 -21
  3. package/actionlist/action-list-item.scss +10 -7
  4. package/actionlist/action-list-tree.scss +11 -14
  5. package/autocomplete/autocomplete.scss +7 -3
  6. package/base/base.scss +63 -3
  7. package/base/normalize.scss +12 -52
  8. package/box/box-overlay.scss +2 -0
  9. package/buttons/button.scss +54 -27
  10. package/buttons/misc.scss +25 -19
  11. package/dist/actionlist.css +1 -1
  12. package/dist/actionlist.css.map +1 -1
  13. package/dist/alerts.css +1 -1
  14. package/dist/alerts.css.map +1 -1
  15. package/dist/autocomplete.css +1 -1
  16. package/dist/autocomplete.css.map +1 -1
  17. package/dist/avatars.css.map +1 -1
  18. package/dist/base.css +1 -1
  19. package/dist/base.css.map +1 -1
  20. package/dist/blankslate.css.map +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 +1 -1
  25. package/dist/buttons.css.map +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/dropdown.css +1 -1
  30. package/dist/dropdown.css.map +1 -1
  31. package/dist/forms.css +1 -1
  32. package/dist/forms.css.map +1 -1
  33. package/dist/header.css.map +1 -1
  34. package/dist/labels.css.map +1 -1
  35. package/dist/layout.css.map +1 -1
  36. package/dist/links.css +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-links.css +1 -1
  43. package/dist/marketing-links.css.map +1 -1
  44. package/dist/marketing-type.css +1 -1
  45. package/dist/marketing-type.css.map +1 -1
  46. package/dist/marketing-utilities.css.map +1 -1
  47. package/dist/marketing.css +1 -1
  48. package/dist/marketing.css.map +1 -1
  49. package/dist/meta.json +84 -84
  50. package/dist/navigation.css +1 -1
  51. package/dist/navigation.css.map +1 -1
  52. package/dist/pagination.css +1 -1
  53. package/dist/pagination.css.map +1 -1
  54. package/dist/popover.css.map +1 -1
  55. package/dist/primer.css +3 -3
  56. package/dist/primer.css.map +1 -1
  57. package/dist/product.css +1 -1
  58. package/dist/product.css.map +1 -1
  59. package/dist/progress.css.map +1 -1
  60. package/dist/select-menu.css.map +1 -1
  61. package/dist/stats/actionlist.json +1 -1
  62. package/dist/stats/alerts.json +1 -1
  63. package/dist/stats/autocomplete.json +1 -1
  64. package/dist/stats/base.json +1 -1
  65. package/dist/stats/buttons.json +1 -1
  66. package/dist/stats/core.json +1 -1
  67. package/dist/stats/dropdown.json +1 -1
  68. package/dist/stats/forms.json +1 -1
  69. package/dist/stats/links.json +1 -1
  70. package/dist/stats/marketing-buttons.json +1 -1
  71. package/dist/stats/marketing-links.json +1 -1
  72. package/dist/stats/marketing-type.json +1 -1
  73. package/dist/stats/marketing.json +1 -1
  74. package/dist/stats/navigation.json +1 -1
  75. package/dist/stats/pagination.json +1 -1
  76. package/dist/stats/primer.json +1 -1
  77. package/dist/stats/product.json +1 -1
  78. package/dist/stats/toasts.json +1 -1
  79. package/dist/stats/utilities.json +1 -1
  80. package/dist/subhead.css.map +1 -1
  81. package/dist/timeline.css.map +1 -1
  82. package/dist/toasts.css +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 +1 -1
  87. package/dist/utilities.css.map +1 -1
  88. package/dist/variables.json +27 -27
  89. package/dropdown/dropdown.scss +0 -2
  90. package/forms/form-control.scss +23 -5
  91. package/forms/form-group.scss +39 -13
  92. package/forms/form-validation.scss +11 -6
  93. package/forms/input-group.scss +8 -0
  94. package/links/link.scss +5 -0
  95. package/marketing/buttons/button.scss +32 -26
  96. package/marketing/links/link.scss +5 -5
  97. package/marketing/type/typography.scss +18 -29
  98. package/marketing/utilities/layout.scss +1 -1
  99. package/navigation/filter-list.scss +18 -0
  100. package/navigation/menu.scss +6 -8
  101. package/navigation/sidenav.scss +1 -10
  102. package/navigation/subnav.scss +19 -0
  103. package/navigation/tabnav.scss +7 -2
  104. package/navigation/underline-nav.scss +73 -23
  105. package/package.json +18 -16
  106. package/pagination/pagination.scss +24 -3
  107. package/popover/popover.scss +1 -0
  108. package/support/mixins/color-modes.scss +2 -0
  109. package/support/mixins/layout.scss +1 -0
  110. package/support/mixins/misc.scss +47 -1
  111. package/support/variables/layout.scss +1 -0
  112. package/timeline/timeline-item.scss +2 -0
  113. package/toasts/toasts.scss +7 -4
  114. package/utilities/details.scss +81 -4
@@ -16,7 +16,7 @@
16
16
 
17
17
  &::after {
18
18
  // stylelint-disable-next-line primer/spacing
19
- margin-left: 1px;
19
+ margin-left: 2px;
20
20
  background-color: var(--color-canvas-default);
21
21
  background-image: linear-gradient($background, $background);
22
22
  }
@@ -25,3 +25,49 @@
25
25
  background-color: $border;
26
26
  }
27
27
  }
28
+
29
+ // global focus styles
30
+
31
+ // inset box-shadow for form controls
32
+ @mixin focusBoxShadowInset($outlineWidth: 1px, $outlineColor: var(--color-accent-fg)) {
33
+ border-color: var(--color-accent-fg);
34
+ outline: none;
35
+ box-shadow: inset 0 0 0 $outlineWidth $outlineColor;
36
+ }
37
+
38
+ // box-shadow for :target styles (no inset)
39
+ // !important to override PCSS utilities
40
+ @mixin targetBoxShadow($outlineWidth: 2px, $outlineColor: var(--color-accent-fg)) {
41
+ outline: none !important;
42
+ box-shadow: 0 0 0 $outlineWidth $outlineColor !important;
43
+ }
44
+
45
+ // outline
46
+ @mixin focusOutline($outlineOffset: -2px, $outlineColor: var(--color-accent-fg)) {
47
+ outline: 2px solid $outlineColor;
48
+ outline-offset: $outlineOffset;
49
+ box-shadow: none;
50
+ }
51
+
52
+ // outline with fg box-shadow for buttons
53
+ @mixin focusOutlineOnEmphasis($outlineOffset: -2px, $outlineColor: var(--color-accent-fg)) {
54
+ outline: 2px solid $outlineColor;
55
+ outline-offset: $outlineOffset;
56
+ box-shadow: inset 0 0 0 3px var(--color-fg-on-emphasis);
57
+ }
58
+
59
+ // if min-width is undefined, return only min-height
60
+ @mixin minTouchTarget($min-height: 32px, $min-width: '') {
61
+ position: absolute;
62
+ top: 50%;
63
+ left: 50%;
64
+ width: 100%;
65
+ height: 100%;
66
+ min-height: $min-height;
67
+ content: '';
68
+ transform: translateX(-50%) translateY(-50%);
69
+
70
+ @if $min-width != '' {
71
+ min-width: $min-width;
72
+ }
73
+ }
@@ -82,6 +82,7 @@ $spacers-large: (
82
82
  12: $spacer-12,
83
83
  ) !default;
84
84
 
85
+ // stylelint-disable-next-line function-no-unknown
85
86
  $spacer-map-extended: map-merge(
86
87
  (
87
88
  0: 0,
@@ -57,6 +57,7 @@
57
57
 
58
58
  .TimelineItem-avatar {
59
59
  position: absolute;
60
+ // stylelint-disable-next-line function-no-unknown
60
61
  left: -($spacer-6 + $spacer-5);
61
62
  z-index: 1;
62
63
  }
@@ -67,6 +68,7 @@
67
68
  height: $spacer-4;
68
69
  margin: 0;
69
70
  margin-bottom: -$spacer-3;
71
+ // stylelint-disable-next-line function-no-unknown
70
72
  margin-left: -($spacer-6 + $spacer-3);
71
73
  background-color: var(--color-canvas-default);
72
74
  border: 0;
@@ -40,9 +40,7 @@
40
40
  background-color: transparent;
41
41
  border: 0;
42
42
 
43
- &:focus,
44
43
  &:hover {
45
- outline: none;
46
44
  opacity: 0.7;
47
45
  }
48
46
 
@@ -119,6 +117,11 @@
119
117
  }
120
118
 
121
119
  @keyframes Toast--spinner {
122
- from { transform: rotate(0deg); }
123
- to { transform: rotate(360deg); }
120
+ from {
121
+ transform: rotate(0deg);
122
+ }
123
+
124
+ to {
125
+ transform: rotate(360deg);
126
+ }
124
127
  }
@@ -1,4 +1,4 @@
1
- // stylelint-disable selector-max-type
1
+ // stylelint-disable selector-max-type, selector-max-specificity, max-nesting-depth, selector-no-qualifying-type
2
2
 
3
3
  .details-overlay[open] > summary::before {
4
4
  position: fixed;
@@ -20,9 +20,86 @@
20
20
 
21
21
  .details-reset {
22
22
  // Remove marker added by the display: list-item browser default
23
- > summary { list-style: none; }
23
+ > summary {
24
+ list-style: none;
25
+ transition: 80ms cubic-bezier(0.33, 1, 0.68, 1);
26
+ transition-property: color, background-color, box-shadow, border-color;
27
+ // fallback :focus state
28
+ &:focus {
29
+ @include focusOutline;
30
+
31
+ // remove fallback :focus if :focus-visible is supported
32
+ &:not(:focus-visible) {
33
+ outline: solid 1px transparent;
34
+ }
35
+ }
36
+
37
+ // default focus state
38
+ &:focus-visible {
39
+ @include focusOutline;
40
+ }
41
+
42
+ &.btn-primary {
43
+ // fallback :focus state
44
+ &:focus {
45
+ @include focusOutlineOnEmphasis;
46
+
47
+ // remove fallback :focus if :focus-visible is supported
48
+ &:not(:focus-visible) {
49
+ outline: solid 1px transparent;
50
+ box-shadow: none;
51
+ }
52
+ }
53
+
54
+ // default focus state
55
+ &:focus-visible {
56
+ @include focusOutlineOnEmphasis;
57
+ }
58
+ }
59
+ }
24
60
  // Remove marker added by details polyfill
25
- > summary::before { display: none; }
61
+ > summary::before {
62
+ display: none;
63
+ }
26
64
  // Remove marker added by Chrome
27
- > summary::-webkit-details-marker { display: none; }
65
+ > summary::-webkit-details-marker {
66
+ display: none;
67
+ }
68
+ }
69
+
70
+ .details-overlay > summary {
71
+ transition: 80ms cubic-bezier(0.33, 1, 0.68, 1);
72
+ transition-property: color, background-color, box-shadow, border-color;
73
+ // fallback :focus state
74
+ &:focus {
75
+ @include focusOutline;
76
+
77
+ // remove fallback :focus if :focus-visible is supported
78
+ &:not(:focus-visible) {
79
+ outline: solid 1px transparent;
80
+ }
81
+ }
82
+
83
+ // default focus state
84
+ &:focus-visible {
85
+ @include focusOutline;
86
+ }
87
+
88
+ &.btn-primary {
89
+ // fallback :focus state
90
+ &:focus {
91
+ @include focusOutlineOnEmphasis;
92
+
93
+ // remove fallback :focus if :focus-visible is supported
94
+ &:not(:focus-visible) {
95
+ outline: solid 1px transparent;
96
+ box-shadow: none;
97
+ }
98
+ }
99
+
100
+ // default focus state
101
+ &:focus-visible {
102
+ @include focusOutlineOnEmphasis;
103
+ }
104
+ }
28
105
  }