Skip to content

Chat UI

Add a Chat UI event to an app to expose its flow as a chat interface. See Events for event setup.

A screenshot of Flow-Like Desktop showing a customizable chat interface linked to a workflow via a chat event

The event configuration provides:

  • Background image selected from app storage or provided as an external URL.
  • 20 theme presets ranging from professional layouts to Cyberpunk, Typewriter, Neon Grid, and animated Aurora Glass styles. Presets follow the app’s current light or dark mode.
  • Custom CSS, edited with the built-in Monaco editor.
  • AI disclosure text that is always visible so people know they are chatting with AI. Keep it direct, or give it some personality—for example, “AI on duty: clever, quick, and occasionally confidently weird.”

Selecting a theme copies its complete CSS into the editor. Change any part of that CSS and the theme selector immediately changes to Custom. Selecting a preset again replaces the editor contents with that preset’s canonical source.

The built-in set includes Flow Like, Executive, Editorial, Typewriter, Neon Grid, Aurora Glass, Green Screen, Blueprint, Swiss, Nordic, Brutalist, Art Deco, Solarpunk, Noir Cinema, Pixel Arcade, Cyberpunk, Synthwave Sunset, Oceanic, Candy Pop, and Zen Garden.

When you select a background from app storage, the event keeps its stable storage path. Chat UI requests a temporary signed URL when it loads, so signed credentials are never saved in the event configuration.

Custom CSS is sanitized and scoped to this Chat UI. Use :root for chat-wide variables; here, :root means this chat only, not the app or document root.

:root {
--primary: #7c3aed;
--fl-chat-content-width: 52rem;
--fl-chat-message-radius: 1.25rem;
--fl-chat-background-overlay: rgb(0 0 0 / 35%);
}
[data-fl-chat-message="assistant"] {
border: 1px solid var(--border);
}
VariableControls
--backgroundBase chat background color
--foregroundDefault text color
--primaryPrimary/accent color
--primary-foregroundText and icons on the primary color
--mutedMuted surface color
--muted-foregroundText and icons on muted surfaces
--borderDefault border color
--fl-chat-content-widthMaximum width of chat content
--fl-chat-message-radiusMessage bubble corner radius
--fl-chat-surface-backgroundWelcome and conversation surface background
--fl-chat-composer-backgroundComposer background color
--fl-chat-user-message-backgroundUser message background color
--fl-chat-user-message-foregroundUser message text color
--fl-chat-ai-message-backgroundAssistant message background color
--fl-chat-ai-message-foregroundAssistant message text color
--fl-chat-disclosure-backgroundAI disclosure background color
--fl-chat-disclosure-foregroundAI disclosure text color
--fl-chat-background-overlayOverlay rendered over the background image
--fl-chat-background-overlay-strongStronger overlay toward the lower page
--fl-chat-background-sizeBackground image sizing, such as cover or contain
--fl-chat-background-positionBackground image position
--fl-chat-pad-bottomExtra space below the chat content

Use these stable hooks for more targeted styling:

  • [data-fl-chat-surface]
  • [data-fl-chat-welcome]
  • [data-fl-chat-welcome-panel]
  • [data-fl-chat-suggestion]
  • [data-fl-chat-messages]
  • [data-fl-chat-message="user"]
  • [data-fl-chat-message="assistant"]
  • [data-fl-chat-composer]
  • [data-fl-chat-ai-disclosure]