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.

805 lines
14 KiB

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