Open numbers

Design health of every site

Read from each site's own code: motion through the kit's timings and curves, colours from the theme, a pause for people who ask for less movement, and nothing that spins. 100 is a site that follows the kit everywhere it was read. Measured Nov 1, 2026, at each site's main branch.

Sites measured477 at 100
Median score98.7of 100
SpinnersNonenothing spins
Files without reduced motionNoneevery animation can stop

Every site

Most to fix first. A site's page shows where, line by line.

SiteScoreSpinnersNo reduced motionHand-set timingsHand-set curvesColours outside the theme
OpenVibe.Live119 files00019471,615
OpenVibe.Tools69 files71.500340399
OpenVibe.Design41 files72.300631235
OpenVibe.Network31 files85.900140212
OpenVibe.Chat16 files87.80029764
OpenVibe.Actor12 files89.300271218
OpenVibe.Bot13 files90.800125100
OpenVibe.MediaHub9 files92.70013746
OpenVibe.Codes8 files94.9001367
OpenVibe.Surf4 files95.3009523
OpenVibe.Vision4 files95.7001157
OpenVibe.Community3 files96.8007030
OpenVibe.Meme3 files97.2005317
OpenVibe.Wiki2 files97.400637
OpenVibe.Fun4 files97.500724
All 47 sites 32 more
SiteScoreSpinnersNo reduced motionHand-set timingsHand-set curvesColours outside the theme
OpenVibe.Today3 files97.500539
OpenVibe.Food10 files97.600448
OpenVibe.Space5 files97.8003029
OpenVibe.Exchange3 files98.200522
OpenVibe.Domains4 files98.300610
OpenVibe.Host3 files98.3002213
OpenVibe.Rent7 files98.300423
OpenVibe.Work3 files98.300423
OpenVibe.Cam3 files98.7000027
OpenVibe.Bench8 files98.800225
OpenVibe.News2 files98.8001115
OpenVibe.Tips4 files98.800309
OpenVibe.Deals2 files98.900402
OpenVibe.Quest1 file99.100208
OpenVibe.Tours4 files99.3000013
OpenVibe.VIP2 files99.300108
OpenVibe.Help1 file99.500201
OpenVibe.Report5 files99.500200
OpenVibe.Inventory1 file99.500009
OpenVibe.Reviews3 files99.500009
OpenVibe.Blog1 file99.700102
OpenVibe.Trade1 file99.700101
OpenVibe.Coupons1 file99.800100
OpenVibe.Watch2 files99.800100
OpenVibe.Shoes2 files99.800003
OpenVibe.Casino6 files10000000Nothing to fix
OpenVibe.Games3 files10000000Nothing to fix
OpenVibe.Media2 files10000000Nothing to fix
OpenVibe.Play1 file10000000Nothing to fix
OpenVibe.Services3 files10000000Nothing to fix
OpenVibe.Sources1 file10000000Nothing to fix
OpenVibe.Zone1 file10000000Nothing to fix

How it is measured

Spinners −4 each
A keyframe that turns a whole circle, or an animation that runs one forever. Nothing on OpenVibe spins: a loading state breathes, bobs or fills.
No reduced motion −2 each
A stylesheet that animates and never asks for prefers-reduced-motion, so a person who asked for less movement still gets it.
Hand-set timings −0.25 each
A transition or animation time written by hand (.25s, 300ms) where the kit says var(--ov-dur-1…4), so a look's motion and Calm cannot change it.
Hand-set curves −0.25 each
A cubic-bezier() or an ease keyword where the kit says var(--ov-ease-out), var(--ov-ease-spring) or var(--ov-ease-in-out).
Colours outside the theme −0.05 each
A colour written by hand in a file that already uses the theme's variables: it stays put when a person changes their look.

A site's score is 100 minus what its findings cost, never below 0. The rules read every stylesheet, and every <style> in a page or script, under a site's public/ and server/views/; a site with none there is left out. The kit's own tokens and the fallback inside var(--name, fallback) never count. The rules are open: server/design-health/scan.js, run by scripts/design-health.js. The same numbers: /api/v1/design-health.