Skip to content
CAI
Software that uses CAICheck a score

feathericons/feather

51.8

Adequate · 25 September 2026

193

lines of production code

JavaScript

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Features

Add interactive HTML example for Feather icons

A new example page (examples/index.html) has been added to demonstrate how to use Feather icons in a web page. The page includes three icons (eye, heart, and feather) and loads the Feather library via a CDN script, then initializes the icons using feather.replace(). This provides a concrete, runnable template for users to see how to integrate Feather icons into their own projects.

examples · high confidence

Introduce structured Icon class and replace() utility

The library now uses a dedicated \Icon\ class to manage SVG generation and attributes, providing a consistent API for rendering icons. A new \replace()\ function is introduced to automatically swap HTML elements with their corresponding SVG markup, simplifying integration. The previous \toSvg()\ function is marked as deprecated in favor of the new class-based approach.

src · high confidence

Removals

Removal of the legacy Feather webfont assets

The \webfont\ directory, including the \README.md\ and the \feather-webfont\ folder containing the CSS styles and SVG font definitions, has been removed. This eliminates the legacy webfont-based icon system, requiring users to adopt the current icon implementation instead.

webfont · high confidence

Behavioural changes

2 commits (0 fixes) modifying csh, psd

A change to existing behaviour in csh, psd — 2 commits, 2 files.

csh, psd · medium confidence · unverified

Feather icons library v4.29.2 release and build configuration

The release includes a fix for an issue where Feather would break when attempting to replace an icon using an invalid name. Additionally, the project now includes a new webpack configuration to build the UMD bundle for Node.js, alongside updated ESLint and Babel configurations to support modern JavaScript development workflows.

(repo-wide) · high confidence

Test coverage

Added tests for icon rendering, replacement, and SVG generation; New build scripts and test coverage for SVG processing.

Dependencies

Update dependency versions and lockfile

The project's \package.json\ and \package-lock.json\ have been updated to reflect current dependency versions. Notable updates include \core-js\ to \^3.1.3\ and \classnames\ to \^2.2.5\ as direct dependencies, alongside various devDependencies such as \eslint\ \^8.47.0\, \webpack\ \^4.8.3\, and \@changesets/cli\ \^2.26.2\. The lockfile has been regenerated to v2 format.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 40 → 52 (+12.0)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 70 → 70 (-0.5)
  • Architecture 69 (new)
  • Maturity 55 → 59 (+3.7)
  • Readiness 27 → 59 (+32.5)
  • Security 46 → 41 (-5.2)

Resolved (61)

  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • …and 41 more

New (128)

  • Coverage not measured — JavaScript/TypeScript suite
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • Critical CVE: [GHSA redacted] (package-lock.json)
  • …and 108 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

feathericons/feather was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 25 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 3dc050d97405062eba78aa57115c0a15c63abdaa — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-dd72cc24c749.