Как перезаписать переменные SCSS при компиляции в CSS

Я пытаюсь использовать jqtouch theming, основанную на SASS и COMPASS. У меня есть файл custom.scss с самым простым кодом, один импорт и одна переменная для перезаписывания:

@import 'jqtouch';

// Override variables
$base-color: #fe892a;/* The default base which is later used for toolbar, list, and button backgrounds.*/

Когда я сейчас скомпилирую scss файл в css, он в основном просто сгенерирует jqtouch css с моим именем файла. Специфика цвета нигде не видна, хотя переменная определенно правильная для документации (Официальное руководство) и в файле jqtouch.scss, который я импорт для костюмирования.

Я запускаю Sass 3.2.9 и Compass 0.12.2 на компьютере под управлением Windows.

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

Файл конфигурации ruby ​​для компаса кажется неприемлемым.

Есть ли у кого-нибудь идея, что не так в этом процессе, чтобы мои значения переопределения игнорировались?

Ответ 1

Вы устанавливаете цвет после его использования. В основном, что вы пытаетесь сделать, это следующее:

$color: red;

.foo {
    background: $color;
}

$color: green;

В зависимости от того, как написано jqtouch, вы вообще не сможете изменять цвета. Вам нужно, чтобы переменные были установлены по умолчанию, чтобы переписать их раньше времени:

$color: green;
$color: red !default; // red is only used if $color is not already set

.foo {
    background: $color; // color is green
}

Итак, ваш код должен быть написан следующим образом:

// Override variables
$base-color: #fe892a;/* The default base which is later used for toolbar, list, and button backgrounds.*/

@import 'jqtouch';