Twitter fixes

Display whole images, display whole tweets, and various enhancements here and there

Você precisará instalar uma extensão como Tampermonkey, Greasemonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Userscripts para instalar este script.

Você precisará instalar uma extensão como o Tampermonkey para instalar este script.

Você precisará instalar um gerenciador de scripts de usuário para instalar este script.

(Eu já tenho um gerenciador de scripts de usuário, me deixe instalá-lo!)

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

(Eu já possuo um gerenciador de estilos de usuário, me deixar fazer a instalação!)

/* ==UserStyle==
@name           Twitter fixes
@namespace      zezombye.dev
@version        1.0.2
@description    Display whole images, display whole tweets, and various enhancements here and there
@author         Zezombye
@license        MIT
==/UserStyle== */

@-moz-document domain("x.com") {
    
    /*Display the whole images*/
    
    .r-4gszlv {
        background-size: contain;
    }
    
    /* Remove image border radius */
    
    article[data-testid="tweet"] > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(2) > div:nth-child(3) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) {
        border-radius: 0;
    }
    article[data-testid="tweet"] > div:nth-child(1) > div:nth-child(1) > div:nth-child(3) > div:nth-child(2) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) {
        border-radius: 0;
    }
    
    /* Remove image useless padding on tweets with 2+ images */
    
    /*article[data-testid="tweet"] > div:nth-child(1) > div:nth-child(1) > div:nth-child(3) > div:nth-child(2) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) div[data-testid="tweetPhoto"] > img,
    article[data-testid="tweet"] > div:nth-child(1) > div:nth-child(1) > div:nth-child(3) > div:nth-child(2) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) div[data-testid="tweetPhoto"] > div {
        position: relative;
    }
    
    article[data-testid="tweet"] div[style="padding-bottom: 56.25%;"] {
        padding-bottom: 0 !important;
    }
    article[data-testid="tweet"] div[style="padding-bottom: 56.25%;"] + div,
    article[data-testid="tweet"] div[style="padding-bottom: 56.25%;"] + div a,
    article[data-testid="tweet"] div[style="padding-bottom: 56.25%;"] + div div {
        position: relative;
    }*/
    
    /* Remove quote tweet border radius */
    
    article[data-testid="tweet"] > div:nth-child(1) > div:nth-child(1) > div > div:nth-child(2) > div > div > div[tabindex="0"][role="link"] {
        border-radius: 0;
    }
    
    /* Hide "subscribe to premium"*/
    
    div[aria-label="Trending"] div:has(> aside[aria-label="Subscribe to Premium"]),
    div[aria-label="Trending"] div:has(> div > div[data-testid="super-upsell-UpsellCardRenderProperties"]),
    div[aria-label="Trending"] div:has(> div > div[data-testid="super-upsell-UpsellButtonRenderProperties"]) {
        display: none;
    }
    div[aria-label="Trending"] div:has(> div > aside[aria-label="Subscribe to Premium to write your own longer posts"]) {
        display: none;
    }
    
    /* Hide "who to follow" */
        
    div[aria-label="Trending"] div:has(> div > aside[aria-label="Who to follow"]) {
        display: none;
    }
    
    /* Hide "suggested videos" */
    
    div[aria-label="Trending"] div:has(> div > div > div > div[data-testid^="suggested-video-card-"]) {
        display: none;
    }
    
    /* Hide trending tab */
    
    div[aria-label="Trending"] div:has(> section > div[aria-label="Timeline: Trending now"]) {
        display: none;
    }
    div[aria-label="Trending"] div:has(> div > div > div[aria-label="Loading timeline"]) {
        display: none;
    }
    
    /* Hide "today's news" tab */
    
    div[aria-label="Trending"] div:has(> div[data-testid="news_sidebar"]) {
        display: none;
    }
    
    /* Hide tos, privacy policy, etc */
    
    div[aria-label="Trending"] div:has(> nav[aria-label="Footer"]) {
        display: none;
    }
    
    /* Hide "new tweets" thing */
    
    div[aria-label="New posts are available. Push the period key to go to the them."] {
        display: none;
    }
    
    /* Hide "unread items" home icon */
    
    nav[role="navigation"] > a[data-testid="AppTabBar_Home_Link"] div[aria-label="undefined unread items"] {
        display: none;
    }
    
    /* Remove line clamp on long tweets */
    
    div[data-testid="tweetText"] {
        -webkit-line-clamp: unset !important;
    }
    
    /* Remove "show more" link */
    
    div[data-testid="tweet-text-show-more-link"], a[data-testid="tweet-text-show-more-link"], button[data-testid="tweet-text-show-more-link"]  {
        display: none;
    }
    
    /* Unstick "for you/following" */
    
    div[aria-label="Home timeline"] > div:nth-child(1) {
        position: unset;
    }
    
    /* Remove post prompt on home timeline */
    
    div[aria-label="Home timeline"] > div:nth-child(3) > div:has(div[data-testid="tweetTextarea_0_label"]) {
        display: none;
    }
    
    /* Remove "push notifications" prompt */
    
    div[aria-label="Timeline: Your Home Timeline"] > div > div:has(>div > div > div > div[data-testid="inlinePrompt"] > div[data-testid="inlinePrompt-primaryAction"]) {
        display: none;
    }
    
    /* Remove "verified accounts can reply" */
    
    div:has(> div[aria-live="polite"][role="status"] > div > div > a[href="/i/premium_sign_up"]) {
        display: none;
    }
    
    /* Remove jobs on profile */
    
    div[data-testid="jobs"] {
        display: none;
    }
    
    /* Remove useless stuff on profile */
    
    button[aria-label="Send a tip"] {
        display: none;
    }
    
    button[aria-label^="Subscribe to @"] {
        display: none;
    }
    
    /* Remove useless stuff from the sidebar */
    
    nav[aria-label="Primary"] > a[data-testid="AppTabBar_Explore_Link"] {
        display: none;
    }
    nav[aria-label="Primary"] > a[data-testid="AppTabBar_Follow_Link"] {
        display: none;
    }
    nav[aria-label="Primary"] > a[data-testid="jobs-tab-item"] {
        display: none;
    }
    nav[aria-label="Primary"] > a[data-testid="premium-business-signup-tab"] {
        display: none;
    }
    nav[aria-label="Primary"] > a[data-testid="premium-signup-tab"] {
        display: none;
    }
    nav[aria-label="Primary"] > a[data-testid="vo-signup-tab"] {
        display: none;
    }
    nav[aria-label="Primary"] > a[aria-label="Creator Studio"] {
        display: none;
    }
    
    
    /* Remove grok suggestions on tweets */
    
    article[data-testid="tweet"] div:has(> nav[role="navigation"] > div > div[data-testid="ScrollSnap-SwipeableList"]) {
        display: none;
    }
    
    /* Remove grok buttons */
    
    /*article[data-testid="tweet"] button[aria-label="Grok actions"] {
        display: none;
    }*/
    
    /*div[data-testid="GrokDrawer"] {
        display: none;
    }*/
    
    /* Remove annoying glow on grok + msg drawer */
    
    div[data-testid="GrokDrawer"] > div, div[data-testid="chat-drawer-main"] {
        box-shadow: none;
    }
    div[data-testid="GrokDrawer"] > div {
        border: 1px solid hsl(var(--color-gray-400));
    }
    
    /* Remove "Discover more" */
    
    div[aria-label="Timeline: Conversation"] > div > div:has(> div > div > div > h2[role="heading"]):has(> div > div > div > div > span) {
        display: none;
        & ~ div {
            display: none;
        }
    }
    
    
    /* ----- Mobile stuff ----- */
    
    /* Unstick navbar */
    div#layers div:has(div[data-testid="TopNavBar"]):has([data-testid="DashButton_ProfileIcon_Link"]) {
        position: relative;
    }
    /* Stick navbar when it has the back button (eg when viewing a post)*/
    div[data-testid="TopNavBar"] {
        
        transform: none !important;
        backdrop-filter: none;
        background-color: black;
        &:has([data-testid="app-bar-back"]) {
            border-bottom: 1px solid rgb(47, 51, 54);
        }
    }
    /* Remove the "new posts" blue bubble */
    div[data-testid="TopNavBar"] ~ div {
        display: none;
    }
    
        
    
    
}