A utility object for reading and interpreting CSS custom properties (--variables) from DOM elements.
- ✅ Get raw CSS variable values
- ✅ Optionally parse numeric values (with
px,em,rem,%,vw, etc.) - ✅ Supports responsive units and live layout context
- ✅ Safe fallback: returns
NaNwhen parsing fails
const el = document.querySelector("#my-box");
const raw = CSSUtils.getCssVariableValue(el, "--custom-size"); // "2em"
const parsed = CSSUtils.getCssVariableValue(el, "--custom-size", true); // 32 (if base font-size is 16px)
CSSUtils.getCssVarValue V2
CSSUtils.getCssVarValue(el, varName)const raw = CSSUtils.getCssVarValue(box, "--padding");CSSUtils.getCssVarValue(el, varName, true)const num = CSSUtils.getCssVarValue(box, "--padding", true);.once(el, varName, parseAsNumber?)const size = CSSUtils.getCssVarValue.once(box, "--padding", true);.getter(el, varName, parseAsNumber?, options, dynamic?)const getter = CSSUtils.getCssVarValue.getter(box, "--padding");const value = getter();.getter(..., false)const value = CSSUtils.getCssVarValue.getter(box, "--padding", true, {}, false);.batch(el, [varNames], parseAsNumbers?)const [w, h] = CSSUtils.getCssVarValue.batch(box, ["--width", "--height"], true);.cleanup()CSSUtils.getCssVarValue.cleanup();Best Practices
.once()or.getter(..., false).getter()(default dynamic mode).batch().cleanup()Quick Notes
.getter()withdynamic = truecreates a live fresh reader..getter(..., false)or.once()is faster, no observers, static only.vw,vh,vmin,vmax).CodePen Demo
CodePen Example