Menu

Tailwind CSS SVG

Tailwind CSS provides a set of utilities to control the appearance of SVG elements, ensuring consistency and ease of customization. These utilities allow developers to manipulate fill, stroke, and stroke-width properties without requiring inline styles or additional CSS. By using Tailwind’s utility-first approach, SVGs can be seamlessly styled to match the overall design system of a project.

With utilities like fill-*, stroke-*, and stroke-width-*, developers can fine-tune SVG icons, illustrations, and graphics to enhance their visual presentation across different themes and interaction states.

UtilityDescriptionExample
FillSets fill color for SVG graphics or other elements.<svg className="fill-current"></svg>
StrokeApplies stroke color to SVG elements and paths.<svg className="stroke-current"></svg>
Stroke WidthDefines thickness of SVG strokes for element outlines.<svg className="stroke-2"></svg>

Best Practices

Control SVG Fill Color

The fill-* utility defines the fill color of an SVG element, allowing dynamic customization based on Tailwind’s color palette. This is especially useful for icons and illustrations. For instance, fill-current ensures that the SVG inherits the text color, while fill-blue-500, fill-gray-700, etc. apply a specific color from the Tailwind palette.

Define SVG Stroke Colors

The stroke-* utility applies a color to the outline of an SVG shape, controlling its border appearance. This is particularly useful for line-based icons or drawings that need distinct stroke colors. To match UI components, use stroke-current to inherit the text color or specific colors like- stroke-red-600 to explicitly define a stroke color for emphasis.

Adjust Stroke Thickness

The stroke-* utility modifies the thickness of an SVG stroke. Values such as stroke-1 or stroke-2 define how bold the outline appears, helping maintain visual hierarchy. For precise adjustments, increasing stroke width on hover (hover:stroke-2) enhances interactive elements like buttons and links.

Ensure Accessibility

Applying fill-current and stroke-current ensures that SVGs automatically adapt to text color changes, improving consistency across themes and accessibility modes. For dark mode, use dark:fill-white or dark:stroke-gray-300 to maintain visibility against darker backgrounds.

Combine Fill and Stroke

Using both fill-* and stroke-* together allows for more detailed SVG styling. For example, fill-transparent stroke-black stroke-2 creates a clear inner shape with a bold outline. Pairing fill-none with stroke-* is effective for line-based illustrations where only the stroke is needed.