Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/apursley2012/magical/llms.txt

Use this file to discover all available pages before exploring further.

Sigil renders a self-contained, animated SVG mystical symbol. Each variant draws itself onto the screen using a Framer Motion pathLength spring animation, emerging from invisible to fully drawn over ~2.5 seconds. A configurable glow filter and customisable color make sigils composable as decorative accents across any page.
All sigil variants are drawn inside an SVG viewBox of 0 0 100 100. The size prop scales the rendered element’s width and height in pixels — it does not change the internal coordinate space. A size={200} sigil is simply a 2× upscaled version of the same 100-unit geometry.

Props

type
'star' | 'moon' | 'alchemy' | 'eye'
required
The sigil variant to render. Each variant is a distinct SVG composition with its own path geometry. See Variants below for visual descriptions.
size
number
default:"100"
The rendered width and height of the SVG element in pixels. Scales the entire sigil uniformly without altering internal coordinates.
color
string
default:"#a855f7"
The stroke and fill color applied to all paths and shapes within the sigil. Accepts any valid CSS color string (hex, rgb, hsl, etc.). Also controls the glow filter: the drop-shadow uses this color at 25% opacity (${color}40).
delay
number
default:"0"
A Framer Motion animation delay in seconds applied to the path-drawing entrance. Use staggered delays when composing multiple sigils on the same view to create a sequential reveal effect.
className
string
Additional CSS classes to apply to the root <svg> element. Useful for positioning, opacity, or responsive sizing via Tailwind utilities.

Variants

star

A classic eight-point star overlaid on a large circle, with a dashed inner circle as a secondary detail. The circle and star polygon animate their pathLength from 0 to 1, while the dashed ring fades in alongside them.

moon

A crescent shape formed by a curved SVG path, paired with a dashed outer ring that encircles it. The crescent path draws in first, followed by the surrounding ring, suggesting a moon phase diagram.

alchemy

Three elements drawn in sequence: a triangle polygon (the alchemical delta symbol), a horizontal bisecting line, and a small circle at the center. Together they evoke a classical alchemical or elemental glyph.

eye

An oval iris path, a containing outer circle, and a small filled pupil dot at the center. The oval and circle animate via pathLength; the pupil fades in with an opacity transition, completing the eye once the surrounding geometry is drawn.

Animation Details

All variants share the same Framer Motion animation configuration:
PropertyValue
Initial statepathLength: 0, opacity: 0
Animated statepathLength: 1, opacity: 1
Transition typeSpring
Path duration2.5 seconds
Opacity delayControlled by delay prop
Animation labelinitial: "hidden", animate: "visible"
The spring transition on pathLength produces an organic, hand-drawn feel — paths accelerate out of the gate and gently settle into their final form rather than arriving at a fixed linear rate.

Glow Filter

Every variant applies a CSS filter to the root SVG:
drop-shadow(0 0 8px ${color}40)
This creates a soft halo around all drawn paths using the color prop at 25% opacity. The glow is present from the moment the paths become visible and intensifies naturally as more of the path is drawn.

Usage Examples

// Star sigil, violet, 100px
<Sigil type="star" size={100} color="#a855f7" />

// Moon sigil, teal, 60px, 1s delay
<Sigil type="moon" size={60} color="#2dd4bf" delay={1} />

// Alchemy sigil, mint, 200px
<Sigil type="alchemy" size={200} color="#a7f3d0" />

// Eye sigil with custom class
<Sigil type="eye" size={80} color="#a855f7" className="opacity-50" />
To create a staggered decorative cluster, combine multiple sigils with incremental delay values:
<div className="relative">
  <Sigil type="star"    size={120} color="#a855f7" delay={0}   />
  <Sigil type="moon"    size={80}  color="#2dd4bf" delay={0.4} />
  <Sigil type="alchemy" size={60}  color="#a7f3d0" delay={0.8} />
  <Sigil type="eye"     size={90}  color="#a855f7" delay={1.2} />
</div>

Build docs developers (and LLMs) love