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.

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