2016-04-27 16 views
2

Мне просто интересно, какой был бы лучший подход к использованию пользовательских свойств cssnext, подобных этим, наряду с модулями css в реагировании.css modules & cssnext custom properties in response + webpack

Есть ли способ поделиться ими по всем модулям?

:root{ 
    --primary: pink; 
    --fontSize: 1rem; 
    --fullWidth: 100%; 
    --color: red; 
    --gutter: 1.618rem; 
} 
@custom-media --small-viewport (max-width: 30em); 
@custom-media --large-viewport (min-width: 75em); 
@custom-media --only-medium-screen (width >= 500px) and (width <= 1200px); 

EDIT: *** ок я попробовал это, подумал он работал, но не имеет

:global(:root) { 
    --primary: pink; 
    --fontSize: 1rem; 
    --fullWidth: 100%; 
    --color: pink; 
    --gutter: 1.618rem; 
} 
+0

Похоже, вы должны быть в состоянии просто «@ включить» их в свои другие файлы css. Ты можешь не? Что вы пробовали? –

ответ

2

Модули CSS должны обращаться только селекторы, которые являются имена классов (которые начинаются с точки). Поэтому это не должно быть проблемой, и вы должны иметь возможность использовать это настраиваемое определение, как только они находятся в файле. Вы можете использовать postcss-import для встроенного файла, содержащего глобальные определения.

Другим решением является определить эти глобальные значения с помощью опций postcss плагина:

+0

+1 для MoOx, что использование postcss-custom-properties - хороший способ пойти. Другим способом, который я использовал, является postcss-advanced-variables - вы определяете свои глобальные переменные в файле javscript, и их не нужно импортировать. Вам нужно что-то вроде webpack, чтобы определить путь к вашему js-файлу, [см. Эту ссылку] (https://github.com/jonathantneal/postcss-advanced-variables). – msmfsd

1

Поскольку postcss-погрузчик только преобразует один файл в то время, вы должны импортировать ваши пользовательские свойства, например

@import './root.css'; 

.foo { 
    color: var(--primary); 
}