design

Use when styling Fusionaly UI components, pages, or charts - applies the Fusionaly design system with black/white palette and brand accents

6 stars

Best use case

design is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Use when styling Fusionaly UI components, pages, or charts - applies the Fusionaly design system with black/white palette and brand accents

Teams using design should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/design/SKILL.md --create-dirs "https://raw.githubusercontent.com/karloscodes/fusionaly-oss/main/.claude/skills/design/skill.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/design/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How design Compares

Feature / AgentdesignStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Use when styling Fusionaly UI components, pages, or charts - applies the Fusionaly design system with black/white palette and brand accents

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Fusionaly Design System

## Philosophy

Clean, minimal, professional. Black and white foundation with purposeful color accents. No gray noise - use black with opacity for subtlety.

## Color Palette

### Primary

| Name | Value | Usage |
|------|-------|-------|
| **Black** | `#000000` | Text, borders, buttons, backgrounds |
| **White** | `#FFFFFF` | Backgrounds, text on dark |

### Brand Accents

| Name | Value | Tailwind | Usage |
|------|-------|----------|-------|
| **Green** | `#00D678` | `text-[#00D678]` | Success, growth, positive metrics, SQL syntax |
| **Cyan** | `#00D1FF` | `text-[#00D1FF]` | Links, charts, data visualization |
| **Orange** | `#FF7733` | `text-[#FF7733]` | Warnings, alerts, third chart color |

### Opacity Scale (NO gray-* classes)

| Instead of | Use |
|------------|-----|
| `bg-gray-50` | `bg-black/5` |
| `bg-gray-100` | `bg-black/5` or `bg-black/10` |
| `bg-gray-200` | `bg-black/10` |
| `text-gray-400` | `text-black/40` |
| `text-gray-500` | `text-black/50` or `text-black/60` |
| `text-gray-600` | `text-black/60` or `text-black/70` |
| `text-gray-700` | `text-black/70` or `text-black/80` |
| `border-gray-200` | `border-black/10` |
| `border-gray-300` | `border-black/20` |
| `hover:bg-gray-50` | `hover:bg-black/5` |

## Components

### Buttons

```tsx
// Primary (solid black)
<Button className="bg-black text-white hover:bg-black/80">
  Action
</Button>

// Secondary (outline)
<Button variant="outline" className="border-black text-black hover:bg-black hover:text-white">
  Secondary
</Button>

// Ghost
<Button variant="ghost" className="text-black/60 hover:text-black hover:bg-black/5">
  Ghost
</Button>

// Disabled
<Button disabled className="bg-black/20 text-black/40 cursor-not-allowed">
  Disabled
</Button>
```

### Cards

```tsx
// Standard card
<div className="bg-white border border-black rounded-lg overflow-hidden">
  <div className="px-6 py-4 border-b border-black/10">
    <h3 className="text-base font-medium text-black">Title</h3>
  </div>
  <div className="p-4">
    Content
  </div>
</div>
```

### Form Inputs

```tsx
<input
  className="w-full border border-black/20 rounded-lg px-3 py-2 text-sm
             focus:outline-none focus:border-black focus:ring-1 focus:ring-black
             disabled:bg-black/5 disabled:cursor-not-allowed"
/>
```

### Code Blocks (SQL)

```tsx
// SQL display - green on black
<pre className="bg-black rounded p-3 overflow-x-auto font-mono text-xs leading-relaxed text-[#00D678] whitespace-pre-wrap">
  {sql}
</pre>
```

### Tables

```tsx
<table className="w-full border-collapse">
  <thead>
    <tr className="border-b border-black/10 bg-black/5">
      <th className="py-2 px-3 text-left text-xs font-medium text-black/60 uppercase tracking-wider">
        Header
      </th>
    </tr>
  </thead>
  <tbody className="bg-white divide-y divide-black/10">
    <tr className="hover:bg-black/5">
      <td className="py-2 px-3 text-sm">Cell</td>
    </tr>
  </tbody>
</table>
```

### Collapsible Details

```tsx
<details className="group">
  <summary className="cursor-pointer text-xs text-black/50 hover:text-black flex items-center font-medium outline-none">
    <svg className="w-3 h-3 mr-1.5 group-open:rotate-90 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24">
      <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9 5l7 7-7 7" />
    </svg>
    View Details
  </summary>
  <div className="mt-3 p-3 bg-black/5 rounded-lg">
    Content
  </div>
</details>
```

## Charts

### Color Sequence

```tsx
const CHART_COLORS = ["#00D1FF", "#00D678", "#FF7733"];

const getDynamicColor = (index: number): string => {
  return CHART_COLORS[index % CHART_COLORS.length];
};
```

### Recharts Styling

```tsx
<BarChart data={data}>
  <CartesianGrid strokeDasharray="3 3" opacity={0.4} />
  <XAxis
    tick={{ fill: "#374151", fontSize: 10 }}
  />
  <YAxis
    tick={{ fill: "#374151", fontSize: 10 }}
    allowDecimals={false}
  />
  <Tooltip
    contentStyle={{
      backgroundColor: "#FFFFFF",
      border: "1px solid #E5E7EB",
      borderRadius: "6px",
      boxShadow: "0px 4px 12px rgba(0, 0, 0, 0.1)",
    }}
  />
  <Bar dataKey="value" fill="#00D678" />
</BarChart>
```

