Files
Mastodon-Modern/modern.user.css

2822 lines
56 KiB
CSS
Raw Permalink Normal View History

2023-01-13 12:26:41 -05:00
2024-07-17 18:09:42 -04:00
// 🦊 BEFORE CLICKING INSTALL:
// ---------------------------
// Add your home instance to the "Custom included sites"
// textbox in the left panel following this format:
// *://domain.tld/*
2025-12-07 12:25:11 -05:00
/* Update 2.1.5 (v4.6.0-nightly.2025-12-04)
- Fixes glitch-soc styling
2023-01-13 12:26:41 -05:00
*/
/* ==UserStyle==
@name MastoModern
2025-12-07 12:25:11 -05:00
@version 2.1.5
@description Improves the look & feel of Mastodon
@updateURL https://git.gay/Freeplay/Mastodon-Modern/raw/branch/main/modern.user.css
@homepageURL https://git.gay/Freeplay/Mastodon-Modern
@supportURL https://git.gay/Freeplay/Mastodon-Modern/issues
@preprocessor stylus
@var range tlWidth "Timeline Width" [720, 600, 860, 20, "px"]
@var checkbox sideHeader "Move header to sidebar" 1
@var checkbox navOnLeft "Move navigation sidebar to the left" 0
@var checkbox spaceBetween "Move sidebars to edges" 0
2024-07-17 18:09:42 -04:00
@var checkbox largerEmoji "Larger custom emoji" 1
@var checkbox emojiZoom "Zoom custom emoji on hover (follows prefers-reduced-motion)" 1
@var checkbox collapseHidden "Collapse hidden media" 1
@var checkbox hideClickArea "Increase click area for hide media button" 1
@var checkbox flatterUI "Flatter UI" 0
@var range borderRadius "Border radius" [12, 0, 24, 4, "px"]
@var range radiusRound "Border radius round" [24, 0, 24, 4, "px"]
@var range avatarRadius "Avatar radius" [30, 0, 50, 10, "%"]
@var color warn "Some options may not apply depending on the server's style defaults and how the option was implemented" #ff6b00
@namespace Freeplay
@author Freeplay (https://freeplay.floof.company/)
2023-01-13 12:26:41 -05:00
==/UserStyle== */
@-moz-document domain("mastodon.social"), domain("mastodon.online"), domain("mstdn.social"), domain("tech.lgbt"), domain("meow.social"), domain("corteximplant.com"), domain("bark.lgbt"), domain("yiff.life"), domain("furry.engineer"), domain("aus.social"), domain("infosec.exchange"), domain("ohai.social"), domain("eldritch.cafe"), domain("octodon.social"), domain("donphan.social"), domain("peoplemaking.games"), domain("toot.cat"), domain("vt.social") {
/ {
responsiveW1 = 1320px
responsiveW2 = 1175px
mobileW = 760px
2023-01-13 12:26:41 -05:00
transBounce1 = .2s cubic-bezier(0,0,0,1.1)
2023-01-13 12:26:41 -05:00
statuses-list = ".focusable, .entry, .statuses-grid__item .detailed-status, .trends__item, .story, .scrollable :not(.focusable) > .account:not(.account--minimal), .timeline-hint, .notification-request"
media = ".media-gallery, .video-player, .status-card.horizontal.interactive, .status-card, .audio-player, .picture-in-picture-placeholder"
2023-01-13 12:26:41 -05:00
:root {
--tl-width tlWidth
if tlWidth == 860 {
--tl-width 100%
}
if !largerEmoji {
--emoji-size 1.2em
}
if largerEmoji {
--emoji-size 2em
}
--avatar-size 46px
--radius borderRadius
--radius-round radiusRound
--panel-radius var(--radius)
--hover-color rgba(170,170,170, 0.07)
--elevated-color rgba(150,150,200,0.1)
--elevated-tint var(--color-bg-secondary)
--border-color rgba(120,120,200, 0.2)
--border-color-2 rgba(120,120,120, 1)
--shadow 0 10px 40px -10px rgba(0,0,0,0.15)
--shadow-low 0 8px 24px -16px rgba(0,0,0,0.2)
--shadow-med 0 8px 60px -30px rgba(0,0,0,0.1)
--column-shadow 0 8px 24px 12px rgba(0,0,0,0.02)
--background-border-color var(--border-color)
if flatterUI {
--column-shadow 0
--elevated-tint 0
}
// --accent // not applied everywhere, just for if you have custom color scheme and want to match it
}
desktop() {
@media (min-width mobileW) {
.layout-single-column {
{block}
}
}
}
@media (max-width mobileW - 1) {
:root {
--panel-radius 0px
}
}
.layout-multiple-columns {
--panel-radius 0px
}
//// BODY
body {
font-display swap !important
if !flatterUI {
&.app-body::before {
content ""
position fixed
inset 0
background rgba(0,0,0,0.09)
pointer-events none
}
2023-01-13 12:26:41 -05:00
}
}
//// GLOBAL
/ {
p {
line-height 1.5
}
input {
text-align start
}
.button--block {
font-weight bold
}
.unhandled-link, .mention {
span {
text-decoration none !important
}
&:not(:focus):not(:hover) {
span {
text-decoration underline !important
}
}
2023-01-13 12:26:41 -05:00
}
input, .input-copy, select, textarea,
.compose-form__upload-thumbnail, .button,
:not(.notification__filter-bar) > button:not(.column-header__button), video, .privacy-dropdown__dropdown, .react-toggle-track,
.reply-indicator, .compose-form__warning {
border-radius var(--radius)
}
button, .focusable, a, .media-gallery__item-thumbnail {
&:focus-visible {
box-shadow inset 0 0 0 2px #dc7b18
outline 2px #dc7b18 solid
outline-offset -2px
}
}
:not(.radio-button__input):not(span) {
border-color var(--border-color)
2023-01-13 12:26:41 -05:00
}
.nothing-here
.column-inline-form,
.scrollable,
.detailed-status__action-bar,
.column-back-button, .column-header__collapsible.collapsed, .column-header__collapsible-inner,
.audio-player, .search__input {
border 0 !important
}
.account__section-headline, .notification__filter-bar,
.column-header {
border-inline 0
}
.account__section-headline, .notification__filter-bar
.column > .scrollable {
background none
}
.account__avatar, #profile_page_avatar, .account__avatar-composite, .account-card__title__avatar img {
border-radius avatarRadius
flex none
}
button.icon-button {
--hover-bg-color: var(--hover-color);
}
:not(body):not(.scrollable) {
&::-webkit-scrollbar {
width 6px
margin-block 10px
&-track {
background none
}
&-thumb {
border-radius 100px
transition background-color .2s
}
}
&:not(:hover) {
&::-webkit-scrollbar-thumb {
background none
padding-block 10px
}
2023-06-17 18:40:10 +00:00
}
}
2023-01-13 12:26:41 -05:00
}
// ANIMATIONS
/ {
@media (prefers-reduced-motion: no-preference) {
body:not(.reduce-motion) {
.ui__navigation-bar__item,
.load-more, .setting-toggle, .column-header__back-button, .column-back-button,
.trends__item, .story, .account__avatar, .button,
.media-gallery__item, .column-link, select, .status-card, .audio-player, .account {
transition transform .4s cubic-bezier(0,0,0,3), background .2s, opacity .2s !important
&:active, &:focus-visible {
transform scale(.99)
transition transform .4s cubic-bezier(0,0,0,1) !important
}
}
.column-header__button, .column-header__buttons > .column-header__back-button,
.react-toggle-track, .icon-button, .floating-action-button {
transition transform .4s cubic-bezier(0,0,0,4), background .2s !important
&:active {
transform scale(.95)
transition transform .4s cubic-bezier(0,0,0,1) !important
}
}
.status__content__spoiler-link {
span {
display inline-block
transition transform .4s cubic-bezier(0,0,0,4) !important
}
2023-01-13 12:26:41 -05:00
&:active span {
transition transform .4s cubic-bezier(0,0,0,1) !important
transform translateY(1px)
}
}
2023-01-13 12:26:41 -05:00
}
.reduce-motion * {
animation-duration 0s !important
}
2023-01-13 12:26:41 -05:00
@keyframes bounceIn {
0% { transform: scale(1.1); opacity: 0 }
30% { transform: scale(.99); opacity: 1 }
60% { transform: scale(1.005); opacity: 1 }
100% { transform: scale(1); opacity: 1 }
}
@keyframes slideUp {
from {
transform translateY(20px)
}
2023-01-13 12:26:41 -05:00
}
@keyframes slideUpFade {
from {
transform translateY(20px)
filter opacity(0)
}
2023-01-13 12:26:41 -05:00
}
@keyframes slideUpFadeBig {
from {
transform translateY(200px)
filter opacity(0)
}
}
@keyframes slideDownFade {
from {
transform translateY(-20px)
filter opacity(0)
}
2023-01-13 12:26:41 -05:00
}
@keyframes slideUpBig {
from {
transform translateY(50vh)
}
2023-01-13 12:26:41 -05:00
}
@keyframes fadeUp {
from {
transform translateY(10px)
opacity 0
}
2023-01-13 12:26:41 -05:00
}
@keyframes scaleIn {
from {
transform scale(.98)
opacity 0
}
2023-01-13 12:26:41 -05:00
}
@keyframes fadeLeft {
from {
transform: translateX(20px) opacity(0)
}
}
@keyframes rainbow {
to {
filter hue-rotate(360deg)
}
2023-01-13 12:26:41 -05:00
}
}
}
//// ALL COLUMNS
/ {
.columns-area__panels {
--top 5px
gap 0
if navOnLeft {
flex-direction row-reverse
}
if spaceBetween {
justify-content space-between
}
}
@media (min-width responsiveW2) {
.columns-area__panels {
padding-inline 10px
padding-top var(--top)
box-sizing border-box
transition padding .4s
--top 20px
}
2023-01-13 12:26:41 -05:00
}
@media (min-width responsiveW1) {
.columns-area__panels {
--top 30px
}
if spaceBetween {
.columns-area__panels {
--top 10px
}
.columns-area__panels__main {
margin-top 20px !important
}
}
}
}
// LEFT COLUMN
/ {
.columns-area__panels__pane--compositional {
@media (min-width responsiveW1) {
if spaceBetween {
.columns-area__panels__pane__inner::before {
content ""
position absolute
inset -100px -11px
border-inline 1px solid var(--border-color)
z-index -1
}
}
}
}
// COMPOSE
.compose-panel {
overflow-y auto
margin-top calc(0px - var(--top))
padding-top var(--top)
padding-bottom 20px
padding-inline 10px
2023-01-13 12:26:41 -05:00
box-sizing border-box
max-height unset !important
height 100%
.search, /.drawer .search {
margin-bottom 25px
}
2023-01-13 12:26:41 -05:00
}
.compose-form__uploads {
padding 0
margin-inline 12px
width unset
}
.search {
border-radius var(--radius)
margin-inline -5px
input {
border-radius var(--radius-round) !important
2023-01-13 12:26:41 -05:00
}
/.search__popout {
border-radius var(--radius)
animation scaleIn .2s
box-shadow var(--shadow-low)
margin-top 10px
margin-inline 4px
width calc(100% - 8px)
}
2023-01-13 12:26:41 -05:00
}
.compose-form {
min-height unset
overflow unset
gap 15px
margin-bottom 20px
flex 1 0 auto !important
.spoiler-input__border {
display none
}
.autosuggest-input.autosuggest-input {
border-block 0
}
#cw-spoiler-input {
padding-inline 12px
border-radius 0
}
.compose-form__upload__thumbnail {
display flex
flex-direction column
}
.compose-form__upload__actions {
z-index 10
}
.compose-form__upload__warning {
position relative
flex-grow 1
display flex
button.active {
background: rgba(0,0,0,0.75);
backdrop-filter: none;
box-shadow 0 0 0 100px rgba(0,0,0,0.75)
width 100%
height 100%
font-weight bold
font-size 1.1em
transition background .2s, transform .2s cubic-bezier(0,0,0,1) !important
svg {
height 1.2em
width @height
}
&:hover, &:focus {
background rgba(20,20,20,0.75)
}
}
}
}
.compose-form__highlightable {
border-radius var(--radius)
.columns-area__panels__main & {
background none
}
> .compose-form__dropdowns {
flex-wrap: nowrap;
button {
border 0
padding 4px
transition background .2s
&:hover:not(.active) {
background var(--hover-color)
}
}
}
.compose-form__dropdowns + .autosuggest-textarea textarea {
padding-top 0
}
.compose-form__actions {
position relative
}
.compose-form__buttons {
display flex
flex-wrap wrap
flex-direction row
gap 4px
flex-grow 9999
:not(.character-counter) {
display flex
justify-content center
flex-grow 1
aspect-ratio 1
max-width 38px
padding 0
border-radius 6px
}
label {
display none !important
}
.character-counter {
margin-inline-start auto
flex-grow: 0;
min-width: 4ch;
padding-inline: 10px 4px;
}
}
/* .character-counter {
position absolute
inset-inline-end 0
bottom calc(100%)
padding 4px
font-size 13px
} */
}
//// SERVER INFO
.server-banner {
.server-banner__hero {
border-radius var(--radius)
// margin-inline -10px
width 100%
// width calc(100% + 20px)
border-radius var(--radius) var(--radius) 0 0
border 1px solid var(--border-color)
box-sizing border-box
}
.server-banner__description {
border 1px solid var(--border-color)
padding 14px 12px
margin-top -20px
line-height 1.5
border-radius 0 0 var(--radius) var(--radius)
}
.server-banner__meta {
flex-direction column
.server-banner__meta__column {
width unset
overflow visible
display flex
flex-direction row
flex-wrap wrap
align-items flex-end
h4 {
margin 0
font-size .9em !important
width 100%
// font-weight 500
}
.account {
margin-inline -10px
padding 10px !important
width 100%
&::after {
content unset !important
}
}
.server-banner__number, .server-banner__number-label {
font-size 1.1em
line-height 2
margin-inline-end .5em
}
.server-banner__number-label {
font-weight 400 !important
2023-01-13 12:26:41 -05:00
}
}
}
}
.navigation-panel__sign-in-banner {
margin-inline 5px
// border-top 1px solid
position relative
}
.link-footer {
margin-top 20px
> p:last-child {
margin-bottom 0
}
2023-01-13 12:26:41 -05:00
}
}
//// CENTER COLUMN
/ {
.columns-area {
box-shadow var(--column-shadow)
padding 0
overflow visible
@media (min-width responsiveW2) {
border-radius var(--radius) var(--radius) 0 0 !important
& > :first-child {
border-radius var(--radius) var(--radius) 0 0 !important
}
}
}
.columns-area__panels__main {
background: none;
@media (min-width responsiveW2) {
width 0
flex-grow 1
margin-inline 10px
max-width var(--tl-width) !important
}
@media (min-width responsiveW1) {
margin 0 20px
}
if sideHeader {
@media (min-width mobileW) {
display grid
grid-template-columns 100%
.column, .columns-area {
grid-column 1
overflow clip !important
}
}
}
overflow visible !important
contain inline-size style !important
transition max-width transBounce1, margin transBounce1
if !sideHeader {
overflow clip !important
border-radius var(--radius) var(--radius) 0 0 !important
2023-01-13 12:26:41 -05:00
}
> div {
grid-row 1
}
}
.column {
background var(--color-bg-ambient)
overflow clip
&::before {
content ""
position absolute
inset 0
background var(--elevated-tint)
pointer-events none
2023-01-13 12:26:41 -05:00
}
}
if flatterUI {
.columns-area.columns-area, .column.column {
overflow visible !important
}
.scrollable {
contain unset !important
}
}
+desktop() {
.scrollable > [tabindex="-1"]:first-child {
margin-top 10px
}
.item-list {
> article:first-of-type {
margin-top 10px
}
> article::after {
inset-inline calc(var(--radius) + 10px)
}
}
.load-more
.trends__item,
{statuses-list} {
margin-inline 10px
max-width calc(100% - 20px)
}
}
.empty-column-indicator, .error-column {
background none
}
.dismissable-banner {
display flex
align-items center
flex-direction row-reverse
gap 20px
margin 0
border-radius 0
border 0
padding 25px
> div {
padding 0
}
button {
padding 16px
margin -16px -14px
2023-01-13 12:26:41 -05:00
}
}
// COLUMN HEADER
.tabs-bar__wrapper {
if sideHeader {
grid-column 2
@media (min-width mobileW) {
margin-top -100vh
}
2023-01-13 12:26:41 -05:00
}
border 0 !important
padding-top 0
transition margin transBounce1, top .4s
/.column-header, /.column-inline-form {
font-weight 600
border-bottom-left-radius 0 !important
border-bottom-right-radius 0 !important
& ~ .scrollable {
border-top-left-radius 0 !important
border-top-right-radius 0 !important
}
}
/.column-header__title {
gap 12px
}
/.announcements, /.column-header__collapsible:not(.collapsed) {
flex-direction column-reverse
align-items flex-start
border 0
animation slideDownFade .3s backwards cubic-bezier(0,1,0,1.2)
}
/.column-header__collapsible {
transition none
background var(--color-bg-secondary-solid)
overflow-y auto !important
}
.collapsed {
display none
}
/.announcements__root {
display flex !important
flex-direction column
z-index -1
position relative
}
/.announcements {
width 100%
overflow visible
}
/.announcements__pagination {
inset-inline-start 0
top 100%
bottom unset
padding-block 0
}
/.announcements__mastodon {
display unset
order 2
}
/.column-header__wrapper {
> :not(.column-header):not(.collapsed) {
border-top 2px solid var(--color-bg-ambient) !important
border 0
}
}
/.column-header {
overflow hidden
}
/.column-header > button {
z-index 2
}
/.column-header__buttons {
isolation isolate
}
/.column-header__buttons button {
transition background .2s, transform .3s !important
position relative
border-radius 100px !important
min-width 40px
margin 5px
margin-inline-start 0
font-size .9em
padding-inline 10px
&:not(.active) {
background var(--elevated-color) !important
z-index 2
}
svg {
margin 0
}
span {
display none
}
&::before {
content ""
position absolute
inset -20px -800px
transform scale(0)
transform-origin bottom center
background var(--color-bg-secondary-solid)
z-index -1
border-radius 100px
pointer-events none
opacity 0
transition transform .3s, opacity .3s
@media (prefers-reduced-motion) {
transition none !important
2023-01-13 12:26:41 -05:00
}
}
&.active {
&::before {
transform scale(1, 5)
opacity 1
transition transform .3s, opacity .1s
2023-01-13 12:26:41 -05:00
}
}
}
@media (min-width mobileW) {
inset-inline unset !important
height 50px !important
top 0
.column-header__wrapper {
display flex
flex-direction column
border-radius var(--radius)
overflow hidden
> div {
background var(--color-bg-secondary-solid)
}
2023-01-13 12:26:41 -05:00
}
.column-header {
background none !important
overflow hidden
border 0
}
if sideHeader {
top var(--top) !important
width 285px
border-radius var(--radius) var(--radius) !important
box-shadow 0 12px 12px -12px rgba(0,0,0,0.1)
if !spaceBetween {
margin-inline-start 20px
@media (max-width responsiveW1 - 1) {
margin-inline-start 10px
}
}
@media (max-width responsiveW2 - 1) {
width 265px
top 10px !important
}
if spaceBetween {
position fixed
inset-inline-end 10px !important
margin 0 !important
}
if navOnLeft {
grid-column 1
if !spaceBetween {
margin-inline-start -285px - 20px !important
@media (max-width responsiveW1 - 1) {
margin-inline-start -285px - 10px !important
}
@media (max-width responsiveW2 - 1) {
margin-inline-start -285px + 10px !important
}
}
if spaceBetween {
inset-inline-start 10px !important
}
}
}
if !sideHeader {
border-bottom 1px solid var(--border-color) !important
&::after {
content ""
position absolute
inset 0
background var(--elevated-tint)
}
.column-header {
padding-inline 10px
}
2023-01-13 12:26:41 -05:00
}
}
}
if sideHeader {
@media (min-width mobileW) {
.column-back-button--slim {
margin-left auto !important
order -1
> .column-back-button {
margin-top 0 !important
top unset !important
}
}
@media (max-width responsiveW2 - 1) {
.column-back-button--slim > .column-back-button {
margin-top -55px !important
top unset !important
}
}
}
}
2023-01-13 12:26:41 -05:00
// COLUMN HEADER SETTINGS
.column-settings__row, .column-settings__hashtags {
gap 0
}
.column-settings h3 {
font-size 1em
margin-bottom 8px
}
.column-select__control {
border-radius var(--radius)
}
.local-settings__page__item,
.glitch-setting-text.glitch-setting-text,
.setting-toggle, .app-form__toggle {
display flex
align-items center
margin-bottom 14px
position relative
padding .7em
background var(--elevated-color)
margin-block 0 2px !important
overflow hidden
&:first-of-type {
border-top-left-radius var(--radius)
border-top-right-radius var(--radius)
}
&:last-of-type {
border-bottom-left-radius var(--radius)
border-bottom-right-radius var(--radius)
}
label, legend {
padding-block 2px !important
}
label span {
&::before {
content ""
position absolute
inset -900px
}
}
// border-radius var(--radius)
.react-toggle {
order 2
}
.setting-toggle__label {
margin-bottom 0 !important
flex-grow 1
width 0
}
&::before {
content ""
position absolute
inset 0
background var(--hover-color)
opacity 0
transition opacity .2s
pointer-events none
}
&:hover, &:focus-within {
&::before {
opacity 1
}
}
}
}
//// RIGHT COLUMN
/ {
.columns-area__panels__pane--navigational {
@media (min-width responsiveW1) {
if spaceBetween {
.columns-area__panels__pane__inner {
&::before, &::after {
content ""
position absolute
inset -100px -10px
background var(--color-bg-ambient)
z-index -1
}
&::after {
background var(--elevated-tint)
}
2023-01-13 12:26:41 -05:00
}
}
}
}
//// NAV PANEL
.navigation-panel.navigation-panel {
box-sizing border-box
if sideHeader {
height calc(100vh - var(--top) - 50px + var(--radius))
}
padding-bottom 10px
margin 0
border 0
margin-top calc(0px - var(--radius))
padding-top calc(10px + var(--radius))
overflow hidden auto
hr {
display none
}
@media (min-width responsiveW2) {
if sideHeader {
padding-top calc(var(--radius) + 10px)
margin-top calc(50px - var(--radius))
.navigation-panel__logo {
margin 0
.column-link, hr {
display none !important
}
}
}
if !sideHeader {
margin-top calc(0px - var(--top))
height 100vh
padding-top var(--top)
}
.switch-to-advanced {
border-radius var(--radius)
margin-top 0
}
}
/.column-link {
border 0
gap 12px
}
/.icon-with-badge__badge {
display flex !important
align-items center
justify-content center
padding 0 .3em !important
width 2em
height 2em
min-width max-content
border-radius 2em
font-weight 600
top -6px
box-sizing border-box
}
@media (min-width mobileW) {
/.column-link {
flex-grow 100 !important
display flex !important
align-items center !important
align-content center
max-height 3em
min-height 3em !important
padding-block 0
border-radius 100px
position relative
box-sizing border-box
opacity .9
overflow hidden
background none !important
&::before {
content: "" !important;
position absolute
border-radius: 100px;
width unset !important
height unset !important
inset 0px 0px !important
opacity 0 !important
background-color rgba(150,150,150,0.1)
transition opacity .2s
}
&.active {
opacity 1 !important
font-weight 600
}
&:hover, &:focus {
&:before {
opacity 1 !important
}
}
}
}
.trends__item {
margin 0 !important
}
}
}
//// STATUSES
/ {
.scrollable > div:first-child > [tabindex="-1"]:last-child .status__wrapper {
&::after {
content unset
}
}
{statuses-list} {
overflow hidden
contain paint inline-size
position relative
border-radius var(--panel-radius)
border 0
&.focusable {
background none
}
// Hover
@media (pointer fine) {
&::before {
content ""
position absolute
inset 0px !important
height unset !important
width unset !important
pointer-events none
transition background-color .2s
}
&:hover, &:focus-within {
&::before {
background-color var(--hover-color)
}
}
}
}
.status:not(.status--first-in-thread) {
border 0
}
.detailed-status
.status {
padding 16px
}
.status__info {
.account__avatar, .status__avatar {
max-width var(--avatar-size) !important
max-height var(--avatar-size) !important
2023-01-13 12:26:41 -05:00
}
}
.status__line {
left calc(16px + (var(--avatar-size) / 2))
}
// STATUS REPLY
.status--in-thread {
@media (max-width 450px) {
--avatar-size 34px
.status__info ~ * {
margin-inline-start calc(var(--avatar-size) + 10px)
width calc(100% - (var(--avatar-size) + 10px))
}
}
}
// STATUS CONTENT
.status__content {
text-align unset !important
line-height 1.5
&.status__content--with-spoiler {
overflow visible
> p {
margin-inline -100px
padding-inline 100px
overflow hidden
}
> p:first-child {
margin-bottom 0
}
2023-01-13 12:26:41 -05:00
}
p:empty {
max-height 0
}
picture {
display contents
}
.custom-emoji {
display inline-block
height var(--emoji-size) !important
min-width var(--emoji-size) !important
width auto !important
margin -.2ex 0 .2ex
if emojiZoom {
@media (prefers-reduced-motion: no-preference) {
/^[-1..-1] {
transition transform 1s cubic-bezier(0,0.7,0,1)
&:hover {
transform scale(1.7)
transition transform .4s cubic-bezier(0,0.7,0,1)
}
}
}
}
2023-01-13 12:26:41 -05:00
}
// max-height to media
& ~ [style*="aspect-ratio"] {
max-height 80vh
}
}
.status__quote .status__wrapper {
margin: 0;
max-width: unset;
}
// STATUS DIRECT
.detailed-status__wrapper-direct, .status-direct, .status__wrapper-direct, .conversation {
.status__content {
position relative !important
background var(--elevated-color)
padding 12px 14px
border-radius var(--radius-round)
border-top-left-radius 6px
box-sizing border-box
margin-bottom 0
overflow hidden !important
max-width max-content
.media-gallery {
width 999px
max-width 100% !important
}
}
}
.status__wrapper-direct:not(.detailed-status__wrapper-direct) {
.status__prepend {
position absolute
contain strict
}
}
// STATUS DETAILED
.detailed-status {
border 0
padding-bottom 4px
}
.detailed-status__wrapper, .detailed-status {
box-shadow var(--shadow)
.status__content {
min-height unset !important
}
}
.detailed-status__wrapper {
isolation isolate
background none
&::before {
content ""
position absolute
inset 0
background var(--color-bg-secondary) !important
pointer-events none
z-index -1
}
.detailed-status {
box-shadow none
}
}
.detailed-status__meta {
margin-top 14px
line-height 2
> * {
display inline-flex
border 0 !important
padding 0 !important
margin-inline-end 8px
&:not(:last-child) {
&::after {
content "·"
}
2023-01-13 12:26:41 -05:00
}
}
}
// STATUS MEDIA
{media} {
box-shadow var(--shadow-low)
border-radius var(--radius) !important
margin-block 10px
animation scaleIn .4s
max-width unset !important
}
if collapseHidden {
.media-gallery:has(.spoiler-button:not(.spoiler-button--minified)) {
height 150px !important
aspect-ratio unset !important
}
}
.media-gallery__item {
border-radius 0
outline none
}
.spoiler-button--minified {
button {
padding 6px !important
background rgba(0,0,0,0.2) !important
if hideClickArea {
&::after {
content ""
position absolute
inset -50px
}
}
&:hover {
background rgba(0,0,0,0.4) !important
}
}
.icon {
width 18px
height 18px
}
}
// link embeds
.status-card {
align-items stretch
gap 0
&:not(.horizontal) {
border 1px solid var(--border-color) !important
}
&:not(.expanded) .status-card__image {
overflow hidden
img {
border-radius 0
}
}
/.status-card__content {
margin-block auto
padding 15px
}
/.status-card__host {
font-size .85em
line-height 1.5
margin 0
}
/.status-card__title {
font-size 1em
margin-bottom 0
line-height 1.4
}
/.status-card__description {
line-height 1.4 !important
margin 0
@supports (-webkit-line-clamp 8) {
display -webkit-box
-webkit-line-clamp 8
-webkit-box-orient vertical
white-space unset
}
}
/.status-card__author {
margin-top 0.4em
font-size .85em
}
&:hover {
background-color var(--hover-color)
2023-01-13 12:26:41 -05:00
}
}
.more-from-author {
background none
border 0
padding-top 0
border-radius var(--radius)
}
.audio-player {
.video-player__seek {
margin var(--radius)
}
}
.hashtag-bar {
margin-top 10px
a, button {
color var(--accent, #8c8dff)
transition opacity .2s
padding 5px 10px
}
a {
position relative
border-radius var(--radius-round)
background var(--elevated-color)
&::after {
content ""
position absolute
inset 0
background var(--elevated-color)
border-radius inherit
opacity 0
transition opacity .2s
}
&:hover, &:focus {
opacity 1
&::after {
opacity 1
}
}
}
button {
padding-block 0
2023-01-13 12:26:41 -05:00
}
}
// STATUS FOOTER
.status__action-bar {
flex-wrap wrap
margin-top .4em
margin-bottom -6px
gap 0
margin-inline-start -8px
/.status__action-bar__button-wrapper {
flex-grow 1
max-width 55px
min-width max-content
}
* {
display flex !important
justify-content center !important
flex-grow 1 !important
}
.icon-button {
margin 0
&::before { // Increase the click area
content ""
position absolute
inset -.5em
}
}
}
.status__action-bar, .detailed-status__action-bar, .picture-in-picture__footer {
position relative
z-index 2
justify-content unset
.icon-button {
display inline-flex
align-items center
justify-content center
padding .5em .4em !important
border-radius var(--radius)
position relative
.icon-button__counter {
width auto !important
}
}
.icon-button--with-counter {
padding-inline .7em !important
2023-01-13 12:26:41 -05:00
}
}
.detailed-status__action-bar, .picture-in-picture__footer {
padding-inline 15px !important
gap 0
.icon-button {
flex-grow 1 !important
}
div {
display flex
justify-content center
flex-grow 1
}
}
}
//// ITEMS
/ {
.item-list > article > div {
position relative
&::after {
content ""
position absolute
bottom 0px
inset-inline 0
border-top 1px solid var(--border-color)
pointer-events none
}
}
+desktop() {
.item-list > article > div {
&::after {
inset-inline calc(var(--radius) + 10px)
}
}
}
.account__wrapper {
line-height 1.5
/.account__contents {
display flex
flex-wrap wrap
flex-grow 1
gap 0 10px
}
/.display-name {
margin-bottom 1px !important
}
/.account:not(.account--minimal) .display-name__account {
display block
width 300px
}
/.account__details {
font-size .9em
opacity .8
width 100px
flex-grow 1
text-align end
align-items center
line-height 1.2
&:has(.verified-badge) {
> :not(.verified-badge) {
display none
2023-01-13 12:26:41 -05:00
}
}
}
button:not(:hover):not(:focus) {
background var(--elevated-color)
color inherit
}
}
}
//// PAGES
//// NOTIFICATIONS
.notification-ungrouped {
/.notification-ungrouped__header {
margin-bottom 10px
}
.status__wrapper {
margin-inline 0
max-width unset
&::before, &::after {
content unset
}
}
}
.notification-group {
padding 16px
}
.notification-group__main__additional-content {
display none
}
//// EXPLORE
/ {
.trends__item, .story, .account-card {
animation slideUpFade backwards .4s (.04s * 6) cubic-bezier(0,1,1,1)
border-radius var(--radius)
for row in 1..6 {
&:nth-child({row}) {
animation-delay .04s * row
}
}
}
.explore__links {
padding 10px
display flex
flex-wrap wrap
align-content flex-start
> .dismissable-banner {
margin -10px
margin-bottom 10px
}
.story {
margin-inline 0 !important
}
// / includes trends items in right sidebar
/.trends__item {
display flex !important
margin-inline 0 !important
}
/.trends__item__name a {
&::before {
content ""
position absolute
inset 0
}
}
/.trends__item__current {
display none
}
/.trends__item__sparkline {
overflow visible !important
pointer-events none
svg {
overflow visible !important
}
path:first-child {
filter blur(8px)
}
path:last-child {
mask linear-gradient(to left, black, black, transparent)
-webkit-mask @mask
}
/.rtl & {
transform scaleX(-1)
}
}
.trends__item {
margin 7.5px !important
padding 25px !important
box-shadow var(--shadow-med)
width 200px
background var(--elevated-color)
flex-grow 1
&::after {
content unset !important
}
a {
font-size 1.4em
line-height 1.7em
&::before {
content ""
position absolute
inset 0
}
}
.trends__item__sparkline {
height 100%
svg {
height 100%
float right
overflow visible !important
position relative
path {
display unset !important
transition transform 1s
&:first-child {
transform-origin center
}
}
}
}
&:hover, &:focus-within {
svg path:first-child {
transform scale(2)
}
}
}
.story {
width 100%
margin 0
}
}
}
//// PROFILE
/ {
.account__header {
overflow visible
}
.follow-request-banner {
margin-bottom -100px
padding-bottom 120px
}
.account__header__image {
height 0
padding-bottom 35%
if sideHeader {
border-radius var(--panel-radius) var(--panel-radius) 0 0
}
position sticky
top calc(0px - var(--panel-radius))
overflow clip
img {
position absolute
}
.account__header__info {
position absolute
z-index 2
> span {
position sticky
top var(--radius)
}
}
}
.account__header__bar {
position relative
z-index 2
border 0
padding-inline 20px
@media (max-width mobileW) {
padding-inline 15px
}
border-radius var(--radius) var(--radius) 0 0
margin-top calc(0px - var(--radius)) !important
display flex
flex-direction column
background var(--color-bg-ambient)
isolation isolate
&::before {
content ""
background var(--elevated-tint)
position absolute
inset 0
pointer-events none
}
&::after {
content ""
position absolute
inset-inline 0
height 150px - 55px
background inherit
z-index -1
border-radius var(--radius)
mask linear-gradient(to bottom, transparent, black)
}
/.account__header__tabs {
overflow visible !important
align-items flex-end
padding 0
// padding-top 10px
height unset !important
margin-top -55px !important
&::before { // Add blur below the account header
content ""
position absolute
top -55px
inset-inline 0
height 150px
backdrop-filter blur(40px)
filter brightness(1.1)
pointer-events none
opacity .7
z-index -2
clip-path inset(55px 0 0 0 round var(--radius));
}
& ~ div {
z-index 2
}
}
.avatar {
margin-inline-start 0 !important
overflow visible !important
position relative
margin-top 20px
.account-role {
position absolute
bottom 0
left 110%
border-radius var(--radius)
}
}
.account__avatar {
border 0
box-shadow var(--shadow)
background none
background-size cover !important
}
}
.account__header__tabs__name {
margin-bottom 0
padding 0
margin-top 16px
h1 {
display flex
flex-wrap wrap
white-space unset
gap 0 .4em
font-weight 600
}
}
.account__header__extra {
margin-top 8px
}
// account fields
.account__header__fields, .account__header__account-note {
display flex
flex-wrap wrap
gap 2px
background none
border-radius var(--radius) !important
overflow hidden
max-width max-content
border 0 !important
}
.account__header__fields {
dl {
display inline
border-radius 0
overflow hidden
&:not(.verified) {
background-color var(--elevated-color)
}
border 0 !important
padding 8px 12px !important
margin 0 !important
position relative
overflow hidden
flex-grow 1
dt {
all unset !important
color unset !important
opacity .9 !important
}
dd {
padding 0
white-space unset
max-height unset
text-align unset
& > span > a:first-child:last-child, .h-card:first-child:last-child a {
&::after {
content ""
position absolute
inset 0
background-color var(--hover-color)
opacity 0
transition opacity .2s
}
&:hover:after, &:focus:after {
opacity 1
}
2023-01-13 12:26:41 -05:00
}
&.verified {
overflow visible !important
border 0
background none
a {
&::before, &::after {
content ""
position absolute
inset 0
background currentcolor
opacity .2
}
&::after {
background linear-gradient(20deg, currentcolor, transparent) !important
opacity .2 !important
z-index -2
}
}
2023-01-13 12:26:41 -05:00
}
}
}
}
.account__header__account-note {
position relative
font-size .9em
max-width unset
padding .5em 10px !important
margin-block -5px 10px
margin-inline -10px !important
border-radius var(--radius) !important
&::after {
content ""
position absolute
bottom 0
inset-inline 10px
border-top 1px solid var(--border-color)
transition opacity .2s
}
&:focus-within::after {
opacity 0
}
label {
z-index 2
margin 0
pointer-events none
font-size inherit
}
textarea {
margin -100px !important
padding 100px !important
padding-inline-end .7em !important
margin-inline-end -.7em !important
box-sizing content-box
width 100%
font-size inherit
transition background .2s
&::placeholder {
font-weight 600
}
}
}
// GALLERY
.account-gallery__container {
border-radius var(--radius)
overflow clip
padding 0
margin 4px
gap 4px
}
}
//// FOLLOW REQ'S
/ {
.account-authorize__wrapper {
background var(--elevated-color)
border-radius var(--radius)
overflow hidden
flex-grow 1
margin 10px
@media (max-width mobileW) {
margin-inline 10px
}
/.layout-multiple-columns & {
margin-inline 10px
}
display flex
flex-direction column
.account-authorize {
padding 20px 15px 10px
}
.detailed-status__display-name {
margin-bottom 10px !important
}
.account--panel {
margin-top auto
border-bottom 0
padding-inline 15px
gap 10px
background none
}
br {
display block
}
p {
margin-bottom .2em
}
.account--panel__button:first-child .icon-button {
&:not(:hover):not(:focus) {
background var(--elevated-color)
}
}
.icon-button {
width 100% !important
padding 10px
height unset !important
}
}
}
//// ABOUT
/ {
.about__meta {
border-radius var(--radius)
}
.account--minimal {
max-width 100%
}
.about__section {
margin 30px -20px
padding-inline 20px
contain inline-size paint
&.active .about__section__title {
margin-inline -20px
border-radius 0
border-inline 0
border-bottom 0
}
}
.about__section__title {
position sticky
top -1px
z-index 2
background var(--background-color-tint)
border 1px solid var(--border-color)
border-radius var(--radius)
overflow hidden
transition margin .2s cubic-bezier(0,1,0,1), border-radius .2s
&::after {
content ""
position absolute
inset 0
background var(--elevated-tint)
backdrop-filter blur(10px)
z-index -1
}
}
.about__section__body {
border 0
padding 0
animation slideDownFade .4s .1s backwards cubic-bezier(0, 1, 0, 1.2)
2023-01-13 12:26:41 -05:00
}
}
//// SEARCH
/ {
.explore__search-results {
border 0
2023-01-13 12:26:41 -05:00
}
.search-results__section__header {
margin 0px 0px 10px
color unset
background none
padding-inline 25px
font-weight 600
}
.search-results__section {
border 0
margin-bottom 20px
}
}
//// SETTINGS PAGE
/ {
/.admin-wrapper {
.content__heading {
margin-bottom 2em
}
h4 {
margin 0
border-bottom 0
}
form > h4 {
margin-top 2em !important
border-bottom 0 !important
margin-bottom 0 !important
}
.lead {
margin-bottom 15px
}
.flash-message,
.applications-list__item, .filters-list__item {
border-radius var(--radius)
border 0
overflow clip
}
.fields-row {
margin-inline 0
// gap 1em
border-radius var(--radius)
overflow clip
padding-top 0
gap 2px
display flex
flex-wrap wrap
}
.fields-group:not(.fields-row__column), .fields-row {
margin-bottom 1em !important
}
.fields-row > .fields-row__column {
max-width unset
width 300px
// height max-content
border-radius 0 !important
display flex
flex-direction column
flex-grow 1
margin 0 !important
.fields-group {
border-radius 0 !important
margin 0 !important
}
.with_block_label {
display flex
flex-direction column
height 100%
> .label_input {
display flex
flex-direction column
flex-grow 1
> textarea {
min-height 300px
flex-grow 1
}
}
}
> :last-child {
flex-grow 1
align-items flex-start
border 0
}
& > :not(:first-child):not(:last-child) {
padding-block .5em !important
margin-block -3px
}
}
:not(.fields-row__column) > .fields-group,
.fields-row > *,
.label_input > ul,
.label_input__wrapper > ul,
.with_block_label.radio_buttons .label_input
{
border-radius var(--radius)
overflow hidden
padding 0
display flex
flex-direction column
gap 2px
> * {
background-color var(--elevated-color)
padding .8rem
margin-block 0px
position relative
border-radius 0 !important
overflow hidden
&::after {
content ""
position absolute
inset 0
background-color var(--hover-color)
z-index -1
opacity 0
transition opacity .2s
}
&:hover, &:focus-within {
&::after {
opacity 1
}
}
}
:not(.input.with_block_label) > label {
&::before {
content ""
position absolute
inset -900px
}
}
}
.label_input__wrapper {
> :not([type="checkbox"]):not(label) {
margin-top 4px
}
}
.label_input {
position relative
}
label {
margin 0 !important
display flex
align-items center
padding 0 !important
input {
margin 0
margin-inline-end 10px !important
position static !important
}
}
input, .select {
border-radius var(--radius) !important
z-index 2
}
.radio {
flex-grow 1
&:not(:last-child) {
margin-bottom 0 !important
}
}
.hint:last-child {
margin-bottom 0 !important
2023-01-13 12:26:41 -05:00
}
.input.with_block_label {
> .row {
flex-wrap wrap
margin 0
> .string {
padding 0
width 100%
margin 0
&:first-child input {
border-radius var(--radius) var(--radius) 0 0 !important
}
&:last-child input {
border-radius 0 0 var(--radius) var(--radius) !important
}
}
&:not(:last-child) {
margin-bottom 8px
}
}
2023-01-13 12:26:41 -05:00
}
li.checkbox {
flex-grow 1
overflow hidden
}
ul {
flex-direction row !important
flex-wrap wrap
gap 2px
flex-grow 1
2023-01-13 12:26:41 -05:00
}
li.checkbox {
flex-basis 45%
}
.spacer {
border-top 1px solid var(--border-color) !important
}
}
/.batch-table label {
padding-inline-start 20px !important
}
.batch-table, .table, :not(.batch-table__row__content) > table {
overflow clip
border-radius var(--radius)
border-spacing 0 2px
border-collapse separate
/.batch-table__toolbar, /.batch-table__row, tr > * {
border 0
margin-bottom 2px !important
}
td, th, /.batch-table__row {
position relative
}
tr {
> td, > th {
// padding-block 0
> div > span {
padding-inline .7em
display inline-block
}
}
}
/.keyboard-shortcuts {
padding 0
margin-top -4px
table {
width 100%
border-radius 0
}
td {
padding .7em
}
}
/.batch-table__row, th, > tbody > tr > td, tfoot td {
background var(--elevated-color) !important
vertical-align middle
&::after {
content ""
position absolute
inset 0 0
background var(--hover-color)
opacity 0
transition .2s
pointer-events: none
}
&:hover, &:focus-within {
&::after {
opacity 1
}
}
> a:first-child:last-child {
margin 0
width 100%
padding .5em
}
}
th, tr {
&:hover {
td, th {
&:not([rowspan])::after {
opacity 1 !important
}
}
}
[rowspan] {
&:hover {
& ~ td::after {
opacity 0 !important
}
}
&::after {
inset-inline -900px
}
}
}
}
}
//// ADVANCED VIEW
/ {
.layout-multiple-columns.layout-multiple-columns {
--column-header-height: 45px;
.column-header, .column-header button {
background none
}
.column-header, .scrollable, .column-back-button, .account__header__image {
border-radius 0 !important
gap 0 !important
}
.columns-area {
background none !important
height 100%
> div {
border 0 !important
padding 0 !important
&:not(.drawer):not(:last-child) {
margin-inline-end 2px !important
}
&.column {
flex-grow 1
max-width 600px
}
&:first-child {
margin-inline-start auto !important
}
&:last-child {
margin-inline-end auto !important
}
}
}
.drawer.drawer {
padding-top 15px !important
overflow clip
flex-grow 1
max-width 350px
/.drawer__header {
border-radius var(--radius-round)
background var(--elevated-color)
margin-inline 15px
overflow hidden
border 0 !important
a {
border 0
&:first-child {
padding-inline-start 15px !important
}
&:last-child {
padding-inline-end 15px !important
}
}
}
.search {
z-index 2
margin-inline 15px
margin-bottom 0
}
& > .drawer__pager {
border 0
overflow visible !important
}
.drawer__inner:not(.darker) {
margin-top -20px
padding-top 30px
height unset
bottom 0
}
.drawer__inner__mastodon {
margin-inline -6px
z-index -1
}
}
.compose-form {
margin-inline 5px
}
.drawer__inner:not(.darker), .drawer__inner__mastodon {
background-color transparent !important
}
.darker {
background-color var(--color-bg-secondary-solid)
border-radius var(--radius) var(--radius) 0 0
top 10px
width unset
inset-inline 2px
2023-01-13 12:26:41 -05:00
}
.column {
background none
&::after {
content ""
position absolute
inset 0
top var(--column-header-height)
background var(--color-bg-ambient)
z-index -1
}
&::before, &::after {
top var(--column-header-height)
border-radius var(--radius) var(--radius) 0 0
}
}
.column-back-button,
.column-header__wrapper {
&.active {
box-shadow none
&::before {
inset-inline var(--radius)
}
}
.column-header {
border 0 !important
height var(--column-header-height)
}
.column-header__buttons {
height 100%
}
svg {
height 1.4em
}
& + .scrollable.scrollable {
border-radius var(--radius) var(--radius) 0 0 !important
overflow-y scroll
}
}
.getting-started__trends {
padding 0px 20px
}
}
}
//// GETTING STARTED PAGE
/ {
.column[aria-labelledby="Misc"] > .scrollable,
.column[aria-labelledby="Getting-started"] > .scrollable
.getting-started {
position relative
padding 5px 10px !important
.getting-started__wrapper {
background none
}
.column-link, .column-subheading {
border 0 !important
padding 20px !important
background none
2023-01-13 12:26:41 -05:00
}
.getting-started__footer {
padding-inline 20px
a span {
font-size 1.1em !important
line-height 2
}
2023-01-13 12:26:41 -05:00
}
}
}
//// TABLET
/ {
@media (min-width mobileW) and (max-width responsiveW2) {
.columns-area__panels__pane--navigational {
margin-top 50px
}
.navigation-panel__menu {
padding 10px
}
.navigation-panel__compose-button {
margin-block 10px
margin-inline 6px
padding-inline 16px
border-radius 100px
justify-content center
}
.navigation-panel__sign-in-banner {
display block !important
margin-block 10px
padding-block 10px
border-block 1px solid var(--border-color)
}
}
}
//// MOBILE
/ {
@media (max-width mobileW - 1) {
.tabs-bar__wrapper {
background var(--color-bg-primary)
backdrop-filter none
&::before {
content ""
position absolute
inset 0
background var(--elevated-tint)
z-index -1
}
}
.ui__navigation-bar {
border 0
background var(--color-bg-tertiary)
}
.ui__navigation-bar {
color var(--on-input-color)
height 70px
padding-inline 5px
}
.ui__navigation-bar__item {
position relative
border 0 !important
padding-block 12px
gap 6px
opacity .7
&::before {
content ""
position absolute
width 60px
top 10px
bottom 30px
background currentColor
border-radius 100px
z-index -1
opacity 0
transform scaleX(.8)
transition opacity .2s, transform .2s
}
&::after {
content attr(aria-label)
font-size 12px
max-width 100%
padding-inline 4px
text-overflow ellipsis
overflow hidden
white-space nowrap
box-sizing border-box
}
&.active {
opacity 1
&::before {
opacity .15
transform none
}
}
}
.columns-area__panels__pane--navigational {
z-index 100
padding 40px 10px
padding-top 60vh
min-width unset
overflow-y scroll
box-sizing border-box
overscroll-behavior contain
visibility hidden
box-shadow unquote("0 0 0 200px rgb(from var(--color-bg-overlay) r g b/50%)")
transition visibility 0s 0.2s
.columns-area__panels__pane__inner {
width 100%
position relative
inset unset
height max-content
border-radius 24px
margin-top auto
transform translateY(100vh) !important
transition transform .2s cubic-bezier(0,0,1,0), opacity 1s
}
.navigation-panel__compose-button {
display none
}
html:not(:has(.sign-in-banner)) & {
[href="/home"],
[href="/explore"],
[href="/notifications"] {
display none
}
}
.navigation-panel {
display contents
2023-01-13 12:26:41 -05:00
}
.navigation-panel__menu {
padding 10px 5px !important
}
&.columns-area__panels__pane--overlay {
visibility visible
transition none
// for some reason transitioning the .pane__inner stutters
// a ton even with !important, so we're just doing an animation
// on the container instead !
animation slideUpFadeBig .3s cubic-bezier(0,0.9,0,1.05) forwards
.columns-area__panels__pane__inner {
transform none !important
transition none
}
2023-01-13 12:26:41 -05:00
}
}
}
}
//// POPUPS
/ {
#hover-card,
.dropdown-menu {
border-radius var(--radius)
animation scaleIn .2s cubic-bezier(0,0,0,1.1)
2023-01-13 12:26:41 -05:00
}
.dropdown-menu__container__list {
overflow hidden auto
border-radius var(--radius)
max-height 70vh
2023-01-13 12:26:41 -05:00
}
.dropdown-menu__item {
overflow hidden
a {
padding .7em 1em !important
transition background-color .2s, color .2s
min-width 150px
}
}
.dropdown-menu__separator {
margin 0 !important
2023-01-13 12:26:41 -05:00
}
.interaction-modal {
border-radius var(--radius)
overflow-y auto
box-sizing border-box
width 700px
text-align center
}
.interaction-modal__choices {
gap 10px
display flex
flex-wrap wrap
.interaction-modal__choices__choice {
max-height 50vh
overflow-y auto
border 1px solid var(--border-color)
padding 24px
margin 0
border-radius var(--radius)
transition background .2s
position relative
}
.prose:last-child {
margin-bottom 0
}
h3 {
margin-bottom 10px
2023-01-13 12:26:41 -05:00
}
}
.modal-root__container {
animation bounceIn .7s
}
.modal-root__modal {
@media (max-width mobileW) {
margin-top auto
max-width 100%
border-radius var(--radius) var(--radius) 0 0
}
}
.picture-in-picture {
z-index 101
.picture-in-picture__header {
border-radius var(--radius) var(--radius) 0 0
}
{media} {
--radius 0
margin 0 !important
}
.picture-in-picture__footer {
border-radius 0 0 var(--radius) var(--radius)
}
}
}
/// ALT TEXT MODAL
/ {
.modal-root__modal:has(.focal-point) {
width unset
max-width 90vw
.dialog-modal__content {
overflow hidden
display flex
flex-direction column
}
.dialog-modal__content__preview {
padding 0 !important
min-height 0
max-width 100%
img {
max-width 100% !important
max-height 100% !important
border-radius 0
max-height unset
min-height 0
}
}
.focal-point__reticle {
transition box-shadow .2s;
}
.focal-point {
min-height 0 !important
&:not(:hover) .focal-point__reticle {
box-shadow none
}
2023-01-13 12:26:41 -05:00
}
}
@media screen and (max-width: 630px) {
2023-01-13 12:26:41 -05:00
}
}
//// EMOJI PICKER
/ {
// This is most likely temporary as the picker may be rewritten or unstylable in a later mastodon update
.emoji-picker-dropdown__menu {
border-radius var(--radius)
overflow hidden
resize both
width 400px
}
.emoji-mart {
display flex !important
flex-direction column !important
width 100% !important
height 100% !important
}
.emoji-mart-scroll {
flex-grow 1
max-height unset !important
}
.emoji-mart-bar {
order 2
}
.emoji-mart-category-list {
overflow visible !important
display grid
grid-template-columns repeat(auto-fill, minmax(calc(20px + 6%), 1fr))
li {
display contents
}
button {
position relative
padding 0 !important
padding-top 100% !important
img, span {
height calc(100% - 10px) !important
width calc(100% - 10px) !important
inset 5px
position absolute !important
transition transform .1s cubic-bezier(0,0,0,1)
}
&:hover {
img, span {
transform scale(1.2)
}
}
2023-01-13 12:26:41 -05:00
}
}
.emoji-picker-dropdown__modifiers {
top 16px
}
2023-01-13 12:26:41 -05:00
}
}
//// GLITCH-SOC FIXES
/ {
2025-12-07 12:25:11 -05:00
/html[data-user-flavour="glitch"] #mastodon {
// Compose Form
.compose-form__highlightable {
margin-bottom 50px !important
}
.compose-form__submit {
position absolute
right -12px
top 100%
margin-top 24px
button {
padding 10px 20px
}
}
// GLITCH STATUSES
.focusable[tabindex]:not(.notification-ungrouped) .full-width {
margin-inline 0
}
.media-gallery__item > .media-gallery__preview {
display unset
opacity .5
}
.status__action-bar-spacer {
min-width 5px
}
.status__relative-time {
margin-inline auto 5px !important
z-index 2
flex-grow 0 !important
min-width 5ch !important
max-width unset !important
justify-content flex-end
time {
display inline !important
}
}
/.reactions-bar {
width unset
margin-top 8px
button {
border-radius 6px !important
padding-block 2px
.reactions-bar__item__emoji {
width unset
height 2em
max-width 70px
min-width @height
.detailed-status & {
max-width 400px
}
}
&:not(.active) {
border 1px solid var(--border-color)
background none
}
}
&:empty {
display none
}
.emoji-picker-dropdown {
align-self stretch
button {
align-self stretch
height 100%
aspect-ratio 1
}
}
}
// GLITCH-SOC OPTIONS
.local-settings {
max-height 700px !important
width 100%
}
.glitch.local-settings__page {
padding 20px
}
.local-settings__navigation {
display flex
flex-direction column
padding 8px
background none
border-right 1px solid var(--border-color)
width auto
.local-settings__navigation__item:not(.close):not(.active) {
background none
}
.local-settings__navigation__item {
border 0
flex-direction column
padding-inline 8px
span {
font-size .8em
}
}
[href="/settings/preferences"] {
margin-block auto 10px
border-radius var(--radius)
border 1px solid var(--border-color)
}
}
}
}
}