Contributing to Takeoff UI
Thank you for your interest in contributing to the Takeoff UI Design System! Whether youβre a community contributor or a core team member, this guide will help you navigate our project structure, issue management, commit message guidelines, and pull request process.
Project Overviewβ
The Takeoff UI Design System is a monorepo built using:
- Core Web Components: Developed with Stencil.js (
@takeoff-ui/core
) - Monorepo Management: Managed with Turborepo (
turbo
) - Framework-Specific Targets:
@takeoff-ui/react
@takeoff-ui/vue
@takeoff-ui/angular
- Tailwind Plugin:
@takeoff-ui/tailwind
Directory Structure:
packages/
βββ core/ # Core web components
βββ react/ # React wrapper library
βββ vue/ # Vue wrapper library
βββ angular/ # Angular wrapper library
βββ tailwind/ # Tailwind plugin for the design system
Code Standardsβ
All contributions must follow our Coding Standards covering:
- Stencil.js component architecture
- Cross-framework compatibility
- Testing requirements (coverage)
- Design system variable usage
Issue Managementβ
We use GitHub Issues for bug reports and feature requests. Before opening a new issue, please search existing issues to avoid duplicates.
Available Issue Templatesβ
When you click New issue in our repo, choose one of the following templates (they live under .github/ISSUE_TEMPLATE/
):
- Bug Report
- New Feature Request
Follow the prompts in the template you select and fill in all required sections.
For Community Contributorsβ
Claim an Issueβ
- Issues will be labeled by the Core Team first.
- Look for issues which are not labeled as Core Team, available issues can be self-assigned when identified.
Branch Namingβ
Use the format:
{type}/{issue-number}-{short-description}
type
= feature, fix, docs, style, refactor, test, choreissue-number
= the GitHub issue number (e.g.123
)short-description
= brief, kebab-case summary
Example:
feature/123-add-loading-state
Creating a Pull Requestβ
- Push your branch to GitHub.
- Click Compare & pull request.
- Reference the issue in your PR title:
#123: Add loading state to Button component
- Fill out our PR template (youβll see it pre-populated).
For Core Teamβ
- Sprint Management
Maintain sprint assignments via GitHub Projects or through our corporate Jira environment (as configured). - Labeling & Milestones
Move issues between columns and update milestones as work progresses. - Release Notes
Tag PRs with version labels and draft release notes when closing a version cycle.
Commit Guidelinesβ
We follow a conventional-style commit format:
<type>(<scope>): <subject>
- type: feat, fix, docs, style, refactor, test, chore
- scope: affected package or area (e.g.
tk-button
,core
) - subject: short imperative description (β€ 75 chars)
Examples:
feat(tk-button): Add loading state animation
chore(deps): Bump stenciljs to v3.5.0
- Use imperative mood (βaddβ, βfixβ, βupdateβ)
- Capitalize the subject (no trailing period)
- If needed, include a body separated by a blank line
- Reference issues by number (e.g.
Closes #123
)
Pull Request Guidelinesβ
Our PR template will guide you through these sections:
### Description
Explain your changes in 1β2 sentences.
### Related Issue
Closes #123
### Testing Steps
1. Step 1
2. Step 2
### Screenshots

Make sure all CI checks pass and tests are up-to-date before requesting review.
Action Permissionsβ
Action | Community | Core Team |
---|---|---|
Create Issues | β | β |
Comment on Issues | β | β |
Assign Issues | β | β |
Approve & Merge PRs | β | β |
Manage Labels & Projects | β | β |
Contact the Teamβ
For general questions and discussion, please use GitHub Discussions:
You can also reach us by email at takeoffui@thy.com.
Thank you for helping us build a high-quality, cross-framework component library!