All skills
bitwarden avatar

/evolving-design-system-components

@44910a0 official
by bitwardenbitwarden/ai-plugins155 stars
20

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.

Use this Skill: https://skilld.dev/gh/bitwarden/ai-plugins/evolving-design-system-components

This session only. Nothing lands on disk.

referencesfigma-conventions.md

≈1.1k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Figma Conventions for Component Library Work

These conventions govern Figma-side work in the Bitwarden Tailwind Component Library. They are the design-team-facing surface of the CL API design docs at bitwarden.atlassian.net/wiki/spaces/EN/pages/619511828/Establish+common+language — when in doubt, that engineering-side page wins.

Branch naming

Name the branch after the component or pattern being added or modified. Match the kebab-case used in the engineering-side Tailwind component name if it exists (e.g., segmented-control, badge, bit-toast).

Page placement

New core components. Create a new page named after the component. Pages in the "Pages" section are kept alphabetical — drop the new page in at the right slot.

Modifications. Use the existing component's page; do not create a new page for a modification.

Recipes / Snowflakes. Add to the "Templates" page at the bottom of the Pages section, not to its own page.

Required interactive states

For interactive components, include at minimum:

  • default
  • hover
  • focus
  • active (when applicable)
  • disabled (when applicable)

Missing states create handoff ambiguity. Default to including more rather than fewer.

Property order — the load-bearing convention

Figma property order is not arbitrary. Designers using the library scan properties from the top of the panel; consistent order across components makes the library usable. From the Creating-new-design-patterns Confluence page:

  1. Variant
  2. Size
  3. Icon / Element
  4. Misc / Block / Position / Quantity
  5. Expanded
  6. Selected / Active
  7. State

The two anchors that matter most: Variant first, State last. If a property doesn't obviously fit one of these slots, look at adjacent components for precedent before inventing a new ordinal.

Property naming

Property names come from the CL API design docs. When the engineering-side name already exists, match it exactly. When introducing a new name, walk it through the docs first — coined-on-the-spot names diverge from the engineering API and create translation pain at code-mapping time.

Component documentation frame

Every component (and every modified component, for documentation updates) gets a documentation frame next to its main component. The pattern:

  • Copy an existing component's docs frame as a starting point — preserves the layout, the variable bindings, and the dark-theme variable swap.
  • Replace all content with the new component's content. Sections: usage, behavior, variants, accessibility.
  • Create the docs frame as a component, named .<component-name>-docs (note the leading dot to keep it sorted at the bottom of the components list).
  • Update the docs component's variables to use the dark theme. This is intentional and matches every other component's docs.
  • Place the docs component next to the main component.
  • Group the main component and its docs component together. Name the group <component-name> - storybook link don't ungroup. The "don't ungroup" is literal — Storybook uses the group as the link target.

Comments on modifications

For modifications, leave a Figma comment on each changed component noting what changed. Comments survive the branch merge and give downstream designers context for what's new.

Warning badges on early-merge components

When the exception path is taken (Figma merges ahead of engineering), add a warning badge to the component's docs frame indicating engineering state. Remove the badge once engineering has caught up. Pair the badge with a message in #team-eng-ui-foundation.

Recipe / Snowflake annotations

Recipes don't get the full docs frame, but they should still carry:

  • Variants defined in the design file (states, sizes, configurations).
  • Annotations for component behavior and accessibility (focus order, ARIA roles, keyboard shortcuts).
  • Property naming per the same conventions above, even though the recipe lives on the Templates page.

Work with the feature team's tech lead on the engineering build plan for a recipe — recipes are owned by the feature team, not by UI Foundation, so the Jira stories live in the feature team's project, not the Component Library project.

Source: SKILL.md on GitHub

1 warning3mo3 checks · Risk SAFE
  • Gen Agent Trust Hub3mo

    This skill is safe. It manages design system governance by integrating with Bitwarden's official Atlassian workspace and Figma libraries, following established vendor security practices.

  • Socket3mo

    No alerts

  • Snyk3mo

    Risk: MEDIUM · 2 issues

Signed by skilld at 44910a0. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated 4 months ago
MCP servers
plugin_bitwarden-atlassian-tools_bitwarden-atlassian
All 9 allowed tools
Skillmcp__plugin_bitwarden-atlassian-tools_bitwarden-atlassian__get_issuemcp__plugin_bitwarden-atlassian-tools_bitwarden-atlassian__get_issue_commentsmcp__plugin_bitwarden-atlassian-tools_bitwarden-atlassian__get_issue_remote_linksmcp__plugin_bitwarden-atlassian-tools_bitwarden-atlassian__search_issuesmcp__plugin_bitwarden-atlassian-tools_bitwarden-atlassian__get_confluence_pagemcp__plugin_bitwarden-atlassian-tools_bitwarden-atlassian__get_confluence_page_commentsmcp__plugin_bitwarden-atlassian-tools_bitwarden-atlassian__search_confluencemcp__plugin_bitwarden-atlassian-tools_bitwarden-atlassian__search_confluence_cql
Other metadata
when_to_use
Use when a task touches the Component Library or its Figma source of truth. Triggers — "add a component", "create a new design pattern", "modify a component", "should this be in the Component Library", "make this a core component", "is this a snowflake", "Figma component properties". Composes `using-figma` for searching and inspecting the library. Not for handoff prep on a specific project (use `preparing-design-handoff`).
  • design-system
  • figma
  • component-library
  • ui-foundation
  • governance
  • design-patterns
  • bitwarden
  • atlassian

README badge

README badge for bitwarden/ai-plugins/evolving-design-system-components

Guides Component Library proposals and modifications through Bitwarden's design governance process: design-team alignment, Core vs. Recipe/Snowflake classification with UI Foundation, Figma branching and property conventions, and review gates. Covers both creating new patterns and modifying existing components, with different review paths for each.

Generated from the current SKILL.md.

Does this skill help with design handoff to engineering on a specific project?
No. Use `preparing-design-handoff` for project handoffs. This skill is only for proposing new Component Library patterns or modifying existing ones.
Do I need UI Foundation team approval to decide if a new pattern should be Core or Recipe/Snowflake?
Yes. The Core vs. Recipe decision is always made with the UI Foundation team, never unilaterally by the proposing designer.
Can I merge a Figma branch before engineering has implemented the code?
Only in exceptions — when designers need the changes immediately or branch maintenance becomes too unwieldy. In both cases, add a warning badge to the component docs in Figma and notify the `#team-eng-ui-foundation` channel.
What do I need to check before proposing a new component?
Search the Figma Design System library first using `search_design_system` to confirm the pattern doesn't already exist or have a near match that could be modified instead.
How many designer approvals are required before merging a modified component?
At least 2 other designers must approve modifications, and the change must be reviewed during a team sync before merging.

Generated from the current SKILL.md. These answers refresh after source changes.