GA

gaming-ui-state-management

A pattern library for creating interactive, game-inspired UI bars such as health, mana, and XP.

Install

mkdir -p .claude/skills/gaming-ui-state-management && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/2217" && unzip -o skill.zip -d .claude/skills/gaming-ui-state-management && rm skill.zip

Installs to .claude/skills/gaming-ui-state-management

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Patterns for game-like interfaces - health bars, XP bars, mana bars. Apply when building RPG/retro gaming UI components with state-driven visuals.
146 chars✓ has a “when” trigger
Beginner

Key capabilities

  • Create health, XP, and mana bars with retro variants
  • Display animated level-up notifications
  • Apply conditional animations based on game state
  • Show compact enemy health displays
  • Use color coding for different game metrics

How it works

The skill builds on a base Progress component, applying game-specific variants, color coding, retro text, and state-driven animations to create game-like interfaces.

Inputs & outputs

You give it
Game metric values (e.g., health, XP, mana) and state changes
You get back
State-driven visual components like progress bars and animated messages

When to use gaming-ui-state-management

  • Building health and mana bars
  • Creating animated level-up notifications
  • Developing RPG-style user interfaces

About this skill

Gaming UI State Management

Create game-like interfaces with state-driven visuals for health, XP, mana, and other game metrics.

Progress Bar Pattern

Build on the Progress component with game-specific variants:

import { Progress } from "@/components/ui/8bit/progress";

function HealthBar({ value = 100, ...props }: BitProgressProps) {
  return (
    <Progress
      {...props}
      value={value}
      variant="retro"
      progressBg="bg-red-500"
    />
  );
}

function ManaBar({ value = 100, ...props }: BitProgressProps) {
  return (
    <Progress
      {...props}
      value={value}
      variant="retro"
      progressBg="bg-blue-500"
    />
  );
}

function XpBar({ value = 0, ...props }: BitProgressProps) {
  return (
    <Progress
      {...props}
      value={value}
      variant="retro"
      progressBg="bg-yellow-500"
    />
  );
}

Level Up Notification

Show animated messages when thresholds are reached:

function XpBar({
  value,
  levelUpMessage = "LEVEL UP!",
  ...props
}: XpBarProps) {
  const isLevelUp = value === 100;

  return (
    <div className="relative">
      <Progress
        {...props}
        value={value}
        progressBg="bg-yellow-500"
        className={cn(isLevelUp && "animate-pulse")}
      />

      {isLevelUp && (
        <div
          className={cn(
            "retro",
            "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",
            "text-[0.625rem] text-black",
            "pointer-events-none whitespace-nowrap z-10",
            "drop-shadow-[1px_1px_0_#fff] [text-shadow:1px_1px_0_#fff,-1px_-1px_0_#fff,1px_-1px_0_#fff,-1px_1px_0_#fff]",
            "animate-[blink_0.5s_step-end_infinite]"
          )}
        >
          {levelUpMessage}
        </div>
      )}
    </div>
  );
}

Conditional Animations

Use conditional classes for game state feedback:

<div
  className={cn(
    "transition-colors duration-300",
    health <= 25 ? "animate-pulse bg-red-500/20" : "bg-green-500",
    health > 25 && health <= 50 && "bg-yellow-500/20"
  )}
/>

Enemy Health Display

Compact display for combat scenarios:

function EnemyHealth({ health, maxHealth }: EnemyHealthProps) {
  const percentage = (health / maxHealth) * 100;

  return (
    <div className="retro text-xs">
      <div className="flex justify-between mb-1">
        <span>ENEMY</span>
        <span>{health}/{maxHealth}</span>
      </div>
      <HealthBar value={percentage} className="h-2" />
    </div>
  );
}

Key Principles

  1. Base component - Extend Progress, don't reimplement
  2. Color coding - Red (health), Blue (mana), Yellow (XP), Green (stamina)
  3. Retro text - Use .retro class for pixel font numbers
  4. State animations - Use animate-pulse, animate-blink for feedback
  5. Text shadows - White text-shadow for legibility on colored backgrounds
  6. Compact sizing - Smaller text (text-xs, text-[0.625rem]) for game UIs

Reference Components

  • components/ui/8bit/health-bar.tsx - Health bar implementation
  • components/ui/8bit/xp-bar.tsx - XP bar with level up notification
  • components/ui/8bit/mana-bar.tsx - Mana bar implementation

How it compares

This skill provides specific patterns and components for retro gaming UI elements, unlike generic UI libraries.

Compared to similar skills

gaming-ui-state-management side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
gaming-ui-state-management (this skill)27moNo flagsBeginner
screenshot-to-code2042moNo flagsBeginner
web-artifacts-builder493moReviewIntermediate
frontend-ui-dark-ts43moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry