Installation
Choose your framework. The registry installs one component file and its PixiJS 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/Metallic3DLogo.svelte and installs its dependencies.
The registry command writes the component to src/components/ui/Metallic3DLogo.tsx and installs its dependencies.
The registry command writes the component to src/components/ui/Metallic3DLogo.vue and installs its dependencies.
The generated component creates the SVG distance field locally in the browser and does not upload the artwork.
The transparent canvas can be composited directly over application backgrounds.
Overview
The SVG distance field is extruded into a closed solid with planar front and back faces and straight side walls. A face-preserving round begins at the original SVG contour and joins each face directly to the wall without curving the face itself.
The material is shared with Metallic Logo: conductive GGX shading, procedural studio reflections, and optional brushed microstructure remain consistent between the flat and extruded variants.
Basic usage
The shader fills its parent. Your layout decides whether that parent is a card, hero, or viewport.
- Model thickness controls the full distance between the front and back faces. Edge rounding controls one quarter-round transition shared by the front-to-side and back-to-side joins, and is automatically limited to fit the selected thickness.
- Tilt strength controls rotation amplitude. Follow speed controls both cursor tracking and the smooth return to the frontal pose after the pointer leaves the canvas.
- Lower roughness for sharper reflections or raise it for a softer satin finish.
Component API
Types below match the selected Svelte component.
Additional classes for the parent-sized root element.
- Type
string
Inline SVG markup, an SVG URL, or a data URL used as the extruded silhouette.
- Type
string- Range / values
Inline SVG, URL, or data URL
Size of the extruded logo within its container.
- Type
number- Default
0.75- Range / values
0.35–1.5
Maximum cursor-driven rotation away from the frontal pose.
- Type
number- Default
10- Range / values
0–24
How quickly the logo follows the cursor and returns to its frontal pose.
- Type
number- Default
7- Range / values
0.5–20
Total distance between the planar front and back faces of the extruded logo.
- Type
number- Default
0.1- Range / values
0.04–0.6
Radius of the continuous outward round joining each unchanged planar face to the side wall.
- Type
number- Default
0.01- Range / values
0–0.03
Speed of the reflected studio lights.
- Type
number- Default
0.35- Range / values
0–2
Base reflectance color of the metal.
- Type
string- Default
"#C5C8D2"
Blends between a coated surface and conductive metal.
- Type
number- Default
1- Range / values
0–1
Softness of the reflected lights and specular highlight.
- Type
number- Default
0.18- Range / values
0.04–1
Strength of the fine directional texture in the metal.
- Type
number- Default
0.08- Range / values
0–1
Color of the cool studio light reflected by the metal.
- Type
string- Default
"#5867D3"
Color of the warm studio light reflected by the metal.
- Type
string- Default
"#D7A06E"
Brightness of the reflected studio environment.
- Type
number- Default
1.25- Range / values
0–3
Contrast between dark and bright reflected panels.
- Type
number- Default
1.1- Range / values
0.25–2
Starting angle of the reflected studio lights.
- Type
number- Default
15- Range / values
0–360
Stops the render loop while keeping the current frame visible.
- Type
boolean- Default
false
Enables pointer-driven effects when the shader supports them.
- Type
boolean- Default
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
Inline SVG markup, an SVG URL, or a data URL used as the extruded silhouette.
- Type
string- Range / values
Inline SVG, URL, or data URL
Size of the extruded logo within its container.
- Type
number- Default
0.75- Range / values
0.35–1.5
Maximum cursor-driven rotation away from the frontal pose.
- Type
number- Default
10- Range / values
0–24
How quickly the logo follows the cursor and returns to its frontal pose.
- Type
number- Default
7- Range / values
0.5–20
Total distance between the planar front and back faces of the extruded logo.
- Type
number- Default
0.1- Range / values
0.04–0.6
Radius of the continuous outward round joining each unchanged planar face to the side wall.
- Type
number- Default
0.01- Range / values
0–0.03
Speed of the reflected studio lights.
- Type
number- Default
0.35- Range / values
0–2
Base reflectance color of the metal.
- Type
string- Default
"#C5C8D2"
Blends between a coated surface and conductive metal.
- Type
number- Default
1- Range / values
0–1
Softness of the reflected lights and specular highlight.
- Type
number- Default
0.18- Range / values
0.04–1
Strength of the fine directional texture in the metal.
- Type
number- Default
0.08- Range / values
0–1
Color of the cool studio light reflected by the metal.
- Type
string- Default
"#5867D3"
Color of the warm studio light reflected by the metal.
- Type
string- Default
"#D7A06E"
Brightness of the reflected studio environment.
- Type
number- Default
1.25- Range / values
0–3
Contrast between dark and bright reflected panels.
- Type
number- Default
1.1- Range / values
0.25–2
Starting angle of the reflected studio lights.
- Type
number- Default
15- Range / values
0–360
Stops the render loop while keeping the current frame visible.
- Type
boolean- Default
false
Enables pointer-driven effects when the shader supports them.
- Type
boolean- Default
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
Metallic3DLogoHandle- Range / values
pause, resume, reset, resize, destroy
Types below match the selected Vue component.
Additional classes for the parent-sized root element.
- Type
string
Inline SVG markup, an SVG URL, or a data URL used as the extruded silhouette.
- Type
string- Range / values
Inline SVG, URL, or data URL
Size of the extruded logo within its container.
- Type
number- Default
0.75- Range / values
0.35–1.5
Maximum cursor-driven rotation away from the frontal pose.
- Type
number- Default
10- Range / values
0–24
How quickly the logo follows the cursor and returns to its frontal pose.
- Type
number- Default
7- Range / values
0.5–20
Total distance between the planar front and back faces of the extruded logo.
- Type
number- Default
0.1- Range / values
0.04–0.6
Radius of the continuous outward round joining each unchanged planar face to the side wall.
- Type
number- Default
0.01- Range / values
0–0.03
Speed of the reflected studio lights.
- Type
number- Default
0.35- Range / values
0–2
Base reflectance color of the metal.
- Type
string- Default
"#C5C8D2"
Blends between a coated surface and conductive metal.
- Type
number- Default
1- Range / values
0–1
Softness of the reflected lights and specular highlight.
- Type
number- Default
0.18- Range / values
0.04–1
Strength of the fine directional texture in the metal.
- Type
number- Default
0.08- Range / values
0–1
Color of the cool studio light reflected by the metal.
- Type
string- Default
"#5867D3"
Color of the warm studio light reflected by the metal.
- Type
string- Default
"#D7A06E"
Brightness of the reflected studio environment.
- Type
number- Default
1.25- Range / values
0–3
Contrast between dark and bright reflected panels.
- Type
number- Default
1.1- Range / values
0.25–2
Starting angle of the reflected studio lights.
- Type
number- Default
15- Range / values
0–360
Stops the render loop while keeping the current frame visible.
- Type
boolean- Default
false
Enables pointer-driven effects when the shader supports them.
- Type
boolean- Default
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