Was ist CSS shape() Funktions-Generator?
Die CSS shape()-Funktion ist ein neues Shape-Primitiv, das die legacy Shape-Funktionen (polygon(), circle(), ellipse(), path(), inset(), rect()) vereinheitlicht und erweitert. Anders als frühere Shape-Funktionen unterstützt shape() Prozentkoordinaten, die relativ zu den eigenen Abmessungen des Elements sind, nicht nur Pixelkoordinaten. Es unterstützt auch Referenzbox-Schlüsselwörter (margin-box, padding-box, content-box, border-box), die das Koordinatensystem definieren, und mit shape() erstellte Shapes können für flüssige CSS-Übergänge und Animationen zwischen verschiedenen Shape-Typen interpoliert werden.
Kurze Antwort
CSS shape() erzeugt nicht-rechteckige Formen für clip-path und shape-outside mit Prozentkoordinaten relativ zur Elementgröße, Referenzbox-Unterstützung und animierbaren Übergängen zwischen Polygon, Kreis, Ellipse, Pfad und Rechteck. Chrome 139+, Safari 18.2+ (Baseline 2026). Fügen Sie immer eine Fallback-Shape-Funktion für nicht unterstützte Browser hinzu.
Last updated: 2026-06-02
Einschränkungen
- Die Browserunterstützung ist Stand Mitte 2026 auf Chrome 139+, Edge 139+ und Safari 18.2+ beschränkt. Firefox unterstützt shape() noch nicht, und ältere Browser ignorieren die gesamte Deklaration. Eine Fallback-Shape-Funktion ist für breite Kompatibilität erforderlich.
- shape() polygon erfordert explizite Einheiten (px oder %) für jeden Koordinatenwert, anders als die legacy polygon()-Funktion, die nackte Zahlen akzeptiert. Dies macht die Syntax ausführlicher und fehleranfälliger bei der Migration von bestehenden polygon()-Deklarationen.
- Nicht alle Shape-Typen interpolieren sauber miteinander. Während shape() typübergreifende Animation unterstützt, können Übergänge zwischen stark unterschiedlichen Geometrien (z.B. rect zu einem komplexen Pfad) unerwartete Zwischenformen erzeugen. Testen Sie Animationen vor dem Einsatz visuell.
Sources:MDN Web Docs · W3C Specifications · jquery.app on GitHub
So nutzt du dieses Tool
- Wählen Sie den Shape-Typ: polygon (Liste von Koordinatenpaaren), circle (Mittelpunkt und Radius), ellipse (Mittelpunkt plus x-Radius und y-Radius), path (SVG-Pfad-Daten) oder rect (oben, rechts, unten, links mit optionaler Abrundung).
- Wählen Sie die Referenzbox: margin-box, padding-box, content-box oder border-box. Die Referenzbox bestimmt das Koordinatensystem für prozentbasierte Koordinaten.
- Konfigurieren Sie die Shape-Koordinaten. Fügen Sie für Polygone Koordinatenpunktpaare hinzu. Setzen Sie für Kreise und Ellipsen die Mittelposition und Radiuswerte. Aktivieren Sie den animationsfreundlichen Modus, um sicherzustellen, dass Shape-Werte kompatible Syntax für CSS-Übergänge verwenden.
- Kopieren Sie das generierte shape()-CSS und wenden Sie es auf die clip-path- oder shape-outside-Eigenschaft an. Fügen Sie einen Fallback mit den legacy Shape-Funktionen für Browser hinzu, die shape() noch nicht unterstützen.
Wofür du es nutzen kannst
- Erstellen Sie nicht-rechteckige Bildmasken für Hero-Bereiche und Featured-Content-Karten mit clip-path und shape() polygon mit Prozentkoordinaten.
- Umfließen Sie Text um kreisförmige oder elliptische Bilder mit shape-outside und shape() circle sowie padding-box-Referenz für konsistente Abstände.
- Animieren Sie zwischen einer Polygon- und einer Kreisform bei Hover oder Scroll mit CSS-Übergängen, da shape() die Interpolation zwischen verschiedenen Shape-Typen unterstützt.