jekyll-v4-theme-primer 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (297) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.md +22 -0
  3. data/README.md +116 -0
  4. data/_includes/.gitkeep +1 -0
  5. data/_includes/head-custom-google-analytics.html +10 -0
  6. data/_includes/head-custom.html +9 -0
  7. data/_includes/theme.html +11 -0
  8. data/_layouts/default.html +29 -0
  9. data/_layouts/home.html +4 -0
  10. data/_layouts/page.html +4 -0
  11. data/_layouts/post.html +4 -0
  12. data/_sass/@primer/css/actionlist/action-list-item-divider.scss +48 -0
  13. data/_sass/@primer/css/actionlist/action-list-item.scss +593 -0
  14. data/_sass/@primer/css/actionlist/action-list-tree.scss +118 -0
  15. data/_sass/@primer/css/actionlist/action-list-variables.scss +8 -0
  16. data/_sass/@primer/css/actionlist/action-list.scss +67 -0
  17. data/_sass/@primer/css/actionlist/index.scss +6 -0
  18. data/_sass/@primer/css/alerts/flash.scss +1 -0
  19. data/_sass/@primer/css/alerts/index.scss +3 -0
  20. data/_sass/@primer/css/autocomplete/autocomplete.scss +1 -0
  21. data/_sass/@primer/css/autocomplete/index.scss +4 -0
  22. data/_sass/@primer/css/autocomplete/suggester.scss +92 -0
  23. data/_sass/@primer/css/avatars/avatar-parent-child.scss +17 -0
  24. data/_sass/@primer/css/avatars/avatar-stack.scss +1 -0
  25. data/_sass/@primer/css/avatars/avatar.scss +1 -0
  26. data/_sass/@primer/css/avatars/circle-badge.scss +55 -0
  27. data/_sass/@primer/css/avatars/index.scss +7 -0
  28. data/_sass/@primer/css/base/base.scss +160 -0
  29. data/_sass/@primer/css/base/index.scss +6 -0
  30. data/_sass/@primer/css/base/kbd.scss +19 -0
  31. data/_sass/@primer/css/base/normalize.scss +381 -0
  32. data/_sass/@primer/css/base/octicons.scss +6 -0
  33. data/_sass/@primer/css/base/typography-base.scss +89 -0
  34. data/_sass/@primer/css/blankslate/blankslate.scss +1 -0
  35. data/_sass/@primer/css/blankslate/index.scss +2 -0
  36. data/_sass/@primer/css/box/box-overlay.scss +42 -0
  37. data/_sass/@primer/css/box/box.scss +1 -0
  38. data/_sass/@primer/css/box/index.scss +3 -0
  39. data/_sass/@primer/css/branch-name/branch-name.scss +31 -0
  40. data/_sass/@primer/css/branch-name/index.scss +3 -0
  41. data/_sass/@primer/css/breadcrumb/breadcrumb.scss +1 -0
  42. data/_sass/@primer/css/breadcrumb/index.scss +3 -0
  43. data/_sass/@primer/css/buttons/button-group.scss +92 -0
  44. data/_sass/@primer/css/buttons/button.scss +340 -0
  45. data/_sass/@primer/css/buttons/index.scss +4 -0
  46. data/_sass/@primer/css/buttons/misc.scss +231 -0
  47. data/_sass/@primer/css/color-modes/index.scss +12 -0
  48. data/_sass/@primer/css/color-modes/native.scss +22 -0
  49. data/_sass/@primer/css/color-modes/themes/dark.scss +6 -0
  50. data/_sass/@primer/css/color-modes/themes/dark_colorblind.scss +6 -0
  51. data/_sass/@primer/css/color-modes/themes/dark_dimmed.scss +6 -0
  52. data/_sass/@primer/css/color-modes/themes/dark_high_contrast.scss +6 -0
  53. data/_sass/@primer/css/color-modes/themes/dark_tritanopia.scss +6 -0
  54. data/_sass/@primer/css/color-modes/themes/light.scss +6 -0
  55. data/_sass/@primer/css/color-modes/themes/light_colorblind.scss +6 -0
  56. data/_sass/@primer/css/color-modes/themes/light_high_contrast.scss +6 -0
  57. data/_sass/@primer/css/color-modes/themes/light_tritanopia.scss +6 -0
  58. data/_sass/@primer/css/core/index.scss +30 -0
  59. data/_sass/@primer/css/dropdown/dropdown.scss +1 -0
  60. data/_sass/@primer/css/dropdown/index.scss +2 -0
  61. data/_sass/@primer/css/forms/FormControl.scss +1 -0
  62. data/_sass/@primer/css/forms/form-control.scss +267 -0
  63. data/_sass/@primer/css/forms/form-group.scss +287 -0
  64. data/_sass/@primer/css/forms/form-select.scss +46 -0
  65. data/_sass/@primer/css/forms/form-validation.scss +369 -0
  66. data/_sass/@primer/css/forms/index.scss +9 -0
  67. data/_sass/@primer/css/forms/input-group.scss +71 -0
  68. data/_sass/@primer/css/forms/radio-group.scss +62 -0
  69. data/_sass/@primer/css/header/header.scss +47 -0
  70. data/_sass/@primer/css/header/index.scss +2 -0
  71. data/_sass/@primer/css/index.scss +19 -0
  72. data/_sass/@primer/css/labels/counters.scss +1 -0
  73. data/_sass/@primer/css/labels/diffstat.scss +37 -0
  74. data/_sass/@primer/css/labels/index.scss +7 -0
  75. data/_sass/@primer/css/labels/issue-labels.scss +23 -0
  76. data/_sass/@primer/css/labels/labels.scss +1 -0
  77. data/_sass/@primer/css/labels/mixins.scss +37 -0
  78. data/_sass/@primer/css/labels/states.scss +1 -0
  79. data/_sass/@primer/css/layout/app-frame.scss +156 -0
  80. data/_sass/@primer/css/layout/container.scss +30 -0
  81. data/_sass/@primer/css/layout/grid-offset.scss +20 -0
  82. data/_sass/@primer/css/layout/grid.scss +65 -0
  83. data/_sass/@primer/css/layout/index.scss +8 -0
  84. data/_sass/@primer/css/layout/layout.scss +1 -0
  85. data/_sass/@primer/css/layout/page-layout.scss +413 -0
  86. data/_sass/@primer/css/layout/stack.scss +220 -0
  87. data/_sass/@primer/css/links/index.scss +3 -0
  88. data/_sass/@primer/css/links/link.scss +60 -0
  89. data/_sass/@primer/css/loaders/index.scss +2 -0
  90. data/_sass/@primer/css/loaders/loaders.scss +19 -0
  91. data/_sass/@primer/css/markdown/blob-csv.scss +29 -0
  92. data/_sass/@primer/css/markdown/code.scss +77 -0
  93. data/_sass/@primer/css/markdown/footnotes.scss +55 -0
  94. data/_sass/@primer/css/markdown/headings.scss +96 -0
  95. data/_sass/@primer/css/markdown/images.scss +130 -0
  96. data/_sass/@primer/css/markdown/index.scss +9 -0
  97. data/_sass/@primer/css/markdown/lists.scss +98 -0
  98. data/_sass/@primer/css/markdown/markdown-body.scss +96 -0
  99. data/_sass/@primer/css/markdown/tables.scss +36 -0
  100. data/_sass/@primer/css/marketing/buttons/button.scss +164 -0
  101. data/_sass/@primer/css/marketing/buttons/index.scss +3 -0
  102. data/_sass/@primer/css/marketing/index.scss +15 -0
  103. data/_sass/@primer/css/marketing/links/index.scss +3 -0
  104. data/_sass/@primer/css/marketing/links/link.scss +50 -0
  105. data/_sass/@primer/css/marketing/support/index.scss +2 -0
  106. data/_sass/@primer/css/marketing/support/variables.scss +127 -0
  107. data/_sass/@primer/css/marketing/type/index.scss +3 -0
  108. data/_sass/@primer/css/marketing/type/typography.scss +118 -0
  109. data/_sass/@primer/css/marketing/utilities/animations.scss +51 -0
  110. data/_sass/@primer/css/marketing/utilities/borders.scss +4 -0
  111. data/_sass/@primer/css/marketing/utilities/filters.scss +3 -0
  112. data/_sass/@primer/css/marketing/utilities/index.scss +6 -0
  113. data/_sass/@primer/css/marketing/utilities/layout.scss +51 -0
  114. data/_sass/@primer/css/navigation/filter-list.scss +82 -0
  115. data/_sass/@primer/css/navigation/index.scss +8 -0
  116. data/_sass/@primer/css/navigation/menu.scss +1 -0
  117. data/_sass/@primer/css/navigation/sidenav.scss +99 -0
  118. data/_sass/@primer/css/navigation/subnav.scss +146 -0
  119. data/_sass/@primer/css/navigation/tabnav.scss +1 -0
  120. data/_sass/@primer/css/navigation/underline-nav.scss +1 -0
  121. data/_sass/@primer/css/overlay/index.scss +2 -0
  122. data/_sass/@primer/css/overlay/overlay.scss +1 -0
  123. data/_sass/@primer/css/pagination/index.scss +3 -0
  124. data/_sass/@primer/css/pagination/pagination.scss +156 -0
  125. data/_sass/@primer/css/popover/index.scss +3 -0
  126. data/_sass/@primer/css/popover/popover.scss +1 -0
  127. data/_sass/@primer/css/primitives/index.scss +10 -0
  128. data/_sass/@primer/css/primitives/temp-typography-tokens.scss +22 -0
  129. data/_sass/@primer/css/product/index.scss +28 -0
  130. data/_sass/@primer/css/progress/index.scss +3 -0
  131. data/_sass/@primer/css/progress/progress.scss +1 -0
  132. data/_sass/@primer/css/select-menu/index.scss +3 -0
  133. data/_sass/@primer/css/select-menu/select-menu.scss +463 -0
  134. data/_sass/@primer/css/subhead/index.scss +3 -0
  135. data/_sass/@primer/css/subhead/subhead.scss +1 -0
  136. data/_sass/@primer/css/support/index.scss +10 -0
  137. data/_sass/@primer/css/support/mixins/color-modes.scss +109 -0
  138. data/_sass/@primer/css/support/mixins/layout.scss +58 -0
  139. data/_sass/@primer/css/support/mixins/misc.scss +73 -0
  140. data/_sass/@primer/css/support/mixins/typography.scss +91 -0
  141. data/_sass/@primer/css/support/variables/layout.scss +230 -0
  142. data/_sass/@primer/css/support/variables/misc.scss +18 -0
  143. data/_sass/@primer/css/support/variables/typography.scss +43 -0
  144. data/_sass/@primer/css/table-object/index.scss +1 -0
  145. data/_sass/@primer/css/table-object/table-object.scss +23 -0
  146. data/_sass/@primer/css/timeline/index.scss +2 -0
  147. data/_sass/@primer/css/timeline/timeline-item.scss +1 -0
  148. data/_sass/@primer/css/toasts/index.scss +2 -0
  149. data/_sass/@primer/css/toasts/toasts.scss +127 -0
  150. data/_sass/@primer/css/toggle-switch/index.scss +2 -0
  151. data/_sass/@primer/css/toggle-switch/toggle-switch.scss +1 -0
  152. data/_sass/@primer/css/tooltips/index.scss +2 -0
  153. data/_sass/@primer/css/tooltips/tooltips.scss +281 -0
  154. data/_sass/@primer/css/truncate/index.scss +2 -0
  155. data/_sass/@primer/css/truncate/truncate.scss +2 -0
  156. data/_sass/@primer/css/utilities/animations.scss +196 -0
  157. data/_sass/@primer/css/utilities/borders.scss +74 -0
  158. data/_sass/@primer/css/utilities/box-shadow.scss +25 -0
  159. data/_sass/@primer/css/utilities/colors.scss +95 -0
  160. data/_sass/@primer/css/utilities/details.scss +105 -0
  161. data/_sass/@primer/css/utilities/flexbox.scss +52 -0
  162. data/_sass/@primer/css/utilities/index.scss +14 -0
  163. data/_sass/@primer/css/utilities/layout.scss +96 -0
  164. data/_sass/@primer/css/utilities/margin.scss +71 -0
  165. data/_sass/@primer/css/utilities/padding.scss +56 -0
  166. data/_sass/@primer/css/utilities/typography.scss +332 -0
  167. data/_sass/@primer/css/utilities/visibility-display.scss +123 -0
  168. data/_sass/@primer/primitives/dist/scss/colors/_dark.scss +443 -0
  169. data/_sass/@primer/primitives/dist/scss/colors/_dark_colorblind.scss +443 -0
  170. data/_sass/@primer/primitives/dist/scss/colors/_dark_dimmed.scss +443 -0
  171. data/_sass/@primer/primitives/dist/scss/colors/_dark_high_contrast.scss +443 -0
  172. data/_sass/@primer/primitives/dist/scss/colors/_dark_tritanopia.scss +443 -0
  173. data/_sass/@primer/primitives/dist/scss/colors/_light.scss +443 -0
  174. data/_sass/@primer/primitives/dist/scss/colors/_light_colorblind.scss +443 -0
  175. data/_sass/@primer/primitives/dist/scss/colors/_light_high_contrast.scss +443 -0
  176. data/_sass/@primer/primitives/dist/scss/colors/_light_tritanopia.scss +443 -0
  177. data/_sass/@primer/primitives/dist/scss/spacing/_normal.scss +11 -0
  178. data/_sass/@primer/primitives/dist/scss/typography/_normal.scss +15 -0
  179. data/_sass/@primer/primitives/tokens-v2-private/scss/tokens/base/size/size.scss +21 -0
  180. data/_sass/@primer/primitives/tokens-v2-private/scss/tokens/base/typography/typography.scss +8 -0
  181. data/_sass/@primer/primitives/tokens-v2-private/scss/tokens/functional/size/border.scss +14 -0
  182. data/_sass/@primer/primitives/tokens-v2-private/scss/tokens/functional/size/breakpoints.scss +10 -0
  183. data/_sass/@primer/primitives/tokens-v2-private/scss/tokens/functional/size/size-coarse.scss +7 -0
  184. data/_sass/@primer/primitives/tokens-v2-private/scss/tokens/functional/size/size-fine.scss +7 -0
  185. data/_sass/@primer/primitives/tokens-v2-private/scss/tokens/functional/size/size.scss +51 -0
  186. data/_sass/@primer/primitives/tokens-v2-private/scss/tokens/functional/size/viewport.scss +10 -0
  187. data/_sass/@primer/primitives/tokens-v2-private/scss/tokens/functional/typography/typography.scss +44 -0
  188. data/_sass/@primer/view-components/LICENSE.txt +21 -0
  189. data/_sass/@primer/view-components/README.md +17 -0
  190. data/_sass/@primer/view-components/app/assets/javascripts/primer_view_components.js +2 -0
  191. data/_sass/@primer/view-components/app/assets/javascripts/primer_view_components.js.map +1 -0
  192. data/_sass/@primer/view-components/app/assets/styles/primer_view_components.css +3 -0
  193. data/_sass/@primer/view-components/app/assets/styles/primer_view_components.css.map +1 -0
  194. data/_sass/@primer/view-components/app/components/primer/alpha/action_list.css +1 -0
  195. data/_sass/@primer/view-components/app/components/primer/alpha/action_list.css.json +1 -0
  196. data/_sass/@primer/view-components/app/components/primer/alpha/auto_complete.css +1 -0
  197. data/_sass/@primer/view-components/app/components/primer/alpha/auto_complete.css.json +1 -0
  198. data/_sass/@primer/view-components/app/components/primer/alpha/banner.css +1 -0
  199. data/_sass/@primer/view-components/app/components/primer/alpha/banner.css.json +1 -0
  200. data/_sass/@primer/view-components/app/components/primer/alpha/button_marketing.css +1 -0
  201. data/_sass/@primer/view-components/app/components/primer/alpha/button_marketing.css.json +1 -0
  202. data/_sass/@primer/view-components/app/components/primer/alpha/dialog.css +1 -0
  203. data/_sass/@primer/view-components/app/components/primer/alpha/dialog.css.json +1 -0
  204. data/_sass/@primer/view-components/app/components/primer/alpha/dropdown/menu.d.ts +1 -0
  205. data/_sass/@primer/view-components/app/components/primer/alpha/dropdown/menu.js +1 -0
  206. data/_sass/@primer/view-components/app/components/primer/alpha/dropdown.css +1 -0
  207. data/_sass/@primer/view-components/app/components/primer/alpha/dropdown.css.json +1 -0
  208. data/_sass/@primer/view-components/app/components/primer/alpha/dropdown.d.ts +1 -0
  209. data/_sass/@primer/view-components/app/components/primer/alpha/dropdown.js +1 -0
  210. data/_sass/@primer/view-components/app/components/primer/alpha/image_crop.d.ts +1 -0
  211. data/_sass/@primer/view-components/app/components/primer/alpha/image_crop.js +1 -0
  212. data/_sass/@primer/view-components/app/components/primer/alpha/layout.css +1 -0
  213. data/_sass/@primer/view-components/app/components/primer/alpha/layout.css.json +1 -0
  214. data/_sass/@primer/view-components/app/components/primer/alpha/menu.css +1 -0
  215. data/_sass/@primer/view-components/app/components/primer/alpha/menu.css.json +1 -0
  216. data/_sass/@primer/view-components/app/components/primer/alpha/modal_dialog.d.ts +18 -0
  217. data/_sass/@primer/view-components/app/components/primer/alpha/modal_dialog.js +150 -0
  218. data/_sass/@primer/view-components/app/components/primer/alpha/nav_list.d.ts +25 -0
  219. data/_sass/@primer/view-components/app/components/primer/alpha/nav_list.js +130 -0
  220. data/_sass/@primer/view-components/app/components/primer/alpha/segmented_control.css +1 -0
  221. data/_sass/@primer/view-components/app/components/primer/alpha/segmented_control.css.json +1 -0
  222. data/_sass/@primer/view-components/app/components/primer/alpha/segmented_control.d.ts +12 -0
  223. data/_sass/@primer/view-components/app/components/primer/alpha/segmented_control.js +47 -0
  224. data/_sass/@primer/view-components/app/components/primer/alpha/tab_nav.css +1 -0
  225. data/_sass/@primer/view-components/app/components/primer/alpha/tab_nav.css.json +1 -0
  226. data/_sass/@primer/view-components/app/components/primer/alpha/text_field.css +3 -0
  227. data/_sass/@primer/view-components/app/components/primer/alpha/text_field.css.json +1 -0
  228. data/_sass/@primer/view-components/app/components/primer/alpha/toggle_switch.css +1 -0
  229. data/_sass/@primer/view-components/app/components/primer/alpha/toggle_switch.css.json +1 -0
  230. data/_sass/@primer/view-components/app/components/primer/alpha/toggle_switch.d.ts +29 -0
  231. data/_sass/@primer/view-components/app/components/primer/alpha/toggle_switch.js +144 -0
  232. data/_sass/@primer/view-components/app/components/primer/alpha/tool_tip.d.ts +25 -0
  233. data/_sass/@primer/view-components/app/components/primer/alpha/tool_tip.js +389 -0
  234. data/_sass/@primer/view-components/app/components/primer/alpha/underline_nav.css +1 -0
  235. data/_sass/@primer/view-components/app/components/primer/alpha/underline_nav.css.json +1 -0
  236. data/_sass/@primer/view-components/app/components/primer/alpha/x_banner.d.ts +11 -0
  237. data/_sass/@primer/view-components/app/components/primer/alpha/x_banner.js +35 -0
  238. data/_sass/@primer/view-components/app/components/primer/beta/auto_complete/auto_complete.d.ts +1 -0
  239. data/_sass/@primer/view-components/app/components/primer/beta/auto_complete/auto_complete.js +1 -0
  240. data/_sass/@primer/view-components/app/components/primer/beta/avatar.css +1 -0
  241. data/_sass/@primer/view-components/app/components/primer/beta/avatar.css.json +1 -0
  242. data/_sass/@primer/view-components/app/components/primer/beta/avatar_stack.css +1 -0
  243. data/_sass/@primer/view-components/app/components/primer/beta/avatar_stack.css.json +1 -0
  244. data/_sass/@primer/view-components/app/components/primer/beta/blankslate.css +1 -0
  245. data/_sass/@primer/view-components/app/components/primer/beta/blankslate.css.json +1 -0
  246. data/_sass/@primer/view-components/app/components/primer/beta/border_box.css +1 -0
  247. data/_sass/@primer/view-components/app/components/primer/beta/border_box.css.json +1 -0
  248. data/_sass/@primer/view-components/app/components/primer/beta/breadcrumbs.css +1 -0
  249. data/_sass/@primer/view-components/app/components/primer/beta/breadcrumbs.css.json +1 -0
  250. data/_sass/@primer/view-components/app/components/primer/beta/button.css +1 -0
  251. data/_sass/@primer/view-components/app/components/primer/beta/button.css.json +1 -0
  252. data/_sass/@primer/view-components/app/components/primer/beta/clipboard_copy.d.ts +1 -0
  253. data/_sass/@primer/view-components/app/components/primer/beta/clipboard_copy.js +43 -0
  254. data/_sass/@primer/view-components/app/components/primer/beta/counter.css +1 -0
  255. data/_sass/@primer/view-components/app/components/primer/beta/counter.css.json +1 -0
  256. data/_sass/@primer/view-components/app/components/primer/beta/flash.css +1 -0
  257. data/_sass/@primer/view-components/app/components/primer/beta/flash.css.json +1 -0
  258. data/_sass/@primer/view-components/app/components/primer/beta/label.css +1 -0
  259. data/_sass/@primer/view-components/app/components/primer/beta/label.css.json +1 -0
  260. data/_sass/@primer/view-components/app/components/primer/beta/link.css +1 -0
  261. data/_sass/@primer/view-components/app/components/primer/beta/link.css.json +1 -0
  262. data/_sass/@primer/view-components/app/components/primer/beta/popover.css +1 -0
  263. data/_sass/@primer/view-components/app/components/primer/beta/popover.css.json +1 -0
  264. data/_sass/@primer/view-components/app/components/primer/beta/progress_bar.css +1 -0
  265. data/_sass/@primer/view-components/app/components/primer/beta/progress_bar.css.json +1 -0
  266. data/_sass/@primer/view-components/app/components/primer/beta/truncate.css +1 -0
  267. data/_sass/@primer/view-components/app/components/primer/beta/truncate.css.json +1 -0
  268. data/_sass/@primer/view-components/app/components/primer/local_time.d.ts +1 -0
  269. data/_sass/@primer/view-components/app/components/primer/local_time.js +1 -0
  270. data/_sass/@primer/view-components/app/components/primer/primer.d.ts +15 -0
  271. data/_sass/@primer/view-components/app/components/primer/primer.js +15 -0
  272. data/_sass/@primer/view-components/app/components/primer/state_component.css +1 -0
  273. data/_sass/@primer/view-components/app/components/primer/state_component.css.json +1 -0
  274. data/_sass/@primer/view-components/app/components/primer/subhead_component.css +1 -0
  275. data/_sass/@primer/view-components/app/components/primer/subhead_component.css.json +1 -0
  276. data/_sass/@primer/view-components/app/components/primer/tab_container_component.d.ts +1 -0
  277. data/_sass/@primer/view-components/app/components/primer/tab_container_component.js +1 -0
  278. data/_sass/@primer/view-components/app/components/primer/time_ago_component.d.ts +1 -0
  279. data/_sass/@primer/view-components/app/components/primer/time_ago_component.js +1 -0
  280. data/_sass/@primer/view-components/app/components/primer/timeline_item_component.css +1 -0
  281. data/_sass/@primer/view-components/app/components/primer/timeline_item_component.css.json +1 -0
  282. data/_sass/@primer/view-components/app/components/primer/truncate.css +1 -0
  283. data/_sass/@primer/view-components/app/components/primer/truncate.css.json +1 -0
  284. data/_sass/@primer/view-components/lib/primer/forms/primer_multi_input.d.ts +10 -0
  285. data/_sass/@primer/view-components/lib/primer/forms/primer_multi_input.js +45 -0
  286. data/_sass/@primer/view-components/lib/primer/forms/primer_text_field.d.ts +1 -0
  287. data/_sass/@primer/view-components/lib/primer/forms/primer_text_field.js +62 -0
  288. data/_sass/@primer/view-components/package.json +95 -0
  289. data/_sass/@primer/view-components/static/arguments.json +2586 -0
  290. data/_sass/@primer/view-components/static/audited_at.json +100 -0
  291. data/_sass/@primer/view-components/static/constants.json +1157 -0
  292. data/_sass/@primer/view-components/static/statuses.json +100 -0
  293. data/_sass/jekyll-theme-primer.scss +8 -0
  294. data/_sass/primer.scss +4 -0
  295. data/_sass/rouge.scss +213 -0
  296. data/assets/css/style.scss +4 -0
  297. metadata +444 -0