### Vega-Lite Defaults

```json
{
  "config": {
    "axis": {
      "labelColor": "#374151",
      "titleColor": "#111827"
    },
    "legend": {
      "labelColor": "#374151"
    }
  }
}
```

## Model Selector Pattern

```tsx
// Three-option toggle for AI models
const AI_MODELS = [
  { id: "gpt-4.1", label: "Fast", icon: Zap },
  { id: "gpt-5.2", label: "Smart", icon: Sparkles },
  { id: "gpt-5.2-thinking", label: "Deep", icon: Brain },
];

<div className="flex items-center gap-1 p-0.5 bg-black/5 rounded-lg w-fit">
  {AI_MODELS.map((m) => (
    <button
      key={m.id}
      className={cn(
        "flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium rounded-md transition-all",
        isSelected
          ? "bg-white text-black shadow-sm"
          : "text-black/60 hover:text-black",
        disabled && "opacity-50 cursor-not-allowed"
      )}
    >
      <Icon className="h-3 w-3" />
      <span>{label}</span>
    </button>
  ))}
</div>
```

## Chip/Tag Buttons

```tsx
// Example question chips
<button className="text-xs px-3 py-1.5 bg-black text-white hover:bg-black/80 rounded transition-colors">
  Example
</button>

// Follow-up suggestion chips
<button className="text-xs px-3 py-1.5 border border-black/20 text-black hover:border-black hover:bg-black/5 rounded transition-colors">
  Suggestion
</button>
```

## Typography

| Element | Classes |
|---------|---------|
| Page title | `text-2xl font-bold text-black` |
| Section header | `text-sm font-medium text-black/70 uppercase tracking-wide` |
| Card title | `text-base font-medium text-black` |
| Body text | `text-sm text-black` |
| Muted text | `text-sm text-black/60` |
| Small muted | `text-xs text-black/50` |

## Icons

Use Lucide React icons. Size conventions:

| Context | Size |
|---------|------|
| Button inline | `h-3.5 w-3.5` |
| Action button | `h-4 w-4` |
| Section header | `h-5 w-5` or `h-6 w-6` |

## Spacing

- Card padding: `px-6 py-4` (header), `p-4` or `p-6` (content)
- Section gaps: `gap-4` or `gap-6`
- Inline element gaps: `gap-1`, `gap-1.5`, `gap-2`

## Don'ts

- No `gray-*` classes - use `black/*` opacity
- No colored backgrounds for cards - use white with black border
- No gradients
- No shadows except subtle on selected states (`shadow-sm`)
- No decorative colors - accents are functional

Related Skills

tech

6
from karloscodes/fusionaly-oss

Use when writing or reviewing Go code in fusionaly-oss — adding routes, handlers, domain contexts, background jobs, the manager CLI, wiring the app, or writing tests. Covers the cartridge framework, matcha for the manager, Phoenix Contexts, lifecycle/shutdown, and the test conventions.

qa

6
from karloscodes/fusionaly-oss

Use after code changes, before releases, or when testing features - runs the right level of QA based on what changed

fusionaly

6
from karloscodes/fusionaly-oss

Use when user asks about website analytics, traffic, visitors, page views, referrers, or mentions "fusionaly". Queries Fusionaly analytics via SQL API.

fusionaly-deploy

6
from karloscodes/fusionaly-oss

Use ONLY when explicitly invoked. Installs Fusionaly on a server you can reach over SSH with a key. Optionally provisions a new Hetzner server or sets up Cloudflare DNS.

design-system

144923
from affaan-m/everything-claude-code

Use this skill to generate or audit design systems, check visual consistency, and review PRs that touch styling.

DevelopmentClaude

liquid-glass-design

144923
from affaan-m/everything-claude-code

iOS 26 液态玻璃设计系统 — 适用于 SwiftUI、UIKit 和 WidgetKit 的动态玻璃材质,具有模糊、反射和交互式变形效果。

Mobile DevelopmentClaude

api-design

144923
from affaan-m/everything-claude-code

REST API design patterns including resource naming, status codes, pagination, filtering, error responses, versioning, and rate limiting for production APIs.

DevelopmentClaude

mobile-design

31392
from sickn33/antigravity-awesome-skills

(Mobile-First · Touch-First · Platform-Respectful)

UI/UX Design & Frontend DevelopmentClaude

kpi-dashboard-design

31392
from sickn33/antigravity-awesome-skills

Comprehensive patterns for designing effective Key Performance Indicator (KPI) dashboards that drive business decisions.

Business Intelligence & AnalyticsClaude

game-design

31392
from sickn33/antigravity-awesome-skills

Game design principles. GDD structure, balancing, player psychology, progression.

Game DevelopmentClaude

frontend-design

31392
from sickn33/antigravity-awesome-skills

You are a frontend designer-engineer, not a layout generator.

Web DevelopmentClaude

event-store-design

31392
from sickn33/antigravity-awesome-skills

Design and implement event stores for event-sourced systems. Use when building event sourcing infrastructure, choosing event store technologies, or implementing event persistence patterns.

Software ArchitectureClaude