Я могу вспомнить пару подходов с макушки головы:
- Служите вашей таблице стилей через контроллер.
- Используйте CSS-классы для настройки цветов и обслуживайте только этот CSS через контроллер, встроенный фрагмент или CSS
@import
.
Обслуживание вашей таблицы стилей через контроллер довольно просто, поэтому сказать особо нечего. Это может быть немного уродливо и громоздко.
Для второго вы добавите пару дополнительных классов CSS:
.custom-bg {
background-color: some-default-bg;
}
.link-fg {
color: some-default-fg;
}
/*...*/
Тогда для любого элемента, которому нужно использовать пользовательский цвет фона, потребуются свои обычные классы CSS и custom-bg
; аналогичные махинации потребуются для других настраиваемых значений. Чтобы предоставить настроенный CSS, вы могли бы встроить элемент <style>
в ваш HTML, используя стандартную часть ERB, или вы могли бы обслуживать CSS через контроллер (либо через <style src="...">
, либо @import
). Таким образом, вы подделаете SASSy совершенство с помощью нескольких классов CSS в своем HTML.
Также есть JavaScript. Вам понадобится какой-то способ определить элементы, для которых необходимо настроить их цвета, а затем настроить их напрямую с помощью таких вещей:
$('.need-custom-background').css('background-color', '...');