Warum ich als Designer nie wieder ohne Browser-DevTools arbeiten will

· 12 min
DesignDevelopment

Ich kenne den Moment, in dem ein Design stirbt. Es ist nicht der Moment, in dem ein Stakeholder es ablehnt. Es ist der Moment, in dem ein Entwickler ⌘+Option+I drückt, in den echten Browser schaut und feststellt, dass das, was in Figma so sauber aussah, mit echtem Content, echten Schriftmetriken und einem echten Viewport überhaupt nicht funktioniert. Bis dahin war das Design nur eine Behauptung. Ab diesem Moment ist es eine Tatsache — und die meisten Designer sind nicht im Raum, wenn diese Tatsache entsteht.

Das ist die These, die ich vertreten will: Ein Designer, der nie die DevTools öffnet, designt für eine Welt, die nicht existiert. Er designt für Frames mit fixer Breite, für Text, den er selbst eingetippt hat, für Zustände, die er sich vorgestellt hat, statt sie zu erzwingen und zu beobachten. Das ist keine böswillige Unterstellung — es ist einfach die Konsequenz eines Werkzeugs, das absichtlich so gebaut ist, dass es keine Fehler zeigt. Figma kann gar nicht scheitern. Ein Frame rendert immer, egal wie unsinnig die Konstellation ist, die du hineinlegst. Der Browser dagegen scheitert ständig, laut, sichtbar — und genau da liegt der Wert.

Der Moment, der meine Arbeitsweise verändert hat

Bei Oetker Digital war ich explizit in ein Engineering-Team gestafft — keine Design-Abteilung mit eigenem Flur, sondern ein Platz zwischen den Entwicklern, mit dem expliziten Auftrag, die Lücke zwischen Design und produktivem Code zu schließen. Das klingt nach einer organisatorischen Randnotiz, war aber der Punkt, an dem sich meine Arbeitsweise komplett verschoben hat. Ich saß nicht mehr zwei Meetings entfernt vom Code — ich saß daneben, sah, wie meine Mockups im Branch landeten, und wurde ziemlich schnell mit der Realität konfrontiert, dass “sieht in Figma gut aus” und “verhält sich im Browser gut” zwei fundamental unterschiedliche Aussagen sind.

Die Validierung komplexer technischer Anforderungen passierte bei mir seitdem nicht mehr über Wireframes, sondern über funktionale Mockups — und um die zu bauen und zu prüfen, brauchte ich die DevTools nicht als Notlösung, sondern als tägliches Werkzeug. Ich habe gelernt, den Elements-Tab genauso selbstverständlich zu öffnen wie die Farbpalette in Figma. Das war kein Entwickler-Move, den ich mir angeeignet habe, um kompetent zu wirken. Es war die einzige Möglichkeit, Entscheidungen zu treffen, die im echten Produkt überleben.

Was DevTools zeigen, das Figma niemals zeigen kann

Der Kern des Problems ist simpel: Figma ist ein Design-Tool, kein Rendering-Environment. Es simuliert CSS, aber es ist nicht CSS. Wer in Figma “Auto Layout” nutzt, arbeitet mit einer Annäherung an Flexbox — einer sehr guten Annäherung mittlerweile, aber eben doch mit einer Kopie, die an entscheidenden Stellen abweicht. Der Browser dagegen zeigt dir das Original.

Der Box-Modell-Inspector im Elements-Tab ist dabei das unterschätzteste Werkzeug, das ich kenne. Er zeigt dir nicht, was du dir vorstellst, dass ein Element an Padding, Margin und Border hat — er zeigt dir, was tatsächlich berechnet wurde, nachdem Vererbung, Box-Sizing und Browser-Defaults durchgelaufen sind. Ich habe unzählige Design-Diskrepanzen gesehen, bei denen ein Designer auf ein “zu enges” Padding zeigte, während das eigentliche Problem eine geerbte line-height war, die den sichtbaren Weißraum größer wirken ließ, als er tatsächlich war. Ohne den Computed-Tab — die Ansicht, die dir zeigt, welcher CSS-Wert nach der gesamten Kaskade tatsächlich gewinnt — führt man dieses Gespräch im Blindflug.

Der :hover-, :focus- und :active-Force-Modus (in Chrome über das kleine :hov-Icon im Styles-Panel erreichbar) ist der zweite Baustein. Interaktive Zustände sind in Figma statische Frames, die man manuell nebeneinanderlegt und hofft, dass sie synchron bleiben, wenn sich das Design ändert. Im Browser kannst du den tatsächlichen :focus-visible-Zustand einer Komponente erzwingen und sehen, ob der Fokusring wirklich da ist, wo du ihn haben willst — nicht in einer separaten Figma-Variante, sondern im echten, gerenderten Element, mit dem echten Outline-Offset, den echten Farbwerten nach color-mix().

