# Swift Pieces > Animated SwiftUI components, Liquid Glass (iOS 26) effects, and Metal shaders you copy into your app. Free pieces are MIT + Commons Clause. Install by copy-paste, `npx swiftpieces add `, or the Swift Pieces MCP server. Rules for Liquid Glass: gate with `#available(iOS 26, *)` and a Material fallback; wrap multiple glass views in one `GlassEffectContainer`; apply `.glassEffect` after layout modifiers; respect `accessibilityReduceTransparency`; never use invented modifiers such as `.liquidGlassUltra`. ## Docs - [Introduction](https://swiftpieces.com/docs/introduction) - [Installation](https://swiftpieces.com/docs/installation) - [CLI](https://swiftpieces.com/docs/cli) - [Registry index (JSON)](https://swiftpieces.com/r/index.json) - [Free MCP endpoint](https://swiftpieces.com/api/mcp): search_pieces, get_piece, install_piece, list_categories, get_liquid_glass_guide ## Swift Pieces Pro The complete library: 48 screens, 10 app templates and a 24-item Build Kit (production-ready SwiftUI screens, complete Xcode projects, and agent skills that build the rest in the same design) at https://pro.swiftpieces.com/library. Plan and pricing: https://pro.swiftpieces.com/pro. Pro MCP endpoint: https://pro.swiftpieces.com/api/mcp (license key required): search_library, get_item, list_kit, get_kit_item, apply_design_skill, apply_recipe. ## ai - [Assistant Orb](https://swiftpieces.com/docs/components/ai/assistant-orb): A dark glass ball with a Siri-style voice wave inside, locked to the thinking state; four thin sine membranes travel through the equator of a refracting shell, drawn by a Metal color shader. The sphere never moves, only the wave, and a palette change crossfades its colours. (iOS 17.0+, Metal). Registry: https://swiftpieces.com/r/AssistantOrb.json - [Code Block](https://swiftpieces.com/docs/components/ai/code-block): A code slab for chat replies and docs that stays dark in both appearances: a butter language label and optional filename, block-colored Swift syntax, collapse past N lines with a fade and a spring expand, wrap toggle, text selection, a streaming mode that fades lines in behind a cursor, and a copy pill that turns into a sage Copied block. (iOS 17.0+). Registry: https://swiftpieces.com/r/CodeBlock.json - [Prompt Chips](https://swiftpieces.com/docs/components/ai/prompt-chips): A snapping horizontal row of prompt suggestions above a composer, each chip keyed by a solid color block glyph. The chosen chip morphs into a composer-width block with matchedGeometryEffect while the rest slide out, then the row hands the text back and collapses. (iOS 17.0+). Registry: https://swiftpieces.com/r/PromptChips.json - [Streaming Reply](https://swiftpieces.com/docs/components/ai/streaming-reply): The AI reply surface. A small header carries the assistant mark and a live phase label, text arrives token by token with a per-word fade and a color block cursor, inline code sits on butter blocks, user prompts are solid color blocks, and a long press lifts the message to reveal copy and regenerate. (iOS 17.0+). Registry: https://swiftpieces.com/r/StreamingReply.json - [Thinking State](https://swiftpieces.com/docs/components/ai/thinking-state): The "assistant is working" placeholder, laid out like the reply it becomes: a breathing mark with an elapsed-seconds label over three presentations on one clock: block-colored rising dots, a sheen over reply-shaped bars, or a label whose glyphs carry the sheen. Plus a modifier that sweeps any view. (iOS 17.0+). Registry: https://swiftpieces.com/r/ThinkingState.json - [Thought Orb](https://swiftpieces.com/docs/components/ai/thought-orb): A small dark glass ball with a Siri-style voice wave inside, locked to the thinking state and drawn by a Metal color shader; palettes for searching, reading and writing crossfade the colour with the kind of work, and a Pill wraps it with a label and indeterminate dots into the status control. (iOS 17.0+, Metal). Registry: https://swiftpieces.com/r/ThoughtOrb.json ## backgrounds - [Ambient Mesh](https://swiftpieces.com/docs/components/backgrounds/ambient-mesh): A 4x4 MeshGradient whose interior points wander on layered low-frequency noise, in house block palettes that adapt to light and dark, with built-in grain and optional tilt parallax. (iOS 18.0+). Registry: https://swiftpieces.com/r/AmbientMesh.json - [Aurora](https://swiftpieces.com/docs/components/backgrounds/aurora): Slow aurora curtains with crisp lower edges and soft rising tails, rendered by a Metal color shader over a ground that adapts to light and dark, in house block palettes with an intensity dial. (iOS 17.0+, Metal). Registry: https://swiftpieces.com/r/Aurora.json - [Grain](https://swiftpieces.com/docs/components/backgrounds/grain): Film grain as a view modifier and a ready-made backdrop: luminance-weighted so it peaks in midtones, soft-light blended, dithered so it never aliases at 3x, with an adaptive standard ground and house block gradients. (iOS 17.0+, Metal). Registry: https://swiftpieces.com/r/Grain.json - [Silk](https://swiftpieces.com/docs/components/backgrounds/silk): A slowly folding silk surface lit by a movable light and shaded from a real gradient normal in a Metal shader, in house block fabrics and an adaptive standard style, with optional device-tilt lighting. (iOS 17.0+, Metal). Registry: https://swiftpieces.com/r/Silk.json - [Touch Grid](https://swiftpieces.com/docs/components/backgrounds/touch-grid): A Canvas dot grid that swells and warms into a house block color under the finger, springs back on release, and sends one dissipating ripple out from a tap. (iOS 17.0+). Registry: https://swiftpieces.com/r/TouchGrid.json ## cards - [Flip Card](https://swiftpieces.com/docs/components/cards/flip-card): A two-sided card you flip by tap or by dragging sideways. The drag scrubs the rotation, release commits or snaps back by velocity, the card lifts toward you mid-turn with a layered shadow that slides off the raised edge, and each face shades as it turns edge-on. (iOS 17.0+). Registry: https://swiftpieces.com/r/FlipCard.json - [Motion Card](https://swiftpieces.com/docs/components/cards/motion-card): A solid color card that tilts with the device's attitude through an exponential filter, with a fixed-light sheen and a layered shadow that slide as it turns. Press settles it flat and scales it down with a light impact, and Core Motion stops whenever the scene is not active. (iOS 17.0+). Registry: https://swiftpieces.com/r/MotionCard.json - [Parallax Card](https://swiftpieces.com/docs/components/cards/parallax-card): An image card whose picture drifts slower than the scroll while a solid caption block drifts slower still, so the card reads in layers. Press lifts it with a deeper shadow and nudges the trailing glyph, and the caption is composed from eyebrow, title, metadata, and trailing glyph slots. (iOS 17.0+). Registry: https://swiftpieces.com/r/ParallaxCard.json - [Swipe Deck](https://swiftpieces.com/docs/components/cards/swipe-deck): A gesture-driven card stack: the top card follows the finger and swings from its base, a solid outcome badge fades in for the direction you are heading and locks at the threshold, the cards beneath rise as it leaves, and release past the threshold or a flick throws it left, right, or up. (iOS 17.0+). Registry: https://swiftpieces.com/r/SwipeDeck.json ## controls - [Commit Button](https://swiftpieces.com/docs/components/controls/commit-button): An async action button driven by one idle/loading/success/error/disabled phase: a signal capsule collapses to a spinning ring, closes it and blooms into a sage success block with a drawn check, or re-expands as a butter error block that shakes and doubles as retry. (iOS 17.0+). Registry: https://swiftpieces.com/r/CommitButton.json - [Elastic Button](https://swiftpieces.com/docs/components/controls/elastic-button): A ButtonStyle that squashes toward the touch point, stretches with rubber-band resistance when dragged, deepens after a hold and snaps back with a spring. Optional solid surfaces (signal, block, raised) press into their own soft shadow and darken under the finger. (iOS 17.0+). Registry: https://swiftpieces.com/r/ElasticButton.json - [Fan Stack](https://swiftpieces.com/docs/components/controls/fan-stack): Overlapping block-color avatars that fan apart on tap or hold with staggered springs, dissolve the +N pill into the hidden faces, and let a drag scrub across them: the avatar under the finger lifts, shows a name tag and ticks a haptic, and releasing selects it. (iOS 17.0+). Registry: https://swiftpieces.com/r/FanStack.json - [Hold To Confirm](https://swiftpieces.com/docs/components/controls/hold-to-confirm): A press-and-hold capsule for destructive or important actions: a solid fill sweeps from the leading puck while held, passes three milestone dots with rising haptics, inverts the label under it, rewinds with a spring on early release and settles into a sage confirmed block. (iOS 17.0+). Registry: https://swiftpieces.com/r/HoldToConfirm.json - [Timer Dial](https://swiftpieces.com/docs/components/controls/timer-dial): A countdown ring you set by dragging its knob around like the Timer dial, with a tick per step and a heavier detent every 5s. A solid block ring over a minute-tick scale, light display numerals, a breathing signal warning zone, a sage finish, and a determinate progress mode. (iOS 17.0+). Registry: https://swiftpieces.com/r/TimerDial.json ## data - [Live Stat](https://swiftpieces.com/docs/components/data/live-stat): A metric tile with a light display-scale value that rolls with a spring and dims its decimals, a solid delta block, a sparkline you hold and scrub to retarget the value live, a press that expands the line into a taller chart with low and high, and a solid color block variant. (iOS 17.0+). Registry: https://swiftpieces.com/r/LiveStat.json - [Odometer](https://swiftpieces.com/docs/components/data/odometer): A number whose digits roll on individual slots like a mechanical counter, carrying from the low digits up so unchanged digits never move, with softened slot edges while rolling, dimmed decimals, a separate sign, a solid delta block, and a dashed loading state. (iOS 17.0+). Registry: https://swiftpieces.com/r/Odometer.json - [Ring Breakdown](https://swiftpieces.com/docs/components/data/ring-breakdown): A composition ring of solid color blocks with rounded seams that you scrub by dragging around it, with a haptic at each slice boundary, a radial lift for the selected slice while the rest step back to the surface, a light display-scale center figure, and legend rows that turn into the slice's block. (iOS 17.0+). Registry: https://swiftpieces.com/r/RingBreakdown.json - [Scrub Chart](https://swiftpieces.com/docs/components/data/scrub-chart): A line or bar chart component with a light display-scale readout and dimmed decimals, a solid delta block, a flag that rides the scrub rule, hold-and-drag range selection with delta and percent, and a block range picker that morphs the line between datasets. (iOS 17.0+). Registry: https://swiftpieces.com/r/ScrubChart.json ## feedback - [Outcome Screen](https://swiftpieces.com/docs/components/feedback/outcome-screen): A success, failure or empty outcome view sharing one choreography, where a ring draws, floods into a solid color block, the mark strokes in dark ink, one pulse lands with a haptic, and a heavy headline and a single signal action rise, with async retry and a details block for failures. (iOS 17.0+). Registry: https://swiftpieces.com/r/OutcomeScreen.json - [Rating Scrub](https://swiftpieces.com/docs/components/feedback/rating-scrub): A star rating you tap or scrub, with soft rounded stars that fill as solid blocks colored by the score, the star under your finger lifting, a staggered spring settle, and a light numeral with a label chip that morph as you go. (iOS 17.0+). Registry: https://swiftpieces.com/r/RatingScrub.json - [Reaction Toggle](https://swiftpieces.com/docs/components/feedback/reaction-toggle): A like or save toggle that presses in, floods its capsule with a solid color block from the symbol outward, bounces the symbol, sends out one fading halo, and can roll a count or float a confirmation pill. (iOS 17.0+). Registry: https://swiftpieces.com/r/ReactionToggle.json - [Skeleton Loader](https://swiftpieces.com/docs/components/feedback/skeleton-loader): Solid placeholder bones and a self-masking modifier that turns any layout, color blocks included, into one quiet shape sweeping a soft diagonal highlight on a shared clock, then hands off as content unblurs and rises row by row. (iOS 17.0+). Registry: https://swiftpieces.com/r/SkeletonLoader.json - [Status Morph](https://swiftpieces.com/docs/components/feedback/status-morph): One continuous stroke that spins as a loading arc, closes into a ring, floods into a solid block and draws a check in dark ink on success, or a cross with a nudge on failure, with an optional morphing caption. (iOS 17.0+). Registry: https://swiftpieces.com/r/StatusMorph.json ## glass - [Glass Action Menu](https://swiftpieces.com/docs/components/glass/glass-action-menu): A floating signal trigger that long-presses open into a staggered line or arc of color-block actions you can slide across and release to fire; the trigger confirms with a check, tap toggles, a scrim dismisses, and the glass morphs on iOS 26. (iOS 17.0+, Liquid Glass). Registry: https://swiftpieces.com/r/GlassActionMenu.json - [Glass Segments](https://swiftpieces.com/docs/components/glass/glass-segments): A segmented control whose glass indicator you can grab and drag: it lifts under the finger, rubber-bands past the ends, stretches with velocity and settles with a spring, while the label ink flips exactly under its edge; tap still works. (iOS 17.0+, Liquid Glass). Registry: https://swiftpieces.com/r/GlassSegments.json - [Glass Surface](https://swiftpieces.com/docs/components/glass/glass-surface): The Glass family foundation: Liquid Glass in a capsule, rect, circle or concentric shape on iOS 26, with a layered Material fallback that keeps the press response, solid tint, specular edge and a designed disabled state everywhere else. (iOS 17.0+, Liquid Glass). Registry: https://swiftpieces.com/r/GlassSurface.json ## inputs - [Expanding Track](https://swiftpieces.com/docs/components/inputs/expanding-track): A thumbless slider drawn as a solid color bar that swells from 8pt to a 32pt block under the finger, shows detent dots and an inverting readout while dragging, squishes past either end, and can carry an uppercase label with a big light numeral; a second init selects a range with two sinking handles. (iOS 17.0+). Registry: https://swiftpieces.com/r/ExpandingTrack.json - [Filter Rail](https://swiftpieces.com/docs/components/inputs/filter-rail): A scrolling rail of filter chips with optional counts where one solid indicator glides between single-select picks, multi-select picks light up as color blocks with dark ink and gather at the leading edge behind a counting Clear chip, the chosen chip scrolls into view, and edges fade only when content overflows. (iOS 17.0+). Registry: https://swiftpieces.com/r/FilterRail.json - [Scrub Stepper](https://swiftpieces.com/docs/components/inputs/scrub-stepper): A capsule stepper with round minus and plus buttons around a solid numeral block; tap, hold to repeat with acceleration, or scrub sideways across the block for velocity-scaled steps while a ruler slides under the finger, and the capsule rubber-bands at the bounds. (iOS 17.0+). Registry: https://swiftpieces.com/r/ScrubStepper.json - [Secure Entry](https://swiftpieces.com/docs/components/inputs/secure-entry): A password field on a soft 56pt block with a focus ring and a round reveal toggle that keeps focus, a strength bar that grows through four color blocks with a matching label chip, requirement chips that turn into solid blocks with drawn checks and collapse when complete, a success check, and a damped shake with an error chip. (iOS 17.0+). Registry: https://swiftpieces.com/r/SecureEntry.json ## lists - [Depth Carousel](https://swiftpieces.com/docs/components/lists/depth-carousel): Paged cards that recede in depth as they leave center and hand each page a phase value for inner parallax. Neighbors come forward on tap, and a page counter sits beside a scrubbable pill indicator computed in absolute page coordinates so it never jumps. (iOS 17.0+). Registry: https://swiftpieces.com/r/DepthCarousel.json - [Pull to Refresh](https://swiftpieces.com/docs/components/lists/pull-to-refresh): Wraps any scrolling content in a refresh gesture: the overscroll rubber-bands, a drawn ring winds up with the pull, crossing the threshold arms it with a rigid impact, and releasing snaps to a held spinner that runs the caller's async work for a minimum visible beat before the content settles back. (iOS 17.0+). Registry: https://swiftpieces.com/r/PullToRefresh.json - [Status Timeline](https://swiftpieces.com/docs/components/lists/status-timeline): A vertical status timeline where the live step becomes a solid color block, connectors draw in as steps complete, nodes morph from number to check, the current node breathes, and any step expands to show its detail. (iOS 17.0+). Registry: https://swiftpieces.com/r/StatusTimeline.json - [Swipe Action Row](https://swiftpieces.com/docs/components/lists/swipe-action-row): Wraps any row in a soft card with swipe actions drawn as solid color blocks. Tiles grow in as the row opens, the drag rubber-bands, a full swipe arms with a haptic and lets the edge block take the whole bar, and a shared binding keeps one row open at a time. (iOS 17.0+). Registry: https://swiftpieces.com/r/SwipeActionRow.json - [Task Row](https://swiftpieces.com/docs/components/lists/task-row): A task card whose check draws itself while the card flashes into a solid color block, a priority label block, a swipe-right that completes with a strike-through then compacts the row, swipe-left snooze and delete blocks, and a long-press lift that reports reorder moves. (iOS 17.0+). Registry: https://swiftpieces.com/r/TaskRow.json ## media - [Photo Viewer](https://swiftpieces.com/docs/components/media/photo-viewer): A full-screen photo surface with anchor-correct pinch zoom, momentum panning that decelerates into the bounds, double-tap zoom about the tap, paging between images, and pinch-out or drag-down to dismiss with a fading scrim. A close button and a page counter that turns into a live zoom readout float above, and a single tap hides them. (iOS 17.0+). Registry: https://swiftpieces.com/r/PhotoViewer.json - [Story Strip](https://swiftpieces.com/docs/components/media/story-strip): A Stories-style segment strip with a built-in clock that advances segments on a duration, a long-press hold that freezes the strip and shows a paused badge, tap zones for back and forward that answer with a chevron, and a manual progress mode when you own the timing. (iOS 17.0+). Registry: https://swiftpieces.com/r/StoryStrip.json ## motion - [Drag to Dismiss](https://swiftpieces.com/docs/components/motion/drag-to-dismiss): A modifier that lets a photo, card, or sheet follow a two-axis drag, rounds and shrinks it with progress over a styled scrim, reports its phase so the UI can say "release to close", then springs back or flies off along the drag vector past a distance or velocity threshold. (iOS 17.0+). Registry: https://swiftpieces.com/r/DragToDismiss.json ## navigation - [Floating Dock](https://swiftpieces.com/docs/components/navigation/floating-dock): A floating dock on a solid surface where the selected item becomes a color block with its label, a drag across the dock lifts each item under the finger with a name bubble and commits on release, badges count in a signal pill, and the whole dock tucks away on scroll. (iOS 17.0+, Liquid Glass). Registry: https://swiftpieces.com/r/FloatingDock.json - [Stretch Header](https://swiftpieces.com/docs/components/navigation/stretch-header): A hero header for your own ScrollView and NavigationStack: a heavy display title and uppercase eyebrow over a solid block hero that stretches on overscroll, a title that shrinks toward the real navigation bar, a stat row that pins under the bar, and a solid bar that fades in. (iOS 17.0+). Registry: https://swiftpieces.com/r/StretchHeader.json - [Tracking Tabs](https://swiftpieces.com/docs/components/navigation/tracking-tabs): Tabs over a paging ScrollView whose solid block indicator follows the pages through fractional scroll progress, with ink titles that fade in as the block passes, optional counts, a pressed state, and a selection tick on settle. (iOS 17.0+). Registry: https://swiftpieces.com/r/TrackingTabs.json ## sheets - [Confirm Sheet](https://swiftpieces.com/docs/components/sheets/confirm-sheet): A confirmation card that presents as a height-fitted bottom sheet or, inline, as a floating card you can drag away, with a solid icon tile that bounces on present, a heavy headline, a loading primary action that lands on a success check before dismissing, and a warning haptic for destructive choices. (iOS 17.0+). Registry: https://swiftpieces.com/r/ConfirmSheet.json - [Permission Sheet](https://swiftpieces.com/docs/components/sheets/permission-sheet): A pre-permission sheet with a solid icon tile that bounces on present and turns into a check when granted, a heavy left-aligned headline, benefit rows on their own color tiles that stagger in, a signal-colored request button that spins while the system asks, and a denied result that swaps the copy and routes the button to Settings. (iOS 17.0+). Registry: https://swiftpieces.com/r/PermissionSheet.json - [Toast](https://swiftpieces.com/docs/components/sheets/toast): A single toast card with a solid color tile for its kind, a bold message with an optional detail line, a signal-colored action such as Undo, and a thin timer that pauses while touched; placed inside the safe area so it clears the Dynamic Island and rides above the keyboard. (iOS 17.0+). Registry: https://swiftpieces.com/r/Toast.json ## text - [Glass Text](https://swiftpieces.com/docs/components/text/glass-text): Liquid Glass rendered on the actual glyph outlines of a string, one or several lines, with a specular Material fallback below iOS 26, a solid fill under Reduce Transparency and Dynamic Type scaling. (iOS 17.0+, Liquid Glass). Registry: https://swiftpieces.com/r/GlassText.json - [Text Reveal](https://swiftpieces.com/docs/components/text/text-reveal): Reveals a headline by characters, words or lines, rising from a baseline mask with a stagger sized to land in under a second, then wipes solid highlight blocks behind the phrases that matter. (iOS 17.0+). Registry: https://swiftpieces.com/r/TextReveal.json - [Weight Wave](https://swiftpieces.com/docs/components/text/weight-wave): A wave of variable font weight and ink travels through a headline, peaking under the finger while dragging and sweeping slowly on its own when idle. (iOS 17.0+). Registry: https://swiftpieces.com/r/WeightWave.json