UNPKG

svelte-ux

Version:

- Increment version in `package.json` and commit as `Version bump to x.y.z` - `npm run publish`

27 lines (26 loc) 946 B
export default function cssVars(node, props) { Object.entries(props).forEach(([key, value]) => { // Ignore if null or undefined if (value != null) { value = typeof value === 'boolean' ? (value ? 1 : 0) : value; node.style.setProperty(`--${key}`, `${value}`); } }); let lastProps = {}; return { update(newProps) { const newKeys = Object.keys(newProps); Object.keys(lastProps) .filter((name) => !newKeys.includes(name)) .forEach((name) => node.style.removeProperty(`--${name}`)); Object.entries(newProps).forEach(([key, value]) => { // Ignore if null or undefined if (value != null) { node.style.setProperty(`--${key}`, `${value}`); } delete props[key]; }); lastProps = newProps; }, }; }