No.136 · Backgrounds· New
Point Bloom
Four nested shells of fine points, each warped by slow noise into a lumpy, petal-like form and turning at its own pace, so the layers slide past each other like folded membranes with bright rims and a dark, dusted core. A background only, with no text.
The prompt
Written for the variant you picked above: Mono
Build a full-bleed black background with an organic point cloud in the middle (WebGL1, one gl.POINTS draw, no libraries), plus an optional slot for content on top. Points: four shells at radii 0.6, 0.72, 0.85 and 0.98, each a Fibonacci lattice of about 20,000 unit directions with a little jitter (60% of that on touch devices), plus 1,400 loose "dust" points inside radius 0.55. Each point carries its shell index (−1 for dust) and a seed. Vertex shader: each shell is rotated on its own (tilted 0.4 × index, turning at 0.06 + 0.035 × index rad/s, alternate shells the other way) and pushed in and out along its direction by its own slow wave, a sum of four sines of the direction and time (±26% of the radius), so it reads as a lumpy petal or brain-like form, and the layers slide past each other. Dust turns slowly with the whole. A light perspective (1 / (1 + 0.22 z)) and a scale of 44% of the smaller side. Membrane alpha = 0.01 + 0.9 × (1 − |n·z|)^2.4, so where a shell curves away from you the points stack into bright rims while the faces you look through stay faint; dust twinkles at its own rate. Sizes 2px (membrane) and 2.4px (dust) × DPR. Fragment shader: a soft round sprite, colour mixed from membrane grey to rim white by alpha, additive blending. Pointer: a fine pointer pushes the points near it outward (Gaussian, up to 0.16 radius), easing in and out. rAF, paused offscreen and in hidden tabs; reduced motion draws one frame; without WebGL a radial gradient ring stands in. Props: palette [rim, membrane, dust], density, radius, speed, motion, children. Selected variant — Mono (mono): Rim #ffffff, membrane #9a9a9a, dust #ffffff: a white and grey cloud on black. This selection takes precedence over references to other themes or options in the general brief. Implement this selected appearance; do not add a variant picker or alternative appearances unless requested. Implementation requirements: Use React and TypeScript. Keep the component self-contained, with uniquely scoped CSS and no animation libraries. Include required imports, styles and font setup in the result. Interaction: A fine pointer pushes the cloud open around it; nothing to click. Motion: Shells turn at 0.06–0.2 rad/s in alternating directions while their surfaces morph slowly; dust twinkles; the pointer push eases at 6% per frame. Accessibility: Decorative and aria-hidden. Reduced motion renders one still frame. Text placed on top reads best over the dark core. Responsive behavior: Fills its container and is sized from the smaller side, so it stays whole on phones; touch devices draw 60% of the points. DPR capped at 2. Touch: No pointer push on touch; the cloud keeps morphing. Preserve keyboard access, visible focus and reduced-motion behavior. Keep fictional demo data and simulated service calls in a separate usage example; expose callbacks for real actions and recover from rejected requests. Keep usage-example links inside the demo: use local buttons or prevent navigation. Demonstration links must not navigate to Vitrine routes or open other pages; preserve real URL support in the reusable component itself. Verify the result at narrow and wide viewport sizes, with keyboard input and reduced motion enabled.
Notes
- Interaction
- A fine pointer pushes the cloud open around it; nothing to click.
- Motion
- Shells turn at 0.06–0.2 rad/s in alternating directions while their surfaces morph slowly; dust twinkles; the pointer push eases at 6% per frame.
- Accessibility
- Decorative and aria-hidden. Reduced motion renders one still frame. Text placed on top reads best over the dark core.
- Responsive
- Fills its container and is sized from the smaller side, so it stays whole on phones; touch devices draw 60% of the points. DPR capped at 2.
- On touch
- No pointer push on touch; the cloud keeps morphing.