Naming conventions v2
Introduction
Standardised naming conventions enhance clarity, streamline collaboration, and facilitated system evolution.
In design systems, naming conventions are pivotal for ensuring consistency, clarity, and efficiency. Clear names, such as "error-red" for a colour, immediately indicate its function, streamlining communication among designers, developers, and other team members.
Standardised naming expedites the design and development process by reducing the need for continuous reference or clarification. It guarantees that references to specific elements are universally understood, facilitating smoother integration as the design system expands.
This shared language bolsters collaboration across teams, ensuring everyone understands each component's purpose. Such conventions prevent accidental duplicates, which can clutter the system, and aid in managing component evolution, especially when deprecating old elements or introducing new ones.
Principles
Using atomic design classification - hierarchical structure (atoms, molecules, organisms, etc.)
Simple and descriptive - consistent naming rules (descriptive, clear, no abbreviations)
Consistent letter casing - maintain sentence case for for component and lowercase for properties on design level, code should follow language default
Singular name - avoid the use of plurals in choosing a name (button not buttons)
Naming schema
A naming schema provides consistency, clarity, and ease of reference. By following a set pattern or rules for naming, it becomes easier to identify, manage, and search for items.
In design systems, it's a foundational aspect that helps ensure clarity, efficiency, and successful collaboration across large and diverse teams. It brings method to the potential chaos and lays the groundwork for a design system's long-term success and adaptability.
Structure: [ category ] / [ component ] / [ style ] / [ variant ] / [ size ] / [ state ]
An example would be components/button/standard/primary/small/hover
[ category ] represents the broadest classification (components, organisms, etc.).
[ component ] type represents the specific component being referred to (button, checkbox, toggle, input, etc.).
[ style ] describes the general appearance or behaviour of the component (standard, iconOnly, textOnly, etc.).
[ variant ] specifies the purpose or use-case for the component (primary, secondary, tertiary, information, success, warning, etc.).
[ size ] denotes the component's dimensions or scale (small, medium, large, etc.).
[ state ] describes the current interaction or status of the component (default, hover, focus, active, disabled, etc.).
category | components organisms |
component | standard icon-only … |
|
|
Variants
States
Atomic design
States
(add different states)
Classification
There are three different classification used
Atomic design
Atomic design is a methodology developed by Brad Frost for creating design systems in a systematic and hierarchical manner.
The idea behind atomic design is to break interfaces down into their smallest parts, which can be combined and recombined to produce any number of UI variations. Atomic design breaks down UI components into the following levels: atoms, molecules, organisms, templates and pages.
This classification is to be used on the design level, within Figma and code as this allows for scalability as more complex components are designed and developed.
Functionality
Ideal for external documentation as it’s easier to find component based on the functionality they add to the overall design, it is easily found in popular design system documentation such as Shopify, Material design and others.
This classification separates the components into categories such as Inputs, Navigation, Layout etc
Context of use
This classification method separates components by features, pages or user journeys to allow for more accessibility within complex components templates for instance, a card component could be further extended as a template for specific use on FX and on loans but with different layout arrangement and content.
The classification method will only be used to classify templates further into feature groups e.g by Onboarding, FX, Loans etc.
Component breakdown
By Atomic design
Atoms
These are the basic building blocks, analogous to atoms in the physical world. In terms of web interfaces, atoms can be HTML tags, such as labels, inputs, buttons, or other elemental parts like colour swatches and typographic styles. They are not useful on their own but when combines, they become the foundation of your UI.
Element | Description | Mobile | Web |
---|---|---|---|
Avatar |
| Yes | Yes |
Badge (tag) |
| Yes | Yes |
Button | (covers glossary) | Yes | Yes |
Action chips |
| Yes | Yes |
Checkbox |
| Yes | Yes |
Heading |
| Yes | Yes |
Text |
| Yes | Yes |
Icon |
| Yes | Yes |
Image |
| Yes | Yes |
Flag |
| Yes | Yes |
Label (form label) |
| Yes | Yes |
Link (hyperlink) |
| Yes | Yes |
Radio button |
| Yes | Yes |
Spinner (loading) |
| Yes | Yes |
Tooltip |
| Yes | Yes |
Separator (divider) |
| Yes | Yes |
Toggle |
| Yes | Yes |
Rating |
| Yes | Yes |
Progress bar |
| Yes | Yes |
Preloader (loading bar) |
| Yes | Yes |
Skeleton* |
| -- | -- |
Molecules
Molecules are groups of atoms bonded together and are the smallest fundamental units of a compound. Think of them as UI components, like a form label + from input + button = search form.
Element | Description | Mobile | Web |
---|---|---|---|
Money input |
| Yes | Yes |
Search input |
| Yes | No |
Phone number input |
| Yes | Yes |
Country input |
| Yes | Yes |
Date input |
| Yes | Yes |
Date of birth input |
| Yes | Yes |
Select input |
| Yes | Yes |
Text input |
| Yes | Yes |
Textarea |
| Yes | Yes |
Keypad |
| Yes | No |
Time picker input (optional) |
| Yes | Yes |
Alert |
| Yes | Yes |
Popover |
| No | Yes |
Critical Banner |
| Yes | Yes |
Breadcrumb |
| No | Yes |
Accordion |
| Yes | Yes |
Countdown |
| Yes | Yes |
Organisms
Organisms are relatively complex UI components composed of groups of molecules and/or atoms and/or other organisms. They form distinct sections of an interface, like a product grid or a site header with a logo, primary navigation, and search form.
Element | Description | Mobile | Web |
---|---|---|---|
Action list |
| No | Yes |
File upload |
| Yes | Yes |
Image upload |
| Yes | Yes |
Calendar (optional) |
| No | Yes |
Tabs |
| Yes | Yes |
Steppers |
| Yes | Yes |
Bottom tab |
| Yes | Yes |
Side menu |
| No | Yes |
Modal |
| No | Yes |
Bottom sheet |
| Yes | No |
Header (navbar) |
| Yes | Yes |
Table |
| Yes | Yes |
Stack list |
| Yes | Yes |
Information List |
| Yes | Yes |
Banner |
| Yes | Yes |
Action box |
| Yes | Yes |
Bar chart |
| Yes | Yes |
Line chart |
| Yes | Yes |
Pie chart |
| Yes | Yes |
Templates
At this level, you’re essentially laying out the structure of a page. You’re positioning organisms (or groups of organisms) in a layout, showing content structure without focusing too much on the actual content.
As a template, these components are further broken down into their area or context of use such as onboarding, fx , loans , payment , all etc. see table below
Element | Description | Label | Mobile | Web |
---|---|---|---|---|
Feedback (terminal) |
| ALL | Yes | Yes |
Primer |
|
| Yes | No |
Story viewer |
|
| Yes | Yes |
Pages
Pages are specific instances of templates. Here, placeholder content in templates is replaced with real content, thus forming a complete page. This level allows for testing the effectiveness of the design system’s hierarchy and seeing how the design system works in practice with real content.
By Functionality
Inputs or Form
All components that allow to for data input from text fields to file upload including buttons and links.
Element | Description | Mobile | Web |
---|---|---|---|
Button |
| Yes | Yes |
Text input |
| Yes | No |
Country input |
| Yes | Yes |
Password input |
| Yes | Yes |
PIN input |
| Yes | Yes |
Money input |
| Yes | Yes |
Mobile number input |
| Yes | Yes |
Date input |
| Yes | Yes |
Date of birth input |
| Yes | Yes |
Select input |
| Yes | Yes |
Search input |
| Yes | Yes |
Text input |
| Yes | Yes |
Textarea |
| Yes | Yes |
Keypad |
| Yes | Yes |
Time picker input (optional) |
| Yes | Yes |
Toggle |
| Yes | Yes |
Calendar |
| No | Yes |
Rating |
| Yes | Yes |
Action list |
| No | Yes |
File upload |
| Yes | Yes |
Image upload |
| Yes | Yes |
Navigation
Components that aid navigation from one page or view to the other.
Element | Description | Mobile | Web |
---|---|---|---|
Breadcrumb |
| Yes | Yes |
Tab |
| Yes | No |
Stepper |
| Yes | Yes |
Header (navbar) |
| Yes | Yes |
Side menu |
| Yes | Yes |
Bottom tabs |
| Yes | Yes |
Media
These components aid display of various types of media content, such as images, videos, audio files, or documents. It provides a structured and interactive way for users to view and consume media within an application.
Element | Description | Mobile | Web |
---|---|---|---|
Flag |
| Yes | Yes |
Visual patterns |
| Yes | Yes |
Video thumbnail* |
| - | - |
Audio player* |
| - | - |
Feedback
These component set provide a way to inform the user on the status of processes or a action, also give more information on other visual elements
Element | Description | Mobile | Web |
---|---|---|---|
Alerts |
| Yes | Yes |
Popover |
| Yes | No |
Tooltips |
| Yes | Yes |
Critical banner |
| Yes | Yes |
Preloader (loading bar) |
| Yes | Yes |
Loading spinner |
| Yes | Yes |
Progress bar |
| Yes | Yes |
Data visualisation
These components are responsible for presenting data in a clear, organized, and visually appealing manner
Element | Description | Mobile | Web |
---|---|---|---|
Avatar |
| Yes | Yes |
Badge (tag) |
| Yes | No |
Action chips |
| Yes | Yes |
Accordion |
| Yes | Yes |
Rating |
| Yes | Yes |
Table |
| Yes | Yes |
Stacked list |
| Yes | Yes |
Information list |
| Yes | Yes |
Pie chart |
| Yes | Yes |
Doughnut chart |
| Yes | Yes |
Bar chart |
| Yes | Yes |
Line chart |
| Yes | Yes |
Countdown |
| Yes | Yes |
Layout
These components defines the structure and organization of content on a page. they provides a framework for positioning and arranging other components on a page.
Element | Description | Mobile | Web |
---|---|---|---|
Card |
| Yes | Yes |
Primers |
| Yes | No |
Terminal |
| Yes | Yes |
Bottom sheet |
| Yes | No |
Modal |
| No | Yes |
Feedback (terminal) |
| Yes | Yes |
Rules of use
Follow the naming schema
Be consistency - use consistent names across components
Be clear and meaningful - clear to the last detail
Avoid reusing component names in your properties e.g itemsList
Use simple pronounceable names
Remove your emotion or moods
Use positive words