@primer/css 0.0.0-1f16d51 → 0.0.0-202110123633

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 (342) hide show
  1. package/CHANGELOG.md +825 -134
  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 -78
  7. package/alerts/README.md +1 -1
  8. package/alerts/flash.scss +32 -26
  9. package/alerts/index.scss +2 -2
  10. package/autocomplete/README.md +1 -1
  11. package/autocomplete/autocomplete.scss +18 -8
  12. package/autocomplete/index.scss +3 -3
  13. package/autocomplete/suggester.scss +27 -10
  14. package/avatars/README.md +1 -1
  15. package/avatars/avatar-parent-child.scss +2 -3
  16. package/avatars/avatar-stack.scss +12 -14
  17. package/avatars/avatar.scss +4 -0
  18. package/avatars/circle-badge.scss +4 -4
  19. package/avatars/index.scss +5 -5
  20. package/base/README.md +1 -1
  21. package/base/base.scss +4 -5
  22. package/base/index.scss +6 -5
  23. package/base/kbd.scss +5 -6
  24. package/base/normalize.scss +1 -1
  25. package/base/octicons.scss +6 -0
  26. package/blankslate/README.md +1 -1
  27. package/blankslate/blankslate.scss +7 -4
  28. package/blankslate/index.scss +2 -2
  29. package/box/README.md +1 -1
  30. package/box/box.scss +38 -38
  31. package/box/index.scss +2 -2
  32. package/branch-name/README.md +1 -1
  33. package/branch-name/branch-name.scss +15 -10
  34. package/branch-name/index.scss +2 -2
  35. package/breadcrumb/README.md +1 -1
  36. package/breadcrumb/breadcrumb.scss +12 -7
  37. package/breadcrumb/index.scss +2 -2
  38. package/buttons/README.md +1 -1
  39. package/buttons/button.scss +123 -104
  40. package/buttons/index.scss +4 -4
  41. package/buttons/misc.scss +50 -29
  42. package/color-modes/index.scss +9 -0
  43. package/color-modes/native.scss +10 -0
  44. package/color-modes/themes/dark.scss +7 -0
  45. package/color-modes/themes/dark_colorblind.scss +7 -0
  46. package/color-modes/themes/dark_dimmed.scss +7 -0
  47. package/color-modes/themes/dark_high_contrast.scss +7 -0
  48. package/color-modes/themes/light.scss +7 -0
  49. package/color-modes/themes/light_colorblind.scss +7 -0
  50. package/core/README.md +1 -1
  51. package/core/index.scss +16 -16
  52. package/deprecations.js +18 -200
  53. package/deprecations.json +539 -0
  54. package/dist/alerts.css +1 -2
  55. package/dist/alerts.css.map +1 -1
  56. package/dist/alerts.js +1 -1
  57. package/dist/autocomplete.css +1 -2
  58. package/dist/autocomplete.css.map +1 -1
  59. package/dist/autocomplete.js +1 -1
  60. package/dist/avatars.css +1 -2
  61. package/dist/avatars.css.map +1 -1
  62. package/dist/avatars.js +1 -1
  63. package/dist/base.css +1 -2
  64. package/dist/base.css.map +1 -1
  65. package/dist/base.js +1 -1
  66. package/dist/blankslate.css +1 -2
  67. package/dist/blankslate.css.map +1 -1
  68. package/dist/blankslate.js +1 -1
  69. package/dist/box.css +1 -2
  70. package/dist/box.css.map +1 -1
  71. package/dist/box.js +1 -1
  72. package/dist/branch-name.css +1 -2
  73. package/dist/branch-name.css.map +1 -1
  74. package/dist/branch-name.js +1 -1
  75. package/dist/breadcrumb.css +1 -2
  76. package/dist/breadcrumb.css.map +1 -1
  77. package/dist/breadcrumb.js +1 -1
  78. package/dist/buttons.css +1 -2
  79. package/dist/buttons.css.map +1 -1
  80. package/dist/buttons.js +1 -1
  81. package/dist/color-modes.css +2 -0
  82. package/dist/color-modes.css.map +1 -0
  83. package/dist/color-modes.js +1 -0
  84. package/dist/core.css +1 -2
  85. package/dist/core.css.map +1 -1
  86. package/dist/core.js +1 -1
  87. package/dist/deprecations.json +534 -571
  88. package/dist/dropdown.css +1 -2
  89. package/dist/dropdown.css.map +1 -1
  90. package/dist/dropdown.js +1 -1
  91. package/dist/forms.css +1 -2
  92. package/dist/forms.css.map +1 -1
  93. package/dist/forms.js +1 -1
  94. package/dist/header.css +1 -2
  95. package/dist/header.css.map +1 -1
  96. package/dist/header.js +1 -1
  97. package/dist/labels.css +1 -2
  98. package/dist/labels.css.map +1 -1
  99. package/dist/labels.js +1 -1
  100. package/dist/layout.css +1 -2
  101. package/dist/layout.css.map +1 -1
  102. package/dist/layout.js +1 -1
  103. package/dist/links.css +2 -0
  104. package/dist/links.css.map +1 -0
  105. package/dist/links.js +1 -0
  106. package/dist/loaders.css +0 -1
  107. package/dist/loaders.css.map +1 -1
  108. package/dist/loaders.js +1 -1
  109. package/dist/markdown.css +1 -2
  110. package/dist/markdown.css.map +1 -1
  111. package/dist/markdown.js +1 -1
  112. package/dist/marketing-buttons.css +1 -2
  113. package/dist/marketing-buttons.css.map +1 -1
  114. package/dist/marketing-buttons.js +1 -1
  115. package/dist/marketing-support.css +1 -2
  116. package/dist/marketing-support.js +1 -1
  117. package/dist/marketing-type.css +1 -2
  118. package/dist/marketing-type.css.map +1 -1
  119. package/dist/marketing-type.js +1 -1
  120. package/dist/marketing-utilities.css +1 -2
  121. package/dist/marketing-utilities.css.map +1 -1
  122. package/dist/marketing-utilities.js +1 -1
  123. package/dist/marketing.css +1 -2
  124. package/dist/marketing.css.map +1 -1
  125. package/dist/marketing.js +1 -1
  126. package/dist/meta.json +305 -371
  127. package/dist/navigation.css +1 -2
  128. package/dist/navigation.css.map +1 -1
  129. package/dist/navigation.js +1 -1
  130. package/dist/pagination.css +1 -2
  131. package/dist/pagination.css.map +1 -1
  132. package/dist/pagination.js +1 -1
  133. package/dist/popover.css +1 -2
  134. package/dist/popover.css.map +1 -1
  135. package/dist/popover.js +1 -1
  136. package/dist/primer.css +4 -5
  137. package/dist/primer.css.map +1 -1
  138. package/dist/primer.js +1 -1
  139. package/dist/product.css +1 -2
  140. package/dist/product.css.map +1 -1
  141. package/dist/product.js +1 -1
  142. package/dist/progress.css +1 -2
  143. package/dist/progress.css.map +1 -1
  144. package/dist/progress.js +1 -1
  145. package/dist/select-menu.css +1 -2
  146. package/dist/select-menu.css.map +1 -1
  147. package/dist/select-menu.js +1 -1
  148. package/dist/stats/alerts.json +1 -1
  149. package/dist/stats/autocomplete.json +1 -1
  150. package/dist/stats/avatars.json +1 -1
  151. package/dist/stats/base.json +1 -1
  152. package/dist/stats/blankslate.json +1 -1
  153. package/dist/stats/box.json +1 -1
  154. package/dist/stats/branch-name.json +1 -1
  155. package/dist/stats/breadcrumb.json +1 -1
  156. package/dist/stats/buttons.json +1 -1
  157. package/dist/stats/color-modes.json +1 -0
  158. package/dist/stats/core.json +1 -1
  159. package/dist/stats/dropdown.json +1 -1
  160. package/dist/stats/forms.json +1 -1
  161. package/dist/stats/header.json +1 -1
  162. package/dist/stats/labels.json +1 -1
  163. package/dist/stats/layout.json +1 -1
  164. package/dist/stats/links.json +1 -0
  165. package/dist/stats/loaders.json +1 -1
  166. package/dist/stats/markdown.json +1 -1
  167. package/dist/stats/marketing-buttons.json +1 -1
  168. package/dist/stats/marketing-support.json +1 -1
  169. package/dist/stats/marketing-type.json +1 -1
  170. package/dist/stats/marketing-utilities.json +1 -1
  171. package/dist/stats/marketing.json +1 -1
  172. package/dist/stats/navigation.json +1 -1
  173. package/dist/stats/pagination.json +1 -1
  174. package/dist/stats/popover.json +1 -1
  175. package/dist/stats/primer.json +1 -1
  176. package/dist/stats/product.json +1 -1
  177. package/dist/stats/progress.json +1 -1
  178. package/dist/stats/select-menu.json +1 -1
  179. package/dist/stats/subhead.json +1 -1
  180. package/dist/stats/support.json +1 -1
  181. package/dist/stats/table-object.json +1 -1
  182. package/dist/stats/timeline.json +1 -1
  183. package/dist/stats/toasts.json +1 -1
  184. package/dist/stats/tooltips.json +1 -1
  185. package/dist/stats/truncate.json +1 -1
  186. package/dist/stats/utilities.json +1 -1
  187. package/dist/subhead.css +1 -2
  188. package/dist/subhead.css.map +1 -1
  189. package/dist/subhead.js +1 -1
  190. package/dist/support.css +1 -1
  191. package/dist/support.js +1 -1
  192. package/dist/table-object.css +0 -1
  193. package/dist/table-object.css.map +1 -1
  194. package/dist/table-object.js +1 -1
  195. package/dist/timeline.css +1 -2
  196. package/dist/timeline.css.map +1 -1
  197. package/dist/timeline.js +1 -1
  198. package/dist/toasts.css +1 -2
  199. package/dist/toasts.css.map +1 -1
  200. package/dist/toasts.js +1 -1
  201. package/dist/tooltips.css +1 -2
  202. package/dist/tooltips.css.map +1 -1
  203. package/dist/tooltips.js +1 -1
  204. package/dist/truncate.css +1 -2
  205. package/dist/truncate.css.map +1 -1
  206. package/dist/truncate.js +1 -1
  207. package/dist/utilities.css +1 -2
  208. package/dist/utilities.css.map +1 -1
  209. package/dist/utilities.js +1 -1
  210. package/dist/variables.json +630 -2274
  211. package/dropdown/README.md +1 -1
  212. package/dropdown/dropdown.scss +32 -86
  213. package/dropdown/index.scss +2 -2
  214. package/forms/README.md +1 -1
  215. package/forms/form-control.scss +41 -51
  216. package/forms/form-group.scss +31 -48
  217. package/forms/form-select.scss +12 -4
  218. package/forms/form-validation.scss +27 -32
  219. package/forms/index.scss +7 -7
  220. package/forms/radio-group.scss +22 -3
  221. package/header/README.md +1 -1
  222. package/header/header.scss +16 -6
  223. package/header/index.scss +2 -2
  224. package/index.scss +4 -1
  225. package/labels/README.md +1 -1
  226. package/labels/counters.scss +9 -10
  227. package/labels/diffstat.scss +8 -8
  228. package/labels/index.scss +7 -7
  229. package/labels/labels.scss +30 -41
  230. package/labels/states.scss +17 -16
  231. package/layout/README.md +1 -1
  232. package/layout/grid-offset.scss +11 -11
  233. package/layout/grid.scss +23 -23
  234. package/layout/index.scss +7 -4
  235. package/layout/layout.scss +185 -0
  236. package/layout/mixins.scss +79 -0
  237. package/{README.template.md → links/README.md} +5 -5
  238. package/links/index.scss +3 -0
  239. package/links/link.scss +55 -0
  240. package/loaders/README.md +1 -1
  241. package/loaders/index.scss +2 -2
  242. package/loaders/loaders.scss +1 -1
  243. package/markdown/README.md +1 -1
  244. package/markdown/blob-csv.scss +2 -2
  245. package/markdown/code.scss +7 -5
  246. package/markdown/footnotes.scss +37 -0
  247. package/markdown/headings.scss +6 -4
  248. package/markdown/images.scss +3 -4
  249. package/markdown/index.scss +9 -8
  250. package/markdown/lists.scss +18 -5
  251. package/markdown/markdown-body.scss +14 -9
  252. package/markdown/tables.scss +4 -6
  253. package/marketing/README.md +1 -1
  254. package/marketing/buttons/button.scss +81 -75
  255. package/marketing/index.scss +4 -4
  256. package/marketing/support/index.scss +1 -0
  257. package/marketing/support/mixins.scss +66 -0
  258. package/marketing/support/variables.scss +109 -58
  259. package/marketing/type/typography.scss +100 -62
  260. package/marketing/utilities/animations.scss +9 -0
  261. package/marketing/utilities/index.scss +2 -3
  262. package/marketing/utilities/layout.scss +31 -10
  263. package/navigation/README.md +1 -1
  264. package/navigation/filter-list.scss +8 -9
  265. package/navigation/index.scss +7 -7
  266. package/navigation/menu.scss +20 -19
  267. package/navigation/sidenav.scss +21 -18
  268. package/navigation/subnav.scss +9 -13
  269. package/navigation/tabnav.scss +17 -10
  270. package/navigation/underline-nav.scss +19 -14
  271. package/package.json +75 -63
  272. package/pagination/README.md +1 -1
  273. package/pagination/index.scss +2 -2
  274. package/pagination/pagination.scss +8 -8
  275. package/popover/README.md +1 -1
  276. package/popover/index.scss +2 -2
  277. package/popover/popover.scss +14 -13
  278. package/postcss.config.cjs +22 -0
  279. package/prettier.config.cjs +1 -0
  280. package/product/README.md +1 -1
  281. package/product/index.scss +17 -17
  282. package/progress/README.md +1 -1
  283. package/progress/index.scss +2 -2
  284. package/progress/progress.scss +1 -2
  285. package/select-menu/README.md +1 -1
  286. package/select-menu/index.scss +2 -2
  287. package/select-menu/select-menu.scss +44 -46
  288. package/{stylelint.config.js → stylelint.config.cjs} +5 -6
  289. package/subhead/README.md +1 -1
  290. package/subhead/index.scss +2 -2
  291. package/subhead/subhead.scss +9 -3
  292. package/support/README.md +1 -1
  293. package/support/index.scss +7 -8
  294. package/support/mixins/color-modes.scss +106 -0
  295. package/support/mixins/misc.scss +9 -12
  296. package/support/variables/layout.scss +70 -9
  297. package/support/variables/misc.scss +2 -27
  298. package/support/variables/typography.scss +2 -1
  299. package/table-object/README.md +1 -1
  300. package/table-object/index.scss +1 -1
  301. package/timeline/README.md +1 -1
  302. package/timeline/index.scss +2 -2
  303. package/timeline/timeline-item.scss +18 -18
  304. package/toasts/README.md +1 -1
  305. package/toasts/index.scss +2 -2
  306. package/toasts/toasts.scss +38 -20
  307. package/tooltips/README.md +1 -1
  308. package/tooltips/index.scss +2 -2
  309. package/tooltips/tooltips.scss +8 -12
  310. package/truncate/README.md +1 -1
  311. package/truncate/index.scss +2 -1
  312. package/truncate/truncate.scss +30 -0
  313. package/utilities/README.md +1 -1
  314. package/utilities/animations.scss +14 -1
  315. package/utilities/borders.scss +5 -50
  316. package/utilities/box-shadow.scss +8 -8
  317. package/utilities/colors.scss +71 -109
  318. package/utilities/details.scss +3 -3
  319. package/utilities/flexbox.scss +4 -3
  320. package/utilities/index.scss +12 -12
  321. package/utilities/layout.scss +23 -14
  322. package/utilities/margin.scss +34 -16
  323. package/utilities/padding.scss +13 -8
  324. package/utilities/typography.scss +5 -15
  325. package/.browserslistrc +0 -6
  326. package/.eslintrc.json +0 -13
  327. package/.nowignore +0 -5
  328. package/MIGRATING.md +0 -74
  329. package/bin/primer-migrate +0 -86
  330. package/dist/marketing-support.css.map +0 -1
  331. package/dist/support.css.map +0 -1
  332. package/fonts/Inter-Bold.woff +0 -0
  333. package/fonts/Inter-Medium.woff +0 -0
  334. package/fonts/Inter-Regular.woff +0 -0
  335. package/marketing/utilities/margin.scss +0 -17
  336. package/marketing/utilities/padding.scss +0 -24
  337. package/postcss.config.js +0 -14
  338. package/prettier.config.js +0 -1
  339. package/release.config.js +0 -4
  340. package/support/mixins/buttons.scss +0 -172
  341. package/support/variables/color-system.scss +0 -243
  342. 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,30 @@
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
85
  &:focus,
