Skip to content

Переменные

Что такое переменные?

Переменные - свойства, которые позволяют хранить значения и переиспользовать их в разных местах стилей (управление цветами, отступами, шрифтами и др.)

Использование переменных

Например:

html
<!doctype html>
<html lang="ru">
    <head>
        <meta charset="UTF-8" />
        <title>CSS Переменные</title>
        <link rel="stylesheet" href="style.css" />
    </head>
    <body>
        <h1>Заголовок</h1>
        <button class="btn">Кнопка</button>
    </body>
</html>
css
:root {
    --main-color: #3498db;
    --accent-color: #e74c3c;
    --font-size: 20px;
    --padding: 12px 24px;
    --border-radius: 8px;
}

body {
    font-family: sans-serif;
    background: #f2f2f2;
    color: var(--main-color);
    padding: 40px;
}

h1 {
    font-size: var(--font-size);
    color: var(--accent-color);
}

.btn {
    background-color: var(--main-color);
    color: white;
    padding: var(--padding);
    font-size: var(--font-size);
    border: none;
    border-radius: var(--border-radius);
    cursor: pointer;
    transition: background-color 0.3s;
}

.btn:hover {
    background-color: var(--accent-color);
}

Светлая и тёмня тема

Например:

html
<!doctype html>
<html lang="ru">
    <head>
        <meta charset="UTF-8" />
        <title>Переключение темы</title>
        <link rel="stylesheet" href="style.css" />
    </head>
    <body>
        <button id="toggleTheme">Переключить тему</button>
        <h1>Заголовок</h1>
        <p>Это пример переключения темы с помощью CSS переменных.</p>

        <script>
            const toggleBtn = document.getElementById('toggleTheme')
            toggleBtn.addEventListener('click', () => {
                document.body.classList.toggle('dark')
            })
        </script>
    </body>
</html>
css
:root {
    --bg-color: #ffffff;
    --text-color: #222222;
    --accent-color: #3498db;
}

body {
    background-color: var(--bg-color);
    color: var(--text-color);
    font-family: sans-serif;
    transition:
        background-color 0.3s,
        color 0.3s;
    padding: 2rem;
}

button {
    padding: 10px 20px;
    background-color: var(--accent-color);
    color: white;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    margin-bottom: 1rem;
}

body.dark {
    --bg-color: #1e1e1e;
    --text-color: #f1f1f1;
    --accent-color: #e67e22;
}