Contributing to Baklava Design System ๐ŸŽจ

December 23, 2024 ยท View on GitHub

Welcome to Baklava! We're excited that you're interested in contributing. This guide will help you get started with making contributions to our design system.

Baklava Design System

Ways to Contribute ๐Ÿš€

There are several ways you can contribute to Baklava:

  • ๐Ÿ› Fix Bugs: Help us squash bugs in the codebase
  • โœจ Add Features: Implement new components or enhance existing ones
  • ๐Ÿ“ Improve Docs: Make our documentation clearer and more helpful
  • ๐Ÿ’ก Share Ideas: Suggest improvements to our design system

Getting Started ๐ŸŒŸ

1. Creating an Issue ๐Ÿ“‹

Found a bug or have a suggestion? Create an issue!

Creating an Issue

Tips for a great issue:

  • Clearly describe what you observed
  • Include steps to reproduce (for bugs)
  • Add screenshots if relevant
  • Use our issue templates
  • Share any relevant context or examples

๐Ÿ’ฌ For questions about using Baklava, please use our discussion board.

2. Making a Pull Request ๐Ÿ”„

If you notice a problem in our repository (whether it's in the code or docs) and are able to fix it, follow these steps:

  1. Fork the repository
  2. Create your feature branch
  3. Make your changes
  4. Submit a pull request

PR Process Need help? Check out the GitHub documentation on creating PRs.

Contribution Guidelines โœ…

1. Coding Conventions ๐Ÿ’ป

We maintain strict code quality standards:

  • Run npm run lint before submitting your changes
  • Follow our code style guidelines
  • Ensure your code syncs with our current codebase style
  • Fix any linting errors before submitting

2. Test Coverage Requirements ๐Ÿงช

We maintain 100% code coverage:

  • Write unit tests for all new code
  • Run npm test to check coverage
  • Review the coverage folder for detailed reports
  • Tests run automatically on commit
  • PRs will fail if coverage drops below 100%

3. Commit Message Guidelines ๐Ÿ“

Our release process is automated:

  • Release versions are generated from commit messages
  • Release notes are automatically created
  • Follow our specific commit message format
  • Each commit should be meaningful and descriptive

4. Design Review Process ๐ŸŽจ

We protect our visual consistency:

  • Automated visual regression tests run on each PR
  • Changes affecting component visuals require design review
  • Design team must approve visual changes
  • Approved changes become reference for future work
  • Non-visual changes skip design review automatically

5. RTL Support Requirements ๐ŸŒ

All components must support Right-to-Left (RTL) languages:

  1. Use --bl-text-x-direction CSS property for transformations
  2. Implement CSS logical properties:
/* โœ… Do this */
margin-inline-start: 1rem;
padding-inline-end: 1rem;

/* โŒ Not this */
margin-left: 1rem;
padding-right: 1rem;
  1. Use inset with logical values for positioning

6. PR Review Requirements ๐Ÿ‘ฅ

Every PR must meet these criteria:

  • At least one core contributor approval
  • Detailed PR description
  • All automated checks passing
  • Documentation updates if needed
  • Test coverage requirements met

Need Help? ๐Ÿ’ฌ

Thank you for contributing to Baklava! ๐Ÿ™