ZYVOPMulti-Platform Sync
SeriesAI NewsWhy ZyVOPJoin Discord
LoginGet Started
ZYVOPMulti-Platform Sync

The Developer Publishing Hub. Write once, publish everywhere, and make your work citation-ready with built-in SEO, AEO, and GEO discovery support. Zero reader paywalls.

Content

  • Categories
  • Tags
  • Badges
  • Leaderboard
  • Write Article
  • Newsletter

Company

  • About Us
  • Why ZyVOP
  • Developer API & CLI
  • Write for Us
  • Contact

Connect

  • Privacy Policy
  • Terms of Service
  • Cookie Policy
  • DMCA Policy
  • Code of Conduct

ยฉ 2026 ZyVOP. Developer Publishing Hub.

Zero paywalls ยท Full content ownership
All systems operational
HomeMantine Border Animate - A Complete Beam Rewrite with Dual Rendering Modes

Mantine Border Animate - A Complete Beam Rewrite with Dual Rendering Modes

Giovambattista Fazioli
Giovambattista Fazioli
Senior Full-stack Engineer, Lead DeveloperSupport
September 4, 2026
3 min read
Mantine Border Animate - A Complete Beam Rewrite with Dual Rendering Modes
#react#TypeScript#nextjs#ui
๐Ÿ‘1

The beam variant has been completely rebuilt with two rendering engines, multi-color gradient support, and a streamlined API.

Introduction

Version 1.0.0 of @gfazioli/mantine-border-animate is a major release that reimagines how animated borders work. The beam effect โ€” the heart of the component โ€” now ships with two distinct rendering modes, letting you choose between pixel-perfect border tracing and smooth conic rotation. Combined with new multi-color gradients, hover pause, custom easing, and built-in accessibility, this release makes animated borders more flexible, more beautiful, and easier to use than ever.

What's New

Two Beam Rendering Modes

The biggest addition in v1.0 is the beamMode prop, which lets you choose how the beam effect is rendered:

Path mode (beamMode="path", the new default) uses CSS offset-path to move a radial-gradient circle along the component's border. The beam maintains a uniform size at every position and travels at constant speed along the perimeter. This is the best choice for most UI elements.

<BorderAnimate beamMode="path" size="md" duration={5}><Card>Your content</Card></BorderAnimate>

Enter fullscreen mode Exit fullscreen mode

Conic mode (beamMode="conic") uses a rotating conic-gradient wedge animated via CSS @property. The rotation is buttery smooth, and the size prop controls the angular spread of the wedge (from a tight 18-degree spotlight at xs to a full 180-degree sweep at xl). It works best on circular or near-square elements.

<BorderAnimate beamMode="conic" size="lg" duration={3}><Avatar radius="100%" /></BorderAnimate>

Enter fullscreen mode Exit fullscreen mode

Multi-Color Gradients with colorStops

Move beyond two-color gradients. The new colorStops prop gives you full control over the beam's colors:

<BorderAnimatecolorStops={[
    { color: 'transparent', position: 0 },
    { color: 'green', position: 20 },
    { color: 'cyan', position: 40 },
    { color: 'yellow', position: 60 },
    { color: 'red', position: 80 },
    { color: 'transparent', position: 100 },]}><Paper>Multi-color beam</Paper></BorderAnimate>

Enter fullscreen mode Exit fullscreen mode

colorStops works with both beam modes:

  • Path mode generates a radial-gradient with concentric color rings

  • Conic mode generates a custom conic-gradient โ€” use transparent stops for beam/wedge effects, or fill the entire circle for a rotating rainbow border

Pause on Hover

Interactive elements often need the animation to pause during user interaction. The new pauseOnHover prop does exactly that โ€” using pure CSS animation-play-state with zero JavaScript overhead:

<BorderAnimate pauseOnHover><Button>Hover me to pause</Button></BorderAnimate>

Enter fullscreen mode Exit fullscreen mode

Custom Timing Functions

Fine-tune animation feel with timingFunction. By default, beam uses linear and glow/pulse use ease-in-out, but you can override with any CSS timing function:

<BorderAnimate timingFunction="ease-in-out" /><BorderAnimate timingFunction="cubic-bezier(0.4, 0, 0.2, 1)" /><BorderAnimate timingFunction="steps(8)" />  {/* retro pixel effect */}

