ColumnLines
scrollxui/columnlinesFreeComponent
column grid background with radial fade and subtle noise. Great for hero backgrounds.
Live preview
live · rendered by the registry
Rendered by scrollxui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://scrollxui.dev/registry/columnlines.jsonSource
1'use client';2import React from 'react';3import { cn } from '@/lib/utils';45interface ColumnLinesProps {6 columnWidth?: number;7 columnCount?: number;8 radialFadeStart?: number;9 radialFadeEnd?: number;10 opacity?: number;11 showNoise?: boolean;12 noiseOpacity?: number;13 className?: string;14 children?: React.ReactNode;15}1617export function ColumnLines({18 columnWidth = 80,19 columnCount = 14,20 radialFadeStart = 30,21 radialFadeEnd = 70,22 opacity = 1,23 showNoise = true,24 noiseOpacity = 0.05,25 className,26 children,27}: ColumnLinesProps) {28 const id = React.useId().replace(/:/g, '');29 const maskImage = `radial-gradient(circle at center, white 0%, white ${radialFadeStart}%, transparent ${radialFadeEnd}%)`;30 const noiseMask = `radial-gradient(circle at center, white 0%, transparent 75%)`;3132 return (33 <div className={cn('relative overflow-hidden', className)}>34 <svg width="0" height="0" className="absolute">35 <filter id={`noise-${id}`}>36 <feTurbulence37 type="fractalNoise"38 baseFrequency="0.65"39 numOctaves="3"40 stitchTiles="stitch"41 />42 <feColorMatrix type="saturate" values="0" />43 </filter>44 </svg>4546 {showNoise && (47 <div48 className="absolute inset-0 z-0 scale-[1.2]"49 style={{50 opacity: noiseOpacity,51 filter: `url(#noise-${id})`,52 WebkitMaskImage: noiseMask,53 maskImage: noiseMask,54 }}55 />56 )}5758 <div59 className="absolute inset-0 z-0 flex"60 style={{61 opacity,62 WebkitMaskImage: maskImage,63 maskImage,64 }}65 >66 {Array.from({ length: columnCount }).map((_, i) => (67 <div68 key={i}69 className={cn(70 'h-full shrink-0',71 'bg-linear-to-r from-neutral-100 to-white',72 'shadow-[2px_0px_0px_0px_var(--color-neutral-300)]',73 'dark:from-neutral-900 dark:to-neutral-950',74 'dark:shadow-[2px_0px_0px_0px_var(--color-neutral-800)]',75 )}76 style={{ width: columnWidth }}77 />78 ))}79 </div>8081 {children && <div className="relative z-10">{children}</div>}82 </div>83 );84}
What it pulls in
npm packages
Other registry items
Files it writes
More from scrollxui
All 180 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | scrollxui | Components | Free | 4 deps | |
| Alert Dialogalert-dialog | scrollxui | Components | Free | 7 deps | |
| Animated Buttonanimated-button | scrollxui | Components | Free | 4 deps | |
| Animated Tabsanimated-tabs | scrollxui | Components | Free | 1 dep | |
| Animated Testimonialsanimated-testimonials | scrollxui | Components | Free | 2 deps | |
| Animated TextGenerateanimated-textgenerate | scrollxui | Components | Free | 3 deps | |
| Announcementannouncement | scrollxui | Components | Free | 5 deps | |
| Aspect Ratioaspect-ratio | scrollxui | Components | Free | 1 dep |
