← 全部作品

2025 — 开源 / CSS

grain.css

一个 2KB 的微样式库,只做一件事——给网页加一点"纸的颗粒感"。

做设计稿的时候,我总要给背景叠一层噪点,网站上线后却总是忘记。于是写了个库,把这件事变成一行 CSS。

它做什么

@import "grain.css";

body {
  --grain: 0.06;
  --grain-size: 180px;
}

就这样。默认用一张内联的 SVG 噪点图平铺,透明度、颗粒大小、混合模式都可以调。

为什么不直接用图片

  • 图片要走一次网络请求;
  • 不同 DPI 下颗粒会糊;
  • 想改密度得重新导出。

SVG feTurbulence 生成的是矢量噪点,任何缩放下都清晰,还能直接用 CSS 变量控制参数。

注意

颗粒会明显增加大面积纯色的渲染开销,在低端机上建议把 --grain 控制在 0.05 以下,或者只在首屏使用。

状态

在 GitHub 上开源,MIT 协议。没有宣传,靠自然搜索攒了两百多个 star——大概是同类里最小的一个。