@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
@@ -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
@@ -7,7 +7,7 @@
7
7
  width: 0;
8
8
  height: 0;
9
9
  vertical-align: middle;
10
- content: "";
10
+ content: '';
11
11
  border-style: $border-style;
12
12
  // stylelint-disable-next-line primer/borders
13
13
  border-width: $spacer-1 $spacer-1 0;
@@ -18,6 +18,7 @@
18
18
 
19
19
  // Requires a positioning class (e.g., `.dropdown-menu-w`) to determine which
20
20
  // way the menu should render from the element triggering it.
21
+
21
22
  .dropdown-menu {
22
23
  position: absolute;
23
24
  top: 100%;
@@ -29,29 +30,31 @@
29
30
  // stylelint-disable-next-line primer/spacing
30
31
  margin-top: 2px;
31
32
  list-style: none;
32
- background-color: $bg-white;
33
+ background-color: var(--color-canvas-overlay);
33
34
  background-clip: padding-box;
34
- border: $border;
35
+ border: $border-width $border-style var(--color-border-default);
35
36
  border-radius: $border-radius;
36
- box-shadow: $box-shadow-large;
37
+ box-shadow: var(--color-shadow-large);
37
38
 
38
39
  &::before,
39
40
  &::after {
40
41
  position: absolute;
41
42
  display: inline-block;
42
- content: "";
43
+ content: '';
43
44
  }
44
45
 
46
+ // caret border
45
47
  &::before {
46
48
  // stylelint-disable-next-line primer/borders
47
49
  border: $spacer-2 $border-style transparent;
48
- border-bottom-color: $border-black-fade;
50
+ border-bottom-color: var(--color-border-default);
49
51
  }
50
52
 
53
+ // caret background (should match dropdown background)
51
54
  &::after {
52
55
  // stylelint-disable-next-line primer/borders
53
56
  border: 7px $border-style transparent;
54
- border-bottom-color: $border-white;
57
+ border-bottom-color: var(--color-canvas-overlay);
55
58
  }
56
59
 
57
60
  // stylelint-disable-next-line selector-max-type
@@ -75,21 +78,28 @@
75
78
  display: block;
76
79
  padding: $spacer-1 $spacer-2 $spacer-1 $spacer-3;
77
80
  overflow: hidden;
78
- color: $text-gray-dark;
81
+ color: var(--color-fg-default);
79
82
  text-overflow: ellipsis;
80
83
  white-space: nowrap;
81
84
 
82
- &:focus,
83
85
  &:hover {
84
- color: $text-white;
86
+ color: var(--color-fg-on-emphasis);
85
87
  text-decoration: none;
86
- background-color: $bg-blue;
87
- outline: none;
88
+ background-color: var(--color-accent-emphasis);
88
89
 
89
90
  > .octicon {
90
91
  color: inherit;
91
92
  opacity: 1;
92
93
  }
94
+
95
+ [class*='color-text-'] {
96
+ color: inherit !important;
97
+ }
98
+
99
+ > .Label {
100
+ color: inherit !important;
101
+ border-color: currentColor;
102
+ }
93
103
  }
94
104
 
95
105
  &.btn-link {
@@ -109,16 +119,16 @@
109
119
  display: block;
110
120
  height: 0;
111
121
  margin: $spacer-2 0;
112
- border-top: $border;
122
+ border-top: $border-width $border-style var(--color-border-default);
113
123
  }
114
124
 
115
125
  .dropdown-header {
116
126
  padding: $spacer-1 $spacer-3;
117
127
  font-size: $h6-size;
118
- color: $text-gray;
128
+ color: var(--color-fg-muted);
119
129
  }
120
130
 
121
- .dropdown-item[aria-checked="false"] .octicon-check {
131
+ .dropdown-item[aria-checked='false'] .octicon-check {
122
132
  display: none;
123
133
  }
124
134
 
@@ -140,7 +150,7 @@
140
150
  right: -$spacer-3;
141
151
  left: auto;
142
152
  border-color: transparent;
143
- border-left-color: $border-black-fade;
153
+ border-left-color: var(--color-border-default);
144
154
  }
145
155
 
146
156
  &::after {
@@ -148,7 +158,7 @@
148
158
  right: -14px;
149
159
  left: auto;
150
160
  border-color: transparent;
151
- border-left-color: $border-white;
161
+ border-left-color: var(--color-canvas-overlay);
152
162
  }
153
163
  }
