Zum Inhalt springen

@capgo/capacitor-sheets

Framework-unabhängige Bottom Sheets, Drawers, Dialoge und Overlays, optimiert für Capacitor WebViews.

Framework-agnostisch

Nutze Standard-Custom-Elements direkt oder verwende Setup-Helper für React, Vue, Angular, Svelte und Solid.

Capacitor bereit

Berücksichtigt Safe Areas, Tastatur-Bewegungen, native Edge-Gestures und die WebView-Theme-Color-Dimmung aus dem Web-Layer.

Jede Sheet-Form

Erstelle Bottom Sheets, Side Drawers, Top Sheets, zentrierte Dialoge, Toasts, Detached Sheets, Cards, Pages und Lightboxes.

Modernes CSS

Definiere Detents mit em, rem, Viewport-Einheiten, calc(), und CSS-Variablen, während das Standard-Sizing em bleibt.

PlattformSupportHinweise
iOSWeb-LayerCustom Elements in der WKWebView
AndroidWeb-LayerCustom Elements in der Android WebView
WebJaGleiche Komponenten für Capacitor Web-Builds

@capgo/capacitor-sheets ist für Capacitor Apps gedacht, die hochwertige mobile Overlays benötigen, ohne ein spezielles UI-Framework zu nutzen. Da es als Custom Elements ausgeliefert wird, hat das Core-Paket keine Abhängigkeiten zu React, Vue, Angular, Svelte oder Solid Runtimes.

Nutze es, wenn du Folgendes benötigst:

  • Bottom Sheets mit einem oder mehreren Detents
  • Sidebars (links/rechts) und Top Sheets
  • Zentrierte Dialoge, Lightboxes, Cards und Toast-ähnliche Overlays
  • Persistente Sheets, die die App im Hintergrund interaktiv halten
  • Full-Page Overlays, die von einem Rand einfliegen
  • Stack-, Depth- und Parallax-Effekte basierend auf dem Sheet-Progress
  • Scroll-Helper, die Progress- und Distanzwerte liefern
  • Capacitor-sicheres Layout für Notches, Home Indicators, Android Cutouts und Software-Keyboards
AnwendungsfallCapgo Sheets Pattern
Langes Sheetcap-sheet mit natürlichem Content-Scroll oder cap-scroll
Sheet mit Detentdetents="18em 32em" plus stepTo() oder einem Step-Trigger
Sidebarcontent-placement="left" oder content-placement="right"
Bottom SheetStandard content-placement="bottom"
Sheet mit Tastaturnative-focus-scroll-prevention und Visual Viewport Offset Handling
Toastinert-outside="false", focus-trap="false", und kein Schließen durch Klick außerhalb
Getrennte Sheetcap-sheet-special-wrapper plus benutzerdefinierte Margins und Radius
Seite von untenFull-Height Bottom Sheet Content
Top Sheetcontent-placement="top"
Sheet mit Stackingcap-sheet-stack mit Tiefenvariablen
Sheet mit Tiefecap-sheet-outlet und Fortschritts-basierten Transforms
Parallax-Seitecap-sheet-outlet mit cap-scroll Fortschritt
SeiteFull-Viewport-Content, der von einem Rand einfährt
Lightboxcontent-placement="center" mit Backdrop und Medieninhalt
Persistentes Sheet mit Detentdefault-presented, swipe-dismissal="false", und inert-outside="false"
Cardkompakter, zentrierter Sheet-Inhalt
  • <cap-sheet> verwaltet Präsentationsstatus, Detents, Platzierung, Gesten, Barrierefreiheit und Events.
  • <cap-sheet-trigger> deklariert Aktionen für present, dismiss, toggle und Detent-Step.
  • <cap-sheet-view> positioniert das Overlay und wendet Safe-Area- sowie Keyboard-Offsets an.
  • <cap-sheet-backdrop> rendert einen fortschrittssynchronisierten Backdrop.
  • <cap-sheet-content> rendert die Sheet-Oberfläche.
  • <cap-sheet-handle> bietet Drag- und Tastatur-Steuerung für Detents.
  • <cap-sheet-stack> koordiniert gestapelte Sheets.
  • <cap-sheet-outlet> gibt den Sheet-Fortschritt für Page-, Depth- und Parallax-Effekte frei.
  • <cap-scroll> und <cap-scroll-content> bietet Helfer für Scroll-Fortschritt und Distanz an.
  • setupSheet(element, options?) konfiguriert ein Sheet über Framework-Effects oder Lifecycle-Hooks.

Der Standard-Viewport des Sheets liest env(safe-area-inset-*) und Capacitor-Style --safe-area-inset-* Fallback-Variablen aus und wendet die gewählten Edges als Padding um das Overlay an. safe-area="auto" schützt alle Edges; nutze safe-area="bottom left right" oder safe-area="none" wenn ein Anwendungsfall ein anderes Verhalten erfordert.

Die Tastatursteuerung ist standardmäßig aktiviert. Das Sheet lauscht auf visualViewport beinhaltet Resize- und Scroll-Events, fügt einen Keyboard-Offset zum Viewport hinzu und fokussiert Steuerelemente mit preventScroll damit Inputs über der Software-Tastatur sichtbar bleiben.

Das Package läuft in der Web-Layer. Es rendert keine nativen UIKit- oder Android-Bottom-Sheets, sodass deine App die volle Styling-Kontrolle behält und dennoch die WebView-Constraints respektiert, die in Capacitor wichtig sind.

Animierte WebP-Demos für jeden unterstützten Use-Case sind im Repository-README enthalten. Die Beispiele sind auch als StackBlitz-Playgrounds verfügbar:

Langes SheetDetents
Animierte Long-Sheet-Demo für @capgo/capacitor-sheetsAnimierte Sheet-Demo mit Detent für @capgo/capacitor-sheets
SidebarLightbox
Animierte Sidebar-Demo für @capgo/capacitor-sheetsAnimierte Lightbox-Demo für @capgo/capacitor-sheets

Wenn Sie ... verwenden @capgo/capacitor-sheets um die Arbeit an Native Plugins zu planen, verbinde es mit Capgo Plugin-Verzeichnis für den Produkt-Workflow im Capgo Plugin-Verzeichnis, Capacitor Plugins von Capgo für die Implementierungsdetails in Capacitor Plugins von Capgo, Plugins hinzufügen oder aktualisieren für die Implementierungsdetails in Adding or Updating Plugins, Ionic Enterprise Plugin-Alternativen für den Produkt-Workflow in Ionic Enterprise Plugin Alternatives und Capgo Native Builds für den Produkt-Workflow in Capgo Native Builds.