@primer/css 0.0.0-1f49d76 → 0.0.0-20211010195643

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 (352) hide show
  1. package/CHANGELOG.md +858 -133
  2. package/CONTRIBUTING.md +85 -0
  3. package/DEVELOP.md +4 -39
  4. package/LICENSE +1 -1
  5. package/README.md +13 -15
  6. package/RELEASING.md +5 -76
  7. package/actionlist/action-list-item-divider.scss +42 -0
  8. package/actionlist/action-list-item.scss +439 -0
  9. package/actionlist/action-list-variables.scss +8 -0
  10. package/actionlist/action-list.scss +33 -0
  11. package/actionlist/index.scss +5 -0
  12. package/alerts/README.md +1 -1
  13. package/alerts/flash.scss +32 -26
  14. package/alerts/index.scss +2 -2
  15. package/autocomplete/README.md +1 -1
  16. package/autocomplete/autocomplete.scss +18 -8
  17. package/autocomplete/index.scss +3 -3
  18. package/autocomplete/suggester.scss +27 -10
  19. package/avatars/README.md +1 -1
  20. package/avatars/avatar-parent-child.scss +2 -3
  21. package/avatars/avatar-stack.scss +12 -14
  22. package/avatars/avatar.scss +4 -0
  23. package/avatars/circle-badge.scss +4 -4
  24. package/avatars/index.scss +5 -5
  25. package/base/README.md +1 -1
  26. package/base/base.scss +39 -7
  27. package/base/index.scss +6 -5
  28. package/base/kbd.scss +5 -6
  29. package/base/normalize.scss +13 -53
  30. package/base/octicons.scss +6 -0
  31. package/blankslate/README.md +1 -1
  32. package/blankslate/blankslate.scss +7 -4
  33. package/blankslate/index.scss +2 -2
  34. package/box/README.md +1 -1
  35. package/box/box.scss +38 -38
  36. package/box/index.scss +2 -2
  37. package/branch-name/README.md +1 -1
  38. package/branch-name/branch-name.scss +15 -10
  39. package/branch-name/index.scss +2 -2
  40. package/breadcrumb/README.md +1 -1
  41. package/breadcrumb/breadcrumb.scss +12 -7
  42. package/breadcrumb/index.scss +2 -2
  43. package/buttons/README.md +1 -1
  44. package/buttons/button.scss +115 -121
  45. package/buttons/index.scss +4 -4
  46. package/buttons/misc.scss +52 -41
  47. package/color-modes/index.scss +9 -0
  48. package/color-modes/native.scss +10 -0
  49. package/color-modes/themes/dark.scss +7 -0
  50. package/color-modes/themes/dark_colorblind.scss +7 -0
  51. package/color-modes/themes/dark_dimmed.scss +7 -0
  52. package/color-modes/themes/dark_high_contrast.scss +7 -0
  53. package/color-modes/themes/light.scss +7 -0
  54. package/color-modes/themes/light_colorblind.scss +7 -0
  55. package/core/README.md +1 -1
  56. package/core/index.scss +17 -16
  57. package/deprecations.js +18 -200
  58. package/deprecations.json +539 -0
  59. package/dist/actionlist.css +2 -0
  60. package/dist/actionlist.css.map +1 -0
  61. package/dist/actionlist.js +1 -0
  62. package/dist/alerts.css +1 -2
  63. package/dist/alerts.css.map +1 -1
  64. package/dist/alerts.js +1 -1
  65. package/dist/autocomplete.css +1 -2
  66. package/dist/autocomplete.css.map +1 -1
  67. package/dist/autocomplete.js +1 -1
  68. package/dist/avatars.css +1 -2
  69. package/dist/avatars.css.map +1 -1
  70. package/dist/avatars.js +1 -1
  71. package/dist/base.css +1 -2
  72. package/dist/base.css.map +1 -1
  73. package/dist/base.js +1 -1
  74. package/dist/blankslate.css +1 -2
  75. package/dist/blankslate.css.map +1 -1
  76. package/dist/blankslate.js +1 -1
  77. package/dist/box.css +1 -2
  78. package/dist/box.css.map +1 -1
  79. package/dist/box.js +1 -1
  80. package/dist/branch-name.css +1 -2
  81. package/dist/branch-name.css.map +1 -1
  82. package/dist/branch-name.js +1 -1
  83. package/dist/breadcrumb.css +1 -2
  84. package/dist/breadcrumb.css.map +1 -1
  85. package/dist/breadcrumb.js +1 -1
  86. package/dist/buttons.css +1 -2
  87. package/dist/buttons.css.map +1 -1
  88. package/dist/buttons.js +1 -1
  89. package/dist/color-modes.css +2 -0
  90. package/dist/color-modes.css.map +1 -0
  91. package/dist/color-modes.js +1 -0
  92. package/dist/core.css +1 -2
  93. package/dist/core.css.map +1 -1
  94. package/dist/core.js +1 -1
  95. package/dist/deprecations.json +534 -571
  96. package/dist/dropdown.css +1 -2
  97. package/dist/dropdown.css.map +1 -1
  98. package/dist/dropdown.js +1 -1
  99. package/dist/forms.css +1 -2
  100. package/dist/forms.css.map +1 -1
  101. package/dist/forms.js +1 -1
  102. package/dist/header.css +1 -2
  103. package/dist/header.css.map +1 -1
  104. package/dist/header.js +1 -1
  105. package/dist/labels.css +1 -2
  106. package/dist/labels.css.map +1 -1
  107. package/dist/labels.js +1 -1
  108. package/dist/layout.css +1 -2
  109. package/dist/layout.css.map +1 -1
  110. package/dist/layout.js +1 -1
  111. package/dist/links.css +2 -0
  112. package/dist/links.css.map +1 -0
  113. package/dist/links.js +1 -0
  114. package/dist/loaders.css +0 -1
  115. package/dist/loaders.css.map +1 -1
  116. package/dist/loaders.js +1 -1
  117. package/dist/markdown.css +1 -2
  118. package/dist/markdown.css.map +1 -1
  119. package/dist/markdown.js +1 -1
  120. package/dist/marketing-buttons.css +1 -2
  121. package/dist/marketing-buttons.css.map +1 -1
  122. package/dist/marketing-buttons.js +1 -1
  123. package/dist/marketing-support.css +1 -2
  124. package/dist/marketing-support.js +1 -1
  125. package/dist/marketing-type.css +1 -2
  126. package/dist/marketing-type.css.map +1 -1
  127. package/dist/marketing-type.js +1 -1
  128. package/dist/marketing-utilities.css +1 -2
  129. package/dist/marketing-utilities.css.map +1 -1
  130. package/dist/marketing-utilities.js +1 -1
  131. package/dist/marketing.css +1 -2
  132. package/dist/marketing.css.map +1 -1
  133. package/dist/marketing.js +1 -1
  134. package/dist/meta.json +314 -369
  135. package/dist/navigation.css +1 -2
  136. package/dist/navigation.css.map +1 -1
  137. package/dist/navigation.js +1 -1
  138. package/dist/pagination.css +1 -2
  139. package/dist/pagination.css.map +1 -1
  140. package/dist/pagination.js +1 -1
  141. package/dist/popover.css +1 -2
  142. package/dist/popover.css.map +1 -1
  143. package/dist/popover.js +1 -1
  144. package/dist/primer.css +4 -5
  145. package/dist/primer.css.map +1 -1
  146. package/dist/primer.js +1 -1
  147. package/dist/product.css +1 -2
  148. package/dist/product.css.map +1 -1
  149. package/dist/product.js +1 -1
  150. package/dist/progress.css +1 -2
  151. package/dist/progress.css.map +1 -1
  152. package/dist/progress.js +1 -1
  153. package/dist/select-menu.css +1 -2
  154. package/dist/select-menu.css.map +1 -1
  155. package/dist/select-menu.js +1 -1
  156. package/dist/stats/actionlist.json +1 -0
  157. package/dist/stats/alerts.json +1 -1
  158. package/dist/stats/autocomplete.json +1 -1
  159. package/dist/stats/avatars.json +1 -1
  160. package/dist/stats/base.json +1 -1
  161. package/dist/stats/blankslate.json +1 -1
  162. package/dist/stats/box.json +1 -1
  163. package/dist/stats/branch-name.json +1 -1
  164. package/dist/stats/breadcrumb.json +1 -1
  165. package/dist/stats/buttons.json +1 -1
  166. package/dist/stats/color-modes.json +1 -0
  167. package/dist/stats/core.json +1 -1
  168. package/dist/stats/dropdown.json +1 -1
  169. package/dist/stats/forms.json +1 -1
  170. package/dist/stats/header.json +1 -1
  171. package/dist/stats/labels.json +1 -1
  172. package/dist/stats/layout.json +1 -1
  173. package/dist/stats/links.json +1 -0
  174. package/dist/stats/loaders.json +1 -1
  175. package/dist/stats/markdown.json +1 -1
  176. package/dist/stats/marketing-buttons.json +1 -1
  177. package/dist/stats/marketing-support.json +1 -1
  178. package/dist/stats/marketing-type.json +1 -1
  179. package/dist/stats/marketing-utilities.json +1 -1
  180. package/dist/stats/marketing.json +1 -1
  181. package/dist/stats/navigation.json +1 -1
  182. package/dist/stats/pagination.json +1 -1
  183. package/dist/stats/popover.json +1 -1
  184. package/dist/stats/primer.json +1 -1
  185. package/dist/stats/product.json +1 -1
  186. package/dist/stats/progress.json +1 -1
  187. package/dist/stats/select-menu.json +1 -1
  188. package/dist/stats/subhead.json +1 -1
  189. package/dist/stats/support.json +1 -1
  190. package/dist/stats/table-object.json +1 -1
  191. package/dist/stats/timeline.json +1 -1
  192. package/dist/stats/toasts.json +1 -1
  193. package/dist/stats/tooltips.json +1 -1
  194. package/dist/stats/truncate.json +1 -1
  195. package/dist/stats/utilities.json +1 -1
  196. package/dist/subhead.css +1 -2
  197. package/dist/subhead.css.map +1 -1
  198. package/dist/subhead.js +1 -1
  199. package/dist/support.css +1 -1
  200. package/dist/support.js +1 -1
  201. package/dist/table-object.css +0 -1
  202. package/dist/table-object.css.map +1 -1
  203. package/dist/table-object.js +1 -1
  204. package/dist/timeline.css +1 -2
  205. package/dist/timeline.css.map +1 -1
  206. package/dist/timeline.js +1 -1
  207. package/dist/toasts.css +1 -2
  208. package/dist/toasts.css.map +1 -1
  209. package/dist/toasts.js +1 -1
  210. package/dist/tooltips.css +1 -2
  211. package/dist/tooltips.css.map +1 -1
  212. package/dist/tooltips.js +1 -1
  213. package/dist/truncate.css +1 -2
  214. package/dist/truncate.css.map +1 -1
  215. package/dist/truncate.js +1 -1
  216. package/dist/utilities.css +1 -2
  217. package/dist/utilities.css.map +1 -1
  218. package/dist/utilities.js +1 -1
  219. package/dist/variables.json +630 -2274
  220. package/dropdown/README.md +1 -1
  221. package/dropdown/dropdown.scss +32 -88
  222. package/dropdown/index.scss +2 -2
  223. package/forms/README.md +1 -1
  224. package/forms/form-control.scss +39 -57
  225. package/forms/form-group.scss +31 -48
  226. package/forms/form-select.scss +12 -4
  227. package/forms/form-validation.scss +27 -32
  228. package/forms/index.scss +7 -7
  229. package/forms/input-group.scss +7 -0
  230. package/forms/radio-group.scss +22 -3
  231. package/header/README.md +1 -1
  232. package/header/header.scss +16 -6
  233. package/header/index.scss +2 -2
  234. package/index.scss +4 -1
  235. package/labels/README.md +1 -1
  236. package/labels/counters.scss +10 -11
  237. package/labels/diffstat.scss +8 -8
  238. package/labels/index.scss +7 -7
  239. package/labels/labels.scss +30 -41
  240. package/labels/states.scss +17 -16
  241. package/layout/README.md +1 -1
  242. package/layout/grid-offset.scss +11 -11
  243. package/layout/grid.scss +23 -23
  244. package/layout/index.scss +7 -4
  245. package/layout/layout.scss +185 -0
  246. package/layout/mixins.scss +79 -0
  247. package/{README.template.md → links/README.md} +5 -5
  248. package/links/index.scss +3 -0
  249. package/links/link.scss +55 -0
  250. package/loaders/README.md +1 -1
  251. package/loaders/index.scss +2 -2
  252. package/loaders/loaders.scss +1 -1
  253. package/markdown/README.md +1 -1
  254. package/markdown/blob-csv.scss +2 -2
  255. package/markdown/code.scss +7 -5
  256. package/markdown/footnotes.scss +37 -0
  257. package/markdown/headings.scss +6 -4
  258. package/markdown/images.scss +3 -4
  259. package/markdown/index.scss +9 -8
  260. package/markdown/lists.scss +18 -5
  261. package/markdown/markdown-body.scss +14 -9
  262. package/markdown/tables.scss +7 -7
  263. package/marketing/README.md +1 -1
  264. package/marketing/buttons/button.scss +81 -75
  265. package/marketing/index.scss +4 -4
  266. package/marketing/support/index.scss +1 -0
  267. package/marketing/support/mixins.scss +66 -0
  268. package/marketing/support/variables.scss +109 -58
  269. package/marketing/type/typography.scss +100 -62
  270. package/marketing/utilities/animations.scss +9 -0
  271. package/marketing/utilities/index.scss +2 -3
  272. package/marketing/utilities/layout.scss +31 -10
  273. package/navigation/README.md +1 -1
  274. package/navigation/filter-list.scss +8 -9
  275. package/navigation/index.scss +7 -7
  276. package/navigation/menu.scss +22 -23
  277. package/navigation/sidenav.scss +19 -25
  278. package/navigation/subnav.scss +9 -13
  279. package/navigation/tabnav.scss +20 -10
  280. package/navigation/underline-nav.scss +19 -14
  281. package/package.json +75 -63
  282. package/pagination/README.md +1 -1
  283. package/pagination/index.scss +2 -2
  284. package/pagination/pagination.scss +8 -8
  285. package/popover/README.md +1 -1
  286. package/popover/index.scss +2 -2
  287. package/popover/popover.scss +14 -13
  288. package/postcss.config.cjs +22 -0
  289. package/prettier.config.cjs +1 -0
  290. package/product/README.md +1 -1
  291. package/product/index.scss +17 -17
  292. package/progress/README.md +1 -1
  293. package/progress/index.scss +2 -2
  294. package/progress/progress.scss +3 -4
  295. package/select-menu/README.md +1 -1
  296. package/select-menu/index.scss +2 -2
  297. package/select-menu/select-menu.scss +44 -46
  298. package/{stylelint.config.js → stylelint.config.cjs} +5 -6
  299. package/subhead/README.md +1 -1
  300. package/subhead/index.scss +2 -2
  301. package/subhead/subhead.scss +9 -3
  302. package/support/README.md +1 -1
  303. package/support/index.scss +7 -8
  304. package/support/mixins/color-modes.scss +106 -0
  305. package/support/mixins/misc.scss +19 -13
  306. package/support/variables/layout.scss +68 -9
  307. package/support/variables/misc.scss +2 -27
  308. package/support/variables/typography.scss +2 -1
  309. package/table-object/README.md +1 -1
  310. package/table-object/index.scss +1 -1
  311. package/timeline/README.md +1 -1
  312. package/timeline/index.scss +2 -2
  313. package/timeline/timeline-item.scss +18 -18
  314. package/toasts/README.md +1 -1
  315. package/toasts/index.scss +2 -2
  316. package/toasts/toasts.scss +45 -24
  317. package/tooltips/README.md +1 -1
  318. package/tooltips/index.scss +2 -2
  319. package/tooltips/tooltips.scss +8 -12
  320. package/truncate/README.md +1 -1
  321. package/truncate/index.scss +2 -1
  322. package/truncate/truncate.scss +30 -0
  323. package/utilities/README.md +1 -1
  324. package/utilities/animations.scss +14 -1
  325. package/utilities/borders.scss +5 -50
  326. package/utilities/box-shadow.scss +8 -8
  327. package/utilities/colors.scss +71 -107
  328. package/utilities/details.scss +18 -6
  329. package/utilities/flexbox.scss +4 -3
  330. package/utilities/index.scss +12 -12
  331. package/utilities/layout.scss +23 -14
  332. package/utilities/margin.scss +34 -16
  333. package/utilities/padding.scss +13 -8
  334. package/utilities/typography.scss +5 -15
  335. package/.browserslistrc +0 -6
  336. package/.eslintrc.json +0 -13
  337. package/.nowignore +0 -5
  338. package/MIGRATING.md +0 -74
  339. package/bin/primer-migrate +0 -86
  340. package/dist/marketing-support.css.map +0 -1
  341. package/dist/support.css.map +0 -1
  342. package/fonts/Inter-Bold.woff +0 -0
  343. package/fonts/Inter-Medium.woff +0 -0
  344. package/fonts/Inter-Regular.woff +0 -0
  345. package/marketing/utilities/margin.scss +0 -17
  346. package/marketing/utilities/padding.scss +0 -24
  347. package/postcss.config.js +0 -14
  348. package/prettier.config.js +0 -1
  349. package/release.config.js +0 -4
  350. package/support/mixins/buttons.scss +0 -172
  351. package/support/variables/color-system.scss +0 -243
  352. package/support/variables/colors.scss +0 -55
