@madie/madie-design-system 1.0.0

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 (316) hide show
  1. package/.babelrc +10 -0
  2. package/.editorconfig +22 -0
  3. package/.eslintignore +5 -0
  4. package/.eslintrc.js +31 -0
  5. package/.storybook/.babelrc +4 -0
  6. package/.storybook/main.js +89 -0
  7. package/.storybook/preview-head.html +9 -0
  8. package/.storybook/preview.js +5 -0
  9. package/README.md +5 -0
  10. package/components/Accordion/Accordion.stories.js +20 -0
  11. package/components/Accordion/index.jsx +93 -0
  12. package/components/Alert/Alert.stories.js +61 -0
  13. package/components/Alert/index.js +46 -0
  14. package/components/Breadcrumb/Breadcrumb.md +28 -0
  15. package/components/Breadcrumb/Breadcrumb.stories.js +76 -0
  16. package/components/Breadcrumb/index.js +83 -0
  17. package/components/Button/Button.stories.js +121 -0
  18. package/components/Button/index.js +90 -0
  19. package/components/CalloutBox/CalloutBox.stories.js +94 -0
  20. package/components/CalloutBox/index.js +109 -0
  21. package/components/Card/Card.stories.js +163 -0
  22. package/components/Card/index.js +137 -0
  23. package/components/Dropdown/Dropdown.stories.js +94 -0
  24. package/components/Dropdown/index.js +85 -0
  25. package/components/Error/Collapsible.jsx +88 -0
  26. package/components/Error/ErrorUI.jsx +31 -0
  27. package/components/Error/error.js +26 -0
  28. package/components/FlashNotification/FlashNotificationUI.jsx +91 -0
  29. package/components/FlashNotification/index.js +30 -0
  30. package/components/Footer/Footer.stories.js +20 -0
  31. package/components/Footer/FooterUI.jsx +269 -0
  32. package/components/Footer/LegacyFooterUI.jsx +194 -0
  33. package/components/Footer/SocialLinks.jsx +60 -0
  34. package/components/Footer/Subscribe.jsx +34 -0
  35. package/components/Footer/footer.js +30 -0
  36. package/components/Header/Header.md +111 -0
  37. package/components/Header/Header.stories.js +32 -0
  38. package/components/Header/HeaderAccountMenu.jsx +169 -0
  39. package/components/Header/HeaderCancel.jsx +16 -0
  40. package/components/Header/HeaderContainer.jsx +63 -0
  41. package/components/Header/HeaderLogo.jsx +42 -0
  42. package/components/Header/HeaderMenuButton.js +50 -0
  43. package/components/Header/HeaderMenuItem.jsx +232 -0
  44. package/components/Header/HeaderMenuLink.js +50 -0
  45. package/components/Header/HeaderMenuSignOutButton.js +62 -0
  46. package/components/Header/HeaderMobileButton.js +37 -0
  47. package/components/Header/HeaderUI.jsx +167 -0
  48. package/components/Header/HelpIcon.jsx +32 -0
  49. package/components/Header/ImpersonatorBanner.jsx +57 -0
  50. package/components/Header/NavigationButtonIcon.jsx +27 -0
  51. package/components/Header/default-content.json +280 -0
  52. package/components/Header/header.js +40 -0
  53. package/components/Header/hooks.js +52 -0
  54. package/components/Header/utag-helpers.js +9 -0
  55. package/components/Infotip/Infotip.jsx +75 -0
  56. package/components/Infotip/Infotip.stories.js +50 -0
  57. package/components/Infotip/InfotipIcon.jsx +41 -0
  58. package/components/Infotip/index.js +3 -0
  59. package/components/Link/Link.stories.js +81 -0
  60. package/components/Link/index.js +61 -0
  61. package/components/Modal/LegacyModal.jsx +72 -0
  62. package/components/Modal/Modal.jsx +140 -0
  63. package/components/Modal/Modal.stories.js +159 -0
  64. package/components/Modal/index.jsx +22 -0
  65. package/components/NotificationBanner/NotificationBanner.stories.js +23 -0
  66. package/components/NotificationBanner/index.js +265 -0
  67. package/components/SanitizedContent/index.jsx +200 -0
  68. package/components/Search/Search.stories.js +21 -0
  69. package/components/Search/index.js +85 -0
  70. package/components/SessionDialog/sessionDialog.js +26 -0
  71. package/components/SessionDialogUI.jsx +261 -0
  72. package/components/SideNav/AnimationGroup/AnimationGroup.jsx +27 -0
  73. package/components/SideNav/Chart/ScoreChart.jsx +268 -0
  74. package/components/SideNav/Chart/__tests__/ScoreChart.test.js +22 -0
  75. package/components/SideNav/Chart/__tests__/__snapshots__/ScoreChart.test.js.snap +173 -0
  76. package/components/SideNav/Chart/index.js +3 -0
  77. package/components/SideNav/Content/LevelOneContent.jsx +208 -0
  78. package/components/SideNav/Content/LevelTwoContent.jsx +216 -0
  79. package/components/SideNav/Content/index.js +4 -0
  80. package/components/SideNav/Details/IndividualDetails.jsx +18 -0
  81. package/components/SideNav/Details/PracticeDetails.jsx +45 -0
  82. package/components/SideNav/Details/index.js +4 -0
  83. package/components/SideNav/Links/CmsSwitchLink.jsx +41 -0
  84. package/components/SideNav/Links/NavItemInline.jsx +54 -0
  85. package/components/SideNav/Links/NavLinkContainer.jsx +38 -0
  86. package/components/SideNav/Links/NavLinkDrawer.jsx +249 -0
  87. package/components/SideNav/Links/NavLinkInline.jsx +107 -0
  88. package/components/SideNav/Links/NavLinkToggle.jsx +34 -0
  89. package/components/SideNav/Links/index.js +13 -0
  90. package/components/SideNav/SideNav.md +50 -0
  91. package/components/SideNav/SideNav.stories.js +379 -0
  92. package/components/SideNav/UI/SideNavUI.jsx +333 -0
  93. package/components/SideNav/UI/default-content.json +99 -0
  94. package/components/SideNav/UI/index.js +3 -0
  95. package/components/SideNav/helpers.js +49 -0
  96. package/components/SideNav/index.js +53 -0
  97. package/components/Spinner/index.js +9 -0
  98. package/components/Tabs/Tab.js +26 -0
  99. package/components/Tabs/TabPanel.js +34 -0
  100. package/components/Tabs/Tabs.stories.js +120 -0
  101. package/components/Tabs/index.js +95 -0
  102. package/components/TextInput/TextInput.stories.js +118 -0
  103. package/components/TextInput/index.js +137 -0
  104. package/components/Tooltip/Tooltip.jsx +88 -0
  105. package/components/Tooltip/Tooltip.stories.js +80 -0
  106. package/components/Tooltip/index.js +3 -0
  107. package/components/Tooltip/position.js +68 -0
  108. package/components/UnwrappedSpinner/index.js +8 -0
  109. package/components/hooks/useGetConfig.js +74 -0
  110. package/components/index.js +126 -0
  111. package/dist/browser.js +3 -0
  112. package/dist/browser.js.LICENSE.txt +54 -0
  113. package/dist/browser.js.map +1 -0
  114. package/dist/index.js +3 -0
  115. package/dist/index.js.LICENSE.txt +54 -0
  116. package/dist/index.js.map +1 -0
  117. package/dist/react/index.js +3 -0
  118. package/dist/react/index.js.LICENSE.txt +71 -0
  119. package/dist/react/index.js.map +1 -0
  120. package/fonts/FontAwesome.otf +0 -0
  121. package/fonts/OFL.txt +92 -0
  122. package/fonts/Rubik-Black.ttf +0 -0
  123. package/fonts/Rubik-BlackItalic.ttf +0 -0
  124. package/fonts/Rubik-Bold.ttf +0 -0
  125. package/fonts/Rubik-BoldItalic.ttf +0 -0
  126. package/fonts/Rubik-Italic.ttf +0 -0
  127. package/fonts/Rubik-Light.ttf +0 -0
  128. package/fonts/Rubik-LightItalic.ttf +0 -0
  129. package/fonts/Rubik-Medium.ttf +0 -0
  130. package/fonts/Rubik-MediumItalic.ttf +0 -0
  131. package/fonts/Rubik-Regular.ttf +0 -0
  132. package/fonts/fontawesome-webfont.eot +0 -0
  133. package/fonts/fontawesome-webfont.svg +2671 -0
  134. package/fonts/fontawesome-webfont.ttf +0 -0
  135. package/fonts/fontawesome-webfont.woff +0 -0
  136. package/fonts/fontawesome-webfont.woff2 +0 -0
  137. package/images/favicon/android-chrome-192x192.png +0 -0
  138. package/images/favicon/android-chrome-256x256.png +0 -0
  139. package/images/favicon/apple-touch-icon.png +0 -0
  140. package/images/favicon/browserconfig.xml +9 -0
  141. package/images/favicon/favicon-16x16.png +0 -0
  142. package/images/favicon/favicon-32x32.png +0 -0
  143. package/images/favicon/favicon.ico +0 -0
  144. package/images/favicon/manifest.json +18 -0
  145. package/images/favicon/mstile-150x150.png +0 -0
  146. package/images/favicon/safari-pinned-tab.svg +32 -0
  147. package/images/hhs-logo-black.svg +10 -0
  148. package/images/hhs-logo-white.svg +10 -0
  149. package/images/icons/close-x.svg +6 -0
  150. package/images/icons/help-headset.svg +21 -0
  151. package/images/icons/svg/arrow-down.svg +1 -0
  152. package/images/icons/svg/arrow-download.svg +1 -0
  153. package/images/icons/svg/arrow-right.svg +1 -0
  154. package/images/icons/svg/calendar.svg +1 -0
  155. package/images/icons/svg/close.svg +1 -0
  156. package/images/icons/svg/download.svg +1 -0
  157. package/images/icons/svg/external.svg +1 -0
  158. package/images/icons/svg/file-upload.svg +1 -0
  159. package/images/icons/svg/print.svg +1 -0
  160. package/images/icons/svg/search.svg +7 -0
  161. package/images/icons/svg/tooltip-question.svg +6 -0
  162. package/images/icons/svg/trash.svg +1 -0
  163. package/images/icons/svg/upload.svg +1 -0
  164. package/images/qpp_logo_reversed.png +0 -0
  165. package/images/qpp_logo_rgb_color.png +0 -0
  166. package/index.js +31 -0
  167. package/jest/mediaFileTransformer.js +9 -0
  168. package/jest.config.js +188 -0
  169. package/lib/Chevron.jsx +32 -0
  170. package/lib/SvgComponents.jsx +539 -0
  171. package/lib/svg-definitions.svg +125 -0
  172. package/package.json +125 -0
  173. package/session/index.js +5 -0
  174. package/session/logout.js +65 -0
  175. package/session/refresh.js +49 -0
  176. package/session/ttl.js +37 -0
  177. package/styles/_global.scss +106 -0
  178. package/styles/_main.scss +15 -0
  179. package/styles/_paths.scss +1 -0
  180. package/styles/_qpp-style.scss +31 -0
  181. package/styles/components/_accordion.scss +289 -0
  182. package/styles/components/_alerts.scss +54 -0
  183. package/styles/components/_autocomplete.scss +47 -0
  184. package/styles/components/_breadcrumbs.scss +64 -0
  185. package/styles/components/_buttons.scss +580 -0
  186. package/styles/components/_error-page.scss +56 -0
  187. package/styles/components/_flash-notification.scss +98 -0
  188. package/styles/components/_fonts.scss +42 -0
  189. package/styles/components/_forms.scss +277 -0
  190. package/styles/components/_grid.scss +37 -0
  191. package/styles/components/_info-modal.scss +139 -0
  192. package/styles/components/_links.scss +12 -0
  193. package/styles/components/_modals.scss +18 -0
  194. package/styles/components/_notification-banner.scss +165 -0
  195. package/styles/components/_panels.scss +61 -0
  196. package/styles/components/_pie-chart.scss +13 -0
  197. package/styles/components/_score-chart.scss +164 -0
  198. package/styles/components/_spinner.scss +7 -0
  199. package/styles/components/_tables.scss +111 -0
  200. package/styles/components/_tabs.scss +69 -0
  201. package/styles/components/_text.scss +150 -0
  202. package/styles/components/_toggles.scss +3 -0
  203. package/styles/components/_tooltip.scss +23 -0
  204. package/styles/components/_variables.scss +157 -0
  205. package/styles/components/_wells.scss +92 -0
  206. package/styles/qppds/README.md +0 -0
  207. package/styles/qppds/base/_backgrounds.scss +7 -0
  208. package/styles/qppds/base/_fonts.scss +26 -0
  209. package/styles/qppds/base/_icon.scss +23 -0
  210. package/styles/qppds/base/_layout.scss +5 -0
  211. package/styles/qppds/base/_typography.scss +85 -0
  212. package/styles/qppds/base/index.scss +8 -0
  213. package/styles/qppds/components/_alert.scss +95 -0
  214. package/styles/qppds/components/_breadcrumbs.scss +70 -0
  215. package/styles/qppds/components/_button.scss +292 -0
  216. package/styles/qppds/components/_card.scss +175 -0
  217. package/styles/qppds/components/_dropdown.scss +55 -0
  218. package/styles/qppds/components/_footer.scss +597 -0
  219. package/styles/qppds/components/_header.scss +892 -0
  220. package/styles/qppds/components/_link.scss +52 -0
  221. package/styles/qppds/components/_modal.scss +118 -0
  222. package/styles/qppds/components/_page-header.scss +67 -0
  223. package/styles/qppds/components/_pagination.scss +227 -0
  224. package/styles/qppds/components/_search.scss +112 -0
  225. package/styles/qppds/components/_sidebar.scss +9 -0
  226. package/styles/qppds/components/_table.scss +139 -0
  227. package/styles/qppds/components/_tabs.scss +197 -0
  228. package/styles/qppds/components/_text-input.scss +60 -0
  229. package/styles/qppds/components/index.scss +16 -0
  230. package/styles/qppds/components/sidebar/_animations.scss +38 -0
  231. package/styles/qppds/components/sidebar/_cms.scss +61 -0
  232. package/styles/qppds/components/sidebar/_details.scss +58 -0
  233. package/styles/qppds/components/sidebar/_links.scss +444 -0
  234. package/styles/qppds/components/sidebar/_sidebar-animation.scss +125 -0
  235. package/styles/qppds/components/sidebar/_sidebar-tooltip.scss +33 -0
  236. package/styles/qppds/components/sidebar/_sidebar.scss +146 -0
  237. package/styles/qppds/components/sidebar/project-specific/_wi.scss +42 -0
  238. package/styles/qppds/index.scss +4 -0
  239. package/styles/qppds/settings/_functions.scss +4 -0
  240. package/styles/qppds/settings/_index.scss +3 -0
  241. package/styles/qppds/settings/mixins/_borders.scss +6 -0
  242. package/styles/qppds/settings/mixins/_focus.scss +28 -0
  243. package/styles/qppds/settings/mixins/_icons.scss +33 -0
  244. package/styles/qppds/settings/mixins/_index.scss +8 -0
  245. package/styles/qppds/settings/mixins/_layout.scss +74 -0
  246. package/styles/qppds/settings/mixins/_lists.scss +12 -0
  247. package/styles/qppds/settings/mixins/_table.scss +91 -0
  248. package/styles/qppds/settings/mixins/_type.scss +65 -0
  249. package/styles/qppds/settings/mixins/_visually-hidden.scss +30 -0
  250. package/styles/qppds/settings/variables/_color.scss +86 -0
  251. package/styles/qppds/settings/variables/_index.scss +3 -0
  252. package/styles/qppds/settings/variables/_layout.scss +67 -0
  253. package/styles/qppds/settings/variables/_type.scss +132 -0
  254. package/styles/qppds/utilities/_background-color.scss +134 -0
  255. package/styles/qppds/utilities/_color.scss +32 -0
  256. package/styles/qppds/utilities/_display-visibility.scss +83 -0
  257. package/styles/qppds/utilities/_flexbox.scss +240 -0
  258. package/styles/qppds/utilities/_font-family.scss +9 -0
  259. package/styles/qppds/utilities/_font-size.scss +8 -0
  260. package/styles/qppds/utilities/_font-weight.scss +8 -0
  261. package/styles/qppds/utilities/_height.scss +38 -0
  262. package/styles/qppds/utilities/_margin.scss +136 -0
  263. package/styles/qppds/utilities/_padding.scss +76 -0
  264. package/styles/qppds/utilities/_position.scss +24 -0
  265. package/styles/qppds/utilities/_text-align.scss +40 -0
  266. package/styles/qppds/utilities/_text-transform.scss +7 -0
  267. package/styles/qppds/utilities/_truncate.scss +8 -0
  268. package/styles/qppds/utilities/_width.scss +79 -0
  269. package/styles/qppds/utilities/index.scss +15 -0
  270. package/styles/qppds.scss +2 -0
  271. package/styles/third-party/_legacy-bootstrap.scss +19 -0
  272. package/styles/third-party/legacy-bootstrap/_buttons.scss +126 -0
  273. package/styles/third-party/legacy-bootstrap/_dropdowns.scss +211 -0
  274. package/styles/third-party/legacy-bootstrap/_forms.scss +510 -0
  275. package/styles/third-party/legacy-bootstrap/_grid.scss +73 -0
  276. package/styles/third-party/legacy-bootstrap/_mixins.scss +27 -0
  277. package/styles/third-party/legacy-bootstrap/_navbar.scss +644 -0
  278. package/styles/third-party/legacy-bootstrap/_navs.scss +193 -0
  279. package/styles/third-party/legacy-bootstrap/_normalize.scss +385 -0
  280. package/styles/third-party/legacy-bootstrap/_scaffolding.scss +116 -0
  281. package/styles/third-party/legacy-bootstrap/_variables.scss +858 -0
  282. package/styles/third-party/legacy-bootstrap/mixins/_buttons.scss +70 -0
  283. package/styles/third-party/legacy-bootstrap/mixins/_clearfix.scss +22 -0
  284. package/styles/third-party/legacy-bootstrap/mixins/_forms.scss +108 -0
  285. package/styles/third-party/legacy-bootstrap/mixins/_grid-framework.scss +86 -0
  286. package/styles/third-party/legacy-bootstrap/mixins/_grid.scss +112 -0
  287. package/styles/third-party/legacy-bootstrap/mixins/_labels.scss +12 -0
  288. package/styles/third-party/legacy-bootstrap/mixins/_nav-divider.scss +10 -0
  289. package/styles/third-party/legacy-bootstrap/mixins/_nav-vertical-align.scss +9 -0
  290. package/styles/third-party/legacy-bootstrap/mixins/_opacity.scss +7 -0
  291. package/styles/third-party/legacy-bootstrap/mixins/_panels.scss +30 -0
  292. package/styles/third-party/legacy-bootstrap/mixins/_reset-filter.scss +7 -0
  293. package/styles/third-party/legacy-bootstrap/mixins/_reset-text.scss +18 -0
  294. package/styles/third-party/legacy-bootstrap/mixins/_resize.scss +6 -0
  295. package/styles/third-party/legacy-bootstrap/mixins/_responsive-visibility.scss +25 -0
  296. package/styles/third-party/legacy-bootstrap/mixins/_size.scss +10 -0
  297. package/styles/third-party/legacy-bootstrap/mixins/_tab-focus.scss +9 -0
  298. package/styles/third-party/legacy-bootstrap/mixins/_table-row.scss +28 -0
  299. package/styles/third-party/legacy-bootstrap/mixins/_text-emphasis.scss +12 -0
  300. package/styles/third-party/legacy-bootstrap/mixins/_text-overflow.scss +8 -0
  301. package/styles/third-party/legacy-bootstrap/mixins/_vendor-prefixes.scss +182 -0
  302. package/styles/utility/_mixins.scss +46 -0
  303. package/styles/utility/_utilities.scss +73 -0
  304. package/test/components/Accordion.test.js +12 -0
  305. package/test/components/ErrorUI.test.js +33 -0
  306. package/test/components/FooterUI.test.js +90 -0
  307. package/test/components/HeaderUI.test.js +45 -0
  308. package/test/components/Infotip.test.js +73 -0
  309. package/test/components/SessionDialogUI.test.js +339 -0
  310. package/test/components/SideNavUI.test.js +23 -0
  311. package/test/components/Tooltip.test.js +147 -0
  312. package/test/index.test.js +8 -0
  313. package/test/session/session.test.js +221 -0
  314. package/test-setup.js +9 -0
  315. package/webpack.config.js +147 -0
  316. package/webpack.config.react.js +86 -0
