I find it can be hard to notice differences between my web page, and the Figma design document. So I’ve been trying to figure out how to get pixel perfect css from the already figured out Figma design.
Sometimes I find it overwhelming, but I think following a list of steps helps me to get through these more muddy, and artistic front end tasks.
So here’s my list, cooked up with the help of ChatGPT and a little input of my own, a procedure for stepping through styles so they match your design document.
1. Global Reset and Base Styles
- Apply a CSS reset or use normalize.css.
- Define base styles for
html
,body
, and common elements (h1
–h6
,p
,a
, etc.).font-family
font-size
color
line-height
background-color
2. Typography
For each text element:
- Set
font-family
. - Set
font-size
. - Set
font-weight
. - Set
line-height
. - Set
letter-spacing
. - Set
color
. - Set
text-align
orvertical-align
.
3. Box Model Properties
- Define
width
andheight
(or usemax-width
andmax-height
if constraints are needed). - Apply
margin
(outer spacing). - Apply
padding
(inner spacing). - Define
border
styles (if applicable).
4. Positioning
- Set
display
property (block
,flex
,grid
, etc.). - Define
position
(static
,relative
,absolute
, etc.). - Adjust
top
,right
,bottom
,left
if needed. - Set
z-index
(if applicable).
5. Spacing and Layout
- Adjust spacing with
gap
for Flexbox or Grid layouts. - Define
align-items
,justify-content
, orplace-items
(for alignment within containers). - Apply
float
orclear
if using older layout methods.
6. Background and Borders
- Set
background-color
. - Add
background-image
(if applicable).- Define
background-size
,background-position
,background-repeat
.
- Define
- Apply
border-radius
. - Add
box-shadow
(if applicable).
7. Interaction Styles
- Define styles for pseudo-classes:
hover
focus
active
- Set
cursor
styles (e.g.,pointer
,default
). - Add transitions or animations for smooth effects.
8. Responsive Design
- Add media queries for key breakpoints.
- Adjust font sizes for smaller or larger screens.
- Update spacing or layout for different viewports.
Additional Notes
- Work from larger containers to smaller, nested elements (top-down approach).
- Group related styles logically for clarity and maintainability.
- Match Figma layer names with CSS class/ID names for easy reference.
- Frequently test styles in the browser to ensure accuracy and proper behavior.