SVG Pattern Overlays
Positioned pseudo-element overlays using external SVG assets. Add to any container element.
Radial dot-field gradient. Hero/feature backgrounds.
Radially centered halftone concentration.
Full-width audio amplitude bar visualization.
Subtle film-grain overlay (feTurbulence). 200×200 tileable.
Tech paths with blue node dots. AI/developer sections.
Radiating ripple circles. Voice/audio sections.
48px perpendicular grid with radial fade mask.
40px diagonal hatching texture.
Multi-stop radial gradient blobs. Ambient feel.
Background Presets
Reusable token packs for common template sections. Combine with explicit pattern classes.
Background Utilities
Solid, gradient, and dot backgrounds for section-level use.
CSS radial-gradient dots with radial fade mask.
Glass & Glow Effects
Frosted-glass panels and radial gradient glow accents.
backdrop-filter: blur. Semi-transparent white border.
Decorative Elements
Separators, crosshairs, accent lines, and visual markers.
Corner "+" decorations for cards and sections.
Blue decorative bars (vertical & horizontal).
Background Composition Helpers
Layer multiple patterns on a single container using .va-bg-layer.
Stack multiple modifiers on a single element:
Inline Data-URI Variants
Self-contained patterns with no external file dependency. Add --inline modifier.
Entrance Animations
Immediate entrance effects. Applied on load; no JS required.
Scroll-Triggered Animations
Elements start hidden and animate in when they enter the viewport.
Requires va-scroll.js (IntersectionObserver) to add .is-visible.
va-scroll-fade-up — translateY(32px) to 0
va-scroll-fade-in — opacity 0 to 1
va-scroll-scale-in — scale(0.92) to 1
va-scroll-fade-left
va-scroll-fade-right
Hover & Interaction Effects
Apply to interactive elements. Touch-aware variants available.
translateY(-4px) + shadow on hover.
scale(1.03) on hover.
Blue box-shadow glow on hover.
Responsive Layout Transitions
Smooth CSS transitions when crossing breakpoints. Add to containers that change layout at different screen sizes.
Animate from the side on desktop, from below on mobile.
All animations respect prefers-reduced-motion: reduce. When the user has motion reduced,
animation and transition durations are set to 0.01ms and scroll-triggered elements are made
immediately visible.
Audio Waveform Bars
Animated equalizer-style bars for audio/voice UI indicators.
Usage Guide
How to apply backgrounds and animations to your templates.
Full hero with halftone dots, waveform bar, and scroll-triggered content.
CSS Custom Properties API
Override pattern behaviour at runtime without touching SCSS. Set these on the element or any ancestor.
Controls pattern overlay opacity. Works on all .va-pattern-* and .va-bg-* patterns.
Controls glow circle diameter and gradient. Works on .va-bg-glow.
Controls radial fade-out mask shape and origin. Works on .va-bg-dots and .va-bg-grid-lines.
Controls the diameter of concentric rings. Works on .va-pattern-rings.
Controls dot grid spacing. Works on .va-bg-dots.
Animation Presets
Pre-built entrance combos with tuned timing for common page sections. Drop-in replacements for composing .va-animate-* + delays manually.
Slow dramatic fade-up. 0.7s, custom ease.
Delayed fade-up. 0.6s + 0.15s delay.
Delayed scale-in for buttons. 0.5s + 0.3s delay.
Slides from left on desktop, up on mobile. Scroll-triggered.
Enters from opposite side with slight delay. Scroll-triggered.
Quick fade-up for grid items. Use inside .va-stagger-group.
Bouncy scale-in for badges and tags. 0.3s.
Loading Skeleton
Shimmer placeholders for async-loaded content. Replaces empty space with animated loading indicators.
Generic rectangular shimmer placeholder.
Avatar / icon placeholder.
Paragraph placeholder. Last child auto-shrinks to 60%.
Full card placeholder (200px tall).
Image placeholder (160px tall).
Combine variants to build realistic loading states.
SVG Asset Inventory
All SVG files in assets/patterns/.
| File | Dimensions | Tileable | Colors | CSS Class |
|---|---|---|---|---|
| halftone-dots.svg | 200 x 200 | Yes | #1A1919 | .va-bg-dots |
| halftone-wide.svg | 1200 x 400 | No | #1A1919 | .va-pattern-halftone |
| sound-wave-wide.svg | 1440 x 120 | No | #1A1919 | .va-pattern-waveform |
| sound-wave-hero.svg | 1440 x 200 | No | #1A1919 | (hero-specific) |
| noise-texture.svg | 200 x 200 | Yes | Greyscale | .va-pattern-noise |
| circuit-lines.svg | 800 x 400 | No | #1A1919, #0478FF | .va-pattern-circuit |
| concentric-rings.svg | 600 x 600 | No | #1A1919, #0478FF | .va-pattern-rings |
| grid-lines.svg | 48 x 48 | Yes | #1A1919 | .va-bg-grid-lines |
| diagonal-lines.svg | 40 x 40 | Yes | #1A1919 | .va-pattern-diagonal |
| mesh-gradient.svg | 800 x 600 | No | #0478FF, #1A1919 | .va-bg-mesh |
| grid-dots.svg | 24 x 24 | Yes | #1A1919 | .va-bg-dots |
| crosshair.svg | 24 x 24 | No | #1A1919 | .va-crosshairs |
| wave-divider.svg | 1440 x 80 | No | #F5F5F5 | (section divider) |
| gradient-radial-soft.svg | 600 x 600 | No | #0478FF | .va-bg-glow |