Skip to content

Contributing Guide

Thanks for your interest in BreezeUI! This guide explains how to set up the repo, contribute code/docs, and what checks run before merging and publishing.

What you can contribute

  • Components and bug fixes in packages/vue
  • Documentation pages and demos in packages/docs
  • Playground demos in packages/playground

Prerequisites

  • Node.js 18+
  • pnpm (workspace uses pnpm)

Quick start

bash
pnpm install

# Docs (VitePress)
pnpm run docs:dev

# Playground (used for local component debugging)
pnpm run dev

Project structure

  • packages/vue: BreezeUI component library source
  • packages/docs: VitePress site (English at /, Chinese at /zh/)
  • packages/playground: local playground for component demos

Working on components

  1. Make changes in packages/vue/src/<component>/
  2. Ensure the component is exported from packages/vue/src/index.ts if you add a new one
  3. Validate in the playground: pnpm run dev

Working on docs

  • English docs: packages/docs/guide/*, packages/docs/components/*
  • Chinese docs: packages/docs/zh/guide/*, packages/docs/zh/components/*
  • Run locally: pnpm run docs:dev

Code style and checks

We use ESLint + Prettier. You can run them manually:

bash
pnpm run lint
pnpm run format

Tests and type checking

bash
pnpm run test
pnpm run test:watch
pnpm run type-check
pnpm run build

Git hooks (Husky)

  • pre-commit: runs lint-staged to format/lint staged files
  • pre-push: runs unit tests and type-check
  • development branch: skips the checks for rapid iteration

Pull requests

  • Create a feature branch from the default branch and open a PR
  • Keep changes focused and include docs/demos when updating a component
  • Make sure lint, type-check, test, and build pass before requesting review

Publishing (maintainers)

  • Local publishing runs prepublishOnly (tests + build) before publishing.
  • CI publishing is triggered by pushing to master and only publishes packages whose package.json version changed. Commits containing skip ci skip publishing.