Die Rendering-Tab-Emulation für prefers-reduced-motion und prefers-color-scheme ist der dritte Punkt, den ich seit dem Bau dieser eigenen Website nicht mehr missen will. Ich habe für die Micro-Interactions hier — den Custom Cursor, die Magnetic Buttons, den Text-Reveal — jede Animation gegen prefers-reduced-motion: reduce getestet, indem ich sie direkt im DevTools-Rendering-Panel simuliert habe, ohne die Systemeinstellung meines eigenen Rechners ändern zu müssen. Das ist kein Nice-to-have für Accessibility-Enthusiasten. Es ist die einzige Möglichkeit, zu verifizieren, dass eine Bewegung wirklich verschwindet, wenn sie verschwinden soll, statt es einfach zu behaupten, weil man den entsprechenden CSS-Media-Query irgendwo hingeschrieben hat.

Der Accessibility-Tree — das Interface, das die meisten Designer nie sehen

Was mich am meisten überrascht hat, als ich anfing, DevTools ernsthaft zu nutzen: Es gibt ein komplett zweites Interface, das parallel zum visuellen existiert — den Accessibility-Tree. Im Elements-Tab, unter “Accessibility”, siehst du genau das, was ein Screenreader tatsächlich vorliest: Rollen, Labels, den Zustand von aria-expanded, die Reihenfolge, in der ein Nutzer mit Tastatur durch dein Interface wandert.

Das ist ein Bereich, in dem visuelles Design und tatsächliches Nutzererlebnis komplett auseinanderfallen können, ohne dass man es im Frame sieht. Ein Button kann in Figma perfekt aussehen und trotzdem im Accessibility-Tree als “leer” ankommen, weil das zugrundeliegende <div> kein semantisches <button> ist und niemand ein aria-label gesetzt hat. Wenn ich mit shadcn/ui und Radix UI arbeite — wie auf dieser Website —, verlasse ich mich bewusst darauf, dass Radix diese Zustände korrekt verdrahtet. Aber “verlassen” heißt nicht “blind vertrauen”. Ich öffne den Accessibility-Tree, um zu prüfen, ob ein Dialog tatsächlich als role="dialog" mit korrektem aria-modal ankommt, bevor ich das als erledigt abhake. Das ist der Unterschied zwischen einem Design, das barrierefrei aussieht, und einem, das es ist.

Network-Tab: Performance ist eine Design-Entscheidung, keine Entwickler-Aufgabe

Der zweite Bereich, in dem DevTools mein Denken verändert haben, ist Performance — und zwar nicht als abstraktes Qualitätsmerkmal, sondern als unmittelbar wahrnehmbarer Teil der User Experience. Der Network-Tab mit aktivierter Drosselung (Chrome bietet “Slow 3G” und “Fast 3G” als Presets) zeigt dir etwas, das kein Figma-Prototyp je zeigen wird: wie sich dein Interface anfühlt, wenn die Bilder noch nicht geladen sind, wenn der Font-Request noch unterwegs ist, wenn zwischen erstem Paint und interaktivem Zustand zwei Sekunden liegen, in denen der Nutzer auf etwas klickt, das noch nicht reagiert.

Ich nehme das inzwischen als festen Bestandteil meines Designprozesses, nicht als nachgelagerten Performance-Check. Eine Entscheidung wie “Lazy-Load dieses Bild erst, wenn es sichtbar wird” — genau das Prinzip, das Astro mit client:visible für Komponenten anbietet — ist eine Design-Entscheidung, weil sie bestimmt, was der Nutzer in der ersten Sekunde sieht und was nicht. Ohne den Network-Tab würde ich das nie in Millisekunden messen, sondern nur behaupten, dass “es sich schnell anfühlt”. Mit dem Network-Tab sehe ich die Wasserfall-Grafik: welcher Request blockiert, welcher parallel läuft, ob mein Custom-Font FOIT (Flash of Invisible Text) oder FOUT (Flash of Unstyled Text) produziert. Genau diese Entscheidung — Geist als lokales npm-Paket statt über ein Google-Fonts-CDN zu laden — habe ich getroffen, weil ich im Network-Tab gesehen habe, wie viel Latenz ein externer Font-Request unter schlechten Netzwerkbedingungen tatsächlich kostet, nicht weil “kein CDN” abstrakt gut klingt.

