Blitz Motion Lab · Atomic assets

A living UI, one asset at a time

Every visual has a static reference. 40 assets also have a live variant, 12 brand signatures and 6 automations extend the language, and 13 diagram scenes are mounted in the heroes of the site, all without leaving the minimal tone of BlitzAPI.

40 LIVE VARIANTS12 SIGNATURES6 AUTOMATIONS13 SCENES LIVE · 31 SPECS
01Static is canonical

Motion never carries indispensable information. The static state is the one a screen reader and a printer get.

02One asset, one motion

A single behaviour per variant, declared in the catalog. No page picks a duration, an easing or a keyframe.

03Ambient, not narrative

No complex timeline, no scene that monopolizes a section. Ambient loops run 8s or more.

04Reduced motion

The system preference restores the static version automatically, through the global blanket.

01
Motion vocabulary

Four movements, a closed vocabulary

Durations are tokens (tokens.css); the sample next to each name runs at the real duration.

4 MOVEMENTS
Pulse15 assets · 3.6s · --motion-pulse-duration

A status, a port or a discovery breathes locally.

Progress6 assets · 5s · --motion-progress-duration

One measure moves slowly without changing the content.

Flux11 assets · 7.2s · --motion-flux-duration

A change reveals itself by sequence, stroke or orbit.

Dash8 assets · 8s · --motion-flow-duration

A connector suggests a transfer or a resolution.

02
Static ↔ Live

The live variants, side by side

Left column: the static reference. Right column: the same asset with animated: true, running only the movement declared in the catalog.

40 PAIRS
01

Pulse

A status, a port or a discovery breathes locally.

3.6s15 ASSETS
API requestAPI
POST/v2/enrichment/emailBLITZAPI
STATIC
POST/v2/enrichment/emailBLITZAPI
LIVE · PULSE
API responseAPI
/v2/enrichment/emailBLITZAPI200 OKmaya@acme.com
STATIC
/v2/enrichment/emailBLITZAPI200 OKmaya@acme.com
LIVE · PULSE
Key infoAPI
API KEYProductionACTIVEblitz_sk_••••••••4f2a
STATIC
API KEYProductionACTIVEblitz_sk_••••••••4f2a
LIVE · PULSE
Terminal commandAPI
HTTP 200$ curl -X POST/v2/search/people
STATIC
HTTP 200$ curl -X POST/v2/search/people
LIVE · PULSE
Person recordIDENTITY
MCMaya ChenHead of Growth · Acmemaya@acme.com
STATIC
MCMaya ChenHead of Growth · Acmemaya@acme.com
LIVE · PULSE
ContactabilityIDENTITY
CONTACTABILITYEmailPhoneProfile
STATIC
CONTACTABILITYEmailPhoneProfile
LIVE · PULSE
Discovered contactIDENTITY
Maya ChenHead of Growth · AcmeNEW PERSON
STATIC
Maya ChenHead of Growth · AcmeNEW PERSON
LIVE · PULSE
Verified fieldIDENTITY
WORK EMAILmaya@acme.comVERIFIED AT SOURCE
STATIC
WORK EMAILmaya@acme.comVERIFIED AT SOURCE
LIVE · PULSE
Found resultIDENTITY
foundtrueWORK EMAILmaya@acme.com
STATIC
foundtrueWORK EMAILmaya@acme.com
LIVE · PULSE
DatasetDATA
PROFILESMaya ChenAcmeUSLéo MartinNorthwindFRPriya RaoGlobexGB
STATIC
PROFILESMaya ChenAcmeUSLéo MartinNorthwindFRPriya RaoGlobexGB
LIVE · PULSE
Quality scoreDATA
DATA QUALITYVERIFIEDCheckedFRESH≤ 30 daysCOMPLETEStructured
STATIC
DATA QUALITYVERIFIEDCheckedFRESH≤ 30 daysCOMPLETEStructured
LIVE · PULSE
DeduplicationDATA
Maya ChenM. ChenChen, MayaMaya Chen1 RECORD
STATIC
Maya ChenM. ChenChen, MayaMaya Chen1 RECORD
LIVE · PULSE
Validation stateDATA
RAWVALID
STATIC
RAWVALID
LIVE · PULSE
ResolverFLOW
EMAILFOUND
STATIC
EMAILFOUND
LIVE · PULSE
Provider stepFLOW
WATERFALL · STEP 2 / 3Provider BSEARCHING
STATIC
WATERFALL · STEP 2 / 3Provider BSEARCHING
LIVE · PULSE
02

Progress

One measure moves slowly without changing the content.

