Contributing

Thank you for your interest in contributing to Aviris UI! This guide will help you get started with contributing to the project.

Development Setup

First, fork and clone the repository:

Clone Repository

git clone https://github.com/yourusername/aviris.git

Install dependencies and build the project:

Install & Build

pnpm install
pnpm build

Project Structure

The project is organized as a monorepo with the following structure:

Project Structure

aviris/
├── apps/
│   ├── docs/     # Documentation site
│   └── www/      # Marketing site
├── packages/
│   └── ui/       # Core UI components
└── examples/     # Example applications

Development Workflow

1. Create a new branch for your feature or fix:

Create Branch

git checkout -b feat/new-component

2. Start the development server:

Development Server

pnpm dev

3. Make your changes and test them thoroughly

4. Commit your changes following conventional commits:

Commit Changes

# Examples:
git commit -m "feat: add new button variant"
git commit -m "fix: resolve button focus state"
git commit -m "docs: update component usage examples"

Component Guidelines

When creating or modifying components:

  • Follow the existing component structure
  • Include proper TypeScript types
  • Add comprehensive tests
  • Update documentation
  • Ensure accessibility standards are met

Example component structure:

Component Template

import * as React from "react"
import { cn } from "@aviris/ui/lib/utils"

interface ComponentProps {
  // Props interface
}

export function Component({ className, ...props }: ComponentProps) {
  // Component implementation
}

Submit Your Contribution

When you're ready to submit your changes:

  1. Push your changes to your fork
  2. Create a pull request
  3. Fill out the pull request template
  4. Wait for review and address any feedback

Pull Request Checklist

  • ✓ Code follows style guidelines
  • ✓ Tests are passing
  • ✓ Documentation is updated
  • ✓ Commit messages follow convention
  • ✓ Changes are properly tested

Need Help?

If you need help or have questions:

  • Join our Discord community
  • Open a discussion on GitHub
  • Check existing issues and pull requests