Last active
December 30, 2023 07:15
-
-
Save watatomo/aef58df4228cf5a7c36e9e967ca8b015 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* ==UserStyle== | |
@name Twitter Catppuccin | |
@namespace github.com/watatomo | |
@version 1.0.0 | |
@description Works best with twitter on lights out mode, blue color selected | |
@author Ren (watatomo) | |
@preprocessor stylus | |
@var select theme "Theme" ["Latte", "Frappe", "Macchiato", "Mocha*"] | |
@var select accent "Accent" ["Rosewater", "Flamingo", "Pink", "Mauve", "Red", "Maroon", "Peach", "Yellow", "Green", "Teal", "Blue*", "Sapphire", "Sky", "Lavender"] | |
==/UserStyle== */ | |
@-moz-document domain("twitter.com") { | |
if (theme == "Latte") { | |
$rosewater = #dc8a78; | |
$flamingo = #dd7878; | |
$pink = #ea76cb; | |
$mauve = #8839ef; | |
$red = #d20f39; | |
$maroon = #e64553; | |
$peach = #fe640b; | |
$yellow = #df8e1d; | |
$green = #40a02b; | |
$teal = #179299; | |
$sky = #04a5e5; | |
$sapphire = #209fb5; | |
$blue = #1e66f5; | |
$lavender = #7287fd; | |
$text = #4c4f69; | |
$subtext1 = #5c5f77; | |
$subtext0 = #6c6f85; | |
$overlay2 = #7c7f93; | |
$overlay1 = #8c8fa1; | |
$overlay0 = #9ca0b0; | |
$surface2 = #acb0be; | |
$surface1 = #bcc0cc; | |
$surface0 = #ccd0da; | |
$base = #eff1f5; | |
$mantle = #e6e9ef; | |
$crust = #dce0e8; | |
} else if (theme=="Frappe") { | |
$rosewater = #f2d5cf; | |
$flamingo = #eebebe; | |
$pink = #f4b8e4; | |
$mauve = #ca9ee6; | |
$red = #e78284; | |
$maroon = #ea999c; | |
$peach = #ef9f76; | |
$yellow = #e5c890; | |
$green = #a6d189; | |
$teal = #81c8be; | |
$sky = #99d1db; | |
$sapphire = #85c1dc; | |
$blue = #8caaee; | |
$lavender = #babbf1; | |
$text = #c6d0f5; | |
$subtext1 = #b5bfe2; | |
$subtext0 = #a5adce; | |
$overlay2 = #949cbb; | |
$overlay1 = #838ba7; | |
$overlay0 = #737994; | |
$surface2 = #626880; | |
$surface1 = #51576d; | |
$surface0 = #414559; | |
$base = #303446; | |
$mantle = #292c3c; | |
$crust = #232634; | |
} else if (theme=="Macchiato") { | |
$rosewater = #f4dbd6; | |
$flamingo = #f0c6c6; | |
$pink = #f5bde6; | |
$mauve = #c6a0f6; | |
$red = #ed8796; | |
$maroon = #ee99a0; | |
$peach = #f5a97f; | |
$yellow = #eed49f; | |
$green = #a6da95; | |
$teal = #8bd5ca; | |
$sky = #91d7e3; | |
$sapphire = #7dc4e4; | |
$blue = #8aadf4; | |
$lavender = #b7bdf8; | |
$text = #cad3f5; | |
$subtext1 = #b8c0e0; | |
$subtext0 = #a5adcb; | |
$overlay2 = #939ab7; | |
$overlay1 = #8087a2; | |
$overlay0 = #6e738d; | |
$surface2 = #5b6078; | |
$surface1 = #494d64; | |
$surface0 = #363a4f; | |
$base = #24273a; | |
$mantle = #1e2030; | |
$crust = #181926; | |
} else if (theme=="Mocha") { | |
$rosewater = #f5e0dc; | |
$flamingo = #f2cdcd; | |
$pink = #f5c2e7; | |
$mauve = #cba6f7; | |
$red = #f38ba8; | |
$maroon = #eba0ac; | |
$peach = #fab387; | |
$yellow = #f9e2af; | |
$green = #a6e3a1; | |
$teal = #94e2d5; | |
$sky = #89dceb; | |
$sapphire = #74c7ec; | |
$lavender = #b4befe; | |
$blue = #89b4fa; | |
$text = #cdd6f4; | |
$subtext1 = #bac2de; | |
$subtext0 = #a6adc8; | |
$overlay2 = #9399b2; | |
$overlay1 = #7f849c; | |
$overlay0 = #6c7086; | |
$surface2 = #585b70; | |
$surface1 = #45475a; | |
$surface0 = #313244; | |
$base = #1e1e2e; | |
$mantle = #181825; | |
$crust = #11111b; | |
} | |
if (accent == "Rosewater") { | |
$accent = $rosewater | |
} else if (accent == "Flamingo") { | |
$accent = $flamingo | |
} else if (accent == "Pink") { | |
$accent = $pink | |
} else if (accent == "Mauve") { | |
$accent = $mauve | |
} else if (accent == "Red") { | |
$accent = $red | |
} else if (accent == "Maroon") { | |
$accent = $maroon | |
} else if (accent == "Peach") { | |
$accent = $peach | |
} else if (accent == "Yellow") { | |
$accent = $yellow | |
} else if (accent == "Green") { | |
$accent = $green | |
} else if (accent == "Teal") { | |
$accent = $teal | |
} else if (accent == "Blue") { | |
$accent = $blue | |
} else if (accent == "Sapphire") { | |
$accent = $sapphire | |
} else if (accent == "Sky") { | |
$accent = $sky | |
} else if (accent == "Lavender") { | |
$accent = $lavender | |
} | |
body, | |
.PageContainer { | |
background-color: $base !important; | |
color: $text; | |
} | |
a { | |
color: $accent; | |
} | |
[data-testid="primaryColumn"], | |
.r-kemksi, | |
.r-yfoy6g { | |
background-color: $base; | |
} | |
.r-cqee49 { | |
color: $base; | |
} | |
html .ResponsiveLayout--Night, | |
.r-54znze { | |
color: $text; | |
} | |
// ??? | |
#session a, #session input, #session button { | |
background: $surface0; | |
color: $subtext0; | |
} | |
#session .user-menu a:focus, #session .user-menu a:hover, #session .user-menu button:focus, #session .user-menu button:hover, #session .user-menu input:focus, #session .user-menu input:hover { | |
color: theme is "Latte" ? #fff : $crust; | |
background-color: $accent; | |
} | |
.notice, .notice p, h2 { | |
color: $subtext1; | |
} | |
.notice.error { | |
background: alpha($red, 20%) | |
border-color: alpha($red, 25%); | |
} | |
// report page? why isn't this themed | |
.ResponsiveLayout--Night .PageContainer { | |
background-color: $base; | |
} | |
.list-explanation { | |
color: $subtext0; | |
} | |
.ResponsiveLayout--Night .list-btn { | |
&:first-of-type { | |
border-top-color: $mantle; | |
} | |
&:hover { | |
background-color: $mantle; | |
} | |
} | |
.submit-btn { | |
background-color: $accent; | |
color: theme is "Latte" ? #fff : $crust; | |
border-color: darken($accent, 10%); | |
} | |
.submit-btn:hover, .redirect-btn:hover { | |
background-color: $overlay2; | |
} | |
.block-btn { | |
color: $maroon; | |
border-color: $maroon; | |
} | |
.mute-btn, .unfollow-btn, .email-report-btn { | |
color: $accent; | |
border-color: $accent; | |
} | |
.list-btn { | |
border-color: $surface1; | |
&:first-of-type { | |
border-top-color: $surface1; | |
} | |
&:hover { | |
background-color: $surface0; | |
} | |
} | |
.submit-btn:hover, .redirect-btn:hover { | |
background-color: darken($accent, 10%); | |
} | |
// authorize page | |
/// | |
.js #session .user-menu { | |
background-color: $surface0; | |
} | |
.dropdown-caret .caret-outer, | |
.dropdown-caret .caret-inner { | |
border-bottom-color: $surface0; | |
} | |
/// | |
.r-jc7xae { | |
background-color: $subtext0; | |
} | |
// hovered elements? | |
.r-1hdo0pc { | |
background-color: alpha($subtext1, 0.1); | |
} | |
// header | |
.r-5zmot { | |
background-color: alpha($base, 0.65); | |
} | |
// search bar | |
.r-z32n2g, | |
.r-8erxvq, | |
// side containers | |
.r-g2wdr4, | |
.r-g6ijar { | |
background-color: $mantle; | |
} | |
body.LightsOut .tnt_menu_item:hover a { | |
background-color: $mantle !important; | |
} | |
// active? | |
.r-14tof1o { | |
background-color: $crust; | |
} | |
// side containers borders | |
.r-14wv3jr, | |
.r-74htps { | |
border-color: $mantle; | |
} | |
// main border | |
[data-testid="primaryColumn"], | |
.r-1kqtdi0, | |
.r-1roi411 { | |
border-color: $surface1; | |
} | |
.r-gu4em3, | |
.r-1bnu78o { | |
background-color: $surface1; | |
} | |
.r-2sztyj { | |
border-top-color: $surface1; | |
} | |
.r-1igl3o0 { | |
border-bottom-color: $surface1; | |
} | |
// accent text | |
.r-1cvl2hr { | |
color: $accent; | |
} | |
// accent element | |
.r-l5o3uw, | |
// .r-4nw3r4, | |
.r-1to6hqq { | |
background-color: $accent; | |
} | |
.r-4nw3r4 { | |
background-color: $red; | |
} | |
[data-testid="SideNav_NewTweet_Button"] { | |
background-color: $accent !important; | |
> div * { | |
color: theme is "Latte" ? #fff !important : $crust !important; | |
} | |
} | |
// accent element when hovered | |
.r-1vtznih { | |
background-color: darken($accent, 10%); | |
} | |
// accent element with accent bg | |
.r-jwli3a, | |
[data-testid="tweetButtonInline"] span { | |
color: theme is "Latte" ? #fff : $crust; | |
} | |
.r-vhj8yc { | |
border-color: $accent; | |
} | |
.r-1pbtemp { | |
border-right-color: $accent; | |
} | |
// unset for image containers and stuff | |
[data-testid="tweetPhoto"], | |
a[href*="/i/events/"], | |
a ~ div:has(.r-jwli3a), | |
[style="transition-duration: 0.5s; transition-property: background-color;"], | |
// [role="presentation"], | |
[data-testid*="Carousel-Nav"], | |
[data-testid="reply"], | |
[data-testid="retweet"], | |
[data-testid="like"], | |
[data-testid="unlike"], | |
[aria-label="Share Tweet"], | |
[aria-label="Remove media"], | |
[aria-label="Edit media"], | |
h1 > a[href="/home"], | |
nav[aria-label="Edit photo"] ~ div:has(.r-jwli3a), | |
.r-drfeu3, | |
.r-19130f6, | |
[style*="background-color"][style*="(15"][style*="20"][style*="25"][style*="0.75)"], | |
[data-testid="placementTracking"], | |
.r-5i3rd4 | |
{ | |
.r-jwli3a { | |
color: #fff; | |
} | |
} | |
[data-testid="playButton"] .r-jwli3a { | |
color: $crust; | |
} | |
// .r-1habvwh [data-testid="messageEntry"] [data-testid="tweetText"], | |
// [data-testid="messageEntry"] [data-testid="DMCompositeMessage"] a, | |
// .r-gu4em3 a { | |
// color: $text !important; | |
// } | |
// [data-testid="messageEntry"] [data-testid="tweetText"][style*="color"][style*="(255"][style*="255"][style*="255)"] { | |
// &, | |
// a { | |
// color: theme is "Latte" ? #fff !important : $crust !important; | |
// } | |
// } | |
.css-1dbjc4n.r-1fz3rvf [data-testid="tweetText"] { | |
color: $text; | |
} | |
.r-qazpri { | |
color: $overlay0; | |
} | |
// spoiler blur | |
.r-drfeu3 { | |
background-color: alpha($crust, 0.6) | |
} | |
// main text | |
.r-1nao33i, | |
.r-vlxjld, | |
[data-testid="app-bar-back"], | |
.r-1nao33i, | |
.r-13v1u17 { | |
color: $text; | |
} | |
[aria-label="Top Tweets off"] * { | |
color: $text !important; | |
} | |
// subdued text | |
.r-1bwzh9t, | |
.r-115tad6, | |
.r-1bwzh9t { | |
color: $overlay1; | |
} | |
input[data-testid="SearchBox_Search_Input"], | |
.draftjs-styles_0 .public-DraftEditorPlaceholder-root, | |
.r-1bwzh9t, | |
[data-testid="tweet"] a.r-1bwzh9t { | |
color: $overlay0; | |
} | |
// follow button | |
[role="button"][data-testid*="-follow"] { | |
background-color: $text !important; | |
} | |
// follow indicator | |
[data-testid="userFollowIndicator"] { | |
background-color: $surface0; | |
} | |
// buttons | |
#topic-follow-button0, | |
[data-testid*="-unfollow"], | |
[data-testid="editProfileButton"] { | |
border-color: $surface2 !important; | |
> div { | |
color: $text !important; | |
} | |
} | |
[aria-label="Choose audience"] { | |
border-color: $surface2 !important; | |
} | |
[data-testid*="-unfollow"]:hover { | |
border-color: $maroon; | |
> div { | |
color: $maroon !important; | |
} | |
} | |
// red overlay | |
.r-qqmkd0 { | |
background-color: alpha($maroon, 0.15) | |
} | |
// dm module shadow | |
.r-qo02w8 { | |
box-shadow: alpha($text, 0.2) 0px 0px 15px, alpha($text, 0.15) 0px 0px 3px 1px; | |
} | |
// shadow ig | |
.r-1tbvlxk { | |
filter: drop-shadow(alpha($text, 0.3) 0 2.5px 2px); | |
} | |
// retweet svg | |
.r-o6sn0f { | |
color: $green; | |
} | |
// like svg | |
.r-vkub15 { | |
color: $red; | |
} | |
// circles | |
.r-s224ru { | |
background-color: $green; | |
} | |
.r-h7o7i8 { | |
background-color: alpha($green, 0.1); | |
} | |
// twitter yellow LMAO | |
.r-jopxes { | |
color: $yellow; | |
} | |
// new notifications? | |
.r-1eltapf { | |
background-color: alpha($sapphire, 0.1); | |
} | |
.r-9l7dzd { | |
color: $maroon; | |
} | |
#header[role="banner"] { | |
background: $base; | |
color: $text; | |
border-bottom-color: $surface1; | |
.logo a { | |
border-bottom-color: transparent; | |
} | |
#session h2 { | |
a { | |
color: $subtext0; | |
background: unset; | |
} | |
img { | |
border-color: $surface1; | |
} | |
} | |
} | |
[role="navigation"].footer { | |
background: $mantle; | |
border-top-color: $surface1; | |
#ft { | |
color: $overlay1; | |
} | |
} | |
.teams label { | |
color: $overlay1; | |
} | |
// a:link, a:visited, a:active, input.textual.link, button.textual.link { | |
// color: $accent; | |
// } | |
// ? | |
[stroke="#2F3336"] { | |
stroke: $surface2 !important; | |
} | |
[stroke="#1D9BF0"] { | |
stroke: $accent !important; | |
} | |
[stroke="#FFD400"] { | |
stroke: $yellow !important; | |
} | |
[fill="#829AAB"] { | |
fill: $overlay2 !important; | |
} | |
.r-12bvdwa { | |
color: $mauve; | |
} | |
.r-1xc7w19 { | |
border: 1px solid $base; | |
} | |
.css-1dbjc4n.r-gtdqiz.r-ipm5af.r-136ojw6 > div { | |
backdrop-filter: blur(12px); | |
} | |
[style*="color"][style*="255"][style*="212"][style*="0"] { | |
color: $yellow !important; | |
} | |
[style*="color"][style*="0"][style*="186"][style*="124"] { | |
color: $green !important; | |
} | |
[style*="color"][style*="249"][style*="24"][style*="128"] { | |
color: $red !important; | |
} | |
[style*="color"][style*="120"][style*="86"][style*="255"] { | |
color: $mauve !important; | |
} | |
[style*="color"][style*="255"][style*="122"][style*="0"] { | |
color: $peach !important; | |
} | |
[style*="color"][style*="244"][style*="33"][style*="46"] { | |
color: $maroon !important; | |
} | |
[style*="color"][style*="29"][style*="155"][style*="240"] { | |
color: $accent !important; | |
} | |
[style*="color"][style*="15"][style*="20"][style*="25"]:not([style*="background-color"][style*="15"][style*="20"][style*="25"][style*="0.75"]) { | |
color: theme is "Latte" ? #fff !important : $crust !important; | |
} | |
[style*="background-color"][style*="29"][style*="155"][style*="240"] { | |
background-color: $accent !important; | |
} | |
[style*="background-color"][style*="239"][style*="243"][style*="244"] { | |
background-color: $text !important; | |
} | |
[style*="background-color"][style*="15"][style*="20"][style*="25"][style*="0.75"]:not([style*="color"][style*="15"][style*="20"][style*="25"]) { | |
background-color: alpha($base, 0.75) !important; | |
} | |
[style*="border-color"][style*="201"][style*="54"][style*="204"] { | |
border-color: $mauve !important; | |
} | |
[style*="border-color"][style*="83"][style*="100"][style*="113"] { | |
border-color: $surface2 !important; | |
} | |
[style*="background-color"][style*="(244"][style*="33"][style*="46)"] { | |
background-color: $maroon !important; | |
} | |
[style*="color"][style*="239"][style*="243"][style*="244"] { | |
color: $text !important; | |
} | |
[style*="border-bottom"][style*="(239"][style*="243"][style*="244)"] { | |
border-bottom-color: $text !important; | |
} | |
[style*="border-color"][style*="(103"][style*="7"][style*="15)"] { | |
border-color: $red !important; | |
} | |
[fill="#1d9bf0"] { | |
fill: $blue !important; | |
} | |
[aria-describedby^="CHECKBOX_"][aria-describedby$="_LABEL"], | |
.css-1dbjc4n.r-lrvibr, | |
.r-1p0dtai.r-1ei5mc7.r-1pi2tsx.r-1d2f490.r-crgep1.r-orgf3d.r-t60dpp.r-u8s1d.r-zchlnj.r-ipm5af.r-13qz1uu, | |
[style*="color"][style*="(255"][style*="255"][style*="255)"] { | |
color: theme is "Latte" ? #fff !important : $crust !important; | |
} | |
[class="css-1dbjc4n r-k200y r-gu4em3 r-6t5ypu r-1roi411 r-1fuqb1j r-deolkf r-dnmrzs r-1ny4l3l r-ymttw5 r-1f1sjgu r-o7ynqc r-6416eg"], | |
[class="css-901oao r-jwli3a r-37j5jr r-a023e6 r-16dba41 r-rjixqe r-bcqeeo r-1udh08x r-bnwqim r-fdjqy7 r-1rozpwm r-qvutc0"] { | |
span { | |
color: $text !important; | |
} | |
} | |
[class="css-1dbjc4n r-173mn98 r-l5o3uw r-1dpl46z r-vhj8yc r-1fuqb1j r-deolkf r-dnmrzs r-1ny4l3l r-ymttw5 r-1f1sjgu r-o7ynqc r-6416eg"], | |
[class="css-1dbjc4n r-173mn98 r-l5o3uw r-wab3e5 r-vhj8yc r-1fuqb1j r-deolkf r-dnmrzs r-1ny4l3l r-ymttw5 r-1f1sjgu r-o7ynqc r-6416eg"] { | |
span { | |
color: theme is "Latte" ? #fff !important : $crust !important; | |
} | |
} | |
} | |
@-moz-document domain("api.twitter.com") { | |
html { | |
background: $mantle; | |
} | |
#header { | |
color: $subtext0 | |
background: $base; | |
border-bottom-color: $surface1; | |
.logo a { | |
border-bottom-color: transparent; | |
} | |
#session { | |
a { | |
background: transparent; | |
color: $subtext0; | |
} | |
h2 img { | |
border-color: $surface1; | |
} | |
} | |
} | |
.footer { | |
background: $mantle; | |
border-top-color: $surface1; | |
} | |
.auth h2 { | |
color: $subtext1; | |
} | |
.oauth #bd { | |
border-color: $surface1; | |
} | |
.app-info h3 img { | |
border-color: $base; | |
} | |
.permissions.allow strong { | |
color: $green; | |
} | |
.button { | |
background: $overlay0; | |
color: $text; | |
border-color: $surface1; | |
&:hover { | |
color: $text; | |
border-color: $surface1; | |
background: darken($surface2, 10%); | |
} | |
} | |
.button.selected, .follow-button .unfollow .button { | |
background-color: $accent; | |
color: theme is "Latte" ? #fff : $crust; | |
border-color: darken($accent, 10%) | |
&:hover { | |
background-color: darken($accent, 10%); | |
} | |
} | |
.app-info, | |
#bd h3 { | |
color: $subtext0; | |
} | |
#ft { | |
color: $overlay0; | |
} | |
} | |
@-moz-document domain("twitter.com") { | |
// TWITTER MEDIA DOWNLOADER | |
body[data-nightmode="true"] .twMediaDownloader_media_button button.btn, | |
.twMediaDownloader_media_button button.btn { | |
background-color: $surface0; | |
border-color: $surface2; | |
color: $overlay2; | |
&:hover { | |
color: $text; | |
background-color: $surface1; | |
border-color: $overlay1 | |
} | |
} | |
.twMediaDownloader_download_button_container { | |
bottom: 0 !important; | |
} | |
.twMediaDownloader_download_button { | |
color: $accent; | |
text-decoration: none; | |
font-family: "TwitterChirp", "Meiryo", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; | |
font-weight: 400; | |
font-size: 12px; | |
} | |
#twMediaDownloader_container, | |
#twMediaDownloader_container.night_mode { | |
.btn { | |
background-color: $surface0; | |
color: $text; | |
border-color: $surface1; | |
&[disabled] { | |
color: $text; | |
background-color: $surface0; | |
background-image: linear-gradient($overlay1, $surface0); | |
border-color: $surface1; | |
} | |
} | |
.twMediaDownloader_dialog { | |
background: $crust; | |
.twMediaDownloader_toolbox { | |
background: $base; | |
.range_container { | |
h3 { | |
color: $subtext0; | |
} | |
table { | |
color: $text; | |
} | |
input { | |
padding: 4px; | |
color: $text; | |
&.tweet_id, | |
&.tweet_number { | |
color: $overlay1; | |
background: $mantle; | |
border: solid 1px $surface0; | |
} | |
} | |
} | |
.twMediaDownloader_button_container { | |
label { | |
color: $text; | |
} | |
} | |
} | |
.twMediaDownloader_status { | |
background: $mantle; | |
.twMediaDownloader_log { | |
color: $text; | |
background: $base; | |
border: inset $crust 1px; | |
.log-item { | |
text-shadow: unset; | |
a.tweet-link { | |
color: $red; | |
} | |
a.media-link { | |
color: $blue; | |
} | |
} | |
} | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment