🌐 Live showcase: https://efureev.github.io/granularity/ ·
Monorepo for the @feugene/granularity design system — a Vue 3 package
with components, styles, and a UnoCSS preset that supports granular subpath exports.
The published packages:
@feugene/granularity0.40.0— Granularity design system package with Vue 3 components, consumed via the@feugene/unocss-preset-granularpreset.@feugene/granularity-charts0.11.0— Charts for the @feugene/granularity design system — own SVG, zero dependencies, drawn with theme tokens.@feugene/granularity-chrono0.10.0— Calendar, date and time components for the @feugene/granularity design system — no third-party date widget, no date library.@feugene/granularity-dashboard0.6.0— Widget grid for the @feugene/granularity design system — drag, resize, breakpoints and layout persistence, zero dependencies.@feugene/granularity-datasource0.1.2— List state for @feugene/granularity: sorting, filters, paging, URL sync and race-free fetching behind one composable.@feugene/granularity-devtools0.3.1— Vue DevTools panel for @feugene/granularity — where a prop value came from, the overlay layer stack and design-system warnings.@feugene/granularity-editor0.3.1— Rich-text editing for @feugene/granularity: a TipTap-backed GrRichText field with a design-system toolbar.@feugene/granularity-forms-schema0.4.0— Schema-driven forms for the @feugene/granularity design system — zod and JSON Schema into real form fields, zero dependencies.@feugene/granularity-media0.7.1— Media components for @feugene/granularity: image cropping, camera capture, code scanning and video playback.@feugene/granularity-test-kit0.8.1— Test gates for @feugene/granularity design-system packages — token, registry and defaults contracts as reusable factories.@feugene/unplugin-granularity0.7.1— 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.
- Node.js
>= 22 - Yarn
1.22.x(Classic, seepackageManagerin the rootpackage.json)
yarn install
yarn build:granularity # build the package
yarn test:granularity # run package tests
yarn dev:showcase # run the showcase locally- Packages are published to
npmand GitHub Packages by GitHub Actions. The core releases onv*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 withpackages/granularity/CHANGELOG.md. - See
CONTRIBUTING.mdfor the workflow.
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. Every package therefore declares
"license": "SEE LICENSE IN LICENSE" rather than an SPDX identifier. Read
LICENSE in full before adopting the packages.