CSS to Tailwind Converter

Paste plain CSS rules and get back Tailwind utility classes for each selector, using a lookup table over a common property/value subset, with arbitrary-value classes for anything that doesn't map cleanly. A free online tool from Staaarter, right in your browser.

Runs locallyUpdated 2026-07-26

Overview

Introduction

Migrating a stylesheet to Tailwind means translating each declaration to its matching utility class by hand, which gets tedious past a handful of rules.

This tool converts plain CSS rules into their closest Tailwind utility classes directly in your browser, one line of classes per selector.

What Is CSS to Tailwind Converter?

A hand-written CSS rule parser paired with a lookup table covering a common subset of layout, spacing, color, typography, and border-radius properties.

For values that don't land on a known scale step or keyword, it emits Tailwind's arbitrary-value syntax instead of dropping the declaration.

How CSS to Tailwind Converter Works

Each selector { property: value; ... } block is parsed into its declarations, and every declaration is looked up against a table of property/value mappings shared with the Tailwind to CSS Converter.

Spacing-scale properties (padding, margin, gap, width, height), font-size, and border-radius convert the CSS length to rem and match it against Tailwind's default scale; anything outside that scale becomes an arbitrary-value class using the matching utility prefix.

When To Use CSS to Tailwind Converter

Use it while migrating a component's CSS to Tailwind, to get a first-pass class list instead of translating each declaration by hand.

It's also useful for learning which Tailwind utility corresponds to a given CSS declaration.

Features

Advantages

  • Runs entirely client-side.
  • Falls back to Tailwind's arbitrary-value and arbitrary-property syntax instead of silently dropping anything it can't map to a named utility.
  • Shares its mapping table with the Tailwind to CSS Converter, so converting back and forth stays consistent.

Limitations

  • This covers a common subset of properties (display, flexbox alignment, spacing, color, font-size/weight, border-radius) — it isn't a full Tailwind config resolver and doesn't know about a customized theme.
  • Only a small set of named colors (white, black, transparent, and a few base palette names) map to color utility classes; other colors fall back to an arbitrary-value class like bg-[#3366ff].
  • It doesn't generate responsive, state (hover:, focus:), or dark-mode variants; it converts a single flat declaration block.

Examples

Flex centering with padding

Input

.foo {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

Output

<!-- .foo --> flex items-center justify-center p-4

Each declaration maps to a known utility class: flex, items-center, justify-center, and p-4 for 1rem on Tailwind's default spacing scale.

A value with no scale match

Input

.label {
  letter-spacing: 0.3px;
}

Output

<!-- .label --> tracking-[0.3px]

0.3px isn't on Tailwind's letter-spacing scale, so it becomes an arbitrary-value class instead of being dropped.

Best Practices & Notes

Best Practices

  • Check color output against your project's actual Tailwind theme; only a handful of named colors are recognized here.
  • Add responsive and state variants (sm:, hover:, dark:) to the generated classes by hand, since this tool only converts the base declaration.
  • Run the CSS Variable Extractor first if your stylesheet leans on custom properties, since var() references aren't resolved here.

Developer Notes

Property/value lookups live in a shared tailwind-css-mapping module (spacing/radius/font-size scales, color/display/flex maps) used by both this tool and the Tailwind to CSS Converter.

CSS to Tailwind Converter Use Cases

  • Getting a first-pass Tailwind class list while migrating a component's CSS
  • Learning which utility class corresponds to a specific CSS declaration
  • Spot-checking whether a value falls on Tailwind's default spacing/font-size scale

Common Mistakes

  • Assuming every color value maps to a named Tailwind color class; most fall back to an arbitrary-value class like text-[#ff6600].
  • Expecting media queries or pseudo-class rules to convert; only flat selector { property: value; } blocks are parsed.

Tips

  • If a value comes out as an arbitrary-value class, check whether rounding it to the nearest step on Tailwind's scale (e.g. 0.25rem increments) would let you use a named utility instead.
  • Run the Tailwind to CSS Converter on the output to sanity-check the round trip before committing to the class list.

References

Frequently Asked Questions