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.

705 lines
11 KiB

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