You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1143 lines
20 KiB

  1. $maximum-width: 1235px;
  2. $fluid-breakpoint: $maximum-width + 20px;
  3. $column-breakpoint: 700px;
  4. $small-breakpoint: 960px;
  5. .container {
  6. box-sizing: border-box;
  7. max-width: $maximum-width;
  8. margin: 0 auto;
  9. position: relative;
  10. @media screen and (max-width: $fluid-breakpoint) {
  11. width: 100%;
  12. padding: 0 10px;
  13. }
  14. }
  15. .landing-page {
  16. .grid {
  17. display: grid;
  18. grid-gap: 10px;
  19. grid-template-columns: 1fr 2fr;
  20. grid-auto-columns: 25%;
  21. grid-auto-rows: max-content;
  22. .column-0 {
  23. display: none;
  24. }
  25. .column-1 {
  26. grid-column: 1;
  27. grid-row: 1;
  28. }
  29. .column-2 {
  30. grid-column: 2;
  31. grid-row: 1;
  32. }
  33. .column-3 {
  34. grid-column: 3;
  35. grid-row: 1 / 3;
  36. }
  37. .column-4 {
  38. grid-column: 1 / 3;
  39. grid-row: 2;
  40. }
  41. }
  42. @media screen and (max-width: $small-breakpoint) {
  43. .grid {
  44. grid-template-columns: 40% 60%;
  45. .column-0 {
  46. display: none;
  47. }
  48. .column-1 {
  49. grid-column: 1;
  50. grid-row: 1;
  51. &.non-preview .landing-page__forms {
  52. height: 100%;
  53. }
  54. }
  55. .column-2 {
  56. grid-column: 2;
  57. grid-row: 1 / 3;
  58. &.non-preview {
  59. grid-column: 2;
  60. grid-row: 1;
  61. }
  62. }
  63. .column-3 {
  64. grid-column: 1;
  65. grid-row: 2 / 4;
  66. }
  67. .column-4 {
  68. grid-column: 2;
  69. grid-row: 3;
  70. &.non-preview {
  71. grid-column: 1 / 3;
  72. grid-row: 2;
  73. }
  74. }
  75. }
  76. }
  77. @media screen and (max-width: $column-breakpoint) {
  78. .grid {
  79. grid-template-columns: auto;
  80. .column-0 {
  81. display: block;
  82. grid-column: 1;
  83. grid-row: 1;
  84. }
  85. .column-1 {
  86. grid-column: 1;
  87. grid-row: 3;
  88. .brand {
  89. display: none;
  90. }
  91. }
  92. .column-2 {
  93. grid-column: 1;
  94. grid-row: 2;
  95. .landing-page__logo,
  96. .landing-page__call-to-action {
  97. display: none;
  98. }
  99. &.non-preview {
  100. grid-column: 1;
  101. grid-row: 2;
  102. }
  103. }
  104. .column-3 {
  105. grid-column: 1;
  106. grid-row: 5;
  107. }
  108. .column-4 {
  109. grid-column: 1;
  110. grid-row: 4;
  111. &.non-preview {
  112. grid-column: 1;
  113. grid-row: 4;
  114. }
  115. }
  116. }
  117. }
  118. .column-flex {
  119. display: flex;
  120. flex-direction: column;
  121. }
  122. .separator-or {
  123. position: relative;
  124. margin: 40px 0;
  125. text-align: center;
  126. &::before {
  127. content: "";
  128. display: block;
  129. width: 100%;
  130. height: 0;
  131. border-bottom: 1px solid rgba($ui-base-lighter-color, .6);
  132. position: absolute;
  133. top: 50%;
  134. left: 0;
  135. }
  136. span {
  137. display: inline-block;
  138. background: $ui-base-color;
  139. font-size: 12px;
  140. font-weight: 500;
  141. color: $ui-primary-color;
  142. text-transform: uppercase;
  143. position: relative;
  144. z-index: 1;
  145. padding: 0 8px;
  146. cursor: default;
  147. }
  148. }
  149. p,
  150. li {
  151. font-family: 'mastodon-font-sans-serif', sans-serif;
  152. font-size: 16px;
  153. font-weight: 400;
  154. font-size: 16px;
  155. line-height: 30px;
  156. margin-bottom: 12px;
  157. color: $ui-primary-color;
  158. a {
  159. color: $ui-highlight-color;
  160. text-decoration: underline;
  161. }
  162. }
  163. .closed-registrations-message {
  164. margin-top: 20px;
  165. &,
  166. p {
  167. text-align: center;
  168. font-size: 12px;
  169. line-height: 18px;
  170. color: $ui-primary-color;
  171. margin-bottom: 0;
  172. a {
  173. color: $ui-highlight-color;
  174. text-decoration: underline;
  175. }
  176. }
  177. p:last-child {
  178. margin-bottom: 0;
  179. }
  180. }
  181. em {
  182. display: inline;
  183. margin: 0;
  184. padding: 0;
  185. font-weight: 700;
  186. background: transparent;
  187. font-family: inherit;
  188. font-size: inherit;
  189. line-height: inherit;
  190. color: lighten($ui-primary-color, 10%);
  191. }
  192. h1 {
  193. font-family: 'mastodon-font-display', sans-serif;
  194. font-size: 26px;
  195. line-height: 30px;
  196. font-weight: 500;
  197. margin-bottom: 20px;
  198. color: $ui-secondary-color;
  199. small {
  200. font-family: 'mastodon-font-sans-serif', sans-serif;
  201. display: block;
  202. font-size: 18px;
  203. font-weight: 400;
  204. color: $ui-base-lighter-color;
  205. }
  206. }
  207. h2 {
  208. font-family: 'mastodon-font-display', sans-serif;
  209. font-size: 22px;
  210. line-height: 26px;
  211. font-weight: 500;
  212. margin-bottom: 20px;
  213. color: $ui-secondary-color;
  214. }
  215. h3 {
  216. font-family: 'mastodon-font-display', sans-serif;
  217. font-size: 18px;
  218. line-height: 24px;
  219. font-weight: 500;
  220. margin-bottom: 20px;
  221. color: $ui-secondary-color;
  222. }
  223. h4 {
  224. font-family: 'mastodon-font-display', sans-serif;
  225. font-size: 16px;
  226. line-height: 24px;
  227. font-weight: 500;
  228. margin-bottom: 20px;
  229. color: $ui-secondary-color;
  230. }
  231. h5 {
  232. font-family: 'mastodon-font-display', sans-serif;
  233. font-size: 14px;
  234. line-height: 24px;
  235. font-weight: 500;
  236. margin-bottom: 20px;
  237. color: $ui-secondary-color;
  238. }
  239. h6 {
  240. font-family: 'mastodon-font-display', sans-serif;
  241. font-size: 12px;
  242. line-height: 24px;
  243. font-weight: 500;
  244. margin-bottom: 20px;
  245. color: $ui-secondary-color;
  246. }
  247. ul,
  248. ol {
  249. margin-left: 20px;
  250. &[type='a'] {
  251. list-style-type: lower-alpha;
  252. }
  253. &[type='i'] {
  254. list-style-type: lower-roman;
  255. }
  256. }
  257. ul {
  258. list-style: disc;
  259. }
  260. ol {
  261. list-style: decimal;
  262. }
  263. li > ol,
  264. li > ul {
  265. margin-top: 6px;
  266. }
  267. hr {
  268. width: 100%;
  269. height: 0;
  270. border: 0;
  271. border-bottom: 1px solid rgba($ui-base-lighter-color, .6);
  272. margin: 20px 0;
  273. }
  274. .container-alt {
  275. width: 100%;
  276. box-sizing: border-box;
  277. max-width: 800px;
  278. margin: 0 auto;
  279. word-wrap: break-word;
  280. }
  281. .header-wrapper {
  282. padding-top: 15px;
  283. background: $ui-base-color;
  284. background: linear-gradient(150deg, lighten($ui-base-color, 8%), $ui-base-color);
  285. position: relative;
  286. &.compact {
  287. background: $ui-base-color;
  288. padding-bottom: 15px;
  289. .hero .heading {
  290. padding-bottom: 20px;
  291. font-family: 'mastodon-font-sans-serif', sans-serif;
  292. font-size: 16px;
  293. font-weight: 400;
  294. font-size: 16px;
  295. line-height: 30px;
  296. color: $ui-primary-color;
  297. a {
  298. color: $ui-highlight-color;
  299. text-decoration: underline;
  300. }
  301. }
  302. }
  303. }
  304. .brand {
  305. a {
  306. padding-left: 0;
  307. padding-right: 0;
  308. color: $white;
  309. }
  310. img {
  311. height: 32px;
  312. position: relative;
  313. top: 4px;
  314. left: -10px;
  315. }
  316. }
  317. .header {
  318. line-height: 30px;
  319. overflow: hidden;
  320. .container-alt {
  321. display: flex;
  322. justify-content: space-between;
  323. }
  324. .links {
  325. position: relative;
  326. z-index: 4;
  327. a {
  328. display: flex;
  329. justify-content: center;
  330. align-items: center;
  331. color: $ui-primary-color;
  332. text-decoration: none;
  333. padding: 12px 16px;
  334. line-height: 32px;
  335. font-family: 'mastodon-font-display', sans-serif;
  336. font-weight: 500;
  337. font-size: 14px;
  338. &:hover {
  339. color: $ui-secondary-color;
  340. }
  341. }
  342. ul {
  343. list-style: none;
  344. margin: 0;
  345. li {
  346. display: inline-block;
  347. vertical-align: bottom;
  348. margin: 0;
  349. &:first-child a {
  350. padding-left: 0;
  351. }
  352. &:last-child a {
  353. padding-right: 0;
  354. }
  355. }
  356. }
  357. }
  358. .hero {
  359. margin-top: 50px;
  360. align-items: center;
  361. position: relative;
  362. .heading {
  363. position: relative;
  364. z-index: 4;
  365. padding-bottom: 150px;
  366. }
  367. .simple_form,
  368. .closed-registrations-message {
  369. background: darken($ui-base-color, 4%);
  370. width: 280px;
  371. padding: 15px 20px;
  372. border-radius: 4px 4px 0 0;
  373. line-height: initial;
  374. position: relative;
  375. z-index: 4;
  376. .actions {
  377. margin-bottom: 0;
  378. button,
  379. .button,
  380. .block-button {
  381. margin-bottom: 0;
  382. }
  383. }
  384. }
  385. .closed-registrations-message {
  386. min-height: 330px;
  387. display: flex;
  388. flex-direction: column;
  389. justify-content: space-between;
  390. }
  391. }
  392. }
  393. .about-short {
  394. background: darken($ui-base-color, 4%);
  395. padding: 50px 0 30px;
  396. font-family: 'mastodon-font-sans-serif', sans-serif;
  397. font-size: 16px;
  398. font-weight: 400;
  399. font-size: 16px;
  400. line-height: 30px;
  401. color: $ui-primary-color;
  402. a {
  403. color: $ui-highlight-color;
  404. text-decoration: underline;
  405. }
  406. }
  407. .information-board {
  408. background: darken($ui-base-color, 4%);
  409. padding: 20px 0;
  410. .container-alt {
  411. position: relative;
  412. padding-right: 280px + 15px;
  413. }
  414. &__sections {
  415. display: flex;
  416. justify-content: space-between;
  417. flex-wrap: wrap;
  418. }
  419. &__section {
  420. flex: 1 0 0;
  421. font-family: 'mastodon-font-sans-serif', sans-serif;
  422. font-size: 16px;
  423. line-height: 28px;
  424. color: $primary-text-color;
  425. text-align: right;
  426. padding: 10px 15px;
  427. span,
  428. strong {
  429. display: block;
  430. }
  431. span {
  432. &:last-child {
  433. color: $ui-secondary-color;
  434. }
  435. }
  436. strong {
  437. font-weight: 500;
  438. font-size: 32px;
  439. line-height: 48px;
  440. }
  441. @media screen and (max-width: $column-breakpoint) {
  442. text-align: center;
  443. }
  444. }
  445. .panel {
  446. position: absolute;
  447. width: 280px;
  448. box-sizing: border-box;
  449. background: darken($ui-base-color, 8%);
  450. padding: 20px;
  451. padding-top: 10px;
  452. border-radius: 4px 4px 0 0;
  453. right: 0;
  454. bottom: -40px;
  455. .panel-header {
  456. font-family: 'mastodon-font-display', sans-serif;
  457. font-size: 14px;
  458. line-height: 24px;
  459. font-weight: 500;
  460. color: $ui-primary-color;
  461. padding-bottom: 5px;
  462. margin-bottom: 15px;
  463. border-bottom: 1px solid lighten($ui-base-color, 4%);
  464. text-overflow: ellipsis;
  465. white-space: nowrap;
  466. overflow: hidden;
  467. a,
  468. span {
  469. font-weight: 400;
  470. color: darken($ui-primary-color, 10%);
  471. }
  472. a {
  473. text-decoration: none;
  474. }
  475. }
  476. }
  477. .owner {
  478. text-align: center;
  479. .avatar {
  480. width: 80px;
  481. height: 80px;
  482. margin: 0 auto;
  483. margin-bottom: 15px;
  484. img {
  485. display: block;
  486. width: 80px;
  487. height: 80px;
  488. border-radius: 48px;
  489. }
  490. }
  491. .name {
  492. font-size: 14px;
  493. a {
  494. display: block;
  495. color: $primary-text-color;
  496. text-decoration: none;
  497. &:hover {
  498. .display_name {
  499. text-decoration: underline;
  500. }
  501. }
  502. }
  503. .username {
  504. display: block;
  505. color: $ui-primary-color;
  506. }
  507. }
  508. }
  509. }
  510. &.alternative {
  511. padding: 10px 0;
  512. .brand {
  513. text-align: center;
  514. padding: 30px 0;
  515. margin-bottom: 10px;
  516. img {
  517. position: static;
  518. padding: 10px 0;
  519. }
  520. @media screen and (max-width: $small-breakpoint) {
  521. padding: 15px 0;
  522. }
  523. @media screen and (max-width: $column-breakpoint) {
  524. padding: 0;
  525. margin-bottom: -10px;
  526. }
  527. }
  528. }
  529. &__information,
  530. &__forms {
  531. padding: 20px;
  532. }
  533. &__call-to-action {
  534. background: darken($ui-base-color, 4%);
  535. border-radius: 4px;
  536. padding: 25px 40px;
  537. overflow: hidden;
  538. .row {
  539. display: flex;
  540. flex-direction: row-reverse;
  541. flex-wrap: wrap;
  542. justify-content: space-between;
  543. align-items: center;
  544. }
  545. .row__information-board {
  546. display: flex;
  547. justify-content: flex-end;
  548. align-items: flex-end;
  549. .information-board__section {
  550. flex: 1 0 auto;
  551. padding: 0 10px;
  552. }
  553. }
  554. .row__mascot {
  555. flex: 1;
  556. margin: 10px -50px 0 0;
  557. }
  558. }
  559. &__logo {
  560. margin-right: 20px;
  561. img {
  562. height: 50px;
  563. width: auto;
  564. mix-blend-mode: lighten;
  565. }
  566. }
  567. &__information {
  568. padding: 45px 40px;
  569. margin-bottom: 10px;
  570. &:last-child {
  571. margin-bottom: 0;
  572. }
  573. .account {
  574. border-bottom: 0;
  575. padding: 0;
  576. &__display-name {
  577. align-items: center;
  578. display: flex;
  579. margin-right: 5px;
  580. }
  581. div.account__display-name {
  582. &:hover {
  583. .display-name strong {
  584. text-decoration: none;
  585. }
  586. }
  587. .account__avatar {
  588. cursor: default;
  589. }
  590. }
  591. &__avatar-wrapper {
  592. margin-left: 0;
  593. flex: 0 0 auto;
  594. }
  595. &__avatar {
  596. width: 44px;
  597. height: 44px;
  598. background-size: 44px 44px;
  599. }
  600. .display-name {
  601. font-size: 15px;
  602. &__account {
  603. font-size: 14px;
  604. }
  605. }
  606. }
  607. @media screen and (max-width: $small-breakpoint) {
  608. .contact {
  609. margin-top: 30px;
  610. }
  611. }
  612. @media screen and (max-width: $column-breakpoint) {
  613. padding: 25px 20px;
  614. }
  615. }
  616. &__information,
  617. &__forms,
  618. #mastodon-timeline {
  619. box-sizing: border-box;
  620. background: $ui-base-color;
  621. border-radius: 4px;
  622. box-shadow: 0 0 6px rgba($black, 0.1);
  623. }
  624. &__mascot {
  625. height: 104px;
  626. position: relative;
  627. left: -40px;
  628. bottom: 25px;
  629. img {
  630. height: 190px;
  631. width: auto;
  632. }
  633. }
  634. &__short-description {
  635. .row {
  636. display: flex;
  637. flex-wrap: wrap;
  638. align-items: center;
  639. margin-bottom: 40px;
  640. }
  641. @media screen and (max-width: $column-breakpoint) {
  642. .row {
  643. margin-bottom: 20px;
  644. }
  645. }
  646. p a {
  647. color: $ui-secondary-color;
  648. }
  649. h1 {
  650. font-weight: 500;
  651. color: $primary-text-color;
  652. margin-bottom: 0;
  653. small {
  654. color: $ui-primary-color;
  655. span {
  656. color: $ui-secondary-color;
  657. }
  658. }
  659. }
  660. p:last-child {
  661. margin-bottom: 0;
  662. }
  663. }
  664. &__hero {
  665. margin-bottom: 10px;
  666. img {
  667. display: block;
  668. margin: 0;
  669. max-width: 100%;
  670. height: auto;
  671. border-radius: 4px;
  672. }
  673. }
  674. &__forms {
  675. height: 100%;
  676. @media screen and (max-width: $small-breakpoint) {
  677. height: auto;
  678. }
  679. @media screen and (max-width: $column-breakpoint) {
  680. background: transparent;
  681. box-shadow: none;
  682. padding: 0 20px;
  683. margin-top: 30px;
  684. margin-bottom: 40px;
  685. .separator-or {
  686. span {
  687. background: darken($ui-base-color, 8%);
  688. }
  689. }
  690. }
  691. hr {
  692. margin: 40px 0;
  693. }
  694. .button {
  695. display: block;
  696. }
  697. .subtle-hint a {
  698. text-decoration: none;
  699. &:hover,
  700. &:focus,
  701. &:active {
  702. text-decoration: underline;
  703. }
  704. }
  705. }
  706. #mastodon-timeline {
  707. display: flex;
  708. -webkit-overflow-scrolling: touch;
  709. -ms-overflow-style: -ms-autohiding-scrollbar;
  710. font-family: 'mastodon-font-sans-serif', sans-serif;
  711. font-size: 13px;
  712. line-height: 18px;
  713. font-weight: 400;
  714. color: $primary-text-color;
  715. width: 100%;
  716. flex: 1 1 auto;
  717. overflow: hidden;
  718. height: 100%;
  719. .column-header {
  720. color: inherit;
  721. font-family: inherit;
  722. font-size: 16px;
  723. line-height: inherit;
  724. font-weight: inherit;
  725. margin: 0;
  726. padding: 0;
  727. }
  728. .column {
  729. padding: 0;
  730. border-radius: 4px;
  731. overflow: hidden;
  732. width: 100%;
  733. }
  734. .scrollable {
  735. height: 400px;
  736. }
  737. p {
  738. font-size: inherit;
  739. line-height: inherit;
  740. font-weight: inherit;
  741. color: $primary-text-color;
  742. margin-bottom: 20px;
  743. &:last-child {
  744. margin-bottom: 0;
  745. }
  746. a {
  747. color: $ui-secondary-color;
  748. text-decoration: none;
  749. }
  750. }
  751. @media screen and (max-width: $column-breakpoint) {
  752. height: 90vh;
  753. }
  754. }
  755. &__features {
  756. & > p {
  757. padding-right: 60px;
  758. }
  759. .features-list {
  760. margin: 40px 0;
  761. margin-top: 30px;
  762. }
  763. &__action {
  764. text-align: center;
  765. }
  766. }
  767. .features-list {
  768. .features-list__row {
  769. display: flex;
  770. padding: 10px 0;
  771. justify-content: space-between;
  772. .visual {
  773. flex: 0 0 auto;
  774. display: flex;
  775. align-items: center;
  776. margin-left: 15px;
  777. .fa {
  778. display: block;
  779. color: $ui-primary-color;
  780. font-size: 48px;
  781. }
  782. }
  783. .text {
  784. font-size: 16px;
  785. line-height: 30px;
  786. color: $ui-primary-color;
  787. h6 {
  788. font-size: inherit;
  789. line-height: inherit;
  790. margin-bottom: 0;
  791. }
  792. }
  793. }
  794. @media screen and (min-width: $small-breakpoint) {
  795. display: grid;
  796. grid-gap: 30px;
  797. grid-template-columns: 1fr 1fr;
  798. grid-auto-columns: 50%;
  799. grid-auto-rows: max-content;
  800. }
  801. }
  802. .extended-description {
  803. padding: 50px 0;
  804. font-family: 'mastodon-font-sans-serif', sans-serif;
  805. font-size: 16px;
  806. font-weight: 400;
  807. font-size: 16px;
  808. line-height: 30px;
  809. color: $ui-primary-color;
  810. a {
  811. color: $ui-highlight-color;
  812. text-decoration: underline;
  813. }
  814. }
  815. .footer-links {
  816. padding-bottom: 50px;
  817. text-align: right;
  818. color: $ui-base-lighter-color;
  819. p {
  820. font-size: 14px;
  821. }
  822. a {
  823. color: inherit;
  824. text-decoration: underline;
  825. }
  826. }
  827. &__footer {
  828. margin-top: 10px;
  829. text-align: center;
  830. color: $ui-base-lighter-color;
  831. p {
  832. font-size: 14px;
  833. a {
  834. color: inherit;
  835. text-decoration: underline;
  836. }
  837. }
  838. }
  839. @media screen and (max-width: 840px) {
  840. .container-alt {
  841. padding: 0 20px;
  842. }
  843. .information-board {
  844. .container-alt {
  845. padding-right: 20px;
  846. }
  847. .panel {
  848. position: static;
  849. margin-top: 20px;
  850. width: 100%;
  851. border-radius: 4px;
  852. .panel-header {
  853. text-align: center;
  854. }
  855. }
  856. }
  857. }
  858. @media screen and (max-width: 675px) {
  859. .header-wrapper {
  860. padding-top: 0;
  861. &.compact {
  862. padding-bottom: 0;
  863. }
  864. &.compact .hero .heading {
  865. text-align: initial;
  866. }
  867. }
  868. .header .container-alt,
  869. .features .container-alt {
  870. display: block;
  871. }
  872. .header {
  873. .links {
  874. padding-top: 15px;
  875. background: darken($ui-base-color, 4%);
  876. a {
  877. padding: 12px 8px;
  878. }
  879. .nav {
  880. display: flex;
  881. flex-flow: row wrap;
  882. justify-content: space-around;
  883. }
  884. .brand img {
  885. left: 0;
  886. top: 0;
  887. }
  888. }
  889. .hero {
  890. margin-top: 30px;
  891. padding: 0;
  892. .heading {
  893. padding: 30px 20px;
  894. text-align: center;
  895. }
  896. .simple_form,
  897. .closed-registrations-message {
  898. background: darken($ui-base-color, 8%);
  899. width: 100%;
  900. border-radius: 0;
  901. box-sizing: border-box;
  902. }
  903. }
  904. }
  905. }
  906. .cta {
  907. margin: 20px;
  908. }
  909. &.tag-page {
  910. .grid {
  911. @media screen and (min-width: $small-breakpoint) {
  912. grid-template-columns: 33% 67%;
  913. }
  914. .column-2 {
  915. grid-column: 2;
  916. grid-row: 1;
  917. }
  918. }
  919. .brand {
  920. text-align: unset;
  921. padding: 0;
  922. img {
  923. height: 48px;
  924. width: auto;
  925. }
  926. }
  927. .cta {
  928. margin: 0;
  929. .button {
  930. margin-right: 4px;
  931. }
  932. }
  933. @media screen and (max-width: $column-breakpoint) {
  934. .grid {
  935. .column-1 {
  936. grid-column: 1;
  937. grid-row: 2;
  938. }
  939. .column-2 {
  940. grid-column: 1;
  941. grid-row: 1;
  942. }
  943. }
  944. .brand {
  945. margin: 0;
  946. }
  947. .landing-page__features {
  948. display: none;
  949. }
  950. }
  951. }
  952. }