Skip to main content

Interface Customization

FlowMaestro interfaces support extensive customization to match your brand and user experience requirements.

Visual Branding​

Cover Options​

Both chat and form interfaces support three cover types:

Image Cover​

Upload a custom header image or provide a URL:

{
coverType: "image",
coverValue: "https://your-domain.com/header.jpg"
}

Recommendations:

  • Dimensions: 1200x400px minimum
  • Format: JPG, PNG, or WebP
  • File size: Under 500KB for fast loading

Color Cover​

Use a solid background color:

{
coverType: "color",
coverValue: "#1a1a2e"
}

Tips:

  • Use your brand's primary color
  • Ensure contrast with white text
  • Consider dark colors for professional look

Gradient Cover​

Create dynamic backgrounds with CSS gradients:

{
coverType: "gradient",
coverValue: "linear-gradient(135deg, #667eea 0%, #764ba2 100%)"
}

Example gradients:

StyleValue
Blue to Purplelinear-gradient(135deg, #667eea 0%, #764ba2 100%)
Sunsetlinear-gradient(90deg, #f093fb 0%, #f5576c 100%)
Oceanlinear-gradient(180deg, #2193b0 0%, #6dd5ed 100%)
Forestlinear-gradient(120deg, #11998e 0%, #38ef7d 100%)
Darklinear-gradient(135deg, #1a1a2e 0%, #16213e 100%)

Icon/Avatar​

Upload a custom icon that appears:

  • In the chat header
  • On the widget button (chat interfaces)
  • In the form header (form interfaces)

Specifications:

  • Dimensions: 128x128px minimum (square)
  • Format: PNG with transparency recommended
  • File size: Under 100KB

Theme Colors​

Primary Color​

The accent color used for:

  • Buttons and CTAs
  • Links
  • Active states
  • User message bubbles (chat)
{
primaryColor: "#6366f1"; // Indigo
}

Color suggestions by industry:

IndustryRecommended Colors
Tech/SaaS#6366f1, #3b82f6, #8b5cf6
Finance#059669, #0d9488, #0284c7
Healthcare#0ea5e9, #06b6d4, #10b981
E-commerce#f59e0b, #ef4444, #ec4899
Professional#475569, #334155, #1e293b

Font Family​

Customize the font for all interface text:

{
fontFamily: "Inter, system-ui, sans-serif";
}

Popular options:

  • Inter - Modern, clean
  • Roboto - Google's readable font
  • SF Pro - Apple-style
  • Source Sans Pro - Open source classic
  • system-ui - Native system font

Border Radius​

Control the roundedness of elements:

{
borderRadius: 12; // pixels
}
ValueStyle
0Sharp corners
4-8Subtle rounding
12-16Modern rounded
24+Pill-shaped buttons

Content Customization​

Welcome Message​

The first message users see (chat interfaces):

# Welcome to Acme Support!

I'm here to help you with:

- Product questions
- Order tracking
- Returns and refunds

What can I help you with today?

Best practices:

  • Keep it concise (2-4 lines)
  • List capabilities clearly
  • End with an open question
  • Use markdown for formatting

Placeholder Text​

Input field placeholder:

// Chat interface
{
inputPlaceholder: "Type your message...";
}

// Form interface
{
inputPlaceholder: "Describe what you need...";
}

Suggested Prompts​

Pre-defined prompts shown as clickable buttons (chat interfaces):

{
suggestedPrompts: [
{
text: "Track my order",
emoji: "package"
},
{
text: "Return policy",
emoji: "refresh"
},
{
text: "Pricing plans",
emoji: "credit-card"
},
{
text: "Talk to human",
emoji: "headphones"
}
];
}

Tips:

  • Use 3-4 prompts maximum
  • Cover common use cases
  • Keep text short (2-4 words)
  • Choose relevant emojis

Form Labels​

Customize form interface labels:

{
// Input area
inputLabel: "Your request",
inputPlaceholder: "Describe what you need...",

// File upload
fileUploadLabel: "Attach reference files",

// URL input
urlInputLabel: "Reference URLs",

// Output area
outputLabel: "Generated content",

// Submit button
submitButtonText: "Generate",
submitLoadingText: "Working on it..."
}

Title and Description​

Static header content for form interfaces:

{
title: "Blog Post Generator",
description: "Enter your topic and key points. We'll create a complete, SEO-optimized blog post ready for publishing."
}

Widget Customization (Chat Only)​

Position​

Where the floating button appears:

{
widgetPosition: "bottom-right"; // or "bottom-left"
}

Button Icon​

The icon on the widget button:

{
widgetButtonIcon: "message-circle"; // or emoji like "speech-balloon"
}

Button Text​

Optional text next to the icon:

{
widgetButtonText: "Chat with us";
}

Initial State​

Whether the chat starts open or closed:

{
widgetInitialState: "collapsed"; // or "expanded"
}

Output Customization (Forms Only)​

Display Options​

{
outputLabel: "Your generated content",
showCopyButton: true, // Copy to clipboard
showDownloadButton: true, // Download as file
allowOutputEdit: true // User can edit output
}

Download Format​

When download is enabled, users can save output as:

  • Markdown (.md)
  • Plain text (.txt)

Advanced Customization​

CSS Variables​

For custom domain deployments, override CSS variables:

:root {
--fm-primary: #6366f1;
--fm-primary-hover: #4f46e5;
--fm-text: #1f2937;
--fm-text-muted: #6b7280;
--fm-bg: #ffffff;
--fm-bg-muted: #f3f4f6;
--fm-border: #e5e7eb;
--fm-radius: 12px;
--fm-font: "Inter", system-ui, sans-serif;
}

Dark Mode​

FlowMaestro interfaces automatically respect user's system preference. For custom styling:

@media (prefers-color-scheme: dark) {
:root {
--fm-text: #f9fafb;
--fm-bg: #111827;
--fm-bg-muted: #1f2937;
--fm-border: #374151;
}
}

Preview and Testing​

Before publishing:

  1. Preview mode - Test all customizations in the editor
  2. Mobile preview - Check responsive behavior
  3. Dark mode - Verify colors in both themes
  4. Load testing - Ensure assets load quickly

Best Practices​

Brand Consistency​

  • Use your exact brand colors
  • Match fonts with your website
  • Upload high-quality logos
  • Maintain consistent tone in copy

Accessibility​

  • Ensure sufficient color contrast (4.5:1 minimum)
  • Use readable font sizes (14px minimum)
  • Don't rely solely on color for information
  • Keep animations subtle

Performance​

  • Optimize images before uploading
  • Use WebP format when possible
  • Keep custom fonts to 1-2 weights
  • Test load times on slow connections

User Experience​

  • Keep welcome messages short
  • Make suggested prompts actionable
  • Use clear, descriptive labels
  • Test the full user journey