DEV Community

Cover image for How to Create Pixel-Perfect UI Components in Figma (Then Build Them in React)
Pixel Mosaic
Pixel Mosaic

Posted on

How to Create Pixel-Perfect UI Components in Figma (Then Build Them in React)

Designing something that looks perfect in Figma but breaks in code usually comes down to one thing: inconsistent spacing, sizes, and styles.

Here’s the fast path to staying pixel-perfect from design → code.

Set Up Figma for Precision

✔ Turn on Pixel Grid

View → Pixel Grid

✔ Use Frames (not Groups)

Frames give you constraints, grids, and auto-layout support.

✔ Enable Layout Grid
Use an 8-pt spacing system (8, 16, 24, 32…).

✔ Use Auto-Layout
Let Figma manage spacing instead of dragging things around.

✔ Create Styles

  • Color Styles
  • Text Styles
  • Effects (shadows)

Consistent styles = consistent code.

Export Specs — Don’t Guess

Click any element and inspect:

  • Width / Height
  • Padding & Gap values
  • Border radius
  • Shadow values
  • Font size / weight / line height

Copy values directly — avoid “close enough”.

Build the Component in React

Here’s a simple example matching typical Figma card values.

import React from "react";

export default function Card({ title, subtitle, children }) {
  const styles = {
    card: {
      width: 320,
      padding: "16px 20px",
      borderRadius: 16,
      border: "1px solid #e5e7eb",
      background: "#ffffff",
      boxShadow: "0 8px 20px rgba(0,0,0,0.04)",
    },
    title: {
      margin: "0 0 6px",
      fontSize: 18,
      fontWeight: 600,
    },
    subtitle: {
      margin: "0 0 12px",
      color: "#6b7280",
      fontSize: 14,
    },
  };

  return (
    <div style={styles.card}>
      <h2 style={styles.title}>{title}</h2>
      <p style={styles.subtitle}>{subtitle}</p>
      <div>{children}</div>
    </div>
  );
}
Enter fullscreen mode Exit fullscreen mode

Usage:

<Card title="Dashboard" subtitle="Pixel-perfect from **[Figma](urlhttps://www.figma.com/)**">
  Content goes here…
</Card>
Enter fullscreen mode Exit fullscreen mode

Conclusion

  • Match values exactly — spacing, radii, shadows, fonts.
  • Keep components reusable (variants in Figma, props in React).
  • Avoid “eyeballing”. Inspect → copy → paste.

Pixel-perfect happens when design and code speak the same numbers.

Top comments (0)