Je veux construire quelque chose qui pourrait consommer un fichier .css
retourner une fonction qui prendrait un tableau de noms de classe et retourner les styles qui s'appliqueraient à un élément avec ces noms de classe, comme un JavaScript objet. (Un tel outil serait adapté à une utilisation avec Glamour, Fela ou d'autres technologies CSS-in-JS.)Parse CSS en JavaScript avec la conscience de sélecteur
Par exemple, si vous avez ce fichier CSS:
.btn {
border: 1px solid gray;
}
.btn.primary {
background: blue;
border-color: blue;
}
.btn-group {
display: inline-block;
}
alors vous pourriez faire quelque chose comme ceci:
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";
}
Dans cet exemple, .btn-group
est ignorée parce que nous ne demandions quel style s'appliquerait à .btn.primary
.
Ceci est un nouveau territoire pour moi, mais je sais qu'il existe des outils pour analyser le CSS. Quelles bibliothèques pourraient être les plus prometteuses à regarder? (Ou, est-ce que quelque chose comme ceci existe déjà?)
êtes-vous à la recherche de https://developer.mozilla.org/en/docs/Web/API/Window/getComputedStyle? Il suffit de connecter le fichier CSS dans un iframe, créer les éléments là-bas et obtenir leurs styles – smnbbrv
Peut-être que https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet pourrait aider. . . –
Je ne veux pas getComputedStyle - qui retourne une énorme liste de propriétés calculées. –