beta

Light Rays — .mv-light-rays

Divine light rays falling from above, in pure CSS: two fans of blurred conic gradients that slowly sway and pulse, with a glow at the origin.

CategoryBackgrounds
TypeCSS only (.mv-light-rays)
Statusbeta
Keywordslight, rays, god-rays, conic-gradient, hero, css

When to use

Install

node scripts/add.mjs light-rays --out ./src/marvelous

AI agent with the Marvelous UI MCP server: install_components({ slugs: ["light-rays"], target_dir: "<absolute path>/src/marvelous", framework: "react" }).

Files copied (dependencies included): tokens/tokens.css, core/base.css, components/light-rays/light-rays.css.

Usage

Canonical markup — start from it and customize with attributes, data-* and CSS variables:

<div style="display:grid;grid-template-columns:1.6fr 1fr;min-height:320px">
  <section style="position:relative;display:grid;place-items:center;text-align:center;overflow:hidden;padding:2rem">
    <div class="mv-light-rays" data-fill aria-hidden="true"></div>
    <div style="position:relative;margin-top:2.5rem">
      <p style="margin:0;font:700 clamp(1.6rem,4vw,2.6rem)/1.1 var(--mv-font-sans);letter-spacing:-.03em">Put your ideas in the spotlight</p>
      <p style="margin:.6rem auto 1.2rem;max-width:30rem;color:var(--mv-fg-muted)">Heaven-sent rays, made from a few conic gradients.</p>
      <a class="mv-button" href="#light-rays">Watch the keynote</a>
    </div>
  </section>
  <section style="position:relative;display:grid;place-items:center;text-align:center;overflow:hidden;border-left:1px solid var(--mv-border);padding:1.5rem">
    <div class="mv-light-rays" data-fill data-origin="right" aria-hidden="true" style="--mv-light-rays-color:light-dark(oklch(0.7 0.15 190 / .45), oklch(0.85 0.12 190 / .5));--mv-light-rays-glow:light-dark(oklch(0.75 0.14 190 / .3), oklch(0.8 0.12 190 / .3))"></div>
    <div style="position:relative">
      <strong style="display:block;font-size:1.1rem">From a corner</strong>
      <span style="font-size:.85rem;color:var(--mv-fg-muted)">data-origin="right", custom tint</span>
    </div>
  </section>
</div>

API

Attributes

NameTypeDefaultDescription
data-originleft | right(center)Light source in a top corner, with slanted rays.
data-fillbooleanFills the positioned parent (absolute, inset 0).

CSS classes

NameDescription
mv-light-raysRay layer (no JS). Place it behind the content with data-fill; the content stays a sibling.

CSS variables

NameDefaultDescription
--mv-light-rays-coloraccent (light) / tinted white (dark)Ray color (alpha included).
--mv-light-rays-glowGlow around the source.
--mv-light-rays-intensity1Overall opacity (0–1).
--mv-light-rays-blur6pxRay softness.
--mv-light-rays-speed16sDuration of one sway.
--mv-light-rays-x50%Horizontal position of the source.
--mv-light-rays-length90%Distance at which the rays fade out.
--mv-light-rays-spread44%Fan opening.

Accessibility

Decorative: aria-hidden, pointer-events: none. Reduced motion: static rays.