83
86
  &:hover {
84
- color: $text-white;
87
+ color: var(--color-fg-on-emphasis);
85
88
  text-decoration: none;
86
- background-color: $bg-blue;
89
+ background-color: var(--color-accent-emphasis);
87
90
  outline: none;
88
91
 
89
92
  > .octicon {
90
93
  color: inherit;
91
94
  opacity: 1;
92
95
  }
96
+
97
+ [class*='color-text-'] {
98
+ color: inherit !important;
99
+ }
100
+
101
+ > .Label {
102
+ color: inherit !important;
103
+ border-color: currentColor;
104
+ }
93
105
  }
94
106
 
95
107
  &.btn-link {
@@ -109,16 +121,16 @@
109
121
  display: block;
110
122
  height: 0;
111
123
  margin: $spacer-2 0;
112
- border-top: $border;
124
+ border-top: $border-width $border-style var(--color-border-default);
113
125
  }
114
126
 
115
127
  .dropdown-header {
116
128
  padding: $spacer-1 $spacer-3;
117
129
  font-size: $h6-size;
118
- color: $text-gray;
130
+ color: var(--color-fg-muted);
119
131
  }
120
132
 
121
- .dropdown-item[aria-checked="false"] .octicon-check {
133
+ .dropdown-item[aria-checked='false'] .octicon-check {
122
134
  display: none;
123
135
  }
124
136
 
@@ -140,7 +152,7 @@
140
152
  right: -$spacer-3;
141
153
  left: auto;
142
154
  border-color: transparent;
143
- border-left-color: $border-black-fade;
155
+ border-left-color: var(--color-border-default);
144
156
  }
