@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
@@ -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 {
@@ -26,10 +26,6 @@
26
26
  &.disabled,
27
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,119 @@
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,
80
+ &:active {
81
+ background-color: var(--color-btn-active-bg);
82
+ border-color: var(--color-btn-active-border);
83
+ transition: none;
84
+ }
85
+
89
86
  &.selected,
90
87
  &[aria-selected=true] {
91
- background-color: $bg-active;
92
- box-shadow: $box-shadow-inset;
93
- transition: none;
88
+ background-color: var(--color-btn-selected-bg);
89
+ box-shadow: var(--color-primer-shadow-inset);
94
90
  }
95
91
 
96
92
  &:disabled,
97
93
  &.disabled,
98
94
  &[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;
95
+ color: var(--color-primer-fg-disabled);
96
+ background-color: var(--color-btn-bg);
97
+ border-color: var(--color-btn-border);
98
+
99
+ .octicon {
100
+ color: var(--color-primer-fg-disabled);
101
+ }
103
102
  }
104
103
 
105
104
  // Keep :focus after :disabled. Allows to see the focus ring even on disabled buttons
106
105
  &:focus,
107
106
  &.focus {
108
- outline: 1px dotted transparent; // Support Firfox custom colors
109
- outline-offset: 2px;
110
- box-shadow: $box-shadow-focus;
107
+ border-color: var(--color-btn-focus-border);
108
+ outline: none;
109
+ box-shadow: var(--color-btn-focus-shadow);
111
110
  }
112
111
  }
113
112
 
114
113
  // Primary button
115
114
 
116
115
  .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;
116
+ color: var(--color-btn-primary-text);
117
+ background-color: var(--color-btn-primary-bg);
118
+ border-color: var(--color-btn-primary-border);
119
+ box-shadow: var(--color-btn-primary-shadow), var(--color-btn-primary-inset-shadow);
130
120
 
131
121
  &:hover,
132
122
  &.hover,
133
123
  [open] > & {
134
- background-color: $bg-hover;
124
+ background-color: var(--color-btn-primary-hover-bg);
125
+ border-color: var(--color-btn-primary-hover-border);
135
126
  }
136
127
 
137
128
  &:active,
138
129
  &.selected,
139
130
  &[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);
131
+ background-color: var(--color-btn-primary-selected-bg);
132
+ box-shadow: var(--color-btn-primary-selected-shadow);
143
133
  }
144
134
 
145
135
  &:disabled,
146
136
  &.disabled,
147
137
  &[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;
138
+ color: var(--color-btn-primary-disabled-text);
139
+ background-color: var(--color-btn-primary-disabled-bg);
140
+ border-color: var(--color-btn-primary-disabled-border);
141
+
142
+ .octicon {
143
+ color: var(--color-btn-primary-disabled-text);
144
+ }
154
145
  }
155
146
 
156
147
  &:focus,
157
148
  &.focus {
158
- // stylelint-disable-next-line primer/box-shadow
159
- box-shadow: 0 0 0 3px rgba($bg-default, 0.4);
149
+ background-color: var(--color-btn-primary-focus-bg);
150
+ border-color: var(--color-btn-primary-focus-border);
151
+ box-shadow: var(--color-btn-primary-focus-shadow);
160
152
  }
161
153
 
162
154
  .Counter {
163
155
  color: inherit;
164
- // stylelint-disable-next-line primer/colors
165
- background-color: rgba($bg-white, 0.2);
156
+ background-color: var(--color-btn-primary-counter-bg);
166
157
  }
167
158
 
168
159
  .octicon {
169
- // stylelint-disable-next-line primer/colors
170
- color: rgba($text-white, 0.8);
160
+ color: var(--color-btn-primary-icon);
171
161
  }
172
162
  }
173
163
 
174
- // Mixin: btn-inverse-on-hover
164
+ // Outline button
175
165
 
