://blog. ypro.tech
Ciemny motyw strony internetowej
2022-02-15

Aby zmienić wygląd strony internetowej, w zależności od tego, czy preferowany jest jasny czy ciemny schemat kolorystyczny, można wykorzystać cssową dyrektywę @media (prefers-color-scheme:

@media (prefers-color-scheme: dark) {
    ...
}

@media (prefers-color-scheme: light) {
    ...
}

Zasada jest taka, że wartość dark jest aktywowana, gdy preferowany jest ciemny schemat kolorystyczny, natomiast wartość light, gdy preferowany jest schemat jasny lub preferencje nie są ustalone. Oczywiście wewnątrz dyrektyw @media umieszczane są te definicje, które są charakterystyczne dla danego schematu. Definicje ogólne, niezależne od schematu, należy umieszczać poza tymi dyrektywami.

Przykładowa strona oraz jej źródło:

<!DOCTYPE html>
<html lang="pl">

<head>
    <meta charset="utf-8">

    <style type="text/css">
        @media (prefers-color-scheme: dark) {
            body {
                background-color: #111;
            }

            .box1 {
                background-color: #222;
                color: white;
            }

            .box2 {
                background-color: #222;
                color: blue;
            }
        }

        @media (prefers-color-scheme: light) {
            body {
                background-color: #eee;
            }

            .box1 {
                background-color: #fff;
                color: black;
            }

            .box2 {
                background-color: #e8e8e8;
                color: #222;
            }
        }

        .box1 {
            font: 20px "Helvetica, sans-serif";
            border: 1px solid;
            margin: 5px;
            padding: 3px;
        }

        .box2 {
            font: 20px "Georgia, serif";
            border: 1px dotted;
            margin: 5px;
            padding: 3px;
        }
    </style>
</head>

<body>
    <div class="box1">
        Tekst przykładowy.
    </div>

    <div class="box2">
        Inny tekst.
    </div>
</body>

</html>