Modules
Importing use PetalComponents brings the core component set into scope as
unqualified function components (<.button>, <.modal>, <.table>, …).
An animated beam of light that travels along the border of its container.
Pure CSS (offset-path animation) — no JavaScript required.
AI chat / conversation components — the LiveView-native answer to React's AI Elements / assistant-ui. Build streaming chat UIs without a client AI SDK: tokens stream over the LiveView socket you already have.
A confetti cannon for celebration moments — completed onboarding, first payment, level up. Rendered as an invisible mount point; bursts are drawn on a temporary full-screen canvas with zero dependencies.
Everything related to forms: inputs, labels etc
For any helper functions used across multiple components. Ideally we keep this empty - components should be copy-pastable.
Icon name can be the function or passed in as a type eg.
Icon name can be the function or passed in as a type eg.
Renders pure inputs (no label or errors).
A shower of meteors streaking across the parent container. Pure CSS — positions, delays and durations are generated server-side, so the effect costs zero JavaScript.
A horizontal navigation menu with flyout panels — the pattern marketing sites use for "Products / Solutions / Resources" menus that hold more than a simple dropdown can.
A number that counts up (or down) to its value when it scrolls into view, and re-animates whenever the value changes — perfect for stats sections and live dashboards.
Pagination is the method of splitting up content into discrete pages. It specifies the total number of pages and inidicates to a user the current page within the context of total pages.
A card with a radial glow that follows the cursor — a subtle "premium" hover effect for feature grids and pricing cards.
SVG helper components.
Animated text effects for hero sections and landing pages.
Everything related to text. Headings, paragraphs and links
A LiveView to test the accessibility of Petal Components using :a11y_audit.