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.

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