Skip to content

createElementClass ​

ts
function createElementClass(
    getElement: () => HTMLElement | null | undefined | void,
    getClass: () => string | string[] | null | undefined | void,
): Effect;

Creates an effect that adds and removes CSS classes from an HTML element based on reactive getter functions. Classes are automatically removed when the effect is cleaned up.

Example ​

ts
import { createElementClass } from "@monstermann/signals-web";
import { signal } from "@monstermann/signals";

const $element = signal<HTMLElement | null>(null);
const $isActive = signal(false);

// Adds/removes classes based on signal changes:
const dispose = createElementClass(
    () => $element(),
    () => ($isActive() ? "active" : "inactive"),
);

dispose();