Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: CSS Modules, CSS custom properties, JavaScript, dynamic styling, React

Как можно передать CSS-переменную через JavaScript внутрь CSS Modules, чтобы динамически менять стиль компонента?

Вопрос проверяет понимание взаимодействия JavaScript и CSS Modules для динамического изменения стилей компонента через CSS-переменные.

Короткий ответ

CSS-переменные (custom properties) можно динамически изменять через JavaScript, устанавливая их значения через свойство style элемента или через setProperty. В CSS Modules переменные объявляются в глобальном селекторе :root или локально. Для динамического изменения достаточно обратиться к DOM-элементу и задать новое значение переменной, которая будет использована в стилях модуля.

Длинный ответ

Как работает передача CSS-переменных через JavaScript в CSS Modules

CSS-переменные (custom properties) позволяют хранить значения, которые можно переиспользовать в стилях. В CSS Modules переменные объявляются так же, как и в обычном CSS, но с учётом локальной области видимости модуля. Чтобы динамически менять стиль компонента, нужно через JavaScript установить новое значение CSS-переменной на нужном DOM-элементе.

Пример с React

Допустим, у нас есть компонент, который использует CSS Module с переменной --primary-color. Мы хотим менять цвет по клику.

// styles.module.css
:root {
  --primary-color: blue;
}

.button {
  background-color: var(--primary-color);
  color: white;
  padding: 10px 20px;
}
// Button.jsx
import React, { useRef } from 'react';
import styles from './styles.module.css';

function Button() {
  const buttonRef = useRef(null);

  const changeColor = () => {
    if (buttonRef.current) {
      buttonRef.current.style.setProperty('--primary-color', 'red');
    }
  };

  return (
    
      Click me
    
  );
}

export default Button;

В этом примере при клике на кнопку вызывается changeColor, который через setProperty меняет значение --primary-color на 'red'. Стиль кнопки обновляется мгновенно, так как CSS-переменная реактивна.

Где это применяется

  • Темы оформления (светлая/тёмная)
  • Динамические анимации
  • Адаптивные компоненты, зависящие от состояния

Вывод: Использование CSS-переменных с JavaScript — простой и эффективный способ динамического управления стилями без перезагрузки страницы или изменения классов. Это особенно полезно в компонентных фреймворках, где нужно менять внешний вид на основе пользовательского взаимодействия или данных.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    5

Навыки

  • JavaScript

    JavaScript

  • CSS

    CSS

Ключевые слова

#CSS Modules

#CSS custom properties

#JavaScript

#dynamic styling

#React

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию