Preset · Winter season

Winter preset

The built-in Winter preset is a seasonal website decoration composed from Snow, Sparkles and String Lights. Its typed factory lets each layer be configured or removed.

Composition

Quiet snowfall, cool sparkles and a warm line of string lights.

React usage

Decoration.tsx
import { Zeenat } from "zeenat";

export function Decoration() {
  return <Zeenat preset="winter" intensity="medium" />;
}

Next.js App Router

app/layout.tsx
import { Zeenat } from "zeenat";

export default function RootLayout({ children }: { children: React.ReactNode }) {
  return <html><body><Zeenat preset="winter" />{children}</body></html>;
}

Vanilla JavaScript

main.ts
import { zeenat } from "zeenat/vanilla";

const decoration = zeenat({ preset: "winter", intensity: "medium" });
// Later: decoration.destroy();

Typed customization

The Winter subpath exports createWinterPreset. Its supported options are listed below.

TSX
import { Zeenat } from "zeenat";
import { createWinterPreset } from "zeenat/presets/winter";

const customized = createWinterPreset({
  snow: false,
});

<Zeenat preset={customized} />;
PropertyTypeDefaultDescription
snowSnowOptions | falsebuilt-in Snow configOverride Snow options or disable snowfall.
sparklesSparklesOptions | falsebuilt-in cool accentsOverride Sparkles options or remove the accent layer.
lightsStringLightsOptions | falsebuilt-in warm lightsOverride String Lights options or disable the cable.

Intensity and seed

Scene intensity scales effect counts without changing the preset API. A seed makes generated positions and timing deterministic across restarts.

TSX
<Zeenat preset="winter" intensity="low" seed={2026} />

Reduced motion

Sparse static snow, cool accents and a non-twinkling line of lights remain.

Accessibility and reduced motion

Scheduling

Keep dates out of preset definitions. Schedule the scene at the call site with explicit time-zone offsets. Set the year and local offset for your event.

TSX
<Zeenat
  preset="winter"
  activeFrom="2026-12-01T00:00:00Z"
  activeUntil="2027-01-01T00:00:00Z"
/>