Evolving Design System Components logo

Evolving Design System Components

Organization
bitwarden
evolving-design-system-components

Propose a new UI pattern or modify an existing Design System component per Bitwarden's published governance process — design-team alignment, Core vs. Recipe/Snowflake decision with UI Foundation, Figma branching and property conventions, review gates, merge timing.

Overview

Publisherbitwarden
Repositoryai-plugins
Skill nameevolving-design-system-components
Stars
149
Forks
19
Bundled files
1
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.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

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

Installation

Install the Evolving Design System Components 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.
  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/bitwarden/ai-plugins.git /tmp/ai-plugins
mkdir -p .claude/skills
cp -r /tmp/ai-plugins/plugins/bitwarden-design-tools/skills/evolving-design-system-components .claude/skills/evolving-design-system-components
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Evolving Design System Components 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 Evolving Design System Components 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 Evolving Design System Components 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.

Evolving Design System Components

This skill grounds Component Library work in two Bitwarden governance pages: Creating new design patterns and Modifying an existing Design System component. Read the canonical pages via get_confluence_page before driving a real proposal — they evolve faster than this skill, and they link to template Figma files and engineering processes referenced below. Figma conventions (property ordering, naming) live in references/figma-conventions.md.

The two paths

There are two governance flows. They share a beginning but diverge.

  • Creating a new pattern. A pattern that doesn't yet exist. Path forks at "is this a Core Component, or a Recipe/Snowflake?" based on use cases and complexity.
  • Modifying an existing component. A pattern that already exists. Always passes through the UI Foundation team because instances across the product are affected.

The skill walks both. Confirm which one applies before recommending steps — they have different review gates.

Step 1: Search first, then propose

Before either path, check whether the pattern already exists. The most common false-positive of "we need a new component" is "this already exists in the library and the designer hadn't found it."

Use search_design_system and get_libraries from using-figma. If a near match is found, the question becomes whether to use it as-is, modify it (path B), or propose a new variant under it. If no match, proceed.

Step 2: Identify the need with the team

For both paths, the design team aligns first — before engineering is involved. From the Confluence pages:

  • The designer identifies the need and creates a draft of the new or modified pattern in a feature file.
  • The designer shares with the design team — group iteration or independent draft followed by team critique, depending on timeline.
  • The design team reviews against three or four questions, depending on the path:

For a new pattern:

  • What existing patterns have been considered? Why don't they work?
  • What value does the new pattern bring?
  • Does it follow existing design / brand guidelines?
  • What are other use cases? Can it be used in multiple places?

For a modification:

  • Does it improve visual appeal?
  • Does it expand the use cases for the component?
  • Is it in line with other UI patterns?
  • How will it affect instances of the component across the product?
  • What other components or patterns might be affected?

The team aligns on whether to move forward before the proposal goes further. There is a Figma template for new pattern discussion linked from the Creating-new-design-patterns page; surface it when the proposer doesn't have a discussion structure of their own.

Step 3 (new patterns only): Core vs. Recipe/Snowflake

This decision is made with the UI Foundation team — never unilaterally by the proposing designer.

  • Core Component Library candidate. Many use cases, or too complex for a single feature team to maintain. Becomes a first-class library component owned by UI Foundation.
  • Recipe / Snowflake. Few use cases, or specific to a feature surface. Owned by the feature team that built it. Still added to the Figma library so other designers can find it.

Schedule the conversation with UI Foundation. Walk the use cases. Defer to their call on ownership. The Confluence page references the engineering side at Creating a New Component — read that page when the Core path is taken.

Step 4: Build it in the Figma library

