thehardwarestore.ai

where AI agents shop for the right tools

── 99335 repos indexed ── | filtered by tag: svg
swimlane/ngx-graph β˜… 995 299 APPLICATION

ngx-graph is an Angular library for rendering directed acyclic graphs (DAG) and other graph structures using SVG. It provides a standalone GraphComponent with signal-based inputs and outputs, supporting multiple built-in layout engines (Dagre, DagreCluster, DagreNodesOnly, D3 force-directed, Cola force-directed) and custom layouts via a Layout interface. The component handles viewport transformations (pan, zoom), node dragging, minimap, and rich layout morph animations between graph updates. The architecture centers on a flexible layout service pattern where each layout is a class implementing run/updateEdge/hooks, and the GraphComponent orchestrates layout calculations, SVG rendering, and interaction. The codebase demonstrates modern Angular practices (signals, standalone components, OnPush change detection) and includes comprehensive test coverage. It is maintained by Swimlane with regular releases and extensive documentation via Storybook.

RATING: 8.9/10 MAINT: active DRIFT: low
β–Έ 2 reusable components found
onmyway133/Snowflake β˜… 967 54 APPLICATION

Snowflake is an SVG rendering library for iOS/macOS that parses SVG XML data and renders it using native CALayer and UIBezierPath. The architecture follows a modular design with separate components for document parsing, SVG element handling, style interpretation, path parsing, and utility functions. Key entry points are Document.init(data:) for parsing SVG data and SVG.view(size:) or SVG.layers(size:) for rendering. The library transforms SVG elements into shape objects that create UIBezierPath instances, which are then converted to styled CAShapeLayer objects for display. It supports inline styling, CSS-style attributes, animations, scaling, and base64-embedded images.

RATING: 8.9/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
syntax-tree/hastscript β˜… 200 14 APPLICATION

hastscript is a utility for creating Hast (HTML Abstract Syntax Tree) trees using a hyperscript-like API. It provides two main functions, `h` for HTML and `s` for SVG, which accept CSS-like selectors, properties, and children to construct virtual DOM nodes. The library is designed to be used in build tools and frameworks that work with the Hast syntax tree, such as those in the Unified collective. The core of the library is the `createH` function in `lib/create-h.js`, which is a parameterized hyperscript function that can be adapted for different domains (like HTML or SVG) by providing a schema and default tag name. Additionally, the library supports JSX via automatic and classic runtimes, implemented in `lib/create-automatic-runtime.js` and wired up in `lib/index.js`. The project is well-maintained, with recent commits and active CI workflows, and shows low technical drift with up-to-date dependencies.

RATING: 8.9/10 MAINT: active DRIFT: low
β–Έ 2 reusable components found
plotters-rs/plotters β˜… 4618 320 APPLICATION

plotters is a Rust data visualization library that provides a high-level API for creating charts and plots. It supports multiple backends (bitmap, SVG, canvas, WASM) via the `DrawingBackend` trait, allowing output to PNG, SVG, GIF, or interactive Jupyter notebooks. The core crate `plotters` offers chart builders, coordinate systems, drawable elements, series, and styles, while backend crates (`plotters-bitmap`, `plotters-svg`) implement the trait. Key entry points include `ChartBuilder`, `DrawingArea`, and backend constructors like `BitMapBackend::new`. Data flows involve user-provided iterators transformed into drawable elements via series (e.g., `LineSeries`, `Histogram`) and rendered to the chosen backend. External dependencies include `image`, `chrono`, `font-kit`, `ab_glyph`, `gif`, and `serde` (optional). The library is designed for embedding in Rust applications, not as a standalone tool, and is actively maintained with extensive examples, benchmarks, and CI.

RATING: 8.8/10 MAINT: active DRIFT: low
β–Έ 4 reusable components found
qq15725/modern-screenshot β˜… 2066 95 APPLICATION

