@primer/css 0.0.0-1ea75fe → 0.0.0-202110118627

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 (367) hide show
  1. package/CHANGELOG.md +1225 -132
  2. package/CODE_OF_CONDUCT.md +1 -1
  3. package/CONTRIBUTING.md +85 -0
  4. package/DEVELOP.md +11 -69
  5. package/LICENSE +1 -1
  6. package/README.md +13 -15
  7. package/RELEASING.md +5 -72
  8. package/actionlist/action-list-item-divider.scss +42 -0
  9. package/actionlist/action-list-item.scss +444 -0
  10. package/actionlist/action-list-variables.scss +8 -0
  11. package/actionlist/action-list.scss +33 -0
  12. package/actionlist/index.scss +5 -0
  13. package/alerts/README.md +11 -22
  14. package/alerts/flash.scss +91 -21
  15. package/alerts/index.scss +2 -2
  16. package/autocomplete/README.md +25 -0
  17. package/autocomplete/autocomplete.scss +58 -0
  18. package/autocomplete/index.scss +4 -0
  19. package/autocomplete/suggester.scss +92 -0
  20. package/avatars/README.md +11 -23
  21. package/avatars/avatar-parent-child.scss +4 -3
  22. package/avatars/avatar-stack.scss +21 -13
  23. package/avatars/avatar.scss +31 -3
  24. package/avatars/circle-badge.scss +5 -4
  25. package/avatars/index.scss +5 -5
  26. package/base/README.md +11 -22
  27. package/base/base.scss +5 -4
  28. package/base/index.scss +6 -4
  29. package/base/kbd.scss +20 -0
  30. package/base/normalize.scss +5 -5
  31. package/base/octicons.scss +6 -0
  32. package/base/typography-base.scss +2 -0
  33. package/blankslate/README.md +11 -23
  34. package/blankslate/blankslate.scss +25 -12
  35. package/blankslate/index.scss +2 -2
  36. package/box/README.md +11 -23
  37. package/box/box.scss +52 -44
  38. package/box/index.scss +2 -2
  39. package/branch-name/README.md +11 -23
  40. package/branch-name/branch-name.scss +18 -8
  41. package/branch-name/index.scss +2 -2
  42. package/breadcrumb/README.md +17 -13
  43. package/breadcrumb/breadcrumb.scss +15 -5
  44. package/breadcrumb/index.scss +2 -2
  45. package/buttons/README.md +11 -23
  46. package/buttons/button-group.scss +2 -0
  47. package/buttons/button.scss +243 -143
  48. package/buttons/index.scss +4 -3
  49. package/buttons/misc.scss +222 -0
  50. package/color-modes/index.scss +9 -0
  51. package/color-modes/native.scss +10 -0
  52. package/color-modes/themes/dark.scss +7 -0
  53. package/color-modes/themes/dark_colorblind.scss +7 -0
  54. package/color-modes/themes/dark_dimmed.scss +7 -0
  55. package/color-modes/themes/dark_high_contrast.scss +7 -0
  56. package/color-modes/themes/light.scss +7 -0
  57. package/color-modes/themes/light_colorblind.scss +7 -0
  58. package/core/README.md +11 -23
  59. package/core/index.scss +19 -20
  60. package/deprecations.js +24 -0
  61. package/deprecations.json +539 -0
  62. package/dist/actionlist.css +2 -0
  63. package/dist/actionlist.css.map +1 -0
  64. package/dist/actionlist.js +1 -0
  65. package/dist/alerts.css +1 -2
  66. package/dist/alerts.css.map +1 -1
  67. package/dist/alerts.js +1 -1
  68. package/dist/autocomplete.css +2 -0
  69. package/dist/autocomplete.css.map +1 -0
  70. package/dist/autocomplete.js +1 -0
  71. package/dist/avatars.css +1 -2
  72. package/dist/avatars.css.map +1 -1
  73. package/dist/avatars.js +1 -1
  74. package/dist/base.css +1 -2
  75. package/dist/base.css.map +1 -1
  76. package/dist/base.js +1 -1
  77. package/dist/blankslate.css +1 -2
  78. package/dist/blankslate.css.map +1 -1
  79. package/dist/blankslate.js +1 -1
  80. package/dist/box.css +1 -2
  81. package/dist/box.css.map +1 -1
  82. package/dist/box.js +1 -1
  83. package/dist/branch-name.css +1 -2
  84. package/dist/branch-name.css.map +1 -1
  85. package/dist/branch-name.js +1 -1
  86. package/dist/breadcrumb.css +1 -2
  87. package/dist/breadcrumb.css.map +1 -1
  88. package/dist/breadcrumb.js +1 -1
  89. package/dist/buttons.css +1 -2
  90. package/dist/buttons.css.map +1 -1
  91. package/dist/buttons.js +1 -1
  92. package/dist/color-modes.css +2 -0
  93. package/dist/color-modes.css.map +1 -0
  94. package/dist/color-modes.js +1 -0
  95. package/dist/core.css +3 -4
  96. package/dist/core.css.map +1 -1
  97. package/dist/core.js +1 -1
  98. package/dist/deprecations.json +539 -0
  99. package/dist/dropdown.css +2 -0
  100. package/dist/dropdown.css.map +1 -0
  101. package/dist/dropdown.js +1 -0
  102. package/dist/forms.css +1 -2
  103. package/dist/forms.css.map +1 -1
  104. package/dist/forms.js +1 -1
  105. package/dist/header.css +2 -0
  106. package/dist/header.css.map +1 -0
  107. package/dist/header.js +1 -0
  108. package/dist/labels.css +1 -2
  109. package/dist/labels.css.map +1 -1
  110. package/dist/labels.js +1 -1
  111. package/dist/layout.css +1 -2
  112. package/dist/layout.css.map +1 -1
  113. package/dist/layout.js +1 -1
  114. package/dist/links.css +2 -0
  115. package/dist/links.css.map +1 -0
  116. package/dist/links.js +1 -0
  117. package/dist/loaders.css +2 -0
  118. package/dist/loaders.css.map +1 -0
  119. package/dist/loaders.js +1 -0
  120. package/dist/markdown.css +1 -2
  121. package/dist/markdown.css.map +1 -1
  122. package/dist/markdown.js +1 -1
  123. package/dist/marketing-buttons.css +1 -2
  124. package/dist/marketing-buttons.css.map +1 -1
  125. package/dist/marketing-buttons.js +1 -1
  126. package/dist/marketing-support.css +1 -2
  127. package/dist/marketing-support.js +1 -1
  128. package/dist/marketing-type.css +1 -2
  129. package/dist/marketing-type.css.map +1 -1
  130. package/dist/marketing-type.js +1 -1
  131. package/dist/marketing-utilities.css +1 -2
  132. package/dist/marketing-utilities.css.map +1 -1
  133. package/dist/marketing-utilities.js +1 -1
  134. package/dist/marketing.css +3 -4
  135. package/dist/marketing.css.map +1 -1
  136. package/dist/marketing.js +1 -1
  137. package/dist/meta.json +317 -274
  138. package/dist/navigation.css +1 -2
  139. package/dist/navigation.css.map +1 -1
  140. package/dist/navigation.js +1 -1
  141. package/dist/pagination.css +1 -2
  142. package/dist/pagination.css.map +1 -1
  143. package/dist/pagination.js +1 -1
  144. package/dist/popover.css +1 -2
  145. package/dist/popover.css.map +1 -1
  146. package/dist/popover.js +1 -1
  147. package/dist/primer.css +13 -14
  148. package/dist/primer.css.map +1 -1
  149. package/dist/primer.js +1 -1
  150. package/dist/product.css +3 -4
  151. package/dist/product.css.map +1 -1
  152. package/dist/product.js +1 -1
  153. package/dist/progress.css +1 -2
  154. package/dist/progress.css.map +1 -1
  155. package/dist/progress.js +1 -1
  156. package/dist/select-menu.css +2 -0
  157. package/dist/select-menu.css.map +1 -0
  158. package/dist/select-menu.js +1 -0
  159. package/dist/stats/actionlist.json +1 -0
  160. package/dist/stats/alerts.json +1 -1
  161. package/dist/stats/autocomplete.json +1 -0
  162. package/dist/stats/avatars.json +1 -1
  163. package/dist/stats/base.json +1 -1
  164. package/dist/stats/blankslate.json +1 -1
  165. package/dist/stats/box.json +1 -1
  166. package/dist/stats/branch-name.json +1 -1
  167. package/dist/stats/breadcrumb.json +1 -1
  168. package/dist/stats/buttons.json +1 -1
  169. package/dist/stats/color-modes.json +1 -0
  170. package/dist/stats/core.json +1 -1
  171. package/dist/stats/dropdown.json +1 -0
  172. package/dist/stats/forms.json +1 -1
  173. package/dist/stats/header.json +1 -0
  174. package/dist/stats/labels.json +1 -1
  175. package/dist/stats/layout.json +1 -1
  176. package/dist/stats/links.json +1 -0
  177. package/dist/stats/loaders.json +1 -0
  178. package/dist/stats/markdown.json +1 -1
  179. package/dist/stats/marketing-buttons.json +1 -1
  180. package/dist/stats/marketing-support.json +1 -1
  181. package/dist/stats/marketing-type.json +1 -1
  182. package/dist/stats/marketing-utilities.json +1 -1
  183. package/dist/stats/marketing.json +1 -1
  184. package/dist/stats/navigation.json +1 -1
  185. package/dist/stats/pagination.json +1 -1
  186. package/dist/stats/popover.json +1 -1
  187. package/dist/stats/primer.json +1 -1
  188. package/dist/stats/product.json +1 -1
  189. package/dist/stats/progress.json +1 -1
  190. package/dist/stats/select-menu.json +1 -0
  191. package/dist/stats/subhead.json +1 -1
  192. package/dist/stats/support.json +1 -1
  193. package/dist/stats/table-object.json +1 -1
  194. package/dist/stats/timeline.json +1 -0
  195. package/dist/stats/toasts.json +1 -0
  196. package/dist/stats/tooltips.json +1 -1
  197. package/dist/stats/truncate.json +1 -1
  198. package/dist/stats/utilities.json +1 -1
  199. package/dist/subhead.css +1 -2
  200. package/dist/subhead.css.map +1 -1
  201. package/dist/subhead.js +1 -1
  202. package/dist/support.css +1 -1
  203. package/dist/support.js +1 -1
  204. package/dist/table-object.css +0 -1
  205. package/dist/table-object.css.map +1 -1
  206. package/dist/table-object.js +1 -1
  207. package/dist/timeline.css +2 -0
  208. package/dist/timeline.css.map +1 -0
  209. package/dist/timeline.js +1 -0
  210. package/dist/toasts.css +2 -0
  211. package/dist/toasts.css.map +1 -0
  212. package/dist/toasts.js +1 -0
  213. package/dist/tooltips.css +1 -2
  214. package/dist/tooltips.css.map +1 -1
  215. package/dist/tooltips.js +1 -1
  216. package/dist/truncate.css +1 -2
  217. package/dist/truncate.css.map +1 -1
  218. package/dist/truncate.js +1 -1
  219. package/dist/utilities.css +1 -2
  220. package/dist/utilities.css.map +1 -1
  221. package/dist/utilities.js +1 -1
  222. package/dist/variables.json +1352 -0
  223. package/dropdown/README.md +25 -0
  224. package/dropdown/dropdown.scss +272 -0
  225. package/dropdown/index.scss +2 -0
  226. package/forms/README.md +11 -23
  227. package/forms/form-control.scss +76 -32
  228. package/forms/form-group.scss +83 -46
  229. package/forms/form-select.scss +17 -5
  230. package/forms/form-validation.scss +51 -32
  231. package/forms/index.scss +7 -6
  232. package/forms/input-group.scss +2 -0
  233. package/forms/radio-group.scss +62 -0
  234. package/header/README.md +25 -0
  235. package/header/header.scss +47 -0
  236. package/header/index.scss +2 -0
  237. package/index.scss +7 -4
  238. package/labels/README.md +11 -23
  239. package/labels/counters.scss +24 -13
  240. package/labels/diffstat.scss +37 -0
  241. package/labels/index.scss +8 -4
  242. package/labels/issue-labels.scss +23 -0
  243. package/labels/labels.scss +59 -40
  244. package/labels/mixins.scss +32 -0
  245. package/labels/states.scss +40 -19
  246. package/layout/README.md +11 -23
  247. package/layout/container.scss +0 -8
  248. package/layout/grid-offset.scss +11 -11
  249. package/layout/grid.scss +23 -23
  250. package/layout/index.scss +7 -5
  251. package/layout/layout.scss +185 -0
  252. package/layout/mixins.scss +79 -0
  253. package/links/README.md +25 -0
  254. package/links/index.scss +3 -0
  255. package/links/link.scss +55 -0
  256. package/loaders/README.md +25 -0
  257. package/loaders/index.scss +2 -0
  258. package/loaders/loaders.scss +19 -0
  259. package/markdown/README.md +11 -23
  260. package/markdown/blob-csv.scss +4 -2
  261. package/markdown/code.scss +11 -3
  262. package/markdown/footnotes.scss +37 -0
  263. package/markdown/headings.scss +13 -4
  264. package/markdown/images.scss +15 -4
  265. package/markdown/index.scss +9 -8
  266. package/markdown/lists.scss +19 -5
  267. package/markdown/markdown-body.scss +15 -18
  268. package/markdown/tables.scss +8 -5
  269. package/marketing/README.md +11 -23
  270. package/marketing/buttons/button.scss +82 -61
  271. package/marketing/index.scss +6 -11
  272. package/marketing/support/index.scss +1 -0
  273. package/marketing/support/mixins.scss +66 -0
  274. package/marketing/support/variables.scss +110 -51
  275. package/marketing/type/typography.scss +100 -62
  276. package/marketing/utilities/animations.scss +9 -0
  277. package/marketing/utilities/filters.scss +0 -1
  278. package/marketing/utilities/index.scss +2 -3
  279. package/marketing/utilities/layout.scss +32 -11
  280. package/navigation/README.md +11 -23
  281. package/navigation/filter-list.scss +16 -14
  282. package/navigation/index.scss +7 -6
  283. package/navigation/menu.scss +44 -35
  284. package/navigation/sidenav.scss +108 -0
  285. package/navigation/subnav.scss +28 -21
  286. package/navigation/tabnav.scss +45 -21
  287. package/navigation/underline-nav.scss +36 -22
  288. package/package.json +78 -107
  289. package/pagination/README.md +12 -14
  290. package/pagination/index.scss +2 -2
  291. package/pagination/pagination.scss +61 -37
  292. package/popover/README.md +11 -24
  293. package/popover/index.scss +2 -2
  294. package/popover/popover.scss +18 -9
  295. package/postcss.config.cjs +22 -0
  296. package/prettier.config.cjs +1 -0
  297. package/product/README.md +11 -23
  298. package/product/index.scss +19 -17
  299. package/progress/README.md +11 -23
  300. package/progress/index.scss +2 -2
  301. package/progress/progress.scss +11 -1
  302. package/select-menu/README.md +25 -0
  303. package/select-menu/index.scss +3 -0
  304. package/select-menu/select-menu.scss +464 -0
  305. package/stylelint.config.cjs +16 -0
  306. package/subhead/README.md +11 -25
  307. package/subhead/index.scss +2 -2
  308. package/subhead/subhead.scss +10 -4
  309. package/support/README.md +12 -18
  310. package/support/index.scss +7 -8
  311. package/support/mixins/color-modes.scss +106 -0
  312. package/support/mixins/misc.scss +9 -12
  313. package/support/mixins/typography.scss +1 -1
  314. package/support/variables/layout.scss +106 -11
  315. package/support/variables/misc.scss +7 -30
  316. package/support/variables/typography.scss +4 -4
  317. package/table-object/README.md +11 -24
  318. package/table-object/index.scss +1 -1
  319. package/timeline/README.md +25 -0
  320. package/timeline/index.scss +2 -0
  321. package/timeline/timeline-item.scss +95 -0
  322. package/toasts/README.md +25 -0
  323. package/toasts/index.scss +2 -0
  324. package/toasts/toasts.scss +124 -0
  325. package/tooltips/README.md +11 -24
  326. package/tooltips/index.scss +2 -2
  327. package/tooltips/tooltips.scss +17 -8
  328. package/truncate/README.md +11 -24
  329. package/truncate/index.scss +2 -1
  330. package/truncate/truncate.scss +41 -7
  331. package/utilities/README.md +11 -23
  332. package/utilities/animations.scss +14 -2
  333. package/utilities/borders.scss +29 -65
  334. package/utilities/box-shadow.scss +8 -9
  335. package/utilities/colors.scss +71 -110
  336. package/utilities/details.scss +12 -4
  337. package/utilities/flexbox.scss +14 -14
  338. package/utilities/index.scss +12 -12
  339. package/utilities/layout.scss +28 -22
  340. package/utilities/margin.scss +34 -17
  341. package/utilities/padding.scss +13 -9
  342. package/utilities/typography.scss +54 -25
  343. package/utilities/visibility-display.scss +0 -13
  344. package/.browserslistrc +0 -6
  345. package/.eslintrc.json +0 -13
  346. package/.stylelintrc.json +0 -9
  347. package/MIGRATING.md +0 -70
  348. package/bin/primer-migrate +0 -86
  349. package/build/build.css +0 -23
  350. package/build/build.json +0 -1
  351. package/build/index.js +0 -1
  352. package/dist/marketing-support.css.map +0 -1
  353. package/dist/support.css.map +0 -1
  354. package/fonts/Inter-Medium.woff +0 -0
  355. package/fonts/Inter-Regular.woff +0 -0
  356. package/layout/columns.scss +0 -56
  357. package/marketing/buttons/README.md +0 -39
  358. package/marketing/support/README.md +0 -31
  359. package/marketing/type/README.md +0 -39
  360. package/marketing/utilities/README.md +0 -36
  361. package/marketing/utilities/margin.scss +0 -18
  362. package/marketing/utilities/padding.scss +0 -28
  363. package/postcss.config.js +0 -14
  364. package/prettier.config.js +0 -1
  365. package/support/mixins/buttons.scss +0 -160
  366. package/support/variables/color-system.scss +0 -243
  367. package/support/variables/colors.scss +0 -70
