The code powering m.abunchtell.com https://m.abunchtell.com
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.
 
 
 
 

809 line
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: '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. &.inactive {
  294. opacity: 0.5;
  295. .public-account-header__image,
  296. .avatar {
  297. filter: grayscale(100%);
  298. }
  299. .logo-button {
  300. background-color: $secondary-text-color;
  301. svg path:last-child {
  302. fill: $secondary-text-color;
  303. }
  304. }
  305. }
  306. &__image {
  307. border-radius: 4px 4px 0 0;
  308. overflow: hidden;
  309. height: 300px;
  310. position: relative;
  311. background: darken($ui-base-color, 12%);
  312. &::after {
  313. content: "";
  314. display: block;
  315. position: absolute;
  316. width: 100%;
  317. height: 100%;
  318. box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);
  319. top: 0;
  320. left: 0;
  321. }
  322. img {
  323. object-fit: cover;
  324. display: block;
  325. width: 100%;
  326. height: 100%;
  327. margin: 0;
  328. border-radius: 4px 4px 0 0;
  329. }
  330. @media screen and (max-width: 600px) {
  331. height: 200px;
  332. }
  333. }
  334. &--no-bar {
  335. margin-bottom: 0;
  336. .public-account-header__image,
  337. .public-account-header__image img {
  338. border-radius: 4px;
  339. @media screen and (max-width: $no-gap-breakpoint) {
  340. border-radius: 0;
  341. }
  342. }
  343. }
  344. @media screen and (max-width: $no-gap-breakpoint) {
  345. margin-bottom: 0;
  346. box-shadow: none;
  347. &__image::after {
  348. display: none;
  349. }
  350. &__image,
  351. &__image img {
  352. border-radius: 0;
  353. }
  354. }
  355. &__bar {
  356. position: relative;
  357. margin-top: -80px;
  358. display: flex;
  359. justify-content: flex-start;
  360. &::before {
  361. content: "";
  362. display: block;
  363. background: lighten($ui-base-color, 4%);
  364. position: absolute;
  365. bottom: 0;
  366. left: 0;
  367. right: 0;
  368. height: 60px;
  369. border-radius: 0 0 4px 4px;
  370. z-index: -1;
  371. }
  372. .avatar {
  373. display: block;
  374. width: 120px;
  375. height: 120px;
  376. padding-left: 20px - 4px;
  377. flex: 0 0 auto;
  378. img {
  379. display: block;
  380. width: 100%;
  381. height: 100%;
  382. margin: 0;
  383. border-radius: 50%;
  384. border: 4px solid lighten($ui-base-color, 4%);
  385. background: darken($ui-base-color, 8%);
  386. }
  387. }
  388. @media screen and (max-width: 600px) {
  389. margin-top: 0;
  390. background: lighten($ui-base-color, 4%);
  391. border-radius: 0 0 4px 4px;
  392. padding: 5px;
  393. &::before {
  394. display: none;
  395. }
  396. .avatar {
  397. width: 48px;
  398. height: 48px;
  399. padding: 7px 0;
  400. padding-left: 10px;
  401. img {
  402. border: 0;
  403. border-radius: 4px;
  404. }
  405. @media screen and (max-width: 360px) {
  406. display: none;
  407. }
  408. }
  409. }
  410. @media screen and (max-width: $no-gap-breakpoint) {
  411. border-radius: 0;
  412. }
  413. @media screen and (max-width: $no-columns-breakpoint) {
  414. flex-wrap: wrap;
  415. }
  416. }
  417. &__tabs {
  418. flex: 1 1 auto;
  419. margin-left: 20px;
  420. &__name {
  421. padding-top: 20px;
  422. padding-bottom: 8px;
  423. h1 {
  424. font-size: 20px;
  425. line-height: 18px * 1.5;
  426. color: $primary-text-color;
  427. font-weight: 500;
  428. overflow: hidden;
  429. white-space: nowrap;
  430. text-overflow: ellipsis;
  431. text-shadow: 1px 1px 1px $base-shadow-color;
  432. small {
  433. display: block;
  434. font-size: 14px;
  435. color: $primary-text-color;
  436. font-weight: 400;
  437. overflow: hidden;
  438. text-overflow: ellipsis;
  439. }
  440. }
  441. }
  442. @media screen and (max-width: 600px) {
  443. margin-left: 15px;
  444. display: flex;
  445. justify-content: space-between;
  446. align-items: center;
  447. &__name {
  448. padding-top: 0;
  449. padding-bottom: 0;
  450. h1 {
  451. font-size: 16px;
  452. line-height: 24px;
  453. text-shadow: none;
  454. small {
  455. color: $darker-text-color;
  456. }
  457. }
  458. }
  459. }
  460. &__tabs {
  461. display: flex;
  462. justify-content: flex-start;
  463. align-items: stretch;
  464. height: 58px;
  465. .details-counters {
  466. display: flex;
  467. flex-direction: row;
  468. min-width: 300px;
  469. }
  470. @media screen and (max-width: $no-columns-breakpoint) {
  471. .details-counters {
  472. display: none;
  473. }
  474. }
  475. .counter {
  476. width: 33.3%;
  477. box-sizing: border-box;
  478. flex: 0 0 auto;
  479. color: $darker-text-color;
  480. padding: 10px;
  481. border-right: 1px solid lighten($ui-base-color, 4%);
  482. cursor: default;
  483. text-align: center;
  484. position: relative;
  485. a {
  486. display: block;
  487. }
  488. &:last-child {
  489. border-right: 0;
  490. }
  491. &::after {
  492. display: block;
  493. content: "";
  494. position: absolute;
  495. bottom: 0;
  496. left: 0;
  497. width: 100%;
  498. border-bottom: 4px solid $ui-primary-color;
  499. opacity: 0.5;
  500. transition: all 400ms ease;
  501. }
  502. &.active {
  503. &::after {
  504. border-bottom: 4px solid $highlight-text-color;
  505. opacity: 1;
  506. }
  507. &.inactive::after {
  508. border-bottom-color: $secondary-text-color;
  509. }
  510. }
  511. &:hover {
  512. &::after {
  513. opacity: 1;
  514. transition-duration: 100ms;
  515. }
  516. }
  517. a {
  518. text-decoration: none;
  519. color: inherit;
  520. }
  521. .counter-label {
  522. font-size: 12px;
  523. display: block;
  524. }
  525. .counter-number {
  526. font-weight: 500;
  527. font-size: 18px;
  528. margin-bottom: 5px;
  529. color: $primary-text-color;
  530. font-family: 'mastodon-font-display', sans-serif;
  531. }
  532. }
  533. .spacer {
  534. flex: 1 1 auto;
  535. height: 1px;
  536. }
  537. &__buttons {
  538. padding: 7px 8px;
  539. }
  540. }
  541. }
  542. &__extra {
  543. display: none;
  544. margin-top: 4px;
  545. .public-account-bio {
  546. border-radius: 0;
  547. box-shadow: none;
  548. background: transparent;
  549. margin: 0 -5px;
  550. .account__header__fields {
  551. border-top: 1px solid lighten($ui-base-color, 12%);
  552. }
  553. .roles {
  554. display: none;
  555. }
  556. }
  557. &__links {
  558. margin-top: -15px;
  559. font-size: 14px;
  560. color: $darker-text-color;
  561. a {
  562. display: inline-block;
  563. color: $darker-text-color;
  564. text-decoration: none;
  565. padding: 15px;
  566. strong {
  567. font-weight: 700;
  568. color: $primary-text-color;
  569. }
  570. }
  571. }
  572. @media screen and (max-width: $no-columns-breakpoint) {
  573. display: block;
  574. flex: 100%;
  575. }
  576. }
  577. }
  578. .account__section-headline {
  579. border-radius: 4px 4px 0 0;
  580. @media screen and (max-width: $no-gap-breakpoint) {
  581. border-radius: 0;
  582. }
  583. }
  584. .detailed-status__meta {
  585. margin-top: 25px;
  586. }
  587. .public-account-bio {
  588. background: lighten($ui-base-color, 8%);
  589. box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
  590. border-radius: 4px;
  591. overflow: hidden;
  592. margin-bottom: 10px;
  593. @media screen and (max-width: $no-gap-breakpoint) {
  594. box-shadow: none;
  595. margin-bottom: 0;
  596. border-radius: 0;
  597. }
  598. .account__header__fields {
  599. margin: 0;
  600. border-top: 0;
  601. a {
  602. color: lighten($ui-highlight-color, 8%);
  603. }
  604. dl:first-child .verified {
  605. border-radius: 0 4px 0 0;
  606. }
  607. .verified a {
  608. color: $valid-value-color;
  609. }
  610. }
  611. .account__header__content {
  612. padding: 20px;
  613. padding-bottom: 0;
  614. color: $primary-text-color;
  615. }
  616. &__extra,
  617. .roles {
  618. padding: 20px;
  619. font-size: 14px;
  620. color: $darker-text-color;
  621. }
  622. .roles {
  623. padding-bottom: 0;
  624. }
  625. }
  626. .static-icon-button {
  627. color: $action-button-color;
  628. font-size: 18px;
  629. & > span {
  630. font-size: 14px;
  631. font-weight: 500;
  632. }
  633. }
  634. .card-grid {
  635. display: flex;
  636. flex-wrap: wrap;
  637. min-width: 100%;
  638. margin: 0 -5px;
  639. & > div {
  640. box-sizing: border-box;
  641. flex: 1 0 auto;
  642. width: 300px;
  643. padding: 0 5px;
  644. margin-bottom: 10px;
  645. max-width: 33.333%;
  646. @media screen and (max-width: 900px) {
  647. max-width: 50%;
  648. }
  649. @media screen and (max-width: 600px) {
  650. max-width: 100%;
  651. }
  652. }
  653. @media screen and (max-width: $no-gap-breakpoint) {
  654. margin: 0;
  655. border-top: 1px solid lighten($ui-base-color, 8%);
  656. & > div {
  657. width: 100%;
  658. padding: 0;
  659. margin-bottom: 0;
  660. border-bottom: 1px solid lighten($ui-base-color, 8%);
  661. &:last-child {
  662. border-bottom: 0;
  663. }
  664. .card__bar {
  665. background: $ui-base-color;
  666. &:hover,
  667. &:active,
  668. &:focus {
  669. background: lighten($ui-base-color, 4%);
  670. }
  671. }
  672. }
  673. }
  674. }
  675. }