145
157
 
146
158
  &::after {
@@ -148,7 +160,7 @@
148
160
  right: -14px;
149
161
  left: auto;
150
162
  border-color: transparent;
151
- border-left-color: $border-white;
163
+ border-left-color: var(--color-canvas-overlay);
152
164
  }
153
165
  }
154
166
 
@@ -160,17 +172,17 @@
160
172
  margin-left: $spacer-2;
161
173
 
162
174
  &::before {
163
- top: $spacer-2;
175
+ top: 10px;
164
176
  left: -$spacer-3;
165
177
  border-color: transparent;
166
- border-right-color: $border-black-fade;
178
+ border-right-color: var(--color-border-default);
167
179
  }
168
180
 
169
181
  &::after {
170
182
  top: 11px;
171
183
  left: -14px;
172
184
  border-color: transparent;
173
- border-right-color: $border-white;
185
+ border-right-color: var(--color-canvas-overlay);
174
186
  }
175
187
  }
176
188
 
@@ -191,7 +203,7 @@
191
203
  bottom: -$spacer-2;
192
204
  left: 9px;
193
205
  // stylelint-disable-next-line primer/borders
194
- border-top: $spacer-2 $border-style $border-black-fade;
206
+ border-top: $spacer-2 $border-style var(--color-border-default);
195
207
  // stylelint-disable-next-line primer/borders