@@ -1,21 +1,29 @@
1
- // Form groups
2
- //
3
- // Typical form groups - `<dl.form-group>` with a `<dt>` containing the label and
4
- // `<dd> containing the form elements.
5
1
  // stylelint-disable selector-max-compound-selectors
6
2
  // stylelint-disable selector-max-type
3
+
4
+ // Form groups
5
+ //
6
+ // Usage:
7
+ //
8
+ // <div class="form-group">
9
+ // <div class="form-group-header"> containing the label
10
+ // <div class="form-group-body"> containing the form elements
11
+ // </div>
12
+
7
13
  .form-group {
14
+ // stylelint-disable-next-line primer/spacing
8
15
  margin: 15px 0;
9
16
 
10
17
  // Text fields
11
18
  .form-control {
12
19
  width: 440px;
13
20
  max-width: 100%;
21
+ // stylelint-disable-next-line primer/spacing
14
22
  margin-right: 5px;
15
- background-color: $bg-gray-light;
23
+ background-color: var(--color-canvas-inset);
16
24
 
17
25
  &:focus {
18
- background-color: $bg-white;
26
+ background-color: var(--color-canvas-default);
19
27
  }
20
28
 
21
29
  &.shorter { width: 130px; }
@@ -40,7 +48,9 @@
40
48
  // stylelint-enable selector-no-qualifying-type
41
49
 
42
50
  // The Label
43
- dt {
51
+ dt, // TODO: Deprecate
52
+ .form-group-header {
53
+ // stylelint-disable-next-line primer/spacing
44
54
  margin: 0 0 6px;
45
55
  }
46
56
 
@@ -48,13 +58,17 @@
48
58
  position: relative;
49
59
  }
50
60
 
51
- &.flattened dt {
61
+ &.flattened dt, // TODO: Deprecate
62
+ &.flattened .form-group-header {
52
63
  float: left;
53
64
  margin: 0;
65
+ // stylelint-disable-next-line primer/typography
54
66
  line-height: 32px;
55
67
  }
56
68
 
57
- &.flattened dd {
69
+ &.flattened dd, // TODO: Deprecate
70
+ &.flattened .form-group-body {
71
+ // stylelint-disable-next-line primer/typography
58
72
  line-height: 32px;
59
73
  }
60
74
 
@@ -62,13 +76,14 @@
62
76
  // Form Elements
63
77
  //
64
78
  // stylelint-disable selector-no-qualifying-type
65
- dd {
79
+ dd, // TODO: Deprecate
80
+ .form-group-body {
66
81
  h4 {
67
82
  margin: $spacer-1 0 0;
68
83
 
69
- &.is-error { color: $text-red; }
84
+ &.is-error { color: var(--color-danger-fg); }
70
85
 
71
- &.is-success { color: $text-green; }
86
+ &.is-success { color: var(--color-success-fg); }
72
87
 
73
88
  + .note {
74
89
  margin-top: 0;
@@ -82,10 +97,12 @@
82
97
  //
83
98
 
84
99
  &.required {
85
- dt label::after {
100
+ dt label::after, // TODO: Deprecate
101
+ .form-group-header label::after {
102
+ // stylelint-disable-next-line primer/spacing
86
103
  padding-left: 5px;
87
- color: $text-red;
88
- content: "*";
104
+ color: var(--color-danger-fg);
105
+ content: '*';
89
106
  }
90
107
  }
91
108
 
@@ -117,7 +134,7 @@
117
134
  &.successful {
118
135
  .success {
119
136
  display: inline;
120
- color: $text-green;
137
+ color: var(--color-success-fg);
121
138
  }
122
139
  }
123
140
 
@@ -125,21 +142,23 @@
125
142
  //
126
143
  // Our inline errors
127
144
 
145
+ &.successed,
128
146
  &.warn,
129
147
  &.errored {
148
+ .success,
130
149
  .warning,
131
150
  .error {
132
151
  position: absolute;
133
152
  z-index: 10;
134
153
  display: block; // Show up in errored/warn state
135
154
  max-width: 450px; // Keep our long errors readable
136
- padding: 5px $spacer-2;
137
- margin: $spacer-1 0 0;
138
- font-size: 13px;
155
+ padding: $spacer-1 $spacer-2;
156
+ margin: $spacer-2 0 0;
157
+ font-size: $font-size-small;
139
158
  font-weight: $font-weight-normal;
140
- border-style: solid;
141
- border-width: 1px;
142
- border-radius: 3px;
159
+ border-style: $border-style;
160
+ border-width: $border-width;
161
+ border-radius: $border-radius;
143
162
 
144
163
  &::after,
145
164
  &::before {
@@ -150,65 +169,83 @@
150
169
  width: 0;
151
170
  height: 0;
152
171
  pointer-events: none;
153
- content: " ";
154
- border: solid transparent;
172
+ content: ' ';
173
+ // stylelint-disable-next-line primer/borders
174
+ border: $border-style transparent;
155
175
  }
156
176
 
157
177
  &::after {
178
+ // stylelint-disable-next-line primer/borders
158
179
  border-width: 5px;
159
180
  }
160
181
 
161
182
  &::before {
183
+ // stylelint-disable-next-line primer/spacing
162
184
  margin-left: -1px;
185
+ // stylelint-disable-next-line primer/borders
163
186
  border-width: 6px;
164
187
  }
165
188
  }
166
189
  }
167
190
 
191
+ &.successed {
192
+ .success {
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);
197
+
198
+ &::after { border-bottom-color: var(--color-success-subtle); }
199
+ &::before { border-bottom-color: var(--color-success-muted); }
200
+ }
201
+ }
202
+
168
203
  &.warn {
169
- .warning {
170
- color: $yellow-900;
171
- background-color: $yellow-100;
172
- border-color: $border-yellow;
204
+ .form-control {
205
+ border-color: var(--color-attention-emphasis);
206
+ }
173
207
 
174
- &::after {
175
- border-bottom-color: $yellow-100;
176
- }
208
+ .warning {
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);
177
213
 
178
- &::before {
179
- border-bottom-color: $border-yellow;
180
- }
214
+ &::after { border-bottom-color: var(--color-attention-subtle); }
215
+ &::before { border-bottom-color: var(--color-attention-muted); }
181
216
  }
182
217
  }
183
218
 
184
219
  &.errored {
220
+ .form-control {
221
+ border-color: var(--color-danger-emphasis);
222
+ }
223
+
185
224
  label {
186
- color: $text-red;
225
+ color: var(--color-danger-fg);
187
226
  }
188
227
 
189
228
  .error {
190
- color: $red-900;
191
- background-color: $bg-red-light;
192
- border-color: $border-red-light;
193
-
194
- &::after {
195
- border-bottom-color: $bg-red-light;
196
- }
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);
197
233
 
198
- &::before {
199
- border-bottom-color: $border-red-light;
200
- }
234
+ &::after { border-bottom-color: var(--color-danger-subtle); }
235
+ &::before { border-bottom-color: var(--color-danger-muted); }
201
236
  }
202
237
  }
203
238
  }
204
239
 
240
+ // tooltip
205
241
  .note {
206
242
  min-height: 17px;
207
243
  margin: $spacer-1 0 2px;
208
244
  font-size: $font-size-small;
209
- color: $text-gray;
245
+ color: var(--color-fg-muted);
210
246
 
211
247
  .spinner {
248
+ // stylelint-disable-next-line primer/spacing
212
249
  margin-right: 3px;
213
250
  vertical-align: middle;
214
251
  }
@@ -4,10 +4,14 @@
4
4
  .form-select {
5
5
  display: inline-block;
6
6
  max-width: 100%;
7
- height: 34px;
7
+ height: $size-5;
8
8
  padding-right: $spacer-4;
9
- background: $bg-white url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAUCAMAAACzvE1FAAAADFBMVEUzMzMzMzMzMzMzMzMKAG/3AAAAA3RSTlMAf4C/aSLHAAAAPElEQVR42q3NMQ4AIAgEQTn//2cLdRKppSGzBYwzVXvznNWs8C58CiussPJj8h6NwgorrKRdTvuV9v16Afn0AYFOB7aYAAAAAElFTkSuQmCC") no-repeat right 8px center;
10
- background-size: 8px 10px;
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=');
12
+ background-repeat: no-repeat;
13
+ background-position: right 4px center;
14
+ background-size: 16px;
11
15
  appearance: none;
12
16
 
13
17
  // Hides the default caret in IE11
@@ -20,10 +24,18 @@
20
24
  }
21
25
  }
22
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
+
23
34
  .select-sm {
24
- height: 28px;
25
- min-height: 28px;
35
+ height: $size-4;
36
+ // stylelint-disable-next-line primer/spacing
26
37
  padding-top: 3px;
38
+ // stylelint-disable-next-line primer/spacing
27
39
  padding-bottom: 3px;
28
40
  font-size: $font-size-small;
29
41
 
@@ -1,30 +1,33 @@
1
1
  // Needs refactoring
2
2
  // stylelint-disable selector-no-qualifying-type, selector-max-type
3
- dl.form-group > dd {
3
+ dl.form-group > dd, // TODO: Deprecate
4
+ .form-group > .form-group-body {
4
5
  .form-control {
5
6
  &.is-autocheck-loading,
6
7
  &.is-autocheck-successful,
7
8
  &.is-autocheck-errored {
9
+ // stylelint-disable-next-line primer/spacing
8
10
  padding-right: 30px; // Leave some space for our validation icons
9
11
  }
10
12
 
11
13
  &.is-autocheck-loading {
12
- background-image: url("/images/spinners/octocat-spinner-16px.gif");
14
+ background-image: url('/images/spinners/octocat-spinner-16px.gif');
13
15
  }
14
16
 
15
17
  &.is-autocheck-successful {
16
- background-image: url("/images/modules/ajax/success.png");
18
+ background-image: url('/images/modules/ajax/success.png');
17
19
  }
18
20
 
19
21
  &.is-autocheck-errored {
20
- background-image: url("/images/modules/ajax/error.png");
22
+ background-image: url('/images/modules/ajax/error.png');
21
23
  }
22
24
  }
23
25
  }
24
26
 
25
27
  // Retinization of form validation icons that aren't octicons yet
26
28
  @include retina-media-query {
27
- dl.form-group > dd {
29
+ dl.form-group > dd, // TODO: Deprecate
30
+ .form-group > .form-group-body {
28
31
  .form-control {
29
32
  &.is-autocheck-loading,
30
33
  &.is-autocheck-successful,
@@ -33,15 +36,15 @@ dl.form-group > dd {
33
36
  }
34
37
 
35
38
  &.is-autocheck-loading {
36
- background-image: url("/images/spinners/octocat-spinner-32.gif");
39
+ background-image: url('/images/spinners/octocat-spinner-32.gif');
37
40
  }
38
41
 
39
42
  &.is-autocheck-successful {
40
- background-image: url("/images/modules/ajax/success@2x.png");
43
+ background-image: url('/images/modules/ajax/success@2x.png');
41
44
  }
42
45
 
43
46
  &.is-autocheck-errored {
44
- background-image: url("/images/modules/ajax/error@2x.png");
47
+ background-image: url('/images/modules/ajax/error@2x.png');
45
48
  }
46
49
  }
47
50
  }
@@ -53,6 +56,7 @@ dl.form-group > dd {
53
56
  display: inline-block;
54
57
  width: 16px;
55
58
  height: 16px;
59
+ // stylelint-disable-next-line primer/spacing
56
60
  margin-left: 5px;
57
61
 
58
62
  .octicon {
@@ -63,13 +67,13 @@ dl.form-group > dd {
63
67
  .status-indicator-success {
64
68
  // Override primer
65
69
  &::before {
66
- content: "";
70
+ content: '';
67
71
  }
68
72
 
69
73
  .octicon-check {
70
74
  display: inline-block;
71
- color: $green;
72
- fill: $green;
75
+ color: var(--color-success-fg);
76
+ fill: var(--color-success-fg);
73
77
  }
74
78
 
75
79
  .octicon-x {
@@ -80,7 +84,7 @@ dl.form-group > dd {
80
84
  .status-indicator-failed {
81
85
  // Override primer
82
86
  &::before {
83
- content: "";
87
+ content: '';
84
88
  }
85
89
 
86
90
  .octicon-check {
@@ -89,14 +93,16 @@ dl.form-group > dd {
89
93
 
90
94
  .octicon-x {
91
95
  display: inline-block;
92
- color: $text-red;
93
- fill: $red;
96
+ color: var(--color-danger-fg);
97
+ fill: var(--color-danger-fg);
94
98
  }
95
99
  }
96
100
 
97
101
  .status-indicator-loading {
98
102
  width: 16px;
99
- background: url("/images/spinners/octocat-spinner-32-EAF2F5.gif") 0 0 no-repeat;
103
+ background-image: url('/images/spinners/octocat-spinner-32-EAF2F5.gif');
104
+ background-repeat: no-repeat;
105
+ background-position: 0 0;
100
106
  background-size: 16px;
101
107
  }
102
108
 
@@ -114,16 +120,19 @@ dl.form-group > dd {
114
120
  // Previously part of `_forms.scss` in Primer. Needs accounting for.
115
121
 
116
122
  .drag-and-drop {
123
+ // stylelint-disable-next-line primer/spacing
117
124
  padding: 7px 10px;
118
125
  margin: 0;
126
+ // stylelint-disable-next-line primer/typography
119
127
  font-size: 13px;
128
+ // stylelint-disable-next-line primer/typography
120
129
  line-height: 16px;
121
- color: $text-gray;
122
- background-color: $gray-000;
123
- border: 1px solid darken($gray-300, 5%);
130
+ color: var(--color-fg-muted);
131
+ background-color: var(--color-canvas-subtle);
132
+ border: $border-width $border-style var(--color-border-default);
124
133
  border-top: 0;
125
- border-bottom-right-radius: 3px;
126
- border-bottom-left-radius: 3px;
134
+ border-bottom-right-radius: $border-radius;
135
+ border-bottom-left-radius: $border-radius;
127
136
 
128
137
  .default,
129
138
  .loading,
@@ -132,7 +141,7 @@ dl.form-group > dd {
132
141
  }
133
142
 
134
143
  .error {
135
- color: $text-red;
144
+ color: var(--color-danger-fg);
136
145
  }
137
146
 
138
147
  // Spinner
@@ -179,10 +188,10 @@ dl.form-group > dd {
179
188
 
180
189
  .drag-and-drop-error-info {
181
190
  font-weight: $font-weight-normal;
182
- color: $text-gray;
191
+ color: var(--color-fg-muted);
183
192
 
184
193
  a {
185
- color: $text-blue;
194
+ color: var(--color-accent-fg);
186
195
  }
187
196
  }
188
197
 
@@ -193,7 +202,9 @@ dl.form-group > dd {
193
202
  .manual-file-chooser {
194
203
  position: absolute;
195
204
  width: 240px;
205
+ // stylelint-disable-next-line primer/spacing
196
206
  padding: 5px;
207
+ // stylelint-disable-next-line primer/spacing
197
208
  margin-left: -80px;
198
209
  cursor: pointer;
199
210
  opacity: 0.0001;
@@ -208,6 +219,7 @@ dl.form-group > dd {
208
219
  .manual-file-chooser {
209
220
  top: 0;
210
221
  padding: 0;
222
+ // stylelint-disable-next-line primer/typography
211
223
  line-height: 34px;
212
224
  }
213
225
  }
@@ -216,21 +228,22 @@ dl.form-group > dd {
216
228
  .upload-enabled {
217
229
  textarea {
218
230
  display: block;
219
- border-bottom: 1px dashed lighten($gray-300, 5%);
231
+ // stylelint-disable-next-line primer/borders
232
+ border-bottom: $border-width dashed var(--color-border-default);
220
233
  border-bottom-right-radius: 0;
221
234
  border-bottom-left-radius: 0;
222
235
  }
223
236
 
224
237
  &.focused {
225
- border-radius: 3px;
226
- box-shadow: $form-control-shadow, $btn-input-focus-shadow;
238
+ border-radius: $border-radius;
239
+ box-shadow: var(--color-primer-shadow-inset), var(--color-primer-shadow-focus);
227
240
 
228
241
  .form-control {
229
242
  box-shadow: none;
230
243
  }
231
244
 
232
245
  .drag-and-drop {
233
- border-color: lighten($blue-400, 8%);
246
+ border-color: var(--color-accent-emphasis);
234
247
  }
235
248
  }
236
249
  }
@@ -238,6 +251,7 @@ dl.form-group > dd {
238
251
  // Dropping a file on top
239
252
  .dragover textarea,
240
253
  .dragover .drag-and-drop {
254
+ // stylelint-disable-next-line primer/box-shadow
241
255
  box-shadow: rgba(#c9ff00, 1) 0 0 3px;
242
256
  }
243
257
 
@@ -255,7 +269,7 @@ dl.form-group > dd {
255
269
  }
256
270
 
257
271
  .comment {
258
- border: 1px solid darken($gray-300, 5%);
272
+ border: $border-width $border-style var(--color-border-default);
259
273
  }
260
274
 
261
275
  .comment-form-error { margin-bottom: $spacer-2; }
@@ -284,6 +298,7 @@ dl.form-group > dd {
284
298
  // Used in our boxed-group-less form styles. Give the sumbit button enough space
285
299
  // to breathe without the need for the extra hr.
286
300
  .form-action-spacious {
301
+ // stylelint-disable-next-line primer/spacing
287
302
  margin-top: 10px;
288
303
  }
289
304
 
@@ -302,6 +317,7 @@ div.composer {
302
317
  min-height: 200px;
303
318
  }
304
319
 
320
+ // stylelint-disable-next-line primer/spacing
305
321
  .composer .tabnav { margin: 0 0 10px; }
306
322
 
307
323
  // Misc CSS
@@ -309,24 +325,27 @@ div.composer {
309
325
  // Previously part of `_forms.scss` in Primer. Needs accounting for.
310
326
 
311
327
  h2.account {
328
+ // stylelint-disable-next-line primer/spacing
312
329
  margin: 15px 0 0;
330
+ // stylelint-disable-next-line primer/typography
313
331
  font-size: 18px;
314
332
  font-weight: $font-weight-normal;
315
- color: $gray-600;
333
+ color: var(--color-fg-muted);
316
334
  }
317
335
 
318
336
  p.explain {
319
337
  position: relative;
320
338
  font-size: $font-size-small;
321
- color: $gray-600;
339
+ color: var(--color-fg-muted);
322
340
 
323
341
  strong {
324
- color: $text-gray-dark;
342
+ color: var(--color-fg-default);
325
343
  }
326
344
 
327
345
  .octicon {
346
+ // stylelint-disable-next-line primer/spacing
328
347
  margin-right: 5px;
329
- color: $gray-400;
348
+ color: var(--color-fg-muted);
330
349
  }
331
350
 
332
351
  .minibutton {
package/forms/index.scss CHANGED
@@ -1,6 +1,7 @@
1
- @import "../support/index.scss";
2
- @import "./form-control.scss";
3
- @import "./form-select.scss";
4
- @import "./form-group.scss";
5
- @import "./form-validation.scss";
6
- @import "./input-group.scss";
1
+ @import '../support/index.scss';
2
+ @import './form-control.scss';
3
+ @import './form-select.scss';
4
+ @import './form-group.scss';
5
+ @import './form-validation.scss';
6
+ @import './input-group.scss';
7
+ @import './radio-group.scss';
@@ -37,6 +37,7 @@
37
37
  }
38
38
 
39
39
  .input-group-button:first-child .btn {
40
+ // stylelint-disable-next-line primer/spacing
40
41
  margin-right: -1px;
41
42
  }
42
43
 
@@ -47,5 +48,6 @@
47
48
  }
48
49
 
49
50
  .input-group-button:last-child .btn {
51
+ // stylelint-disable-next-line primer/spacing
50
52
  margin-left: -1px;
51
53
  }
@@ -0,0 +1,62 @@
1
+ // Tab like radio group
2
+
3
+ .radio-group {
4
+ @include clearfix;
5
+ }
6
+
7
+ .radio-label {
8
+ float: left;
9
+ // stylelint-disable-next-line primer/spacing
10
+ padding: 6px $spacer-3 6px ($spacer-3 + 12px + $spacer-2); // 12px is the size of the radio-input
11
+ // stylelint-disable-next-line primer/spacing
12
+ margin-left: -1px;
13
+ font-size: $body-font-size;
14
+ // stylelint-disable-next-line primer/typography
15
+ line-height: 20px; // Specifically not inherit our `<body>` default
16
+ color: var(--color-fg-default);
17
+ cursor: pointer;
18
+ border: $border-width $border-style var(--color-border-default);
19
+
20
+ :checked + & {
21
+ position: relative;
22
+ z-index: 1;
23
+ border-color: var(--color-accent-emphasis);
24
+ }
25
+
26
+ &:first-of-type {
27
+ margin-left: 0;
28
+ border-top-left-radius: $border-radius;
29
+ border-bottom-left-radius: $border-radius;
30
+ }
31
+
32
+ &:last-of-type {
33
+ border-top-right-radius: $border-radius;
34
+ border-bottom-right-radius: $border-radius;
35
+ }
36
+
37
+ .octicon {
38
+ margin-left: $spacer-1;
39
+ color: var(--color-fg-subtle);
40
+ }
41
+ }
42
+
43
+ .radio-input {
44
+ z-index: 3;
45
+ float: left;
46
+ // stylelint-disable-next-line primer/spacing
47
+ margin: 10px (-$spacer-5) 0 $spacer-3;
48
+
49
+ &:disabled {
50
+ position: relative; // enables z-index
51
+
52
+ + .radio-label {
53
+ color: var(--color-primer-fg-disabled);
54
+ cursor: default;
55
+ background-color: var(--color-neutral-subtle);
56
+
57
+ .octicon {
58
+ color: inherit;
59
+ }
60
+ }
61
+ }
62
+ }
@@ -0,0 +1,25 @@
1
+ ---
2
+ bundle: "header"
3
+ generated: true
4
+ ---
5
+
6
+ # Primer CSS: `header` bundle
7
+
8
+ ## Usage
9
+
10
+ Primer CSS source files are written in [SCSS]. To include this Primer CSS module in your own build, ensure that your `node_modules` directory is listed in your Sass include paths, then import it with:
11
+
12
+ ```scss
13
+ @import "@primer/css/header/index.scss";
14
+ ```
15
+
16
+ ## Build
17
+
18
+ The `@primer/css` npm package includes a standalone CSS build of this module in `dist/header.css`.
19
+
20
+ ## License
21
+
22
+ [MIT](https://github.com/primer/css/blob/main/LICENSE) &copy; [GitHub](https://github.com/)
23
+
24
+
25
+ [scss]: https://sass-lang.com/documentation/syntax#scss