Club of Comfort logoClub of Comfort logo
  • Home
  • Creative Suite
  • Style guide
  • Pricing
  • Docs

Style Guide

A comprehensive showcase of our matte-metal AI workspace: neutral graphite surfaces, muted steel-blue actions, and soft ice highlights.

Typography

Heading 1

text-5xl font-bold

Heading 2

text-4xl font-semibold

Heading 3

text-3xl font-semibold

Body Large - DM Sans provides excellent readability with a modern, clean aesthetic perfect for our design system.

text-lg

Body Regular - The default body text size for most content.

text-base

Body Small - Used for supporting text and captions.

text-sm text-muted-foreground
const code = "Fira Code for monospace text";

font-mono

Color Palette

Semantic Colors

Primary

Steel Indigo #7783A1

Secondary

Graphite #1C2027

Accent

Mist Blue #89AAB6

Muted

Subtle Background

Palette Colors

Midnight

#101216

Graphite

#1C2027

Steel Indigo

#7783A1

Mist Blue

#89AAB6

Wasserstoff Blonde

#C7B27A

Cloud

#EEF0F5

Buttons

Tailwind Connect — button from Tailwind CSS Connect website

Icon Placeholders

Blue-to-lime-green gradient icons derived from the CI tokens (--primary → --primary-spectrum-lime). The gradient is painted on the icon strokes themselves — no background box. The admin backend uses variant="lime-blue" (lime → blue).

Blue → Limevariant="blue-lime"

Diagonal blue-to-lime-green stroke gradient.

Lime → Bluevariant="lime-blue"

Diagonal lime-green-to-blue stroke gradient.

Verticalvariant="vertical"

Top-to-bottom blue-to-lime-green stroke gradient.

Vividvariant="vivid"

Cyan-to-lime-green stroke gradient for extra contrast.

Cards

Glass Effect Card
With backdrop blur and subtle transparency

This card demonstrates the milk glass aesthetic with translucent backgrounds and soft borders.

Metal Surface Card
With gradient and matte finish

This card showcases the matte metal surface treatment with subtle gradients.

Card with Footer
Includes actions in the footer section

This card includes a footer section with action buttons, perfect for billing, settings, or confirmation dialogs.

Payment Card
Example with icon and footer

•••• 4242

Expires 12/2025

Default
Photo Location Idea Card
Compact idea card used in Photo Stream
Urban

Nachtshooting zwischen Oberleitungen mit Spiegelungen im Zugfenster.

Industrial

Morgendunst am Depot mit seitlichem Licht auf den Waggonkanten.

Step Counter
Combined step indicator and selection counter — used above location cards in Photo Stream. Acts as tabs (showing all steps) and as a counter (shows selected count per step). Clicking a past step navigates back.

Step 1 active (no selections yet)

1Konzept
2Locations

Step 1 active, step 2 has prior selections

1Konzept
2Locations

Step 2 active, nothing selected

2Locations

Step 2 active, 5 selected

2Locations

Three-step flow, step 3 active

3Einstellungen

Form Elements

Contact & Forms

Complete contact form pattern with validation, error handling, and success states.

Interactive Example

Implementation Details

Form Structure

<div className="space-y-2"> <Label htmlFor="field">Label</Label> <Input id="field" ... /> {error && <p className="text-destructive">...</p>} </div>

Validation Pattern

const validate = () => { const errors = {}; if (!field) errors.field = "Required"; return Object.keys(errors).length === 0; };

Page transition loader

3D cube spinner used during route transitions (e.g. when opening the AI Suite).

Badges

DefaultSecondaryOutlineDestructivePrimary

Tabs

Overview content goes here. This demonstrates how tabs work with our design system.

Alerts

Information
This is an informational alert with our muted color scheme.
Success
Operation completed successfully with a steel-blue accent.
Error
Something went wrong. Please try again.

Toasts

Transient notifications (via Sonner). Use the same semantic types as Alerts: success = primary/steel-blue, error = destructive, info = muted. Use toast.success(), toast.error(), and toast.info() for user feedback after actions. Do not overuse—prefer inline feedback for forms.

Accordion

Table

User Data Table
Example of data tables with our design system
UserStatusRoleActions
JD
John Doe
john@example.com
ActiveAdmin
AS
Alice Smith
alice@example.com
ActiveUser
BJ
Bob Johnson
bob@example.com
PendingUser

Interactive Components

Dialog

The Favorites Modal is a full-screen modal using CSS variables for all colors. It demonstrates proper use of the destructive color for accent elements like hearts.

Dropdown Menu

Avatar

CNJDAB

Progress

Surface Treatments

Glass Effect

.glass-effect

