/nextjs-styling
Implement zero-runtime CSS with Tailwind, CSS Modules, and the cn() utility for RSC-compatible styling in Next.js. Use when choosing a styling library, creating dynamic class utilities, or optimizing fonts with next/font.
$ npx -y skills add hoangnguyen0403/agent-skills-standard --skill nextjs-styling --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/nextjs-styling
Context preview
The summary Claude sees to decide when to auto-load this skill.
Implement zero-runtime CSS with Tailwind, CSS Modules, and the cn() utility for RSC-compatible styling in Next.js. Use when choosing a styling library, creating dynamic class utilities, or optimizing fonts with next/font.
SKILL.md
nextjs-styling.SKILL.mdname: nextjs-styling
description: Implement zero-runtime CSS with Tailwind, CSS Modules, and the cn() utility for RSC-compatible styling in Next.js. Use when choosing a styling library, creating dynamic class utilities, or optimizing fonts with next/font.
metadata:
triggers:
files:
- '**/*.css'
- 'tailwind.config.ts'
- '**/components/ui/*.tsx'
keywords:
- tailwind
- css modules
- styled-components
- clsx
- cnStyling & 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](references/implementation.md)
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:
- [references/scss.md](references/scss.md)
- [references/ant-design.md](references/ant-design.md)
- [references/tailwind.md](references/tailwind.md) (Tailwind/shadcn)
Patterns
1. **Dynamic Classes**: Use `clsx` + `tailwind-merge` (`cn` utility).
- _Reference_: [Dynamic Classes & Button Example](references/implementation.md)
2. **Font Optimization**: Use `next/font` to prevent Cumulative Layout Shift (CLS).
- _Reference_: [Font Setup](references/implementation.md)
3. **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
Read more
name: nextjs-styling
description: Implement zero-runtime CSS with Tailwind, CSS Modules, and the cn() utility for RSC-compatible styling in Next.js. Use when choosing a styling library, creating dynamic class utilities, or optimizing fonts with next/font.
metadata:
triggers:
files:
- '**/*.css'
- 'tailwind.config.ts'
- '**/components/ui/*.tsx'
keywords:
- tailwind
- css modules
- styled-components
- clsx
- cnStyling & 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](references/implementation.md)
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:
- [references/scss.md](references/scss.md)
- [references/ant-design.md](references/ant-design.md)
- [references/tailwind.md](references/tailwind.md) (Tailwind/shadcn)
Patterns
1. **Dynamic Classes**: Use `clsx` + `tailwind-merge` (`cn` utility).
- _Reference_: [Dynamic Classes & Button Example](references/implementation.md)
2. **Font Optimization**: Use `next/font` to prevent Cumulative Layout Shift (CLS).
- _Reference_: [Font Setup](references/implementation.md)
3. **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
The portable SDLC standards layer for AI coding agents. Sync once, then work in your own runtime.
Repo: hoangnguyen0403/agent-skills-standard
Other skills on agent-skills-standard.
- /android-agp-upgrade
Upgrade an Android project to Android Gradle Plugin (AGP) 9. Use when migrating to AGP 9, updating Gradle build files, migrating to built-in Kotlin, or adopting the new AGP DSL.
Open skill - /android-architecture
Apply Clean Architecture layering, modularization, and Unidirectional Data Flow in Android projects. Use when setting up project structure, placing code in layers, configuring feature/core modules, or implementing UDF patterns; defer Compose state and ViewModel/StateFlow
Open skill - /android-background-work
Implement WorkManager and background processing correctly on Android. Use when creating Worker classes, scheduling tasks, choosing between WorkManager and Foreground Services, or setting up Hilt in workers; defer FCM and notification delivery to android-notifications.
Open skill - /android-compose-migration
Migrate an Android XML View to Jetpack Compose following a structured 10-step workflow. Use when converting XML layouts to Compose, setting up Compose in an existing View-based project, or incrementally adopting Compose.
Open skill - /android-compose
Build high-performance declarative UI with Jetpack Compose. Use when writing Composable functions, optimizing recomposition, hoisting state, or working with LazyColumn and side effects; defer deep-link and navigation routing to android-navigation.
Open skill - /android-concurrency
Write correct coroutine scopes, lifecycle collection, and dispatcher injection in Android production code. Use for suspend functions, coroutine scopes, and dispatcher mechanics; defer ViewModel StateFlow/LiveData architecture, Fragment lifecycle recipes,
Open skill

