Greasy Fork is available in English.

Duolingo Dark Mode

Dark theme for duolingo.com

/* ==UserStyle==
@name           Duolingo Dark Mode
@namespace      Duolingo-Dark-Mode
@version        1.0.4
@description    Dark theme for duolingo.com
@author         Pabli
@license        CC-BY-SA-4.0
@homepageURL    https://greasyfork.org/en/scripts/415378-duolingo-dark-mode
@supportURL     https://greasyfork.org/en/scripts/415378-duolingo-dark-mode/feedback
@preprocessor   stylus
@var            color bg "Background" #141F23
@var            color bg-2 "Background 2" #202F36
@var            color border-1 "Border" #38464F
@var            color t-1 "Text 1" #F2F7FB
@var            color t-2 "Text 2" #DEE7EE
@var            color t-3 "Text 3" #52656C
@var            color t-red "Text red" #EF5F5E
@var            color t-green "Text green" #78BB30
@var            color t-blue "Text blue" #49C0F8
@var            color bg-red "Background red" #FF4B4C
@var            color bg-green "Background green" #93D334
==/UserStyle== */

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

/*
//var
bg = #141F23; //#fff
bg-2 = #202F36; //#f0f0f0 #f7f7f7 #ddf4ff
border-1 = #38464F; //#e5e5e5
t-1 = #F2F7FB; //#3c3c3c #4b4b4b
t-2 = #DEE7EE;  //#777 
t-3 = #52656C; //#999 #afafaf #38464f
t-red = #EF5F5E; //#ea2b2b  
t-green = #78BB30; //#58a700
t-blue = #49C0F8;   //#1cb0f6
bg-red = #FF4B4C;  //#ff4b4b
bg-green = #93D334; //#58cc02
bg-yellow = #FDD333;
*/


//header
#root > div > div,
#root > div > div > div {
    background-color: bg;
}
._2j1Gc, ._2V4l4 {
    background-color: bg;
    border-bottom: 2px solid border-1;
    color: t-1;
}
[style="z-index: 221;"], ._2NmyP, ._3z2Yo {
    background: rgba(28,97,130,.1) !important;
}
._-3fIQ ._2NOG7 {
    color: t-blue;
}
._2FdDp, _21W8z, ._21W8z {
    border-bottom: 2px solid border-1;
}
._2cDAr, ._37Hi-, ._21hmH, .yGEX2, .GokmT, ._7_au9, ._1ZA9g, ._3xFOm {
    color: t-1;
}
._3uAwj, ._1q9m2 p {
    color: t-2;
}
._2FdDp:hover, ._21W8z:hover {
    background-color: bg-2;
}
.ISEeS ._2nIuI, ._168wl ._3ro2R {
    border-bottom: 2px solid border-1;
    color: t-1;
}
.ISEeS .D3QAY, ._168wl ._3hI6u, 
._28B_R:first-of-type,
._3b7Vp:first-of-type,
._3GdnM {
    border-top: 2px solid border-1;
}
._28B_R, ._3b7Vp {
    border-bottom: 2px solid border-1;
}
.-qpyM, ._1cSqW {
    border-top: 2px solid border-1;
    color: t-blue;
}
._1ZA9g a {
    color: t-blue;
}
.ISEeS .G_xgk, ._168wl ._2rwos {
    background-color: bg-2;
}
.ISEeS ._2nIuI:hover, .ISEeS .D3QAY:hover, ._168wl ._2rwos:hover, ._168wl ._3ro2R:hover, ._168wl ._3hI6u:hover, .-qpyM:hover, ._1cSqW:hover {
    background-color: bg-2;
}
._1S8Vz {
    filter: brightness(50%);
}
.brXUB {
    background-color: border-1;
    color: t-3;
}
._1Q4WV, ._2nhmY, ._2iJ6U, .SaEU8 {
    background-color: bg;
    border: 2px solid border-1;
}
._3IWeV {
    color: t-3;
}
._3IWeV::after {
    background-color: bg;
    border-color: border-1;
}
//practice
[style*="color: rgb(75\, 75\, 75)"], .Mr3if {
    color: t-1 !important;
}
._399cc {
    background: bg;
    border-top: 2px solid border-1;
}
[data-test="challenge-choice-card"]::after,
.fJSw6:active:not(._326cY):not(.IACXk)::after {
    background-color: bg-2;
    border-color: t-blue;
}
._2Gskp {
    border-top: 2px solid border-1;
}
._3ANq3 > :not(:last-child) {
    border-right: 2px solid border-1;
}
._3xnDt {
    border-left: 2px solid border-1;
}
._1rooe, ._15J0U {
    border-bottom: 2px solid border-1;
}
._3lUbm, .FrL-W {
    background: bg;
}
.FrL-W {
    border: 2px solid border-1;
}
._37JAM p {
    color: t-2;
}