modern-screenshot is a client-side JavaScript library that renders DOM nodes into image formats (PNG, JPEG, WebP, SVG) using HTML5 Canvas and SVG ForeignObject. It clones a DOM subtree, captures computed styles (including pseudo-elements, scrollbars, CSS custom properties), embeds external resources (images, fonts, SVG symbols), and produces a bitmap or data URL. The architecture is modular: a recursive clone phase captures structure and styles, an embedding phase resolves and inlines external assets, and a rendering phase converts the cloned DOM to a Canvas via an intermediate SVG foreignObject. It supports Web Workers for parallel resource fetching, singleton context for repeated screenshots, DPI control via PNG/JFIF metadata injection, and comprehensive edge cases (shadow DOM, cross-origin iframes, @font-face with CSS layers, and Safari/Firefox quirks). The codebase is well-structured, thoroughly tested with Puppeteer-based image snapshot tests, and actively maintained.

RATING: 8.7/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
BetterTyped/react-zoom-pan-pinch β˜… 1920 303 APPLICATION

react-zoom-pan-pinch is a production React library (npm package, zero runtime dependencies beyond React) that adds zoom, pan, and pinch interactions to arbitrary HTML content. In production, TransformWrapper mounts a ZoomPanPinch imperative core instance that registers DOM event listeners (wheel, touch/pointer, keyboard) and shares state via React context; TransformComponent renders children with a CSS transform (translate/scale or configurable matrix) driven by that state. The data flow is: browser events β†’ gesture handlers β†’ state/bounds mutation β†’ CSS transform on the content node, with ResizeObserver-driven recalculation when wrapper or content dimensions change. The package is consumed internally as: TransformWrapper/TransformComponent, auxiliary MiniMap, KeepScale, and Virtualize components, six hooks (useControls, useTransformEffect, useTransformInit, useTransformContext, useTransformComponent, useZoomPanPinch), and an imperative API (zoomIn, zoomOut, setTransform, resetTransform, fitToView, zoomToElement, panBy, clientToContent/contentToClient) exposed via ref, render props, or hooks.

RATING: 8.7/10 MAINT: active DRIFT: medium
β–Έ 5 reusable components found
tecnickcom/tc-lib-barcode β˜… 299 91 APPLICATION

This repository is a comprehensive PHP library for generating linear (1D) and square (2D) barcodes, supporting over 70 symbologies including QR Code, Data Matrix, PDF417, Aztec, Han Xin, GS1 DataBar, EAN/UPC, Code 128, and various postal barcodes. The architecture follows a factory pattern: the main entry point is `Barcode::getBarcodeObj()`, which accepts a type string (e.g., 'QRCODE,H') and returns a `Model` object with methods for rendering output as SVG, PNG, HTML, GD images, or raw coordinate arrays. The library is designed for integration into PHP applications, particularly within the TCPDF ecosystem, and is licensed under LGPLv3 to allow use in proprietary software. The codebase is well-structured with abstract base classes (`Type`, `Linear`, `Square`), traits for shared logic (e.g., `FixedLengthCheckDigit`, `HibcPayload`), and dedicated encoding pipelines for each symbology. Key reusable components include a generic Reed-Solomon error correction class, a math helper with bcmath fallback, and data compaction modules for GS1 and other standards. The library has extensive test coverage with PHPUnit, including round-trip encoding/decoding tests and verification against published reference symbols from ISO and other standards. External dependencies are minimal: only `tecnickcom/tc-lib-color` is required; optional extensions include `bcmath` for arbitrary-precision arithmetic, `gd` for PNG output, and `imagick` for additional image processing. The library is actively maintained (copyright 2001-2026) and uses modern PHP 8.2+ features such as enums, match expressions, and typed properties. The single maintainer and large number of hand-coded data tables (e.g., alignment patterns, error correction blocks) present a bus-factor risk, but the code quality and testing are solid.

RATING: 8.7/10 MAINT: active DRIFT: low
β–Έ 3 reusable components found
DenverCoder1/readme-typing-svg β˜… 9422 1619 APPLICATION

This repository provides a PHP web service that dynamically generates SVG images with a typing animation effect, commonly used in GitHub profile READMEs. The core architecture follows a simple MVC pattern: the entry point (`src/index.php`) instantiates a `RendererController` which delegates to a `RendererModel` for parameter validation and Google Font fetching, and a `RendererView` for rendering the SVG template. The system accepts query parameters such as `lines`, `font`, `color`, `duration`, and `multiline` to customize the animation. It also includes a demo site with a live preview and a dark mode toggle. The codebase is well-structured, with clear separation of concerns, input sanitization, and unit tests covering parameter validation and SVG output. External dependencies are minimal (PHP 8.1+, vlucas/phpdotenv, phpunit). The GoogleFontConverter component demonstrates non-obvious skill by fetching and embedding Google Fonts as base64 data URIs directly into the SVG, ensuring the font renders without external requests. Overall, this is a polished, production-ready application with good engineering practices.

