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.

904 lines
16 KiB

  1. .container-alt {
  2. width: 700px;
  3. margin: 0 auto;
  4. margin-top: 40px;
  5. @media screen and (max-width: 740px) {
  6. width: 100%;
  7. margin: 0;
  8. }
  9. }
  10. .logo-container {
  11. margin: 100px auto 50px;
  12. @media screen and (max-width: 500px) {
  13. margin: 40px auto 0;
  14. }
  15. h1 {
  16. display: flex;
  17. justify-content: center;
  18. align-items: center;
  19. svg {
  20. fill: $primary-text-color;
  21. height: 42px;
  22. margin-right: 10px;
  23. }
  24. a {
  25. display: flex;
  26. justify-content: center;
  27. align-items: center;
  28. color: $primary-text-color;
  29. text-decoration: none;
  30. outline: 0;
  31. padding: 12px 16px;
  32. line-height: 32px;
  33. font-family: $font-display, sans-serif;
  34. font-weight: 500;
  35. font-size: 14px;
  36. }
  37. }
  38. }
  39. .compose-standalone {
  40. .compose-form {
  41. width: 400px;
  42. margin: 0 auto;
  43. padding: 20px 0;
  44. margin-top: 40px;
  45. box-sizing: border-box;
  46. @media screen and (max-width: 400px) {
  47. width: 100%;
  48. margin-top: 0;
  49. padding: 20px;
  50. }
  51. }
  52. }
  53. .account-header {
  54. width: 400px;
  55. margin: 0 auto;
  56. display: flex;
  57. font-size: 13px;
  58. line-height: 18px;
  59. box-sizing: border-box;
  60. padding: 20px 0;
  61. padding-bottom: 0;
  62. margin-bottom: -30px;
  63. margin-top: 40px;
  64. @media screen and (max-width: 440px) {
  65. width: 100%;
  66. margin: 0;
  67. margin-bottom: 10px;
  68. padding: 20px;
  69. padding-bottom: 0;
  70. }
  71. .avatar {
  72. width: 40px;
  73. height: 40px;
  74. margin-right: 8px;
  75. img {
  76. width: 100%;
  77. height: 100%;
  78. display: block;
  79. margin: 0;
  80. border-radius: 4px;
  81. }
  82. }
  83. .name {
  84. flex: 1 1 auto;
  85. color: $secondary-text-color;
  86. width: calc(100% - 88px);
  87. .username {
  88. display: block;
  89. font-weight: 500;
  90. text-overflow: ellipsis;
  91. overflow: hidden;
  92. }
  93. }
  94. .logout-link {
  95. display: block;
  96. font-size: 32px;
  97. line-height: 40px;
  98. margin-left: 8px;
  99. }
  100. }
  101. .grid-3 {
  102. display: grid;
  103. grid-gap: 10px;
  104. grid-template-columns: 3fr 1fr;
  105. grid-auto-columns: 25%;
  106. grid-auto-rows: max-content;
  107. .column-0 {
  108. grid-column: 1 / 3;
  109. grid-row: 1;
  110. }
  111. .column-1 {
  112. grid-column: 1;
  113. grid-row: 2;
  114. }
  115. .column-2 {
  116. grid-column: 2;
  117. grid-row: 2;
  118. }
  119. .column-3 {
  120. grid-column: 1 / 3;
  121. grid-row: 3;
  122. }
  123. @media screen and (max-width: $no-gap-breakpoint) {
  124. grid-gap: 0;
  125. grid-template-columns: minmax(0, 100%);
  126. .column-0 {
  127. grid-column: 1;
  128. }
  129. .column-1 {
  130. grid-column: 1;
  131. grid-row: 3;
  132. }
  133. .column-2 {
  134. grid-column: 1;
  135. grid-row: 2;
  136. }
  137. .column-3 {
  138. grid-column: 1;
  139. grid-row: 4;
  140. }
  141. }
  142. }
  143. .grid-4 {
  144. display: grid;
  145. grid-gap: 10px;
  146. grid-template-columns: repeat(4, minmax(0, 1fr));
  147. grid-auto-columns: 25%;
  148. grid-auto-rows: max-content;
  149. .column-0 {
  150. grid-column: 1 / 5;
  151. grid-row: 1;
  152. }
  153. .column-1 {
  154. grid-column: 1 / 4;
  155. grid-row: 2;
  156. }
  157. .column-2 {
  158. grid-column: 4;
  159. grid-row: 2;
  160. }
  161. .column-3 {
  162. grid-column: 2 / 5;
  163. grid-row: 3;
  164. }
  165. .column-4 {
  166. grid-column: 1;
  167. grid-row: 3;
  168. }
  169. .landing-page__call-to-action {
  170. min-height: 100%;
  171. }
  172. .flash-message {
  173. margin-bottom: 10px;
  174. }
  175. @media screen and (max-width: 738px) {
  176. grid-template-columns: minmax(0, 50%) minmax(0, 50%);
  177. .landing-page__call-to-action {
  178. padding: 20px;
  179. display: flex;
  180. align-items: center;
  181. justify-content: center;
  182. }
  183. .row__information-board {
  184. width: 100%;
  185. justify-content: center;
  186. align-items: center;
  187. }
  188. .row__mascot {
  189. display: none;
  190. }
  191. }
  192. @media screen and (max-width: $no-gap-breakpoint) {
  193. grid-gap: 0;
  194. grid-template-columns: minmax(0, 100%);
  195. .column-0 {
  196. grid-column: 1;
  197. }
  198. .column-1 {
  199. grid-column: 1;
  200. grid-row: 3;
  201. }
  202. .column-2 {
  203. grid-column: 1;
  204. grid-row: 2;
  205. }
  206. .column-3 {
  207. grid-column: 1;
  208. grid-row: 5;
  209. }
  210. .column-4 {
  211. grid-column: 1;
  212. grid-row: 4;
  213. }
  214. }
  215. }
  216. .public-layout {
  217. @media screen and (max-width: $no-gap-breakpoint) {
  218. padding-top: 48px;
  219. }
  220. .container {
  221. max-width: 960px;
  222. @media screen and (max-width: $no-gap-breakpoint) {
  223. padding: 0;
  224. }
  225. }
  226. .header {
  227. background: lighten($ui-base-color, 8%);
  228. box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
  229. border-radius: 4px;
  230. height: 48px;
  231. margin: 10px 0;
  232. display: flex;
  233. align-items: stretch;
  234. justify-content: center;
  235. flex-wrap: nowrap;
  236. overflow: hidden;
  237. @media screen and (max-width: $no-gap-breakpoint) {
  238. position: fixed;
  239. width: 100%;
  240. top: 0;
  241. left: 0;
  242. margin: 0;
  243. border-radius: 0;
  244. box-shadow: none;
  245. z-index: 110;
  246. }
  247. & > div {
  248. flex: 1 1 33.3%;
  249. min-height: 1px;
  250. }
  251. .nav-left {
  252. display: flex;
  253. align-items: stretch;
  254. justify-content: flex-start;
  255. flex-wrap: nowrap;
  256. }
  257. .nav-center {
  258. display: flex;
  259. align-items: stretch;
  260. justify-content: center;
  261. flex-wrap: nowrap;
  262. }
  263. .nav-right {
  264. display: flex;
  265. align-items: stretch;
  266. justify-content: flex-end;
  267. flex-wrap: nowrap;
  268. }
  269. .brand {
  270. display: block;
  271. padding: 15px;
  272. svg {
  273. display: block;
  274. height: 18px;
  275. width: auto;
  276. position: relative;
  277. bottom: -2px;
  278. fill: $primary-text-color;
  279. @media screen and (max-width: $no-gap-breakpoint) {
  280. height: 20px;
  281. }
  282. }
  283. &:hover,
  284. &:focus,
  285. &:active {
  286. background: lighten($ui-base-color, 12%);
  287. }
  288. }
  289. .nav-link {
  290. display: flex;
  291. align-items: center;
  292. padding: 0 1rem;
  293. font-size: 12px;
  294. font-weight: 500;
  295. text-decoration: none;
  296. color: $darker-text-color;
  297. white-space: nowrap;
  298. text-align: center;
  299. &:hover,
  300. &:focus,
  301. &:active {
  302. text-decoration: underline;
  303. color: $primary-text-color;
  304. }
  305. @media screen and (max-width: 550px) {
  306. &.optional {
  307. display: none;
  308. }
  309. }
  310. }
  311. .nav-button {
  312. background: lighten($ui-base-color, 16%);
  313. margin: 8px;
  314. margin-left: 0;
  315. border-radius: 4px;
  316. &:hover,
  317. &:focus,
  318. &:active {
  319. text-decoration: none;
  320. background: lighten($ui-base-color, 20%);
  321. }
  322. }
  323. }
  324. $no-columns-breakpoint: 600px;
  325. .grid {
  326. display: grid;
  327. grid-gap: 10px;
  328. grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);
  329. grid-auto-columns: 25%;
  330. grid-auto-rows: max-content;
  331. .column-0 {
  332. grid-row: 1;
  333. grid-column: 1;
  334. }
  335. .column-1 {
  336. grid-row: 1;
  337. grid-column: 2;
  338. }
  339. @media screen and (max-width: $no-columns-breakpoint) {
  340. grid-template-columns: 100%;
  341. grid-gap: 0;
  342. .column-1 {
  343. display: none;
  344. }
  345. }
  346. }
  347. .directory__card {
  348. border-radius: 4px;
  349. @media screen and (max-width: $no-gap-breakpoint) {
  350. border-radius: 0;
  351. }
  352. }
  353. .page-header {
  354. @media screen and (max-width: $no-gap-breakpoint) {
  355. border-bottom: 0;
  356. }
  357. }
  358. .public-account-header {
  359. overflow: hidden;
  360. margin-bottom: 10px;
  361. box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
  362. &.inactive {
  363. opacity: 0.5;
  364. .public-account-header__image,
  365. .avatar {
  366. filter: grayscale(100%);
  367. }
  368. .logo-button {
  369. background-color: $secondary-text-color;
  370. }
  371. }
  372. .logo-button {
  373. line-height: 36px;
  374. padding: 3px 15px;
  375. }
  376. &__image {
  377. border-radius: 4px 4px 0 0;
  378. overflow: hidden;
  379. height: 300px;
  380. position: relative;
  381. background: darken($ui-base-color, 12%);
  382. &::after {
  383. content: "";
  384. display: block;
  385. position: absolute;
  386. width: 100%;
  387. height: 100%;
  388. box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);
  389. top: 0;
  390. left: 0;
  391. }
  392. img {
  393. object-fit: cover;
  394. display: block;
  395. width: 100%;
  396. height: 100%;
  397. margin: 0;
  398. border-radius: 4px 4px 0 0;
  399. }
  400. @media screen and (max-width: 600px) {
  401. height: 200px;
  402. }
  403. }
  404. &--no-bar {
  405. margin-bottom: 0;
  406. .public-account-header__image,
  407. .public-account-header__image img {
  408. border-radius: 4px;
  409. @media screen and (max-width: $no-gap-breakpoint) {
  410. border-radius: 0;
  411. }
  412. }
  413. }
  414. @media screen and (max-width: $no-gap-breakpoint) {
  415. margin-bottom: 0;
  416. box-shadow: none;
  417. &__image::after {
  418. display: none;
  419. }
  420. &__image,
  421. &__image img {
  422. border-radius: 0;
  423. }
  424. }
  425. &__bar {
  426. position: relative;
  427. margin-top: -80px;
  428. display: flex;
  429. justify-content: flex-start;
  430. &::before {
  431. content: "";
  432. display: block;
  433. background: lighten($ui-base-color, 4%);
  434. position: absolute;
  435. bottom: 0;
  436. left: 0;
  437. right: 0;
  438. height: 60px;
  439. border-radius: 0 0 4px 4px;
  440. z-index: -1;
  441. }
  442. .avatar {
  443. display: block;
  444. width: 120px;
  445. height: 120px;
  446. padding-left: 20px - 4px;
  447. flex: 0 0 auto;
  448. img {
  449. display: block;
  450. width: 100%;
  451. height: 100%;
  452. margin: 0;
  453. border-radius: 50%;
  454. border: 4px solid lighten($ui-base-color, 4%);
  455. background: darken($ui-base-color, 8%);
  456. }
  457. }
  458. @media screen and (max-width: 600px) {
  459. margin-top: 0;
  460. background: lighten($ui-base-color, 4%);
  461. border-radius: 0 0 4px 4px;
  462. padding: 5px;
  463. &::before {
  464. display: none;
  465. }
  466. .avatar {
  467. width: 48px;
  468. height: 48px;
  469. padding: 7px 0;
  470. padding-left: 10px;
  471. img {
  472. border: 0;
  473. border-radius: 4px;
  474. }
  475. @media screen and (max-width: 360px) {
  476. display: none;
  477. }
  478. }
  479. }
  480. @media screen and (max-width: $no-gap-breakpoint) {
  481. border-radius: 0;
  482. }
  483. @media screen and (max-width: $no-columns-breakpoint) {
  484. flex-wrap: wrap;
  485. }
  486. }
  487. &__tabs {
  488. flex: 1 1 auto;
  489. margin-left: 20px;
  490. &__name {
  491. padding-top: 20px;
  492. padding-bottom: 8px;
  493. h1 {
  494. font-size: 20px;
  495. line-height: 18px * 1.5;
  496. color: $primary-text-color;
  497. font-weight: 500;
  498. overflow: hidden;
  499. white-space: nowrap;
  500. text-overflow: ellipsis;
  501. text-shadow: 1px 1px 1px $base-shadow-color;
  502. small {
  503. display: block;
  504. font-size: 14px;
  505. color: $primary-text-color;
  506. font-weight: 400;
  507. overflow: hidden;
  508. text-overflow: ellipsis;
  509. }
  510. }
  511. }
  512. @media screen and (max-width: 600px) {
  513. margin-left: 15px;
  514. display: flex;
  515. justify-content: space-between;
  516. align-items: center;
  517. &__name {
  518. padding-top: 0;
  519. padding-bottom: 0;
  520. h1 {
  521. font-size: 16px;
  522. line-height: 24px;
  523. text-shadow: none;
  524. small {
  525. color: $darker-text-color;
  526. }
  527. }
  528. }
  529. }
  530. &__tabs {
  531. display: flex;
  532. justify-content: flex-start;
  533. align-items: stretch;
  534. height: 58px;
  535. .details-counters {
  536. display: flex;
  537. flex-direction: row;
  538. min-width: 300px;
  539. }
  540. @media screen and (max-width: $no-columns-breakpoint) {
  541. .details-counters {
  542. display: none;
  543. }
  544. }
  545. .counter {
  546. min-width: 33.3%;
  547. box-sizing: border-box;
  548. flex: 0 0 auto;
  549. color: $darker-text-color;
  550. padding: 10px;
  551. border-right: 1px solid lighten($ui-base-color, 4%);
  552. cursor: default;
  553. text-align: center;
  554. position: relative;
  555. a {
  556. display: block;
  557. }
  558. &:last-child {
  559. border-right: 0;
  560. }
  561. &::after {
  562. display: block;
  563. content: "";
  564. position: absolute;
  565. bottom: 0;
  566. left: 0;
  567. width: 100%;
  568. border-bottom: 4px solid $ui-primary-color;
  569. opacity: 0.5;
  570. transition: all 400ms ease;
  571. }
  572. &.active {
  573. &::after {
  574. border-bottom: 4px solid $highlight-text-color;
  575. opacity: 1;
  576. }
  577. &.inactive::after {
  578. border-bottom-color: $secondary-text-color;
  579. }
  580. }
  581. &:hover {
  582. &::after {
  583. opacity: 1;
  584. transition-duration: 100ms;
  585. }
  586. }
  587. a {
  588. text-decoration: none;
  589. color: inherit;
  590. }
  591. .counter-label {
  592. font-size: 12px;
  593. display: block;
  594. }
  595. .counter-number {
  596. font-weight: 500;
  597. font-size: 18px;
  598. margin-bottom: 5px;
  599. color: $primary-text-color;
  600. font-family: $font-display, sans-serif;
  601. }
  602. }
  603. .spacer {
  604. flex: 1 1 auto;
  605. height: 1px;
  606. }
  607. &__buttons {
  608. padding: 7px 8px;
  609. }
  610. }
  611. }
  612. &__extra {
  613. display: none;
  614. margin-top: 4px;
  615. .public-account-bio {
  616. border-radius: 0;
  617. box-shadow: none;
  618. background: transparent;
  619. margin: 0 -5px;
  620. .account__header__fields {
  621. border-top: 1px solid lighten($ui-base-color, 12%);
  622. }
  623. .roles {
  624. display: none;
  625. }
  626. }
  627. &__links {
  628. margin-top: -15px;
  629. font-size: 14px;
  630. color: $darker-text-color;
  631. a {
  632. display: inline-block;
  633. color: $darker-text-color;
  634. text-decoration: none;
  635. padding: 15px;
  636. font-weight: 500;
  637. strong {
  638. font-weight: 700;
  639. color: $primary-text-color;
  640. }
  641. }
  642. }
  643. @media screen and (max-width: $no-columns-breakpoint) {
  644. display: block;
  645. flex: 100%;
  646. }
  647. }
  648. }
  649. .account__section-headline {
  650. border-radius: 4px 4px 0 0;
  651. @media screen and (max-width: $no-gap-breakpoint) {
  652. border-radius: 0;
  653. }
  654. }
  655. .detailed-status__meta {
  656. margin-top: 25px;
  657. }
  658. .public-account-bio {
  659. background: lighten($ui-base-color, 8%);
  660. box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
  661. border-radius: 4px;
  662. overflow: hidden;
  663. margin-bottom: 10px;
  664. @media screen and (max-width: $no-gap-breakpoint) {
  665. box-shadow: none;
  666. margin-bottom: 0;
  667. border-radius: 0;
  668. }
  669. .account__header__fields {
  670. margin: 0;
  671. border-top: 0;
  672. a {
  673. color: lighten($ui-highlight-color, 8%);
  674. }
  675. dl:first-child .verified {
  676. border-radius: 0 4px 0 0;
  677. }
  678. .verified a {
  679. color: $valid-value-color;
  680. }
  681. }
  682. .account__header__content {
  683. padding: 20px;
  684. padding-bottom: 0;
  685. color: $primary-text-color;
  686. }
  687. &__extra,
  688. .roles {
  689. padding: 20px;
  690. font-size: 14px;
  691. color: $darker-text-color;
  692. }
  693. .roles {
  694. padding-bottom: 0;
  695. }
  696. }
  697. .directory__list {
  698. display: grid;
  699. grid-gap: 10px;
  700. grid-template-columns: minmax(0, 50%) minmax(0, 50%);
  701. @media screen and (max-width: $no-gap-breakpoint) {
  702. display: block;
  703. }
  704. .icon-button {
  705. font-size: 18px;
  706. }
  707. }
  708. .directory__card {
  709. margin-bottom: 0;
  710. }
  711. .card-grid {
  712. display: flex;
  713. flex-wrap: wrap;
  714. min-width: 100%;
  715. margin: 0 -5px;
  716. & > div {
  717. box-sizing: border-box;
  718. flex: 1 0 auto;
  719. width: 300px;
  720. padding: 0 5px;
  721. margin-bottom: 10px;
  722. max-width: 33.333%;
  723. @media screen and (max-width: 900px) {
  724. max-width: 50%;
  725. }
  726. @media screen and (max-width: 600px) {
  727. max-width: 100%;
  728. }
  729. }
  730. @media screen and (max-width: $no-gap-breakpoint) {
  731. margin: 0;
  732. border-top: 1px solid lighten($ui-base-color, 8%);
  733. & > div {
  734. width: 100%;
  735. padding: 0;
  736. margin-bottom: 0;
  737. border-bottom: 1px solid lighten($ui-base-color, 8%);
  738. &:last-child {
  739. border-bottom: 0;
  740. }
  741. .card__bar {
  742. background: $ui-base-color;
  743. &:hover,
  744. &:active,
  745. &:focus {
  746. background: lighten($ui-base-color, 4%);
  747. }
  748. }
  749. }
  750. }
  751. }
  752. }