setup-tailwind-typescript
Acerca de
Esta habilidad configura Tailwind CSS con TypeScript para proyectos Next.js o React, manejando la instalación, personalización de temas y configuración de complementos. Establece patrones de estilización con seguridad de tipos y utilidades de componentes para tu sistema de diseño. Úsala al integrar Tailwind en un proyecto TypeScript existente o al personalizar tu tema con total seguridad de tipos.
Instalación rápida
Claude Code
Recomendadonpx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/setup-tailwind-typescriptCopia y pega este comando en Claude Code para instalar esta habilidad
Documentación
Set Up Tailwind CSS with TypeScript
Configure Tailwind CSS in TypeScript project with custom theme, utilities, type-safe patterns.
When Use
- Adding Tailwind CSS to existing TypeScript project
- Customizing Tailwind theme for project's design system
- Setting up type-safe component styling patterns
- Configuring Tailwind plugins + extensions
Inputs
- Required: TypeScript project (Next.js, Vite, standalone React)
- Optional: Design system tokens (colors, spacing, fonts)
- Optional: Tailwind plugins to include
Steps
Step 1: Install Tailwind CSS
npm install -D tailwindcss @tailwindcss/postcss postcss
For Next.js (if not already included).
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
Got: tailwindcss, postcss, autoprefixer installed as dev deps. For Next.js, tailwind.config.ts + postcss.config.js generated by npx tailwindcss init -p.
If fail: npx tailwindcss init fails? Install Tailwind first with npm install -D tailwindcss, retry. Monorepo? Run from app's root dir, not workspace root.
Step 2: Configure tailwind.config.ts
import type { Config } from "tailwindcss";
const config: Config = {
content: [
"./src/pages/**/*.{js,ts,jsx,tsx,mdx}",
"./src/components/**/*.{js,ts,jsx,tsx,mdx}",
"./src/app/**/*.{js,ts,jsx,tsx,mdx}",
],
theme: {
extend: {
colors: {
primary: {
50: "#eff6ff",
100: "#dbeafe",
500: "#3b82f6",
600: "#2563eb",
700: "#1d4ed8",
900: "#1e3a5f",
},
secondary: {
500: "#6366f1",
600: "#4f46e5",
},
},
fontFamily: {
sans: ["Inter", "system-ui", "sans-serif"],
mono: ["JetBrains Mono", "monospace"],
},
spacing: {
"18": "4.5rem",
"88": "22rem",
},
},
},
plugins: [],
};
export default config;
Got: tailwind.config.ts has content array matching project's file locations, custom colors + fonts under theme.extend, proper TypeScript typing with Config import.
If fail: Custom classes do not render? Verify content paths match actual dir structure. Paths are glob patterns relative to project root. Missing paths = Tailwind will not scan those files for class usage.
Step 3: Set Up Global Styles
Edit src/app/globals.css.
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
html {
@apply antialiased;
}
body {
@apply bg-white text-gray-900 dark:bg-gray-950 dark:text-gray-100;
}
}
@layer components {
.btn-primary {
@apply bg-primary-600 text-white px-4 py-2 rounded-lg
hover:bg-primary-700 focus:outline-none focus:ring-2
focus:ring-primary-500 focus:ring-offset-2
transition-colors duration-200;
}
}
Got: globals.css contains three Tailwind directives (@tailwind base, @tailwind components, @tailwind utilities) + any custom base + component layer styles. File imported in root layout.
If fail: Styles not applied? Verify globals.css imported in layout.tsx (or _app.tsx for Pages Router). Check Tailwind directives present + not commented out.
Step 4: Create Type-Safe Utility Helpers
Make src/lib/cn.ts.
import { type ClassValue, clsx } from "clsx";
import { twMerge } from "tailwind-merge";
export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs));
}
Install deps.
npm install clsx tailwind-merge
Usage in components.
import { cn } from "@/lib/cn";
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
variant?: "primary" | "secondary" | "outline";
}
export function Button({ className, variant = "primary", ...props }: ButtonProps) {
return (
<button
className={cn(
"px-4 py-2 rounded-lg font-medium transition-colors",
variant === "primary" && "bg-primary-600 text-white hover:bg-primary-700",
variant === "secondary" && "bg-secondary-500 text-white hover:bg-secondary-600",
variant === "outline" && "border border-gray-300 hover:bg-gray-50",
className
)}
{...props}
/>
);
}
Got: src/lib/cn.ts exports cn() function. clsx + tailwind-merge installed as deps. Components use cn() to merge class names without conflicts.
If fail: clsx or tailwind-merge not found? Run npm install clsx tailwind-merge. TypeScript reports type errors in cn.ts? Verify ClassValue type imported from clsx.
Step 5: Add Dark Mode Support
Update tailwind.config.ts.
const config: Config = {
darkMode: "class", // or "media" for system preference
// ... rest of config
};
Toggle implementation.
"use client";
import { useEffect, useState } from "react";
export function ThemeToggle() {
const [dark, setDark] = useState(false);
useEffect(() => {
document.documentElement.classList.toggle("dark", dark);
}, [dark]);
return (
<button onClick={() => setDark(!dark)}>
{dark ? "Light" : "Dark"} Mode
</button>
);
}
Got: Dark mode toggles correctly between light + dark themes. dark class applied to <html> element, dark: prefixed utility classes respond accordingly.
If fail: Dark mode does not toggle? Verify darkMode: "class" set in tailwind.config.ts. Ensure dark class toggled on <html> element (not <body>). For system-preference mode, use darkMode: "media".
Step 6: Add Plugins (Optional)
npm install -D @tailwindcss/typography @tailwindcss/forms
// tailwind.config.ts
import typography from "@tailwindcss/typography";
import forms from "@tailwindcss/forms";
const config: Config = {
// ...
plugins: [typography, forms],
};
Got: Plugins installed as dev deps + registered in plugins array of tailwind.config.ts. Plugin-provided classes (prose from typography, styled form elements from forms) available in components.
If fail: Plugin classes do not render? Verify plugin both installed (npm ls @tailwindcss/typography) + added to plugins array. Restart dev server after config changes.
Checks
- Tailwind classes render correctly in browser
- Custom theme values (colors, fonts, spacing) work
-
cn()utility merges classes without conflicts - Dark mode toggles correctly
- TypeScript shows no errors in config or components
- Production build purges unused styles
Pitfalls
- Content paths missing: Classes do not render? Check
contentarray in config matches file locations - Class conflicts: Use
tailwind-merge(viacn()) to prevent conflicting utility classes - Custom values not working: Ensure custom values under
extend(to add) not at theme root (which replaces defaults) - Dark mode not toggling: Check
darkModesetting + thatdarkclass on<html>not<body>
See Also
scaffold-nextjs-app- project setup before Tailwind configdeploy-to-vercel- deploy styled application
Repositorio GitHub
Frequently asked questions
What is the setup-tailwind-typescript skill?
setup-tailwind-typescript is a Claude Skill by pjt222. Skills package instructions and resources that Claude loads on demand, so Claude can perform setup-tailwind-typescript-related tasks without extra prompting.
How do I install setup-tailwind-typescript?
Use the install commands on this page: add setup-tailwind-typescript to Claude Code as a plugin, or clone its repository into your skills directory, then restart Claude so it picks up the skill.
What category does setup-tailwind-typescript belong to?
setup-tailwind-typescript is in the Design category, tagged react, ai and design.
Is setup-tailwind-typescript free to use?
Yes. setup-tailwind-typescript is listed on AIMCP and free to install. It runs inside Claude, so no separate service account is required to use the skill itself.
Habilidades relacionadas
Utilice la habilidad executing-plans cuando tenga un plan de implementación completo para ejecutar en lotes controlados con puntos de revisión. Esta habilidad carga y revisa críticamente el plan, luego ejecuta tareas en pequeños lotes (por defecto 3 tareas) mientras reporta el progreso entre cada lote para la revisión del arquitecto. Esto asegura una implementación sistemática con puntos de control de calidad integrados.
Esta habilidad despacha un subagente revisor de código para analizar los cambios en el código frente a los requisitos antes de proceder. Debe usarse después de completar tareas, implementar funciones principales o antes de fusionar con la rama principal. La revisión ayuda a detectar problemas de forma temprana al comparar la implementación actual con el plan original.
Esta habilidad proporciona una guía integral para que los desarrolladores conecten servidores MCP a Claude Code mediante transportes HTTP, stdio o SSE. Cubre la instalación, configuración, autenticación y seguridad para integrar servicios externos como GitHub, Notion y APIs personalizadas. Úsala al configurar integraciones MCP, al configurar herramientas externas o al trabajar con el Protocolo de Contexto del Modelo de Claude.
Esta habilidad ayuda a los desarrolladores a elegir entre las interfaces web y CLI de Claude Code mediante el análisis de tareas, y luego permite la teletransportación fluida de sesiones entre estos entornos. Optimiza el flujo de trabajo gestionando el estado y el contexto de la sesión al cambiar entre web, CLI o móvil. Úsala para proyectos complejos que requieren diferentes herramientas en varias etapas.