196
208
  border-right: $spacer-2 $border-style transparent;
197
209
  border-bottom: 0;
@@ -203,7 +215,7 @@
203
215
  bottom: -7px;
204
216
  left: 10px;
205
217
  // stylelint-disable-next-line primer/borders
206
- border-top: 7px $border-style $border-white;
218
+ border-top: 7px $border-style var(--color-canvas-overlay);
207
219
  // stylelint-disable-next-line primer/borders
208
220
  border-right: 7px $border-style transparent;
209
221
  border-bottom: 0;
@@ -258,69 +270,3 @@
258
270
  left: 10px;
259
271
  }
260
272
  }
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,41 @@ 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
32
  outline: none;
33
- box-shadow: $box-shadow-inset;
33
+ box-shadow: var(--color-primer-shadow-inset);
34
34
 
35
35
  &.focus,
36
36
  &:focus {
37
- border-color: $border-blue;
37
+ border-color: var(--color-accent-emphasis);
38
38
  outline: none;
39
- box-shadow: $box-shadow-focus;
39
+ box-shadow: var(--color-primer-shadow-focus);
40
40
  }
41
41
 
42
42
  &[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
43
+ color: var(--color-primer-fg-disabled);
44
+ background-color: var(--color-input-disabled-bg);
45
+ border-color: var(--color-border-default);
46
+ -webkit-text-fill-color: var(--color-primer-fg-disabled); // Fix for Safari
47
+ opacity: 1; // Fix for Safari iOS
48
+
49
+ &::placeholder {
50
+ color: var(--color-primer-fg-disabled);
51
+ }
47
52
  }
