Interactive Grid Pattern
import { InteractiveGridPattern } from '@hanzo/ui'
Default
A 24x24 board of 40px cells, lighting up under the pointer.
export function Default() {return (<YStack width="100%" overflow="hidden" borderWidth={1} borderColor="$borderColor"><InteractiveGridPattern squares={[24, 24]} width={40} height={40} /></YStack>)}
Small cells
A denser board reads as a texture rather than a puzzle.
export function SmallCells() {return (<YStack width="100%" overflow="hidden" borderWidth={1} borderColor="$borderColor"><InteractiveGridPattern squares={[40, 20]} width={16} height={16} idleColor="transparent" hoverColor="currentColor" /></YStack>)}
Tinted
Idle cells carry a faint fill, so the whole board reads before any hover.
export function Tinted() {return (<YStack width="100%" overflow="hidden" borderWidth={1} borderColor="$borderColor"><InteractiveGridPattern squares={[16, 10]} width={32} height={32} idleColor="rgba(128, 128, 128, 0.08)" hoverColor="rgba(128, 128, 128, 0.4)" strokeColor="currentColor" /></YStack>)}
Types
export type InteractiveGridPatternProps = React.SVGProps<SVGSVGElement> & {/** Width of one cell, in px. */width?: number/** Height of one cell, in px. */height?: number/** `[horizontal, vertical]` cell counts. */squares?: [number, number]/** Cell fill while hovered. */hoverColor?: string/** Cell fill while idle. */idleColor?: string/** Cell border color. */strokeColor?: string/** Extra props merged onto every `<rect>`. */squareProps?: React.SVGProps<SVGRectElement>}
Exports
InteractiveGridPatterntype InteractiveGridPatternProps