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.

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