
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.
- Installs
- 43
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/bitwarden/ai-plugins --skill evolving-design-system-components- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads evolving-design-system-components automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
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_systemandget_librariesfor the pre-proposal search;get_metadataandget_variable_defsfor 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_systemfirst. 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-foundationmessage 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:
- Path — new pattern or modification.
- Search results — what already exists in the library that's adjacent or overlapping.
- Design team alignment plan — what to bring to critique, what questions the team should weigh.
- Core vs. Recipe call (new patterns only) — the UI Foundation conversation framing.
- Figma plan — branch name, page placement, required states, property order, docs frame.
- Review path — designer approvals required, UI Foundation review, Component Library Jira issue.
- Merge timing — default or exception, with the warning-badge and comms steps if exception.
FAQ
What does the evolving-design-system-components 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.
How do I install evolving-design-system-components?
Run npx skills add https://github.com/bitwarden/ai-plugins --skill evolving-design-system-components in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/evolving-design-system-components/ (personal) or .claude/skills/evolving-design-system-components/ (project).
Which AI agents can use evolving-design-system-components?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is evolving-design-system-components safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains evolving-design-system-components?
It is published by bitwarden in bitwarden/ai-plugins. It has 43 recorded installs.
More from bitwarden/ai-plugins
reviewing-security-architecture
bitwarden/ai-plugins
This skill should be used when the user asks to "review the security architecture", "check authentication patterns", "evaluate trust boundaries", "review encryption implementation", "assess authorization design", or needs to evaluate system designs for authentication, authorization, data protection, or cryptographic correctness.
threat-modeling
bitwarden/ai-plugins
This skill should be used when the user asks to "create a threat model", "define security goals", "generate a data flow diagram", "write security definitions", "perform an initial security assessment", or needs to produce threat model artifacts for new features or architecture changes.
retrospecting
bitwarden/ai-plugins
Performs comprehensive analysis of Claude Code sessions, examining git history, conversation logs, code changes, and gathering user feedback to generate actionable retrospective reports with insights for continuous improvement.
reviewing-claude-config
bitwarden/ai-plugins
Reviews Claude configuration files for security, structure, and prompt engineering quality. Use when reviewing changes to CLAUDE.md, agents, prompts, commands, hooks, or settings. Routes each file type to a targeted review skill and returns classified findings. Flags settings.local.json appearing in a changeset, hardcoded secrets, malformed YAML, insecure agent tool access, and unsafe hook commands. Does not review SKILL.md files — plugin-dev:skill-reviewer owns those.
avoiding-false-positives
bitwarden/ai-plugins
Use this skill to validate findings during a code review. For each finding, run the rejection criteria and verification checks. If a finding fails any check, drop it. In PR mode it also holds the once-per-review stacked-PR gate that decides whether completeness findings apply to the pull request at all.
posting-review-summary
bitwarden/ai-plugins
Use this skill when posting the final summary comment, including its No Verdict form when nothing could be reviewed and no inline comments exist. Otherwise apply as the LAST step of code review, after all findings are classified and inline comments are complete. Detects context (caller-declared local-file output, agent mode sticky comment, GitHub Actions MCP tool, or local file) and routes output accordingly.
Popular frontend & design skills
setup-matt-pocock-skills
mattpocock/skills
Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.
frontend-design
anthropics/skills
Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.
hyperframes-animation
heygen-com/hyperframes
All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.
prototype
mattpocock/skills
Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.
hyperframes-core
heygen-com/hyperframes
The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.
vercel-react-best-practices
vercel-labs/agent-skills
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.