Figma - Kompletny Przewodnik po NarzΔdziu do Projektowania UI/UX
Czym jest Figma?
Figma to wiodΔ ce narzΔdzie do projektowania interfejsΓ³w uΕΌytkownika (UI) i doΕwiadczeΕ uΕΌytkownika (UX), ktΓ³re zrewolucjonizowaΕo sposΓ³b pracy zespoΕΓ³w projektowych i deweloperskich. W przeciwieΕstwie do tradycyjnych narzΔdzi jak Sketch czy Adobe XD, Figma dziaΕa caΕkowicie w przeglΔ darce, co umoΕΌliwia natychmiastowΔ wspΓ³ΕpracΔ w czasie rzeczywistym - wielu uΕΌytkownikΓ³w moΕΌe pracowaΔ nad tym samym projektem jednoczeΕnie, podobnie jak w Google Docs.
Figma zostaΕa zaΕoΕΌona w 2012 roku przez Dylana Fielda i Evana Wallace'a, a w 2022 roku Figma zostaΕa przejΔta przez Adobe za 20 miliardΓ³w dolarΓ³w (choΔ transakcja zostaΕa pΓ³ΕΊniej anulowana). Obecnie Figma jest uΕΌywana przez miliony designerΓ³w i deweloperΓ³w na caΕym Εwiecie, w firmach takich jak Google, Microsoft, Uber, Airbnb, Twitter i Spotify.
Dlaczego Figma?
Kluczowe zalety Figmy
- Praca w przeglΔ darce - Zero instalacji, dostΔp z kaΕΌdego urzΔ dzenia
- Real-time collaboration - WspΓ³Εpraca w czasie rzeczywistym jak w Google Docs
- Auto Layout - Responsywne ukΕadanie elementΓ³w jak w CSS Flexbox/Grid
- Components & Variants - Budowanie skalowalnych design systemΓ³w
- Dev Mode - Dedykowany tryb dla developerΓ³w z eksportem kodu
- Prototyping - Interaktywne prototypy bez kodowania
- FigJam - Whiteboard do brainstormingu i planowania
- Plugin ecosystem - TysiΔ ce wtyczek rozszerzajΔ cych funkcjonalnoΕΔ
Figma vs Sketch vs Adobe XD
| Cecha | Figma | Sketch | Adobe XD |
|---|---|---|---|
| Platforma | Web + Desktop | macOS only | Desktop |
| WspΓ³Εpraca | Real-time | Wymaga Cloud | Ograniczona |
| Cena | Free tier + Pro | $12/mo | Subskrypcja CC |
| Auto Layout | β Zaawansowany | β Basic | β Basic |
| Dev Mode | β Natywny | β Pluginy | β Basic |
| Prototyping | β Wbudowany | β Wbudowany | β Wbudowany |
| PopularnoΕΔ | π₯ Najpopularniejszy | π₯ MalejΔ ca | π₯ Niszowy |
Podstawy Figmy
Interfejs uΕΌytkownika
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Toolbar (narzΔdzia) β
ββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββ¬βββββββββββββ€
β β β β
β Layers β Canvas β Design β
β Panel β (obszar roboczy) β Panel β
β β β β
β - Pages β βββββββββββββββββββββββββββ β - Fill β
β - Framesβ β β β - Stroke β
β - Groupsβ β TwΓ³j design β β - Effects β
β - Shapesβ β β β - Layout β
β β βββββββββββββββββββββββββββ β β
β β β β
ββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββ΄βββββββββββββ€
β Assets / Plugins / Libraries β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββPodstawowe elementy
Frame - GΕΓ³wny kontener dla designΓ³w (jak <div> w HTML):
Frame = Artboard + Auto Layout + Constraints
- MoΕΌe mieΔ okreΕlone wymiary (Desktop: 1440px, Mobile: 390px)
- MoΕΌe byΔ responsywny z Auto Layout
- MoΕΌe mieΔ clipowanie zawartoΕciShapes - Podstawowe ksztaΕty:
- Rectangle (R)
- Ellipse (O)
- Line (L)
- Polygon
- Star
- Arrow
Text - Warstwa tekstowa (T):
- ObsΕuguje Google Fonts
- Style tekstu (heading, body, caption)
- Variable fonts
Groups vs Frames:
Groups (Ctrl/Cmd + G):
- Proste grupowanie
- Brak wΕasnych wΕaΕciwoΕci
- Dobre do organizacji
Frames (Ctrl/Cmd + Alt + G):
- Kontener z wΕasnymi wΕaΕciwoΕciami
- Auto Layout
- Constraints
- Clipping
- UΕΌywaj zawsze gdy moΕΌliweSkrΓ³ty klawiszowe (must-know)
NAVIGATION:
Space + drag - Pan canvas
Ctrl/Cmd + +/- - Zoom in/out
Shift + 1 - Zoom to fit
Shift + 2 - Zoom to selection
Ctrl/Cmd + \ - Toggle UI
SELECTION:
Ctrl/Cmd + A - Select all
Ctrl/Cmd + click - Deep select
Hold Alt + hover - Measure distances
EDITING:
Ctrl/Cmd + D - Duplicate
Ctrl/Cmd + G - Group
Ctrl/Cmd + Alt+G - Frame selection
Ctrl/Cmd + R - Rename
Ctrl/Cmd + [/] - Send backward/forward
ALIGNMENT:
Alt + A - Align left
Alt + D - Align right
Alt + W - Align top
Alt + S - Align bottom
Alt + H - Align center horizontal
Alt + V - Align center vertical
COMPONENTS:
Ctrl/Cmd + Alt+K - Create component
Ctrl/Cmd + Alt+B - Detach instanceAuto Layout - Responsywne ukΕady
Auto Layout to jedna z najpotΔΕΌniejszych funkcji Figmy, dziaΕajΔ ca podobnie do CSS Flexbox. Pozwala tworzyΔ responsywne ukΕady, ktΓ³re automatycznie dostosowujΔ siΔ do zawartoΕci.
Podstawy Auto Layout
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Auto Layout Frame β
β ββββββββ ββββββββ ββββββββ ββββββββ β
β β Item β β Item β β Item β β Item β β
β β 1 β β 2 β β 3 β β 4 β β
β ββββββββ ββββββββ ββββββββ ββββββββ β
β β
β Direction: Horizontal (β) β
β Gap: 16px β
β Padding: 24px β
β Alignment: Center β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββWΕaΕciwoΕci Auto Layout
DIRECTION (kierunek):
- Horizontal (β) - elementy obok siebie
- Vertical (β) - elementy pod sobΔ
- Wrap - zawijanie (jak flex-wrap)
GAP (odstΔpy miΔdzy elementami):
- Fixed gap: 16px - staΕy odstΔp
- Auto: space-between zachowanie
PADDING (wewnΔtrzne marginesy):
- Uniform: 16px wszystkie strony
- Independent: 16px 24px 16px 24px (T R B L)
ALIGNMENT:
- Primary axis (main): start/center/end/space-between
- Counter axis (cross): start/center/end/baseline
SIZING:
- Fixed: 200px - staΕa szerokoΕΔ
- Hug: dopasuj do zawartoΕci
- Fill: wypeΕnij dostΔpnΔ
przestrzeΕPrzykΕad: Responsywny przycisk
Button (Auto Layout Frame):
βββ Direction: Horizontal
βββ Gap: 8px
βββ Padding: 12px 24px
βββ Alignment: Center/Center
β
βββ Icon (16x16)
β βββ Fill container: β
β βββ Fixed size: β
β
βββ Label ("Click me")
βββ Hug contents: β
Rezultat: Przycisk, ktΓ³ry automatycznie roΕnie/maleje
z zawartoΕciΔ
, zachowujΔ
c padding i gap.Advanced Auto Layout patterns
Card z dynamicznΔ zawartoΕciΔ :
Card Frame (Vertical Auto Layout):
βββ Padding: 24px
βββ Gap: 16px
β
βββ Header (Horizontal Auto Layout)
β βββ Title (Fill) - rozciΔ
ga siΔ
β βββ Badge (Hug) - staΕy rozmiar
β
βββ Content (Text, Hug)
β
βββ Actions (Horizontal Auto Layout, Space Between)
βββ Secondary Button (Hug)
βββ Primary Button (Hug)Responsywna nawigacja:
Navbar (Horizontal Auto Layout):
βββ Padding: 0 24px
βββ Min Width: Fill container
β
βββ Logo (Fixed 120px)
β
βββ Nav Links (Horizontal, Fill)
β βββ Gap: 32px
β βββ Alignment: Center
β βββ Links: Home, Products, About, Contact
β
βββ CTA Button (Hug)Constraints vs Auto Layout
Constraints (uΕΌywaj gdy):
- Elementy majΔ
absolutne pozycjonowanie
- Floating buttons, overlays
- Background images
Auto Layout (uΕΌywaj gdy):
- Lista elementΓ³w
- Formularze
- Cards
- Buttons
- Komponenty UI
Kombinacja:
Frame z Constraints
βββ Auto Layout dla zawartoΕci
βββ Items z Fill/HugComponents & Variants
Components to wielokrotnie uΕΌywalne elementy designu - odpowiednik komponentΓ³w React w Εwiecie projektowania.
Tworzenie komponentΓ³w
1. Zaprojektuj element (np. Button)
2. Zaznacz frame
3. Ctrl/Cmd + Alt + K (Create Component)
4. Komponent pojawi siΔ w Assets panel
Main Component (z ikonΔ
4 rombΓ³w):
βββ ΕΉrΓ³dΕo prawdy - edycja wpΕywa na wszystkie instancje
Instance (z ikonΔ
1 rombu):
βββ Kopia komponentu - moΕΌna nadpisaΔ wΕaΕciwoΕciVariants - warianty komponentΓ³w
Variants pozwalajΔ grupowaΔ rΓ³ΕΌne stany/wersje komponentu w jednym miejscu.
Button Component
β
βββ Variant: Size
β βββ Small (height: 32px, padding: 8px 16px)
β βββ Medium (height: 40px, padding: 12px 24px)
β βββ Large (height: 48px, padding: 16px 32px)
β
βββ Variant: Style
β βββ Primary (bg: blue, text: white)
β βββ Secondary (bg: gray, text: dark)
β βββ Ghost (bg: transparent, border: gray)
β
βββ Variant: State
βββ Default
βββ Hover
βββ Pressed
βββ Disabled
βββ LoadingPrzykΕad: Button z wariantami
Step 1: StwΓ³rz bazowy button
βββββββββββββββββββββββββββ
β Click me β β Main Component
βββββββββββββββββββββββββββ
Step 2: Dodaj warianty (Component β Add variant)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Button Component Set β
β β
β βββββββββββββ βββββββββββββ βββββββββββββ β
β β Primary β β Secondary β β Ghost β Style β
β βββββββββββββ βββββββββββββ βββββββββββββ β
β β
β βββββββββββββ βββββββββββββ βββββββββββββ β
β β Small β β Medium β β Large β Size β
β βββββββββββββ βββββββββββββ βββββββββββββ β
β β
β βββββββββββββ βββββββββββββ βββββββββββββ β
β β Default β β Hover β β Disabled β State β
β βββββββββββββ βββββββββββββ βββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Step 3: Zdefiniuj wΕaΕciwoΕci kaΕΌdego wariantu
W Design Panel ustaw:
- Size=Small, Style=Primary, State=Default
- Size=Medium, Style=Secondary, State=Hover
- etc.Component Properties
Nowoczesny sposΓ³b na konfiguracjΔ komponentΓ³w bez tworzenia osobnych wariantΓ³w:
Button Component Properties:
β
βββ Text Property: "label"
β βββ Pozwala edytowaΔ tekst instancji
β
βββ Boolean Property: "showIcon"
β βββ PokaΕΌ/ukryj ikonΔ
β
βββ Instance Swap Property: "icon"
β βββ ZamieΕ ikonΔ na innΔ
z biblioteki
β
βββ Variant Property: "size", "style", "state"
βββ Wybierz wariant z listy
UΕΌycie w instancji:
βββββββββββββββββββββββββββββββββββββββ
β Properties Panel β
β β
β label: "Submit" [text field] β
β showIcon: βοΈ [checkbox] β
β icon: [arrow-right] [dropdown] β
β size: Medium [dropdown] β
β style: Primary [dropdown] β
β state: Default [dropdown] β
βββββββββββββββββββββββββββββββββββββββDesign Tokens i Style
Color Styles
Colors (definiuj w Local Styles):
β
βββ Primary
β βββ primary-500: #6366F1 (gΕΓ³wny)
β βββ primary-600: #4F46E5 (hover)
β βββ primary-400: #818CF8 (light)
β βββ primary-50: #EEF2FF (background)
β
βββ Neutral
β βββ gray-900: #111827 (text)
β βββ gray-500: #6B7280 (secondary)
β βββ gray-200: #E5E7EB (border)
β βββ gray-50: #F9FAFB (background)
β
βββ Semantic
β βββ success: #10B981
β βββ warning: #F59E0B
β βββ error: #EF4444
β βββ info: #3B82F6
β
βββ Surface
βββ background: #FFFFFF
βββ surface: #F9FAFB
βββ overlay: rgba(0,0,0,0.5)Text Styles
Typography (definiuj w Local Styles):
β
βββ Display
β βββ display-2xl: 72px/90px, Bold
β βββ display-xl: 60px/72px, Bold
β
βββ Headings
β βββ heading-1: 48px/60px, Semibold
β βββ heading-2: 36px/44px, Semibold
β βββ heading-3: 30px/38px, Semibold
β βββ heading-4: 24px/32px, Semibold
β
βββ Body
β βββ body-lg: 18px/28px, Regular
β βββ body-md: 16px/24px, Regular
β βββ body-sm: 14px/20px, Regular
β
βββ Labels
β βββ label-lg: 14px/20px, Medium
β βββ label-md: 12px/16px, Medium
β βββ label-sm: 11px/16px, Medium
β
βββ Code
βββ code-md: 14px/20px, Mono, RegularEffect Styles
Effects (shadows, blurs):
β
βββ Shadows
β βββ shadow-sm: 0 1px 2px rgba(0,0,0,0.05)
β βββ shadow-md: 0 4px 6px rgba(0,0,0,0.1)
β βββ shadow-lg: 0 10px 15px rgba(0,0,0,0.1)
β βββ shadow-xl: 0 20px 25px rgba(0,0,0,0.15)
β
βββ Blurs
βββ blur-sm: 4px
βββ blur-md: 8px
βββ blur-lg: 16pxVariables (nowa funkcja)
Variables to nowoczesna alternatywa dla Styles, wspierajΔ ca:
- Dark mode
- Responsive breakpoints
- Aliasing
Variables Collections:
β
βββ Primitives (raw values)
β βββ blue-500: #6366F1
β βββ gray-900: #111827
β βββ spacing-4: 16px
β
βββ Semantic (aliases)
βββ color-primary: {blue-500}
βββ color-text: {gray-900}
βββ spacing-md: {spacing-4}
Modes:
βββ Light Mode
β βββ color-background: #FFFFFF
β
βββ Dark Mode
βββ color-background: #1F2937Dev Mode - Figma dla DeveloperΓ³w
Dev Mode to dedykowany tryb dla programistΓ³w, ktΓ³ry uΕatwia przekΕadanie designΓ³w na kod.
WΕΔ czanie Dev Mode
1. Kliknij przeΕΔ
cznik "<>" w prawym gΓ³rnym rogu
2. Lub uΕΌyj Shift + D
3. Interfejs zmieni siΔ na widok developerskiFunkcje Dev Mode
Inspekcja wΕaΕciwoΕci:
/* Figma automatycznie generuje CSS */
.button {
display: flex;
padding: 12px 24px;
justify-content: center;
align-items: center;
gap: 8px;
border-radius: 8px;
background: #6366F1;
/* Typography */
color: #FFF;
font-family: Inter;
font-size: 14px;
font-weight: 500;
line-height: 20px;
}Export do rΓ³ΕΌnych formatΓ³w:
CSS:
.element {
width: 200px;
height: 48px;
background: #6366F1;
border-radius: 8px;
}
iOS (SwiftUI):
Rectangle()
.frame(width: 200, height: 48)
.background(Color(hex: "6366F1"))
.cornerRadius(8)
Android (Compose):
Box(
modifier = Modifier
.size(width = 200.dp, height = 48.dp)
.background(Color(0xFF6366F1))
.clip(RoundedCornerShape(8.dp))
)Pomiar odlegΕoΕci:
W Dev Mode:
- NajedΕΊ na element β pokaΕΌe wymiary
- NajedΕΊ miΔdzy elementami β pokaΕΌe spacing
- Alt + hover β szczegΓ³Εowe pomiaryCode snippets i integracje
// Figma moΕΌe generowaΔ snippets dla frameworkΓ³w
// React + Tailwind:
<button className="flex items-center gap-2 px-6 py-3
bg-indigo-500 hover:bg-indigo-600
text-white font-medium rounded-lg">
<IconPlus className="w-4 h-4" />
Add item
</button>
// React + styled-components:
const Button = styled.button`
display: flex;
align-items: center;
gap: 8px;
padding: 12px 24px;
background: #6366F1;
color: white;
font-weight: 500;
border-radius: 8px;
&:hover {
background: #4F46E5;
}
`;VS Code Extension
Figma for VS Code:
1. Zainstaluj rozszerzenie "Figma for VS Code"
2. PoΕΔ
cz z kontem Figma
3. PrzeglΔ
daj pliki Figma bezpoΕrednio w VS Code
4. Kopiuj wartoΕci bez przeΕΔ
czania okien
5. Generuj kod z designΓ³wPrototyping
Figma umoΕΌliwia tworzenie interaktywnych prototypΓ³w bez pisania kodu.
Podstawy prototypowania
1. PrzejdΕΊ do trybu Prototype (prawy panel)
2. Zaznacz element ΕΊrΓ³dΕowy (np. Button)
3. PrzeciΔ
gnij connector do frame docelowego
4. Skonfiguruj interakcjΔ
Interaction:
βββ Trigger: On click / On hover / On drag / While pressing
βββ Action: Navigate to / Open overlay / Swap variant / Scroll to
βββ Animation: Instant / Dissolve / Move in / Push / SlideSmart Animate
Smart Animate automatycznie animuje rΓ³ΕΌnice miΔdzy frames:
Frame 1: Card (collapsed)
βββ Thumbnail (100x100)
βββ Title
βββ Height: 150px
Frame 2: Card (expanded)
βββ Thumbnail (100x100)
βββ Title
βββ Description
βββ Actions
βββ Height: 300px
Smart Animate interpoluje:
- Height: 150px β 300px
- Opacity nowych elementΓ³w: 0 β 1
- Pozycje elementΓ³wInteractive Components
Button Component (with interactions):
β
βββ Default State
β βββ On hover β Hover State (Smart Animate)
β
βββ Hover State
β βββ On mouse leave β Default State
β βββ On click β Pressed State
β
βββ Pressed State
β βββ After delay (100ms) β Default State
β
βββ Disabled State
βββ No interactionsOverflow scrolling
Scrollable Frame:
βββ Width: 375px (fixed)
βββ Height: 667px (fixed)
βββ Overflow: Scroll vertically
β
βββ Content Frame
βββ Width: Fill container
βββ Height: Hug (1500px of content)
βββ Auto Layout: VerticalOverlay prototypes
Modal Overlay:
β
βββ Trigger Frame (Button "Open Modal")
β βββ On click β Open overlay
β
βββ Overlay (Modal Frame)
β βββ Position: Center
β βββ Background: #000 50% opacity
β βββ Close on clicking outside: β
β
βββ Close Button
βββ On click β Close overlayFigJam - Whiteboarding
FigJam to narzΔdzie do wizualnej wspΓ³Εpracy, brainstormingu i planowania.
Zastosowania FigJam
1. Brainstorming
- Sticky notes z pomysΕami
- GΕosowanie (stamps)
- Grupowanie i kategoryzacja
2. User Flow Diagrams
- Shapes (circles, rectangles)
- Connectors (arrows)
- Swimlanes
3. Planning
- Kanban boards
- Timelines
- Mind maps
4. Retrospektywy
- What went well / What to improve
- Action items
- Team discussionsFigJam Templates
Available templates:
βββ Brainstorming
β βββ Mind Map
β βββ Affinity Diagram
β βββ Crazy 8s
β
βββ Meetings
β βββ Daily Standup
β βββ Sprint Retrospective
β βββ Team Sync
β
βββ Strategy
β βββ SWOT Analysis
β βββ Business Model Canvas
β βββ User Journey Map
β
βββ Agile
βββ Sprint Planning
βββ Kanban Board
βββ Story MappingPlugins i integracje
Must-have plugins
Design:
βββ Iconify - miliony ikon (Material, Feather, etc.)
βββ Unsplash - darmowe zdjΔcia stockowe
βββ Remove BG - usuwanie tΕa ze zdjΔΔ
βββ Blush - ilustracje customizable
βββ Content Reel - avatary, nazwy, lorem ipsum
Development:
βββ Figma to Code - eksport do React/Vue/HTML
βββ Tailwind CSS - klasy Tailwind z designΓ³w
βββ Anima - eksport do React/Vue z interakcjami
βββ Storybook Connect - sync z Storybook
Productivity:
βββ Autoflow - automatyczne flow diagrams
βββ Similayer - znajdΕΊ podobne warstwy
βββ Rename It - batch renaming layers
βββ Instance Finder - znajdΕΊ uΕΌycia komponentΓ³w
Accessibility:
βββ Stark - kontrast, color blindness check
βββ A11y - accessibility annotations
βββ Color Blind - symulacja Εlepoty barwInstalacja pluginΓ³w
1. Menu β Plugins β Browse plugins in Community
2. Wyszukaj plugin
3. Kliknij "Install"
4. UΕΌyj przez Menu β Plugins β [Nazwa]
lub Ctrl/Cmd + / (Quick Actions)Figma API
// Figma REST API - dostΔp do plikΓ³w i komentarzy
// Pobierz plik Figma
const response = await fetch(
`https://api.figma.com/v1/files/${fileKey}`,
{
headers: {
'X-Figma-Token': process.env.FIGMA_TOKEN
}
}
);
const file = await response.json();
console.log(file.name);
console.log(file.document.children); // Pages
// Pobierz obrazy z pliku
const imagesResponse = await fetch(
`https://api.figma.com/v1/images/${fileKey}?ids=${nodeIds}&format=png&scale=2`,
{
headers: {
'X-Figma-Token': process.env.FIGMA_TOKEN
}
}
);
const images = await imagesResponse.json();
// images.images = { nodeId: imageUrl, ... }Figma Plugin Development
// figma-plugin/code.ts
// GΕΓ³wny kod pluginu
figma.showUI(__html__, { width: 300, height: 400 });
// NasΕuchuj wiadomoΕci z UI
figma.ui.onmessage = async (msg) => {
if (msg.type === 'create-rectangle') {
const rect = figma.createRectangle();
rect.x = 0;
rect.y = 0;
rect.resize(msg.width, msg.height);
rect.fills = [{ type: 'SOLID', color: { r: 1, g: 0.5, b: 0 } }];
figma.currentPage.appendChild(rect);
figma.currentPage.selection = [rect];
figma.viewport.scrollAndZoomIntoView([rect]);
}
figma.closePlugin();
};
// UI pluginu (ui.html)
// <script>
// document.getElementById('create').onclick = () => {
// parent.postMessage({
// pluginMessage: { type: 'create-rectangle', width: 100, height: 100 }
// }, '*');
// };
// </script>Design Systems w Figmie
Struktura Design System
Design System Library:
β
βββ π Foundations
β βββ Colors (variables)
β βββ Typography (text styles)
β βββ Spacing (variables)
β βββ Shadows (effect styles)
β βββ Iconography
β
βββ π Primitives
β βββ Button
β βββ Input
β βββ Checkbox
β βββ Radio
β βββ Select
β βββ Toggle
β βββ Badge
β
βββ π Components
β βββ Card
β βββ Modal
β βββ Dropdown
β βββ Tabs
β βββ Toast
β βββ Tooltip
β
βββ π Patterns
β βββ Navigation
β βββ Forms
β βββ Tables
β βββ Empty States
β βββ Error States
β
βββ π Templates
βββ Dashboard
βββ Settings
βββ Profile
βββ Landing PagePublikowanie biblioteki
1. Team Library:
- File β Publish Library
- Wybierz komponenty do publikacji
- Dodaj opisy i przykΕady
2. UΕΌywanie biblioteki:
- Assets panel β Team library
- PrzeciΔ
gnij komponenty na canvas
- Aktualizacje automatyczne
3. Wersjonowanie:
- Publikuj z opisem zmian
- UΕΌytkownicy widzΔ
"Updates available"
- MogΔ
preview i accept changesDokumentacja komponentΓ³w
Component Page struktura:
β
βββ Title & Description
β βββ Co robi komponent
β
βββ Anatomy
β βββ Diagram czΔΕci skΕadowych
β
βββ Variants Showcase
β βββ Wszystkie warianty obok siebie
β
βββ Usage Guidelines
β βββ β
Do (dobre przykΕady)
β βββ β Don't (zΕe przykΕady)
β
βββ Properties Reference
β βββ Tabela wszystkich wΕaΕciwoΕci
β
βββ Related Components
βββ Linki do powiΔ
zanychCollaboration i Workflow
Tryby wspΓ³Εpracy
1. Editor (Full Access):
- MoΕΌe edytowaΔ wszystko
- MoΕΌe publikowaΔ zmiany
- MoΕΌe zarzΔ
dzaΔ czΕonkami
2. Viewer (Can View):
- MoΕΌe oglΔ
daΔ i komentowaΔ
- MoΕΌe kopiowaΔ elementy
- Nie moΕΌe edytowaΔ
3. Viewer-Restricted:
- Tylko oglΔ
danie
- Bez kopiowania
- Bez eksportuComments i Feedback
Komentarze:
- Kliknij C lub ikonΔ komentarza
- Kliknij w miejsce na canvas
- Napisz komentarz
- @mention czΕonkΓ³w zespoΕu
Organizacja:
- Resolved/Unresolved
- Filter by author
- Filter by date
- Export commentsBranching (w planach Team/Enterprise)
Main File (source of truth)
β
βββ Branch: Feature A
β βββ Eksperymentalne zmiany
β
βββ Branch: Feature B
β βββ Nowy design
β
βββ Merge back to Main
βββ Po review i aprobacieVersion History
1. File β Show Version History
2. PrzeglΔ
daj poprzednie wersje
3. Nazwij waΕΌne wersje (milestones)
4. PrzywrΓ³Δ poprzedniΔ
wersjΔ
5. Duplikuj wersjΔ jako nowy plikHandoff - przekazanie developerom
Przygotowanie designu do handoff
Checklist przed handoff:
β‘ Wszystkie elementy sΔ
w komponentach
β‘ UΕΌywasz Auto Layout
β‘ Kolory sΔ
w stylach/variables
β‘ Typografia w stylach
β‘ Nazwy warstw sΔ
sensowne
β‘ Variants pokrywajΔ
wszystkie stany
β‘ Spacing jest konsystentny
β‘ Assets sΔ
wyeksportowane (1x, 2x, 3x)
β‘ Prototyp dziaΕa
β‘ Dev Mode jest wΕΔ
czonyEksport assets
Eksport ustawienia:
βββ Format: PNG / SVG / JPG / PDF
βββ Scale: 1x, 2x, 3x (dla retina)
βββ Suffix: @2x, @3x
βββ Include "id" attribute (SVG)
Bulk export:
1. Zaznacz warstwy
2. UΕΌyj Slice tool lub Export settings
3. Export selection (Ctrl/Cmd + Shift + E)
SVG dla ikon:
- Outline strokes przed exportem
- Flatten groups
- Remove unnecessary groupsInspect Panel (Dev Mode)
Properties:
βββ Layout (x, y, width, height)
βββ Fill (colors, gradients)
βββ Stroke (border)
βββ Effects (shadows, blur)
βββ Typography (font, size, weight)
Code:
βββ CSS
βββ iOS (Swift)
βββ Android (XML)
Assets:
βββ Export button
βββ Format selectionBest Practices
Organizacja plikΓ³w
Project Structure:
β
βββ π Cover
β βββ Thumbnail dla pliku
β
βββ π Index / TOC
β βββ Linki do wszystkich stron
β
βββ π Foundations
β βββ Colors, Typography, Spacing
β
βββ π Components
β βββ Wszystkie komponenty z dokumentacjΔ
β
βββ π Feature A
β βββ Wireframes
β βββ High-fidelity
β βββ Prototypes
β
βββ π Feature B
β βββ ...
β
βββ π Archive
βββ Stare wersjeNaming conventions
Layers:
βββ Frames: PascalCase (Card, NavBar, Modal)
βββ Components: PascalCase (Button, Input)
βββ Variants: property=value (Size=Large)
βββ Instances: lowercase (icon, label)
Pages:
βββ π Cover
βββ π π¨ Design System
βββ π π± Mobile App
βββ π π» Web App
βββ π π¦ Archive
Groups/Sections:
βββ Header
βββ Hero
βββ Features
βββ Testimonials
βββ FooterPerformance
Optymalizacja dla duΕΌych plikΓ³w:
β
βββ Limit components na stronΔ
βββ Unikaj ogromnych bitmap
βββ UΕΌywaj vector gdzie moΕΌliwe
βββ Archiwizuj stare wersje
βββ Podziel duΕΌe projekty na pliki
βββ UΕΌywaj External LibrariesCennik Figmy
Plany
Free:
βββ Cena: $0
βββ 3 projekty Figma
βββ 3 projekty FigJam
βββ Unlimited viewers
βββ 30-day version history
βββ Mobile app
Professional:
βββ Cena: $15/editor/miesiΔ
c (rozliczenie roczne)
βββ Unlimited projekty
βββ Unlimited version history
βββ Shared libraries
βββ Dev Mode
βββ Private projects
βββ Advanced prototyping
Organization:
βββ Cena: $45/editor/miesiΔ
c
βββ Wszystko z Professional
βββ Design System Analytics
βββ Centralized libraries
βββ SSO
βββ Private plugins
βββ Org-wide libraries
Enterprise:
βββ Cena: Custom
βββ Wszystko z Organization
βββ Dedicated support
βββ Advanced security
βββ Guest access controls
βββ REST APIFAQ - CzΔsto zadawane pytania
Czy Figma jest lepsza od Sketch?
Dla wiΔkszoΕci zespoΕΓ³w tak. Figma oferuje:
- Real-time collaboration (Sketch wymaga Cloud)
- DziaΕa na kaΕΌdym systemie (Sketch tylko macOS)
- Darmowy tier wystarczajΔ cy dla wielu
- Lepszy Dev Mode i handoff
- Aktywniej rozwijana
Sketch moΕΌe byΔ lepszy jeΕli:
- Pracujesz solo na Mac
- Potrzebujesz specyficznych pluginΓ³w Sketch
- Masz istniejΔ cy workflow ze Sketch
Czy Figma jest darmowa?
Tak, Free tier oferuje:
- 3 projekty Figma
- 3 projekty FigJam
- Unlimited viewers
- Podstawowe funkcje
To wystarcza dla maΕych projektΓ³w i nauki. Dla zespoΕΓ³w i wiΔkszych projektΓ³w potrzebujesz Professional ($15/editor/mo).
Jak exportowaΔ z Figmy do kodu?
- Dev Mode - wbudowany w FigmΔ, CSS/iOS/Android
- Plugins:
- Figma to Code (React/Vue/HTML)
- Anima (peΕne interakcje)
- Locofy (no-code export)
- API - pobierz JSON i generuj kod
Jak robiΔ responsywne designy?
- UΕΌywaj Auto Layout wszΔdzie
- Stosuj Fill/Hug zamiast fixed sizes
- TwΓ³rz frames dla rΓ³ΕΌnych breakpoints:
- Mobile: 375px
- Tablet: 768px
- Desktop: 1440px
- UΕΌywaj Constraints dla absolutnie pozycjonowanych elementΓ³w
Jak organizowaΔ Design System?
- Foundations - colors, typography, spacing jako variables/styles
- Primitives - Button, Input, Checkbox jako components
- Components - Card, Modal, Table z variants
- Patterns - Forms, Navigation, Empty States
- Publikuj jako Team Library
Jak wspΓ³ΕpracowaΔ z developerami?
- Dev Mode - wΕΔ cz i udostΔpnij link
- Comments - oznaczaj @developer przy pytaniach
- Handoff checklist - upewnij siΔ, ΕΌe design jest kompletny
- Naming - sensowne nazwy warstw
- Documentation - opisuj zachowania w komentarzach
Podsumowanie
Figma to obecnie najpopularniejsze i najbardziej wszechstronne narzΔdzie do projektowania UI/UX, oferujΔ ce:
- WspΓ³ΕpracΔ w czasie rzeczywistym - Praca zespoΕowa bez konfliktΓ³w
- Auto Layout - Responsywne ukΕady jak w CSS Flexbox
- Components & Variants - Skalowalne design systemy
- Dev Mode - Dedykowany tryb dla developerΓ³w
- Prototyping - Interaktywne prototypy bez kodowania
- FigJam - Whiteboarding i planowanie
- Plugin ecosystem - RozszerzalnoΕΔ
NiezaleΕΌnie czy jesteΕ designerem, developerem czy product managerem - Figma oferuje narzΔdzia do efektywnej wspΓ³Εpracy i tworzenia doskonaΕych produktΓ³w cyfrowych.
Figma - a complete guide to the UI/UX design tool
What is Figma?
Figma is the leading tool for designing user interfaces (UI) and user experiences (UX) that has revolutionized the way design and development teams work. Unlike traditional tools like Sketch or Adobe XD, Figma runs entirely in the browser, enabling instant real-time collaboration - multiple users can work on the same project simultaneously, much like Google Docs.
Figma was founded in 2012 by Dylan Field and Evan Wallace, and in 2022 Figma was acquired by Adobe for 20 billion dollars (although the deal was later called off). Today Figma is used by millions of designers and developers around the world, at companies like Google, Microsoft, Uber, Airbnb, Twitter, and Spotify.
Why Figma?
Key advantages of Figma
- Browser-based - Zero installation, access from any device
- Real-time collaboration - Work together in real time like in Google Docs
- Auto Layout - Responsive element arrangement like CSS Flexbox/Grid
- Components & Variants - Building scalable design systems
- Dev Mode - Dedicated mode for developers with code export
- Prototyping - Interactive prototypes without coding
- FigJam - Whiteboard for brainstorming and planning
- Plugin ecosystem - Thousands of plugins extending functionality
Figma vs Sketch vs Adobe XD
| Feature | Figma | Sketch | Adobe XD |
|---|---|---|---|
| Platform | Web + Desktop | macOS only | Desktop |
| Collaboration | Real-time | Requires Cloud | Limited |
| Price | Free tier + Pro | $12/mo | CC Subscription |
| Auto Layout | β Advanced | β Basic | β Basic |
| Dev Mode | β Native | β Plugins | β Basic |
| Prototyping | β Built-in | β Built-in | β Built-in |
| Popularity | π₯ Most popular | π₯ Declining | π₯ Niche |
Figma basics
User interface
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Toolbar (tools) β
ββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββ¬βββββββββββββ€
β β β β
β Layers β Canvas β Design β
β Panel β (working area) β Panel β
β β β β
β - Pages β βββββββββββββββββββββββββββ β - Fill β
β - Framesβ β β β - Stroke β
β - Groupsβ β Your design β β - Effects β
β - Shapesβ β β β - Layout β
β β βββββββββββββββββββββββββββ β β
β β β β
ββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββ΄βββββββββββββ€
β Assets / Plugins / Libraries β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββBasic elements
Frame - The main container for designs (like <div> in HTML):
Frame = Artboard + Auto Layout + Constraints
- Can have specific dimensions (Desktop: 1440px, Mobile: 390px)
- Can be responsive with Auto Layout
- Can clip its contentsShapes - Basic shapes:
- Rectangle (R)
- Ellipse (O)
- Line (L)
- Polygon
- Star
- Arrow
Text - Text layer (T):
- Supports Google Fonts
- Text styles (heading, body, caption)
- Variable fonts
Groups vs Frames:
Groups (Ctrl/Cmd + G):
- Simple grouping
- No properties of their own
- Good for organization
Frames (Ctrl/Cmd + Alt + G):
- Container with its own properties
- Auto Layout
- Constraints
- Clipping
- Use whenever possibleKeyboard shortcuts (must-know)
NAVIGATION:
Space + drag - Pan canvas
Ctrl/Cmd + +/- - Zoom in/out
Shift + 1 - Zoom to fit
Shift + 2 - Zoom to selection
Ctrl/Cmd + \ - Toggle UI
SELECTION:
Ctrl/Cmd + A - Select all
Ctrl/Cmd + click - Deep select
Hold Alt + hover - Measure distances
EDITING:
Ctrl/Cmd + D - Duplicate
Ctrl/Cmd + G - Group
Ctrl/Cmd + Alt+G - Frame selection
Ctrl/Cmd + R - Rename
Ctrl/Cmd + [/] - Send backward/forward
ALIGNMENT:
Alt + A - Align left
Alt + D - Align right
Alt + W - Align top
Alt + S - Align bottom
Alt + H - Align center horizontal
Alt + V - Align center vertical
COMPONENTS:
Ctrl/Cmd + Alt+K - Create component
Ctrl/Cmd + Alt+B - Detach instanceAuto Layout - responsive layouts
Auto Layout is one of Figma's most powerful features, working similarly to CSS Flexbox. It lets you create responsive layouts that automatically adapt to their content.
Auto Layout basics
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Auto Layout Frame β
β ββββββββ ββββββββ ββββββββ ββββββββ β
β β Item β β Item β β Item β β Item β β
β β 1 β β 2 β β 3 β β 4 β β
β ββββββββ ββββββββ ββββββββ ββββββββ β
β β
β Direction: Horizontal (β) β
β Gap: 16px β
β Padding: 24px β
β Alignment: Center β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββAuto Layout properties
DIRECTION:
- Horizontal (β) - elements side by side
- Vertical (β) - elements stacked
- Wrap - wrapping (like flex-wrap)
GAP (spacing between elements):
- Fixed gap: 16px - constant spacing
- Auto: space-between behavior
PADDING (internal margins):
- Uniform: 16px all sides
- Independent: 16px 24px 16px 24px (T R B L)
ALIGNMENT:
- Primary axis (main): start/center/end/space-between
- Counter axis (cross): start/center/end/baseline
SIZING:
- Fixed: 200px - fixed width
- Hug: fit to contents
- Fill: fill available spaceExample: responsive button
Button (Auto Layout Frame):
βββ Direction: Horizontal
βββ Gap: 8px
βββ Padding: 12px 24px
βββ Alignment: Center/Center
β
βββ Icon (16x16)
β βββ Fill container: β
β βββ Fixed size: β
β
βββ Label ("Click me")
βββ Hug contents: β
Result: A button that automatically grows/shrinks
with its content, maintaining padding and gap.Advanced Auto Layout patterns
Card with dynamic content:
Card Frame (Vertical Auto Layout):
βββ Padding: 24px
βββ Gap: 16px
β
βββ Header (Horizontal Auto Layout)
β βββ Title (Fill) - stretches
β βββ Badge (Hug) - fixed size
β
βββ Content (Text, Hug)
β
βββ Actions (Horizontal Auto Layout, Space Between)
βββ Secondary Button (Hug)
βββ Primary Button (Hug)Responsive navigation:
Navbar (Horizontal Auto Layout):
βββ Padding: 0 24px
βββ Min Width: Fill container
β
βββ Logo (Fixed 120px)
β
βββ Nav Links (Horizontal, Fill)
β βββ Gap: 32px
β βββ Alignment: Center
β βββ Links: Home, Products, About, Contact
β
βββ CTA Button (Hug)Constraints vs Auto Layout
Constraints (use when):
- Elements have absolute positioning
- Floating buttons, overlays
- Background images
Auto Layout (use when):
- List of elements
- Forms
- Cards
- Buttons
- UI components
Combination:
Frame with Constraints
βββ Auto Layout for content
βββ Items with Fill/HugComponents & Variants
Components are reusable design elements - the equivalent of React components in the design world.
Creating components
1. Design an element (e.g. Button)
2. Select the frame
3. Ctrl/Cmd + Alt + K (Create Component)
4. The component will appear in the Assets panel
Main Component (with 4-diamond icon):
βββ Source of truth - editing affects all instances
Instance (with 1-diamond icon):
βββ A copy of the component - you can override propertiesVariants - component variants
Variants let you group different states/versions of a component in one place.
Button Component
β
βββ Variant: Size
β βββ Small (height: 32px, padding: 8px 16px)
β βββ Medium (height: 40px, padding: 12px 24px)
β βββ Large (height: 48px, padding: 16px 32px)
β
βββ Variant: Style
β βββ Primary (bg: blue, text: white)
β βββ Secondary (bg: gray, text: dark)
β βββ Ghost (bg: transparent, border: gray)
β
βββ Variant: State
βββ Default
βββ Hover
βββ Pressed
βββ Disabled
βββ LoadingExample: button with variants
Step 1: Create the base button
βββββββββββββββββββββββββββ
β Click me β β Main Component
βββββββββββββββββββββββββββ
Step 2: Add variants (Component β Add variant)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Button Component Set β
β β
β βββββββββββββ βββββββββββββ βββββββββββββ β
β β Primary β β Secondary β β Ghost β Style β
β βββββββββββββ βββββββββββββ βββββββββββββ β
β β
β βββββββββββββ βββββββββββββ βββββββββββββ β
β β Small β β Medium β β Large β Size β
β βββββββββββββ βββββββββββββ βββββββββββββ β
β β
β βββββββββββββ βββββββββββββ βββββββββββββ β
β β Default β β Hover β β Disabled β State β
β βββββββββββββ βββββββββββββ βββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Step 3: Define the properties of each variant
In the Design Panel set:
- Size=Small, Style=Primary, State=Default
- Size=Medium, Style=Secondary, State=Hover
- etc.Component Properties
A modern way to configure components without creating separate variants:
Button Component Properties:
β
βββ Text Property: "label"
β βββ Allows editing the instance text
β
βββ Boolean Property: "showIcon"
β βββ Show/hide the icon
β
βββ Instance Swap Property: "icon"
β βββ Swap the icon for another from the library
β
βββ Variant Property: "size", "style", "state"
βββ Choose a variant from the list
Usage in an instance:
βββββββββββββββββββββββββββββββββββββββ
β Properties Panel β
β β
β label: "Submit" [text field] β
β showIcon: βοΈ [checkbox] β
β icon: [arrow-right] [dropdown] β
β size: Medium [dropdown] β
β style: Primary [dropdown] β
β state: Default [dropdown] β
βββββββββββββββββββββββββββββββββββββββDesign Tokens and Styles
Color Styles
Colors (define in Local Styles):
β
βββ Primary
β βββ primary-500: #6366F1 (main)
β βββ primary-600: #4F46E5 (hover)
β βββ primary-400: #818CF8 (light)
β βββ primary-50: #EEF2FF (background)
β
βββ Neutral
β βββ gray-900: #111827 (text)
β βββ gray-500: #6B7280 (secondary)
β βββ gray-200: #E5E7EB (border)
β βββ gray-50: #F9FAFB (background)
β
βββ Semantic
β βββ success: #10B981
β βββ warning: #F59E0B
β βββ error: #EF4444
β βββ info: #3B82F6
β
βββ Surface
βββ background: #FFFFFF
βββ surface: #F9FAFB
βββ overlay: rgba(0,0,0,0.5)Text Styles
Typography (define in Local Styles):
β
βββ Display
β βββ display-2xl: 72px/90px, Bold
β βββ display-xl: 60px/72px, Bold
β
βββ Headings
β βββ heading-1: 48px/60px, Semibold
β βββ heading-2: 36px/44px, Semibold
β βββ heading-3: 30px/38px, Semibold
β βββ heading-4: 24px/32px, Semibold
β
βββ Body
β βββ body-lg: 18px/28px, Regular
β βββ body-md: 16px/24px, Regular
β βββ body-sm: 14px/20px, Regular
β
βββ Labels
β βββ label-lg: 14px/20px, Medium
β βββ label-md: 12px/16px, Medium
β βββ label-sm: 11px/16px, Medium
β
βββ Code
βββ code-md: 14px/20px, Mono, RegularEffect Styles
Effects (shadows, blurs):
β
βββ Shadows
β βββ shadow-sm: 0 1px 2px rgba(0,0,0,0.05)
β βββ shadow-md: 0 4px 6px rgba(0,0,0,0.1)
β βββ shadow-lg: 0 10px 15px rgba(0,0,0,0.1)
β βββ shadow-xl: 0 20px 25px rgba(0,0,0,0.15)
β
βββ Blurs
βββ blur-sm: 4px
βββ blur-md: 8px
βββ blur-lg: 16pxVariables (new feature)
Variables are a modern alternative to Styles, supporting:
- Dark mode
- Responsive breakpoints
- Aliasing
Variables Collections:
β
βββ Primitives (raw values)
β βββ blue-500: #6366F1
β βββ gray-900: #111827
β βββ spacing-4: 16px
β
βββ Semantic (aliases)
βββ color-primary: {blue-500}
βββ color-text: {gray-900}
βββ spacing-md: {spacing-4}
Modes:
βββ Light Mode
β βββ color-background: #FFFFFF
β
βββ Dark Mode
βββ color-background: #1F2937Dev Mode - Figma for developers
Dev Mode is a dedicated mode for programmers that makes it easier to translate designs into code.
Enabling Dev Mode
1. Click the "<>" toggle in the top-right corner
2. Or use Shift + D
3. The interface will switch to the developer viewDev Mode features
Property inspection:
/* Figma automatically generates CSS */
.button {
display: flex;
padding: 12px 24px;
justify-content: center;
align-items: center;
gap: 8px;
border-radius: 8px;
background: #6366F1;
/* Typography */
color: #FFF;
font-family: Inter;
font-size: 14px;
font-weight: 500;
line-height: 20px;
}Export to various formats:
CSS:
.element {
width: 200px;
height: 48px;
background: #6366F1;
border-radius: 8px;
}
iOS (SwiftUI):
Rectangle()
.frame(width: 200, height: 48)
.background(Color(hex: "6366F1"))
.cornerRadius(8)
Android (Compose):
Box(
modifier = Modifier
.size(width = 200.dp, height = 48.dp)
.background(Color(0xFF6366F1))
.clip(RoundedCornerShape(8.dp))
)Measuring distances:
In Dev Mode:
- Hover over an element β shows dimensions
- Hover between elements β shows spacing
- Alt + hover β detailed measurementsCode snippets and integrations
// Figma can generate snippets for frameworks
// React + Tailwind:
<button className="flex items-center gap-2 px-6 py-3
bg-indigo-500 hover:bg-indigo-600
text-white font-medium rounded-lg">
<IconPlus className="w-4 h-4" />
Add item
</button>
// React + styled-components:
const Button = styled.button`
display: flex;
align-items: center;
gap: 8px;
padding: 12px 24px;
background: #6366F1;
color: white;
font-weight: 500;
border-radius: 8px;
&:hover {
background: #4F46E5;
}
`;VS Code Extension
Figma for VS Code:
1. Install the "Figma for VS Code" extension
2. Connect to your Figma account
3. Browse Figma files directly in VS Code
4. Copy values without switching windows
5. Generate code from designsPrototyping
Figma enables creating interactive prototypes without writing any code.
Prototyping basics
1. Switch to the Prototype tab (right panel)
2. Select the source element (e.g. Button)
3. Drag the connector to the target frame
4. Configure the interaction
Interaction:
βββ Trigger: On click / On hover / On drag / While pressing
βββ Action: Navigate to / Open overlay / Swap variant / Scroll to
βββ Animation: Instant / Dissolve / Move in / Push / SlideSmart Animate
Smart Animate automatically animates differences between frames:
Frame 1: Card (collapsed)
βββ Thumbnail (100x100)
βββ Title
βββ Height: 150px
Frame 2: Card (expanded)
βββ Thumbnail (100x100)
βββ Title
βββ Description
βββ Actions
βββ Height: 300px
Smart Animate interpolates:
- Height: 150px β 300px
- Opacity of new elements: 0 β 1
- Element positionsInteractive Components
Button Component (with interactions):
β
βββ Default State
β βββ On hover β Hover State (Smart Animate)
β
βββ Hover State
β βββ On mouse leave β Default State
β βββ On click β Pressed State
β
βββ Pressed State
β βββ After delay (100ms) β Default State
β
βββ Disabled State
βββ No interactionsOverflow scrolling
Scrollable Frame:
βββ Width: 375px (fixed)
βββ Height: 667px (fixed)
βββ Overflow: Scroll vertically
β
βββ Content Frame
βββ Width: Fill container
βββ Height: Hug (1500px of content)
βββ Auto Layout: VerticalOverlay prototypes
Modal Overlay:
β
βββ Trigger Frame (Button "Open Modal")
β βββ On click β Open overlay
β
βββ Overlay (Modal Frame)
β βββ Position: Center
β βββ Background: #000 50% opacity
β βββ Close on clicking outside: β
β
βββ Close Button
βββ On click β Close overlayFigJam - whiteboarding
FigJam is a tool for visual collaboration, brainstorming, and planning.
FigJam use cases
1. Brainstorming
- Sticky notes with ideas
- Voting (stamps)
- Grouping and categorization
2. User Flow Diagrams
- Shapes (circles, rectangles)
- Connectors (arrows)
- Swimlanes
3. Planning
- Kanban boards
- Timelines
- Mind maps
4. Retrospectives
- What went well / What to improve
- Action items
- Team discussionsFigJam Templates
Available templates:
βββ Brainstorming
β βββ Mind Map
β βββ Affinity Diagram
β βββ Crazy 8s
β
βββ Meetings
β βββ Daily Standup
β βββ Sprint Retrospective
β βββ Team Sync
β
βββ Strategy
β βββ SWOT Analysis
β βββ Business Model Canvas
β βββ User Journey Map
β
βββ Agile
βββ Sprint Planning
βββ Kanban Board
βββ Story MappingPlugins and integrations
Must-have plugins
Design:
βββ Iconify - millions of icons (Material, Feather, etc.)
βββ Unsplash - free stock photos
βββ Remove BG - remove backgrounds from photos
βββ Blush - customizable illustrations
βββ Content Reel - avatars, names, lorem ipsum
Development:
βββ Figma to Code - export to React/Vue/HTML
βββ Tailwind CSS - Tailwind classes from designs
βββ Anima - export to React/Vue with interactions
βββ Storybook Connect - sync with Storybook
Productivity:
βββ Autoflow - automatic flow diagrams
βββ Similayer - find similar layers
βββ Rename It - batch renaming layers
βββ Instance Finder - find component usage
Accessibility:
βββ Stark - contrast, color blindness check
βββ A11y - accessibility annotations
βββ Color Blind - color blindness simulationInstalling plugins
1. Menu β Plugins β Browse plugins in Community
2. Search for a plugin
3. Click "Install"
4. Use via Menu β Plugins β [Name]
or Ctrl/Cmd + / (Quick Actions)Figma API
// Figma REST API - access files and comments
// Fetch a Figma file
const response = await fetch(
`https://api.figma.com/v1/files/${fileKey}`,
{
headers: {
'X-Figma-Token': process.env.FIGMA_TOKEN
}
}
);
const file = await response.json();
console.log(file.name);
console.log(file.document.children); // Pages
// Fetch images from a file
const imagesResponse = await fetch(
`https://api.figma.com/v1/images/${fileKey}?ids=${nodeIds}&format=png&scale=2`,
{
headers: {
'X-Figma-Token': process.env.FIGMA_TOKEN
}
}
);
const images = await imagesResponse.json();
// images.images = { nodeId: imageUrl, ... }Figma Plugin Development
// figma-plugin/code.ts
// Main plugin code
figma.showUI(__html__, { width: 300, height: 400 });
// Listen for messages from UI
figma.ui.onmessage = async (msg) => {
if (msg.type === 'create-rectangle') {
const rect = figma.createRectangle();
rect.x = 0;
rect.y = 0;
rect.resize(msg.width, msg.height);
rect.fills = [{ type: 'SOLID', color: { r: 1, g: 0.5, b: 0 } }];
figma.currentPage.appendChild(rect);
figma.currentPage.selection = [rect];
figma.viewport.scrollAndZoomIntoView([rect]);
}
figma.closePlugin();
};
// Plugin UI (ui.html)
// <script>
// document.getElementById('create').onclick = () => {
// parent.postMessage({
// pluginMessage: { type: 'create-rectangle', width: 100, height: 100 }
// }, '*');
// };
// </script>Design Systems in Figma
Design System structure
Design System Library:
β
βββ π Foundations
β βββ Colors (variables)
β βββ Typography (text styles)
β βββ Spacing (variables)
β βββ Shadows (effect styles)
β βββ Iconography
β
βββ π Primitives
β βββ Button
β βββ Input
β βββ Checkbox
β βββ Radio
β βββ Select
β βββ Toggle
β βββ Badge
β
βββ π Components
β βββ Card
β βββ Modal
β βββ Dropdown
β βββ Tabs
β βββ Toast
β βββ Tooltip
β
βββ π Patterns
β βββ Navigation
β βββ Forms
β βββ Tables
β βββ Empty States
β βββ Error States
β
βββ π Templates
βββ Dashboard
βββ Settings
βββ Profile
βββ Landing PagePublishing a library
1. Team Library:
- File β Publish Library
- Choose components to publish
- Add descriptions and examples
2. Using the library:
- Assets panel β Team library
- Drag components onto the canvas
- Automatic updates
3. Versioning:
- Publish with a change description
- Users see "Updates available"
- They can preview and accept changesComponent documentation
Component Page structure:
β
βββ Title & Description
β βββ What the component does
β
βββ Anatomy
β βββ Diagram of constituent parts
β
βββ Variants Showcase
β βββ All variants side by side
β
βββ Usage Guidelines
β βββ β
Do (good examples)
β βββ β Don't (bad examples)
β
βββ Properties Reference
β βββ Table of all properties
β
βββ Related Components
βββ Links to related onesCollaboration and Workflow
Collaboration modes
1. Editor (Full Access):
- Can edit everything
- Can publish changes
- Can manage members
2. Viewer (Can View):
- Can view and comment
- Can copy elements
- Cannot edit
3. Viewer-Restricted:
- Viewing only
- No copying
- No exportingComments and Feedback
Comments:
- Click C or the comment icon
- Click a spot on the canvas
- Write your comment
- @mention team members
Organization:
- Resolved/Unresolved
- Filter by author
- Filter by date
- Export commentsBranching (available on Team/Enterprise plans)
Main File (source of truth)
β
βββ Branch: Feature A
β βββ Experimental changes
β
βββ Branch: Feature B
β βββ New design
β
βββ Merge back to Main
βββ After review and approvalVersion History
1. File β Show Version History
2. Browse previous versions
3. Name important versions (milestones)
4. Restore a previous version
5. Duplicate a version as a new fileHandoff - delivering to developers
Preparing a design for handoff
Handoff checklist:
β‘ All elements are in components
β‘ You are using Auto Layout
β‘ Colors are in styles/variables
β‘ Typography is in styles
β‘ Layer names are meaningful
β‘ Variants cover all states
β‘ Spacing is consistent
β‘ Assets are exported (1x, 2x, 3x)
β‘ The prototype works
β‘ Dev Mode is enabledExporting assets
Export settings:
βββ Format: PNG / SVG / JPG / PDF
βββ Scale: 1x, 2x, 3x (for retina)
βββ Suffix: @2x, @3x
βββ Include "id" attribute (SVG)
Bulk export:
1. Select layers
2. Use the Slice tool or Export settings
3. Export selection (Ctrl/Cmd + Shift + E)
SVG for icons:
- Outline strokes before export
- Flatten groups
- Remove unnecessary groupsInspect Panel (Dev Mode)
Properties:
βββ Layout (x, y, width, height)
βββ Fill (colors, gradients)
βββ Stroke (border)
βββ Effects (shadows, blur)
βββ Typography (font, size, weight)
Code:
βββ CSS
βββ iOS (Swift)
βββ Android (XML)
Assets:
βββ Export button
βββ Format selectionBest Practices
File organization
Project Structure:
β
βββ π Cover
β βββ Thumbnail for the file
β
βββ π Index / TOC
β βββ Links to all pages
β
βββ π Foundations
β βββ Colors, Typography, Spacing
β
βββ π Components
β βββ All components with documentation
β
βββ π Feature A
β βββ Wireframes
β βββ High-fidelity
β βββ Prototypes
β
βββ π Feature B
β βββ ...
β
βββ π Archive
βββ Old versionsNaming conventions
Layers:
βββ Frames: PascalCase (Card, NavBar, Modal)
βββ Components: PascalCase (Button, Input)
βββ Variants: property=value (Size=Large)
βββ Instances: lowercase (icon, label)
Pages:
βββ π Cover
βββ π π¨ Design System
βββ π π± Mobile App
βββ π π» Web App
βββ π π¦ Archive
Groups/Sections:
βββ Header
βββ Hero
βββ Features
βββ Testimonials
βββ FooterPerformance
Optimization for large files:
β
βββ Limit components per page
βββ Avoid huge bitmaps
βββ Use vectors where possible
βββ Archive old versions
βββ Split large projects into files
βββ Use External LibrariesFigma pricing
Plans
Free:
βββ Price: $0
βββ 3 Figma projects
βββ 3 FigJam projects
βββ Unlimited viewers
βββ 30-day version history
βββ Mobile app
Professional:
βββ Price: $15/editor/month (billed annually)
βββ Unlimited projects
βββ Unlimited version history
βββ Shared libraries
βββ Dev Mode
βββ Private projects
βββ Advanced prototyping
Organization:
βββ Price: $45/editor/month
βββ Everything in Professional
βββ Design System Analytics
βββ Centralized libraries
βββ SSO
βββ Private plugins
βββ Org-wide libraries
Enterprise:
βββ Price: Custom
βββ Everything in Organization
βββ Dedicated support
βββ Advanced security
βββ Guest access controls
βββ REST APIFAQ - frequently asked questions
Is Figma better than Sketch?
For most teams, yes. Figma offers:
- Real-time collaboration (Sketch requires Cloud)
- Runs on any operating system (Sketch is macOS only)
- A free tier that is sufficient for many users
- Better Dev Mode and handoff
- More actively developed
Sketch might be better if:
- You work solo on a Mac
- You need specific Sketch plugins
- You have an existing Sketch workflow
Is Figma free?
Yes, the Free tier offers:
- 3 Figma projects
- 3 FigJam projects
- Unlimited viewers
- Basic features
This is enough for small projects and learning. For teams and larger projects you need Professional ($15/editor/mo).
How do you export from Figma to code?
- Dev Mode - built into Figma, CSS/iOS/Android
- Plugins:
- Figma to Code (React/Vue/HTML)
- Anima (full interactions)
- Locofy (no-code export)
- API - fetch JSON and generate code
How do you create responsive designs?
- Use Auto Layout everywhere
- Use Fill/Hug instead of fixed sizes
- Create frames for different breakpoints:
- Mobile: 375px
- Tablet: 768px
- Desktop: 1440px
- Use Constraints for absolutely positioned elements
How do you organize a Design System?
- Foundations - colors, typography, spacing as variables/styles
- Primitives - Button, Input, Checkbox as components
- Components - Card, Modal, Table with variants
- Patterns - Forms, Navigation, Empty States
- Publish as a Team Library
How do you collaborate with developers?
- Dev Mode - enable it and share the link
- Comments - tag @developer with questions
- Handoff checklist - make sure the design is complete
- Naming - meaningful layer names
- Documentation - describe behaviors in comments
Summary
Figma is currently the most popular and versatile UI/UX design tool, offering:
- Real-time collaboration - Teamwork without conflicts
- Auto Layout - Responsive layouts like CSS Flexbox
- Components & Variants - Scalable design systems
- Dev Mode - Dedicated mode for developers
- Prototyping - Interactive prototypes without coding
- FigJam - Whiteboarding and planning
- Plugin ecosystem - Extensibility
Whether you are a designer, developer, or product manager - Figma provides the tools for effective collaboration and creating outstanding digital products.