Grain
Film grain over one section. A greyscale noise tile jumps between eight offsets every --duration-slow on the Web Animations API, pauses off-screen, and reads as texture rather than motion.
npx shadcn add @gc/grainOne ambient effect per viewport
Texture that sits under the content, never on top of it.
Soft-light blend, so it darkens the paper theme and lightens graphite by the same amount. Turn it still to see the texture without the flicker.
Craft score
Measured on b38543d. All scores
- Perf mobile
- 96
- Perf desktop
- 100
- CLS
- 0
- LCP mobile
- 2763 ms
- Gzipped source
- 1.4 kB
- Reduced motion
- Pass