ArcaneJaspr Codex
Documentation
Effects
Reference for shadow, transition, transform, and other effect enums
Live Demo
Shadows
sm
md
lg
Opacity levels
100%
75%
50%
25%

Effects#

These enums control visual effects including shadows, transitions, transforms, and more.

Shadow#

Box shadow presets.

Basic Shadows#

ValueDescription
noneNo shadow
xsExtra small shadow
smSmall shadow
mdMedium shadow
lgLarge shadow
xlExtra large shadow
cardCard-specific shadow

Glow Effects#

ValueDescription
glowAccentAccent color glow
glowSuccessSuccess color glow
glowErrorError color glow
glowPrimaryPrimary color glow
glowGreenGreen glow
glowCyanCyan glow
glowPurplePurple glow
glowOrangeOrange glow
glowPinkPink glow

Usage#

// Card shadow
ArcaneCard(
  styles: const ArcaneStyleData(
    shadow: Shadow.md,
  ),
  children: [...],
)

// Glow effect
ArcaneButton.primary(
  styles: const ArcaneStyleData(
    shadow: Shadow.glowAccent,
  ),
  label: 'Glowing Button',
)

Transition#

CSS transition presets.

Timing#

ValueDurationDescription
none-No transition
fast150msQuick transitions
normal200msDefault transitions
slow300msSlow transitions
bounce-Bounce easing

All Properties#

ValueDescription
allFastAll properties, 150ms
allNormalAll properties, 200ms
allSlowAll properties, 300ms

Specific Properties#

ValueDescription
colorsColor properties only
transformTransform only
opacityOpacity only
shadowBox-shadow only

Usage#

ArcaneDiv(
  styles: const ArcaneStyleData(
    transition: Transition.allFast,
  ),
  children: [...],
)

// Hover effect
ArcaneButton(
  styles: ArcaneStyleData(
    background: isHovered ? Background.accentContainer : Background.surface,
    transition: Transition.colors,
  ),
  label: 'Hover Me',
)

Transform#

CSS transform presets.

ValueDescription
noneNo transform
hoverLiftSlight lift on hover (translateY -2px)
hoverScaleScale up on hover (1.05)
hoverScaleSubtleSubtle scale (1.02)
centerCenter with translate(-50%, -50%)
centerXCenter X with translateX(-50%)
centerYCenter Y with translateY(-50%)
rotate9090 degree rotation
rotate180180 degree rotation
rotate270270 degree rotation
flipXHorizontal flip
flipYVertical flip

Usage#

// Hover lift effect
ArcaneCard(
  styles: ArcaneStyleData(
    transform: isHovered ? Transform.hoverLift : Transform.none,
    transition: Transition.transform,
  ),
  children: [...],
)

// Centered modal
ArcaneDiv(
  styles: const ArcaneStyleData(
    position: Position.fixed,
    transform: Transform.center,
    raw: {
      'top': '50%',
      'left': '50%',
    },
  ),
  children: [...],
)

Opacity#

Opacity presets.

ValueCSS OutputDescription
transparent0Fully transparent
faint0.1Very faint
light0.25Light opacity
half0.5Half opacity
muted0.75Muted
high0.9High opacity
full1Fully opaque
disabled0.5Disabled state
hoverOverlay0.04Subtle hover
pressOverlay0.08Press state

Usage#

ArcaneDiv(
  styles: ArcaneStyleData(
    opacity: isDisabled ? Opacity.disabled : Opacity.full,
  ),
  children: [...],
)

Cursor#

Mouse cursor styles.

ValueCSS OutputDescription
autoautoBrowser default
default_defaultDefault arrow
pointerpointerClickable hand
texttextText selection
movemoveMove cursor
grabgrabGrab hand
grabbinggrabbingGrabbing hand
notAllowednot-allowedDisabled
waitwaitLoading/wait
progressprogressProcessing
crosshaircrosshairPrecision select
zoomInzoom-inZoom in
zoomOutzoom-outZoom out
helphelpHelp available
nonenoneHidden cursor
colResizecol-resizeColumn resize
rowResizerow-resizeRow resize
nResizen-resizeNorth resize
eResizee-resizeEast resize
sResizes-resizeSouth resize
wResizew-resizeWest resize

Usage#

ArcaneButton(
  styles: ArcaneStyleData(
    cursor: isDisabled ? Cursor.notAllowed : Cursor.pointer,
  ),
  label: 'Button',
)

PointerEvents#

Pointer event handling.

ValueCSS OutputDescription
autoautoNormal events
nonenoneNo events (pass through)
allallAll events

Usage#

// Overlay that passes clicks through
ArcaneDiv(
  styles: const ArcaneStyleData(
    pointerEvents: PointerEvents.none,
  ),
  children: [...],
)

UserSelect#

Text selection behavior.

ValueCSS OutputDescription
autoautoNormal selection
nonenoneNo selection
texttextText only
allallSelect all on click
containcontainContained selection

Usage#

ArcaneButton(
  styles: const ArcaneStyleData(
    userSelect: UserSelect.none,
  ),
  label: 'Non-selectable',
)

BackdropFilter#

Backdrop filter effects.

ValueDescription
noneNo filter
blurStandard blur
blurStrongStrong blur
blurLightLight blur

Usage#

ArcaneDiv(
  styles: const ArcaneStyleData(
    backdropFilter: BackdropFilter.blur,
    raw: {
      'background': 'rgba(0, 0, 0, 0.5)',
    },
  ),
  children: [...],
)

Easing#

Animation easing functions.

ValueCSS OutputDescription
linearlinearConstant speed
easeeaseDefault easing
easeInease-inSlow start
easeOutease-outSlow end
easeInOutease-in-outSlow start and end
bounceCustomBounce effect

Common Effect Patterns#

Card Hover Effect#

ArcaneCard(
  styles: ArcaneStyleData(
    shadow: isHovered ? Shadow.lg : Shadow.sm,
    transform: isHovered ? Transform.hoverLift : Transform.none,
    transition: Transition.allFast,
  ),
  children: [...],
)

Glassmorphism#

ArcaneDiv(
  styles: const ArcaneStyleData(
    backdropFilter: BackdropFilter.blur,
    borderRadius: Radius.lg,
    border: BorderPreset.subtle,
    raw: {
      'background': 'rgba(255, 255, 255, 0.05)',
    },
  ),
  children: [...],
)

Loading Overlay#

ArcaneDiv(
  styles: const ArcaneStyleData(
    position: Position.absolute,
    display: Display.flex,
    alignItems: AlignItems.center,
    justifyContent: JustifyContent.center,
    background: Background.overlay,
    backdropFilter: BackdropFilter.blur,
    opacity: Opacity.full,
    raw: {
      'inset': '0',
    },
  ),
  children: [
    ArcaneLoader(),
  ],
)

Disabled State#

ArcaneButton(
  styles: ArcaneStyleData(
    opacity: isDisabled ? Opacity.disabled : Opacity.full,
    cursor: isDisabled ? Cursor.notAllowed : Cursor.pointer,
    pointerEvents: isDisabled ? PointerEvents.none : PointerEvents.auto,
  ),
  label: 'Button',
)

Glowing Accent Button#

ArcaneButton.primary(
  styles: ArcaneStyleData(
    shadow: isHovered ? Shadow.glowAccent : Shadow.none,
    transition: Transition.shadow,
  ),
  label: 'Glow on Hover',
)