@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
@@ -1,4 +1,4 @@
1
- // stylelint-disable selector-max-type, block-opening-brace-space-before, no-duplicate-selectors
1
+ // stylelint-disable selector-max-type, no-duplicate-selectors
2
2
 
3
3
  // Base button styles
4
4
  .btn {
@@ -24,12 +24,8 @@
24
24
 
25
25
  &:disabled,
26
26
  &.disabled,
27
- &[aria-disabled=true] {
27
+ &[aria-disabled='true'] {
28
28
  cursor: default;
29
-
30
- .octicon {
31
- color: inherit;
32
- }
33
29
  }
34
30
 
35
31
  i {
@@ -40,7 +36,7 @@
40
36
 
41
37
  .octicon {
42
38
  margin-right: $spacer-1;
43
- color: $text-gray-light;
39
+ color: var(--color-fg-muted);
44
40
  vertical-align: text-bottom;
45
41
 
46
42
  &:only-child {
@@ -54,8 +50,7 @@
54
50
  color: inherit;
55
51
  text-shadow: none;
56
52
  vertical-align: top;
57
- // stylelint-disable-next-line primer/colors
58
- background-color: rgba($black, 0.08); // Darken for just a tad more contrast against the button background
53
+ background-color: var(--color-btn-counter-bg);
59
54
  }
60
55
 
61
56
  .dropdown-caret {
@@ -67,125 +62,104 @@
67
62
  // Default button
68
63
 
69
64
  .btn {
70
- $bg-default: $bg-gray-light;
71
- $bg-hover: #f3f4f6; // custom gray
72
- $bg-active: darken($bg-hover, 2%);
73
- $bg-disabled: $bg-default;
74
-
75
- color: $text-gray-dark;
76
- background-color: $bg-default;
77
- border-color: $border-color-button;
78
- box-shadow: $box-shadow, $box-shadow-highlight;
79
- transition: background-color 0.2s cubic-bezier(0.3, 0, 0.5, 1);
65
+ color: var(--color-btn-text);
66
+ background-color: var(--color-btn-bg);
67
+ border-color: var(--color-btn-border);
68
+ box-shadow: var(--color-btn-shadow), var(--color-btn-inset-shadow);
69
+ transition: 0.2s cubic-bezier(0.3, 0, 0.5, 1);
70
+ transition-property: color, background-color, border-color;
80
71
 
81
72
  &:hover,
82
73
  &.hover,
83
74
  [open] > & {
84
- background-color: $bg-hover;
75
+ background-color: var(--color-btn-hover-bg);
76
+ border-color: var(--color-btn-hover-border);
85
77
  transition-duration: 0.1s;
86
78
  }
87
79
 
88
- &:active,
89
- &.selected,
90
- &[aria-selected=true] {
91
- background-color: $bg-active;
92
- box-shadow: $box-shadow-inset;
80
+ &:active {
81
+ background-color: var(--color-btn-active-bg);
82
+ border-color: var(--color-btn-active-border);
93
83
  transition: none;
94
84
  }
95
85
 
86
+ &.selected,
87
+ &[aria-selected='true'] {
88
+ background-color: var(--color-btn-selected-bg);
89
+ box-shadow: var(--color-primer-shadow-inset);
90
+ }
91
+
96
92
  &:disabled,
97
93
  &.disabled,
98
- &[aria-disabled=true] {
99
- // stylelint-disable-next-line primer/colors
100
- color: $gray-400;
101
- background-color: $bg-disabled;
102
- border-color: $border-color-button;
103
- }
94
+ &[aria-disabled='true'] {
95
+ color: var(--color-primer-fg-disabled);
96
+ background-color: var(--color-btn-bg);
97
+ border-color: var(--color-btn-border);
104
98
 
105
- // Keep :focus after :disabled. Allows to see the focus ring even on disabled buttons
106
- &:focus,
107
- &.focus {
108
- outline: 1px dotted transparent; // Support Firfox custom colors
109
- outline-offset: 2px;
110
- box-shadow: $box-shadow-focus;
99
+ .octicon {
100
+ color: var(--color-primer-fg-disabled);
101
+ }
111
102
  }
112
103
  }
113
104
 
114
105
  // Primary button
115
106
 
116
107
  .btn-primary {
117
- $bg-default: #2ea44f; // custom green
118
- $bg-hover: #2c974b; // custom green
119
- $bg-active: darken($bg-hover, 2%);
120
- $bg-disabled: #94d3a2; // custom green
121
-
122
- $shadow: $green-900;
123
- $box-shadow: 0 1px 0 rgba($black, 0.1), inset 0 1px 0 rgba($white, 0.03);
124
-
125
- color: $text-white;
126
- background-color: $bg-default;
127
- // stylelint-disable-next-line primer/borders
128
- border-color: rgba($black, 0.15);
129
- box-shadow: $box-shadow;
108
+ color: var(--color-btn-primary-text);
109
+ background-color: var(--color-btn-primary-bg);
110
+ border-color: var(--color-btn-primary-border);
111
+ box-shadow: var(--color-btn-primary-shadow), var(--color-btn-primary-inset-shadow);
130
112
 
131
113
  &:hover,
132
114
  &.hover,
133
115
  [open] > & {
134
- background-color: $bg-hover;
116
+ background-color: var(--color-btn-primary-hover-bg);
117
+ border-color: var(--color-btn-primary-hover-border);
135
118
  }
136
119
 
137
120
  &:active,
138
121
  &.selected,
139
- &[aria-selected=true] {
140
- background-color: $bg-active;
141
- // stylelint-disable-next-line primer/box-shadow
142
- box-shadow: inset 0 1px 0 rgba($shadow, 0.2);
122
+ &[aria-selected='true'] {
123
+ background-color: var(--color-btn-primary-selected-bg);
124
+ box-shadow: var(--color-btn-primary-selected-shadow);
143
125
  }
144
126
 
145
127
  &:disabled,
146
128
  &.disabled,
147
- &[aria-disabled=true] {
148
- // stylelint-disable-next-line primer/colors
149
- color: rgba($text-white, 0.8);
150
- background-color: $bg-disabled;
151
- // stylelint-disable-next-line primer/borders
152
- border-color: rgba($black, 0.1);
153
- box-shadow: $box-shadow;
154
- }
129
+ &[aria-disabled='true'] {
130
+ color: var(--color-btn-primary-disabled-text);
131
+ background-color: var(--color-btn-primary-disabled-bg);
132
+ border-color: var(--color-btn-primary-disabled-border);
155
133
 
156
- &:focus,
157
- &.focus {
158
- // stylelint-disable-next-line primer/box-shadow
159
- box-shadow: 0 0 0 3px rgba($bg-default, 0.4);
134
+ .octicon {
135
+ color: var(--color-btn-primary-disabled-text);
136
+ }
160
137
  }
161
138
 
162
139
  .Counter {
163
140
  color: inherit;
164
- // stylelint-disable-next-line primer/colors
165
- background-color: rgba($bg-white, 0.2);
141
+ background-color: var(--color-btn-primary-counter-bg);
166
142
  }
167
143
 
168
144
  .octicon {
169
- // stylelint-disable-next-line primer/colors
170
- color: rgba($text-white, 0.8);
145
+ color: var(--color-btn-primary-icon);
171
146
  }
172
147
  }
173
148
 
174
- // Mixin: btn-inverse-on-hover
149
+ // Outline button
175
150
 
176
- @mixin btn-inverse-on-hover( $color, $bg-hover, $bg-active, $shadow ) {
177
- color: $color;
178
- transition: none;
151
+ .btn-outline {
152
+ color: var(--color-btn-outline-text);
179
153
 
180
154
  &:hover,
181
155
  [open] > & {
182
- color: $text-white;
183
- background-color: $bg-hover;
184
- border-color: rgba($black, 0.15);
185
- box-shadow: 0 1px 0 rgba($black, 0.1), inset 0 1px 0 rgba($white, 0.03);
156
+ color: var(--color-btn-outline-hover-text);
157
+ background-color: var(--color-btn-outline-hover-bg);
158
+ border-color: var(--color-btn-outline-hover-border);
159
+ box-shadow: var(--color-btn-outline-hover-shadow), var(--color-btn-outline-hover-inset-shadow);
186
160
 
187
161
  .Counter {
188
- background-color: rgba($bg-white, 0.2);
162
+ background-color: var(--color-btn-outline-hover-counter-bg);
189
163
  }
190
164
 
191
165
  .octicon {
@@ -195,67 +169,87 @@
195
169
 
196
170
  &:active,
197
171
  &.selected,
198
- &[aria-selected=true] {
199
- color: $text-white;
200
- background-color: $bg-active;
201
- border-color: rgba($black, 0.15);
202
- box-shadow: inset 0 1px 0 rgba($shadow, 0.2);
172
+ &[aria-selected='true'] {
173
+ color: var(--color-btn-outline-selected-text);
174
+ background-color: var(--color-btn-outline-selected-bg);
175
+ border-color: var(--color-btn-outline-selected-border);
176
+ box-shadow: var(--color-btn-outline-selected-shadow);
203
177
  }
204
178
 
205
179
  &:disabled,
206
180
  &.disabled,
207
- &[aria-disabled=true] {
208
- color: rgba($color, 0.5);
209
- background-color: $bg-gray-light;
210
- border-color: $border-color-button;
211
- box-shadow: $box-shadow, $box-shadow-highlight;
181
+ &[aria-disabled='true'] {
182
+ color: var(--color-btn-outline-disabled-text);
183
+ background-color: var(--color-btn-outline-disabled-bg);
184
+ border-color: var(--color-btn-border);
185
+ box-shadow: none;
212
186
 
213
187
  .Counter {
214
- background-color: rgba($color, 0.05);
188
+ background-color: var(--color-btn-outline-disabled-counter-bg);
215
189
  }
216
190
  }
217
191
 
218
- &:focus {
219
- box-shadow: 0 0 0 3px rgba($bg-hover, 0.4);
220
- }
221
-
222
192
  .Counter {
223
193
  color: inherit;
224
- background-color: rgba($color, 0.1);
194
+ background-color: var(--color-btn-outline-counter-bg);
225
195
  }
226
196
  }
227
197
 
228
198
  // Danger button
229
199
 
230
200
  .btn-danger {
231
- @include btn-inverse-on-hover(
232
- $color: $text-red,
233
- $bg-hover: $red-600,
234
- $bg-active: darken($red-600, 3%),
235
- $shadow: $red-900
236
- );
237
- }
201
+ color: var(--color-btn-danger-text);
238
202
 
239
- // Outline button
203
+ .octicon {
204
+ color: var(--color-btn-danger-icon);
205
+ }
240
206
 
241
- .btn-outline {
242
- @include btn-inverse-on-hover(
243
- $color: $blue-500,
244
- $bg-hover: $blue-500,
245
- $bg-active: darken($blue-500, 3%),
246
- $shadow: $blue-900
247
- );
248
- }
207
+ &:hover,
208
+ [open] > & {
209
+ color: var(--color-btn-danger-hover-text);
210
+ background-color: var(--color-btn-danger-hover-bg);
211
+ border-color: var(--color-btn-danger-hover-border);
212
+ box-shadow: var(--color-btn-danger-hover-shadow), var(--color-btn-danger-hover-inset-shadow);
249
213
 
250
- // Solid buttons TODO: Deprecate?
251
- //
252
- //
253
- .btn-blue {
254
- @include btn-solid(
255
- $text-white,
256
- lighten($blue-500, 8%),
257
- darken($blue-500, 2%)
258
- );
214
+ .Counter {
215
+ background-color: var(--color-btn-danger-hover-counter-bg);
216
+ }
217
+
218
+ .octicon {
219
+ color: var(--color-btn-danger-hover-icon);
220
+ }
221
+ }
222
+
223
+ &:active,
224
+ &.selected,
225
+ &[aria-selected='true'] {
226
+ color: var(--color-btn-danger-selected-text);
227
+ background-color: var(--color-btn-danger-selected-bg);
228
+ border-color: var(--color-btn-danger-selected-border);
229
+ box-shadow: var(--color-btn-danger-selected-shadow);
230
+ }
231
+
232
+ &:disabled,
233
+ &.disabled,
234
+ &[aria-disabled='true'] {
235
+ color: var(--color-btn-danger-disabled-text);
236
+ background-color: var(--color-btn-danger-disabled-bg);
237
+ border-color: var(--color-btn-border);
238
+ box-shadow: none;
239
+
240
+ .Counter {
241
+ background-color: var(--color-btn-danger-disabled-counter-bg);
242
+ }
243
+
244
+ .octicon {
245
+ color: var(--color-btn-danger-disabled-text);
246
+ }
247
+ }
248
+
249
+ .Counter {
250
+ color: inherit;
251
+ background-color: var(--color-btn-danger-counter-bg);
252
+ }
259
253
  }
260
254
 
261
255
  // Sizes
@@ -1,4 +1,4 @@
1
- @import "../support/index.scss";
2
- @import "./button.scss";
3
- @import "./button-group.scss";
4
- @import "./misc.scss";
1
+ @import '../support/index.scss';
2
+ @import './button.scss';
3
+ @import './button-group.scss';
4
+ @import './misc.scss';
package/buttons/misc.scss CHANGED
@@ -7,7 +7,7 @@
7
7
  display: inline-block;
8
8
  padding: 0;
9
9
  font-size: inherit;
10
- color: $text-blue;
10
+ color: var(--color-accent-fg);
11
11
  text-decoration: none;
12
12
  white-space: nowrap;
13
13
  cursor: pointer;
@@ -21,11 +21,10 @@
21
21
  }
22
22
 
23
23
  &:disabled,
24
- &[aria-disabled=true] {
24
+ &[aria-disabled='true'] {
25
25
  &,
26
26
  &:hover {
27
- // stylelint-disable-next-line primer/colors
28
- color: rgba($gray-600, 0.5);
27
+ color: var(--color-primer-fg-disabled);
29
28
  cursor: default;
30
29
  }
31
30
  }
@@ -35,23 +34,34 @@
35
34
  //
36
35
  // Typically used as a "cancel" button next to a .btn
37
36
  .btn-invisible {
38
- color: $text-blue;
37
+ color: var(--color-accent-fg);
39
38
  background-color: transparent; // Reset default gradient backgrounds and colors
40
39
  border: 0;
41
- border-radius: 0;
40
+ border-radius: $border-radius;
42
41
  box-shadow: none;
43
42
 
44
43
  &:hover,
44
+ &.zeroclipboard-is-hover {
45
+ color: var(--color-accent-fg);
46
+ background: none;
47
+ outline: none;
48
+ box-shadow: none;
49
+ }
50
+
45
51
  &:active,
46
- &:focus,
47
52
  &.selected,
48
- &[aria-selected=true],
49
- &.zeroclipboard-is-hover,
53
+ &[aria-selected='true'],
50
54
  &.zeroclipboard-is-active {
51
- color: $text-blue;
55
+ color: var(--color-accent-fg);
52
56
  background: none;
53
- outline: none;
54
- box-shadow: none;
57
+ @include focusOutline;
58
+ }
59
+
60
+ &:disabled,
61
+ &.disabled,
62
+ &[aria-disabled='true'] {
63
+ color: var(--color-primer-fg-disabled);
64
+ background-color: transparent;
55
65
  }
56
66
  }
57
67
 
@@ -65,28 +75,31 @@
65
75
  // stylelint-disable-next-line primer/spacing
66
76
  margin-left: 5px;
67
77
  line-height: $lh-condensed-ultra;
68
- color: $text-gray;
78
+ color: var(--color-fg-muted);
69
79
  vertical-align: middle;
70
80
 
71
81
  // For `<button>` elements
72
82
  background: transparent;
73
83
  border: 0;
84
+ box-shadow: none;
74
85
 
75
- &:hover { color: $text-blue; }
86
+ &:hover {
87
+ color: var(--color-accent-fg);
88
+ }
76
89
 
77
90
  &.disabled,
78
- &[aria-disabled=true] {
79
- // stylelint-disable-next-line primer/colors
80
- color: $gray-400;
91
+ &[aria-disabled='true'] {
92
+ color: var(--color-primer-fg-disabled);
81
93
  cursor: default;
82
94
 
83
- // stylelint-disable-next-line primer/colors
84
- &:hover { color: $gray-400; }
95
+ &:hover {
96
+ color: var(--color-primer-fg-disabled);
97
+ }
85
98
  }
86
99
  }
87
100
 
88
101
  .btn-octicon-danger:hover {
89
- color: $text-red;
102
+ color: var(--color-danger-fg);
90
103
  }
91
104
 
92
105
  // Close button
@@ -94,9 +107,17 @@
94
107
  // Typically used with an octicon-x
95
108
  .close-button {
96
109
  padding: 0;
110
+ color: var(--color-fg-muted);
97
111
  background: transparent;
98
112
  border: 0;
99
- outline: none;
113
+
114
+ &:hover {
115
+ color: var(--color-fg-default);
116
+ }
117
+
118
+ &:active {
119
+ @include focusOutline;
120
+ }
100
121
  }
101
122
 
102
123
  // Hidden text button
@@ -125,26 +146,22 @@
125
146
  font-weight: $font-weight-bold;
126
147
  // stylelint-disable-next-line primer/typography
127
148
  line-height: 6px;
128
- // stylelint-disable-next-line primer/colors
129
- color: $gray-700;
149
+ color: var(--color-fg-default);
130
150
  text-decoration: none;
131
151
  vertical-align: middle;
132
- // stylelint-disable-next-line primer/colors
133
- background: lighten($gray-300, 5%);
152
+ background: var(--color-neutral-muted);
134
153
  border: 0;
135
154
  // stylelint-disable-next-line primer/borders
136
155
  border-radius: 1px;
137
156
 
138
157
  &:hover {
139
158
  text-decoration: none;
140
- // stylelint-disable-next-line primer/colors
141
- background-color: darken($gray-300, 4%);
159
+ background-color: var(--color-accent-muted);
142
160
  }
143
161
 
144
162
  &:active {
145
- color: $text-white;
146
- // stylelint-disable-next-line primer/colors
147
- background-color: $blue-400;
163
+ color: var(--color-fg-on-emphasis);
164
+ background-color: var(--color-accent-emphasis);
148
165
  }
149
166
  }
150
167
 
@@ -174,14 +191,14 @@
174
191
  font-weight: $font-weight-bold;
175
192
  // stylelint-disable-next-line primer/typography
176
193
  line-height: 20px;
177
- color: $text-gray-dark;
194
+ color: var(--color-fg-default);
178
195
  vertical-align: middle;
179
- background-color: $bg-white;
180
- border: $border-width $border-style $border-color-button;
196
+ background-color: var(--color-canvas-default);
197
+ border: $border-width $border-style var(--color-btn-border);
181
198
  border-left: 0;
182
199
  border-top-right-radius: $border-radius;
183
200
  border-bottom-right-radius: $border-radius;
184
- box-shadow: $box-shadow, $box-shadow-highlight;
201
+ box-shadow: var(--color-shadow-small), var(--color-primer-shadow-highlight);
185
202
 
186
203
  &:hover,
187
204
  &:active {
@@ -189,13 +206,7 @@
189
206
  }
190
207
 
191
208
  &:hover {
192
- color: $text-blue;
209
+ color: var(--color-accent-fg);
193
210
  cursor: pointer;
194
211
  }
195
-
196
- &:focus {
197
- z-index: 1;
198
- outline: 0;
199
- box-shadow: $box-shadow-focus;
200
- }
201
212
  }
@@ -0,0 +1,9 @@
1
+ // All themes
2
+
3
+ @import './themes/light.scss';
4
+ @import './themes/light_colorblind.scss';
5
+ @import './themes/dark.scss';
6
+ @import './themes/dark_dimmed.scss';
7
+ @import './themes/dark_high_contrast.scss';
8
+ @import './themes/dark_colorblind.scss';
9
+ @import './native.scss';
@@ -0,0 +1,10 @@
1
+ // color-scheme
2
+ // Enables color modes for native elements
3
+
4
+ @include color-mode(light) { color-scheme: light; }
5
+ @include color-mode(dark) { color-scheme: dark; }
6
+
7
+ [data-color-mode] {
8
+ color: var(--color-fg-default);
9
+ background-color: var(--color-canvas-default);
10
+ }
@@ -0,0 +1,7 @@
1
+ @import "../../support/index.scss";
2
+
3
+ @import "@primer/primitives/dist/scss/colors/_dark.scss";
4
+
5
+ @include color-mode-theme(dark) {
6
+ @include primer-colors-dark;
7
+ }
@@ -0,0 +1,7 @@
1
+ @import "../../support/index.scss";
2
+
3
+ @import "@primer/primitives/dist/scss/colors/_dark_colorblind.scss";
4
+
5
+ @include color-mode-theme(dark_colorblind) {
6
+ @include primer-colors-dark_colorblind;
7
+ }
@@ -0,0 +1,7 @@
1
+ @import "../../support/index.scss";
2
+
3
+ @import "@primer/primitives/dist/scss/colors/_dark_dimmed.scss";
4
+
5
+ @include color-mode-theme(dark_dimmed) {
6
+ @include primer-colors-dark_dimmed;
7
+ }
@@ -0,0 +1,7 @@
1
+ @import "../../support/index.scss";
2
+
3
+ @import "@primer/primitives/dist/scss/colors/_dark_high_contrast.scss";
4
+
5
+ @include color-mode-theme(dark_high_contrast) {
6
+ @include primer-colors-dark_high_contrast;
7
+ }
@@ -0,0 +1,7 @@
1
+ @import "../../support/index.scss";
2
+
3
+ @import "@primer/primitives/dist/scss/colors/_light.scss";
4
+
5
+ @include color-mode-theme(light, true) {
6
+ @include primer-colors-light;
7
+ }
@@ -0,0 +1,7 @@
1
+ @import "../../support/index.scss";
2
+
3
+ @import "@primer/primitives/dist/scss/colors/_light_colorblind.scss";
4
+
5
+ @include color-mode-theme(light_colorblind) {
6
+ @include primer-colors-light_colorblind;
7
+ }
package/core/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) &copy; [GitHub](https://github.com/)
22
+ [MIT](https://github.com/primer/css/blob/main/LICENSE) &copy; [GitHub](https://github.com/)
23
23
 
24
24
 
25
25
  [scss]: https://sass-lang.com/documentation/syntax#scss
package/core/index.scss CHANGED
@@ -5,24 +5,25 @@
5
5
  * Released under MIT license. Copyright (c) 2019 GitHub Inc.
6
6
  */
7
7
 
8
- // Include .octicon base styles
9
- @import "@primer/octicons/index.scss";
10
-
11
8
  // Global requirements
12
- @import "../support/index.scss";
9
+ @import '../support/index.scss';
10
+
11
+ // Color modes
13
12
 
14
13
  // Core modules
15
- @import "../base/index.scss";
16
- @import "../box/index.scss";
17
- @import "../breadcrumb/index.scss";
18
- @import "../buttons/index.scss";
19
- @import "../table-object/index.scss";
20
- @import "../forms/index.scss";
21
- @import "../layout/index.scss";
22
- @import "../navigation/index.scss";
23
- @import "../pagination/index.scss";
24
- @import "../tooltips/index.scss";
25
- @import "../truncate/index.scss";
14
+ @import '../actionlist/index.scss';
15
+ @import '../base/index.scss';
16
+ @import '../box/index.scss';
17
+ @import '../breadcrumb/index.scss';
18
+ @import '../buttons/index.scss';
19
+ @import '../table-object/index.scss';
20
+ @import '../forms/index.scss';
21
+ @import '../layout/index.scss';
22
+ @import '../links/index.scss';
23
+ @import '../navigation/index.scss';
24
+ @import '../pagination/index.scss';
25
+ @import '../tooltips/index.scss';
26
+ @import '../truncate/index.scss';
26
27
 
27
28
  // Utilities always go last so that they can override components
28
- @import "../utilities/index.scss";
29
+ @import '../utilities/index.scss';