Цвета темы Bootstrap 4: переменные против карты

В Bootstrap 4 можно изменить цвета темы, переопределив такие переменные:

$primary: #0074d9;
$danger: #ff4136;

Или изменив карту цветов темы следующим образом:

$theme-colors: (
  "primary": #0074d9,
  "danger": #ff4136
);

Когда и почему мы должны использовать одно вместо другого?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
8
0
6 964
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Фактически, лучше всегда переопределять цвета вашей темы в карте $theme-colors, чтобы гарантировать замену цветов, из которых бутстрап будет использовать эти цвета позже при генерации соответствующего CSS. Bootstrap рекомендует это сделать.

Если вы решите переопределить определение цвета по умолчанию, вы переопределите создание самой палитры, поэтому у начальной загрузки больше не будет доступа к цветам по умолчанию.

Вы могли сделать следующее:

Опция 1

Отменить значения по умолчанию (не рекомендуется Bootstrap).

Вариант 2

Переопределите карту, используя шестнадцатеричные значения:

$theme-colors : (
    'primary' : #0074d9,
    'danger'  : #ff4136
);

Затем вы можете получить доступ к любому из цветов вашей темы с помощью map_get:

$my-color : map_get($theme-colors, 'primary'); // #0074d9

Вариант 3

Вы можете определить свой собственный набор переменных для переопределения карты, тогда у вас всегда будет доступ к вашим переменным без использования map_get:

$my-primary-color : #0074d9;
$my-danger-color  : #ff4136;

$theme-colors : (
    'primary' : $my-primary-color,
    'danger'  : $my-danger-color
);

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

slacle 07.05.2018 03:39

Затем вы можете определить свой собственный набор переменных и использовать эти переменные для переопределения карты; таким образом у вас будет доступ к вашим собственным переменным и вы измените тему в соответствии с тем, что вам предлагают делать документы Boostrap. Вы всегда можете использовать map_get, чтобы получить значение. Например, если вы переопределите значение primary из карты, вы можете использовать map_get($theme_colors, 'primary'); для получения его значения.

muecas 07.05.2018 03:46

@slacle, я обновил свой ответ, чтобы он лучше соответствовал вашим потребностям. Сообщите мне, помогло ли это.

muecas 07.05.2018 14:48

здесь мы можем также переопределить цвет границы?

Vishal Tanna 21.10.2020 15:30

@VishalTanna из какой смеси? Где в файлах scss применяется цвет границы? К кнопкам?

muecas 21.10.2020 21:08

@muesca да внутри файла scss, поскольку мы переопределяем цвет кнопки выше, мы переопределяем цвет границы

Vishal Tanna 22.10.2020 07:07

@VishalTanna может просто указать желаемый цвет, если цвет фона, который вы установили, переопределяет всю кнопку, создайте селектор, чтобы указать желаемый цвет границы. Это должно делать свое дело. Может быть, вы можете задать вопрос по этому поводу.

muecas 23.10.2020 16:49

Для других, использующих bootstrap 5 - $primary: [color] является предпочтительным методом: getbootstrap.com/docs/5.0/customize/sass/#maps-and-loops

Jeffrey Martinez 04.04.2021 07:08

Другие вопросы по теме