{
  "schemaVersion": 1,
  "type": "resource",
  "id": "transitions-dev",
  "evaluation": {
    "reviewedOn": "2026-10-19",
    "status": "checked",
    "modes": [
      "http",
      "browser",
      "source-review"
    ],
    "summary": "The public category filter and one resize animation passed bounded browser checks. Optional automation, Pro content and generated components remain untested.",
    "reportUrl": "/design-evaluations/resource-transitions-dev.json",
    "identity": {
      "target": "https://transitions.dev/",
      "version": "Public website snapshot observed 19 October 2026; no installed package version was evaluated.",
      "integrity": "SHA-256 of the observed main-document response: 468bf67e60992f80915d4eb3329ea6ce50a3d812b3892e69caf3afd3c066a575. This identifies one response, not all loaded assets or a reproducible SDK build."
    },
    "environment": [
      "Fresh Chromium 155.0.8059.82 context; 1280 by 900 viewport; no account or retained browser storage.",
      "Only approved public HTTPS hosts and GET/HEAD requests allowed. Authentication/API paths, telemetry, writes, service workers and WebSockets blocked; no downloads accepted."
    ],
    "tests": [
      {
        "name": "Public response",
        "mode": "http",
        "method": "Read the public landing page and selected response headers without authentication.",
        "result": "pass",
        "observation": "HTTP 200 at https://transitions.dev/. Reachability does not establish product functionality."
      },
      {
        "name": "Filter and restore",
        "mode": "browser",
        "method": "Select Effects, inspect visible card categories, then restore All.",
        "result": "pass",
        "observation": "The initial three cards changed to three Effects cards, all tagged effects, then returned to the original three titles."
      },
      {
        "name": "Resize sample and restore",
        "mode": "browser",
        "method": "Activate the visible Card resize sample and compare settled dimensions; activate again to restore.",
        "result": "pass",
        "observation": "The sample changed from 220 by 112 CSS pixels to 154 by 128, then returned to 220 by 112 after the second activation."
      },
      {
        "name": "Source and trend cross-check",
        "mode": "source-review",
        "method": "Compare the publisher site, README, terms and fresh GitHub weekly listing.",
        "result": "pass",
        "observation": "Identity and separate tool/library scopes agreed; the weekly listing reported 571 stars this week on the observation date."
      },
      {
        "name": "Automation and paid workflows",
        "mode": "source-review",
        "method": "Keep CLI installation, agent edits, hosted generation and Pro access outside the account-free browser scope.",
        "result": "not-run",
        "observation": "No skill installed, project edited by upstream code, model invoked, paid content downloaded or account accessed."
      }
    ],
    "security": {
      "scope": "Passive public-response and documentation review with bounded browser interaction. No exploit testing, package audit or account-permission test.",
      "findings": [
        {
          "level": "info",
          "basis": "observed",
          "title": "Public sample worked under a network guard",
          "detail": "The observed run recorded no page exceptions. Nine requests for telemetry, repository counters or API/account/community data were blocked; those paths were not evaluated."
        },
        {
          "level": "caution",
          "basis": "observed",
          "title": "Response headers have a narrow evidence scope",
          "detail": "None of the six inspected policy headers was present on this main-document response: CSP, HSTS, X-Content-Type-Options, X-Frame-Options, Referrer-Policy or Permissions-Policy. This is a response observation, not proof of an exploitable weakness."
        },
        {
          "level": "caution",
          "basis": "documented",
          "title": "Optional automation crosses a larger boundary",
          "detail": "The publisher describes Refine as invoking a local coding agent and applying accepted changes to project files. Its terms also describe model quota consumption. A working CSS demo does not validate that automation."
        },
        {
          "level": "caution",
          "basis": "advice",
          "title": "Keep motion and semantics separate",
          "detail": "Use an established component for roles, labels, focus and Escape behavior; add the transition after those states work. Review imported code and avoid sharing private source with hosted tools by default."
        }
      ],
      "limits": [
        "No penetration test, vulnerability scan, dependency audit, tenant isolation test or security certification.",
        "Blocked analytics/API requests alter the normal site environment. These checks cannot describe all ordinary network activity."
      ]
    },
    "practicalCaveats": [
      "The homepage shows a short sample row. Filtering that row does not test every transition or the full library.",
      "The tested resize is visual state behavior, not an accessibility, frame-rate or user-comprehension result.",
      "Check the exact license and entitlement for the snippet and workflow you choose."
    ],
    "limits": [
      "One desktop Chromium session, one filter cycle and one resize cycle; no mobile, assistive-technology or reduced-motion execution.",
      "No CLI, skill, Refine session, agent scan/fix, project integration, paid download or model generation.",
      "The current site can change independently of the saved response; the response hash does not pin its dependent assets."
    ],
    "sources": [
      {
        "label": "Publisher repository",
        "url": "https://github.com/Jakubantalik/transitions.dev",
        "scope": "Product identity, CSS library, optional CLI/skill/Refine paths; source reviewed, tools not installed."
      },
      {
        "label": "Public transition library",
        "url": "https://transitions.dev/",
        "scope": "Account-free filter and Card resize interaction."
      },
      {
        "label": "Publisher terms and license",
        "url": "https://transitions.dev/terms.html",
        "scope": "Library redistribution restrictions and separate tooling, hosted and agent scopes; reviewed 19 October 2026."
      },
      {
        "label": "GitHub weekly HTML trending list",
        "url": "https://github.com/trending/html?since=weekly",
        "scope": "Observed 19 October 2026: transitions.dev listed with 571 stars this week. Dynamic list, not a permanent ranking."
      }
    ]
  }
}
