Tmavý režim
Tmavý režim v Elements je funkcia, ktorá umožňuje prepnúť farebnú schému stránok a komponentov na tmavšie odtiene, čo zlepšuje pohodlie používateľov v tmavších priestoroch a ponúka alternatívny estetický vzhľad.
Použitím media query
Prvým spôsobom, ako zapnúť tmavý režim, je použitie CSS media query pre používateľom preferovanú farebnú schému. Tento media query sa napojí na systémové nastavenie zariadenia používateľa a použije tému, ak je tmavý režim povolený.
@media (prefers-color-scheme: dark) {
:root {
/* sem vložiť premenné tmavého režimu */
}
}
V súčasnosti má media query prefers-color-scheme
podporu prehliadačov.
Úprava systémového UI
Pri vývoji tmavej témy si môžete všimnúť, že niektoré systémové komponenty používateľského rozhrania sa neprispôsobujú tmavému režimu správne. To fix this you will need to specify the color-scheme
. See the kompatibilita prehliadačov pre color-scheme for details on cross browser support.
Hoci možno používate hlavne komponenty Elements a nie iba natívne komponenty, color-scheme
môže ovplyvniť aj také aspekty vašej aplikácie, ako je napríklad scroll bar. Aby ste mohli používať color-scheme
, budete musieť pridať nasledujúce HTML do head
vašej aplikácie:
<meta name="color-scheme" content="light dark" />
To umožní stránke označiť, ktorá farebná schéma jej vyhovuje pri vykresľovaní. Alternatively, you can add the following CSS to do this on a per-element basis:
color-scheme: light dark;
Predvolený scrollbar | Scrollbar s color-scheme |
---|---|
Viac informácií o color-scheme
nájdete na adrese https://web.dev/color-scheme/.
WebJET Tmavý režim
WebJET Elements má odporúčanú šablónu premenných, ktorú môžete použiť na vytvorenie tmavého režimu.
Nasledujúci kód môžete skopírovať a vložiť do aplikácie, aby ste získali tmavú tému WebJET Elements. Tmavý režim nebude povolený, kým sa do body nepridá trieda dark
.
Viac informácií o premenných, ktoré sa menia, vrátane ďalších premenných, ktoré možno pridať na ďalšie prispôsobenie, nájdete v časti Šablóny.
/*
* Dark mode
* -------------------------------------------
*/
:host,
.wj-theme-dark,
.dark {
color-scheme: dark;
--wj-font-size-x-small: 0.625rem;
--wj-font-size-small: 0.75rem;
--wj-font-size: 0.875rem;
--wj-font-size-medium: 1rem;
--wj-font-size-large: 1.25rem;
--wj-font-size-x-large: 1.5rem;
--wj-font-size-2x-large: 2.25rem;
--wj-font-size-3x-large: 3rem;
--wj-font-size-4x-large: 4.5rem;
--wj-line-height: 21px;
--wj-border-radius-small: .25rem; // 4px
--wj-border-radius-medium: .5rem; // 8px
--wj-border-radius-large: .75rem; // 2px
--wj-border-radius-x-large: 1rem; // 16px
--wj-border-radius-circle: 50%;
--wj-border-radius-pill: 50rem;
--wj-border-size: 0px;
--wj-border-style: solid;
--wj-box-shadow-medium: 0 1px 8px rgba(0,0,0,0.5);
--wj-box-shadow-large: rgba(0, 0, 0, 0.12) 0 4px 16px;
--wj-backdrop: rgb(0, 0, 0);
--wj-backdrop-opacity: .3;
/*
* Dark Colors
* -------------------------------------------
*/
--wj-color: var(--wj-color-contrast-11);
--wj-color-dark: hsl(0, 0%, 29%);
--wj-color-light: hsl(0 0% 95%);
--wj-background: hsl(218, 57%, 3%);//hsl(223, 15%, 18%);
--wj-border-color: var(--wj-color-contrast-4);
--wj-card-background: var(--wj-color-contrast-3);
--wj-card-color: var(--wj-color-white) !important;
--wj-color-primary: var(--wj-color-primary-1);
--wj-color-complete: var(--wj-color-complete-1);
--wj-color-success: var(--wj-color-success-1);
--wj-color-warning: var(--wj-color-warning-1);
--wj-color-danger: var(--wj-color-danger-1);
--wj-color-info: var(--wj-color-info-1);
--wj-color-menu: hsl(220, 15%, 15%);
--wj-color-contrast: hsl(210, 11%, 15%); //#2b303b;
--wj-color-white: #fff;
--wj-color-black: #000;
/*
* Dark Contrast
* -------------------------------------------
*/
--wj-color-contrast-lowest: hsl(0, 0%, 0%); //rgba(0, 0, 0, 1); //#000000
--wj-color-contrast-lower: hsl(0, 0%, 13%); //rgba(33, 33, 33, 1); //#212121
--wj-color-contrast-low: hsl(0, 0%, 29%); //rgba(33, 33, 33, 0.81); //#4b4b4b
--wj-color-contrast-medium: hsl(0, 0%, 46%); //rgba(33, 33, 33, 0.62); //#757575
--wj-color-contrast-high: hsl(0, 0%, 88%); //rgba(33, 33, 33, 0.14); //#e0e0e0
--wj-color-contrast-highter: hsl(0, 0%, 96%); //rgba(33, 33, 33, 0.05); //#f4f4f4
--wj-color-contrast-highest: hsl(0, 0%, 100%); //rgba(255, 255, 255, 1); //#ffffff
--wj-color-contrast-0: hsl(0, 0%, 0%);
--wj-color-contrast-1: hsl(240 5.1% 15%);
--wj-color-contrast-2: hsl(240 5.7% 18.2%);
--wj-color-contrast-3: hsl(240 4.6% 22%);
--wj-color-contrast-4: hsl(240 5% 27.6%);
--wj-color-contrast-5: hsl(240 5% 35.5%);
--wj-color-contrast-6: hsl(240 3.7% 44%);
--wj-color-contrast-7: hsl(240 5.3% 58%);
--wj-color-contrast-8: hsl(240 5.6% 73%);
--wj-color-contrast-9: hsl(240 7.3% 84%);
--wj-color-contrast-10: hsl(240 9.1% 91.8%);
--wj-color-contrast-11: hsl(0 0% 95%);
//--wj-color-contrast-0: hsl(0, 0%, 0%);
//--wj-color-contrast-1: hsl(0, 0%, 10%);
//--wj-color-contrast-2: hsl(0, 0%, 17%);
//--wj-color-contrast-3: hsl(0, 0%, 25%);
//--wj-color-contrast-4: hsl(0, 0%, 33%);
//--wj-color-contrast-5: hsl(0, 0%, 42%);
//--wj-color-contrast-6: hsl(0, 0%, 50%);
//--wj-color-contrast-7: hsl(0, 0%, 60%);
//--wj-color-contrast-8: hsl(0, 0%, 69%);
//--wj-color-contrast-9: hsl(0, 0%, 79%);
//--wj-color-contrast-10: hsl(0, 0%, 89%);
//--wj-color-contrast-11: hsl(0, 0%, 100%);
// PRIMARY
--wj-color-primary-1: hsl(254, 59%, 57%);
--wj-color-primary-2: hsl(256, 59%, 61%);
--wj-color-primary-3: hsl(257, 60%, 65%);
--wj-color-primary-4: hsl(257, 61%, 68%);
--wj-color-primary-5: hsl(258, 61%, 72%);
--wj-color-primary-6: hsl(259, 61%, 76%);
--wj-color-primary-7: hsl(260, 63%, 80%);
--wj-color-primary-8: hsl(260, 62%, 84%);
--wj-color-primary-9: hsl(260, 63%, 88%);
--wj-color-primary-10: hsl(260, 65%, 92%);
--wj-color-primary-11: hsl(261, 70%, 96%);
// COMPLETE
--wj-color-complete-1: hsl(211, 100%, 46%);
--wj-color-complete-2: hsl(218, 83%, 59%);
--wj-color-complete-3: hsl(221, 83%, 65%);
--wj-color-complete-4: hsl(223, 83%, 70%);
--wj-color-complete-5: hsl(225, 83%, 74%);
--wj-color-complete-6: hsl(226, 83%, 78%);
--wj-color-complete-7: hsl(227, 84%, 82%);
--wj-color-complete-8: hsl(229, 85%, 86%);
--wj-color-complete-9: hsl(229, 84%, 89%);
--wj-color-complete-10: hsl(229, 88%, 93%);
--wj-color-complete-11: hsl(232, 88%, 96%);
// SUCCESS
--wj-color-success-1: hsl(158, 74%, 38%);
--wj-color-success-2: hsl(155, 48%, 47%);
--wj-color-success-3: hsl(153, 42%, 54%);
--wj-color-success-4: hsl(152, 42%, 59%);
--wj-color-success-5: hsl(151, 42%, 65%);
--wj-color-success-6: hsl(150, 41%, 70%);
--wj-color-success-7: hsl(149, 42%, 75%);
--wj-color-success-8: hsl(150, 41%, 80%);
--wj-color-success-9: hsl(149, 41%, 85%);
--wj-color-success-10: hsl(148, 42%, 90%);
--wj-color-success-11: hsl(147, 44%, 95%);
// WARNING
--wj-color-warning-1: hsl(47, 100%, 63%);
--wj-color-warning-2: hsl(47, 100%, 67%);
--wj-color-warning-3: hsl(47, 100%, 71%);
--wj-color-warning-4: hsl(47, 100%, 74%);
--wj-color-warning-5: hsl(46, 100%, 77%);
--wj-color-warning-6: hsl(46, 100%, 81%);
--wj-color-warning-7: hsl(46, 100%, 84%);
--wj-color-warning-8: hsl(46, 100%, 87%);
--wj-color-warning-9: hsl(46, 100%, 90%);
--wj-color-warning-10: hsl(46, 100%, 93%);
--wj-color-warning-11: hsl(44, 100%, 96%);
// DANGER
--wj-color-danger-1: hsl(3, 68%, 51%);
--wj-color-danger-2: hsl(6, 71%, 56%);
--wj-color-danger-3: hsl(7, 73%, 61%);
--wj-color-danger-4: hsl(8, 77%, 65%);
--wj-color-danger-5: hsl(8, 80%, 70%);
--wj-color-danger-6: hsl(10, 82%, 74%);
--wj-color-danger-7: hsl(9, 86%, 79%);
--wj-color-danger-8: hsl(10, 90%, 83%);
--wj-color-danger-9: hsl(11, 93%, 87%);
--wj-color-danger-10: hsl(11, 100%, 91%);
--wj-color-danger-11: hsl(9, 100%, 96%);
// INFO
--wj-color-info-1: hsl(208, 16%, 27%);
--wj-color-info-2: hsl(208, 12%, 33%);
--wj-color-info-3: hsl(210, 9%, 39%);
--wj-color-info-4: hsl(210, 7%, 45%);
--wj-color-info-5: hsl(210, 6%, 52%);
--wj-color-info-6: hsl(207, 6%, 58%);
--wj-color-info-7: hsl(212, 6%, 65%);
--wj-color-info-8: hsl(206, 6%, 71%);
--wj-color-info-9: hsl(210, 7%, 78%);
--wj-color-info-10: hsl(204, 6%, 85%);
--wj-color-info-11: hsl(210, 5%, 92%);
// PRIMARY
--wj-color-primary-lighter: #eae0fb;
--wj-color-primary-light: #845ae0;
--wj-color-primary-dark: #4e37b6;
--wj-color-primary-darker: #2d218f;
// SUCCESS
--wj-color-success-lighter: #d6f7f0;
--wj-color-success-light: #26bf93;
--wj-color-success-dark: #0d935b;
--wj-color-success-darker: #04733e;
// COMPLETE
--wj-color-complete-lighter: #d3eeff;
--wj-color-complete-light: #0f8ff9;
--wj-color-complete-dark: #004fbf;
--wj-color-complete-darker: #00318e;
// WARNING
--wj-color-warning-lighter: #fffde1;
--wj-color-warning-light: #ffe858;
--wj-color-warning-dark: #daab2d;
--wj-color-warning-darker: #aa7918;
// DANGER
--wj-color-danger-lighter: #fde2da;
--wj-color-danger-light: #e6533c;
--wj-color-danger-dark: #b91e1e;
--wj-color-danger-darker: #900f17;
// INFO
--wj-color-info-lighter: #dbe6e8;
--wj-color-info-light: #475b6b;
--wj-color-info-dark: #2b3947;
--wj-color-info-darker: #1b2839;
// CONTRAST A
--wj-color-contrast-lower-a: rgba(33, 33, 33, 0.05); //#f4f4f4
--wj-color-contrast-low-a: rgba(33, 33, 33, 0.14); // #e0e0e0
--wj-color-contrast-medium-a: rgba(33, 33, 33, 0.62); //#757575
--wj-color-contrast-high-a: rgba(33, 33, 33, 0.81); //#4b4b4b
}