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.

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