#html #css #algorithm #colors
#HTML #css #алгоритм #Цвет
Вопрос:
Библиотеки, такие как Bootstrap, часто предоставляют предопределенные цветовые схемы, например, для кнопок и предупреждений (например, успех, информация, предупреждение и опасность). В HTML они обычно состоят из background-color
и border-color
, причем последние обычно имеют тот же оттенок цвета, но немного светлее или темнее. Допустим, у нас есть кнопка со светло-зеленым фоном и темно-зеленой рамкой.
При настройке цветовой схемы я часто хочу заменить основной цвет, но сохранить расстояние, которое имеют основной цвет и его вторичный цвет (например, выделение или контур). Предполагая, что я хочу сделать кнопку красной в качестве основного цвета, как мне рассчитать вторичный цвет, чтобы он имел точно такое же расстояние, что и светло-зеленый и темно-зеленый?
Например, существующий стиль кнопки:
background-color: #343A40;
border-color: #243030;
Настройка цветовой схемы следующим образом:
background-color: #8D33AB;
border-color: ???;
В настоящее время я перевожу шестнадцатеричный код в формат RGB, а затем вычисляю расстояние красного, зеленого и синего каналов по отдельности. Затем я применяю те же расстояния к моему новому основному цвету (т.Е. Добавляю или вычитаю). Есть ли какой-либо более простой способ заменить цвет, сохраняя расстояние известной цветовой пары?
Комментарии:
1. Обычно я не разбираюсь с этим вручную, но Adobe Color Wheel (учетная запись CC не требуется) — это потрясающе. Вот оно color.adobe.com/create/color-wheel . Я также заметил много вещей, которые люди будут использовать
opacity:0.5
для границы, используя для нее тот же цвет, что и для фона, чтобы получить аналогичный эффект, который вы ищете. Просто идеи.2. Bootstrap использует функции sass lighten / darken . Вы можете сделать то же самое.
3. @bigless: это верно и для Bootstrap 3.4.1, или только для Bootstrap 4.x и 5.x?
4. Я думаю, что v3 использовал less, который имеет аналогичные функции