Twitter - Clean 2019 Design (Now With Light Blue™)

It's same new Twitter, except much cleaner and little bit better.

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

/* ==UserStyle==
@name           Twitter - Clean 2019 Design (Now With Light Blue™)
@description    It's same new Twitter, except much cleaner and little bit better.
@author         krisu (https://github.com/krisu5)
@namespace      github.com/krisu5/userstyles
@homepageURL    https://github.com/krisu5/userstyles/tree/master/Twitter%20-%20Clean%202019%20Design%20(Now%20With%20Light%20Blue)
@supportURL     https://github.com/krisu5/userstyles/issues
@version        1.5.0
@license        unlicense
@preprocessor   stylus
@var checkbox   enable-light-blue   "Enable light blue colors for 'Default' theme"   1


<--------------------------------------------- NOTE --------------------------------------------->

Read about recommended uBlock filterlist! Otherwise, not all of the annoying elements are blocked!

Visit this page for more info (copy & paste it to new tab):
https://github.com/krisu5/userstyles/tree/master/Twitter%20-%20Clean%202019%20Design%20(Now%20With%20Light%20Blue)#notes

<------------------------------------------------------------------------------------------------>


==/UserStyle== */

@-moz-document domain("twitter.com") {

/* --------- Global Values, Light Blue Color Stylings, Blocked Elements, Tweaks ---------- */

:root {
    --thin-scrollbar: 8px;
    --twitter-scrollbar-color-1: rgb(247, 249, 249); /* Twitter's default `scrollbar-color` CSS color #1 */
    --twitter-scrollbar-color-2: rgb(185, 202, 211); /* Twitter's default `scrollbar-color` CSS color #2 */
}

/* ===================================================================
   ====== [TOGGLE] Enable light blue colors for 'Default' theme ======
   =================================================================== */

if enable-light-blue {
    /* v--- Body background & sidebar's search form BG fix ---v */
    body[style^="background-color: rgb(255"],
    body[style^="background-color: #FFFFFF"],
    body[style^="background-color: rgb(255"] div[data-testid="sidebarColumn"] form[role="search"],
    body[style^="background-color: #FFFFFF"] div[data-testid="sidebarColumn"] form[role="search"]
    {
        background-color: rgba(24, 161, 242, 0.05) !important;
    }

    /* v--- Search form #1 [SIDEBAR] ---v */
    body[style^="background-color: rgb(255"] div[data-testid="sidebarColumn"] form[role="search"] > div > div,
    body[style^="background-color: #FFFFFF"] div[data-testid="sidebarColumn"] form[role="search"] > div > div
    {
        background-color: #fff !important;
    }

    /* v--- Search form #2 [SIDEBAR] ---v */
    body[style^="background-color: rgb(255"] div[data-testid="sidebarColumn"] form[role="search"]:not(:focus-within) > div > div,
    body[style^="background-color: #FFFFFF"] div[data-testid="sidebarColumn"] form[role="search"]:not(:focus-within) > div > div
    {
        border-color: rgba(207, 217, 222, 0.55) !important;  
    }
    
    /* v--- Search suggestions box [SIDEBAR] ---v */
    body[style^="background-color: rgb(255"] div[data-testid="sidebarColumn"] form[role="search"] div[style^="left:"][style*="width:"], /* Empty #1 */
    body[style^="background-color: #FFFFFF"] div[data-testid="sidebarColumn"] form[role="search"] div[style^="left:"][style*="width:"], /* Empty #2 */
    body[style^="background-color: rgb(255"] div[data-testid="sidebarColumn"] form[role="search"] [id^="typeaheadDropdown"]:not([role="listbox"]), /* With search suggestions #1 */
    body[style^="background-color: #FFFFFF"] div[data-testid="sidebarColumn"] form[role="search"] [id^="typeaheadDropdown"]:not([role="listbox"])  /* With search suggestions #2 */
    {
        box-shadow: rgba(101, 119, 134, 0.05) 0px 0px 10px, rgba(101, 119, 134, 0.09) 0px 0px 3px 1px !important;
    }

    /* v--- Missing BG to sections [SETTINGS] ---v */ 
    body[style^="background-color: rgb(255"] section[aria-label="Section navigation"],
    body[style^="background-color: #FFFFFF"] section[aria-label="Section navigation"],
    body[style^="background-color: rgb(255"] section[aria-label="Section details"],
    body[style^="background-color: #FFFFFF"] section[aria-label="Section details"]
    {
        background: #fff !important;
    }
}
    
/* ==============================
   ====== Blocked elements ======
   ============================== */
   
nav a[href="/i/twitter_blue_sign_up"], /* <--- "Twitter Blue" promo [NAVIGATION] */

section[aria-labelledby^="accessible-list"] a[href^="/search?q="][href*="&f=user"], /* <--- "See more" link [SEARCH PAGE] */

div[role="menu"] a[href^="https://ads.twitter.com/"], /* <--- "Promote Mode" & "Twitter Ads" menu links [MORE MENU] */

div[role="menu"] a[href^="/i/newsletters"], /* <--- "Newsletters" menu link (promo for Revue) [MORE MENU] */

div[aria-labelledby="modal-header"][aria-modal="true"] > div:nth-child(2), /* <--- Another Revue promo (after pressing "+" button) [TWEET COMPOSE MODAL] */

div[aria-label^="Timeline:"]:not([aria-label$="Explore"]) div[style*="position: absolute;"] .r-109y4c4.r-1p6iasa:empty, /* <--- Light gray seperator [TIMELINES] */

div[aria-label="Timeline: Explore"] a[href^="/i/connect_people"], /* <--- "Show more" link [EXPLORE PAGE] */

div[data-testid="sidebarColumn"] .css-1dbjc4n.r-1867qdf.r-1phboty.r-rs99b7.r-1udh08x:not(.r-14lw9ot):not(.r-18bvks7):not(.r-1kqtdi0), /* <--- "What's happening" / "Who to follow" boxes [SIDEBAR] */

div[data-testid="sidebarColumn"] [aria-label="Timeline: Trending now"], /* <--- "What's happening" box (just in case) [SIDEBAR] */

div[data-testid="primaryColumn"] aside[aria-label="Who to follow"], /* <--- "Suggested" box [PROFILE BIO] */

/* v--- "Who to follow" boxes [PROFILE TIMELINE] ---v */ 
div[aria-label^="Timeline: "][aria-label$="’s Tweets"] div .r-1or9b2r:empty,
div > .css-1dbjc4n.r-qklmqi.r-1adg3ll > .css-1dbjc4n.r-1wtj0ep,
div[aria-label^="Timeline:"]:not([aria-label$="Explore"]) div[data-testid="UserCell"],
div.css-1dbjc4n.r-1adg3ll > a[href^="/i/related_users/"],
div[aria-label^="Timeline:"]:not([aria-label$="Explore"]) > div > div[style^="position: absolute;"] > * > div:empty
{
    display: none !important;
}


/* ====================
   ====== Tweaks ====== 
   ==================== */
  
div[data-testid="sidebarColumn"] form[role="search"] { /* <--- Search form [SIDEBAR] */
    padding-top: 15px;
    margin-top: -7px;
}

/* v--- Search suggestions box [SIDEBAR / EXPLORE] ---v */
form[role="search"] > div:nth-child(2) > div:not([id^="typeaheadDropdown"]), /* Empty */
form[role="search"] [id^="typeaheadDropdown"] /* With search suggestions */
{
    margin-top: 10px;
    border-radius: 10px;
    scrollbar-width: thin; /* Experimental CSS, Firefox only for now */
}

[role="search"] [style="width: 374px;"] { /* <--- Div before "search suggestion box" [SIDEBAR / EXPLORE] */
    width: 350px !important;
}

[data-testid="typeaheadEmptySearch"] { /* <--- Search suggestion box, "Try searching ..." text [SIDEBAR / EXPLORE] */
    padding-top: 36px !important;
}

form[role="search"] [id^="typeaheadDropdown"]::-webkit-scrollbar { /* <--- Scrollbar #1, Chromium & Safari only [SEARCH SUGGESTIONS BOX] */
    width: var(--thin-scrollbar);
    background: var(--twitter-scrollbar-color-1);
}
    
form[role="search"] [id^="typeaheadDropdown"]::-webkit-scrollbar-thumb { /* <--- Scrollbar #2, Chromium & Safari only [SEARCH SUGGESTIONS BOX] */
    background: var(--twitter-scrollbar-color-2);
}

nav[aria-label="Footer"] [role="button"] { /* <--- Push Twitter copyright text more down [FOOTER] */
    padding-bottom: 11px;
}

div[data-testid="card.wrapper"] { /* <--- Link with thumbnail left or top [TWEETS] */
    margin-top: 1px;
    margin-bottom: 1px;
}

div[data-testid="previewInterstitial"] * { /* <--- For videos / GIFs, prevents accidental selecting [TWEETS] */
    -moz-user-select: none;
    -webkit-user-select: none;
    user-select: none;
}

[data-testid="socialContext"] { /* <--- "X Retweeted / Liked" etc. text [TWEETS] */
    font-weight: normal !important;
}

div[aria-label="Timeline: Notifications"] div:not([role="button"]) svg { /* <--- Retweet / like / follower notification icons [NOTIFICATIONS] */
    height: 1.45em;
}
    
/* v--- Direct message sections [MESSAGES] ---v */
section[aria-label="Section navigation"] div,
section[aria-label="Section details"] div
{
    scrollbar-width: thin; /* Experimental CSS, Firefox only for now */
}

/* v--- Scrollbar #1, Chromium & Safari only [MESSAGES] ---v */
section[aria-label="Section navigation"] div::-webkit-scrollbar,
section[aria-label="Section details"] div::-webkit-scrollbar {
    width: var(--thin-scrollbar);
    background: var(--twitter-scrollbar-color-1);
}

/* v--- Scrollbar #2, Chromium & Safari only [MESSAGES] ---v */
section[aria-label="Section navigation"] div::-webkit-scrollbar-thumb,
section[aria-label="Section details"] div::-webkit-scrollbar-thumb {
    background: var(--twitter-scrollbar-color-2); 
}

@media (min-width: 1282px) {
    
/* v--- Toaster alert ---v */
    div[data-testid="toast"] {
        border-radius: 15px 15px 0 0;
        width: 600px;
        margin: 0 0 0 -114px;
    }
    
    div[data-testid="toast"] > div {
        padding-left: 0;
        padding-right: 0;
        text-align: center;
    }
    
    div[data-testid="toast"] > div > span {
        width: 580px;
        display: block;
    }
}
}