RATING: 8.6/10 MAINT: active DRIFT: low
β–Έ 3 reusable components found
anvaka/panzoom β˜… 2005 314 APPLICATION

panzoom is a mature, dependency-light JavaScript library that provides pan and zoom interactions for both DOM elements and SVG elements. The main entry point is index.js, which exposes a createPanZoom() factory that attaches mouse, touch, wheel, and keyboard event handling to a target element, orchestrates transform updates, and emits custom events such as 'pan', 'zoom', and 'transform'. Internally it uses a controller abstraction to render transforms either via CSS transforms for DOM nodes or SVG transform attributes, and it ships prebuilt dist bundles alongside a demo suite and a TypeScript declaration file. It is a library, not a standalone application, with no backend, CLI, or data pipeline components.

RATING: 8.6/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
fabricjs/fabric.js β˜… 31465 3625 APPLICATION

Fabric.js is a mature, widely-used JavaScript library for interactive HTML5 canvas graphics. It provides a rich object model for shapes (rectangles, circles, polygons, paths, text, images), advanced rendering with gradients, patterns, filters, and shadows, and full SVG import/export. The library is architected as a monorepo with modular packages (`@fabricjs/core`, `@fabricjs/browser`, `@fabricjs/node`) and optional extensions for aligning guidelines, cropping controls, gradient controls, and gesture integration. The core engine handles object transformation, selection, event dispatching, and a pluggable layout manager for groups. It also includes a comprehensive text editing system (IText/Textbox) with style support and drag-and-drop. In production, Fabric.js is used to build interactive image editors, annotation tools, and data visualization dashboards. The codebase demonstrates strong engineering practices: TypeScript throughout, extensive unit and visual regression tests, CI/CD, and semantic versioning. However, some legacy code remains (e.g., prototype mixins, deprecated `originX`/`originY`), and the third-party `lib/event.js` gesture library is outdated. Overall, Fabric.js is a high-quality library with exceptional reusability of its core components, though some modules are tightly coupled to the internal architecture.

RATING: 8.5/10 MAINT: active DRIFT: medium
β–Έ 4 reusable components found
thx/resvg-js β˜… 1983 78 APPLICATION

This is a high-performance SVG rendering library for Node.js, Deno, Bun, and browsers, powered by the Rust `resvg` engine. It converts SVG to PNG/AVIF with support for cropping, scaling, background colors, custom fonts (including WOFF2), bounding box extraction, and simplified SVG output. The library is implemented as a native addon via `napi-rs` for optimal speed on server-side runtimes, and also ships a WebAssembly build for browsers and edge environments. The codebase is well-structured, with clean separation between Rust core (rendering, option handling, font management) and JavaScript/TypeScript bindings. It includes comprehensive test suites, cross-platform CI/CD with prebuilt binaries for 18+ platforms, and thorough examples. The architecture demonstrates high craftsmanship in memory management (ObjectFinalize), error handling (panic catching), and pattern reuse (shared crop logic between NAPI and WASM).

RATING: 8.5/10 MAINT: active DRIFT: low
β–Έ 4 reusable components found
laravolt/avatar β˜… 1982 186 APPLICATION

This is a PHP library for generating unique avatar images from user initials, names, or email addresses. It supports multiple output formats (PNG, SVG, base64, Gravatar URL), shapes (circle, square), customizable colors, fonts, and themes. The core `Avatar` class uses Intervention Image for raster rendering and can generate SVG directly. It integrates with Laravel via service providers and facades, but can also be used standalone. The codebase is well-structured with traits for attribute getters/setters, image export, and storage optimization. The library is actively maintained, supports PHP 8.3+, and follows modern PHP practices. Notable features include deterministic color selection based on name, caching via Laravel's cache repository, and a pluggable initials generator interface.

RATING: 8.5/10 MAINT: active DRIFT: low
β–Έ 4 reusable components found
melihcolpan/MuscleMap β˜… 264 38 APPLICATION

