suiss/ui · Block
Chat Support
A support landing section with a floating chat panel, quick-reply suggestions, and a launcher button.
Chat Support is an open-source block from suiss/ui for React, React Native, SwiftUI and Jetpack Compose. The @esuiss/ui CLI copies its source into your project, so you own the code.
A support page with a floating chat panel holding a greeting, quick-reply suggestions, the conversation and a composer. Closing the panel shrinks it into a round launcher button that reopens it. The panel spans the bottom of the screen on mobile and docks to a corner on larger screens. Use it as the in-app help widget for a store, a SaaS product or a docs site.
Installation
CLI
Works in any project with a components.json. See Installation for the one-line registry setup. Or use the suiss/ui CLI:
Manual
- Install the dependencies:
-
Add the pieces it builds on: Bubble, Button, Input, Message, Message Scroller.
-
Copy the source into
components/blocks/chat-support.tsx:
- Update the import paths to match your project.
Usage
Edit the answers record: each key becomes a quick-reply button and its value is the canned answer, while any other question gets a fallback about connecting to a Specialist. The ask function fakes a reply after a delay, so replace it with your support bot or live-agent API. Change the greeting and the hero photo in the image constant.
Notes
Focus returns to the launcher when the panel closes. The hero photo is an Unsplash placeholder.

Composes Screen, Message, Bubble, MessageScroller, InputGroup, Button, Icon and BottomBar. The chat panel opens and closes with a scale animation from a launcher button, quick questions disappear once asked, and each question gets a typed answer after a short typing indicator. The panel grows to the available height while the composer has focus.
Installation
The CLI also adds what it builds on: Bottom Bar, Bubble, Button, Icon, Input Group, Message, Message Scroller, Screen, Text. On React Native it also adds the animated view components/ui/animated-view.tsx.
Manual
- Install the dependencies:
-
Add the pieces it builds on: Bottom Bar, Bubble, Button, Icon, Input Group, Message, Message Scroller, Screen, Text, and the animated view
components/ui/animated-view.tsxfrom the next step. -
Copy the animated view into
components/ui/animated-view.tsx:
- Copy the source into
components/blocks/chat-support.tsx:
- Update the import paths to match your project.
- Install the dependencies:
-
Add the pieces it builds on: Bottom Bar, Bubble, Button, Icon, Input Group, Message, Message Scroller, Screen, Text, and the animated view
components/ui/animated-view.tsxfrom the next step. -
Copy the animated view into
components/ui/animated-view.tsx:
- Copy the source into
components/blocks/chat-support.tsx:
- Update the import paths to match your project.
- Install the dependencies:
-
Add the pieces it builds on: Bottom Bar, Bubble, Button, Icon, Input Group, Message, Message Scroller, Screen, Text, and the animated view
components/ui/animated-view.tsxfrom the next step. -
Copy the animated view into
components/ui/animated-view.tsx:
- Copy the source into
components/blocks/chat-support.tsx:
- Update the import paths to match your project.
-
Target iOS 17 or later.
-
Add the Swift package to your app:
- Copy the theme files every view uses:
- Copy the source and every file it uses:
- Add the files to your app target.
- Set
minSdkto 24 or higher and add the dependencies:
- Copy the theme files every view uses:
- Copy the source and every file it uses:
- Update the
com.esuiss.uipackage names to match your project.
Usage
Replace ANSWERS and FALLBACK with your own replies or a call to your support service. Pass onSend, onAttach and onOpenChange to handle messages, attachments and the open state.
