Contributing Icons
Welcome! If you're contributing icons or symbols to the @adaptavant/eds-icons
package, please follow the guidelines below to ensure consistency, quality, and smooth integration into the Earth Design System.
Overview
The package is a collection of icons and symbols that are used in the Earth Design System and has two main categories:
- Icons - Common UI icons (e.g., add, arrow, notifications).
- Symbols - Brand-related graphics, such as logos (e.g., Google, Zoom).
Pre-requisites
Using corepack is suggested to manage your pnpm version. Otherwise make sure that you are using the node
and pnpm
versions listed under the engines
key in the root package.json
file ("node": "18.17.0"
and "pnpm": "8.10.2"
at the time of writing).
Installation
pnpm install
Preparing Your Asset
Please make sure the icon/symbol is available in the Earth Figma Library. Do not use icons from other Figma files, personal drafts, or third-party sources.
This ensures design consistency and is a required step for contributing to EDS icon library.
Missing an Icon?
Reach out to your Product Designer if the icon you need isn't available in the Earth Figma Library. They can evaluate and include it, if it aligns with design system standards.
File Format Requirements
- Export the icon as an SVG from Figma.
.png
or other raster formats are not allowed.
SVG Optimisation
Clean up SVGs using tools like SVGOMG and remove any pre-defined colors.
Naming Conventions
For Icons
File names must follow kebab-case with a "-icon" suffix. For example,
SVG File Name | Auto-generated Component Name |
---|---|
add-icon.svg | AddIcon |
notifications-off-icon.svg | NotificationsOffIcon |
For Symbols
File names must follow kebab-case with a "-color-icon" suffix. For example,
SVG File Name | Auto-generated Component Name |
---|---|
google-color-icon.svg | GoogleColorIcon |
google-calendar-color-icon.svg | GoogleCalendarColorIcon |
✅ Please ensure filenames are accurate, as these determine the final component name.
Directory Structure
The source svg files live in packages/svg-to-components
and will be auto-generated into the packages/icons
directory for usage.
packages
- svg-to-components
- icons
- icon-name-icon.svg
- symbols
- icon-name-color-icon.svg
Versioning
Package publishing has been configured using Changesets. Please review their documentation to familiarize yourself with the workflow.
View here for more information on how to add a changeset file.
Adding a changeset file
Run the following command:
pnpm changeset
Select eds-icons
from the list of packages, choose the appropriate SEMVER bump and describe your changes.
Changeset Content Format
---
'@adaptavant/eds-icons': patch or minor or major
---
Describe your changes here, this will be used to generate the changelog content.
For example, you can describe your changes as follows:
---
'@adaptavant/eds-icons': minor
---
Icons:
- Added New icons
`AnnouncementsIcon, BirthdayIcon, BoldIcon, CampaignIcon, CashIcon, ChargeIcon, ChatIcon, CompanyIcon, CustomerFilledIcon, DesignIcon, ExpandIcon, GlobeIcon, InboxFilledIcon, ItalicIcon, JustifyLeftIcon, LinkDisconnectIcon, MessengerFilledIcon, MinimiseIcon, PaletteIcon, PauseIcon, PaymentApplepayPlainIcon, PaymentCashAppFilledIcon, PaymentCashAppIcon, PaymentCashAppPlainIcon, PaymentGooglepayPlainIcon, PaymentMastercardPlainIcon, PaymentPaypalPlainIcon, PaymentVisaPlainIcon, PlayIcon, PreviewIcon, ReductionIcon, SettingsFilledIcon, UnderlineIcon, WhatsappFilledIcon, XFilledIcon`
- Updated
`ConnectFilledIcon, CustomersFilledIcon, InstagramFilledIcon, LinkedinFilledIcon, MapPinIcon, MoreIcon, ServicesFilledIcon, ServicesIcon, TeleportIcon, VideoCameraIcon, YoutubeFilledIcon`
Steps to Contribute
If you'd like a quick walkthrough before getting started, there's also a video recording available that covers the full contribution process from sourcing icons to submitting a pull request. Feel free to check it out.
Here's how you can contribute:
- Download the assets from Figma and optimise it.
- Follow the proper naming conventions for the file name.
- Navigate to
/packages/svg-to-components/
directory and add your asset in the respective folders. - Navigate back to root of the project.
- Run
pnpm build:svg
to generate the components. - Run
pnpm check
andpnpm check:test
to run the pre-commit checks. - Create a changeset file describing your changes.
- Push your changes and create a pull request.
The Earth Design System core team manages the release process. Once your pull request is reviewed and merged, the updated eds-icons
package will be published as part of the regular release workflow.
Every contribution you make helps make the system better for everyone. We appreciate your effort and care. Thank you!