Google Classroom Dark Mode Theme

A dark mode theme for Google Classroom. For all the students that prefer night over day.

当前为 2021-03-15 提交的版本,查看 最新版本

// ==UserScript==
// @name         Google Classroom Dark Mode Theme
// @namespace    https://greasyfork.org/scripts/395319-google-classroom-dark-mode-theme
// @version      0.5.0
// @description  A dark mode theme for Google Classroom. For all the students that prefer night over day.
// @author       ThaCheeseBun
// @match        *://classroom.google.com/*
// @grant        none
// @license      MIT; https://mit-license.org/
// ==/UserScript==

(function() {
    'use strict';

    var style = `
body {
    background: #2c2c2c;
    color: #fff;
}

/* help btn */
.K2mXPb {
    color: #fff;
    fill: #fff;
}

/* links */
a {
    color: dodgerblue;
}
a:visited {
    color: #9500ff;
}

/* top bar */
.joJglb {
    background: #3c3c3c;
    border-bottom: none;
    -webkit-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.75);
    -moz-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.75);
    box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.75);
}
.joJglb.kLHn3 {
    -webkit-box-shadow: 0 2px 11px 0 rgba(0, 0, 0, 0.75);
    -moz-box-shadow: 0 2px 11px 0 rgba(0, 0, 0, 0.75);
    box-shadow: 0 2px 11px 0 rgba(0, 0, 0, 0.75);
}

/* google apps */
.gb_qa svg {
    fill: #fff;
}
.gb_D[aria-expanded=true] .gb_We {
    fill: #ccc;
}

/* icons */
.IqJTee, .ViCi4, .xSP5ic, .cjq2Db {
    color: #fff;
}

/* classroom elems */
.Aopndd {
    background: #3c3c3c;
    border-color: #4c4c4c;
}
.SZ0kZe {
    border-color: #3c3c3c;
}
.apFsO.onkcGd,
.apFsO.onkcGd:visited {
    color: #fff;
}
.oBSRLe {
    color: #fff;
}
.JPdR6b {
    background: #3c3c3c;
    -webkit-box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.75);
    -moz-box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.75);
    box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.75)
}

/* nav menu */
.ETRkCe {
    background: #3c3c3c;
    -webkit-box-shadow: 2px 0 11px 0 rgba(0, 0, 0, 0.75);
    -moz-box-shadow: 2px 0 11px 0 rgba(0, 0, 0, 0.75);
    box-shadow: 2px 0 11px 0 rgba(0, 0, 0, 0.75);
}
.bFjUmb-Ysl7Fe {
    background-color: #2c2c2c !important;
}
.asQXV {
    color: #fff;
}
.dDKhVc {
    color: #ccc;
}

/* general button */
.UQuaGc {
    color: #fff;
}
.z80M1 {
    color: #fff;
}
.z80M1.FwR7Pc {
    background-color: #3c3c3c;
}

/* calendar */
.Evt7cb,
.Evt7cb:visited,
.fKz7Od .TpQm9d {
    color: #eee;
}
.wQuPk .JsqLM.N4XV7d {
    color: #ccc;
}
.BOW64 {
    border-color: #4c4c4c;
}
.ybOdnf:not(.RDPZE) .OA0qNb .LMgvRb[aria-selected="true"], .ncFHed .MocG8c.KKjvXb {
    background-color: #5c5c5c !important;
}

/* todo page (not literally todo) */
.DShyMc-AaTFfe .VnOHwf-Tvm9db,
.DShyMc-AaTFfe.CNpREd .VnOHwf-Tvm9db,
.DShyMc-AaTFfe.VnOHwf-Tvm9db {
    color: #fff;
}
.DShyMc-AaTFfe .eumXzf:after {
    border-color: #dfdfdf;
}
.DShyMc-AaTFfe .VnOHwf-Wvd9Cc,
.DShyMc-AaTFfe.CNpREd .VnOHwf-Wvd9Cc,
.DShyMc-AaTFfe.VnOHwf-Wvd9Cc {
    color: #cfcfcf;
}

/* class page */
.d4Fe0d {
    background-color: #3c3c3c;
    border-color: #3c3c3c;
}
.EZrbnd, .A6dC2c, .O98Lj, .rpo4wf, .tLDEHd, .cSyPgb, .wZTANe .J1raN:hover, .udxSmc, .lziZub, .lziZub:visited {
    color: #fff;
}
.sdDCme, .K6Ovqd, .T8rTjd, .Lzdwhd-BrZSOd, .onkcGd, .onkcGd:visited, .wZTANe .J1raN {
    color: #ccc;
}
.VnOHwf-Tvm9db, .VBEdtc-Wvd9Cc:hover, .BEAGS:not(.RDPZE), .VnOHwf-Wvd9Cc, .CJXzee a:active, .CJXzee a:focus, .CJXzee a:hover {
    color: #fff !important;
}
.MymH0d:hover .VBEdtc-Wvd9Cc, .l3F1ye:not(.RDPZE), .IMvYId, .IMvYId:visited, .nRLOzd:hover, .nRLOzd:hover * {
    color: #ccc !important;
}
.GWZ7yf {
    background-color: #3c3c3c;
    box-shadow: none;
}
.ndcsBf.cjzpkc-Wvd9Cc {
    border-color: #5c5c5c;
}
.Y5FYJe.RDPZE {
    fill: #ccc;
    color: #ccc;
}
.OZ6W0d:not(.RDPZE), .l3F1ye:not(.RDPZE) .TpQm9d, .wwnMtb:not(.RDPZE) {
    fill: #fff !important;
    color: #fff !important;
}
.ZoT1D:hover.idtp4e, .tUJKGd:not(.xp2dJ):not(.rZXyy):hover .idtp4e, .tUJKGd:not(.xp2dJ).ndcsBf .idtp4e, .V8apv, .P3W0Dd-Ysl7Fe:focus {
    background-color: #4c4c4c !important;
}
.Niache, .QTD2uf {
    border-color: #3c3c3c;
}
.UISY8d-Ysl7Fe:hover {
    background-color: #3c3c3c !important;
    color: #ccc;
}
.eumXzf:after {
    border-color: #fff !important;
}
.tUJKGd:not(:first-child), .ySjuvd .eqqrO, .s2g3Xd, .oleV8d, .ZNE4y, .PeGHgb.Q8U8uc .Ono85c+.oh9CFb, .O9YpHb, .u73Apc, .d6CWTd {
    border-color: #4c4c4c !important;
}
.lXuxY {
    -webkit-box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.75);
    -moz-box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.75);
    box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.75)
}
.BEAGS, .P02DYb, .ycbm1d {
    border-color: #4c4c4c;
}
.Y5sE8d:not(.RDPZE) {
    background-color: #2c2c2c !important;
}
.Y5sE8d:not(.RDPZE):hover {
    box-shadow: none !important;
}
.ksaOtd {
    color: #1e8e3e;
}
.uO32ac {
    border-color: #5c5c5c !important;
}
.uQ3ESd {
    background-color: #3c3c3c;
}

/* dialog */
.iph-dialog {
    background-color: #4c4c4c !important;
}
.iph-dialog-title, .iph-dialog-content {
    color: #fff !important;
}

/* todo 2 */
.MHxtic:not(:last-child), .Xp0OCe, .LKqFXc {
    border-color: #3c3c3c;
}
.WOPwXe, .gJk24c, .HZ3kWc {
    color: #fff;
}
.ncFHed {
    background-color: #4c4c4c;
}
.asQXV-FGzYL {
    color: #1e8e3e;
}
.MHxtic:hover {
    -webkit-box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.75);
    -moz-box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.75);
    box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.75)
}

/* sign up */
.I7OXgf, .i5sehe, .NZ9wdc {
    background-color: #3c3c3c;
}
.pO05gd {
    color: #fff;
}

/* join classroom */
.gKkZCe, .D3oBEe .n9IS1:before, .AeAAkf {
    border-color: #4c4c4c;
}
.D3oBEe .qTs5Xc {
    background-color: #3c3c3c;
}
.qTs5Xc, .poFWNe {
    color: #fff;
}
.I7OXgf.ZEeHrd {
    background-color: #2c2c2c !important;
}`;
    var elem = document.createElement('style');
    elem.type = 'text/css';
    elem.innerText = style;
    document.head.appendChild(elem);
})();