48
53
 
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;
54
+ // Ensures inputs don't zoom on mobile iPhone but are body-font size on iPad
55
+ @supports (-webkit-touch-callout: none) {
56
+ font-size: $h4-size;
57
+ @include breakpoint(md) {
58
+ font-size: $body-font-size;
59
+ }
52
60
  }
53
61
  }
54
62
 
@@ -61,41 +69,22 @@ textarea.form-control {
61
69
 
62
70
  // Inputs with contrast for easy light gray backgrounds against white.
63
71
  .input-contrast {
64
- background-color: $bg-gray-light;
65
-
66
- &:focus { background-color: $bg-white; }
67
- }
68
-
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
- }
72
+ background-color: var(--color-canvas-inset);
81
73
 
82
- &.focus,
83
74
  &: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);
75
+ background-color: var(--color-canvas-default);
88
76
  }
89
77
  }
90
78
 
91
79
  // Custom styling for HTML5 validation bubbles (WebKit only)
92
80
  ::placeholder {
93
- color: $text-gray-light;
81
+ color: var(--color-fg-subtle);
94
82
  opacity: 1; // override opacity in normalize.css
95
83
  }
96
84
 
97
85
  // Mini inputs, to match .minibutton
98
86
  .input-sm {
87
+ min-height: $size-4;
99
88
  // stylelint-disable-next-line primer/spacing
100
89
  padding-top: 3px;
101
90
  // stylelint-disable-next-line primer/spacing
@@ -149,14 +138,13 @@ textarea.form-control {
149
138
  // stylelint-disable-next-line primer/spacing
150
139
  padding: 2px $spacer-1;
151
140
  font-style: normal;
152
- // stylelint-disable-next-line primer/colors
153
- background: $yellow-100;
141
+ background: var(--color-attention-subtle);
154
142
  border-radius: $border-radius;
155
143
  }
156
144
  }
