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.

745 lines
12 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
  1. .button {
  2. background-color: darken($color4, 3%);
  3. font-family: inherit;
  4. display: inline-block;
  5. position: relative;
  6. box-sizing: border-box;
  7. text-align: center;
  8. border: 10px none;
  9. color: $color5;
  10. font-size: 14px;
  11. font-weight: 500;
  12. letter-spacing: 0;
  13. text-transform: uppercase;
  14. padding: 0 16px;
  15. height: 36px;
  16. cursor: pointer;
  17. line-height: 36px;
  18. border-radius: 4px;
  19. text-decoration: none;
  20. &:hover {
  21. background-color: lighten($color4, 7%);
  22. }
  23. &:disabled {
  24. background-color: $color3;
  25. cursor: default;
  26. }
  27. &.button-secondary {
  28. background-color: $color1;
  29. &:hover {
  30. background-color: $color1;
  31. }
  32. &:disabled {
  33. background-color: $color3;
  34. }
  35. }
  36. }
  37. .icon-button {
  38. color: lighten($color1, 26%);
  39. border: none;
  40. background: transparent;
  41. cursor: pointer;
  42. &:hover {
  43. color: lighten($color1, 33%);
  44. }
  45. &.disabled {
  46. color: lighten($color1, 13%);
  47. cursor: default;
  48. }
  49. &.active {
  50. color: $color4;
  51. }
  52. }
  53. .invisible {
  54. font-size: 0;
  55. line-height: 0;
  56. display: inline-block;
  57. width: 0;
  58. }
  59. .ellipsis {
  60. &:after {
  61. content: "";
  62. }
  63. }
  64. .lightbox .icon-button {
  65. color: $color1;
  66. }
  67. .compose-form__textarea, .follow-form__input {
  68. background: $color5;
  69. &:disabled {
  70. background: $color2;
  71. }
  72. }
  73. .emojione {
  74. display: inline-block;
  75. font-size: inherit;
  76. vertical-align: middle;
  77. margin: -.2ex .15em .2ex;
  78. width: 16px;
  79. height: 16px;
  80. img {
  81. width: auto;
  82. }
  83. }
  84. .status__content, .reply-indicator__content {
  85. font-size: 15px;
  86. line-height: 20px;
  87. word-wrap: break-word;
  88. font-weight: 400;
  89. overflow: hidden;
  90. white-space: pre-wrap;
  91. .emojione {
  92. width: 18px;
  93. height: 18px;
  94. }
  95. p {
  96. margin-bottom: 20px;
  97. &:last-child {
  98. margin-bottom: 0;
  99. }
  100. }
  101. a {
  102. color: $color2;
  103. text-decoration: none;
  104. &:hover {
  105. text-decoration: underline;
  106. }
  107. &.mention {
  108. &:hover {
  109. text-decoration: none;
  110. span {
  111. text-decoration: underline;
  112. }
  113. }
  114. }
  115. }
  116. .status__content__spoiler-link {
  117. background: lighten($color1, 30%);
  118. &:hover {
  119. background: lighten($color1, 33%);
  120. text-decoration: none;
  121. }
  122. }
  123. }
  124. .detailed-status {
  125. .status__content {
  126. font-size: 19px;
  127. line-height: 24px;
  128. .emojione {
  129. width: 22px;
  130. height: 22px;
  131. }
  132. }
  133. }
  134. .reply-indicator__content {
  135. color: $color1;
  136. font-size: 14px;
  137. a {
  138. color: lighten($color1, 20%);
  139. }
  140. }
  141. .account__header__content {
  142. word-wrap: break-word;
  143. font-weight: 400;
  144. overflow: hidden;
  145. p {
  146. margin-bottom: 20px;
  147. &:last-child {
  148. margin-bottom: 0;
  149. }
  150. }
  151. a {
  152. color: inherit;
  153. text-decoration: underline;
  154. &:hover {
  155. text-decoration: none;
  156. }
  157. }
  158. }
  159. .account__header__display-name {
  160. .emojione {
  161. width: 25px;
  162. height: 25px;
  163. }
  164. }
  165. .status__display-name, .status__relative-time, .detailed-status__display-name, .detailed-status__datetime, .detailed-status__application, .account__display-name {
  166. text-decoration: none;
  167. }
  168. .status__display-name, .account__display-name {
  169. strong {
  170. color: $color5;
  171. }
  172. &.muted {
  173. .emojione {
  174. opacity: 0.5;
  175. }
  176. }
  177. }
  178. .status__display-name, .reply-indicator__display-name, .detailed-status__display-name, .account__display-name {
  179. &:hover {
  180. strong {
  181. text-decoration: underline;
  182. }
  183. }
  184. }
  185. .account__display-name {
  186. strong {
  187. display: block;
  188. }
  189. }
  190. .detailed-status__display-name {
  191. color: $color2;
  192. line-height: 24px;
  193. strong, span {
  194. display: block;
  195. }
  196. strong {
  197. font-size: 16px;
  198. color: $color5;
  199. }
  200. }
  201. .muted {
  202. .status__content p, .status__content a {
  203. color: lighten($color1, 26%);
  204. }
  205. .status__display-name strong {
  206. color: lighten($color1, 26%);
  207. }
  208. .status__avatar {
  209. opacity: 0.5;
  210. }
  211. .status__content__spoiler-link {
  212. background: lighten($color1, 26%);
  213. &:hover {
  214. background: lighten($color1, 29%);
  215. text-decoration: none;
  216. }
  217. }
  218. }
  219. .notification__display-name {
  220. color: inherit;
  221. text-decoration: none;
  222. &:hover {
  223. color: $color5;
  224. text-decoration: underline;
  225. }
  226. }
  227. .status__relative-time, .detailed-status__datetime {
  228. &:hover {
  229. text-decoration: underline;
  230. }
  231. }
  232. .transparent-background, .imageloader {
  233. background: image-url('void.png');
  234. }
  235. .imageloader {
  236. display: block;
  237. }
  238. .dropdown {
  239. display: inline-block;
  240. }
  241. .dropdown__content {
  242. display: none;
  243. position: absolute;
  244. }
  245. .dropdown--active .dropdown__content {
  246. display: block;
  247. z-index: 9999;
  248. &:before {
  249. content: "";
  250. display: block;
  251. position: absolute;
  252. width: 0;
  253. height: 0;
  254. border-style: solid;
  255. border-width: 0 4.5px 7.8px 4.5px;
  256. border-color: transparent transparent $color2 transparent;
  257. top: -7px;
  258. left: 8px;
  259. }
  260. ul {
  261. list-style: none;
  262. background: $color2;
  263. padding: 4px 0;
  264. border-radius: 4px;
  265. box-shadow: 0 0 15px rgba($color8, 0.4);
  266. min-width: 100px;
  267. }
  268. a {
  269. font-size: 13px;
  270. display: block;
  271. padding: 6px 16px;
  272. width: 100px;
  273. text-decoration: none;
  274. background: $color2;
  275. color: $color1;
  276. &:hover {
  277. background: $color4;
  278. color: $color2;
  279. }
  280. }
  281. }
  282. .static-content {
  283. padding: 10px;
  284. padding-top: 20px;
  285. color: lighten($color1, 26%);
  286. h1 {
  287. font-size: 16px;
  288. font-weight: 500;
  289. margin-bottom: 40px;
  290. text-align: center;
  291. }
  292. p {
  293. font-size: 13px;
  294. margin-bottom: 20px;
  295. }
  296. }
  297. .columns-area {
  298. flex-direction: row;
  299. justify-content: flex-start;
  300. }
  301. @media screen and (min-width: 360px) {
  302. .columns-area {
  303. margin: 10px;
  304. }
  305. }
  306. .column {
  307. width: 330px;
  308. position: relative;
  309. }
  310. .drawer {
  311. width: 280px;
  312. }
  313. @media screen and (min-width: 2560px) {
  314. .columns-area {
  315. justify-content: center;
  316. }
  317. .column, .drawer {
  318. width: 350px;
  319. border-radius: 4px;
  320. height: 90vh;
  321. margin-top: 5vh;
  322. }
  323. }
  324. .drawer__inner {
  325. background: linear-gradient(rgba(lighten($color1, 13%), 1), rgba(lighten($color1, 13%), 0.65));
  326. }
  327. .drawer__header {
  328. flex: 0 0 auto;
  329. font-size: 16px;
  330. background: lighten($color1, 8%);
  331. margin-bottom: 10px;
  332. display: flex;
  333. flex-direction: row;
  334. a {
  335. transition: all 100ms ease-in;
  336. &:hover {
  337. background: lighten($color1, 3%);
  338. transition: all 200ms ease-out;
  339. }
  340. }
  341. }
  342. .column, .drawer {
  343. margin-left: 5px;
  344. margin-right: 5px;
  345. flex: 0 0 auto;
  346. overflow: hidden;
  347. }
  348. .column:first-child, .drawer:first-child {
  349. margin-left: 0;
  350. }
  351. .column:last-child, .drawer:last-child {
  352. margin-right: 0;
  353. }
  354. @media screen and (max-width: 1024px) {
  355. .column, .drawer {
  356. width: 100%;
  357. margin: 0;
  358. flex: 1 1 100%;
  359. }
  360. .columns-area {
  361. flex-direction: column;
  362. }
  363. }
  364. .tabs-bar {
  365. display: flex;
  366. }
  367. @media screen and (min-width: 360px) {
  368. .tabs-bar {
  369. margin: 10px;
  370. margin-bottom: 0;
  371. }
  372. }
  373. @media screen and (min-width: 1025px) {
  374. .tabs-bar {
  375. display: none;
  376. }
  377. }
  378. .react-autosuggest__container {
  379. position: relative;
  380. }
  381. .react-autosuggest__suggestions-container {
  382. position: absolute;
  383. top: 100%;
  384. width: 100%;
  385. z-index: 99;
  386. box-shadow: 0 0 15px rgba($color8, 0.4);
  387. }
  388. .react-autosuggest__section-title {
  389. background: $color3;
  390. padding: 4px 10px;
  391. font-weight: 500;
  392. cursor: default;
  393. color: $color1;
  394. text-transform: uppercase;
  395. font-size: 11px;
  396. }
  397. .react-autosuggest__suggestions-list {
  398. background: $color2;
  399. color: $color1;
  400. font-size: 14px;
  401. }
  402. .react-autosuggest__suggestion {
  403. padding: 10px;
  404. cursor: pointer;
  405. }
  406. .react-autosuggest__suggestion--focused {
  407. background: $color4;
  408. color: $color5;
  409. }
  410. .scrollable {
  411. overflow-y: scroll;
  412. overflow-x: hidden;
  413. flex: 1 1 auto;
  414. -webkit-overflow-scrolling: touch;
  415. &.optionally-scrollable {
  416. overflow-y: auto;
  417. }
  418. }
  419. .column-back-button {
  420. &:hover {
  421. text-decoration: underline;
  422. }
  423. }
  424. .react-toggle {
  425. display: inline-block;
  426. position: relative;
  427. cursor: pointer;
  428. background-color: transparent;
  429. border: 0;
  430. padding: 0;
  431. user-select: none;
  432. -webkit-tap-highlight-color: rgba($color8, 0);
  433. -webkit-tap-highlight-color: transparent;
  434. }
  435. .react-toggle-screenreader-only {
  436. border: 0;
  437. clip: rect(0 0 0 0);
  438. height: 1px;
  439. margin: -1px;
  440. overflow: hidden;
  441. padding: 0;
  442. position: absolute;
  443. width: 1px;
  444. }
  445. .react-toggle--disabled {
  446. cursor: not-allowed;
  447. opacity: 0.5;
  448. transition: opacity 0.25s;
  449. }
  450. .react-toggle-track {
  451. width: 50px;
  452. height: 24px;
  453. padding: 0;
  454. border-radius: 30px;
  455. background-color: $color1;
  456. transition: all 0.2s ease;
  457. }
  458. .react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {
  459. background-color: darken($color1, 10%);
  460. }
  461. .react-toggle--checked .react-toggle-track {
  462. background-color: $color4;
  463. }
  464. .react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {
  465. background-color: lighten($color4, 10%);
  466. }
  467. .react-toggle-track-check {
  468. position: absolute;
  469. width: 14px;
  470. height: 10px;
  471. top: 0px;
  472. bottom: 0px;
  473. margin-top: auto;
  474. margin-bottom: auto;
  475. line-height: 0;
  476. left: 8px;
  477. opacity: 0;
  478. transition: opacity 0.25s ease;
  479. }
  480. .react-toggle--checked .react-toggle-track-check {
  481. opacity: 1;
  482. transition: opacity 0.25s ease;
  483. }
  484. .react-toggle-track-x {
  485. position: absolute;
  486. width: 10px;
  487. height: 10px;
  488. top: 0px;
  489. bottom: 0px;
  490. margin-top: auto;
  491. margin-bottom: auto;
  492. line-height: 0;
  493. right: 10px;
  494. opacity: 1;
  495. transition: opacity 0.25s ease;
  496. }
  497. .react-toggle--checked .react-toggle-track-x {
  498. opacity: 0;
  499. }
  500. .react-toggle-thumb {
  501. transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1) 0ms;
  502. position: absolute;
  503. top: 1px;
  504. left: 1px;
  505. width: 22px;
  506. height: 22px;
  507. border: 1px solid $color1;
  508. border-radius: 50%;
  509. background-color: darken($color5, 2%);
  510. box-sizing: border-box;
  511. transition: all 0.25s ease;
  512. }
  513. .react-toggle--checked .react-toggle-thumb {
  514. left: 27px;
  515. border-color: $color4;
  516. }
  517. .column-link {
  518. background: lighten($color1, 6%);
  519. &:hover {
  520. background: lighten($color1, 11%);
  521. }
  522. }
  523. .autosuggest-textarea, .spoiler-input {
  524. position: relative;
  525. }
  526. .autosuggest-textarea__textarea, .spoiler-input__input {
  527. display: block;
  528. box-sizing: border-box;
  529. width: 100%;
  530. resize: none;
  531. margin: 0;
  532. color: $color1;
  533. padding: 7px;
  534. font-family: inherit;
  535. font-size: 14px;
  536. resize: vertical;
  537. border: 3px dashed transparent;
  538. transition: border-color 0.3s ease;
  539. &.file-drop {
  540. border-color: darken($color5, 33%);
  541. }
  542. }
  543. .autosuggest-textarea__textarea {
  544. height: 100px;
  545. }
  546. .autosuggest-textarea__suggestions {
  547. position: absolute;
  548. top: 100%;
  549. width: 100%;
  550. z-index: 99;
  551. box-shadow: 0 0 15px rgba($color8, 0.4);
  552. background: $color2;
  553. color: $color1;
  554. font-size: 14px;
  555. }
  556. .autosuggest-textarea__suggestions__item {
  557. padding: 10px;
  558. cursor: pointer;
  559. &:hover {
  560. background: darken($color2, 10%);
  561. }
  562. &.selected {
  563. background: $color4;
  564. color: $color5;
  565. }
  566. }
  567. .getting-started {
  568. box-sizing: border-box;
  569. overflow-y: auto;
  570. padding-bottom: 235px;
  571. background: image-url('mastodon-getting-started.png') no-repeat 0 100% local;
  572. height: 100%;
  573. p {
  574. color: $color2;
  575. }
  576. }
  577. .dropdown__content.dropdown__left {
  578. transform: translateX(-108px);
  579. &::before {
  580. right: 8px !important;
  581. left: initial !important;
  582. }
  583. }
  584. .setting-text {
  585. color: $color3;
  586. background: transparent;
  587. border: none;
  588. border-bottom: 2px solid $color3;
  589. &:focus, &:active {
  590. color: $color5;
  591. border-bottom-color: $color4;
  592. }
  593. }
  594. @import 'boost';
  595. button i.fa-retweet {
  596. height: 19px;
  597. width: 22px;
  598. background-position: 0 0;
  599. transition: background-position 0.9s steps(10);
  600. transition-duration: 0s;
  601. &::before {
  602. display: none !important;
  603. }
  604. }
  605. button.active i.fa-retweet {
  606. transition-duration: 0.9s;
  607. background-position: 0 100%;
  608. }
  609. .status-card {
  610. &:hover {
  611. background: lighten($color1, 6%);
  612. }
  613. }
  614. .load-more {
  615. &:hover {
  616. background: lighten($color1, 6%);
  617. }
  618. }