Has anyone successfully implemented the utility first CSS class convention in Webflow and have any tips on the initial setup, utility classes included, obstacles faced while building the site, if they would take this approach again, and a URL to the site?

TL;DR
  • Use Finsweet's Client-First system in Webflow to apply utility-first CSS with standardized class names for layout, spacing, and typography.  
  • Start by cloning a Client-First template, define your design tokens, implement consistent naming, and manage common utilities via Webflow’s class search and folders.  
  • Expect class bloat and a steeper learning curve, but most users stick with it due to its scalability and clear structure.

Using a utility-first CSS convention in Webflow is possible, and many designers have done it successfully using structured class naming systems, like the Client-First System by Finsweet. Here’s how teams have set it up, the benefits, challenges, and whether it’s worth doing again.

1. Example of a Utility-First Setup in Webflow

  • Many use Client-First by Finsweet, which blends utility and semantic class naming (e.g., padding-mediumbg-neutral-100text-center, etc.).
  • The system includes:
  • Structural components like sectioncontainerheading-style-h2
  • Utility classes for common spacing, layout, and typography purposes

Live Example: Finsweet Client-First Starter Site  

GitHub Repo: https://github.com/finsweet/client-first  

Templates: Integrated into multiple cloneables on Webflow Showcase

2. Tips for Initial Setup

  • Clone a Finsweet Client-First template or use their class library as a base.
  • Audit your design system first and decide on variables for padding, margin, max width, container styles, and breakpoint naming.
  • Use a component naming structure (e.g., nav_mainfooter_mainhero_primary) with modifiers.
  • Use Webflow Folders and Search to keep track of commonly-used utility classes.

3. Common Utility Classes to Include

Some commonly used utility classes from Client-First or custom setups include:

  • Spacing: padding-top-mediummargin-bottom-smallgap-32
  • Flex/Grid: flex-centergrid-2-colalign-items-center
  • Text Alignment: text-lefttext-centertext-right
  • Width/Max Width: w-100max-width-mediumfull-width
  • Colors: bg-gray-100text-dark-bluebg-white
  • Visibility: hide-mobileshow-desktop

Use consistent naming patterns like padding-[side]-[size] or bg-[color].

4. Challenges and Obstacles

  • Class proliferation: Because each utility class is separate, you might end up with dozens of class names on one element.
  • Webflow Style Manager can get bloated, making it harder to scroll through classes unless structured well.
  • Team buy-in: It can be challenging onboarding collaborators unfamiliar with utility-first naming.
  • Visual clarity in Designer: Without semantic names, it’s sometimes harder to recognize components by name alone.

5. Do Most People Stick With It?

Yes—but often with modification:

  • Most teams tweak the approach to suit their workflow, adding more component-level classes where needed.
  • Many say they would absolutely use it again because of the scalability and efficiency (especially when handing off to clients).
  • Systems like Client-First have active communities and documentation, reducing the learning curve.

Summary

Utility-first CSS in Webflow is fully achievable and widely used, especially via Finsweet's Client-First system. It involves setting up a standardized class library, maintaining consistency, and managing class bloat. Designers who implement it generally find it repeatable, scalable, and highly compatible with Webflow's visual builder. Check out client-first.webflow.io to see it in action.

Rate this answer

Other Webflow Questions