5s6 ASSETS
Batch requestAPI
BATCH REQUESTPOST× 10064 / 100 DONE
STATIC
BATCH REQUESTPOST× 10064 / 100 DONE
LIVE · PROGRESS
Company recordIDENTITY
Acmeacme.com · USENRICHED
STATIC
Acmeacme.com · USENRICHED
LIVE · PROGRESS
Email confidenceIDENTITY
STATIC
LIVE · PROGRESS
Score cardDATA
ACCOUNT SCOREFIT86
STATIC
ACCOUNT SCOREFIT86
LIVE · PROGRESS
Confidence scoreDATA
HighRESOLUTIONCONFIDENCEVerified signals
STATIC
HighRESOLUTIONCONFIDENCEVerified signals
LIVE · PROGRESS
Coverage scoreDATA
COVERAGEWORK EMAILPresentUNKNOWN
STATIC
COVERAGEWORK EMAILPresentUNKNOWN
LIVE · PROGRESS
03

Flux

A change reveals itself by sequence, stroke or orbit.

7.2s11 ASSETS
Rate limitAPI
RATE LIMITPER SECOND35/ 50 req/s
STATIC
RATE LIMITPER SECOND35/ 50 req/s
LIVE · FLUX
Live signalDATA
HIRING SIGNAL+1812 WEEKS AGONOW
STATIC
HIRING SIGNAL+1812 WEEKS AGONOW
LIVE · FLUX
DistributionDATA
BY COUNTRYUS48%FR27%GB16%
STATIC
BY COUNTRYUS48%FR27%GB16%
LIVE · FLUX
Data metricDATA
PROFESSIONAL PROFILES550M+
STATIC
PROFESSIONAL PROFILES550M+
LIVE · FLUX
Score bandDATA
SCORE BAND86LOWMIDHIGH
STATIC
SCORE BAND86LOWMIDHIGH
LIVE · FLUX
Score breakdownDATA
SCORE BREAKDOWN86 / 100FIT92INTENT78REACH60
STATIC
SCORE BREAKDOWN86 / 100FIT92INTENT78REACH60
LIVE · FLUX
Metric deltaDATA
REPLY RATENOWPREV18.4%↑ 3.2 PTS
STATIC
REPLY RATENOWPREV18.4%↑ 3.2 PTS
LIVE · FLUX
Metric comparisonDATA
DATASET COVERAGEBEFOREPartialAFTEREnriched
STATIC
DATASET COVERAGEBEFOREPartialAFTEREnriched
LIVE · FLUX
ICP scoreDATA
ICP SCOREHIGH86/ 100
STATIC
ICP SCOREHIGH86/ 100
LIVE · FLUX
WaterfallFLOW
Provider ANO RESULTProvider BNO RESULTProvider CFOUND
STATIC
Provider ANO RESULTProvider BNO RESULTProvider CFOUND
LIVE · FLUX
ICP cascadeFLOW
TIER 1TIER 2TIER 3STOP AT MAX_RESULTS
STATIC
TIER 1TIER 2TIER 3STOP AT MAX_RESULTS
LIVE · FLUX
04

Dash

A connector suggests a transfer or a resolution.

8s8 ASSETS
Identity matchIDENTITY
IDENTITY MATCHED
STATIC
IDENTITY MATCHED
LIVE · DASH
Aggregate countDATA
PEOPLE550M+COMPANIES65M+JOBS100M+DATA POINTS1B+
STATIC
PEOPLE550M+COMPANIES65M+JOBS100M+DATA POINTS1B+
LIVE · DASH
MergeFLOW
Maya Chenmaya@acme.comMaya Chen+ EMAIL
STATIC
Maya Chenmaya@acme.comMaya Chen+ EMAIL
LIVE · DASH
SplitFLOW
EMAILS1,000Valid82%Risky18%
STATIC
EMAILS1,000Valid82%Risky18%
LIVE · DASH
Data portFLOW
INPUTOUTPUT
STATIC
INPUTOUTPUT
LIVE · DASH
Data routerFLOW
RESULTCRMWAREHOUSESEQUENCER
STATIC
RESULTCRMWAREHOUSESEQUENCER
LIVE · DASH
Enrichment chainFLOW
PersonEmailPhone
STATIC
PersonEmailPhone
LIVE · DASH
GTM loopFLOW
GTM LOOPSOURCEENRICHSYNC
STATIC
GTM LOOPSOURCEENRICHSYNC
LIVE · DASH
03
Brand signatures · Level 2

More expressive, still contained

Micro-sequences that give the key moments a personality: discover, resolve, verify, synchronize, reveal a signal. One canvas, at most three states, one intention. Each signature below says where the site mounts it.

12 SIGNATURES
MAX 3 STATES1 CANVAS6.4s to 8sNO NARRATIVE SCENE
Data scanDiscover

