Skip to content

Kinetic Type Field

Letters that repel the pointer and drift back into place.

LIVE PREVIEWInteract with the component
Install dependencies

npm install @react-three/fiber three

CSS Modules

Usage

Matches your current playground settings.

jsx
import KineticTypeField from "./KineticTypeField";
export default function Example() {
return (
<KineticTypeField
text={"DESIGN IS A SYSTEM, NOT A STYLE"}
colors={[
"#0b0b12",
"#e2e8f0",
"#22d3ee"
]}
intensity={1}
tilt={1}
parallax={1}
speed={0.6}
letterSpacing={0.62}
letterScale={1}
fontFamily={"Space Grotesk, system-ui, sans-serif"}
fontWeight={700}
fontSize={170}
minHeight={240}
/>
);
}

Using Kinetic Type Field

Use a short phrase with enough space for individual letters to move. fontSize, letterSpacing, and letterScale determine the composition.

Keep the text readable in its resting position. Use minHeight to reserve the interactive area and a restrained speed for a calmer response.

Props

NameTypeRequiredDefaultDescription
textstringNo""Headline text rendered as kinetic letter planes.
classNamestringNoundefinedAdditional CSS class names, merged with base component styles.
colorsstring[]No["#0b0b12", "#e2e8f0", "#22d3ee"]Array of up to three colors used for the background and letter gradient.
intensitynumberNo1Overall brightness of the letter textures.
tiltnumberNo1How much the letters rotate as they repel from the cursor.
parallaxnumberNo1Strength of the cursor repulsion effect.
speednumberNo0.6Speed multiplier for the drifting motion.
letterSpacingnumberNo0.62Horizontal spacing between letters, measured in scene units.
letterScalenumberNo1Scale multiplier applied to each letter plane.
fontFamilystringNo"Space Grotesk, system-ui, sans-serif"Font family used to draw the letter textures.
fontWeightnumber | stringNo700Font weight used in the canvas text rendering.
fontSizenumberNo170Font size for the canvas-rendered letters.
minHeightnumber | stringNo240Minimum height for the component container. Accepts a number (pixels) or any valid CSS height string.
mouseRefReact.MutableRefObject<{ x: number; y: number }>NoundefinedOptional pointer ref for external cursor tracking, values in the range [-1, 1].

Related components

Split Text

Text Effects

A staggered character reveal as text enters the viewport.

Reflection Text

Text Effects

Crisp typography meets a soft, fading reflection beneath the baseline.