Я хочу создать что-то, что могло бы использовать файл .css
, возвращающий функцию, которая будет принимать массив имен классов и возвращать стили, которые будут применяться к элементу с этими именами классов, как объект JavaScript. (Такой инструмент подойдет для использования с Glamour, Fela или другими технологиями CSS-in-JS.)
Например, если у вас есть этот файл CSS:
.btn {
border: 1px solid gray;
}
.btn.primary {
background: blue;
border-color: blue;
}
.btn-group {
display: inline-block;
}
то вы можете сделать что-то вроде этого:
import css from "./btn.css";
import applicableStyles from "applicable-styles"; // what I want to build
const btnStyles = applicableStyles(css, ['btn', 'primary']);
// Expected value:
{
border: "1px solid gray"
background: "blue";
border-color: "blue";
}
В этом примере .btn-group
игнорируется, потому что мы спросили только, какой стиль будет применяться к .btn.primary
.
Для меня это новая территория, но я знаю, что есть инструменты для парсинга CSS. Какие библиотеки могут быть наиболее перспективными? (Или что-то подобное уже существует?)
CSSRule.cssText
только для получения правила — он даже не отделяет селектор от свойств стиля, не говоря уже о представлении их в формате JavaScript. :/ - person Alan H.   schedule 22.09.2017