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.

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