Components Ambient Surfaces TopologyColorGrid

TopologyColorGrid

Three.js and GSAP colour topology scene with hover extrusion.

Live demo

01

Chromatic Substrate Topology

Spatial Z-Index Mapping

Brand palette Β· flattened

extruded={false} drops the per-card Z depth, suiting dense layouts.

Brand Spectrum

Marketing palette

Monochrome Β· locked dark

theme="dark" with the inline toggle hidden.

Neutral Ramp

Layered foundations

Decorative Β· non-interactive

interactive={false} turns this into a still piece β€” no hover, no click target.

Composition Study

Layered Spatial Mapping

Implementation

02
TopologyColorGrid.svelte
<script>
  import TopologyColorGrid, {
    type TopologySwatch
  } from '$lib/components/TopologyColorGrid.svelte';
​
  const swatches: TopologySwatch[] = [
    { id: 'ink', name: 'Ink Mesh', hex: '#0f172a', label: 'Node A1' },
    { id: 'flame', name: 'Flame Route', hex: '#ea580c', label: 'Core 01' }
  ];
</script>
​
<TopologyColorGrid {swatches} />

TopologyColorGrid mounts a Three.js wireframe plane on a client-side canvas and uses GSAP to choreograph a staggered card reveal. The Three.js renderer, geometry, material, and the GSAP context are all torn down in onMount’s cleanup return, so unmount disposes the WebGL resources cleanly. The component owns the canvas; do not duplicate the renderer in a parent. WebGL is feature-detected before mount, so the cards still render if the GPU path is unavailable.

Logic explainer

03

title: TopologyColorGrid
category: Ambient Surfaces

TopologyColorGrid

Full-bleed 3D colour-system scene inspired by Aura's Interactive 3D Topology Color Grid:
https://www.aura.build/component/95909

The TFE version uses Svelte state, client-only Three.js wireframe rendering, GSAP entry
reveals, keyboard-focusable colour cards, a reduced-motion fallback, and explicit
light/dark themes.

<TopologyColorGrid
	title="Chromatic Substrate Topology"
	subtitle="Spatial Z-Index Mapping"
	extruded={true}
	theme="light"
/>

API

04
PropTypeDefaultDescription
swatchesTopologySwatch[]built-in paletteArray of { id, name, hex, label } swatches.
titlestring'Chromatic Substrate Topology'Heading copy above the grid.
subtitlestring'Spatial Z-Index Mapping'Eyebrow line above the title.
extrudedbooleantrueStack swatches in a z-plane (false flattens the layout).
interactivebooleantrueWhether swatches respond to hover/focus.
theme'light' | 'dark''light'Initial card theme.
showThemeTogglebooleantrueShow the inline light/dark toggle.