Explore a corpus or an object

People · Companies · Jobs
STATIC
People · Companies · Jobs
LIVE · LEVEL 2
Identity resolveResolve

Go from unknown to found

UNKNOWNFOUND
STATIC
UNKNOWNFOUND
LIVE · LEVEL 2
Data streamOperate

Show an active transfer

SOURCERESULTS
STATIC
SOURCERESULTS
LIVE · LEVEL 2
Trust stampTrust

Confirm a validation

VERIFIED BY BLITZAPI
STATIC
VERIFIED BY BLITZAPI
LIVE · LEVEL 2
Cascade focusResolve

Walk three short steps

WATERFALL CASCADESTEP 1STEP 2STEP 3
STATIC
WATERFALL CASCADESTEP 1STEP 2STEP 3
LIVE · LEVEL 2
System syncOperate

Synchronize two systems

STATIC
LIVE · LEVEL 2
Signal revealDiscover

Reveal a signal

SIGNAL DETECTED+1812 WEEKS AGONOW
STATIC
SIGNAL DETECTED+1812 WEEKS AGONOW
LIVE · LEVEL 2
JSON cursorTrust

Suggest a structured response

{"found": true,"email": "maya@acme.com"}
STATIC
{"found": true,"email": "maya@acme.com"}
LIVE · LEVEL 2
Raw to recordResolve

Converge raw fragments into a clean record

Maya ChenRAWRESOLVED
STATIC
Maya ChenRAWRESOLVED
LIVE · LEVEL 2
Brand orbitOperate

Bring life to a section with no business object to show

ONE API LAYER
STATIC
ONE API LAYER
LIVE · LEVEL 2
Waterfall cascadeResolve

Descend the tiers down to the match

TIER 1VP SalesTIER 2Sales DirectorTIER 3Head of Growth
STATIC
TIER 1VP SalesTIER 2Sales DirectorTIER 3Head of GrowthTIER 3Head of Growth
LIVE · LEVEL 2
Signal timelineDiscover

Reveal a signal over time

MONTH 1NOW
STATIC
MONTH 1NOW
LIVE · LEVEL 2
SignatureFamilyPurposeMounted on (SignatureBand)
scandiscoverExplore a corpus or an objectNot mounted in a band (available to Figure and UseCaseSplit showcase)
resolveresolveGo from unknown to foundNot mounted in a band (available to Figure and UseCaseSplit showcase)
streamoperateShow an active transferhub mcp
verifytrustConfirm a validationNot mounted in a band (available to Figure and UseCaseSplit showcase)
cascade-focusresolveWalk three short stepsNot mounted in a band (available to Figure and UseCaseSplit showcase)
syncoperateSynchronize two systemshub integrations
signal-drawdiscoverReveal a signalNot mounted in a band (available to Figure and UseCaseSplit showcase)
json-cursortrustSuggest a structured responsehub developers
convergeresolveConverge raw fragments into a clean recordfamily enrichment · use case crm-hygiene · use case profile-enrichment · team revops
orbitoperateBring life to a section with no business object to showfamily identity · use case data-resolution · team gtm-engineers · team developers
cascaderesolveDescend the tiers down to the matchfamily search · use case find-decision-makers · team outbound-specialists
timelinediscoverReveal a signal over timefamily jobs · use case build-tam · team agencies
04
Automation generator

Automations readable at a glance

A trigger, a Blitz engine, a result. Recipes are declarative specs of two to four nodes, with roles from the icon registry, no coordinates and no free timeline.

6 RECIPES
2 TO 4 NODES1 BLITZ ENGINE2 BEAMSLINEAR FIRST
Contact enrichment3 NODES · LINEAR

Enrich a person, then confirm a usable contact.

STATIC SPEC
LIVE · BEAM
Email resolution3 NODES · LINEAR

Turn an unknown address into a resolved work email.

STATIC SPEC
LIVE · BEAM
Phone resolution3 NODES · LINEAR

Resolve and qualify a direct dial.

STATIC SPEC
LIVE · BEAM
People search3 NODES · LINEAR

Turn an ICP query into a people dataset.

STATIC SPEC
LIVE · BEAM
Company refresh3 NODES · LINEAR

Refresh a company record, then sync the data.

STATIC SPEC
LIVE · BEAM
Hiring signal3 NODES · LINEAR

Detect a hiring signal and create a GTM action.

