Skip to content

Mixcloud Midnight Theme by BoffinBrain

Screenshot of Mixcloud Midnight Theme

Details

AuthorBoffinBrain

LicenseCC-BY-4.0

Categorymixcloud

Created

Updated

Size6.6 kB

Statistics

Learn how we calculate statistics in the FAQ.

Failed to fetch stats.

Description

A dark skin that keeps the classic blue/purple color scheme.

Notes

A dark skin that keeps the classic blue/purple color scheme.

Tested and working on the various Home, Feed and Account Settings pages. NOT tested on Creator Tools pages, since I am not a creator.

I also highly recommend that you use my Mixcloud Accessibility Fixes style for better popup menus and scrollbars on the playlist.

Version History

V1.1.0 - 2025-02-26
Updated core variables (Mixcloud devs have been adding more of them. Good!)
Tweaked the colors of the waveforms beside each mix (possible thanks to the new core variables).
Fixed some class name selectors that are fragile but necessary.

V1.0.1 - 2024-12-21
Made most selectors far more resilient to class-name changes.

V1.0.0 - 2024-12-18
Initial release.

Source code

/* ==UserStyle==
@name           Mixcloud Midnight Theme
@namespace      github.com/openstyles/stylus
@version        1.1.0
@description    A dark skin that keeps the classic blue/purple color scheme.
@author         BoffinBrain
==/UserStyle== */

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

    /*
        My apologies for all the poorly-performing attribute selectors in this project.
        Unfortunately, like many big companies, Mixcloud devs use some kind of design
        framework that randomizes the class names with every change they make, which
        makes all CSS mods extremely fragile.
    */

    /* Keep the original theme variables for the following elements */
    div[class^="styles__HQAudioTag"], /* HQ badge over mix artwork */
    div[class^="styles__TagWrapper"], /* PRO badge on Creator Dashboard */
    div[class^="styles__PopoverContentWrapper"], /* Popup menu */
    div[data-testid="playerHero"], /* Top section of mix page */
    div.bGZWVW[class^="styles__FullWidthHeader"], /* Nav bar when search is open */
    div[class^="Search__SearchContainer"], /* Search results */
    div[class^="playerAlreadyOpen"], /* Player-related panels */
    .player-height-placeholder,
    .player-open,
    .up-next-open {
        --color-core-primary: #5000FF;
        --color-core-primary-hover: #4100CC;
        --color-core-secondary: #F778EB;
        --color-core-secondary-hover: #F555E5;
        --color-core-premium: #F3F810;
        --color-core-premium-hover: #E4E807;
        --color-core-subtle: #D2D3D7;
        --color-core-success: #E3FAF0;
        --color-core-warning: #F9FBB2;
        --color-core-info: #E2E3FF;
        --color-core-error: #FDE1F7;
        --color-core-disabled: #61667A;
        --color-core-important: #D20442;
        --color-core-important-hover: #EF054B;
        --color-core-confirm: #0CC281;
        --color-core-confirm-hover: #0BAD74;
        --color-core-black: #000000;
        --color-text-primary: #171C2B;
        --color-text-secondary: #61667A;
        --color-text-tertiary: #FFFFFF;
        --color-text-hover: #2A3145;
        --color-text-link: #171C2B;
        --color-text-link-hover: #61667A;
        --color-surface-primary: #FFFFFF;
        --color-surface-primary-hover: #F7F7F7;
        --color-surface-secondary: #171C2B;
        --color-surface-secondary-hover: #22293C;
        --color-surface-tertiary: #F4F4F5;
        --color-surface-tertiary-hover: #ECECEE;
        --color-surface-subtle: #F4F4F54D;
        --color-surface-subtle-hover: #F4F4F580;
        --color-surface-raised: #FFFFFF;
        --color-border-primary: #F4F4F5;
        --color-border-secondary: #D2D3D7;
        --color-twitter: #1DA1F2;
        --color-twitter-dark: #0c85d0;
        --color-facebook: #3360FF;
        --color-facebook-dark: #0038ff;
        --color-facebook-light: #6688FF;
        --color-focus-indicator: #FF8C00;
        --color-waveform-active-default: #D2D3D7;
        --color-waveform-active-listened: #5000FF;
        --color-waveform-active-interacted: #5000ff80;
        --color-waveform-initial-default: #D2D3D7;
        --color-waveform-initial-listened: #61667A;
        --color-waveform-initial-interacted: #61667a80;
    }



    /* Change the theme variables for the rest of the page */
    :root {
        --color-core-primary: #a060ff;
        --color-core-secondary: #f778eb;
        --color-core-premium: #5060ab;
        --color-core-premium-hover: #34f;
        --color-core-subtle: #334;
        --color-text-primary: #fff;
        --color-text-secondary: #838999;
        --color-text-tertiary: #fff;
        --color-text-hover: #ddf;
        --color-text-link: #b0b8ff;
        --color-surface-primary: #10131a;
        --color-surface-secondary: #171c2b;
        --color-surface-tertiary: #404460;
        --color-surface-tertiary-hover: #404460;
        --color-surface-subtle: #00000080;
        --color-card-background-light: #00000080;
        --color-waveform-active-default: #86a;
        --color-waveform-active-listened: #f6f;
        --color-waveform-active-interacted: #fff;
        --color-waveform-initial-default: #485566;
        --color-waveform-initial-listened: #99f;
        --color-waveform-initial-interacted: #fff;
    }

    body {
        background: var(--color-surface-primary);
    }



    /* Nav */
    menu[data-menu="top-level"] > li > button::after {
        filter: invert(1) !important;
    }

    div[class^="styles__DropdownMenu"] {
        background: var(--color-surface-secondary);
        color: var(--color-text-primary);
    }



    /* Home Sidebar */
    nav[class^="styles__LeftNavWrapper"] > a {
        color: var(--color-text-primary);
    }

    nav[class^="styles__LeftNavWrapper"] > a > svg > path {
        fill: var(--color-text-primary);
    }



    /* Genre tag rankings on mix details */
    span[class^="styles__GenreTagPosition"] {
        background: var(--color-surface-secondary);
    }



    /* Sidebar on Profile page */
    ul[class^="styles__OptionContainer"],
    div[class^="styles__ProfileMeta-"] {
        box-shadow: rgba(0, 0, 0, 0.4) 0px 0px 22px;
    }

    div[class^="styles__Expander-"] > button > svg > path,
    a[class^="button__InlineAnchor-"] > svg > path {
        color: var(--color-text-hover);
        fill: var(--color-text-hover) !important;
    }



    /* Scrolling tabs nav on Profile page */
    main[class^="styles__ProfileTabs"] .scroll-bar {
        background: var(--color-surface-secondary);
        color: var(--color-text-primary);
        box-shadow: rgba(0, 0, 0, 0.6) 0px 0px 10px;
    }



    /* Links next to left/right sidebar headings */
    h4 > a[class^="button__StyledLink-"] {
        color: var(--color-text-secondary);
    }



    /* Account Settings */
    .incomplete-nag {
        background: var(--color-card-background-light) !important;
    }

    .incomplete-nag .meter-inner {
        background: var(--color-surface-subtle) !important;
    }

    .bWufsN.percentage {
        color: var(--color-text-secondary);
    }

    .fieldset,
    .dtjSYs,
    .diRxPC,
    .hkiJMt,
    div[class^="DEPRECATED_Forms__DEPRECATEDFieldset"] {
        border-color: var(--color-core-subtle);
    }

    div[class^="DEPRECATED_Forms__DEPRECATEDFieldset"] label > b {
        color: var(--color-text-primary);
        font-weight: normal
    }

}

Reviews

No reviews yet.