Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+1 987новых вакансий за сутки·91 463вакансии открыты сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании7 238
РезюмеAIПодготовкаСтатьи
BoostТарифыBoost
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 401 кандидат открыт к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python16 417
  • Облачные технологии13 174
  • QA вакансии3 433
  • Backend вакансии2 035
  • Инженер данных1 666
  • Продакт-менеджер1 162

Разработка

  • Android1 816
  • iOS1 666
  • AI вакансии937
  • Fullstack вакансии892
  • Frontend вакансии717
  • Mobile вакансии38

По стеку

  • Go8 561
  • Java6 090
  • Node.js1 889
  • Kotlin1 554
  • .NET1 545
  • Rust1 432
  • PHP640
  • C#562
  • C++498

DevOps и инфраструктура

  • Kubernetes7 303
  • DevOps вакансии5 594
  • Linux-инфраструктура5 291
  • Terraform / IaC4 014
  • CI/CD2 557
  • Мониторинг и Observability1 735
  • SRE548
  • Кибербезопасность398

Аналитика и данные

  • Data Scientist1 033
  • Бизнес-аналитик868
  • Аналитик данных829
  • Системный аналитик134

Другие направления

  • Проджект-менеджер524
  • UI/UX дизайн129
  • Ручное тестирование14

По регионам

  • Вакансии в США44 779
  • Вакансии в Европе21 327
  • Вакансии в Канаде4 450
  • Работа в России3 877

По формату

  • Удалённые вакансии73 902
  • Релокация в США44 794
  • Гибридная работа11 412
  • Офисная работа6 956

По уровню

  • Senior вакансии41 197
  • Middle вакансии20 361
  • Junior вакансии6 638

Сейчас нанимают

Все компании
  • Wise194 вакансии
  • Rakuten189 вакансий
  • ASML164 вакансии
  • Grab136 вакансий
  • Celonis45 вакансий
  • Spotify36 вакансий
  • Adyen29 вакансий
  • Infobip28 вакансий
  • Monzo19 вакансий
  • Darktrace17 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме Tailwind CSSВсе вопросы
Tailwind CSSMiddleТеория

В чём разница между extend и прямым переопределением темы в конфигурации Tailwind?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

theme.extend добавляет значения поверх дефолтов (shadow-card появится вместе с shadow-sm/md/lg), а прямое переопределение в theme полностью заменяет namespace — shadow-sm/md/lg исчезают. В v4 аналог — @theme без initial vs с --color-*: initial.

Tailwind v3: extend vs прямое переопределение

// tailwind.config.js
module.exports = {
  theme: {
    // ПРЯМОЕ ПЕРЕОПРЕДЕЛЕНИЕ: удаляет ВСЕ стандартные тени
    // После этого shadow-sm, shadow-md, shadow-lg — не существуют
    boxShadow: {
      card: '0 4px 16px rgb(0 0 0 / 0.08)',
    },

    extend: {
      // РАСШИРЕНИЕ: добавляет shadow-card, НЕ удаляя shadow-sm/md/lg/xl
      boxShadow: {
        card: '0 4px 16px rgb(0 0 0 / 0.08)',
      },

      // Цвета: добавляет brand-* поверх blue, red, gray и т.д.
      colors: {
        brand: {
          500: '#3b82f6',
          700: '#1d4ed8',
        },
      },

      // Spacing: добавляет 18 (4.5rem) поверх 1,2,3...
      spacing: {
        18: '4.5rem',
      },
    },
  },
};

extend vs переопределение: суть разницы

В Tailwind CSS v3 есть два места для пользовательских значений в tailwind.config.js: theme.extend (добавляет поверх дефолтов) и theme напрямую (полностью заменяет namespace). В v4 аналогичная логика реализована через @theme с возможностью сброса через initial.

Что происходит при прямом переопределении

Если вынести ключ из extend в theme напрямую — Tailwind заменяет весь namespace. Типичная ошибка:

