Community Wolf
Community
APIAboutContact
Book a demo

Community Wolf

Real-time safety intelligence for citizens and the teams who protect them.

Community Tools

  • Public map
  • Namola
  • WhatsApp

Business Tools

  • Access Control
  • Intelligence
  • Safety API
  • Group Agents
  • Patrol Management
  • Roster Management
  • Safety Survey
  • Pricing
  • Pricing calculator

Resources

  • Docs
  • Changelog
  • Design system

Company

  • Community
  • Business
  • API
  • About
  • Contact

Get pilot updates

New features, city launches, and integration partnerships - delivered monthly.

Subscribe to updates

(c) 2026 Community Wolf. All rights reserved.

Privacy PolicyTerms of Service
Wolf design system
Foundations
  • Brand
  • Voice and tone
  • Colour
  • Typography
  • Spacing and layout
  • Radius, elevation and borders
  • Motion
  • Iconography
  • Imagery and photography
  • Data visualisation
  • Accessibility
Patterns
  • App shell
  • Hero sections
  • Empty states
  • Error states
  • Skeletons and loading
  • Forms
  • Tables and data density
  • Confirmation and destructive actions
  • Authentication surfaces
Components
  • Button
  • Input
  • Card
  • Badge
  • Dialog
  • Label
  • Textarea
  • Select
  • Checkbox
  • Radio group
  • Switch
  • Form field
  • Tabs
  • Popover
  • Tooltip
  • Accordion
  • Alert dialog
  • Confirm dialog
  • Toast (Sonner)
  • Skeleton
  • Empty state

foundations

Motion

Motion communicates state change, relationship or emphasis. Fast by default. Always reducible.

Read the full spec

Reduced-motion override

This toggle simulates the prefers-reduced-motion media query locally so you can see every demo in both states.

OS prefers-reduced-motion: no-preference
effective: full motion

Duration scale

Click replay to re-run all five durations side by side. Under reduced motion every row clamps to near-zero.

Every row uses the standard easing curve.
  • fast· 120ms
    Hover, toggle, checkbox
  • base· 200ms
    Button, input focus, default
  • moderate· 300ms
    Dialog, dropdown, tab switch
  • slow· 500ms
    Route transition, panel shift
  • slower· 800ms
    Hero reveal, celebratory moment
tsx
<motion.div
  animate={{ x: played ? 200 : 0 }}
  transition={{ duration: 0.2, ease: [0.4, 0, 0.2, 1] }}
/>

Easing curves

Five curves. standard is the default. Linear is reserved for shimmer and indeterminate progress — never transforms.

All rows share duration 500ms — only the easing differs.
  • standard
    Default — most transforms and colours
  • decelerate
    Element entering — starts fast, slows
  • accelerate
    Element leaving — starts slow, speeds up
  • emphasised
    Slight overshoot for key interactions
  • linear
    Indeterminate progress, shimmer

Spring configs

For physics-feel motion — dialogs opening, card drag snaps. The same four configs drive Framer Motion in-app and Remotion in video.

  • smoothRevealdamping: 200
    Slow, soft — good for hero reveals
  • snappyUidamping: 20 · stiffness: 200
    Default UI spring
  • bouncydamping: 8
    Playful — use sparingly
  • heavydamping: 15 · stiffness: 80 · mass: 2
    Deliberate, weighty

Stagger

Default list stagger is 60ms between children. Under reduced motion the stagger collapses — items appear together.

  • Report submitted
  • Responder notified
  • Area marked
  • Civilians updated
  • Case logged

Button feedback

Hover scales 1.02. Active press scales 0.98. MotionConfig collapses both under reduced motion.

Previous — FoundationsRadius, elevation and borders
Next — FoundationsIconography