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.

899 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. &__image {
  373. border-radius: 4px 4px 0 0;
  374. overflow: hidden;
  375. height: 300px;
  376. position: relative;
  377. background: darken($ui-base-color, 12%);
  378. &::after {
  379. content: "";
  380. display: block;
  381. position: absolute;
  382. width: 100%;
  383. height: 100%;
  384. box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);
  385. top: 0;
  386. left: 0;
  387. }
  388. img {
  389. object-fit: cover;
  390. display: block;
  391. width: 100%;
  392. height: 100%;
  393. margin: 0;
  394. border-radius: 4px 4px 0 0;
  395. }
  396. @media screen and (max-width: 600px) {
  397. height: 200px;
  398. }
  399. }
  400. &--no-bar {
  401. margin-bottom: 0;
  402. .public-account-header__image,
  403. .public-account-header__image img {
  404. border-radius: 4px;
  405. @media screen and (max-width: $no-gap-breakpoint) {
  406. border-radius: 0;
  407. }
  408. }
  409. }
  410. @media screen and (max-width: $no-gap-breakpoint) {
  411. margin-bottom: 0;
  412. box-shadow: none;
  413. &__image::after {
  414. display: none;
  415. }
  416. &__image,
  417. &__image img {
  418. border-radius: 0;
  419. }
  420. }
  421. &__bar {
  422. position: relative;
  423. margin-top: -80px;
  424. display: flex;
  425. justify-content: flex-start;
  426. &::before {
  427. content: "";
  428. display: block;
  429. background: lighten($ui-base-color, 4%);
  430. position: absolute;
  431. bottom: 0;
  432. left: 0;
  433. right: 0;
  434. height: 60px;
  435. border-radius: 0 0 4px 4px;
  436. z-index: -1;
  437. }
  438. .avatar {
  439. display: block;
  440. width: 120px;
  441. height: 120px;
  442. padding-left: 20px - 4px;
  443. flex: 0 0 auto;
  444. img {
  445. display: block;
  446. width: 100%;
  447. height: 100%;
  448. margin: 0;
  449. border-radius: 50%;
  450. border: 4px solid lighten($ui-base-color, 4%);
  451. background: darken($ui-base-color, 8%);
  452. }
  453. }
  454. @media screen and (max-width: 600px) {
  455. margin-top: 0;
  456. background: lighten($ui-base-color, 4%);
  457. border-radius: 0 0 4px 4px;
  458. padding: 5px;
  459. &::before {
  460. display: none;
  461. }
  462. .avatar {
  463. width: 48px;
  464. height: 48px;
  465. padding: 7px 0;
  466. padding-left: 10px;
  467. img {
  468. border: 0;
  469. border-radius: 4px;
  470. }
  471. @media screen and (max-width: 360px) {
  472. display: none;
  473. }
  474. }
  475. }
  476. @media screen and (max-width: $no-gap-breakpoint) {
  477. border-radius: 0;
  478. }
  479. @media screen and (max-width: $no-columns-breakpoint) {
  480. flex-wrap: wrap;
  481. }
  482. }
  483. &__tabs {
  484. flex: 1 1 auto;
  485. margin-left: 20px;
  486. &__name {
  487. padding-top: 20px;
  488. padding-bottom: 8px;
  489. h1 {
  490. font-size: 20px;
  491. line-height: 18px * 1.5;
  492. color: $primary-text-color;
  493. font-weight: 500;
  494. overflow: hidden;
  495. white-space: nowrap;
  496. text-overflow: ellipsis;
  497. text-shadow: 1px 1px 1px $base-shadow-color;
  498. small {
  499. display: block;
  500. font-size: 14px;
  501. color: $primary-text-color;
  502. font-weight: 400;
  503. overflow: hidden;
  504. text-overflow: ellipsis;
  505. }
  506. }
  507. }
  508. @media screen and (max-width: 600px) {
  509. margin-left: 15px;
  510. display: flex;
  511. justify-content: space-between;
  512. align-items: center;
  513. &__name {
  514. padding-top: 0;
  515. padding-bottom: 0;
  516. h1 {
  517. font-size: 16px;
  518. line-height: 24px;
  519. text-shadow: none;
  520. small {
  521. color: $darker-text-color;
  522. }
  523. }
  524. }
  525. }
  526. &__tabs {
  527. display: flex;
  528. justify-content: flex-start;
  529. align-items: stretch;
  530. height: 58px;
  531. .details-counters {
  532. display: flex;
  533. flex-direction: row;
  534. min-width: 300px;
  535. }
  536. @media screen and (max-width: $no-columns-breakpoint) {
  537. .details-counters {
  538. display: none;
  539. }
  540. }
  541. .counter {
  542. width: 33.3%;
  543. box-sizing: border-box;
  544. flex: 0 0 auto;
  545. color: $darker-text-color;
  546. padding: 10px;
  547. border-right: 1px solid lighten($ui-base-color, 4%);
  548. cursor: default;
  549. text-align: center;
  550. position: relative;
  551. a {
  552. display: block;
  553. }
  554. &:last-child {
  555. border-right: 0;
  556. }
  557. &::after {
  558. display: block;
  559. content: "";
  560. position: absolute;
  561. bottom: 0;
  562. left: 0;
  563. width: 100%;
  564. border-bottom: 4px solid $ui-primary-color;
  565. opacity: 0.5;
  566. transition: all 400ms ease;
  567. }
  568. &.active {
  569. &::after {
  570. border-bottom: 4px solid $highlight-text-color;
  571. opacity: 1;
  572. }
  573. &.inactive::after {
  574. border-bottom-color: $secondary-text-color;
  575. }
  576. }
  577. &:hover {
  578. &::after {
  579. opacity: 1;
  580. transition-duration: 100ms;
  581. }
  582. }
  583. a {
  584. text-decoration: none;
  585. color: inherit;
  586. }
  587. .counter-label {
  588. font-size: 12px;
  589. display: block;
  590. }
  591. .counter-number {
  592. font-weight: 500;
  593. font-size: 18px;
  594. margin-bottom: 5px;
  595. color: $primary-text-color;
  596. font-family: $font-display, sans-serif;
  597. }
  598. }
  599. .spacer {
  600. flex: 1 1 auto;
  601. height: 1px;
  602. }
  603. &__buttons {
  604. padding: 7px 8px;
  605. }
  606. }
  607. }
  608. &__extra {
  609. display: none;
  610. margin-top: 4px;
  611. .public-account-bio {
  612. border-radius: 0;
  613. box-shadow: none;
  614. background: transparent;
  615. margin: 0 -5px;
  616. .account__header__fields {
  617. border-top: 1px solid lighten($ui-base-color, 12%);
  618. }
  619. .roles {
  620. display: none;
  621. }
  622. }
  623. &__links {
  624. margin-top: -15px;
  625. font-size: 14px;
  626. color: $darker-text-color;
  627. a {
  628. display: inline-block;
  629. color: $darker-text-color;
  630. text-decoration: none;
  631. padding: 15px;
  632. font-weight: 500;
  633. strong {
  634. font-weight: 700;
  635. color: $primary-text-color;
  636. }
  637. }
  638. }
  639. @media screen and (max-width: $no-columns-breakpoint) {
  640. display: block;
  641. flex: 100%;
  642. }
  643. }
  644. }
  645. .account__section-headline {
  646. border-radius: 4px 4px 0 0;
  647. @media screen and (max-width: $no-gap-breakpoint) {
  648. border-radius: 0;
  649. }
  650. }
  651. .detailed-status__meta {
  652. margin-top: 25px;
  653. }
  654. .public-account-bio {
  655. background: lighten($ui-base-color, 8%);
  656. box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
  657. border-radius: 4px;
  658. overflow: hidden;
  659. margin-bottom: 10px;
  660. @media screen and (max-width: $no-gap-breakpoint) {
  661. box-shadow: none;
  662. margin-bottom: 0;
  663. border-radius: 0;
  664. }
  665. .account__header__fields {
  666. margin: 0;
  667. border-top: 0;
  668. a {
  669. color: lighten($ui-highlight-color, 8%);
  670. }
  671. dl:first-child .verified {
  672. border-radius: 0 4px 0 0;
  673. }
  674. .verified a {
  675. color: $valid-value-color;
  676. }
  677. }
  678. .account__header__content {
  679. padding: 20px;
  680. padding-bottom: 0;
  681. color: $primary-text-color;
  682. }
  683. &__extra,
  684. .roles {
  685. padding: 20px;
  686. font-size: 14px;
  687. color: $darker-text-color;
  688. }
  689. .roles {
  690. padding-bottom: 0;
  691. }
  692. }
  693. .directory__list {
  694. display: grid;
  695. grid-gap: 10px;
  696. grid-template-columns: minmax(0, 50%) minmax(0, 50%);
  697. @media screen and (max-width: $no-gap-breakpoint) {
  698. display: block;
  699. }
  700. .icon-button {
  701. font-size: 18px;
  702. }
  703. }
  704. .directory__card {
  705. margin-bottom: 0;
  706. }
  707. .card-grid {
  708. display: flex;
  709. flex-wrap: wrap;
  710. min-width: 100%;
  711. margin: 0 -5px;
  712. & > div {
  713. box-sizing: border-box;
  714. flex: 1 0 auto;
  715. width: 300px;
  716. padding: 0 5px;
  717. margin-bottom: 10px;
  718. max-width: 33.333%;
  719. @media screen and (max-width: 900px) {
  720. max-width: 50%;
  721. }
  722. @media screen and (max-width: 600px) {
  723. max-width: 100%;
  724. }
  725. }
  726. @media screen and (max-width: $no-gap-breakpoint) {
  727. margin: 0;
  728. border-top: 1px solid lighten($ui-base-color, 8%);
  729. & > div {
  730. width: 100%;
  731. padding: 0;
  732. margin-bottom: 0;
  733. border-bottom: 1px solid lighten($ui-base-color, 8%);
  734. &:last-child {
  735. border-bottom: 0;
  736. }
  737. .card__bar {
  738. background: $ui-base-color;
  739. &:hover,
  740. &:active,
  741. &:focus {
  742. background: lighten($ui-base-color, 4%);
  743. }
  744. }
  745. }
  746. }
  747. }
  748. }