website-redesign.less 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629
  1. .website-redesign {
  2. p,
  3. h1,
  4. h2,
  5. h3,
  6. h4,
  7. a,
  8. strong,
  9. span {
  10. font-family: 'Noto Sans', sans-serif;
  11. }
  12. h1 {
  13. font-size: 3rem;
  14. font-weight: 600;
  15. line-height: 4rem;
  16. }
  17. h2 {
  18. font-weight: 600;
  19. font-size: 2.25rem;
  20. line-height: 3rem;
  21. margin-top: 0;
  22. }
  23. h3 {
  24. font-weight: 600;
  25. }
  26. // override .btn default style
  27. .btn {
  28. font-weight: 600;
  29. }
  30. .img-rounded {
  31. // TODO: design specifies 'border-radius-large' which is 5px, but uses 16px
  32. border-radius: 16px;
  33. }
  34. .plans-cards {
  35. @media (min-width: @screen-md-min) {
  36. display: flex; /* equal heights */
  37. flex-wrap: wrap;
  38. }
  39. .plans-card-container {
  40. min-height: 348px;
  41. @media (max-width: @screen-sm-max) {
  42. margin-bottom: 16px;
  43. min-height: unset;
  44. }
  45. }
  46. .plans-card {
  47. border-radius: 8px;
  48. padding: 0;
  49. height: 100%;
  50. .plans-card-inner {
  51. padding: 36px;
  52. height: 100%;
  53. display: flex;
  54. flex-direction: column;
  55. font-size: 16px;
  56. .plans-card-inner-title {
  57. font-size: 20px;
  58. font-weight: 600;
  59. margin-top: 0;
  60. }
  61. ul {
  62. list-style-type: none;
  63. padding: 0;
  64. margin: 0;
  65. li {
  66. margin-bottom: 8px;
  67. }
  68. }
  69. .plans-card-inner-footer {
  70. margin-top: auto;
  71. display: flex;
  72. flex-direction: column;
  73. gap: 12px;
  74. @media (max-width: @screen-sm-max) {
  75. margin-top: 16px;
  76. }
  77. }
  78. }
  79. &.grey-border {
  80. border: 2px solid var(--neutral-20);
  81. }
  82. &.blue-border {
  83. border: solid 2px var(--sapphire-blue);
  84. border-radius: 8px;
  85. .plans-card-inner-title {
  86. color: var(--sapphire-blue);
  87. }
  88. }
  89. }
  90. }
  91. .plans-bottom-text {
  92. font-size: 1.125rem;
  93. }
  94. .info-cards {
  95. @media (min-width: @screen-md-min) {
  96. display: flex; /* equal heights */
  97. flex-wrap: wrap;
  98. }
  99. .info-card-container {
  100. margin-bottom: 16px;
  101. .info-card {
  102. border-radius: 8px;
  103. height: 100%;
  104. box-shadow: 0px 2px 4px 0px #1e253014, 0px 4px 12px 0px #1e25301f;
  105. border-top: 8px solid var(--sapphire-blue);
  106. padding: 32px 40px 32px 40px;
  107. &.info-card-big-text {
  108. h3 {
  109. font-size: 1.5rem;
  110. line-height: 1.333;
  111. }
  112. p {
  113. font-size: 1.125rem;
  114. line-height: 1.333;
  115. }
  116. }
  117. i.material-symbols {
  118. color: var(--sapphire-blue);
  119. }
  120. }
  121. }
  122. }
  123. .features-card {
  124. display: flex; /* equal heights */
  125. flex-wrap: wrap;
  126. align-items: center;
  127. .features-card-image {
  128. img.img-responsive {
  129. width: 100%;
  130. }
  131. @media (max-width: @screen-sm-max) {
  132. margin-bottom: 50px;
  133. }
  134. }
  135. .features-card-description,
  136. .features-card-description-list {
  137. padding-top: 16px;
  138. p {
  139. margin-bottom: 16px;
  140. font-size: 1.125rem;
  141. line-height: 1.333;
  142. @media (max-width: @screen-sm-max) {
  143. font-size: 1rem;
  144. line-height: 1.375;
  145. }
  146. }
  147. a.green-link {
  148. margin-top: 4px;
  149. display: block;
  150. }
  151. ul {
  152. list-style-type: none;
  153. padding: 0;
  154. margin: 0;
  155. li {
  156. margin-bottom: 12px;
  157. font-size: 1.125rem;
  158. line-height: 1.333;
  159. // flex is needed in the case of "premium" label being on the same line
  160. display: flex;
  161. @media (max-width: @screen-sm-max) {
  162. font-size: 1rem;
  163. line-height: 1.375;
  164. // only for label-premium that appears directly as a child of li
  165. > .label-premium {
  166. margin-left: auto;
  167. align-self: center;
  168. }
  169. }
  170. h4 {
  171. margin-top: 0;
  172. margin-bottom: 8px;
  173. font-size: 20px;
  174. font-weight: 600;
  175. }
  176. p {
  177. margin-bottom: 0;
  178. }
  179. }
  180. }
  181. }
  182. .features-card-description {
  183. h3 {
  184. font-size: 1.5rem;
  185. line-height: 1.4;
  186. margin-bottom: 8px;
  187. }
  188. }
  189. .features-card-description-list {
  190. h3 {
  191. font-size: 1.875rem;
  192. line-height: 1.5;
  193. }
  194. }
  195. }
  196. .features-card-hero {
  197. /* borrow from features-card, but rewrite if needed before adding too many overrides */
  198. .features-card;
  199. padding-top: @line-height-computed * 2;
  200. .features-card-description,
  201. .features-card-description-list {
  202. p {
  203. font-size: 1.25rem;
  204. width: 90%;
  205. }
  206. }
  207. }
  208. .top-image-cards {
  209. .top-image-card {
  210. > img.img-responsive {
  211. width: 100%;
  212. border-radius: 8px;
  213. }
  214. .top-image-card-title {
  215. font-size: 24px;
  216. margin-top: 16px;
  217. margin-bottom: 8px;
  218. a {
  219. width: 100%;
  220. font-weight: 600;
  221. color: var(--neutral-90);
  222. display: inline-flex;
  223. justify-content: space-between;
  224. text-decoration: none;
  225. }
  226. i.material-symbols-rounded {
  227. vertical-align: middle;
  228. text-decoration: none;
  229. }
  230. }
  231. .top-image-card-text {
  232. font-size: 16px;
  233. }
  234. &:not(:last-of-type) {
  235. @media (max-width: @screen-sm-max) {
  236. margin-bottom: 40px;
  237. }
  238. }
  239. }
  240. }
  241. .cta-card {
  242. display: flex;
  243. flex-direction: column;
  244. align-items: center;
  245. padding: 64px;
  246. background: #2f4858;
  247. color: var(--white);
  248. border-radius: 8px;
  249. @media (max-width: @screen-sm-max) {
  250. padding: 48px 24px 48px 24px;
  251. }
  252. .cta-card-title {
  253. font-size: 3.25rem; // 52px
  254. margin-bottom: 8px;
  255. line-height: 1.3;
  256. &.title-mono {
  257. > span {
  258. // override Noto Sans
  259. font-family: 'DM Mono', monospace;
  260. }
  261. }
  262. span.purple-color {
  263. color: #939aff;
  264. font-weight: 400;
  265. }
  266. span.lime-color {
  267. font-weight: 500;
  268. color: #7ee787;
  269. }
  270. @media (max-width: @screen-sm-max) {
  271. font-size: 2.25rem; // 36px
  272. }
  273. }
  274. .cta-card-text {
  275. font-size: 1.125rem;
  276. line-height: 1.333;
  277. margin: 8px 0;
  278. text-align: center;
  279. }
  280. .cta-card-quote {
  281. font-size: 1.875rem; // 30px
  282. font-weight: 600;
  283. line-height: 2.5rem; // 40px
  284. letter-spacing: 0em;
  285. text-align: center;
  286. }
  287. }
  288. .quote-card {
  289. display: flex;
  290. flex-direction: column;
  291. align-items: center;
  292. padding: 32px;
  293. background: var(--deep-green);
  294. color: white;
  295. border-radius: 16px;
  296. blockquote {
  297. font-size: 1.875rem; // 30px
  298. font-weight: 600;
  299. line-height: 1.26;
  300. text-align: center;
  301. @media (max-width: @screen-sm-max) {
  302. font-size: 1.5rem; // 24px
  303. line-height: 1.333;
  304. }
  305. }
  306. .quote-card-img {
  307. margin-top: 32px;
  308. margin-bottom: 16px;
  309. }
  310. @media (max-width: @screen-sm-max) {
  311. padding: 56px 24px 56px 24px;
  312. }
  313. }
  314. .integrations-card {
  315. .integrations-icons {
  316. img {
  317. width: 6rem; // 96px
  318. height: 6rem; // 96px
  319. }
  320. .first-row,
  321. .second-row {
  322. display: flex;
  323. }
  324. .first-row {
  325. justify-content: space-between;
  326. }
  327. .second-row {
  328. margin-top: 40px;
  329. justify-content: space-evenly;
  330. }
  331. }
  332. }
  333. .security-info {
  334. .security-info-first-row {
  335. margin-bottom: 32px;
  336. @media (max-width: @screen-sm-max) {
  337. margin-bottom: 0;
  338. }
  339. }
  340. .security-info-item {
  341. @media (max-width: @screen-sm-max) {
  342. margin-bottom: 16px;
  343. }
  344. }
  345. }
  346. .resources {
  347. @media (min-width: @screen-md-min) {
  348. display: flex; /* equal heights */
  349. flex-wrap: wrap;
  350. }
  351. .resources-card {
  352. display: flex;
  353. flex-wrap: wrap;
  354. flex-direction: column;
  355. margin-bottom: 48px;
  356. align-content: flex-start;
  357. @media (max-width: @screen-sm-max) {
  358. margin-bottom: 16px;
  359. }
  360. img {
  361. width: 56px;
  362. }
  363. h3 {
  364. width: 100%;
  365. }
  366. a {
  367. margin-top: auto;
  368. }
  369. }
  370. }
  371. .centered-block {
  372. @media (min-width: @screen-md-min) {
  373. text-align: center;
  374. }
  375. }
  376. .mono-text {
  377. font-family: 'DM Mono', monospace;
  378. color: var(--green-60);
  379. font-feature-settings: 'ss05';
  380. font-size: 1.125rem;
  381. font-weight: 500;
  382. line-height: 1.5rem;
  383. margin: 0;
  384. ~ h1,
  385. ~ h2,
  386. ~ h3 {
  387. margin-top: 8px;
  388. }
  389. }
  390. .link-with-arrow {
  391. font-size: 1.125rem;
  392. line-height: 1.333;
  393. font-family: 'DM Mono', monospace;
  394. font-feature-settings: 'ss05';
  395. font-weight: 500;
  396. i.material-symbols-rounded {
  397. vertical-align: middle;
  398. padding-bottom: 3px;
  399. font-size: 24px;
  400. }
  401. }
  402. .green-link {
  403. .link-with-arrow;
  404. color: var(--emerald-green);
  405. &:hover {
  406. color: var(--green-60);
  407. .right-arrow {
  408. background: var(--green-60);
  409. }
  410. }
  411. }
  412. .green-link-underline {
  413. .green-link;
  414. /* TODO: implement standard links correctly when design fully rolls out */
  415. text-decoration: underline;
  416. }
  417. .white-link {
  418. .link-with-arrow;
  419. color: white;
  420. }
  421. .btn-blue {
  422. background: var(--sapphire-blue);
  423. color: var(--white);
  424. &:hover {
  425. background: var(--sapphire-blue-dark);
  426. }
  427. }
  428. .round-background {
  429. border-radius: 50%;
  430. font-size: 1.5rem;
  431. top: 4px;
  432. vertical-align: middle;
  433. margin-right: 8px;
  434. width: 24px;
  435. height: 24px;
  436. }
  437. .green-round-background {
  438. .round-background;
  439. background: var(--mint-green);
  440. color: var(--deep-green);
  441. }
  442. .blue-round-background {
  443. .round-background;
  444. background: var(--blue-10);
  445. color: var(--blue-40);
  446. }
  447. // most of these are here to replace rules from core/type.less
  448. blockquote {
  449. border-left: none;
  450. font-size: 1.875rem;
  451. line-height: 1.333;
  452. font-weight: 600;
  453. quotes: '\201C''\201D'; // override default quotes
  454. padding: unset;
  455. margin: unset;
  456. font-family: 'Noto Sans', sans-serif;
  457. &::after {
  458. visibility: visible;
  459. display: inline;
  460. margin-left: 1px; // it's too tight to the text otherwise
  461. }
  462. &::before {
  463. color: inherit;
  464. margin-right: 0;
  465. vertical-align: 0;
  466. }
  467. &::after,
  468. &::before {
  469. font-size: 1.875rem;
  470. line-height: 1.333;
  471. }
  472. @media (max-width: @screen-sm-max) {
  473. font-size: 1.5rem;
  474. line-height: 1.333;
  475. &::after,
  476. &::before {
  477. visibility: visible;
  478. font-size: 1.5rem;
  479. line-height: 1.333;
  480. }
  481. }
  482. }
  483. .circle-img {
  484. height: 64px;
  485. max-width: 64px;
  486. }
  487. .premium-badge {
  488. .premium-badge-img {
  489. margin-left: 10px;
  490. }
  491. @media (max-width: @screen-xs-max) {
  492. display: flex;
  493. .premium-badge-img {
  494. width: 87px;
  495. margin-left: auto;
  496. }
  497. }
  498. }
  499. .responsive-button-container {
  500. display: flex;
  501. margin-top: 24px;
  502. gap: 16px;
  503. &.centered-buttons {
  504. justify-content: center;
  505. }
  506. @media (max-width: @screen-sm-max) {
  507. flex-direction: column-reverse;
  508. width: 100%;
  509. }
  510. }
  511. .label-premium {
  512. height: 20px; // override default height
  513. }
  514. .header-description {
  515. p {
  516. font-size: 1.25rem;
  517. line-height: 1.4;
  518. margin-bottom: 0;
  519. @media (max-width: @screen-sm-max) {
  520. font-size: 1.125rem;
  521. line-height: 1.33;
  522. }
  523. }
  524. }
  525. }