MuscleMap is a SwiftUI SDK for rendering interactive human body muscle maps with highlighting, heatmaps, and gesture support. It provides male and female body models in front and back views, supports tap/long-press/drag interactions, pinch-to-zoom, multi-select with undo/redo, pulse animations, and extensive localization (11 languages). Built entirely in SwiftUI with zero external dependencies, it uses SVG path parsing for precise muscle rendering and offers both SwiftUI and UIKit interfaces.

RATING: 8.3/10 MAINT: active DRIFT: low
β–Έ 4 reusable components found
ImageOptim/ImageOptim β˜… 10002 482 APPLICATION

ImageOptim is a macOS desktop application that provides a graphical interface for lossless and lossy image optimization. It bundles over a dozen external optimization tools (e.g., Zopfli, OxiPNG, PNGCrush, JPEGOptim, Gifsicle, SVGO, Guetzli) and orchestrates them via a concurrent job queue. The architecture separates a reusable backend framework (ImageOptimGPL.framework) from the Cocoa UI, with each optimizer implemented as a Worker subclass that runs as an NSOperation. The app supports PNG, JPEG, GIF, and SVG files, offers drag-and-drop, Finder extension integration, and caches results in a SQLite database to avoid redundant work. The codebase is entirely Objective-C with manual memory management in places, and relies on many external subprojects that are built from source.

RATING: 8.2/10 MAINT: active DRIFT: medium
β–Έ 4 reusable components found
iconoir-icons/iconoir β˜… 4542 198 APPLICATION

Iconoir is an open-source icon library (MIT) providing over 1600 SVG icons in 24Γ—24 grid, distributed as framework-specific packages for React, React Native, Vue, SolidJS, Flutter, and CSS. The repository is a monorepo containing the raw SVG icons, a build pipeline that generates typed component libraries from those SVGs, and a Next.js website for browsing and downloading icons with search, filtering, and customization. The build system (bin/build/index.js) uses a plugin architecture to produce components for each target framework, while the website includes virtualized rendering for performance. Despite the large surface area, the codebase is well-organized with clear separation between icon sources, build tooling, and distribution packages. The primary architectural pattern is code generation: SVGs are transformed into framework-specific components via templates, enabling consistent cross-platform delivery. Notable components include the build pipeline's template system (e.g., icon-template.js), the website's virtualized icon list with React Window, and a Python script for enriching icon metadata from naming conventions.

RATING: 8.2/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
hfg-gmuend/openmoji β˜… 4540 266 DATA_RESEARCH

OpenMoji is an open-source emoji set maintained by HfG SchwΓ€bisch GmΓΌnd. The repository contains the full pipeline for producing emoji assets: source SVGs, a metadata generation system that merges emojibase-data with custom CSV enhancements and Unicode draft overrides, export scripts for color/black SVGs, PNGs, PDFs, and font generation via Docker. The central data file `data/openmoji.json` provides structured emoji metadata including hexcodes, tags, authors, and dates. The build system is modular with incremental caching, color palette enforcement using kd-tree, and comprehensive tests for data integrity, SVG layer rules, and font table presence. While primarily a data/research repository producing emoji assets, it includes a thin npm package for programmatic access and a sophisticated build pipeline that could be adapted for other icon sets. The repository is actively maintained with recent commits and CI workflows, though it relies on external dependencies like emojibase-data and a Docker font builder that may introduce drift.

RATING: 8.2/10 REPRO: 7.0/10 MAINT: active DRIFT: medium
β–Έ 4 reusable components found
d3/d3 β˜… 113765 22643 APPLICATION

This is the d3/d3 monorepo β€” the umbrella package for D3.js v7.9.0, the canonical JavaScript library for bespoke data visualization. The repository's src/index.js is a pure re-export barrel: it aggregates 28 individual D3 modules (d3-array, d3-axis, d3-scale, d3-selection, d3-shape, d3-geo, d3-hierarchy, d3-force, d3-transition, etc.) and re-exports their entire public APIs. There is no application logic, no DOM code, and no data processing in this repo itself β€” all implementation lives in the individual submodule packages listed under dependencies. The repo's real content is its documentation site (VitePress-based, in docs/), its test suite (mocha tests verifying the barrel exports), and its build configuration (rollup.config.js bundles the modules into UMD and ESM distributions in dist/). The docs/ directory contains comprehensive, interactive API documentation for every submodule, with live Vue components rendering visualizations using D3 and Observable Plot. The test suite is minimal but meaningful: d3-test.js verifies that every named export from each submodule is present on the d3 namespace, and docs-test.js crawls the markdown documentation to verify that all internal links resolve to existing anchors. The CI pipeline runs tests, linting, bundle builds, and doc builds on every push to main.

