DevOps & Infra
heartbeat-design - Claude MCP Skill
Kyoto Moss design system for Heartbeat uptime monitoring. Invoke when building, modifying, or reviewing Heartbeat UI components. Ensures visual consistency and prevents design violations.
SEO Guide: Enhance your AI agent with the heartbeat-design tool. This Model Context Protocol (MCP) server allows Claude Desktop and other LLMs to kyoto moss design system for heartbeat uptime monitoring. invoke when building, modifying, or review... Download and configure this skill to unlock new capabilities for your AI workflow.
Documentation
SKILL.md# Heartbeat Design System: Kyoto Moss
## Philosophy
Japanese minimalism meets wabi-sabi. Technology in harmony with nature.
- **Uptime** = Spring growth (moss green vitality)
- **Degraded** = Autumn warning (clay/amber transition)
- **Downtime** = Winter stillness (brick red, managed with composure)
The interface should feel like a calm garden—incidents are natural cycles to acknowledge and address, not emergencies that induce panic.
## Token Architecture
Heartbeat uses a flat token structure where keys map directly to CSS variables.
### Required Imports
```tsx
import { cn } from "@/lib/cn";
import { kyotoMossTheme, getStatusClasses } from "@/lib/design";
import { Button, Card, StatusIndicator } from "@/components/ui";
```
### Background Tokens
| Token | Light | Dark | Usage |
| ----------------------- | ------------------- | ------------------- | ------------------------ |
| `--color-bg-primary` | #f5f2eb | #1a1f1c | Page background |
| `--color-bg-secondary` | #ebe8e1 | #242a26 | Section backgrounds |
| `--color-bg-tertiary` | #e0ddd6 | #2e3630 | Hover states |
| `--color-bg-elevated` | rgba(255,255,255,0.6) | rgba(255,255,255,0.04) | Cards, panels |
### Text Tokens
| Token | Light | Dark | Usage |
| ----------------------- | ------- | ------- | ------------------------ |
| `--color-text-primary` | #2d4a3e | #e8e5de | Primary text |
| `--color-text-secondary`| #5a6b62 | #b5b0a5 | Secondary text |
| `--color-text-tertiary` | #8b7355 | #8b8578 | Tertiary/clay accent |
| `--color-text-muted` | #a09080 | #6b665c | Disabled, hints |
### Status Tokens (CRITICAL)
These are the semantic heart of Heartbeat. ALWAYS use these for status-related UI.
| Status | Solid Token | Muted Token | Usage |
| -------- | ------------------------- | ------------------------------- | ------------------------ |
| Up | `--color-status-up` | `--color-status-up-muted` | Healthy, operational |
| Degraded | `--color-status-degraded` | `--color-status-degraded-muted` | Slow, warning |
| Down | `--color-status-down` | `--color-status-down-muted` | Outage, incident |
### Typography
| Token | Value | Usage |
| --------------- | --------------------------------------------- | ------------------ |
| `--font-display`| "Noto Serif JP", serif | Headlines, display |
| `--font-body` | "Manrope", system-ui | Body text |
| `--font-mono` | "IBM Plex Mono", monospace | Data, code |
## Component Patterns
### StatusIndicator
ALWAYS use the CVA-based StatusIndicator for status display:
```tsx
import { StatusIndicator } from "@/components/ui";
<StatusIndicator status="up" size="md" />
<StatusIndicator status="degraded" size="lg" glow />
<StatusIndicator status="down" size="xl" />
```
Status indicators use the `animate-km-breathe` animation for "up" state.
### Cards
Use the Card component with appropriate variants:
```tsx
import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui";
<Card variant="default" padding="md">
<CardHeader>
<CardTitle>Monitor Name</CardTitle>
</CardHeader>
<CardContent>...</CardContent>
</Card>
```
### Buttons
```tsx
import { Button } from "@/components/ui";
<Button variant="primary">Add Monitor</Button>
<Button variant="secondary">Cancel</Button>
<Button variant="danger">Delete</Button>
<Button variant="ghost" size="icon-sm">...</Button>
```
## Animation Guidelines
### Breathing Animation
Status indicators use `animate-km-breathe` (4s cycle, subtle scale):
- Up: Full breathing animation
- Degraded: Subtle breathing (`animate-km-breathe-subtle`)
- Down: No animation (stillness)
### Transitions
- Use `duration-normal` (200ms) for interaction feedback
- Use `duration-fast` (100ms) for micro-interactions
- Use `ease-out` for entrances
- NEVER exceed 200ms for hover/click feedback
### Reduced Motion
ALWAYS respect `prefers-reduced-motion`. The CSS handles this automatically, but avoid adding inline JavaScript animations that bypass it.
## BANNED PATTERNS
These patterns are EXPLICITLY FORBIDDEN in Heartbeat:
### Never Use
1. **Left-border accent with rounded corners** for alerts/callouts
2. **Purple/blue gradients** on any background
3. **Inter, Roboto, Arial, Space Grotesk** fonts
4. **Tailwind default colors** without semantic mapping (e.g., `bg-blue-500`)
5. **Arbitrary color values** (e.g., `bg-[#123456]`)
6. **Generic hero badges** ("New", "AI-Powered", "Beta")
7. **Glow effects as primary affordances**
### Instead Use
- Icon-led alerts with background tint
- Kyoto Moss semantic tokens
- Design system fonts (`font-display`, `font-body`, `font-mono`)
- Status colors for semantic meaning
- CSS variable references (`var(--color-status-up)`)
## File Structure
```
lib/design/
tokens.ts # Token type definitions
schema.ts # defineTheme factory + validation
presets/
kyoto-moss.ts # Theme preset values
apply.ts # Runtime theme application
index.ts # Re-exports
components/ui/
Button.tsx # CVA-based button
Card.tsx # CVA-based card
StatusIndicator.tsx # CVA-based status indicator
index.ts # Re-exports
app/globals.css # Design tokens + Kyoto Moss styling
```
## Validation Checklist
Before committing UI changes, verify:
```
[ ] Uses design system tokens (not hardcoded colors)
[ ] Uses CVA variants for components
[ ] Status colors map to semantic tokens
[ ] No left-border-accent alerts
[ ] No banned fonts
[ ] No arbitrary Tailwind values for colors
[ ] Animations respect reduced motion
[ ] Text uses text-balance/text-pretty appropriately
[ ] Data uses tabular-nums
```
## Quick Reference
```tsx
// Status color classes
.bg-up // Moss green
.bg-degraded // Clay amber
.bg-down // Brick red
.bg-up-muted // Subtle moss background
.text-up // Moss green text
// Animations
.animate-km-breathe // Status indicator breathing
.animate-km-breathe-subtle // Subtle breathing
.animate-km-fade-in-up // Entrance animation
// Typography
.font-display // Noto Serif JP
.font-body // Manrope
.font-mono // IBM Plex Mono
.text-display // Display headline styling
.text-mono // Monospace with tabular-nums
// Surfaces
.glass-panel // Translucent with blur
.card-hover // Interactive card hover effect
```Signals
Information
- Repository
- phrazzld/claude-config
- Author
- phrazzld
- Last Sync
- 1/19/2026
- Repo Updated
- 1/17/2026
- Created
- 1/18/2026
Reviews (0)
No reviews yet. Be the first to review this skill!
Related Skills
upgrade-webkit
Upgrade Bun's Webkit fork to the latest upstream version of Webkit.
browser-use
Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, or extract information from web pages.
remote-browser
Controls a cloud browser from a sandboxed remote machine. Use when the agent is running in a sandbox (no GUI) and needs to navigate websites, interact with web pages, fill forms, take screenshots, or expose local dev servers via tunnels.
code-review
Perform thorough code reviews with security, performance, and maintainability analysis. Use when user asks to review code, check for bugs, or audit a codebase.
Related Guides
Mastering VSCode Extension Development with Claude: A Complete Guide to the TypeScript Extension Dev Skill
Learn how to use the vscode extension dev typescript Claude skill. Complete guide with installation instructions and examples.
Mastering Next.js, React, and TypeScript Development with Claude: A Complete Guide to the "nextjs react typescript" Skill
Learn how to use the nextjs react typescript Claude skill. Complete guide with installation instructions and examples.
Laravel TALL Stack Best Practices: A Comprehensive Guide to the Claude Skill
Learn how to use the laravel tall stack best practices Claude skill. Complete guide with installation instructions and examples.