Every animation across 8 source pages, unified. Dot-matrix resolvers, CSS loaders, SVG icons, particles, page transitions, micro-interactions, motion principles, generative art, generative patterns, SVG.js/Anime.js demos, and Lottie integration.
The complete GFS motion reference: 105 loaders from the Mega Library, 16 advanced dot-matrix resolvers, tsParticles backgrounds, SVG.js + Anime.js + Rough.js demos, p5.js generative sketches, CSS-only data patterns, Lottie concepts, and the full motion design system with easing tokens, duration tokens, entrance/exit animations, scroll effects, micro-interaction specs, and notification choreography.
Each loader is a 7×7 grid of 49 dots. Every animation frame, a resolver function is called for each dot with its row, column, and elapsed time. The resolver returns a value between 0 and 1 that becomes the dot's opacity. This is not CSS keyframes — it is real-time mathematical computation running at 60 fps via requestAnimationFrame.
Resolver Signature
resolver(row, col, time, totalRows, totalCols) => opacity [0..1]
Mathematical Primitives Used
Math.sin / Math.cos
Periodic oscillation — waves, pulses, breathing
Math.atan2
Angular position — spirals, radar, rotation
Manhattan & Euclidean Distance
Ripples, diamonds, proximity decay
Math.exp (Exponential Decay)
Trail falloff, fade tails, attenuation
Noise Approximation
Layered sin/cos for organic flow fields
09Dot-Matrix Integration GuideUsing Resolvers in GFS Portals
1. Copy the DotMatrixLoader class
The loader class is self-contained. Copy it into your portal's script block or module.
const loader = new DotMatrixLoader(
document.getElementById('my-loader'),
// Pick any resolver from above:
(r, c, t, rows, cols) => {
const dx = c - cols/2, dy = r - rows/2;
const dist = Math.sqrt(dx*dx + dy*dy);
return 0.1 + 0.9 * Math.max(0, Math.sin(dist * 1.5 - t * 4));
},
{ rows: 7, cols: 7, dotSize: 6, gap: 4, color: '#FFFFFF' }
);
2. Destroy when no longer needed
Call loader.destroy() to cancel the animation frame and clean up DOM nodes.
// In your SPA route teardown or modal close:
loader.destroy();
container.textContent = '';
3. Customize appearance
Adjust grid density, dot size, speed, and color to match your context. The resolver itself is pure math — it knows nothing about styling.
// Larger, slower loader for a full-page loading screen
new DotMatrixLoader(container, resolvers.ripple, {
rows: 11, cols: 11, dotSize: 10, gap: 6,
color: '#468BE6', speed: 0.6
});
// Tiny, fast loader for inline status indicators
new DotMatrixLoader(container, resolvers.breathing, {
rows: 3, cols: 3, dotSize: 4, gap: 3,
color: '#092F64', speed: 2
});
Performance
requestAnimationFrame + 49 dots = negligible CPU. Each frame performs 49 multiplications and 49 DOM style writes. On modern hardware this is sub-0.1ms per frame. Even 16 loaders running simultaneously (784 dots total) stays well under 1ms per frame — invisible in performance profiling.
Accessibility
All loaders respect prefers-reduced-motion: reduce. When the user has requested reduced motion, all animations freeze at their initial state (t=0) showing a static dot pattern. Each loader container includes role="img" and an aria-label describing the animation.
10Dot-Matrix Resolver ReferenceAll 16 Functions at a Glance
#
Name
Math Primitives
Visual Character
11Motion PrinciplesPurposeful / Swift / Consistent
Three rules govern every animation in the GFS system. If a motion does not satisfy all three, it does not ship.
01Purposeful
Every animation has a reason
Motion communicates change, draws attention, or provides feedback. If removing the animation loses no information, it should not exist.
Press confirms the action
02Swift
Never slow the user down
Animations must complete before the user's next action. Most transitions finish in 200ms. Nothing exceeds 600ms except page-level orchestrations.
Start
End
Hover: 200ms travel
03Consistent
Same easing, everywhere
Every element of the same type uses the same motion curve. Toggles always spring. Entrances always ease-out-expo. Exits always ease-in. No exceptions.
All use spring easing
12Easing Tokens6 Curves / Hover to Play
Six easing curves cover every motion need. Each card shows the bezier curve, a live animation demo (hover to play), and the CSS value. Use exactly these tokens -- never define custom curves.
ease-out-expoPrimary entrance
Primary easing for all entrances
cubic-bezier(0.16, 1, 0.3, 1)
ease-in-outMoving elements
For moving elements between positions
cubic-bezier(0.65, 0, 0.35, 1)
springEmphasis / Delight
For emphasis and delight moments
cubic-bezier(0.34, 1.56, 0.64, 1)
ease-inExits only
For exits only -- accelerates away
cubic-bezier(0.7, 0, 0.84, 0)
linearContinuous motion
For continuous motion (spinners, progress)
linear
stepsDiscrete changes
For discrete state changes (loaders)
steps(6, end)
13Duration Tokens5 Tiers / Hover to Demo
Five duration tiers handle every timing need. Hover each bar to see the duration in action. The bar fills at the specified speed.
Token
Value
Use Cases
Live Demo
--dur-instant
0ms
Immediate state changes, color swaps, focus rings
--dur-fast
100ms
Button hover, opacity changes, small color transitions
--dur-base
200ms
Most transitions: toggles, dropdowns, tab switches, tooltips
Every common interaction fully specified: trigger, property, duration, easing, and delay. These are non-negotiable -- every implementation must match these specs exactly.
Interaction
Trigger
Property Animated
Duration
Easing
Delay
Button Hover
:hover
background-color, box-shadow, transform(Y-2px)
100ms
ease-out-expo
0ms
Button Press
:active
transform(scale 0.97, Y0), box-shadow
80ms
ease-out-expo
0ms
Toggle Switch
click
background-color, knob translateX
200ms
spring
0ms
Checkbox Check
click
stroke-dashoffset (check mark), background-color
200ms
spring
0ms
Dropdown Open
click
opacity, translateY(8px), max-height
200ms
ease-out-expo
0ms
Modal Open
click
opacity, scale(0.95 to 1), backdrop opacity
400ms
ease-out-expo
backdrop: 0ms, content: 50ms
Toast Appear
event
opacity, translateY(20px to 0)
200ms
ease-out-expo
0ms
Tab Switch
click
indicator translateX, panel opacity + translateX
200ms
ease-in-out
indicator: 0ms, panel: 50ms
Accordion Expand
click
max-height, opacity, chevron rotate(180deg)
400ms
ease-out-expo
0ms
Tooltip Show
:hover
opacity, translateY(4px to 0), scale(0.98 to 1)
100ms
ease-out-expo
300ms (intentional)
Live Demos
Button
Toggle
Checkbox
Tooltip
?
Help text
Accordion
Details▼
Content revealed with 400ms ease-out-expo.
Rule: If an interaction is not in this table, it does not exist in the system. Propose additions through the design governance process before implementing custom animations.
19Loading State TransitionsSkeleton to Content / Reveal Specs
Loading states transition from skeleton placeholders to actual content. The reveal must feel swift and purposeful — content appears to be "unveiled" rather than popping in abruptly.
Duration: 200ms Easing: ease-out (0, 0, 0.58, 1) Properties: opacity 0 to 1, translateY -4px to 0
Phase 3: Complete
Revenue Summary
Total revenue for Q1 2026 reached $4.2M.
Growth: 18% vs prior year quarter.
Northeast region led with 42% share.
State: Final, static Note: No layout shift between skeleton and content Rule: Skeleton must match content dimensions
Loading transition rules. Never show a blank screen — skeleton appears at 0ms. If content loads in <200ms, skip skeleton (show content directly). Stagger multiple cards by 60ms each. Never animate width/height during reveal (causes layout shift). Use will-change: opacity, transform on loading containers.
Notifications use choreographed entrance and exit animations that respect the user's attention without being disruptive. Each notification type has specific timing based on urgency and placement.
Type
Entrance
Duration
Exit
Auto-Dismiss
Toast (success)
slideInRight 300ms ease-out-expo
4000ms
fadeOut 200ms ease-in
Yes
Toast (error)
slideInRight 300ms ease-out-expo
Persistent
slideOutRight 250ms ease-in
No (manual)
Banner (info)
slideDown 250ms ease-out
Persistent
slideUp 200ms ease-in
No (dismiss)
Inline alert
expand 200ms + fadeIn 150ms
Persistent
collapse 150ms + fadeOut 100ms
On resolve
Modal
scaleIn 200ms + scrim fadeIn 300ms
User-controlled
scaleOut 150ms + scrim fadeOut 200ms
Never
Toast Stack Rules
Max visible toasts: 3
Stack direction: bottom to top
New toast pushes others up (+8px gap)
Older toasts reduce opacity: 100%, 70%, 40%
Position: fixed bottom-right, 24px inset
List Stagger Calculator
Base delay: 0ms (first item)
Stagger increment: 60ms per item
Max stagger: 300ms (cap at 6th item)
Formula: delay = min(index * 60, 300)ms
Easing: cubic-bezier(0.16, 1, 0.3, 1)
Choreography principles. Notifications enter from the direction they relate to (toast from right = peripheral attention; banner from top = page-level context). Exit is always faster than entrance (user wants it gone). Error notifications never auto-dismiss. Maximum 3 simultaneous notifications visible.
When multiple items animate in sequence (table rows loading, cards appearing, list items entering), each item needs a calculated delay. GFS uses three stagger curves depending on the content type and urgency of display.
Linear Stagger
delay = index * 60ms
Cap: 300ms (6th item)
[0]
0ms
[1]
60ms
[2]
120ms
[3]
180ms
[4]
240ms
[5]
300ms
Use for: Table rows, simple lists, card grids. Equal perceived spacing between items.
Ease-Out Stagger
delay = sqrt(index) * 80ms
First items fast, later items slower
[0]
0ms
[1]
80ms
[2]
113ms
[3]
139ms
[4]
160ms
[5]
179ms
Use for: Dashboard cards, KPI grids. First items appear quickly to reduce perceived latency.
Burst Stagger
delay = index * 30ms (fast burst)
All items within 200ms window
[0]
0ms
[1]
30ms
[2]
60ms
[3]
90ms
[4]
120ms
[5]
150ms
Use for: Navigation items, tab bars, toolbars. Items should appear nearly simultaneously with subtle cascade.
When prefers-reduced-motion: reduce is active, all stagger delays collapse to 0ms. Items appear simultaneously with a simple 200ms opacity fade. No translateY movement. This respects users with vestibular disorders.
Performance Notes
Stagger animations use will-change: opacity, transform for GPU acceleration. Never stagger more than 12 items (cap at 300ms total). For lists with 20+ items, animate only the first 6 and show the rest instantly. Remove will-change after animation completes.
Stagger selection guide. Linear: default for most lists and grids. Ease-out: dashboard-style layouts where first content matters most. Burst: navigation elements and toolbars. Always cap total stagger duration at 300ms. If the user scrolls during stagger, complete all remaining items instantly.
Every animation in the GFS design system maps to a named token. This table provides the complete inventory of motion tokens with their CSS values, use cases, and constraints.
Token Name
Duration
Easing
Properties
Use Case
--motion-instant
0ms
none
all
Disabled state, reduced motion mode
--motion-micro
80ms
ease-out
opacity, color, background
Button hover, focus ring, toggle switch
--motion-fast
120ms
ease-out
opacity, transform
Tooltip show/hide, small hover effects
--motion-normal
200ms
ease-out-expo
opacity, transform
Dropdown open, card hover elevation
--motion-expressive
300ms
ease-out-expo
opacity, transform, height
Modal entrance, page transition, accordion
--motion-dramatic
400ms
ease-out-expo
opacity, transform
Full-page transitions, hero reveals
--motion-enter
200ms
cubic-bezier(0.16,1,0.3,1)
opacity, translateY
Element entrance from below
--motion-exit
150ms
ease-in
opacity, translateY
Element exit upward
--motion-slide-in
250ms
ease-out-expo
transform (translateX)
Drawer/panel slide from edge
--motion-slide-out
200ms
ease-in
transform (translateX)
Drawer/panel dismiss
--motion-scale-in
200ms
ease-out-expo
opacity, scale(0.95 to 1)
Modal/dialog appearance
--motion-scale-out
150ms
ease-in
opacity, scale(1 to 0.95)
Modal/dialog dismiss
--motion-scrim-in
300ms
ease-out
opacity (0 to 0.6)
Overlay backdrop fade-in
--motion-shimmer
1500ms
linear, infinite
background-position
Skeleton loading pulse
Motion governance. Only tokens from this table are permitted in production code. Proposing a new motion token requires a design governance review. All exits must be faster than their corresponding entrances. All animations must respect prefers-reduced-motion. Performance budget: no animation may cause a frame drop below 60fps on a 2020-era mid-range device.
A pro-grade interactive particle globe replacing the CSS-only version. 80 cobalt-blue particles connect with jordy-blue lines when proximate. Mouse interaction repels particles on hover, creating an organic, responsive feel. Built with tsParticles for GPU-accelerated rendering.
Particles
80
Cobalt dots, 2-4px radius
Links
150px
Connection distance
Speed
1.0
Particle move speed
Interaction
Repulse
On mouse hover
24Branded Backgrounds6 tsParticles Configurations
Six particle configurations tailored to different GFS contexts. Each uses the brand palette and is tuned for subtle, non-intrusive background ambience. Click "Copy Config" to grab the tsParticles JSON for any configuration.
Snow
Falling white dots on cobalt background. Evokes cold chain operations, winter logistics, and temperature-controlled environments.
Network
Connected dots forming a mesh. Represents supply chain network topology, distribution points, and interconnected systems.
Bubbles
Floating circles in blue shades. Gentle and ambient, suitable for backgrounds where content readability is paramount.
Confetti
Celebration effect with blue and white particles. Use for milestone completions, target achievements, and positive outcomes.
Stars
Twinkling dots on dark background. Represents data points, night operations, and subtle dashboard ambience.
Flow
Particles moving left to right. Directional motion representing supply chain flow, logistics movement, and throughput.
25Usage GuideWhere to Use Particle Backgrounds
Particle backgrounds add depth and interactivity when used sparingly. Each GFS context maps to a specific configuration. Follow these assignments to maintain visual consistency across all products.
Hub Landing
Network Config
The connected mesh reinforces GFS's supply chain network identity. Place behind the hero section with 0.3 opacity. Use alice background color for the container.
Loading Screens
Snow Config
Falling particles create a sense of motion during data fetches. Pairs with the GFS globe loader. Use cobalt background, white particles at 0.5 opacity.
Celebrations
Confetti Config
Trigger on milestone completions: quarterly targets hit, 100% compliance achieved, onboarding complete. Auto-stop after 3 seconds.
Dashboards
Stars Config (subtle)
Very low density (20-30 particles), minimal movement. Place behind dashboard chrome only, never behind data tables or charts. Opacity 0.3 maximum.
Portal Login
Globe Config
Full interactive globe behind the login card. Creates a premium first impression. Mouse repulsion gives users something to interact with while credentials load.
Rules for particle backgrounds.
Always keep container opacity between 0.3 and 0.5 -- never let particles compete with content.
Never place particles directly behind body text, tables, or form inputs.
Performance cap at 100 particles on any device.
Particles must not trigger on mobile unless explicitly enabled.
All particle containers must include will-change: transform for GPU acceleration.
Particle systems are GPU-intensive. Adjust density based on device capability to maintain 60fps rendering. The responsive configuration below detects viewport width and scales particle count accordingly.
Additional performance guidelines.
Use detectRetina: true for crisp rendering on HiDPI displays.
Set fpsLimit: 60 to prevent unnecessary overdraw.
Disable link lines on mobile -- they are the most expensive render operation.
Prefer out-mode: "out" over "bounce" to reduce collision calculations.
Test on the lowest-spec target device before shipping.
27SVG.js Live Demos6 Programmatic SVG Generators
Each demo below generates SVGs programmatically using the SVG.js library. These are live, editable, and use the GFS brand color palette throughout.
Each animation below uses Anime.js for timeline-based motion design. All demos include play, pause, and restart controls. The animations use the GFS brand colors and follow our motion design principles.
29Combined EffectsRough.js + SVG.js + Anime.js Together
These demos combine multiple libraries to create rich, interactive effects. Rough.js provides the hand-drawn aesthetic, SVG.js handles vector generation, and Anime.js drives the animations.
01 / Hand-Drawn Line Animation (Rough.js + Anime.js)
30What is Generative ArtAlgorithmic / Unique / Branded
Algorithmically created artwork that is unique every time. Using GFS's color palette and visual DNA — dots, lines, grids — these sketches generate one-of-a-kind branded visuals for backgrounds, social media, posters, and presentations.
Save any sketch as PNG, crop to platform dimensions, and use as unique branded backgrounds for LinkedIn, X, or Instagram posts.
SL
Presentation Slide Backgrounds
Generate a subtle Network Pulse or Data Landscape, overlay with a semi-transparent white scrim, and use as a branded slide background.
DC
Document Cover Art
Use as cover art for proposals, reports, and SOWs. Each document gets a unique generative cover that still reads as unmistakably GFS.
EM
Email Header Images
Crop a Dot Matrix Flow or Spiral sketch to email header dimensions (600x200) for branded newsletter and announcement headers.
LB
Lobby Screen Displays
Run any sketch fullscreen in a kiosk browser for visitor-facing lobby displays. The constant motion and brand colors create an ambient presence.
BC
Business Card Backgrounds
Generate a static Spiral or Dot Matrix frame, export at 2x resolution, and use as the abstract background for business card reverse sides.
33CustomizationAdjust Parameters in Real Time
01 — Network Pulse
Nodes30
Speed5
Intensity60
Background
02 — Dot Matrix Flow
Density16
Speed8
Intensity70
Background
03 — Data Landscape
Layers6
Speed5
Intensity80
Background
04 — Brand DNA Spiral
Dots200
Speed4
Intensity80
Background
34Shipment Volume Grid52-Week x 7-Day Contribution Graph
Inspired by contribution graphs, this 52x7 grid maps one full year of GFS shipment volume. Each cell represents a single day. Color intensity corresponds to shipment count: lightest for quiet days, deepest cobalt for peak volume. Weekends naturally show less activity. Holiday weeks create visible valleys. Peak seasons — spring produce, fall procurement — glow dark.
MTWTFSS
JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC
LessMoreShipment count per day — FY 2025
Pattern Logic: Weekdays (Mon-Fri) carry higher volume. Saturdays are light; Sundays near-zero. Spring and fall show seasonal peaks from produce procurement and pre-holiday stocking. July 4th week and Christmas week create visible valleys. The pattern is instantly recognizable as GFS operational rhythm.
A DNA-barcode-style visualization of daily cold chain compliance across one calendar year. Each vertical bar is one day. Green means 100% compliance. Rare yellows mark days where minor deviations occurred. A red bar means a breach event. The overwhelmingly green result tells the GFS story: relentless compliance.
JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC
100%99%95%90%85%Breach1 breach in 365 days = 99.7% annual compliance
Reads like DNA. The strip format compresses a full year of cold chain data into a single horizontal bar. The visual is overwhelmingly green — which is the point. Deviations stand out because they are rare. This is GFS operational excellence, made visible.
36Route Density MapDot-Matrix Distribution Visualization
A simplified US geography where dot density represents GFS shipment volume per region. Northeast is densest — that is home territory. Central regions show moderate activity. The West Coast has lighter, strategic coverage. Pure CSS using repeating background patterns at varied densities.
NE
SE
MW
S
MT
PAC
High Medium Low
Northeast Corridor
47%
of total shipment volume
Central / Midwest
31%
of total shipment volume
West / Pacific
22%
of total shipment volume
Dot density = data density. This pattern can be applied to any regional data set: customer concentration, warehouse locations, delivery frequency. The dot-matrix aesthetic ties directly to GFS's data-driven identity.
Each row represents one week. Each column represents a product category. Cell color corresponds to the category. The result is a textile-like tapestry that reveals patterns in GFS's product mix over time: seasonal shifts, product launches, and procurement cycles become visible as color bands.
Cheese
Butter
Frozen Veg
Dairy
Produce
Protein
Other
Read vertically: see how one category's share changes over time. Read horizontally: see the product mix for any given week. Spring produce expansion is visible as the green band widens. Fall cheese and butter ramp shows holiday procurement. Every row tells a story.
38Heartbeat PatternCSS-Animated Operations Rhythm
An animated continuous pattern representing GFS operations in real time. Morning hours (6-10 AM) spike as shipments depart. Midday levels sustain. Afternoon shows a secondary peak for receiving. Night drops to baseline monitoring. The pattern loops every 8 seconds, creating a living, breathing rhythm.
12 AM3 AM6 AM9 AM12 PM3 PM6 PM9 PM12 AM
Peak Hour
7:30 AM
Secondary Peak
3:00 PM
Low Point
2:30 AM
Animation
8s Loop
Living brand element. This pattern can be used as a background animation for dashboards, loading screens, or ambient displays. Color transitions from jordy (low activity) through tufts and navy to cobalt (peak) encode intensity meaning into the animation.
Every GFS document gets a unique visual fingerprint generated from its ID number. The fingerprint is a 20x4 grid where cell on/off patterns are derived deterministically from the document number. Like a visual hash. Each fingerprint is unique but all share the GFS blue palette — making them instantly identifiable as GFS documents.
GFS-2026-001
GFS-2026-042
GFS-2026-117
GFS-2026-203
GFS-2026-389
GFS-2026-500
Visual authentication. Fingerprints can be placed on invoices, shipment manifests, compliance certificates, and any document requiring quick visual verification. Matching the fingerprint to the document ID confirms authenticity at a glance. Each pattern is deterministic — the same ID always produces the same fingerprint.
The network flow pattern maps GFS supply chain connections as a node graph. Each node represents a facility (warehouse, DC, customer), and connecting lines show product flow volume. Thicker lines = higher volume. Animated pulse dots travel the paths to indicate active shipments.
HQ
EDGEWOOD
DC1
BOSTON
DC2
PHILA
DC3
BALTIMORE
DC4
RICHMOND
DC5
HARTFORD
DC6
CHARLOTTE
C1
C2
C3
C4
HQDistribution CenterCustomerLine weight = volume
Node Sizing
Hub (HQ): 64px diameter
Distribution Center: 40px diameter
Customer endpoint: 24px diameter
Vendor/supplier: 32px diameter
All nodes use border-radius: 50%
Dot size: 2-4px radius
Duration: 2-4s per path
repeatCount: indefinite
Opacity: 60-80%
Use SVG animateMotion
Network flow visualizations are used on operations dashboards, annual reports, and investor decks to show GFS distribution reach. Node positions can be geographic (map-based) or topological (force-directed layout). Always include a legend. Maximum recommended nodes: 30 for readability.
The daily rhythm heatmap encodes 24 hours of GFS operational intensity into a single visual row. Each cell represents one hour. Color intensity maps to activity level: order volume, truck dispatches, or warehouse pick rates. Stacking 7 rows creates a weekly view.
MON
TUE
WED
THU
FRI
SAT
SUN
12a
3a
6a
9a
12p
3p
6p
9p
Intensity:
LowHigh
Rhythm heatmaps reveal operational patterns at a glance: peak dispatch windows, order clustering, warehouse load distribution. Data source: NetSuite transaction timestamps aggregated hourly. Use Cobalt single-hue with opacity mapping. Friday peaks reflect end-of-week order surges. Saturday/Sunday show reduced weekend operations.
The route optimization pattern visualizes delivery sequence improvements. A before/after comparison shows how GFS routing algorithms reduce total mileage, delivery time, and fuel consumption by reordering stops. The pattern uses numbered waypoints connected by path lines on a simplified grid.
Before Optimization
142 miles / 8.2 hrs
D
1
2
3
4
5
142
Miles
8.2
Hours
20.3
Gal Diesel
After Optimization
89 miles / 5.1 hrs
D
1
2
3
4
5
89
Miles
5.1
Hours
12.7
Gal Diesel
-37%
Miles Reduced
-38%
Time Saved
-37%
Fuel Saved
$38
Savings/Route
Visual Spec
Depot marker: 28px square, Cobalt fill
Stop markers: 24px circle, numbered
Before path: Red #DC2626, dashed 6,4
After path: Green #16A34A, solid 2.5px
Background: Fog with dot grid overlay
Stats bar: 3-column grid below map
Data Source
Algorithm: Nearest-neighbor + 2-opt swap
Input: NetSuite delivery schedule + geocodes
Constraints: time windows, truck capacity, DOT hours
Output: ordered stop list + estimated metrics
Update frequency: nightly batch or on-demand
Average improvement: 25-40% mileage reduction
Route optimization visuals appear in fleet dashboards, driver dispatch screens, and monthly operations reviews. The before/after pattern clearly communicates savings to non-technical stakeholders. Always show the same stops in both panels — only the sequence changes. Color coding: red = unoptimized, green = optimized.
43What is LottieVector Animation Technology
Lottie is a vector animation format that renders After Effects animations in real time. Animations are exported as JSON, resulting in tiny file sizes, infinite scalability, and smooth 60fps playback on any device.
Unlike GIFs or video, Lottie files are resolution-independent, interactive, and programmable. A typical Lottie animation is 2-10KB -- smaller than a single JPEG thumbnail. They can be controlled via JavaScript: play, pause, reverse, scrub to frame, or trigger on scroll. For GFS, Lottie replaces static icons, CSS spinners, and placeholder illustrations with polished, brand-aligned motion.
Eight animation concepts designed specifically for GFS. Each card shows a static keyframe mockup with the intended motion description, duration, and recommended trigger. These serve as briefs for Lottie production.
GFS Globe Assembly
Globe forming from scattered particles. Dots drift inward, orbital rings draw on, connection lines fade in. The signature GFS loading animation as a polished Lottie.
2.5sOn Load
Frosty Wave
GFS mascot Frosty waving. Arm raises and waves in a friendly loop. Snowflake particles drift around. Used for welcome screens and empty state greetings.
1.5sOn Load
Frosty Thinking
Frosty with animated thought bubbles rising. Neutral expression, bubbles scale up and float. Used during AI processing, search loading, and data analysis states.
2.0sOn Load
Temperature Gauge
Thermometer filling up with animated mercury. Color shifts from blue (cold) to teal (optimal). Tick marks label temperature ranges. Cold chain monitoring visualization.
1.8sOn Scroll
Truck Moving
GFS-branded delivery truck driving across the frame. Wheels rotate, slight bounce on road bumps. Used for shipment tracking, delivery confirmations, and logistics pages.
3.0sOn Scroll
Checkmark Success
Animated checkmark drawing inside a circle. Circle draws on first, then the check strokes in with a satisfying snap. Used for form submissions, completed tasks, and confirmations.
0.8sOn Click
Cold Chain Link
Chain links connecting one by one with snowflake particles at each joint. Represents unbroken cold chain integrity. Links slide and lock with a subtle pulse effect.
2.0sOn Hover
Data Pulse
Bar chart bars animating upward from baseline. Each bar rises sequentially with a slight overshoot and settle. Used for dashboard hero metrics and report introductions.
1.2sOn Scroll
45Lottie Player Usagedotlottie-player Element & Sizes
The <dotlottie-player> web component renders Lottie animations with zero JavaScript setup. Include the CDN script as a module, then use the custom element anywhere in your HTML. Below are the three standard sizes used across GFS products.
Player attributes reference. src -- URL or path to .lottie or .json file background -- container background, use "transparent" for overlays speed -- playback multiplier (0.5 = half, 2 = double) loop -- boolean, enables infinite looping autoplay -- boolean, starts on load hover -- boolean, plays only on mouse hover direction -- 1 (forward) or -1 (reverse) mode -- "normal" or "bounce" (ping-pong)
46Free Lottie ResourcesLottieFiles.com Categories for GFS
LottieFiles.com hosts thousands of free animations. The categories below are most relevant to GFS operations. Download, recolor to our palette, and deploy. All free-tier animations are MIT-licensed for commercial use.
Preview at 24px, 120px, and 400px to ensure colors read at all sizes
5
Export and version
Download as .lottie format. Name: gfs-[concept]-v[n].lottie. Store in /assets/lottie/
Recoloring rules. Never use colors outside the GFS palette. Remove all warm tones (oranges, reds, yellows) unless they serve a semantic purpose (warning/error). Maintain at least 3:1 contrast ratio for animated elements against their background. Test in both light and dark modes.
Lottie animations replace static elements across five key touchpoints. Each pattern shows what is being replaced, what replaces it, and the implementation approach.
Loading Screens
Replace the CSS spinner with the Lottie Globe Assembly animation. The globe forms from particles during initial data fetch, giving users a branded experience instead of a generic spinner. Use 120px size for inline loaders, 400px for full-page loads.
CSS @keyframes Spinner→Lottie Globe Assembly
Empty States
Replace static empty-state icons with animated Frosty. The waving mascot provides a friendly, approachable feel when users land on pages with no data. Frosty Thinking variant works for search results with zero matches.
Static SVG Icon→Lottie Frosty Wave
Success Confirmations
Replace the static checkmark with the animated Checkmark Success Lottie. The drawing-on effect provides a satisfying moment of completion. Use in toast notifications, form submissions, and task completions. Set to play once (no loop), triggered on click.
Static Checkmark SVG→Lottie Checkmark Success
Onboarding Steps
Replace static step arrows and numbered indicators with animated transitions. The Truck Moving Lottie for logistics onboarding, Cold Chain Link for compliance steps, Data Pulse for analytics setup. Each plays on scroll-into-view for a progressive reveal effect.
Static Step Arrows→Lottie Step Animations
Email Headers
Animated GFS logo for email campaigns and transactional emails. Since email clients do not support Lottie natively, render the animation as a GIF fallback at 2x resolution. Use the Globe Assembly at 120px for email headers, with the static first frame as a further fallback for clients that block images.
Static PNG Logo→Animated GIF (from Lottie)
Integration checklist.
1. Confirm the animation file is under 50KB (prefer under 15KB).
2. Test on the slowest target device -- animation must not cause jank.
3. Provide a static SVG fallback for no-JS environments.
4. Set loading="lazy" on below-the-fold players.
5. Never autoplay animations that distract from primary content.
6. Respect prefers-reduced-motion -- show the static first frame instead.