SuperAPI AI Directory

nextjs-styling

Frontend & websites

View repository

Updated 10-15 22:13

About this skill

Styling & UI Performance

Priority: P1 (HIGH)

Prioritize Zero-Runtime CSS for Server Components.

Workflow: Set Up Styling

  1. Choose library — Tailwind/shadcn (preferred), CSS Modules (scoped), or Ant Design (with client wrappers).
  2. Create cn utility — Combine clsx + tailwind-merge for dynamic classes.
  3. Configure fonts — Use next/font for zero-CLS self-hosted fonts.
  4. Set image dimensions — Always specify width/height or fill on <Image>.

cn Utility Example

See implementation examples

Library Selection

Library Verdict Reason
Tailwind / shadcn Preferred (P1) Zero-runtime, RSC compatible. Best for App Router.
CSS Modules / SCSS Recommended Scoped, zero-runtime. Good for legacy projects.
Ant Design Supported Use with Client Component wrappers for RSCs.
MUI / Chakra (Runtime) Avoid Forces use client widely. Degrades performance.

Library Patterns

For specific library setups, see:

Patterns

  1. Dynamic Classes: Use clsx + tailwind-merge (cn utility).
  1. Font Optimization: Use next/font to prevent Cumulative Layout Shift (CLS).
  1. CLS Prevention: Always specify width/height on images.

Anti-Patterns

  • No runtime CSS-in-JS with RSC: MUI/Chakra force 'use client'; prefer Tailwind or CSS Modules.
  • No <img> without dimensions: Always set width/height or use fill to prevent CLS.
  • No hardcoded conditional classes: Use clsx+tailwind-merge (cn) for dynamic styles.
  • No Google Fonts <link> tag: Use next/font for zero-CLS self-hosted fonts.

Canonical response anchors

When this skill applies, preserve the following domain terminology or equivalent concrete examples in the answer when relevant:

  • Fix with next/image — always specify width and height or use fill prop,always