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.

800 lines
14 KiB

  1. .status__content--with-action {
  2. cursor: pointer;
  3. }
  4. .status__content {
  5. position: relative;
  6. margin: 10px 0;
  7. padding: 0 12px;
  8. font-size: 15px;
  9. line-height: 20px;
  10. word-wrap: break-word;
  11. font-weight: 400;
  12. overflow: visible;
  13. padding-top: 5px;
  14. &:focus {
  15. outline: 0;
  16. }
  17. .emojione {
  18. width: 20px;
  19. height: 20px;
  20. margin: -3px 0 0;
  21. }
  22. p {
  23. margin-bottom: 20px;
  24. white-space: pre-wrap;
  25. &:last-child {
  26. margin-bottom: 0;
  27. }
  28. }
  29. a {
  30. color: $secondary-text-color;
  31. text-decoration: none;
  32. &:hover {
  33. text-decoration: underline;
  34. .fa {
  35. color: lighten($dark-text-color, 7%);
  36. }
  37. }
  38. &.mention {
  39. &:hover {
  40. text-decoration: none;
  41. span {
  42. text-decoration: underline;
  43. }
  44. }
  45. }
  46. .fa {
  47. color: $dark-text-color;
  48. }
  49. }
  50. .status__content__spoiler {
  51. display: none;
  52. &.status__content__spoiler--visible {
  53. display: block;
  54. }
  55. }
  56. .status__content__spoiler-link {
  57. background: lighten($ui-base-color, 30%);
  58. &:hover {
  59. background: lighten($ui-base-color, 33%);
  60. text-decoration: none;
  61. }
  62. }
  63. }
  64. .status__content__spoiler-link {
  65. display: inline-block;
  66. border-radius: 2px;
  67. background: lighten($ui-base-color, 30%);
  68. border: none;
  69. color: $inverted-text-color;
  70. font-weight: 500;
  71. font-size: 11px;
  72. padding: 0 5px;
  73. text-transform: uppercase;
  74. line-height: inherit;
  75. cursor: pointer;
  76. vertical-align: bottom;
  77. &:hover {
  78. background: lighten($ui-base-color, 33%);
  79. text-decoration: none;
  80. }
  81. .status__content__spoiler-icon {
  82. display: inline-block;
  83. margin: 0 0 0 5px;
  84. border-left: 1px solid currentColor;
  85. padding: 0 0 0 4px;
  86. font-size: 16px;
  87. vertical-align: -2px;
  88. }
  89. }
  90. .notif-cleaning {
  91. .status, .notification-follow {
  92. padding-right: ($dismiss-overlay-width + 0.5rem);
  93. }
  94. }
  95. .status__prepend-icon-wrapper {
  96. float: left;
  97. margin: 0 10px 0 -58px;
  98. width: 48px;
  99. text-align: right;
  100. }
  101. .notification-follow {
  102. position: relative;
  103. // same like Status
  104. border-bottom: 1px solid lighten($ui-base-color, 8%);
  105. .account {
  106. border-bottom: 0 none;
  107. }
  108. }
  109. .focusable {
  110. &:focus {
  111. outline: 0;
  112. background: lighten($ui-base-color, 4%);
  113. .status.status-direct {
  114. background: lighten($ui-base-color, 12%);
  115. &.muted {
  116. background: transparent;
  117. }
  118. }
  119. .detailed-status,
  120. .detailed-status__action-bar {
  121. background: lighten($ui-base-color, 8%);
  122. }
  123. }
  124. }
  125. .status {
  126. padding: 8px 10px;
  127. position: relative;
  128. height: auto;
  129. border-bottom: 1px solid lighten($ui-base-color, 8%);
  130. cursor: default;
  131. @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {
  132. // Add margin to avoid Edge auto-hiding scrollbar appearing over content.
  133. // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.
  134. padding-right: 26px; // 10px + 16px
  135. }
  136. @keyframes fade {
  137. 0% { opacity: 0; }
  138. 100% { opacity: 1; }
  139. }
  140. opacity: 1;
  141. animation: fade 150ms linear;
  142. .video-player {
  143. margin-top: 8px;
  144. }
  145. &.status-direct {
  146. background: lighten($ui-base-color, 8%);
  147. }
  148. &.light {
  149. .status__relative-time {
  150. color: $lighter-text-color;
  151. }
  152. .status__display-name {
  153. color: $inverted-text-color;
  154. }
  155. .display-name {
  156. strong {
  157. color: $inverted-text-color;
  158. }
  159. span {
  160. color: $lighter-text-color;
  161. }
  162. }
  163. .status__content {
  164. color: $inverted-text-color;
  165. a {
  166. color: $highlight-text-color;
  167. }
  168. a.status__content__spoiler-link {
  169. color: $primary-text-color;
  170. background: $ui-primary-color;
  171. &:hover {
  172. background: lighten($ui-primary-color, 8%);
  173. }
  174. }
  175. }
  176. }
  177. &.collapsed {
  178. background-position: center;
  179. background-size: cover;
  180. user-select: none;
  181. &.has-background::before {
  182. display: block;
  183. position: absolute;
  184. left: 0;
  185. right: 0;
  186. top: 0;
  187. bottom: 0;
  188. background-image: linear-gradient(to bottom, rgba($base-shadow-color, .75), rgba($base-shadow-color, .65) 24px, rgba($base-shadow-color, .8));
  189. content: "";
  190. }
  191. .display-name:hover .display-name__html {
  192. text-decoration: none;
  193. }
  194. .status__content {
  195. height: 20px;
  196. overflow: hidden;
  197. text-overflow: ellipsis;
  198. padding-top: 0;
  199. &:after {
  200. content: "";
  201. position: absolute;
  202. top: 0; bottom: 0;
  203. left: 0; right: 0;
  204. background: linear-gradient(rgba($ui-base-color, 0), rgba($ui-base-color, 1));
  205. pointer-events: none;
  206. }
  207. a:hover {
  208. text-decoration: none;
  209. }
  210. }
  211. &:focus > .status__content:after {
  212. background: linear-gradient(rgba(lighten($ui-base-color, 4%), 0), rgba(lighten($ui-base-color, 4%), 1));
  213. }
  214. &.status-direct> .status__content:after {
  215. background: linear-gradient(rgba(lighten($ui-base-color, 8%), 0), rgba(lighten($ui-base-color, 8%), 1));
  216. }
  217. .notification__message {
  218. margin-bottom: 0;
  219. }
  220. .status__info .notification__message > span {
  221. white-space: nowrap;
  222. }
  223. }
  224. .notification__message {
  225. margin: -10px 0px 10px 0;
  226. }
  227. }
  228. .notification-favourite {
  229. .status.status-direct {
  230. background: transparent;
  231. .icon-button.disabled {
  232. color: lighten($action-button-color, 13%);
  233. }
  234. }
  235. }
  236. .status__relative-time {
  237. display: inline-block;
  238. margin-left: auto;
  239. padding-left: 18px;
  240. width: 120px;
  241. color: $dark-text-color;
  242. font-size: 14px;
  243. text-align: right;
  244. white-space: nowrap;
  245. overflow: hidden;
  246. text-overflow: ellipsis;
  247. }
  248. .status__display-name {
  249. margin: 0 auto 0 0;
  250. color: $dark-text-color;
  251. overflow: hidden;
  252. }
  253. .status__info__account .status__display-name {
  254. display: block;
  255. max-width: 100%;
  256. }
  257. .status__info {
  258. display: flex;
  259. font-size: 15px;
  260. > span {
  261. text-overflow: ellipsis;
  262. overflow: hidden;
  263. }
  264. .notification__message > span {
  265. word-wrap: break-word;
  266. }
  267. }
  268. .status__info__icons {
  269. margin-left: auto;
  270. display: flex;
  271. align-items: center;
  272. height: 1em;
  273. color: $action-button-color;
  274. .status__visibility-icon {
  275. padding-left: 6px;
  276. }
  277. }
  278. .status__info__account {
  279. display: flex;
  280. }
  281. .status-check-box {
  282. border-bottom: 1px solid $ui-secondary-color;
  283. display: flex;
  284. .status-check-box__status {
  285. margin: 10px 0 10px 10px;
  286. flex: 1;
  287. .media-gallery {
  288. max-width: 250px;
  289. }
  290. .status__content {
  291. padding: 0;
  292. white-space: normal;
  293. }
  294. .video-player {
  295. margin-top: 8px;
  296. max-width: 250px;
  297. }
  298. .media-gallery__item-thumbnail {
  299. cursor: default;
  300. }
  301. }
  302. }
  303. .status-check-box-toggle {
  304. align-items: center;
  305. display: flex;
  306. flex: 0 0 auto;
  307. justify-content: center;
  308. padding: 10px;
  309. }
  310. .status__prepend {
  311. margin: -10px -10px 10px;
  312. color: $dark-text-color;
  313. padding: 8px 10px 0 68px;
  314. font-size: 14px;
  315. position: relative;
  316. .status__display-name strong {
  317. color: $dark-text-color;
  318. }
  319. > span {
  320. display: block;
  321. overflow: hidden;
  322. text-overflow: ellipsis;
  323. }
  324. }
  325. .status__action-bar {
  326. align-items: center;
  327. display: flex;
  328. margin-top: 8px;
  329. }
  330. .status__action-bar-button {
  331. float: left;
  332. margin-right: 18px;
  333. }
  334. .status__action-bar-dropdown {
  335. float: left;
  336. height: 23.15px;
  337. width: 23.15px;
  338. }
  339. .detailed-status__action-bar-dropdown {
  340. flex: 1 1 auto;
  341. display: flex;
  342. align-items: center;
  343. justify-content: center;
  344. position: relative;
  345. }
  346. .detailed-status {
  347. background: lighten($ui-base-color, 4%);
  348. padding: 14px 10px;
  349. .status__content {
  350. font-size: 19px;
  351. line-height: 24px;
  352. .emojione {
  353. width: 24px;
  354. height: 24px;
  355. margin: -1px 0 0;
  356. }
  357. }
  358. .video-player {
  359. margin-top: 8px;
  360. }
  361. }
  362. .detailed-status__meta {
  363. margin-top: 15px;
  364. color: $dark-text-color;
  365. font-size: 14px;
  366. line-height: 18px;
  367. }
  368. .detailed-status__action-bar {
  369. background: lighten($ui-base-color, 4%);
  370. border-top: 1px solid lighten($ui-base-color, 8%);
  371. border-bottom: 1px solid lighten($ui-base-color, 8%);
  372. display: flex;
  373. flex-direction: row;
  374. padding: 10px 0;
  375. }
  376. .detailed-status__link {
  377. color: inherit;
  378. text-decoration: none;
  379. }
  380. .detailed-status__favorites,
  381. .detailed-status__reblogs {
  382. display: inline-block;
  383. font-weight: 500;
  384. font-size: 12px;
  385. margin-left: 6px;
  386. }
  387. .status__display-name,
  388. .status__relative-time,
  389. .detailed-status__display-name,
  390. .detailed-status__datetime,
  391. .detailed-status__application,
  392. .account__display-name {
  393. text-decoration: none;
  394. }
  395. .status__display-name,
  396. .account__display-name {
  397. strong {
  398. color: $primary-text-color;
  399. }
  400. }
  401. .muted {
  402. .emojione {
  403. opacity: 0.5;
  404. }
  405. }
  406. .status__display-name,
  407. .reply-indicator__display-name,
  408. .detailed-status__display-name,
  409. .account__display-name {
  410. &:hover strong {
  411. text-decoration: underline;
  412. }
  413. }
  414. .account__display-name strong {
  415. display: block;
  416. overflow: hidden;
  417. text-overflow: ellipsis;
  418. }
  419. .detailed-status__application,
  420. .detailed-status__datetime {
  421. color: inherit;
  422. }
  423. .detailed-status__display-name {
  424. color: $secondary-text-color;
  425. display: block;
  426. line-height: 24px;
  427. margin-bottom: 15px;
  428. overflow: hidden;
  429. strong,
  430. span {
  431. display: block;
  432. text-overflow: ellipsis;
  433. overflow: hidden;
  434. }
  435. strong {
  436. font-size: 16px;
  437. color: $primary-text-color;
  438. }
  439. }
  440. .detailed-status__display-avatar {
  441. float: left;
  442. margin-right: 10px;
  443. }
  444. .status__avatar {
  445. flex: none;
  446. margin: 0 10px 0 0;
  447. height: 48px;
  448. width: 48px;
  449. }
  450. .muted {
  451. .status__content p,
  452. .status__content a {
  453. color: $dark-text-color;
  454. }
  455. .status__display-name strong {
  456. color: $dark-text-color;
  457. }
  458. .status__avatar {
  459. opacity: 0.5;
  460. }
  461. a.status__content__spoiler-link {
  462. background: $ui-base-lighter-color;
  463. color: $inverted-text-color;
  464. &:hover {
  465. background: lighten($ui-base-color, 29%);
  466. text-decoration: none;
  467. }
  468. }
  469. }
  470. .status__relative-time,
  471. .detailed-status__datetime {
  472. &:hover {
  473. text-decoration: underline;
  474. }
  475. }
  476. .status-card {
  477. display: flex;
  478. cursor: pointer;
  479. font-size: 14px;
  480. border: 1px solid lighten($ui-base-color, 8%);
  481. border-radius: 4px;
  482. color: $dark-text-color;
  483. margin-top: 14px;
  484. text-decoration: none;
  485. overflow: hidden;
  486. &:hover {
  487. background: lighten($ui-base-color, 8%);
  488. }
  489. }
  490. .status-card-video,
  491. .status-card-rich,
  492. .status-card-photo {
  493. margin-top: 14px;
  494. overflow: hidden;
  495. iframe {
  496. width: 100%;
  497. height: auto;
  498. }
  499. }
  500. .status-card-photo {
  501. cursor: zoom-in;
  502. display: block;
  503. text-decoration: none;
  504. width: 100%;
  505. height: auto;
  506. margin: 0;
  507. }
  508. .status-card-video {
  509. iframe {
  510. width: 100%;
  511. height: 100%;
  512. }
  513. }
  514. .status-card__title {
  515. display: block;
  516. font-weight: 500;
  517. margin-bottom: 5px;
  518. color: $darker-text-color;
  519. overflow: hidden;
  520. text-overflow: ellipsis;
  521. white-space: nowrap;
  522. }
  523. .status-card__content {
  524. flex: 1 1 auto;
  525. overflow: hidden;
  526. padding: 14px 14px 14px 8px;
  527. }
  528. .status-card__description {
  529. color: $darker-text-color;
  530. }
  531. .status-card__host {
  532. display: block;
  533. margin-top: 5px;
  534. font-size: 13px;
  535. }
  536. .status-card__image {
  537. flex: 0 0 100px;
  538. background: lighten($ui-base-color, 8%);
  539. }
  540. .status-card.horizontal {
  541. display: block;
  542. .status-card__image {
  543. width: 100%;
  544. }
  545. .status-card__image-image {
  546. border-radius: 4px 4px 0 0;
  547. }
  548. .status-card__title {
  549. white-space: inherit;
  550. }
  551. }
  552. .status-card__image-image {
  553. border-radius: 4px 0 0 4px;
  554. display: block;
  555. margin: 0;
  556. width: 100%;
  557. height: 100%;
  558. object-fit: cover;
  559. }
  560. .status__video-player {
  561. display: flex;
  562. align-items: center;
  563. background: $base-shadow-color;
  564. box-sizing: border-box;
  565. cursor: default; /* May not be needed */
  566. margin-top: 8px;
  567. overflow: hidden;
  568. position: relative;
  569. @include fullwidth-gallery;
  570. }
  571. .status__video-player-video {
  572. height: 100%;
  573. object-fit: cover;
  574. position: relative;
  575. top: 50%;
  576. transform: translateY(-50%);
  577. width: 100%;
  578. z-index: 1;
  579. &:not(.letterbox) {
  580. height: 100%;
  581. object-fit: cover;
  582. }
  583. }
  584. .status__video-player-expand,
  585. .status__video-player-mute {
  586. color: $primary-text-color;
  587. opacity: 0.8;
  588. position: absolute;
  589. right: 4px;
  590. text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
  591. }
  592. .status__video-player-spoiler {
  593. display: none;
  594. color: $primary-text-color;
  595. left: 4px;
  596. position: absolute;
  597. text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
  598. top: 4px;
  599. z-index: 100;
  600. &.status__video-player-spoiler--visible {
  601. display: block;
  602. }
  603. }
  604. .status__video-player-expand {
  605. bottom: 4px;
  606. z-index: 100;
  607. }
  608. .status__video-player-mute {
  609. top: 4px;
  610. z-index: 5;
  611. }
  612. .attachment-list {
  613. display: flex;
  614. font-size: 14px;
  615. border: 1px solid lighten($ui-base-color, 8%);
  616. border-radius: 4px;
  617. margin-top: 14px;
  618. overflow: hidden;
  619. &__icon {
  620. flex: 0 0 auto;
  621. color: $dark-text-color;
  622. padding: 8px 18px;
  623. cursor: default;
  624. border-right: 1px solid lighten($ui-base-color, 8%);
  625. display: flex;
  626. flex-direction: column;
  627. align-items: center;
  628. justify-content: center;
  629. font-size: 26px;
  630. .fa {
  631. display: block;
  632. }
  633. }
  634. &__list {
  635. list-style: none;
  636. padding: 4px 0;
  637. padding-left: 8px;
  638. display: flex;
  639. flex-direction: column;
  640. justify-content: center;
  641. li {
  642. display: block;
  643. padding: 4px 0;
  644. }
  645. a {
  646. text-decoration: none;
  647. color: $dark-text-color;
  648. font-weight: 500;
  649. &:hover {
  650. text-decoration: underline;
  651. }
  652. }
  653. }
  654. &.compact {
  655. border: 0;
  656. margin-top: 4px;
  657. .attachment-list__list {
  658. padding: 0;
  659. display: block;
  660. }
  661. .fa {
  662. color: $dark-text-color;
  663. }
  664. }
  665. }