Aurora Background <mv-aurora-background>

一个类即可实现的 CSS 极光:带有清晰竖直光线的柔和光幕在两个反向图层中飘动、呼吸(或变成游走的大色块),浅色模式下安静,深色模式下发光,还可以加一个可选元素,让一团光晕跟随鼠标或触控笔滑动。

工作原理

一个类即可实现的 CSS 极光:带有清晰竖直光线的柔和光幕在两个反向图层中飘动、呼吸(或变成游走的大色块),浅色模式下安静,深色模式下发光,还可以加一个可选元素,让一团光晕跟随鼠标或触控笔滑动。它无缝循环,在减少动态效果时停止,在高对比度模式下自动减弱,在强制颜色模式和打印时消失。

分类背景
类型Web Component(<mv-aurora-background>)
状态稳定版
Keywordssafe-rewrite, aurora, gradient, blur, blobs, hero, css

When to use

  • A soft, colorful glow is needed behind a hero that looks right in both light and dark themes
  • The backdrop should move with CSS only, without paying for a canvas or WebGL context
  • A blurred glow should trail the mouse across a section for a light playful touch

Avoid when

  • A still, brand-tinted section background is enough and nothing should move → use Backdrop instead
  • The gradient should read as crisp, flowing brand colors rather than blurred curtains → use Mesh Gradient instead

安装

node scripts/add.mjs aurora-background --out ./src/marvelous

使用 Marvelous UI MCP 服务器的 AI 智能体:install_components({ slugs: ["aurora-background"], target_dir: "<absolute path>/src/marvelous", framework: "react" })。

复制的文件(含依赖):tokens/tokens.css, core/base.css, core/dom.js, core/element.js, core/motion.js, components/aurora-background/aurora-background.css, components/aurora-background/aurora-background.js。

用法

标准标记,可在此基础上通过属性、data-* 和 CSS 变量进行定制:

<div style="display:flex;flex-wrap:wrap;min-width:0;min-height:320px">
  <section style="flex:1.6 1 20rem;min-height:320px;position:relative;display:grid;place-items:center;text-align:center;overflow:hidden;padding:2rem">
    <div class="mv-aurora" data-fill aria-hidden="true"></div>
    <div style="position:relative">
      <p style="margin:0;font:700 clamp(1.6rem,4vw,2.6rem)/1.1 var(--mv-font-sans);letter-spacing:-.03em">Ship under the northern lights</p>
      <p style="margin:.6rem auto 1.2rem;max-width:30rem;color:var(--mv-fg-muted)">One class, no JavaScript: folds of light drifting behind your headline.</p>
      <a class="mv-button" href="#aurora-background">Start free trial</a>
    </div>
  </section>
  <section style="flex:1 1 14rem;min-height:240px;position:relative;display:grid;place-items:center;text-align:center;overflow:hidden;box-shadow:-1px 0 0 var(--mv-border);padding:1.5rem">
    <mv-aurora-background data-variant="blobs" data-fill follow></mv-aurora-background>
    <div style="position:relative">
      <strong style="display:block;font-size:1.1rem">Blobs and a cursor glow</strong>
      <span style="font-size:.85rem;color:var(--mv-fg-muted)">data-variant="blobs" follow</span>
    </div>
  </section>
</div>

API

Attributes

Name类型DefaultDescription
data-variantblobsLarge wandering blobs instead of curtains.
data-fadetop-right | center | bottom | nonetop-rightFade mask (blobs default to none).
data-fillbooleanFills the positioned parent (absolute, inset 0).
followboolean<mv-aurora-background>: adds a glow that glides after a mouse or pen pointer; it listens on the parent element, so content on top keeps its events. Touch is ignored.
easenumber0.08Glide of the glow: share of the gap closed per 60 Hz frame (0.01 to 0.9, lower is slower).

CSS classes

NameDescription
mv-auroraCSS aurora layer (no JS). Place it behind the content (data-fill), with the content as a sibling: the fade mask applies to the whole layer.
mv-aurora-pointerGlow that follows the pointer, created by <mv-aurora-background follow>.

CSS variables

NameDefaultDescription
--mv-aurora-1 … -4around --mv-accent-h (green-teal, accent, blue, pink)Colors, alpha included; use light-dark() to adapt them to the theme.
--mv-aurora-opacity1Overall opacity.
--mv-aurora-blur44pxBlur of the light (50px for blobs).
--mv-aurora-speed60sDuration of one full slide of the curtains (26s for one turn of the blobs).
--mv-aurora-maskCustom fade mask, replaces data-fade.
--mv-aurora-pointer / --mv-aurora-pointer-size--mv-aurora-2 / 26remColor and size of the follower glow.

Accessibility

Decorative: aria-hidden and pointer-events: none, so it never covers or intercepts content. Reduced motion (OS or [data-motion="reduce"]): the aurora stays visible but still, and the follower glow jumps to the pointer without gliding. The follower ignores touch, so it never hides what a finger presses. prefers-contrast: more quiets the layer to 45%; forced colors and print remove it.

本页面由 AI 翻译。报告翻译问题