@@ -0,0 +1,146 @@
1
+ /*
2
+ General sidebar styles
3
+ */
4
+
5
+ .sidebar {
6
+ background: $color-slate;
7
+ box-shadow: 4px 0 10px 0 transparentize($color-black, 0.7);
8
+ color: $color-white;
9
+ display: flex;
10
+ flex-direction: column;
11
+ height: 100%;
12
+ overflow: hidden;
13
+ position: relative;
14
+ transition: width 0.6s ease-in-out;
15
+ width: $side-nav-expanded-width;
16
+
17
+ a {
18
+ text-decoration: none;
19
+
20
+ &:hover {
21
+ text-decoration: none;
22
+ }
23
+
24
+ &.unstyled {
25
+ color: inherit;
26
+ }
27
+ }
28
+
29
+ hr {
30
+ border-top: 1px solid transparentize($color-white, 0.8);
31
+ height: 1px;
32
+ margin: 25px $side-nav-horizontal-padding;
33
+ width: auto;
34
+
35
+ &.hr-smaller-vertical-spacing {
36
+ padding: 0px 22px 14px;
37
+ margin: 0;
38
+ }
39
+ }
40
+
41
+ ul {
42
+ line-height: 1.7;
43
+ list-style-type: none;
44
+ margin: 0;
45
+ padding: 2px 0;
46
+ }
47
+
48
+ svg {
49
+ position: relative;
50
+ }
51
+
52
+ .SVGInline {
53
+ display: none;
54
+ }
55
+
56
+ &.closed {
57
+ width: $side-nav-closed-width;
58
+ }
59
+
60
+ .alt-style {
61
+ background: $color-slate-dark;
62
+
63
+ .alt-style-header {
64
+ background: $color-slate;
65
+ padding-bottom: 25px;
66
+ }
67
+
68
+ .alt-style-nav {
69
+ padding-bottom: 25px;
70
+ }
71
+ }
72
+
73
+ /* Sidebar content */
74
+
75
+ .sidebar-content {
76
+ display: flex;
77
+ flex-direction: column;
78
+ flex-grow: 1;
79
+ overflow-x: hidden;
80
+ transition: overflow-x 0.6s;
81
+
82
+ .label {
83
+ @include typography('Rubik', 20px, 26px, $color-white);
84
+ display: block;
85
+ font-weight: normal;
86
+ padding: 30px 25px 20px;
87
+ text-align: left;
88
+ white-space: inherit;
89
+ }
90
+
91
+ .level-one-nav {
92
+ background-color: $color-slate;
93
+ }
94
+ }
95
+
96
+ /* Sidebar chart */
97
+
98
+ .chart-title {
99
+ align-items: center;
100
+ display: flex;
101
+ flex-direction: column;
102
+ justify-content: center;
103
+
104
+ p {
105
+ margin: 0;
106
+ }
107
+
108
+ .title {
109
+ @include typography('Rubik', 16px, 22px, $color-white);
110
+ text-transform: uppercase;
111
+ }
112
+
113
+ .disclaimer {
114
+ @include typography(
115
+ 'Rubik',
116
+ 14px,
117
+ 20px,
118
+ transparentize($color-white, 0.2)
119
+ );
120
+ align-items: center;
121
+ display: flex;
122
+ padding: 5px 0 10px;
123
+
124
+ svg {
125
+ height: 20px;
126
+ width: 20px;
127
+ }
128
+
129
+ .left-icon {
130
+ fill: transparentize($color-white, 0.2);
131
+ margin-right: 10px;
132
+ }
133
+
134
+ .right-icon {
135
+ fill: $color-teal-light;
136
+ margin-left: 10px;
137
+ }
138
+ }
139
+
140
+ .timestamp {
141
+ @include typography('Rubik', 13px, 20px, $color-white);
142
+ padding: 5px 0 20px;
143
+ text-transform: uppercase;
144
+ }
145
+ }
146
+ }
@@ -0,0 +1,42 @@
1
+ /*
2
+ WI specific styles
3
+ */
4
+
5
+ .sidebar {
6
+ &.sidebar-wi-nav .sidebar-content {
7
+ > .animation-group > a.link-back {
8
+ background: $color-slate;
9
+ padding-bottom: 25px;
10
+ }
11
+
12
+ > .animation-group:nth-child(2) {
13
+ background: $color-slate;
14
+
15
+ > hr {
16
+ margin-bottom: 0;
17
+ margin-top: 0;
18
+ }
19
+ }
20
+
21
+ > .animation-group:nth-child(3) {
22
+ background: $color-slate;
23
+ padding-bottom: 25px;
24
+ padding-top: 25px;
25
+ }
26
+
27
+ > .animation-group:nth-child(4) {
28
+ padding: 25px $side-nav-horizontal-padding 0;
29
+
30
+ .quality-title {
31
+ @include typography('Rubik', 14px, 16px, $color-white);
32
+ font-weight: 500;
33
+ text-transform: uppercase;
34
+ }
35
+
36
+ .quality-subtitle {
37
+ @include typography('Rubik', 14px, 16px, $color-white);
38
+ padding: 10px 0 0;
39
+ }
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,4 @@
1
+ @import './settings/index';
2
+ @import './base/index';
3
+ @import './utilities/index';
4
+ @import './components/index';
@@ -0,0 +1,4 @@
1
+ // Convert PX to REM units
2
+ @function rem($size) {
3
+ @return ($size / 16px) * 1rem;
4
+ }
@@ -0,0 +1,3 @@
1
+ @import './functions';
2
+ @import './variables/index';
3
+ @import './mixins/index';
@@ -0,0 +1,6 @@
1
+ @import '../variables/index';
2
+
3
+ @mixin raised-border {
4
+ border-radius: 3px;
5
+ box-shadow: 0 rem(2px) rem(8px) rgba(0, 0, 0, 0.1);
6
+ }
@@ -0,0 +1,28 @@
1
+ $none: none;
2
+
3
+ @mixin focus-ring {
4
+ border: 1px solid $blue-70;
5
+ border-radius: 3px;
6
+ box-shadow: 0 0 0 4px $blue-10;
7
+ outline: none;
8
+ }
9
+
10
+ @mixin link-focus {
11
+ border: 1px solid $blue-70;
12
+ border-radius: 3px;
13
+ box-shadow: 0 0 0 4px $blue-10;
14
+ outline: none;
15
+ padding: 2px;
16
+ margin-left: -3px;
17
+ margin-right: -3px;
18
+
19
+ @media screen and (-ms-high-contrast: $none) {
20
+ // IE10+ specific styles go here
21
+ border: 0 solid transparent;
22
+ border-radius: 0;
23
+ outline: 1px solid $blue-70;
24
+ margin-left: 0;
25
+ margin-right: 0;
26
+ padding: 0;
27
+ }
28
+ }
@@ -0,0 +1,33 @@
1
+ @mixin inline-icon {
2
+ position: relative;
3
+ vertical-align: middle;
4
+ margin-bottom: -0.1em; // apply negative margin so icon doesn't affect height
5
+ margin-top: -0.1em;
6
+ height: 1em;
7
+ width: 1em;
8
+ }
9
+
10
+ @mixin inline-icon-md {
11
+ @include inline-icon;
12
+ margin-bottom: -0.2em;
13
+ margin-top: -0.3em;
14
+ height: 1.25em;
15
+ width: 1.25em;
16
+ }
17
+
18
+ @mixin inline-icon-lg {
19
+ @include inline-icon;
20
+ margin-bottom: -0.3em;
21
+ margin-top: -0.4em;
22
+ height: 1.5em;
23
+ width: 1.5em;
24
+ }
25
+
26
+ @mixin mat-icon {
27
+ fill: currentColor;
28
+ }
29
+
30
+ @mixin feather-icon {
31
+ stroke: currentColor;
32
+ fill: none;
33
+ }
@@ -0,0 +1,8 @@
1
+ @import './visually-hidden';
2
+ @import './icons';
3
+ @import './lists';
4
+ @import './layout';
5
+ @import './focus';
6
+ @import './table';
7
+ @import './borders';
8
+ @import './type';
@@ -0,0 +1,74 @@
1
+ @import '../variables/layout';
2
+
3
+ $at-media-error-message: 'breakpoint mixin supports: xxs, xs, sm, md, lg, xl';
4
+
5
+ /*
6
+ NOTE: named this "media-breakpoint" so as not to conflict with existing qpp-style
7
+ mixin "breakpoint" used for legacy css.
8
+ */
9
+ @mixin media-breakpoint($class) {
10
+ @if $class == xxs {
11
+ @media all and (min-width: $width-xxs) {
12
+ @content;
13
+ }
14
+ } @else if $class == xs {
15
+ @media all and (min-width: $width-xs) {
16
+ @content;
17
+ }
18
+ } @else if $class == sm {
19
+ @media all and (min-width: $width-sm) {
20
+ @content;
21
+ }
22
+ } @else if $class == md {
23
+ @media all and (min-width: $width-md) {
24
+ @content;
25
+ }
26
+ } @else if $class == lg {
27
+ @media all and (min-width: $width-lg) {
28
+ @content;
29
+ }
30
+ } @else if $class == xl {
31
+ @media all and (min-width: $width-xl) {
32
+ @content;
33
+ }
34
+ } @else {
35
+ @warn $at-media-error-message;
36
+ }
37
+ }
38
+
39
+ // alias to old mixin name, updated to match uswds
40
+ @mixin at-media($bp) {
41
+ @include media-breakpoint($bp) {
42
+ @content;
43
+ }
44
+ }
45
+
46
+ @mixin at-media-max($bp) {
47
+ @if $bp == xxs {
48
+ @media all and (max-width: $width-xxs) {
49
+ @content;
50
+ }
51
+ } @else if $bp == xs {
52
+ @media all and (max-width: $width-xs) {
53
+ @content;
54
+ }
55
+ } @else if $bp == sm {
56
+ @media all and (max-width: $width-sm) {
57
+ @content;
58
+ }
59
+ } @else if $bp == md {
60
+ @media all and (max-width: $width-md) {
61
+ @content;
62
+ }
63
+ } @else if $bp == lg {
64
+ @media all and (max-width: $width-lg) {
65
+ @content;
66
+ }
67
+ } @else if $bp == xl {
68
+ @media all and (max-width: $width-xl) {
69
+ @content;
70
+ }
71
+ } @else {
72
+ @warn $at-media-error-message;
73
+ }
74
+ }
@@ -0,0 +1,12 @@
1
+ // Unstyled list helper
2
+ @mixin unstyled-list() {
3
+ margin-top: 0;
4
+ margin-bottom: 0;
5
+ list-style-type: none;
6
+ padding-left: 0;
7
+
8
+ > li {
9
+ margin-bottom: 0;
10
+ max-width: unset;
11
+ }
12
+ }
@@ -0,0 +1,91 @@
1
+ @import '../variables/index';
2
+
3
+ @mixin table-stacked-styles {
4
+ thead {
5
+ display: none;
6
+ }
7
+
8
+ th,
9
+ td {
10
+ border-bottom-width: 0;
11
+ display: block;
12
+ width: 100%;
13
+ padding: $spacing-8 $spacing-16 $spacing-8;
14
+ }
15
+
16
+ th:first-child,
17
+ td:first-child {
18
+ padding: $spacing-16 $spacing-16 $spacing-8;
19
+ }
20
+
21
+ th:last-child,
22
+ td:last-child {
23
+ padding: $spacing-8 $spacing-16 $spacing-16;
24
+ }
25
+
26
+ th:only-child,
27
+ td:only-child {
28
+ padding: $spacing-16;
29
+ }
30
+
31
+ tr {
32
+ border-bottom: rem(1px) solid $gray-10;
33
+ border-top-width: 0;
34
+ display: block;
35
+ width: 100%;
36
+ th:first-child,
37
+ td:first-child {
38
+ border-top-width: 0;
39
+ }
40
+ &:nth-child(odd) {
41
+ td,
42
+ th {
43
+ background-color: inherit;
44
+ }
45
+ }
46
+
47
+ &:first-child {
48
+ th:first-child,
49
+ td:first-child {
50
+ border-top: rem(1px) solid $gray-10;
51
+ }
52
+ }
53
+ }
54
+
55
+ /* stylelint-disable selector-no-qualifying-type */
56
+ th[data-label],
57
+ td[data-label] {
58
+ font-weight: $font-regular;
59
+
60
+ &::before {
61
+ content: attr(data-label);
62
+ display: block;
63
+ font-weight: $font-medium;
64
+ }
65
+ }
66
+ /* stylelint-enable selector-no-qualifying-type */
67
+ }
68
+
69
+ @mixin table-stacked-header-styles {
70
+ tr {
71
+ border-bottom: 0;
72
+
73
+ td:first-child,
74
+ th:first-child {
75
+ font-family: $font-rubik;
76
+ font-size: $font-size-16;
77
+ line-height: $line-height-subheading;
78
+ background-color: $gray-04;
79
+ color: $gray-80;
80
+ font-weight: $font-medium;
81
+ padding: $spacing-16;
82
+ &::before {
83
+ display: none;
84
+ }
85
+ }
86
+ }
87
+
88
+ tr:last-child {
89
+ border-bottom: rem(1px) solid $gray-10;
90
+ }
91
+ }
@@ -0,0 +1,65 @@
1
+ @import '../variables/index';
2
+
3
+ @mixin input-label {
4
+ color: $gray-80;
5
+ font-size: $font-size-14;
6
+ font-weight: $font-medium;
7
+ text-transform: none;
8
+ display: block;
9
+ }
10
+
11
+ // uses heading objects defined in src/variables/_type
12
+ @mixin heading($heading) {
13
+ font-family: $font-rubik;
14
+ font-weight: nth($heading, 5);
15
+ font-size: nth($heading, 1);
16
+ line-height: nth($heading, 3);
17
+
18
+ @include media-breakpoint(xxs) {
19
+ font-size: nth($heading, 2);
20
+ line-height: nth($heading, 4);
21
+ }
22
+ @include media-breakpoint(xs) {
23
+ font-size: nth($heading, 1);
24
+ line-height: nth($heading, 3);
25
+ }
26
+ }
27
+
28
+ @mixin p1 {
29
+ font-family: $font-rubik;
30
+ font-size: $font-size-18;
31
+ line-height: $line-height-base;
32
+
33
+ @include media-breakpoint(xxs) {
34
+ font-size: $font-size-16;
35
+ }
36
+ @include media-breakpoint(xs) {
37
+ font-size: $font-size-18;
38
+ }
39
+ }
40
+
41
+ @mixin p2 {
42
+ font-family: $font-rubik;
43
+ font-size: $font-size-14;
44
+ line-height: $line-height-base;
45
+
46
+ @include media-breakpoint(xxs) {
47
+ font-size: $font-size-14;
48
+ }
49
+ @include media-breakpoint(xs) {
50
+ font-size: $font-size-14;
51
+ }
52
+ }
53
+
54
+ @mixin l1 {
55
+ font-family: $font-rubik;
56
+ font-size: $font-size-18;
57
+ line-height: $line-height-md;
58
+ }
59
+
60
+ @mixin l2 {
61
+ font-family: $font-rubik;
62
+ font-size: $font-size-14;
63
+ line-height: $line-height-md;
64
+ text-transform: uppercase;
65
+ }
@@ -0,0 +1,30 @@
1
+ // stylelint-disable declaration-no-important
2
+
3
+ // Copied from Bootstrap v 4.5.2
4
+
5
+ // Hide content visually while keeping it accessible to assistive technologies
6
+ //
7
+ // See: https://a11yproject.com/posts/how-to-hide-content/
8
+ // See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/
9
+
10
+ @mixin visually-hidden() {
11
+ position: absolute !important;
12
+ width: 1px !important;
13
+ height: 1px !important;
14
+ padding: 0 !important;
15
+ margin: -1px !important; // Fix for https://github.com/twbs/bootstrap/issues/25686
16
+ overflow: hidden !important;
17
+ clip: rect(0, 0, 0, 0) !important;
18
+ white-space: nowrap !important;
19
+ border: 0 !important;
20
+ }
21
+
22
+ // Use to only display content when it's focused.
23
+ //
24
+ // Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
25
+
26
+ @mixin visually-hidden-focusable() {
27
+ &:not(:focus) {
28
+ @include visually-hidden;
29
+ }
30
+ }
@@ -0,0 +1,86 @@
1
+ $white: #ffffff;
2
+ $black: #000000;
3
+
4
+ $blue-05: #e6f5ff;
5
+ $blue-10: #cbe4ff;
6
+ $blue-30: #2eb1ed; // deprecated
7
+ $blue-40: #009bff;
8
+ $blue-60: #0073c8;
9
+ $blue-70: #125496;
10
+ $blue-80: #003366;
11
+
12
+ $cyan-20: #bbede9;
13
+ $cyan-40: #209fa6;
14
+ $cyan-50: #048087;
15
+
16
+ $green-05: #eff5eb;
17
+ $green-30: #7cb342;
18
+ $green-50: #4d7e23;
19
+
20
+ $gold-05: #fff9eb;
21
+ $gold-20: #ffc438;
22
+ $gold-40: #df711c;
23
+
24
+ $red-10: #fde7ea;
25
+ $red-50: #d92f2f;
26
+ $red-60: #ae1c1c;
27
+
28
+ $gray-02: #fafafa;
29
+ $gray-04: #f7f7f7;
30
+ $gray-10: #dddddd;
31
+ $gray-20: #b0b0b0;
32
+ $gray-60: #717171;
33
+ $gray-70: #515151;
34
+ $gray-80: #333333;
35
+ $gray-90: #242424;
36
+
37
+ // Performance Category Colors
38
+ $cost-green: #54a12a;
39
+ $ia-gold: #ffa202;
40
+ $pi-magenta: #ea5f92;
41
+ $quality-blue: $blue-60;
42
+
43
+ /* stylelint-disable property-case */
44
+ :export {
45
+ white: $white;
46
+ black: $black;
47
+
48
+ blue05: $blue-05;
49
+ blue10: $blue-10;
50
+ blue30: $blue-30; // deprecated
51
+ blue40: $blue-40;
52
+ blue60: $blue-60;
53
+ blue70: $blue-70;
54
+ blue80: $blue-80;
55
+
56
+ cyan20: $cyan-20;
57
+ cyan40: $cyan-40;
58
+ cyan50: $cyan-50;
59
+
60
+ green05: $green-05;
61
+ green30: $green-30;
62
+ green50: $green-50;
63
+
64
+ gold05: $gold-05;
65
+ gold20: $gold-20;
66
+ gold40: $gold-40;
67
+
68
+ red10: $red-10;
69
+ red50: $red-50;
70
+ red60: $red-60;
71
+
72
+ gray02: $gray-02;
73
+ gray04: $gray-04;
74
+ gray10: $gray-10;
75
+ gray20: $gray-20;
76
+ gray60: $gray-60;
77
+ gray70: $gray-70;
78
+ gray80: $gray-80;
79
+ gray90: $gray-90;
80
+
81
+ costGreen: $cost-green;
82
+ iaGold: $ia-gold;
83
+ piMagenta: $pi-magenta;
84
+ qualityBlue: $quality-blue;
85
+ }
86
+ /* stylelint-enable property-case */
@@ -0,0 +1,3 @@
1
+ @import './color';
2
+ @import './type';
3
+ @import './layout';