The code powering m.abunchtell.com https://m.abunchtell.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

5470 lines
92 KiB

  1. .app-body {
  2. -webkit-overflow-scrolling: touch;
  3. -ms-overflow-style: -ms-autohiding-scrollbar;
  4. }
  5. .button {
  6. background-color: $ui-highlight-color;
  7. border: 10px none;
  8. border-radius: 4px;
  9. box-sizing: border-box;
  10. color: $primary-text-color;
  11. cursor: pointer;
  12. display: inline-block;
  13. font-family: inherit;
  14. font-size: 14px;
  15. font-weight: 500;
  16. height: 36px;
  17. letter-spacing: 0;
  18. line-height: 36px;
  19. overflow: hidden;
  20. padding: 0 16px;
  21. position: relative;
  22. text-align: center;
  23. text-transform: uppercase;
  24. text-decoration: none;
  25. text-overflow: ellipsis;
  26. transition: all 100ms ease-in;
  27. white-space: nowrap;
  28. width: auto;
  29. &:active,
  30. &:focus,
  31. &:hover {
  32. background-color: lighten($ui-highlight-color, 10%);
  33. transition: all 200ms ease-out;
  34. }
  35. &--destructive {
  36. transition: none;
  37. &:active,
  38. &:focus,
  39. &:hover {
  40. background-color: $error-red;
  41. transition: none;
  42. }
  43. }
  44. &:disabled {
  45. background-color: $ui-primary-color;
  46. cursor: default;
  47. }
  48. &::-moz-focus-inner {
  49. border: 0;
  50. }
  51. &::-moz-focus-inner,
  52. &:focus,
  53. &:active {
  54. outline: 0 !important;
  55. }
  56. &.button-primary,
  57. &.button-alternative,
  58. &.button-secondary,
  59. &.button-alternative-2 {
  60. font-size: 16px;
  61. line-height: 36px;
  62. height: auto;
  63. text-transform: none;
  64. padding: 4px 16px;
  65. }
  66. &.button-alternative {
  67. color: $inverted-text-color;
  68. background: $ui-primary-color;
  69. &:active,
  70. &:focus,
  71. &:hover {
  72. background-color: lighten($ui-primary-color, 4%);
  73. }
  74. }
  75. &.button-alternative-2 {
  76. background: $ui-base-lighter-color;
  77. &:active,
  78. &:focus,
  79. &:hover {
  80. background-color: lighten($ui-base-lighter-color, 4%);
  81. }
  82. }
  83. &.button-secondary {
  84. color: $darker-text-color;
  85. background: transparent;
  86. padding: 3px 15px;
  87. border: 1px solid $ui-primary-color;
  88. &:active,
  89. &:focus,
  90. &:hover {
  91. border-color: lighten($ui-primary-color, 4%);
  92. color: lighten($darker-text-color, 4%);
  93. }
  94. }
  95. &.button--block {
  96. display: block;
  97. width: 100%;
  98. }
  99. }
  100. .column__wrapper {
  101. display: flex;
  102. flex: 1 1 auto;
  103. position: relative;
  104. }
  105. .icon-button {
  106. display: inline-block;
  107. padding: 0;
  108. color: $action-button-color;
  109. border: none;
  110. background: transparent;
  111. cursor: pointer;
  112. transition: color 100ms ease-in;
  113. &:hover,
  114. &:active,
  115. &:focus {
  116. color: lighten($action-button-color, 7%);
  117. transition: color 200ms ease-out;
  118. }
  119. &.disabled {
  120. color: darken($action-button-color, 13%);
  121. cursor: default;
  122. }
  123. &.active {
  124. color: $highlight-text-color;
  125. }
  126. &::-moz-focus-inner {
  127. border: 0;
  128. }
  129. &::-moz-focus-inner,
  130. &:focus,
  131. &:active {
  132. outline: 0 !important;
  133. }
  134. &.inverted {
  135. color: $lighter-text-color;
  136. &:hover,
  137. &:active,
  138. &:focus {
  139. color: darken($lighter-text-color, 7%);
  140. }
  141. &.disabled {
  142. color: lighten($lighter-text-color, 7%);
  143. }
  144. &.active {
  145. color: $highlight-text-color;
  146. &.disabled {
  147. color: lighten($highlight-text-color, 13%);
  148. }
  149. }
  150. }
  151. &.overlayed {
  152. box-sizing: content-box;
  153. background: rgba($base-overlay-background, 0.6);
  154. color: rgba($primary-text-color, 0.7);
  155. border-radius: 4px;
  156. padding: 2px;
  157. &:hover {
  158. background: rgba($base-overlay-background, 0.9);
  159. }
  160. }
  161. }
  162. .text-icon-button {
  163. color: $lighter-text-color;
  164. border: none;
  165. background: transparent;
  166. cursor: pointer;
  167. font-weight: 600;
  168. font-size: 11px;
  169. padding: 0 3px;
  170. line-height: 27px;
  171. outline: 0;
  172. transition: color 100ms ease-in;
  173. &:hover,
  174. &:active,
  175. &:focus {
  176. color: darken($lighter-text-color, 7%);
  177. transition: color 200ms ease-out;
  178. }
  179. &.disabled {
  180. color: lighten($lighter-text-color, 20%);
  181. cursor: default;
  182. }
  183. &.active {
  184. color: $highlight-text-color;
  185. }
  186. &::-moz-focus-inner {
  187. border: 0;
  188. }
  189. &::-moz-focus-inner,
  190. &:focus,
  191. &:active {
  192. outline: 0 !important;
  193. }
  194. }
  195. .dropdown-menu {
  196. position: absolute;
  197. }
  198. .invisible {
  199. font-size: 0;
  200. line-height: 0;
  201. display: inline-block;
  202. width: 0;
  203. height: 0;
  204. position: absolute;
  205. img,
  206. svg {
  207. margin: 0 !important;
  208. border: 0 !important;
  209. padding: 0 !important;
  210. width: 0 !important;
  211. height: 0 !important;
  212. }
  213. }
  214. .ellipsis {
  215. &::after {
  216. content: "…";
  217. }
  218. }
  219. .compose-form {
  220. padding: 10px;
  221. .compose-form__warning {
  222. color: $inverted-text-color;
  223. margin-bottom: 10px;
  224. background: $ui-primary-color;
  225. box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);
  226. padding: 8px 10px;
  227. border-radius: 4px;
  228. font-size: 13px;
  229. font-weight: 400;
  230. strong {
  231. color: $inverted-text-color;
  232. font-weight: 500;
  233. @each $lang in $cjk-langs {
  234. &:lang(#{$lang}) {
  235. font-weight: 700;
  236. }
  237. }
  238. }
  239. a {
  240. color: $lighter-text-color;
  241. font-weight: 500;
  242. text-decoration: underline;
  243. &:hover,
  244. &:active,
  245. &:focus {
  246. text-decoration: none;
  247. }
  248. }
  249. }
  250. .compose-form__autosuggest-wrapper {
  251. position: relative;
  252. .emoji-picker-dropdown {
  253. position: absolute;
  254. right: 5px;
  255. top: 5px;
  256. }
  257. }
  258. .autosuggest-textarea,
  259. .spoiler-input {
  260. position: relative;
  261. }
  262. .spoiler-input {
  263. height: 0;
  264. transform-origin: bottom;
  265. opacity: 0.0;
  266. &.spoiler-input--visible {
  267. height: 47px;
  268. opacity: 1.0;
  269. }
  270. }
  271. .autosuggest-textarea__textarea,
  272. .spoiler-input__input {
  273. display: block;
  274. box-sizing: border-box;
  275. width: 100%;
  276. margin: 0;
  277. color: $inverted-text-color;
  278. background: $simple-background-color;
  279. padding: 10px;
  280. font-family: inherit;
  281. font-size: 14px;
  282. resize: vertical;
  283. border: 0;
  284. outline: 0;
  285. &:focus {
  286. outline: 0;
  287. }
  288. @media screen and (max-width: 600px) {
  289. font-size: 16px;
  290. }
  291. }
  292. .spoiler-input__input {
  293. border-radius: 4px;
  294. }
  295. .autosuggest-textarea__textarea {
  296. min-height: 100px;
  297. border-radius: 4px 4px 0 0;
  298. padding-bottom: 0;
  299. padding-right: 10px + 22px;
  300. resize: none;
  301. @media screen and (max-width: 600px) {
  302. height: 100px !important; // prevent auto-resize textarea
  303. resize: vertical;
  304. }
  305. }
  306. .autosuggest-textarea__suggestions {
  307. box-sizing: border-box;
  308. display: none;
  309. position: absolute;
  310. top: 100%;
  311. width: 100%;
  312. z-index: 99;
  313. box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);
  314. background: $ui-secondary-color;
  315. border-radius: 0 0 4px 4px;
  316. color: $inverted-text-color;
  317. font-size: 14px;
  318. padding: 6px;
  319. &.autosuggest-textarea__suggestions--visible {
  320. display: block;
  321. }
  322. }
  323. .autosuggest-textarea__suggestions__item {
  324. padding: 10px;
  325. cursor: pointer;
  326. border-radius: 4px;
  327. &:hover,
  328. &:focus,
  329. &:active,
  330. &.selected {
  331. background: darken($ui-secondary-color, 10%);
  332. }
  333. }
  334. .autosuggest-account,
  335. .autosuggest-emoji {
  336. display: flex;
  337. flex-direction: row;
  338. align-items: center;
  339. justify-content: flex-start;
  340. line-height: 18px;
  341. font-size: 14px;
  342. }
  343. .autosuggest-account-icon,
  344. .autosuggest-emoji img {
  345. display: block;
  346. margin-right: 8px;
  347. width: 16px;
  348. height: 16px;
  349. }
  350. .autosuggest-account .display-name__account {
  351. color: $lighter-text-color;
  352. }
  353. .compose-form__modifiers {
  354. color: $inverted-text-color;
  355. font-family: inherit;
  356. font-size: 14px;
  357. background: $simple-background-color;
  358. .compose-form__upload-wrapper {
  359. overflow: hidden;
  360. }
  361. .compose-form__uploads-wrapper {
  362. display: flex;
  363. flex-direction: row;
  364. padding: 5px;
  365. flex-wrap: wrap;
  366. }
  367. .compose-form__upload {
  368. flex: 1 1 0;
  369. min-width: 40%;
  370. margin: 5px;
  371. &__actions {
  372. background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);
  373. display: flex;
  374. align-items: flex-start;
  375. justify-content: space-between;
  376. opacity: 0;
  377. transition: opacity .1s ease;
  378. .icon-button {
  379. flex: 0 1 auto;
  380. color: $secondary-text-color;
  381. font-size: 14px;
  382. font-weight: 500;
  383. padding: 10px;
  384. font-family: inherit;
  385. &:hover,
  386. &:focus,
  387. &:active {
  388. color: lighten($secondary-text-color, 7%);
  389. }
  390. }
  391. &.active {
  392. opacity: 1;
  393. }
  394. }
  395. &-description {
  396. position: absolute;
  397. z-index: 2;
  398. bottom: 0;
  399. left: 0;
  400. right: 0;
  401. box-sizing: border-box;
  402. background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);
  403. padding: 10px;
  404. opacity: 0;
  405. transition: opacity .1s ease;
  406. input {
  407. background: transparent;
  408. color: $secondary-text-color;
  409. border: 0;
  410. padding: 0;
  411. margin: 0;
  412. width: 100%;
  413. font-family: inherit;
  414. font-size: 14px;
  415. font-weight: 500;
  416. &:focus {
  417. color: $white;
  418. }
  419. &::placeholder {
  420. opacity: 0.75;
  421. color: $secondary-text-color;
  422. }
  423. }
  424. &.active {
  425. opacity: 1;
  426. }
  427. }
  428. }
  429. .compose-form__upload-thumbnail {
  430. border-radius: 4px;
  431. background-position: center;
  432. background-size: cover;
  433. background-repeat: no-repeat;
  434. height: 140px;
  435. width: 100%;
  436. overflow: hidden;
  437. }
  438. }
  439. .compose-form__buttons-wrapper {
  440. padding: 10px;
  441. background: darken($simple-background-color, 8%);
  442. border-radius: 0 0 4px 4px;
  443. display: flex;
  444. justify-content: space-between;
  445. .compose-form__buttons {
  446. display: flex;
  447. .compose-form__upload-button-icon {
  448. line-height: 27px;
  449. }
  450. .compose-form__sensitive-button {
  451. display: none;
  452. &.compose-form__sensitive-button--visible {
  453. display: block;
  454. }
  455. .compose-form__sensitive-button__icon {
  456. line-height: 27px;
  457. }
  458. }
  459. }
  460. .icon-button {
  461. box-sizing: content-box;
  462. padding: 0 3px;
  463. }
  464. .character-counter__wrapper {
  465. align-self: center;
  466. margin-right: 4px;
  467. .character-counter {
  468. cursor: default;
  469. font-family: 'mastodon-font-sans-serif', sans-serif;
  470. font-size: 14px;
  471. font-weight: 600;
  472. color: $lighter-text-color;
  473. &.character-counter--over {
  474. color: $warning-red;
  475. }
  476. }
  477. }
  478. }
  479. .compose-form__publish {
  480. display: flex;
  481. justify-content: flex-end;
  482. min-width: 0;
  483. .compose-form__publish-button-wrapper {
  484. overflow: hidden;
  485. padding-top: 10px;
  486. }
  487. }
  488. }
  489. .no-reduce-motion .spoiler-input {
  490. transition: height 0.4s ease, opacity 0.4s ease;
  491. }
  492. .emojione {
  493. font-size: inherit;
  494. vertical-align: middle;
  495. object-fit: contain;
  496. margin: -.2ex .15em .2ex;
  497. width: 16px;
  498. height: 16px;
  499. img {
  500. width: auto;
  501. }
  502. }
  503. .reply-indicator {
  504. border-radius: 4px;
  505. margin-bottom: 10px;
  506. background: $ui-primary-color;
  507. padding: 10px;
  508. }
  509. .reply-indicator__header {
  510. margin-bottom: 5px;
  511. overflow: hidden;
  512. }
  513. .reply-indicator__cancel {
  514. float: right;
  515. line-height: 24px;
  516. }
  517. .reply-indicator__display-name {
  518. color: $inverted-text-color;
  519. display: block;
  520. max-width: 100%;
  521. line-height: 24px;
  522. overflow: hidden;
  523. padding-right: 25px;
  524. text-decoration: none;
  525. }
  526. .reply-indicator__display-avatar {
  527. float: left;
  528. margin-right: 5px;
  529. }
  530. .status__content--with-action {
  531. cursor: pointer;
  532. }
  533. .status__content,
  534. .reply-indicator__content {
  535. font-size: 15px;
  536. line-height: 20px;
  537. word-wrap: break-word;
  538. font-weight: 400;
  539. overflow: hidden;
  540. white-space: pre-wrap;
  541. padding-top: 2px;
  542. color: $primary-text-color;
  543. &:focus {
  544. outline: 0;
  545. }
  546. &.status__content--with-spoiler {
  547. white-space: normal;
  548. .status__content__text {
  549. white-space: pre-wrap;
  550. }
  551. }
  552. .emojione {
  553. width: 20px;
  554. height: 20px;
  555. margin: -3px 0 0;
  556. }
  557. p {
  558. margin-bottom: 20px;
  559. &:last-child {
  560. margin-bottom: 0;
  561. }
  562. }
  563. a {
  564. color: $secondary-text-color;
  565. text-decoration: none;
  566. &:hover {
  567. text-decoration: underline;
  568. .fa {
  569. color: lighten($dark-text-color, 7%);
  570. }
  571. }
  572. &.mention {
  573. &:hover {
  574. text-decoration: none;
  575. span {
  576. text-decoration: underline;
  577. }
  578. }
  579. }
  580. .fa {
  581. color: $dark-text-color;
  582. }
  583. }
  584. .status__content__spoiler-link {
  585. background: $action-button-color;
  586. &:hover {
  587. background: lighten($action-button-color, 7%);
  588. text-decoration: none;
  589. }
  590. &::-moz-focus-inner {
  591. border: 0;
  592. }
  593. &::-moz-focus-inner,
  594. &:focus,
  595. &:active {
  596. outline: 0 !important;
  597. }
  598. }
  599. .status__content__text {
  600. display: none;
  601. &.status__content__text--visible {
  602. display: block;
  603. }
  604. }
  605. }
  606. .status__content__spoiler-link {
  607. display: inline-block;
  608. border-radius: 2px;
  609. background: transparent;
  610. border: 0;
  611. color: $inverted-text-color;
  612. font-weight: 700;
  613. font-size: 11px;
  614. padding: 0 6px;
  615. text-transform: uppercase;
  616. line-height: 20px;
  617. cursor: pointer;
  618. vertical-align: middle;
  619. }
  620. .status__wrapper--filtered {
  621. color: $dark-text-color;
  622. border: 0;
  623. font-size: inherit;
  624. text-align: center;
  625. line-height: inherit;
  626. margin: 0;
  627. padding: 15px;
  628. box-sizing: border-box;
  629. width: 100%;
  630. clear: both;
  631. border-bottom: 1px solid lighten($ui-base-color, 8%);
  632. }
  633. .status__prepend-icon-wrapper {
  634. left: -26px;
  635. position: absolute;
  636. }
  637. .focusable {
  638. &:focus {
  639. outline: 0;
  640. background: lighten($ui-base-color, 4%);
  641. .status.status-direct {
  642. background: lighten($ui-base-color, 12%);
  643. &.muted {
  644. background: transparent;
  645. }
  646. }
  647. .detailed-status,
  648. .detailed-status__action-bar {
  649. background: lighten($ui-base-color, 8%);
  650. }
  651. }
  652. }
  653. .status {
  654. padding: 8px 10px;
  655. padding-left: 68px;
  656. position: relative;
  657. min-height: 48px;
  658. border-bottom: 1px solid lighten($ui-base-color, 8%);
  659. cursor: default;
  660. @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {
  661. // Add margin to avoid Edge auto-hiding scrollbar appearing over content.
  662. // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.
  663. padding-right: 26px; // 10px + 16px
  664. }
  665. @keyframes fade {
  666. 0% { opacity: 0; }
  667. 100% { opacity: 1; }
  668. }
  669. opacity: 1;
  670. animation: fade 150ms linear;
  671. .video-player {
  672. margin-top: 8px;
  673. }
  674. &.status-direct {
  675. background: lighten($ui-base-color, 8%);
  676. }
  677. &.light {
  678. .status__relative-time {
  679. color: $light-text-color;
  680. }
  681. .status__display-name {
  682. color: $inverted-text-color;
  683. }
  684. .display-name {
  685. strong {
  686. color: $inverted-text-color;
  687. }
  688. span {
  689. color: $light-text-color;
  690. }
  691. }
  692. .status__content {
  693. color: $inverted-text-color;
  694. a {
  695. color: $highlight-text-color;
  696. }
  697. a.status__content__spoiler-link {
  698. color: $primary-text-color;
  699. background: $ui-primary-color;
  700. &:hover {
  701. background: lighten($ui-primary-color, 8%);
  702. }
  703. }
  704. }
  705. }
  706. }
  707. .notification-favourite {
  708. .status.status-direct {
  709. background: transparent;
  710. .icon-button.disabled {
  711. color: lighten($action-button-color, 13%);
  712. }
  713. }
  714. }
  715. .status__relative-time {
  716. color: $dark-text-color;
  717. float: right;
  718. font-size: 14px;
  719. }
  720. .status__display-name {
  721. color: $dark-text-color;
  722. }
  723. .status__info .status__display-name {
  724. display: block;
  725. max-width: 100%;
  726. padding-right: 25px;
  727. }
  728. .status__info {
  729. font-size: 15px;
  730. }
  731. .status-check-box {
  732. border-bottom: 1px solid $ui-secondary-color;
  733. display: flex;
  734. .status-check-box__status {
  735. margin: 10px 0 10px 10px;
  736. flex: 1;
  737. .media-gallery {
  738. max-width: 250px;
  739. }
  740. .status__content {
  741. padding: 0;
  742. white-space: normal;
  743. }
  744. .video-player {
  745. margin-top: 8px;
  746. max-width: 250px;
  747. }
  748. .media-gallery__item-thumbnail {
  749. cursor: default;
  750. }
  751. }
  752. }
  753. .status-check-box-toggle {
  754. align-items: center;
  755. display: flex;
  756. flex: 0 0 auto;
  757. justify-content: center;
  758. padding: 10px;
  759. }
  760. .status__prepend {
  761. margin-left: 68px;
  762. color: $dark-text-color;
  763. padding: 8px 0;
  764. padding-bottom: 2px;
  765. font-size: 14px;
  766. position: relative;
  767. .status__display-name strong {
  768. color: $dark-text-color;
  769. }
  770. > span {
  771. display: block;
  772. overflow: hidden;
  773. text-overflow: ellipsis;
  774. }
  775. }
  776. .status__action-bar {
  777. align-items: center;
  778. display: flex;
  779. margin-top: 8px;
  780. &__counter {
  781. display: inline-flex;
  782. margin-right: 11px;
  783. align-items: center;
  784. .status__action-bar-button {
  785. margin-right: 4px;
  786. }
  787. &__label {
  788. display: inline-block;
  789. width: 14px;
  790. font-size: 12px;
  791. font-weight: 500;
  792. color: $action-button-color;
  793. }
  794. }
  795. }
  796. .status__action-bar-button {
  797. margin-right: 18px;
  798. }
  799. .status__action-bar-dropdown {
  800. height: 23.15px;
  801. width: 23.15px;
  802. }
  803. .detailed-status__action-bar-dropdown {
  804. flex: 1 1 auto;
  805. display: flex;
  806. align-items: center;
  807. justify-content: center;
  808. position: relative;
  809. }
  810. .detailed-status {
  811. background: lighten($ui-base-color, 4%);
  812. padding: 14px 10px;
  813. &--flex {
  814. display: flex;
  815. flex-wrap: wrap;
  816. justify-content: space-between;
  817. align-items: flex-start;
  818. .status__content,
  819. .detailed-status__meta {
  820. flex: 100%;
  821. }
  822. }
  823. .status__content {
  824. font-size: 19px;
  825. line-height: 24px;
  826. .emojione {
  827. width: 24px;
  828. height: 24px;
  829. margin: -1px 0 0;
  830. }
  831. .status__content__spoiler-link {
  832. line-height: 24px;
  833. margin: -1px 0 0;
  834. }
  835. }
  836. .video-player {
  837. margin-top: 8px;
  838. }
  839. }
  840. .detailed-status__meta {
  841. margin-top: 15px;
  842. color: $dark-text-color;
  843. font-size: 14px;
  844. line-height: 18px;
  845. }
  846. .detailed-status__action-bar {
  847. background: lighten($ui-base-color, 4%);
  848. border-top: 1px solid lighten($ui-base-color, 8%);
  849. border-bottom: 1px solid lighten($ui-base-color, 8%);
  850. display: flex;
  851. flex-direction: row;
  852. padding: 10px 0;
  853. }
  854. .detailed-status__link {
  855. color: inherit;
  856. text-decoration: none;
  857. }
  858. .detailed-status__favorites,
  859. .detailed-status__reblogs {
  860. display: inline-block;
  861. font-weight: 500;
  862. font-size: 12px;
  863. margin-left: 6px;
  864. }
  865. .reply-indicator__content {
  866. color: $inverted-text-color;
  867. font-size: 14px;
  868. a {
  869. color: $lighter-text-color;
  870. }
  871. }
  872. .domain {
  873. padding: 10px;
  874. border-bottom: 1px solid lighten($ui-base-color, 8%);
  875. .domain__domain-name {
  876. flex: 1 1 auto;
  877. display: block;
  878. color: $primary-text-color;
  879. text-decoration: none;
  880. font-size: 14px;
  881. font-weight: 500;
  882. }
  883. }
  884. .domain__wrapper {
  885. display: flex;
  886. }
  887. .domain_buttons {
  888. height: 18px;
  889. padding: 10px;
  890. white-space: nowrap;
  891. }
  892. .account {
  893. padding: 10px;
  894. border-bottom: 1px solid lighten($ui-base-color, 8%);
  895. &.compact {
  896. padding: 0;
  897. border-bottom: 0;
  898. .account__avatar-wrapper {
  899. margin-left: 0;
  900. }
  901. }
  902. .account__display-name {
  903. flex: 1 1 auto;
  904. display: block;
  905. color: $darker-text-color;
  906. overflow: hidden;
  907. text-decoration: none;
  908. font-size: 14px;
  909. }
  910. }
  911. .account__wrapper {
  912. display: flex;
  913. }
  914. .account__avatar-wrapper {
  915. float: left;
  916. margin-left: 12px;
  917. margin-right: 12px;
  918. }
  919. .account__avatar {
  920. @include avatar-radius();
  921. position: relative;
  922. &-inline {
  923. display: inline-block;
  924. vertical-align: middle;
  925. margin-right: 5px;
  926. }
  927. }
  928. a .account__avatar {
  929. cursor: pointer;
  930. }
  931. .account__avatar-overlay {
  932. @include avatar-size(48px);
  933. &-base {
  934. @include avatar-radius();
  935. @include avatar-size(36px);
  936. }
  937. &-overlay {
  938. @include avatar-radius();
  939. @include avatar-size(24px);
  940. position: absolute;
  941. bottom: 0;
  942. right: 0;
  943. z-index: 1;
  944. }
  945. }
  946. .account__relationship {
  947. height: 18px;
  948. padding: 10px;
  949. white-space: nowrap;
  950. }
  951. .account__header {
  952. flex: 0 0 auto;
  953. background: lighten($ui-base-color, 4%);
  954. text-align: center;
  955. background-size: cover;
  956. background-position: center;
  957. position: relative;
  958. &.inactive {
  959. opacity: 0.5;
  960. .account__header__avatar {
  961. filter: grayscale(100%);
  962. }
  963. .account__header__username {
  964. color: $secondary-text-color;
  965. }
  966. }
  967. & > div {
  968. background: rgba(lighten($ui-base-color, 4%), 0.9);
  969. padding: 20px 10px;
  970. }
  971. .account__header__content {
  972. color: $secondary-text-color;
  973. }
  974. .account__header__display-name {
  975. color: $primary-text-color;
  976. display: inline-block;
  977. width: 100%;
  978. font-size: 20px;
  979. line-height: 27px;
  980. font-weight: 500;
  981. overflow: hidden;
  982. text-overflow: ellipsis;
  983. }
  984. .account__header__username {
  985. color: $highlight-text-color;
  986. font-size: 14px;
  987. font-weight: 400;
  988. display: block;
  989. margin-bottom: 10px;
  990. overflow: hidden;
  991. text-overflow: ellipsis;
  992. }
  993. }
  994. .account__disclaimer {
  995. padding: 10px;
  996. border-top: 1px solid lighten($ui-base-color, 8%);
  997. color: $dark-text-color;
  998. strong {
  999. font-weight: 500;
  1000. @each $lang in $cjk-langs {
  1001. &:lang(#{$lang}) {
  1002. font-weight: 700;
  1003. }
  1004. }
  1005. }
  1006. a {
  1007. font-weight: 500;
  1008. color: inherit;
  1009. text-decoration: underline;
  1010. &:hover,
  1011. &:focus,
  1012. &:active {
  1013. text-decoration: none;
  1014. }
  1015. }
  1016. }
  1017. .account__header__content {
  1018. color: $darker-text-color;
  1019. font-size: 14px;
  1020. font-weight: 400;
  1021. overflow: hidden;
  1022. word-break: normal;
  1023. word-wrap: break-word;
  1024. p {
  1025. margin-bottom: 20px;
  1026. &:last-child {
  1027. margin-bottom: 0;
  1028. }
  1029. }
  1030. a {
  1031. color: inherit;
  1032. text-decoration: underline;
  1033. &:hover {
  1034. text-decoration: none;
  1035. }
  1036. }
  1037. }
  1038. .account__header__display-name {
  1039. .emojione {
  1040. width: 25px;
  1041. height: 25px;
  1042. }
  1043. }
  1044. .account__action-bar {
  1045. border-top: 1px solid lighten($ui-base-color, 8%);
  1046. border-bottom: 1px solid lighten($ui-base-color, 8%);
  1047. line-height: 36px;
  1048. overflow: hidden;
  1049. flex: 0 0 auto;
  1050. display: flex;
  1051. }
  1052. .account__action-bar-dropdown {
  1053. padding: 10px;
  1054. .icon-button {
  1055. vertical-align: middle;
  1056. }
  1057. .dropdown--active {
  1058. .dropdown__content.dropdown__right {
  1059. left: 6px;
  1060. right: initial;
  1061. }
  1062. &::after {
  1063. bottom: initial;
  1064. margin-left: 11px;
  1065. margin-top: -7px;
  1066. right: initial;
  1067. }
  1068. }
  1069. }
  1070. .account__action-bar-links {
  1071. display: flex;
  1072. flex: 1 1 auto;
  1073. line-height: 18px;
  1074. text-align: center;
  1075. }
  1076. .account__action-bar__tab {
  1077. text-decoration: none;
  1078. overflow: hidden;
  1079. flex: 0 1 100%;
  1080. border-right: 1px solid lighten($ui-base-color, 8%);
  1081. padding: 10px 0;
  1082. & > span {
  1083. display: block;
  1084. text-transform: uppercase;
  1085. font-size: 11px;
  1086. color: $darker-text-color;
  1087. }
  1088. strong {
  1089. display: block;
  1090. font-size: 15px;
  1091. font-weight: 500;
  1092. color: $primary-text-color;
  1093. @each $lang in $cjk-langs {
  1094. &:lang(#{$lang}) {
  1095. font-weight: 700;
  1096. }
  1097. }
  1098. }
  1099. }
  1100. .account__header__avatar {
  1101. background-size: 90px 90px;
  1102. display: block;
  1103. height: 90px;
  1104. margin: 0 auto 10px;
  1105. overflow: hidden;
  1106. width: 90px;
  1107. }
  1108. .account-authorize {
  1109. padding: 14px 10px;
  1110. .detailed-status__display-name {
  1111. display: block;
  1112. margin-bottom: 15px;
  1113. overflow: hidden;
  1114. }
  1115. }
  1116. .account-authorize__avatar {
  1117. float: left;
  1118. margin-right: 10px;
  1119. }
  1120. .status__display-name,
  1121. .status__relative-time,
  1122. .detailed-status__display-name,
  1123. .detailed-status__datetime,
  1124. .detailed-status__application,
  1125. .account__display-name {
  1126. text-decoration: none;
  1127. }
  1128. .status__display-name,
  1129. .account__display-name {
  1130. strong {
  1131. color: $primary-text-color;
  1132. }
  1133. }
  1134. .muted {
  1135. .emojione {
  1136. opacity: 0.5;
  1137. }
  1138. }
  1139. .status__display-name,
  1140. .reply-indicator__display-name,
  1141. .detailed-status__display-name,
  1142. a.account__display-name {
  1143. &:hover strong {
  1144. text-decoration: underline;
  1145. }
  1146. }
  1147. .account__display-name strong {
  1148. display: block;
  1149. overflow: hidden;
  1150. text-overflow: ellipsis;
  1151. }
  1152. .detailed-status__application,
  1153. .detailed-status__datetime {
  1154. color: inherit;
  1155. }
  1156. .detailed-status__display-name {
  1157. color: $secondary-text-color;
  1158. display: block;
  1159. line-height: 24px;
  1160. margin-bottom: 15px;
  1161. overflow: hidden;
  1162. strong,
  1163. span {
  1164. display: block;
  1165. text-overflow: ellipsis;
  1166. overflow: hidden;
  1167. }
  1168. strong {
  1169. font-size: 16px;
  1170. color: $primary-text-color;
  1171. }
  1172. }
  1173. .detailed-status__display-avatar {
  1174. float: left;
  1175. margin-right: 10px;
  1176. }
  1177. .status__avatar {
  1178. height: 48px;
  1179. left: 10px;
  1180. position: absolute;
  1181. top: 10px;
  1182. width: 48px;
  1183. }
  1184. .muted {
  1185. .status__content p,
  1186. .status__content a {
  1187. color: $dark-text-color;
  1188. }
  1189. .status__display-name strong {
  1190. color: $dark-text-color;
  1191. }
  1192. .status__avatar {
  1193. opacity: 0.5;
  1194. }
  1195. a.status__content__spoiler-link {
  1196. background: $ui-base-lighter-color;
  1197. color: $inverted-text-color;
  1198. &:hover {
  1199. background: lighten($ui-base-lighter-color, 7%);
  1200. text-decoration: none;
  1201. }
  1202. }
  1203. }
  1204. .notification__message {
  1205. margin: 0 10px 0 68px;
  1206. padding: 8px 0 0;
  1207. cursor: default;
  1208. color: $darker-text-color;
  1209. font-size: 15px;
  1210. position: relative;
  1211. .fa {
  1212. color: $highlight-text-color;
  1213. }
  1214. > span {
  1215. display: block;
  1216. overflow: hidden;
  1217. text-overflow: ellipsis;
  1218. }
  1219. }
  1220. .notification__favourite-icon-wrapper {
  1221. left: -26px;
  1222. position: absolute;
  1223. .star-icon {
  1224. color: $gold-star;
  1225. }
  1226. }
  1227. .star-icon.active {
  1228. color: $gold-star;
  1229. }
  1230. .notification__display-name {
  1231. color: inherit;
  1232. font-weight: 500;
  1233. text-decoration: none;
  1234. &:hover {
  1235. color: $primary-text-color;
  1236. text-decoration: underline;
  1237. }
  1238. }
  1239. .display-name {
  1240. display: block;
  1241. max-width: 100%;
  1242. overflow: hidden;
  1243. text-overflow: ellipsis;
  1244. white-space: nowrap;
  1245. }
  1246. .display-name__html {
  1247. font-weight: 500;
  1248. }
  1249. .display-name__account {
  1250. font-size: 14px;
  1251. }
  1252. .status__relative-time,
  1253. .detailed-status__datetime {
  1254. &:hover {
  1255. text-decoration: underline;
  1256. }
  1257. }
  1258. .image-loader {
  1259. position: relative;
  1260. width: 100%;
  1261. height: 100%;
  1262. display: flex;
  1263. align-items: center;
  1264. justify-content: center;
  1265. flex-direction: column;
  1266. .image-loader__preview-canvas {
  1267. max-width: $media-modal-media-max-width;
  1268. max-height: $media-modal-media-max-height;
  1269. background: url('../images/void.png') repeat;
  1270. object-fit: contain;
  1271. }
  1272. .loading-bar {
  1273. position: relative;
  1274. }
  1275. &.image-loader--amorphous .image-loader__preview-canvas {
  1276. display: none;
  1277. }
  1278. }
  1279. .zoomable-image {
  1280. position: relative;
  1281. width: 100%;
  1282. height: 100%;
  1283. display: flex;
  1284. align-items: center;
  1285. justify-content: center;
  1286. img {
  1287. max-width: $media-modal-media-max-width;
  1288. max-height: $media-modal-media-max-height;
  1289. width: auto;
  1290. height: auto;
  1291. object-fit: contain;
  1292. }
  1293. }
  1294. .navigation-bar {
  1295. padding: 10px;
  1296. display: flex;
  1297. align-items: center;
  1298. flex-shrink: 0;
  1299. cursor: default;
  1300. color: $darker-text-color;
  1301. strong {
  1302. color: $secondary-text-color;
  1303. }
  1304. a {
  1305. color: inherit;
  1306. }
  1307. .permalink {
  1308. text-decoration: none;
  1309. }
  1310. .navigation-bar__actions {
  1311. position: relative;
  1312. .icon-button.close {
  1313. position: absolute;
  1314. pointer-events: none;
  1315. transform: scale(0.0, 1.0) translate(-100%, 0);
  1316. opacity: 0;
  1317. }
  1318. .compose__action-bar .icon-button {
  1319. pointer-events: auto;
  1320. transform: scale(1.0, 1.0) translate(0, 0);
  1321. opacity: 1;
  1322. }
  1323. }
  1324. }
  1325. .navigation-bar__profile {
  1326. flex: 1 1 auto;
  1327. margin-left: 8px;
  1328. line-height: 20px;
  1329. margin-top: -1px;
  1330. overflow: hidden;
  1331. }
  1332. .navigation-bar__profile-account {
  1333. display: block;
  1334. font-weight: 500;
  1335. overflow: hidden;
  1336. text-overflow: ellipsis;
  1337. }
  1338. .navigation-bar__profile-edit {
  1339. color: inherit;
  1340. text-decoration: none;
  1341. }
  1342. .dropdown {
  1343. display: inline-block;
  1344. }
  1345. .dropdown__content {
  1346. display: none;
  1347. position: absolute;
  1348. }
  1349. .dropdown-menu__separator {
  1350. border-bottom: 1px solid darken($ui-secondary-color, 8%);
  1351. margin: 5px 7px 6px;
  1352. height: 0;
  1353. }
  1354. .dropdown-menu {
  1355. background: $ui-secondary-color;
  1356. padding: 4px 0;
  1357. border-radius: 4px;
  1358. box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
  1359. ul {
  1360. list-style: none;
  1361. }
  1362. &.left {
  1363. transform-origin: 100% 50%;
  1364. }
  1365. &.top {
  1366. transform-origin: 50% 100%;
  1367. }
  1368. &.bottom {
  1369. transform-origin: 50% 0;
  1370. }
  1371. &.right {
  1372. transform-origin: 0 50%;
  1373. }
  1374. }
  1375. .dropdown-menu__arrow {
  1376. position: absolute;
  1377. width: 0;
  1378. height: 0;
  1379. border: 0 solid transparent;
  1380. &.left {
  1381. right: -5px;
  1382. margin-top: -5px;
  1383. border-width: 5px 0 5px 5px;
  1384. border-left-color: $ui-secondary-color;
  1385. }
  1386. &.top {
  1387. bottom: -5px;
  1388. margin-left: -7px;
  1389. border-width: 5px 7px 0;
  1390. border-top-color: $ui-secondary-color;
  1391. }
  1392. &.bottom {
  1393. top: -5px;
  1394. margin-left: -7px;
  1395. border-width: 0 7px 5px;
  1396. border-bottom-color: $ui-secondary-color;
  1397. }
  1398. &.right {
  1399. left: -5px;
  1400. margin-top: -5px;
  1401. border-width: 5px 5px 5px 0;
  1402. border-right-color: $ui-secondary-color;
  1403. }
  1404. }
  1405. .dropdown-menu__item {
  1406. a {
  1407. font-size: 13px;
  1408. line-height: 18px;
  1409. display: block;
  1410. padding: 4px 14px;
  1411. box-sizing: border-box;
  1412. text-decoration: none;
  1413. background: $ui-secondary-color;
  1414. color: $inverted-text-color;
  1415. overflow: hidden;
  1416. text-overflow: ellipsis;
  1417. white-space: nowrap;
  1418. &:focus,
  1419. &:hover,
  1420. &:active {
  1421. background: $ui-highlight-color;
  1422. color: $secondary-text-color;
  1423. outline: 0;
  1424. }
  1425. }
  1426. }
  1427. .dropdown--active .dropdown__content {
  1428. display: block;
  1429. line-height: 18px;
  1430. max-width: 311px;
  1431. right: 0;
  1432. text-align: left;
  1433. z-index: 9999;
  1434. & > ul {
  1435. list-style: none;
  1436. background: $ui-secondary-color;
  1437. padding: 4px 0;
  1438. border-radius: 4px;
  1439. box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);
  1440. min-width: 140px;
  1441. position: relative;
  1442. }
  1443. &.dropdown__right {
  1444. right: 0;
  1445. }
  1446. &.dropdown__left {
  1447. & > ul {
  1448. left: -98px;
  1449. }
  1450. }
  1451. & > ul > li > a {
  1452. font-size: 13px;
  1453. line-height: 18px;
  1454. display: block;
  1455. padding: 4px 14px;
  1456. box-sizing: border-box;
  1457. text-decoration: none;
  1458. background: $ui-secondary-color;
  1459. color: $inverted-text-color;
  1460. overflow: hidden;
  1461. text-overflow: ellipsis;
  1462. white-space: nowrap;
  1463. &:focus {
  1464. outline: 0;
  1465. }
  1466. &:hover {
  1467. background: $ui-highlight-color;
  1468. color: $secondary-text-color;
  1469. }
  1470. }
  1471. }
  1472. .dropdown__icon {
  1473. vertical-align: middle;
  1474. }
  1475. .columns-area {
  1476. display: flex;
  1477. flex: 1 1 auto;
  1478. flex-direction: row;
  1479. justify-content: flex-start;
  1480. overflow-x: auto;
  1481. position: relative;
  1482. &.unscrollable {
  1483. overflow-x: hidden;
  1484. }
  1485. }
  1486. @media screen and (min-width: 360px) {
  1487. .columns-area {
  1488. padding: 10px;
  1489. }
  1490. .react-swipeable-view-container .columns-area {
  1491. height: calc(100% - 20px) !important;
  1492. }
  1493. }
  1494. .react-swipeable-view-container {
  1495. &,
  1496. .columns-area,
  1497. .drawer,
  1498. .column {
  1499. height: 100%;
  1500. }
  1501. }
  1502. .react-swipeable-view-container > * {
  1503. display: flex;
  1504. align-items: center;
  1505. justify-content: center;
  1506. height: 100%;
  1507. }
  1508. .column {
  1509. width: 330px;
  1510. position: relative;
  1511. box-sizing: border-box;
  1512. display: flex;
  1513. flex-direction: column;
  1514. > .scrollable {
  1515. background: $ui-base-color;
  1516. }
  1517. }
  1518. .ui {
  1519. flex: 0 0 auto;
  1520. display: flex;
  1521. flex-direction: column;
  1522. width: 100%;
  1523. height: 100%;
  1524. background: darken($ui-base-color, 7%);
  1525. }
  1526. .drawer {
  1527. width: 300px;
  1528. box-sizing: border-box;
  1529. display: flex;
  1530. flex-direction: column;
  1531. overflow-y: hidden;
  1532. }
  1533. .drawer__tab {
  1534. display: block;
  1535. flex: 1 1 auto;
  1536. padding: 15px 5px 13px;
  1537. color: $darker-text-color;
  1538. text-decoration: none;
  1539. text-align: center;
  1540. font-size: 16px;
  1541. border-bottom: 2px solid transparent;
  1542. }
  1543. .column,
  1544. .drawer {
  1545. flex: 1 1 100%;
  1546. overflow: hidden;
  1547. }
  1548. @media screen and (min-width: 360px) {
  1549. .tabs-bar {
  1550. margin: 10px;
  1551. margin-bottom: 0;
  1552. }
  1553. .getting-started__wrapper,
  1554. .getting-started__trends,
  1555. .search {
  1556. margin-bottom: 10px;
  1557. }
  1558. }
  1559. @media screen and (max-width: 630px) {
  1560. .column,
  1561. .drawer {
  1562. width: 100%;
  1563. padding: 0;
  1564. }
  1565. .columns-area {
  1566. flex-direction: column;
  1567. }
  1568. .search__input,
  1569. .autosuggest-textarea__textarea {
  1570. font-size: 16px;
  1571. }
  1572. }
  1573. @media screen and (min-width: 631px) {
  1574. .columns-area {
  1575. padding: 0;
  1576. }
  1577. .column,
  1578. .drawer {
  1579. flex: 0 0 auto;
  1580. padding: 10px;
  1581. padding-left: 5px;
  1582. padding-right: 5px;
  1583. &:first-child {
  1584. padding-left: 10px;
  1585. }
  1586. &:last-child {
  1587. padding-right: 10px;
  1588. }
  1589. }
  1590. .columns-area > div {
  1591. .column,
  1592. .drawer {
  1593. padding-left: 5px;
  1594. padding-right: 5px;
  1595. }
  1596. }
  1597. }
  1598. .drawer__pager {
  1599. box-sizing: border-box;
  1600. padding: 0;
  1601. flex-grow: 1;
  1602. position: relative;
  1603. overflow: hidden;
  1604. display: flex;
  1605. }
  1606. .drawer__inner {
  1607. position: absolute;
  1608. top: 0;
  1609. left: 0;
  1610. background: lighten($ui-base-color, 13%);
  1611. box-sizing: border-box;
  1612. padding: 0;
  1613. display: flex;
  1614. flex-direction: column;
  1615. overflow: hidden;
  1616. overflow-y: auto;
  1617. width: 100%;
  1618. height: 100%;
  1619. &.darker {
  1620. background: $ui-base-color;
  1621. }
  1622. }
  1623. .drawer__inner__mastodon {
  1624. 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;
  1625. flex: 1;
  1626. min-height: 47px;
  1627. > img {
  1628. display: block;
  1629. object-fit: contain;
  1630. object-position: bottom left;
  1631. width: 100%;
  1632. height: 100%;
  1633. pointer-events: none;
  1634. user-drag: none;
  1635. user-select: none;
  1636. }
  1637. }
  1638. .pseudo-drawer {
  1639. background: lighten($ui-base-color, 13%);
  1640. font-size: 13px;
  1641. text-align: left;
  1642. }
  1643. .drawer__header {
  1644. flex: 0 0 auto;
  1645. font-size: 16px;
  1646. background: lighten($ui-base-color, 8%);
  1647. margin-bottom: 10px;
  1648. display: flex;
  1649. flex-direction: row;
  1650. a {
  1651. transition: background 100ms ease-in;
  1652. &:hover {
  1653. background: lighten($ui-base-color, 3%);
  1654. transition: background 200ms ease-out;
  1655. }
  1656. }
  1657. }
  1658. .tabs-bar {
  1659. display: flex;
  1660. background: lighten($ui-base-color, 8%);
  1661. flex: 0 0 auto;
  1662. overflow-y: auto;
  1663. }
  1664. .tabs-bar__link {
  1665. display: block;
  1666. flex: 1 1 auto;
  1667. padding: 15px 10px;
  1668. color: $primary-text-color;
  1669. text-decoration: none;
  1670. text-align: center;
  1671. font-size: 14px;
  1672. font-weight: 500;
  1673. border-bottom: 2px solid lighten($ui-base-color, 8%);
  1674. transition: all 50ms linear;
  1675. .fa {
  1676. font-weight: 400;
  1677. font-size: 16px;
  1678. }
  1679. &.active {
  1680. border-bottom: 2px solid $highlight-text-color;
  1681. color: $highlight-text-color;
  1682. }
  1683. &:hover,
  1684. &:focus,
  1685. &:active {
  1686. @media screen and (min-width: 631px) {
  1687. background: lighten($ui-base-color, 14%);
  1688. }
  1689. }
  1690. span {
  1691. margin-left: 5px;
  1692. display: none;
  1693. }
  1694. }
  1695. @media screen and (min-width: 600px) {
  1696. .tabs-bar__link {
  1697. span {
  1698. display: inline;
  1699. }
  1700. }
  1701. }
  1702. @media screen and (min-width: 631px) {
  1703. .tabs-bar {
  1704. display: none;
  1705. }
  1706. }
  1707. .scrollable {
  1708. overflow-y: scroll;
  1709. overflow-x: hidden;
  1710. flex: 1 1 auto;
  1711. -webkit-overflow-scrolling: touch;
  1712. will-change: transform; // improves perf in mobile Chrome
  1713. &.optionally-scrollable {
  1714. overflow-y: auto;
  1715. }
  1716. @supports(display: grid) { // hack to fix Chrome <57
  1717. contain: strict;
  1718. }
  1719. }
  1720. .scrollable.fullscreen {
  1721. @supports(display: grid) { // hack to fix Chrome <57
  1722. contain: none;
  1723. }
  1724. }
  1725. .column-back-button {
  1726. background: lighten($ui-base-color, 4%);
  1727. color: $highlight-text-color;
  1728. cursor: pointer;
  1729. flex: 0 0 auto;
  1730. font-size: 16px;
  1731. line-height: inherit;
  1732. border: 0;
  1733. text-align: unset;
  1734. padding: 15px;
  1735. margin: 0;
  1736. z-index: 3;
  1737. outline: 0;
  1738. &:hover {
  1739. text-decoration: underline;
  1740. }
  1741. }
  1742. .column-header__back-button {
  1743. background: lighten($ui-base-color, 4%);
  1744. border: 0;
  1745. font-family: inherit;
  1746. color: $highlight-text-color;
  1747. cursor: pointer;
  1748. white-space: nowrap;
  1749. font-size: 16px;
  1750. padding: 0 5px 0 0;
  1751. z-index: 3;
  1752. &:hover {
  1753. text-decoration: underline;
  1754. }
  1755. &:last-child {
  1756. padding: 0 15px 0 0;
  1757. }
  1758. }
  1759. .column-back-button__icon {
  1760. display: inline-block;
  1761. margin-right: 5px;
  1762. }
  1763. .column-back-button--slim {
  1764. position: relative;
  1765. }
  1766. .column-back-button--slim-button {
  1767. cursor: pointer;
  1768. flex: 0 0 auto;
  1769. font-size: 16px;
  1770. padding: 15px;
  1771. position: absolute;
  1772. right: 0;
  1773. top: -48px;
  1774. }
  1775. .react-toggle {
  1776. display: inline-block;
  1777. position: relative;
  1778. cursor: pointer;
  1779. background-color: transparent;
  1780. border: 0;
  1781. padding: 0;
  1782. user-select: none;
  1783. -webkit-tap-highlight-color: rgba($base-overlay-background, 0);
  1784. -webkit-tap-highlight-color: transparent;
  1785. }
  1786. .react-toggle-screenreader-only {
  1787. border: 0;
  1788. clip: rect(0 0 0 0);
  1789. height: 1px;
  1790. margin: -1px;
  1791. overflow: hidden;
  1792. padding: 0;
  1793. position: absolute;
  1794. width: 1px;
  1795. }
  1796. .react-toggle--disabled {
  1797. cursor: not-allowed;
  1798. opacity: 0.5;
  1799. transition: opacity 0.25s;
  1800. }
  1801. .react-toggle-track {
  1802. width: 50px;
  1803. height: 24px;
  1804. padding: 0;
  1805. border-radius: 30px;
  1806. background-color: $ui-base-color;
  1807. transition: all 0.2s ease;
  1808. }
  1809. .react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {
  1810. background-color: darken($ui-base-color, 10%);
  1811. }
  1812. .react-toggle--checked .react-toggle-track {
  1813. background-color: $ui-highlight-color;
  1814. }
  1815. .react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {
  1816. background-color: lighten($ui-highlight-color, 10%);
  1817. }
  1818. .react-toggle-track-check {
  1819. position: absolute;
  1820. width: 14px;
  1821. height: 10px;
  1822. top: 0;
  1823. bottom: 0;
  1824. margin-top: auto;
  1825. margin-bottom: auto;
  1826. line-height: 0;
  1827. left: 8px;
  1828. opacity: 0;
  1829. transition: opacity 0.25s ease;
  1830. }
  1831. .react-toggle--checked .react-toggle-track-check {
  1832. opacity: 1;
  1833. transition: opacity 0.25s ease;
  1834. }
  1835. .react-toggle-track-x {
  1836. position: absolute;
  1837. width: 10px;
  1838. height: 10px;
  1839. top: 0;
  1840. bottom: 0;
  1841. margin-top: auto;
  1842. margin-bottom: auto;
  1843. line-height: 0;
  1844. right: 10px;
  1845. opacity: 1;
  1846. transition: opacity 0.25s ease;
  1847. }
  1848. .react-toggle--checked .react-toggle-track-x {
  1849. opacity: 0;
  1850. }
  1851. .react-toggle-thumb {
  1852. transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1) 0ms;
  1853. position: absolute;
  1854. top: 1px;
  1855. left: 1px;
  1856. width: 22px;
  1857. height: 22px;
  1858. border: 1px solid $ui-base-color;
  1859. border-radius: 50%;
  1860. background-color: darken($simple-background-color, 2%);
  1861. box-sizing: border-box;
  1862. transition: all 0.25s ease;
  1863. }
  1864. .react-toggle--checked .react-toggle-thumb {
  1865. left: 27px;
  1866. border-color: $ui-highlight-color;
  1867. }
  1868. .column-link {
  1869. background: lighten($ui-base-color, 8%);
  1870. color: $primary-text-color;
  1871. display: block;
  1872. font-size: 16px;
  1873. padding: 15px;
  1874. text-decoration: none;
  1875. &:hover {
  1876. background: lighten($ui-base-color, 11%);
  1877. }
  1878. }
  1879. .column-link__icon {
  1880. display: inline-block;
  1881. margin-right: 5px;
  1882. }
  1883. .column-link__badge {
  1884. display: inline-block;
  1885. border-radius: 4px;
  1886. font-size: 12px;
  1887. line-height: 19px;
  1888. font-weight: 500;
  1889. background: $ui-base-color;
  1890. padding: 4px 8px;
  1891. margin: -6px 10px;
  1892. }
  1893. .column-subheading {
  1894. background: $ui-base-color;
  1895. color: $dark-text-color;
  1896. padding: 8px 20px;
  1897. font-size: 12px;
  1898. font-weight: 500;
  1899. text-transform: uppercase;
  1900. cursor: default;
  1901. }
  1902. .getting-started__wrapper,
  1903. .getting-started,
  1904. .flex-spacer {
  1905. background: $ui-base-color;
  1906. }
  1907. .getting-started__wrapper {
  1908. flex: 0 0 auto;
  1909. }
  1910. .flex-spacer {
  1911. flex: 1 1 auto;
  1912. }
  1913. .getting-started {
  1914. color: $dark-text-color;
  1915. &__footer {
  1916. flex: 0 0 auto;
  1917. padding: 10px;
  1918. padding-top: 20px;
  1919. ul {
  1920. margin-bottom: 10px;
  1921. }
  1922. ul li {
  1923. display: inline;
  1924. }
  1925. p {
  1926. color: $dark-text-color;
  1927. font-size: 13px;
  1928. margin-bottom: 20px;
  1929. a {
  1930. color: $dark-text-color;
  1931. text-decoration: underline;
  1932. }
  1933. }
  1934. a {
  1935. text-decoration: none;
  1936. color: $darker-text-color;
  1937. &:hover,
  1938. &:focus,
  1939. &:active {
  1940. text-decoration: underline;
  1941. }
  1942. }
  1943. }
  1944. &__trends {
  1945. background: $ui-base-color;
  1946. flex: 0 1 auto;
  1947. @media screen and (max-height: 810px) {
  1948. .trends__item:nth-child(3) {
  1949. display: none;
  1950. }
  1951. }
  1952. @media screen and (max-height: 720px) {
  1953. .trends__item:nth-child(2) {
  1954. display: none;
  1955. }
  1956. }
  1957. @media screen and (max-height: 670px) {
  1958. display: none;
  1959. }
  1960. }
  1961. &__scrollable {
  1962. max-height: 100%;
  1963. overflow-y: auto;
  1964. }
  1965. }
  1966. .keyboard-shortcuts {
  1967. padding: 8px 0 0;
  1968. overflow: hidden;
  1969. thead {
  1970. position: absolute;
  1971. left: -9999px;
  1972. }
  1973. td {
  1974. padding: 0 10px 8px;
  1975. }
  1976. kbd {
  1977. display: inline-block;
  1978. padding: 3px 5px;
  1979. background-color: lighten($ui-base-color, 8%);
  1980. border: 1px solid darken($ui-base-color, 4%);
  1981. }
  1982. }
  1983. .setting-text {
  1984. color: $darker-text-color;
  1985. background: transparent;
  1986. border: none;
  1987. border-bottom: 2px solid $ui-primary-color;
  1988. box-sizing: border-box;
  1989. display: block;
  1990. font-family: inherit;
  1991. margin-bottom: 10px;
  1992. padding: 7px 0;
  1993. width: 100%;
  1994. &:focus,
  1995. &:active {
  1996. color: $primary-text-color;
  1997. border-bottom-color: $highlight-text-color;
  1998. }
  1999. @media screen and (max-width: 600px) {
  2000. font-size: 16px;
  2001. }
  2002. }
  2003. .no-reduce-motion button.icon-button i.fa-retweet {
  2004. background-position: 0 0;
  2005. height: 19px;
  2006. transition: background-position 0.9s steps(10);
  2007. transition-duration: 0s;
  2008. vertical-align: middle;
  2009. width: 22px;
  2010. &::before {
  2011. display: none !important;
  2012. }
  2013. }
  2014. .no-reduce-motion button.icon-button.active i.fa-retweet {
  2015. transition-duration: 0.9s;
  2016. background-position: 0 100%;
  2017. }
  2018. .reduce-motion button.icon-button i.fa-retweet {
  2019. color: $action-button-color;
  2020. transition: color 100ms ease-in;
  2021. }
  2022. .reduce-motion button.icon-button.active i.fa-retweet {
  2023. color: $highlight-text-color;
  2024. }
  2025. .status-card {
  2026. display: flex;
  2027. font-size: 14px;
  2028. border: 1px solid lighten($ui-base-color, 8%);
  2029. border-radius: 4px;
  2030. color: $dark-text-color;
  2031. margin-top: 14px;
  2032. text-decoration: none;
  2033. overflow: hidden;
  2034. &__actions {
  2035. bottom: 0;
  2036. left: 0;
  2037. position: absolute;
  2038. right: 0;
  2039. top: 0;
  2040. display: flex;
  2041. justify-content: center;
  2042. align-items: center;
  2043. & > div {
  2044. background: rgba($base-shadow-color, 0.6);
  2045. border-radius: 4px;
  2046. padding: 12px 9px;
  2047. flex: 0 0 auto;
  2048. display: flex;
  2049. justify-content: center;
  2050. align-items: center;
  2051. }
  2052. button,
  2053. a {
  2054. display: inline;
  2055. color: $primary-text-color;
  2056. background: transparent;
  2057. border: 0;
  2058. padding: 0 5px;
  2059. text-decoration: none;
  2060. opacity: 0.6;
  2061. font-size: 18px;
  2062. line-height: 18px;
  2063. &:hover,
  2064. &:active,
  2065. &:focus {
  2066. opacity: 1;
  2067. }
  2068. }
  2069. a {
  2070. font-size: 19px;
  2071. position: relative;
  2072. bottom: -1px;
  2073. }
  2074. }
  2075. }
  2076. a.status-card {
  2077. cursor: pointer;
  2078. &:hover {
  2079. background: lighten($ui-base-color, 8%);
  2080. }
  2081. }
  2082. .status-card-photo {
  2083. cursor: zoom-in;
  2084. display: block;
  2085. text-decoration: none;
  2086. width: 100%;
  2087. height: auto;
  2088. margin: 0;
  2089. }
  2090. .status-card-video {
  2091. iframe {
  2092. width: 100%;
  2093. height: 100%;
  2094. }
  2095. }
  2096. .status-card__title {
  2097. display: block;
  2098. font-weight: 500;
  2099. margin-bottom: 5px;
  2100. color: $darker-text-color;
  2101. overflow: hidden;
  2102. text-overflow: ellipsis;
  2103. white-space: nowrap;
  2104. text-decoration: none;
  2105. }
  2106. .status-card__content {
  2107. flex: 1 1 auto;
  2108. overflow: hidden;
  2109. padding: 14px 14px 14px 8px;
  2110. }
  2111. .status-card__description {
  2112. color: $darker-text-color;
  2113. }
  2114. .status-card__host {
  2115. display: block;
  2116. margin-top: 5px;
  2117. font-size: 13px;
  2118. }
  2119. .status-card__image {
  2120. flex: 0 0 100px;
  2121. background: lighten($ui-base-color, 8%);
  2122. position: relative;
  2123. }
  2124. .status-card.horizontal {
  2125. display: block;
  2126. .status-card__image {
  2127. width: 100%;
  2128. }
  2129. .status-card__image-image {
  2130. border-radius: 4px 4px 0 0;
  2131. }
  2132. .status-card__title {
  2133. white-space: inherit;
  2134. }
  2135. }
  2136. .status-card__image-image {
  2137. border-radius: 4px 0 0 4px;
  2138. display: block;
  2139. margin: 0;
  2140. width: 100%;
  2141. height: 100%;
  2142. object-fit: cover;
  2143. background-size: cover;
  2144. background-position: center center;
  2145. }
  2146. .load-more {
  2147. display: block;
  2148. color: $dark-text-color;
  2149. background-color: transparent;
  2150. border: 0;
  2151. font-size: inherit;
  2152. text-align: center;
  2153. line-height: inherit;
  2154. margin: 0;
  2155. padding: 15px;
  2156. box-sizing: border-box;
  2157. width: 100%;
  2158. clear: both;
  2159. text-decoration: none;
  2160. &:hover {
  2161. background: lighten($ui-base-color, 2%);
  2162. }
  2163. }
  2164. .load-gap {
  2165. border-bottom: 1px solid lighten($ui-base-color, 8%);
  2166. }
  2167. .regeneration-indicator {
  2168. text-align: center;
  2169. font-size: 16px;
  2170. font-weight: 500;
  2171. color: $dark-text-color;
  2172. background: $ui-base-color;
  2173. cursor: default;
  2174. display: flex;
  2175. flex: 1 1 auto;
  2176. align-items: center;
  2177. justify-content: center;
  2178. padding: 20px;
  2179. & > div {
  2180. width: 100%;
  2181. background: transparent;
  2182. padding-top: 0;
  2183. }
  2184. &__figure {
  2185. background: url('../images/elephant_ui_working.svg') no-repeat center 0;
  2186. width: 100%;
  2187. height: 160px;
  2188. background-size: contain;
  2189. position: absolute;
  2190. top: 50%;
  2191. left: 50%;
  2192. transform: translate(-50%, -50%);
  2193. }
  2194. &.missing-indicator {
  2195. padding-top: 20px + 48px;
  2196. .regeneration-indicator__figure {
  2197. background-image: url('../images/elephant_ui_disappointed.svg');
  2198. }
  2199. }
  2200. &__label {
  2201. margin-top: 200px;
  2202. strong {
  2203. display: block;
  2204. margin-bottom: 10px;
  2205. color: $dark-text-color;
  2206. }
  2207. span {
  2208. font-size: 15px;
  2209. font-weight: 400;
  2210. }
  2211. }
  2212. }
  2213. .column-header__wrapper {
  2214. position: relative;
  2215. flex: 0 0 auto;
  2216. &.active {
  2217. &::before {
  2218. display: block;
  2219. content: "";
  2220. position: absolute;
  2221. top: 35px;
  2222. left: 0;
  2223. right: 0;
  2224. margin: 0 auto;
  2225. width: 60%;
  2226. pointer-events: none;
  2227. height: 28px;
  2228. z-index: 1;
  2229. background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);
  2230. }
  2231. }
  2232. }
  2233. .column-header {
  2234. display: flex;
  2235. font-size: 16px;
  2236. background: lighten($ui-base-color, 4%);
  2237. flex: 0 0 auto;
  2238. cursor: pointer;
  2239. position: relative;
  2240. z-index: 2;
  2241. outline: 0;
  2242. overflow: hidden;
  2243. & > button {
  2244. margin: 0;
  2245. border: none;
  2246. padding: 15px 0 15px 15px;
  2247. color: inherit;
  2248. background: transparent;
  2249. font: inherit;
  2250. text-align: left;
  2251. text-overflow: ellipsis;
  2252. overflow: hidden;
  2253. white-space: nowrap;
  2254. flex: 1;
  2255. }
  2256. & > .column-header__back-button {
  2257. color: $highlight-text-color;
  2258. }
  2259. &.active {
  2260. box-shadow: 0 1px 0 rgba($highlight-text-color, 0.3);
  2261. .column-header__icon {
  2262. color: $highlight-text-color;
  2263. text-shadow: 0 0 10px rgba($highlight-text-color, 0.4);
  2264. }
  2265. }
  2266. &:focus,
  2267. &:active {
  2268. outline: 0;
  2269. }
  2270. }
  2271. .column-header__buttons {
  2272. height: 48px;
  2273. display: flex;
  2274. }
  2275. .column-header__links .text-btn {
  2276. margin-right: 10px;
  2277. }
  2278. .column-header__button {
  2279. background: lighten($ui-base-color, 4%);
  2280. border: 0;
  2281. color: $darker-text-color;
  2282. cursor: pointer;
  2283. font-size: 16px;
  2284. padding: 0 15px;
  2285. &:hover {
  2286. color: lighten($darker-text-color, 7%);
  2287. }
  2288. &.active {
  2289. color: $primary-text-color;
  2290. background: lighten($ui-base-color, 8%);
  2291. &:hover {
  2292. color: $primary-text-color;
  2293. background: lighten($ui-base-color, 8%);
  2294. }
  2295. }
  2296. }
  2297. .column-header__collapsible {
  2298. max-height: 70vh;
  2299. overflow: hidden;
  2300. overflow-y: auto;
  2301. color: $darker-text-color;
  2302. transition: max-height 150ms ease-in-out, opacity 300ms linear;
  2303. opacity: 1;
  2304. &.collapsed {
  2305. max-height: 0;
  2306. opacity: 0.5;
  2307. }
  2308. &.animating {
  2309. overflow-y: hidden;
  2310. }
  2311. hr {
  2312. height: 0;
  2313. background: transparent;
  2314. border: 0;
  2315. border-top: 1px solid lighten($ui-base-color, 12%);
  2316. margin: 10px 0;
  2317. }
  2318. }
  2319. .column-header__collapsible-inner {
  2320. background: lighten($ui-base-color, 8%);
  2321. padding: 15px;
  2322. }
  2323. .column-header__setting-btn {
  2324. &:hover {
  2325. color: $darker-text-color;
  2326. text-decoration: underline;
  2327. }
  2328. }
  2329. .column-header__setting-arrows {
  2330. float: right;
  2331. .column-header__setting-btn {
  2332. padding: 0 10px;
  2333. &:last-child {
  2334. padding-right: 0;
  2335. }
  2336. }
  2337. }
  2338. .text-btn {
  2339. display: inline-block;
  2340. padding: 0;
  2341. font-family: inherit;
  2342. font-size: inherit;
  2343. color: inherit;
  2344. border: 0;
  2345. background: transparent;
  2346. cursor: pointer;
  2347. }
  2348. .column-header__icon {
  2349. display: inline-block;
  2350. margin-right: 5px;
  2351. }
  2352. .loading-indicator {
  2353. color: $dark-text-color;
  2354. font-size: 12px;
  2355. font-weight: 400;
  2356. text-transform: uppercase;
  2357. overflow: visible;
  2358. position: absolute;
  2359. top: 50%;
  2360. left: 50%;
  2361. transform: translate(-50%, -50%);
  2362. span {
  2363. display: block;
  2364. float: left;
  2365. margin-left: 50%;
  2366. transform: translateX(-50%);
  2367. margin: 82px 0 0 50%;
  2368. white-space: nowrap;
  2369. animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);
  2370. }
  2371. }
  2372. .loading-indicator__figure {
  2373. position: absolute;
  2374. top: 50%;
  2375. left: 50%;
  2376. transform: translate(-50%, -50%);
  2377. width: 0;
  2378. height: 0;
  2379. box-sizing: border-box;
  2380. border: 0 solid lighten($ui-base-color, 26%);
  2381. border-radius: 50%;
  2382. animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);
  2383. }
  2384. @keyframes loader-figure {
  2385. 0% {
  2386. width: 0;
  2387. height: 0;
  2388. background-color: lighten($ui-base-color, 26%);
  2389. }
  2390. 29% {
  2391. background-color: lighten($ui-base-color, 26%);
  2392. }
  2393. 30% {
  2394. width: 42px;
  2395. height: 42px;
  2396. background-color: transparent;
  2397. border-width: 21px;
  2398. opacity: 1;
  2399. }
  2400. 100% {
  2401. width: 42px;
  2402. height: 42px;
  2403. border-width: 0;
  2404. opacity: 0;
  2405. background-color: transparent;
  2406. }
  2407. }
  2408. @keyframes loader-label {
  2409. 0% { opacity: 0.25; }
  2410. 30% { opacity: 1; }
  2411. 100% { opacity: 0.25; }
  2412. }
  2413. .video-error-cover {
  2414. align-items: center;
  2415. background: $base-overlay-background;
  2416. color: $primary-text-color;
  2417. cursor: pointer;
  2418. display: flex;
  2419. flex-direction: column;
  2420. height: 100%;
  2421. justify-content: center;
  2422. margin-top: 8px;
  2423. position: relative;
  2424. text-align: center;
  2425. z-index: 100;
  2426. }
  2427. .media-spoiler {
  2428. background: $base-overlay-background;
  2429. color: $darker-text-color;
  2430. border: 0;
  2431. padding: 0;
  2432. width: 100%;
  2433. height: 100%;
  2434. border-radius: 4px;
  2435. appearance: none;
  2436. &:hover,
  2437. &:active,
  2438. &:focus {
  2439. padding: 0;
  2440. color: lighten($darker-text-color, 8%);
  2441. }
  2442. }
  2443. .media-spoiler__warning {
  2444. display: block;
  2445. font-size: 14px;
  2446. }
  2447. .media-spoiler__trigger {
  2448. display: block;
  2449. font-size: 11px;
  2450. font-weight: 700;
  2451. }
  2452. .spoiler-button {
  2453. display: none;
  2454. left: 4px;
  2455. position: absolute;
  2456. text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
  2457. top: 4px;
  2458. z-index: 100;
  2459. &.spoiler-button--visible {
  2460. display: block;
  2461. }
  2462. }
  2463. .modal-container--preloader {
  2464. background: lighten($ui-base-color, 8%);
  2465. }
  2466. .account--panel {
  2467. background: lighten($ui-base-color, 4%);
  2468. border-top: 1px solid lighten($ui-base-color, 8%);
  2469. border-bottom: 1px solid lighten($ui-base-color, 8%);
  2470. display: flex;
  2471. flex-direction: row;
  2472. padding: 10px 0;
  2473. }
  2474. .account--panel__button,
  2475. .detailed-status__button {
  2476. flex: 1 1 auto;
  2477. text-align: center;
  2478. }
  2479. .column-settings__outer {
  2480. background: lighten($ui-base-color, 8%);
  2481. padding: 15px;
  2482. }
  2483. .column-settings__section {
  2484. color: $darker-text-color;
  2485. cursor: default;
  2486. display: block;
  2487. font-weight: 500;
  2488. margin-bottom: 10px;
  2489. }
  2490. .column-settings__row {
  2491. .text-btn {
  2492. margin-bottom: 15px;
  2493. }
  2494. }
  2495. .account--follows-info {
  2496. color: $primary-text-color;
  2497. position: absolute;
  2498. top: 10px;
  2499. left: 10px;
  2500. opacity: 0.7;
  2501. display: inline-block;
  2502. vertical-align: top;
  2503. background-color: rgba($base-overlay-background, 0.4);
  2504. text-transform: uppercase;
  2505. font-size: 11px;
  2506. font-weight: 500;
  2507. padding: 4px;
  2508. border-radius: 4px;
  2509. }
  2510. .account--muting-info {
  2511. color: $primary-text-color;
  2512. position: absolute;
  2513. top: 40px;
  2514. left: 10px;
  2515. opacity: 0.7;
  2516. display: inline-block;
  2517. vertical-align: top;
  2518. background-color: rgba($base-overlay-background, 0.4);
  2519. text-transform: uppercase;
  2520. font-size: 11px;
  2521. font-weight: 500;
  2522. padding: 4px;
  2523. border-radius: 4px;
  2524. }
  2525. .account--action-button {
  2526. position: absolute;
  2527. top: 10px;
  2528. right: 20px;
  2529. }
  2530. .setting-toggle {
  2531. display: block;
  2532. line-height: 24px;
  2533. }
  2534. .setting-toggle__label,
  2535. .setting-meta__label {
  2536. color: $darker-text-color;
  2537. display: inline-block;
  2538. margin-bottom: 14px;
  2539. margin-left: 8px;
  2540. vertical-align: middle;
  2541. }
  2542. .setting-meta__label {
  2543. float: right;
  2544. }
  2545. .empty-column-indicator,
  2546. .error-column {
  2547. color: $dark-text-color;
  2548. background: $ui-base-color;
  2549. text-align: center;
  2550. padding: 20px;
  2551. font-size: 15px;
  2552. font-weight: 400;
  2553. cursor: default;
  2554. display: flex;
  2555. flex: 1 1 auto;
  2556. align-items: center;
  2557. justify-content: center;
  2558. @supports(display: grid) { // hack to fix Chrome <57
  2559. contain: strict;
  2560. }
  2561. a {
  2562. color: $highlight-text-color;
  2563. text-decoration: none;
  2564. &:hover {
  2565. text-decoration: underline;
  2566. }
  2567. }
  2568. }
  2569. .error-column {
  2570. flex-direction: column;
  2571. }
  2572. @keyframes heartbeat {
  2573. from {
  2574. transform: scale(1);
  2575. animation-timing-function: ease-out;
  2576. }
  2577. 10% {
  2578. transform: scale(0.91);
  2579. animation-timing-function: ease-in;
  2580. }
  2581. 17% {
  2582. transform: scale(0.98);
  2583. animation-timing-function: ease-out;
  2584. }
  2585. 33% {
  2586. transform: scale(0.87);
  2587. animation-timing-function: ease-in;
  2588. }
  2589. 45% {
  2590. transform: scale(1);
  2591. animation-timing-function: ease-out;
  2592. }
  2593. }
  2594. .no-reduce-motion .pulse-loading {
  2595. transform-origin: center center;
  2596. animation: heartbeat 1.5s ease-in-out infinite both;
  2597. }
  2598. @keyframes shake-bottom {
  2599. 0%,
  2600. 100% {
  2601. transform: rotate(0deg);
  2602. transform-origin: 50% 100%;
  2603. }
  2604. 10% {
  2605. transform: rotate(2deg);
  2606. }
  2607. 20%,
  2608. 40%,
  2609. 60% {
  2610. transform: rotate(-4deg);
  2611. }
  2612. 30%,
  2613. 50%,
  2614. 70% {
  2615. transform: rotate(4deg);
  2616. }
  2617. 80% {
  2618. transform: rotate(-2deg);
  2619. }
  2620. 90% {
  2621. transform: rotate(2deg);
  2622. }
  2623. }
  2624. .no-reduce-motion .shake-bottom {
  2625. transform-origin: 50% 100%;
  2626. animation: shake-bottom 0.8s cubic-bezier(0.455, 0.030, 0.515, 0.955) 2s 2 both;
  2627. }
  2628. .emoji-picker-dropdown__menu {
  2629. background: $simple-background-color;
  2630. position: absolute;
  2631. box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);
  2632. border-radius: 4px;
  2633. margin-top: 5px;
  2634. .emoji-mart-scroll {
  2635. transition: opacity 200ms ease;
  2636. }
  2637. &.selecting .emoji-mart-scroll {
  2638. opacity: 0.5;
  2639. }
  2640. }
  2641. .emoji-picker-dropdown__modifiers {
  2642. position: absolute;
  2643. top: 60px;
  2644. right: 11px;
  2645. cursor: pointer;
  2646. }
  2647. .emoji-picker-dropdown__modifiers__menu {
  2648. position: absolute;
  2649. z-index: 4;
  2650. top: -4px;
  2651. left: -8px;
  2652. background: $simple-background-color;
  2653. border-radius: 4px;
  2654. box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);
  2655. overflow: hidden;
  2656. button {
  2657. display: block;
  2658. cursor: pointer;
  2659. border: 0;
  2660. padding: 4px 8px;
  2661. background: transparent;
  2662. &:hover,
  2663. &:focus,
  2664. &:active {
  2665. background: rgba($ui-secondary-color, 0.4);
  2666. }
  2667. }
  2668. .emoji-mart-emoji {
  2669. height: 22px;
  2670. }
  2671. }
  2672. .emoji-mart-emoji {
  2673. span {
  2674. background-repeat: no-repeat;
  2675. }
  2676. }
  2677. .upload-area {
  2678. align-items: center;
  2679. background: rgba($base-overlay-background, 0.8);
  2680. display: flex;
  2681. height: 100%;
  2682. justify-content: center;
  2683. left: 0;
  2684. opacity: 0;
  2685. position: absolute;
  2686. top: 0;
  2687. visibility: hidden;
  2688. width: 100%;
  2689. z-index: 2000;
  2690. * {
  2691. pointer-events: none;
  2692. }
  2693. }
  2694. .upload-area__drop {
  2695. width: 320px;
  2696. height: 160px;
  2697. display: flex;
  2698. box-sizing: border-box;
  2699. position: relative;
  2700. padding: 8px;
  2701. }
  2702. .upload-area__background {
  2703. position: absolute;
  2704. top: 0;
  2705. right: 0;
  2706. bottom: 0;
  2707. left: 0;
  2708. z-index: -1;
  2709. border-radius: 4px;
  2710. background: $ui-base-color;
  2711. box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);
  2712. }
  2713. .upload-area__content {
  2714. flex: 1;
  2715. display: flex;
  2716. align-items: center;
  2717. justify-content: center;
  2718. color: $secondary-text-color;
  2719. font-size: 18px;
  2720. font-weight: 500;
  2721. border: 2px dashed $ui-base-lighter-color;
  2722. border-radius: 4px;
  2723. }
  2724. .upload-progress {
  2725. padding: 10px;
  2726. color: $lighter-text-color;
  2727. overflow: hidden;
  2728. display: flex;
  2729. .fa {
  2730. font-size: 34px;
  2731. margin-right: 10px;
  2732. }
  2733. span {
  2734. font-size: 12px;
  2735. text-transform: uppercase;
  2736. font-weight: 500;
  2737. display: block;
  2738. }
  2739. }
  2740. .upload-progess__message {
  2741. flex: 1 1 auto;
  2742. }
  2743. .upload-progress__backdrop {
  2744. width: 100%;
  2745. height: 6px;
  2746. border-radius: 6px;
  2747. background: $ui-base-lighter-color;
  2748. position: relative;
  2749. margin-top: 5px;
  2750. }
  2751. .upload-progress__tracker {
  2752. position: absolute;
  2753. left: 0;
  2754. top: 0;
  2755. height: 6px;
  2756. background: $ui-highlight-color;
  2757. border-radius: 6px;
  2758. }
  2759. .emoji-button {
  2760. display: block;
  2761. font-size: 24px;
  2762. line-height: 24px;
  2763. margin-left: 2px;
  2764. width: 24px;
  2765. outline: 0;
  2766. cursor: pointer;
  2767. &:active,
  2768. &:focus {
  2769. outline: 0 !important;
  2770. }
  2771. img {
  2772. filter: grayscale(100%);
  2773. opacity: 0.8;
  2774. display: block;
  2775. margin: 0;
  2776. width: 22px;
  2777. height: 22px;
  2778. margin-top: 2px;
  2779. }
  2780. &:hover,
  2781. &:active,
  2782. &:focus {
  2783. img {
  2784. opacity: 1;
  2785. filter: none;
  2786. }
  2787. }
  2788. }
  2789. .dropdown--active .emoji-button img {
  2790. opacity: 1;
  2791. filter: none;
  2792. }
  2793. .privacy-dropdown__dropdown {
  2794. position: absolute;
  2795. background: $simple-background-color;
  2796. box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
  2797. border-radius: 4px;
  2798. margin-left: 40px;
  2799. overflow: hidden;
  2800. &.top {
  2801. transform-origin: 50% 100%;
  2802. }
  2803. &.bottom {
  2804. transform-origin: 50% 0;
  2805. }
  2806. }
  2807. .privacy-dropdown__option {
  2808. color: $inverted-text-color;
  2809. padding: 10px;
  2810. cursor: pointer;
  2811. display: flex;
  2812. &:hover,
  2813. &.active {
  2814. background: $ui-highlight-color;
  2815. color: $primary-text-color;
  2816. outline: 0;
  2817. .privacy-dropdown__option__content {
  2818. color: $primary-text-color;
  2819. strong {
  2820. color: $primary-text-color;
  2821. }
  2822. }
  2823. }
  2824. &.active:hover {
  2825. background: lighten($ui-highlight-color, 4%);
  2826. }
  2827. }
  2828. .privacy-dropdown__option__icon {
  2829. display: flex;
  2830. align-items: center;
  2831. justify-content: center;
  2832. margin-right: 10px;
  2833. }
  2834. .privacy-dropdown__option__content {
  2835. flex: 1 1 auto;
  2836. color: $lighter-text-color;
  2837. strong {
  2838. font-weight: 500;
  2839. display: block;
  2840. color: $inverted-text-color;
  2841. @each $lang in $cjk-langs {
  2842. &:lang(#{$lang}) {
  2843. font-weight: 700;
  2844. }
  2845. }
  2846. }
  2847. }
  2848. .privacy-dropdown.active {
  2849. .privacy-dropdown__value {
  2850. background: $simple-background-color;
  2851. border-radius: 4px 4px 0 0;
  2852. box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);
  2853. .icon-button {
  2854. transition: none;
  2855. }
  2856. &.active {
  2857. background: $ui-highlight-color;
  2858. .icon-button {
  2859. color: $primary-text-color;
  2860. }
  2861. }
  2862. }
  2863. &.top .privacy-dropdown__value {
  2864. border-radius: 0 0 4px 4px;
  2865. }
  2866. .privacy-dropdown__dropdown {
  2867. display: block;
  2868. box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);
  2869. }
  2870. }
  2871. .search {
  2872. position: relative;
  2873. }
  2874. .search__input {
  2875. outline: 0;
  2876. box-sizing: border-box;
  2877. display: block;
  2878. width: 100%;
  2879. border: none;
  2880. padding: 10px;
  2881. padding-right: 30px;
  2882. font-family: inherit;
  2883. background: $ui-base-color;
  2884. color: $darker-text-color;
  2885. font-size: 14px;
  2886. margin: 0;
  2887. &::-moz-focus-inner {
  2888. border: 0;
  2889. }
  2890. &::-moz-focus-inner,
  2891. &:focus,
  2892. &:active {
  2893. outline: 0 !important;
  2894. }
  2895. &:focus {
  2896. background: lighten($ui-base-color, 4%);
  2897. }
  2898. @media screen and (max-width: 600px) {
  2899. font-size: 16px;
  2900. }
  2901. }
  2902. .search__icon {
  2903. &::-moz-focus-inner {
  2904. border: 0;
  2905. }
  2906. &::-moz-focus-inner,
  2907. &:focus {
  2908. outline: 0 !important;
  2909. }
  2910. .fa {
  2911. position: absolute;
  2912. top: 10px;
  2913. right: 10px;
  2914. z-index: 2;
  2915. display: inline-block;
  2916. opacity: 0;
  2917. transition: all 100ms linear;
  2918. font-size: 18px;
  2919. width: 18px;
  2920. height: 18px;
  2921. color: $secondary-text-color;
  2922. cursor: default;
  2923. pointer-events: none;
  2924. &.active {
  2925. pointer-events: auto;
  2926. opacity: 0.3;
  2927. }
  2928. }
  2929. .fa-search {
  2930. transform: rotate(90deg);
  2931. &.active {
  2932. pointer-events: none;
  2933. transform: rotate(0deg);
  2934. }
  2935. }
  2936. .fa-times-circle {
  2937. top: 11px;
  2938. transform: rotate(0deg);
  2939. color: $action-button-color;
  2940. cursor: pointer;
  2941. &.active {
  2942. transform: rotate(90deg);
  2943. }
  2944. &:hover {
  2945. color: lighten($action-button-color, 7%);
  2946. }
  2947. }
  2948. }
  2949. .search-results__header {
  2950. color: $dark-text-color;
  2951. background: lighten($ui-base-color, 2%);
  2952. padding: 15px;
  2953. font-weight: 500;
  2954. font-size: 16px;
  2955. cursor: default;
  2956. .fa {
  2957. display: inline-block;
  2958. margin-right: 5px;
  2959. }
  2960. }
  2961. .search-results__section {
  2962. margin-bottom: 5px;
  2963. h5 {
  2964. background: darken($ui-base-color, 4%);
  2965. border-bottom: 1px solid lighten($ui-base-color, 8%);
  2966. cursor: default;
  2967. display: flex;
  2968. padding: 15px;
  2969. font-weight: 500;
  2970. font-size: 16px;
  2971. color: $dark-text-color;
  2972. .fa {
  2973. display: inline-block;
  2974. margin-right: 5px;
  2975. }
  2976. }
  2977. .account:last-child,
  2978. & > div:last-child .status {
  2979. border-bottom: 0;
  2980. }
  2981. }
  2982. .search-results__hashtag {
  2983. display: block;
  2984. padding: 10px;
  2985. color: $secondary-text-color;
  2986. text-decoration: none;
  2987. &:hover,
  2988. &:active,
  2989. &:focus {
  2990. color: lighten($secondary-text-color, 4%);
  2991. text-decoration: underline;
  2992. }
  2993. }
  2994. .modal-root {
  2995. position: relative;
  2996. transition: opacity 0.3s linear;
  2997. will-change: opacity;
  2998. z-index: 9999;
  2999. }
  3000. .modal-root__overlay {
  3001. position: fixed;
  3002. top: 0;
  3003. left: 0;
  3004. right: 0;
  3005. bottom: 0;
  3006. background: rgba($base-overlay-background, 0.7);
  3007. }
  3008. .modal-root__container {
  3009. position: fixed;
  3010. top: 0;
  3011. left: 0;
  3012. width: 100%;
  3013. height: 100%;
  3014. display: flex;
  3015. flex-direction: column;
  3016. align-items: center;
  3017. justify-content: center;
  3018. align-content: space-around;
  3019. z-index: 9999;
  3020. pointer-events: none;
  3021. user-select: none;
  3022. }
  3023. .modal-root__modal {
  3024. pointer-events: auto;
  3025. display: flex;
  3026. z-index: 9999;
  3027. }
  3028. .video-modal {
  3029. max-width: 100vw;
  3030. max-height: 100vh;
  3031. position: relative;
  3032. }
  3033. .media-modal {
  3034. width: 100%;
  3035. height: 100%;
  3036. position: relative;
  3037. .extended-video-player {
  3038. width: 100%;
  3039. height: 100%;
  3040. display: flex;
  3041. align-items: center;
  3042. justify-content: center;
  3043. video {
  3044. max-width: $media-modal-media-max-width;
  3045. max-height: $media-modal-media-max-height;
  3046. }
  3047. }
  3048. }
  3049. .media-modal__closer {
  3050. position: absolute;
  3051. top: 0;
  3052. left: 0;
  3053. right: 0;
  3054. bottom: 0;
  3055. }
  3056. .media-modal__navigation {
  3057. position: absolute;
  3058. top: 0;
  3059. left: 0;
  3060. right: 0;
  3061. bottom: 0;
  3062. pointer-events: none;
  3063. transition: opacity 0.3s linear;
  3064. will-change: opacity;
  3065. * {
  3066. pointer-events: auto;
  3067. }
  3068. &.media-modal__navigation--hidden {
  3069. opacity: 0;
  3070. * {
  3071. pointer-events: none;
  3072. }
  3073. }
  3074. }
  3075. .media-modal__nav {
  3076. background: rgba($base-overlay-background, 0.5);
  3077. box-sizing: border-box;
  3078. border: 0;
  3079. color: $primary-text-color;
  3080. cursor: pointer;
  3081. display: flex;
  3082. align-items: center;
  3083. font-size: 24px;
  3084. height: 20vmax;
  3085. margin: auto 0;
  3086. padding: 30px 15px;
  3087. position: absolute;
  3088. top: 0;
  3089. bottom: 0;
  3090. }
  3091. .media-modal__nav--left {
  3092. left: 0;
  3093. }
  3094. .media-modal__nav--right {
  3095. right: 0;
  3096. }
  3097. .media-modal__pagination {
  3098. width: 100%;
  3099. text-align: center;
  3100. position: absolute;
  3101. left: 0;
  3102. bottom: 20px;
  3103. pointer-events: none;
  3104. }
  3105. .media-modal__page-dot {
  3106. display: inline-block;
  3107. }
  3108. .media-modal__button {
  3109. background-color: $primary-text-color;
  3110. height: 12px;
  3111. width: 12px;
  3112. border-radius: 6px;
  3113. margin: 10px;
  3114. padding: 0;
  3115. border: 0;
  3116. font-size: 0;
  3117. }
  3118. .media-modal__button--active {
  3119. background-color: $highlight-text-color;
  3120. }
  3121. .media-modal__close {
  3122. position: absolute;
  3123. right: 8px;
  3124. top: 8px;
  3125. z-index: 100;
  3126. }
  3127. .onboarding-modal,
  3128. .error-modal,
  3129. .embed-modal {
  3130. background: $ui-secondary-color;
  3131. color: $inverted-text-color;
  3132. border-radius: 8px;
  3133. overflow: hidden;
  3134. display: flex;
  3135. flex-direction: column;
  3136. }
  3137. .onboarding-modal__pager {
  3138. height: 80vh;
  3139. width: 80vw;
  3140. max-width: 520px;
  3141. max-height: 470px;
  3142. .react-swipeable-view-container > div {
  3143. width: 100%;
  3144. height: 100%;
  3145. box-sizing: border-box;
  3146. display: none;
  3147. flex-direction: column;
  3148. align-items: center;
  3149. justify-content: center;
  3150. display: flex;
  3151. user-select: text;
  3152. }
  3153. }
  3154. .error-modal__body {
  3155. height: 80vh;
  3156. width: 80vw;
  3157. max-width: 520px;
  3158. max-height: 420px;
  3159. position: relative;
  3160. & > div {
  3161. position: absolute;
  3162. top: 0;
  3163. left: 0;
  3164. width: 100%;
  3165. height: 100%;
  3166. box-sizing: border-box;
  3167. padding: 25px;
  3168. display: none;
  3169. flex-direction: column;
  3170. align-items: center;
  3171. justify-content: center;
  3172. display: flex;
  3173. opacity: 0;
  3174. user-select: text;
  3175. }
  3176. }
  3177. .error-modal__body {
  3178. display: flex;
  3179. flex-direction: column;
  3180. justify-content: center;
  3181. align-items: center;
  3182. text-align: center;
  3183. }
  3184. @media screen and (max-width: 550px) {
  3185. .onboarding-modal {
  3186. width: 100%;
  3187. height: 100%;
  3188. border-radius: 0;
  3189. }
  3190. .onboarding-modal__pager {
  3191. width: 100%;
  3192. height: auto;
  3193. max-width: none;
  3194. max-height: none;
  3195. flex: 1 1 auto;
  3196. }
  3197. }
  3198. .onboarding-modal__paginator,
  3199. .error-modal__footer {
  3200. flex: 0 0 auto;
  3201. background: darken($ui-secondary-color, 8%);
  3202. display: flex;
  3203. padding: 25px;
  3204. & > div {
  3205. min-width: 33px;
  3206. }
  3207. .onboarding-modal__nav,
  3208. .error-modal__nav {
  3209. color: $lighter-text-color;
  3210. border: 0;
  3211. font-size: 14px;
  3212. font-weight: 500;
  3213. padding: 10px 25px;
  3214. line-height: inherit;
  3215. height: auto;
  3216. margin: -10px;
  3217. border-radius: 4px;
  3218. background-color: transparent;
  3219. &:hover,
  3220. &:focus,
  3221. &:active {
  3222. color: darken($lighter-text-color, 4%);
  3223. background-color: darken($ui-secondary-color, 16%);
  3224. }
  3225. &.onboarding-modal__done,
  3226. &.onboarding-modal__next {
  3227. color: $inverted-text-color;
  3228. &:hover,
  3229. &:focus,
  3230. &:active {
  3231. color: lighten($inverted-text-color, 4%);
  3232. }
  3233. }
  3234. }
  3235. }
  3236. .error-modal__footer {
  3237. justify-content: center;
  3238. }
  3239. .onboarding-modal__dots {
  3240. flex: 1 1 auto;
  3241. display: flex;
  3242. align-items: center;
  3243. justify-content: center;
  3244. }
  3245. .onboarding-modal__dot {
  3246. width: 14px;
  3247. height: 14px;
  3248. border-radius: 14px;
  3249. background: darken($ui-secondary-color, 16%);
  3250. margin: 0 3px;
  3251. cursor: pointer;
  3252. &:hover {
  3253. background: darken($ui-secondary-color, 18%);
  3254. }
  3255. &.active {
  3256. cursor: default;
  3257. background: darken($ui-secondary-color, 24%);
  3258. }
  3259. }
  3260. .onboarding-modal__page__wrapper {
  3261. pointer-events: none;
  3262. padding: 25px;
  3263. padding-bottom: 0;
  3264. &.onboarding-modal__page__wrapper--active {
  3265. pointer-events: auto;
  3266. }
  3267. }
  3268. .onboarding-modal__page {
  3269. cursor: default;
  3270. line-height: 21px;
  3271. h1 {
  3272. font-size: 18px;
  3273. font-weight: 500;
  3274. color: $inverted-text-color;
  3275. margin-bottom: 20px;
  3276. }
  3277. a {
  3278. color: $highlight-text-color;
  3279. &:hover,
  3280. &:focus,
  3281. &:active {
  3282. color: lighten($highlight-text-color, 4%);
  3283. }
  3284. }
  3285. .navigation-bar a {
  3286. color: inherit;
  3287. }
  3288. p {
  3289. font-size: 16px;
  3290. color: $lighter-text-color;
  3291. margin-top: 10px;
  3292. margin-bottom: 10px;
  3293. &:last-child {
  3294. margin-bottom: 0;
  3295. }
  3296. strong {
  3297. font-weight: 500;
  3298. background: $ui-base-color;
  3299. color: $secondary-text-color;
  3300. border-radius: 4px;
  3301. font-size: 14px;
  3302. padding: 3px 6px;
  3303. @each $lang in $cjk-langs {
  3304. &:lang(#{$lang}) {
  3305. font-weight: 700;
  3306. }
  3307. }
  3308. }
  3309. }
  3310. }
  3311. .onboarding-modal__page__wrapper-0 {
  3312. background: url('../images/elephant_ui_greeting.svg') no-repeat left bottom / auto 250px;
  3313. height: 100%;
  3314. padding: 0;
  3315. }
  3316. .onboarding-modal__page-one {
  3317. &__lead {
  3318. padding: 65px;
  3319. padding-top: 45px;
  3320. padding-bottom: 0;
  3321. margin-bottom: 10px;
  3322. h1 {
  3323. font-size: 26px;
  3324. line-height: 36px;
  3325. margin-bottom: 8px;
  3326. }
  3327. p {
  3328. margin-bottom: 0;
  3329. }
  3330. }
  3331. &__extra {
  3332. padding-right: 65px;
  3333. padding-left: 185px;
  3334. text-align: center;
  3335. }
  3336. }
  3337. .display-case {
  3338. text-align: center;
  3339. font-size: 15px;
  3340. margin-bottom: 15px;
  3341. &__label {
  3342. font-weight: 500;
  3343. color: $inverted-text-color;
  3344. margin-bottom: 5px;
  3345. text-transform: uppercase;
  3346. font-size: 12px;
  3347. }
  3348. &__case {
  3349. background: $ui-base-color;
  3350. color: $secondary-text-color;
  3351. font-weight: 500;
  3352. padding: 10px;
  3353. border-radius: 4px;
  3354. }
  3355. }
  3356. .onboarding-modal__page-two,
  3357. .onboarding-modal__page-three,
  3358. .onboarding-modal__page-four,
  3359. .onboarding-modal__page-five {
  3360. p {
  3361. text-align: left;
  3362. }
  3363. .figure {
  3364. background: darken($ui-base-color, 8%);
  3365. color: $secondary-text-color;
  3366. margin-bottom: 20px;
  3367. border-radius: 4px;
  3368. padding: 10px;
  3369. text-align: center;
  3370. font-size: 14px;
  3371. box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.3);
  3372. .onboarding-modal__image {
  3373. border-radius: 4px;
  3374. margin-bottom: 10px;
  3375. }
  3376. &.non-interactive {
  3377. pointer-events: none;
  3378. text-align: left;
  3379. }
  3380. }
  3381. }
  3382. .onboarding-modal__page-four__columns {
  3383. .row {
  3384. display: flex;
  3385. margin-bottom: 20px;
  3386. & > div {
  3387. flex: 1 1 0;
  3388. margin: 0 10px;
  3389. &:first-child {
  3390. margin-left: 0;
  3391. }
  3392. &:last-child {
  3393. margin-right: 0;
  3394. }
  3395. p {
  3396. text-align: center;
  3397. }
  3398. }
  3399. &:last-child {
  3400. margin-bottom: 0;
  3401. }
  3402. }
  3403. .column-header {
  3404. color: $primary-text-color;
  3405. }
  3406. }
  3407. @media screen and (max-width: 320px) and (max-height: 600px) {
  3408. .onboarding-modal__page p {
  3409. font-size: 14px;
  3410. line-height: 20px;
  3411. }
  3412. .onboarding-modal__page-two .figure,
  3413. .onboarding-modal__page-three .figure,
  3414. .onboarding-modal__page-four .figure,
  3415. .onboarding-modal__page-five .figure {
  3416. font-size: 12px;
  3417. margin-bottom: 10px;
  3418. }
  3419. .onboarding-modal__page-four__columns .row {
  3420. margin-bottom: 10px;
  3421. }
  3422. .onboarding-modal__page-four__columns .column-header {
  3423. padding: 5px;
  3424. font-size: 12px;
  3425. }
  3426. }
  3427. .onboard-sliders {
  3428. display: inline-block;
  3429. max-width: 30px;
  3430. max-height: auto;
  3431. margin-left: 10px;
  3432. }
  3433. .boost-modal,
  3434. .confirmation-modal,
  3435. .report-modal,
  3436. .actions-modal,
  3437. .mute-modal {
  3438. background: lighten($ui-secondary-color, 8%);
  3439. color: $inverted-text-color;
  3440. border-radius: 8px;
  3441. overflow: hidden;
  3442. max-width: 90vw;
  3443. width: 480px;
  3444. position: relative;
  3445. flex-direction: column;
  3446. .status__display-name {
  3447. display: block;
  3448. max-width: 100%;
  3449. padding-right: 25px;
  3450. }
  3451. .status__avatar {
  3452. height: 28px;
  3453. left: 10px;
  3454. position: absolute;
  3455. top: 10px;
  3456. width: 48px;
  3457. }
  3458. .status__content__spoiler-link {
  3459. color: lighten($secondary-text-color, 8%);
  3460. }
  3461. }
  3462. .actions-modal {
  3463. .status {
  3464. background: $white;
  3465. border-bottom-color: $ui-secondary-color;
  3466. padding-top: 10px;
  3467. padding-bottom: 10px;
  3468. }
  3469. .dropdown-menu__separator {
  3470. border-bottom-color: $ui-secondary-color;
  3471. }
  3472. }
  3473. .boost-modal__container {
  3474. overflow-x: scroll;
  3475. padding: 10px;
  3476. .status {
  3477. user-select: text;
  3478. border-bottom: 0;
  3479. }
  3480. }
  3481. .boost-modal__action-bar,
  3482. .confirmation-modal__action-bar,
  3483. .mute-modal__action-bar {
  3484. display: flex;
  3485. justify-content: space-between;
  3486. background: $ui-secondary-color;
  3487. padding: 10px;
  3488. line-height: 36px;
  3489. & > div {
  3490. flex: 1 1 auto;
  3491. text-align: right;
  3492. color: $lighter-text-color;
  3493. padding-right: 10px;
  3494. }
  3495. .button {
  3496. flex: 0 0 auto;
  3497. }
  3498. }
  3499. .boost-modal__status-header {
  3500. font-size: 15px;
  3501. }
  3502. .boost-modal__status-time {
  3503. float: right;
  3504. font-size: 14px;
  3505. }
  3506. .confirmation-modal {
  3507. max-width: 85vw;
  3508. @media screen and (min-width: 480px) {
  3509. max-width: 380px;
  3510. }
  3511. }
  3512. .mute-modal {
  3513. line-height: 24px;
  3514. }
  3515. .mute-modal .react-toggle {
  3516. vertical-align: middle;
  3517. }
  3518. .report-modal {
  3519. width: 90vw;
  3520. max-width: 700px;
  3521. }
  3522. .report-modal__container {
  3523. display: flex;
  3524. border-top: 1px solid $ui-secondary-color;
  3525. @media screen and (max-width: 480px) {
  3526. flex-wrap: wrap;
  3527. overflow-y: auto;
  3528. }
  3529. }
  3530. .report-modal__statuses,
  3531. .report-modal__comment {
  3532. box-sizing: border-box;
  3533. width: 50%;
  3534. @media screen and (max-width: 480px) {
  3535. width: 100%;
  3536. }
  3537. }
  3538. .report-modal__statuses {
  3539. flex: 1 1 auto;
  3540. min-height: 20vh;
  3541. max-height: 80vh;
  3542. overflow-y: auto;
  3543. overflow-x: hidden;
  3544. .status__content a {
  3545. color: $highlight-text-color;
  3546. }
  3547. .status__content p {
  3548. color: $inverted-text-color;
  3549. }
  3550. @media screen and (max-width: 480px) {
  3551. max-height: 10vh;
  3552. }
  3553. }
  3554. .report-modal__comment {
  3555. padding: 20px;
  3556. border-right: 1px solid $ui-secondary-color;
  3557. max-width: 320px;
  3558. p {
  3559. font-size: 14px;
  3560. line-height: 20px;
  3561. margin-bottom: 20px;
  3562. }
  3563. .setting-text {
  3564. display: block;
  3565. box-sizing: border-box;
  3566. width: 100%;
  3567. margin: 0;
  3568. color: $inverted-text-color;
  3569. background: $white;
  3570. padding: 10px;
  3571. font-family: inherit;
  3572. font-size: 14px;
  3573. resize: vertical;
  3574. border: 0;
  3575. outline: 0;
  3576. border-radius: 4px;
  3577. border: 1px solid $ui-secondary-color;
  3578. margin-bottom: 20px;
  3579. &:focus {
  3580. border: 1px solid darken($ui-secondary-color, 8%);
  3581. }
  3582. }
  3583. .setting-toggle {
  3584. margin-top: 20px;
  3585. margin-bottom: 24px;
  3586. &__label {
  3587. color: $inverted-text-color;
  3588. font-size: 14px;
  3589. }
  3590. }
  3591. @media screen and (max-width: 480px) {
  3592. padding: 10px;
  3593. max-width: 100%;
  3594. order: 2;
  3595. .setting-toggle {
  3596. margin-bottom: 4px;
  3597. }
  3598. }
  3599. }
  3600. .actions-modal {
  3601. .status {
  3602. overflow-y: auto;
  3603. max-height: 300px;
  3604. }
  3605. max-height: 80vh;
  3606. max-width: 80vw;
  3607. .actions-modal__item-label {
  3608. font-weight: 500;
  3609. }
  3610. ul {
  3611. overflow-y: auto;
  3612. flex-shrink: 0;
  3613. li:empty {
  3614. margin: 0;
  3615. }
  3616. li:not(:empty) {
  3617. a {
  3618. color: $inverted-text-color;
  3619. display: flex;
  3620. padding: 12px 16px;
  3621. font-size: 15px;
  3622. align-items: center;
  3623. text-decoration: none;
  3624. &,
  3625. button {
  3626. transition: none;
  3627. }
  3628. &.active,
  3629. &:hover,
  3630. &:active,
  3631. &:focus {
  3632. &,
  3633. button {
  3634. background: $ui-highlight-color;
  3635. color: $primary-text-color;
  3636. }
  3637. }
  3638. button:first-child {
  3639. margin-right: 10px;
  3640. }
  3641. }
  3642. }
  3643. }
  3644. }
  3645. .confirmation-modal__action-bar,
  3646. .mute-modal__action-bar {
  3647. .confirmation-modal__cancel-button,
  3648. .mute-modal__cancel-button {
  3649. background-color: transparent;
  3650. color: $lighter-text-color;
  3651. font-size: 14px;
  3652. font-weight: 500;
  3653. &:hover,
  3654. &:focus,
  3655. &:active {
  3656. color: darken($lighter-text-color, 4%);
  3657. }
  3658. }
  3659. }
  3660. .confirmation-modal__container,
  3661. .mute-modal__container,
  3662. .report-modal__target {
  3663. padding: 30px;
  3664. font-size: 16px;
  3665. text-align: center;
  3666. strong {
  3667. font-weight: 500;
  3668. @each $lang in $cjk-langs {
  3669. &:lang(#{$lang}) {
  3670. font-weight: 700;
  3671. }
  3672. }
  3673. }
  3674. }
  3675. .report-modal__target {
  3676. padding: 20px;
  3677. .media-modal__close {
  3678. top: 19px;
  3679. right: 15px;
  3680. }
  3681. }
  3682. .loading-bar {
  3683. background-color: $highlight-text-color;
  3684. height: 3px;
  3685. position: absolute;
  3686. top: 0;
  3687. left: 0;
  3688. }
  3689. .media-gallery__gifv__label {
  3690. display: block;
  3691. position: absolute;
  3692. color: $primary-text-color;
  3693. background: rgba($base-overlay-background, 0.5);
  3694. bottom: 6px;
  3695. left: 6px;
  3696. padding: 2px 6px;
  3697. border-radius: 2px;
  3698. font-size: 11px;
  3699. font-weight: 600;
  3700. z-index: 1;
  3701. pointer-events: none;
  3702. opacity: 0.9;
  3703. transition: opacity 0.1s ease;
  3704. }
  3705. .media-gallery__gifv {
  3706. &.autoplay {
  3707. .media-gallery__gifv__label {
  3708. display: none;
  3709. }
  3710. }
  3711. &:hover {
  3712. .media-gallery__gifv__label {
  3713. opacity: 1;
  3714. }
  3715. }
  3716. }
  3717. .attachment-list {
  3718. display: flex;
  3719. font-size: 14px;
  3720. border: 1px solid lighten($ui-base-color, 8%);
  3721. border-radius: 4px;
  3722. margin-top: 14px;
  3723. overflow: hidden;
  3724. &__icon {
  3725. flex: 0 0 auto;
  3726. color: $dark-text-color;
  3727. padding: 8px 18px;
  3728. cursor: default;
  3729. border-right: 1px solid lighten($ui-base-color, 8%);
  3730. display: flex;
  3731. flex-direction: column;
  3732. align-items: center;
  3733. justify-content: center;
  3734. font-size: 26px;
  3735. .fa {
  3736. display: block;
  3737. }
  3738. }
  3739. &__list {
  3740. list-style: none;
  3741. padding: 4px 0;
  3742. padding-left: 8px;
  3743. display: flex;
  3744. flex-direction: column;
  3745. justify-content: center;
  3746. li {
  3747. display: block;
  3748. padding: 4px 0;
  3749. }
  3750. a {
  3751. text-decoration: none;
  3752. color: $dark-text-color;
  3753. font-weight: 500;
  3754. &:hover {
  3755. text-decoration: underline;
  3756. }
  3757. }
  3758. }
  3759. &.compact {
  3760. border: 0;
  3761. margin-top: 4px;
  3762. .attachment-list__list {
  3763. padding: 0;
  3764. display: block;
  3765. }
  3766. .fa {
  3767. color: $dark-text-color;
  3768. }
  3769. }
  3770. }
  3771. /* Media Gallery */
  3772. .media-gallery {
  3773. box-sizing: border-box;
  3774. margin-top: 8px;
  3775. overflow: hidden;
  3776. border-radius: 4px;
  3777. position: relative;
  3778. width: 100%;
  3779. }
  3780. .media-gallery__item {
  3781. border: none;
  3782. box-sizing: border-box;
  3783. display: block;
  3784. float: left;
  3785. position: relative;
  3786. border-radius: 4px;
  3787. overflow: hidden;
  3788. &.standalone {
  3789. .media-gallery__item-gifv-thumbnail {
  3790. transform: none;
  3791. top: 0;
  3792. }
  3793. }
  3794. }
  3795. .media-gallery__item-thumbnail {
  3796. cursor: zoom-in;
  3797. display: block;
  3798. text-decoration: none;
  3799. color: $secondary-text-color;
  3800. line-height: 0;
  3801. &,
  3802. img {
  3803. height: 100%;
  3804. width: 100%;
  3805. }
  3806. img {
  3807. object-fit: cover;
  3808. }
  3809. }
  3810. .media-gallery__gifv {
  3811. height: 100%;
  3812. overflow: hidden;
  3813. position: relative;
  3814. width: 100%;
  3815. }
  3816. .media-gallery__item-gifv-thumbnail {
  3817. cursor: zoom-in;
  3818. height: 100%;
  3819. object-fit: cover;
  3820. position: relative;
  3821. top: 50%;
  3822. transform: translateY(-50%);
  3823. width: 100%;
  3824. z-index: 1;
  3825. }
  3826. .media-gallery__item-thumbnail-label {
  3827. clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
  3828. clip: rect(1px, 1px, 1px, 1px);
  3829. overflow: hidden;
  3830. position: absolute;
  3831. }
  3832. /* End Media Gallery */
  3833. /* Status Video Player */
  3834. .status__video-player {
  3835. background: $base-overlay-background;
  3836. box-sizing: border-box;
  3837. cursor: default; /* May not be needed */
  3838. margin-top: 8px;
  3839. overflow: hidden;
  3840. position: relative;
  3841. }
  3842. .status__video-player-video {
  3843. height: 100%;
  3844. object-fit: cover;
  3845. position: relative;
  3846. top: 50%;
  3847. transform: translateY(-50%);
  3848. width: 100%;
  3849. z-index: 1;
  3850. }
  3851. .status__video-player-expand,
  3852. .status__video-player-mute {
  3853. color: $primary-text-color;
  3854. opacity: 0.8;
  3855. position: absolute;
  3856. right: 4px;
  3857. text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
  3858. }
  3859. .status__video-player-spoiler {
  3860. display: none;
  3861. color: $primary-text-color;
  3862. left: 4px;
  3863. position: absolute;
  3864. text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
  3865. top: 4px;
  3866. z-index: 100;
  3867. &.status__video-player-spoiler--visible {
  3868. display: block;
  3869. }
  3870. }
  3871. .status__video-player-expand {
  3872. bottom: 4px;
  3873. z-index: 100;
  3874. }
  3875. .status__video-player-mute {
  3876. top: 4px;
  3877. z-index: 5;
  3878. }
  3879. .video-player {
  3880. overflow: hidden;
  3881. position: relative;
  3882. background: $base-shadow-color;
  3883. max-width: 100%;
  3884. border-radius: 4px;
  3885. &:focus {
  3886. outline: 0;
  3887. }
  3888. video {
  3889. max-width: 100vw;
  3890. max-height: 80vh;
  3891. z-index: 1;
  3892. }
  3893. &.fullscreen {
  3894. width: 100% !important;
  3895. height: 100% !important;
  3896. margin: 0;
  3897. video {
  3898. max-width: 100% !important;
  3899. max-height: 100% !important;
  3900. width: 100% !important;
  3901. height: 100% !important;
  3902. }
  3903. }
  3904. &.inline {
  3905. video {
  3906. object-fit: contain;
  3907. position: relative;
  3908. top: 50%;
  3909. transform: translateY(-50%);
  3910. }
  3911. }
  3912. &__controls {
  3913. position: absolute;
  3914. z-index: 2;
  3915. bottom: 0;
  3916. left: 0;
  3917. right: 0;
  3918. box-sizing: border-box;
  3919. background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);
  3920. padding: 0 15px;
  3921. opacity: 0;
  3922. transition: opacity .1s ease;
  3923. &.active {
  3924. opacity: 1;
  3925. }
  3926. }
  3927. &.inactive {
  3928. video,
  3929. .video-player__controls {
  3930. visibility: hidden;
  3931. }
  3932. }
  3933. &__spoiler {
  3934. display: none;
  3935. position: absolute;
  3936. top: 0;
  3937. left: 0;
  3938. width: 100%;
  3939. height: 100%;
  3940. z-index: 4;
  3941. border: 0;
  3942. background: $base-overlay-background;
  3943. color: $darker-text-color;
  3944. transition: none;
  3945. pointer-events: none;
  3946. &.active {
  3947. display: block;
  3948. pointer-events: auto;
  3949. &:hover,
  3950. &:active,
  3951. &:focus {
  3952. color: lighten($darker-text-color, 7%);
  3953. }
  3954. }
  3955. &__title {
  3956. display: block;
  3957. font-size: 14px;
  3958. }
  3959. &__subtitle {
  3960. display: block;
  3961. font-size: 11px;
  3962. font-weight: 500;
  3963. }
  3964. }
  3965. &__buttons-bar {
  3966. display: flex;
  3967. justify-content: space-between;
  3968. padding-bottom: 10px;
  3969. }
  3970. &__buttons {
  3971. font-size: 16px;
  3972. white-space: nowrap;
  3973. overflow: hidden;
  3974. text-overflow: ellipsis;
  3975. &.left {
  3976. button {
  3977. padding-left: 0;
  3978. }
  3979. }
  3980. &.right {
  3981. button {
  3982. padding-right: 0;
  3983. }
  3984. }
  3985. button {
  3986. background: transparent;
  3987. padding: 2px 10px;
  3988. font-size: 16px;
  3989. border: 0;
  3990. color: rgba($white, 0.75);
  3991. &:active,
  3992. &:hover,
  3993. &:focus {
  3994. color: $white;
  3995. }
  3996. }
  3997. }
  3998. &__time-sep,
  3999. &__time-total,
  4000. &__time-current {
  4001. font-size: 14px;
  4002. font-weight: 500;
  4003. }
  4004. &__time-current {
  4005. color: $white;
  4006. margin-left: 10px;
  4007. }
  4008. &__time-sep {
  4009. display: inline-block;
  4010. margin: 0 6px;
  4011. }
  4012. &__time-sep,
  4013. &__time-total {
  4014. color: $white;
  4015. }
  4016. &__seek {
  4017. cursor: pointer;
  4018. height: 24px;
  4019. position: relative;
  4020. &::before {
  4021. content: "";
  4022. width: 100%;
  4023. background: rgba($white, 0.35);
  4024. border-radius: 4px;
  4025. display: block;
  4026. position: absolute;
  4027. height: 4px;
  4028. top: 10px;
  4029. }
  4030. &__progress,
  4031. &__buffer {
  4032. display: block;
  4033. position: absolute;
  4034. height: 4px;
  4035. border-radius: 4px;
  4036. top: 10px;
  4037. background: lighten($ui-highlight-color, 8%);
  4038. }
  4039. &__buffer {
  4040. background: rgba($white, 0.2);
  4041. }
  4042. &__handle {
  4043. position: absolute;
  4044. z-index: 3;
  4045. opacity: 0;
  4046. border-radius: 50%;
  4047. width: 12px;
  4048. height: 12px;
  4049. top: 6px;
  4050. margin-left: -6px;
  4051. transition: opacity .1s ease;
  4052. background: lighten($ui-highlight-color, 8%);
  4053. box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);
  4054. pointer-events: none;
  4055. &.active {
  4056. opacity: 1;
  4057. }
  4058. }
  4059. &:hover {
  4060. .video-player__seek__handle {
  4061. opacity: 1;
  4062. }
  4063. }
  4064. }
  4065. &.detailed,
  4066. &.fullscreen {
  4067. .video-player__buttons {
  4068. button {
  4069. padding-top: 10px;
  4070. padding-bottom: 10px;
  4071. }
  4072. }
  4073. }
  4074. }
  4075. .media-spoiler-video {
  4076. background-size: cover;
  4077. background-repeat: no-repeat;
  4078. background-position: center;
  4079. cursor: pointer;
  4080. margin-top: 8px;
  4081. position: relative;
  4082. border: 0;
  4083. display: block;
  4084. }
  4085. .media-spoiler-video-play-icon {
  4086. border-radius: 100px;
  4087. color: rgba($primary-text-color, 0.8);
  4088. font-size: 36px;
  4089. left: 50%;
  4090. padding: 5px;
  4091. position: absolute;
  4092. top: 50%;
  4093. transform: translate(-50%, -50%);
  4094. }
  4095. /* End Video Player */
  4096. .account-gallery__container {
  4097. display: flex;
  4098. justify-content: center;
  4099. flex-wrap: wrap;
  4100. padding: 2px;
  4101. }
  4102. .account-gallery__item {
  4103. flex-grow: 1;
  4104. width: 50%;
  4105. overflow: hidden;
  4106. position: relative;
  4107. &::before {
  4108. content: "";
  4109. display: block;
  4110. padding-top: 100%;
  4111. }
  4112. a {
  4113. display: block;
  4114. width: calc(100% - 4px);
  4115. height: calc(100% - 4px);
  4116. margin: 2px;
  4117. top: 0;
  4118. left: 0;
  4119. background-color: $base-overlay-background;
  4120. background-size: cover;
  4121. background-position: center;
  4122. position: absolute;
  4123. color: $darker-text-color;
  4124. text-decoration: none;
  4125. border-radius: 4px;
  4126. &:hover,
  4127. &:active,
  4128. &:focus {
  4129. outline: 0;
  4130. color: $secondary-text-color;
  4131. &::before {
  4132. content: "";
  4133. display: block;
  4134. width: 100%;
  4135. height: 100%;
  4136. background: rgba($base-overlay-background, 0.3);
  4137. border-radius: 4px;
  4138. }
  4139. }
  4140. }
  4141. &__icons {
  4142. position: absolute;
  4143. top: 50%;
  4144. left: 50%;
  4145. transform: translate(-50%, -50%);
  4146. font-size: 24px;
  4147. }
  4148. }
  4149. .account__section-headline {
  4150. background: darken($ui-base-color, 4%);
  4151. border-bottom: 1px solid lighten($ui-base-color, 8%);
  4152. cursor: default;
  4153. display: flex;
  4154. a {
  4155. display: block;
  4156. flex: 1 1 auto;
  4157. color: $darker-text-color;
  4158. padding: 15px 0;
  4159. font-size: 14px;
  4160. font-weight: 500;
  4161. text-align: center;
  4162. text-decoration: none;
  4163. position: relative;
  4164. &.active {
  4165. color: $secondary-text-color;
  4166. &::before,
  4167. &::after {
  4168. display: block;
  4169. content: "";
  4170. position: absolute;
  4171. bottom: 0;
  4172. left: 50%;
  4173. width: 0;
  4174. height: 0;
  4175. transform: translateX(-50%);
  4176. border-style: solid;
  4177. border-width: 0 10px 10px;
  4178. border-color: transparent transparent lighten($ui-base-color, 8%);
  4179. }
  4180. &::after {
  4181. bottom: -1px;
  4182. border-color: transparent transparent $ui-base-color;
  4183. }
  4184. }
  4185. }
  4186. }
  4187. ::-webkit-scrollbar-thumb {
  4188. border-radius: 0;
  4189. }
  4190. .search-popout {
  4191. background: $simple-background-color;
  4192. border-radius: 4px;
  4193. padding: 10px 14px;
  4194. padding-bottom: 14px;
  4195. margin-top: 10px;
  4196. color: $light-text-color;
  4197. box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
  4198. h4 {
  4199. text-transform: uppercase;
  4200. color: $light-text-color;
  4201. font-size: 13px;
  4202. font-weight: 500;
  4203. margin-bottom: 10px;
  4204. }
  4205. li {
  4206. padding: 4px 0;
  4207. }
  4208. ul {
  4209. margin-bottom: 10px;
  4210. }
  4211. em {
  4212. font-weight: 500;
  4213. color: $inverted-text-color;
  4214. }
  4215. }
  4216. noscript {
  4217. text-align: center;
  4218. img {
  4219. width: 200px;
  4220. opacity: 0.5;
  4221. animation: flicker 4s infinite;
  4222. }
  4223. div {
  4224. font-size: 14px;
  4225. margin: 30px auto;
  4226. color: $secondary-text-color;
  4227. max-width: 400px;
  4228. a {
  4229. color: $highlight-text-color;
  4230. text-decoration: underline;
  4231. &:hover {
  4232. text-decoration: none;
  4233. }
  4234. }
  4235. }
  4236. }
  4237. @keyframes flicker {
  4238. 0% { opacity: 1; }
  4239. 30% { opacity: 0.75; }
  4240. 100% { opacity: 1; }
  4241. }
  4242. @media screen and (max-width: 630px) and (max-height: 400px) {
  4243. $duration: 400ms;
  4244. $delay: 100ms;
  4245. .tabs-bar,
  4246. .search {
  4247. will-change: margin-top;
  4248. transition: margin-top $duration $delay;
  4249. }
  4250. .navigation-bar {
  4251. will-change: padding-bottom;
  4252. transition: padding-bottom $duration $delay;
  4253. }
  4254. .navigation-bar {
  4255. & > a:first-child {
  4256. will-change: margin-top, margin-left, margin-right, width;
  4257. transition: margin-top $duration $delay, margin-left $duration ($duration + $delay), margin-right $duration ($duration + $delay);
  4258. }
  4259. & > .navigation-bar__profile-edit {
  4260. will-change: margin-top;
  4261. transition: margin-top $duration $delay;
  4262. }
  4263. .navigation-bar__actions {
  4264. & > .icon-button.close {
  4265. will-change: opacity transform;
  4266. transition: opacity $duration * 0.5 $delay,
  4267. transform $duration $delay;
  4268. }
  4269. & > .compose__action-bar .icon-button {
  4270. will-change: opacity transform;
  4271. transition: opacity $duration * 0.5 $delay + $duration * 0.5,
  4272. transform $duration $delay;
  4273. }
  4274. }
  4275. }
  4276. .is-composing {
  4277. .tabs-bar,
  4278. .search {
  4279. margin-top: -50px;
  4280. }
  4281. .navigation-bar {
  4282. padding-bottom: 0;
  4283. & > a:first-child {
  4284. margin: -100px 10px 0 -50px;
  4285. }
  4286. .navigation-bar__profile {
  4287. padding-top: 2px;
  4288. }
  4289. .navigation-bar__profile-edit {
  4290. position: absolute;
  4291. margin-top: -60px;
  4292. }
  4293. .navigation-bar__actions {
  4294. .icon-button.close {
  4295. pointer-events: auto;
  4296. opacity: 1;
  4297. transform: scale(1.0, 1.0) translate(0, 0);
  4298. bottom: 5px;
  4299. }
  4300. .compose__action-bar .icon-button {
  4301. pointer-events: none;
  4302. opacity: 0;
  4303. transform: scale(0.0, 1.0) translate(100%, 0);
  4304. }
  4305. }
  4306. }
  4307. }
  4308. }
  4309. .embed-modal {
  4310. max-width: 80vw;
  4311. max-height: 80vh;
  4312. h4 {
  4313. padding: 30px;
  4314. font-weight: 500;
  4315. font-size: 16px;
  4316. text-align: center;
  4317. }
  4318. .embed-modal__container {
  4319. padding: 10px;
  4320. .hint {
  4321. margin-bottom: 15px;
  4322. }
  4323. .embed-modal__html {
  4324. outline: 0;
  4325. box-sizing: border-box;
  4326. display: block;
  4327. width: 100%;
  4328. border: none;
  4329. padding: 10px;
  4330. font-family: 'mastodon-font-monospace', monospace;
  4331. background: $ui-base-color;
  4332. color: $primary-text-color;
  4333. font-size: 14px;
  4334. margin: 0;
  4335. margin-bottom: 15px;
  4336. &::-moz-focus-inner {
  4337. border: 0;
  4338. }
  4339. &::-moz-focus-inner,
  4340. &:focus,
  4341. &:active {
  4342. outline: 0 !important;
  4343. }
  4344. &:focus {
  4345. background: lighten($ui-base-color, 4%);
  4346. }
  4347. @media screen and (max-width: 600px) {
  4348. font-size: 16px;
  4349. }
  4350. }
  4351. .embed-modal__iframe {
  4352. width: 400px;
  4353. max-width: 100%;
  4354. overflow: hidden;
  4355. border: 0;
  4356. }
  4357. }
  4358. }
  4359. .account__moved-note {
  4360. padding: 14px 10px;
  4361. padding-bottom: 16px;
  4362. background: lighten($ui-base-color, 4%);
  4363. border-top: 1px solid lighten($ui-base-color, 8%);
  4364. border-bottom: 1px solid lighten($ui-base-color, 8%);
  4365. &__message {
  4366. position: relative;
  4367. margin-left: 58px;
  4368. color: $dark-text-color;
  4369. padding: 8px 0;
  4370. padding-top: 0;
  4371. padding-bottom: 4px;
  4372. font-size: 14px;
  4373. > span {
  4374. display: block;
  4375. overflow: hidden;
  4376. text-overflow: ellipsis;
  4377. }
  4378. }
  4379. &__icon-wrapper {
  4380. left: -26px;
  4381. position: absolute;
  4382. }
  4383. .detailed-status__display-avatar {
  4384. position: relative;
  4385. }
  4386. .detailed-status__display-name {
  4387. margin-bottom: 0;
  4388. }
  4389. }
  4390. .column-inline-form {
  4391. padding: 7px 15px;
  4392. padding-right: 5px;
  4393. display: flex;
  4394. justify-content: flex-start;
  4395. align-items: center;
  4396. background: lighten($ui-base-color, 4%);
  4397. label {
  4398. flex: 1 1 auto;
  4399. input {
  4400. width: 100%;
  4401. margin-bottom: 6px;
  4402. &:focus {
  4403. outline: 0;
  4404. }
  4405. }
  4406. }
  4407. .icon-button {
  4408. flex: 0 0 auto;
  4409. margin-left: 5px;
  4410. }
  4411. }
  4412. .drawer__backdrop {
  4413. cursor: pointer;
  4414. position: absolute;
  4415. top: 0;
  4416. left: 0;
  4417. width: 100%;
  4418. height: 100%;
  4419. background: rgba($base-overlay-background, 0.5);
  4420. }
  4421. .list-editor {
  4422. background: $ui-base-color;
  4423. flex-direction: column;
  4424. border-radius: 8px;
  4425. box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
  4426. width: 380px;
  4427. overflow: hidden;
  4428. @media screen and (max-width: 420px) {
  4429. width: 90%;
  4430. }
  4431. h4 {
  4432. padding: 15px 0;
  4433. background: lighten($ui-base-color, 13%);
  4434. font-weight: 500;
  4435. font-size: 16px;
  4436. text-align: center;
  4437. border-radius: 8px 8px 0 0;
  4438. }
  4439. .drawer__pager {
  4440. height: 50vh;
  4441. }
  4442. .drawer__inner {
  4443. border-radius: 0 0 8px 8px;
  4444. &.backdrop {
  4445. width: calc(100% - 60px);
  4446. box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
  4447. border-radius: 0 0 0 8px;
  4448. }
  4449. }
  4450. &__accounts {
  4451. overflow-y: auto;
  4452. }
  4453. .account__display-name {
  4454. &:hover strong {
  4455. text-decoration: none;
  4456. }
  4457. }
  4458. .account__avatar {
  4459. cursor: default;
  4460. }
  4461. .search {
  4462. margin-bottom: 0;
  4463. }
  4464. }
  4465. .focal-point-modal {
  4466. max-width: 80vw;
  4467. max-height: 80vh;
  4468. position: relative;
  4469. }
  4470. .focal-point {
  4471. position: relative;
  4472. cursor: pointer;
  4473. overflow: hidden;
  4474. &.dragging {
  4475. cursor: move;
  4476. }
  4477. img {
  4478. max-width: 80vw;
  4479. max-height: 80vh;
  4480. width: auto;
  4481. height: auto;
  4482. margin: auto;
  4483. }
  4484. &__reticle {
  4485. position: absolute;
  4486. width: 100px;
  4487. height: 100px;
  4488. transform: translate(-50%, -50%);
  4489. background: url('../images/reticle.png') no-repeat 0 0;
  4490. border-radius: 50%;
  4491. box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);
  4492. }
  4493. &__overlay {
  4494. position: absolute;
  4495. width: 100%;
  4496. height: 100%;
  4497. top: 0;
  4498. left: 0;
  4499. }
  4500. }
  4501. .floating-action-button {
  4502. position: fixed;
  4503. display: flex;
  4504. justify-content: center;
  4505. align-items: center;
  4506. width: 3.9375rem;
  4507. height: 3.9375rem;
  4508. bottom: 1.3125rem;
  4509. right: 1.3125rem;
  4510. background: darken($ui-highlight-color, 3%);
  4511. color: $white;
  4512. border-radius: 50%;
  4513. font-size: 21px;
  4514. line-height: 21px;
  4515. text-decoration: none;
  4516. box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);
  4517. &:hover,
  4518. &:focus,
  4519. &:active {
  4520. background: lighten($ui-highlight-color, 7%);
  4521. }
  4522. }
  4523. .account__header .roles {
  4524. margin-top: 20px;
  4525. margin-bottom: 20px;
  4526. padding: 0 15px;
  4527. }
  4528. .account__header .account__header__fields {
  4529. font-size: 14px;
  4530. line-height: 20px;
  4531. overflow: hidden;
  4532. margin: 20px -10px -20px;
  4533. border-bottom: 0;
  4534. dl {
  4535. border-top: 1px solid lighten($ui-base-color, 8%);
  4536. display: flex;
  4537. }
  4538. dt,
  4539. dd {
  4540. box-sizing: border-box;
  4541. padding: 14px 5px;
  4542. text-align: center;
  4543. max-height: 48px;
  4544. overflow: hidden;
  4545. white-space: nowrap;
  4546. text-overflow: ellipsis;
  4547. }
  4548. dt {
  4549. color: $darker-text-color;
  4550. background: darken($ui-base-color, 4%);
  4551. width: 120px;
  4552. flex: 0 0 auto;
  4553. font-weight: 500;
  4554. }
  4555. dd {
  4556. flex: 1 1 auto;
  4557. color: $primary-text-color;
  4558. background: $ui-base-color;
  4559. }
  4560. }
  4561. .trends {
  4562. &__header {
  4563. color: $dark-text-color;
  4564. background: lighten($ui-base-color, 2%);
  4565. border-bottom: 1px solid darken($ui-base-color, 4%);
  4566. font-weight: 500;
  4567. padding: 15px;
  4568. font-size: 16px;
  4569. cursor: default;
  4570. .fa {
  4571. display: inline-block;
  4572. margin-right: 5px;
  4573. }
  4574. }
  4575. &__item {
  4576. display: flex;
  4577. align-items: center;
  4578. padding: 15px;
  4579. border-bottom: 1px solid lighten($ui-base-color, 8%);
  4580. &:last-child {
  4581. border-bottom: 0;
  4582. }
  4583. &__name {
  4584. flex: 1 1 auto;
  4585. color: $dark-text-color;
  4586. overflow: hidden;
  4587. text-overflow: ellipsis;
  4588. white-space: nowrap;
  4589. strong {
  4590. font-weight: 500;
  4591. }
  4592. a {
  4593. color: $darker-text-color;
  4594. text-decoration: none;
  4595. font-size: 14px;
  4596. font-weight: 500;
  4597. display: block;
  4598. overflow: hidden;
  4599. text-overflow: ellipsis;
  4600. white-space: nowrap;
  4601. &:hover,
  4602. &:focus,
  4603. &:active {
  4604. span {
  4605. text-decoration: underline;
  4606. }
  4607. }
  4608. }
  4609. }
  4610. &__current {
  4611. flex: 0 0 auto;
  4612. width: 100px;
  4613. font-size: 24px;
  4614. line-height: 36px;
  4615. font-weight: 500;
  4616. text-align: center;
  4617. color: $secondary-text-color;
  4618. }
  4619. &__sparkline {
  4620. flex: 0 0 auto;
  4621. width: 50px;
  4622. path {
  4623. stroke: lighten($highlight-text-color, 6%) !important;
  4624. }
  4625. }
  4626. }
  4627. }