@@ -0,0 +1,593 @@
1
+ // stylelint-disable max-nesting-depth, selector-max-specificity, selector-max-compound-selectors
2
+
3
+ @mixin activeIndicatorLine($padding-left: -$actionList-item-padding-horizontal) {
4
+ position: absolute;
5
+ top: calc(50% - 12px);
6
+ left: $padding-left;
7
+ width: $spacer-1;
8
+ height: $spacer-4;
9
+ content: '';
10
+ background: var(--color-accent-fg);
11
+ border-radius: $border-radius;
12
+ }
13
+
14
+ // <li>
15
+ .ActionList-item {
16
+ position: relative;
17
+ list-style: none;
18
+ background-color: transparent;
19
+ border-radius: $border-radius;
20
+
21
+ &:hover,
22
+ &:active {
23
+ cursor: pointer;
24
+ }
25
+
26
+ // only hover li without list as children
27
+ &:not(.ActionList-item--hasSubItem),
28
+ // target contents of first child li if sub-item (li wraps item label + nested ul)
29
+ &.ActionList-item--hasSubItem > .ActionList-content {
30
+ @media (hover: hover) {
31
+ &:hover {
32
+ cursor: pointer;
33
+ background-color: var(--color-action-list-item-default-hover-bg);
34
+
35
+ &:not(.ActionList-item--navActive):not(:focus-visible) {
36
+ // Support for "Windows high contrast mode"
37
+ outline: $border-style $border-width transparent;
38
+ outline-offset: -$border-width;
39
+ // stylelint-disable-next-line primer/box-shadow
40
+ box-shadow: inset 0 0 0 $border-width var(--color-action-list-item-default-active-border);
41
+ }
42
+ }
43
+ }
44
+
45
+ &:active {
46
+ background: var(--color-action-list-item-default-active-bg);
47
+
48
+ &:not(.ActionList-item--navActive) {
49
+ // Support for "Windows high contrast mode" https://sarahmhigley.com/writing/whcm-quick-tips/
50
+ outline: $border-style $border-width transparent;
51
+ outline-offset: -$border-width;
52
+ // stylelint-disable-next-line primer/box-shadow
53
+ box-shadow: inset 0 0 0 $border-width var(--color-action-list-item-default-active-border);
54
+ }
55
+ }
56
+
57
+ // hide dividers
58
+
59
+ @media (hover: hover) {
60
+ &:hover {
61
+ .ActionList-item-label::before,
62
+ + .ActionList-item .ActionList-item-label::before {
63
+ visibility: hidden;
64
+ }
65
+
66
+ .ActionList-item-descriptionWrap--inline::before,
67
+ + .ActionList-item .ActionList-item-descriptionWrap--inline::before {
68
+ visibility: hidden;
69
+ }
70
+ }
71
+ }
72
+ // stylelint-disable-next-line no-duplicate-selectors
73
+ &:active {
74
+ .ActionList-item-label::before,
75
+ + .ActionList-item .ActionList-item-label::before {
76
+ visibility: hidden;
77
+ }
78
+ }
79
+ }
80
+
81
+ // target contents of li if sub-item (li wraps item label + nested ul)
82
+ // collapse styles here
83
+ &.ActionList-item--hasSubItem {
84
+ // first child
85
+ > .ActionList-content {
86
+ z-index: 1;
87
+
88
+ @media (hover: hover) {
89
+ &:hover {
90
+ background-color: var(--color-action-list-item-default-hover-bg);
91
+ }
92
+ }
93
+
94
+ &:active {
95
+ background-color: var(--color-action-list-item-default-active-bg);
96
+ }
97
+ }
98
+ }
99
+
100
+ // Make sure that the first visible item isn't a divider
101
+ &[hidden] + .ActionList-sectionDivider {
102
+ display: none;
103
+ }
104
+
105
+ // Autocomplete [aria-selected] items
106
+
107
+ &[aria-selected='true'] {
108
+ font-weight: $font-weight-normal;
109
+ background: var(--color-action-list-item-default-selected-bg);
110
+
111
+ @media (hover: hover) {
112
+ &:hover {
113
+ background-color: var(--color-action-list-item-default-hover-bg);
114
+ }
115
+ }
116
+
117
+ &::before,
118
+ + .ActionList-item::before {
119
+ visibility: hidden;
120
+ }
121
+
122
+ // blue accent line
123
+ &::after {
124
+ @include activeIndicatorLine(-$spacer-1);
125
+ }
126
+ }
127
+
128
+ // active state [aria-current]
129
+
130
+ &.ActionList-item--navActive {
131
+ &:not(.ActionList-item--subItem) {
132
+ .ActionList-item-label {
133
+ font-weight: $font-weight-bold;
134
+ }
135
+ }
136
+
137
+ &:not(.ActionList-item--danger) {
138
+ background: var(--color-action-list-item-default-selected-bg);
139
+
140
+ @media (hover: hover) {
141
+ &:hover {
142
+ background-color: var(--color-action-list-item-default-hover-bg);
143
+ }
144
+ }
145
+
146
+ &::before,
147
+ + .ActionList-item::before {
148
+ visibility: hidden;
149
+ }
150
+
151
+ // blue accent line
152
+ &::after {
153
+ @include activeIndicatorLine;
154
+ }
155
+ }
156
+ }
157
+
158
+ // checkbox item [aria-checked]
159
+ // listbox [aria-selected]
160
+
161
+ &[aria-checked='true'],
162
+ &[aria-selected='true'] {
163
+ // multiselect checkmark
164
+ .ActionList-item-multiSelectCheckmark {
165
+ visibility: visible;
166
+ opacity: 1;
167
+ transition: visibility 0 linear 0, opacity $actionList-item-checkmark-transition-timing;
168
+ }
169
+
170
+ // singleselect checkmark
171
+ .ActionList-item-singleSelectCheckmark {
172
+ visibility: visible;
173
+
174
+ @media screen and (prefers-reduced-motion: no-preference) {
175
+ animation: checkmarkIn 200ms cubic-bezier(0.11, 0, 0.5, 0) forwards;
176
+ }
177
+ }
178
+
179
+ // checkbox
180
+ .ActionList-item-multiSelectIcon {
181
+ .ActionList-item-multiSelectIconRect {
182
+ fill: var(--color-accent-fg);
183
+ stroke: var(--color-accent-fg);
184
+ stroke-width: $border-width;
185
+ }
186
+
187
+ .ActionList-item-multiSelectCheckmark {
188
+ fill: var(--color-fg-on-emphasis);
189
+ }
190
+ }
191
+ }
192
+
193
+ &[aria-checked='false'],
194
+ &[aria-selected='false'] {
195
+ // multiselect checkmark
196
+ .ActionList-item-multiSelectCheckmark {
197
+ visibility: hidden;
198
+ opacity: 0;
199
+ transition:
200
+ visibility 0 linear $actionList-item-checkmark-transition-timing,
201
+ opacity $actionList-item-checkmark-transition-timing;
202
+ }
203
+
204
+ // singleselect checkmark
205
+ .ActionList-item-singleSelectCheckmark {
206
+ visibility: hidden;
207
+ transition: visibility 0s linear 200ms;
208
+ clip-path: inset(16px 0 0 0);
209
+
210
+ @media screen and (prefers-reduced-motion: no-preference) {
211
+ animation: checkmarkOut 200ms cubic-bezier(0.11, 0, 0.5, 0) forwards;
212
+ }
213
+ }
214
+
215
+ // checkbox
216
+ .ActionList-item-multiSelectIcon {
217
+ .ActionList-item-multiSelectIconRect {
218
+ fill: var(--color-canvas-default);
219
+ stroke: var(--color-border-default);
220
+ stroke-width: $border-width;
221
+ }
222
+ }
223
+
224
+ .ActionList-item-multiSelectIconRect {
225
+ fill: var(--color-canvas-default);
226
+ border: $border-width $border-style var(--color-border-default);
227
+ }
228
+ }
229
+
230
+ @keyframes checkmarkIn {
231
+ from {
232
+ clip-path: inset(16px 0 0 0);
233
+ }
234
+
235
+ to {
236
+ clip-path: inset(0 0 0 0);
237
+ }
238
+ }
239
+
240
+ @keyframes checkmarkOut {
241
+ from {
242
+ clip-path: inset(0 0 0 0);
243
+ }
244
+
245
+ to {
246
+ clip-path: inset(16px 0 0 0);
247
+ }
248
+ }
249
+
250
+ // disabled
251
+ &[aria-disabled='true'] {
252
+ .ActionList-content {
253
+ .ActionList-item-label,
254
+ .ActionList-item-description {
255
+ color: var(--color-primer-fg-disabled);
256
+ }
257
+
258
+ .ActionList-item-visual {
259
+ fill: var(--color-primer-fg-disabled);
260
+ }
261
+ }
262
+
263
+ @media (hover: hover) {
264
+ &:hover {
265
+ cursor: not-allowed;
266
+ background-color: transparent;
267
+ }
268
+ }
269
+ }
270
+
271
+ // variants
272
+
273
+ // danger
274
+ &.ActionList-item--danger {
275
+ .ActionList-item-label {
276
+ color: var(--color-danger-fg);
277
+ }
278
+
279
+ .ActionList-item-visual {
280
+ color: var(--color-danger-fg);
281
+ }
282
+
283
+ @media (hover: hover) {
284
+ &:hover {
285
+ background: var(--color-action-list-item-danger-hover-bg);
286
+
287
+ .ActionList-item-label {
288
+ color: var(--color-action-list-item-danger-hover-text);
289
+ }
290
+ }
291
+ }
292
+
293
+ .ActionList-content {
294
+ &:active {
295
+ background: var(--color-action-list-item-danger-active-bg);
296
+ }
297
+ }
298
+ }
299
+
300
+ // if nested list exists, remove default padding
301
+ .ActionList {
302
+ // stylelint-disable-next-line primer/spacing
303
+ padding: unset;
304
+ }
305
+ }
306
+
307
+ // button or a href
308
+ .ActionList-content {
309
+ position: relative;
310
+ display: grid;
311
+ width: 100%;
312
+ // stylelint-disable-next-line primer/spacing
313
+ padding: $actionList-item-padding-vertical $actionList-item-padding-horizontal;
314
+ font-size: $body-font-size;
315
+ font-weight: $font-weight-normal;
316
+ color: var(--color-fg-default);
317
+ text-align: left;
318
+ user-select: none;
319
+ background-color: transparent;
320
+ // stylelint-disable-next-line declaration-property-value-disallowed-list
321
+ border: none;
322
+ border-radius: $border-radius;
323
+ transition: $actionList-item-bg-transition;
324
+ touch-action: manipulation;
325
+ touch-action: manipulation;
326
+ -webkit-tap-highlight-color: transparent;
327
+ grid-template-rows: min-content;
328
+ grid-template-areas: 'leadingAction leadingVisual label trailingVisual trailingAction';
329
+ grid-template-columns: min-content min-content minmax(0, auto) min-content min-content;
330
+ align-items: start;
331
+
332
+ // column-gap persists with empty grid-areas, margin applies only when children exist
333
+ > :not(:last-child) {
334
+ margin-right: $spacer-2;
335
+ }
336
+
337
+ // state
338
+
339
+ &:hover {
340
+ text-decoration: none;
341
+ }
342
+
343
+ &:focus {
344
+ @include focusOutline;
345
+
346
+ // remove fallback :focus if :focus-visible is supported
347
+ &:not(:focus-visible) {
348
+ outline: solid 1px transparent;
349
+ }
350
+ }
351
+
352
+ // default focus state
353
+ &:focus-visible {
354
+ @include focusOutline;
355
+ }
356
+
357
+ // disabled
358
+ &[aria-disabled='true'] {
359
+ .ActionList-item-label,
360
+ .ActionList-item-description {
361
+ color: var(--color-primer-fg-disabled);
362
+ }
363
+
364
+ .ActionList-item-visual {
365
+ fill: var(--color-primer-fg-disabled);
366
+ }
367
+
368
+ @media (hover: hover) {
369
+ &:hover {
370
+ cursor: not-allowed;
371
+ background-color: transparent;
372
+ }
373
+ }
374
+ }
375
+
376
+ // collapsible item [aria-expanded]
377
+
378
+ // nesting (single level)
379
+ // target items inside expanded subgroups
380
+ &[aria-expanded] {
381
+ + .ActionList--subGroup {
382
+ @media screen and (prefers-reduced-motion: no-preference) {
383
+ transition: opacity 160ms cubic-bezier(0.25, 1, 0.5, 1), transform 160ms cubic-bezier(0.25, 1, 0.5, 1);
384
+ }
385
+
386
+ .ActionList-content {
387
+ padding-left: $spacer-4;
388
+ }
389
+ }
390
+
391
+ // has 16px leading visual
392
+ &.ActionList-content--visual16 + .ActionList--subGroup {
393
+ .ActionList-content {
394
+ padding-left: $spacer-5;
395
+ }
396
+ }
397
+
398
+ // has 20px leading visual
399
+ &.ActionList-content--visual20 + .ActionList--subGroup {
400
+ .ActionList-content {
401
+ padding-left: $spacer-2 * 4.5; // 36px
402
+ }
403
+ }
404
+
405
+ // has 24px leading visual
406
+ &.ActionList-content--visual24 + .ActionList--subGroup {
407
+ .ActionList-content {
408
+ padding-left: $spacer-6;
409
+ }
410
+ }
411
+ }
412
+
413
+ &[aria-expanded='true'] {
414
+ .ActionList-item-collapseIcon {
415
+ transition: transform 120ms linear;
416
+ transform: scaleY(-1);
417
+ }
418
+
419
+ + .ActionList--subGroup {
420
+ height: auto;
421
+ overflow: visible;
422
+ visibility: visible;
423
+ opacity: 1;
424
+ transform: translateY(0);
425
+ }
426
+
427
+ &.ActionList-content--hasActiveSubItem {
428
+ > .ActionList-item-label {
429
+ font-weight: $font-weight-bold;
430
+ }
431
+ }
432
+ }
433
+
434
+ &[aria-expanded='false'] {
435
+ .ActionList-item-collapseIcon {
436
+ transition: transform 120ms linear;
437
+ transform: scaleY(1);
438
+ }
439
+
440
+ + .ActionList--subGroup {
441
+ height: 0;
442
+ overflow: hidden;
443
+ visibility: hidden;
444
+ opacity: 0;
445
+ transform: translateY(-$spacer-3);
446
+ }
447
+
448
+ // show active indicator on parent collapse if child is active
449
+ &.ActionList-content--hasActiveSubItem {
450
+ background: var(--color-action-list-item-default-selected-bg);
451
+
452
+ .ActionList-item-label {
453
+ font-weight: $font-weight-bold;
454
+ }
455
+
456
+ &::before,
457
+ + .ActionList-item::before {
458
+ visibility: hidden;
459
+ }
460
+
461
+ // blue accent line
462
+ &::after {
463
+ @include activeIndicatorLine;
464
+ }
465
+ }
466
+ }
467
+
468
+ // sizes
469
+
470
+ &.ActionList-content--sizeMedium {
471
+ // 44px total height
472
+ // stylelint-disable-next-line primer/spacing
473
+ padding: $actionList-item-padding-vertical-md $actionList-item-padding-horizontal;
474
+ }
475
+
476
+ &.ActionList-content--sizeLarge {
477
+ // 48px total height
478
+ // stylelint-disable-next-line primer/spacing
479
+ padding: $actionList-item-padding-vertical-lg $actionList-item-padding-horizontal;
480
+ }
481
+
482
+ &.ActionList-content--fontSmall {
483
+ font-size: $font-size-small;
484
+ }
485
+
486
+ // On pointer:coarse (mobile), all list items are large
487
+ @media (pointer: coarse) {
488
+ // stylelint-disable-next-line primer/spacing
489
+ padding: $actionList-item-padding-vertical-lg $actionList-item-padding-horizontal;
490
+ }
491
+
492
+ &.ActionList-content--blockDescription {
493
+ // if leading/trailing visual, align with first line of content
494
+ .ActionList-item-visual {
495
+ place-self: start;
496
+ }
497
+ }
498
+ }
499
+
500
+ // place children on grid
501
+
502
+ .ActionList-item-action--leading {
503
+ grid-area: leadingAction;
504
+ }
505
+
506
+ .ActionList-item-visual--leading {
507
+ grid-area: leadingVisual;
508
+ }
509
+
510
+ .ActionList-item-label {
511
+ grid-area: label;
512
+ }
513
+
514
+ .ActionList-item-visual--trailing {
515
+ grid-area: trailingVisual;
516
+ }
517
+
518
+ .ActionList-item-action--trailing {
519
+ grid-area: trailingAction;
520
+ }
521
+
522
+ // wrapper span
523
+ // default block
524
+ .ActionList-item-descriptionWrap {
525
+ grid-area: label;
526
+ display: flex;
527
+ flex-direction: column;
528
+
529
+ .ActionList-item-description {
530
+ margin-top: $spacer-1;
531
+ }
532
+
533
+ .ActionList-item-label {
534
+ font-weight: $font-weight-bold;
535
+ }
536
+ }
537
+
538
+ // inline
539
+ .ActionList-item-descriptionWrap--inline {
540
+ position: relative;
541
+ flex-direction: row;
542
+ align-items: baseline;
543
+
544
+ .ActionList-item-description {
545
+ // stylelint-disable-next-line primer/spacing
546
+ margin-left: $actionList-item-padding-horizontal;
547
+ }
548
+ }
549
+
550
+ // description
551
+ .ActionList-item-description {
552
+ font-size: $font-size-small;
553
+ font-weight: $font-weight-normal;
554
+ line-height: $lh-default;
555
+ color: var(--color-fg-muted);
556
+ }
557
+
558
+ // helper for grid alignment with multi-line content
559
+ // span wrapping svg or text
560
+ .ActionList-item-visual,
561
+ .ActionList-item-action {
562
+ display: flex;
563
+ min-height: $actionList-item-height-sm;
564
+ color: var(--color-fg-muted); // if visual is text
565
+ pointer-events: none;
566
+ fill: var(--color-fg-muted);
567
+ align-items: center;
568
+ }
569
+
570
+ // text
571
+ // stylelint-disable-next-line no-duplicate-selectors
572
+ .ActionList-item-label {
573
+ position: relative; // for pseudo dividers
574
+ font-weight: $font-weight-normal;
575
+ // we need a strict value here for grid alignment
576
+ // stylelint-disable-next-line primer/typography
577
+ line-height: $actionList-item-label-line-height;
578
+ color: var(--color-fg-default);
579
+ }
580
+
581
+ .ActionList-item-label--truncate {
582
+ overflow: hidden;
583
+ text-overflow: ellipsis;
584
+ white-space: nowrap;
585
+ }
586
+
587
+ // nested lists (only supports 1 level currently)
588
+ // target ActionList-item--subItem for padding-left to maintain :active :after state
589
+
590
+ // TODO: remove with PVC implementation
591
+ .ActionList-item--subItem > .ActionList-content {
592
+ font-size: $font-size-small;
593
+ }
@@ -0,0 +1,118 @@
1
+ // stylelint-disable max-nesting-depth, selector-max-compound-selectors, selector-max-specificity, selector-max-type, primer/spacing
2
+ // tree-view variant
3
+ // renders ActionList with default styling for tree-view
4
+ // collapse/expand icons presents as leadingActions, rotate 90deg
5
+ // connecting vertical lines between collapse groups
6
+ // consistent font-size between nested groups
7
+
8
+ @mixin treeConnectingLine($left) {
9
+ position: absolute;
10
+ left: $left;
11
+ width: 1px;
12
+ height: 100%;
13
+ content: '';
14
+ background: var(--color-action-list-item-inline-divider);
15
+ }
16
+
17
+ .ActionList--tree {
18
+ --ActionList-tree-depth: 1;
19
+ // TODO: remove with PVC implementation
20
+ .ActionList-item--subItem > .ActionList-content {
21
+ font-size: $body-font-size;
22
+ }
23
+
24
+ .ActionList-item {
25
+ // class for single tree items not within a group
26
+ &.ActionList-item--singleton {
27
+ .ActionList-content {
28
+ padding-left: $spacer-5;
29
+ }
30
+ }
31
+
32
+ // normal font-weight for any active item
33
+ &.ActionList-item--navActive {
34
+ &:not(.ActionList-item--subItem) {
35
+ .ActionList-item-label {
36
+ font-weight: $font-weight-normal;
37
+ }
38
+ }
39
+ }
40
+ }
41
+
42
+ .ActionList-content {
43
+ // nesting (infinite levels)
44
+ // target items inside expanded subgroup
45
+ &[aria-expanded] {
46
+ + .ActionList--subGroup {
47
+ position: relative;
48
+
49
+ // --ActionList-tree-depth is defined as an inline style referencing the aria-level of each item ie: aria-level="2"
50
+ .ActionList-content {
51
+ padding-left: calc(#{$spacer-2} * var(--ActionList-tree-depth));
52
+ }
53
+ }
54
+ }
55
+
56
+ // tree-view specific collapse icon positioning/animation
57
+ &[aria-expanded='true'] {
58
+ .ActionList-item-collapseIcon {
59
+ transition: transform 120ms linear;
60
+ transform: rotate(0deg);
61
+ }
62
+
63
+ // normal weight for parent folder containing active child
64
+ &.ActionList-content--hasActiveSubItem {
65
+ > .ActionList-item-label {
66
+ font-weight: $font-weight-normal;
67
+ }
68
+ }
69
+ }
70
+
71
+ &[aria-expanded='false'] {
72
+ .ActionList-item-collapseIcon {
73
+ transition: transform 120ms linear;
74
+ transform: rotate(-90deg);
75
+ }
76
+
77
+ &.ActionList-content--hasActiveSubItem {
78
+ > .ActionList-item-label {
79
+ font-weight: $font-weight-normal;
80
+ }
81
+ }
82
+ }
83
+ }
84
+
85
+ // expand/collapse group
86
+ .ActionList-item--hasSubItem {
87
+ .ActionList-item--subItem:not(.ActionList-item--hasSubItem) {
88
+ .ActionList-content {
89
+ // increase child padding by targeting content first child span (add to ActionList-content padding, not replace)
90
+ // creates a slight indent of child items
91
+ > span:first-child {
92
+ padding-left: $spacer-4;
93
+ }
94
+ }
95
+ }
96
+ }
97
+
98
+ // first subitem
99
+ > [aria-level='1'].ActionList-item--hasSubItem {
100
+ > .ActionList--subGroup {
101
+ &::before {
102
+ @include treeConnectingLine($left: $spacer-3);
103
+ }
104
+ }
105
+ }
106
+
107
+ // all other subitems
108
+ // center connecting line with parent (line is 1px (8px - 1px)
109
+ .ActionList-item--hasSubItem:not([aria-level='1']) {
110
+ > .ActionList--subGroup {
111
+ &::before {
112
+ @include treeConnectingLine(
113
+ $left: calc(#{$spacer-2} * (var(--ActionList-tree-depth)) + #{$spacer-2 - $border-width})
114
+ );
115
+ }
116
+ }
117
+ }
118
+ }
@@ -0,0 +1,8 @@
1
+ $actionList-item-height-sm: $spacer-2 * 2.5 !default;
2
+ $actionList-item-label-line-height: $spacer-2 * 2.5 !default;
3
+ $actionList-item-padding-vertical-md: $spacer-2 * 1.25 !default;
4
+ $actionList-item-padding-vertical-lg: $spacer-2 * 1.75 !default;
5
+ $actionList-item-padding-vertical: $spacer-1 * 1.5 !default;
6
+ $actionList-item-padding-horizontal: $spacer-2 !default;
7
+ $actionList-item-bg-transition: background 33.333ms linear !default; // 2 frames on a 60hz monitor
8
+ $actionList-item-checkmark-transition-timing: 50ms !default;