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.

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