UNPKG

reactbits-mcp-server

Version:

MCP Server for React Bits - Access 99+ React components with animations, backgrounds, and UI elements

113 lines (102 loc) 3.89 kB
import { useState } from "react"; import { CodeTab, PreviewTab, CliTab, TabbedLayout } from "../../components/common/TabbedLayout"; import { Box } from "@chakra-ui/react"; import Customize from "../../components/common/Preview/Customize"; import CodeExample from "../../components/code/CodeExample"; import BackgroundContent from "../../components/common/Preview/BackgroundContent"; import CliInstallation from "../../components/code/CliInstallation"; import PropTable from "../../components/common/Preview/PropTable"; import Dependencies from '../../components/code/Dependencies'; import PreviewSlider from "../../components/common/Preview/PreviewSlider"; import { darkVeil } from "../../constants/code/Backgrounds/darkVeilCode"; import DarkVeil from "../../content/Backgrounds/DarkVeil/DarkVeil"; const DarkVeilDemo = () => { const [hueShift, setHueShift] = useState(0); const [noiseIntensity, setNoiseIntensity] = useState(0); const [scanlineIntensity, setScanlineIntensity] = useState(0); const [speed, setSpeed] = useState(0.5); const [scanlineFrequency, setScanlineFrequency] = useState(0); const [warpAmount, setWarpAmount] = useState(0); const propData = [ { name: "hueShift", type: "number", default: "0", description: "Shifts the hue of the entire animation." }, { name: "noiseIntensity", type: "number", default: "0", description: "Intensity of the noise/grain effect." }, { name: "scanlineIntensity", type: "number", default: "0", description: "Intensity of the scanline effect." }, { name: "speed", type: "number", default: "0.5", description: "Speed of the animation." }, { name: "scanlineFrequency", type: "number", default: "0", description: "Frequency of the scanlines." }, { name: "warpAmount", type: "number", default: "0", description: "Amount of warp distortion applied to the effect." }, { name: "resolutionScale", type: "number", default: "1", description: "Scale factor for the resolution." } ]; return ( <TabbedLayout> <PreviewTab> <Box position="relative" className="demo-container" h={600} overflow="hidden"> <DarkVeil hueShift={hueShift} noiseIntensity={noiseIntensity} scanlineIntensity={scanlineIntensity} speed={speed} scanlineFrequency={scanlineFrequency} warpAmount={warpAmount} /> {/* For Demo Purposes Only */} <BackgroundContent pillText="New Background" headline="Become emboldened by the flame of ambition" /> </Box> <Customize> <PreviewSlider title="Speed" min={0} max={3} step={0.1} value={speed} onChange={setSpeed} /> <PreviewSlider title="Hue Shift" min={0} max={360} step={1} value={hueShift} onChange={setHueShift} /> <PreviewSlider title="Noise Intensity" min={0} max={0.2} step={0.01} value={noiseIntensity} onChange={setNoiseIntensity} /> <PreviewSlider title="Scanline Frequency" min={0.5} max={5} step={0.1} value={scanlineFrequency} onChange={setScanlineFrequency} /> <PreviewSlider title="Scanline Intensity" min={0} max={1} step={0.01} value={scanlineIntensity} onChange={setScanlineIntensity} /> <PreviewSlider title="Warp Amount" min={0} max={5} step={0.1} value={warpAmount} onChange={setWarpAmount} /> </Customize> <PropTable data={propData} /> <Dependencies dependencyList={['ogl']} /> </PreviewTab> <CodeTab> <CodeExample codeObject={darkVeil} /> </CodeTab> <CliTab> <CliInstallation {...darkVeil} /> </CliTab> </TabbedLayout> ); }; export default DarkVeilDemo;