154
164
 
@@ -160,17 +170,17 @@
160
170
  margin-left: $spacer-2;
161
171
 
162
172
  &::before {
163
- top: $spacer-2;
173
+ top: 10px;
164
174
  left: -$spacer-3;
165
175
  border-color: transparent;
166
- border-right-color: $border-black-fade;
176
+ border-right-color: var(--color-border-default);
167
177
  }
168
178
 
169
179
  &::after {
170
180
  top: 11px;
171
181
  left: -14px;
172
182
  border-color: transparent;
173
- border-right-color: $border-white;
183
+ border-right-color: var(--color-canvas-overlay);
174
184
  }
175
185
  }
176
186
 
@@ -191,7 +201,7 @@
191
201
  bottom: -$spacer-2;
192
202
  left: 9px;
193
203
  // stylelint-disable-next-line primer/borders
194
- border-top: $spacer-2 $border-style $border-black-fade;
204
+ border-top: $spacer-2 $border-style var(--color-border-default);
195
205
  // stylelint-disable-next-line primer/borders
196
206
  border-right: $spacer-2 $border-style transparent;
197
207
  border-bottom: 0;
@@ -203,7 +213,7 @@
203
213
  bottom: -7px;
204
214
  left: 10px;
205
215
  // stylelint-disable-next-line primer/borders
206
- border-top: 7px $border-style $border-white;
216
+ border-top: 7px $border-style var(--color-canvas-overlay);
207
217
  // stylelint-disable-next-line primer/borders
208
218
  border-right: 7px $border-style transparent;
209
219
  border-bottom: 0;
@@ -258,69 +268,3 @@
258
268
  left: 10px;
259
269
  }
260
270
  }
