A fork of Glitch Social, a fork of Mastodon.
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.

6844 lines
116KB

  1. .app-body {
  2. -webkit-overflow-scrolling: touch;
  3. -ms-overflow-style: -ms-autohiding-scrollbar;
  4. }
  5. .animated-number {
  6. display: inline-flex;
  7. flex-direction: column;
  8. align-items: stretch;
  9. overflow: hidden;
  10. position: relative;
  11. }
  12. .link-button {
  13. display: block;
  14. font-size: 15px;
  15. line-height: 20px;
  16. color: $ui-highlight-color;
  17. border: 0;
  18. background: transparent;
  19. padding: 0;
  20. cursor: pointer;
  21. &:hover,
  22. &:active {
  23. text-decoration: underline;
  24. }
  25. &:disabled {
  26. color: $ui-primary-color;
  27. cursor: default;
  28. }
  29. }
  30. .button {
  31. background-color: $ui-highlight-color;
  32. border: 10px none;
  33. border-radius: 4px;
  34. box-sizing: border-box;
  35. color: $primary-text-color;
  36. cursor: pointer;
  37. display: inline-block;
  38. font-family: inherit;
  39. font-size: 14px;
  40. font-weight: 500;
  41. height: 36px;
  42. letter-spacing: 0;
  43. line-height: 36px;
  44. overflow: hidden;
  45. padding: 0 16px;
  46. position: relative;
  47. text-align: center;
  48. text-transform: uppercase;
  49. text-decoration: none;
  50. text-overflow: ellipsis;
  51. transition: all 100ms ease-in;
  52. white-space: nowrap;
  53. width: auto;
  54. &:active,
  55. &:focus,
  56. &:hover {
  57. background-color: lighten($ui-highlight-color, 10%);
  58. transition: all 200ms ease-out;
  59. }
  60. &--destructive {
  61. transition: none;
  62. &:active,
  63. &:focus,
  64. &:hover {
  65. background-color: $error-red;
  66. transition: none;
  67. }
  68. }
  69. &:disabled,
  70. &.disabled {
  71. background-color: $ui-primary-color;
  72. cursor: default;
  73. }
  74. &::-moz-focus-inner {
  75. border: 0;
  76. }
  77. &::-moz-focus-inner,
  78. &:focus,
  79. &:active {
  80. outline: 0 !important;
  81. }
  82. &.button-primary,
  83. &.button-alternative,
  84. &.button-secondary,
  85. &.button-alternative-2 {
  86. font-size: 16px;
  87. line-height: 36px;
  88. height: auto;
  89. text-transform: none;
  90. padding: 4px 16px;
  91. }
  92. &.button-alternative {
  93. color: $inverted-text-color;
  94. background: $ui-primary-color;
  95. &:active,
  96. &:focus,
  97. &:hover {
  98. background-color: lighten($ui-primary-color, 4%);
  99. }
  100. }
  101. &.button-alternative-2 {
  102. background: $ui-base-lighter-color;
  103. &:active,
  104. &:focus,
  105. &:hover {
  106. background-color: lighten($ui-base-lighter-color, 4%);
  107. }
  108. }
  109. &.button-secondary {
  110. color: $darker-text-color;
  111. background: transparent;
  112. padding: 3px 15px;
  113. border: 1px solid $ui-primary-color;
  114. &:active,
  115. &:focus,
  116. &:hover {
  117. border-color: lighten($ui-primary-color, 4%);
  118. color: lighten($darker-text-color, 4%);
  119. }
  120. &:disabled {
  121. opacity: 0.5;
  122. }
  123. }
  124. &.button--block {
  125. display: block;
  126. width: 100%;
  127. }
  128. }
  129. .column__wrapper {
  130. display: flex;
  131. flex: 1 1 auto;
  132. position: relative;
  133. }
  134. .icon-button {
  135. display: inline-block;
  136. padding: 0;
  137. color: $action-button-color;
  138. border: 0;
  139. border-radius: 4px;
  140. background: transparent;
  141. cursor: pointer;
  142. transition: all 100ms ease-in;
  143. transition-property: background-color, color;
  144. &:hover,
  145. &:active,
  146. &:focus {
  147. color: lighten($action-button-color, 7%);
  148. background-color: rgba($action-button-color, 0.15);
  149. transition: all 200ms ease-out;
  150. transition-property: background-color, color;
  151. }
  152. &:focus {
  153. background-color: rgba($action-button-color, 0.3);
  154. }
  155. &.disabled {
  156. color: darken($action-button-color, 13%);
  157. background-color: transparent;
  158. cursor: default;
  159. }
  160. &.active {
  161. color: $highlight-text-color;
  162. }
  163. &::-moz-focus-inner {
  164. border: 0;
  165. }
  166. &::-moz-focus-inner,
  167. &:focus,
  168. &:active {
  169. outline: 0 !important;
  170. }
  171. &.inverted {
  172. color: $lighter-text-color;
  173. &:hover,
  174. &:active,
  175. &:focus {
  176. color: darken($lighter-text-color, 7%);
  177. background-color: rgba($lighter-text-color, 0.15);
  178. }
  179. &:focus {
  180. background-color: rgba($lighter-text-color, 0.3);
  181. }
  182. &.disabled {
  183. color: lighten($lighter-text-color, 7%);
  184. background-color: transparent;
  185. }
  186. &.active {
  187. color: $highlight-text-color;
  188. &.disabled {
  189. color: lighten($highlight-text-color, 13%);
  190. }
  191. }
  192. }
  193. &.overlayed {
  194. box-sizing: content-box;
  195. background: rgba($base-overlay-background, 0.6);
  196. color: rgba($primary-text-color, 0.7);
  197. border-radius: 4px;
  198. padding: 2px;
  199. &:hover {
  200. background: rgba($base-overlay-background, 0.9);
  201. }
  202. }
  203. }
  204. .text-icon-button {
  205. color: $lighter-text-color;
  206. border: 0;
  207. border-radius: 4px;
  208. background: transparent;
  209. cursor: pointer;
  210. font-weight: 600;
  211. font-size: 11px;
  212. padding: 0 3px;
  213. line-height: 27px;
  214. outline: 0;
  215. transition: all 100ms ease-in;
  216. transition-property: background-color, color;
  217. &:hover,
  218. &:active,
  219. &:focus {
  220. color: darken($lighter-text-color, 7%);
  221. background-color: rgba($lighter-text-color, 0.15);
  222. transition: all 200ms ease-out;
  223. transition-property: background-color, color;
  224. }
  225. &:focus {
  226. background-color: rgba($lighter-text-color, 0.3);
  227. }
  228. &.disabled {
  229. color: lighten($lighter-text-color, 20%);
  230. background-color: transparent;
  231. cursor: default;
  232. }
  233. &.active {
  234. color: $highlight-text-color;
  235. }
  236. &::-moz-focus-inner {
  237. border: 0;
  238. }
  239. &::-moz-focus-inner,
  240. &:focus,
  241. &:active {
  242. outline: 0 !important;
  243. }
  244. }
  245. .dropdown-menu {
  246. position: absolute;
  247. }
  248. .invisible {
  249. font-size: 0;
  250. line-height: 0;
  251. display: inline-block;
  252. width: 0;
  253. height: 0;
  254. position: absolute;
  255. img,
  256. svg {
  257. margin: 0 !important;
  258. border: 0 !important;
  259. padding: 0 !important;
  260. width: 0 !important;
  261. height: 0 !important;
  262. }
  263. }
  264. .ellipsis {
  265. &::after {
  266. content: "…";
  267. }
  268. }
  269. .compose-form {
  270. padding: 10px;
  271. &__sensitive-button {
  272. padding: 10px;
  273. padding-top: 0;
  274. font-size: 14px;
  275. font-weight: 500;
  276. &.active {
  277. color: $highlight-text-color;
  278. }
  279. input[type=checkbox] {
  280. display: none;
  281. }
  282. .checkbox {
  283. display: inline-block;
  284. position: relative;
  285. border: 1px solid $ui-primary-color;
  286. box-sizing: border-box;
  287. width: 18px;
  288. height: 18px;
  289. flex: 0 0 auto;
  290. margin-right: 10px;
  291. top: -1px;
  292. border-radius: 4px;
  293. vertical-align: middle;
  294. &.active {
  295. border-color: $highlight-text-color;
  296. background: $highlight-text-color;
  297. }
  298. }
  299. }
  300. .compose-form__warning {
  301. color: $inverted-text-color;
  302. margin-bottom: 10px;
  303. background: $ui-primary-color;
  304. box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);
  305. padding: 8px 10px;
  306. border-radius: 4px;
  307. font-size: 13px;
  308. font-weight: 400;
  309. strong {
  310. color: $inverted-text-color;
  311. font-weight: 500;
  312. @each $lang in $cjk-langs {
  313. &:lang(#{$lang}) {
  314. font-weight: 700;
  315. }
  316. }
  317. }
  318. a {
  319. color: $lighter-text-color;
  320. font-weight: 500;
  321. text-decoration: underline;
  322. &:hover,
  323. &:active,
  324. &:focus {
  325. text-decoration: none;
  326. }
  327. }
  328. }
  329. .emoji-picker-dropdown {
  330. position: absolute;
  331. top: 0;
  332. right: 0;
  333. }
  334. .compose-form__autosuggest-wrapper {
  335. position: relative;
  336. }
  337. .autosuggest-textarea,
  338. .autosuggest-input,
  339. .spoiler-input {
  340. position: relative;
  341. width: 100%;
  342. }
  343. .spoiler-input {
  344. height: 0;
  345. transform-origin: bottom;
  346. opacity: 0;
  347. &.spoiler-input--visible {
  348. height: 36px;
  349. margin-bottom: 11px;
  350. opacity: 1;
  351. }
  352. }
  353. .autosuggest-textarea__textarea,
  354. .spoiler-input__input {
  355. display: block;
  356. box-sizing: border-box;
  357. width: 100%;
  358. margin: 0;
  359. color: $inverted-text-color;
  360. background: $simple-background-color;
  361. padding: 10px;
  362. font-family: inherit;
  363. font-size: 14px;
  364. resize: vertical;
  365. border: 0;
  366. outline: 0;
  367. &::placeholder {
  368. color: $dark-text-color;
  369. }
  370. &:focus {
  371. outline: 0;
  372. }
  373. @media screen and (max-width: 600px) {
  374. font-size: 16px;
  375. }
  376. }
  377. .spoiler-input__input {
  378. border-radius: 4px;
  379. }
  380. .autosuggest-textarea__textarea {
  381. min-height: 100px;
  382. border-radius: 4px 4px 0 0;
  383. padding-bottom: 0;
  384. padding-right: 10px + 22px;
  385. resize: none;
  386. scrollbar-color: initial;
  387. &::-webkit-scrollbar {
  388. all: unset;
  389. }
  390. @media screen and (max-width: 600px) {
  391. height: 100px !important; // prevent auto-resize textarea
  392. resize: vertical;
  393. }
  394. }
  395. .autosuggest-textarea__suggestions-wrapper {
  396. position: relative;
  397. height: 0;
  398. }
  399. .autosuggest-textarea__suggestions {
  400. box-sizing: border-box;
  401. display: none;
  402. position: absolute;
  403. top: 100%;
  404. width: 100%;
  405. z-index: 99;
  406. box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);
  407. background: $ui-secondary-color;
  408. border-radius: 0 0 4px 4px;
  409. color: $inverted-text-color;
  410. font-size: 14px;
  411. padding: 6px;
  412. &.autosuggest-textarea__suggestions--visible {
  413. display: block;
  414. }
  415. }
  416. .autosuggest-textarea__suggestions__item {
  417. padding: 10px;
  418. cursor: pointer;
  419. border-radius: 4px;
  420. &:hover,
  421. &:focus,
  422. &:active,
  423. &.selected {
  424. background: darken($ui-secondary-color, 10%);
  425. }
  426. }
  427. .autosuggest-account,
  428. .autosuggest-emoji,
  429. .autosuggest-hashtag {
  430. display: flex;
  431. flex-direction: row;
  432. align-items: center;
  433. justify-content: flex-start;
  434. line-height: 18px;
  435. font-size: 14px;
  436. }
  437. .autosuggest-hashtag {
  438. justify-content: space-between;
  439. &__name {
  440. flex: 1 1 auto;
  441. overflow: hidden;
  442. text-overflow: ellipsis;
  443. white-space: nowrap;
  444. }
  445. strong {
  446. font-weight: 500;
  447. }
  448. &__uses {
  449. flex: 0 0 auto;
  450. text-align: right;
  451. overflow: hidden;
  452. text-overflow: ellipsis;
  453. white-space: nowrap;
  454. }
  455. }
  456. .autosuggest-account-icon,
  457. .autosuggest-emoji img {
  458. display: block;
  459. margin-right: 8px;
  460. width: 16px;
  461. height: 16px;
  462. }
  463. .autosuggest-account .display-name__account {
  464. color: $lighter-text-color;
  465. }
  466. .compose-form__modifiers {
  467. color: $inverted-text-color;
  468. font-family: inherit;
  469. font-size: 14px;
  470. background: $simple-background-color;
  471. .compose-form__upload-wrapper {
  472. overflow: hidden;
  473. }
  474. .compose-form__uploads-wrapper {
  475. display: flex;
  476. flex-direction: row;
  477. padding: 5px;
  478. flex-wrap: wrap;
  479. }
  480. .compose-form__upload {
  481. flex: 1 1 0;
  482. min-width: 40%;
  483. margin: 5px;
  484. &__actions {
  485. background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);
  486. display: flex;
  487. align-items: flex-start;
  488. justify-content: space-between;
  489. opacity: 0;
  490. transition: opacity .1s ease;
  491. .icon-button {
  492. flex: 0 1 auto;
  493. color: $secondary-text-color;
  494. font-size: 14px;
  495. font-weight: 500;
  496. padding: 10px;
  497. font-family: inherit;
  498. &:hover,
  499. &:focus,
  500. &:active {
  501. color: lighten($secondary-text-color, 7%);
  502. }
  503. }
  504. &.active {
  505. opacity: 1;
  506. }
  507. }
  508. &-description {
  509. position: absolute;
  510. z-index: 2;
  511. bottom: 0;
  512. left: 0;
  513. right: 0;
  514. box-sizing: border-box;
  515. background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);
  516. padding: 10px;
  517. opacity: 0;
  518. transition: opacity .1s ease;
  519. textarea {
  520. background: transparent;
  521. color: $secondary-text-color;
  522. border: 0;
  523. padding: 0;
  524. margin: 0;
  525. width: 100%;
  526. font-family: inherit;
  527. font-size: 14px;
  528. font-weight: 500;
  529. &:focus {
  530. color: $white;
  531. }
  532. &::placeholder {
  533. opacity: 0.75;
  534. color: $secondary-text-color;
  535. }
  536. }
  537. &.active {
  538. opacity: 1;
  539. }
  540. }
  541. }
  542. .compose-form__upload-thumbnail {
  543. border-radius: 4px;
  544. background-color: $base-shadow-color;
  545. background-position: center;
  546. background-size: cover;
  547. background-repeat: no-repeat;
  548. height: 140px;
  549. width: 100%;
  550. overflow: hidden;
  551. }
  552. }
  553. .compose-form__buttons-wrapper {
  554. padding: 10px;
  555. background: darken($simple-background-color, 8%);
  556. border-radius: 0 0 4px 4px;
  557. display: flex;
  558. justify-content: space-between;
  559. flex: 0 0 auto;
  560. .compose-form__buttons {
  561. display: flex;
  562. .compose-form__upload-button-icon {
  563. line-height: 27px;
  564. }
  565. .compose-form__sensitive-button {
  566. display: none;
  567. &.compose-form__sensitive-button--visible {
  568. display: block;
  569. }
  570. .compose-form__sensitive-button__icon {
  571. line-height: 27px;
  572. }
  573. }
  574. }
  575. .icon-button,
  576. .text-icon-button {
  577. box-sizing: content-box;
  578. padding: 0 3px;
  579. }
  580. .character-counter__wrapper {
  581. align-self: center;
  582. margin-right: 4px;
  583. }
  584. }
  585. .compose-form__publish {
  586. display: flex;
  587. justify-content: flex-end;
  588. min-width: 0;
  589. flex: 0 0 auto;
  590. .compose-form__publish-button-wrapper {
  591. overflow: hidden;
  592. padding-top: 10px;
  593. }
  594. }
  595. }
  596. .character-counter {
  597. cursor: default;
  598. font-family: $font-sans-serif, sans-serif;
  599. font-size: 14px;
  600. font-weight: 600;
  601. color: $lighter-text-color;
  602. &.character-counter--over {
  603. color: $warning-red;
  604. }
  605. }
  606. .no-reduce-motion .spoiler-input {
  607. transition: height 0.4s ease, opacity 0.4s ease;
  608. }
  609. .emojione {
  610. font-size: inherit;
  611. vertical-align: middle;
  612. object-fit: contain;
  613. margin: -.2ex .15em .2ex;
  614. width: 16px;
  615. height: 16px;
  616. img {
  617. width: auto;
  618. }
  619. }
  620. .reply-indicator {
  621. border-radius: 4px;
  622. margin-bottom: 10px;
  623. background: $ui-primary-color;
  624. padding: 10px;
  625. min-height: 23px;
  626. overflow-y: auto;
  627. flex: 0 2 auto;
  628. }
  629. .reply-indicator__header {
  630. margin-bottom: 5px;
  631. overflow: hidden;
  632. }
  633. .reply-indicator__cancel {
  634. float: right;
  635. line-height: 24px;
  636. }
  637. .reply-indicator__display-name {
  638. color: $inverted-text-color;
  639. display: block;
  640. max-width: 100%;
  641. line-height: 24px;
  642. overflow: hidden;
  643. padding-right: 25px;
  644. text-decoration: none;
  645. }
  646. .reply-indicator__display-avatar {
  647. float: left;
  648. margin-right: 5px;
  649. }
  650. .status__content--with-action {
  651. cursor: pointer;
  652. }
  653. .status__content,
  654. .reply-indicator__content {
  655. position: relative;
  656. font-size: 15px;
  657. line-height: 20px;
  658. word-wrap: break-word;
  659. font-weight: 400;
  660. overflow: hidden;
  661. text-overflow: ellipsis;
  662. padding-top: 2px;
  663. color: $primary-text-color;
  664. &:focus {
  665. outline: 0;
  666. }
  667. &.status__content--with-spoiler {
  668. white-space: normal;
  669. .status__content__text {
  670. white-space: pre-wrap;
  671. }
  672. }
  673. .emojione {
  674. width: 20px;
  675. height: 20px;
  676. margin: -3px 0 0;
  677. }
  678. p {
  679. margin-bottom: 20px;
  680. white-space: pre-wrap;
  681. &:last-child {
  682. margin-bottom: 0;
  683. }
  684. }
  685. a {
  686. color: $secondary-text-color;
  687. text-decoration: none;
  688. &:hover {
  689. text-decoration: underline;
  690. .fa {
  691. color: lighten($dark-text-color, 7%);
  692. }
  693. }
  694. &.mention {
  695. &:hover {
  696. text-decoration: none;
  697. span {
  698. text-decoration: underline;
  699. }
  700. }
  701. }
  702. .fa {
  703. color: $dark-text-color;
  704. }
  705. }
  706. a.unhandled-link {
  707. color: lighten($ui-highlight-color, 8%);
  708. }
  709. .status__content__spoiler-link {
  710. background: $action-button-color;
  711. &:hover {
  712. background: lighten($action-button-color, 7%);
  713. text-decoration: none;
  714. }
  715. &::-moz-focus-inner {
  716. border: 0;
  717. }
  718. &::-moz-focus-inner,
  719. &:focus,
  720. &:active {
  721. outline: 0 !important;
  722. }
  723. }
  724. .status__content__text {
  725. display: none;
  726. &.status__content__text--visible {
  727. display: block;
  728. }
  729. }
  730. }
  731. .announcements__item__content {
  732. word-wrap: break-word;
  733. overflow-y: auto;
  734. .emojione {
  735. width: 20px;
  736. height: 20px;
  737. margin: -3px 0 0;
  738. }
  739. p {
  740. margin-bottom: 10px;
  741. white-space: pre-wrap;
  742. &:last-child {
  743. margin-bottom: 0;
  744. }
  745. }
  746. a {
  747. color: $secondary-text-color;
  748. text-decoration: none;
  749. &:hover {
  750. text-decoration: underline;
  751. }
  752. &.mention {
  753. &:hover {
  754. text-decoration: none;
  755. span {
  756. text-decoration: underline;
  757. }
  758. }
  759. }
  760. &.unhandled-link {
  761. color: lighten($ui-highlight-color, 8%);
  762. }
  763. }
  764. }
  765. .status__content.status__content--collapsed {
  766. max-height: 20px * 15; // 15 lines is roughly above 500 characters
  767. }
  768. .status__content__read-more-button {
  769. display: block;
  770. font-size: 15px;
  771. line-height: 20px;
  772. color: lighten($ui-highlight-color, 8%);
  773. border: 0;
  774. background: transparent;
  775. padding: 0;
  776. padding-top: 8px;
  777. text-decoration: none;
  778. &:hover,
  779. &:active {
  780. text-decoration: underline;
  781. }
  782. }
  783. .status__content__spoiler-link {
  784. display: inline-block;
  785. border-radius: 2px;
  786. background: transparent;
  787. border: 0;
  788. color: $inverted-text-color;
  789. font-weight: 700;
  790. font-size: 11px;
  791. padding: 0 6px;
  792. text-transform: uppercase;
  793. line-height: 20px;
  794. cursor: pointer;
  795. vertical-align: middle;
  796. }
  797. .status__wrapper--filtered {
  798. color: $dark-text-color;
  799. border: 0;
  800. font-size: inherit;
  801. text-align: center;
  802. line-height: inherit;
  803. margin: 0;
  804. padding: 15px;
  805. box-sizing: border-box;
  806. width: 100%;
  807. clear: both;
  808. border-bottom: 1px solid lighten($ui-base-color, 8%);
  809. }
  810. .status__prepend-icon-wrapper {
  811. left: -26px;
  812. position: absolute;
  813. }
  814. .focusable {
  815. &:focus {
  816. outline: 0;
  817. background: lighten($ui-base-color, 4%);
  818. .status.status-direct {
  819. background: lighten($ui-base-color, 12%);
  820. &.muted {
  821. background: transparent;
  822. }
  823. }
  824. .detailed-status,
  825. .detailed-status__action-bar {
  826. background: lighten($ui-base-color, 8%);
  827. }
  828. }
  829. }
  830. .status {
  831. padding: 8px 10px;
  832. padding-left: 68px;
  833. position: relative;
  834. min-height: 54px;
  835. border-bottom: 1px solid lighten($ui-base-color, 8%);
  836. cursor: default;
  837. @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {
  838. // Add margin to avoid Edge auto-hiding scrollbar appearing over content.
  839. // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.
  840. padding-right: 26px; // 10px + 16px
  841. }
  842. @keyframes fade {
  843. 0% { opacity: 0; }
  844. 100% { opacity: 1; }
  845. }
  846. opacity: 1;
  847. animation: fade 150ms linear;
  848. .video-player,
  849. .audio-player {
  850. margin-top: 8px;
  851. }
  852. &.status-direct:not(.read) {
  853. background: lighten($ui-base-color, 8%);
  854. border-bottom-color: lighten($ui-base-color, 12%);
  855. }
  856. &.light {
  857. .status__relative-time {
  858. color: $light-text-color;
  859. }
  860. .status__display-name {
  861. color: $inverted-text-color;
  862. }
  863. .display-name {
  864. color: $light-text-color;
  865. strong {
  866. color: $inverted-text-color;
  867. }
  868. }
  869. .status__content {
  870. color: $inverted-text-color;
  871. a {
  872. color: $highlight-text-color;
  873. }
  874. a.status__content__spoiler-link {
  875. color: $primary-text-color;
  876. background: $ui-primary-color;
  877. &:hover {
  878. background: lighten($ui-primary-color, 8%);
  879. }
  880. }
  881. }
  882. }
  883. }
  884. .notification-favourite {
  885. .status.status-direct {
  886. background: transparent;
  887. .icon-button.disabled {
  888. color: lighten($action-button-color, 13%);
  889. }
  890. }
  891. }
  892. .status__relative-time,
  893. .notification__relative_time {
  894. color: $dark-text-color;
  895. float: right;
  896. font-size: 14px;
  897. }
  898. .status__display-name {
  899. color: $dark-text-color;
  900. }
  901. .status__info .status__display-name {
  902. display: block;
  903. max-width: 100%;
  904. padding-right: 25px;
  905. }
  906. .status__info {
  907. font-size: 15px;
  908. }
  909. .status-check-box {
  910. border-bottom: 1px solid $ui-secondary-color;
  911. display: flex;
  912. .status-check-box__status {
  913. margin: 10px 0 10px 10px;
  914. flex: 1;
  915. overflow: hidden;
  916. .media-gallery {
  917. max-width: 250px;
  918. }
  919. .status__content {
  920. padding: 0;
  921. white-space: normal;
  922. }
  923. .video-player,
  924. .audio-player {
  925. margin-top: 8px;
  926. max-width: 250px;
  927. }
  928. .media-gallery__item-thumbnail {
  929. cursor: default;
  930. }
  931. }
  932. }
  933. .status-check-box-toggle {
  934. align-items: center;
  935. display: flex;
  936. flex: 0 0 auto;
  937. justify-content: center;
  938. padding: 10px;
  939. }
  940. .status__prepend {
  941. margin-left: 68px;
  942. color: $dark-text-color;
  943. padding: 8px 0;
  944. padding-bottom: 2px;
  945. font-size: 14px;
  946. position: relative;
  947. .status__display-name strong {
  948. color: $dark-text-color;
  949. }
  950. > span {
  951. display: block;
  952. overflow: hidden;
  953. text-overflow: ellipsis;
  954. }
  955. }
  956. .status__action-bar {
  957. align-items: center;
  958. display: flex;
  959. margin-top: 8px;
  960. &__counter {
  961. display: inline-flex;
  962. margin-right: 11px;
  963. align-items: center;
  964. .status__action-bar-button {
  965. margin-right: 4px;
  966. }
  967. &__label {
  968. display: inline-block;
  969. width: 14px;
  970. font-size: 12px;
  971. font-weight: 500;
  972. color: $action-button-color;
  973. }
  974. }
  975. }
  976. .status__action-bar-button {
  977. margin-right: 18px;
  978. }
  979. .status__action-bar-dropdown {
  980. height: 23.15px;
  981. width: 23.15px;
  982. }
  983. .detailed-status__action-bar-dropdown {
  984. flex: 1 1 auto;
  985. display: flex;
  986. align-items: center;
  987. justify-content: center;
  988. position: relative;
  989. }
  990. .detailed-status {
  991. background: lighten($ui-base-color, 4%);
  992. padding: 14px 10px;
  993. &--flex {
  994. display: flex;
  995. flex-wrap: wrap;
  996. justify-content: space-between;
  997. align-items: flex-start;
  998. .status__content,
  999. .detailed-status__meta {
  1000. flex: 100%;
  1001. }
  1002. }
  1003. .status__content {
  1004. font-size: 19px;
  1005. line-height: 24px;
  1006. .emojione {
  1007. width: 24px;
  1008. height: 24px;
  1009. margin: -1px 0 0;
  1010. }
  1011. .status__content__spoiler-link {
  1012. line-height: 24px;
  1013. margin: -1px 0 0;
  1014. }
  1015. }
  1016. .video-player,
  1017. .audio-player {
  1018. margin-top: 8px;
  1019. }
  1020. }
  1021. .detailed-status__meta {
  1022. margin-top: 15px;
  1023. color: $dark-text-color;
  1024. font-size: 14px;
  1025. line-height: 18px;
  1026. }
  1027. .detailed-status__action-bar {
  1028. background: lighten($ui-base-color, 4%);
  1029. border-top: 1px solid lighten($ui-base-color, 8%);
  1030. border-bottom: 1px solid lighten($ui-base-color, 8%);
  1031. display: flex;
  1032. flex-direction: row;
  1033. padding: 10px 0;
  1034. }
  1035. .detailed-status__link {
  1036. color: inherit;
  1037. text-decoration: none;
  1038. }
  1039. .detailed-status__favorites,
  1040. .detailed-status__reblogs {
  1041. display: inline-block;
  1042. font-weight: 500;
  1043. font-size: 12px;
  1044. margin-left: 6px;
  1045. }
  1046. .reply-indicator__content {
  1047. color: $inverted-text-color;
  1048. font-size: 14px;
  1049. a {
  1050. color: $lighter-text-color;
  1051. }
  1052. }
  1053. .domain {
  1054. padding: 10px;
  1055. border-bottom: 1px solid lighten($ui-base-color, 8%);
  1056. .domain__domain-name {
  1057. flex: 1 1 auto;
  1058. display: block;
  1059. color: $primary-text-color;
  1060. text-decoration: none;
  1061. font-size: 14px;
  1062. font-weight: 500;
  1063. }
  1064. }
  1065. .domain__wrapper {
  1066. display: flex;
  1067. }
  1068. .domain_buttons {
  1069. height: 18px;
  1070. padding: 10px;
  1071. white-space: nowrap;
  1072. }
  1073. .account {
  1074. padding: 10px;
  1075. border-bottom: 1px solid lighten($ui-base-color, 8%);
  1076. &.compact {
  1077. padding: 0;
  1078. border-bottom: 0;
  1079. .account__avatar-wrapper {
  1080. margin-left: 0;
  1081. }
  1082. }
  1083. .account__display-name {
  1084. flex: 1 1 auto;
  1085. display: block;
  1086. color: $darker-text-color;
  1087. overflow: hidden;
  1088. text-decoration: none;
  1089. font-size: 14px;
  1090. }
  1091. }
  1092. .account__wrapper {
  1093. display: flex;
  1094. }
  1095. .account__avatar-wrapper {
  1096. float: left;
  1097. margin-left: 12px;
  1098. margin-right: 12px;
  1099. }
  1100. .account__avatar {
  1101. @include avatar-radius;
  1102. position: relative;
  1103. &-inline {
  1104. display: inline-block;
  1105. vertical-align: middle;
  1106. margin-right: 5px;
  1107. }
  1108. &-composite {
  1109. @include avatar-radius;
  1110. border-radius: 50%;
  1111. overflow: hidden;
  1112. position: relative;
  1113. & > div {
  1114. float: left;
  1115. position: relative;
  1116. box-sizing: border-box;
  1117. }
  1118. &__label {
  1119. display: block;
  1120. position: absolute;
  1121. top: 50%;
  1122. left: 50%;
  1123. transform: translate(-50%, -50%);
  1124. color: $primary-text-color;
  1125. text-shadow: 1px 1px 2px $base-shadow-color;
  1126. font-weight: 700;
  1127. font-size: 15px;
  1128. }
  1129. }
  1130. }
  1131. a .account__avatar {
  1132. cursor: pointer;
  1133. }
  1134. .account__avatar-overlay {
  1135. @include avatar-size(48px);
  1136. &-base {
  1137. @include avatar-radius;
  1138. @include avatar-size(36px);
  1139. }
  1140. &-overlay {
  1141. @include avatar-radius;
  1142. @include avatar-size(24px);
  1143. position: absolute;
  1144. bottom: 0;
  1145. right: 0;
  1146. z-index: 1;
  1147. }
  1148. }
  1149. .account__relationship {
  1150. height: 18px;
  1151. padding: 10px;
  1152. white-space: nowrap;
  1153. }
  1154. .account__disclaimer {
  1155. padding: 10px;
  1156. border-top: 1px solid lighten($ui-base-color, 8%);
  1157. color: $dark-text-color;
  1158. strong {
  1159. font-weight: 500;
  1160. @each $lang in $cjk-langs {
  1161. &:lang(#{$lang}) {
  1162. font-weight: 700;
  1163. }
  1164. }
  1165. }
  1166. a {
  1167. font-weight: 500;
  1168. color: inherit;
  1169. text-decoration: underline;
  1170. &:hover,
  1171. &:focus,
  1172. &:active {
  1173. text-decoration: none;
  1174. }
  1175. }
  1176. }
  1177. .account__action-bar {
  1178. border-top: 1px solid lighten($ui-base-color, 8%);
  1179. border-bottom: 1px solid lighten($ui-base-color, 8%);
  1180. line-height: 36px;
  1181. overflow: hidden;
  1182. flex: 0 0 auto;
  1183. display: flex;
  1184. }
  1185. .account__action-bar-dropdown {
  1186. padding: 10px;
  1187. .icon-button {
  1188. vertical-align: middle;
  1189. }
  1190. .dropdown--active {
  1191. .dropdown__content.dropdown__right {
  1192. left: 6px;
  1193. right: initial;
  1194. }
  1195. &::after {
  1196. bottom: initial;
  1197. margin-left: 11px;
  1198. margin-top: -7px;
  1199. right: initial;
  1200. }
  1201. }
  1202. }
  1203. .account__action-bar-links {
  1204. display: flex;
  1205. flex: 1 1 auto;
  1206. line-height: 18px;
  1207. text-align: center;
  1208. }
  1209. .account__action-bar__tab {
  1210. text-decoration: none;
  1211. overflow: hidden;
  1212. flex: 0 1 100%;
  1213. border-right: 1px solid lighten($ui-base-color, 8%);
  1214. padding: 10px 0;
  1215. border-bottom: 4px solid transparent;
  1216. &.active {
  1217. border-bottom: 4px solid $ui-highlight-color;
  1218. }
  1219. & > span {
  1220. display: block;
  1221. text-transform: uppercase;
  1222. font-size: 11px;
  1223. color: $darker-text-color;
  1224. }
  1225. strong {
  1226. display: block;
  1227. font-size: 15px;
  1228. font-weight: 500;
  1229. color: $primary-text-color;
  1230. @each $lang in $cjk-langs {
  1231. &:lang(#{$lang}) {
  1232. font-weight: 700;
  1233. }
  1234. }
  1235. }
  1236. }
  1237. .account-authorize {
  1238. padding: 14px 10px;
  1239. .detailed-status__display-name {
  1240. display: block;
  1241. margin-bottom: 15px;
  1242. overflow: hidden;
  1243. }
  1244. }
  1245. .account-authorize__avatar {
  1246. float: left;
  1247. margin-right: 10px;
  1248. }
  1249. .status__display-name,
  1250. .status__relative-time,
  1251. .detailed-status__display-name,
  1252. .detailed-status__datetime,
  1253. .detailed-status__application,
  1254. .account__display-name {
  1255. text-decoration: none;
  1256. }
  1257. .status__display-name,
  1258. .account__display-name {
  1259. strong {
  1260. color: $primary-text-color;
  1261. }
  1262. }
  1263. .muted {
  1264. .emojione {
  1265. opacity: 0.5;
  1266. }
  1267. }
  1268. .status__display-name,
  1269. .reply-indicator__display-name,
  1270. .detailed-status__display-name,
  1271. a.account__display-name {
  1272. &:hover strong {
  1273. text-decoration: underline;
  1274. }
  1275. }
  1276. .account__display-name strong {
  1277. display: block;
  1278. overflow: hidden;
  1279. text-overflow: ellipsis;
  1280. }
  1281. .detailed-status__application,
  1282. .detailed-status__datetime {
  1283. color: inherit;
  1284. }
  1285. .detailed-status .button.logo-button {
  1286. margin-bottom: 15px;
  1287. }
  1288. .detailed-status__display-name {
  1289. color: $secondary-text-color;
  1290. display: block;
  1291. line-height: 24px;
  1292. margin-bottom: 15px;
  1293. overflow: hidden;
  1294. strong,
  1295. span {
  1296. display: block;
  1297. text-overflow: ellipsis;
  1298. overflow: hidden;
  1299. }
  1300. strong {
  1301. font-size: 16px;
  1302. color: $primary-text-color;
  1303. }
  1304. }
  1305. .detailed-status__display-avatar {
  1306. float: left;
  1307. margin-right: 10px;
  1308. }
  1309. .status__avatar {
  1310. height: 48px;
  1311. left: 10px;
  1312. position: absolute;
  1313. top: 10px;
  1314. width: 48px;
  1315. }
  1316. .status__expand {
  1317. width: 68px;
  1318. position: absolute;
  1319. left: 0;
  1320. top: 0;
  1321. height: 100%;
  1322. cursor: pointer;
  1323. }
  1324. .muted {
  1325. .status__content,
  1326. .status__content p,
  1327. .status__content a {
  1328. color: $dark-text-color;
  1329. }
  1330. .status__display-name strong {
  1331. color: $dark-text-color;
  1332. }
  1333. .status__avatar {
  1334. opacity: 0.5;
  1335. }
  1336. a.status__content__spoiler-link {
  1337. background: $ui-base-lighter-color;
  1338. color: $inverted-text-color;
  1339. &:hover {
  1340. background: lighten($ui-base-lighter-color, 7%);
  1341. text-decoration: none;
  1342. }
  1343. }
  1344. }
  1345. .notification__message {
  1346. margin: 0 10px 0 68px;
  1347. padding: 8px 0 0;
  1348. cursor: default;
  1349. color: $darker-text-color;
  1350. font-size: 15px;
  1351. line-height: 22px;
  1352. position: relative;
  1353. .fa {
  1354. color: $highlight-text-color;
  1355. }
  1356. > span {
  1357. display: inline;
  1358. overflow: hidden;
  1359. text-overflow: ellipsis;
  1360. }
  1361. }
  1362. .notification__favourite-icon-wrapper {
  1363. left: -26px;
  1364. position: absolute;
  1365. .star-icon {
  1366. color: $gold-star;
  1367. }
  1368. }
  1369. .star-icon.active {
  1370. color: $gold-star;
  1371. }
  1372. .bookmark-icon.active {
  1373. color: $red-bookmark;
  1374. }
  1375. .no-reduce-motion .icon-button.star-icon {
  1376. &.activate {
  1377. & > .fa-star {
  1378. animation: spring-rotate-in 1s linear;
  1379. }
  1380. }
  1381. &.deactivate {
  1382. & > .fa-star {
  1383. animation: spring-rotate-out 1s linear;
  1384. }
  1385. }
  1386. }
  1387. .notification__display-name {
  1388. color: inherit;
  1389. font-weight: 500;
  1390. text-decoration: none;
  1391. &:hover {
  1392. color: $primary-text-color;
  1393. text-decoration: underline;
  1394. }
  1395. }
  1396. .notification__relative_time {
  1397. float: right;
  1398. }
  1399. .display-name {
  1400. display: block;
  1401. max-width: 100%;
  1402. overflow: hidden;
  1403. text-overflow: ellipsis;
  1404. white-space: nowrap;
  1405. }
  1406. .display-name__html {
  1407. font-weight: 500;
  1408. }
  1409. .display-name__account {
  1410. font-size: 14px;
  1411. }
  1412. .status__relative-time,
  1413. .detailed-status__datetime {
  1414. &:hover {
  1415. text-decoration: underline;
  1416. }
  1417. }
  1418. .image-loader {
  1419. position: relative;
  1420. width: 100%;
  1421. height: 100%;
  1422. display: flex;
  1423. align-items: center;
  1424. justify-content: center;
  1425. flex-direction: column;
  1426. .image-loader__preview-canvas {
  1427. max-width: $media-modal-media-max-width;
  1428. max-height: $media-modal-media-max-height;
  1429. background: url('~images/void.png') repeat;
  1430. object-fit: contain;
  1431. }
  1432. .loading-bar {
  1433. position: relative;
  1434. }
  1435. &.image-loader--amorphous .image-loader__preview-canvas {
  1436. display: none;
  1437. }
  1438. }
  1439. .zoomable-image {
  1440. position: relative;
  1441. width: 100%;
  1442. height: 100%;
  1443. display: flex;
  1444. align-items: center;
  1445. justify-content: center;
  1446. img {
  1447. max-width: $media-modal-media-max-width;
  1448. max-height: $media-modal-media-max-height;
  1449. width: auto;
  1450. height: auto;
  1451. object-fit: contain;
  1452. }
  1453. }
  1454. .navigation-bar {
  1455. padding: 10px;
  1456. display: flex;
  1457. align-items: center;
  1458. flex-shrink: 0;
  1459. cursor: default;
  1460. color: $darker-text-color;
  1461. strong {
  1462. color: $secondary-text-color;
  1463. }
  1464. a {
  1465. color: inherit;
  1466. }
  1467. .permalink {
  1468. text-decoration: none;
  1469. }
  1470. .navigation-bar__actions {
  1471. position: relative;
  1472. .icon-button.close {
  1473. position: absolute;
  1474. pointer-events: none;
  1475. transform: scale(0, 1) translate(-100%, 0);
  1476. opacity: 0;
  1477. }
  1478. .compose__action-bar .icon-button {
  1479. pointer-events: auto;
  1480. transform: scale(1, 1) translate(0, 0);
  1481. opacity: 1;
  1482. }
  1483. }
  1484. }
  1485. .navigation-bar__profile {
  1486. flex: 1 1 auto;
  1487. margin-left: 8px;
  1488. line-height: 20px;
  1489. margin-top: -1px;
  1490. overflow: hidden;
  1491. }
  1492. .navigation-bar__profile-account {
  1493. display: block;
  1494. font-weight: 500;
  1495. overflow: hidden;
  1496. text-overflow: ellipsis;
  1497. }
  1498. .navigation-bar__profile-edit {
  1499. color: inherit;
  1500. text-decoration: none;
  1501. }
  1502. .dropdown {
  1503. display: inline-block;
  1504. }
  1505. .dropdown__content {
  1506. display: none;
  1507. position: absolute;
  1508. }
  1509. .dropdown-menu__separator {
  1510. border-bottom: 1px solid darken($ui-secondary-color, 8%);
  1511. margin: 5px 7px 6px;
  1512. height: 0;
  1513. }
  1514. .dropdown-menu {
  1515. background: $ui-secondary-color;
  1516. padding: 4px 0;
  1517. border-radius: 4px;
  1518. box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
  1519. z-index: 9999;
  1520. ul {
  1521. list-style: none;
  1522. }
  1523. &.left {
  1524. transform-origin: 100% 50%;
  1525. }
  1526. &.top {
  1527. transform-origin: 50% 100%;
  1528. }
  1529. &.bottom {
  1530. transform-origin: 50% 0;
  1531. }
  1532. &.right {
  1533. transform-origin: 0 50%;
  1534. }
  1535. }
  1536. .dropdown-menu__arrow {
  1537. position: absolute;
  1538. width: 0;
  1539. height: 0;
  1540. border: 0 solid transparent;
  1541. &.left {
  1542. right: -5px;
  1543. margin-top: -5px;
  1544. border-width: 5px 0 5px 5px;
  1545. border-left-color: $ui-secondary-color;
  1546. }
  1547. &.top {
  1548. bottom: -5px;
  1549. margin-left: -7px;
  1550. border-width: 5px 7px 0;
  1551. border-top-color: $ui-secondary-color;
  1552. }
  1553. &.bottom {
  1554. top: -5px;
  1555. margin-left: -7px;
  1556. border-width: 0 7px 5px;
  1557. border-bottom-color: $ui-secondary-color;
  1558. }
  1559. &.right {
  1560. left: -5px;
  1561. margin-top: -5px;
  1562. border-width: 5px 5px 5px 0;
  1563. border-right-color: $ui-secondary-color;
  1564. }
  1565. }
  1566. .dropdown-menu__item {
  1567. a {
  1568. font-size: 13px;
  1569. line-height: 18px;
  1570. display: block;
  1571. padding: 4px 14px;
  1572. box-sizing: border-box;
  1573. text-decoration: none;
  1574. background: $ui-secondary-color;
  1575. color: $inverted-text-color;
  1576. overflow: hidden;
  1577. text-overflow: ellipsis;
  1578. white-space: nowrap;
  1579. &:focus,
  1580. &:hover,
  1581. &:active {
  1582. background: $ui-highlight-color;
  1583. color: $secondary-text-color;
  1584. outline: 0;
  1585. }
  1586. }
  1587. }
  1588. .dropdown--active .dropdown__content {
  1589. display: block;
  1590. line-height: 18px;
  1591. max-width: 311px;
  1592. right: 0;
  1593. text-align: left;
  1594. z-index: 9999;
  1595. & > ul {
  1596. list-style: none;
  1597. background: $ui-secondary-color;
  1598. padding: 4px 0;
  1599. border-radius: 4px;
  1600. box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);
  1601. min-width: 140px;
  1602. position: relative;
  1603. }
  1604. &.dropdown__right {
  1605. right: 0;
  1606. }
  1607. &.dropdown__left {
  1608. & > ul {
  1609. left: -98px;
  1610. }
  1611. }
  1612. & > ul > li > a {
  1613. font-size: 13px;
  1614. line-height: 18px;
  1615. display: block;
  1616. padding: 4px 14px;
  1617. box-sizing: border-box;
  1618. text-decoration: none;
  1619. background: $ui-secondary-color;
  1620. color: $inverted-text-color;
  1621. overflow: hidden;
  1622. text-overflow: ellipsis;
  1623. white-space: nowrap;
  1624. &:focus {
  1625. outline: 0;
  1626. }
  1627. &:hover {
  1628. background: $ui-highlight-color;
  1629. color: $secondary-text-color;
  1630. }
  1631. }
  1632. }
  1633. .dropdown__icon {
  1634. vertical-align: middle;
  1635. }
  1636. .columns-area {
  1637. display: flex;
  1638. flex: 1 1 auto;
  1639. flex-direction: row;
  1640. justify-content: flex-start;
  1641. overflow-x: auto;
  1642. position: relative;
  1643. &.unscrollable {
  1644. overflow-x: hidden;
  1645. }
  1646. &__panels {
  1647. display: flex;
  1648. justify-content: center;
  1649. width: 100%;
  1650. height: 100%;
  1651. min-height: 100vh;
  1652. &__pane {
  1653. height: 100%;
  1654. overflow: hidden;
  1655. pointer-events: none;
  1656. display: flex;
  1657. justify-content: flex-end;
  1658. min-width: 285px;
  1659. &--start {
  1660. justify-content: flex-start;
  1661. }
  1662. &__inner {
  1663. position: fixed;
  1664. width: 285px;
  1665. pointer-events: auto;
  1666. height: 100%;
  1667. }
  1668. }
  1669. &__main {
  1670. box-sizing: border-box;
  1671. width: 100%;
  1672. max-width: 600px;
  1673. flex: 0 0 auto;
  1674. display: flex;
  1675. flex-direction: column;
  1676. @media screen and (min-width: $no-gap-breakpoint) {
  1677. padding: 0 10px;
  1678. }
  1679. }
  1680. }
  1681. }
  1682. .tabs-bar__wrapper {
  1683. background: darken($ui-base-color, 8%);
  1684. position: sticky;
  1685. top: 0;
  1686. z-index: 2;
  1687. padding-top: 0;
  1688. @media screen and (min-width: $no-gap-breakpoint) {
  1689. padding-top: 10px;
  1690. }
  1691. .tabs-bar {
  1692. margin-bottom: 0;
  1693. @media screen and (min-width: $no-gap-breakpoint) {
  1694. margin-bottom: 10px;
  1695. }
  1696. }
  1697. }
  1698. .react-swipeable-view-container {
  1699. &,
  1700. .columns-area,
  1701. .drawer,
  1702. .column {
  1703. height: 100%;
  1704. }
  1705. }
  1706. .react-swipeable-view-container > * {
  1707. display: flex;
  1708. align-items: center;
  1709. justify-content: center;
  1710. height: 100%;
  1711. }
  1712. .column {
  1713. width: 350px;
  1714. position: relative;
  1715. box-sizing: border-box;
  1716. display: flex;
  1717. flex-direction: column;
  1718. > .scrollable {
  1719. background: $ui-base-color;
  1720. }
  1721. }
  1722. .ui {
  1723. flex: 0 0 auto;
  1724. display: flex;
  1725. flex-direction: column;
  1726. width: 100%;
  1727. height: 100%;
  1728. }
  1729. .drawer {
  1730. width: 300px;
  1731. box-sizing: border-box;
  1732. display: flex;
  1733. flex-direction: column;
  1734. overflow-y: hidden;
  1735. }
  1736. .drawer__tab {
  1737. display: block;
  1738. flex: 1 1 auto;
  1739. padding: 15px 5px 13px;
  1740. color: $darker-text-color;
  1741. text-decoration: none;
  1742. text-align: center;
  1743. font-size: 16px;
  1744. border-bottom: 2px solid transparent;
  1745. }
  1746. .column,
  1747. .drawer {
  1748. flex: 1 1 100%;
  1749. overflow: hidden;
  1750. }
  1751. @media screen and (min-width: 631px) {
  1752. .columns-area {
  1753. padding: 0;
  1754. }
  1755. .column,
  1756. .drawer {
  1757. flex: 0 0 auto;
  1758. padding: 10px;
  1759. padding-left: 5px;
  1760. padding-right: 5px;
  1761. &:first-child {
  1762. padding-left: 10px;
  1763. }
  1764. &:last-child {
  1765. padding-right: 10px;
  1766. }
  1767. }
  1768. .columns-area > div {
  1769. .column,
  1770. .drawer {
  1771. padding-left: 5px;
  1772. padding-right: 5px;
  1773. }
  1774. }
  1775. }
  1776. .tabs-bar {
  1777. box-sizing: border-box;
  1778. display: flex;
  1779. background: lighten($ui-base-color, 8%);
  1780. flex: 0 0 auto;
  1781. overflow-y: auto;
  1782. }
  1783. .tabs-bar__link {
  1784. display: block;
  1785. flex: 1 1 auto;
  1786. padding: 15px 10px;
  1787. padding-bottom: 13px;
  1788. color: $primary-text-color;
  1789. text-decoration: none;
  1790. text-align: center;
  1791. font-size: 14px;
  1792. font-weight: 500;
  1793. border-bottom: 2px solid lighten($ui-base-color, 8%);
  1794. transition: all 50ms linear;
  1795. transition-property: border-bottom, background, color;
  1796. .fa {
  1797. font-weight: 400;
  1798. font-size: 16px;
  1799. }
  1800. &:hover,
  1801. &:focus,
  1802. &:active {
  1803. @media screen and (min-width: 631px) {
  1804. background: lighten($ui-base-color, 14%);
  1805. border-bottom-color: lighten($ui-base-color, 14%);
  1806. }
  1807. }
  1808. &.active {
  1809. border-bottom: 2px solid $highlight-text-color;
  1810. color: $highlight-text-color;
  1811. }
  1812. span {
  1813. margin-left: 5px;
  1814. display: none;
  1815. }
  1816. }
  1817. @media screen and (min-width: 600px) {
  1818. .tabs-bar__link {
  1819. span {
  1820. display: inline;
  1821. }
  1822. }
  1823. }
  1824. .columns-area--mobile {
  1825. flex-direction: column;
  1826. width: 100%;
  1827. height: 100%;
  1828. margin: 0 auto;
  1829. .column,
  1830. .drawer {
  1831. width: 100%;
  1832. height: 100%;
  1833. padding: 0;
  1834. }
  1835. .directory__list {
  1836. display: grid;
  1837. grid-gap: 10px;
  1838. grid-template-columns: minmax(0, 50%) minmax(0, 50%);
  1839. @media screen and (max-width: $no-gap-breakpoint) {
  1840. display: block;
  1841. }
  1842. }
  1843. .directory__card {
  1844. margin-bottom: 0;
  1845. }
  1846. .filter-form {
  1847. display: flex;
  1848. }
  1849. .autosuggest-textarea__textarea {
  1850. font-size: 16px;
  1851. }
  1852. .search__input {
  1853. line-height: 18px;
  1854. font-size: 16px;
  1855. padding: 15px;
  1856. padding-right: 30px;
  1857. }
  1858. .search__icon .fa {
  1859. top: 15px;
  1860. }
  1861. .scrollable {
  1862. overflow: visible;
  1863. @supports(display: grid) {
  1864. contain: content;
  1865. }
  1866. }
  1867. @media screen and (min-width: $no-gap-breakpoint) {
  1868. padding: 10px 0;
  1869. padding-top: 0;
  1870. }
  1871. @media screen and (min-width: 630px) {
  1872. .detailed-status {
  1873. padding: 15px;
  1874. .media-gallery,
  1875. .video-player,
  1876. .audio-player {
  1877. margin-top: 15px;
  1878. }
  1879. }
  1880. .account__header__bar {
  1881. padding: 5px 10px;
  1882. }
  1883. .navigation-bar,
  1884. .compose-form {
  1885. padding: 15px;
  1886. }
  1887. .compose-form .compose-form__publish .compose-form__publish-button-wrapper {
  1888. padding-top: 15px;
  1889. }
  1890. .status {
  1891. padding: 15px 15px 15px (48px + 15px * 2);
  1892. min-height: 48px + 2px;
  1893. &__avatar {
  1894. left: 15px;
  1895. top: 17px;
  1896. }
  1897. &__content {
  1898. padding-top: 5px;
  1899. }
  1900. &__prepend {
  1901. margin-left: 48px + 15px * 2;
  1902. padding-top: 15px;
  1903. }
  1904. &__prepend-icon-wrapper {
  1905. left: -32px;
  1906. }
  1907. .media-gallery,
  1908. &__action-bar,
  1909. .video-player,
  1910. .audio-player {
  1911. margin-top: 10px;
  1912. }
  1913. }
  1914. .account {
  1915. padding: 15px 10px;
  1916. &__header__bio {
  1917. margin: 0 -10px;
  1918. }
  1919. }
  1920. .notification {
  1921. &__message {
  1922. margin-left: 48px + 15px * 2;
  1923. padding-top: 15px;
  1924. }
  1925. &__favourite-icon-wrapper {
  1926. left: -32px;
  1927. }
  1928. .status {
  1929. padding-top: 8px;
  1930. }
  1931. .account {
  1932. padding-top: 8px;
  1933. }
  1934. .account__avatar-wrapper {
  1935. margin-left: 17px;
  1936. margin-right: 15px;
  1937. }
  1938. }
  1939. }
  1940. }
  1941. .floating-action-button {
  1942. position: fixed;
  1943. display: flex;
  1944. justify-content: center;
  1945. align-items: center;
  1946. width: 3.9375rem;
  1947. height: 3.9375rem;
  1948. bottom: 1.3125rem;
  1949. right: 1.3125rem;
  1950. background: darken($ui-highlight-color, 3%);
  1951. color: $white;
  1952. border-radius: 50%;
  1953. font-size: 21px;
  1954. line-height: 21px;
  1955. text-decoration: none;
  1956. box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);
  1957. &:hover,
  1958. &:focus,
  1959. &:active {
  1960. background: lighten($ui-highlight-color, 7%);
  1961. }
  1962. }
  1963. @media screen and (min-width: $no-gap-breakpoint) {
  1964. .tabs-bar {
  1965. width: 100%;
  1966. }
  1967. .react-swipeable-view-container .columns-area--mobile {
  1968. height: calc(100% - 10px) !important;
  1969. }
  1970. .getting-started__wrapper,
  1971. .search {
  1972. margin-bottom: 10px;
  1973. }
  1974. }
  1975. @media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {
  1976. .columns-area__panels__pane--compositional {
  1977. display: none;
  1978. }
  1979. }
  1980. @media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {
  1981. .floating-action-button,
  1982. .tabs-bar__link.optional {
  1983. display: none;
  1984. }
  1985. .search-page .search {
  1986. display: none;
  1987. }
  1988. }
  1989. @media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {
  1990. .columns-area__panels__pane--navigational {
  1991. display: none;
  1992. }
  1993. }
  1994. @media screen and (min-width: 600px + (285px * 2) + (10px * 2)) {
  1995. .tabs-bar {
  1996. display: none;
  1997. }
  1998. }
  1999. .icon-with-badge {
  2000. position: relative;
  2001. &__badge {
  2002. position: absolute;
  2003. left: 9px;
  2004. top: -13px;
  2005. background: $ui-highlight-color;
  2006. border: 2px solid lighten($ui-base-color, 8%);
  2007. padding: 1px 6px;
  2008. border-radius: 6px;
  2009. font-size: 10px;
  2010. font-weight: 500;
  2011. line-height: 14px;
  2012. color: $primary-text-color;
  2013. }
  2014. }
  2015. .column-link--transparent .icon-with-badge__badge {
  2016. border-color: darken($ui-base-color, 8%);
  2017. }
  2018. .compose-panel {
  2019. width: 285px;
  2020. margin-top: 10px;
  2021. display: flex;
  2022. flex-direction: column;
  2023. height: calc(100% - 10px);
  2024. overflow-y: hidden;
  2025. .navigation-bar {
  2026. padding-top: 20px;
  2027. padding-bottom: 20px;
  2028. flex: 0 1 48px;
  2029. min-height: 20px;
  2030. }
  2031. .flex-spacer {
  2032. background: transparent;
  2033. }
  2034. .compose-form {
  2035. flex: 1;
  2036. overflow-y: hidden;
  2037. display: flex;
  2038. flex-direction: column;
  2039. min-height: 310px;
  2040. padding-bottom: 71px;
  2041. margin-bottom: -71px;
  2042. }
  2043. .compose-form__autosuggest-wrapper {
  2044. overflow-y: auto;
  2045. background-color: $white;
  2046. border-radius: 4px 4px 0 0;
  2047. flex: 0 1 auto;
  2048. }
  2049. .autosuggest-textarea__textarea {
  2050. overflow-y: hidden;
  2051. }
  2052. .compose-form__upload-thumbnail {
  2053. height: 80px;
  2054. }
  2055. }
  2056. .navigation-panel {
  2057. margin-top: 10px;
  2058. margin-bottom: 10px;
  2059. height: calc(100% - 20px);
  2060. overflow-y: auto;
  2061. display: flex;
  2062. flex-direction: column;
  2063. & > a {
  2064. flex: 0 0 auto;
  2065. }
  2066. hr {
  2067. flex: 0 0 auto;
  2068. border: 0;
  2069. background: transparent;
  2070. border-top: 1px solid lighten($ui-base-color, 4%);
  2071. margin: 10px 0;
  2072. }
  2073. .flex-spacer {
  2074. background: transparent;
  2075. }
  2076. }
  2077. .drawer__pager {
  2078. box-sizing: border-box;
  2079. padding: 0;
  2080. flex-grow: 1;
  2081. position: relative;
  2082. overflow: hidden;
  2083. display: flex;
  2084. }
  2085. .drawer__inner {
  2086. position: absolute;
  2087. top: 0;
  2088. left: 0;
  2089. background: lighten($ui-base-color, 13%);
  2090. box-sizing: border-box;
  2091. padding: 0;
  2092. display: flex;
  2093. flex-direction: column;
  2094. overflow: hidden;
  2095. overflow-y: auto;
  2096. width: 100%;
  2097. height: 100%;
  2098. &.darker {
  2099. background: $ui-base-color;
  2100. }
  2101. }
  2102. .drawer__inner__mastodon {
  2103. background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 234.80078 31.757813" width="234.80078" height="31.757812"><path d="M19.599609 0c-1.05 0-2.10039.375-2.90039 1.125L0 16.925781v14.832031h234.80078V17.025391l-16.5-15.900391c-1.6-1.5-4.20078-1.5-5.80078 0l-13.80078 13.099609c-1.6 1.5-4.19883 1.5-5.79883 0L179.09961 1.125c-1.6-1.5-4.19883-1.5-5.79883 0L159.5 14.224609c-1.6 1.5-4.20078 1.5-5.80078 0L139.90039 1.125c-1.6-1.5-4.20078-1.5-5.80078 0l-13.79883 13.099609c-1.6 1.5-4.20078 1.5-5.80078 0L100.69922 1.125c-1.600001-1.5-4.198829-1.5-5.798829 0l-13.59961 13.099609c-1.6 1.5-4.200781 1.5-5.800781 0L61.699219 1.125c-1.6-1.5-4.198828-1.5-5.798828 0L42.099609 14.224609c-1.6 1.5-4.198828 1.5-5.798828 0L22.5 1.125C21.7.375 20.649609 0 19.599609 0z" fill="#{hex-color($ui-base-color)}"/></svg>') no-repeat bottom / 100% auto;
  2104. flex: 1;
  2105. min-height: 47px;
  2106. display: none;
  2107. > img {
  2108. display: block;
  2109. object-fit: contain;
  2110. object-position: bottom left;
  2111. width: 85%;
  2112. height: 100%;
  2113. pointer-events: none;
  2114. user-drag: none;
  2115. user-select: none;
  2116. }
  2117. @media screen and (min-height: 640px) {
  2118. display: block;
  2119. }
  2120. }
  2121. .pseudo-drawer {
  2122. background: lighten($ui-base-color, 13%);
  2123. font-size: 13px;
  2124. text-align: left;
  2125. }
  2126. .drawer__header {
  2127. flex: 0 0 auto;
  2128. font-size: 16px;
  2129. background: lighten($ui-base-color, 8%);
  2130. margin-bottom: 10px;
  2131. display: flex;
  2132. flex-direction: row;
  2133. a {
  2134. transition: background 100ms ease-in;
  2135. &:hover {
  2136. background: lighten($ui-base-color, 3%);
  2137. transition: background 200ms ease-out;
  2138. }
  2139. }
  2140. }
  2141. .scrollable {
  2142. overflow-y: scroll;
  2143. overflow-x: hidden;
  2144. flex: 1 1 auto;
  2145. -webkit-overflow-scrolling: touch;
  2146. &.optionally-scrollable {
  2147. overflow-y: auto;
  2148. }
  2149. @supports(display: grid) { // hack to fix Chrome <57
  2150. contain: strict;
  2151. }
  2152. &--flex {
  2153. display: flex;
  2154. flex-direction: column;
  2155. }
  2156. &__append {
  2157. flex: 1 1 auto;
  2158. position: relative;
  2159. min-height: 120px;
  2160. }
  2161. }
  2162. .scrollable.fullscreen {
  2163. @supports(display: grid) { // hack to fix Chrome <57
  2164. contain: none;
  2165. }
  2166. }
  2167. .column-back-button {
  2168. box-sizing: border-box;
  2169. width: 100%;
  2170. background: lighten($ui-base-color, 4%);
  2171. color: $highlight-text-color;
  2172. cursor: pointer;
  2173. flex: 0 0 auto;
  2174. font-size: 16px;
  2175. line-height: inherit;
  2176. border: 0;
  2177. text-align: unset;
  2178. padding: 15px;
  2179. margin: 0;
  2180. z-index: 3;
  2181. outline: 0;
  2182. &:hover {
  2183. text-decoration: underline;
  2184. }
  2185. }
  2186. .column-header__back-button {
  2187. background: lighten($ui-base-color, 4%);
  2188. border: 0;
  2189. font-family: inherit;
  2190. color: $highlight-text-color;
  2191. cursor: pointer;
  2192. white-space: nowrap;
  2193. font-size: 16px;
  2194. padding: 0 5px 0 0;
  2195. z-index: 3;
  2196. &:hover {
  2197. text-decoration: underline;
  2198. }
  2199. &:last-child {
  2200. padding: 0 15px 0 0;
  2201. }
  2202. }
  2203. .column-back-button__icon {
  2204. display: inline-block;
  2205. margin-right: 5px;
  2206. }
  2207. .column-back-button--slim {
  2208. position: relative;
  2209. }
  2210. .column-back-button--slim-button {
  2211. cursor: pointer;
  2212. flex: 0 0 auto;
  2213. font-size: 16px;
  2214. padding: 15px;
  2215. position: absolute;
  2216. right: 0;
  2217. top: -48px;
  2218. }
  2219. .react-toggle {
  2220. display: inline-block;
  2221. position: relative;
  2222. cursor: pointer;
  2223. background-color: transparent;
  2224. border: 0;
  2225. padding: 0;
  2226. user-select: none;
  2227. -webkit-tap-highlight-color: rgba($base-overlay-background, 0);
  2228. -webkit-tap-highlight-color: transparent;
  2229. }
  2230. .react-toggle-screenreader-only {
  2231. border: 0;
  2232. clip: rect(0 0 0 0);
  2233. height: 1px;
  2234. margin: -1px;
  2235. overflow: hidden;
  2236. padding: 0;
  2237. position: absolute;
  2238. width: 1px;
  2239. }
  2240. .react-toggle--disabled {
  2241. cursor: not-allowed;
  2242. opacity: 0.5;
  2243. transition: opacity 0.25s;
  2244. }
  2245. .react-toggle-track {
  2246. width: 50px;
  2247. height: 24px;
  2248. padding: 0;
  2249. border-radius: 30px;
  2250. background-color: $ui-base-color;
  2251. transition: background-color 0.2s ease;
  2252. }
  2253. .react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {
  2254. background-color: darken($ui-base-color, 10%);
  2255. }
  2256. .react-toggle--checked .react-toggle-track {
  2257. background-color: $ui-highlight-color;
  2258. }
  2259. .react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {
  2260. background-color: lighten($ui-highlight-color, 10%);
  2261. }
  2262. .react-toggle-track-check {
  2263. position: absolute;
  2264. width: 14px;
  2265. height: 10px;
  2266. top: 0;
  2267. bottom: 0;
  2268. margin-top: auto;
  2269. margin-bottom: auto;
  2270. line-height: 0;
  2271. left: 8px;
  2272. opacity: 0;
  2273. transition: opacity 0.25s ease;
  2274. }
  2275. .react-toggle--checked .react-toggle-track-check {
  2276. opacity: 1;
  2277. transition: opacity 0.25s ease;
  2278. }
  2279. .react-toggle-track-x {
  2280. position: absolute;
  2281. width: 10px;
  2282. height: 10px;
  2283. top: 0;
  2284. bottom: 0;
  2285. margin-top: auto;
  2286. margin-bottom: auto;
  2287. line-height: 0;
  2288. right: 10px;
  2289. opacity: 1;
  2290. transition: opacity 0.25s ease;
  2291. }
  2292. .react-toggle--checked .react-toggle-track-x {
  2293. opacity: 0;
  2294. }
  2295. .react-toggle-thumb {
  2296. position: absolute;
  2297. top: 1px;
  2298. left: 1px;
  2299. width: 22px;
  2300. height: 22px;
  2301. border: 1px solid $ui-base-color;
  2302. border-radius: 50%;
  2303. background-color: darken($simple-background-color, 2%);
  2304. box-sizing: border-box;
  2305. transition: all 0.25s ease;
  2306. transition-property: border-color, left;
  2307. }
  2308. .react-toggle--checked .react-toggle-thumb {
  2309. left: 27px;
  2310. border-color: $ui-highlight-color;
  2311. }
  2312. .column-link {
  2313. background: lighten($ui-base-color, 8%);
  2314. color: $primary-text-color;
  2315. display: block;
  2316. font-size: 16px;
  2317. padding: 15px;
  2318. text-decoration: none;
  2319. &:hover,
  2320. &:focus,
  2321. &:active {
  2322. background: lighten($ui-base-color, 11%);
  2323. }
  2324. &:focus {
  2325. outline: 0;
  2326. }
  2327. &--transparent {
  2328. background: transparent;
  2329. color: $ui-secondary-color;
  2330. &:hover,
  2331. &:focus,
  2332. &:active {
  2333. background: transparent;
  2334. color: $primary-text-color;
  2335. }
  2336. &.active {
  2337. color: $ui-highlight-color;
  2338. }
  2339. }
  2340. }
  2341. .column-link__icon {
  2342. display: inline-block;
  2343. margin-right: 5px;
  2344. }
  2345. .column-link__badge {
  2346. display: inline-block;
  2347. border-radius: 4px;
  2348. font-size: 12px;
  2349. line-height: 19px;
  2350. font-weight: 500;
  2351. background: $ui-base-color;
  2352. padding: 4px 8px;
  2353. margin: -6px 10px;
  2354. }
  2355. .column-subheading {
  2356. background: $ui-base-color;
  2357. color: $dark-text-color;
  2358. padding: 8px 20px;
  2359. font-size: 12px;
  2360. font-weight: 500;
  2361. text-transform: uppercase;
  2362. cursor: default;
  2363. }
  2364. .getting-started__wrapper,
  2365. .getting-started,
  2366. .flex-spacer {
  2367. background: $ui-base-color;
  2368. }
  2369. .getting-started__wrapper {
  2370. flex: 0 0 auto;
  2371. }
  2372. .flex-spacer {
  2373. flex: 1 1 auto;
  2374. }
  2375. .getting-started {
  2376. color: $dark-text-color;
  2377. overflow: auto;
  2378. &__footer {
  2379. flex: 0 0 auto;
  2380. padding: 10px;
  2381. padding-top: 20px;
  2382. ul {
  2383. margin-bottom: 10px;
  2384. }
  2385. ul li {
  2386. display: inline;
  2387. }
  2388. p {
  2389. color: $dark-text-color;
  2390. font-size: 13px;
  2391. margin-bottom: 20px;
  2392. a {
  2393. color: $dark-text-color;
  2394. text-decoration: underline;
  2395. }
  2396. }
  2397. a {
  2398. text-decoration: none;
  2399. color: $darker-text-color;
  2400. &:hover,
  2401. &:focus,
  2402. &:active {
  2403. text-decoration: underline;
  2404. }
  2405. }
  2406. }
  2407. &__trends {
  2408. flex: 0 1 auto;
  2409. opacity: 1;
  2410. animation: fade 150ms linear;
  2411. margin-top: 10px;
  2412. h4 {
  2413. font-size: 12px;
  2414. text-transform: uppercase;
  2415. color: $darker-text-color;
  2416. padding: 10px;
  2417. font-weight: 500;
  2418. border-bottom: 1px solid lighten($ui-base-color, 8%);
  2419. }
  2420. @media screen and (max-height: 810px) {
  2421. .trends__item:nth-child(3) {
  2422. display: none;
  2423. }
  2424. }
  2425. @media screen and (max-height: 720px) {
  2426. .trends__item:nth-child(2) {
  2427. display: none;
  2428. }
  2429. }
  2430. @media screen and (max-height: 670px) {
  2431. display: none;
  2432. }
  2433. .trends__item {
  2434. border-bottom: 0;
  2435. padding: 10px;
  2436. &__current {
  2437. color: $darker-text-color;
  2438. }
  2439. }
  2440. }
  2441. }
  2442. .keyboard-shortcuts {
  2443. padding: 8px 0 0;
  2444. overflow: hidden;
  2445. thead {
  2446. position: absolute;
  2447. left: -9999px;
  2448. }
  2449. td {
  2450. padding: 0 10px 8px;
  2451. }
  2452. kbd {
  2453. display: inline-block;
  2454. padding: 3px 5px;
  2455. background-color: lighten($ui-base-color, 8%);
  2456. border: 1px solid darken($ui-base-color, 4%);
  2457. }
  2458. }
  2459. .setting-text {
  2460. display: block;
  2461. box-sizing: border-box;
  2462. width: 100%;
  2463. margin: 0;
  2464. color: $inverted-text-color;
  2465. background: $simple-background-color;
  2466. padding: 10px;
  2467. font-family: inherit;
  2468. font-size: 14px;
  2469. resize: vertical;
  2470. border: 0;
  2471. outline: 0;
  2472. border-radius: 4px;
  2473. &:focus {
  2474. outline: 0;
  2475. }
  2476. @media screen and (max-width: 600px) {
  2477. font-size: 16px;
  2478. }
  2479. }
  2480. .no-reduce-motion button.icon-button i.fa-retweet {
  2481. background-position: 0 0;
  2482. height: 19px;
  2483. transition: background-position 0.9s steps(10);
  2484. transition-duration: 0s;
  2485. vertical-align: middle;
  2486. width: 22px;
  2487. &::before {
  2488. display: none !important;
  2489. }
  2490. }
  2491. .no-reduce-motion button.icon-button.active i.fa-retweet {
  2492. transition-duration: 0.9s;
  2493. background-position: 0 100%;
  2494. }
  2495. .reduce-motion button.icon-button i.fa-retweet {
  2496. color: $action-button-color;
  2497. transition: color 100ms ease-in;
  2498. }
  2499. .reduce-motion button.icon-button.active i.fa-retweet {
  2500. color: $highlight-text-color;
  2501. }
  2502. .status-card {
  2503. display: flex;
  2504. font-size: 14px;
  2505. border: 1px solid lighten($ui-base-color, 8%);
  2506. border-radius: 4px;
  2507. color: $dark-text-color;
  2508. margin-top: 14px;
  2509. text-decoration: none;
  2510. overflow: hidden;
  2511. &__actions {
  2512. bottom: 0;
  2513. left: 0;
  2514. position: absolute;
  2515. right: 0;
  2516. top: 0;
  2517. display: flex;
  2518. justify-content: center;
  2519. align-items: center;
  2520. & > div {
  2521. background: rgba($base-shadow-color, 0.6);
  2522. border-radius: 8px;
  2523. padding: 12px 9px;
  2524. flex: 0 0 auto;
  2525. display: flex;
  2526. justify-content: center;
  2527. align-items: center;
  2528. }
  2529. button,
  2530. a {
  2531. display: inline;
  2532. color: $secondary-text-color;
  2533. background: transparent;
  2534. border: 0;
  2535. padding: 0 8px;
  2536. text-decoration: none;
  2537. font-size: 18px;
  2538. line-height: 18px;
  2539. &:hover,
  2540. &:active,
  2541. &:focus {
  2542. color: $primary-text-color;
  2543. }
  2544. }
  2545. a {
  2546. font-size: 19px;
  2547. position: relative;
  2548. bottom: -1px;
  2549. }
  2550. }
  2551. }
  2552. a.status-card {
  2553. cursor: pointer;
  2554. &:hover {
  2555. background: lighten($ui-base-color, 8%);
  2556. }
  2557. }
  2558. .status-card-photo {
  2559. cursor: zoom-in;
  2560. display: block;
  2561. text-decoration: none;
  2562. width: 100%;
  2563. height: auto;
  2564. margin: 0;
  2565. }
  2566. .status-card-video {
  2567. iframe {
  2568. width: 100%;
  2569. height: 100%;
  2570. }
  2571. }
  2572. .status-card__title {
  2573. display: block;
  2574. font-weight: 500;
  2575. margin-bottom: 5px;
  2576. color: $darker-text-color;
  2577. overflow: hidden;
  2578. text-overflow: ellipsis;
  2579. white-space: nowrap;
  2580. text-decoration: none;
  2581. }
  2582. .status-card__content {
  2583. flex: 1 1 auto;
  2584. overflow: hidden;
  2585. padding: 14px 14px 14px 8px;
  2586. }
  2587. .status-card__description {
  2588. color: $darker-text-color;
  2589. }
  2590. .status-card__host {
  2591. display: block;
  2592. margin-top: 5px;
  2593. font-size: 13px;
  2594. overflow: hidden;
  2595. text-overflow: ellipsis;
  2596. white-space: nowrap;
  2597. }
  2598. .status-card__image {
  2599. flex: 0 0 100px;
  2600. background: lighten($ui-base-color, 8%);
  2601. position: relative;
  2602. & > .fa {
  2603. font-size: 21px;
  2604. position: absolute;
  2605. transform-origin: 50% 50%;
  2606. top: 50%;
  2607. left: 50%;
  2608. transform: translate(-50%, -50%);
  2609. }
  2610. }
  2611. .status-card.horizontal {
  2612. display: block;
  2613. .status-card__image {
  2614. width: 100%;
  2615. }
  2616. .status-card__image-image {
  2617. border-radius: 4px 4px 0 0;
  2618. }
  2619. .status-card__title {
  2620. white-space: inherit;
  2621. }
  2622. }
  2623. .status-card.compact {
  2624. border-color: lighten($ui-base-color, 4%);
  2625. &.interactive {
  2626. border: 0;
  2627. }
  2628. .status-card__content {
  2629. padding: 8px;
  2630. padding-top: 10px;
  2631. }
  2632. .status-card__title {
  2633. white-space: nowrap;
  2634. }
  2635. .status-card__image {
  2636. flex: 0 0 60px;
  2637. }
  2638. }
  2639. a.status-card.compact:hover {
  2640. background-color: lighten($ui-base-color, 4%);
  2641. }
  2642. .status-card__image-image {
  2643. border-radius: 4px 0 0 4px;
  2644. display: block;
  2645. margin: 0;
  2646. width: 100%;
  2647. height: 100%;
  2648. object-fit: cover;
  2649. background-size: cover;
  2650. background-position: center center;
  2651. }
  2652. .load-more {
  2653. display: block;
  2654. color: $dark-text-color;
  2655. background-color: transparent;
  2656. border: 0;
  2657. font-size: inherit;
  2658. text-align: center;
  2659. line-height: inherit;
  2660. margin: 0;
  2661. padding: 15px;
  2662. box-sizing: border-box;
  2663. width: 100%;
  2664. clear: both;
  2665. text-decoration: none;
  2666. &:hover {
  2667. background: lighten($ui-base-color, 2%);
  2668. }
  2669. }
  2670. .load-gap {
  2671. border-bottom: 1px solid lighten($ui-base-color, 8%);
  2672. }
  2673. .regeneration-indicator {
  2674. text-align: center;
  2675. font-size: 16px;
  2676. font-weight: 500;
  2677. color: $dark-text-color;
  2678. background: $ui-base-color;
  2679. cursor: default;
  2680. display: flex;
  2681. flex: 1 1 auto;
  2682. flex-direction: column;
  2683. align-items: center;
  2684. justify-content: center;
  2685. padding: 20px;
  2686. &__figure {
  2687. &,
  2688. img {
  2689. display: block;
  2690. width: auto;
  2691. height: 160px;
  2692. margin: 0;
  2693. }
  2694. }
  2695. &--without-header {
  2696. padding-top: 20px + 48px;
  2697. }
  2698. &__label {
  2699. margin-top: 30px;
  2700. strong {
  2701. display: block;
  2702. margin-bottom: 10px;
  2703. color: $dark-text-color;
  2704. }
  2705. span {
  2706. font-size: 15px;
  2707. font-weight: 400;
  2708. }
  2709. }
  2710. }
  2711. .column-header__wrapper {
  2712. position: relative;
  2713. flex: 0 0 auto;
  2714. z-index: 1;
  2715. &.active {
  2716. box-shadow: 0 1px 0 rgba($highlight-text-color, 0.3);
  2717. &::before {
  2718. display: block;
  2719. content: "";
  2720. position: absolute;
  2721. bottom: -13px;
  2722. left: 0;
  2723. right: 0;
  2724. margin: 0 auto;
  2725. width: 60%;
  2726. pointer-events: none;
  2727. height: 28px;
  2728. z-index: 1;
  2729. background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);
  2730. }
  2731. }
  2732. .announcements {
  2733. z-index: 1;
  2734. position: relative;
  2735. }
  2736. }
  2737. .column-header {
  2738. display: flex;
  2739. font-size: 16px;
  2740. background: lighten($ui-base-color, 4%);
  2741. flex: 0 0 auto;
  2742. cursor: pointer;
  2743. position: relative;
  2744. z-index: 2;
  2745. outline: 0;
  2746. overflow: hidden;
  2747. & > button {
  2748. margin: 0;
  2749. border: 0;
  2750. padding: 15px 0 15px 15px;
  2751. color: inherit;
  2752. background: transparent;
  2753. font: inherit;
  2754. text-align: left;
  2755. text-overflow: ellipsis;
  2756. overflow: hidden;
  2757. white-space: nowrap;
  2758. flex: 1;
  2759. }
  2760. & > .column-header__back-button {
  2761. color: $highlight-text-color;
  2762. }
  2763. &.active {
  2764. .column-header__icon {
  2765. color: $highlight-text-color;
  2766. text-shadow: 0 0 10px rgba($highlight-text-color, 0.4);
  2767. }
  2768. }
  2769. &:focus,
  2770. &:active {
  2771. outline: 0;
  2772. }
  2773. }
  2774. .column-header__buttons {
  2775. height: 48px;
  2776. display: flex;
  2777. }
  2778. .column-header__links {
  2779. margin-bottom: 14px;
  2780. }
  2781. .column-header__links .text-btn {
  2782. margin-right: 10px;
  2783. }
  2784. .column-header__button {
  2785. background: lighten($ui-base-color, 4%);
  2786. border: 0;
  2787. color: $darker-text-color;
  2788. cursor: pointer;
  2789. font-size: 16px;
  2790. padding: 0 15px;
  2791. &:hover {
  2792. color: lighten($darker-text-color, 7%);
  2793. }
  2794. &.active {
  2795. color: $primary-text-color;
  2796. background: lighten($ui-base-color, 8%);
  2797. &:hover {
  2798. color: $primary-text-color;
  2799. background: lighten($ui-base-color, 8%);
  2800. }
  2801. }
  2802. }
  2803. .column-header__collapsible {
  2804. max-height: 70vh;
  2805. overflow: hidden;
  2806. overflow-y: auto;
  2807. color: $darker-text-color;
  2808. transition: max-height 150ms ease-in-out, opacity 300ms linear;
  2809. opacity: 1;
  2810. z-index: 1;
  2811. position: relative;
  2812. &.collapsed {
  2813. max-height: 0;
  2814. opacity: 0.5;
  2815. }
  2816. &.animating {
  2817. overflow-y: hidden;
  2818. }
  2819. hr {
  2820. height: 0;
  2821. background: transparent;
  2822. border: 0;
  2823. border-top: 1px solid lighten($ui-base-color, 12%);
  2824. margin: 10px 0;
  2825. }
  2826. }
  2827. .column-header__collapsible-inner {
  2828. background: lighten($ui-base-color, 8%);
  2829. padding: 15px;
  2830. }
  2831. .column-header__setting-btn {
  2832. &:hover {
  2833. color: $darker-text-color;
  2834. text-decoration: underline;
  2835. }
  2836. }
  2837. .column-header__setting-arrows {
  2838. float: right;
  2839. .column-header__setting-btn {
  2840. padding: 0 10px;
  2841. &:last-child {
  2842. padding-right: 0;
  2843. }
  2844. }
  2845. }
  2846. .text-btn {
  2847. display: inline-block;
  2848. padding: 0;
  2849. font-family: inherit;
  2850. font-size: inherit;
  2851. color: inherit;
  2852. border: 0;
  2853. background: transparent;
  2854. cursor: pointer;
  2855. }
  2856. .column-header__icon {
  2857. display: inline-block;
  2858. margin-right: 5px;
  2859. }
  2860. .loading-indicator {
  2861. color: $dark-text-color;
  2862. font-size: 12px;
  2863. font-weight: 400;
  2864. text-transform: uppercase;
  2865. overflow: visible;
  2866. position: absolute;
  2867. top: 50%;
  2868. left: 50%;
  2869. transform: translate(-50%, -50%);
  2870. span {
  2871. display: block;
  2872. float: left;
  2873. margin-left: 50%;
  2874. transform: translateX(-50%);
  2875. margin: 82px 0 0 50%;
  2876. white-space: nowrap;
  2877. }
  2878. }
  2879. .loading-indicator__figure {
  2880. position: absolute;
  2881. top: 50%;
  2882. left: 50%;
  2883. transform: translate(-50%, -50%);
  2884. width: 42px;
  2885. height: 42px;
  2886. box-sizing: border-box;
  2887. background-color: transparent;
  2888. border: 0 solid lighten($ui-base-color, 26%);
  2889. border-width: 6px;
  2890. border-radius: 50%;
  2891. }
  2892. .no-reduce-motion .loading-indicator span {
  2893. animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);
  2894. }
  2895. .no-reduce-motion .loading-indicator__figure {
  2896. animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);
  2897. }
  2898. @keyframes spring-rotate-in {
  2899. 0% {
  2900. transform: rotate(0deg);
  2901. }
  2902. 30% {
  2903. transform: rotate(-484.8deg);
  2904. }
  2905. 60% {
  2906. transform: rotate(-316.7deg);
  2907. }
  2908. 90% {
  2909. transform: rotate(-375deg);
  2910. }
  2911. 100% {
  2912. transform: rotate(-360deg);
  2913. }
  2914. }
  2915. @keyframes spring-rotate-out {
  2916. 0% {
  2917. transform: rotate(-360deg);
  2918. }
  2919. 30% {
  2920. transform: rotate(124.8deg);
  2921. }
  2922. 60% {
  2923. transform: rotate(-43.27deg);
  2924. }
  2925. 90% {
  2926. transform: rotate(15deg);
  2927. }
  2928. 100% {
  2929. transform: rotate(0deg);
  2930. }
  2931. }
  2932. @keyframes loader-figure {
  2933. 0% {
  2934. width: 0;
  2935. height: 0;
  2936. background-color: lighten($ui-base-color, 26%);
  2937. }
  2938. 29% {
  2939. background-color: lighten($ui-base-color, 26%);
  2940. }
  2941. 30% {
  2942. width: 42px;
  2943. height: 42px;
  2944. background-color: transparent;
  2945. border-width: 21px;
  2946. opacity: 1;
  2947. }
  2948. 100% {
  2949. width: 42px;
  2950. height: 42px;
  2951. border-width: 0;
  2952. opacity: 0;
  2953. background-color: transparent;
  2954. }
  2955. }
  2956. @keyframes loader-label {
  2957. 0% { opacity: 0.25; }
  2958. 30% { opacity: 1; }
  2959. 100% { opacity: 0.25; }
  2960. }
  2961. .video-error-cover {
  2962. align-items: center;
  2963. background: $base-overlay-background;
  2964. color: $primary-text-color;
  2965. cursor: pointer;
  2966. display: flex;
  2967. flex-direction: column;
  2968. height: 100%;
  2969. justify-content: center;
  2970. margin-top: 8px;
  2971. position: relative;
  2972. text-align: center;
  2973. z-index: 100;
  2974. }
  2975. .media-spoiler {
  2976. background: $base-overlay-background;
  2977. color: $darker-text-color;
  2978. border: 0;
  2979. padding: 0;
  2980. width: 100%;
  2981. height: 100%;
  2982. border-radius: 4px;
  2983. appearance: none;
  2984. &:hover,
  2985. &:active,
  2986. &:focus {
  2987. padding: 0;
  2988. color: lighten($darker-text-color, 8%);
  2989. }
  2990. }
  2991. .media-spoiler__warning {
  2992. display: block;
  2993. font-size: 14px;
  2994. }
  2995. .media-spoiler__trigger {
  2996. display: block;
  2997. font-size: 11px;
  2998. font-weight: 700;
  2999. }
  3000. .spoiler-button {
  3001. top: 0;
  3002. left: 0;
  3003. width: 100%;
  3004. height: 100%;
  3005. position: absolute;
  3006. z-index: 100;
  3007. &--minified {
  3008. display: block;
  3009. left: 4px;
  3010. top: 4px;
  3011. width: auto;
  3012. height: auto;
  3013. }
  3014. &--click-thru {
  3015. pointer-events: none;
  3016. }
  3017. &--hidden {
  3018. display: none;
  3019. }
  3020. &__overlay {
  3021. display: block;
  3022. background: transparent;
  3023. width: 100%;
  3024. height: 100%;
  3025. border: 0;
  3026. &__label {
  3027. display: inline-block;
  3028. background: rgba($base-overlay-background, 0.5);
  3029. border-radius: 8px;
  3030. padding: 8px 12px;
  3031. color: $primary-text-color;
  3032. font-weight: 500;
  3033. font-size: 14px;
  3034. }
  3035. &:hover,
  3036. &:focus,
  3037. &:active {
  3038. .spoiler-button__overlay__label {
  3039. background: rgba($base-overlay-background, 0.8);
  3040. }
  3041. }
  3042. &:disabled {
  3043. .spoiler-button__overlay__label {
  3044. background: rgba($base-overlay-background, 0.5);
  3045. }
  3046. }
  3047. }
  3048. }
  3049. .modal-container--preloader {
  3050. background: lighten($ui-base-color, 8%);
  3051. }
  3052. .account--panel {
  3053. background: lighten($ui-base-color, 4%);
  3054. border-top: 1px solid lighten($ui-base-color, 8%);
  3055. border-bottom: 1px solid lighten($ui-base-color, 8%);
  3056. display: flex;
  3057. flex-direction: row;
  3058. padding: 10px 0;
  3059. }
  3060. .account--panel__button,
  3061. .detailed-status__button {
  3062. flex: 1 1 auto;
  3063. text-align: center;
  3064. }
  3065. .column-settings__outer {
  3066. background: lighten($ui-base-color, 8%);
  3067. padding: 15px;
  3068. }
  3069. .column-settings__section {
  3070. color: $darker-text-color;
  3071. cursor: default;
  3072. display: block;
  3073. font-weight: 500;
  3074. margin-bottom: 10px;
  3075. }
  3076. .column-settings__hashtags {
  3077. .column-settings__row {
  3078. margin-bottom: 15px;
  3079. }
  3080. .column-select {
  3081. &__control {
  3082. @include search-input;
  3083. &::placeholder {
  3084. color: lighten($darker-text-color, 4%);
  3085. }
  3086. &::-moz-focus-inner {
  3087. border: 0;
  3088. }
  3089. &::-moz-focus-inner,
  3090. &:focus,
  3091. &:active {
  3092. outline: 0 !important;
  3093. }
  3094. &:focus {
  3095. background: lighten($ui-base-color, 4%);
  3096. }
  3097. @media screen and (max-width: 600px) {
  3098. font-size: 16px;
  3099. }
  3100. }
  3101. &__placeholder {
  3102. color: $dark-text-color;
  3103. padding-left: 2px;
  3104. font-size: 12px;
  3105. }
  3106. &__value-container {
  3107. padding-left: 6px;
  3108. }
  3109. &__multi-value {
  3110. background: lighten($ui-base-color, 8%);
  3111. &__remove {
  3112. cursor: pointer;
  3113. &:hover,
  3114. &:active,
  3115. &:focus {
  3116. background: lighten($ui-base-color, 12%);
  3117. color: lighten($darker-text-color, 4%);
  3118. }
  3119. }
  3120. }
  3121. &__multi-value__label,
  3122. &__input {
  3123. color: $darker-text-color;
  3124. }
  3125. &__clear-indicator,
  3126. &__dropdown-indicator {
  3127. cursor: pointer;
  3128. transition: none;
  3129. color: $dark-text-color;
  3130. &:hover,
  3131. &:active,
  3132. &:focus {
  3133. color: lighten($dark-text-color, 4%);
  3134. }
  3135. }
  3136. &__indicator-separator {
  3137. background-color: lighten($ui-base-color, 8%);
  3138. }
  3139. &__menu {
  3140. @include search-popout;
  3141. padding: 0;
  3142. background: $ui-secondary-color;
  3143. }
  3144. &__menu-list {
  3145. padding: 6px;
  3146. }
  3147. &__option {
  3148. color: $inverted-text-color;
  3149. border-radius: 4px;
  3150. font-size: 14px;
  3151. &--is-focused,
  3152. &--is-selected {
  3153. background: darken($ui-secondary-color, 10%);
  3154. }
  3155. }
  3156. }
  3157. }
  3158. .column-settings__row {
  3159. .text-btn {
  3160. margin-bottom: 15px;
  3161. }
  3162. }
  3163. .relationship-tag {
  3164. color: $primary-text-color;
  3165. margin-bottom: 4px;
  3166. display: block;
  3167. vertical-align: top;
  3168. background-color: $base-overlay-background;
  3169. text-transform: uppercase;
  3170. font-size: 11px;
  3171. font-weight: 500;
  3172. padding: 4px;
  3173. border-radius: 4px;
  3174. opacity: 0.7;
  3175. &:hover {
  3176. opacity: 1;
  3177. }
  3178. }
  3179. .setting-toggle {
  3180. display: block;
  3181. line-height: 24px;
  3182. }
  3183. .setting-toggle__label {
  3184. color: $darker-text-color;
  3185. display: inline-block;
  3186. margin-bottom: 14px;
  3187. margin-left: 8px;
  3188. vertical-align: middle;
  3189. }
  3190. .empty-column-indicator,
  3191. .error-column,
  3192. .follow_requests-unlocked_explanation {
  3193. color: $dark-text-color;
  3194. background: $ui-base-color;
  3195. text-align: center;
  3196. padding: 20px;
  3197. font-size: 15px;
  3198. font-weight: 400;
  3199. cursor: default;
  3200. display: flex;
  3201. flex: 1 1 auto;
  3202. align-items: center;
  3203. justify-content: center;
  3204. @supports(display: grid) { // hack to fix Chrome <57
  3205. contain: strict;
  3206. }
  3207. & > span {
  3208. max-width: 400px;
  3209. }
  3210. a {
  3211. color: $highlight-text-color;
  3212. text-decoration: none;
  3213. &:hover {
  3214. text-decoration: underline;
  3215. }
  3216. }
  3217. }
  3218. .follow_requests-unlocked_explanation {
  3219. background: darken($ui-base-color, 4%);
  3220. contain: initial;
  3221. }
  3222. .error-column {
  3223. flex-direction: column;
  3224. }
  3225. @keyframes heartbeat {
  3226. from {
  3227. transform: scale(1);
  3228. animation-timing-function: ease-out;
  3229. }
  3230. 10% {
  3231. transform: scale(0.91);
  3232. animation-timing-function: ease-in;
  3233. }
  3234. 17% {
  3235. transform: scale(0.98);
  3236. animation-timing-function: ease-out;
  3237. }
  3238. 33% {
  3239. transform: scale(0.87);
  3240. animation-timing-function: ease-in;
  3241. }
  3242. 45% {
  3243. transform: scale(1);
  3244. animation-timing-function: ease-out;
  3245. }
  3246. }
  3247. .no-reduce-motion .pulse-loading {
  3248. transform-origin: center center;
  3249. animation: heartbeat 1.5s ease-in-out infinite both;
  3250. }
  3251. @keyframes shake-bottom {
  3252. 0%,
  3253. 100% {
  3254. transform: rotate(0deg);
  3255. transform-origin: 50% 100%;
  3256. }
  3257. 10% {
  3258. transform: rotate(2deg);
  3259. }
  3260. 20%,
  3261. 40%,
  3262. 60% {
  3263. transform: rotate(-4deg);
  3264. }
  3265. 30%,
  3266. 50%,
  3267. 70% {
  3268. transform: rotate(4deg);
  3269. }
  3270. 80% {
  3271. transform: rotate(-2deg);
  3272. }
  3273. 90% {
  3274. transform: rotate(2deg);
  3275. }
  3276. }
  3277. .no-reduce-motion .shake-bottom {
  3278. transform-origin: 50% 100%;
  3279. animation: shake-bottom 0.8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both;
  3280. }
  3281. .emoji-picker-dropdown__menu {
  3282. background: $simple-background-color;
  3283. position: absolute;
  3284. box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);
  3285. border-radius: 4px;
  3286. margin-top: 5px;
  3287. z-index: 2;
  3288. .emoji-mart-scroll {
  3289. transition: opacity 200ms ease;
  3290. }
  3291. &.selecting .emoji-mart-scroll {
  3292. opacity: 0.5;
  3293. }
  3294. }
  3295. .emoji-picker-dropdown__modifiers {
  3296. position: absolute;
  3297. top: 60px;
  3298. right: 11px;
  3299. cursor: pointer;
  3300. }
  3301. .emoji-picker-dropdown__modifiers__menu {
  3302. position: absolute;
  3303. z-index: 4;
  3304. top: -4px;
  3305. left: -8px;
  3306. background: $simple-background-color;
  3307. border-radius: 4px;
  3308. box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);
  3309. overflow: hidden;
  3310. button {
  3311. display: block;
  3312. cursor: pointer;
  3313. border: 0;
  3314. padding: 4px 8px;
  3315. background: transparent;
  3316. &:hover,
  3317. &:focus,
  3318. &:active {
  3319. background: rgba($ui-secondary-color, 0.4);
  3320. }
  3321. }
  3322. .emoji-mart-emoji {
  3323. height: 22px;
  3324. }
  3325. }
  3326. .emoji-mart-emoji {
  3327. span {
  3328. background-repeat: no-repeat;
  3329. }
  3330. }
  3331. .upload-area {
  3332. align-items: center;
  3333. background: rgba($base-overlay-background, 0.8);
  3334. display: flex;
  3335. height: 100%;
  3336. justify-content: center;
  3337. left: 0;
  3338. opacity: 0;
  3339. position: absolute;
  3340. top: 0;
  3341. visibility: hidden;
  3342. width: 100%;
  3343. z-index: 2000;
  3344. * {
  3345. pointer-events: none;
  3346. }
  3347. }
  3348. .upload-area__drop {
  3349. width: 320px;
  3350. height: 160px;
  3351. display: flex;
  3352. box-sizing: border-box;
  3353. position: relative;
  3354. padding: 8px;
  3355. }
  3356. .upload-area__background {
  3357. position: absolute;
  3358. top: 0;
  3359. right: 0;
  3360. bottom: 0;
  3361. left: 0;
  3362. z-index: -1;
  3363. border-radius: 4px;
  3364. background: $ui-base-color;
  3365. box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);
  3366. }
  3367. .upload-area__content {
  3368. flex: 1;
  3369. display: flex;
  3370. align-items: center;
  3371. justify-content: center;
  3372. color: $secondary-text-color;
  3373. font-size: 18px;
  3374. font-weight: 500;
  3375. border: 2px dashed $ui-base-lighter-color;
  3376. border-radius: 4px;
  3377. }
  3378. .upload-progress {
  3379. padding: 10px;
  3380. color: $lighter-text-color;
  3381. overflow: hidden;
  3382. display: flex;
  3383. .fa {
  3384. font-size: 34px;
  3385. margin-right: 10px;
  3386. }
  3387. span {
  3388. font-size: 12px;
  3389. text-transform: uppercase;
  3390. font-weight: 500;
  3391. display: block;
  3392. }
  3393. }
  3394. .upload-progess__message {
  3395. flex: 1 1 auto;
  3396. }
  3397. .upload-progress__backdrop {
  3398. width: 100%;
  3399. height: 6px;
  3400. border-radius: 6px;
  3401. background: $ui-base-lighter-color;
  3402. position: relative;
  3403. margin-top: 5px;
  3404. }
  3405. .upload-progress__tracker {
  3406. position: absolute;
  3407. left: 0;
  3408. top: 0;
  3409. height: 6px;
  3410. background: $ui-highlight-color;
  3411. border-radius: 6px;
  3412. }
  3413. .emoji-button {
  3414. display: block;
  3415. padding: 5px 5px 2px 2px;
  3416. outline: 0;
  3417. cursor: pointer;
  3418. &:active,
  3419. &:focus {
  3420. outline: 0 !important;
  3421. }
  3422. img {
  3423. filter: grayscale(100%);
  3424. opacity: 0.8;
  3425. display: block;
  3426. margin: 0;
  3427. width: 22px;
  3428. height: 22px;
  3429. }
  3430. &:hover,
  3431. &:active,
  3432. &:focus {
  3433. img {
  3434. opacity: 1;
  3435. filter: none;
  3436. }
  3437. }
  3438. }
  3439. .dropdown--active .emoji-button img {
  3440. opacity: 1;
  3441. filter: none;
  3442. }
  3443. .privacy-dropdown__dropdown {
  3444. position: absolute;
  3445. background: $simple-background-color;
  3446. box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
  3447. border-radius: 4px;
  3448. margin-left: 40px;
  3449. overflow: hidden;
  3450. &.top {
  3451. transform-origin: 50% 100%;
  3452. }
  3453. &.bottom {
  3454. transform-origin: 50% 0;
  3455. }
  3456. }
  3457. .privacy-dropdown__option {
  3458. color: $inverted-text-color;
  3459. padding: 10px;
  3460. cursor: pointer;
  3461. display: flex;
  3462. &:hover,
  3463. &.active {
  3464. background: $ui-highlight-color;
  3465. color: $primary-text-color;
  3466. outline: 0;
  3467. .privacy-dropdown__option__content {
  3468. color: $primary-text-color;
  3469. strong {
  3470. color: $primary-text-color;
  3471. }
  3472. }
  3473. }
  3474. &.active:hover {
  3475. background: lighten($ui-highlight-color, 4%);
  3476. }
  3477. }
  3478. .privacy-dropdown__option__icon {
  3479. display: flex;
  3480. align-items: center;
  3481. justify-content: center;
  3482. margin-right: 10px;
  3483. }
  3484. .privacy-dropdown__option__content {
  3485. flex: 1 1 auto;
  3486. color: $lighter-text-color;
  3487. strong {
  3488. font-weight: 500;
  3489. display: block;
  3490. color: $inverted-text-color;
  3491. @each $lang in $cjk-langs {
  3492. &:lang(#{$lang}) {
  3493. font-weight: 700;
  3494. }
  3495. }
  3496. }
  3497. }
  3498. .privacy-dropdown.active {
  3499. .privacy-dropdown__value {
  3500. background: $simple-background-color;
  3501. border-radius: 4px 4px 0 0;
  3502. box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);
  3503. .icon-button {
  3504. transition: none;
  3505. }
  3506. &.active {
  3507. background: $ui-highlight-color;
  3508. .icon-button {
  3509. color: $primary-text-color;
  3510. }
  3511. }
  3512. }
  3513. &.top .privacy-dropdown__value {
  3514. border-radius: 0 0 4px 4px;
  3515. }
  3516. .privacy-dropdown__dropdown {
  3517. display: block;
  3518. box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);
  3519. }
  3520. }
  3521. .search {
  3522. position: relative;
  3523. }
  3524. .search__input {
  3525. @include search-input;
  3526. display: block;
  3527. padding: 15px;
  3528. padding-right: 30px;
  3529. line-height: 18px;
  3530. font-size: 16px;
  3531. &::placeholder {
  3532. color: lighten($darker-text-color, 4%);
  3533. }
  3534. &::-moz-focus-inner {
  3535. border: 0;
  3536. }
  3537. &::-moz-focus-inner,
  3538. &:focus,
  3539. &:active {
  3540. outline: 0 !important;
  3541. }
  3542. &:focus {
  3543. background: lighten($ui-base-color, 4%);
  3544. }
  3545. @media screen and (max-width: 600px) {
  3546. font-size: 16px;
  3547. }
  3548. }
  3549. .search__icon {
  3550. &::-moz-focus-inner {
  3551. border: 0;
  3552. }
  3553. &::-moz-focus-inner,
  3554. &:focus {
  3555. outline: 0 !important;
  3556. }
  3557. .fa {
  3558. position: absolute;
  3559. top: 16px;
  3560. right: 10px;
  3561. z-index: 2;
  3562. display: inline-block;
  3563. opacity: 0;
  3564. transition: all 100ms linear;
  3565. transition-property: transform, opacity;
  3566. font-size: 18px;
  3567. width: 18px;
  3568. height: 18px;
  3569. color: $secondary-text-color;
  3570. cursor: default;
  3571. pointer-events: none;
  3572. &.active {
  3573. pointer-events: auto;
  3574. opacity: 0.3;
  3575. }
  3576. }
  3577. .fa-search {
  3578. transform: rotate(90deg);
  3579. &.active {
  3580. pointer-events: none;
  3581. transform: rotate(0deg);
  3582. }
  3583. }
  3584. .fa-times-circle {
  3585. top: 17px;
  3586. transform: rotate(0deg);
  3587. color: $action-button-color;
  3588. cursor: pointer;
  3589. &.active {
  3590. transform: rotate(90deg);
  3591. }
  3592. &:hover {
  3593. color: lighten($action-button-color, 7%);
  3594. }
  3595. }
  3596. }
  3597. .search-results__header {
  3598. color: $dark-text-color;
  3599. background: lighten($ui-base-color, 2%);
  3600. padding: 15px;
  3601. font-weight: 500;
  3602. font-size: 16px;
  3603. cursor: default;
  3604. .fa {
  3605. display: inline-block;
  3606. margin-right: 5px;
  3607. }
  3608. }
  3609. .search-results__section {
  3610. margin-bottom: 5px;
  3611. h5 {
  3612. background: darken($ui-base-color, 4%);
  3613. border-bottom: 1px solid lighten($ui-base-color, 8%);
  3614. cursor: default;
  3615. display: flex;
  3616. padding: 15px;
  3617. font-weight: 500;
  3618. font-size: 16px;
  3619. color: $dark-text-color;
  3620. .fa {
  3621. display: inline-block;
  3622. margin-right: 5px;
  3623. }
  3624. }
  3625. .account:last-child,
  3626. & > div:last-child .status {
  3627. border-bottom: 0;
  3628. }
  3629. }
  3630. .search-results__hashtag {
  3631. display: block;
  3632. padding: 10px;
  3633. color: $secondary-text-color;
  3634. text-decoration: none;
  3635. &:hover,
  3636. &:active,
  3637. &:focus {
  3638. color: lighten($secondary-text-color, 4%);
  3639. text-decoration: underline;
  3640. }
  3641. }
  3642. .search-results__info {
  3643. padding: 20px;
  3644. color: $darker-text-color;
  3645. text-align: center;
  3646. }
  3647. .modal-root {
  3648. position: relative;
  3649. transition: opacity 0.3s linear;
  3650. will-change: opacity;
  3651. z-index: 9999;
  3652. }
  3653. .modal-root__overlay {
  3654. position: fixed;
  3655. top: 0;
  3656. left: 0;
  3657. right: 0;
  3658. bottom: 0;
  3659. background: rgba($base-overlay-background, 0.7);
  3660. }
  3661. .modal-root__container {
  3662. position: fixed;
  3663. top: 0;
  3664. left: 0;
  3665. width: 100%;
  3666. height: 100%;
  3667. display: flex;
  3668. flex-direction: column;
  3669. align-items: center;
  3670. justify-content: center;
  3671. align-content: space-around;
  3672. z-index: 9999;
  3673. pointer-events: none;
  3674. user-select: none;
  3675. }
  3676. .modal-root__modal {
  3677. pointer-events: auto;
  3678. display: flex;
  3679. z-index: 9999;
  3680. }
  3681. .video-modal__container {
  3682. max-width: 100vw;
  3683. max-height: 100vh;
  3684. }
  3685. .audio-modal__container {
  3686. width: 50vw;
  3687. }
  3688. .media-modal {
  3689. width: 100%;
  3690. height: 100%;
  3691. position: relative;
  3692. .extended-video-player {
  3693. width: 100%;
  3694. height: 100%;
  3695. display: flex;
  3696. align-items: center;
  3697. justify-content: center;
  3698. video {
  3699. max-width: $media-modal-media-max-width;
  3700. max-height: $media-modal-media-max-height;
  3701. }
  3702. }
  3703. }
  3704. .media-modal__closer {
  3705. position: absolute;
  3706. top: 0;
  3707. left: 0;
  3708. right: 0;
  3709. bottom: 0;
  3710. }
  3711. .media-modal__navigation {
  3712. position: absolute;
  3713. top: 0;
  3714. left: 0;
  3715. right: 0;
  3716. bottom: 0;
  3717. pointer-events: none;
  3718. transition: opacity 0.3s linear;
  3719. will-change: opacity;
  3720. * {
  3721. pointer-events: auto;
  3722. }
  3723. &.media-modal__navigation--hidden {
  3724. opacity: 0;
  3725. * {
  3726. pointer-events: none;
  3727. }
  3728. }
  3729. }
  3730. .media-modal__nav {
  3731. background: rgba($base-overlay-background, 0.5);
  3732. box-sizing: border-box;
  3733. border: 0;
  3734. color: $primary-text-color;
  3735. cursor: pointer;
  3736. display: flex;
  3737. align-items: center;
  3738. font-size: 24px;
  3739. height: 20vmax;
  3740. margin: auto 0;
  3741. padding: 30px 15px;
  3742. position: absolute;
  3743. top: 0;
  3744. bottom: 0;
  3745. }
  3746. .media-modal__nav--left {
  3747. left: 0;
  3748. }
  3749. .media-modal__nav--right {
  3750. right: 0;
  3751. }
  3752. .media-modal__pagination {
  3753. width: 100%;
  3754. text-align: center;
  3755. position: absolute;
  3756. left: 0;
  3757. bottom: 20px;
  3758. pointer-events: none;
  3759. }
  3760. .media-modal__meta {
  3761. text-align: center;
  3762. position: absolute;
  3763. left: 0;
  3764. bottom: 20px;
  3765. width: 100%;
  3766. pointer-events: none;
  3767. &--shifted {
  3768. bottom: 62px;
  3769. }
  3770. a {
  3771. pointer-events: auto;
  3772. text-decoration: none;
  3773. font-weight: 500;
  3774. color: $ui-secondary-color;
  3775. &:hover,
  3776. &:focus,
  3777. &:active {
  3778. text-decoration: underline;
  3779. }
  3780. }
  3781. }
  3782. .media-modal__page-dot {
  3783. display: inline-block;
  3784. }
  3785. .media-modal__button {
  3786. background-color: $primary-text-color;
  3787. height: 12px;
  3788. width: 12px;
  3789. border-radius: 6px;
  3790. margin: 10px;
  3791. padding: 0;
  3792. border: 0;
  3793. font-size: 0;
  3794. }
  3795. .media-modal__button--active {
  3796. background-color: $highlight-text-color;
  3797. }
  3798. .media-modal__close {
  3799. position: absolute;
  3800. right: 8px;
  3801. top: 8px;
  3802. z-index: 100;
  3803. }
  3804. .onboarding-modal,
  3805. .error-modal,
  3806. .embed-modal {
  3807. background: $ui-secondary-color;
  3808. color: $inverted-text-color;
  3809. border-radius: 8px;
  3810. overflow: hidden;
  3811. display: flex;
  3812. flex-direction: column;
  3813. }
  3814. .error-modal__body {
  3815. height: 80vh;
  3816. width: 80vw;
  3817. max-width: 520px;
  3818. max-height: 420px;
  3819. position: relative;
  3820. & > div {
  3821. position: absolute;
  3822. top: 0;
  3823. left: 0;
  3824. width: 100%;
  3825. height: 100%;
  3826. box-sizing: border-box;
  3827. padding: 25px;
  3828. display: none;
  3829. flex-direction: column;
  3830. align-items: center;
  3831. justify-content: center;
  3832. display: flex;
  3833. opacity: 0;
  3834. user-select: text;
  3835. }
  3836. }
  3837. .error-modal__body {
  3838. display: flex;
  3839. flex-direction: column;
  3840. justify-content: center;
  3841. align-items: center;
  3842. text-align: center;
  3843. }
  3844. .onboarding-modal__paginator,
  3845. .error-modal__footer {
  3846. flex: 0 0 auto;
  3847. background: darken($ui-secondary-color, 8%);
  3848. display: flex;
  3849. padding: 25px;
  3850. & > div {
  3851. min-width: 33px;
  3852. }
  3853. .onboarding-modal__nav,
  3854. .error-modal__nav {
  3855. color: $lighter-text-color;
  3856. border: 0;
  3857. font-size: 14px;
  3858. font-weight: 500;
  3859. padding: 10px 25px;
  3860. line-height: inherit;
  3861. height: auto;
  3862. margin: -10px;
  3863. border-radius: 4px;
  3864. background-color: transparent;
  3865. &:hover,
  3866. &:focus,
  3867. &:active {
  3868. color: darken($lighter-text-color, 4%);
  3869. background-color: darken($ui-secondary-color, 16%);
  3870. }
  3871. &.onboarding-modal__done,
  3872. &.onboarding-modal__next {
  3873. color: $inverted-text-color;
  3874. &:hover,
  3875. &:focus,
  3876. &:active {
  3877. color: lighten($inverted-text-color, 4%);
  3878. }
  3879. }
  3880. }
  3881. }
  3882. .error-modal__footer {
  3883. justify-content: center;
  3884. }
  3885. .display-case {
  3886. text-align: center;
  3887. font-size: 15px;
  3888. margin-bottom: 15px;
  3889. &__label {
  3890. font-weight: 500;
  3891. color: $inverted-text-color;
  3892. margin-bottom: 5px;
  3893. text-transform: uppercase;
  3894. font-size: 12px;
  3895. }
  3896. &__case {
  3897. background: $ui-base-color;
  3898. color: $secondary-text-color;
  3899. font-weight: 500;
  3900. padding: 10px;
  3901. border-radius: 4px;
  3902. }
  3903. }
  3904. .onboard-sliders {
  3905. display: inline-block;
  3906. max-width: 30px;
  3907. max-height: auto;
  3908. margin-left: 10px;
  3909. }
  3910. .boost-modal,
  3911. .confirmation-modal,
  3912. .report-modal,
  3913. .actions-modal,
  3914. .mute-modal,
  3915. .block-modal {
  3916. background: lighten($ui-secondary-color, 8%);
  3917. color: $inverted-text-color;
  3918. border-radius: 8px;
  3919. overflow: hidden;
  3920. max-width: 90vw;
  3921. width: 480px;
  3922. position: relative;
  3923. flex-direction: column;
  3924. .status__display-name {
  3925. display: block;
  3926. max-width: 100%;
  3927. padding-right: 25px;
  3928. }
  3929. .status__avatar {
  3930. height: 28px;
  3931. left: 10px;
  3932. position: absolute;
  3933. top: 10px;
  3934. width: 48px;
  3935. }
  3936. .status__content__spoiler-link {
  3937. color: lighten($secondary-text-color, 8%);
  3938. }
  3939. }
  3940. .actions-modal {
  3941. .status {
  3942. background: $white;
  3943. border-bottom-color: $ui-secondary-color;
  3944. padding-top: 10px;
  3945. padding-bottom: 10px;
  3946. }
  3947. .dropdown-menu__separator {
  3948. border-bottom-color: $ui-secondary-color;
  3949. }
  3950. }
  3951. .boost-modal__container {
  3952. overflow-x: scroll;
  3953. padding: 10px;
  3954. .status {
  3955. user-select: text;
  3956. border-bottom: 0;
  3957. }
  3958. }
  3959. .boost-modal__action-bar,
  3960. .confirmation-modal__action-bar,
  3961. .mute-modal__action-bar,
  3962. .block-modal__action-bar {
  3963. display: flex;
  3964. justify-content: space-between;
  3965. background: $ui-secondary-color;
  3966. padding: 10px;
  3967. line-height: 36px;
  3968. & > div {
  3969. flex: 1 1 auto;
  3970. text-align: right;
  3971. color: $lighter-text-color;
  3972. padding-right: 10px;
  3973. }
  3974. .button {
  3975. flex: 0 0 auto;
  3976. }
  3977. }
  3978. .boost-modal__status-header {
  3979. font-size: 15px;
  3980. }
  3981. .boost-modal__status-time {
  3982. float: right;
  3983. font-size: 14px;
  3984. }
  3985. .mute-modal,
  3986. .block-modal {
  3987. line-height: 24px;
  3988. }
  3989. .mute-modal .react-toggle,
  3990. .block-modal .react-toggle {
  3991. vertical-align: middle;
  3992. }
  3993. .report-modal {
  3994. width: 90vw;
  3995. max-width: 700px;
  3996. }
  3997. .report-modal__container {
  3998. display: flex;
  3999. border-top: 1px solid $ui-secondary-color;
  4000. @media screen and (max-width: 480px) {
  4001. flex-wrap: wrap;
  4002. overflow-y: auto;
  4003. }
  4004. }
  4005. .report-modal__statuses,
  4006. .report-modal__comment {
  4007. box-sizing: border-box;
  4008. width: 50%;
  4009. @media screen and (max-width: 480px) {
  4010. width: 100%;
  4011. }
  4012. }
  4013. .report-modal__statuses,
  4014. .focal-point-modal__content {
  4015. flex: 1 1 auto;
  4016. min-height: 20vh;
  4017. max-height: 80vh;
  4018. overflow-y: auto;
  4019. overflow-x: hidden;
  4020. .status__content a {
  4021. color: $highlight-text-color;
  4022. }
  4023. .status__content,
  4024. .status__content p {
  4025. color: $inverted-text-color;
  4026. }
  4027. @media screen and (max-width: 480px) {
  4028. max-height: 10vh;
  4029. }
  4030. }
  4031. .focal-point-modal__content {
  4032. @media screen and (max-width: 480px) {
  4033. max-height: 40vh;
  4034. }
  4035. }
  4036. .report-modal__comment {
  4037. padding: 20px;
  4038. border-right: 1px solid $ui-secondary-color;
  4039. max-width: 320px;
  4040. p {
  4041. font-size: 14px;
  4042. line-height: 20px;
  4043. margin-bottom: 20px;
  4044. }
  4045. .setting-text {
  4046. display: block;
  4047. box-sizing: border-box;
  4048. width: 100%;
  4049. margin: 0;
  4050. color: $inverted-text-color;
  4051. background: $white;
  4052. padding: 10px;
  4053. font-family: inherit;
  4054. font-size: 14px;
  4055. resize: none;
  4056. border: 0;
  4057. outline: 0;
  4058. border-radius: 4px;
  4059. border: 1px solid $ui-secondary-color;
  4060. min-height: 100px;
  4061. max-height: 50vh;
  4062. margin-bottom: 10px;
  4063. &:focus {
  4064. border: 1px solid darken($ui-secondary-color, 8%);
  4065. }
  4066. &__wrapper {
  4067. background: $white;
  4068. border: 1px solid $ui-secondary-color;
  4069. margin-bottom: 10px;
  4070. border-radius: 4px;
  4071. .setting-text {
  4072. border: 0;
  4073. margin-bottom: 0;
  4074. border-radius: 0;
  4075. &:focus {
  4076. border: 0;
  4077. }
  4078. }
  4079. &__modifiers {
  4080. color: $inverted-text-color;
  4081. font-family: inherit;
  4082. font-size: 14px;
  4083. background: $white;
  4084. }
  4085. }
  4086. &__toolbar {
  4087. display: flex;
  4088. justify-content: space-between;
  4089. margin-bottom: 20px;
  4090. }
  4091. }
  4092. .setting-text-label {
  4093. display: block;
  4094. color: $inverted-text-color;
  4095. font-size: 14px;
  4096. font-weight: 500;
  4097. margin-bottom: 10px;
  4098. }
  4099. .setting-toggle {
  4100. margin-top: 20px;
  4101. margin-bottom: 24px;
  4102. &__label {
  4103. color: $inverted-text-color;
  4104. font-size: 14px;
  4105. }
  4106. }
  4107. @media screen and (max-width: 480px) {
  4108. padding: 10px;
  4109. max-width: 100%;
  4110. order: 2;
  4111. .setting-toggle {
  4112. margin-bottom: 4px;
  4113. }
  4114. }
  4115. }
  4116. .actions-modal {
  4117. max-height: 80vh;
  4118. max-width: 80vw;
  4119. .status {
  4120. overflow-y: auto;
  4121. max-height: 300px;
  4122. }
  4123. .actions-modal__item-label {
  4124. font-weight: 500;
  4125. }
  4126. ul {
  4127. overflow-y: auto;
  4128. flex-shrink: 0;
  4129. max-height: 80vh;
  4130. &.with-status {
  4131. max-height: calc(80vh - 75px);
  4132. }
  4133. li:empty {
  4134. margin: 0;
  4135. }
  4136. li:not(:empty) {
  4137. a {
  4138. color: $inverted-text-color;
  4139. display: flex;
  4140. padding: 12px 16px;
  4141. font-size: 15px;
  4142. align-items: center;
  4143. text-decoration: none;
  4144. &,
  4145. button {
  4146. transition: none;
  4147. }
  4148. &.active,
  4149. &:hover,
  4150. &:active,
  4151. &:focus {
  4152. &,
  4153. button {
  4154. background: $ui-highlight-color;
  4155. color: $primary-text-color;
  4156. }
  4157. }
  4158. button:first-child {
  4159. margin-right: 10px;
  4160. }
  4161. }
  4162. }
  4163. }
  4164. }
  4165. .confirmation-modal__action-bar,
  4166. .mute-modal__action-bar,
  4167. .block-modal__action-bar {
  4168. .confirmation-modal__secondary-button {
  4169. flex-shrink: 1;
  4170. }
  4171. }
  4172. .confirmation-modal__secondary-button,
  4173. .confirmation-modal__cancel-button,
  4174. .mute-modal__cancel-button,
  4175. .block-modal__cancel-button {
  4176. background-color: transparent;
  4177. color: $lighter-text-color;
  4178. font-size: 14px;
  4179. font-weight: 500;
  4180. &:hover,
  4181. &:focus,
  4182. &:active {
  4183. color: darken($lighter-text-color, 4%);
  4184. background-color: transparent;
  4185. }
  4186. }
  4187. .confirmation-modal__container,
  4188. .mute-modal__container,
  4189. .block-modal__container,
  4190. .report-modal__target {
  4191. padding: 30px;
  4192. font-size: 16px;
  4193. strong {
  4194. font-weight: 500;
  4195. @each $lang in $cjk-langs {
  4196. &:lang(#{$lang}) {
  4197. font-weight: 700;
  4198. }
  4199. }
  4200. }
  4201. }
  4202. .confirmation-modal__container,
  4203. .report-modal__target {
  4204. text-align: center;
  4205. }
  4206. .block-modal,
  4207. .mute-modal {
  4208. &__explanation {
  4209. margin-top: 20px;
  4210. }
  4211. .setting-toggle {
  4212. margin-top: 20px;
  4213. margin-bottom: 24px;
  4214. display: flex;
  4215. align-items: center;
  4216. &__label {
  4217. color: $inverted-text-color;
  4218. margin: 0;
  4219. margin-left: 8px;
  4220. }
  4221. }
  4222. }
  4223. .report-modal__target {
  4224. padding: 15px;
  4225. .media-modal__close {
  4226. top: 14px;
  4227. right: 15px;
  4228. }
  4229. }
  4230. .loading-bar {
  4231. background-color: $highlight-text-color;
  4232. height: 3px;
  4233. position: absolute;
  4234. top: 0;
  4235. left: 0;
  4236. z-index: 9999;
  4237. }
  4238. .media-gallery__gifv__label {
  4239. display: block;
  4240. position: absolute;
  4241. color: $primary-text-color;
  4242. background: rgba($base-overlay-background, 0.5);
  4243. bottom: 6px;
  4244. left: 6px;
  4245. padding: 2px 6px;
  4246. border-radius: 2px;
  4247. font-size: 11px;
  4248. font-weight: 600;
  4249. z-index: 1;
  4250. pointer-events: none;
  4251. opacity: 0.9;
  4252. transition: opacity 0.1s ease;
  4253. line-height: 18px;
  4254. }
  4255. .media-gallery__gifv {
  4256. &:hover {
  4257. .media-gallery__gifv__label {
  4258. opacity: 1;
  4259. }
  4260. }
  4261. }
  4262. .attachment-list {
  4263. display: flex;
  4264. font-size: 14px;
  4265. border: 1px solid lighten($ui-base-color, 8%);
  4266. border-radius: 4px;
  4267. margin-top: 14px;
  4268. overflow: hidden;
  4269. &__icon {
  4270. flex: 0 0 auto;
  4271. color: $dark-text-color;
  4272. padding: 8px 18px;
  4273. cursor: default;
  4274. border-right: 1px solid lighten($ui-base-color, 8%);
  4275. display: flex;
  4276. flex-direction: column;
  4277. align-items: center;
  4278. justify-content: center;
  4279. font-size: 26px;
  4280. .fa {
  4281. display: block;
  4282. }
  4283. }
  4284. &__list {
  4285. list-style: none;
  4286. padding: 4px 0;
  4287. padding-left: 8px;
  4288. display: flex;
  4289. flex-direction: column;
  4290. justify-content: center;
  4291. li {
  4292. display: block;
  4293. padding: 4px 0;
  4294. }
  4295. a {
  4296. text-decoration: none;
  4297. color: $dark-text-color;
  4298. font-weight: 500;
  4299. &:hover {
  4300. text-decoration: underline;
  4301. }
  4302. }
  4303. }
  4304. &.compact {
  4305. border: 0;
  4306. margin-top: 4px;
  4307. .attachment-list__list {
  4308. padding: 0;
  4309. display: block;
  4310. }
  4311. .fa {
  4312. color: $dark-text-color;
  4313. }
  4314. }
  4315. }
  4316. /* Media Gallery */
  4317. .media-gallery {
  4318. box-sizing: border-box;
  4319. margin-top: 8px;
  4320. overflow: hidden;
  4321. border-radius: 4px;
  4322. position: relative;
  4323. width: 100%;
  4324. }
  4325. .media-gallery__item {
  4326. border: 0;
  4327. box-sizing: border-box;
  4328. display: block;
  4329. float: left;
  4330. position: relative;
  4331. border-radius: 4px;
  4332. overflow: hidden;
  4333. &.standalone {
  4334. .media-gallery__item-gifv-thumbnail {
  4335. transform: none;
  4336. top: 0;
  4337. }
  4338. }
  4339. }
  4340. .media-gallery__item-thumbnail {
  4341. cursor: zoom-in;
  4342. display: block;
  4343. text-decoration: none;
  4344. color: $secondary-text-color;
  4345. position: relative;
  4346. z-index: 1;
  4347. &,
  4348. img {
  4349. height: 100%;
  4350. width: 100%;
  4351. }
  4352. img {
  4353. object-fit: cover;
  4354. }
  4355. }
  4356. .media-gallery__preview {
  4357. width: 100%;
  4358. height: 100%;
  4359. object-fit: cover;
  4360. position: absolute;
  4361. top: 0;
  4362. left: 0;
  4363. z-index: 0;
  4364. background: $base-overlay-background;
  4365. &--hidden {
  4366. display: none;
  4367. }
  4368. }
  4369. .media-gallery__gifv {
  4370. height: 100%;
  4371. overflow: hidden;
  4372. position: relative;
  4373. width: 100%;
  4374. }
  4375. .media-gallery__item-gifv-thumbnail {
  4376. cursor: zoom-in;
  4377. height: 100%;
  4378. object-fit: cover;
  4379. position: relative;
  4380. top: 50%;
  4381. transform: translateY(-50%);
  4382. width: 100%;
  4383. z-index: 1;
  4384. }
  4385. .media-gallery__item-thumbnail-label {
  4386. clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
  4387. clip: rect(1px, 1px, 1px, 1px);
  4388. overflow: hidden;
  4389. position: absolute;
  4390. }
  4391. /* End Media Gallery */
  4392. .detailed,
  4393. .fullscreen {
  4394. .video-player__volume__current,
  4395. .video-player__volume::before {
  4396. bottom: 27px;
  4397. }
  4398. .video-player__volume__handle {
  4399. bottom: 23px;
  4400. }
  4401. }
  4402. .audio-player {
  4403. box-sizing: border-box;
  4404. position: relative;
  4405. background: darken($ui-base-color, 8%);
  4406. border-radius: 4px;
  4407. padding-bottom: 44px;
  4408. direction: ltr;
  4409. &.editable {
  4410. border-radius: 0;
  4411. height: 100%;
  4412. }
  4413. &__waveform {
  4414. padding: 15px 0;
  4415. position: relative;
  4416. overflow: hidden;
  4417. &::before {
  4418. content: "";
  4419. display: block;
  4420. position: absolute;
  4421. border-top: 1px solid lighten($ui-base-color, 4%);
  4422. width: 100%;
  4423. height: 0;
  4424. left: 0;
  4425. top: calc(50% + 1px);
  4426. }
  4427. }
  4428. &__progress-placeholder {
  4429. background-color: rgba(lighten($ui-highlight-color, 8%), 0.5);
  4430. }
  4431. &__wave-placeholder {
  4432. background-color: lighten($ui-base-color, 16%);
  4433. }
  4434. .video-player__controls {
  4435. padding: 0 15px;
  4436. padding-top: 10px;
  4437. background: darken($ui-base-color, 8%);
  4438. border-top: 1px solid lighten($ui-base-color, 4%);
  4439. border-radius: 0 0 4px 4px;
  4440. }
  4441. }
  4442. .video-player {
  4443. overflow: hidden;
  4444. position: relative;
  4445. background: $base-shadow-color;
  4446. max-width: 100%;
  4447. border-radius: 4px;
  4448. box-sizing: border-box;
  4449. direction: ltr;
  4450. &.editable {
  4451. border-radius: 0;
  4452. height: 100% !important;
  4453. }
  4454. &:focus {
  4455. outline: 0;
  4456. }
  4457. video {
  4458. max-width: 100vw;
  4459. max-height: 80vh;
  4460. z-index: 1;
  4461. }
  4462. &.fullscreen {
  4463. width: 100% !important;
  4464. height: 100% !important;
  4465. margin: 0;
  4466. video {
  4467. max-width: 100% !important;
  4468. max-height: 100% !important;
  4469. width: 100% !important;
  4470. height: 100% !important;
  4471. outline: 0;
  4472. }
  4473. }
  4474. &.inline {
  4475. video {
  4476. object-fit: contain;
  4477. position: relative;
  4478. top: 50%;
  4479. transform: translateY(-50%);
  4480. }
  4481. }
  4482. &__controls {
  4483. position: absolute;
  4484. z-index: 2;
  4485. bottom: 0;
  4486. left: 0;
  4487. right: 0;
  4488. box-sizing: border-box;
  4489. background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);
  4490. padding: 0 15px;
  4491. opacity: 0;
  4492. transition: opacity .1s ease;
  4493. &.active {
  4494. opacity: 1;
  4495. }
  4496. }
  4497. &.inactive {
  4498. video,
  4499. .video-player__controls {
  4500. visibility: hidden;
  4501. }
  4502. }
  4503. &__spoiler {
  4504. display: none;
  4505. position: absolute;
  4506. top: 0;
  4507. left: 0;
  4508. width: 100%;
  4509. height: 100%;
  4510. z-index: 4;
  4511. border: 0;
  4512. background: $base-overlay-background;
  4513. color: $darker-text-color;
  4514. transition: none;
  4515. pointer-events: none;
  4516. &.active {
  4517. display: block;
  4518. pointer-events: auto;
  4519. &:hover,
  4520. &:active,
  4521. &:focus {
  4522. color: lighten($darker-text-color, 7%);
  4523. }
  4524. }
  4525. &__title {
  4526. display: block;
  4527. font-size: 14px;
  4528. }
  4529. &__subtitle {
  4530. display: block;
  4531. font-size: 11px;
  4532. font-weight: 500;
  4533. }
  4534. }
  4535. &__buttons-bar {
  4536. display: flex;
  4537. justify-content: space-between;
  4538. padding-bottom: 10px;
  4539. .video-player__download__icon {
  4540. color: inherit;
  4541. }
  4542. }
  4543. &__buttons {
  4544. font-size: 16px;
  4545. white-space: nowrap;
  4546. overflow: hidden;
  4547. text-overflow: ellipsis;
  4548. &.left {
  4549. button {
  4550. padding-left: 0;
  4551. }
  4552. }
  4553. &.right {
  4554. button {
  4555. padding-right: 0;
  4556. }
  4557. }
  4558. button {
  4559. background: transparent;
  4560. padding: 2px 10px;
  4561. font-size: 16px;
  4562. border: 0;
  4563. color: rgba($white, 0.75);
  4564. &:active,
  4565. &:hover,
  4566. &:focus {
  4567. color: $white;
  4568. }
  4569. }
  4570. }
  4571. &__time-sep,
  4572. &__time-total,
  4573. &__time-current {
  4574. font-size: 14px;
  4575. font-weight: 500;
  4576. }
  4577. &__time-current {
  4578. color: $white;
  4579. margin-left: 60px;
  4580. }
  4581. &__time-sep {
  4582. display: inline-block;
  4583. margin: 0 6px;
  4584. }
  4585. &__time-sep,
  4586. &__time-total {
  4587. color: $white;
  4588. }
  4589. &__volume {
  4590. cursor: pointer;
  4591. height: 24px;
  4592. display: inline;
  4593. &::before {
  4594. content: "";
  4595. width: 50px;
  4596. background: rgba($white, 0.35);
  4597. border-radius: 4px;
  4598. display: block;
  4599. position: absolute;
  4600. height: 4px;
  4601. left: 70px;
  4602. bottom: 20px;
  4603. }
  4604. &__current {
  4605. display: block;
  4606. position: absolute;
  4607. height: 4px;
  4608. border-radius: 4px;
  4609. left: 70px;
  4610. bottom: 20px;
  4611. background: lighten($ui-highlight-color, 8%);
  4612. }
  4613. &__handle {
  4614. position: absolute;
  4615. z-index: 3;
  4616. border-radius: 50%;
  4617. width: 12px;
  4618. height: 12px;
  4619. bottom: 16px;
  4620. left: 70px;
  4621. transition: opacity .1s ease;
  4622. background: lighten($ui-highlight-color, 8%);
  4623. box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);
  4624. pointer-events: none;
  4625. }
  4626. }
  4627. &__link {
  4628. padding: 2px 10px;
  4629. a {
  4630. text-decoration: none;
  4631. font-size: 14px;
  4632. font-weight: 500;
  4633. color: $white;
  4634. &:hover,
  4635. &:active,
  4636. &:focus {
  4637. text-decoration: underline;
  4638. }
  4639. }
  4640. }
  4641. &__seek {
  4642. cursor: pointer;
  4643. height: 24px;
  4644. position: relative;
  4645. &::before {
  4646. content: "";
  4647. width: 100%;
  4648. background: rgba($white, 0.35);
  4649. border-radius: 4px;
  4650. display: block;
  4651. position: absolute;
  4652. height: 4px;
  4653. top: 10px;
  4654. }
  4655. &__progress,
  4656. &__buffer {
  4657. display: block;
  4658. position: absolute;
  4659. height: 4px;
  4660. border-radius: 4px;
  4661. top: 10px;
  4662. background: lighten($ui-highlight-color, 8%);
  4663. }
  4664. &__buffer {
  4665. background: rgba($white, 0.2);
  4666. }
  4667. &__handle {
  4668. position: absolute;
  4669. z-index: 3;
  4670. opacity: 0;
  4671. border-radius: 50%;
  4672. width: 12px;
  4673. height: 12px;
  4674. top: 6px;
  4675. margin-left: -6px;
  4676. transition: opacity .1s ease;
  4677. background: lighten($ui-highlight-color, 8%);
  4678. box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);
  4679. pointer-events: none;
  4680. &.active {
  4681. opacity: 1;
  4682. }
  4683. }
  4684. &:hover {
  4685. .video-player__seek__handle {
  4686. opacity: 1;
  4687. }
  4688. }
  4689. }
  4690. &.detailed,
  4691. &.fullscreen {
  4692. .video-player__buttons {
  4693. button {
  4694. padding-top: 10px;
  4695. padding-bottom: 10px;
  4696. }
  4697. }
  4698. }
  4699. }
  4700. .gifv {
  4701. video {
  4702. max-width: 100vw;
  4703. max-height: 80vh;
  4704. }
  4705. }
  4706. .directory {
  4707. &__list {
  4708. width: 100%;
  4709. margin: 10px 0;
  4710. transition: opacity 100ms ease-in;
  4711. &.loading {
  4712. opacity: 0.7;
  4713. }
  4714. @media screen and (max-width: $no-gap-breakpoint) {
  4715. margin: 0;
  4716. }
  4717. }
  4718. &__card {
  4719. box-sizing: border-box;
  4720. margin-bottom: 10px;
  4721. &__img {
  4722. height: 125px;
  4723. position: relative;
  4724. background: darken($ui-base-color, 12%);
  4725. overflow: hidden;
  4726. img {
  4727. display: block;
  4728. width: 100%;
  4729. height: 100%;
  4730. margin: 0;
  4731. object-fit: cover;
  4732. }
  4733. }
  4734. &__bar {
  4735. display: flex;
  4736. align-items: center;
  4737. background: lighten($ui-base-color, 4%);
  4738. padding: 10px;
  4739. &__name {
  4740. flex: 1 1 auto;
  4741. display: flex;
  4742. align-items: center;
  4743. text-decoration: none;
  4744. overflow: hidden;
  4745. }
  4746. &__relationship {
  4747. width: 23px;
  4748. min-height: 1px;
  4749. flex: 0 0 auto;
  4750. }
  4751. .avatar {
  4752. flex: 0 0 auto;
  4753. width: 48px;
  4754. height: 48px;
  4755. padding-top: 2px;
  4756. img {
  4757. width: 100%;
  4758. height: 100%;
  4759. display: block;
  4760. margin: 0;
  4761. border-radius: 4px;
  4762. background: darken($ui-base-color, 8%);
  4763. object-fit: cover;
  4764. }
  4765. }
  4766. .display-name {
  4767. margin-left: 15px;
  4768. text-align: left;
  4769. strong {
  4770. font-size: 15px;
  4771. color: $primary-text-color;
  4772. font-weight: 500;
  4773. overflow: hidden;
  4774. text-overflow: ellipsis;
  4775. }
  4776. span {
  4777. display: block;
  4778. font-size: 14px;
  4779. color: $darker-text-color;
  4780. font-weight: 400;
  4781. overflow: hidden;
  4782. text-overflow: ellipsis;
  4783. }
  4784. }
  4785. }
  4786. &__extra {
  4787. background: $ui-base-color;
  4788. display: flex;
  4789. align-items: center;
  4790. justify-content: center;
  4791. .accounts-table__count {
  4792. width: 33.33%;
  4793. flex: 0 0 auto;
  4794. padding: 15px 0;
  4795. }
  4796. .account__header__content {
  4797. box-sizing: border-box;
  4798. padding: 15px 10px;
  4799. border-bottom: 1px solid lighten($ui-base-color, 8%);
  4800. width: 100%;
  4801. min-height: 18px + 30px;
  4802. white-space: nowrap;
  4803. overflow: hidden;
  4804. text-overflow: ellipsis;
  4805. p {
  4806. display: none;
  4807. &:first-child {
  4808. display: inline;
  4809. }
  4810. }
  4811. br {
  4812. display: none;
  4813. }
  4814. }
  4815. }
  4816. }
  4817. }
  4818. .account-gallery__container {
  4819. display: flex;
  4820. flex-wrap: wrap;
  4821. padding: 4px 2px;
  4822. }
  4823. .account-gallery__item {
  4824. border: 0;
  4825. box-sizing: border-box;
  4826. display: block;
  4827. position: relative;
  4828. border-radius: 4px;
  4829. overflow: hidden;
  4830. margin: 2px;
  4831. &__icons {
  4832. position: absolute;
  4833. top: 50%;
  4834. left: 50%;
  4835. transform: translate(-50%, -50%);
  4836. font-size: 24px;
  4837. }
  4838. }
  4839. .notification__filter-bar,
  4840. .account__section-headline {
  4841. background: darken($ui-base-color, 4%);
  4842. border-bottom: 1px solid lighten($ui-base-color, 8%);
  4843. cursor: default;
  4844. display: flex;
  4845. flex-shrink: 0;
  4846. button {
  4847. background: darken($ui-base-color, 4%);
  4848. border: 0;
  4849. margin: 0;
  4850. }
  4851. button,
  4852. a {
  4853. display: block;
  4854. flex: 1 1 auto;
  4855. color: $darker-text-color;
  4856. padding: 15px 0;
  4857. font-size: 14px;
  4858. font-weight: 500;
  4859. text-align: center;
  4860. text-decoration: none;
  4861. position: relative;
  4862. width: 100%;
  4863. white-space: nowrap;
  4864. &.active {
  4865. color: $secondary-text-color;
  4866. &::before,
  4867. &::after {
  4868. display: block;
  4869. content: "";
  4870. position: absolute;
  4871. bottom: 0;
  4872. left: 50%;
  4873. width: 0;
  4874. height: 0;
  4875. transform: translateX(-50%);
  4876. border-style: solid;
  4877. border-width: 0 10px 10px;
  4878. border-color: transparent transparent lighten($ui-base-color, 8%);
  4879. }
  4880. &::after {
  4881. bottom: -1px;
  4882. border-color: transparent transparent $ui-base-color;
  4883. }
  4884. }
  4885. }
  4886. &.directory__section-headline {
  4887. background: darken($ui-base-color, 2%);
  4888. border-bottom-color: transparent;
  4889. a,
  4890. button {
  4891. &.active {
  4892. &::before {
  4893. display: none;
  4894. }
  4895. &::after {
  4896. border-color: transparent transparent darken($ui-base-color, 7%);
  4897. }
  4898. }
  4899. }
  4900. }
  4901. }
  4902. .filter-form {
  4903. background: $ui-base-color;
  4904. &__column {
  4905. padding: 10px 15px;
  4906. }
  4907. .radio-button {
  4908. display: block;
  4909. }
  4910. }
  4911. .radio-button {
  4912. font-size: 14px;
  4913. position: relative;
  4914. display: inline-block;
  4915. padding: 6px 0;
  4916. line-height: 18px;
  4917. cursor: default;
  4918. white-space: nowrap;
  4919. overflow: hidden;
  4920. text-overflow: ellipsis;
  4921. cursor: pointer;
  4922. input[type=radio],
  4923. input[type=checkbox] {
  4924. display: none;
  4925. }
  4926. &__input {
  4927. display: inline-block;
  4928. position: relative;
  4929. border: 1px solid $ui-primary-color;
  4930. box-sizing: border-box;
  4931. width: 18px;
  4932. height: 18px;
  4933. flex: 0 0 auto;
  4934. margin-right: 10px;
  4935. top: -1px;
  4936. border-radius: 50%;
  4937. vertical-align: middle;
  4938. &.checked {
  4939. border-color: lighten($ui-highlight-color, 8%);
  4940. background: lighten($ui-highlight-color, 8%);
  4941. }
  4942. }
  4943. }
  4944. ::-webkit-scrollbar-thumb {
  4945. border-radius: 0;
  4946. }
  4947. .search-popout {
  4948. @include search-popout;
  4949. }
  4950. noscript {
  4951. text-align: center;
  4952. img {
  4953. width: 200px;
  4954. opacity: 0.5;
  4955. animation: flicker 4s infinite;
  4956. }
  4957. div {
  4958. font-size: 14px;
  4959. margin: 30px auto;
  4960. color: $secondary-text-color;
  4961. max-width: 400px;
  4962. a {
  4963. color: $highlight-text-color;
  4964. text-decoration: underline;
  4965. &:hover {
  4966. text-decoration: none;
  4967. }
  4968. }
  4969. }
  4970. }
  4971. @keyframes flicker {
  4972. 0% { opacity: 1; }
  4973. 30% { opacity: 0.75; }
  4974. 100% { opacity: 1; }
  4975. }
  4976. @media screen and (max-width: 630px) and (max-height: 400px) {
  4977. $duration: 400ms;
  4978. $delay: 100ms;
  4979. .tabs-bar,
  4980. .search {
  4981. will-change: margin-top;
  4982. transition: margin-top $duration $delay;
  4983. }
  4984. .navigation-bar {
  4985. will-change: padding-bottom;
  4986. transition: padding-bottom $duration $delay;
  4987. }
  4988. .navigation-bar {
  4989. & > a:first-child {
  4990. will-change: margin-top, margin-left, margin-right, width;
  4991. transition: margin-top $duration $delay, margin-left $duration ($duration + $delay), margin-right $duration ($duration + $delay);
  4992. }
  4993. & > .navigation-bar__profile-edit {
  4994. will-change: margin-top;
  4995. transition: margin-top $duration $delay;
  4996. }
  4997. .navigation-bar__actions {
  4998. & > .icon-button.close {
  4999. will-change: opacity transform;
  5000. transition: opacity $duration * 0.5 $delay,
  5001. transform $duration $delay;
  5002. }
  5003. & > .compose__action-bar .icon-button {
  5004. will-change: opacity transform;
  5005. transition: opacity $duration * 0.5 $delay + $duration * 0.5,
  5006. transform $duration $delay;
  5007. }
  5008. }
  5009. }
  5010. .is-composing {
  5011. .tabs-bar,
  5012. .search {
  5013. margin-top: -50px;
  5014. }
  5015. .navigation-bar {
  5016. padding-bottom: 0;
  5017. & > a:first-child {
  5018. margin: -100px 10px 0 -50px;
  5019. }
  5020. .navigation-bar__profile {
  5021. padding-top: 2px;
  5022. }
  5023. .navigation-bar__profile-edit {
  5024. position: absolute;
  5025. margin-top: -60px;
  5026. }
  5027. .navigation-bar__actions {
  5028. .icon-button.close {
  5029. pointer-events: auto;
  5030. opacity: 1;
  5031. transform: scale(1, 1) translate(0, 0);
  5032. bottom: 5px;
  5033. }
  5034. .compose__action-bar .icon-button {
  5035. pointer-events: none;
  5036. opacity: 0;
  5037. transform: scale(0, 1) translate(100%, 0);
  5038. }
  5039. }
  5040. }
  5041. }
  5042. }
  5043. .embed-modal {
  5044. width: auto;
  5045. max-width: 80vw;
  5046. max-height: 80vh;
  5047. h4 {
  5048. padding: 30px;
  5049. font-weight: 500;
  5050. font-size: 16px;
  5051. text-align: center;
  5052. }
  5053. .embed-modal__container {
  5054. padding: 10px;
  5055. .hint {
  5056. margin-bottom: 15px;
  5057. }
  5058. .embed-modal__html {
  5059. outline: 0;
  5060. box-sizing: border-box;
  5061. display: block;
  5062. width: 100%;
  5063. border: 0;
  5064. padding: 10px;
  5065. font-family: $font-monospace, monospace;
  5066. background: $ui-base-color;
  5067. color: $primary-text-color;
  5068. font-size: 14px;
  5069. margin: 0;
  5070. margin-bottom: 15px;
  5071. border-radius: 4px;
  5072. &::-moz-focus-inner {
  5073. border: 0;
  5074. }
  5075. &::-moz-focus-inner,
  5076. &:focus,
  5077. &:active {
  5078. outline: 0 !important;
  5079. }
  5080. &:focus {
  5081. background: lighten($ui-base-color, 4%);
  5082. }
  5083. @media screen and (max-width: 600px) {
  5084. font-size: 16px;
  5085. }
  5086. }
  5087. .embed-modal__iframe {
  5088. width: 400px;
  5089. max-width: 100%;
  5090. overflow: hidden;
  5091. border: 0;
  5092. border-radius: 4px;
  5093. }
  5094. }
  5095. }
  5096. .account__moved-note {
  5097. padding: 14px 10px;
  5098. padding-bottom: 16px;
  5099. background: lighten($ui-base-color, 4%);
  5100. border-top: 1px solid lighten($ui-base-color, 8%);
  5101. border-bottom: 1px solid lighten($ui-base-color, 8%);
  5102. &__message {
  5103. position: relative;
  5104. margin-left: 58px;
  5105. color: $dark-text-color;
  5106. padding: 8px 0;
  5107. padding-top: 0;
  5108. padding-bottom: 4px;
  5109. font-size: 14px;
  5110. > span {
  5111. display: block;
  5112. overflow: hidden;
  5113. text-overflow: ellipsis;
  5114. }
  5115. }
  5116. &__icon-wrapper {
  5117. left: -26px;
  5118. position: absolute;
  5119. }
  5120. .detailed-status__display-avatar {
  5121. position: relative;
  5122. }
  5123. .detailed-status__display-name {
  5124. margin-bottom: 0;
  5125. }
  5126. }
  5127. .column-inline-form {
  5128. padding: 15px;
  5129. padding-right: 0;
  5130. display: flex;
  5131. justify-content: flex-start;
  5132. align-items: center;
  5133. background: lighten($ui-base-color, 4%);
  5134. label {
  5135. flex: 1 1 auto;
  5136. input {
  5137. width: 100%;
  5138. &:focus {
  5139. outline: 0;
  5140. }
  5141. }
  5142. }
  5143. .icon-button {
  5144. flex: 0 0 auto;
  5145. margin: 0 10px;
  5146. }
  5147. }
  5148. .drawer__backdrop {
  5149. cursor: pointer;
  5150. position: absolute;
  5151. top: 0;
  5152. left: 0;
  5153. width: 100%;
  5154. height: 100%;
  5155. background: rgba($base-overlay-background, 0.5);
  5156. }
  5157. .list-editor {
  5158. background: $ui-base-color;
  5159. flex-direction: column;
  5160. border-radius: 8px;
  5161. box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
  5162. width: 380px;
  5163. overflow: hidden;
  5164. @media screen and (max-width: 420px) {
  5165. width: 90%;
  5166. }
  5167. h4 {
  5168. padding: 15px 0;
  5169. background: lighten($ui-base-color, 13%);
  5170. font-weight: 500;
  5171. font-size: 16px;
  5172. text-align: center;
  5173. border-radius: 8px 8px 0 0;
  5174. }
  5175. .drawer__pager {
  5176. height: 50vh;
  5177. }
  5178. .drawer__inner {
  5179. border-radius: 0 0 8px 8px;
  5180. &.backdrop {
  5181. width: calc(100% - 60px);
  5182. box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
  5183. border-radius: 0 0 0 8px;
  5184. }
  5185. }
  5186. &__accounts {
  5187. overflow-y: auto;
  5188. }
  5189. .account__display-name {
  5190. &:hover strong {
  5191. text-decoration: none;
  5192. }
  5193. }
  5194. .account__avatar {
  5195. cursor: default;
  5196. }
  5197. .search {
  5198. margin-bottom: 0;
  5199. }
  5200. }
  5201. .list-adder {
  5202. background: $ui-base-color;
  5203. flex-direction: column;
  5204. border-radius: 8px;
  5205. box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
  5206. width: 380px;
  5207. overflow: hidden;
  5208. @media screen and (max-width: 420px) {
  5209. width: 90%;
  5210. }
  5211. &__account {
  5212. background: lighten($ui-base-color, 13%);
  5213. }
  5214. &__lists {
  5215. background: lighten($ui-base-color, 13%);
  5216. height: 50vh;
  5217. border-radius: 0 0 8px 8px;
  5218. overflow-y: auto;
  5219. }
  5220. .list {
  5221. padding: 10px;
  5222. border-bottom: 1px solid lighten($ui-base-color, 8%);
  5223. }
  5224. .list__wrapper {
  5225. display: flex;
  5226. }
  5227. .list__display-name {
  5228. flex: 1 1 auto;
  5229. overflow: hidden;
  5230. text-decoration: none;
  5231. font-size: 16px;
  5232. padding: 10px;
  5233. }
  5234. }
  5235. .focal-point {
  5236. position: relative;
  5237. cursor: move;
  5238. overflow: hidden;
  5239. height: 100%;
  5240. display: flex;
  5241. justify-content: center;
  5242. align-items: center;
  5243. background: $base-shadow-color;
  5244. img,
  5245. video,
  5246. canvas {
  5247. display: block;
  5248. max-height: 80vh;
  5249. width: 100%;
  5250. height: auto;
  5251. margin: 0;
  5252. object-fit: contain;
  5253. background: $base-shadow-color;
  5254. }
  5255. &__reticle {
  5256. position: absolute;
  5257. width: 100px;
  5258. height: 100px;
  5259. transform: translate(-50%, -50%);
  5260. background: url('~images/reticle.png') no-repeat 0 0;
  5261. border-radius: 50%;
  5262. box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);
  5263. }
  5264. &__overlay {
  5265. position: absolute;
  5266. width: 100%;
  5267. height: 100%;
  5268. top: 0;
  5269. left: 0;
  5270. }
  5271. &__preview {
  5272. position: absolute;
  5273. bottom: 10px;
  5274. right: 10px;
  5275. z-index: 2;
  5276. cursor: move;
  5277. transition: opacity 0.1s ease;
  5278. &:hover {
  5279. opacity: 0.5;
  5280. }
  5281. strong {
  5282. color: $primary-text-color;
  5283. font-size: 14px;
  5284. font-weight: 500;
  5285. display: block;
  5286. margin-bottom: 5px;
  5287. }
  5288. div {
  5289. border-radius: 4px;
  5290. box-shadow: 0 0 14px rgba($base-shadow-color, 0.2);
  5291. }
  5292. }
  5293. @media screen and (max-width: 480px) {
  5294. img,
  5295. video {
  5296. max-height: 100%;
  5297. }
  5298. &__preview {
  5299. display: none;
  5300. }
  5301. }
  5302. }
  5303. .account__header__content {
  5304. color: $darker-text-color;
  5305. font-size: 14px;
  5306. font-weight: 400;
  5307. overflow: hidden;
  5308. word-break: normal;
  5309. word-wrap: break-word;
  5310. p {
  5311. margin-bottom: 20px;
  5312. &:last-child {
  5313. margin-bottom: 0;
  5314. }
  5315. }
  5316. a {
  5317. color: inherit;
  5318. text-decoration: underline;
  5319. &:hover {
  5320. text-decoration: none;
  5321. }
  5322. }
  5323. }
  5324. .account__header {
  5325. overflow: hidden;
  5326. &.inactive {
  5327. opacity: 0.5;
  5328. .account__header__image,
  5329. .account__avatar {
  5330. filter: grayscale(100%);
  5331. }
  5332. }
  5333. &__info {
  5334. position: absolute;
  5335. top: 10px;
  5336. left: 10px;
  5337. }
  5338. &__image {
  5339. overflow: hidden;
  5340. height: 145px;
  5341. position: relative;
  5342. background: darken($ui-base-color, 4%);
  5343. img {
  5344. object-fit: cover;
  5345. display: block;
  5346. width: 100%;
  5347. height: 100%;
  5348. margin: 0;
  5349. }
  5350. }
  5351. &__bar {
  5352. position: relative;
  5353. background: lighten($ui-base-color, 4%);
  5354. padding: 5px;
  5355. border-bottom: 1px solid lighten($ui-base-color, 12%);
  5356. .avatar {
  5357. display: block;
  5358. flex: 0 0 auto;
  5359. width: 94px;
  5360. margin-left: -2px;
  5361. .account__avatar {
  5362. background: darken($ui-base-color, 8%);
  5363. border: 2px solid lighten($ui-base-color, 4%);
  5364. }
  5365. }
  5366. }
  5367. &__tabs {
  5368. display: flex;
  5369. align-items: flex-start;
  5370. padding: 7px 5px;
  5371. margin-top: -55px;
  5372. &__buttons {
  5373. display: flex;
  5374. align-items: center;
  5375. padding-top: 55px;
  5376. overflow: hidden;
  5377. .icon-button {
  5378. border: 1px solid lighten($ui-base-color, 12%);
  5379. border-radius: 4px;
  5380. box-sizing: content-box;
  5381. padding: 2px;
  5382. }
  5383. .button {
  5384. margin: 0 8px;
  5385. }
  5386. }
  5387. &__name {
  5388. padding: 5px;
  5389. .account-role {
  5390. vertical-align: top;
  5391. }
  5392. .emojione {
  5393. width: 22px;
  5394. height: 22px;
  5395. }
  5396. h1 {
  5397. font-size: 16px;
  5398. line-height: 24px;
  5399. color: $primary-text-color;
  5400. font-weight: 500;
  5401. overflow: hidden;
  5402. white-space: nowrap;
  5403. text-overflow: ellipsis;
  5404. small {
  5405. display: block;
  5406. font-size: 14px;
  5407. color: $darker-text-color;
  5408. font-weight: 400;
  5409. overflow: hidden;
  5410. text-overflow: ellipsis;
  5411. }
  5412. }
  5413. }
  5414. .spacer {
  5415. flex: 1 1 auto;
  5416. }
  5417. }
  5418. &__bio {
  5419. overflow: hidden;
  5420. margin: 0 -5px;
  5421. .account__header__content {
  5422. padding: 20px 15px;
  5423. padding-bottom: 5px;
  5424. color: $primary-text-color;
  5425. }
  5426. .account__header__fields {
  5427. margin: 0;
  5428. border-top: 1px solid lighten($ui-base-color, 12%);
  5429. a {
  5430. color: lighten($ui-highlight-color, 8%);
  5431. }
  5432. dl:first-child .verified {
  5433. border-radius: 0 4px 0 0;
  5434. }
  5435. .verified a {
  5436. color: $valid-value-color;
  5437. }
  5438. }
  5439. }
  5440. &__extra {
  5441. margin-top: 4px;
  5442. &__links {
  5443. font-size: 14px;
  5444. color: $darker-text-color;
  5445. padding: 10px 0;
  5446. a {
  5447. display: inline-block;
  5448. color: $darker-text-color;
  5449. text-decoration: none;
  5450. padding: 5px 10px;
  5451. font-weight: 500;
  5452. strong {
  5453. font-weight: 700;
  5454. color: $primary-text-color;
  5455. }
  5456. }
  5457. }
  5458. }
  5459. }
  5460. .trends {
  5461. &__header {
  5462. color: $dark-text-color;
  5463. background: lighten($ui-base-color, 2%);
  5464. border-bottom: 1px solid darken($ui-base-color, 4%);
  5465. font-weight: 500;
  5466. padding: 15px;
  5467. font-size: 16px;
  5468. cursor: default;
  5469. .fa {
  5470. display: inline-block;
  5471. margin-right: 5px;
  5472. }
  5473. }
  5474. &__item {
  5475. display: flex;
  5476. align-items: center;
  5477. padding: 15px;
  5478. border-bottom: 1px solid lighten($ui-base-color, 8%);
  5479. &:last-child {
  5480. border-bottom: 0;
  5481. }
  5482. &__name {
  5483. flex: 1 1 auto;
  5484. color: $dark-text-color;
  5485. overflow: hidden;
  5486. text-overflow: ellipsis;
  5487. white-space: nowrap;
  5488. strong {
  5489. font-weight: 500;
  5490. }
  5491. a {
  5492. color: $darker-text-color;
  5493. text-decoration: none;
  5494. font-size: 14px;
  5495. font-weight: 500;
  5496. display: block;
  5497. overflow: hidden;
  5498. text-overflow: ellipsis;
  5499. white-space: nowrap;
  5500. &:hover,
  5501. &:focus,
  5502. &:active {
  5503. span {
  5504. text-decoration: underline;
  5505. }
  5506. }
  5507. }
  5508. }
  5509. &__current {
  5510. flex: 0 0 auto;
  5511. font-size: 24px;
  5512. line-height: 36px;
  5513. font-weight: 500;
  5514. text-align: right;
  5515. padding-right: 15px;
  5516. margin-left: 5px;
  5517. color: $secondary-text-color;
  5518. }
  5519. &__sparkline {
  5520. flex: 0 0 auto;
  5521. width: 50px;
  5522. path:first-child {
  5523. fill: rgba($highlight-text-color, 0.25) !important;
  5524. fill-opacity: 1 !important;
  5525. }
  5526. path:last-child {
  5527. stroke: lighten($highlight-text-color, 6%) !important;
  5528. }
  5529. }
  5530. }
  5531. }
  5532. .conversation {
  5533. display: flex;
  5534. border-bottom: 1px solid lighten($ui-base-color, 8%);
  5535. padding: 5px;
  5536. padding-bottom: 0;
  5537. &:focus {
  5538. background: lighten($ui-base-color, 2%);
  5539. outline: 0;
  5540. }
  5541. &__avatar {
  5542. flex: 0 0 auto;
  5543. padding: 10px;
  5544. padding-top: 12px;
  5545. position: relative;
  5546. cursor: pointer;
  5547. }
  5548. &__unread {
  5549. display: inline-block;
  5550. background: $highlight-text-color;
  5551. border-radius: 50%;
  5552. width: 0.625rem;
  5553. height: 0.625rem;
  5554. margin: -.1ex .15em .1ex;
  5555. }
  5556. &__content {
  5557. flex: 1 1 auto;
  5558. padding: 10px 5px;
  5559. padding-right: 15px;
  5560. overflow: hidden;
  5561. &__info {
  5562. overflow: hidden;
  5563. display: flex;
  5564. flex-direction: row-reverse;
  5565. justify-content: space-between;
  5566. }
  5567. &__relative-time {
  5568. font-size: 15px;
  5569. color: $darker-text-color;
  5570. padding-left: 15px;
  5571. }
  5572. &__names {
  5573. color: $darker-text-color;
  5574. font-size: 15px;
  5575. white-space: nowrap;
  5576. overflow: hidden;
  5577. text-overflow: ellipsis;
  5578. margin-bottom: 4px;
  5579. flex-basis: 90px;
  5580. flex-grow: 1;
  5581. a {
  5582. color: $primary-text-color;
  5583. text-decoration: none;
  5584. &:hover,
  5585. &:focus,
  5586. &:active {
  5587. text-decoration: underline;
  5588. }
  5589. }
  5590. }
  5591. a {
  5592. word-break: break-word;
  5593. }
  5594. }
  5595. &--unread {
  5596. background: lighten($ui-base-color, 2%);
  5597. &:focus {
  5598. background: lighten($ui-base-color, 4%);
  5599. }
  5600. .conversation__content__info {
  5601. font-weight: 700;
  5602. }
  5603. .conversation__content__relative-time {
  5604. color: $primary-text-color;
  5605. }
  5606. }
  5607. }
  5608. .announcements {
  5609. background: lighten($ui-base-color, 8%);
  5610. font-size: 13px;
  5611. display: flex;
  5612. align-items: flex-end;
  5613. &__mastodon {
  5614. width: 124px;
  5615. flex: 0 0 auto;
  5616. @media screen and (max-width: 124px + 300px) {
  5617. display: none;
  5618. }
  5619. }
  5620. &__container {
  5621. width: calc(100% - 124px);
  5622. flex: 0 0 auto;
  5623. position: relative;
  5624. @media screen and (max-width: 124px + 300px) {
  5625. width: 100%;
  5626. }
  5627. }
  5628. &__item {
  5629. box-sizing: border-box;
  5630. width: 100%;
  5631. padding: 15px;
  5632. position: relative;
  5633. font-size: 15px;
  5634. line-height: 20px;
  5635. word-wrap: break-word;
  5636. font-weight: 400;
  5637. max-height: 50vh;
  5638. overflow: hidden;
  5639. display: flex;
  5640. flex-direction: column;
  5641. &__range {
  5642. display: block;
  5643. font-weight: 500;
  5644. margin-bottom: 10px;
  5645. padding-right: 18px;
  5646. }
  5647. &__unread {
  5648. position: absolute;
  5649. top: 19px;
  5650. right: 19px;
  5651. display: block;
  5652. background: $highlight-text-color;
  5653. border-radius: 50%;
  5654. width: 0.625rem;
  5655. height: 0.625rem;
  5656. }
  5657. }
  5658. &__pagination {
  5659. padding: 15px;
  5660. color: $darker-text-color;
  5661. position: absolute;
  5662. bottom: 3px;
  5663. right: 0;
  5664. }
  5665. }
  5666. .layout-multiple-columns .announcements__mastodon {
  5667. display: none;
  5668. }
  5669. .layout-multiple-columns .announcements__container {
  5670. width: 100%;
  5671. }
  5672. .reactions-bar {
  5673. display: flex;
  5674. flex-wrap: wrap;
  5675. align-items: center;
  5676. margin-top: 15px;
  5677. margin-left: -2px;
  5678. width: calc(100% - (90px - 33px));
  5679. &__item {
  5680. flex-shrink: 0;
  5681. background: lighten($ui-base-color, 12%);
  5682. border: 0;
  5683. border-radius: 3px;
  5684. margin: 2px;
  5685. cursor: pointer;
  5686. user-select: none;
  5687. padding: 0 6px;
  5688. display: flex;
  5689. align-items: center;
  5690. transition: all 100ms ease-in;
  5691. transition-property: background-color, color;
  5692. &__emoji {
  5693. display: block;
  5694. margin: 3px 0;
  5695. width: 16px;
  5696. height: 16px;
  5697. img {
  5698. display: block;
  5699. margin: 0;
  5700. width: 100%;
  5701. height: 100%;
  5702. min-width: auto;
  5703. min-height: auto;
  5704. vertical-align: bottom;
  5705. object-fit: contain;
  5706. }
  5707. }
  5708. &__count {
  5709. display: block;
  5710. min-width: 9px;
  5711. font-size: 13px;
  5712. font-weight: 500;
  5713. text-align: center;
  5714. margin-left: 6px;
  5715. color: $darker-text-color;
  5716. }
  5717. &:hover,
  5718. &:focus,
  5719. &:active {
  5720. background: lighten($ui-base-color, 16%);
  5721. transition: all 200ms ease-out;
  5722. transition-property: background-color, color;
  5723. &__count {
  5724. color: lighten($darker-text-color, 4%);
  5725. }
  5726. }
  5727. &.active {
  5728. transition: all 100ms ease-in;
  5729. transition-property: background-color, color;
  5730. background-color: mix(lighten($ui-base-color, 12%), $ui-highlight-color, 80%);
  5731. .reactions-bar__item__count {
  5732. color: lighten($highlight-text-color, 8%);
  5733. }
  5734. }
  5735. }
  5736. .emoji-picker-dropdown {
  5737. margin: 2px;
  5738. }
  5739. &:hover .emoji-button {
  5740. opacity: 0.85;
  5741. }
  5742. .emoji-button {
  5743. color: $darker-text-color;
  5744. margin: 0;
  5745. font-size: 16px;
  5746. width: auto;
  5747. flex-shrink: 0;
  5748. padding: 0 6px;
  5749. height: 22px;
  5750. display: flex;
  5751. align-items: center;
  5752. opacity: 0.5;
  5753. transition: all 100ms ease-in;
  5754. transition-property: background-color, color;
  5755. &:hover,
  5756. &:active,
  5757. &:focus {
  5758. opacity: 1;
  5759. color: lighten($darker-text-color, 4%);
  5760. transition: all 200ms ease-out;
  5761. transition-property: background-color, color;
  5762. }
  5763. }
  5764. &--empty {
  5765. .emoji-button {
  5766. padding: 0;
  5767. }
  5768. }
  5769. }