Skip to content

Google Calendar Dark Theme by shannon97

Screenshot of Google Calendar Dark Theme

Details

Authorshannon97

LicenseMIT

Categoryuserstyles

Created

Updated

Size8.3 kB

Statistics

Learn how we calculate statistics in the FAQ.

Failed to fetch stats.

Description

Dark theme for Google Calendar which observes the OS color scheme showing the original light calendar theme in light mode and a custom dark theme in dark mode.
Switching the OS theme does not require the site to reload to display the theme.

Notes

Userstyle doesn't have notes.

Source code

/* ==UserStyle==
@name         Google Calendar Dark Theme
@version      20240424.19.41
@namespace    https://userstyles.world/user/shannon97
@description  Dark theme for Google Calendar which observes the OS color scheme showing the original theme in light mode and a custom dark theme i dark mode. Switching the OS theme does not require the site to reload to display the theme.
@author       shannon97
@license      MIT
==/UserStyle== */

@-moz-document domain("calendar.google.com") {
@media (prefers-color-scheme: dark) {
    /* credit to Ethan Bahr for the basic structure I based this theme on */
    /* main dark grey background */
    header > *,
    .gb_Pa,
    .gssb_m,
    .gb_nd,
    .gb_Hd,
    .gb_Ia,
    .gb_Ea,
    .gb_Rd,
    .VfPpkd-TkwUic,
    .VfPpkd-xl07Ob-XxIAqe,
    .VfPpkd-LgbsSe.VfPpkd-LgbsSe-OWXEXe-INsAgc.VfPpkd-LgbsSe-OWXEXe-dgl2Hf.Rj2Mlf.OLiIxf.PDpWxe.P62QJc.LQeN7.GXlaye.xbo4ob,
    .v83gc,
    .rES0Be.elYzab-cXXICe-Hjleke.jLjmyd,
    .GENA3c,
    .Gk2izd,
    .OCQPo,
    .lYYbjc,
    .JtukPc,
    .p9lUpf,
    .wmCMbe,
    .q1j8lf.Jyewjb-haAclf.cPMh0b,
    .JPdR6b,
    .gHQcAb,
    .M842Cd,
    .OA0qNb.ncFHed,
    .CTxAtc,
    .I7OXgf.ZEeHrd.VhQQpd.Inn9w.iWO5td,
    .chVlZc,
    .YbcZBd,
    .zebRld,
    .cAYGed.KKjvXb .Ioup7e,
    .cAYGed.KKjvXb .BMQm1d,
    .Lzfnue,
    .PVQHSc.zIeiH .jBmls,
    .zDdMCe > .NSsY4e,
    .IIB0tc .jBmls,
    .C5tYIb,
    .tNDBE,
    .K2fuAf,
    .SGWAac,
    .Kk7lMc-Ku9FSb-DWWcKd-OomVLb,
    .gboEAb,
    .gb_Ud.gb_Qd,
    .gb_Ud.gb_Ie,
    .gb_Vd gb_Xa gb_Kd,
    .gb_Ld.gb_2d,
    .QQYuzf,
    .yRgNBf,
    .aehjCb,
    .hVpCxd,
    .zC2ZSb,
    .NkChXe > [jsslot],
    .buGMKc .mAozAc,
    .Lvwayc,
    .dT3uCc,
    .gb_ua,
    .BYXlo,
    .rfd2tb,
    .I7OXgf,
    .AouyCd,
    .Dzqnd,
    .gb_2a,
    .gb_Jd,
    .RAaXne,
    .pbeTDb,
    .IOneve,
    .lUmaj {
        background-color: #1d1d1d !important
    }

    /* medium dark grey background */
    .VfPpkd-fmcmS-yrriRe-OWXEXe-MFS4be:not(.VfPpkd-fmcmS-yrriRe-OWXEXe-OWB6Me),
    .cC1eCc .VfPpkd-P5QLlc,
    .akJTWe,
    .QhgNnf.FwR7Pc,
    .TKMrfe,
    .kma42e,
    .IOneve .r4nke,
    .sS0sZd,
    .NAFvr,
    .MDfQ7,
    .xWId8e{
        background-color: #232323 !important
    }

    /* lightest grey background */
    :not(.DswEsf).nB7Rvb .AHbDKf,
    .INBYpd,
    .VfPpkd-rymPhb-ibnC6b.VfPpkd-rymPhb-ibnC6b-OWXEXe-gk6SMd,
    .DWWcKd-OomVLb-LgbsSe-Bz112c-AHe6Kc,
    .ok6kbe,
    .wuX2hf.Wyo4Qe .l4SGD,
    .KPyFeb,
    .R6TFwe,
    .f1QMue.m1fiJb,
    .NAFvr,
    .DrZ8nd.KKjvXb,
    .w48V4c:hover,
    .KF4T6b.smECzc:hover,
    .KF4T6b.KCIIIb:hover,
    .DyOaYd,
    .nBhvye,
    .KF4T6b.smECzc.KKjvXb,
    .nBzcnc.Wm6kRe.huVZvb:hover,
    .Trypk {
        background-color: #3d3d3d !important
    }

    .f1QMue.m1fiJb,
    .f1QMue.m1fiJb.e6o4df,
    .f1QMue.m1fiJb.TbFp5e,
    .FLFkR,
    .MGaLHf,
    .w6FdBf,
    body[data-viewfamily=EVENT] .SGWAac {
        border-color: #6e6e6e;
    }

    /* apps and user icon  */
    .gb_We {
        background: #232323 !important;
        border-style: solid;
        border-width: 1px;
        border-color: #3a3a3a;
        border-radius: 8px;
    }

    /*White text */
    .OwNvm,
    .gssb_m,
    .VfPpkd-fmcmS-wGMbrd,
    .yHy1rc,
    .NkK3Fc span,
    .VfPpkd-I9GLp-yrriRe,
    .DN1TJ,
    .JAPzS,
    .vRMGwf,
    .gb_6c,
    .VfPpkd-vQzf8d,
    .gb_4d.gb_1c,
    .NlWrkb.snByac,
    .aIwHYe,
    .NI2kfb.qZvm2d-ibnC6b-bN97Pc.DX3x9d span,
    span.r4nke,
    h2,
    .XnnJrc span,
    .Bd2qQe span,
    .JPdR6b.e5Emjc.kydeve.e6NAn,
    .s4ZaLd span,
    .w61Ns.pCoqfc,
    .kxfKW div,
    .yHbHub div,
    .JtukPc span,
    .gb_Ld gb_2d span,
    .Xro3Db-nUpftc span,
    .JPdR6b span,
    .gb_Se span,
    .CTxAtc div,
    .NFUcsb.df5yGe.qRUolc div,
    .KuzJyd div,
    .M842Cd div,
    .u3WVdc.jBmls div,
    .zDdMCe > .NSsY4e label,
    .zDdMCe > .NSsY4e div,
    .yVWOnb div div,
    .sP2P6e div,
    .XvhY1d div,
    .gb_4c,
    .rSoRzd,
    .pdqVLc div,
    .aehjCb div,
    .hVpCxd div,
    .zC2ZSb div,
    .TgcD5e.CCDcoc .zHQkBf,
    .T2Ybvb,
    .mr0WL,
    .shdZ7e .zHQkBf,
    .lwv98 .tL9Q4c,
    .dT3uCc div,
    .BYXlo div,
    .wNCvif .LV4Pme,
    .Lzfnue div,
    .rfd2tb div,
    .WSvIUd,
    .gb_vc.gb_ie span,
    .LjrQce .zHQkBf,
    .Z7IIl,
    .zHQkBf,
    .w8UdJc div,
    .WpDZC.zHQkBf,
    .iMprOe:hover,
    .toUqff,
    .UyW9db,
    .f1QMue.m1fiJb,
    .YTCBlf,
    .cAP2G,
    .qx9Fae:hover,
    .qx9Fae:not(.YkAcPc),
    .VfPpkd-rymPhb-fpDzbe-fmcmS,
    .VfPpkd-uusGie-fmcmS,
    .Z5RD1e,
    .jT5e9,
    .MDfQ7 {
        color: #eeeded !important;
    }

    /* Grey text */
    .OspAke,
    .yHy1rc:disabled,
    .hGcgEd,
    .NI2kfb,
    .WpDZC,
    .Hld1td,
    .g3dbUc.KCIIIb:hover,
    .P7rTif {
        color: grey !important;
    }

    /* Grey fill */
    .DWWcKd-OomVLb-LgbsSe-Bz112c {
        fill: #bebebe!important;
    }

    /* White fill */
    div.rF3YF .NMm5M,
    div.rF3YF .Ce1Y1c,
    .gb_oa svg,
    .gb_Fc svg,
    .gb_2c .gb_4d,
    .gb_Rc .gb_4d,
    .gb_Ue path,
    .Ce1Y1c path,
    .gb_zc path,
    .V1t8Le div div {
        color: #f5f5f5;
        fill: #f5f5f5;
        opacity: 1;
    }

    .z80M1.NmX0eb.pfnUue.N2RpBe::before {
        color: #f5f5f5;
        fill: #f5f5f5;
        opacity: 1;
        filter: brightness(10)
    }

    /* root overrides */
    :root {
        color-scheme: dark;
        --on-surface-variant: whitesmoke;
        --on-surface-variant-agm: #888;
        --on-surface: #bebebe;
        --surface: #1d1d1d;
        --textfield-surface: #343434;
        --hairline: #3a3a3a!important;
        --chip-hover: #444;
        --outline-variant: #3a3a3a;
    }


    /* Color changes */
    .qmv2fc {
        background-color: #4169e140;
    }

    .qmv2fc.KKjvXb {
        background-color: #00008b4f;
    }
    .wgAgQc[aria-checked="true"] .uUivFb {
        background-color: #33322f!important;
    }

    /* Color hovers */
    .qmv2fc:hover,
    .JAPqpe.K0NPx span:hover,
    U26fgb.c7fp5b.FS4hgd.wXaa9.mAozAc:hover,
    .M842Cd div:hover,
    .OA0qNb.ncFHed div:hover,
    .OA0qNb.ncFHed div:hover,
    .Cd9hpd:hover,
    .u3WVdc.jBmls div div:hover,
    /* Transparent grey hovers for settings menu and current events in month view with time */
    .g3dbUc.smECzc:hover,
    .kMp0We.Wm6kRe.huVZvb:hover,
    /* <-- settings hover */
    .GrxScd .SWigMc.Wm6kRe.huVZvb:focus,
    .kMp0We.gk6SMd.huVZvb,
    /* Insert link color edits */
    .V1t8Le .LOt69e,
    .V1t8Le .ipagq,
    /* Selected formatting options in event description text box */
    .Erb9le:not(.RDPZE) .qmMNRc.y7OZL,
    .w8UdJc div:hover,
    /* Time drop down menu on edit event menu */
    .Xro3Db-nUpftc span:hover .r4nke,
    /* Hover on calendar date picker */
    .Cd9hpd:hover .mAozAc.u3bW4e,
    .Cd9hpd .mAozAc.iWO5td,
    .Ewn2Sd.kNRrie:hover,
    .Ewn2Sd.kNRrie,
    .g3dbUc.KCIIIb:hover,
    .yzYBvd:hover,
    .W0m3G.Io4vne:hover .r4nke {
        background-color: rgba(126, 128, 128, .35)!important;
    }
    .ncFHed .MocG8c.KKjvXb,
    .VKy0Ic[aria-selected="true"] {
        background-color: rgba(126, 128, 128, .50)!important
    }
    .i8dSE .r4nke,
    .i8dSE.uGtG7d .r4nke {
        color: white;
        background-color: grey;
    }

    .scrollable-element {
        scrollbar-color: black grey;
    }
    /* Darkens past events for month. Forked from https://github.com/pyxelr/dark-google-calendar and modified slightly*/
    .g3dbUc.UflSff {
        filter: invert(100%) hue-rotate(180deg) saturate(150%) contrast(105%) opacity(60%)!important;
    }
    .g3dbUc.UflSff span span {
        color: #000!important;
    }
    /* Darkens past events for week. Forked and modified from above source ^ */
    .NlL62b.EfQccc.elYzab-cXXICe-Hjleke.EiZ8Dd.UflSff.jKgTF {
        filter: invert(80%) hue-rotate(180deg) saturate(10%) contrast(50%) brightness(100%) opacity(50%)!important;
    }
    /* Slightly lowers brightness of current events */
    .g3dbUc .jKgTF,
    .QGRmIf,
    .lcPUt {
        filter: brightness(95%);
    }
    .KSxb4d.F262Ye:hover,
    body.geSgge .KSxb4d.F262Ye:hover {
        background-color: #657392 !important;
    }
    .uHMk6b.fsHoPb {
        filter: invert(50%) brightness(20%)!important;
    }
    
    .hEtGGf::after {
        background-image: unset;
    }
}
}

Reviews

No reviews yet.