STATIC SPEC
LIVE · BEAM
JSON · automation-recipes.json
{
  "id": "contact-enrichment",
  "name": "Contact enrichment",
  "intent": "Enrich a person, then confirm a usable contact.",
  "alt": "A person record enriched by BlitzAPI into a verified contact",
  "nodes": [
    {
      "id": "person",
      "kind": "icon",
      "role": "person",
      "label": "PERSON"
    },
    {
      "id": "blitz",
      "kind": "blitz",
      "label": "ENRICH"
    },
    {
      "id": "verified",
      "kind": "icon",
      "role": "verified",
      "label": "VERIFIED"
    }
  ]
}
05
MotionScene · Level 3

A diagram is data

A JSON spec (canvas, nodes, flows, labels, metrics) becomes an animated SVG composed from the primitives: blueprint grid, node cards, the engine, flow paths with auto routing and staggered reveal. The same spec serves a wide tier and a derived compact tier for narrow frames.

13 LIVE · 31 SPECS
CANVAS

Width ≈ the real width of the host frame: 720 for a product band, 560 for a hero proof frame or a team column. The compact tier is derived, never written.

DENSITY

Three nodes per section scene (card → engine → result), rarely four. Beyond, the scene competes with the text.

EYEBROW

One mono eyebrow per proof zone, carried by the HTML (sceneLabel). A labels[] entry in the spec would duplicate it.

ONE PER PAGE

specs/<directory>/<slug>.json, mounted by slug through import.meta.glob. Remove the JSON, the frame disappears.

PROFILE ENRICHMENT · use case herospecs/use-cases/profile-enrichment.json · 560×320 · 4 nodes
DEVELOPER TOOLKIT · hub herospecs/hubs/developers.json · 560×360 · 6 nodes
GTM WORKFLOW · team pains sectionspecs/teams/gtm-engineers.json · 560×240 · 3 nodes
JSON · specs/use-cases/profile-enrichment.json
{
  "id": "uc-profile-enrichment",
  "alt": "A partial profile and company data flowing through BlitzAPI enrichment into a complete profile",
  "canvas": {
    "width": 560,
    "height": 320
  },
  "grid": {
    "variant": "dots"
  },
  "nodes": [
    {
      "id": "in0",
      "kind": "card",
      "x": 22,
      "y": 60,
      "w": 148,
      "h": 64,
      "label": "PARTIAL PROFILE"
    },
    {
      "id": "in1",
      "kind": "card",
      "x": 22,
      "y": 196,
      "w": 148,
      "h": 64,
      "label": "COMPANY DATA"
    },
    {
      "id": "engine",
      "kind": "engine",
      "x": 240,
      "y": 120,
      "w": 80,
      "h": 80,
      "label": "ENRICH"
    },
    {
      "id": "out0",
      "kind": "result",
      "x": 382,
      "y": 98,
      "w": 156,
      "h": 124,
      "label": "COMPLETE PROFILE"
    }
  ],
  "flows": [
    {
      "from": "in0",
      "to": "engine"
    },
    {
      "from": "in1",
      "to": "engine"
    },
    {
      "from": "engine",
      "to": "out0",
      "tone": "accent",
      "dur": 3
    }
  ],
  "labels": [
    {
      "x": 22,
      "y": 38,
      "text": "[ 550M+ PROFILES ]"
    }
  ]
}
DirectorySpecsMounted inStatus
specs/use-cases/5UseCaseHero proof frame (T3)live
specs/hubs/3UseCaseHero proof frame (Developers, Integrations)live
specs/teams/5PainsSection scene column (T4)live
specs/blog/3Figure block at the head of an articledormant (blog routes removed in September)
specs/products/13former diagram band of the product templatedormant (band removed with the hero KPIs)
specs/home/2home sections (specs kept for reference)not mounted
Node kindDefault sizeMeaning
card · terminal148×64A source or a command; mini content simulated
engine80×80The Blitz engine, square, glyph on accent
result156×124A result card
query · filter164×92 · 164×112Typed query or ICP filters with key/value fields
json · person · company · dataset164×112Data objects with their fields
signal164×96A detected event
endpoint180×104A method + path card
06
Production contract

Motion stays a parameter

A generator, a page or an author only asks for animated: true; the catalog imposes the movement compatible with the asset. Four levels, four closed contracts.

4 LEVELS
LEVEL 01Atomic asset

One business object or state, standalone.

57 kinds · 40 live
LEVEL 02Brand signature

A brand micro-sequence in one canvas.

12 signatures · max 3 states
LEVEL 03Automation

A short functional flow, built by nodes.

6 recipes · 2 to 4 nodes
LEVEL 04MotionScene

A diagram composed from a spec, mounted in a hero or a figure.

31 specs · 13 live
JSON · asset spec
{
  "kind": "resolver",
  "variant": "email",
  "animated": true,
  "alt": "Email resolution in progress"
}