- Installed @shadergradient/react, three, and @types/three - Created ShaderGradientBackground component with custom gradient settings - Integrated background into root layout with blur effect (120px) and reduced opacity (0.5) - Adjusted body background to work harmoniously with shader gradient - Used sphere type with pink/orange gradient colors (#b01040, #b04a17, #e167c5) - Configured animation, grain, and lighting for atmospheric effect
77 lines
1.7 KiB
TypeScript
77 lines
1.7 KiB
TypeScript
"use client";
|
|
|
|
import React from "react";
|
|
import { ShaderGradientCanvas, ShaderGradient } from "@shadergradient/react";
|
|
|
|
const ShaderGradientBackground = () => {
|
|
return (
|
|
<div
|
|
style={{
|
|
position: "fixed",
|
|
top: 0,
|
|
left: 0,
|
|
width: "100%",
|
|
height: "100%",
|
|
zIndex: -1,
|
|
filter: "blur(120px)",
|
|
opacity: 0.5,
|
|
pointerEvents: "none",
|
|
}}
|
|
>
|
|
<ShaderGradientCanvas
|
|
style={{
|
|
position: "absolute",
|
|
top: 0,
|
|
left: 0,
|
|
width: "100%",
|
|
height: "100%",
|
|
}}
|
|
>
|
|
<ShaderGradient
|
|
animate="on"
|
|
axesHelper="off"
|
|
brightness={1.2}
|
|
cAzimuthAngle={180}
|
|
cDistance={3.6}
|
|
cPolarAngle={90}
|
|
cameraZoom={1}
|
|
color1="#b01040"
|
|
color2="#b04a17"
|
|
color3="#e167c5"
|
|
destination="onCanvas"
|
|
embedMode="off"
|
|
envPreset="city"
|
|
format="gif"
|
|
fov={45}
|
|
frameRate={10}
|
|
gizmoHelper="hide"
|
|
grain="on"
|
|
lightType="3d"
|
|
pixelDensity={2.9}
|
|
positionX={-1.4}
|
|
positionY={0}
|
|
positionZ={0}
|
|
range="disabled"
|
|
rangeEnd={40}
|
|
rangeStart={0}
|
|
reflection={0.1}
|
|
rotationX={0}
|
|
rotationY={10}
|
|
rotationZ={50}
|
|
shader="defaults"
|
|
type="sphere"
|
|
uAmplitude={4.2}
|
|
uDensity={0.8}
|
|
uFrequency={5.5}
|
|
uSpeed={0.4}
|
|
uStrength={4.6}
|
|
uTime={0}
|
|
wireframe={false}
|
|
/>
|
|
</ShaderGradientCanvas>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default ShaderGradientBackground;
|