{"adoption": {"forks": 37, "observed_at": "2026-08-28T04:05:32.930656+00:00", "stars": 1763}, "canonical_url": "https://ross.abutalabs.com/products/chromatism", "card": {"archived": false, "artifact_type": "library", "description": ":rainbow: A simple set of utility functions for colours.", "domain": ["web-development", "frontend", "graphics"], "enriched": true, "function": ["image-processing", "ui-components"], "health_score": 20, "homepage": null, "language": "JavaScript", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["graypegg/chromatism"], "name": "graypegg/chromatism", "platform": ["browser", "cross-platform"], "pushed_at": "2024-03-09T18:23:17+00:00", "repo": "graypegg/chromatism", "stars": 1763, "tags": ["color", "color-conversion", "color-spaces", "hsl", "rgb", "cielab", "ciexyz", "color-harmony", "accessibility", "chromatic-adaptation", "color-difference", "javascript", "nodejs"], "topics": ["hsl", "tetrad", "hue", "rgb", "ciexyz", "chromatic-adaptation", "triad", "illuminants", "color", "color-modes", "hue-shift", "cielab", "colour"], "urls": [], "use_cases": ["convert colors between rgb hsl cielab and other color spaces", "generate complementary triad and tetrad color palettes", "shift the hue or brightness of a color", "find an accessible text color for a background", "compute the difference between two colors", "create a fade or gradient between two colors", "apply chromatic adaptation for a white point"], "what_it_is": "Chromatism is a small JavaScript utility library for colour manipulation, offering conversions between many colour modes (RGB, HSL, CIELAB, CIEXYZ, etc.) plus transformations like complementary, triad, and tetrad generation, hue shifting, blending, and greyscale/sepia filters. It also includes colour metering functions such as colour difference, colour temperature, and accessible foreground text colour determination.", "when_to_avoid": ["you need GPU-accelerated or image-wide pixel processing rather than per-color operations", "you need a full color design system or theme generation framework", "you require an actively developed project with a guaranteed license"], "when_to_choose": ["you need a lightweight, dependency-free color utility in JavaScript for browser or Node", "you work with less common color spaces like CIELAB, CIEXYZ, or illuminants", "you need color harmony generation (triads, tetrads, complementary) or accessibility checks"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/chromatism", "repo": "graypegg/chromatism", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.930656+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:26:45.688883+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a5f8d3ed89e9aa5dbce5c41efb54e8985d4b410ed764385d009e6e42d2171c66", "fetched_at": "2026-08-28T04:05:32.930656+00:00", "kind": "readme", "missing": false, "url": "https://github.com/graypegg/chromatism"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.930656+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:26:45.688883+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a5f8d3ed89e9aa5dbce5c41efb54e8985d4b410ed764385d009e6e42d2171c66", "fetched_at": "2026-08-28T04:05:32.930656+00:00", "kind": "readme", "missing": false, "url": "https://github.com/graypegg/chromatism"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:26:45.688883+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a5f8d3ed89e9aa5dbce5c41efb54e8985d4b410ed764385d009e6e42d2171c66", "fetched_at": "2026-08-28T04:05:32.930656+00:00", "kind": "readme", "missing": false, "url": "https://github.com/graypegg/chromatism"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.930656+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.930656+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.930656+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:26:45.688883+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a5f8d3ed89e9aa5dbce5c41efb54e8985d4b410ed764385d009e6e42d2171c66", "fetched_at": "2026-08-28T04:05:32.930656+00:00", "kind": "readme", "missing": false, "url": "https://github.com/graypegg/chromatism"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.930656+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.930656+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:26:45.688883+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a5f8d3ed89e9aa5dbce5c41efb54e8985d4b410ed764385d009e6e42d2171c66", "fetched_at": "2026-08-28T04:05:32.930656+00:00", "kind": "readme", "missing": false, "url": "https://github.com/graypegg/chromatism"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.930656+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.930656+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.930656+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:26:45.688883+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a5f8d3ed89e9aa5dbce5c41efb54e8985d4b410ed764385d009e6e42d2171c66", "fetched_at": "2026-08-28T04:05:32.930656+00:00", "kind": "readme", "missing": false, "url": "https://github.com/graypegg/chromatism"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.930656+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.930656+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:26:45.688883+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a5f8d3ed89e9aa5dbce5c41efb54e8985d4b410ed764385d009e6e42d2171c66", "fetched_at": "2026-08-28T04:05:32.930656+00:00", "kind": "readme", "missing": false, "url": "https://github.com/graypegg/chromatism"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:26:45.688883+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a5f8d3ed89e9aa5dbce5c41efb54e8985d4b410ed764385d009e6e42d2171c66", "fetched_at": "2026-08-28T04:05:32.930656+00:00", "kind": "readme", "missing": false, "url": "https://github.com/graypegg/chromatism"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:26:45.688883+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a5f8d3ed89e9aa5dbce5c41efb54e8985d4b410ed764385d009e6e42d2171c66", "fetched_at": "2026-08-28T04:05:32.930656+00:00", "kind": "readme", "missing": false, "url": "https://github.com/graypegg/chromatism"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:26:45.688883+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a5f8d3ed89e9aa5dbce5c41efb54e8985d4b410ed764385d009e6e42d2171c66", "fetched_at": "2026-08-28T04:05:32.930656+00:00", "kind": "readme", "missing": false, "url": "https://github.com/graypegg/chromatism"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4022, "days_push": 907, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}