@@ -40,8 +40,8 @@ $SelectMenu-max-height: 480px !default;
40
40
  bottom: 0;
41
41
  left: 0;
42
42
  pointer-events: none;
43
- content: "";
44
- background-color: $bg-black-fade;
43
+ content: '';
44
+ background-color: var(--color-primer-canvas-backdrop);
45
45
 
46
46
  @include breakpoint(sm) {
47
47
  display: none;
@@ -61,11 +61,11 @@ $SelectMenu-max-height: 480px !default;
61
61
  overflow: hidden; // Enables border radius on scrollable child elements
62
62
  pointer-events: auto;
63
63
  flex-direction: column;
64
- background-color: $bg-white;
64
+ background-color: var(--color-canvas-overlay);
65
+ border: $border-width $border-style var(--color-select-menu-backdrop-border);
65
66
  // stylelint-disable-next-line primer/borders
66
67
  border-radius: $border-radius * 2;
67
- // stylelint-disable-next-line primer/box-shadow
68
- box-shadow: 0 0 18px rgba($black, 0.4);
68
+ box-shadow: var(--color-shadow-large);
69
69
  animation: SelectMenu-modal-animation 0.12s cubic-bezier(0, 0.1, 0.1, 1) backwards;
70
70
 
71
71
  @keyframes SelectMenu-modal-animation {
@@ -88,9 +88,9 @@ $SelectMenu-max-height: 480px !default;
88
88
  max-height: $SelectMenu-max-height;
89
89
  margin: $spacer-2 0 $spacer-3 0;
90
90
  font-size: $font-size-small;
91
- border: $border;
91
+ border-color: var(--color-border-default);
92
92
  border-radius: $border-radius;
93
- box-shadow: $box-shadow-large;
93
+ box-shadow: var(--color-shadow-large);
94
94
  animation-name: SelectMenu-modal-animation--sm;
95
95
  }
96
96
  }