Translucent with backdrop blur for a frosted glass appearance

Metal Surface

.metal-surface

Gradient treatment creating a matte metallic effect

Standard Card

bg-card

Default card background with consistent theming

Charts & Data Visualization

Beautiful charts using Recharts with our matte metal and milk glass design system

Line Chart

User Growth Trend
Monthly user statistics

Bar Chart

Weekly Activity
User activity this week

Pie Chart

User Distribution
By subscription tier

Area Chart

Revenue Growth
Monthly revenue trend

Billing & Settings Patterns

Common patterns used in billing and settings pages

Subscription Status

Pro Plan
Billed monthly
Active
$29/ month
API Usage67% of limit

Invoice History

Recent Invoices
Your payment history
InvoiceDateAmountStatus
INV-2025-001
Jan 1, 2025
$29.00Paid
INV-2024-012
Dec 1, 2024
$29.00Paid

Settings Toggles

Preferences
Manage your account preferences

Receive updates about your account

Add an extra layer of security

Promotional content and special offers

Usage Statistics

API Calls
6,700
+12% from last month
Storage Used
2.4 GB
+8% from last month
Active Projects
12
+3 this month

Footer

A modern, responsive footer component with navigation links, social media icons, and legal information

Footer Preview

Club of Comfort logoClub of Comfort logo

Text-zu-Bild-Generierung in deinen Workflow integriert - einfach und schnell.

Produkt

StyleguideAI SuitePreiseProfil

Ressourcen

DokumentationAPI-ReferenzSupportChangelog

Unternehmen

Über unsBlogKarriereKontakt

© 2026 Club of Comfort. Alle Rechte vorbehalten. Diese Website und ihre Inhalte sind Eigentum von Club of Comfort.

Erstellt mitund Liebe.

DatenschutzAGBCookies

Features

Responsive Layout
Adapts seamlessly from mobile to desktop with grid-based columns
Navigation Sections
Organized into Product, Resources, and Company categories
Social Integration
Icon buttons for GitHub, Twitter, LinkedIn, and email
Scroll to Top
Smooth scrolling functionality to return to page top

Usage

import { Footer } from "@/components/footer"; export default function Page() { return ( <div> {/* Your page content */} <Footer /> </div> ); }

Workflows Bento Grid

Used on /ai-suite/templates. Cards sit in a grid-cols-4 auto-rows-[200px] bento layout with varying col-span and row-span values for visual hierarchy. Each card uses a gradient accent over a glass-effect surface.

Card anatomy

Featured (2×2)

Product Photography

Studio-quality shots with clean backgrounds and perfect lighting for e-commerce.

StudioWhite BGE-commerce

Studio white background, professional product shot, [product], dramatic side lighting

Standard (1×1)

Portrait

Professional portraits with flattering light.

PortraitPro
Fantasy

Fantasy World

Epic landscapes and characters.

EpicCinematic
Wide (2×1)

Architectural Render

Stunning interior and exterior architecture visualizations.

InteriorExterior3D

Usage

// Bento grid container <div className="grid grid-cols-4 auto-rows-[200px] gap-4"> {/* Featured card — 2 columns × 2 rows */} <div className="col-span-2 row-span-2 relative rounded-2xl border border-border overflow-hidden ..."> <div className="absolute inset-0 bg-gradient-to-br from-primary/20 to-primary/5" /> <div className="absolute inset-0 glass-effect" /> {/* content */} </div> {/* Standard card — 1×1 */} <div className="col-span-1 row-span-1 ...">…</div> {/* Wide card — 2×1 */} <div className="col-span-2 row-span-1 ...">…</div> </div>

Accent colour variants

primary/20 → primary/5
accent/20 → accent/5
secondary/40 → secondary/10
muted/60 → muted/20

VIP Model Controls

Config-driven controls for VIP-tier ComfyUI models. Both components read their entire shape from ai_models.configuration, so a workflow with a different LoRA roster or sampler ranges needs no frontend change.

VipLoraList

One row per LoRA slot with an on/off switch and a weight slider that only appears when the slot is enabled. Scrolls past ~8 entries and shows an active count with a reset-to-defaults action.

VipAdvancedSamplerPanel

Collapsed by default with a summary of the pinned values. Expands to steps / CFG / denoise / eta sliders plus sampler and scheduler dropdowns, and one-click presets from the workflow's recommended settings. Sliders commit on release so dragging never re-renders the parent form.

3/4 active
Advanced8 steps · CFG 1
Selected multiplier:

Resulting task parameters