261
-
262
- // Dark dropdowns
263
- .dropdown-menu-dark {
264
- color: $text-white;
265
- // stylelint-disable-next-line primer/colors
266
- background: $gray-800;
267
- border-color: $border-gray-darker;
268
- box-shadow: $box-shadow-large;
269
-
270
- &::before {
271
- border-bottom-color: $border-gray-darker;
272
- }
273
-
274
- &::after {
275
- // stylelint-disable-next-line primer/borders
276
- border-bottom-color: $gray-800;
277
- }
278
-
279
- .dropdown-header {
280
- // stylelint-disable-next-line primer/colors
281
- color: $gray-300;
282
- }
283
-
284
- .dropdown-divider {
285
- border-top-color: $border-gray-darker;
286
- }
287
-
288
- .dropdown-item {
289
- color: inherit;
290
- }
291
-
292
- // Directional classes
293
-
294
- &.dropdown-menu-w {
295
- &::before {
296
- border-color: transparent transparent transparent $border-gray-darker;
297
- }
298
-
299
- &::after {
300
- // stylelint-disable-next-line primer/borders
301
- border-color: transparent transparent transparent $gray-800;
302
- }
303
- }
304
-
305
- &.dropdown-menu-e {
306
- &::before {
307
- border-color: transparent $border-gray-darker transparent transparent;
308
- }
309
-
310
- &::after {
311
- // stylelint-disable-next-line primer/borders
312
- border-color: transparent $gray-800 transparent transparent;
313
- }
314
- }
315
-
316
- &.dropdown-menu-ne {
317
- &::before {
318
- border-color: $border-gray-darker transparent transparent transparent;
319
- }
320
-
321
- &::after {
322
- // stylelint-disable-next-line primer/borders
323
- border-color: $gray-800 transparent transparent transparent;
324
- }
325
- }
326
- }
@@ -1,2 +1,2 @@
1
- @import "../support/index.scss";
2
- @import "./dropdown.scss";
1
+ @import '../support/index.scss';
2
+ @import './dropdown.scss';
package/forms/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
@@ -22,33 +22,33 @@ label {
22
22
  font-size: $body-font-size;
23
23
  // stylelint-disable-next-line primer/typography
24
24
  line-height: 20px;
25
- color: $text-gray-dark;
25
+ color: var(--color-fg-default);
26
26
  vertical-align: middle;
27
- background-color: $bg-white;
27
+ background-color: var(--color-canvas-default);
28
28
  background-repeat: no-repeat; // Repeat and position set for form states (success, error, etc)
29
29
  background-position: right 8px center; // For form validation. This keeps images 8px from right and centered vertically.
30
- border: $border-width $border-style $border-color;
30
+ border: $border-width $border-style var(--color-border-default);
31
31
  border-radius: $border-radius;
32
- outline: none;
33
- box-shadow: $box-shadow-inset;
34
-
35
- &.focus,
36
- &:focus {
37
- border-color: $border-blue;
38
- outline: none;
39
- box-shadow: $box-shadow-focus;
40
- }
32
+ box-shadow: var(--color-primer-shadow-inset);
41
33
 
42
34
  &[disabled] {
43
- // stylelint-disable-next-line primer/colors
44
- color: $gray-400;
45
- // stylelint-disable-next-line primer/colors
46
- background-color: #f3f4f6; // custom gray
35
+ color: var(--color-primer-fg-disabled);
36
+ background-color: var(--color-input-disabled-bg);
37
+ border-color: var(--color-border-default);
38
+ -webkit-text-fill-color: var(--color-primer-fg-disabled); // Fix for Safari
39
+ opacity: 1; // Fix for Safari iOS
40
+
41
+ &::placeholder {
42
+ color: var(--color-primer-fg-disabled);
43
+ }
47
44
  }
48
45
 
49
- // Ensures inputs don't zoom on mobile but are body-font size on desktop
50
- @include breakpoint(md) {
51
- font-size: $body-font-size;
46
+ // Ensures inputs don't zoom on mobile iPhone but are body-font size on iPad
47
+ @supports (-webkit-touch-callout: none) {
48
+ font-size: $h4-size;
49
+ @include breakpoint(md) {
50
+ font-size: $body-font-size;
51
+ }
52
52
  }
53
53
  }
54
54
 
@@ -61,41 +61,22 @@ textarea.form-control {
61
61
 
62
62
  // Inputs with contrast for easy light gray backgrounds against white.
63
63
  .input-contrast {
64
- background-color: $bg-gray-light;
65
-
66
- &:focus { background-color: $bg-white; }
67
- }
64
+ background-color: var(--color-canvas-inset);
68
65
 
69
- // Inputs to be used against dark backgrounds.
70
- .input-dark {
71
- color: $text-white;
72
- // stylelint-disable-next-line primer/colors
73
- background-color: $white-fade-15;
74
- border-color: transparent;
75
- box-shadow: none;
76
-
77
- &::placeholder {
78
- color: inherit;
79
- opacity: 0.6; // inceases contrast ratio to 4.52
80
- }
81
-
82
- &.focus,
83
66
  &:focus {
84
- // stylelint-disable-next-line primer/borders
85
- border-color: $black-fade-30;
86
- // stylelint-disable-next-line primer/box-shadow
87
- box-shadow: 0 0 0 0.2em rgba($blue-300, 0.4);
67
+ background-color: var(--color-canvas-default);
88
68
  }
89
69
  }
90
70
 
91
71
  // Custom styling for HTML5 validation bubbles (WebKit only)
92
72
  ::placeholder {
93
- color: $text-gray-light;
73
+ color: var(--color-fg-subtle);
94
74
  opacity: 1; // override opacity in normalize.css
95
75
  }
96
76
 
97
77
  // Mini inputs, to match .minibutton
98
78
  .input-sm {
79
+ min-height: $size-4;
99
80
  // stylelint-disable-next-line primer/spacing
100
81
  padding-top: 3px;
101
82
  // stylelint-disable-next-line primer/spacing
@@ -149,14 +130,13 @@ textarea.form-control {
149
130
  // stylelint-disable-next-line primer/spacing
150
131
  padding: 2px $spacer-1;
151
132
  font-style: normal;
152
- // stylelint-disable-next-line primer/colors
153
- background: $yellow-100;
133
+ background: var(--color-attention-subtle);
154
134
  border-radius: $border-radius;
155
135
  }
156
136
  }
157
137
 
158
- input[type=checkbox],
159
- input[type=radio] {
138
+ input[type='checkbox'],
139
+ input[type='radio'] {
160
140
  float: left;
161
141
  // stylelint-disable-next-line primer/spacing
162
142
  margin: 5px 0 0 -20px;
@@ -168,7 +148,7 @@ textarea.form-control {
168
148
  margin: 0;
169
149
  font-size: $font-size-small;
170
150
  font-weight: $font-weight-normal;
171
- color: $text-gray;
151
+ color: var(--color-fg-muted);
172
152
  }
173
153
  }
174
154
 
@@ -180,7 +160,7 @@ textarea.form-control {
180
160
  &:checked {
181
161
  // child of sibling or sibling
182
162
  ~ * .form-checkbox-details,
183
- ~ .form-checkbox-details { // eslint-disable selector-combinator-space-before
163
+ ~ .form-checkbox-details {
184
164
  display: block;
185
165
  }
186
166
  }
@@ -206,7 +186,7 @@ textarea.form-control {
206
186
  display: inline-block;
207
187
  // stylelint-disable-next-line primer/spacing
208
188
  margin: 5px 0 0;
209
- color: $text-gray;
189
+ color: var(--color-fg-muted);
210
190
  }
211
191
 
212
192
  img {
@@ -222,8 +202,10 @@ textarea.form-control {
222
202
  margin: 28px 25px 0 -20px;
223
203
  }
224
204
 
225
- // stylelint-disable-next-line primer/spacing
226
- .form-select { margin-top: 5px; }
205
+ .form-select {
206
+ // stylelint-disable-next-line primer/spacing
207
+ margin-top: 5px;
208
+ }
227
209
  }
228
210
 
229
211
  // Hide the up/down buttons in <input type="number"> in the login form, the
@@ -255,11 +237,9 @@ input::-webkit-inner-spin-button {
255
237
  // stylelint-disable-next-line primer/spacing
256
238
  margin: 10px 0;
257
239
  font-size: $h5-size;
258
- // stylelint-disable-next-line primer/colors
259
- color: $yellow-900;
260
- // stylelint-disable-next-line primer/colors
261
- background: $yellow-100;
262
- border: $border-width $border-style $border-yellow;
240
+ color: var(--color-attention-fg);
241
+ background: var(--color-attention-subtle);
242
+ border: $border-width $border-style var(--color-attention-emphasis);
263
243
  border-radius: $border-radius;
264
244
 
265
245
  p {
@@ -267,5 +247,7 @@ input::-webkit-inner-spin-button {
267
247
  line-height: $lh-default;
268
248
  }
269
249
 
270
- a { font-weight: $font-weight-bold; }
250
+ a {
251
+ font-weight: $font-weight-bold;
252
+ }
271
253
  }
@@ -20,10 +20,10 @@
20
20
  max-width: 100%;
21
21
  // stylelint-disable-next-line primer/spacing
22
22
  margin-right: 5px;
23
- background-color: $bg-gray-light;
23
+ background-color: var(--color-canvas-inset);
24
24
 
25
25
  &:focus {
26
- background-color: $bg-white;
26
+ background-color: var(--color-canvas-default);
27
27
  }
28
28
 
29
29
  &.shorter { width: 130px; }
@@ -81,9 +81,9 @@
81
81
  h4 {
82
82
  margin: $spacer-1 0 0;
83
83
 
84
- &.is-error { color: $text-red; }
84
+ &.is-error { color: var(--color-danger-fg); }
85
85
 
86
- &.is-success { color: $text-green; }
86
+ &.is-success { color: var(--color-success-fg); }
87
87
 
88
88
  + .note {
89
89
  margin-top: 0;
@@ -101,8 +101,8 @@
101
101
  .form-group-header label::after {
102
102
  // stylelint-disable-next-line primer/spacing
103
103
  padding-left: 5px;
104
- color: $text-red;
105
- content: "*";
104
+ color: var(--color-danger-fg);
105
+ content: '*';
106
106
  }
107
107
  }
108
108
 
@@ -134,7 +134,7 @@
134
134
  &.successful {
135
135
  .success {
136
136
  display: inline;
137
- color: $text-green;
137
+ color: var(--color-success-fg);
138
138
  }
139
139
  }
140
140
 
@@ -169,7 +169,7 @@
169
169
  width: 0;
170
170
  height: 0;
171
171
  pointer-events: none;
172
- content: " ";
172
+ content: ' ';
173
173
  // stylelint-disable-next-line primer/borders
174
174
  border: $border-style transparent;
175
175
  }
@@ -190,76 +190,59 @@
190
190
 
191
191
  &.successed {
192
192
  .success {
193
- // stylelint-disable-next-line primer/colors
194
- color: $green-900;
195
- // stylelint-disable-next-line primer/colors
196
- background-color: $green-100;
197
- border-color: $border-green;
193
+ color: var(--color-fg-default);
194
+ background-color: var(--color-canvas-default); // Makes sure the background is opaque to cover any content underneath
195
+ background-image: linear-gradient(var(--color-success-subtle), var(--color-success-subtle));
196
+ border-color: var(--color-success-muted);
198
197
 
199
- &::after {
200
- // stylelint-disable-next-line primer/borders
201
- border-bottom-color: $green-100;
202
- }
203
-
204
- &::before {
205
- border-bottom-color: $border-green;
206
- }
198
+ &::after { border-bottom-color: var(--color-success-subtle); }
199
+ &::before { border-bottom-color: var(--color-success-muted); }
207
200
  }
208
201
  }
209
202
 
210
203
  &.warn {
211
204
  .form-control {
212
- // stylelint-disable-next-line primer/borders
213
- border-color: $yellow-600;
205
+ border-color: var(--color-attention-emphasis);
214
206
  }
215
207
 
216
208
  .warning {
217
- // stylelint-disable-next-line primer/colors
218
- background-color: $yellow-200;
219
- border-color: $border-yellow;
220
-
221
- &::after {
222
- // stylelint-disable-next-line primer/borders
223
- border-bottom-color: $yellow-200;
224
- }
209
+ color: var(--color-fg-default);
210
+ background-color: var(--color-canvas-default); // Makes sure the background is opaque to cover any content underneath
211
+ background-image: linear-gradient(var(--color-attention-subtle), var(--color-attention-subtle));
212
+ border-color: var(--color-attention-muted);
225
213
 
226
- &::before {
227
- border-bottom-color: $border-yellow;
228
- }
214
+ &::after { border-bottom-color: var(--color-attention-subtle); }
215
+ &::before { border-bottom-color: var(--color-attention-muted); }
229
216
  }
230
217
  }
231
218
 
232
219
  &.errored {
233
220
  .form-control {
234
- // stylelint-disable-next-line primer/borders
235
- border-color: $red-600;
221
+ border-color: var(--color-danger-emphasis);
236
222
  }
237
223
 
238
224
  label {
239
- color: $text-red;
225
+ color: var(--color-danger-fg);
240
226
  }
241
227
 
242
228
  .error {
243
- background-color: $bg-red-light;
244
- border-color: $border-red-light;
229
+ color: var(--color-fg-default);
230
+ background-color: var(--color-canvas-default); // Makes sure the background is opaque to cover any content underneath
231
+ background-image: linear-gradient(var(--color-danger-subtle), var(--color-danger-subtle));
232
+ border-color: var(--color-danger-muted);
245
233
 
246
- &::after {
247
- // stylelint-disable-next-line primer/borders
248
- border-bottom-color: $bg-red-light;
249
- }
250
-
251
- &::before {
252
- border-bottom-color: $border-red-light;
253
- }
234
+ &::after { border-bottom-color: var(--color-danger-subtle); }
235
+ &::before { border-bottom-color: var(--color-danger-muted); }
254
236
  }
255
237
  }
256
238
  }
257
239
 
240
+ // tooltip
258
241
  .note {
259
242
  min-height: 17px;
260
243
  margin: $spacer-1 0 2px;
261
244
  font-size: $font-size-small;
262
- color: $text-gray;
245
+ color: var(--color-fg-muted);
263
246
 
264
247
  .spinner {
265
248
  // stylelint-disable-next-line primer/spacing
@@ -6,11 +6,12 @@
6
6
  max-width: 100%;
7
7
  height: $size-5;
8
8
  padding-right: $spacer-4;
9
- background-color: $bg-white;
10
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAUCAMAAACzvE1FAAAADFBMVEUzMzMzMzMzMzMzMzMKAG/3AAAAA3RSTlMAf4C/aSLHAAAAPElEQVR42q3NMQ4AIAgEQTn//2cLdRKppSGzBYwzVXvznNWs8C58CiussPJj8h6NwgorrKRdTvuV9v16Afn0AYFOB7aYAAAAAElFTkSuQmCC");
9
+ background-color: var(--color-canvas-default);
10
+ // SVG with fill: #586069 (--color-icon-secondary)
11
+ background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iIzU4NjA2OSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNC40MjcgOS40MjdsMy4zOTYgMy4zOTZhLjI1MS4yNTEgMCAwMC4zNTQgMGwzLjM5Ni0zLjM5NkEuMjUuMjUgMCAwMDExLjM5NiA5SDQuNjA0YS4yNS4yNSAwIDAwLS4xNzcuNDI3ek00LjQyMyA2LjQ3TDcuODIgMy4wNzJhLjI1LjI1IDAgMDEuMzU0IDBMMTEuNTcgNi40N2EuMjUuMjUgMCAwMS0uMTc3LjQyN0g0LjZhLjI1LjI1IDAgMDEtLjE3Ny0uNDI3eiIgLz48L3N2Zz4=');
11
12
  background-repeat: no-repeat;
12
- background-position: right 8px center;
13
- background-size: 8px 10px;
13
+ background-position: right 4px center;
14
+ background-size: 16px;
14
15
  appearance: none;
15
16
 
16
17
  // Hides the default caret in IE11
@@ -23,6 +24,13 @@
23
24
  }
24
25
  }
25
26
 
27
+ @include color-mode(dark) {
28
+ .form-select {
29
+ // SVG with fill: #6e7681 (--color-icon-secondary)
30
+ background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iIzZlNzY4MSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNC40MjcgOS40MjdsMy4zOTYgMy4zOTZhLjI1MS4yNTEgMCAwMC4zNTQgMGwzLjM5Ni0zLjM5NkEuMjUuMjUgMCAwMDExLjM5NiA5SDQuNjA0YS4yNS4yNSAwIDAwLS4xNzcuNDI3ek00LjQyMyA2LjQ3TDcuODIgMy4wNzJhLjI1LjI1IDAgMDEuMzU0IDBMMTEuNTcgNi40N2EuMjUuMjUgMCAwMS0uMTc3LjQyN0g0LjZhLjI1LjI1IDAgMDEtLjE3Ny0uNDI3eiIgLz48L3N2Zz4=');
31
+ }
32
+ }
33
+
26
34
  .select-sm {
27
35
  height: $size-4;
28
36
  // stylelint-disable-next-line primer/spacing