Переопределить переменную CoreUI

Итак, есть этот драгоценный камень https://github.com/pelted/coreui-rails, который использует CoreUI, который является шаблоном администратора начальной загрузки.

Теперь этот шаблон переопределяет цвета Bootstrap, и я хотел бы снова переопределить их своими цветами (в частности, -primary), так что, когда я использую, например, btn-primary класс, кнопка была бы моего цвета. Я пробовал это, и это не сработало.

файл _core-variables.scss

$blue:    #2482dc;

$colors: (
    "blue": $blue
);

$theme-colors: (
    "primary": $blue
)

application.scss файл

@import "coreui-free";
@import "core-variables";

Обновлять

Я пробовал функции @include из Bootstrap или CoreUI, в обоих случаях они не определены, несмотря на то, что были импортированы в гем CoreUI-rails: https://github.com/pelted/coreui-rails/blob/master/vendor/assets/stylesheets/_coreui-free.scss

Еще одно обновление

После еще нескольких исследований и проб и ошибок я обнаружил, что могу переопределить .btn-primary только с помощью этого кода:

.btn-primary {
    @include button-variant(theme-color("primary"), theme-color("primary"));
}

Это хорошо, но полностью лишает возможности theme-colors. По этой ссылке https://getbootstrap.com/docs/4.0/getting-started/theming/#components бутстрап обещает:

«Многие компоненты и утилиты Bootstrap построены с использованием циклов @each, которые повторяются по карте Sass. Это особенно полезно для генерации вариантов компонента с помощью нашего $theme-colors и создания адаптивных вариантов для каждой точки останова. Настраивая эти карты Sass и перекомпилируя, вы будут автоматически видеть ваши изменения, отраженные в этих циклах ".

Это я делаю неправильно или проблема с драгоценным камнем? Я не Ruby-разработчик, я пытаюсь заставить работать фронтенд-часть.

Любая помощь будет очень признательна.

Стоит ли изучать 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 называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
3 315
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я думаю, вы столкнулись с проблемой специфики css. Я бы попробовал сначала поставить @import "core-variables", и если это не сработает, вы всегда можете добавить !important после своих переменных, чтобы убедиться, что их специфика имеет приоритет.

спасибо, но боюсь, что это не так. Я обновил вопрос

Daria Doronina 17.04.2018 21:52
Ответ принят как подходящий

Аллилуйя!

Получается, что проблема действительно была в этом драгоценном камне https://github.com/pelted/coreui-rails

Я обнаружил, что _core-variables нужно импортировать перед файлом coreui-free. Поэтому я изменил свой application.scss на это:

@import "core-variables";
@import "coreui-free";

Но это все равно не сработало, поэтому я проверил, что делает этот файл coreui-free. Это выглядит так:

@import "flag-icon/flag-icon";
@import "font-awesome-sprockets";
@import "font-awesome";
@import "simple-line-icons/simple-line-icons";
@import "bootstrap-variables";
@import "bootstrap";
@import "coreui/core";

Оказывается, bootstrap-variables по сути каждый раз перекрывал мой core-variables. Мне нужно было изменить порядок импорта:

@import "bootstrap-variables";
@import "_core-variables";
@import "flag-icon/flag-icon";
@import "font-awesome-sprockets";
@import "font-awesome";
@import "simple-line-icons/simple-line-icons";
@import "bootstrap";
@import "coreui/core";

Теперь переопределить цвет primary очень просто:

$theme-colors: (
    primary: #2482dc
);

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