Der Grid- und Flexbox-Overlay: Layout-Debugging ohne Rätselraten

Chrome und Firefox bieten beide ein visuelles Overlay für CSS Grid und Flexbox direkt im Elements-Tab — man klickt auf das kleine “grid”- oder “flex”-Badge neben einem Element, und der Browser zeichnet die tatsächlichen Spurgrenzen, Gaps und Alignment-Linien direkt über das Element. Das ist der Moment, in dem CSS Grid für mich von einer Blackbox zu einem Werkzeug wurde, mit dem ich genauso selbstverständlich arbeite wie mit Auto Layout in Figma.

Der entscheidende Unterschied: In Figma siehst du das Ergebnis eines Layout-Systems. Im Grid-Overlay siehst du das System selbst — welche Spalte wie breit ist, wo eine fr-Einheit greift, warum ein Element in eine Zeile rutscht, die du nicht erwartet hast. Ich nutze das aktiv beim Debuggen von responsiven Layouts, gerade bei Komponenten mit grid-template-columns: repeat(auto-fit, minmax(...)) — ein Muster, das in Figma überhaupt nicht abbildbar ist, weil es sich dynamisch an verfügbaren Platz anpasst, nicht an eine feste Spaltenzahl. Wer ein solches Layout nur in Figma entwirft, entwirft zwangsläufig eine Vereinfachung der Wahrheit.

Warum der klassische Handover-Prozess tot ist

Hier wird meine Position bewusst zugespitzt: Der Handover-Prozess in der Form, wie ihn die meisten Teams noch praktizieren — Designer exportiert Frames, schreibt Anmerkungen in Figma-Kommentare, wirft das Ganze über den Zaun an ein Entwicklungsteam, das sich dann durch Redlines wühlt — ist tot. Nicht “veraltet”, nicht “verbesserungswürdig”. Tot. Wer 2026 noch so arbeitet, verbrennt Budget und produziert Interfaces, die in der Theorie stimmen und in der Praxis an echtem Content, echten Edge Cases und echten Browsern zerbrechen.

Der Grund ist nicht, dass Kommunikation zwischen Design und Entwicklung “wichtig” ist — das ist eine Konsens-Floskel, die niemandem weiterhilft. Der Grund ist, dass ein statisches Bild eines Interfaces strukturell unfähig ist, die Fragen zu beantworten, die beim Bauen tatsächlich auftauchen: Was passiert, wenn der Name des Nutzers 40 statt 8 Zeichen hat? Was passiert, wenn die Netzwerkverbindung schlecht ist? Was passiert, wenn ein Screenreader das Element vorliest? Ein Redline-Kommentar in Figma kann all das behaupten. Nur der Browser kann es beweisen.

Bei Oetker Digital habe ich erlebt, was die Alternative kostet, wenn man sie nicht ernst nimmt: Ein embedded Designer, der Mockups baut, die er selbst nie im Browser geprüft hat, produziert Redesigns, die im Sprint Review gut aussehen und in der Entwicklung drei zusätzliche Ping-Pong-Runden brauchen, weil jede Diskrepanz erst mühsam in Worte gefasst werden muss, statt einfach gemeinsam im Inspector angeschaut zu werden. Der Handover verschwindet nicht, weil man ein neues Tool kauft. Er verschwindet, weil Design und Entwicklung an derselben Quelle der Wahrheit arbeiten — und diese Quelle ist der gerenderte Browser, nicht die Figma-Datei.

Figmas Dev Mode ist ein Trostpflaster, kein Ersatz

Figma hat mit dem Dev Mode reagiert — einer Ansicht, die CSS-Snippets, Abstände und Redlines automatisch generiert. Das ist eine echte Verbesserung gegenüber dem alten Zustand, in dem Entwickler Werte händisch aus Layer-Panels abgelesen haben. Aber ich will hier keine Konsens-Aussage treffen, die suggeriert, Dev Mode löse das Problem. Er löst nur die Hälfte.

Dev Mode zeigt dir CSS, das Figma aus dem Design ableitet — nicht CSS, das tatsächlich läuft. Ein generierter padding: 24px 16px ist eine Behauptung über die Absicht, keine Aussage über das, was nach der Kaskade, nach ererbten Werten, nach Browser-Resets tatsächlich am Element ankommt. Der Dev Mode kann dir nicht zeigen, wie sich ein Flex-Container verhält, wenn der Content variabel lang ist, weil er nie mit echtem Content arbeitet. Er kann dir nicht zeigen, ob ein Fokusring tatsächlich sichtbar ist, weil er keine Tastaturnavigation simuliert. Er kann dir keine Performance-Daten liefern, weil er kein Netzwerk simuliert. Dev Mode ist eine bessere Übersetzung zwischen zwei Sprachen. Die DevTools sind die Muttersprache selbst.

