The "ta-dum" of GFS. This full-screen loading sequence runs on initial app load, post-login, and when switching between major modules. Scattered particles converge into the GFS globe, followed by the wordmark fade-in. Total duration: ~3 seconds.
Usage: Initial app launch, post-authentication redirect, major module transitions
Never: Use on page-to-page navigation or partial data loads
For fast secondary loads — switching tabs, refreshing a panel, or navigating between sub-pages. Clean white background with a small pulsing dot-matrix globe and the company name.
Usage: Tab switches, panel refreshes, sub-page navigation
Context: White backgrounds only — never on cobalt
What users see after authenticating and before the portal loads. Cobalt gradient background, GFS wordmark, animated progress bar, and cold-chain-specific loading text. This is the first branded moment after login.
Progress: Animated fill, not percentage-based. Loops until load completes.
Rule: Never say "Loading..." — always use a GFS-specific action verb
For data-fetch states within the UI. Skeleton placeholders preserve layout structure while content loads. The shimmer gradient uses the GFS cobalt-to-alice color range, keeping the loading state on-brand.
Timing: 1.5s loop, ease-in-out. Stagger children by 0.1s-0.15s for wave effect.
Rule: Skeleton shapes must match the actual content layout. Never use generic placeholders.
The mobile app splash screen shown on cold launch. GFS globe centered on cobalt with subtle expanding pulse rings. Minimal, confident, fast.
Duration: 1-2s max, then transition to auth or home
Version: Always show build number in production. Helps field support.
Six inline loading indicators for use within UI components — buttons, cards, chat interfaces, and data panels. All 24px base size, all in GFS blue.
Size: 24px default. Scale to 16px for compact UI, 32px for empty states.
Rule: Never combine multiple loader types in the same view. Pick one per context and stay consistent.