157
145
 
158
- input[type=checkbox],
159
- input[type=radio] {
146
+ input[type='checkbox'],
147
+ input[type='radio'] {
160
148
  float: left;
161
149
  // stylelint-disable-next-line primer/spacing
162
150
  margin: 5px 0 0 -20px;
@@ -168,7 +156,7 @@ textarea.form-control {
168
156
  margin: 0;
169
157
  font-size: $font-size-small;
170
158
  font-weight: $font-weight-normal;
171
- color: $text-gray;
159
+ color: var(--color-fg-muted);
172
160
  }
173
161
  }
174
162
 
@@ -180,7 +168,7 @@ textarea.form-control {
180
168
  &:checked {
181
169
  // child of sibling or sibling
182
170
  ~ * .form-checkbox-details,
183
- ~ .form-checkbox-details { // eslint-disable selector-combinator-space-before
171
+ ~ .form-checkbox-details {
184
172
  display: block;
185
173
  }
186
174
  }
@@ -206,7 +194,7 @@ textarea.form-control {
206
194
  display: inline-block;
207
195
  // stylelint-disable-next-line primer/spacing
208
196
  margin: 5px 0 0;
209
- color: $text-gray;
197
+ color: var(--color-fg-muted);
210
198
  }
211
199
 
212
200
  img {
@@ -222,8 +210,10 @@ textarea.form-control {
222
210
  margin: 28px 25px 0 -20px;
223
211
  }
224
212
 
225
- // stylelint-disable-next-line primer/spacing
226
- .form-select { margin-top: 5px; }
213
+ .form-select {
214
+ // stylelint-disable-next-line primer/spacing
215
+ margin-top: 5px;
216
+ }
227
217
  }
228
218
 
229
219
  // Hide the up/down buttons in <input type="number"> in the login form, the
@@ -255,11 +245,9 @@ input::-webkit-inner-spin-button {
255
245
  // stylelint-disable-next-line primer/spacing
256
246
  margin: 10px 0;
257
247
  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;
248
+ color: var(--color-attention-fg);
249
+ background: var(--color-attention-subtle);
250
+ border: $border-width $border-style var(--color-attention-emphasis);
263
251
  border-radius: $border-radius;
264
252
 
265
253
  p {
@@ -267,5 +255,7 @@ input::-webkit-inner-spin-button {
267
255
  line-height: $lh-default;
268
256
  }
269
257
 
270
- a { font-weight: $font-weight-bold; }
258
+ a {
259
+ font-weight: $font-weight-bold;
260
+ }
271
261
  }
@@ -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