Status Colors And Errors logo

Status Colors And Errors

Organization
dembrandt
status-colors-and-errors

Few semantic colours, each meaning one thing, and errors with a way forward. Use when designing status indicators, validation, alerts or error states.

Overview

Publisherdembrandt
Repositorydembrandt-skills
Skill namestatus-colors-and-errors
Stars
169
Forks
21
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by dembrandt on GitHub. Read the source before you install it.

Installation

Install the Status Colors And Errors AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/dembrandt/dembrandt-skills/tree/main/skills/status-colors-and-errors
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/dembrandt/dembrandt-skills.git /tmp/dembrandt-skills
mkdir -p .claude/skills
cp -r /tmp/dembrandt-skills/skills/status-colors-and-errors .claude/skills/status-colors-and-errors
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Status Colors And Errors in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Status Colors And Errors on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Status Colors And Errors is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Status Colours and Error Design

Keep the Colour Set Small

Every status colour added to a system is a cognitive burden on the user. They must learn what each colour means, remember it, and interpret it correctly under stress — which is exactly when errors occur.

The minimal set that covers almost everything:

ColourSemantic meaningAlways means
RedError / failure / destructiveSomething went wrong, or this action cannot be undone
Orange / AmberWarningSomething needs attention before proceeding
GreenSuccess / positiveAction completed, state is healthy
BlueInfo / neutral statusInformational, no action required

Rule: each colour maps to exactly one meaning across the entire product. If orange means "warning" in one component and "pending" in another, the system breaks down.

Every status tone must be visibly distinct from the others. If two tokens render alike, keep one. A second name for the same visible colour is not a second status: authors pick either, users read one state, and the name becomes a lie. Draft and pending states take neutral, not the warning tone.

When in doubt, cut the colour — neutral grey communicates status without semantic weight, and neutral is better than a misused semantic colour.

Orange Is Always a Warning

Orange (amber) carries a specific signal: pay attention, something may go wrong. Do not use it for:

  • Neutral states (use grey)
  • Progress or pending (use blue or a spinner)
  • Informational content (use blue)
  • Branding or decorative purposes inside status indicators

If orange appears in the UI, the user should immediately know it requires their attention.

Errors Should Be Recoverable

The worst error is one the user cannot recover from. Design every error state with a path forward.

Error message anatomy

Every error should answer three questions:

  1. What went wrong? — plain language, no error codes
  2. Why did it happen? — if useful and known
  3. What should the user do next? — specific, actionable
❌ "Error 500"
❌ "Something went wrong"
✓  "We couldn't save your changes. Check your connection and try again."
✓  "This email is already in use. Sign in instead, or use a different email."

Recovery actions

  • Always provide a retry button for transient failures (network errors, timeouts)
  • For validation errors, point directly to the problematic field
  • For destructive actions that failed, reassure the user nothing was lost
  • For session expiry, redirect to login and return the user to where they were

Prevent Large Errors Before They Happen

The most damaging errors — data loss, irreversible actions, broken state — should be prevented at the design level, not handled after the fact.

  • Confirm before irreversible actions: "Delete this project and all 47 tasks? This cannot be undone."
  • Disable unavailable actions rather than letting users trigger them and hit an error
  • Autosave where possible so a browser crash or accidental close does not destroy work
  • Optimistic UI with rollback: show the success state immediately, silently retry on failure, surface an error only if the retry also fails

State the consequences before the user acts, not after. Fear comes from not knowing what a control will do. Make the outcome legible ahead of the action so the user commits with confidence:

  • Plain-language consequence text next to or inside the control: "This will email all 240 subscribers", "Publishing makes this visible to everyone".
  • Staged guidance for anything multi-step or heavy: break it into steps and tell the user what each one will do before they proceed, so the whole operation is predictable rather than a leap.
  • Reserve the strong interruptions (confirm dialogs, typed confirmation) for the genuinely dangerous cases above; for everyday actions, a quiet line of helper text is enough. The goal is the same — no surprises, so nothing feels scary.

Levels of Severity — Use Sparingly

Not every problem is equal. Match the visual weight of the feedback to the severity.

SeverityPatternWhen to use
Blocking errorFull-page error state or modalApp cannot continue, user must act
Inline errorRed text below a fieldForm field validation failure
Toast / snackbarTemporary notification, bottom of screenTransient failure the user should know about but can dismiss
Alert bannerPersistent bar at top of sectionOngoing issue affecting the current context
Empty stateIllustrated or descriptive empty screenNo data yet — use as an opportunity for guidance, not just a blank

Avoid showing multiple simultaneous error types at once — one clear message is more useful than three overlapping alerts.

Degree of Likeness Is One Hue, Never Red to Green

This is about amount, not state. Status still takes the semantic palette above, and a chart with a known convention keeps it (see [[data-display-and-selection]]). When a cell shows how alike two things are, or how much of something there is, shade it on one hue from near black (nothing in common) to the accent (the same). Red and yellow at the low end read as warnings and turn a page of differences into an error; green reads as a grade. A single hue reads as an amount, which is what the number is.

Review Checklist

  • Does the product use four or fewer semantic status colours?
  • Does each colour mean exactly one thing, used consistently everywhere?
  • Does every status tone render visibly different from every other, with look-alike tokens merged?
  • Is orange/amber reserved exclusively for warnings?
  • Does every error message state what went wrong and what to do next?
  • Do all transient errors (network, timeout) have a retry action?
  • Are irreversible destructive actions protected by a confirmation step?
  • Is autosave or draft recovery available for long-form or complex inputs?
  • Are multiple simultaneous error states avoided?
  • Is a similarity or magnitude scale drawn on one hue, with warning and success colours kept for state?

Common Anti-Patterns

Anti-patternProblemFix
"Something went wrong" with no actionUser is stuck with no path forwardAdd specific cause and a retry or contact link
Orange used for "pending" and "warning" simultaneouslyColour loses its meaningOrange = warning only; use blue or spinner for pending
Five or more status colours (red, orange, yellow, teal, purple…)User must learn and remember a complex legendCut to the minimum: red, orange, green, blue
Inline validation only on submitUser discovers all errors at onceValidate on blur (leaving a field) for immediate feedback
No confirmation on deleteUsers accidentally delete dataRequire explicit confirmation for all irreversible actions

Frequently asked questions

What does the Status Colors And Errors AI skill do?

Few semantic colours, each meaning one thing, and errors with a way forward. Use when designing status indicators, validation, alerts or error states.

Why use Status Colors And Errors on TypingMind?

Because you install it once and use it with any model. Status Colors And Errors is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Status Colors And Errors in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/dembrandt/dembrandt-skills/tree/main/skills/status-colors-and-errors. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Status Colors And Errors?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Status Colors And Errors?

As many as you like. As long as a model supports skills, you can use Status Colors And Errors with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Status Colors And Errors AI skill free?

Yes. It is published on GitHub by dembrandt under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