176
- @mixin btn-inverse-on-hover( $color, $bg-hover, $bg-active, $shadow ) {
177
- color: $color;
178
- transition: none;
166
+ .btn-outline {
167
+ color: var(--color-btn-outline-text);
179
168
 
180
169
  &:hover,
181
170
  [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);
171
+ color: var(--color-btn-outline-hover-text);
172
+ background-color: var(--color-btn-outline-hover-bg);
173
+ border-color: var(--color-btn-outline-hover-border);
174
+ box-shadow: var(--color-btn-outline-hover-shadow), var(--color-btn-outline-hover-inset-shadow);
186
175
 
187
176
  .Counter {
188
- background-color: rgba($bg-white, 0.2);
177
+ background-color: var(--color-btn-outline-hover-counter-bg);
189
178
  }
190
179
 
191
180
  .octicon {
@@ -196,66 +185,96 @@
196
185
  &:active,
197
186
  &.selected,
198
187
  &[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);
188
+ color: var(--color-btn-outline-selected-text);
189
+ background-color: var(--color-btn-outline-selected-bg);
190
+ border-color: var(--color-btn-outline-selected-border);
191
+ box-shadow: var(--color-btn-outline-selected-shadow);
203
192
  }
204
193
 
205
194
  &:disabled,
206
195
  &.disabled,
207
196
  &[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;
197
+ color: var(--color-btn-outline-disabled-text);
198
+ background-color: var(--color-btn-outline-disabled-bg);
199
+ border-color: var(--color-btn-border);
200
+ box-shadow: none;
212
201
 
213
202
  .Counter {
214
- background-color: rgba($color, 0.05);
203
+ background-color: var(--color-btn-outline-disabled-counter-bg);
215
204
  }
216
205
  }
217
206
 
218
207
  &:focus {
219
- box-shadow: 0 0 0 3px rgba($bg-hover, 0.4);
208
+ border-color: var(--color-btn-outline-focus-border);
209
+ box-shadow: var(--color-btn-outline-focus-shadow);
220
210
  }
221
211
 
222
212
  .Counter {
223
213
  color: inherit;
224
- background-color: rgba($color, 0.1);
214
+ background-color: var(--color-btn-outline-counter-bg);
225
215
  }
226
216
  }
227
217
 
228
218
  // Danger button
229
219
 
230
220
  .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
- }
221
+ color: var(--color-btn-danger-text);
238
222
 
239
- // Outline button
223
+ .octicon {
224
+ color: var(--color-btn-danger-icon);
225
+ }
240
226
 
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
- }
227
+ &:hover,
228
+ [open] > & {
229
+ color: var(--color-btn-danger-hover-text);
230
+ background-color: var(--color-btn-danger-hover-bg);
231
+ border-color: var(--color-btn-danger-hover-border);
232
+ box-shadow: var(--color-btn-danger-hover-shadow), var(--color-btn-danger-hover-inset-shadow);
249
233
 
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
- );
234
+ .Counter {
235
+ background-color: var(--color-btn-danger-hover-counter-bg);
236
+ }
237
+
238
+ .octicon {
239
+ color: var(--color-btn-danger-hover-icon);
240
+ }
241
+ }
242
+
243
+ &:active,
244
+ &.selected,
245
+ &[aria-selected=true] {
246
+ color: var(--color-btn-danger-selected-text);
247
+ background-color: var(--color-btn-danger-selected-bg);
248
+ border-color: var(--color-btn-danger-selected-border);
249
+ box-shadow: var(--color-btn-danger-selected-shadow);
250
+ }
251
+
252
+ &:disabled,
253
+ &.disabled,
254
+ &[aria-disabled=true] {
255
+ color: var(--color-btn-danger-disabled-text);
256
+ background-color: var(--color-btn-danger-disabled-bg);
257
+ border-color: var(--color-btn-border);
258
+ box-shadow: none;
259
+
260
+ .Counter {
261
+ background-color: var(--color-btn-danger-disabled-counter-bg);
262
+ }
263
+
264
+ .octicon {
265
+ color: var(--color-btn-danger-disabled-text);
266
+ }
267
+ }
268
+
269
+ &:focus {
270
+ border-color: var(--color-btn-danger-focus-border);
271
+ box-shadow: var(--color-btn-danger-focus-shadow);
272
+ }
273
+
274
+ .Counter {
275
+ color: inherit;
276
+ background-color: var(--color-btn-danger-counter-bg);
277
+ }
259
278
  }
260
279
 
261
280
  // 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;
@@ -24,8 +24,7 @@
24
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,37 @@
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
40
  border-radius: 0;
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
52
  &:focus,
47
53
  &.selected,
48
54
  &[aria-selected=true],
49
- &.zeroclipboard-is-hover,
50
55
  &.zeroclipboard-is-active {
51
- color: $text-blue;
56
+ color: var(--color-accent-fg);
52
57
  background: none;
58
+ border-color: var(--color-btn-active-border);
53
59
  outline: none;
54
- box-shadow: none;
60
+ box-shadow: var(--color-btn-focus-shadow);
61
+ }
62
+
63
+ &:disabled,
64
+ &.disabled,
65
+ &[aria-disabled=true] {
66
+ color: var(--color-primer-fg-disabled);
67
+ background-color: transparent;
55
68
  }
56
69
  }
57
70
 
@@ -65,28 +78,27 @@
65
78
  // stylelint-disable-next-line primer/spacing
66
79
  margin-left: 5px;
67
80
  line-height: $lh-condensed-ultra;
68
- color: $text-gray;
81
+ color: var(--color-fg-muted);
69
82
  vertical-align: middle;
70
83
 
71
84
  // For `<button>` elements
72
85
  background: transparent;
73
86
  border: 0;
