Ninosaurier 9e5d8ae075
CI / lint-and-format (push) Successful in 38s
CI / changeset-check (push) Successful in 31s
CI / unit-tests (push) Successful in 42s
CI / component-tests (push) Successful in 30s
CI / lint-and-format (pull_request) Successful in 32s
CI / changeset-check (pull_request) Successful in 29s
CI / unit-tests (pull_request) Successful in 41s
CI / component-tests (pull_request) Successful in 29s
build(scripts): add root-level pnpm run storybook script
Adds a storybook script to the root package.json that filters into
the luna-charts package, so Storybook can be launched directly from
the repository root instead of requiring a manual cd into
packages/luna-charts. Updates README.md to document the new command
as part of the standard developer workflow.

Closes #11.
2026-08-12 11:56:59 +02:00
2026-07-15 13:51:26 +02:00
2026-07-10 15:55:44 +02:00
2026-07-12 01:15:50 +02:00
2026-08-01 23:41:47 +02:00

LUNA Charts

LUNA Charts is a reusable, developer-friendly charting library designed to make accessible, WCAG-oriented data visualization the default rather than an afterthought.

Project status: Groundwork phase. Core architecture and tooling are in place; production-ready chart components (starting with BarChart) are still in development. See the Roadmap for details.

Preface & Repository Mirror Notice

Please be aware of our repository structure:

Important: All development, including issue tracking and contribution management, takes place exclusively on our self-hosted server. Issues and pull requests cannot be created or processed on this GitHub mirror. Please visit the original link above to report bugs or request features.

Why LUNA Charts

Most charting libraries treat accessibility as an add-on. LUNA Charts builds it in from the start:

  • Accessible by default — components are designed and tested against WCAG guidance from day one, not patched in afterward
  • Framework-agnostic — built as standard Web Components (Stencil), usable in React, Vue, Angular, Svelte, or plain HTML
  • SVG-based rendering — inspectable, stylable, and screen-reader-friendly output instead of an opaque canvas

Tech Stack

Area Technology
Component framework Stencil (compiles to standard Web Components)
Language TypeScript
Package manager pnpm (monorepo workspaces)
Unit & component testing Vitest, with Playwright as the browser provider
Accessibility testing axe-core
Documentation Starlight
Component explorer Storybook
Linting & formatting ESLint, Prettier
Release management Changesets

The full set of architecture decisions behind these choices is documented in docs/.../architecture/adr and the broader Architecture Development Method (ADM) documentation.

Project Structure

luna-charts/
│
├── packages/
│   └── luna-charts/        # The library itself (Stencil components, Storybook)
│
├── docs/                    # Architecture docs, ADRs, guides (Starlight)
│
├── examples/                # Usage examples (framework integrations)
│
├── .changeset/               # Release/versioning configuration
│
└── .github/                  # Community health files (Code of Conduct, etc.)

Getting Started

Prerequisites

  • Node.js >= 22.0.0
  • pnpm 11.11.0 (see devEngines in package.json; pnpm will be downloaded automatically via Corepack if missing)
  • Docker (required for running component/browser tests locally, see below)

Installation

git clone https://github.com/Ninosaurier/LUNA-Charts.git
cd luna-charts
pnpm install

or

git clone https://git.byting-pandas.ninja/Ninosaurier/LUNA-Charts.git
cd luna-charts
pnpm install

Common commands

Command Description
pnpm test:unit Run unit tests for the luna-charts package
pnpm test:component Run component/browser tests inside the containerized Playwright environment
pnpm test Run the full test suite (unit + component)
pnpm changeset Record a changeset for your change (required for any user-facing change)
pnpm run docs Start the documentation site locally (astroJS)
pnpm run storybook Start the storybook documentation

Component and browser tests run inside Docker (docker-compose.test.yaml) to guarantee a reproducible browser environment across all contributors and CI — you don't need Playwright browsers installed locally.

Documentation

  • Architecture documentation: see docs/ — includes the full Architecture Development Method (ADM) documentation (vision, business architecture, technology architecture, governance, migration planning) and all Architecture Decision Records (ADRs)
  • Contributing: see CONTRIBUTING.md
  • Code of Conduct: see .github/CODE_OF_CONDUCT.md

License

LUNA Charts is licensed under the GNU Lesser General Public License v3.0 (LGPL-3.0).

S
Description
LUNA Charts is a reusable, developer-friendly charting library designed to make accessible, WCAG-oriented data visualization the default rather than an afterthought.
https://byting-pandas.ninja/
Readme LGPL-3.0
848 KiB
2026-08-05 16:08:09 +00:00
Languages
TypeScript 80.4%
Dockerfile 8%
JavaScript 6.5%
HTML 4.8%
CSS 0.3%