Get productive in Figma immediately — learn every panel, the key toolbar tools, essential keyboard shortcuts, and how to navigate canvas and layers as a developer who reads and inspects designs rather than creating them from scratch.
Figma is the dominant tool for UI design in 2026. As a developer, you will spend significant time in Figma — reading designs, extracting CSS values, inspecting component structure, and reviewing designs against your implementation. You do not need to know how to create designs from scratch, but you do need to move through Figma efficiently and know exactly where to look for the information you need.
This lesson covers Figma from a developer's perspective: less focus on drawing tools, more focus on the Inspect panel, Dev Mode, layer hierarchy reading, and measurement overlays. By the end, you will be able to extract everything you need from any Figma file in minutes.
Figma's interface has four primary panels:
Navigating the layers panel as a developer:
<section>, <article>, or <div>)<div> with no special CSS)Layer naming conventions (what good designers do):
Knowing shortcuts transforms Figma from tedious to fast. These are the 15 shortcuts developers use most:
Navigation:
Selection:
Inspection:
Other:
Dev Mode shortcut (most important for developers):
Ctrl/Cmd + Shift + D opens Dev Mode, which transforms the right panel into the Inspect panel showing CSS values, design tokens, and exportable assets for any selected element.
Measurement overlay technique:
The CSS equivalent of those measurements:
The layers panel hierarchy maps directly to HTML nesting. Understanding this translation helps you write CSS that matches the design structure.
Figma layers panel:
1Page
2└── Course Listing (Frame = page wrapper)
3 ├── Header (Auto Layout horizontal)
4 │ ├── Logo (Image)
5 │ ├── Navigation (Auto Layout horizontal)
6 │ │ ├── Courses (Text)
7 │ │ ├── Guides (Text)
8 │ │ └── Pricing (Text)
9 │ └── CTA Button (Component)
10 └── Main Content (Auto Layout vertical)
11 ├── Hero Section (Frame)
12 └── Course Grid (Auto Layout wrap)
13 ├── Course Card (Component)
14 ├── Course Card (Component)
15 └── Course Card (Component)Corresponding HTML structure:
1<body> <!-- Page -->
2 <div class="course-listing"> <!-- Course Listing frame -->
3 <header class="site-header"> <!-- Header auto layout -->
4 <img src="logo.svg" alt="DevBootstrap"> <!-- Logo -->
5 <nav> <!-- Navigation auto layout -->
6 <a href="/courses">Courses</a>
7 <a href="/guides">Guides</a>
8 <a href="/pricing">Pricing</a>
9 </nav>
10 <button class="btn-primary">Get Started</button> <!-- CTA Button component -->
11 </header>
12 <main> <!-- Main Content auto layout -->
13 <section class="hero"></section> <!-- Hero Section -->
14 <div class="course-grid"> <!-- Course Grid auto layout wrap -->
15 <article class="course-card"></article> <!-- Course Card component -->
16 <article class="course-card"></article>
17 <article class="course-card"></article>
18 </div>
19 </main>
20 </div>
21</body>The layers panel is the design-side component tree — reading it fluently lets you plan your React component hierarchy before writing a single line of code.
Corresponding CSS for the Auto Layout frames:
1/* Header: Auto Layout horizontal, align-items center, gap 40px */
2.site-header {
3 display: flex;
4 flex-direction: row;
5 align-items: center;
6 gap: 2.5rem; /* 40px gap from Figma */
7}
8
9/* Course Grid: Auto Layout wrap, gap 24px */
10.course-grid {
11 display: grid;
12 grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
13 gap: 1.5rem; /* 24px from Figma */
14}Dev Mode is Figma's dedicated developer view. It disables editing, highlights elements for inspection, and shows a developer-optimized properties panel. Access it via Ctrl/Cmd+Shift+D or the Dev Mode toggle in the top bar.
What the Inspect panel shows for a selected element:
For any layer:
For text layers:
For Auto Layout frames:
Copy CSS button:
Each section in the Inspect panel has a 'Copy CSS' button. Clicking it copies a CSS block with all the properties. Review the output before using it — Figma may generate:
position: absolute for elements that should be in normal flowfont-family: 'Inter' without a fallback stack (add system-ui, sans-serif)1/* Figma-generated CSS (from Copy CSS button) */
2font-family: 'Inter';
3font-size: 16px;
4font-weight: 600;
5line-height: 24px; /* absolute value — convert to unitless */
6letter-spacing: 0.01em;
7color: #111827;
8
9/* Developer-corrected CSS */
10font-family: 'Inter', system-ui, -apple-system, sans-serif; /* + fallback */
11font-size: 1rem; /* 16px / 16px base = 1rem */
12font-weight: 600;
13line-height: 1.5; /* 24px / 16px = 1.5 (unitless preferred) */
14letter-spacing: 0.01em;
15color: #111827;Walking through the complete workflow of finding a nav component in the layers panel, switching to Dev Mode, extracting CSS values, and translating them to production code.
1<!-- Simulated Figma Inspect panel output for a navigation bar -->
2<!-- Dev Mode shows: Frame 'Header', Auto Layout horizontal, padding 0 24px -->
3<!-- gap: 32px, background: #FFFFFF, border-bottom: 1px #E5E7EB -->
4<!-- height: 56px, align-items: center, justify-content: space-between -->
5
6<!-- CSS extracted and corrected from Figma Inspect panel -->
7<style>
8/* Source: Figma > Header frame > Inspect panel > CSS */
9.site-header {
10 /* Auto Layout: horizontal, space-between, align center */
11 display: flex;
12 flex-direction: row;
13 align-items: center;
14 justify-content: space-between;
15
16 /* Padding: 0 24px (no top/bottom, 24px sides) */
17 padding: 0 1.5rem; /* 0 / 24px converted to rem */
18
19 /* Height: 56px */
20 height: 3.5rem; /* 56px / 16px = 3.5rem */
21
22 /* Fill: #FFFFFF */
23 background-color: #ffffff;
24
25 /* Stroke: 1px bottom, #E5E7EB */
26 border-bottom: 1px solid #e5e7eb;
27
28 /* Sticky positioning (not in Figma — developer adds for UX) */
29 position: sticky;
30 top: 0;
31 z-index: 100;
32}
33
34/* Nav group: Auto Layout horizontal, gap 4px, align center */
35.nav-links {
36 display: flex;
37 flex-direction: row;
38 align-items: center;
39 gap: 0.25rem; /* 4px gap between nav items */
40 list-style: none;
41 margin: 0;
42 padding: 0;
43}
44
45/* Nav item text: Inter 15px 500, #374151, hover #111827 */
46.nav-link {
47 font-family: 'Inter', system-ui, sans-serif;
48 font-size: 0.9375rem; /* 15px / 16px = 0.9375rem */
49 font-weight: 500;
50 color: #374151;
51 text-decoration: none;
52 padding: 0.5rem 0.75rem; /* from Figma: 8px 12px padding */
53 border-radius: 0.375rem; /* 6px from Figma */
54 transition: background-color 150ms ease, color 150ms ease;
55}
56.nav-link:hover {
57 background-color: #f9fafb; /* hover fill from Figma prototype */
58 color: #111827;
59}
60.nav-link[aria-current="page"] {
61 background-color: #eff6ff; /* active fill from Figma */
62 color: #2563eb; /* active text from Figma */
63 font-weight: 600;
64}
65
66/* CTA Button: Auto Layout, 10px 20px padding, 8px radius */
67/* Inter 15px 600, background #2563EB, color white */
68.btn-nav-cta {
69 display: inline-flex;
70 align-items: center;
71 justify-content: center;
72 padding: 0.625rem 1.25rem; /* 10px 20px */
73 border-radius: 0.5rem; /* 8px */
74 font-family: 'Inter', system-ui, sans-serif;
75 font-size: 0.9375rem; /* 15px */
76 font-weight: 600;
77 background-color: #2563eb;
78 color: white;
79 border: none;
80 cursor: pointer;
81 text-decoration: none;
82 transition: background-color 150ms ease;
83 white-space: nowrap;
84}
85.btn-nav-cta:hover { background-color: #1d4ed8; }
86.btn-nav-cta:focus-visible {
87 outline: 2px solid #2563eb;
88 outline-offset: 2px;
89}
90</style>
91
92<header class="site-header" role="banner">
93 <a href="/" class="site-logo" aria-label="DevBootstrap home">
94 <img src="/logo.svg" alt="DevBootstrap" width="140" height="28">
95 </a>
96 <nav aria-label="Main navigation">
97 <ul class="nav-links" role="list">
98 <li><a href="/courses" class="nav-link" aria-current="page">Courses</a></li>
99 <li><a href="/guides" class="nav-link">Guides</a></li>
100 <li><a href="/community" class="nav-link">Community</a></li>
101 <li><a href="/pricing" class="nav-link">Pricing</a></li>
102 </ul>
103 </nav>
104 <a href="/signup" class="btn-nav-cta">Start learning free</a>
105</header>Every CSS value in this navigation implementation comes from the Figma Inspect panel. The conversion steps: height 56px → 3.5rem (56/16); padding 0 24px → 0 1.5rem (24/16); font-size 15px → 0.9375rem (15/16); gap 4px → 0.25rem (4/16); border-radius 6px → 0.375rem (6/16); border-radius 8px → 0.5rem (8/16). Line-height was given as 24px/15px = 1.6, converted to unitless 1.6. The hover and active states come from Figma prototype interactions, not the static frame. The sticky positioning and ARIA attributes are developer additions not visible in Figma — these are developer responsibilities beyond what a design file specifies.
The next lesson covers Figma Frames versus Groups and Auto Layout — the structural decisions that determine whether a design is easy or difficult to implement in CSS.
Your progress is saved in this browser, on this device only.