PaceUI

  • Components
  • Blocks
  • Templates
  • Studio
  • Resources
Intro
  • Components
  • Installation
  • MCP
Agents
  • Chat Composer
  • Workflow Board
  • Thinking States
  • Audio Visualizer
  • Task Pipeline
  • Approval Card
  • Model Ability Selector
  • Model Selector
  • Response Writer
  • AI Suggestions
  • Token Counter
Crafts
  • All Crafts
  • Avatar Flight
  • Voice Record
  • Starfield Card
  • Destination Queue
  • Rolling Bento
  • Download Button
  • Cart Stepper
  • Heart Burst
  • Copy Bar
  • Generative Grid
  • Destination Card
  • Magnetic Button
  • Morphing Copy
  • Expanding Search
  • Metric Tracker
  • Tilt Card
  • Animated Stack
Charts
  • API Traffic
  • Weekly Traffic
  • Financial Performance
  • Channel Sales
  • Customer Growth
  • Customer Segments
  • Sales Overview
  • Traffic Distribution
  • Daily Orders
  • Acquisition Funnel
  • Weekly Attendance
  • Market Trends
  • Portfolio Overview
  • Instance Health
  • Resource Usage
  • SaaS Subscriptions
  • Database Performance
  • Model Usage
  • Spend Allocation
Motion
  • Accordion
  • Alert
  • Calendar
  • Checkbox
  • Collapsible
  • Combobox
  • Context Menu
  • Dropdown Menu
  • Empty
  • Hover Card
  • Input OTP
  • Menubar
  • Navigation Menu
  • Pagination
  • Progress
  • Radio Group
  • Scroll Area
  • Select
  • Sidebar
  • Slider
  • Switch
  • Tabs
  • Tooltip
  • Reveal Text
  • Scramble Text
  • Squash Text
  • Bouncing Text
  • Mouse Wave Text
  • Text Fall Button
  • Spring Button
  • Infinite Scroller
  • Fillable Button
  • Layered Stack
  • Gradient Shadow
  • Profile Peek
  • Flip Reveal
  • Reveal on Scroll
  • Swap
  1. Components
  2. Agents
HomeNext

Chat Composer

An empty chat composer component to build AI-driven message input experiences.

Minimal

A clean composer without connected integration apps or voice input.

Slash Actions & Commands

Use the / trigger key to pop up an action command palette with quick AI commands such as /explain, /refactor, /test, and /docs.

Developer & Pull Requests

Configured for coding agents with connected developer integrations and a # trigger to reference active repository pull requests alongside @ tools.

When to use

  • Primary prompt input for AI assistants and tool-calling agents.
  • Workflows requiring connected apps, permissions, or context selection.
  • Surfaces needing quick switching between models, attachments, and voice.

When not to use

  • Plain peer-to-peer chat where a simple input and send button suffice.
  • Ultra-narrow spaces (below ~280px) where toolbar controls get too condensed.

API Reference

ChatComposerProps

PropTypeDefaultDescription
valuestring—Controlled text value of the composer textarea.
defaultValuestring""Initial uncontrolled textarea value.
onChange(value: string) => void—Callback fired when textarea content changes.
onSubmit(value: string) => void—Callback fired on form submit or Enter key.
placeholderstring"Type a message..."Textarea placeholder text.
disabledbooleanfalseWhether the composer controls are disabled.
modelsModelItem[]—List of available models for the selector dropdown.
modelstring—Controlled active model ID.
defaultModelstring—Default model ID for uncontrolled selection.
onModelChange(modelId: string) => void—Callback fired when a model is selected.
appsConnectedAppItem[]—List of integration services available to connect.
connectedAppIdsstring[]—Controlled list of currently connected app IDs.
defaultConnectedAppIdsstring[]—Default connected app IDs for uncontrolled state.
onConnectedAppIdsChange(appIds: string[]) => void—Callback fired when connected apps change.
onConnectApp(appId: string) => void—Callback fired when an app is connected.
onDisconnectApp(appId: string) => void—Callback fired when an app is disconnected.
enableVoicebooleantrueToggles rendering of the voice input button.
isListeningbooleanfalseControlled state for whether the audio visualizer is recording.
onListeningChange(isListening: boolean) => void—Callback fired when voice recording toggles on/off.
onVoiceClick() => void—Callback fired when clicking the voice button.
showAttachmentsbooleantrueToggles rendering of the attachment trigger.
attachmentOptionsAttachmentOptionItem[]—Custom attachment actions list.
onSelectAttachment(id: string) => void—Callback fired on selecting an attachment option.
showAppSettingsbooleantrueToggles rendering of the settings trigger.
onAppSettingsClick() => void—Callback fired when clicking the settings button.

Accessibility

  • All icon-only trigger buttons provide clear, descriptive aria-label attributes.
  • Keyboard shortcuts support submitting prompts with Enter and multiline newline with Shift + Enter.
  • Menu triggers and dropdown items conform to WAI-ARIA combobox and menu navigation standards with arrow key traversal.
  • Live audio visualizer provides status indicators and dedicated toggle states accessible to assistive tech.

Motion

  • Uses motion/react spring physics with stiffness: 420 and damping: 28 for smooth state morphing.
  • Wrapped in <AnimatePresence mode="popLayout"> to eliminate jarring layout shifts between text and audio modes.
  • Pulsing recording indicators and soundwave frequency bars execute GPU-accelerated looping height transitions.
Workflow Board

PaceUI

Animated blocks, components, and templates for Next.js and TanStack Start. Built with Motion and shadcn - clean code you own.

GitHubTwitterDiscord

Products

BlocksComponentsTemplatesCraftsTanStack ChartsMCP ServerStarter KitsStyleX Components

Resources

DocumentationMotion ComponentsGSAP AnimationsNative AIBlogChangelog

Pricing & Account

PricingManage AccountLicensesAPI KeysAffiliate Program

Company

Contact UsDiscord CommunityPrivacy PolicyTerms of Service

© 2026 PaceUI. All rights reserved. Built by indie developer, Denish

PACEUI