Installation
Choose your framework. The registry installs the component and its runtime dependency.
Installation unavailable
The preview is public, but its installable release is still being prepared.
The registry command writes the component to src/lib/components/ui/TextStripes.svelte and installs its dependencies.
The registry command writes the component to src/components/ui/TextStripes.tsx and installs its dependencies.
The registry command writes the component to src/components/ui/TextStripes.vue and installs its dependencies.
Basic usage
The shader fills its parent. Your layout decides whether that parent is a card, hero, or viewport.
Component API
Types below match the selected Svelte component.
Additional classes for the parent-sized root element.
- Type
string
Plain text to display. Newlines create separate lines. Supports up to 4096 UTF-16 code units.
- Type
string- Range / values
Plain text, up to 4096 UTF-16 code units
URL of a WOFF2, WOFF, TTF, or OTF font, or a font source object with OpenType settings.
- Type
string | ShaderFontSource- Range / values
Font URL or { url, weight?, style?, stretch?, featureSettings?, variationSettings? }
Maximum size in CSS pixels when fitting; exact size when fitting is off.
- Type
number- Default
512- Range / values
8–2048
Weight selected from the supplied font. Variable fonts can use intermediate weights.
- Type
number- Default
600- Range / values
1–1000
Upright or italic text. Supply an italic face for its designed letterforms.
- Type
"normal" | "italic"- Default
"normal"- Range / values
normal, italic
Extra space between characters, measured in em.
- Type
number- Default
-0.03- Range / values
-0.1–0.5
Distance between baselines as a multiple of the font size.
- Type
number- Default
1.1- Range / values
0.8–2
Inset from the canvas edges, relative to its shorter side.
- Type
number- Default
0.1- Range / values
0–0.4
Horizontal alignment of each line. Start and end follow the text direction.
- Type
"start" | "center" | "end"- Default
"center"- Range / values
start, center, end
Placement of the text block within the canvas.
- Type
"top" | "middle" | "bottom"- Default
"middle"- Range / values
top, middle, bottom
Keep explicit lines, wrap at words, or wrap at Unicode grapheme boundaries.
- Type
"none" | "word" | "grapheme"- Default
"none"- Range / values
none, word, grapheme
Shrink the text to fit the available area, or retain the requested font size.
- Type
"contain" | "none"- Default
"contain"- Range / values
contain, none
Choose the base writing direction. Auto uses the first strong letter in each paragraph.
- Type
"auto" | "ltr" | "rtl"- Default
"auto"- Range / values
auto, ltr, rtl
Color of the resting text.
- Type
string- Default
"#FFFFFF"
Number of vertical strips across the canvas.
- Type
number- Default
32- Range / values
2–128
Distance from the text at which pointer movement affects the strips, relative to the canvas width. The reach is equal in both directions.
- Type
number- Default
0.12- Range / values
0.01–0.5
Amount of pointer movement transferred to the strips.
- Type
number- Default
0.8- Range / values
0–3
Motion retained while settling. Higher values return more slowly.
- Type
number- Default
0.94- Range / values
0–0.995
Color separation caused by movement. Returns to zero as the strips settle.
- Type
number- Default
0.1- Range / values
0–0.2
Stops the render loop while keeping the current frame visible.
- Type
boolean- Default
false
Enables pointer interaction. Existing distortion settles after interaction is disabled.
- Type
boolean- Default
true- Range / values
true, false
Caps render resolution independently from the element size.
- Type
number- Default
2- Range / values
1–3
Scales GPU resolution without changing layout dimensions.
- Type
number- Default
1- Range / values
0.25–1
Runs after the shader is mounted successfully, including a WebGL fallback.
- Type
(backend: ShaderBackend) => void- Range / values
webgpu, webgl
Runs when automatic initialization changes the requested WebGPU backend to WebGL.
- Type
(backend: ShaderBackend, reason: string) => void- Range / values
webgl
Reports source-loading or renderer failures so the host application can decide how to recover.
- Type
(error: Error) => void
Exposes the imperative component lifecycle methods.
- Type
Component public instance- Range / values
pause, resume, reset, resize, destroy
Types below match the selected React component.
Additional classes for the parent-sized root element.
- Type
string
Plain text to display. Newlines create separate lines. Supports up to 4096 UTF-16 code units.
- Type
string- Range / values
Plain text, up to 4096 UTF-16 code units
URL of a WOFF2, WOFF, TTF, or OTF font, or a font source object with OpenType settings.
- Type
string | ShaderFontSource- Range / values
Font URL or { url, weight?, style?, stretch?, featureSettings?, variationSettings? }
Maximum size in CSS pixels when fitting; exact size when fitting is off.
- Type
number- Default
512- Range / values
8–2048
Weight selected from the supplied font. Variable fonts can use intermediate weights.
- Type
number- Default
600- Range / values
1–1000
Upright or italic text. Supply an italic face for its designed letterforms.
- Type
"normal" | "italic"- Default
"normal"- Range / values
normal, italic
Extra space between characters, measured in em.
- Type
number- Default
-0.03- Range / values
-0.1–0.5
Distance between baselines as a multiple of the font size.
- Type
number- Default
1.1- Range / values
0.8–2
Inset from the canvas edges, relative to its shorter side.
- Type
number- Default
0.1- Range / values
0–0.4
Horizontal alignment of each line. Start and end follow the text direction.
- Type
"start" | "center" | "end"- Default
"center"- Range / values
start, center, end
Placement of the text block within the canvas.
- Type
"top" | "middle" | "bottom"- Default
"middle"- Range / values
top, middle, bottom
Keep explicit lines, wrap at words, or wrap at Unicode grapheme boundaries.
- Type
"none" | "word" | "grapheme"- Default
"none"- Range / values
none, word, grapheme
Shrink the text to fit the available area, or retain the requested font size.
- Type
"contain" | "none"- Default
"contain"- Range / values
contain, none
Choose the base writing direction. Auto uses the first strong letter in each paragraph.
- Type
"auto" | "ltr" | "rtl"- Default
"auto"- Range / values
auto, ltr, rtl
Color of the resting text.
- Type
string- Default
"#FFFFFF"
Number of vertical strips across the canvas.
- Type
number- Default
32- Range / values
2–128
Distance from the text at which pointer movement affects the strips, relative to the canvas width. The reach is equal in both directions.
- Type
number- Default
0.12- Range / values
0.01–0.5
Amount of pointer movement transferred to the strips.
- Type
number- Default
0.8- Range / values
0–3
Motion retained while settling. Higher values return more slowly.
- Type
number- Default
0.94- Range / values
0–0.995
Color separation caused by movement. Returns to zero as the strips settle.
- Type
number- Default
0.1- Range / values
0–0.2
Stops the render loop while keeping the current frame visible.
- Type
boolean- Default
false
Enables pointer interaction. Existing distortion settles after interaction is disabled.
- Type
boolean- Default
true- Range / values
true, false
Caps render resolution independently from the element size.
- Type
number- Default
2- Range / values
1–3
Scales GPU resolution without changing layout dimensions.
- Type
number- Default
1- Range / values
0.25–1
Runs after the shader is mounted successfully, including a WebGL fallback.
- Type
(backend: ShaderBackend) => void- Range / values
webgpu, webgl
Runs when automatic initialization changes the requested WebGPU backend to WebGL.
- Type
(backend: ShaderBackend, reason: string) => void- Range / values
webgl
Reports source-loading or renderer failures so the host application can decide how to recover.
- Type
(error: Error) => void
Exposes the imperative component lifecycle methods.
- Type
TextStripesHandle- Range / values
pause, resume, reset, resize, destroy
Types below match the selected Vue component.
Additional classes for the parent-sized root element.
- Type
string
Plain text to display. Newlines create separate lines. Supports up to 4096 UTF-16 code units.
- Type
string- Range / values
Plain text, up to 4096 UTF-16 code units
URL of a WOFF2, WOFF, TTF, or OTF font, or a font source object with OpenType settings.
- Type
string | ShaderFontSource- Range / values
Font URL or { url, weight?, style?, stretch?, featureSettings?, variationSettings? }
Maximum size in CSS pixels when fitting; exact size when fitting is off.
- Type
number- Default
512- Range / values
8–2048
Weight selected from the supplied font. Variable fonts can use intermediate weights.
- Type
number- Default
600- Range / values
1–1000
Upright or italic text. Supply an italic face for its designed letterforms.
- Type
"normal" | "italic"- Default
"normal"- Range / values
normal, italic
Extra space between characters, measured in em.
- Type
number- Default
-0.03- Range / values
-0.1–0.5
Distance between baselines as a multiple of the font size.
- Type
number- Default
1.1- Range / values
0.8–2
Inset from the canvas edges, relative to its shorter side.
- Type
number- Default
0.1- Range / values
0–0.4
Horizontal alignment of each line. Start and end follow the text direction.
- Type
"start" | "center" | "end"- Default
"center"- Range / values
start, center, end
Placement of the text block within the canvas.
- Type
"top" | "middle" | "bottom"- Default
"middle"- Range / values
top, middle, bottom
Keep explicit lines, wrap at words, or wrap at Unicode grapheme boundaries.
- Type
"none" | "word" | "grapheme"- Default
"none"- Range / values
none, word, grapheme
Shrink the text to fit the available area, or retain the requested font size.
- Type
"contain" | "none"- Default
"contain"- Range / values
contain, none
Choose the base writing direction. Auto uses the first strong letter in each paragraph.
- Type
"auto" | "ltr" | "rtl"- Default
"auto"- Range / values
auto, ltr, rtl
Color of the resting text.
- Type
string- Default
"#FFFFFF"
Number of vertical strips across the canvas.
- Type
number- Default
32- Range / values
2–128
Distance from the text at which pointer movement affects the strips, relative to the canvas width. The reach is equal in both directions.
- Type
number- Default
0.12- Range / values
0.01–0.5
Amount of pointer movement transferred to the strips.
- Type
number- Default
0.8- Range / values
0–3
Motion retained while settling. Higher values return more slowly.
- Type
number- Default
0.94- Range / values
0–0.995
Color separation caused by movement. Returns to zero as the strips settle.
- Type
number- Default
0.1- Range / values
0–0.2
Stops the render loop while keeping the current frame visible.
- Type
boolean- Default
false
Enables pointer interaction. Existing distortion settles after interaction is disabled.
- Type
boolean- Default
true- Range / values
true, false
Caps render resolution independently from the element size.
- Type
number- Default
2- Range / values
1–3
Scales GPU resolution without changing layout dimensions.
- Type
number- Default
1- Range / values
0.25–1
Runs after the shader is mounted successfully, including a WebGL fallback.
- Type
(backend: ShaderBackend) => void- Range / values
webgpu, webgl
Runs when automatic initialization changes the requested WebGPU backend to WebGL.
- Type
(backend: ShaderBackend, reason: string) => void- Range / values
webgl
Reports source-loading or renderer failures so the host application can decide how to recover.
- Type
(error: Error) => void
Exposes the imperative component lifecycle methods.
- Type
Component public instance- Range / values
pause, resume, reset, resize, destroy