87
+ box-shadow: none;
74
88
 
75
- &:hover { color: $text-blue; }
89
+ &:hover { color: var(--color-accent-fg); }
76
90
 
77
91
  &.disabled,
78
92
  &[aria-disabled=true] {
79
- // stylelint-disable-next-line primer/colors
80
- color: $gray-400;
93
+ color: var(--color-primer-fg-disabled);
81
94
  cursor: default;
82
95
 
83
- // stylelint-disable-next-line primer/colors
84
- &:hover { color: $gray-400; }
96
+ &:hover { color: var(--color-primer-fg-disabled); }
85
97
  }
86
98
  }
87
99
 
88
100
  .btn-octicon-danger:hover {
89
- color: $text-red;
101
+ color: var(--color-danger-fg);
90
102
  }
91
103
 
92
104
  // Close button
@@ -94,9 +106,22 @@
94
106
  // Typically used with an octicon-x
95
107
  .close-button {
96
108
  padding: 0;
109
+ color: var(--color-fg-muted);
97
110
  background: transparent;
98
111
  border: 0;
99
112
  outline: none;
113
+
114
+ &:hover {
115
+ color: var(--color-fg-default);
116
+ }
117
+
118
+ &:active,
119
+ &:focus {
120
+ color: var(--color-fg-muted);
121
+ border-color: var(--color-btn-active-border);
122
+ outline: none;
123
+ box-shadow: var(--color-btn-focus-shadow);
124
+ }
100
125
  }
101
126
 
102
127
  // Hidden text button
@@ -125,26 +150,22 @@
125
150
  font-weight: $font-weight-bold;
126
151
  // stylelint-disable-next-line primer/typography
127
152
  line-height: 6px;
128
- // stylelint-disable-next-line primer/colors
129
- color: $gray-700;
153
+ color: var(--color-fg-default);
130
154
  text-decoration: none;
131
155
  vertical-align: middle;
132
- // stylelint-disable-next-line primer/colors
133
- background: lighten($gray-300, 5%);
156
+ background: var(--color-neutral-muted);
134
157
  border: 0;
135
158
  // stylelint-disable-next-line primer/borders
136
159
  border-radius: 1px;
137
160
 
138
161
  &:hover {
139
162
  text-decoration: none;
140
- // stylelint-disable-next-line primer/colors
141
- background-color: darken($gray-300, 4%);
163
+ background-color: var(--color-accent-muted);
142
164
  }
143
165
 
144
166
  &:active {
145
- color: $text-white;
146
- // stylelint-disable-next-line primer/colors
147
- background-color: $blue-400;
167
+ color: var(--color-fg-on-emphasis);
168
+ background-color: var(--color-accent-emphasis);
148
169
  }
149
170
  }
150
171
 
@@ -174,14 +195,14 @@
174
195
  font-weight: $font-weight-bold;
175
196
  // stylelint-disable-next-line primer/typography
176
197
  line-height: 20px;
177
- color: $text-gray-dark;
198
+ color: var(--color-fg-default);
178
199
  vertical-align: middle;
179
- background-color: $bg-white;
180
- border: $border-width $border-style $border-color-button;
200
+ background-color: var(--color-canvas-default);
201
+ border: $border-width $border-style var(--color-btn-border);
181
202
  border-left: 0;
182
203
  border-top-right-radius: $border-radius;
183
204
  border-bottom-right-radius: $border-radius;
184
- box-shadow: $box-shadow, $box-shadow-highlight;
205
+ box-shadow: var(--color-shadow-small), var(--color-primer-shadow-highlight);
185
206
 
186
207
  &:hover,
187
208
  &:active {
@@ -189,13 +210,13 @@
189
210
  }
190
211
 
191
212
  &:hover {
192
- color: $text-blue;
213
+ color: var(--color-accent-fg);
193
214
  cursor: pointer;
194
215
  }
195
216
 
196
217
  &:focus {
197
218
  z-index: 1;
198
219
  outline: 0;
199
- box-shadow: $box-shadow-focus;
220
+ box-shadow: var(--color-primer-shadow-focus);
200
221
  }
201
222
  }
@@ -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,24 @@
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 '../base/index.scss';
15
+ @import '../box/index.scss';
16
+ @import '../breadcrumb/index.scss';
17
+ @import '../buttons/index.scss';
18
+ @import '../table-object/index.scss';
19
+ @import '../forms/index.scss';
20
+ @import '../layout/index.scss';
21
+ @import '../links/index.scss';
22
+ @import '../navigation/index.scss';
23
+ @import '../pagination/index.scss';
24
+ @import '../tooltips/index.scss';
25
+ @import '../truncate/index.scss';
26
26
 
27
27
  // Utilities always go last so that they can override components
28
- @import "../utilities/index.scss";
28
+ @import '../utilities/index.scss';