._34Jmg, ._1Nmv6 {
    color: t-green;
}
._3e9O1 {
    background-color: bg-2;
    color: t-green;
}
._1Ylz- {
    background-color: t-green;
    color: bg;
}
._1Ylz-::after {
    background-color: bg-green;
}
._2VrUB {
    background: bg;
}
._2KQGO::before {
    border: 4px solid bg;
}

._1O290 {
    color: t-1;
}

._1wJYQ::after {
    background-color: bg;
    border-color: border-1;
}
._2UUiS::after {
    background-color: border-1 !important;
}

.Z7UoT {
    border-color: t-blue;
    color: t-blue;
}

._3vF5k {
    background-color: bg-2;
    color: t-red;
}
.o66XQ::after {
    background-color: bg-red;
}
.o66XQ {
    background-color: t-red;
    color: bg;
}
._1sqiF, ._2tfS2 {
    color: t-red;
}

.ccZTP {
    color: t-2;
}

.u_Pxl ._34fuQ ._3c96B {
    color: t-3;
}
._2gwdz {
    border: 2px solid border-1;
}
._1eBPl:first-child ._1lcy6, ._1HxVp {
    border-top: 2px solid border-1;
}
._1eBPl ._1lcy6 {
    border-bottom: 2px solid border-1;
    border-right: 2px solid border-1;
}
._1eBPl ._1lcy6:first-of-type, .SQR8J {
    border-left: 2px solid border-1;
}
._37c8P {
    background: bg-2;
}

._2FKqf {
    background-color: bg-2;
    border-color: border-1;
}
._2ti2i {
    background: bg;
    border: 2px solid border-1;
    color: t-1;
}

._3PZWo {
    background: hsla(0, 0%, 0%, .7);
}
//background
body, #root, main, .l-V52, .XO-AE, ._2nLk_, ._3wZWk {
    background: bg ;
    color: t-1;
}

div[data-test="skill-tree"], ._2PVaI,
._17s2H, ._3f1oK {
    background: bg;
}
._3M0r3, .GVcJz, ._3izPU {
    background-color: bg-2;
}
.GVcJz, ._3M0r3, ._3izPU, 
._1jKFt::before, ._2TPZF::after {
    border: 2px solid border-1;
}

._1JPPG {
    background-image: none;
}
._1HSlC::after {
    border-color: bg;
}
[data-test="skill-popout"] > div > div:first-child,
[data-test="skill-popout"] > div > div:last-child > div {
    background-color: border-1;
    border: 2px solid bg;
}
button[data-test="start-button"],
.SSzTP .twkSI, .XmFOe .twkSI {
    color: bg;
}

[fill="#e5e5e5"] {
    fill: border-1;
}
[data-test="skill-icon"], ._1EyKG, ._1A0LT {
    background-color: border-1;
}
._1A0LT svg {
    filter:  brightness(80%);
}
img[src="//d35aaqx5ub95lt.cloudfront.net/images/fafe27c9c1efa486f49f87a3d691a66e.svg"],
img[src="//d35aaqx5ub95lt.cloudfront.net/images/ac2e0998c42f5d11a1654859511fcccd.svg"] {
    filter: brightness(70%);
}
//right panel
#root > div > div > div > div > div {
    background-color: bg;
}
._3Gj5_ , ._3ZuGY, ._2VdVL {
    background: bg;
    border: 2px solid border-1;
}
.-AHpg, ._2Inq2:not(:last-child), ._3lKd4 {
    border-bottom: 2px solid border-1;
}
._2UTWH, .mKH7H ._1_ZCT {
    color: t-green;
}
.jHo0Y, ._1xmOg ._1_ZCT {
    color: t-red;
}
._3QwaZ {
    background: border-1;
}
.yXp5g:hover {
    background: rgba(255, 255, 255, .1);
}
.YBCQI {
    color: t-1;
}
._2jQLr, ._3cvJx, ._2QnAf {
    color: t-2;
}
.OhXul, ._3blqO, ._861_w, ._15-md {
    color: t-3;
}
[src="//d35aaqx5ub95lt.cloudfront.net/images/leagues/icon_info.svg"] {
    border-radius: 50%;
    filter: brightness(80%);
}
img[src="//d35aaqx5ub95lt.cloudfront.net/images/leagues/badge_locked.svg"]{
    filter: brightness(70%);
}
._3QwaZ.mKH7H {
    background: bg;
    color: t-green;
}
._3QwaZ.mKH7H ._3cvJx {
    color: t-green;
}
._3QwaZ._1xmOg ._3cvJx {
    color: t-red;
}
._3QwaZ._1xmOg {
    background: border-1;//
    color: t-red;
}
//xp progress bar
._2cmOB {
    background: border-1;
}
//practice button, find friends buttons and socials
._3iVqs::after {
    background-color: bg;
    border-color: border-1;
}
//try plus button
.kooao {
    background: bg;
    border: 3px solid bg;
}
//text
div[data-test="skill"] > div > div > div, .Mr3if {
    color: t-1 !important;
}
h2 {
    color: t-1 !important;
}
a {
    color: t-blue;
}
._3WjRu {
    color: t-2;
}
//borders
hr, .QdeEB, ._2kTwS, ._8roiG {
    border-top: 2px solid border-1;
}
//streak freeze used
._33x5b {
    border: 2px solid border-1;
}
.RYa1p {
    color: t-2;
}
.FrL-W:hover {
    background: border-1;
}
//Achievements
._1fag1 {
    color: t-1;
}
._315yA {
    color: t-2;
}
._3iwbr {
    color: t-3;
}
._27avI {
    border-bottom: 2px solid border-1;
}