@-moz-document regexp(".*\\://twitter.com/settings/.*") {
/* ======================================
   ====== Toaster alert [SETTINGS] ======
   ====================================== */

@media (min-width: 1282px) {
    div[data-testid="toast"] {
        width: 990px;
        margin: 0 0 0 272px;
    }
    
    div[data-testid="toast"] > div > span {
        width: 970px;
        display: block;
    }
}
}

@-moz-document regexp(".*\\://twitter.com/settings/.*"), regexp(".*\\://twitter.com/.*(?<!intent)\\/follow.*"), regexp(".*\\://twitter.com/.*\\/status/.*\\/(likes|retweets).*"), regexp(".*\\://twitter.com/(search|hashtag).*[?&]f=user.*"), regexp(".*\\://twitter.com/.*\\/lists/.*\\/members"), regexp(".*\\://twitter.com/.*\\/communities/.*\\/about"), regexp(".*\\://twitter.com/follower_requests") {
/* ==========================
   ====== Whitelist #1 ======
   ========================== */

div[aria-label^="Timeline:"]:not([aria-label$="Explore"]) div[data-testid="UserCell"] { /* <--- WHITELISTED: "Who to follow" boxes [PROFILE TIMELINE] ---v */
    display: flex !important;
}
}

@-moz-document regexp(".*\\://twitter.com/.*\\/(status|moment|topics|events|lists).*") {
/* ==========================
   ====== Whitelist #2 ======
   ========================== */

/* v--- WHITELISTED: "Who to follow" boxes [PROFILE TIMELINE] ---v */ 
div > .css-1dbjc4n.r-qklmqi.r-1adg3ll > .css-1dbjc4n.r-1wtj0ep,
div.css-1dbjc4n.r-1adg3ll > a[href^="/i/related_users/"]
{
    display: flex !important;
}
}

@-moz-document regexp(".*\\://twitter.com/i/events.*"), regexp(".*\\://twitter.com/.*\\/topics/.*"), regexp(".*\\://twitter.com/.*\\/communities.*") {
/* ==========================
   ====== Whitelist #3 ======
   ========================== */

div[aria-label^="Timeline:"]:not([aria-label$="Explore"]) div[style*="position: absolute;"] .r-109y4c4.r-1p6iasa:empty { /* <--- WHITELISTED: Light gray seperator [TIMELINES] */
    display: flex !important;
}
}