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.

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