Skip to content

Latest commit

 

History

766 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

granularity

🌐 Live showcase: https://efureev.github.io/granularity/  ·  Showcase npm

Monorepo for the @feugene/granularity design system — a Vue 3 package with components, styles and granular subpath exports, built and consumed through the @feugene/granum pipeline (granum 0.2 or newer, plus a utility engine such as @feugene/granum-engine-wind that the application supplies).

Contents

The published packages:

  • @feugene/granularity 1.0.2 — Granularity design system package with Vue 3 components, consumed via the @feugene/granum build pipeline.
  • @feugene/granularity-charts 1.0.1 — Charts for the @feugene/granularity design system — own SVG, zero dependencies, drawn with theme tokens.
  • @feugene/granularity-chrono 1.0.1 — Calendar, date and time components for the @feugene/granularity design system — no third-party date widget, no date library.
  • @feugene/granularity-code 1.0.1 — Code surfaces for @feugene/granularity: view, edit and diff — the viewer and the diff carry no dependencies at all.
  • @feugene/granularity-dashboard 1.0.1 — Widget grid for the @feugene/granularity design system — drag, resize, breakpoints and layout persistence, zero dependencies.
  • @feugene/granularity-datasource 0.1.2 — List state for @feugene/granularity: sorting, filters, paging, URL sync and race-free fetching behind one composable.
  • @feugene/granularity-devtools 1.0.0 — Vue DevTools panel for @feugene/granularity — where a prop value came from, the overlay layer stack and design-system warnings.
  • @feugene/granularity-editor 1.0.1 — Rich-text editing for @feugene/granularity: a TipTap-backed GrRichText field with a design-system toolbar.
  • @feugene/granularity-forms-schema 1.0.1 — Schema-driven forms for the @feugene/granularity design system — zod and JSON Schema into real form fields, zero dependencies.
  • @feugene/granularity-media 1.0.1 — Media components for @feugene/granularity: image cropping, camera capture, code scanning and video playback.
  • @feugene/granularity-test-kit 1.0.0 — Test gates for @feugene/granularity design-system packages — token, registry and defaults contracts as reusable factories.
  • @feugene/unplugin-granularity 1.0.0 — unplugin-vue-components resolver for @feugene/granularity — granular auto-import for components and directives.

Not published, and living in apps/:

  • apps/showcase — live component showcase, deployed to GitHub Pages.
  • apps/playground* — sandboxes for integration scenarios (not published, not covered by CI).

Which component do I reach for? docs/COMPONENT-MAP.md answers that across every package at once: forks that ask the distinguishing question first, then an alphabetical index of every component across all packages.

Requirements

  • Node.js >= 22
  • Yarn 1.22.x (Classic, see packageManager in the root package.json)

Quick start

yarn install
yarn build:granularity     # build the package
yarn test:granularity      # run package tests
yarn dev:showcase          # run the showcase locally

Release

  • Packages are published to npm and GitHub Packages by GitHub Actions. The core releases on v* tags; every companion has its own tag and its own cycle — granularity-charts-v*, granularity-chrono-v*, granularity-dashboard-v*, granularity-forms-schema-v*, granularity-test-kit-v*, unplugin-granularity-v*.
  • There is no changelog at the repository root: each package keeps its own, next to its package.json. Start with packages/granularity/CHANGELOG.md.
  • See CONTRIBUTING.md for the workflow.

License

Apache License 2.0 with an Additional Ethical Use Clause © Evgeniy Fureev

The clause adds a use restriction on top of Apache-2.0, so this is a source-available license and not an OSI-approved open-source one. Read LICENSE in full before adopting the packages.

For a licence register, every package declares the SPDX expression LicenseRef-Granularity-EUC-1.1. A plain-language explanation for legal and compliance teams — what the clause does and does not restrict, and answers for vendor questionnaires — is at https://granularity.tech/legal/licensing.

Contributions require a contributor licence agreement. You keep every right in your contribution; it grants a non-exclusive licence, not ownership.

Releases

Packages

Contributors

Languages