/* REBLOG + REPLY-TO */ .status-reblog { background: linear-gradient( to bottom right, var(--reblog-faded-color), transparent 160px ); } .status-reply-to { background: linear-gradient( to bottom right, var(--reply-to-faded-color), transparent 160px ); } .status-reblog .status-reply-to { background: linear-gradient( to top left, var(--reply-to-faded-color), transparent 160px ); } .visibility-direct { --yellow-stripes: repeating-linear-gradient( -45deg, var(--reply-to-faded-color), var(--reply-to-faded-color) 10px, var(--reply-to-faded-color) 10px, transparent 10px, transparent 20px ); /* diagonal stripes of yellow */ background-image: var(--yellow-stripes); } /* STATUS PRE META */ .status-pre-meta { line-height: 1.5; padding: 8px 16px 0; opacity: 0.75; font-size: smaller; vertical-align: middle; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } .status-pre-meta .name-text { display: inline; } .status-pre-meta .icon { color: var(--reblog-color); vertical-align: middle; margin-right: 4px; } /* STATUS */ .status { display: flex; padding: 16px 16px 20px; line-height: 1.5; align-items: flex-start; position: relative; } .status.large { --fade-in-out-bg: linear-gradient( to bottom, transparent, var(--bg-color) 70px, var(--bg-color) calc(100% - 50px), transparent ); padding-bottom: 8px; background-image: var(--fade-in-out-bg); } .status.large.visibility-direct { background-image: var(--fade-in-out-bg), var(--yellow-stripes); } .status-pre-meta + .status { padding-top: 8px; } .status.small { /* font-size: 95%; */ } .status.skeleton { color: var(--outline-color); } .status.skeleton > .avatar { background-color: var(--outline-color); } .status .container { flex-grow: 1; min-width: 0; } .status:not(.small) .container { padding-left: 16px; } .status > .container > .meta { display: flex; gap: 8px; justify-content: space-between; white-space: nowrap; } .status > .container > .meta > * { min-width: 0; overflow: hidden; text-overflow: ellipsis; } .status.large > .container > .meta { min-height: 50px; } .status > .container > .meta .arrow { color: var(--reply-to-color); vertical-align: middle; } .status > .container > .meta :is(.time, .edited) { color: inherit; text-align: end; opacity: 0.5; text-decoration: none; flex-shrink: 0; margin-left: 4px; white-space: nowrap; } .status > .container > .meta a.time:hover { text-decoration: underline; } .status > .container > .meta .reply-to { opacity: 0.5; font-size: smaller; } .status-reply-badge { display: inline-flex; margin-left: 4px; gap: 4px; align-items: center; } .status-reply-badge .icon { color: var(--reply-to-color); } .status-thread-badge { display: inline-flex; margin: 8px 0 0 0; gap: 4px; align-items: center; color: var(--reply-to-color); background: var(--bg-color); border: 1px solid var(--reply-to-color); border-radius: 4px; padding: 4px; font-size: 10px; line-height: 1; text-transform: uppercase; opacity: 0.75; background-image: repeating-linear-gradient( -70deg, transparent, transparent 3px, var(--reply-to-faded-color) 3px, var(--reply-to-faded-color) 4px ); font-weight: bold; } .status.large .content-container { margin-left: calc(-50px - 16px); padding-top: 10px; padding-bottom: 10px; } .status .content-container.has-spoiler .spoiler { margin: 8px 0; font-size: 90%; border: 1px dashed var(--button-bg-color); display: flex; gap: 8px; align-items: center; } .status .content-container.has-spoiler .spoiler ~ * { filter: blur(6px) invert(0.5); pointer-events: none; transition: filter 0.5s; user-select: none; } .status .content-container.has-spoiler .spoiler ~ .content ~ * { opacity: 0.5; } .status .content-container.show-spoiler .spoiler { border-style: dotted; } .status .content-container.show-spoiler .spoiler ~ * { filter: none; pointer-events: auto; user-select: auto; } .status .content-container.has-spoiler .spoiler ~ .content ~ * { opacity: 1; } .status .content { margin-top: 8px; } .timeline-deck .status .content { max-height: 50vh; max-height: 50dvh; overflow: hidden; position: relative; } .timeline-deck .status .content.truncated { mask-image: linear-gradient( to top, transparent, rgba(0, 0, 0, 0.5) 1em, black 1.5em ); } .timeline-deck .status .content.truncated:after { content: attr(data-read-more); line-height: 1; display: inline-block; position: absolute; inset-block-end: 1.5em; left: 50%; transform: translateX(-50%); color: var(--text-color); background-color: var(--bg-faded-color); border: 1px dashed var(--link-color); padding: 0.75em 1em; border-radius: 10em; font-size: 90%; white-space: nowrap; box-shadow: 0 0 0 1px var(--bg-color), 0 -5px 10px var(--bg-color), 0 -5px 15px var(--bg-color), 0 -5px 20px var(--bg-color); transition: transform 0.5s ease-in-out; } .timeline-deck .status .content.truncated:hover:after { color: var(--link-color); transform: translateX(-50%) translateY(-2px) scale(1.01); } .status .content p { margin-block: 0.75em; } .status .content p:first-child { margin-block-start: 0; } .status .content p:last-child { margin-block-end: 0; } .status .content .invisible { display: none; } .status .content .ellipsis::after { content: '…'; } .status.large .content { font-size: 150%; font-size: calc(100% + 50% / var(--content-text-weight)); } .status.large .poll, .status.large .actions { font-size: 125%; font-size: calc(100% + 25% / var(--content-text-weight)); } /* MEDIA */ .status .media-container { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 2px; flex-direction: row; } .status .media { flex-grow: 1; flex-basis: calc(50% - 8px); border-radius: 8px; overflow: hidden; max-height: 160px; min-height: 80px; border: 1px solid var(--outline-color); } .status .media:hover { border-color: var(--outline-hover-color); } .status .media.block { flex-basis: 100%; max-height: auto; } .status .media :is(img, video) { width: 100%; height: 100%; object-fit: cover; cursor: pointer; } @keyframes position-object { 0% { object-position: 50% 50%; } 25% { object-position: 0% 0%; } 75% { object-position: 100% 100%; } 100% { object-position: 50% 50%; } } .status .media img:hover { animation: position-object 5s ease-in-out 1s infinite; } .status .media video { width: 100%; height: 100%; object-fit: contain; } .status .media-video { position: relative; background-clip: padding-box; } .status .media-video:before { /* draw a circle in the middle */ content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 70px; height: 70px; border-radius: 50%; background-color: var(--bg-blur-color); backdrop-filter: blur(6px) saturate(3) invert(0.2); z-index: 1; } .status .media-video:after { /* show play icon */ content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-35%, -50%); width: 0; height: 0; border-style: solid; border-width: 15px 0 15px 26px; border-color: transparent transparent transparent var(--text-insignificant-color); pointer-events: none; opacity: 0.75; z-index: 2; } .status .media-video:hover:after { opacity: 1; } .status .media-gif video { object-fit: cover; } .status .media-audio { border: 0; min-height: 0; } .status .media-audio audio { width: 100%; } /* CARD */ .card { display: flex; margin-top: 8px; border-radius: 8px; border: 1px solid var(--outline-color); overflow: hidden; color: inherit; align-items: center; background: var(--bg-color); } .card .image { /* min-width: 120px; */ width: 50%; max-width: 160px; height: auto; min-height: 120px; max-height: 160px; object-fit: cover; border-inline-end: 1px solid var(--outline-color); } .card:hover .image { animation: position-object 5s ease-in-out 1s infinite; } .card p { margin: 0; } .card .meta-container { padding: 8px; min-width: 0; } .card .title { line-height: 1.25; font-weight: normal; text-overflow: ellipsis; overflow: hidden; display: -webkit-box; display: box; -webkit-box-orient: vertical; box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; } .card .meta { font-size: smaller; opacity: 0.75; margin: 0; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; display: block; } .card .meta.domain { opacity: 1; color: var(--link-color); white-space: nowrap; text-overflow: ellipsis; overflow: hidden; display: block; } a.card { text-decoration: none; transition: opacity 0.2s ease-in-out; } a.card:hover { border: 1px solid var(--outline-hover-color); } .card.video { max-width: 320px; max-height: 320px; } .card.video iframe { width: 100%; height: 100%; } /* POLLS */ .poll { transition: opacity 0.2s ease-in-out; } .poll.loading { opacity: 0.5; pointer-events: none; } .poll.read-only { pointer-events: none; } .poll-option { margin-top: 8px; padding: 8px; display: flex; gap: 8px; justify-content: space-between; background-color: var(--bg-blur-color); background-image: linear-gradient( to right, var(--link-faded-color), var(--link-faded-color) var(--percentage), transparent var(--percentage), transparent ); border-radius: 8px; border: 1px solid rgba(128, 128, 128, 0.1); align-items: center; } .poll-label { width: 100%; display: flex; gap: 8px; cursor: pointer; } .poll-option-votes { flex-shrink: 0; font-size: 90%; } .poll-option-leading .poll-option-votes { font-weight: bold; } .poll-vote-button { margin-top: 8px; } .poll-meta { margin: 8px 0; font-size: 90%; } .poll-option-title .icon { vertical-align: middle; } /* EXTRA META */ .status .extra-meta { padding-top: 8px; color: var(--text-insignificant-color); font-size: 90%; } .status .extra-meta * { vertical-align: middle; } .status .extra-meta a { color: inherit; text-decoration: none; } .status .extra-meta a:hover { text-decoration: underline; } .status .extra-meta .edited:hover { cursor: pointer; color: var(--text-color); } .status.large .extra-meta { padding-top: 0; margin-left: calc(-50px - 16px); } /* ACTIONS */ .status .actions { display: flex; gap: 8px; } .status.large .actions { padding-top: 4px; padding-bottom: 16px; margin-left: calc(-50px - 16px); color: var(--text-insignificant-color); border-top: 1px solid var(--outline-color); margin-top: 8px; } .status .action.has-count { flex: 1; } .status .action > button { min-height: 40px; min-width: 40px; padding: 0 8px; font-variant-numeric: tabular-nums; } .status .action > button.plain { color: inherit; border: 1.5px solid transparent; } .status .action > button.plain:hover { color: var(--link-color); background-color: var(--button-plain-bg-hover-color); } .status .action > button.plain.reblog-button:hover { color: var(--reblog-color); } .status .action > button.plain.reblog-button.checked { color: var(--reblog-color); border-color: var(--reblog-color); } @keyframes reblogged { 5% { transform: translate(-2px, -2px); } 10% { transform: translate(2px, 2px); } 15% { transform: translate(0, 0); } 100% { transform: translate(30px, -30px); opacity: 0; } } .status .action > button.plain.reblog-button.checked .icon { animation: reblogged 1s ease-in-out; } .status .action > button.plain.favourite-button:hover { color: var(--favourite-color); } .status .action > button.plain.favourite-button.checked { color: var(--favourite-color); border-color: var(--favourite-color); } @keyframes hearted { 20% { transform: rotate(10deg) scale(1); } 40% { transform: rotate(-10deg) scale(1.25); } 60% { transform: rotate(10deg) scale(1.75); } 80% { transform: rotate(-10deg) scale(2); } 100% { transform: rotate(10deg) scale(2.25); opacity: 0; } } .status .action > button.plain.favourite-button.checked .icon { transform-origin: bottom center; animation: hearted 1s ease-in-out; } .status .action > button.plain.bookmark-button.checked { color: var(--link-color); border-color: var(--link-color); } @keyframes bookmarked { 25% { transform: translateY(-10px) rotate(10deg); opacity: 0.5; } 50% { transform: translateY(0); opacity: 1; } 75% { transform: translateY(-15px) rotate(-10deg); opacity: 0.5; } 100% { transform: translateY(0); opacity: 1; } } .status .actions > button.plain.bookmark-button.checked .icon { animation: bookmarked 1s ease-in-out; } /* ENHANCED CONTENT */ .status .content pre { border-radius: 8px; padding: 8px; margin: 8px 0; overflow: auto; width: 100%; border: 1px solid var(--outline-color); background: linear-gradient( to bottom right, var(--bg-faded-color), transparent 160px ); } .status .content p code { color: var(--green-color); } /* BADGE */ .status-badge { position: absolute; top: 4px; right: 4px; line-height: 0; pointer-events: none; opacity: 0.75; } .status-badge .favourite { color: var(--favourite-color); } .status-badge .reblog { color: var(--reblog-color); } .status-badge .bookmark { color: var(--link-color); } /* MISC */ .status-aside { padding: 0 16px 16px 80px; color: var(--text-insignificant-color); } .shortcode-emoji { width: 1.2em; height: 1.2em; vertical-align: middle; object-fit: contain; } /* EDIT HISTORY */ #edit-history { min-height: 50vh; min-height: 50dvh; } #edit-history :is(ol, ol li) { list-style: none; margin: 0; padding: 0; } #edit-history .history-item .status { border: 1px solid var(--outline-color); border-radius: 8px; }