Codex: Od screenshota do kodu – AI implementuje UI

Codex: Od screenshota do kodu – AI implementuje UI

Masz mockup w Figmie albo screenshot z Dribbble. Codex może zamienić go w działający kod – w twoim frameworku, z twoimi komponentami, gotowy do integracji.

  1. Image inputs: przeciągnij mockup
  2. Constraints: framework i komponenty
  3. Iteracyjny workflow
  4. Figma MCP: pełna integracja
  5. Rozwiązywanie problemów
  6. Co Codex zrobi dobrze, a co nie

Image inputs: przeciągnij mockup

W sesji CLI możesz przeciągnąć obrazek bezpośrednio do terminala. Codex zobaczy:

  • Screenshoty aplikacji
  • Mockupy z Figmy/Sketch
  • Zdjęcia UI z telefonu
  • Diagramy i wireframe-y
text
> [przeciągasz screenshot dashboardu]
> zaimplementuj ten dashboard w React z Tailwind

Codex analizuje layout, kolory, typography i generuje kod pasujący do obrazka.

Im wyższa jakość obrazka, tym lepszy wynik. Screenshoty w 2x resolution działają lepiej niż skompresowane JPEG-i. Unikaj mocnej kompresji – artefakty utrudniają rozpoznanie szczegółów UI.

Obsługiwane formaty:

  • PNG (zalecany dla UI – bezstratna kompresja)
  • JPEG (dla zdjęć, ale unikaj niskiej jakości)
  • WebP
  • GIF (tylko pierwszy frame)

Maksymalne wymiary: Codex radzi sobie najlepiej z obrazkami do 4096×4096 pikseli. Większe są skalowane, co może obniżyć jakość detali.

Constraints: framework i komponenty

Sam obrazek to za mało. Podaj kontekst:

text
> zaimplementuj ten ekran używając:
> - React + TypeScript
> - shadcn/ui dla komponentów
> - Tailwind CSS
> - istniejący hook useAuth() dla danych użytkownika
ConstraintPrzykład
FrameworkReact, Vue, Svelte, Next.js
StylingTailwind, CSS Modules, styled-components
Komponentyshadcn/ui, MUI, własna biblioteka
RoutingReact Router, Next.js App Router
StateuseState, Zustand, Redux

Codex przeczyta twoje istniejące pliki i dopasuje styl do projektu. Jeśli używasz już Button z shadcn/ui, nowy kod też będzie go używał.

Pro tip: Jeśli masz design system, daj Codexowi przykład istniejącego komponentu jako referencję:

text
> zaimplementuj ten formularz w stylu naszego istniejącego
> komponentu LoginForm.tsx – użyj tych samych patternów

Iteracyjny workflow

Design-to-code rzadko działa za pierwszym razem. Workflow wygląda tak:

  1. Mockup → kod – pierwsza wersja
  2. Preview – uruchom npm run dev, sprawdź wynik
  3. Feedback – „zmień padding na większy", „przycisk powinien być po prawej"
  4. Tweak – Codex poprawia
  5. Repeat – aż będzie dobrze
text
> [screenshot poprawionego UI]
> teraz wygląda tak – zmień margines między kartami

Możesz pokazywać Codexowi screenshoty tego co wygenerował i iterować wizualnie. To potężna technika: zamiast opisywać problem słowami, pokazujesz różnicę między oczekiwanym a aktualnym wyglądem.

Przykładowy workflow dla karty produktu:

text
Iteracja 1: "zaimplementuj tę kartę produktu"
→ Codex generuje strukturę
Iteracja 2: "cień jest za mocny, zdjęcie powinno być większe"
→ Codex poprawia style
Iteracja 3: [screenshot] "wyrównaj cenę do tego co pokazuję"
→ Codex dopasowuje layout
Iteracja 4: "dodaj hover state jak w naszym design systemie"
→ Gotowe

Figma MCP: pełna integracja

Zamiast screenshotów możesz podłączyć Figmę przez MCP:

text
> pobierz design z Figma frame "Dashboard v2"
> zaimplementuj w Next.js
  • Dostęp do wszystkich frame-ów i komponentów
  • Dokładne kolory, typography, spacing z design tokens
  • Auto-sync gdy designer zmieni design
  • Eksport assetów (ikony, obrazki)

To znacznie dokładniejsze niż screenshot – Codex ma dostęp do surowych danych designu, nie tylko pikseli.

Konfiguracja Figma MCP:

json
{
  "mcpServers": {
    "figma": {
      "command": "npx",
      "args": ["-y", "@anthropic/mcp-server-figma"],
      "env": {
        "FIGMA_ACCESS_TOKEN": "twój-token"
      }
    }
  }
}

Rozwiązywanie problemów

Problem: Codex generuje layout zupełnie inny niż na mockupie

Rozwiązanie: Dodaj więcej kontekstu. Opisz strukturę słownie:

text
> to jest dashboard z:
> - sidebar po lewej (250px szerokości)
> - header na górze (64px wysokości)
> - główna treść z 3 kartami w gridzie

Problem: Kolory nie pasują

Rozwiązanie: Podaj konkretne wartości lub zmienne z design systemu:

text
> użyj tych kolorów:
> - primary: #3B82F6
> - background: #F8FAFC
> - text: #1E293B

Problem: Codex ignoruje istniejące komponenty

Rozwiązanie: Wskaż konkretne pliki:

text
> użyj komponentów z src/components/ui/
> szczególnie Button, Card i Input

Problem: Wygenerowany kod nie jest responsywny

Rozwiązanie: Dodaj breakpoints jako constraint:

text
> mobile-first, breakpoints:
> - sm: 640px
> - md: 768px
> - lg: 1024px
> kafelki: 1 kolumna na mobile, 2 na md, 3 na lg

Co Codex zrobi dobrze, a co nie

✅ Działa dobrze⚠️ Wymaga poprawek
Statyczne layoutyZłożone animacje
Standardowe komponentyNiestandardowe interakcje
Responsywność (z guidance)Pixel-perfect na 100%
Integracja z istniejącym kodemOdtworzenie brand identity

Codex to narzędzie do przyspieszenia, nie zastąpienia. Wygenerowany kod to 70-80% drogi – resztę dopieszczasz ręcznie lub kolejnymi iteracjami z AI.

Najlepsze wyniki gdy:

  • Masz jasno zdefiniowany design system
  • Używasz popularnych frameworków
  • Podajesz dużo kontekstu w promptach
  • Iterujesz zamiast oczekiwać perfekcji za pierwszym razem

Więcej o workflow z obrazkami w artykule o praktycznych workflow.