BEM·WIND

A Claude Code skill


Semantic BEM CSS with Tailwind @apply. Keep the design system, lose the utility soup in your markup.

$ npx bem-wind add-skill --global

Setup


Install the skill into your .claude/skills:

$ npx bem-wind add-skill --global

Drop --global to install into the current project instead.

Or add it from inside Claude Code (run each in turn):

/plugin marketplace add tarynstark/bem-wind
/plugin install bem-wind@bem-wind

Then invoke it any time with /bem-wind.

The method


  • 01Everything inside @apply: compose from Tailwind, no raw CSS.
  • 02Prefix every class with a 2–4 char project prefix.
  • 03BEM naming: [prefix]-block__element--modifier.
  • 04Prefer standard Tailwind values; brackets only when needed.
  • 05No utilities in markup: components carry semantic names only.

Examples


Before · utility soup in the markup:

<button class="inline-flex items-center
  justify-center px-4 py-2 rounded-lg
  bg-blue-500 text-white transition-colors
  hover:bg-blue-600 active:bg-blue-700 ...">
  Get started
</button>

After · semantic markup, styling in the stylesheet:

<button class="ds-button ds-button--primary">Get started</button>

.ds-button {
  @apply inline-flex items-center justify-center;
  @apply px-4 py-2 rounded-lg transition-colors;
  &--primary {
    @apply bg-blue-500 text-white;
    @apply hover:bg-blue-600 active:bg-blue-700;
  }
}

Same pixels. Full patterns (cards, inputs, modals, tokens) ship inside the skill.