_panel_gettingstarted.scss 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486
  1. ul.gettingstarted-flex-container {
  2. display: flex;
  3. justify-content: space-around;
  4. flex-direction: row;
  5. padding: 20px;
  6. list-style-type: none;
  7. }
  8. .gettingstarted-flex-item {
  9. align-items: center;
  10. display: flex;
  11. flex-direction: column;
  12. justify-content: flex-start;
  13. }
  14. .gettingstarted-blurb-copy {
  15. font-size: $font-size-base;
  16. margin-bottom: $spacer/2;
  17. text-align: center;
  18. }
  19. a.gettingstarted-blurb{
  20. @extend .gettingstarted-blurb-copy;
  21. color: $text-color;
  22. display: block;
  23. }
  24. a.gettingstarted-blurb:hover{
  25. text-decoration: underline;
  26. }
  27. .gettingstarted-blurb-success {
  28. @extend .gettingstarted-blurb-copy;
  29. color: $text-color-weak;
  30. text-decoration: line-through;
  31. }
  32. a.gettingstarted-blurb-upcoming {
  33. @extend .gettingstarted-blurb-copy;
  34. color: $text-color-weak;
  35. }
  36. .gettingstarted-icon-container {
  37. height: 50px;
  38. }
  39. .gettingstarted-icon-active {
  40. color: $brand-primary;
  41. -webkit-text-fill-color: transparent;
  42. background: $brand-gradient;
  43. -webkit-background-clip: text;
  44. text-decoration:none;
  45. font-size: 35px;
  46. vertical-align: sub;
  47. animation: iconPulse 500ms forwards 1s;
  48. will-change: zoom;
  49. }
  50. .gettingstarted-icon-upcoming {
  51. color: $text-color-weak;
  52. text-decoration:none;
  53. font-size: 35px;
  54. vertical-align: sub;
  55. }
  56. .gettingstarted-icon-success {
  57. color: $online;
  58. font-size: 35px;
  59. text-decoration:none;
  60. vertical-align: sub;
  61. }
  62. .dashlist-CTA-close-btn {
  63. float: right;
  64. padding: 0;
  65. margin: 0 2px 0 0;
  66. background-color: transparent;
  67. border: none;
  68. i {
  69. font-size: 80%;
  70. }
  71. color: $text-color-weak;
  72. &:hover {
  73. color: $white;
  74. }
  75. }
  76. @keyframes iconPulse {
  77. from {
  78. zoom: 100%;
  79. }
  80. 50% {
  81. zoom: 102%;
  82. }
  83. to {
  84. zoom: 100%;
  85. }
  86. }
  87. // ----- Progress Tracker -----
  88. // ----- Variables -----
  89. // Colours
  90. $progress-color-dark: $panel-bg !default;
  91. $progress-color: $panel-bg !default;
  92. $progress-color-light: $panel-bg !default;
  93. $progress-color-grey-light: $body-bg !default;
  94. $progress-color-grey: $iconContainerBackground !default;
  95. $progress-color-grey-dark: $iconContainerBackground !default;
  96. // Sizing
  97. $progress-tracker-padding: 5px !default;
  98. $marker-size: 60px !default;
  99. $marker-size-half: ($marker-size / 2);
  100. $marker-size-third: ($marker-size / 3);
  101. $marker-size-quarter: ($marker-size / 4);
  102. $marker-spacing: 10px !default;
  103. $path-height: 4px !default;
  104. $path-position: $marker-size-half - ($path-height / 2);
  105. $text-padding: $marker-size-half !default;
  106. $text-padding-X: $marker-size-third !default;
  107. $text-padding-Y: 5px !default;
  108. $text-padding--vertical: $marker-size + $marker-size-half !default;
  109. // Only needed for short text version, the word size should be the width of the widest word without padding.
  110. $word-size: 54px !default;
  111. $progress-tracker-word-padding: ($word-size + $text-padding-X + $marker-size-half) / 2;
  112. // Animations/Transitions
  113. $animation-duration: 0.3s !default;
  114. $ripple-color: rgba(0, 0, 0, 0.3) !default;
  115. // ----- Elements -----
  116. // Container element
  117. .progress-tracker {
  118. display: flex;
  119. margin: 20px auto;
  120. padding: 0;
  121. list-style: none;
  122. }
  123. // Step container that creates lines between steps
  124. .progress-step {
  125. display: block;
  126. position: relative;
  127. flex: 1 1 0%;
  128. margin: 0;
  129. padding: 0;
  130. min-width: $marker-size; // For a flexbox bug in firefox that wont allow the text overflow on the text
  131. // Stops the last step growing
  132. &:last-child {
  133. flex-grow: 0;
  134. }
  135. // Path between markers, this is not created for the last step
  136. &:not(:last-child)::after {
  137. content: '';
  138. display: block;
  139. position: absolute;
  140. z-index: 1;
  141. top: $path-position;
  142. bottom: $path-position;
  143. right: - $marker-size-half;
  144. width: 100%;
  145. height: $path-height;
  146. transition: background-color $animation-duration;
  147. }
  148. // Active state
  149. &.is-active {
  150. .progress-title {
  151. font-weight: 400;
  152. }
  153. }
  154. > a {
  155. display: block;
  156. }
  157. }
  158. // Progress marker
  159. .progress-marker {
  160. display: flex;
  161. justify-content: center;
  162. align-items: center;
  163. position: relative;
  164. z-index: 20;
  165. width: $marker-size;
  166. height: $marker-size;
  167. padding-bottom: 2px; // To align text within the marker
  168. color: #fff;
  169. font-weight: 400;
  170. border: 2px solid transparent;
  171. border-radius: 50%;
  172. transition: background-color, border-color;
  173. transition-duration: $animation-duration;
  174. }
  175. // Progress text
  176. .progress-text {
  177. display: block;
  178. padding: $text-padding-Y $text-padding-X;
  179. overflow: hidden;
  180. text-overflow: ellipsis;
  181. }
  182. .progress-title {
  183. margin-top: 0;
  184. }
  185. // Step state mixin - The first arugment is required and the rest are optional, if you pass in null the value will not be changed.
  186. @mixin progress-state($marker-color-bg, $marker-color-border: null, $marker-color-text: null, $path-color: null, $text-color: null) {
  187. .progress-marker {
  188. color: $marker-color-text;
  189. background-color: $marker-color-bg;
  190. border-color: $marker-color-border;
  191. }
  192. &::after {
  193. background-color: $path-color;
  194. }
  195. .progress-text, .progress-step > a .progress-text {
  196. color: $text-color;
  197. }
  198. }
  199. // States
  200. .progress-step {
  201. // Inactive - Default state
  202. @include progress-state($progress-color, null, #fff, $progress-color-grey-light, $progress-color-grey-dark);
  203. // Active state
  204. &.is-active {
  205. @include progress-state($progress-color);
  206. }
  207. // Complete state
  208. &.is-complete {
  209. @include progress-state($progress-color-dark, $path-color: $progress-color-grey);
  210. }
  211. // Hover state
  212. &:hover {
  213. @include progress-state($progress-color-light);
  214. }
  215. }
  216. // ----- Modifiers -----
  217. // Center align markers and text
  218. .progress-tracker--center {
  219. .progress-step {
  220. text-align: center;
  221. &:last-child {
  222. flex-grow: 1;
  223. }
  224. &::after {
  225. right: -50%;
  226. }
  227. }
  228. .progress-marker {
  229. margin-left: auto;
  230. margin-right: auto;
  231. }
  232. }
  233. // Right align markers and text
  234. .progress-tracker--right {
  235. .progress-step {
  236. text-align: right;
  237. &:last-child {
  238. flex-grow: 1;
  239. }
  240. &::after {
  241. right: calc(-100% + #{$marker-size-half});
  242. }
  243. }
  244. .progress-marker {
  245. margin-left: auto;
  246. }
  247. }
  248. // Border around steps (Only for use without text)
  249. .progress-tracker--border {
  250. padding: $progress-tracker-padding;
  251. border: 2px solid $progress-color-grey;
  252. border-radius: $marker-size + ($progress-tracker-padding * 2);
  253. }
  254. // Spaces between markers
  255. .progress-tracker--spaced {
  256. .progress-step {
  257. &::after {
  258. width: calc(100% - #{$marker-size + ($marker-spacing * 2)});
  259. margin-right: ($marker-size-half + $marker-spacing);
  260. }
  261. }
  262. }
  263. // Word below markers
  264. .progress-tracker--word {
  265. padding-right: $progress-tracker-word-padding;
  266. overflow: hidden;
  267. .progress-text {
  268. display: inline-block;
  269. white-space: nowrap;
  270. }
  271. .progress-title {
  272. margin: 0;
  273. }
  274. }
  275. .progress-tracker--word-center {
  276. padding-right: $progress-tracker-word-padding;
  277. padding-left: $progress-tracker-word-padding;
  278. .progress-text {
  279. padding-right: 0;
  280. padding-left: 0;
  281. transform: translateX(calc(-50% + #{$marker-size-half}));
  282. }
  283. }
  284. .progress-tracker--word-right {
  285. padding-right: 0;
  286. padding-left: $progress-tracker-word-padding;
  287. .progress-text {
  288. padding-left: 0;
  289. transform: translateX(calc(-100% + #{$marker-size}));
  290. }
  291. }
  292. // Text below markers
  293. .progress-tracker--text {
  294. .progress-step {
  295. &:last-child {
  296. flex-grow: 1;
  297. }
  298. }
  299. }
  300. // Text above markers
  301. .progress-tracker--text-top {
  302. .progress-step::after {
  303. top: auto;
  304. }
  305. .progress-text {
  306. height: 100%;
  307. }
  308. .progress-marker {
  309. bottom: $marker-size;
  310. }
  311. }
  312. // Text inline with markers
  313. .progress-tracker--text-inline {
  314. .progress-step {
  315. display: flex;
  316. }
  317. .progress-text {
  318. position: relative;
  319. z-index: 30;
  320. max-width: 70%;
  321. white-space: nowrap;
  322. padding-top: 0;
  323. padding-bottom: 0;
  324. background-color: #fff;
  325. }
  326. .progress-title {
  327. margin: 0;
  328. }
  329. }
  330. // Square markers
  331. .progress-tracker--square {
  332. .progress-step {
  333. padding-top: 0;
  334. }
  335. .progress-marker {
  336. transform: scaleX(0.33) translateY(- $path-position);
  337. border-radius: 0;
  338. }
  339. }
  340. // Overflow on small screens
  341. @media (max-width: 399px) {
  342. .progress-tracker-mobile {
  343. overflow-x: auto;
  344. .progress-tracker {
  345. min-width: 200%;
  346. }
  347. }
  348. }
  349. // Vertical layout
  350. .progress-tracker--vertical {
  351. flex-direction: column;
  352. .progress-step {
  353. flex: 1 1 auto;
  354. &::after {
  355. right: auto;
  356. top: $marker-size-half;
  357. left: $path-position;
  358. width: $path-height;
  359. height: 100%;
  360. }
  361. }
  362. .progress-marker {
  363. position: absolute;
  364. left: 0;
  365. }
  366. .progress-text {
  367. padding-top: $marker-size-quarter;
  368. padding-left: $text-padding--vertical;
  369. }
  370. .progress-step:not(:last-child) .progress-text {
  371. padding-bottom: $text-padding--vertical;
  372. }
  373. }