How to contribute
You can contribute to the HDS in many ways. Before you start contributing to HDS, read the following guide so we can make the most out of your contribution.
Ways to contribute to HDS:
- Discuss HDS in Slack channel #designsystem (Only for City of Helsinki staff)
- Attend HDS demo events to get to know new features and ask questions, contact for invite
- Contact HDS team to see how we can help and collaborate
- Propose a new component, pattern, or update to the documentation
- Give feedback and report bugs
- Send a pull request
Update documentation
Contact HDS team or send in a pull request.
Propose a new pattern
Take a look at existing patterns and contact HDS team. You can also send in a pull request.
New components
Note that every component added to HDS requires these three parts:
- Design
- Documentation
- Code
You may contribute in any part of these but all three parts have to be implemented and validated by HDS team before a component can be released. More detailed guide for developers can be found in the HDS Github repository.
Tools needed
Depending on the feature you want to be working on, you will need access to at least some of these tools:
- Figma
- City of Helsinki organisation in Figma
- City of Helsinki Slack (channel: #designsystem)
- HDS GitHub repository
Contribution process
When faced with a need for a component or feature, you can ask yourself a few simple questions to decide whether you should propose a new component or feature to be added in HDS, or design a custom implementation:
1. Find out does it already exist?
Before you start working or proposing a new component, it is important to check whether it already exists in HDS or in our roadmap.
- Check if it exists in HDS components.
- Check if it exists on HDS roadmap.
- Check if someone else has already started working on a similar issue.
2. If not, find out how easily could a existing component be altered to fulfill new requirements?
Go through the list of existing HDS components. See if some of the components could be slightly altered to suit your needs while still fulfilling existing requirements. If yes, move on to making a proposal for the change.
3. If not, find out if is this component something that is needed in several projects?
Think outside of the scope of your project. Can this component be utilized in other projects as well? If not, could you make it something more generic to match the needs of other projects? Discuss with other projects and the community.