About this project
Marigold is a React implementation of the Marigold Design System, built on top of react-aria for accessible behaviour and Tailwind CSS for styling. The repository is a monorepo that covers the component library, theming, documentation and testing in one place.
What the repository contains
- Component and system source folders, built as packages; the CLI commands reference "components and theme packages" as build targets, and the published npm package is `@marigold/components`.
- Theme packages, built through a dedicated `pnpm build:themes` task, so a single component set can be paired with different theme outputs.
- A documentation app built with Next.js, run in dev mode with `pnpm dev` (localhost:3000) and in production mode with `pnpm start`. It includes generated component prop tables via `pnpm build:component-props` and a "registry" task.
- A Storybook workspace started with `pnpm sb` on localhost:6006, plus Storybook-based component tests (`pnpm test:sb`) and a Storybook build task.
Tooling and quality checks
TypeScript is used throughout, with `pnpm typecheck` building docs first and then running type checking without emit. Tests run on Vitest, including coverage and a CI-oriented variant. Linting is split between ESLint for code and Vale for documentation prose, and formatting is handled by Prettier with separate check and fix commands. A `clean` command removes build artifacts, dependencies and caches such as dist, .next, .turbo, coverage and storybook-static.
Releases
Releases are not performed locally: a GitHub Actions workflow runs the Changesets action on every push to main. It either opens a "release: version packages" pull request that consumes pending changesets, or, once merged, publishes the bumped packages to npm. Contributors add a changeset with `pnpm changeset` when a change should cause a version bump. Prereleases use Changesets pre mode recorded in `.changeset/pre.json`; the npm dist-tag is derived from its tag field, so `pnpm changeset pre enter rc` publishes to an "rc" tag instead of latest. The README notes two caveats: the prerelease counter follows the version in package.json rather than the tag, and switching channel leaves the previous dist-tag pinned at its last version, so it should be repointed or removed per package.
Getting started locally
Clone the repository, install dependencies with pnpm, and use the documented command table for development, building, testing, linting, formatting and type checking. The README points new users to the Marigold documentation site for installation instructions and to the release notes page for the latest changes.
The project is published under the MIT license. The README does not make claims about component counts, performance or adoption; those details would need to be checked against the documentation site and package registry.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.