Linear: Der neue Standard für Softwaredesign
Wie Linear zum Design-Standard für moderne Software wurde: Tastatur-first UX, optimistische UI, Befehlspalette und Dark Mode. Mit CSS- und TypeScript-Implementierungsmustern.
Linear: Der neue Standard für Software-Design
„Software sollte eine klare Meinung vertreten und schnell sein." — Karri Saarinen, Linear CEO
Linear ist ein Projektmanagement-Tool, das neu definiert hat, wie sich moderne Software anfühlen kann. 2019 von ehemaligen Uber- und Airbnb-Designern gegründet, beweist es, dass B2B-Software weder hässlich noch langsam sein muss.
Warum Linear wichtig ist
Linear ist ein Design-Statement gegen aufgeblähte, von Gremien entworfene Enterprise-Software. Es zeigt, was passiert, wenn Designer für Designer entwickeln.
Zentrale Errungenschaften: - Enterprise-Software fühlt sich an wie Consumer-Software - Beweis, dass Keyboard-first-Interfaces schön sein können - Demonstration, dass Performance ein Feature ist - Neue Messlatte für SaaS-Produktqualität gesetzt
Wichtigste Erkenntnisse
- Geschwindigkeit ist ein Feature, keine Metrik - Linears obsessiver Fokus auf Interaktionen unter 100ms beweist, dass wahrgenommene Performance emotionale Reaktionen erzeugt
- Keyboard-first bedeutet Power-User gewinnen - Command Palette (Cmd+K) und mnemonische Shortcuts (S für Status, P für Priority) beschleunigen Experten, ohne Anfänger auszubremsen
- Informationsdichte schlägt Whitespace - Mehr Daten mit weniger Chrome zeigen; Details bei Hover einblenden statt hinter Klicks zu verstecken
- Dark Mode als primäre Erfahrung - Dark-first zu designen erzeugt eine Premium-Ästhetik und reduziert Augenbelastung für Power-User
- Optimistic UI eliminiert Wartezeiten - Erst lokal aktualisieren, im Hintergrund synchronisieren und Fehler nur anzeigen, wenn sie tatsächlich auftreten
Grundlegende Design-Prinzipien
1. Geschwindigkeit als Feature
Linear ist obsessiv schnell. Jede Interaktion fühlt sich sofort an.
Wie sie das erreichen: - Optimistic UI Updates (Erfolg annehmen, bei Fehler zurückrollen) - Local-first-Architektur - Aggressives Caching - Minimale Netzwerkanfragen
Implementierungsdetail:
// Optimistic update pattern
function updateIssue(id: string, changes: Partial<Issue>) {
// 1. Update local state immediately
localStore.update(id, changes)
// 2. Show success state
ui.showSaved()
// 3. Sync with server in background
api.updateIssue(id, changes).catch(() => {
// 4. Rollback only on failure
localStore.rollback(id)
ui.showError()
})
}
Design-Anwendung: - Ladezustände sollten wenn möglich unsichtbar sein - Skeleton Screens nur wenn nötig - Den Nutzer niemals von seiner nächsten Aktion blockieren
2. Keyboard-First, Mouse-Friendly
Linear ist für Power-User konzipiert, aber einladend für Anfänger.
Die Command Palette (Cmd+K): - Universeller Einstiegspunkt für alle Aktionen - Fuzzy Search über alles - Keyboard Shortcuts entdeckbar - Erfordert nie das Verlassen der Tastatur
┌────────────────────────────────────────────────────────────┐
│ Cmd+K │
├────────────────────────────────────────────────────────────┤
│ > Search issues, projects, or commands... │
│ │
│ Recent │
│ ├─ FE-123 Fix navigation animation Cmd+O │
│ ├─ BE-456 API rate limiting Cmd+O │
│ └─ Create new issue C │
│ │
│ Commands │
│ ├─ Change status S │
│ ├─ Assign issue A │
│ └─ Set priority P │
│ │
└────────────────────────────────────────────────────────────┘
Implementierungsprinzipien: - Jede Aktion hat einen Keyboard Shortcut - Shortcuts sind mnemonisch (S für Status, P für Priority) - Maus funktioniert einwandfrei. Tastatur ist schneller - Hilfe ist immer nur einen Tastendruck entfernt
3. Informationsdichte richtig gemacht
Linear zeigt viele Informationen, ohne überladen zu wirken.
Wie sie Dichte ausbalancieren:
ÜBERLADEN (typische Enterprise-Software):
┌────────────────────────────────────────────────────────────┐
│ [ ] * FE-123 | Fix bug | John | High | In Progress | 2d │
│ Tags: frontend, urgent, sprint-12, reviewed │
│ Created: Jan 1 | Updated: Jan 5 | Due: Jan 10 │
│ Comments: 5 | Attachments: 2 | Subtasks: 3/5 │
├────────────────────────────────────────────────────────────┤
│ [ ] * FE-124 | Another bug | Jane | Medium | Todo | 1d │
│ ... (alle Metadaten wiederholt) │
└────────────────────────────────────────────────────────────┘
LINEARS ANSATZ:
┌────────────────────────────────────────────────────────────┐
│ [x] FE-123 Fix navigation animation bug ^ John ** │
│ [ ] FE-124 Update user profile endpoint Jane * │
│ [x] FE-125 Add dark mode toggle ^ Alex ***│
└────────────────────────────────────────────────────────────┘
^ ^
Priority Assignee Estimate
(caret) (name) (dots)
Prinzipien: - Nur zeigen, was auf jeder Ebene benötigt wird - Icons und Symbole statt Textlabels verwenden - Details bei Hover/Auswahl einblenden - Progressive Disclosure bei Bedarf
4. Konsistente visuelle Sprache
Linears Design-System ist stimmig und konsistent.
Farbsystem:
/* Linear-inspirierte semantische Farben */
:root {
/* Statusfarben - stark gesättigt, unterscheidbar */
--status-backlog: #6B7280; /* Grau - nicht begonnen */
--status-todo: #3B82F6; /* Blau - bereit */
--status-progress: #F59E0B; /* Amber - in Arbeit */
--status-done: #10B981; /* Grün - abgeschlossen */
--status-cancelled: #EF4444; /* Rot - abgebrochen */
/* Priorität - konsistente Farbverschiebung */
--priority-urgent: #EF4444; /* Rot */
--priority-high: #F97316; /* Orange */
--priority-medium: #EAB308; /* Gelb */
--priority-low: #6B7280; /* Grau */
--priority-none: #374151; /* Dunkelgrau */
/* Oberflächenhierarchie */
--bg-primary: #0D0D0D; /* Haupthintergrund */
--bg-elevated: #141414; /* Karten, Panels */
--bg-hover: #1F1F1F; /* Hover-Zustände */
--bg-active: #292929; /* Aktiv/ausgewählt */
}
Typografie:
/* Linear verwendet Inter für alles */
:root {
--font-family: 'Inter', -apple-system, sans-serif;
/* Enge Skalierung, hohe Lesbarkeit */
--text-xs: 11px; /* Metadaten */
--text-sm: 12px; /* Sekundär */
--text-base: 13px; /* Fließtext (kleiner als üblich) */
--text-lg: 14px; /* Hervorhebung */
--text-xl: 16px; /* Überschriften */
--text-2xl: 20px; /* Seitentitel */
}
5. Dark Mode als Standard
Linear hat Dark Mode als primäre Erfahrung gewählt.
Warum das funktioniert: - Reduziert Augenbelastung für Power-User (lange Arbeitstage) - Erzeugt eine fokussierte Premium-Ästhetik - Lässt Statusfarben hervorstechen - Passt zur Ästhetik von Developer Tools
Implementierung:
/* Dark-first Design */
:root {
color-scheme: dark;
--text-primary: rgba(255, 255, 255, 0.95);
--text-secondary: rgba(255, 255, 255, 0.65);
--text-tertiary: rgba(255, 255, 255, 0.45);
--border-default: rgba(255, 255, 255, 0.08);
--border-hover: rgba(255, 255, 255, 0.12);
}
/* Light mode as override */
[data-theme="light"] {
--text-primary: rgba(0, 0, 0, 0.90);
--text-secondary: rgba(0, 0, 0, 0.60);
/* ... */
}
6. Mikro-Interaktionen, die begeistern
Jede Interaktion in Linear wurde sorgfältig durchdacht.
Beispiele: - Issue-Karten heben sich beim Hover leicht an - Statusänderungen haben subtile Farbübergänge - Drag-and-Drop hat flüssige, physikbasierte Bewegungen - Checkboxen haben zufriedenstellendes Klick-Feedback
Animationsprinzipien:
/* Linear's motion */
:root {
--ease-out: cubic-bezier(0.16, 1, 0.3, 1);
--ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
--duration-fast: 100ms; /* Micro feedback */
--duration-normal: 150ms; /* Standard transitions */
--duration-slow: 250ms; /* Page transitions */
}
.issue-card {
transition:
transform var(--duration-fast) var(--ease-out),
box-shadow var(--duration-normal) var(--ease-out);
}
.issue-card:hover {
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
Design-Muster zum Lernen
Die Command Palette
Linears Cmd+K ist mittlerweile ein erwartetes Muster in moderner Software.
Implementierungsleitfaden:
<!-- Command palette structure -->
<dialog class="command-palette" aria-label="Command menu">
<header>
<input
type="text"
placeholder="Search issues or commands..."
aria-describedby="command-hint"
/>
</header>
<nav aria-label="Command results">
<section aria-label="Recent">
<h3>Recent</h3>
<ul role="listbox">
<li role="option" tabindex="0">
<span class="issue-id">FE-123</span>
<span class="issue-title">Fix bug</span>
<kbd>Cmd+O</kbd>
</li>
</ul>
</section>
<section aria-label="Commands">
<h3>Commands</h3>
<!-- ... -->
</section>
</nav>
</dialog>
Kontextmenüs
Rechtsklick-Menüs, die genau das zeigen, was Sie brauchen.
Right-click on issue:
┌────────────────────────────────┐
│ Open issue Cmd+O │
│ Open in new tab Cmd+Shft+O │
├────────────────────────────────┤
│ Set status S │
│ Set priority P │
│ Assign A │
├────────────────────────────────┤
│ Copy link Cmd+C │
│ Copy ID │
├────────────────────────────────┤
│ Delete Backspace│
└────────────────────────────────┘
Inline-Bearbeitung
Bearbeiten ohne modale Dialoge.
BEFORE (click to edit):
┌────────────────────────────────────────┐
│ Fix navigation bug [Edit] │
└────────────────────────────────────────┘
AFTER (inline edit on click):
┌────────────────────────────────────────┐
│ Fix navigation bug| │ ← Cursor appears
│ ────────────────── │ in place
└────────────────────────────────────────┘
Was man von Linear übernehmen sollte
Für jedes Softwareprojekt
- Geschwindigkeit ist nicht verhandelbar - Optimieren Sie sowohl gefühlte als auch tatsächliche Performance
- Tastaturkürzel überall - Aber erfordern Sie sie nicht
- Command Palette - Universeller Zugangspunkt
- Dark Mode richtig gemacht - Kein Nachgedanke
- Informationsdichte - Mehr zeigen mit weniger
- Konsistente Designsprache - Jedes Element fühlt sich verwandt an
Spezifische Techniken
| Technik | Wie anzuwenden |
|---|---|
| Optimistic UI | Zuerst lokal aktualisieren, im Hintergrund synchronisieren |
| Fuzzy Search | Fuse.js oder ähnliches für die Command Palette verwenden |
| Mnemonische Shortcuts | S für Status, P für Priority, A für Assign |
| Subtile Elevation | 1-2px Anhebung beim Hover, keine dramatischen Schatten |
| Semantische Farben | Konsistentes Status-/Prioritäts-Farbsystem |
| Kompakte Typografie | 13px Fließtext, dicht aber lesbar |
Wichtige Zitate vom Linear-Team
“Wir betrachten Geschwindigkeit als Feature. Wenn etwas 300ms dauert, fühlt es sich kaputt an.”
“Jeder Pixel sollte absichtlich sein. Wenn du nicht erklären kannst, warum etwas da ist, entferne es.”
“Keyboard-first bedeutet nicht keyboard-only. Es bedeutet, Power-User zu respektieren.”
Häufig gestellte Fragen
Was macht Linear schneller als andere Projektmanagement-Tools?
Linear verwendet Optimistic UI Updates, Local-First-Architektur und aggressives Caching. Wenn Sie den Status eines Issues ändern, wird die UI sofort aktualisiert, während die Synchronisierung im Hintergrund stattfindet. Die meisten Interaktionen fühlen sich instant an, weil Linear Erfolg annimmt und Fehler nur anzeigt, wenn sie auftreten, anstatt auf Netzwerkanfragen zu warten.
Wie funktioniert Linears Command Palette (Cmd+K)?
Die Command Palette ist ein universeller Einstiegspunkt, der Fuzzy Search über Issues, Projekte und Befehle nutzt. Sie unterstützt mnemonische Tastaturkürzel (S für Status, P für Priority, A für Assign), die Benutzer durch die Palette entdecken und dann direkt verwenden können, ohne sie zu öffnen. Dies schafft einen progressiven Lernpfad vom Anfänger zum Power-User.
Warum hat Linear Dark Mode als Standard gewählt?
Linear wurde für Power-User entwickelt, die lange Stunden in der Anwendung verbringen. Dark Mode reduziert Augenbelastung, schafft eine Premium-Ästhetik, die sich von typischer Enterprise-Software unterscheidet, und lässt Statusfarben lebendiger erscheinen. Light Mode existiert als Override, aber Dark Mode ist das primäre Design-Ziel.
Wie erreicht Linear hohe Informationsdichte, ohne überladen zu wirken?
Linear verwendet Symbole und Icons anstelle von Textlabels, zeigt nur wesentliche Metadaten auf Listenebene und enthüllt Details beim Hover oder bei Auswahl. Die Typografie-Skala ist kompakter als üblich (13px Fließtext), und konsistentes Spacing schafft visuellen Rhythmus ohne verschwendeten Whitespace.
Was ist Linears Ansatz bei Tastaturkürzeln?
Jede Aktion in Linear hat ein Tastaturkürzel, und Shortcuts sind mnemonisch (leicht zu merken). Die Command Palette lehrt Shortcuts, indem sie neben jeder Aktion angezeigt werden. Das bedeutet, dass Maus-Benutzer perfekt arbeiten können, aber Tastatur-Benutzer viel schneller arbeiten können. Die Designphilosophie ist „keyboard-first, mouse-friendly."
Ressourcen
- Website: linear.app
- Changelog: Linears Changelog ist selbst wunderschön gestaltet
- Blog: Engineering- und Design-Beiträge vom Team
- Twitter: @linear für Design-Updates