{
  "steps": 8,
  "cfg": 1,
  "denoise": 1,
  "eta": 0,
  "samplerName": "linear/euler",
  "scheduler": "simple",
  "secondPass": false,
  "secondPassDenoise": 0.2,
  "upscalerEnabled": true,
  "vipLora2": true,
  "vipLora2Strength": 1,
  "vipLora4": true,
  "vipLora4Strength": 0.5,
  "vipLora6": true,
  "vipLora6Strength": 1.5,
  "vipLora8": false,
  "vipLora8Strength": 1
}

These keys map 1:1 to the ComfyUI node mappings, so the same controls drive any VIP workflow without frontend changes.

Team Components

Components for the team page — Slack-style member cards and team overview UI.

TeamMemberCard

Displays a team member with their avatar, name, email, and role badge. Supports role color theming and user-type indicators.

AM

Anna Müller

anna@example.com

Lead Designeradmin
BS

Ben Schmidt

ben@example.com

Team Leadteam-lead
CW

Clara Weber

clara@example.com

Developer
DK

David Koch

david@example.com

Marketing
EB

Eva Braun

eva@example.com

Guestguest

Usage

import { TeamMemberCard } from "@/components/team/TeamMemberCard"; <TeamMemberCard member={{ userId: "abc-123", name: "Anna Müller", email: "anna@example.com", avatarUrl: null, // or a URL string userType: "team-lead", // "admin" | "team-lead" | "user" | "guest" roleName: "Lead Designer", roleColor: "#7783A1", // optional hex color for role badge }} />

Team Sidebar

The left-rail sidebar used on the team page. Shows team identity, collapsible subgroups, and a compact member list.

DS

Design Studio

4 members

Subgroups

# branding
# illustration
# ux

Members (4)

AAnna
BBen
CClara
DDavid
Me

You

Lead Designer

Layout

Sidebar (hidden on mobile) + flex-1 main content area with responsive member card grid.

Selection Banner

Floating action bar that appears at the bottom of the screen when items are selected in the AI Suite queue.

Banner

Uses glass-effect + rounded-2xl. Renders fixed at the bottom of the viewport when selectedTaskIds.size > 0.

3 tasks selected

Library (Bibliothek)

Explorer-style dataset management at /ai-suite/library. Folder grid + dataset cards + recent list. All interactive elements use shadcn Card, AlertDialog, Skeleton, and Label.

Breadcrumb navigation

Plain nav with ChevronRight separators. Ancestor segments are clickable buttons; the current segment is plain text.

Flux

Folder grid

grid-cols-2…6 responsive grid. Each folder is a shadcn Card with a DropdownMenu (rename / delete) that appears on hover. The dashed card triggers inline creation.

Flux-Bilder
Portraits
Produkte
Neuer Ordner

Dataset cards

Shadcn Card with hover state and a context DropdownMenu.

Flux Portraits

High-quality portrait shots

vor 2 Min.

Produkt-Shots

vor 3 Std.

Kampagne Q1

Spring campaign assets

vor 2 Tagen

Recent list

Each row is a shadcn Card with icon, title, optional folder path, and relative timestamp.

Flux Portraits

Produkte

vor 5 Min.

Kampagne Q1

vor 1 Std.

Hintergrundbilder

Projekte / Flux

gestern

Dataset detail — custom fields

Inline editable key/value rows. Field name column is fixed-width; value column stretches. Delete button appears on row hover.

KameraSony A7 IV
Brennweite85mm
StilEditorial, sauber

Media gallery

Responsive square-thumbnail grid. Hover shows dark overlay with ExternalLink + delete buttons. Clicking a thumbnail opens a full-screen lightbox.

Hinzufügen

Loading skeletons

Shadcn Skeleton used for all loading states — folder grid, dataset list, and recent rows.

Social Publishing

Components for posting generated images to connected social accounts. The UI talks only to lib/integrations/social-publishing, so it carries no knowledge of any one provider's request format.

ZernioWordmark / ZernioMark

The partner logo, inlined from public/images/logo/zernio/logo-primary.svg. Brand red stays fixed in both themes; monochrome switches to currentColor for dense or disabled placements. The wordmark is wide — size it by width; the mark is square and fills its box.

Wordmark

Zernio

Mark (48px)

Zernio

Mark, monochrome

PlatformIcon

Icon for a platform slug. Only platforms lucide ships a glyph for get one — anything else, including a slug the provider adds later, falls back to a neutral globe rather than breaking the list.

Instagram
X (Twitter)
LinkedIn
Facebook
YouTube
Telegram
TikTok
Reddit
Bluesky

ShareToSocialDialog

Account picker grouped by connection, caption field, and a post-now / schedule / draft selector. Every selected image goes into one post per connection, which is what carousel-capable platforms expect. With nothing connected it shows an empty state pointing at Settings → Connections.