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.

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