The code powering m.abunchtell.com https://m.abunchtell.com
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 
 

5482 Zeilen
93 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. border-bottom: 4px solid transparent;
  1083. &.active {
  1084. border-bottom: 4px solid $ui-highlight-color;
  1085. }
  1086. & > span {
  1087. display: block;
  1088. text-transform: uppercase;
  1089. font-size: 11px;
  1090. color: $darker-text-color;
  1091. }
  1092. strong {
  1093. display: block;
  1094. font-size: 15px;
  1095. font-weight: 500;
  1096. color: $primary-text-color;
  1097. @each $lang in $cjk-langs {
  1098. &:lang(#{$lang}) {
  1099. font-weight: 700;
  1100. }
  1101. }
  1102. }
  1103. }
  1104. .account__header__avatar {
  1105. background-size: 90px 90px;
  1106. display: block;
  1107. height: 90px;
  1108. margin: 0 auto 10px;
  1109. overflow: hidden;
  1110. width: 90px;
  1111. }
  1112. .account-authorize {
  1113. padding: 14px 10px;
  1114. .detailed-status__display-name {
  1115. display: block;
  1116. margin-bottom: 15px;
  1117. overflow: hidden;
  1118. }
  1119. }
  1120. .account-authorize__avatar {
  1121. float: left;
  1122. margin-right: 10px;
  1123. }
  1124. .status__display-name,
  1125. .status__relative-time,
  1126. .detailed-status__display-name,
  1127. .detailed-status__datetime,
  1128. .detailed-status__application,
  1129. .account__display-name {
  1130. text-decoration: none;
  1131. }
  1132. .status__display-name,
  1133. .account__display-name {
  1134. strong {
  1135. color: $primary-text-color;
  1136. }
  1137. }
  1138. .muted {
  1139. .emojione {
  1140. opacity: 0.5;
  1141. }
  1142. }
  1143. .status__display-name,
  1144. .reply-indicator__display-name,
  1145. .detailed-status__display-name,
  1146. a.account__display-name {
  1147. &:hover strong {
  1148. text-decoration: underline;
  1149. }
  1150. }
  1151. .account__display-name strong {
  1152. display: block;
  1153. overflow: hidden;
  1154. text-overflow: ellipsis;
  1155. }
  1156. .detailed-status__application,
  1157. .detailed-status__datetime {
  1158. color: inherit;
  1159. }
  1160. .detailed-status__display-name {
  1161. color: $secondary-text-color;
  1162. display: block;
  1163. line-height: 24px;
  1164. margin-bottom: 15px;
  1165. overflow: hidden;
  1166. strong,
  1167. span {
  1168. display: block;
  1169. text-overflow: ellipsis;
  1170. overflow: hidden;
  1171. }
  1172. strong {
  1173. font-size: 16px;
  1174. color: $primary-text-color;
  1175. }
  1176. }
  1177. .detailed-status__display-avatar {
  1178. float: left;
  1179. margin-right: 10px;
  1180. }
  1181. .status__avatar {
  1182. height: 48px;
  1183. left: 10px;
  1184. position: absolute;
  1185. top: 10px;
  1186. width: 48px;
  1187. }
  1188. .muted {
  1189. .status__content p,
  1190. .status__content a {
  1191. color: $dark-text-color;
  1192. }
  1193. .status__display-name strong {
  1194. color: $dark-text-color;
  1195. }
  1196. .status__avatar {
  1197. opacity: 0.5;
  1198. }
  1199. a.status__content__spoiler-link {
  1200. background: $ui-base-lighter-color;
  1201. color: $inverted-text-color;
  1202. &:hover {
  1203. background: lighten($ui-base-lighter-color, 7%);
  1204. text-decoration: none;
  1205. }
  1206. }
  1207. }
  1208. .notification__message {
  1209. margin: 0 10px 0 68px;
  1210. padding: 8px 0 0;
  1211. cursor: default;
  1212. color: $darker-text-color;
  1213. font-size: 15px;
  1214. position: relative;
  1215. .fa {
  1216. color: $highlight-text-color;
  1217. }
  1218. > span {
  1219. display: block;
  1220. overflow: hidden;
  1221. text-overflow: ellipsis;
  1222. }
  1223. }
  1224. .notification__favourite-icon-wrapper {
  1225. left: -26px;
  1226. position: absolute;
  1227. .star-icon {
  1228. color: $gold-star;
  1229. }
  1230. }
  1231. .star-icon.active {
  1232. color: $gold-star;
  1233. }
  1234. .notification__display-name {
  1235. color: inherit;
  1236. font-weight: 500;
  1237. text-decoration: none;
  1238. &:hover {
  1239. color: $primary-text-color;
  1240. text-decoration: underline;
  1241. }
  1242. }
  1243. .display-name {
  1244. display: block;
  1245. max-width: 100%;
  1246. overflow: hidden;
  1247. text-overflow: ellipsis;
  1248. white-space: nowrap;
  1249. }
  1250. .display-name__html {
  1251. font-weight: 500;
  1252. }
  1253. .display-name__account {
  1254. font-size: 14px;
  1255. }
  1256. .status__relative-time,
  1257. .detailed-status__datetime {
  1258. &:hover {
  1259. text-decoration: underline;
  1260. }
  1261. }
  1262. .image-loader {
  1263. position: relative;
  1264. width: 100%;
  1265. height: 100%;
  1266. display: flex;
  1267. align-items: center;
  1268. justify-content: center;
  1269. flex-direction: column;
  1270. .image-loader__preview-canvas {
  1271. max-width: $media-modal-media-max-width;
  1272. max-height: $media-modal-media-max-height;
  1273. background: url('../images/void.png') repeat;
  1274. object-fit: contain;
  1275. }
  1276. .loading-bar {
  1277. position: relative;
  1278. }
  1279. &.image-loader--amorphous .image-loader__preview-canvas {
  1280. display: none;
  1281. }
  1282. }
  1283. .zoomable-image {
  1284. position: relative;
  1285. width: 100%;
  1286. height: 100%;
  1287. display: flex;
  1288. align-items: center;
  1289. justify-content: center;
  1290. img {
  1291. max-width: $media-modal-media-max-width;
  1292. max-height: $media-modal-media-max-height;
  1293. width: auto;
  1294. height: auto;
  1295. object-fit: contain;
  1296. }
  1297. }
  1298. .navigation-bar {
  1299. padding: 10px;
  1300. display: flex;
  1301. align-items: center;
  1302. flex-shrink: 0;
  1303. cursor: default;
  1304. color: $darker-text-color;
  1305. strong {
  1306. color: $secondary-text-color;
  1307. }
  1308. a {
  1309. color: inherit;
  1310. }
  1311. .permalink {
  1312. text-decoration: none;
  1313. }
  1314. .navigation-bar__actions {
  1315. position: relative;
  1316. .icon-button.close {
  1317. position: absolute;
  1318. pointer-events: none;
  1319. transform: scale(0.0, 1.0) translate(-100%, 0);
  1320. opacity: 0;
  1321. }
  1322. .compose__action-bar .icon-button {
  1323. pointer-events: auto;
  1324. transform: scale(1.0, 1.0) translate(0, 0);
  1325. opacity: 1;
  1326. }
  1327. }
  1328. }
  1329. .navigation-bar__profile {
  1330. flex: 1 1 auto;
  1331. margin-left: 8px;
  1332. line-height: 20px;
  1333. margin-top: -1px;
  1334. overflow: hidden;
  1335. }
  1336. .navigation-bar__profile-account {
  1337. display: block;
  1338. font-weight: 500;
  1339. overflow: hidden;
  1340. text-overflow: ellipsis;
  1341. }
  1342. .navigation-bar__profile-edit {
  1343. color: inherit;
  1344. text-decoration: none;
  1345. }
  1346. .dropdown {
  1347. display: inline-block;
  1348. }
  1349. .dropdown__content {
  1350. display: none;
  1351. position: absolute;
  1352. }
  1353. .dropdown-menu__separator {
  1354. border-bottom: 1px solid darken($ui-secondary-color, 8%);
  1355. margin: 5px 7px 6px;
  1356. height: 0;
  1357. }
  1358. .dropdown-menu {
  1359. background: $ui-secondary-color;
  1360. padding: 4px 0;
  1361. border-radius: 4px;
  1362. box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
  1363. ul {
  1364. list-style: none;
  1365. }
  1366. &.left {
  1367. transform-origin: 100% 50%;
  1368. }
  1369. &.top {
  1370. transform-origin: 50% 100%;
  1371. }
  1372. &.bottom {
  1373. transform-origin: 50% 0;
  1374. }
  1375. &.right {
  1376. transform-origin: 0 50%;
  1377. }
  1378. }
  1379. .dropdown-menu__arrow {
  1380. position: absolute;
  1381. width: 0;
  1382. height: 0;
  1383. border: 0 solid transparent;
  1384. &.left {
  1385. right: -5px;
  1386. margin-top: -5px;
  1387. border-width: 5px 0 5px 5px;
  1388. border-left-color: $ui-secondary-color;
  1389. }
  1390. &.top {
  1391. bottom: -5px;
  1392. margin-left: -7px;
  1393. border-width: 5px 7px 0;
  1394. border-top-color: $ui-secondary-color;
  1395. }
  1396. &.bottom {
  1397. top: -5px;
  1398. margin-left: -7px;
  1399. border-width: 0 7px 5px;
  1400. border-bottom-color: $ui-secondary-color;
  1401. }
  1402. &.right {
  1403. left: -5px;
  1404. margin-top: -5px;
  1405. border-width: 5px 5px 5px 0;
  1406. border-right-color: $ui-secondary-color;
  1407. }
  1408. }
  1409. .dropdown-menu__item {
  1410. a {
  1411. font-size: 13px;
  1412. line-height: 18px;
  1413. display: block;
  1414. padding: 4px 14px;
  1415. box-sizing: border-box;
  1416. text-decoration: none;
  1417. background: $ui-secondary-color;
  1418. color: $inverted-text-color;
  1419. overflow: hidden;
  1420. text-overflow: ellipsis;
  1421. white-space: nowrap;
  1422. &:focus,
  1423. &:hover,
  1424. &:active {
  1425. background: $ui-highlight-color;
  1426. color: $secondary-text-color;
  1427. outline: 0;
  1428. }
  1429. }
  1430. }
  1431. .dropdown--active .dropdown__content {
  1432. display: block;
  1433. line-height: 18px;
  1434. max-width: 311px;
  1435. right: 0;
  1436. text-align: left;
  1437. z-index: 9999;
  1438. & > ul {
  1439. list-style: none;
  1440. background: $ui-secondary-color;
  1441. padding: 4px 0;
  1442. border-radius: 4px;
  1443. box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);
  1444. min-width: 140px;
  1445. position: relative;
  1446. }
  1447. &.dropdown__right {
  1448. right: 0;
  1449. }
  1450. &.dropdown__left {
  1451. & > ul {
  1452. left: -98px;
  1453. }
  1454. }
  1455. & > ul > li > a {
  1456. font-size: 13px;
  1457. line-height: 18px;
  1458. display: block;
  1459. padding: 4px 14px;
  1460. box-sizing: border-box;
  1461. text-decoration: none;
  1462. background: $ui-secondary-color;
  1463. color: $inverted-text-color;
  1464. overflow: hidden;
  1465. text-overflow: ellipsis;
  1466. white-space: nowrap;
  1467. &:focus {
  1468. outline: 0;
  1469. }
  1470. &:hover {
  1471. background: $ui-highlight-color;
  1472. color: $secondary-text-color;
  1473. }
  1474. }
  1475. }
  1476. .dropdown__icon {
  1477. vertical-align: middle;
  1478. }
  1479. .columns-area {
  1480. display: flex;
  1481. flex: 1 1 auto;
  1482. flex-direction: row;
  1483. justify-content: flex-start;
  1484. overflow-x: auto;
  1485. position: relative;
  1486. &.unscrollable {
  1487. overflow-x: hidden;
  1488. }
  1489. }
  1490. @media screen and (min-width: 360px) {
  1491. .columns-area {
  1492. padding: 10px;
  1493. }
  1494. .react-swipeable-view-container .columns-area {
  1495. height: calc(100% - 20px) !important;
  1496. }
  1497. }
  1498. .react-swipeable-view-container {
  1499. &,
  1500. .columns-area,
  1501. .drawer,
  1502. .column {
  1503. height: 100%;
  1504. }
  1505. }
  1506. .react-swipeable-view-container > * {
  1507. display: flex;
  1508. align-items: center;
  1509. justify-content: center;
  1510. height: 100%;
  1511. }
  1512. .column {
  1513. width: 330px;
  1514. position: relative;
  1515. box-sizing: border-box;
  1516. display: flex;
  1517. flex-direction: column;
  1518. > .scrollable {
  1519. background: $ui-base-color;
  1520. }
  1521. }
  1522. .ui {
  1523. flex: 0 0 auto;
  1524. display: flex;
  1525. flex-direction: column;
  1526. width: 100%;
  1527. height: 100%;
  1528. background: darken($ui-base-color, 7%);
  1529. }
  1530. .drawer {
  1531. width: 300px;
  1532. box-sizing: border-box;
  1533. display: flex;
  1534. flex-direction: column;
  1535. overflow-y: hidden;
  1536. }
  1537. .drawer__tab {
  1538. display: block;
  1539. flex: 1 1 auto;
  1540. padding: 15px 5px 13px;
  1541. color: $darker-text-color;
  1542. text-decoration: none;
  1543. text-align: center;
  1544. font-size: 16px;
  1545. border-bottom: 2px solid transparent;
  1546. }
  1547. .column,
  1548. .drawer {
  1549. flex: 1 1 100%;
  1550. overflow: hidden;
  1551. }
  1552. @media screen and (min-width: 360px) {
  1553. .tabs-bar {
  1554. margin: 10px;
  1555. margin-bottom: 0;
  1556. }
  1557. .getting-started__wrapper,
  1558. .getting-started__trends,
  1559. .search {
  1560. margin-bottom: 10px;
  1561. }
  1562. }
  1563. @media screen and (max-width: 630px) {
  1564. .column,
  1565. .drawer {
  1566. width: 100%;
  1567. padding: 0;
  1568. }
  1569. .columns-area {
  1570. flex-direction: column;
  1571. }
  1572. .search__input,
  1573. .autosuggest-textarea__textarea {
  1574. font-size: 16px;
  1575. }
  1576. }
  1577. @media screen and (min-width: 631px) {
  1578. .columns-area {
  1579. padding: 0;
  1580. }
  1581. .column,
  1582. .drawer {
  1583. flex: 0 0 auto;
  1584. padding: 10px;
  1585. padding-left: 5px;
  1586. padding-right: 5px;
  1587. &:first-child {
  1588. padding-left: 10px;
  1589. }
  1590. &:last-child {
  1591. padding-right: 10px;
  1592. }
  1593. }
  1594. .columns-area > div {
  1595. .column,
  1596. .drawer {
  1597. padding-left: 5px;
  1598. padding-right: 5px;
  1599. }
  1600. }
  1601. }
  1602. .drawer__pager {
  1603. box-sizing: border-box;
  1604. padding: 0;
  1605. flex-grow: 1;
  1606. position: relative;
  1607. overflow: hidden;
  1608. display: flex;
  1609. }
  1610. .drawer__inner {
  1611. position: absolute;
  1612. top: 0;
  1613. left: 0;
  1614. background: lighten($ui-base-color, 13%);
  1615. box-sizing: border-box;
  1616. padding: 0;
  1617. display: flex;
  1618. flex-direction: column;
  1619. overflow: hidden;
  1620. overflow-y: auto;
  1621. width: 100%;
  1622. height: 100%;
  1623. &.darker {
  1624. background: $ui-base-color;
  1625. }
  1626. }
  1627. .drawer__inner__mastodon {
  1628. 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;
  1629. flex: 1;
  1630. min-height: 47px;
  1631. > img {
  1632. display: block;
  1633. object-fit: contain;
  1634. object-position: bottom left;
  1635. width: 100%;
  1636. height: 100%;
  1637. pointer-events: none;
  1638. user-drag: none;
  1639. user-select: none;
  1640. }
  1641. }
  1642. .pseudo-drawer {
  1643. background: lighten($ui-base-color, 13%);
  1644. font-size: 13px;
  1645. text-align: left;
  1646. }
  1647. .drawer__header {
  1648. flex: 0 0 auto;
  1649. font-size: 16px;
  1650. background: lighten($ui-base-color, 8%);
  1651. margin-bottom: 10px;
  1652. display: flex;
  1653. flex-direction: row;
  1654. a {
  1655. transition: background 100ms ease-in;
  1656. &:hover {
  1657. background: lighten($ui-base-color, 3%);
  1658. transition: background 200ms ease-out;
  1659. }
  1660. }
  1661. }
  1662. .tabs-bar {
  1663. display: flex;
  1664. background: lighten($ui-base-color, 8%);
  1665. flex: 0 0 auto;
  1666. overflow-y: auto;
  1667. }
  1668. .tabs-bar__link {
  1669. display: block;
  1670. flex: 1 1 auto;
  1671. padding: 15px 10px;
  1672. color: $primary-text-color;
  1673. text-decoration: none;
  1674. text-align: center;
  1675. font-size: 14px;
  1676. font-weight: 500;
  1677. border-bottom: 2px solid lighten($ui-base-color, 8%);
  1678. transition: all 50ms linear;
  1679. .fa {
  1680. font-weight: 400;
  1681. font-size: 16px;
  1682. }
  1683. &.active {
  1684. border-bottom: 2px solid $highlight-text-color;
  1685. color: $highlight-text-color;
  1686. }
  1687. &:hover,
  1688. &:focus,
  1689. &:active {
  1690. @media screen and (min-width: 631px) {
  1691. background: lighten($ui-base-color, 14%);
  1692. }
  1693. }
  1694. span {
  1695. margin-left: 5px;
  1696. display: none;
  1697. }
  1698. }
  1699. @media screen and (min-width: 600px) {
  1700. .tabs-bar__link {
  1701. span {
  1702. display: inline;
  1703. }
  1704. }
  1705. }
  1706. @media screen and (min-width: 631px) {
  1707. .tabs-bar {
  1708. display: none;
  1709. }
  1710. }
  1711. .scrollable {
  1712. overflow-y: scroll;
  1713. overflow-x: hidden;
  1714. flex: 1 1 auto;
  1715. -webkit-overflow-scrolling: touch;
  1716. will-change: transform; // improves perf in mobile Chrome
  1717. &.optionally-scrollable {
  1718. overflow-y: auto;
  1719. }
  1720. @supports(display: grid) { // hack to fix Chrome <57
  1721. contain: strict;
  1722. }
  1723. }
  1724. .scrollable.fullscreen {
  1725. @supports(display: grid) { // hack to fix Chrome <57
  1726. contain: none;
  1727. }
  1728. }
  1729. .column-back-button {
  1730. background: lighten($ui-base-color, 4%);
  1731. color: $highlight-text-color;
  1732. cursor: pointer;
  1733. flex: 0 0 auto;
  1734. font-size: 16px;
  1735. line-height: inherit;
  1736. border: 0;
  1737. text-align: unset;
  1738. padding: 15px;
  1739. margin: 0;
  1740. z-index: 3;
  1741. outline: 0;
  1742. &:hover {
  1743. text-decoration: underline;
  1744. }
  1745. }
  1746. .column-header__back-button {
  1747. background: lighten($ui-base-color, 4%);
  1748. border: 0;
  1749. font-family: inherit;
  1750. color: $highlight-text-color;
  1751. cursor: pointer;
  1752. white-space: nowrap;
  1753. font-size: 16px;
  1754. padding: 0 5px 0 0;
  1755. z-index: 3;
  1756. &:hover {
  1757. text-decoration: underline;
  1758. }
  1759. &:last-child {
  1760. padding: 0 15px 0 0;
  1761. }
  1762. }
  1763. .column-back-button__icon {
  1764. display: inline-block;
  1765. margin-right: 5px;
  1766. }
  1767. .column-back-button--slim {
  1768. position: relative;
  1769. }
  1770. .column-back-button--slim-button {
  1771. cursor: pointer;
  1772. flex: 0 0 auto;
  1773. font-size: 16px;
  1774. padding: 15px;
  1775. position: absolute;
  1776. right: 0;
  1777. top: -48px;
  1778. }
  1779. .react-toggle {
  1780. display: inline-block;
  1781. position: relative;
  1782. cursor: pointer;
  1783. background-color: transparent;
  1784. border: 0;
  1785. padding: 0;
  1786. user-select: none;
  1787. -webkit-tap-highlight-color: rgba($base-overlay-background, 0);
  1788. -webkit-tap-highlight-color: transparent;
  1789. }
  1790. .react-toggle-screenreader-only {
  1791. border: 0;
  1792. clip: rect(0 0 0 0);
  1793. height: 1px;
  1794. margin: -1px;
  1795. overflow: hidden;
  1796. padding: 0;
  1797. position: absolute;
  1798. width: 1px;
  1799. }
  1800. .react-toggle--disabled {
  1801. cursor: not-allowed;
  1802. opacity: 0.5;
  1803. transition: opacity 0.25s;
  1804. }
  1805. .react-toggle-track {
  1806. width: 50px;
  1807. height: 24px;
  1808. padding: 0;
  1809. border-radius: 30px;
  1810. background-color: $ui-base-color;
  1811. transition: all 0.2s ease;
  1812. }
  1813. .react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {
  1814. background-color: darken($ui-base-color, 10%);
  1815. }
  1816. .react-toggle--checked .react-toggle-track {
  1817. background-color: $ui-highlight-color;
  1818. }
  1819. .react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {
  1820. background-color: lighten($ui-highlight-color, 10%);
  1821. }
  1822. .react-toggle-track-check {
  1823. position: absolute;
  1824. width: 14px;
  1825. height: 10px;
  1826. top: 0;
  1827. bottom: 0;
  1828. margin-top: auto;
  1829. margin-bottom: auto;
  1830. line-height: 0;
  1831. left: 8px;
  1832. opacity: 0;
  1833. transition: opacity 0.25s ease;
  1834. }
  1835. .react-toggle--checked .react-toggle-track-check {
  1836. opacity: 1;
  1837. transition: opacity 0.25s ease;
  1838. }
  1839. .react-toggle-track-x {
  1840. position: absolute;
  1841. width: 10px;
  1842. height: 10px;
  1843. top: 0;
  1844. bottom: 0;
  1845. margin-top: auto;
  1846. margin-bottom: auto;
  1847. line-height: 0;
  1848. right: 10px;
  1849. opacity: 1;
  1850. transition: opacity 0.25s ease;
  1851. }
  1852. .react-toggle--checked .react-toggle-track-x {
  1853. opacity: 0;
  1854. }
  1855. .react-toggle-thumb {
  1856. transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1) 0ms;
  1857. position: absolute;
  1858. top: 1px;
  1859. left: 1px;
  1860. width: 22px;
  1861. height: 22px;
  1862. border: 1px solid $ui-base-color;
  1863. border-radius: 50%;
  1864. background-color: darken($simple-background-color, 2%);
  1865. box-sizing: border-box;
  1866. transition: all 0.25s ease;
  1867. }
  1868. .react-toggle--checked .react-toggle-thumb {
  1869. left: 27px;
  1870. border-color: $ui-highlight-color;
  1871. }
  1872. .column-link {
  1873. background: lighten($ui-base-color, 8%);
  1874. color: $primary-text-color;
  1875. display: block;
  1876. font-size: 16px;
  1877. padding: 15px;
  1878. text-decoration: none;
  1879. &:hover {
  1880. background: lighten($ui-base-color, 11%);
  1881. }
  1882. }
  1883. .column-link__icon {
  1884. display: inline-block;
  1885. margin-right: 5px;
  1886. }
  1887. .column-link__badge {
  1888. display: inline-block;
  1889. border-radius: 4px;
  1890. font-size: 12px;
  1891. line-height: 19px;
  1892. font-weight: 500;
  1893. background: $ui-base-color;
  1894. padding: 4px 8px;
  1895. margin: -6px 10px;
  1896. }
  1897. .column-subheading {
  1898. background: $ui-base-color;
  1899. color: $dark-text-color;
  1900. padding: 8px 20px;
  1901. font-size: 12px;
  1902. font-weight: 500;
  1903. text-transform: uppercase;
  1904. cursor: default;
  1905. }
  1906. .getting-started__wrapper,
  1907. .getting-started,
  1908. .flex-spacer {
  1909. background: $ui-base-color;
  1910. }
  1911. .getting-started__wrapper {
  1912. flex: 0 0 auto;
  1913. }
  1914. .flex-spacer {
  1915. flex: 1 1 auto;
  1916. }
  1917. .getting-started {
  1918. color: $dark-text-color;
  1919. &__footer {
  1920. flex: 0 0 auto;
  1921. padding: 10px;
  1922. padding-top: 20px;
  1923. ul {
  1924. margin-bottom: 10px;
  1925. }
  1926. ul li {
  1927. display: inline;
  1928. }
  1929. p {
  1930. color: $dark-text-color;
  1931. font-size: 13px;
  1932. margin-bottom: 20px;
  1933. a {
  1934. color: $dark-text-color;
  1935. text-decoration: underline;
  1936. }
  1937. }
  1938. a {
  1939. text-decoration: none;
  1940. color: $darker-text-color;
  1941. &:hover,
  1942. &:focus,
  1943. &:active {
  1944. text-decoration: underline;
  1945. }
  1946. }
  1947. }
  1948. &__trends {
  1949. background: $ui-base-color;
  1950. flex: 0 1 auto;
  1951. @media screen and (max-height: 810px) {
  1952. .trends__item:nth-child(3) {
  1953. display: none;
  1954. }
  1955. }
  1956. @media screen and (max-height: 720px) {
  1957. .trends__item:nth-child(2) {
  1958. display: none;
  1959. }
  1960. }
  1961. @media screen and (max-height: 670px) {
  1962. display: none;
  1963. }
  1964. }
  1965. &__scrollable {
  1966. max-height: 100%;
  1967. overflow-y: auto;
  1968. }
  1969. }
  1970. .keyboard-shortcuts {
  1971. padding: 8px 0 0;
  1972. overflow: hidden;
  1973. thead {
  1974. position: absolute;
  1975. left: -9999px;
  1976. }
  1977. td {
  1978. padding: 0 10px 8px;
  1979. }
  1980. kbd {
  1981. display: inline-block;
  1982. padding: 3px 5px;
  1983. background-color: lighten($ui-base-color, 8%);
  1984. border: 1px solid darken($ui-base-color, 4%);
  1985. }
  1986. }
  1987. .setting-text {
  1988. color: $darker-text-color;
  1989. background: transparent;
  1990. border: none;
  1991. border-bottom: 2px solid $ui-primary-color;
  1992. box-sizing: border-box;
  1993. display: block;
  1994. font-family: inherit;
  1995. margin-bottom: 10px;
  1996. padding: 7px 0;
  1997. width: 100%;
  1998. &:focus,
  1999. &:active {
  2000. color: $primary-text-color;
  2001. border-bottom-color: $highlight-text-color;
  2002. }
  2003. @media screen and (max-width: 600px) {
  2004. font-size: 16px;
  2005. }
  2006. }
  2007. .no-reduce-motion button.icon-button i.fa-retweet {
  2008. background-position: 0 0;
  2009. height: 19px;
  2010. transition: background-position 0.9s steps(10);
  2011. transition-duration: 0s;
  2012. vertical-align: middle;
  2013. width: 22px;
  2014. &::before {
  2015. display: none !important;
  2016. }
  2017. }
  2018. .no-reduce-motion button.icon-button.active i.fa-retweet {
  2019. transition-duration: 0.9s;
  2020. background-position: 0 100%;
  2021. }
  2022. .reduce-motion button.icon-button i.fa-retweet {
  2023. color: $action-button-color;
  2024. transition: color 100ms ease-in;
  2025. }
  2026. .reduce-motion button.icon-button.active i.fa-retweet {
  2027. color: $highlight-text-color;
  2028. }
  2029. .status-card {
  2030. display: flex;
  2031. font-size: 14px;
  2032. border: 1px solid lighten($ui-base-color, 8%);
  2033. border-radius: 4px;
  2034. color: $dark-text-color;
  2035. margin-top: 14px;
  2036. text-decoration: none;
  2037. overflow: hidden;
  2038. &__actions {
  2039. bottom: 0;
  2040. left: 0;
  2041. position: absolute;
  2042. right: 0;
  2043. top: 0;
  2044. display: flex;
  2045. justify-content: center;
  2046. align-items: center;
  2047. & > div {
  2048. background: rgba($base-shadow-color, 0.6);
  2049. border-radius: 4px;
  2050. padding: 12px 9px;
  2051. flex: 0 0 auto;
  2052. display: flex;
  2053. justify-content: center;
  2054. align-items: center;
  2055. }
  2056. button,
  2057. a {
  2058. display: inline;
  2059. color: $primary-text-color;
  2060. background: transparent;
  2061. border: 0;
  2062. padding: 0 5px;
  2063. text-decoration: none;
  2064. opacity: 0.6;
  2065. font-size: 18px;
  2066. line-height: 18px;
  2067. &:hover,
  2068. &:active,
  2069. &:focus {
  2070. opacity: 1;
  2071. }
  2072. }
  2073. a {
  2074. font-size: 19px;
  2075. position: relative;
  2076. bottom: -1px;
  2077. }
  2078. }
  2079. }
  2080. a.status-card {
  2081. cursor: pointer;
  2082. &:hover {
  2083. background: lighten($ui-base-color, 8%);
  2084. }
  2085. }
  2086. .status-card-photo {
  2087. cursor: zoom-in;
  2088. display: block;
  2089. text-decoration: none;
  2090. width: 100%;
  2091. height: auto;
  2092. margin: 0;
  2093. }
  2094. .status-card-video {
  2095. iframe {
  2096. width: 100%;
  2097. height: 100%;
  2098. }
  2099. }
  2100. .status-card__title {
  2101. display: block;
  2102. font-weight: 500;
  2103. margin-bottom: 5px;
  2104. color: $darker-text-color;
  2105. overflow: hidden;
  2106. text-overflow: ellipsis;
  2107. white-space: nowrap;
  2108. text-decoration: none;
  2109. }
  2110. .status-card__content {
  2111. flex: 1 1 auto;
  2112. overflow: hidden;
  2113. padding: 14px 14px 14px 8px;
  2114. }
  2115. .status-card__description {
  2116. color: $darker-text-color;
  2117. }
  2118. .status-card__host {
  2119. display: block;
  2120. margin-top: 5px;
  2121. font-size: 13px;
  2122. }
  2123. .status-card__image {
  2124. flex: 0 0 100px;
  2125. background: lighten($ui-base-color, 8%);
  2126. position: relative;
  2127. }
  2128. .status-card.horizontal {
  2129. display: block;
  2130. .status-card__image {
  2131. width: 100%;
  2132. }
  2133. .status-card__image-image {
  2134. border-radius: 4px 4px 0 0;
  2135. }
  2136. .status-card__title {
  2137. white-space: inherit;
  2138. }
  2139. }
  2140. .status-card__image-image {
  2141. border-radius: 4px 0 0 4px;
  2142. display: block;
  2143. margin: 0;
  2144. width: 100%;
  2145. height: 100%;
  2146. object-fit: cover;
  2147. background-size: cover;
  2148. background-position: center center;
  2149. }
  2150. .load-more {
  2151. display: block;
  2152. color: $dark-text-color;
  2153. background-color: transparent;
  2154. border: 0;
  2155. font-size: inherit;
  2156. text-align: center;
  2157. line-height: inherit;
  2158. margin: 0;
  2159. padding: 15px;
  2160. box-sizing: border-box;
  2161. width: 100%;
  2162. clear: both;
  2163. text-decoration: none;
  2164. &:hover {
  2165. background: lighten($ui-base-color, 2%);
  2166. }
  2167. }
  2168. .load-gap {
  2169. border-bottom: 1px solid lighten($ui-base-color, 8%);
  2170. }
  2171. .regeneration-indicator {
  2172. text-align: center;
  2173. font-size: 16px;
  2174. font-weight: 500;
  2175. color: $dark-text-color;
  2176. background: $ui-base-color;
  2177. cursor: default;
  2178. display: flex;
  2179. flex: 1 1 auto;
  2180. align-items: center;
  2181. justify-content: center;
  2182. padding: 20px;
  2183. & > div {
  2184. width: 100%;
  2185. background: transparent;
  2186. padding-top: 0;
  2187. }
  2188. &__figure {
  2189. background: url('../images/elephant_ui_working.svg') no-repeat center 0;
  2190. width: 100%;
  2191. height: 160px;
  2192. background-size: contain;
  2193. position: absolute;
  2194. top: 50%;
  2195. left: 50%;
  2196. transform: translate(-50%, -50%);
  2197. }
  2198. &.missing-indicator {
  2199. padding-top: 20px + 48px;
  2200. .regeneration-indicator__figure {
  2201. background-image: url('../images/elephant_ui_disappointed.svg');
  2202. }
  2203. }
  2204. &__label {
  2205. margin-top: 200px;
  2206. strong {
  2207. display: block;
  2208. margin-bottom: 10px;
  2209. color: $dark-text-color;
  2210. }
  2211. span {
  2212. font-size: 15px;
  2213. font-weight: 400;
  2214. }
  2215. }
  2216. }
  2217. .column-header__wrapper {
  2218. position: relative;
  2219. flex: 0 0 auto;
  2220. &.active {
  2221. &::before {
  2222. display: block;
  2223. content: "";
  2224. position: absolute;
  2225. top: 35px;
  2226. left: 0;
  2227. right: 0;
  2228. margin: 0 auto;
  2229. width: 60%;
  2230. pointer-events: none;
  2231. height: 28px;
  2232. z-index: 1;
  2233. background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);
  2234. }
  2235. }
  2236. }
  2237. .column-header {
  2238. display: flex;
  2239. font-size: 16px;
  2240. background: lighten($ui-base-color, 4%);
  2241. flex: 0 0 auto;
  2242. cursor: pointer;
  2243. position: relative;
  2244. z-index: 2;
  2245. outline: 0;
  2246. overflow: hidden;
  2247. & > button {
  2248. margin: 0;
  2249. border: none;
  2250. padding: 15px 0 15px 15px;
  2251. color: inherit;
  2252. background: transparent;
  2253. font: inherit;
  2254. text-align: left;
  2255. text-overflow: ellipsis;
  2256. overflow: hidden;
  2257. white-space: nowrap;
  2258. flex: 1;
  2259. }
  2260. & > .column-header__back-button {
  2261. color: $highlight-text-color;
  2262. }
  2263. &.active {
  2264. box-shadow: 0 1px 0 rgba($highlight-text-color, 0.3);
  2265. .column-header__icon {
  2266. color: $highlight-text-color;
  2267. text-shadow: 0 0 10px rgba($highlight-text-color, 0.4);
  2268. }
  2269. }
  2270. &:focus,
  2271. &:active {
  2272. outline: 0;
  2273. }
  2274. }
  2275. .column-header__buttons {
  2276. height: 48px;
  2277. display: flex;
  2278. }
  2279. .column-header__links .text-btn {
  2280. margin-right: 10px;
  2281. }
  2282. .column-header__button {
  2283. background: lighten($ui-base-color, 4%);
  2284. border: 0;
  2285. color: $darker-text-color;
  2286. cursor: pointer;
  2287. font-size: 16px;
  2288. padding: 0 15px;
  2289. &:hover {
  2290. color: lighten($darker-text-color, 7%);
  2291. }
  2292. &.active {
  2293. color: $primary-text-color;
  2294. background: lighten($ui-base-color, 8%);
  2295. &:hover {
  2296. color: $primary-text-color;
  2297. background: lighten($ui-base-color, 8%);
  2298. }
  2299. }
  2300. }
  2301. .column-header__collapsible {
  2302. max-height: 70vh;
  2303. overflow: hidden;
  2304. overflow-y: auto;
  2305. color: $darker-text-color;
  2306. transition: max-height 150ms ease-in-out, opacity 300ms linear;
  2307. opacity: 1;
  2308. &.collapsed {
  2309. max-height: 0;
  2310. opacity: 0.5;
  2311. }
  2312. &.animating {
  2313. overflow-y: hidden;
  2314. }
  2315. hr {
  2316. height: 0;
  2317. background: transparent;
  2318. border: 0;
  2319. border-top: 1px solid lighten($ui-base-color, 12%);
  2320. margin: 10px 0;
  2321. }
  2322. }
  2323. .column-header__collapsible-inner {
  2324. background: lighten($ui-base-color, 8%);
  2325. padding: 15px;
  2326. }
  2327. .column-header__setting-btn {
  2328. &:hover {
  2329. color: $darker-text-color;
  2330. text-decoration: underline;
  2331. }
  2332. }
  2333. .column-header__setting-arrows {
  2334. float: right;
  2335. .column-header__setting-btn {
  2336. padding: 0 10px;
  2337. &:last-child {
  2338. padding-right: 0;
  2339. }
  2340. }
  2341. }
  2342. .text-btn {
  2343. display: inline-block;
  2344. padding: 0;
  2345. font-family: inherit;
  2346. font-size: inherit;
  2347. color: inherit;
  2348. border: 0;
  2349. background: transparent;
  2350. cursor: pointer;
  2351. }
  2352. .column-header__icon {
  2353. display: inline-block;
  2354. margin-right: 5px;
  2355. }
  2356. .loading-indicator {
  2357. color: $dark-text-color;
  2358. font-size: 12px;
  2359. font-weight: 400;
  2360. text-transform: uppercase;
  2361. overflow: visible;
  2362. position: absolute;
  2363. top: 50%;
  2364. left: 50%;
  2365. transform: translate(-50%, -50%);
  2366. span {
  2367. display: block;
  2368. float: left;
  2369. margin-left: 50%;
  2370. transform: translateX(-50%);
  2371. margin: 82px 0 0 50%;
  2372. white-space: nowrap;
  2373. animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);
  2374. }
  2375. }
  2376. .loading-indicator__figure {
  2377. position: absolute;
  2378. top: 50%;
  2379. left: 50%;
  2380. transform: translate(-50%, -50%);
  2381. width: 0;
  2382. height: 0;
  2383. box-sizing: border-box;
  2384. border: 0 solid lighten($ui-base-color, 26%);
  2385. border-radius: 50%;
  2386. animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);
  2387. }
  2388. @keyframes loader-figure {
  2389. 0% {
  2390. width: 0;
  2391. height: 0;
  2392. background-color: lighten($ui-base-color, 26%);
  2393. }
  2394. 29% {
  2395. background-color: lighten($ui-base-color, 26%);
  2396. }
  2397. 30% {
  2398. width: 42px;
  2399. height: 42px;
  2400. background-color: transparent;
  2401. border-width: 21px;
  2402. opacity: 1;
  2403. }
  2404. 100% {
  2405. width: 42px;
  2406. height: 42px;
  2407. border-width: 0;
  2408. opacity: 0;
  2409. background-color: transparent;
  2410. }
  2411. }
  2412. @keyframes loader-label {
  2413. 0% { opacity: 0.25; }
  2414. 30% { opacity: 1; }
  2415. 100% { opacity: 0.25; }
  2416. }
  2417. .video-error-cover {
  2418. align-items: center;
  2419. background: $base-overlay-background;
  2420. color: $primary-text-color;
  2421. cursor: pointer;
  2422. display: flex;
  2423. flex-direction: column;
  2424. height: 100%;
  2425. justify-content: center;
  2426. margin-top: 8px;
  2427. position: relative;
  2428. text-align: center;
  2429. z-index: 100;
  2430. }
  2431. .media-spoiler {
  2432. background: $base-overlay-background;
  2433. color: $darker-text-color;
  2434. border: 0;
  2435. padding: 0;
  2436. width: 100%;
  2437. height: 100%;
  2438. border-radius: 4px;
  2439. appearance: none;
  2440. &:hover,
  2441. &:active,
  2442. &:focus {
  2443. padding: 0;
  2444. color: lighten($darker-text-color, 8%);
  2445. }
  2446. }
  2447. .media-spoiler__warning {
  2448. display: block;
  2449. font-size: 14px;
  2450. }
  2451. .media-spoiler__trigger {
  2452. display: block;
  2453. font-size: 11px;
  2454. font-weight: 700;
  2455. }
  2456. .spoiler-button {
  2457. display: none;
  2458. left: 4px;
  2459. position: absolute;
  2460. text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
  2461. top: 4px;
  2462. z-index: 100;
  2463. &.spoiler-button--visible {
  2464. display: block;
  2465. }
  2466. }
  2467. .modal-container--preloader {
  2468. background: lighten($ui-base-color, 8%);
  2469. }
  2470. .account--panel {
  2471. background: lighten($ui-base-color, 4%);
  2472. border-top: 1px solid lighten($ui-base-color, 8%);
  2473. border-bottom: 1px solid lighten($ui-base-color, 8%);
  2474. display: flex;
  2475. flex-direction: row;
  2476. padding: 10px 0;
  2477. }
  2478. .account--panel__button,
  2479. .detailed-status__button {
  2480. flex: 1 1 auto;
  2481. text-align: center;
  2482. }
  2483. .column-settings__outer {
  2484. background: lighten($ui-base-color, 8%);
  2485. padding: 15px;
  2486. }
  2487. .column-settings__section {
  2488. color: $darker-text-color;
  2489. cursor: default;
  2490. display: block;
  2491. font-weight: 500;
  2492. margin-bottom: 10px;
  2493. }
  2494. .column-settings__row {
  2495. .text-btn {
  2496. margin-bottom: 15px;
  2497. }
  2498. }
  2499. .account--follows-info {
  2500. color: $primary-text-color;
  2501. position: absolute;
  2502. top: 10px;
  2503. left: 10px;
  2504. opacity: 0.7;
  2505. display: inline-block;
  2506. vertical-align: top;
  2507. background-color: rgba($base-overlay-background, 0.4);
  2508. text-transform: uppercase;
  2509. font-size: 11px;
  2510. font-weight: 500;
  2511. padding: 4px;
  2512. border-radius: 4px;
  2513. }
  2514. .account--muting-info {
  2515. color: $primary-text-color;
  2516. position: absolute;
  2517. top: 40px;
  2518. left: 10px;
  2519. opacity: 0.7;
  2520. display: inline-block;
  2521. vertical-align: top;
  2522. background-color: rgba($base-overlay-background, 0.4);
  2523. text-transform: uppercase;
  2524. font-size: 11px;
  2525. font-weight: 500;
  2526. padding: 4px;
  2527. border-radius: 4px;
  2528. }
  2529. .account--action-button {
  2530. position: absolute;
  2531. top: 10px;
  2532. right: 20px;
  2533. }
  2534. .setting-toggle {
  2535. display: block;
  2536. line-height: 24px;
  2537. }
  2538. .setting-toggle__label,
  2539. .setting-meta__label {
  2540. color: $darker-text-color;
  2541. display: inline-block;
  2542. margin-bottom: 14px;
  2543. margin-left: 8px;
  2544. vertical-align: middle;
  2545. }
  2546. .setting-meta__label {
  2547. float: right;
  2548. }
  2549. .empty-column-indicator,
  2550. .error-column {
  2551. color: $dark-text-color;
  2552. background: $ui-base-color;
  2553. text-align: center;
  2554. padding: 20px;
  2555. font-size: 15px;
  2556. font-weight: 400;
  2557. cursor: default;
  2558. display: flex;
  2559. flex: 1 1 auto;
  2560. align-items: center;
  2561. justify-content: center;
  2562. @supports(display: grid) { // hack to fix Chrome <57
  2563. contain: strict;
  2564. }
  2565. a {
  2566. color: $highlight-text-color;
  2567. text-decoration: none;
  2568. &:hover {
  2569. text-decoration: underline;
  2570. }
  2571. }
  2572. }
  2573. .error-column {
  2574. flex-direction: column;
  2575. }
  2576. @keyframes heartbeat {
  2577. from {
  2578. transform: scale(1);
  2579. animation-timing-function: ease-out;
  2580. }
  2581. 10% {
  2582. transform: scale(0.91);
  2583. animation-timing-function: ease-in;
  2584. }
  2585. 17% {
  2586. transform: scale(0.98);
  2587. animation-timing-function: ease-out;
  2588. }
  2589. 33% {
  2590. transform: scale(0.87);
  2591. animation-timing-function: ease-in;
  2592. }
  2593. 45% {
  2594. transform: scale(1);
  2595. animation-timing-function: ease-out;
  2596. }
  2597. }
  2598. .no-reduce-motion .pulse-loading {
  2599. transform-origin: center center;
  2600. animation: heartbeat 1.5s ease-in-out infinite both;
  2601. }
  2602. @keyframes shake-bottom {
  2603. 0%,
  2604. 100% {
  2605. transform: rotate(0deg);
  2606. transform-origin: 50% 100%;
  2607. }
  2608. 10% {
  2609. transform: rotate(2deg);
  2610. }
  2611. 20%,
  2612. 40%,
  2613. 60% {
  2614. transform: rotate(-4deg);
  2615. }
  2616. 30%,
  2617. 50%,
  2618. 70% {
  2619. transform: rotate(4deg);
  2620. }
  2621. 80% {
  2622. transform: rotate(-2deg);
  2623. }
  2624. 90% {
  2625. transform: rotate(2deg);
  2626. }
  2627. }
  2628. .no-reduce-motion .shake-bottom {
  2629. transform-origin: 50% 100%;
  2630. animation: shake-bottom 0.8s cubic-bezier(0.455, 0.030, 0.515, 0.955) 2s 2 both;
  2631. }
  2632. .emoji-picker-dropdown__menu {
  2633. background: $simple-background-color;
  2634. position: absolute;
  2635. box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);
  2636. border-radius: 4px;
  2637. margin-top: 5px;
  2638. .emoji-mart-scroll {
  2639. transition: opacity 200ms ease;
  2640. }
  2641. &.selecting .emoji-mart-scroll {
  2642. opacity: 0.5;
  2643. }
  2644. }
  2645. .emoji-picker-dropdown__modifiers {
  2646. position: absolute;
  2647. top: 60px;
  2648. right: 11px;
  2649. cursor: pointer;
  2650. }
  2651. .emoji-picker-dropdown__modifiers__menu {
  2652. position: absolute;
  2653. z-index: 4;
  2654. top: -4px;
  2655. left: -8px;
  2656. background: $simple-background-color;
  2657. border-radius: 4px;
  2658. box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);
  2659. overflow: hidden;
  2660. button {
  2661. display: block;
  2662. cursor: pointer;
  2663. border: 0;
  2664. padding: 4px 8px;
  2665. background: transparent;
  2666. &:hover,
  2667. &:focus,
  2668. &:active {
  2669. background: rgba($ui-secondary-color, 0.4);
  2670. }
  2671. }
  2672. .emoji-mart-emoji {
  2673. height: 22px;
  2674. }
  2675. }
  2676. .emoji-mart-emoji {
  2677. span {
  2678. background-repeat: no-repeat;
  2679. }
  2680. }
  2681. .upload-area {
  2682. align-items: center;
  2683. background: rgba($base-overlay-background, 0.8);
  2684. display: flex;
  2685. height: 100%;
  2686. justify-content: center;
  2687. left: 0;
  2688. opacity: 0;
  2689. position: absolute;
  2690. top: 0;
  2691. visibility: hidden;
  2692. width: 100%;
  2693. z-index: 2000;
  2694. * {
  2695. pointer-events: none;
  2696. }
  2697. }
  2698. .upload-area__drop {
  2699. width: 320px;
  2700. height: 160px;
  2701. display: flex;
  2702. box-sizing: border-box;
  2703. position: relative;
  2704. padding: 8px;
  2705. }
  2706. .upload-area__background {
  2707. position: absolute;
  2708. top: 0;
  2709. right: 0;
  2710. bottom: 0;
  2711. left: 0;
  2712. z-index: -1;
  2713. border-radius: 4px;
  2714. background: $ui-base-color;
  2715. box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);
  2716. }
  2717. .upload-area__content {
  2718. flex: 1;
  2719. display: flex;
  2720. align-items: center;
  2721. justify-content: center;
  2722. color: $secondary-text-color;
  2723. font-size: 18px;
  2724. font-weight: 500;
  2725. border: 2px dashed $ui-base-lighter-color;
  2726. border-radius: 4px;
  2727. }
  2728. .upload-progress {
  2729. padding: 10px;
  2730. color: $lighter-text-color;
  2731. overflow: hidden;
  2732. display: flex;
  2733. .fa {
  2734. font-size: 34px;
  2735. margin-right: 10px;
  2736. }
  2737. span {
  2738. font-size: 12px;
  2739. text-transform: uppercase;
  2740. font-weight: 500;
  2741. display: block;
  2742. }
  2743. }
  2744. .upload-progess__message {
  2745. flex: 1 1 auto;
  2746. }
  2747. .upload-progress__backdrop {
  2748. width: 100%;
  2749. height: 6px;
  2750. border-radius: 6px;
  2751. background: $ui-base-lighter-color;
  2752. position: relative;
  2753. margin-top: 5px;
  2754. }
  2755. .upload-progress__tracker {
  2756. position: absolute;
  2757. left: 0;
  2758. top: 0;
  2759. height: 6px;
  2760. background: $ui-highlight-color;
  2761. border-radius: 6px;
  2762. }
  2763. .emoji-button {
  2764. display: block;
  2765. font-size: 24px;
  2766. line-height: 24px;
  2767. margin-left: 2px;
  2768. width: 24px;
  2769. outline: 0;
  2770. cursor: pointer;
  2771. &:active,
  2772. &:focus {
  2773. outline: 0 !important;
  2774. }
  2775. img {
  2776. filter: grayscale(100%);
  2777. opacity: 0.8;
  2778. display: block;
  2779. margin: 0;
  2780. width: 22px;
  2781. height: 22px;
  2782. margin-top: 2px;
  2783. }
  2784. &:hover,
  2785. &:active,
  2786. &:focus {
  2787. img {
  2788. opacity: 1;
  2789. filter: none;
  2790. }
  2791. }
  2792. }
  2793. .dropdown--active .emoji-button img {
  2794. opacity: 1;
  2795. filter: none;
  2796. }
  2797. .privacy-dropdown__dropdown {
  2798. position: absolute;
  2799. background: $simple-background-color;
  2800. box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
  2801. border-radius: 4px;
  2802. margin-left: 40px;
  2803. overflow: hidden;
  2804. &.top {
  2805. transform-origin: 50% 100%;
  2806. }
  2807. &.bottom {
  2808. transform-origin: 50% 0;
  2809. }
  2810. }
  2811. .privacy-dropdown__option {
  2812. color: $inverted-text-color;
  2813. padding: 10px;
  2814. cursor: pointer;
  2815. display: flex;
  2816. &:hover,
  2817. &.active {
  2818. background: $ui-highlight-color;
  2819. color: $primary-text-color;
  2820. outline: 0;
  2821. .privacy-dropdown__option__content {
  2822. color: $primary-text-color;
  2823. strong {
  2824. color: $primary-text-color;
  2825. }
  2826. }
  2827. }
  2828. &.active:hover {
  2829. background: lighten($ui-highlight-color, 4%);
  2830. }
  2831. }
  2832. .privacy-dropdown__option__icon {
  2833. display: flex;
  2834. align-items: center;
  2835. justify-content: center;
  2836. margin-right: 10px;
  2837. }
  2838. .privacy-dropdown__option__content {
  2839. flex: 1 1 auto;
  2840. color: $lighter-text-color;
  2841. strong {
  2842. font-weight: 500;
  2843. display: block;
  2844. color: $inverted-text-color;
  2845. @each $lang in $cjk-langs {
  2846. &:lang(#{$lang}) {
  2847. font-weight: 700;
  2848. }
  2849. }
  2850. }
  2851. }
  2852. .privacy-dropdown.active {
  2853. .privacy-dropdown__value {
  2854. background: $simple-background-color;
  2855. border-radius: 4px 4px 0 0;
  2856. box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);
  2857. .icon-button {
  2858. transition: none;
  2859. }
  2860. &.active {
  2861. background: $ui-highlight-color;
  2862. .icon-button {
  2863. color: $primary-text-color;
  2864. }
  2865. }
  2866. }
  2867. &.top .privacy-dropdown__value {
  2868. border-radius: 0 0 4px 4px;
  2869. }
  2870. .privacy-dropdown__dropdown {
  2871. display: block;
  2872. box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);
  2873. }
  2874. }
  2875. .search {
  2876. position: relative;
  2877. }
  2878. .search__input {
  2879. outline: 0;
  2880. box-sizing: border-box;
  2881. display: block;
  2882. width: 100%;
  2883. border: none;
  2884. padding: 10px;
  2885. padding-right: 30px;
  2886. font-family: inherit;
  2887. background: $ui-base-color;
  2888. color: $darker-text-color;
  2889. font-size: 14px;
  2890. margin: 0;
  2891. &::-moz-focus-inner {
  2892. border: 0;
  2893. }
  2894. &::-moz-focus-inner,
  2895. &:focus,
  2896. &:active {
  2897. outline: 0 !important;
  2898. }
  2899. &:focus {
  2900. background: lighten($ui-base-color, 4%);
  2901. }
  2902. @media screen and (max-width: 600px) {
  2903. font-size: 16px;
  2904. }
  2905. }
  2906. .search__icon {
  2907. &::-moz-focus-inner {
  2908. border: 0;
  2909. }
  2910. &::-moz-focus-inner,
  2911. &:focus {
  2912. outline: 0 !important;
  2913. }
  2914. .fa {
  2915. position: absolute;
  2916. top: 10px;
  2917. right: 10px;
  2918. z-index: 2;
  2919. display: inline-block;
  2920. opacity: 0;
  2921. transition: all 100ms linear;
  2922. font-size: 18px;
  2923. width: 18px;
  2924. height: 18px;
  2925. color: $secondary-text-color;
  2926. cursor: default;
  2927. pointer-events: none;
  2928. &.active {
  2929. pointer-events: auto;
  2930. opacity: 0.3;
  2931. }
  2932. }
  2933. .fa-search {
  2934. transform: rotate(90deg);
  2935. &.active {
  2936. pointer-events: none;
  2937. transform: rotate(0deg);
  2938. }
  2939. }
  2940. .fa-times-circle {
  2941. top: 11px;
  2942. transform: rotate(0deg);
  2943. color: $action-button-color;
  2944. cursor: pointer;
  2945. &.active {
  2946. transform: rotate(90deg);
  2947. }
  2948. &:hover {
  2949. color: lighten($action-button-color, 7%);
  2950. }
  2951. }
  2952. }
  2953. .search-results__header {
  2954. color: $dark-text-color;
  2955. background: lighten($ui-base-color, 2%);
  2956. padding: 15px;
  2957. font-weight: 500;
  2958. font-size: 16px;
  2959. cursor: default;
  2960. .fa {
  2961. display: inline-block;
  2962. margin-right: 5px;
  2963. }
  2964. }
  2965. .search-results__section {
  2966. margin-bottom: 5px;
  2967. h5 {
  2968. background: darken($ui-base-color, 4%);
  2969. border-bottom: 1px solid lighten($ui-base-color, 8%);
  2970. cursor: default;
  2971. display: flex;
  2972. padding: 15px;
  2973. font-weight: 500;
  2974. font-size: 16px;
  2975. color: $dark-text-color;
  2976. .fa {
  2977. display: inline-block;
  2978. margin-right: 5px;
  2979. }
  2980. }
  2981. .account:last-child,
  2982. & > div:last-child .status {
  2983. border-bottom: 0;
  2984. }
  2985. }
  2986. .search-results__hashtag {
  2987. display: block;
  2988. padding: 10px;
  2989. color: $secondary-text-color;
  2990. text-decoration: none;
  2991. &:hover,
  2992. &:active,
  2993. &:focus {
  2994. color: lighten($secondary-text-color, 4%);
  2995. text-decoration: underline;
  2996. }
  2997. }
  2998. .modal-root {
  2999. position: relative;
  3000. transition: opacity 0.3s linear;
  3001. will-change: opacity;
  3002. z-index: 9999;
  3003. }
  3004. .modal-root__overlay {
  3005. position: fixed;
  3006. top: 0;
  3007. left: 0;
  3008. right: 0;
  3009. bottom: 0;
  3010. background: rgba($base-overlay-background, 0.7);
  3011. }
  3012. .modal-root__container {
  3013. position: fixed;
  3014. top: 0;
  3015. left: 0;
  3016. width: 100%;
  3017. height: 100%;
  3018. display: flex;
  3019. flex-direction: column;
  3020. align-items: center;
  3021. justify-content: center;
  3022. align-content: space-around;
  3023. z-index: 9999;
  3024. pointer-events: none;
  3025. user-select: none;
  3026. }
  3027. .modal-root__modal {
  3028. pointer-events: auto;
  3029. display: flex;
  3030. z-index: 9999;
  3031. }
  3032. .video-modal {
  3033. max-width: 100vw;
  3034. max-height: 100vh;
  3035. position: relative;
  3036. }
  3037. .media-modal {
  3038. width: 100%;
  3039. height: 100%;
  3040. position: relative;
  3041. .extended-video-player {
  3042. width: 100%;
  3043. height: 100%;
  3044. display: flex;
  3045. align-items: center;
  3046. justify-content: center;
  3047. video {
  3048. max-width: $media-modal-media-max-width;
  3049. max-height: $media-modal-media-max-height;
  3050. }
  3051. }
  3052. }
  3053. .media-modal__closer {
  3054. position: absolute;
  3055. top: 0;
  3056. left: 0;
  3057. right: 0;
  3058. bottom: 0;
  3059. }
  3060. .media-modal__navigation {
  3061. position: absolute;
  3062. top: 0;
  3063. left: 0;
  3064. right: 0;
  3065. bottom: 0;
  3066. pointer-events: none;
  3067. transition: opacity 0.3s linear;
  3068. will-change: opacity;
  3069. * {
  3070. pointer-events: auto;
  3071. }
  3072. &.media-modal__navigation--hidden {
  3073. opacity: 0;
  3074. * {
  3075. pointer-events: none;
  3076. }
  3077. }
  3078. }
  3079. .media-modal__nav {
  3080. background: rgba($base-overlay-background, 0.5);
  3081. box-sizing: border-box;
  3082. border: 0;
  3083. color: $primary-text-color;
  3084. cursor: pointer;
  3085. display: flex;
  3086. align-items: center;
  3087. font-size: 24px;
  3088. height: 20vmax;
  3089. margin: auto 0;
  3090. padding: 30px 15px;
  3091. position: absolute;
  3092. top: 0;
  3093. bottom: 0;
  3094. }
  3095. .media-modal__nav--left {
  3096. left: 0;
  3097. }
  3098. .media-modal__nav--right {
  3099. right: 0;
  3100. }
  3101. .media-modal__pagination {
  3102. width: 100%;
  3103. text-align: center;
  3104. position: absolute;
  3105. left: 0;
  3106. bottom: 20px;
  3107. pointer-events: none;
  3108. }
  3109. .media-modal__page-dot {
  3110. display: inline-block;
  3111. }
  3112. .media-modal__button {
  3113. background-color: $primary-text-color;
  3114. height: 12px;
  3115. width: 12px;
  3116. border-radius: 6px;
  3117. margin: 10px;
  3118. padding: 0;
  3119. border: 0;
  3120. font-size: 0;
  3121. }
  3122. .media-modal__button--active {
  3123. background-color: $highlight-text-color;
  3124. }
  3125. .media-modal__close {
  3126. position: absolute;
  3127. right: 8px;
  3128. top: 8px;
  3129. z-index: 100;
  3130. }
  3131. .onboarding-modal,
  3132. .error-modal,
  3133. .embed-modal {
  3134. background: $ui-secondary-color;
  3135. color: $inverted-text-color;
  3136. border-radius: 8px;
  3137. overflow: hidden;
  3138. display: flex;
  3139. flex-direction: column;
  3140. }
  3141. .onboarding-modal__pager {
  3142. height: 80vh;
  3143. width: 80vw;
  3144. max-width: 520px;
  3145. max-height: 470px;
  3146. .react-swipeable-view-container > div {
  3147. width: 100%;
  3148. height: 100%;
  3149. box-sizing: border-box;
  3150. display: none;
  3151. flex-direction: column;
  3152. align-items: center;
  3153. justify-content: center;
  3154. display: flex;
  3155. user-select: text;
  3156. }
  3157. }
  3158. .error-modal__body {
  3159. height: 80vh;
  3160. width: 80vw;
  3161. max-width: 520px;
  3162. max-height: 420px;
  3163. position: relative;
  3164. & > div {
  3165. position: absolute;
  3166. top: 0;
  3167. left: 0;
  3168. width: 100%;
  3169. height: 100%;
  3170. box-sizing: border-box;
  3171. padding: 25px;
  3172. display: none;
  3173. flex-direction: column;
  3174. align-items: center;
  3175. justify-content: center;
  3176. display: flex;
  3177. opacity: 0;
  3178. user-select: text;
  3179. }
  3180. }
  3181. .error-modal__body {
  3182. display: flex;
  3183. flex-direction: column;
  3184. justify-content: center;
  3185. align-items: center;
  3186. text-align: center;
  3187. }
  3188. @media screen and (max-width: 550px) {
  3189. .onboarding-modal {
  3190. width: 100%;
  3191. height: 100%;
  3192. border-radius: 0;
  3193. }
  3194. .onboarding-modal__pager {
  3195. width: 100%;
  3196. height: auto;
  3197. max-width: none;
  3198. max-height: none;
  3199. flex: 1 1 auto;
  3200. }
  3201. }
  3202. .onboarding-modal__paginator,
  3203. .error-modal__footer {
  3204. flex: 0 0 auto;
  3205. background: darken($ui-secondary-color, 8%);
  3206. display: flex;
  3207. padding: 25px;
  3208. & > div {
  3209. min-width: 33px;
  3210. }
  3211. .onboarding-modal__nav,
  3212. .error-modal__nav {
  3213. color: $lighter-text-color;
  3214. border: 0;
  3215. font-size: 14px;
  3216. font-weight: 500;
  3217. padding: 10px 25px;
  3218. line-height: inherit;
  3219. height: auto;
  3220. margin: -10px;
  3221. border-radius: 4px;
  3222. background-color: transparent;
  3223. &:hover,
  3224. &:focus,
  3225. &:active {
  3226. color: darken($lighter-text-color, 4%);
  3227. background-color: darken($ui-secondary-color, 16%);
  3228. }
  3229. &.onboarding-modal__done,
  3230. &.onboarding-modal__next {
  3231. color: $inverted-text-color;
  3232. &:hover,
  3233. &:focus,
  3234. &:active {
  3235. color: lighten($inverted-text-color, 4%);
  3236. }
  3237. }
  3238. }
  3239. }
  3240. .error-modal__footer {
  3241. justify-content: center;
  3242. }
  3243. .onboarding-modal__dots {
  3244. flex: 1 1 auto;
  3245. display: flex;
  3246. align-items: center;
  3247. justify-content: center;
  3248. }
  3249. .onboarding-modal__dot {
  3250. width: 14px;
  3251. height: 14px;
  3252. border-radius: 14px;
  3253. background: darken($ui-secondary-color, 16%);
  3254. margin: 0 3px;
  3255. cursor: pointer;
  3256. &:hover {
  3257. background: darken($ui-secondary-color, 18%);
  3258. }
  3259. &.active {
  3260. cursor: default;
  3261. background: darken($ui-secondary-color, 24%);
  3262. }
  3263. }
  3264. .onboarding-modal__page__wrapper {
  3265. pointer-events: none;
  3266. padding: 25px;
  3267. padding-bottom: 0;
  3268. &.onboarding-modal__page__wrapper--active {
  3269. pointer-events: auto;
  3270. }
  3271. }
  3272. .onboarding-modal__page {
  3273. cursor: default;
  3274. line-height: 21px;
  3275. h1 {
  3276. font-size: 18px;
  3277. font-weight: 500;
  3278. color: $inverted-text-color;
  3279. margin-bottom: 20px;
  3280. }
  3281. a {
  3282. color: $highlight-text-color;
  3283. &:hover,
  3284. &:focus,
  3285. &:active {
  3286. color: lighten($highlight-text-color, 4%);
  3287. }
  3288. }
  3289. .navigation-bar a {
  3290. color: inherit;
  3291. }
  3292. p {
  3293. font-size: 16px;
  3294. color: $lighter-text-color;
  3295. margin-top: 10px;
  3296. margin-bottom: 10px;
  3297. &:last-child {
  3298. margin-bottom: 0;
  3299. }
  3300. strong {
  3301. font-weight: 500;
  3302. background: $ui-base-color;
  3303. color: $secondary-text-color;
  3304. border-radius: 4px;
  3305. font-size: 14px;
  3306. padding: 3px 6px;
  3307. @each $lang in $cjk-langs {
  3308. &:lang(#{$lang}) {
  3309. font-weight: 700;
  3310. }
  3311. }
  3312. }
  3313. }
  3314. }
  3315. .onboarding-modal__page__wrapper-0 {
  3316. background: url('../images/elephant_ui_greeting.svg') no-repeat left bottom / auto 250px;
  3317. height: 100%;
  3318. padding: 0;
  3319. }
  3320. .onboarding-modal__page-one {
  3321. &__lead {
  3322. padding: 65px;
  3323. padding-top: 45px;
  3324. padding-bottom: 0;
  3325. margin-bottom: 10px;
  3326. h1 {
  3327. font-size: 26px;
  3328. line-height: 36px;
  3329. margin-bottom: 8px;
  3330. }
  3331. p {
  3332. margin-bottom: 0;
  3333. }
  3334. }
  3335. &__extra {
  3336. padding-right: 65px;
  3337. padding-left: 185px;
  3338. text-align: center;
  3339. }
  3340. }
  3341. .display-case {
  3342. text-align: center;
  3343. font-size: 15px;
  3344. margin-bottom: 15px;
  3345. &__label {
  3346. font-weight: 500;
  3347. color: $inverted-text-color;
  3348. margin-bottom: 5px;
  3349. text-transform: uppercase;
  3350. font-size: 12px;
  3351. }
  3352. &__case {
  3353. background: $ui-base-color;
  3354. color: $secondary-text-color;
  3355. font-weight: 500;
  3356. padding: 10px;
  3357. border-radius: 4px;
  3358. }
  3359. }
  3360. .onboarding-modal__page-two,
  3361. .onboarding-modal__page-three,
  3362. .onboarding-modal__page-four,
  3363. .onboarding-modal__page-five {
  3364. p {
  3365. text-align: left;
  3366. }
  3367. .figure {
  3368. background: darken($ui-base-color, 8%);
  3369. color: $secondary-text-color;
  3370. margin-bottom: 20px;
  3371. border-radius: 4px;
  3372. padding: 10px;
  3373. text-align: center;
  3374. font-size: 14px;
  3375. box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.3);
  3376. .onboarding-modal__image {
  3377. border-radius: 4px;
  3378. margin-bottom: 10px;
  3379. }
  3380. &.non-interactive {
  3381. pointer-events: none;
  3382. text-align: left;
  3383. }
  3384. }
  3385. }
  3386. .onboarding-modal__page-four__columns {
  3387. .row {
  3388. display: flex;
  3389. margin-bottom: 20px;
  3390. & > div {
  3391. flex: 1 1 0;
  3392. margin: 0 10px;
  3393. &:first-child {
  3394. margin-left: 0;
  3395. }
  3396. &:last-child {
  3397. margin-right: 0;
  3398. }
  3399. p {
  3400. text-align: center;
  3401. }
  3402. }
  3403. &:last-child {
  3404. margin-bottom: 0;
  3405. }
  3406. }
  3407. .column-header {
  3408. color: $primary-text-color;
  3409. }
  3410. }
  3411. @media screen and (max-width: 320px) and (max-height: 600px) {
  3412. .onboarding-modal__page p {
  3413. font-size: 14px;
  3414. line-height: 20px;
  3415. }
  3416. .onboarding-modal__page-two .figure,
  3417. .onboarding-modal__page-three .figure,
  3418. .onboarding-modal__page-four .figure,
  3419. .onboarding-modal__page-five .figure {
  3420. font-size: 12px;
  3421. margin-bottom: 10px;
  3422. }
  3423. .onboarding-modal__page-four__columns .row {
  3424. margin-bottom: 10px;
  3425. }
  3426. .onboarding-modal__page-four__columns .column-header {
  3427. padding: 5px;
  3428. font-size: 12px;
  3429. }
  3430. }
  3431. .onboard-sliders {
  3432. display: inline-block;
  3433. max-width: 30px;
  3434. max-height: auto;
  3435. margin-left: 10px;
  3436. }
  3437. .boost-modal,
  3438. .confirmation-modal,
  3439. .report-modal,
  3440. .actions-modal,
  3441. .mute-modal {
  3442. background: lighten($ui-secondary-color, 8%);
  3443. color: $inverted-text-color;
  3444. border-radius: 8px;
  3445. overflow: hidden;
  3446. max-width: 90vw;
  3447. width: 480px;
  3448. position: relative;
  3449. flex-direction: column;
  3450. .status__display-name {
  3451. display: block;
  3452. max-width: 100%;
  3453. padding-right: 25px;
  3454. }
  3455. .status__avatar {
  3456. height: 28px;
  3457. left: 10px;
  3458. position: absolute;
  3459. top: 10px;
  3460. width: 48px;
  3461. }
  3462. .status__content__spoiler-link {
  3463. color: lighten($secondary-text-color, 8%);
  3464. }
  3465. }
  3466. .actions-modal {
  3467. .status {
  3468. background: $white;
  3469. border-bottom-color: $ui-secondary-color;
  3470. padding-top: 10px;
  3471. padding-bottom: 10px;
  3472. }
  3473. .dropdown-menu__separator {
  3474. border-bottom-color: $ui-secondary-color;
  3475. }
  3476. }
  3477. .boost-modal__container {
  3478. overflow-x: scroll;
  3479. padding: 10px;
  3480. .status {
  3481. user-select: text;
  3482. border-bottom: 0;
  3483. }
  3484. }
  3485. .boost-modal__action-bar,
  3486. .confirmation-modal__action-bar,
  3487. .mute-modal__action-bar {
  3488. display: flex;
  3489. justify-content: space-between;
  3490. background: $ui-secondary-color;
  3491. padding: 10px;
  3492. line-height: 36px;
  3493. & > div {
  3494. flex: 1 1 auto;
  3495. text-align: right;
  3496. color: $lighter-text-color;
  3497. padding-right: 10px;
  3498. }
  3499. .button {
  3500. flex: 0 0 auto;
  3501. }
  3502. }
  3503. .boost-modal__status-header {
  3504. font-size: 15px;
  3505. }
  3506. .boost-modal__status-time {
  3507. float: right;
  3508. font-size: 14px;
  3509. }
  3510. .confirmation-modal {
  3511. max-width: 85vw;
  3512. @media screen and (min-width: 480px) {
  3513. max-width: 380px;
  3514. }
  3515. }
  3516. .mute-modal {
  3517. line-height: 24px;
  3518. }
  3519. .mute-modal .react-toggle {
  3520. vertical-align: middle;
  3521. }
  3522. .report-modal {
  3523. width: 90vw;
  3524. max-width: 700px;
  3525. }
  3526. .report-modal__container {
  3527. display: flex;
  3528. border-top: 1px solid $ui-secondary-color;
  3529. @media screen and (max-width: 480px) {
  3530. flex-wrap: wrap;
  3531. overflow-y: auto;
  3532. }
  3533. }
  3534. .report-modal__statuses,
  3535. .report-modal__comment {
  3536. box-sizing: border-box;
  3537. width: 50%;
  3538. @media screen and (max-width: 480px) {
  3539. width: 100%;
  3540. }
  3541. }
  3542. .report-modal__statuses {
  3543. flex: 1 1 auto;
  3544. min-height: 20vh;
  3545. max-height: 80vh;
  3546. overflow-y: auto;
  3547. overflow-x: hidden;
  3548. .status__content a {
  3549. color: $highlight-text-color;
  3550. }
  3551. .status__content p {
  3552. color: $inverted-text-color;
  3553. }
  3554. @media screen and (max-width: 480px) {
  3555. max-height: 10vh;
  3556. }
  3557. }
  3558. .report-modal__comment {
  3559. padding: 20px;
  3560. border-right: 1px solid $ui-secondary-color;
  3561. max-width: 320px;
  3562. p {
  3563. font-size: 14px;
  3564. line-height: 20px;
  3565. margin-bottom: 20px;
  3566. }
  3567. .setting-text {
  3568. display: block;
  3569. box-sizing: border-box;
  3570. width: 100%;
  3571. margin: 0;
  3572. color: $inverted-text-color;
  3573. background: $white;
  3574. padding: 10px;
  3575. font-family: inherit;
  3576. font-size: 14px;
  3577. resize: vertical;
  3578. border: 0;
  3579. outline: 0;
  3580. border-radius: 4px;
  3581. border: 1px solid $ui-secondary-color;
  3582. margin-bottom: 20px;
  3583. &:focus {
  3584. border: 1px solid darken($ui-secondary-color, 8%);
  3585. }
  3586. }
  3587. .setting-toggle {
  3588. margin-top: 20px;
  3589. margin-bottom: 24px;
  3590. &__label {
  3591. color: $inverted-text-color;
  3592. font-size: 14px;
  3593. }
  3594. }
  3595. @media screen and (max-width: 480px) {
  3596. padding: 10px;
  3597. max-width: 100%;
  3598. order: 2;
  3599. .setting-toggle {
  3600. margin-bottom: 4px;
  3601. }
  3602. }
  3603. }
  3604. .actions-modal {
  3605. .status {
  3606. overflow-y: auto;
  3607. max-height: 300px;
  3608. }
  3609. max-height: 80vh;
  3610. max-width: 80vw;
  3611. .actions-modal__item-label {
  3612. font-weight: 500;
  3613. }
  3614. ul {
  3615. overflow-y: auto;
  3616. flex-shrink: 0;
  3617. li:empty {
  3618. margin: 0;
  3619. }
  3620. li:not(:empty) {
  3621. a {
  3622. color: $inverted-text-color;
  3623. display: flex;
  3624. padding: 12px 16px;
  3625. font-size: 15px;
  3626. align-items: center;
  3627. text-decoration: none;
  3628. &,
  3629. button {
  3630. transition: none;
  3631. }
  3632. &.active,
  3633. &:hover,
  3634. &:active,
  3635. &:focus {
  3636. &,
  3637. button {
  3638. background: $ui-highlight-color;
  3639. color: $primary-text-color;
  3640. }
  3641. }
  3642. button:first-child {
  3643. margin-right: 10px;
  3644. }
  3645. }
  3646. }
  3647. }
  3648. }
  3649. .confirmation-modal__action-bar,
  3650. .mute-modal__action-bar {
  3651. .confirmation-modal__cancel-button,
  3652. .mute-modal__cancel-button {
  3653. background-color: transparent;
  3654. color: $lighter-text-color;
  3655. font-size: 14px;
  3656. font-weight: 500;
  3657. &:hover,
  3658. &:focus,
  3659. &:active {
  3660. color: darken($lighter-text-color, 4%);
  3661. }
  3662. }
  3663. }
  3664. .confirmation-modal__container,
  3665. .mute-modal__container,
  3666. .report-modal__target {
  3667. padding: 30px;
  3668. font-size: 16px;
  3669. text-align: center;
  3670. strong {
  3671. font-weight: 500;
  3672. @each $lang in $cjk-langs {
  3673. &:lang(#{$lang}) {
  3674. font-weight: 700;
  3675. }
  3676. }
  3677. }
  3678. }
  3679. .report-modal__target {
  3680. padding: 20px;
  3681. .media-modal__close {
  3682. top: 19px;
  3683. right: 15px;
  3684. }
  3685. }
  3686. .loading-bar {
  3687. background-color: $highlight-text-color;
  3688. height: 3px;
  3689. position: absolute;
  3690. top: 0;
  3691. left: 0;
  3692. }
  3693. .media-gallery__gifv__label {
  3694. display: block;
  3695. position: absolute;
  3696. color: $primary-text-color;
  3697. background: rgba($base-overlay-background, 0.5);
  3698. bottom: 6px;
  3699. left: 6px;
  3700. padding: 2px 6px;
  3701. border-radius: 2px;
  3702. font-size: 11px;
  3703. font-weight: 600;
  3704. z-index: 1;
  3705. pointer-events: none;
  3706. opacity: 0.9;
  3707. transition: opacity 0.1s ease;
  3708. }
  3709. .media-gallery__gifv {
  3710. &.autoplay {
  3711. .media-gallery__gifv__label {
  3712. display: none;
  3713. }
  3714. }
  3715. &:hover {
  3716. .media-gallery__gifv__label {
  3717. opacity: 1;
  3718. }
  3719. }
  3720. }
  3721. .attachment-list {
  3722. display: flex;
  3723. font-size: 14px;
  3724. border: 1px solid lighten($ui-base-color, 8%);
  3725. border-radius: 4px;
  3726. margin-top: 14px;
  3727. overflow: hidden;
  3728. &__icon {
  3729. flex: 0 0 auto;
  3730. color: $dark-text-color;
  3731. padding: 8px 18px;
  3732. cursor: default;
  3733. border-right: 1px solid lighten($ui-base-color, 8%);
  3734. display: flex;
  3735. flex-direction: column;
  3736. align-items: center;
  3737. justify-content: center;
  3738. font-size: 26px;
  3739. .fa {
  3740. display: block;
  3741. }
  3742. }
  3743. &__list {
  3744. list-style: none;
  3745. padding: 4px 0;
  3746. padding-left: 8px;
  3747. display: flex;
  3748. flex-direction: column;
  3749. justify-content: center;
  3750. li {
  3751. display: block;
  3752. padding: 4px 0;
  3753. }
  3754. a {
  3755. text-decoration: none;
  3756. color: $dark-text-color;
  3757. font-weight: 500;
  3758. &:hover {
  3759. text-decoration: underline;
  3760. }
  3761. }
  3762. }
  3763. &.compact {
  3764. border: 0;
  3765. margin-top: 4px;
  3766. .attachment-list__list {
  3767. padding: 0;
  3768. display: block;
  3769. }
  3770. .fa {
  3771. color: $dark-text-color;
  3772. }
  3773. }
  3774. }
  3775. /* Media Gallery */
  3776. .media-gallery {
  3777. box-sizing: border-box;
  3778. margin-top: 8px;
  3779. overflow: hidden;
  3780. border-radius: 4px;
  3781. position: relative;
  3782. width: 100%;
  3783. }
  3784. .media-gallery__item {
  3785. border: none;
  3786. box-sizing: border-box;
  3787. display: block;
  3788. float: left;
  3789. position: relative;
  3790. border-radius: 4px;
  3791. overflow: hidden;
  3792. &.standalone {
  3793. .media-gallery__item-gifv-thumbnail {
  3794. transform: none;
  3795. top: 0;
  3796. }
  3797. }
  3798. }
  3799. .media-gallery__item-thumbnail {
  3800. cursor: zoom-in;
  3801. display: block;
  3802. text-decoration: none;
  3803. color: $secondary-text-color;
  3804. line-height: 0;
  3805. &,
  3806. img {
  3807. height: 100%;
  3808. width: 100%;
  3809. }
  3810. img {
  3811. object-fit: cover;
  3812. }
  3813. }
  3814. .media-gallery__gifv {
  3815. height: 100%;
  3816. overflow: hidden;
  3817. position: relative;
  3818. width: 100%;
  3819. }
  3820. .media-gallery__item-gifv-thumbnail {
  3821. cursor: zoom-in;
  3822. height: 100%;
  3823. object-fit: cover;
  3824. position: relative;
  3825. top: 50%;
  3826. transform: translateY(-50%);
  3827. width: 100%;
  3828. z-index: 1;
  3829. }
  3830. .media-gallery__item-thumbnail-label {
  3831. clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
  3832. clip: rect(1px, 1px, 1px, 1px);
  3833. overflow: hidden;
  3834. position: absolute;
  3835. }
  3836. /* End Media Gallery */
  3837. /* Status Video Player */
  3838. .status__video-player {
  3839. background: $base-overlay-background;
  3840. box-sizing: border-box;
  3841. cursor: default; /* May not be needed */
  3842. margin-top: 8px;
  3843. overflow: hidden;
  3844. position: relative;
  3845. }
  3846. .status__video-player-video {
  3847. height: 100%;
  3848. object-fit: cover;
  3849. position: relative;
  3850. top: 50%;
  3851. transform: translateY(-50%);
  3852. width: 100%;
  3853. z-index: 1;
  3854. }
  3855. .status__video-player-expand,
  3856. .status__video-player-mute {
  3857. color: $primary-text-color;
  3858. opacity: 0.8;
  3859. position: absolute;
  3860. right: 4px;
  3861. text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
  3862. }
  3863. .status__video-player-spoiler {
  3864. display: none;
  3865. color: $primary-text-color;
  3866. left: 4px;
  3867. position: absolute;
  3868. text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
  3869. top: 4px;
  3870. z-index: 100;
  3871. &.status__video-player-spoiler--visible {
  3872. display: block;
  3873. }
  3874. }
  3875. .status__video-player-expand {
  3876. bottom: 4px;
  3877. z-index: 100;
  3878. }
  3879. .status__video-player-mute {
  3880. top: 4px;
  3881. z-index: 5;
  3882. }
  3883. .video-player {
  3884. overflow: hidden;
  3885. position: relative;
  3886. background: $base-shadow-color;
  3887. max-width: 100%;
  3888. border-radius: 4px;
  3889. &:focus {
  3890. outline: 0;
  3891. }
  3892. video {
  3893. max-width: 100vw;
  3894. max-height: 80vh;
  3895. z-index: 1;
  3896. }
  3897. &.fullscreen {
  3898. width: 100% !important;
  3899. height: 100% !important;
  3900. margin: 0;
  3901. video {
  3902. max-width: 100% !important;
  3903. max-height: 100% !important;
  3904. width: 100% !important;
  3905. height: 100% !important;
  3906. }
  3907. }
  3908. &.inline {
  3909. video {
  3910. object-fit: contain;
  3911. position: relative;
  3912. top: 50%;
  3913. transform: translateY(-50%);
  3914. }
  3915. }
  3916. &__controls {
  3917. position: absolute;
  3918. z-index: 2;
  3919. bottom: 0;
  3920. left: 0;
  3921. right: 0;
  3922. box-sizing: border-box;
  3923. background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);
  3924. padding: 0 15px;
  3925. opacity: 0;
  3926. transition: opacity .1s ease;
  3927. &.active {
  3928. opacity: 1;
  3929. }
  3930. }
  3931. &.inactive {
  3932. video,
  3933. .video-player__controls {
  3934. visibility: hidden;
  3935. }
  3936. }
  3937. &__spoiler {
  3938. display: none;
  3939. position: absolute;
  3940. top: 0;
  3941. left: 0;
  3942. width: 100%;
  3943. height: 100%;
  3944. z-index: 4;
  3945. border: 0;
  3946. background: $base-overlay-background;
  3947. color: $darker-text-color;
  3948. transition: none;
  3949. pointer-events: none;
  3950. &.active {
  3951. display: block;
  3952. pointer-events: auto;
  3953. &:hover,
  3954. &:active,
  3955. &:focus {
  3956. color: lighten($darker-text-color, 7%);
  3957. }
  3958. }
  3959. &__title {
  3960. display: block;
  3961. font-size: 14px;
  3962. }
  3963. &__subtitle {
  3964. display: block;
  3965. font-size: 11px;
  3966. font-weight: 500;
  3967. }
  3968. }
  3969. &__buttons-bar {
  3970. display: flex;
  3971. justify-content: space-between;
  3972. padding-bottom: 10px;
  3973. }
  3974. &__buttons {
  3975. font-size: 16px;
  3976. white-space: nowrap;
  3977. overflow: hidden;
  3978. text-overflow: ellipsis;
  3979. &.left {
  3980. button {
  3981. padding-left: 0;
  3982. }
  3983. }
  3984. &.right {
  3985. button {
  3986. padding-right: 0;
  3987. }
  3988. }
  3989. button {
  3990. background: transparent;
  3991. padding: 2px 10px;
  3992. font-size: 16px;
  3993. border: 0;
  3994. color: rgba($white, 0.75);
  3995. &:active,
  3996. &:hover,
  3997. &:focus {
  3998. color: $white;
  3999. }
  4000. }
  4001. }
  4002. &__time-sep,
  4003. &__time-total,
  4004. &__time-current {
  4005. font-size: 14px;
  4006. font-weight: 500;
  4007. }
  4008. &__time-current {
  4009. color: $white;
  4010. margin-left: 10px;
  4011. }
  4012. &__time-sep {
  4013. display: inline-block;
  4014. margin: 0 6px;
  4015. }
  4016. &__time-sep,
  4017. &__time-total {
  4018. color: $white;
  4019. }
  4020. &__seek {
  4021. cursor: pointer;
  4022. height: 24px;
  4023. position: relative;
  4024. &::before {
  4025. content: "";
  4026. width: 100%;
  4027. background: rgba($white, 0.35);
  4028. border-radius: 4px;
  4029. display: block;
  4030. position: absolute;
  4031. height: 4px;
  4032. top: 10px;
  4033. }
  4034. &__progress,
  4035. &__buffer {
  4036. display: block;
  4037. position: absolute;
  4038. height: 4px;
  4039. border-radius: 4px;
  4040. top: 10px;
  4041. background: lighten($ui-highlight-color, 8%);
  4042. }
  4043. &__buffer {
  4044. background: rgba($white, 0.2);
  4045. }
  4046. &__handle {
  4047. position: absolute;
  4048. z-index: 3;
  4049. opacity: 0;
  4050. border-radius: 50%;
  4051. width: 12px;
  4052. height: 12px;
  4053. top: 6px;
  4054. margin-left: -6px;
  4055. transition: opacity .1s ease;
  4056. background: lighten($ui-highlight-color, 8%);
  4057. box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);
  4058. pointer-events: none;
  4059. &.active {
  4060. opacity: 1;
  4061. }
  4062. }
  4063. &:hover {
  4064. .video-player__seek__handle {
  4065. opacity: 1;
  4066. }
  4067. }
  4068. }
  4069. &.detailed,
  4070. &.fullscreen {
  4071. .video-player__buttons {
  4072. button {
  4073. padding-top: 10px;
  4074. padding-bottom: 10px;
  4075. }
  4076. }
  4077. }
  4078. }
  4079. .media-spoiler-video {
  4080. background-size: cover;
  4081. background-repeat: no-repeat;
  4082. background-position: center;
  4083. cursor: pointer;
  4084. margin-top: 8px;
  4085. position: relative;
  4086. border: 0;
  4087. display: block;
  4088. }
  4089. .media-spoiler-video-play-icon {
  4090. border-radius: 100px;
  4091. color: rgba($primary-text-color, 0.8);
  4092. font-size: 36px;
  4093. left: 50%;
  4094. padding: 5px;
  4095. position: absolute;
  4096. top: 50%;
  4097. transform: translate(-50%, -50%);
  4098. }
  4099. /* End Video Player */
  4100. .account-gallery__container {
  4101. display: flex;
  4102. justify-content: center;
  4103. flex-wrap: wrap;
  4104. padding: 2px;
  4105. }
  4106. .account-gallery__item {
  4107. flex-grow: 1;
  4108. width: 50%;
  4109. overflow: hidden;
  4110. position: relative;
  4111. &::before {
  4112. content: "";
  4113. display: block;
  4114. padding-top: 100%;
  4115. }
  4116. a {
  4117. display: block;
  4118. width: calc(100% - 4px);
  4119. height: calc(100% - 4px);
  4120. margin: 2px;
  4121. top: 0;
  4122. left: 0;
  4123. background-color: $base-overlay-background;
  4124. background-size: cover;
  4125. background-position: center;
  4126. position: absolute;
  4127. color: $darker-text-color;
  4128. text-decoration: none;
  4129. border-radius: 4px;
  4130. &:hover,
  4131. &:active,
  4132. &:focus {
  4133. outline: 0;
  4134. color: $secondary-text-color;
  4135. &::before {
  4136. content: "";
  4137. display: block;
  4138. width: 100%;
  4139. height: 100%;
  4140. background: rgba($base-overlay-background, 0.3);
  4141. border-radius: 4px;
  4142. }
  4143. }
  4144. }
  4145. &__icons {
  4146. position: absolute;
  4147. top: 50%;
  4148. left: 50%;
  4149. transform: translate(-50%, -50%);
  4150. font-size: 24px;
  4151. }
  4152. }
  4153. .account__section-headline {
  4154. background: darken($ui-base-color, 4%);
  4155. border-bottom: 1px solid lighten($ui-base-color, 8%);
  4156. cursor: default;
  4157. display: flex;
  4158. a {
  4159. display: block;
  4160. flex: 1 1 auto;
  4161. color: $darker-text-color;
  4162. padding: 15px 0;
  4163. font-size: 14px;
  4164. font-weight: 500;
  4165. text-align: center;
  4166. text-decoration: none;
  4167. position: relative;
  4168. &.active {
  4169. color: $secondary-text-color;
  4170. &::before,
  4171. &::after {
  4172. display: block;
  4173. content: "";
  4174. position: absolute;
  4175. bottom: 0;
  4176. left: 50%;
  4177. width: 0;
  4178. height: 0;
  4179. transform: translateX(-50%);
  4180. border-style: solid;
  4181. border-width: 0 10px 10px;
  4182. border-color: transparent transparent lighten($ui-base-color, 8%);
  4183. }
  4184. &::after {
  4185. bottom: -1px;
  4186. border-color: transparent transparent $ui-base-color;
  4187. }
  4188. }
  4189. }
  4190. }
  4191. ::-webkit-scrollbar-thumb {
  4192. border-radius: 0;
  4193. }
  4194. .search-popout {
  4195. background: $simple-background-color;
  4196. border-radius: 4px;
  4197. padding: 10px 14px;
  4198. padding-bottom: 14px;
  4199. margin-top: 10px;
  4200. color: $light-text-color;
  4201. box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
  4202. h4 {
  4203. text-transform: uppercase;
  4204. color: $light-text-color;
  4205. font-size: 13px;
  4206. font-weight: 500;
  4207. margin-bottom: 10px;
  4208. }
  4209. li {
  4210. padding: 4px 0;
  4211. }
  4212. ul {
  4213. margin-bottom: 10px;
  4214. }
  4215. em {
  4216. font-weight: 500;
  4217. color: $inverted-text-color;
  4218. }
  4219. }
  4220. noscript {
  4221. text-align: center;
  4222. img {
  4223. width: 200px;
  4224. opacity: 0.5;
  4225. animation: flicker 4s infinite;
  4226. }
  4227. div {
  4228. font-size: 14px;
  4229. margin: 30px auto;
  4230. color: $secondary-text-color;
  4231. max-width: 400px;
  4232. a {
  4233. color: $highlight-text-color;
  4234. text-decoration: underline;
  4235. &:hover {
  4236. text-decoration: none;
  4237. }
  4238. }
  4239. }
  4240. }
  4241. @keyframes flicker {
  4242. 0% { opacity: 1; }
  4243. 30% { opacity: 0.75; }
  4244. 100% { opacity: 1; }
  4245. }
  4246. @media screen and (max-width: 630px) and (max-height: 400px) {
  4247. $duration: 400ms;
  4248. $delay: 100ms;
  4249. .tabs-bar,
  4250. .search {
  4251. will-change: margin-top;
  4252. transition: margin-top $duration $delay;
  4253. }
  4254. .navigation-bar {
  4255. will-change: padding-bottom;
  4256. transition: padding-bottom $duration $delay;
  4257. }
  4258. .navigation-bar {
  4259. & > a:first-child {
  4260. will-change: margin-top, margin-left, margin-right, width;
  4261. transition: margin-top $duration $delay, margin-left $duration ($duration + $delay), margin-right $duration ($duration + $delay);
  4262. }
  4263. & > .navigation-bar__profile-edit {
  4264. will-change: margin-top;
  4265. transition: margin-top $duration $delay;
  4266. }
  4267. .navigation-bar__actions {
  4268. & > .icon-button.close {
  4269. will-change: opacity transform;
  4270. transition: opacity $duration * 0.5 $delay,
  4271. transform $duration $delay;
  4272. }
  4273. & > .compose__action-bar .icon-button {
  4274. will-change: opacity transform;
  4275. transition: opacity $duration * 0.5 $delay + $duration * 0.5,
  4276. transform $duration $delay;
  4277. }
  4278. }
  4279. }
  4280. .is-composing {
  4281. .tabs-bar,
  4282. .search {
  4283. margin-top: -50px;
  4284. }
  4285. .navigation-bar {
  4286. padding-bottom: 0;
  4287. & > a:first-child {
  4288. margin: -100px 10px 0 -50px;
  4289. }
  4290. .navigation-bar__profile {
  4291. padding-top: 2px;
  4292. }
  4293. .navigation-bar__profile-edit {
  4294. position: absolute;
  4295. margin-top: -60px;
  4296. }
  4297. .navigation-bar__actions {
  4298. .icon-button.close {
  4299. pointer-events: auto;
  4300. opacity: 1;
  4301. transform: scale(1.0, 1.0) translate(0, 0);
  4302. bottom: 5px;
  4303. }
  4304. .compose__action-bar .icon-button {
  4305. pointer-events: none;
  4306. opacity: 0;
  4307. transform: scale(0.0, 1.0) translate(100%, 0);
  4308. }
  4309. }
  4310. }
  4311. }
  4312. }
  4313. .embed-modal {
  4314. max-width: 80vw;
  4315. max-height: 80vh;
  4316. h4 {
  4317. padding: 30px;
  4318. font-weight: 500;
  4319. font-size: 16px;
  4320. text-align: center;
  4321. }
  4322. .embed-modal__container {
  4323. padding: 10px;
  4324. .hint {
  4325. margin-bottom: 15px;
  4326. }
  4327. .embed-modal__html {
  4328. outline: 0;
  4329. box-sizing: border-box;
  4330. display: block;
  4331. width: 100%;
  4332. border: none;
  4333. padding: 10px;
  4334. font-family: 'mastodon-font-monospace', monospace;
  4335. background: $ui-base-color;
  4336. color: $primary-text-color;
  4337. font-size: 14px;
  4338. margin: 0;
  4339. margin-bottom: 15px;
  4340. &::-moz-focus-inner {
  4341. border: 0;
  4342. }
  4343. &::-moz-focus-inner,
  4344. &:focus,
  4345. &:active {
  4346. outline: 0 !important;
  4347. }
  4348. &:focus {
  4349. background: lighten($ui-base-color, 4%);
  4350. }
  4351. @media screen and (max-width: 600px) {
  4352. font-size: 16px;
  4353. }
  4354. }
  4355. .embed-modal__iframe {
  4356. width: 400px;
  4357. max-width: 100%;
  4358. overflow: hidden;
  4359. border: 0;
  4360. }
  4361. }
  4362. }
  4363. .account__moved-note {
  4364. padding: 14px 10px;
  4365. padding-bottom: 16px;
  4366. background: lighten($ui-base-color, 4%);
  4367. border-top: 1px solid lighten($ui-base-color, 8%);
  4368. border-bottom: 1px solid lighten($ui-base-color, 8%);
  4369. &__message {
  4370. position: relative;
  4371. margin-left: 58px;
  4372. color: $dark-text-color;
  4373. padding: 8px 0;
  4374. padding-top: 0;
  4375. padding-bottom: 4px;
  4376. font-size: 14px;
  4377. > span {
  4378. display: block;
  4379. overflow: hidden;
  4380. text-overflow: ellipsis;
  4381. }
  4382. }
  4383. &__icon-wrapper {
  4384. left: -26px;
  4385. position: absolute;
  4386. }
  4387. .detailed-status__display-avatar {
  4388. position: relative;
  4389. }
  4390. .detailed-status__display-name {
  4391. margin-bottom: 0;
  4392. }
  4393. }
  4394. .column-inline-form {
  4395. padding: 7px 15px;
  4396. padding-right: 5px;
  4397. display: flex;
  4398. justify-content: flex-start;
  4399. align-items: center;
  4400. background: lighten($ui-base-color, 4%);
  4401. label {
  4402. flex: 1 1 auto;
  4403. input {
  4404. width: 100%;
  4405. margin-bottom: 6px;
  4406. &:focus {
  4407. outline: 0;
  4408. }
  4409. }
  4410. }
  4411. .icon-button {
  4412. flex: 0 0 auto;
  4413. margin-left: 5px;
  4414. }
  4415. }
  4416. .drawer__backdrop {
  4417. cursor: pointer;
  4418. position: absolute;
  4419. top: 0;
  4420. left: 0;
  4421. width: 100%;
  4422. height: 100%;
  4423. background: rgba($base-overlay-background, 0.5);
  4424. }
  4425. .list-editor {
  4426. background: $ui-base-color;
  4427. flex-direction: column;
  4428. border-radius: 8px;
  4429. box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
  4430. width: 380px;
  4431. overflow: hidden;
  4432. @media screen and (max-width: 420px) {
  4433. width: 90%;
  4434. }
  4435. h4 {
  4436. padding: 15px 0;
  4437. background: lighten($ui-base-color, 13%);
  4438. font-weight: 500;
  4439. font-size: 16px;
  4440. text-align: center;
  4441. border-radius: 8px 8px 0 0;
  4442. }
  4443. .drawer__pager {
  4444. height: 50vh;
  4445. }
  4446. .drawer__inner {
  4447. border-radius: 0 0 8px 8px;
  4448. &.backdrop {
  4449. width: calc(100% - 60px);
  4450. box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
  4451. border-radius: 0 0 0 8px;
  4452. }
  4453. }
  4454. &__accounts {
  4455. overflow-y: auto;
  4456. }
  4457. .account__display-name {
  4458. &:hover strong {
  4459. text-decoration: none;
  4460. }
  4461. }
  4462. .account__avatar {
  4463. cursor: default;
  4464. }
  4465. .search {
  4466. margin-bottom: 0;
  4467. }
  4468. }
  4469. .focal-point-modal {
  4470. max-width: 80vw;
  4471. max-height: 80vh;
  4472. position: relative;
  4473. }
  4474. .focal-point {
  4475. position: relative;
  4476. cursor: pointer;
  4477. overflow: hidden;
  4478. &.dragging {
  4479. cursor: move;
  4480. }
  4481. img {
  4482. max-width: 80vw;
  4483. max-height: 80vh;
  4484. width: auto;
  4485. height: auto;
  4486. margin: auto;
  4487. }
  4488. &__reticle {
  4489. position: absolute;
  4490. width: 100px;
  4491. height: 100px;
  4492. transform: translate(-50%, -50%);
  4493. background: url('../images/reticle.png') no-repeat 0 0;
  4494. border-radius: 50%;
  4495. box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);
  4496. }
  4497. &__overlay {
  4498. position: absolute;
  4499. width: 100%;
  4500. height: 100%;
  4501. top: 0;
  4502. left: 0;
  4503. }
  4504. }
  4505. .floating-action-button {
  4506. position: fixed;
  4507. display: flex;
  4508. justify-content: center;
  4509. align-items: center;
  4510. width: 3.9375rem;
  4511. height: 3.9375rem;
  4512. bottom: 1.3125rem;
  4513. right: 1.3125rem;
  4514. background: darken($ui-highlight-color, 3%);
  4515. color: $white;
  4516. border-radius: 50%;
  4517. font-size: 21px;
  4518. line-height: 21px;
  4519. text-decoration: none;
  4520. box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);
  4521. &:hover,
  4522. &:focus,
  4523. &:active {
  4524. background: lighten($ui-highlight-color, 7%);
  4525. }
  4526. }
  4527. .account__header .roles {
  4528. margin-top: 20px;
  4529. margin-bottom: 20px;
  4530. padding: 0 15px;
  4531. }
  4532. .account__header .account__header__fields {
  4533. font-size: 14px;
  4534. line-height: 20px;
  4535. overflow: hidden;
  4536. margin: 20px -10px -20px;
  4537. border-bottom: 0;
  4538. border-top: 0;
  4539. dl {
  4540. border-top: 1px solid lighten($ui-base-color, 4%);
  4541. border-bottom: 0;
  4542. display: flex;
  4543. }
  4544. dt,
  4545. dd {
  4546. box-sizing: border-box;
  4547. padding: 14px 5px;
  4548. text-align: center;
  4549. max-height: 48px;
  4550. overflow: hidden;
  4551. white-space: nowrap;
  4552. text-overflow: ellipsis;
  4553. }
  4554. dt {
  4555. color: $darker-text-color;
  4556. background: darken($ui-base-color, 4%);
  4557. width: 120px;
  4558. flex: 0 0 auto;
  4559. font-weight: 500;
  4560. }
  4561. dd {
  4562. flex: 1 1 auto;
  4563. color: $primary-text-color;
  4564. background: $ui-base-color;
  4565. &.verified {
  4566. border: 1px solid rgba($valid-value-color, 0.5);
  4567. background: rgba($valid-value-color, 0.25);
  4568. }
  4569. }
  4570. }
  4571. .trends {
  4572. &__header {
  4573. color: $dark-text-color;
  4574. background: lighten($ui-base-color, 2%);
  4575. border-bottom: 1px solid darken($ui-base-color, 4%);
  4576. font-weight: 500;
  4577. padding: 15px;
  4578. font-size: 16px;
  4579. cursor: default;
  4580. .fa {
  4581. display: inline-block;
  4582. margin-right: 5px;
  4583. }
  4584. }
  4585. &__item {
  4586. display: flex;
  4587. align-items: center;
  4588. padding: 15px;
  4589. border-bottom: 1px solid lighten($ui-base-color, 8%);
  4590. &:last-child {
  4591. border-bottom: 0;
  4592. }
  4593. &__name {
  4594. flex: 1 1 auto;
  4595. color: $dark-text-color;
  4596. overflow: hidden;
  4597. text-overflow: ellipsis;
  4598. white-space: nowrap;
  4599. strong {
  4600. font-weight: 500;
  4601. }
  4602. a {
  4603. color: $darker-text-color;
  4604. text-decoration: none;
  4605. font-size: 14px;
  4606. font-weight: 500;
  4607. display: block;
  4608. overflow: hidden;
  4609. text-overflow: ellipsis;
  4610. white-space: nowrap;
  4611. &:hover,
  4612. &:focus,
  4613. &:active {
  4614. span {
  4615. text-decoration: underline;
  4616. }
  4617. }
  4618. }
  4619. }
  4620. &__current {
  4621. flex: 0 0 auto;
  4622. width: 100px;
  4623. font-size: 24px;
  4624. line-height: 36px;
  4625. font-weight: 500;
  4626. text-align: center;
  4627. color: $secondary-text-color;
  4628. }
  4629. &__sparkline {
  4630. flex: 0 0 auto;
  4631. width: 50px;
  4632. path {
  4633. stroke: lighten($highlight-text-color, 6%) !important;
  4634. }
  4635. }
  4636. }
  4637. }