Enter fullscreen mode Exit fullscreen mode

Accessibility Out of the Box

BorderAnimate now respects prefers-reduced-motion automatically. Users who have enabled "Reduce motion" in their OS settings will see no animations โ€” no configuration needed, no extra props. It just works.

Breaking Changes

This is a major release with several breaking changes. Here's what you need to update:

gradient variant removed

The gradient variant is gone. Use beamMode="conic" with full colorStops instead:

// v0.x<BorderAnimate variant="gradient" colorFrom="red" colorTo="blue" />

// v1.0<BorderAnimatebeamMode="conic"colorStops={[
    { color: 'red', position: 0 },
    { color: 'blue', position: 50 },
    { color: 'red', position: 100 },]}/>

Enter fullscreen mode Exit fullscreen mode

opacity renamed to borderOpacity

The old opacity prop conflicted with the CSS opacity property inherited from Mantine's BoxProps. It's now borderOpacity:

// v0.x<BorderAnimate opacity={0.5} />

// v1.0<BorderAnimate borderOpacity={0.5} />

Enter fullscreen mode Exit fullscreen mode

anchor and count props removed

Both props have been removed with no direct replacement. Simply remove them from your components.

size semantics changed

The size prop now behaves differently depending on beamMode:

  • Path mode: still pixel-based (xs=64px to xl=480px) โ€” same as v0.x

  • Conic mode: angular spread of the wedge (xs=18 degrees to xl=180 degrees)

BorderAnimateVariant type updated

The type changed from 'beam' | 'glow' | 'gradient' | 'pulse' to 'beam' | 'glow' | 'pulse'. Update any type assertions or switch statements in your code.

Improvements

  • Glow z-index fix โ€” the glow variant now correctly renders behind content, preventing the overlay from obscuring text

  • Accurate demos โ€” all documentation demos now show code that exactly matches the rendered output

  • New exported types โ€” BorderAnimateBeamMode, BorderAnimateColorStop, and BorderAnimateVariant are now properly exported for consumers

Getting Started

Install or update:

npm install @gfazioli/mantine-border-animate@1

Enter fullscreen mode Exit fullscreen mode

Import styles at the root of your application:

import '@gfazioli/mantine-border-animate/styles.css';

Enter fullscreen mode Exit fullscreen mode

Basic usage:

import { BorderAnimate } from '@gfazioli/mantine-border-animate';

function Demo() {return (
    <BorderAnimate>
      <Paper withBorder p="md" radius="md">
        Your content with an animated border
      </Paper>
    </BorderAnimate>);}

Enter fullscreen mode Exit fullscreen mode

Links

  • npm package

  • Documentation and Demos

  • GitHub Repository

  • Mantine Extensions Hub

Comments (0)

Login to post a comment.

Giovambattista Fazioli
Giovambattista Fazioli

Senior Full-stack Engineer, Lead Developer

Italian Senior Full-stack Engineer and Lead Developer on the Cloud team at Namecheap. I build developer tools, React/Mantine UI components and native macOS apps โ€” mostly open source. I work across TypeScript, Next.js, Go and SwiftUI, and I've been coding since the Commodore/Assembly days. Creator of WP Bones and 25+ Mantine extensions, and maintainer of the Undolog open-source studio.

Support
Subscribe to Giovambattista Fazioli's Newsletter

More from Giovambattista Fazioli

View profile

FinderGit 0.29.0 โ€” open a commit like a folder

Thereโ€™s a moment, reading a commit list, where you want to know one small thing: which files did that one touch?

3 minSep 4

Netfox 0.18.0 โ€” is it my connection, or the internet?

There is a question that comes up every time something feels slow, and until now Netfox could not...

3 minSep 4

Mantine Book โ€” Grab Any Edge, Turn Any Page

A realistic iBooks-style book for React built on Mantine: stack two-sided pages and turn them by...

5 minSep 4

Netfox โ€” The macOS app that never loses track of your network

I built Netfox because every existing answer to "what's actually on my network?" annoyed me. The...

5 minSep 4

Audio That Sees Itself

A Mantine-native audio player for React with waveform visualisation and a live spectrum analyser,...

5 minSep 4