Thank you for your interest in contributing to UIElement! Your contributions help improve the project and benefit the community. This guide outlines how to get involved.
- Code of Conduct
- How to Contribute
- Development Setup
- Coding Guidelines
- Commit Message Guidelines
- License
By participating in this project, you agree to abide by our Code of Conduct. Please ensure that all interactions remain respectful and constructive.
If you find a bug or have a feature request:
- Search the issue tracker to check if your issue has already been reported.
- If not, open a new issue and provide:
- A clear and descriptive title.
- Steps to reproduce the issue (if applicable).
- Expected vs. actual behavior.
- Screenshots or logs, if relevant.
We welcome feature suggestions! Before submitting a proposal:
- Check existing discussions and issues to see if your idea has been considered before.
- Provide a use case and explain why the feature is needed.
- If possible, include a rough implementation idea.
We love code contributions! To submit a pull request (PR):
- Fork the repository and clone it locally.
- Create a new branch (
feature/my-new-feature
orfix/bug-name
). - Make your changes, following our Coding Guidelines.
- Ensure all tests pass before committing.
- Write a clear commit message (see Commit Message Guidelines).
- Push your branch and open a pull request with:
- A brief description of your changes.
- Any related issue numbers (
Fixes #123
). - Screenshots (if UI changes are made).
To set up the project locally:
Install dependencies:
bun install
(UIElement uses Bun as its package manager and runtime.)
Run tests in watch mode:
bun run test:watch
Build the project:
bun run build
Start a development server for docs:
bun run serve:docs
To maintain a high-quality codebase, please follow these guidelines:
- Follow the project's existing coding style.
- Avoid unnecessary dependencies.
- Use functional programming principles where applicable.
- Prefer composition over inheritance.
- Make sure to lint your code (
bun run lint
) and all tests pass (bun run test:watch
).
We use conventional commits for clear history and automated changelogs.
Format:
type(scope): short description
[optional longer description]
Examples:
feat(ui): add new LazyLoad component
*fix(scheduler): resolve timing issue on initial load
docs: update documentation for Context API
Types:
feat
: New featurefix
: Bug fixdocs
: Documentation updatestyle
: Code style changes (no logic changes)refactor
: Code restructuring (no new features or bug fixes)test
: Adding or improving testschore
: Maintenance tasks (e.g., build system updates)
By contributing, you agree that your contributions will be licensed under the MIT License, unless otherwise stated.
Thank you for contributing to UIElement! 🚀