_panel_gettingstarted.scss 8.4 KB

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