Skip to content

Spotify Custom Flat by cheldux

Screenshot of Spotify Custom Flat

Details

Authorcheldux

LicenseMIT

Categoryopen.spotify.com

Created

Updated

Code size8.5 kB

Code checksuma97851b1

Statistics

Learn how we calculate statistics in the FAQ.

Failed to fetch stats.

Description

Flat theme with customizable colors

Notes

I'll probably check the Github repo from time to time if there's any issue.

No you can't change the color of the green moving bars when a song is playing it's a gif. nvm

Source code

/* ==UserStyle==
@name           Spotify Custom Flat
@namespace      github.com/openstyles/stylus
@license        MIT
@version        1.0.5
@description    Custom color theme for spotify
@author         cheldux
@preprocessor   stylus

@var checkbox hide_bg "Hide artists background picture" 0
@var checkbox use_custom_press "Use custom press color" 0
@var checkbox use_custom_bg "Use custom background color" 0
@var checkbox use_custom_border "Use custom border color" 0
@var color custom_color "Custom color" #214291
@var color custom_accent_color "Custom accent color" #2f5ed0
@var color custom_press_color "Custom press color" #2fd0c3
@var color custom_bg_color "Custom background color" #121212ff
@var color custom_border_color "Custom border color" #121212ff
@var range hue_shift_equalizer "Hue shift equalizer gif" [0, 0, 360, 1]
==/UserStyle== */
@-moz-document domain("open.spotify.com") {
    /*special thanks to regex and neovim*/
    /*I just kept parts of the official css
    that had their green colors and then
    changed them to the vars.
    I have zero idea what these selectors
    actually do.*/
    .KAZD28usA1vPz5GVpm63.RK45o6dbvO1mb0wQtSwq,
    .KAZD28usA1vPz5GVpm63.RK45o6dbvO1mb0wQtSwq:active:focus,
    .KAZD28usA1vPz5GVpm63.RK45o6dbvO1mb0wQtSwq:active:hover,
    .control-button--active:not(.control-button--disabled):active:focus,
    .control-button--active:not(.control-button--disabled):active:hover,
    .mWj8N7D_OlsbDgtQx5GW[role=menuitemradio][aria-checked=true] {
        color: custom_color;
    }

    .KAZD28usA1vPz5GVpm63.EHxL6K_6WWDlTCZP6x5w:after,
    .control-button--active-dot:after {
        background-color: custom_color;
    }

    .TywOcKZEqNynWecCiATc {
        --is-active-fg-color: custom_accent_color;
        --fg-color: custom_color;
    }

    .control-button--active {
        fill: custom_color;
        color: custom_color;
    }

    .KAZD28usA1vPz5GVpm63.RK45o6dbvO1mb0wQtSwq:focus,
    .KAZD28usA1vPz5GVpm63.RK45o6dbvO1mb0wQtSwq:hover,
    .control-button-heart[aria-checked=true],
    .control-button--active:not(.control-button--disabled):focus,
    .control-button--active:not(.control-button--disabled):hover {
        color: custom_accent_color;
    }

    /*that part was hand made for the
    elements that were still green or
    white, and also to remove all
    gradient parts of the UI.*/
    .encore-dark-theme,
    .encore-dark-theme .encore-base-set {
        --text-bright-accent: custom_color;
        --text-positive: custom_color;
        --essential-bright-accent: custom_color;
        --essential-positive: custom_color;
        if use_custom_bg {
            --background-base: custom_bg_color;
            /*hard to get the exact same colors
			but it's good enough*/
            --background-highlight: mix(custom_bg_color, #ffffff, 95%);
            --background-elevated-base: mix(custom_bg_color, #ffffff, 95%);
            --background-elevated-highlight: mix(custom_bg_color, #ffffff, 89%);
            --background-elevated-press: mix(custom_bg_color, #ffffff, 97%);
        }
        if use_custom_border {
            --background-press: custom_border_color;
        }
    }

    .encore-dark-theme .encore-bright-accent-set,
    .encore-dark-theme .encore-inverted-light-set {
        --background-base: custom_color;
        --background-highlight: custom_accent_color;
        if use_custom_press {
            --background-press: custom_press_color;
        }
        else {
            --background-press: mix(custom_color, custom_accent_color, 30%);
        }
    }

    .S4OmZ_IZexmZ5dasPqW5,
    .PeLrpasyfBW8ql_bmoAi,
    .PkOz5g82CaoKk1J3GX0e,
    .e-9640-button.e-9640-button-primary.encore-text-body-small-bold,
    .e-9640-button--leading.e-9640-button--small.e-9640-overflow-wrap-anywhere.encore-text-body-small-bold.hgbBnc.Button-sc-1dqy6lx-0 {
        display: none;
    }

    .T1xI1RTSFU7Wu94UuvE6,
    .EvIR4O7jOSbNmxtMdIQ0,
    .cj6vRk3nFAi80HSVqX91,
    .esBjsh {
        if use_custom_bg {
            background-color: custom_bg_color;
        }
        else {
            background-color: #121212;
        }
    }

    .hIFR8WDm_54EEIa1gwpC,
    .XVz4BMGP5zAEE5p90mYK,
    .Bdcf5g__Rug3TGqSdbiy,
    .aaFQbW0j0N40v_siz0kX::before {
        display: none !important;
    }

    .Z35BWOA10YGn5uc9YgAp,
    .kcRGDn::after {
        background-color: inherit;
        transition: none;
    }

    if use_custom_bg {
        .NbcaczStd8vD2rHWwaKv {
            background-color: mix(custom_bg_color, custom_color, 90%);
        }
    }

    .Z35BWOA10YGn5uc9YgAp:hover,
    .kcRGDn:hover::after {
        if use_custom_bg {
            background-color: mix(custom_bg_color, custom_color, 80%);
        }
        else {
            background-color: mix(#121212, custom_color, 80%);
        }
    }

    if use_custom_border {
        .ZQftYELq0aOsg6tPbVbV,
        .wp7mZFPzV7Qmo51F0NA_ {
            background-color: custom_border_color !important;
        }
    }

    .e-9640-logo {
        fill: custom_color;
    }

    .EmeHQXR87mUskYK6xEde {
        isolation: inherit;
    }

    .encore-internal-color-text-subdued {
        color: inherit;
    }

    /*I said flat*/
    .nYdM55iHFByRTzJUmx9X,
    .tippy-box[data-theme~=activation],
    .tp8rO9vtqBGPLOhwcdYv.BzunmwrVMyWGpopPJRt2:after,
    .NbcaczStd8vD2rHWwaKv,
    .vreceNX3ABcxyddeS83B,
    .hykQHtPI6EeFREwqRrOR,
    .R1LAYqlvoHyvSWVzo0lh,
    .JMFuNKBYyJzmnXyTJ5Bg,
    .FeEAKmWk_VtR7jCawvei,
    .V5kle5COkVEN5X6CkL7q,
    .xlLQHgpip3xYOwRYpwun,
    .GimJ6fo6WOYPyWNVpSr1,
    .b7r2WRiu5f9Q99qmyreh:hover .CVuGEUIxLkNKpMds8AFS,
    .b7r2WRiu5f9Q99qmyreh .CVuGEUIxLkNKpMds8AFS,
    .b7r2WRiu5f9Q99qmyreh .CVuGEUIxLkNKpMds8AFS:focus,
    .k4sYYpEpX2f7RMAPHv3F,
    ._w3sHVCUhYgvQar5WNHw:before,
    .woJQ5t2YiaJhjTv_KE7p,
    .GOcsybnoHYyJGQGDRuwj,
    .NI1OxoVdokxENPAjoeOk,
    .mxGhI8Lr7MoGOnFrbsUa.BHHXR8xc6m009ohY6aKU,
    ._EShSNaBK1wUIaZQFJJQ,
    ._2ajKWDiy6YvJu5wo8I1g.IpXjqI9ouS_N5zi0WM88,
    .DquSH3YjnaIIXMZiOvwA,
    .LAdTOeZ2QwKXGF4XAXZ8,
    .XvgFwKtvocRdadc47KE9:focus-visible,
    .XTygmcBFgNjoo0ckBBll,
    .JEd1tp9FdtDLBOCRSVe0,
    .H0HbpIM3UrcupWIAjLWu,
    .dFz3mTMCEntyqsdPM0FF,
    .ELSmDYJtrr7_ktB1jf97,
    .xT6oSRia2sXC94ckOTnF,
    .GSY8YnDV4YNR_W53fPhi,
    .JP0zpUy6bLRoJXWWX_Nd,
    :root,
    .e-9640-overlay,
    .e-9640-button,
    .e-9640-form-control,
    .e-9640-form-control[readonly],
    .e-9640-form-control--focus-bold,
    .e-9640-form-control--focus-light,
    .e-9640-form-control--hover,
    .e-9640-form-control:focus,
    .e-9640-form-control:hover,
    .e-9640-form-control:disabled,
    .e-9640-form-control:invalid,
    .e-9640-form-control[aria-invalid=true],
    .e-9640-form-control:invalid:focus,
    .e-9640-form-control[aria-invalid=true]:focus,
    .e-9640-form-control[aria-invalid=false],
    .e-9640-form-control[aria-invalid=false]:hover,
    .e-9640-form-control[aria-invalid=false]:focus,
    .e-9640-form-control--focus-light,
    .e-9640-form-control--use-focus-light:focus,
    .e-9640-form-control--use-focus-light:invalid:focus,
    .e-9640-form-control--use-focus-light[aria-invalid=true]:focus,
    .e-9640-form-control--focus-bold,
    .e-9640-form-control--use-focus-bold:focus,
    .e-9640-form-control--use-focus-bold[aria-invalid=false]:focus,
    .e-9640-button-primary:active .e-9640-button-primary__inner,
    .e-9640-form-input[type=file],
    .e-9640-form-input[type=file]:focus,
    .e-9640-form-input[type=file]:hover:focus,
    input:disabled + .e-9640-form-input-icon__icon,
    input[readonly] + .e-9640-form-input-icon__icon,
    .e-9640-table-container--is-sticky .e-9640-table-header-cell,
    .e-9640-tag[href],
    .e-9640-tag[href]:focus,
    .e-9640-tag[href]:hover,
    .e-9640-tag.e-9640-text-link[href],
    .e-9640-tag.e-9640-text-link[href]:focus,
    .e-9640-tag.e-9640-text-link[href]:hover,
    .Z35BWOA10YGn5uc9YgAp .zXwER4Lsqq_e7fVVaPkZ,
    .Z35BWOA10YGn5uc9YgAp .Kcb74zm1aMqGfPxTwO5s .vq0lsCoYrDUDvkuUIaRg,
    .qWtIAYA_A_mOQIlxBb02 > *,
    .mEYwOgcSR3UWyvz0OSVE,
    .PromotionDefaultNativeImage-module_image-container__gQhJp {
        box-shadow: none;
    }

    .a2NTH51fJWzWsds0OYv_::after {
        background: none;
    }

    if hide_bg {
        .under-main-view {
            display: none;
        }
    }

    /*filter for the bar gif*/
    .jxXIarsEHgz2HoaVCVzA,
    .DZJJ5SCypi2mREbjy5bx {
        filter: hue-rotate(hue_shift_equalizer deg);
    }
}

Reviews

No reviews yet.