{
  "schemaVersion": 1,
  "type": "resource",
  "id": "react-bits",
  "evaluation": {
    "reviewedOn": "2026-10-19",
    "status": "checked",
    "modes": [
      "http",
      "browser"
    ],
    "summary": "Selecting Dune changed the live background preset’s aria-checked state; two canvases were present. Visual quality and frame rate were not scored.",
    "reportUrl": "/design-evaluations/resource-react-bits.json",
    "identity": {
      "target": "https://reactbits.dev/",
      "version": "Unversioned public page checked 2026-10-19",
      "integrity": "sha256:111a26d11bcdfbe543e924982c34a1500096d99701244bb7304bb5030f25a998"
    },
    "environment": [
      "Chromium 155.0.8059.82 on Windows; fresh temporary profile and fresh account-free contexts.",
      "Public HTTPS GET/HEAD requests only; telemetry/auth routes and WebSockets blocked. No account storage or credential environment variables."
    ],
    "tests": [
      {
        "name": "Public document and DOM",
        "mode": "browser",
        "method": "Fresh Chromium GET, then inspect rendered controls after hydration delay",
        "result": "pass",
        "observation": "HTTP 200; 19 captured button labels; 0 inputs; 2 canvases."
      },
      {
        "name": "Background preset selection",
        "mode": "browser",
        "method": "Choose Dune in the live homepage background sample",
        "result": "pass",
        "observation": "Preset aria-checked changed=true; canvases=2. Rendering quality and frame rate not scored."
      }
    ],
    "security": {
      "scope": "Passive inspection of the public response headers, requested hosts and the named browser sample. No active exploitation, authenticated permissions test or complete security audit.",
      "findings": [
        {
          "level": "caution",
          "basis": "observed",
          "title": "Canvas motion sits outside CSS-only checks",
          "detail": "The live sample used canvases. Counting CSS or Web Animations API animations cannot establish whether those canvases stop drawing under reduced motion."
        }
      ],
      "limits": [
        "No authenticated workspace, private content, production backend permissions or data-retention verification.",
        "No local install, WebGL fallback test, memory profiling or physical-device performance test."
      ]
    },
    "practicalCaveats": [
      "Inspect the selected effect’s render loop, cleanup and motion fallback, especially before using it behind text.",
      "Pin and recheck the selected version or sample before adoption; the observations apply only to the scope and date shown."
    ],
    "limits": [
      "No local install, WebGL fallback test, memory profiling or physical-device performance test.",
      "Fresh-browser restrictions can affect external assets and hydration. Initial failed selectors and limited probes remain in the evidence; they are not blanket product failures."
    ],
    "sources": [
      {
        "label": "Primary public resource",
        "url": "https://reactbits.dev/"
      }
    ]
  }
}
