Glin UI
Signature / Molecule

Border Beam

Light beam that travels along the border of its container via CSS offset-path.

Monthly recurring revenue 12.4%

$48,920

Up from $43,520 last month

Installation$

Install from
pnpm dlx @glinui/cli@latest add border-beam

Prefer the package?

Usage$

Wrap any container with position: relative and place BorderBeam inside. The beam travels along the border using CSS offset-path.

A beam of accent light travels the edge of a glinr metrics card. The beam is a decorative overlay, so the card underneath keeps its normal surface.

Examples$

Variants$

glinr is the default, plain is the flat shadcn look, solid is a neutral tonal face and glass is opt-in. Glass needs a backdrop, so the set below sits on a vivid one.

glinr

Crisp on any stage.

Learn more

plain

Crisp on any stage.

Learn more

solid

Crisp on any stage.

Learn more

glass

Opt-in. Needs a backdrop.

Learn more
import { BorderBeam, Card } from "@glinui/ui"
// Omit variant to follow the ambient style (glinr by default).
export function BorderBeamVariants() {
return (
<>
<Card variant="glinr" className="relative">
<BorderBeam size={180} />
...
</Card>
<Card variant="plain" className="relative">
<BorderBeam size={180} />
...
</Card>
<Card variant="solid" className="relative">
<BorderBeam size={180} />
...
</Card>
<Card variant="glass" className="relative">
<BorderBeam size={180} />
...
</Card>
</>
)
}

Colors$

colorFrom takes any token or color.

accent

The effect color follows the tone token.

Learn more

success

The effect color follows the tone token.

Learn more

warning

The effect color follows the tone token.

Learn more

danger

The effect color follows the tone token.

Learn more

info

The effect color follows the tone token.

Learn more
import { BorderBeam, Card } from "@glinui/ui"
export function BorderBeamTones() {
return (
<Card className="relative">
<BorderBeam colorFrom="var(--tone-success)" />
...
</Card>
)
}

In a layout$

Beam cards as metric tiles in a dashboard row.

Overview

Last 7 days
Revenue$48.2k+12.4%
Active teams1,284+4.1%
Deploys9,310+18%
Recent activity
Maya shipped v2.4just now
Build 8812 passedjust now
Sam invited 3 teammatesjust now
// Beam cards as metric tiles in a dashboard row.
import { BorderBeam, Card } from "@glinui/ui"
export function BorderBeamLayout() {
return (
<section className="grid gap-4 sm:grid-cols-3">
...
</section>
)
}

Engines$

The engine prop is not applicable. Looping offset-path beam in css; path driven. It stays css only and still honors motion level none and reduced motion.

Accessibility$

  • BorderBeam is purely decorative and does not receive focus.
  • No interactive elements, safe for screen readers.

Reduced Motion$

The beam animation uses motion-reduce:hidden. Under prefers-reduced-motion, the beam is hidden entirely.

API Reference$

PropTypeRequiredDefaultDescription
borderRadiusstringNo-Auto-generated from TypeScript source.
colorFromstringNo"var(--color-accent)"Auto-generated from TypeScript source.
colorTostringNo"transparent"Auto-generated from TypeScript source.
delaynumberNo0Auto-generated from TypeScript source.
durationnumberNo6Auto-generated from TypeScript source.
sizenumberNo100Auto-generated from TypeScript source.

Source$

import { BorderBeam } from "@glinui/ui"
packages/ui/src/components/border-beam.tsx

Generated API Snapshot

Beta

Auto-extracted from TypeScript source in packages/ui/src/components/border-beam.tsx. This section is in beta and may lag behind hand-curated docs. Regenerate with pnpm --filter @glinui/docs api:generate.

Generated: 2026-10-08T01:41:21.546Z · Full index: /docs/api-metadata

Primary Props Type

BorderBeamProps

BorderBeamProps

PropTypeRequiredDefaultDescription
borderRadiusstringNo--
colorFromstringNo"var(--color-accent)"-
colorTostringNo"transparent"-
delaynumberNo0-
durationnumberNo6-
sizenumberNo100-