Get the FREE Ultimate OpenClaw Setup Guide →

Branding

npx machina-cli add skill alfredang/courseware_claude_agents/branding --openclaw
Files (1)
SKILL.md
6.0 KB

WSQ Courseware Assistant - UI Branding Guidelines

This skill defines the visual branding and styling standards for the WSQ Courseware Assistant application. Follow these guidelines when creating or modifying UI elements.

Execution

This skill runs using Claude Code with subscription plan. Do NOT use pay-as-you-go API keys. All AI operations should be executed through the Claude Code CLI environment with an active subscription.


šŸŽØ Color Palette

Primary Colors

Color NameHex CodeUsage
Primary Red#ef4444Primary buttons, CTAs, accent elements
Primary Red Dark#dc2626Button hover states, gradients
Primary Red Light#f87171Light accents, notifications

Background Colors (Dark Theme)

Color NameHex CodeUsage
Dark Background#0e1117Main app background (Streamlit default dark)
Card Background#1e1e1eCards, containers, popups
Sidebar Background#262730Sidebar background
Input Background#3d3d3dText inputs, dropdowns

Text Colors

Color NameHex CodeUsage
Primary Text#ffffffMain text, headings
Secondary Text#888888Descriptions, captions
Muted Text#64748bDisabled states, hints
Success Text#22c55eSuccess messages, online status
Error Text#dc2626Error messages

šŸ”˜ Button Styles

Primary Button (Red)

background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
color: white;
border: none;
border-radius: 8px;
box-shadow: 0 4px 15px rgba(239, 68, 68, 0.3);

Primary Button Hover

background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%);
box-shadow: 0 6px 20px rgba(239, 68, 68, 0.4);
transform: translateY(-1px);

Secondary Button

background: transparent;
color: #ffffff;
border: 1px solid #3d3d3d;
border-radius: 8px;

Floating Action Button (Chat Bubble)

width: 65px;
height: 65px;
border-radius: 50%;
background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
box-shadow: 0 8px 25px rgba(239, 68, 68, 0.4);

šŸ“ Typography

Font Family

  • Primary Font: System fonts (Streamlit default)
  • Fallback: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif

Font Sizes

ElementSizeWeight
Page Title (H1)2rem700 (Bold)
Section Title (H2)1.75rem600 (Semi-bold)
Subsection (H3)1.25rem600 (Semi-bold)
Card Header1.1rem600 (Semi-bold)
Body Text1rem400 (Normal)
Caption/Description0.8rem400 (Normal)
Small Text0.75rem400 (Normal)

šŸ“¦ Component Styles

Cards

background: #1e1e1e;
border: 1px solid #3d3d3d;
border-radius: 12px;
padding: 1rem;

Input Fields

background: #3d3d3d;
border: 1px solid #4d4d4d;
border-radius: 8px;
color: #ffffff;

Dropdowns

background: #3d3d3d;
border: 1px solid #4d4d4d;
border-radius: 8px;

Chat Popup

background: white;
border-radius: 20px;
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
border: 1px solid #e5e7eb;

šŸ“ Spacing & Layout

Container Padding

  • Page container: padding-top: 1rem
  • Card padding: 1rem
  • Section spacing: margin-bottom: 1.5rem

Sidebar

  • Width: 350px (fixed)
  • Divider margin: 0.5rem 0

Grid Layouts

  • Homepage cards: 3 columns
  • Form layouts: Responsive columns using st.columns()

šŸŽ­ Streamlit-Specific Styling

Override Primary Button Color

In Streamlit, use type="primary" for buttons and add custom CSS:

st.markdown("""
<style>
    .stButton > button[kind="primary"] {
        background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%) !important;
        border: none !important;
    }
</style>
""", unsafe_allow_html=True)

Dark Theme Configuration

Streamlit uses dark theme by default. Ensure all custom HTML/CSS respects dark backgrounds.


✨ Animation & Effects

Hover Effects

  • Scale transform: transform: scale(1.05) or scale(1.1) for FABs
  • Transition: transition: all 0.2s ease

Box Shadows

UsageShadow
Cards0 4px 6px -1px rgba(0, 0, 0, 0.1)
Elevated0 10px 15px -3px rgba(0, 0, 0, 0.1)
Floating0 25px 50px -12px rgba(0, 0, 0, 0.25)
Primary Button0 4px 15px rgba(239, 68, 68, 0.3)

