openpencil/packages/docs/de/programmable/jsx-renderer.md
Danila Poyarkov bfa4b7de8b Translate AI & Automation + CLI reference to all 6 locales
48 translated pages (de, es, fr, it, pl, ru) for the Programmable
section: overview, AI Chat, Collaboration, JSX Renderer, CLI
(inspecting, exporting, analyzing, scripting).

CLI reference and MCP server pages copied as-is (mostly code/tables).
2026-03-08 18:25:35 +03:00

117 lines
4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: JSX-Renderer
description: Designs mit JSX erstellen — die Syntax, die LLMs bereits von Millionen von React-Komponenten kennen.
---
# JSX-Renderer
OpenPencil verwendet JSX als Sprache zur Designerstellung. LLMs haben Millionen von React-Komponenten gesehen — ein Layout als `<Frame><Text>` zu beschreiben ist natürlich, kein spezielles Training nötig. Jedes Token zählt, wenn ein KI-Agent Dutzende von Operationen durchführt, und JSX ist die kompakteste deklarative Darstellung.
JSX ist auch diff-fähig. Wenn eine KI ein Design ändert, ist die Änderung ein JSX-Diff — lesbar, überprüfbar, versionierbar.
## Designs erstellen
Das `render`-Werkzeug (verfügbar im KI-Chat, MCP und CLI eval) akzeptiert JSX:
```jsx
<Frame name="Card" w={320} h="hug" flex="col" gap={16} p={24} bg="#FFF" rounded={16}>
<Text size={18} weight="bold">Card Title</Text>
<Text size={14} color="#666">Description text</Text>
</Frame>
```
Im MCP-Server und KI-Chat akzeptiert das `render`-Werkzeug JSX-Strings direkt. Im CLI verwendest du den `export`-Befehl für die umgekehrte Richtung — [Designs als JSX exportieren](./cli/exporting).
## Elemente
Alle Knotentypen sind als JSX-Elemente verfügbar:
| Element | Erstellt | Aliasse |
|---------|----------|---------|
| `<Frame>` | Frame (Container, unterstützt Auto-Layout) | `<View>` |
| `<Rectangle>` | Rechteck | `<Rect>` |
| `<Ellipse>` | Ellipse / Kreis | |
| `<Text>` | Textknoten (Kinder werden zum Textinhalt) | |
| `<Line>` | Linie | |
| `<Star>` | Stern | |
| `<Polygon>` | Polygon | |
| `<Vector>` | Vektorpfad | |
| `<Group>` | Gruppe | |
| `<Section>` | Abschnitt | |
## Stil-Props
Kompakte Kurzschreibweisen, inspiriert von Tailwinds Benennung.
### Layout
| Prop | Beschreibung |
|------|--------------|
| `flex` | `"row"` oder `"col"` — aktiviert Auto-Layout |
| `gap` | Abstand zwischen Kindern |
| `wrap` | Kinder in nächste Zeile umbrechen |
| `rowGap` | Gegenachsen-Abstand beim Umbrechen |
| `justify` | `"start"`, `"end"`, `"center"`, `"between"` |
| `items` | `"start"`, `"end"`, `"center"`, `"stretch"` |
| `p`, `px`, `py`, `pt`, `pr`, `pb`, `pl` | Innenabstand |
### Größe & Position
| Prop | Beschreibung |
|------|--------------|
| `w`, `h` | Breite/Höhe — Zahl, `"fill"` oder `"hug"` |
| `minW`, `maxW`, `minH`, `maxH` | Größenbeschränkungen |
| `x`, `y` | Position |
### Erscheinungsbild
| Prop | Beschreibung |
|------|--------------|
| `bg` | Hintergrundfüllung (Hex-Farbe) |
| `fill` | Alias für `bg` |
| `stroke` | Konturfarbe |
| `strokeWidth` | Konturbreite (Standard: 1) |
| `rounded` | Eckenradius (oder `roundedTL`, `roundedTR`, `roundedBL`, `roundedBR`) |
| `cornerSmoothing` | iOS-artig abgerundete Ecken (01) |
| `opacity` | 01 |
| `shadow` | Schlagschatten (z.B. `"0 4 8 #00000040"`) |
| `blur` | Ebenen-Unschärferadius |
| `rotate` | Rotation in Grad |
| `blendMode` | Mischmodus |
| `overflow` | `"hidden"` oder `"visible"` |
### Typografie
| Prop | Beschreibung |
|------|--------------|
| `size` / `fontSize` | Schriftgröße |
| `font` / `fontFamily` | Schriftfamilie |
| `weight` / `fontWeight` | `"bold"`, `"medium"`, `"normal"` oder Zahl |
| `color` | Textfarbe |
| `textAlign` | `"left"`, `"center"`, `"right"`, `"justified"` |
## Als JSX exportieren
Bestehende Designs zurück in JSX konvertieren:
```sh
open-pencil export design.fig -f jsx # OpenPencil-Format
open-pencil export design.fig -f jsx --style tailwind # Tailwind-Klassen
```
Der Roundtrip funktioniert: Exportiere ein Design als JSX, bearbeite den Code, rendere es zurück.
## Visuelles Diffing
Da Designs als JSX darstellbar sind, werden Änderungen zu Code-Diffs:
```diff
<Frame name="Card" w={320} flex="col" gap={16} p={24} bg="#FFF">
- <Text size={18} weight="bold">Old Title</Text>
+ <Text size={24} weight="bold" color="#1D1B20">New Title</Text>
<Text size={14} color="#666">Description</Text>
</Frame>
```
Das macht Designänderungen in Pull Requests überprüfbar, in der Versionskontrolle nachverfolgbar und in der CI auditierbar.