@teamsparta/stack-core
Version:
stack core
32 lines (30 loc) • 861 B
JavaScript
// src/theme/utils/generateThemeStyles.ts
import {
mapColorTheme,
populateCSSVariables,
primitiveColor
} from "@teamsparta/stack-tokens";
function generateThemeStyles(theme) {
const currentSemanticColor = mapColorTheme(theme);
const semanticColorTokens = populateCSSVariables(
currentSemanticColor,
"stack-semantic"
);
const primitiveColorTokens = populateCSSVariables(
primitiveColor,
"stack-primitive"
);
const semanticColorStyles = Object.entries(semanticColorTokens).map(([key, value]) => `${key}: ${value};`).join("\n");
const primitiveColorStyles = Object.entries(primitiveColorTokens).map(([key, value]) => `${key}: ${value};`).join("\n");
return `
[data-stack-color-theme="${theme}"] {
${semanticColorStyles}
}
:root {
${primitiveColorStyles}
}
`;
}
export {
generateThemeStyles
};