Copperplate Hatch
motiq/copperplate-hatchFreeComponent
An engraved plate lit from within: candle-gold light waves radiate from a focal point and ignite each burin stroke as they pass, making the whole plate glint in sequence. One canvas + a single rAF loop; committed dark Motion Lab palette; reduced-motion static frame, offscreen-paused, forced-colors fallback.
Live preview
live · rendered by the registry
Rendered by motiq on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://www.motiq.dev/r/copperplate-hatch.jsonSource
1"use client";23import * as React from "react";45import { cn } from "@/lib/utils";6import { useReducedMotion, useVisibilityPause } from "@/lib/motiq";78/* -------------------------------------------------------------------------- */9/* Types */10/* -------------------------------------------------------------------------- */1112export interface CopperplateFocalPoint {13 /** 0–1 horizontal position of a "light source" driving the tonal field. */14 x: number;15 /** 0–1 vertical position of a "light source" driving the tonal field. */16 y: number;17}1819export interface CopperplateSafeArea {20 /** 0–1 left edge of the readable safe area. */21 x: number;22 /** 0–1 top edge of the readable safe area. */23 y: number;24 /** 0–1 width of the readable safe area. */25 w: number;26 /** 0–1 height of the readable safe area. */27 h: number;28}2930export interface CopperplateHatchProps extends React.HTMLAttributes<HTMLDivElement> {31 /** Hatch-stroke density multiplier (smaller pitch = more strokes). ~0.4–1.6. */32 density?: number;33 /** Overall ink/glint contrast of the plate (0–1.4). */34 intensity?: number;35 /** Light-wave travel speed multiplier. 0 (or reduced motion) freezes on a rich still frame. */36 speed?: number;37 /**38 * One or two "light source" points. The first drives the traveling radial light39 * (follows the pointer when `interactive`); the second, if given, is a static40 * secondary bright zone in the tonal field.41 */42 focalPoint?: CopperplateFocalPoint | CopperplateFocalPoint[];43 /** Region where the plate dims toward the ground so foreground text stays readable44 * (drives only the DOM frosted scrim behind `children` — the canvas quiet-zone45 * gradient itself is fixed to the Motion Lab values for a pixel-identical look). */46 safeArea?: CopperplateSafeArea;47 /** Overrides the metallic glint / focal light gold. Accepts a plain `#hex` or48 * `rgb()`/`rgba()` string; omit to use the exact Motion Lab gold (`#eab365`).49 * Values that need DOM resolution (e.g. `var(...)`) are ignored — this component50 * is a fixed dark palette, not theme-aware. */51 accent?: string;52 /** Deterministic seed for the hatch field layout (SSR-stable). */53 seed?: number;54 /** Pause the loop when scrolled offscreen or the tab is hidden. */55 pauseWhenHidden?: boolean;56 /** The focal light follows the pointer (never the sole effect). */57 interactive?: boolean;58// … truncated
What it pulls in
Other registry items
Files it writes
More from motiq
All 100 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Activity Streamactivity-stream | motiq | Components | Free | 1 dep | |
| Adaptive Safe-Zone Gridadaptive-safe-zone-grid | motiq | Components | Free | no deps | |
| Agent Run Timelineagent-run-timeline | motiq | Components | Free | 1 dep | |
| AI Response Streamai-response-stream | motiq | Components | Free | 1 dep | |
| Animated Accordionanimated-accordion | motiq | Components | Free | 2 deps | |
| Animated Buttonanimated-button | motiq | Components | Free | 1 dep | |
| Animated Dialoganimated-dialog | motiq | Components | Free | 2 deps | |
| Animated Gridanimated-grid | motiq | Components | Free | 2 deps |
