Как я могу использовать один и тот же @def в нескольких CssResource CSS-файлах? - PullRequest
2 голосов
/ 15 февраля 2012

Я бы хотел сказать, в одном централизованном месте,

@def mainColor = #f00;

, а затем во всех других моих css-файлах обращайтесь к mainColor без необходимости переопределять его. Затем, когда я меняю mainColor в одном месте, все мое приложение меняет цвет.

Наилучший способ, который я могу себе представить, - это включить два @Source файла для каждого объявления CssResource и всегда включать глобальный файл def. Есть ли другие способы?

1 Ответ

5 голосов
/ 15 февраля 2012

Насколько я знаю, это ваш единственный вариант:

style.css

@def mainColor #f00;

*. Ui.xml

<ui:style src="../../../styles/style.css">
    .widget{ color: mainColor; }
</ui:style>

Недостатком является относительный путь.Каждый файл ui.xml требует отдельного пути src.

В качестве альтернативы, если вы не возражаете против использования файла Constants.java (вместо css), вы можете использовать @eval

<ui:style>
  @eval mainColor com.myproject.client.Styles.INSTANCE.mainColor(); 
  .widget{ color: mainColor; }
</ui:style>    
...