Wie ich DevTools tatsächlich in meinen Design-Alltag integriere

Konkret sieht mein Workflow inzwischen so aus: Sobald ein Design über den reinen Explorationszustand hinaus ist — sobald es also eine reale Chance hat, gebaut zu werden —, prüfe ich es nicht mehr ausschließlich in Figma, sondern baue einen groben, funktionalen Prototypen (oft direkt mit den echten shadcn/ui-Komponenten und Tailwind-Klassen, die im Zielsystem ohnehin verwendet werden) und öffne ihn im Browser neben Figma. Diese Doppelspur ist bewusst: Figma bleibt das Werkzeug für schnelle visuelle Exploration, weil es dafür nach wie vor unschlagbar ist. Aber jede Entscheidung, die tatsächlich production-relevant wird, verifiziere ich im Inspector.

Das bedeutet konkret: Ich setze den Viewport im Device-Toolbar nicht auf ein einziges “Desktop”-Preset, sondern teste echte Breakpoints — 375px, 768px, 1280px — und beobachte, wo ein Layout bricht, nicht wo ich vermute, dass es bricht. Ich öffne die Lighthouse-Integration, um mir vor jedem größeren Release-Kandidaten einen Accessibility-Score geben zu lassen, der auf echten DOM-Daten basiert, nicht auf meiner Einschätzung als Designer. Ich nutze den Contrast-Ratio-Checker, der direkt im Color-Picker des Styles-Panels eingebaut ist, um Farbkombinationen gegen WCAG-Werte zu prüfen, bevor ich sie in ein Token gieße — statt hinterher einen Accessibility-Audit zu bekommen, der mir sagt, dass mein sorgfältig gewähltes Sandgelb-auf-Weiß einen Kontrastwert von 2.1 hat.

Was das für Design Systems und meine Arbeit als Design Engineer bedeutet

Der Sysadmin-Hintergrund, den ich mitbringe, hat mir früh eine Denkweise eingeimpft, die sich hier wieder zeigt: Vertraue keiner Behauptung über ein System, die du nicht selbst am System verifizieren kannst. Ein Server-Log lügt nicht — ein Architekturdiagramm kann lügen, wenn die Realität längst abgewichen ist. Genauso verhält es sich mit Interfaces: Eine Figma-Datei kann eine veraltete, geschönte oder schlicht falsche Repräsentation dessen sein, was tatsächlich im Produkt läuft. Die DevTools sind für mich das Äquivalent zum Server-Log — die Quelle, die nicht interpretiert, sondern zeigt.

Das prägt inzwischen auch, wie ich Design Systems aufbaue. Ein Token ist für mich erst dann fertig, wenn ich ihn im Computed-Tab nachvollzogen habe — wenn ich sehe, dass --radius-lg tatsächlich mit dem berechneten border-radius übereinstimmt, das am Element ankommt, nicht nur mit dem, was ich in die CSS-Variable geschrieben habe. Diese Gewohnheit hat mir in der Praxis wiederholt Fehler erspart, die sonst erst im QA-Review aufgefallen wären: falsch kaskadierte Spezifitäten, Tailwind-Utility-Klassen, die sich gegenseitig überschreiben, CSS-Custom-Properties, die in einem verschachtelten Component-Kontext nicht das taten, was ich erwartet hatte.

Am Ende ist das die eigentliche Verschiebung, die ich bei mir beobachte: Ich bin nicht “Designer, der jetzt auch ein bisschen Code kann”. Ich bin jemand, der eine Design-Entscheidung erst für getroffen hält, wenn sie im gerenderten Browser verifiziert wurde — mit echtem Content, echten Zuständen, echten Netzwerkbedingungen. Figma bleibt das Werkzeug, mit dem ich denke. Die DevTools sind das Werkzeug, mit dem ich weiß, dass ich recht habe. Wer als Designer nur das erste benutzt, arbeitet mit Meinungen. Wer beide benutzt, arbeitet mit Tatsachen — und genau das ist der Unterschied, den ein Produktteam am Ende tatsächlich spürt, lange bevor irgendjemand darüber redet, wie “technisch” ein Designer eigentlich sein sollte.