cobalt-slabs
Full-screen section background of royal blue slabs broken by two terracotta ones, with pale light slivers and a warm floor glow under gray grain. Centers its children on the scene surface.
pnpm dlx shadcn add @01orbital/cobalt-slabsimport type { ComponentProps } from "react"
import {
SlabField,
type SlabFieldData,
} from "@/components/scene/slab-field"
// This scene's composition: lengths in % of the ground, sliver width and blur
// in px. Change the look here.
const FIELD: SlabFieldData = {
bg: "17 30% 4%",
glow: { x: 37.4, y: 80.84, color: "17 47% 12%" },
doors: [
{
x: -2.98,
w: 20.21,
y: 10.1,
h: 73.24,
color: "221.7 43.9% 21.4%",
opacity: 0.855,
feather: 32.77,
},
{
x: 9.13,
w: 20.63,
y: 13.01,
h: 68.45,
color: "11.7 49.6% 52.8%",
opacity: 0.833,
feather: 24.07,
},
{
x: 24.24,
w: 23.24,
y: 3.37,
h: 69.58,
color: "219.3 47.4% 17.9%",
opacity: 0.857,
feather: 35.79,
},
{
x: 44.39,
w: 21.51,
y: 3.61,
h: 65.14,
color: "219.5 45.4% 20%",
opacity: 0.739,
feather: 33.93,
},
{
x: 64,
w: 10.95,
y: 6.06,
h: 87.84,
color: "13.2 54.6% 61.8%",
opacity: 0.935,
feather: 26.47,
},
{
x: 73.18,
w: 21.94,
y: 5.28,
h: 74.67,
color: "221.9 49.5% 21.1%",
opacity: 0.655,
feather: 37.62,
},
{
x: 88.03,
w: 9.33,
y: 6.12,
h: 72.74,
color: "217.4 43.1% 8.4%",
opacity: 0.704,
feather: 25.74,
},
],
slivers: [
{
x: 16.65,
y: 21.75,
h: 39.03,
color: "12 45% 90%",
opacity: 0.542,
width: 4.02,
blur: 9.69,
},
{
x: 29.24,
y: 13.35,
h: 71.89,
color: "12 25% 95%",
opacity: 0.429,
width: 3.01,
blur: 9.8,
},
{
x: 47.77,
y: 10.38,
h: 65.27,
color: "12 45% 90%",
opacity: 0.198,
width: 3.9,
blur: 4.4,
},
{
x: 74.79,
y: 14.05,
h: 35.34,
color: "12 45% 90%",
opacity: 0.579,
width: 2.55,
blur: 8.01,
},
{
x: 93.94,
y: 11.3,
h: 43.09,
color: "220 45% 31%",
opacity: 0.378,
width: 4.37,
blur: 7.26,
},
],
floor: { upper: "12 51% 53%", lower: "220 45% 19%", strength: 0.22 },
}
export default function CobaltSlabs(
props: Omit<ComponentProps<typeof SlabField>, "field">
) {
return <SlabField data-slot="cobalt-slabs" field={FIELD} {...props} />
}
import type { ComponentProps, CSSProperties, ReactNode } from "react"
import { cn } from "cn"
import { GrainLayers } from "@/components/texture/grain-kit"
// The composition a SlabField paints: lengths in % of the ground, sliver
// width and blur in px, colors as HSL triplets ("17 30% 4%").
type SlabFieldData = {
bg: string
glow: { x: number; y: number; color: string }
doors: {
x: number
w: number
y: number
h: number
color: string
opacity: number
feather: number
}[]
slivers: {
x: number
y: number
h: number
color: string
opacity: number
width: number
blur: number
}[]
floor: { upper: string; lower: string; strength: number }
}
const EASE = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1]
function sideFade(feather: number) {
const ramp = EASE.map((u) => ({ a: u * u * (3 - 2 * u), at: u * feather }))
const stop = (a: number, at: number) =>
`rgb(0 0 0 / ${a.toFixed(3)}) ${at.toFixed(2)}%`
return `linear-gradient(to right, ${[
...ramp.map((s) => stop(s.a, s.at)),
...[...ramp].reverse().map((s) => stop(s.a, 100 - s.at)),
].join(", ")})`
}
function doorStyle(d: SlabFieldData["doors"][number]): CSSProperties {
const c = d.color
return {
left: `${d.x}%`,
width: `${d.w}%`,
top: `${d.y}%`,
height: `${d.h}%`,
opacity: d.opacity,
backgroundImage: `linear-gradient(to bottom, hsl(${c} / 0) 0%, hsl(${c} / 0.35) 12%, hsl(${c}) 50%, hsl(${c} / 0.35) 88%, hsl(${c} / 0) 100%)`,
maskImage: sideFade(d.feather),
}
}
function sliverStyle(s: SlabFieldData["slivers"][number]): CSSProperties {
const c = s.color
return {
left: `calc(${s.x}% - ${s.width / 2}px)`,
width: `${s.width}px`,
top: `${s.y}%`,
height: `${s.h}%`,
filter: `blur(${s.blur}px)`,
backgroundImage: `linear-gradient(to bottom, hsl(${c} / 0) 0%, hsl(${c} / ${s.opacity}) 35%, hsl(${c} / ${s.opacity}) 65%, hsl(${c} / 0) 100%)`,
}
}
function Painting({ field }: { field: SlabFieldData }) {
const { glow, floor } = field
return (
<div
className="@container-size absolute inset-0 overflow-hidden"
style={{ backgroundColor: `hsl(${field.bg})` }}
>
<div
className="absolute inset-0"
style={{
backgroundImage: `radial-gradient(circle 55cqmax at ${glow.x}% ${glow.y}%, hsl(${glow.color} / 0.18) 0%, hsl(${glow.color} / 0.07) 40%, transparent 100%)`,
}}
/>
{field.doors.map((door, i) => (
<div key={i} className="absolute" style={doorStyle(door)} />
))}
{field.slivers.map((sliver, i) => (
<div key={i} className="absolute" style={sliverStyle(sliver)} />
))}
<div
className="absolute inset-x-0 bottom-0 h-[22%]"
style={{
backgroundImage: `linear-gradient(to top, hsl(${floor.upper} / ${floor.strength}) 0%, hsl(${floor.lower} / ${floor.strength * 0.4}) 35%, transparent 100%)`,
}}
/>
</div>
)
}
/**
* A full-bleed ground of soft vertical slabs and slivers of light over a
* glow and a floor, painted from `field`: a ground color, a glow, the slabs
* ("doors"), the thin slivers and the floor fade. Content passed as children
* sits centered over it.
*
* `texture` is laid over the painting: the gray grain by default; pass your
* own layers, such as a different grain or an edge scrim, or `null` for none.
*/
function SlabField({
field,
texture = <GrainLayers finish="grey" />,
children,
className,
...props
}: ComponentProps<"section"> & {
/** The composition to paint. */
field: SlabFieldData
/** Layers over the painting. Defaults to the gray grain. */
texture?: ReactNode
}) {
return (
<section
data-slot="slab-field"
className={cn(
"relative isolate grid min-h-svh w-full place-items-center overflow-hidden bg-scene text-scene-foreground",
className
)}
{...props}
>
<div
className="pointer-events-none absolute inset-0 isolate -z-10"
aria-hidden="true"
>
<Painting field={field} />
{texture}
</div>
{children}
</section>
)
}
export { SlabField }
export type { SlabFieldData }
// Baked grain tiles as data-URIs, exposed as { GrainLayers }, grainStyle and
// FINISHES; defined once, bundler-deduped.
import type { CSSProperties } from "react"
import { PAPER_GRAIN_URI } from "@/components/texture/grain-recipes"
type GrainFinish =
| "engine"
| "soft"
| "felt"
| "dense"
| "d256"
| "gritty"
| "micro"
| "grey"
| "both"
| "none"
// The paper tile; also the "screen grain" glass layer.
const SOFT_FILM = PAPER_GRAIN_URI
// print/photographic grain tiles (baked PNGs) — internal to the kit
const BLACK_ALPHA =
"data:image/png;base64,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"
const GREY_STATIC =
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAQAElEQVR4ATzdBZRlRbIF0IgcY5xxhpmBxt2t8cYdisa9cIemcXd3d2jc3b1xd3d3d+f+3Mm6/6/1VtV7797MiBPnnIi81Z8pG2+8cbfwwgt3e++9d3f88cd3559/fjdy5MjunHPO6UaMGNFdcskl3e23397tsMMO3VNPPdUddNBB7fetttqqXXv22Wd3Rx99dLfvvvt2c8wxRzfffPN1AwMD3cEHH9yNGjWq22KLLboTTzyx++Mf/9judc2hhx7aTTfddN0DDzzQXX755d3JJ5/cff75553Pl1hiie68887rPv744+6///1vd+CBB3Zzzjlnt//++3dvvvlm9/zzz3dfffVVt9BCC3W77bZb98QTT3THHntst8EGG3TPPfdci/mKK67o1l133e7LL7/sLrroom7BBRds+R133HHdzDPP3GKS5zzzzNNZZ6WVVurOOOOMto79vvjiixb/WWed1e20007dlltu2d1xxx3dUkst1a2++urdP//5z26ttdbqrrvuum755ZdvWG222Wbdpptu2p100kndzjvv3K2zzjptTZi+8MIL3bnnntvujYjuggsu6BZZZJHukEMO6U455ZTu8ccfb3scfvjh7V57ymH06NHdhRde2NaSgzXEsOuuu3ann356t/baa3fbb799e0077bQN53nnnbdbdNFFu4ceeqiTlzVgpxZwlefbb7/dbbfddt3mm2/elV/96ldRwY/77rsvnn322XjjjTfinXfeifvvvz/GHnvsqCDEN998EzWJmHjiiWOfffaJmmj7ef3110ctRvz973+PKaecMt5///3461//GjWIqMBHLXrUosXDDz8cSy65ZPzud7+LCl5kZvzpT3+KWvzYfffdY7bZZosKaPz+97+PwcHBtvaxxx7b9h5vvPGikih+/PHHOPTQQ+PII4+M+eefv8Vw8cUXRwUrPvjgg3jllVfikUceiamnnjpq4jH77LPH8OHD44ADDohKtvjpp5/i1ltvbbF89913ceONN7Y9rb/00kvHpZdeGjfccEPMNddcUUkQL730UotnjDHGaD/FXskef/vb36ISIv7whz/EmGOOGd9++21UsGP99ddv+1eBxDXXXBOw+e1vfxtDhgxp8dcixFRTTRW1APHggw/GTDPN1PCR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"
const GRAIN_LAYER: CSSProperties = {
position: "absolute",
inset: 0,
backgroundRepeat: "repeat",
pointerEvents: "none",
}
type Finish = {
img: string
size?: string
op: number
blend?: CSSProperties["mixBlendMode"]
pix?: boolean
}
type FinishKey = Exclude<GrainFinish, "both" | "none">
const FINISHES: Record<FinishKey, Finish> = {
engine: { img: SOFT_FILM, op: 0.35 },
soft: { img: SOFT_FILM, op: 0.3 },
felt: {
img: GREY_STATIC,
size: "200px 200px",
op: 0.065,
blend: "normal",
pix: true,
},
dense: { img: BLACK_ALPHA, size: "128px 128px", op: 0.5, pix: true },
d256: { img: BLACK_ALPHA, size: "256px 256px", op: 0.5, pix: true },
gritty: { img: BLACK_ALPHA, size: "128px 128px", op: 1, pix: true },
micro: { img: BLACK_ALPHA, size: "28.8px 28.8px", op: 0.6, pix: true },
grey: { img: GREY_STATIC, size: "128px 128px", op: 0.5, pix: true },
}
function grainStyle(f: Finish, mul: number): CSSProperties {
return {
...GRAIN_LAYER,
backgroundImage: 'url("' + f.img + '")',
backgroundSize: f.size,
opacity: Number.isFinite(mul) ? Math.min(1, f.op * mul) : f.op,
mixBlendMode: f.blend ?? "overlay",
imageRendering: f.pix ? "pixelated" : undefined,
zIndex: 10,
}
}
// Full-bleed grain overlay — drop inside a `relative` parent, over the art:
// <div className="relative"><Painting/><GrainLayers finish="micro"/></div>
// `strength` multiplies the finish's designed opacity.
function GrainLayers({
finish = "micro",
strength = 0.9,
}: {
finish?: GrainFinish
strength?: number
}) {
const keys: FinishKey[] =
finish === "none" ? [] : finish === "both" ? ["soft", "dense"] : [finish]
return (
<>
{keys.map((k) => (
<i
key={k}
data-slot="grain-kit"
style={grainStyle(FINISHES[k], strength)}
/>
))}
</>
)
}
export { SOFT_FILM, FINISHES, GrainLayers }
// The grain tiles the kit paints with, as data URIs, each held once. Every
// recipe is a tiny SVG turbulence filter; the component using it chooses
// the tile size, opacity and blend. `*_URI` is the bare image for callers
// that wrap it themselves; the unsuffixed name is ready for `background-image`.
/** Stylized paper: coarse turbulence pushed to high contrast, the grain under most of the painted scenes and the Grain `paper` variant. */
export const PAPER_GRAIN_URI =
"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='250' height='250' viewBox='0 0 100 100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='turbulence' baseFrequency='1.4' numOctaves='1' seed='2' stitchTiles='stitch' result='n'/%3E%3CfeComponentTransfer result='g'%3E%3CfeFuncR type='linear' slope='4' intercept='1'/%3E%3CfeFuncG type='linear' slope='4' intercept='1'/%3E%3CfeFuncB type='linear' slope='4' intercept='1'/%3E%3C/feComponentTransfer%3E%3CfeColorMatrix type='saturate' values='0' in='g'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"
export const PAPER_GRAIN = `url("${PAPER_GRAIN_URI}")`
/** Sandpaper: finer, two-octave turbulence, the Grain `sandpaper` variant and the pours and pools. */
export const SANDPAPER_GRAIN_URI =
"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 100 100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='turbulence' baseFrequency='2.2' numOctaves='2' seed='5' stitchTiles='stitch' result='n'/%3E%3CfeComponentTransfer result='g'%3E%3CfeFuncR type='linear' slope='2.5' intercept='0.8'/%3E%3CfeFuncG type='linear' slope='2.5' intercept='0.8'/%3E%3CfeFuncB type='linear' slope='2.5' intercept='0.8'/%3E%3C/feComponentTransfer%3E%3CfeColorMatrix type='saturate' values='0' in='g'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"
export const SANDPAPER_GRAIN = `url("${SANDPAPER_GRAIN_URI}")`
/** Square: three-octave turbulence at high contrast, the Grain `square` variant. */
export const SQUARE_GRAIN_URI =
"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22200%22%20height=%22200%22%20viewBox=%220%200%20100%20100%22%3E%3Cfilter%20id=%22n%22%3E%3CfeTurbulence%20type=%22turbulence%22%20baseFrequency=%222.1%22%20numOctaves=%223%22%20seed=%2211%22%20stitchTiles=%22stitch%22%20result=%22n%22/%3E%3CfeComponentTransfer%20result=%22g%22%3E%3CfeFuncR%20type=%22linear%22%20slope=%225.5%22%20intercept=%221.4%22/%3E%3CfeFuncG%20type=%22linear%22%20slope=%225.5%22%20intercept=%221.4%22/%3E%3CfeFuncB%20type=%22linear%22%20slope=%225.5%22%20intercept=%221.4%22/%3E%3C/feComponentTransfer%3E%3CfeColorMatrix%20type=%22saturate%22%20values=%220%22%20in=%22g%22/%3E%3C/filter%3E%3Crect%20width=%22100%%22%20height=%22100%%22%20filter=%22url(%23n)%22/%3E%3C/svg%3E"
export const SQUARE_GRAIN = `url("${SQUARE_GRAIN_URI}")`
/** Plain fractal noise on a 200px tile, the Grain `single` variant. */
export const SINGLE_NOISE_URI =
"data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"
export const SINGLE_NOISE = `url("${SINGLE_NOISE_URI}")`
/** Fine fractal noise on a 512px tile, SoftGrain and the Limb scene. */
export const SOFT_NOISE_URI =
"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='5' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"
export const SOFT_NOISE = `url("${SOFT_NOISE_URI}")`
/** Fine fractal noise the field scenes lay over their art: Fracture Field, Gestural Zip, Solar Flare and Underwater Shaft. */
export const FIELD_NOISE_URI =
"data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"
export const FIELD_NOISE = `url("${FIELD_NOISE_URI}")`
/** Fine fractal noise on a 256px tile, the mist over the radial charts. */
export const CHART_NOISE_URI =
"data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"
export const CHART_NOISE = `url("${CHART_NOISE_URI}")`
/** A one-octave dither on a 128px tile, the glass of the neon signs. */
export const DITHER_NOISE_URI =
"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E"
export const DITHER_NOISE = `url("${DITHER_NOISE_URI}")`
/** A thin film: paper turbulence with its alpha cut to 0.6, the grain GlowSection lays over its light. */
export const GLOW_FILM_URI =
"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='250' height='250'%3E%3Cfilter id='sf'%3E%3CfeTurbulence type='turbulence' baseFrequency='1.4' numOctaves='1' seed='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='0.6'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23sf)'/%3E%3C/svg%3E"
export const GLOW_FILM = `url("${GLOW_FILM_URI}")`
/** Plain fractal noise on a 400px tile, the canvas finish of ColorField and FeltOrb. */
export const CANVAS_NOISE_URI =
"data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E"
export const CANVAS_NOISE = `url("${CANVAS_NOISE_URI}")`
API reference
Prop
Type
It also accepts the HTML attributes of the element it renders.
Dependencies
Registry pieces it installs with it:
slab-field