@@ -104,7 +104,7 @@ $SelectMenu-max-height: 480px !default;
104
104
  padding: $spacer-3;
105
105
  flex: none; // fixes header from getting squeezed in Safari iOS
106
106
  align-items: center;
107
- border-bottom: $border-width $border-style $border-gray-light;
107
+ border-bottom: $border-width $border-style var(--color-border-muted);
108
108
 
109
109
  @include breakpoint(sm) {
110
110
  // stylelint-disable-next-line primer/spacing
@@ -126,8 +126,7 @@ $SelectMenu-max-height: 480px !default;
126
126
  padding: $spacer-3;
127
127
  margin: -$spacer-3;
128
128
  line-height: 1;
129
- // stylelint-disable-next-line primer/colors
130
- color: $gray-light;
129
+ color: var(--color-fg-muted);
131
130
  background-color: transparent;
132
131
  border: 0;
133
132
 
@@ -145,7 +144,7 @@ $SelectMenu-max-height: 480px !default;
145
144
  .SelectMenu-filter {
146
145
  padding: $spacer-3;
147
146
  margin: 0;
148
- border-bottom: $border-width $border-style $border-gray-light;
147
+ border-bottom: $border-width $border-style var(--color-border-muted);
149
148
 
150
149
  @include breakpoint(sm) {
151
150
  padding: $spacer-2;
@@ -174,7 +173,7 @@ $SelectMenu-max-height: 480px !default;
174
173
  flex: auto;
175
174
  overflow-x: hidden;
176
175
  overflow-y: auto;
177
- background-color: $bg-white;
176
+ background-color: var(--color-canvas-overlay);
178
177
  -webkit-overflow-scrolling: touch; // Adds momentum + bouncy scrolling
179
178
  }
180
179
 
@@ -188,12 +187,12 @@ $SelectMenu-max-height: 480px !default;
188
187
  width: 100%;
189
188
  padding: $spacer-3;
190
189
  overflow: hidden;
191
- color: $text-gray-dark;
190
+ color: var(--color-fg-default);
192
191
  text-align: left;
193
192
  cursor: pointer;
194
- background-color: $bg-white;
193
+ background-color: var(--color-canvas-overlay);
195
194
  border: 0;
196
- border-bottom: $border-width $border-style $border-gray-light;
195
+ border-bottom: $border-width $border-style var(--color-border-muted);
197
196
 
198
197
  @include breakpoint(sm) {
199
198
  // stylelint-disable-next-line primer/spacing
@@ -235,7 +234,7 @@ $SelectMenu-max-height: 480px !default;
235
234
  overflow-x: auto;
236
235
  overflow-y: hidden;
237
236
  // stylelint-disable-next-line primer/box-shadow
238
- box-shadow: inset 0 -1px 0 $border-gray-light;
237
+ box-shadow: inset 0 -1px 0 var(--color-border-muted);
239
238
  -webkit-overflow-scrolling: touch;
240
239
 
241
240
  // Hide scrollbar so it doesn't cover the text
@@ -253,12 +252,12 @@ $SelectMenu-max-height: 480px !default;
253
252
  padding: $spacer-2 $spacer-3;
254
253
  font-size: $font-size-small;
255
254
  font-weight: $font-weight-semibold;
256
- color: $text-gray-light;
255
+ color: var(--color-fg-muted);
257
256
  text-align: center;
258
257
  background-color: transparent;
259
258
  border: 0;
260
259
  // stylelint-disable-next-line primer/box-shadow
261
- box-shadow: inset 0 -1px 0 $border-gray-light;
260
+ box-shadow: inset 0 -1px 0 var(--color-border-muted);
262
261
 
263
262
  @include breakpoint(sm) {
264
263
  flex: none;
@@ -269,16 +268,16 @@ $SelectMenu-max-height: 480px !default;
269
268
  border-top-right-radius: $border-radius;
270
269
  }
271
270
 
272
- &[aria-selected="true"] {
271
+ &[aria-selected='true'] {
273
272
  z-index: 1; // Keeps box-shadow visible when hovering
274
- color: $text-gray-dark;
273
+ color: var(--color-fg-default);
275
274
  cursor: default;
276
- background-color: $bg-white;
275
+ background-color: var(--color-canvas-overlay);
277
276
  // stylelint-disable-next-line primer/box-shadow
278
- box-shadow: 0 0 0 1px $border-gray-light;
277
+ box-shadow: 0 0 0 1px var(--color-border-muted);
279
278
 
280
279
  @include breakpoint(sm) {
281
- border-color: $border-gray-light;
280
+ border-color: var(--color-border-muted);
282
281
  box-shadow: none;
283
282
  }
284
283
  }
@@ -292,8 +291,8 @@ $SelectMenu-max-height: 480px !default;
292
291
  // stylelint-disable-next-line primer/spacing
293
292
  padding: 7px $spacer-3;
294
293
  text-align: center;
295
- background-color: $bg-white;
296
- border-bottom: $border-width $border-style $border-gray-light;
294
+ background-color: var(--color-canvas-overlay);
295
+ border-bottom: $border-width $border-style var(--color-border-muted);
297
296
  }
298
297
 
299
298
  // Blankslate and Loading
@@ -304,7 +303,7 @@ $SelectMenu-max-height: 480px !default;
304
303
  .SelectMenu-loading {
305
304
  padding: $spacer-4 $spacer-3;
306
305
  text-align: center;
307
- background-color: $bg-white;
306
+ background-color: var(--color-canvas-overlay);
308
307
  }
309
308
 
310
309
  // Divider
@@ -316,13 +315,13 @@ $SelectMenu-max-height: 480px !default;
316
315
  margin: 0;
317
316
  font-size: $font-size-small;
318
317
  font-weight: $font-weight-semibold;
319
- color: $text-gray-light;
320
- background-color: $bg-gray;
321
- border-bottom: $border-width $border-style $border-gray-light;
318
+ color: var(--color-fg-muted);
319
+ background-color: var(--color-canvas-subtle);
320
+ border-bottom: $border-width $border-style var(--color-border-muted);
322
321
 
323
322
  // Borderless
324
323
  .SelectMenu-list--borderless & {
325
- border-top: $border-width $border-style $border-gray-light;
324
+ border-top: $border-width $border-style var(--color-border-muted);
326
325
 
327
326
  &:empty {
328
327
  padding: 0;
@@ -339,9 +338,9 @@ $SelectMenu-max-height: 480px !default;
339
338
  z-index: 0; // Avoid top border from getting covered by the negative margin of the list
340
339
  padding: $spacer-2 $spacer-3;
341
340
  font-size: $font-size-small;
342
- color: $text-gray-light;
341
+ color: var(--color-fg-muted);
343
342
  text-align: center;
344
- border-top: $border-width $border-style $border-gray-light;
343
+ border-top: $border-width $border-style var(--color-border-muted);
345
344
 
346
345
  @include breakpoint(sm) {
347
346
  // stylelint-disable-next-line primer/spacing
@@ -389,7 +388,7 @@ $SelectMenu-max-height: 480px !default;
389
388
 
390
389
  .SelectMenu-item[aria-checked=true] {
391
390
  font-weight: $font-weight-semibold;
392
- color: $text-gray-dark;
391
+ color: var(--color-fg-default);
393
392
 
394
393
  .SelectMenu-icon--check {
395
394
  visibility: visible;
@@ -404,7 +403,7 @@ $SelectMenu-max-height: 480px !default;
404
403
 
405
404
  .SelectMenu-item:disabled,
406
405
  .SelectMenu-item[aria-disabled=true] {
407
- color: $text-gray-light;
406
+ color: var(--color-primer-fg-disabled);
408
407
  pointer-events: none;
409
408
  }
410
409
 
@@ -415,34 +414,33 @@ $SelectMenu-max-height: 480px !default;
415
414
  @media (hover: hover) {
416
415
  body:not(.intent-mouse) .SelectMenu-closeButton:focus,
417
416
  .SelectMenu-closeButton:hover {
418
- color: $text-gray-dark;
417
+ color: var(--color-fg-default);
419
418
  }
420
419
 
421
420
  .SelectMenu-closeButton:active {
422
- color: $text-gray;
421
+ color: var(--color-fg-muted);
423
422
  }
424
423
 
425
424
  body:not(.intent-mouse) .SelectMenu-item:focus,
426
425
  .SelectMenu-item:hover {
427
- background-color: $bg-gray;
426
+ background-color: var(--color-neutral-subtle);
428
427
  }
429
428
 
430
429
  .SelectMenu-item:active {
431
- background-color: $bg-gray-light;
430
+ background-color: var(--color-canvas-subtle);
432
431
  }
433
432
 
434
433
  body:not(.intent-mouse) .SelectMenu-tab:focus {
435
- // stylelint-disable-next-line primer/colors
436
- background-color: $blue-100;
434
+ background-color: var(--color-select-menu-tap-focus-bg);
437
435
  }
438
436
 
439
437
  .SelectMenu-tab:hover {
440
- color: $text-gray-dark;
438
+ color: var(--color-fg-default);
441
439
  }
442
440
 
443
- .SelectMenu-tab:not([aria-selected="true"]):active {
444
- color: $text-gray-dark;
445
- background-color: $bg-gray;
441
+ .SelectMenu-tab:not([aria-selected='true']):active {
442
+ color: var(--color-fg-default);
443
+ background-color: var(--color-canvas-subtle);
446
444
  }
447
445
  }
448
446
 
@@ -454,13 +452,13 @@ $SelectMenu-max-height: 480px !default;
454
452
  // Android
455
453
  .SelectMenu-item:focus,
456
454
  .SelectMenu-item:active {
457
- background-color: $bg-gray-light;
455
+ background-color: var(--color-canvas-subtle);
458
456
  }
459
457
 
460
458
  // iOS Safari
461
459
  // :active would work if ontouchstart is added to the button
462
460
  // Instead this tweaks the "native" highlight color
463
461
  .SelectMenu-item {
464
- -webkit-tap-highlight-color: rgba($gray-300, 0.5);
462
+ -webkit-tap-highlight-color: var(--color-select-menu-tap-highlight);
465
463
  }
466
464
  }
@@ -1,9 +1,8 @@
1
- const currentVersion = process.env.PRIMER_VERSION || require('./package.json').version
2
-
3
1
  module.exports = {
4
- extends: ['stylelint-config-primer'],
5
- plugins: ['stylelint-scss', './lib/stylelint-todo'],
6
- syntax: 'scss',
2
+ extends: ['@primer/stylelint-config'],
3
+ plugins: ['stylelint-scss'],
4
+ customSyntax: require('postcss-scss'),
5
+ ignoreFiles: ['src/fonts/**/*'],
7
6
  rules: {
8
7
  'scss/dollar-variable-default': [true, {ignore: 'local'}],
9
8
  'primer/no-override': false,
@@ -12,6 +11,6 @@ module.exports = {
12
11
  'primer/spacing': true,
13
12
  'primer/typography': true,
14
13
  'primer/box-shadow': true,
15
- 'primer-css/TODO': [true, {currentVersion, severity: 'error'}]
14
+ 'primer/no-undefined-vars': [true, {files: 'node_modules/@primer/primitives/dist/scss/colors*/*.scss'}]
16
15
  }
17
16
  }
package/subhead/README.md CHANGED
@@ -19,7 +19,7 @@ The `@primer/css` npm package includes a standalone CSS build of this module in
19
19
 
20
20
  ## License
21
21
 
22
- [MIT](https://github.com/primer/css/blob/master/LICENSE) © [GitHub](https://github.com/)
22
+ [MIT](https://github.com/primer/css/blob/main/LICENSE) © [GitHub](https://github.com/)
23
23
 
24
24
 
25
25
  [scss]: https://sass-lang.com/documentation/syntax#scss
@@ -1,3 +1,3 @@
1
1
  // support files
2
- @import "../support/index.scss";
3
- @import "./subhead.scss";
2
+ @import '../support/index.scss';
3
+ @import './subhead.scss';
@@ -3,8 +3,9 @@
3
3
  display: flex;
4
4
  padding-bottom: $spacer-2;
5
5
  margin-bottom: $spacer-3;
6
- border-bottom: $border;
6
+ border-bottom: $border-width $border-style var(--color-border-muted);
7
7
  flex-flow: row wrap;
8
+ justify-content: flex-end; // Keep actions right aligned.
8
9
  }
9
10
 
10
11
  // Modifier class to give a lot of breathing room between sections of content.
@@ -22,18 +23,23 @@
22
23
  // Make the text bold and red for dangerous content
23
24
  .Subhead-heading--danger {
24
25
  font-weight: $font-weight-bold;
25
- color: $text-red;
26
+ color: var(--color-danger-fg);
26
27
  }
27
28
 
28
29
  // One-liner of supporting text
29
30
  .Subhead-description {
30
31
  font-size: $body-font-size;
31
- color: $text-gray;
32
+ color: var(--color-fg-muted);
32
33
  flex: 1 100%;
33
34
  }
34
35
 
35
36
  // Add 1 or 2 buttons to the right of the heading
36
37
  .Subhead-actions {
38
+ margin: $spacer-1 0 $spacer-1 $spacer-1;
37
39
  align-self: center;
38
40
  justify-content: flex-end;
41
+
42
+ + .Subhead-description {
43
+ margin-top: $spacer-1;
44
+ }
39
45
  }
package/support/README.md CHANGED
@@ -19,7 +19,7 @@ The `@primer/css` npm package includes a standalone CSS build of this module in
19
19
 
20
20
  ## License
21
21
 
22
- [MIT](https://github.com/primer/css/blob/master/LICENSE) © [GitHub](https://github.com/)
22
+ [MIT](https://github.com/primer/css/blob/main/LICENSE) © [GitHub](https://github.com/)
23
23
 
24
24
 
25
25
  [scss]: https://sass-lang.com/documentation/syntax#scss
@@ -1,11 +1,10 @@
1
1
  // variables
2
- @import "./variables/typography.scss";
3
- @import "./variables/colors.scss";
4
- @import "./variables/layout.scss";
5
- @import "./variables/misc.scss";
2
+ @import './variables/typography.scss';
3
+ @import './variables/layout.scss';
4
+ @import './variables/misc.scss';
6
5
 
7
6
  // mixins
8
- @import "./mixins/typography.scss";
9
- @import "./mixins/layout.scss";
10
- @import "./mixins/buttons.scss";
11
- @import "./mixins/misc.scss";
7
+ @import './mixins/color-modes.scss';
8
+ @import './mixins/typography.scss';
9
+ @import './mixins/layout.scss';
10
+ @import './mixins/misc.scss';
@@ -0,0 +1,106 @@
1
+ @mixin color-mode-theme($theme-name, $include-root: false) {
2
+ @if $include-root {
3
+ :root,
4
+ [data-color-mode="light"][data-light-theme="#{$theme-name}"],
5
+ [data-color-mode="dark"][data-dark-theme="#{$theme-name}"] {
6
+ @content;
7
+
8
+ /*! */ // This is a fix for a cssstats bug see https://github.com/cssstats/cssstats/issues/331
9
+ }
10
+ }
11
+ @else {
12
+ [data-color-mode="light"][data-light-theme="#{$theme-name}"],
13
+ [data-color-mode="dark"][data-dark-theme="#{$theme-name}"] {
14
+ @content;
15
+ }
16
+ }
17
+
18
+ @media (prefers-color-scheme: light) {
19
+ [data-color-mode="auto"][data-light-theme="#{$theme-name}"] {
20
+ @content;
21
+ }
22
+ }
23
+
24
+ @media (prefers-color-scheme: dark) {
25
+ [data-color-mode="auto"][data-dark-theme="#{$theme-name}"] {
26
+ @content;
27
+ }
28
+ }
29
+ }
30
+
31
+ @mixin color-mode($mode) {
32
+ @if $mode == light {
33
+ :root,
34
+ [data-color-mode="light"][data-light-theme*="#{$mode}"],
35
+ [data-color-mode="dark"][data-dark-theme*="#{$mode}"] {
36
+ @content;
37
+ }
38
+ }
39
+ @else {
40
+ [data-color-mode="light"][data-light-theme*="#{$mode}"],
41
+ [data-color-mode="dark"][data-dark-theme*="#{$mode}"] {
42
+ @content;
43
+ }
44
+ }
45
+
46
+ @media (prefers-color-scheme: light) {
47
+ [data-color-mode="auto"][data-light-theme*="#{$mode}"] {
48
+ @content;
49
+ }
50
+ }
51
+
52
+ @media (prefers-color-scheme: dark) {
53
+ [data-color-mode="auto"][data-dark-theme*="#{$mode}"] {
54
+ @content;
55
+ }
56
+ }
57
+ }
58
+
59
+ // This mixin takes a map of color mode vars and splits them into dark and light mode
60
+ // The goal is to reduce the amount of dark/light mode selectors compiled.
61
+ //
62
+ // Example input for $color-map
63
+ //
64
+ // @include color-variables(("custom-css-variable-1": (
65
+ // light: var(--color-scale-gray-3),
66
+ // dark: var(--color-scale-gray-5)
67
+ // ),
68
+ // "custom-css-variable-2": (
69
+ // light: var(--color-scale-gray-2),
70
+ // dark: var(--color-scale-gray-6)
71
+ // ),
72
+ // "custom-css-variable-3": (
73
+ // light: var(--color-scale-gray-2),
74
+ // dark: var(--color-scale-gray-6)
75
+ // )
76
+ // ));
77
+ @mixin color-variables($color-map) {
78
+ // Create map to store incoming variables
79
+ $dark-colors: ();
80
+ $light-colors: ();
81
+
82
+ @each $name, $value in $color-map {
83
+ @each $type, $color in $value {
84
+ @if $type == dark {
85
+ $dark-colors: append($dark-colors, (--color-#{$name}, #{$color}));
86
+ }
87
+ @else {
88
+ $light-colors: append($light-colors, (--color-#{$name}, #{$color}));
89
+ }
90
+ }
91
+ }
92
+
93
+ $mode-colors: (
94
+ dark: $dark-colors,
95
+ light: $light-colors
96
+ );
97
+
98
+ // Loop through sorted list
99
+ @each $mode, $variables in $mode-colors {
100
+ @include color-mode($mode) {
101
+ @each $prop, $val in $variables {
102
+ #{$prop}: $val;
103
+ }
104
+ }
105
+ }
106
+ }
@@ -1,29 +1,35 @@
1
1
  // Generate a two-color caret for any element.
2
- @mixin double-caret($foreground: $text-white, $background: lighten($gray-300, 5%)) {
2
+ @mixin double-caret($background: var(--color-canvas-default), $border: var(--color-border-default)) {
3
3
  &::after,
4
4
  &::before {
5
5
  position: absolute;
6
6
  top: 11px;
7
7
  right: 100%;
8
- left: -16px;
8
+ left: -8px;
9
9
  display: block;
10
- width: 0;
11
- height: 0;
10
+ width: 8px;
11
+ height: 16px;
12
12
  pointer-events: none;
13
- content: " ";
14
- border-color: transparent;
15
- border-style: solid solid outset;
13
+ content: ' ';
14
+ clip-path: polygon(0 50%, 100% 0, 100% 100%);
16
15
  }
17
16
 
18
17
  &::after {
19
- margin-top: 1px;
20
- margin-left: 2px;
21
- border-width: 7px;
22
- border-right-color: $foreground;
18
+ margin-left: 1px;
19
+ background-color: var(--color-canvas-default);
20
+ background-image: linear-gradient($background, $background);
23
21
  }
24
22
 
25
23
  &::before {
26
- border-width: 8px;
27
- border-right-color: $background;
24
+ background-color: $border;
28
25
  }
29
26
  }
27
+
28
+ // global focus styles
29
+
30
+ @mixin focusOutline {
31
+ position: relative;
32
+ z-index: 1;
33
+ outline: 2px solid var(--color-accent-fg);
34
+ outline-offset: 2px;
35
+ }
@@ -33,7 +33,7 @@ $spacer: 8px !default;
33
33
 
34
34
  // Our spacing scale
35
35
  $spacer-0: 0 !default; // 0
36
- $spacer-1: round($spacer / 2) !default; // 4px
36
+ $spacer-1: $spacer * 0.5 !default; // 4px
37
37
  $spacer-2: $spacer !default; // 8px
38
38
  $spacer-3: $spacer * 2 !default; // 16px
39
39
  $spacer-4: $spacer * 3 !default; // 24px
@@ -63,6 +63,38 @@ $spacer-map: (
63
63
  6: $spacer-6,
64
64
  ) !default;
65
65
 
66
+ // Increases the core spacing scale first by 8px for $spacer-7, then by 16px
67
+ // increments from $spacer-8 to $spacer-12, i.e. after 40px, we have 48, 64,
68
+ // 80, 96, etc.
69
+ $spacer-7: $spacer * 6 !default; // 48px
70
+ $spacer-8: $spacer * 8 !default; // 64px
71
+ $spacer-9: $spacer * 10 !default; // 80px
72
+ $spacer-10: $spacer * 12 !default; // 96px
73
+ $spacer-11: $spacer * 14 !default; // 112px
74
+ $spacer-12: $spacer * 16 !default; // 128px
75
+
76
+ $spacers-large: (
77
+ 7: $spacer-7,
78
+ 8: $spacer-8,
79
+ 9: $spacer-9,
80
+ 10: $spacer-10,
81
+ 11: $spacer-11,
82
+ 12: $spacer-12,
83
+ ) !default;
84
+
85
+ $spacer-map-extended: map-merge(
86
+ (
87
+ 0: 0,
88
+ 1: $spacer-1,
89
+ 2: $spacer-2,
90
+ 3: $spacer-3,
91
+ 4: $spacer-4,
92
+ 5: $spacer-5,
93
+ 6: $spacer-6,
94
+ ),
95
+ $spacers-large,
96
+ ) !default;
97
+
66
98
  // Em spacer variables
67
99
  $em-spacer-1: 0.0625em !default; // 1/16
68
100
  $em-spacer-2: 0.125em !default; // 1/8
@@ -117,14 +149,6 @@ $breakpoints: (
117
149
  // This map in the form (breakpoint: variant) is used to iterate over
118
150
  // breakpoints and create both responsive and non-responsive classes in one
119
151
  // loop:
120
- //
121
- // ```scss
122
- // @each $breakpoint, $variant of $responsive-variants {
123
- // @include breakpoint($breakpoint) {
124
- // .foo#{$variant}-bar { foo: bar !important; }
125
- // }
126
- // }
127
- // ```
128
152
  $responsive-variants: (
129
153
  "": "",
130
154
  sm: "-sm",
@@ -141,3 +165,38 @@ $responsive-positions: (
141
165
  fixed,
142
166
  sticky
143
167
  ) !default;
168
+
169
+ $sidebar-width: (
170
+ sm: 220px,
171
+ md: 256px,
172
+ lg: 296px
173
+ ) !default;
174
+
175
+ $sidebar-narrow-width: (
176
+ md: 240px,
177
+ lg: 256px
178
+ ) !default;
179
+
180
+ $sidebar-wide-width: (
181
+ md: 296px,
182
+ lg: 320px,
183
+ xl: 344px
184
+ ) !default;
185
+
186
+ $gutter: (
187
+ md: $spacer-3,
188
+ lg: $spacer-4,
189
+ xl: $spacer-5
190
+ ) !default;
191
+
192
+ $gutter-condensed: (
193
+ md: $spacer-3,
194
+ lg: $spacer-3,
195
+ xl: $spacer-4
196
+ ) !default;
197
+
198
+ $gutter-spacious: (
199
+ md: $spacer-4,
200
+ lg: $spacer-5,
201
+ xl: $spacer-6
202
+ ) !default;
@@ -2,41 +2,16 @@
2
2
 
3
3
  // Border
4
4
  $border-width: 1px !default;
5
- $border-color: $border-gray !default;
6
5
  $border-style: solid !default;
7
- $border: $border-width $border-color $border-style !default;
6
+ $border: $border-width $border-style var(--color-border-default) !default;
8
7
 
9
8
  // Border Radius
10
9
  $border-radius-1: 4px !default;
11
10
  $border-radius-2: 6px !default;
11
+ $border-radius-3: 8px !default;
12
12
  $border-radius: $border-radius-2 !default;
13
13
 
14
- // Box shadow
15
- $box-shadow: 0 1px 0 rgba($black, 0.04) !default;
16
- $box-shadow-medium: 0 3px 6px rgba($gray-400, 0.15) !default;
17
- $box-shadow-large: 0 8px 24px rgba($gray-400, 0.2) !default;
18
- $box-shadow-extra-large: 0 12px 48px rgba($gray-400, 0.3) !default;
19
-
20
- $box-shadow-highlight: inset 0 1px 0 rgba($white, 0.25) !default; // top highlight
21
- $box-shadow-inset: inset 0 1px 0 rgba($border-color, 0.2) !default; // top inner shadow
22
- $box-shadow-focus: 0 0 0 3px rgba($border-blue, 0.3) !default; // blue focus ring
23
-
24
- // Button variables
25
- $border-color-button: $black-fade-15 !default;
26
- $btn-active-shadow: inset 0 0.15em 0.3em $black-fade-15 !default; // TODO: Deprecate?
27
-
28
- // Form variables
29
- $form-control-shadow: inset 0 1px 2px rgba($black, 0.075) !default; // TODO: Deprecate?
30
- $btn-input-focus-shadow: 0 0 0 0.2em rgba($blue, 0.3) !default; // TODO: Deprecate? Replaced by $box-shadow-focus
31
-
32
14
  // Tooltips
33
15
  $tooltip-max-width: 250px !default;
34
- $tooltip-background-color: $black !default;
35
- $tooltip-text-color: $white !default;
36
16
  $tooltip-delay: 0.4s !default;
37
17
  $tooltip-duration: 0.1s !default;
38
-
39
- // diffstat background colors
40
- $bg-diffstat-added: darken($green-400, 5%) !default;
41
- $bg-diffstat-deleted: $red-600 !default;
42
- $bg-diffstat-neutral: $gray-300 !default;
@@ -35,7 +35,8 @@ $lh-default: 1.5 !default;
35
35
  $body-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji" !default;
36
36
 
37
37
  // Monospace font stack
38
- $mono-font: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace !default;
38
+ // Note: SFMono-Regular needs to come before SF Mono to fix an older version of the font in Chrome
39
+ $mono-font: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace !default;
39
40
 
40
41
  // The base body size
41
42
  $body-font-size: 14px !default;