// ОПАСНО: theme.colors без extend
module.exports = {
  theme: {
    colors: {
      brand: { 500: '#3b82f6' },
      // white, black, transparent, slate, gray... — всё исчезло!
    },
  },
};

После этого классы text-white, bg-gray-100, border-transparent перестают работать — их нет в сгенерированном CSS.

Tailwind v4: @theme и сброс через initial

@import "tailwindcss";

@theme {
  /* РАСШИРЕНИЕ: добавляет --color-brand-500, не трогая остальные цвета */
  --color-brand-500: oklch(0.62 0.18 255);
  --color-brand-700: oklch(0.48 0.16 255);
}
@import "tailwindcss";

@theme {
  /* ПОЛНАЯ ЗАМЕНА: сначала сбрасываем все дефолтные цвета */
  --color-*: initial;

  /* Затем задаём только нужные */
  --color-brand-500: oklch(0.62 0.18 255);
  --color-white:     #ffffff;
  --color-black:     #000000;
  --color-transparent: transparent;
}

Когда что выбирать

  • extend / без initial — в 95% случаев. Сохраняет дефолтную шкалу, добавляет брендовые токены поверх.
  • прямое переопределение / initial — когда строите изолированную дизайн-систему и дефолтная палитра Tailwind только мешает (создаёт лишние классы, конфликты с lint-правилами). Используется в больших продуктах с жёстким design token governance.

Подводные камни

  • Забытый white/black при полной замене — --color-*: initial удаляет в том числе white, black, transparent; без явного восстановления сломаются все компоненты.
  • Прямое переопределение fonts удаляет font-sans/serif/mono — если задать theme.fontFamily без extend, пропадают дефолтные font-* классы.
  • Конфликт плагинов — сторонние плагины Tailwind могут ожидать наличие дефолтных цветов или spacing; полная замена ломает их стили.
  • Нет предупреждения в консоли — Tailwind не сообщает, что дефолтные значения были удалены; ошибки проявляются только в браузере.
  • theme.colors vs theme.extend.colors в v3 IntelliSense — VSCode-плагин Tailwind IntelliSense показывает разные подсказки в зависимости от того, в каком месте конфига лежит ключ.
  • Partial override — переопределение только части шкалы (например, только gray) при прямом size: theme.colors.gray = {...} удаляет остальные цвета, если не использован spread.
  • Обратная совместимость при миграции v3→v4 — в v4 нет theme.extend из конфига; логику нужно переносить в @theme вручную.

Частые вопросы на собеседовании

  • Что такое Tailwind CSS и что означает подход «utility-first»?
  • Каковы лучшие практики организации Tailwind-классов в больших кодовых базах?
  • Как работает адаптивный дизайн в Tailwind? Объясните префиксы breakpoints (sm, md, lg, xl, 2xl).
  • Что такое массив content в конфигурации Tailwind и почему он важен?

Типичные ошибки

  • Смешивать «extend и переопределение темы» с похожим механизмом без критерия выбора.
  • Игнорировать риск: неверно оценить границы применения темы «extend и переопределение темы» и получить хрупкое решение.
  • Показывать только синтаксис и не объяснять поведение в runtime или сборке.

Что проверяет интервьюер

  • Объясняет сохранение стандартных токенов против замены namespace.
  • Показывает на примере, как работает: в v3 theme.extend добавлял значения поверх defaults, а прямое переопределение могло удалить стандартную шкалу; в v4 похожая идея выражается через добавление или сброс CSS theme variables.
  • Называет production-нюанс и граничный случай для темы «extend и переопределение темы».

Как вы знаете этот вопрос?

Проверить себя по теме Tailwind CSS →

Источники

  • https://tailwindcss.com/docs/theme
  • https://tailwindcss.com/docs/upgrade-guide

Связанные темы

Tailwind CSSdesign-systems