You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1930 lines
31 KiB

7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
  1. @import 'variables';
  2. .app-body{
  3. -ms-overflow-style: -ms-autohiding-scrollbar;
  4. }
  5. .button {
  6. background-color: darken($color4, 3%);
  7. font-family: inherit;
  8. display: inline-block;
  9. position: relative;
  10. box-sizing: border-box;
  11. text-align: center;
  12. border: 10px none;
  13. color: $color5;
  14. font-size: 14px;
  15. font-weight: 500;
  16. letter-spacing: 0;
  17. text-transform: uppercase;
  18. padding: 0 16px;
  19. height: 36px;
  20. cursor: pointer;
  21. line-height: 36px;
  22. border-radius: 4px;
  23. text-decoration: none;
  24. transition: all 100ms ease-in;
  25. &:hover, &:active, &:focus {
  26. background-color: lighten($color4, 7%);
  27. transition: all 200ms ease-out;
  28. }
  29. &:disabled {
  30. background-color: $color3;
  31. cursor: default;
  32. }
  33. &.button-secondary {
  34. //
  35. }
  36. }
  37. .column-icon {
  38. color: $color3;
  39. background: lighten($color1, 4%);
  40. &:hover {
  41. color: lighten($color3, 7%);
  42. }
  43. }
  44. .column-icon-clear {
  45. font-size: 16px;
  46. padding: 15px;
  47. position: absolute;
  48. right: 48px;
  49. top: 0;
  50. cursor: pointer;
  51. z-index: 2;
  52. }
  53. @media screen and (min-width: 1024px) {
  54. .column-icon-clear {
  55. top: 10px;
  56. }
  57. }
  58. .icon-button {
  59. display: inline-block;
  60. padding: 0;
  61. color: lighten($color1, 26%);
  62. border: none;
  63. background: transparent;
  64. cursor: pointer;
  65. transition: all 100ms ease-in;
  66. &:hover, &:active, &:focus {
  67. color: lighten($color1, 33%);
  68. transition: all 200ms ease-out;
  69. }
  70. &.disabled {
  71. color: lighten($color1, 13%);
  72. cursor: default;
  73. }
  74. &.active {
  75. color: $color4;
  76. }
  77. &::-moz-focus-inner {
  78. border: 0;
  79. }
  80. &::-moz-focus-inner, &:focus, &:active {
  81. outline: 0 !important;
  82. }
  83. &.inverted {
  84. color: lighten($color1, 33%);
  85. &:hover, &:active, &:focus {
  86. color: lighten($color1, 26%);
  87. }
  88. &.active {
  89. color: $color4;
  90. }
  91. &.disabled {
  92. color: $color3;
  93. }
  94. }
  95. }
  96. .text-icon-button {
  97. color: lighten($color1, 33%);
  98. border: none;
  99. background: transparent;
  100. cursor: pointer;
  101. font-weight: 600;
  102. font-size: 11px;
  103. padding: 0 3px;
  104. line-height: 27px;
  105. outline: 0;
  106. transition: all 100ms ease-in;
  107. &:hover, &:active, &:focus {
  108. color: lighten($color1, 26%);
  109. transition: all 200ms ease-out;
  110. }
  111. &.disabled {
  112. color: lighten($color1, 13%);
  113. cursor: default;
  114. }
  115. &.active {
  116. color: $color4;
  117. }
  118. &::-moz-focus-inner {
  119. border: 0;
  120. }
  121. &::-moz-focus-inner, &:focus, &:active {
  122. outline: 0 !important;
  123. }
  124. }
  125. .dropdown--active .icon-button {
  126. color: $color4;
  127. }
  128. .invisible {
  129. font-size: 0;
  130. line-height: 0;
  131. display: inline-block;
  132. width: 0;
  133. }
  134. .ellipsis {
  135. &:after {
  136. content: "";
  137. }
  138. }
  139. .lightbox .icon-button {
  140. color: $color1;
  141. }
  142. .compose-form__warning {
  143. color: $color2;
  144. margin-bottom: 15px;
  145. border: 1px solid $color3;
  146. padding: 8px 10px;
  147. border-radius: 4px;
  148. font-size: 12px;
  149. font-weight: 400;
  150. strong {
  151. color: $color5;
  152. font-weight: 500;
  153. }
  154. }
  155. .compose-form__modifiers {
  156. color: $color1;
  157. font-family: inherit;
  158. font-size: 14px;
  159. background: $color5;
  160. border-radius: 0 0 4px 0;
  161. }
  162. .compose-form__buttons {
  163. padding: 10px;
  164. background: darken($color5, 8%);
  165. box-shadow: inset 0 5px 5px rgba($color8, 0.05);
  166. border-radius: 0 0 4px 4px;
  167. display: flex;
  168. .icon-button {
  169. box-sizing: content-box;
  170. padding: 0 3px;
  171. }
  172. }
  173. .compose-form__label {
  174. display: block;
  175. line-height: 24px;
  176. vertical-align: middle;
  177. &.with-border {
  178. border-top: 1px solid $color1;
  179. padding-top: 10px;
  180. }
  181. .compose-form__label__text {
  182. display: inline-block;
  183. vertical-align: middle;
  184. margin-bottom: 14px;
  185. margin-left: 8px;
  186. color: $color3;
  187. }
  188. }
  189. .compose-form__textarea, .follow-form__input {
  190. background: $color5;
  191. &:disabled {
  192. background: $color2;
  193. }
  194. }
  195. .emojione {
  196. display: inline-block;
  197. font-size: inherit;
  198. vertical-align: middle;
  199. margin: -.2ex .15em .2ex;
  200. width: 16px;
  201. height: 16px;
  202. img {
  203. width: auto;
  204. }
  205. }
  206. .reply-indicator {
  207. border-radius: 4px 4px 0 0;
  208. position: relative;
  209. bottom: -2px;
  210. background: $color3;
  211. padding: 10px;
  212. .reply-indicator__display-name {
  213. color: $color1;
  214. }
  215. }
  216. .status__content, .reply-indicator__content {
  217. font-size: 15px;
  218. line-height: 20px;
  219. word-wrap: break-word;
  220. font-weight: 400;
  221. overflow: hidden;
  222. white-space: pre-wrap;
  223. .emojione {
  224. width: 18px;
  225. height: 18px;
  226. }
  227. p {
  228. margin-bottom: 20px;
  229. &:last-child {
  230. margin-bottom: 0;
  231. }
  232. }
  233. a {
  234. color: $color2;
  235. text-decoration: none;
  236. &:hover {
  237. text-decoration: underline;
  238. .fa {
  239. color: lighten($color1, 40%);
  240. }
  241. }
  242. &.mention {
  243. &:hover {
  244. text-decoration: none;
  245. span {
  246. text-decoration: underline;
  247. }
  248. }
  249. }
  250. .fa {
  251. color: lighten($color1, 30%);
  252. }
  253. }
  254. .status__content__spoiler-link {
  255. background: lighten($color1, 30%);
  256. &:hover {
  257. background: lighten($color1, 33%);
  258. text-decoration: none;
  259. }
  260. }
  261. }
  262. a.status__content__spoiler-link {
  263. display: inline-block;
  264. border-radius: 2px;
  265. color: lighten($color1, 8%);
  266. font-weight: 500;
  267. font-size: 11px;
  268. padding: 0px 6px;
  269. text-transform: uppercase;
  270. line-height: inherit;
  271. }
  272. .status {
  273. padding: 8px 10px;
  274. padding-left: 68px;
  275. position: relative;
  276. min-height: 48px;
  277. border-bottom: 1px solid lighten($color1, 8%);
  278. cursor: default;
  279. .status__relative-time {
  280. color: lighten($color1, 26%);
  281. }
  282. .status__display-name {
  283. color: lighten($color1, 26%);
  284. }
  285. }
  286. .status-check-box {
  287. border-bottom: 1px solid lighten($color1, 8%);
  288. .status__content {
  289. background: lighten($color1, 4%);
  290. }
  291. }
  292. .status__prepend {
  293. margin-left: 68px;
  294. color: lighten($color1, 26%);
  295. padding: 8px 0;
  296. padding-bottom: 2px;
  297. font-size: 14px;
  298. position: relative;
  299. .status__display-name strong {
  300. color: lighten($color1, 26%);
  301. }
  302. }
  303. .detailed-status {
  304. background: lighten($color1, 4%);
  305. .status__content {
  306. font-size: 19px;
  307. line-height: 24px;
  308. .emojione {
  309. width: 22px;
  310. height: 22px;
  311. }
  312. }
  313. }
  314. .detailed-status__meta {
  315. margin-top: 15px;
  316. color: lighten($color1, 26%);
  317. font-size: 14px;
  318. line-height: 18px;
  319. }
  320. .detailed-status__action-bar {
  321. background: lighten($color1, 4%);
  322. display: flex;
  323. flex-direction: row;
  324. border-top: 1px solid lighten($color1, 8%);
  325. border-bottom: 1px solid lighten($color1, 8%);
  326. padding: 10px 0;
  327. }
  328. .reply-indicator__content {
  329. color: $color1;
  330. font-size: 14px;
  331. a {
  332. color: lighten($color1, 20%);
  333. }
  334. }
  335. .account {
  336. padding: 10px;
  337. border-bottom: 1px solid lighten($color1, 8%);
  338. .account__display-name {
  339. flex: 1 1 auto;
  340. display: block;
  341. color: $color3;
  342. overflow: hidden;
  343. text-decoration: none;
  344. font-size: 14px;
  345. }
  346. }
  347. .account__header {
  348. flex: 0 0 auto;
  349. background: lighten($color1, 4%);
  350. text-align: center;
  351. background-size: cover;
  352. background-position: center;
  353. position: relative;
  354. & > div {
  355. background: rgba(lighten($color1, 4%), 0.9);
  356. }
  357. .account__header__content {
  358. color: $color2;
  359. }
  360. .account__header__display-name {
  361. color: $color5;
  362. }
  363. .account__header__username {
  364. color: $color4;
  365. }
  366. }
  367. .account__header__content {
  368. word-wrap: break-word;
  369. word-break: normal;
  370. font-weight: 400;
  371. overflow: hidden;
  372. color: $color3;
  373. p {
  374. margin-bottom: 20px;
  375. &:last-child {
  376. margin-bottom: 0;
  377. }
  378. }
  379. a {
  380. color: inherit;
  381. text-decoration: underline;
  382. &:hover {
  383. text-decoration: none;
  384. }
  385. }
  386. }
  387. .account__header__display-name {
  388. .emojione {
  389. width: 25px;
  390. height: 25px;
  391. }
  392. }
  393. .account__action-bar {
  394. border-top: 1px solid lighten($color1, 8%);
  395. border-bottom: 1px solid lighten($color1, 8%);
  396. line-height: 36px;
  397. overflow: hidden;
  398. flex: 0 0 auto;
  399. display: flex;
  400. }
  401. .account__action-bar__tab {
  402. text-decoration: none;
  403. overflow: hidden;
  404. width: 80px;
  405. border-left: 1px solid lighten($color1, 8%);
  406. padding: 10px 5px;
  407. & > span {
  408. display: block;
  409. text-transform: uppercase;
  410. font-size: 11px;
  411. color: $color3;
  412. }
  413. strong {
  414. display: block;
  415. font-size: 15px;
  416. font-weight: 500;
  417. color: $color5;
  418. }
  419. abbr {
  420. color: lighten($color1, 26%);
  421. }
  422. }
  423. .status__display-name, .status__relative-time, .detailed-status__display-name, .detailed-status__datetime, .detailed-status__application, .account__display-name {
  424. text-decoration: none;
  425. }
  426. .status__display-name, .account__display-name {
  427. strong {
  428. color: $color5;
  429. }
  430. &.muted {
  431. .emojione {
  432. opacity: 0.5;
  433. }
  434. }
  435. }
  436. .status__display-name, .reply-indicator__display-name, .detailed-status__display-name, .account__display-name {
  437. &:hover {
  438. strong {
  439. text-decoration: underline;
  440. }
  441. }
  442. }
  443. .account__display-name {
  444. strong {
  445. display: block;
  446. }
  447. }
  448. .detailed-status__display-name {
  449. color: $color2;
  450. line-height: 24px;
  451. strong, span {
  452. display: block;
  453. }
  454. strong {
  455. font-size: 16px;
  456. color: $color5;
  457. }
  458. }
  459. .muted {
  460. .status__content p, .status__content a {
  461. color: lighten($color1, 26%);
  462. }
  463. .status__display-name strong {
  464. color: lighten($color1, 26%);
  465. }
  466. .status__avatar {
  467. opacity: 0.5;
  468. }
  469. a.status__content__spoiler-link {
  470. background: lighten($color1, 26%);
  471. color: lighten($color1, 4%);
  472. &:hover {
  473. background: lighten($color1, 29%);
  474. text-decoration: none;
  475. }
  476. }
  477. }
  478. .notification__message {
  479. margin-left: 68px;
  480. padding: 8px 0;
  481. padding-bottom: 0;
  482. cursor: default;
  483. color: $color3;
  484. font-size: 15px;
  485. position: relative;
  486. .fa {
  487. color: $color4;
  488. }
  489. }
  490. .notification__display-name {
  491. color: inherit;
  492. text-decoration: none;
  493. &:hover {
  494. color: $color5;
  495. text-decoration: underline;
  496. }
  497. }
  498. .status__relative-time, .detailed-status__datetime {
  499. &:hover {
  500. text-decoration: underline;
  501. }
  502. }
  503. .transparent-background, .imageloader {
  504. background: image-url('void.png');
  505. }
  506. .imageloader {
  507. display: block;
  508. }
  509. .navigation-bar {
  510. padding: 10px;
  511. display: flex;
  512. flex-shrink: 0;
  513. cursor: default;
  514. color: $color3;
  515. strong {
  516. color: $color5;
  517. }
  518. }
  519. .dropdown {
  520. display: inline-block;
  521. }
  522. .dropdown__content {
  523. display: none;
  524. position: absolute;
  525. }
  526. .dropdown__sep {
  527. border-bottom: 1px solid darken($color2, 8%);
  528. margin: 5px 7px 6px;
  529. padding-top: 1px;
  530. }
  531. .dropdown--active .dropdown__content {
  532. display: block;
  533. z-index: 9999;
  534. &:before {
  535. content: "";
  536. display: block;
  537. position: absolute;
  538. width: 0;
  539. height: 0;
  540. border-style: solid;
  541. border-width: 0 4.5px 7.8px 4.5px;
  542. border-color: transparent transparent $color2 transparent;
  543. top: -7px;
  544. left: 8px;
  545. }
  546. & > ul {
  547. list-style: none;
  548. background: $color2;
  549. padding: 4px 0;
  550. border-radius: 4px;
  551. box-shadow: 0 0 15px rgba($color8, 0.4);
  552. min-width: 140px;
  553. position: relative;
  554. left: -10px;
  555. }
  556. &.dropdown__left {
  557. & > ul {
  558. left: -98px;
  559. }
  560. & > .emoji-dialog {
  561. left: -249px;
  562. }
  563. }
  564. & > ul > li > a {
  565. font-size: 13px;
  566. line-height: 18px;
  567. display: block;
  568. padding: 4px 14px;
  569. box-sizing: border-box;
  570. width: 140px;
  571. text-decoration: none;
  572. background: $color2;
  573. color: $color1;
  574. overflow: hidden;
  575. text-overflow: ellipsis;
  576. white-space: nowrap;
  577. &:focus {
  578. outline: 0;
  579. }
  580. &:hover {
  581. background: $color4;
  582. color: $color2;
  583. }
  584. }
  585. }
  586. .static-content {
  587. padding: 10px;
  588. padding-top: 20px;
  589. color: lighten($color1, 26%);
  590. h1 {
  591. font-size: 16px;
  592. font-weight: 500;
  593. margin-bottom: 40px;
  594. text-align: center;
  595. }
  596. p {
  597. font-size: 13px;
  598. margin-bottom: 20px;
  599. }
  600. }
  601. .columns-area {
  602. flex-direction: row;
  603. justify-content: flex-start;
  604. }
  605. @media screen and (min-width: 360px) {
  606. .columns-area {
  607. padding: 10px;
  608. }
  609. }
  610. .column {
  611. width: 330px;
  612. position: relative;
  613. box-sizing: border-box;
  614. display: flex;
  615. flex-direction: column;
  616. > .scrollable {
  617. background: $color1;
  618. }
  619. }
  620. .ui {
  621. flex: 0 0 auto;
  622. display: flex;
  623. flex-direction: column;
  624. width: 100%;
  625. height: 100%;
  626. background: darken($color1, 7%);
  627. }
  628. .drawer {
  629. width: 300px;
  630. box-sizing: border-box;
  631. display: flex;
  632. flex-direction: column;
  633. overflow-y: hidden;
  634. }
  635. .drawer__tab {
  636. display: block;
  637. flex: 1 1 auto;
  638. padding: 15px;
  639. padding-bottom: 13px;
  640. color: $color3;
  641. text-decoration: none;
  642. text-align: center;
  643. font-size: 16px;
  644. border-bottom: 2px solid transparent;
  645. }
  646. .column, .drawer {
  647. flex: 1 1 100%;
  648. overflow: hidden;
  649. }
  650. @media screen and (min-width: 360px) {
  651. .tabs-bar {
  652. margin: 10px;
  653. margin-bottom: 0;
  654. }
  655. .search {
  656. margin-bottom: 10px;
  657. }
  658. }
  659. @media screen and (max-width: 1024px) {
  660. .column, .drawer {
  661. width: 100%;
  662. padding: 0;
  663. }
  664. .columns-area {
  665. flex-direction: column;
  666. }
  667. .search__input, .autosuggest-textarea__textarea {
  668. font-size: 16px;
  669. }
  670. }
  671. @media screen and (min-width: 1024px) {
  672. .columns-area {
  673. padding: 0;
  674. }
  675. .column, .drawer {
  676. flex: 0 0 auto;
  677. padding: 10px;
  678. padding-left: 5px;
  679. padding-right: 5px;
  680. &:first-child {
  681. padding-left: 10px;
  682. }
  683. &:last-child {
  684. padding-right: 10px;
  685. }
  686. }
  687. }
  688. @media screen and (min-width: 2560px) {
  689. .columns-area {
  690. justify-content: center;
  691. }
  692. .column, .drawer {
  693. width: 350px;
  694. border-radius: 4px;
  695. height: 90vh;
  696. margin-top: 5vh;
  697. }
  698. }
  699. .drawer__pager {
  700. box-sizing: border-box;
  701. padding: 0;
  702. flex-grow: 1;
  703. position: relative;
  704. overflow: hidden;
  705. display: flex;
  706. }
  707. .drawer__inner {
  708. position: absolute;
  709. top: 0;
  710. left: 0;
  711. background: lighten($color1, 13%);
  712. box-sizing: border-box;
  713. padding: 0;
  714. display: flex;
  715. flex-direction: column;
  716. overflow: hidden;
  717. overflow-y: auto;
  718. width: 100%;
  719. height: 100%;
  720. &.darker {
  721. background: $color1;
  722. }
  723. }
  724. .drawer__header {
  725. flex: 0 0 auto;
  726. font-size: 16px;
  727. background: lighten($color1, 8%);
  728. margin-bottom: 10px;
  729. display: flex;
  730. flex-direction: row;
  731. a {
  732. transition: all 100ms ease-in;
  733. &:hover {
  734. background: lighten($color1, 3%);
  735. transition: all 200ms ease-out;
  736. }
  737. }
  738. }
  739. .tabs-bar {
  740. display: flex;
  741. background: lighten($color1, 8%);
  742. flex: 0 0 auto;
  743. overflow-y: auto;
  744. }
  745. .tabs-bar__link {
  746. display: block;
  747. flex: 1 1 auto;
  748. padding: 15px 10px;
  749. color: $color5;
  750. text-decoration: none;
  751. text-align: center;
  752. font-size: 14px;
  753. font-weight: 500;
  754. border-bottom: 2px solid lighten($color1, 8%);
  755. transition: all 200ms linear;
  756. .fa {
  757. font-weight: 400;
  758. font-size: 16px;
  759. }
  760. &.active {
  761. border-bottom: 2px solid $color4;
  762. color: $color4;
  763. }
  764. &:hover, &:focus, &:active {
  765. background: lighten($color1, 14%);
  766. transition: all 100ms linear;
  767. }
  768. span {
  769. margin-left: 5px;
  770. display: none;
  771. }
  772. }
  773. @media screen and (min-width: 600px) {
  774. .tabs-bar__link {
  775. span {
  776. display: inline;
  777. }
  778. }
  779. }
  780. @media screen and (min-width: 1025px) {
  781. .tabs-bar {
  782. display: none;
  783. }
  784. }
  785. .react-autosuggest__container {
  786. position: relative;
  787. }
  788. .react-autosuggest__suggestions-container {
  789. position: absolute;
  790. top: 100%;
  791. width: 100%;
  792. z-index: 99;
  793. box-shadow: 0 0 15px rgba($color8, 0.4);
  794. }
  795. .react-autosuggest__section-title {
  796. background: $color3;
  797. padding: 4px 10px;
  798. font-weight: 500;
  799. cursor: default;
  800. color: $color1;
  801. text-transform: uppercase;
  802. font-size: 11px;
  803. }
  804. .react-autosuggest__suggestions-list {
  805. background: $color2;
  806. color: $color1;
  807. font-size: 14px;
  808. }
  809. .react-autosuggest__suggestion {
  810. padding: 10px;
  811. cursor: pointer;
  812. }
  813. .react-autosuggest__suggestion--focused {
  814. background: $color4;
  815. color: $color5;
  816. }
  817. .scrollable {
  818. overflow-y: scroll;
  819. overflow-x: hidden;
  820. flex: 1 1 auto;
  821. -webkit-overflow-scrolling: touch;
  822. &.optionally-scrollable {
  823. overflow-y: auto;
  824. }
  825. }
  826. .column-back-button {
  827. padding: 15px;
  828. font-size: 16px;
  829. background: lighten($color1, 4%);
  830. flex: 0 0 auto;
  831. cursor: pointer;
  832. color: $color4;
  833. z-index: 3;
  834. &:hover {
  835. text-decoration: underline;
  836. }
  837. }
  838. .react-toggle {
  839. display: inline-block;
  840. position: relative;
  841. cursor: pointer;
  842. background-color: transparent;
  843. border: 0;
  844. padding: 0;
  845. user-select: none;
  846. -webkit-tap-highlight-color: rgba($color8, 0);
  847. -webkit-tap-highlight-color: transparent;
  848. }
  849. .react-toggle-screenreader-only {
  850. border: 0;
  851. clip: rect(0 0 0 0);
  852. height: 1px;
  853. margin: -1px;
  854. overflow: hidden;
  855. padding: 0;
  856. position: absolute;
  857. width: 1px;
  858. }
  859. .react-toggle--disabled {
  860. cursor: not-allowed;
  861. opacity: 0.5;
  862. transition: opacity 0.25s;
  863. }
  864. .react-toggle-track {
  865. width: 50px;
  866. height: 24px;
  867. padding: 0;
  868. border-radius: 30px;
  869. background-color: $color1;
  870. transition: all 0.2s ease;
  871. }
  872. .react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {
  873. background-color: darken($color1, 10%);
  874. }
  875. .react-toggle--checked .react-toggle-track {
  876. background-color: $color4;
  877. }
  878. .react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {
  879. background-color: lighten($color4, 10%);
  880. }
  881. .react-toggle-track-check {
  882. position: absolute;
  883. width: 14px;
  884. height: 10px;
  885. top: 0px;
  886. bottom: 0px;
  887. margin-top: auto;
  888. margin-bottom: auto;
  889. line-height: 0;
  890. left: 8px;
  891. opacity: 0;
  892. transition: opacity 0.25s ease;
  893. }
  894. .react-toggle--checked .react-toggle-track-check {
  895. opacity: 1;
  896. transition: opacity 0.25s ease;
  897. }
  898. .react-toggle-track-x {
  899. position: absolute;
  900. width: 10px;
  901. height: 10px;
  902. top: 0px;
  903. bottom: 0px;
  904. margin-top: auto;
  905. margin-bottom: auto;
  906. line-height: 0;
  907. right: 10px;
  908. opacity: 1;
  909. transition: opacity 0.25s ease;
  910. }
  911. .react-toggle--checked .react-toggle-track-x {
  912. opacity: 0;
  913. }
  914. .react-toggle-thumb {
  915. transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1) 0ms;
  916. position: absolute;
  917. top: 1px;
  918. left: 1px;
  919. width: 22px;
  920. height: 22px;
  921. border: 1px solid $color1;
  922. border-radius: 50%;
  923. background-color: darken($color5, 2%);
  924. box-sizing: border-box;
  925. transition: all 0.25s ease;
  926. }
  927. .react-toggle--checked .react-toggle-thumb {
  928. left: 27px;
  929. border-color: $color4;
  930. }
  931. .column-link {
  932. background: lighten($color1, 8%);
  933. color: $color5;
  934. &:hover {
  935. background: lighten($color1, 11%);
  936. }
  937. }
  938. .autosuggest-textarea, .spoiler-input {
  939. position: relative;
  940. }
  941. .autosuggest-textarea__textarea, .spoiler-input__input {
  942. display: block;
  943. box-sizing: border-box;
  944. width: 100%;
  945. resize: none;
  946. margin: 0;
  947. color: $color1;
  948. padding: 10px;
  949. font-family: inherit;
  950. font-size: 14px;
  951. resize: vertical;
  952. border: 0;
  953. outline: 0;
  954. &:focus {
  955. outline: 0;
  956. }
  957. }
  958. .spoiler-input__input {
  959. border-radius: 4px;
  960. }
  961. .autosuggest-textarea__textarea {
  962. height: 100px;
  963. background: $color5;
  964. border-radius: 4px 4px 0 0;
  965. padding-bottom: 0;
  966. padding-right: 10px + 22px;
  967. }
  968. .autosuggest-textarea__suggestions {
  969. position: absolute;
  970. top: 100%;
  971. width: 100%;
  972. z-index: 99;
  973. box-shadow: 0 0 15px rgba($color8, 0.4);
  974. background: $color2;
  975. color: $color1;
  976. font-size: 14px;
  977. }
  978. .autosuggest-textarea__suggestions__item {
  979. padding: 10px;
  980. cursor: pointer;
  981. &:hover {
  982. background: darken($color2, 10%);
  983. }
  984. &.selected {
  985. background: $color4;
  986. color: $color5;
  987. }
  988. }
  989. .getting-started {
  990. box-sizing: border-box;
  991. padding-bottom: 235px;
  992. background: image-url('mastodon-getting-started.png') no-repeat 0 100% local;
  993. flex: 1 0 auto;
  994. p {
  995. color: $color2;
  996. }
  997. a {
  998. color: lighten($color1, 26%);
  999. }
  1000. }
  1001. .setting-text {
  1002. color: $color3;
  1003. background: transparent;
  1004. border: none;
  1005. border-bottom: 2px solid $color3;
  1006. &:focus, &:active {
  1007. color: $color5;
  1008. border-bottom-color: $color4;
  1009. }
  1010. }
  1011. @import 'boost';
  1012. button i.fa-retweet {
  1013. height: 19px;
  1014. width: 22px;
  1015. background-position: 0 0;
  1016. transition: background-position 0.9s steps(10);
  1017. transition-duration: 0s;
  1018. &::before {
  1019. display: none !important;
  1020. }
  1021. }
  1022. button.active i.fa-retweet {
  1023. transition-duration: 0.9s;
  1024. background-position: 0 100%;
  1025. }
  1026. .status-card {
  1027. display: flex;
  1028. cursor: pointer;
  1029. font-size: 14px;
  1030. border: 1px solid lighten($color1, 8%);
  1031. border-radius: 4px;
  1032. color: lighten($color1, 26%);
  1033. margin-top: 14px;
  1034. text-decoration: none;
  1035. overflow: hidden;
  1036. &:hover {
  1037. background: lighten($color1, 8%);
  1038. }
  1039. }
  1040. .status-card__title {
  1041. display: block;
  1042. font-weight: 500;
  1043. margin-bottom: 5px;
  1044. color: $color3;
  1045. overflow: hidden;
  1046. text-overflow: ellipsis;
  1047. white-space: nowrap;
  1048. }
  1049. .status-card__description {
  1050. color: $color3;
  1051. }
  1052. .status-card__image {
  1053. flex: 0 0 100px;
  1054. background: lighten($color1, 8%);
  1055. }
  1056. .load-more {
  1057. display: block;
  1058. color: lighten($color1, 26%);
  1059. text-align: center;
  1060. padding: 15px;
  1061. text-decoration: none;
  1062. &:hover {
  1063. background: lighten($color1, 2%);
  1064. }
  1065. }
  1066. .missing-indicator {
  1067. text-align: center;
  1068. font-size: 16px;
  1069. font-weight: 500;
  1070. color: lighten($color1, 16%);
  1071. padding-top: 210px;
  1072. background: image-url('mastodon-not-found.png') no-repeat center -50px;
  1073. cursor: default;
  1074. }
  1075. .column-header {
  1076. padding: 15px;
  1077. font-size: 16px;
  1078. background: lighten($color1, 4%);
  1079. flex: 0 0 auto;
  1080. cursor: pointer;
  1081. position: relative;
  1082. z-index: 2;
  1083. &.active {
  1084. box-shadow: 0 1px 0 rgba($color4, 0.3);
  1085. }
  1086. &.active .fa {
  1087. color: $color4;
  1088. text-shadow: 0 0 10px rgba($color4, 0.4);
  1089. }
  1090. }
  1091. .loading-indicator {
  1092. color: $color2;
  1093. }
  1094. .collapsable-collapsed {
  1095. color: $color3;
  1096. background: lighten($color1, 4%);
  1097. }
  1098. .collapsable {
  1099. color: $color5;
  1100. background: lighten($color1, 8%);
  1101. &:hover {
  1102. color: $color5;
  1103. background: lighten($color1, 8%);
  1104. }
  1105. }
  1106. .media-spoiler {
  1107. background: $color8;
  1108. color: $color5;
  1109. }
  1110. .modal-container--preloader {
  1111. background: lighten($color1, 8%);
  1112. }
  1113. .account--panel {
  1114. background: lighten($color1, 4%);
  1115. border-top: 1px solid lighten($color1, 8%);
  1116. border-bottom: 1px solid lighten($color1, 8%);
  1117. }
  1118. .column-settings--outer {
  1119. background: lighten($color1, 8%);
  1120. }
  1121. .column-settings--section {
  1122. color: $color3;
  1123. }
  1124. .modal-container__nav {
  1125. color: $color5;
  1126. }
  1127. .account--follows-info {
  1128. color: $color5;
  1129. }
  1130. .setting-toggle {
  1131. color: $color3;
  1132. }
  1133. .report__target {
  1134. border-bottom: 1px solid lighten($color1, 4%);
  1135. color: $color2;
  1136. padding-bottom: 10px;
  1137. strong {
  1138. display: block;
  1139. color: $color5;
  1140. font-weight: 500;
  1141. }
  1142. }
  1143. .report__textarea {
  1144. background: transparent;
  1145. box-sizing: border-box;
  1146. border: 0;
  1147. border-bottom: 2px solid $color3;
  1148. border-radius: 2px 2px 0 0;
  1149. padding: 7px 4px;
  1150. font-size: 14px;
  1151. color: $color5;
  1152. display: block;
  1153. width: 100%;
  1154. outline: 0;
  1155. font-family: inherit;
  1156. resize: vertical;
  1157. &:active, &:focus {
  1158. border-bottom-color: $color4;
  1159. background: rgba($color8, 0.1);
  1160. }
  1161. }
  1162. .empty-column-indicator {
  1163. color: lighten($color1, 20%);
  1164. background: $color1;
  1165. text-align: center;
  1166. padding: 20px;
  1167. font-size: 15px;
  1168. font-weight: 400;
  1169. cursor: default;
  1170. display: flex;
  1171. flex: 1 1 auto;
  1172. align-items: center;
  1173. a {
  1174. color: $color4;
  1175. text-decoration: none;
  1176. &:hover {
  1177. text-decoration: underline;
  1178. }
  1179. }
  1180. }
  1181. .status-list__unread-indicator, .notifications__unread-indicator {
  1182. position: absolute;
  1183. top: 35px;
  1184. left: 0;
  1185. right: 0;
  1186. margin: 0 auto;
  1187. width: 60%;
  1188. pointer-events: none;
  1189. height: 28px;
  1190. z-index: 1;
  1191. background: radial-gradient(ellipse, rgba($color4, 0.23) 0%, rgba($color4, 0) 60%);
  1192. }
  1193. .emoji-dialog {
  1194. width: 280px;
  1195. height: 220px;
  1196. background: darken($color3, 10%);
  1197. box-sizing: border-box;
  1198. border-radius: 2px;
  1199. overflow: hidden;
  1200. position: relative;
  1201. box-shadow: 0 0 15px rgba($color8, 0.4);
  1202. .emojione {
  1203. margin: 0;
  1204. width: 100%;
  1205. height: auto;
  1206. }
  1207. .emoji-dialog-header {
  1208. padding: 0 10px;
  1209. background-color: $color3;
  1210. ul {
  1211. padding: 0;
  1212. margin: 0;
  1213. list-style: none;
  1214. }
  1215. li {
  1216. display: inline-block;
  1217. box-sizing: border-box;
  1218. height: 42px;
  1219. padding: 9px 5px;
  1220. cursor: pointer;
  1221. img, svg {
  1222. width: 22px;
  1223. height: 22px;
  1224. filter: grayscale(100%);
  1225. }
  1226. &.active {
  1227. background: lighten($color3, 6%);
  1228. img, svg {
  1229. filter: grayscale(0);
  1230. }
  1231. }
  1232. }
  1233. }
  1234. .emoji-row {
  1235. box-sizing: border-box;
  1236. overflow-y: hidden;
  1237. padding-left: 10px;
  1238. .emoji {
  1239. display: inline-block;
  1240. padding: 5px;
  1241. border-radius: 4px;
  1242. }
  1243. }
  1244. .emoji-category-header {
  1245. box-sizing: border-box;
  1246. overflow-y: hidden;
  1247. padding: 8px 16px 0;
  1248. display: table;
  1249. > * {
  1250. display: table-cell;
  1251. vertical-align: middle;
  1252. }
  1253. }
  1254. .emoji-category-title {
  1255. font-size: 14px;
  1256. font-family: sans-serif;
  1257. font-weight: normal;
  1258. color: $color1;
  1259. cursor: default;
  1260. }
  1261. .emoji-category-heading-decoration {
  1262. text-align: right;
  1263. }
  1264. .modifiers {
  1265. list-style: none;
  1266. padding: 0;
  1267. margin: 0;
  1268. vertical-align: middle;
  1269. white-space: nowrap;
  1270. margin-top: 4px;
  1271. li {
  1272. display: inline-block;
  1273. padding: 0 2px;
  1274. &:last-of-type {
  1275. padding-right: 0;
  1276. }
  1277. }
  1278. .modifier {
  1279. display: inline-block;
  1280. border-radius: 10px;
  1281. width: 15px;
  1282. height: 15px;
  1283. position: relative;
  1284. cursor: pointer;
  1285. &.active:after {
  1286. content: "";
  1287. display: block;
  1288. position: absolute;
  1289. width: 7px;
  1290. height: 7px;
  1291. border-radius: 10px;
  1292. border: 2px solid $color1;
  1293. top: 2px;
  1294. left: 2px;
  1295. }
  1296. }
  1297. }
  1298. .emoji-search-wrapper {
  1299. padding: 6px 16px;
  1300. }
  1301. .emoji-search {
  1302. font-size: 12px;
  1303. padding: 6px 4px;
  1304. width: 100%;
  1305. border: 1px solid #ddd;
  1306. border-radius: 4px;
  1307. }
  1308. .emoji-categories-wrapper {
  1309. position: absolute;
  1310. top: 42px;
  1311. bottom: 0;
  1312. left: 0;
  1313. right: 0;
  1314. }
  1315. .emoji-search-wrapper + .emoji-categories-wrapper {
  1316. top: 83px;
  1317. }
  1318. .emoji-row .emoji:hover {
  1319. background: lighten($color2, 3%);
  1320. }
  1321. .emoji {
  1322. width: 22px;
  1323. height: 22px;
  1324. cursor: pointer;
  1325. &:focus {
  1326. outline: 0;
  1327. }
  1328. }
  1329. }
  1330. .autosuggest-status {
  1331. overflow: hidden;
  1332. white-space: nowrap;
  1333. text-overflow: ellipsis;
  1334. strong {
  1335. font-weight: 500;
  1336. }
  1337. }
  1338. .upload-area {
  1339. position: absolute;
  1340. top: 0;
  1341. left: 0;
  1342. width: 100%;
  1343. height: 100%;
  1344. visibility: hidden;
  1345. background: rgba($color8, 0.8);
  1346. display: flex;
  1347. align-items: center;
  1348. justify-content: center;
  1349. opacity: 0;
  1350. z-index: 2000;
  1351. * {
  1352. pointer-events: none;
  1353. }
  1354. }
  1355. .upload-area__drop {
  1356. width: 320px;
  1357. height: 160px;
  1358. display: flex;
  1359. box-sizing: border-box;
  1360. position: relative;
  1361. padding: 8px;
  1362. }
  1363. .upload-area__background {
  1364. position: absolute;
  1365. top: 0;
  1366. right: 0;
  1367. bottom: 0;
  1368. left: 0;
  1369. z-index: -1;
  1370. border-radius: 4px;
  1371. background: $color1;
  1372. box-shadow: 0 0 5px rgba($color8, 0.2);
  1373. }
  1374. .upload-area__content {
  1375. flex: 1;
  1376. display: flex;
  1377. align-items: center;
  1378. justify-content: center;
  1379. color: $color2;
  1380. font-size: 18px;
  1381. font-weight: 500;
  1382. border: 2px dashed lighten($color1, 26%);
  1383. border-radius: 4px;
  1384. }
  1385. .upload-progress {
  1386. padding: 10px;
  1387. color: lighten($color1, 26%);
  1388. overflow: hidden;
  1389. display: flex;
  1390. .fa {
  1391. font-size: 34px;
  1392. margin-right: 10px;
  1393. }
  1394. span {
  1395. font-size: 12px;
  1396. text-transform: uppercase;
  1397. font-weight: 500;
  1398. display: block;
  1399. }
  1400. }
  1401. .upload-progress__backdrop {
  1402. width: 100%;
  1403. height: 6px;
  1404. border-radius: 6px;
  1405. background: lighten($color1, 26%);
  1406. position: relative;
  1407. margin-top: 5px;
  1408. }
  1409. .upload-progress__tracker {
  1410. position: absolute;
  1411. left: 0;
  1412. top: 0;
  1413. height: 6px;
  1414. background: $color4;
  1415. border-radius: 6px;
  1416. }
  1417. .emoji-button {
  1418. outline: 0;
  1419. &:active, &:focus {
  1420. outline: 0 !important;
  1421. }
  1422. img {
  1423. filter: grayscale(100%);
  1424. opacity: 0.8;
  1425. display: block;
  1426. margin: 0;
  1427. width: 22px;
  1428. height: 22px;
  1429. margin-top: 2px;
  1430. }
  1431. &:hover, &:active, &:focus {
  1432. img {
  1433. opacity: 1;
  1434. filter: none;
  1435. }
  1436. }
  1437. }
  1438. .dropdown--active .emoji-button img {
  1439. opacity: 1;
  1440. filter: none;
  1441. }
  1442. .privacy-dropdown {
  1443. position: relative;
  1444. }
  1445. .privacy-dropdown__dropdown {
  1446. display: none;
  1447. position: absolute;
  1448. left: 0;
  1449. top: 27px;
  1450. width: 230px;
  1451. background: $color5;
  1452. border-radius: 0 4px 4px 4px;
  1453. z-index: 2;
  1454. overflow: hidden;
  1455. }
  1456. .privacy-dropdown__option {
  1457. color: $color1;
  1458. padding: 10px;
  1459. cursor: pointer;
  1460. display: flex;
  1461. &:hover, &.active {
  1462. background: $color4;
  1463. color: $color5;
  1464. .privacy-dropdown__option__content {
  1465. color: $color5;
  1466. strong {
  1467. color: $color5;
  1468. }
  1469. }
  1470. }
  1471. &.active:hover {
  1472. background: lighten($color4, 4%);
  1473. }
  1474. }
  1475. .privacy-dropdown__option__icon {
  1476. display: flex;
  1477. align-items: center;
  1478. justify-content: center;
  1479. margin-right: 10px;
  1480. }
  1481. .privacy-dropdown__option__content {
  1482. flex: 1 1 auto;
  1483. color: darken($color3, 24%);
  1484. strong {
  1485. font-weight: 500;
  1486. display: block;
  1487. color: $color1;
  1488. }
  1489. }
  1490. .privacy-dropdown.active {
  1491. .privacy-dropdown__value {
  1492. background: $color5;
  1493. border-radius: 4px 4px 0 0;
  1494. box-shadow: 0 -4px 4px rgba($color8, 0.1);
  1495. }
  1496. .privacy-dropdown__dropdown {
  1497. display: block;
  1498. box-shadow: 2px 4px 6px rgba($color8, 0.1);
  1499. }
  1500. }
  1501. .search {
  1502. position: relative;
  1503. }
  1504. .search__input {
  1505. padding-right: 30px;
  1506. color: $color2;
  1507. outline: 0;
  1508. box-sizing: border-box;
  1509. display: block;
  1510. width: 100%;
  1511. border: none;
  1512. padding: 10px;
  1513. padding-right: 30px;
  1514. font-family: inherit;
  1515. background: $color1;
  1516. color: $color3;
  1517. font-size: 14px;
  1518. margin: 0;
  1519. &::-moz-focus-inner {
  1520. border: 0;
  1521. }
  1522. &::-moz-focus-inner, &:focus, &:active {
  1523. outline: 0 !important;
  1524. }
  1525. &:focus {
  1526. background: lighten($color1, 4%);
  1527. }
  1528. }
  1529. .search__icon {
  1530. .fa {
  1531. position: absolute;
  1532. top: 10px;
  1533. right: 10px;
  1534. z-index: 2;
  1535. display: inline-block;
  1536. opacity: 0;
  1537. transition: all 100ms linear;
  1538. font-size: 18px;
  1539. width: 18px;
  1540. height: 18px;
  1541. color: $color2;
  1542. cursor: default;
  1543. pointer-events: none;
  1544. &.active {
  1545. pointer-events: auto;
  1546. opacity: 0.3;
  1547. }
  1548. }
  1549. .fa-search {
  1550. transform: translateZ(0) rotate(90deg);
  1551. &.active {
  1552. pointer-events: none;
  1553. transform: translateZ(0) rotate(0deg);
  1554. }
  1555. }
  1556. .fa-times-circle {
  1557. top: 11px;
  1558. transform: translateZ(0) rotate(0deg);
  1559. cursor: pointer;
  1560. &.active {
  1561. transform: translateZ(0) rotate(90deg);
  1562. }
  1563. &:hover {
  1564. color: $color5;
  1565. }
  1566. }
  1567. }
  1568. .search-results__header {
  1569. color: lighten($color1, 26%);
  1570. background: lighten($color1, 2%);
  1571. border-bottom: 1px solid darken($color1, 4%);
  1572. padding: 15px 10px;
  1573. font-size: 14px;
  1574. font-weight: 500;
  1575. }
  1576. .search-results__hashtag {
  1577. display: block;
  1578. padding: 10px;
  1579. color: $color2;
  1580. text-decoration: none;
  1581. &:hover, &:active, &:focus {
  1582. color: lighten($color2, 4%);
  1583. text-decoration: underline;
  1584. }
  1585. }
  1586. .modal-root__overlay {
  1587. position: absolute;
  1588. top: 0;
  1589. left: 0;
  1590. right: 0;
  1591. bottom: 0;
  1592. z-index: 9999;
  1593. opacity: 0;
  1594. background: rgba($color8, 0.7);
  1595. }
  1596. .modal-root__container {
  1597. position: absolute;
  1598. top: 0;
  1599. left: 0;
  1600. width: 100%;
  1601. height: 100%;
  1602. display: flex;
  1603. flex-direction: column;
  1604. align-items: center;
  1605. justify-content: center;
  1606. align-content: space-around;
  1607. z-index: 9999;
  1608. opacity: 0;
  1609. pointer-events: none;
  1610. user-select: none;
  1611. }
  1612. .modal-root__modal {
  1613. pointer-events: auto;
  1614. display: flex;
  1615. }
  1616. .media-modal {
  1617. max-width: 80vw;
  1618. max-height: 80vh;
  1619. position: relative;
  1620. img, video {
  1621. max-width: 80vw;
  1622. max-height: 80vh;
  1623. }
  1624. }