šŸ¢ Branding Elements

Company Footer

st.markdown("""
    <div style='text-align: center; color: #888; font-size: 0.8rem;'>
        Powered by <b>Tertiary Infotech Academy Pte Ltd</b>
    </div>
""", unsafe_allow_html=True)

Logo/Avatar Style

  • Avatar size: 45px
  • Border: 2px solid white
  • Border-radius: 50% (circular)
  • Box-shadow: 0 2px 8px rgba(0,0,0,0.1)

šŸ“‹ Usage Examples

Creating a Primary Red Button

if st.button("Submit", type="primary", use_container_width=True):
    # Action

Custom Styled Container

st.markdown("""
<div style="
    background: #1e1e1e;
    border: 1px solid #3d3d3d;
    border-radius: 12px;
    padding: 1rem;
">
    Your content here
</div>
""", unsafe_allow_html=True)

Success Message with Green Accent

st.success("Operation completed successfully!")
# Or custom:
st.markdown("<span style='color: #22c55e;'>āœ“ Success</span>", unsafe_allow_html=True)

🚫 Don't Do

  1. Don't use light backgrounds - Always use dark theme colors
  2. Don't use blue as primary - Red (#ef4444) is the brand color
  3. Don't use default gray buttons for CTAs - Use primary red buttons
  4. Don't use serif fonts - Stick to system sans-serif fonts
  5. Don't use sharp corners for major elements - Use border-radius (8-20px)

Source

git clone https://github.com/alfredang/courseware_claude_agents/blob/main/.claude/skills/branding/SKILL.mdView on GitHub

Overview

This skill codifies the WSQ Courseware Assistant visual identity, detailing the color palette, typography, component styles, spacing, and Streamlit-specific tweaks to ensure a cohesive look across the app. Following these guidelines yields a consistent, accessible, and professional brand experience.

How This Skill Works

The branding spec defines tokens for primary red, dark theme backgrounds, and text colors, then maps them to UI components such as cards, inputs, dropdowns, and the chat popup. Designers and developers apply these tokens across code to ensure consistent colors, sizes, radii, and spacing, while typography scales ensure readable hierarchy.

When to Use It

  • When designing or updating UI screens for the WSQ Courseware Assistant to maintain brand consistency
  • When creating or modifying components like cards, inputs, dropdowns, and the chat popup to align with the palette and radii
  • When implementing a dark-theme Streamlit app and applying the specified background and surface colors
  • When adjusting primary actions, hover states, shadows, and gradients to match the branding
  • When performing UI audits or accessibility checks to ensure contrast and typography meet guidelines

Quick Start

  1. Step 1: Review the color palette, typography scales, and component rules in the branding doc
  2. Step 2: Apply the tokens to UI elements (cards, inputs, dropdowns, chat popup) and implement the gradient primary buttons
  3. Step 3: Test in the Streamlit environment, verify dark theme surfaces, hover states, and text contrast

Best Practices

  • Use the Primary Red gradient (#ef4444 to #dc2626) for CTAs and primary buttons; apply the darker shade on hover for feedback
  • Adopt the dark theme foundation: Dark Background #0e1117, Card Background #1e1e1e, Sidebar Background #262730, and Input Background #3d3d3d
  • Set typography with the provided scales: Page Title 2rem bold, Section Title 1.75rem semi-bold, Body text 1rem, Caption 0.8rem
  • Maintain consistent component styling: Card radius 12px, Input and Dropdown radius 8px, and Button radii at 8px
  • Ensure contrast and readability by using Primary Text #ffffff, Secondary Text #888888, and Muted Text #64748b across surfaces

Example Use Cases

  • A Streamlit dashboard for WSQ Courseware Assistant featuring dark surfaces, gradient primary CTAs, and a chat FAB
  • Settings panels with Card components, inputs, and dropdowns styled per the tokens
  • Notifications using Primary Red Light (#f87171) on dark backgrounds for emphasis
  • A left-aligned Sidebar at 350px with the specified background color and clear section dividers
  • Typography-driven pages applying H1/H2/H3 scales and the defined color roles for headings and descriptions

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers ↗