//forum discuss
._1UYQp, ._2Nbkz {
    border-bottom: 2px solid border-1;
}
._2MyXH {
    border-top: 1px solid border-1;
}
._3ZcIW, ._2VdVL h2 {
    color: t-1;
}
button[style*="background"] {
    background-color: bg !important;
    border-color: border-1 !important;
    color: t-2 !important;
}
button[style*="background: rgb(28\, 176\, 246)"] {
    background-color: t-blue !important;
}
._10HmK {
    background-color: bg;
    border: 2px solid border-1;
    color: t-1;
    caret-color: t-blue;
}
._2povu blockquote {
    border-left: 5px solid bg-2;
}
.K4oWn, .slg8x:hover {
    background-color: border-1;
}
._2LBIq, ._2I7YD, ._2D8L4 a {
    color: t-3;
}
._7SUuD {
    color: t-1;
}
._3ha9t, .TKIPn, .TKIPn:hover {
    background: bg;
}
.TKIPn, .TKIPn:hover {
    border: 2px solid border-1;
}
//twitter fb icon on the bottom
._1-HHf {
    filter: invert(1);
}
//shop
._3YYVw.k6MEx:not(._2mG9r), ._3YYVw:disabled:not(._2mG9r) {
    color: t-3;
}
._3YYVw.k6MEx:not(._2mG9r)::after, ._3YYVw:disabled:not(._2mG9r)::after,
._3YYVw::after {
    border-color: border-1;
}
._2QQA_ {
    color: t-2;
}
._2ztBJ {
    color: t-3;
}
h4 {
    color: #ff9898;
}
//stories
._2NKLU, ._1qdLM {
    color: t-1;
}
._1eZU8 {
    color: t-2;
}
._3XEH9, ._1qdLM._3N2Ph {
    color: t-3;
}
._1qdLM::after, ._1qdLM::before {
    background: border-1;
}
//settings
input[type="checkbox"] {
    background: bg;
    border: 2px solid border-1;
}
input[type="text"], textarea, #bio, #currentPassword, #password, [placeholder="Classroom code"], input#username, input#email {
    background: bg-2 !important;
    border: 2px solid border-1 !important;
    color: t-1 !important;
}
[for="username"], [for="email"], [for="enableSoundEffects"], [for="coachEnabled"], [for="enableSpeaker"], 
._1CsoA {
    color: t-1;
}
.XJIrJ{
    background: t-blue;
}
.XJIrJ::before {
    border-color: t-blue;
}
._2FbA1::before {
    background: bg;
}
._21Rik {
    background: border-1;
}
._21Rik::before {
    border-color: border-1;
}
button[data-test="save-button"]:disabled,
.yTpGk.k6MEx:not(._2mG9r), .yTpGk:disabled:not(._2mG9r) {
    color: t-3 !important;
}
.yTpGk.k6MEx:not(._2mG9r)::after, .yTpGk:disabled:not(._2mG9r)::after {
    background: border-1;
}

[data-test="image-file"] > label,
._2k8ad, _2gYJz {
    color: t-3;
}
._2gYJz {
    color: t-3;
}
._1bYwN {
    color: t-blue;
}
._1wy04, ._1oj-F {
    color: t-1;
}
._1eSrF,
.rmbzf:hover {
    background: border-1;
}

._1vUZG {
    background-color: #1899d6;
    color: bg;
}
._1vUZG::after {
    background-color: t-blue;
}
._3oNS9, ._3Ho-0 ._1dUcs {
    color: t-2;
}

._26wPn {
    color: t-1;
}
._26wPn::after {
    background-color: bg;
    border-color: border-1;
}
._1HjFK::after {
    background-color: bg-2;
    border-color: t-blue;
}
.fJSw6:hover:not(:active):not(._326cY):not(.IACXk)::after {
    background-color: bg-2;
}

//about us info
._2yr5w {
    color: t-3;
}
._2t5tt {
    border-bottom: 2px solid border-1;
}
._3OVD3, ._3OVD3:hover {
    border-bottom: 4px solid t-blue;
    color: t-blue;
}
._2peQQ, ._1ix9E, ._2a2zw, ._2_SGS, ._3A4Lv {
    color: t-2;
}
.FJh6U {
    color: t-blue;
}
._1MEMy {
    border: 2px solid border-1;
}
._2FSvr {
    color: t-1;
}

}