Figma component design
The product design team at Arc XP use Figma to power our desings. This guide walks through how we keep our Figma component library manageable.
#Guidelines Figma components should follow
- Use Auto Layout where applicable, with all layout constraints and resizing options configured.
- Use the appropriate tokens from the design system.
- If a component has two or more states, use Variants.
- Have a standardized set of variant properties across components
#Standardized variant properties
Order within option list
. This details the sequential order these properties should exist in. This is done so as the designer moves from component-to-component, these options are bundled in a consistent order.
The logic behind this list is to move from the most impactful property, to the least impactful. Mode
, Type
, and State
should always be the first 3 options, with Size
always being the last option. Any properties you need to make for components should exist between the third and last items.
Property name | Order within option list | Values | Notes |
---|---|---|---|
Mode | First | Light, Dark | The modes Arc Design System supports |
Type | Second | Icon on left, Icon on right, Both icons | Major configuration of a component |
State | Third | Empty, Selected, Focus | Minor configuration of a component |
Any additional properties needed gets added between these two groups | |||
Size | Last | Large, Small | Supported sizes |
Order within option list
. New variants should be ordered with similar logic, with the most impactful property first and the least impactful properties last.
#Naming components
Text Field
, it should be TextField
, as that is the React tag used to call the component. This is also a shorthand, allowing designers and engineers to quickly know which components/patterns are part of the Arc Design System.
#Atomic components
Frame
within your Figma component page called Atoms
and place your atomic components there. By doing it this way, designers can type Atoms
into the assets search to find all atomic components. This saves a lot of time in the prototyping phase.
#Component quality checklist
- The component is named in camel case
- All variant properties are named correctly, and ordered according to
Order within option list
- All of the component’s colors are mapped to the appropriate token. Example: text should never be a gray value, it should always map to
Tokens > Light Mode > Text Color > Default
- The component has been resized to ensure all Auto Layout, layout constraints, and resizing options are configured correctly