// Encoded in CSS
:root {
--accent-bg: #f11f11;
--border-radius: 2px;
--opacity: 0.2;
}
// Read in JS
const styles = getComputedStyle(document.documentElement);
const accentBg = styles.getPropertyValue('--accent-bg');// Encoded in CSS
#variable-info::after {
display: none;
content: '{
"accent-bg": "#f11f11",
"border-radius": "2px",
"chart-opacity": 0.2
}';
}
// Read in JS (excuse my jQuery)
const element = $("<div id='variable-info' />").appendTo("body");
const content = window.getComputedStyle(element, '::after').content;
const variables = JSON.parse(JSON.parse(content));// grid.scss
@import "button";
@import "dropdown";
// `only-once` mixin outputs content only once
@include only-once('grid') {
.grid {
// styles
}
}
// user code
@import "grid"