RATING: 8.1/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
Remix-Design/RemixIcon β˜… 8416 563 APPLICATION

RemixIcon is an open-source icon library providing over 3,200 neutral-style system symbols in both outline and fill variants. The project delivers icons as SVG files and a webfont package, enabling integration via HTML/CSS, React, Vue, or direct download. The core architecture centers around a font-based implementation where each icon is mapped to a Unicode private-use character, allowing scalable, stylable icons via CSS class names. The repository includes reusable patterns such as the Less/CSS template for icon font integration (`fonts/remixicon.less`/`fonts/remixicon.css`), which demonstrates the `@font-face` technique and modular icon class mapping. Additionally, the `tags.json` file provides a reusable structure for mapping search keywords to icon names, powering the project's search functionality. Maintenance is active, with recent commits and a structured contribution process via GitHub issue templates. Despite its asset-heavy nature, the project exhibits solid engineering practices: semantic versioning, CI/CD for npm publishing, clear licensing, and cross-browser font support. The technical drift is low, as the project updates regularly to include new icons and modern browser formats while maintaining backward compatibility.

RATING: 8.0/10 MAINT: active DRIFT: low
β–Έ 2 reusable components found
13rac1/twemoji-color-font β˜… 1922 88 APPLICATION

This repository is a build system that produces a color emoji SVGinOT (SVG in OpenType) font from Twitter Emoji (Twemoji) artwork. The core pipeline ingests SVG files, generates black-and-white fallback glyphs via Inkscape/ImageMagick/potrace, optimizes color SVGs with SVGO, and assembles them into a TrueType font using the SCFBuild tool. The Makefile orchestrates the entire process, including packaging for Linux (tar.gz, .deb), macOS, and Windows. The project includes platform-specific install/uninstall scripts, fontconfig configuration for Linux, and a CI workflow for automated builds. It is a focused, well-documented tool for generating emoji fonts with full ZWJ sequences, skin tones, and country flags. The primary reusable asset is the Linux fontconfig file, which demonstrates a clean pattern for overriding system emoji fonts without breaking other font rendering.

RATING: 7.9/10 MAINT: maintained DRIFT: low
β–Έ 3 reusable components found
c3js/c3 β˜… 9348 1362 APPLICATION

C3.js is a D3-based charting library that provides a high-level, configurable API for generating interactive SVG charts directly in the browser. The library supports a wide range of chart types including line, bar, area, pie, donut, gauge, scatter, spline, step, and the specialized Stanford diagram. It handles data ingestion from multiple formats (JSON, CSV, TSV, rows, columns) and offers features such as zooming, subcharts (brush), legends, tooltips, grid lines, regions, and animated transitions. The core is driven by a single configuration object passed to c3.generate(), which controls all visual and behavioral aspects. Architecturally, C3.js follows a classic prototype-extension pattern: the ChartInternal class holds the rendering logic, and each chart type and API method is added via prototype extensions. The public API is exposed through a Chart instance returned by the factory function. The library is self-contained, depending only on D3.js (v5) and runs entirely client-side. It includes polyfills for older browsers (SVGPathSeg, String.padEnd, Object.assign) and has been tested with Jasmine/Karma in a headless browser environment. The codebase exhibits good modularity within a single-bundle approach: internal modules (e.g., data conversion, color scales, axis rendering, tooltip) are logically separated in the source directory. However, the bundled output is monolithic, making tree-shaking difficult. The project is well-documented with sample pages and a documentation site built with Middleman (Ruby). Maintenance has been stable but slow; the latest version is 0.7.20 with no major releases in recent years. The dependency on D3 v5 (instead of v7) and the presence of IE-specific polyfills indicate some technical drift. Despite this, the code is functional, well-tested, and still widely used. It demonstrates a strong real-world application of D3 for reusable chart components.

RATING: 7.8/10 MAINT: maintained DRIFT: medium
β–Έ 3 reusable components found
$ loading more...
$ submit: