Before contributing, please read and follow our Code of Conduct.
Ways to Contribute
Report Bugs
Found an issue? Report it on GitHub
Request Features
Have an idea? Share your proposal
Submit Code
Fix bugs or implement features
Improve Docs
Help make documentation better
Answer Questions
Help others on Stack Overflow
Review PRs
Review and test pull requests
Got a Question?
For questions, use these channels:- Stack Overflow: Tag questions with
angular-material2 - Gitter Chat: Join our gitter channel
- GitHub Discussions: For design discussions
Why Stack Overflow?
Thousands of people willing to help
Questions and answers stay available publicly
Voting system surfaces the best answers
Searchable for others with similar issues
Found a Bug?
If you find a bug in the source code or a mistake in the documentation, you can help by submitting an issue to our GitHub Repository.Issue Requirements
Search for existing issues
Before creating a new issue, search the issue tracker to see if it’s already been reported.
Create a reproduction
Provide a live reproduction using:
Our team has limited resources. Reproductions allow us to quickly diagnose issues.
Provide details
Include in your issue:
Clear description of the issue and expected behavior
Angular and Material versions affected (e.g., 21.0.0)
Which browsers are affected? All or specific ones?
Unambiguous steps to reproduce the error
Visual issues benefit greatly from screenshots
Link to similar issues if any exist
Submit the issue
Create a new issue with all the information.
Want a Feature?
You can request a new feature by submitting an issue to our GitHub Repository.- Major Features
- Small Features
For significant features:
- Open an issue with your proposal
- Outline your approach and discuss with the team
- Wait for approval before starting implementation
- Submit a PR once approved
This helps coordinate efforts and ensures your work can be accepted.
Submitting a Pull Request
Sign the CLA
Before we can accept your PR, you must sign the Contributor License Agreement:
- Individuals: Simple click-through form
- Corporations: Print, sign, and submit
Make your changes
Create your patch
Include appropriate test cases
Follow our Coding Rules
Test with supported browsers and screen readers
Run the full test suite
Commit your changes
Create the PR
- Go to GitHub and create a pull request to
components:main - Fill out the PR template completely
- Link related issues using “Fixes #123” syntax
Commit Message Format
Each commit message consists of a header, body, and footer:Header
The header is mandatory and must follow this format:Type of change:
feat- New featurefix- Bug fixdocs- Documentation onlyrefactor- Code refactoringperf- Performance improvementtest- Test improvementsbuild- Build system changesci- CI changes
Which package is affected:
material- Material componentscdk- Component Dev Kitmaterial-experimental- Experimental features
Brief description:
- Use imperative, present tense: “change” not “changed”
- Don’t capitalize first letter
- No period at the end
- Max 100 characters
Body
The body should include:- Motivation for the change
- Contrast with previous behavior
- Use imperative, present tense
Footer
The footer should contain:- Breaking Changes: Start with
BREAKING CHANGE: - Deprecations: Start with
DEPRECATED: - Issue references:
Fixes #123,Closes #456
Coding Rules
To ensure consistency throughout the source code, keep these rules in mind:Write Tests
All features or bug fixes must be tested
Document APIs
All public API methods must be documented
Follow Style Guide
100 Column Limit
Wrap all code at 100 characters
After Your PR is Merged
Development Setup
See the Developer Environment guide for detailed setup instructions. Quick start:Review Process
Approval
PRs need approval from:
- One team member (small changes)
- Two team members (significant changes)
Recognition
All contributors are recognized in release notes and the contributors list.
First Contribution
Get a special “first contribution” badge
Frequent Contributors
Become a recognized community member
Major Features
Featured in release announcements
Maintainer
Outstanding contributors may be invited as maintainers
Resources
Coding Standards
Detailed coding guidelines
Dev Environment
Setup your development environment
GitHub Repo
Angular Components repository
Issue Tracker
Report and track issues