The Figma side of the process is opinionated. The conventions — property ordering, naming, required states, documentation pattern — are in references/figma-conventions.md. The high-level moves:

  • Open the Tailwind Component Library Figma file.
  • Create a new branch named after the component / pattern.
  • Add the new (or modified) UI pattern as a Figma Component, on a dedicated page for new components or in the existing component's page for modifications.
  • For interactive components, ensure at minimum: default, hover, focus, active (where applicable), disabled (where applicable).
  • Name Figma properties per the CL API design docs and existing Figma property patterns. Property order matters — see references/figma-conventions.md.
  • Create a component-documentation frame next to the component with usage, behavior, variants, and accessibility notes. Convention is to copy and adapt an existing component's docs rather than build from scratch.
  • For modifications, leave a Figma comment on each changed component noting what changed.

Step 5: Review gates

  • New patterns. Send the branch to the Design team for review.
  • Modifications. Send the branch to the Design team AND review during a team sync. At least 2 other designers must approve before merging.
  • Review changes with the UI Foundation engineering team during a team sync.
  • Create a Jira issue on the Component Library board if not already created. Prioritize with UI Foundation engineering in the next sync.

Step 6: Merge timing — Figma vs. code

The default is wait to merge the Figma branch until engineering has updated the code so designers don't see UI in Figma that doesn't yet exist in product. But there are exceptions:

  • Designers need the changes now. Add a warning badge to the component's docs in Figma noting the engineering state, merge the Figma branch, and send an update to engineering teams in #team-eng-ui-foundation.
  • Branch maintenance is too unwieldy. Same exception applies — merge with a warning and announce.

Default to the disciplined order. Use the exception sparingly.

Composing with other skills

  • using-figma. search_design_system and get_libraries for the pre-proposal search; get_metadata and get_variable_defs for inspecting existing components; the Code Connect tools (get_code_connect_map, add_code_connect_map, get_context_for_code_connect) for the design-to-code linkage when promoting a pattern to a Core Component.
  • facilitating-design-critique. The design team's alignment step in Step 2 is a critique session, not a one-off message. When the proposer needs help structuring it, dispatch into the critique-facilitation skill.
  • navigating-design-jira-process. The Component Library Jira board lives inside the larger Product and Design Jira workflow. When the proposal generates engineering work, dispatch into the Jira-process skill for the right state moves.

Common traps

  • Skipping the pre-proposal search. search_design_system first. Always.
  • Designer-unilateral Core/Recipe call. The UI Foundation conversation is required for this decision. Don't pre-decide.
  • Property names that don't match the CL API conventions. Inconsistent naming breaks the library's usability across the team. Read the CL API design doc rather than improvising.
  • Skipping the warning badge on early merges. When the exception path is taken, the warning badge in Figma plus the #team-eng-ui-foundation message is required, not optional.
  • Merging Figma changes ahead of engineering with no comms. Designers downstream see UI that doesn't exist in product and build on top of it.

Output format

When asked to help propose a pattern or modify a component:

  1. Path — new pattern or modification.
  2. Search results — what already exists in the library that's adjacent or overlapping.
  3. Design team alignment plan — what to bring to critique, what questions the team should weigh.
  4. Core vs. Recipe call (new patterns only) — the UI Foundation conversation framing.
  5. Figma plan — branch name, page placement, required states, property order, docs frame.
  6. Review path — designer approvals required, UI Foundation review, Component Library Jira issue.
  7. Merge timing — default or exception, with the warning-badge and comms steps if exception.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Evolving Design System Components AI skill do?

Propose a new UI pattern or modify an existing Design System component per Bitwarden's published governance process — design-team alignment, Core vs. Recipe/Snowflake decision with UI Foundation, Figma branching and property conventions, review gates, merge timing.

Why use Evolving Design System Components on TypingMind?

Because you install it once and use it with any model. Evolving Design System Components 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 Evolving Design System Components in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/bitwarden/ai-plugins/tree/main/plugins/bitwarden-design-tools/skills/evolving-design-system-components. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Evolving Design System Components?

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 Evolving Design System Components?

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

Is the Evolving Design System Components AI skill free?

It is published on GitHub by bitwarden. Check the repository for licensing terms. 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 👇