{"id":"cd6e0209-12a7-479e-82fc-6a7882b0ed30","shortId":"7mpt5x","kind":"skill","title":"tailwind-css","tagline":"This skill should be used when the user asks to \"style with Tailwind\", \"add Tailwind classes\", \"fix Tailwind styles\", \"use tailwind-variants\", \"add animations with tw-animate-css\", \"configure Tailwind v4\", \"migrate to Tailwind v4\", or mentions Tailwind utilities, CSS classes, res","description":"# Tailwind CSS v4\n\nExpert guidance for Tailwind CSS v4, CSS-first configuration, modern utility patterns, and type-safe component styling with tailwind-variants.\n\n## CSS-First Configuration\n\nTailwind CSS v4 eliminates `tailwind.config.ts` in favor of CSS-only configuration. All configuration lives in CSS files using special directives.\n\n**Core Directives:**\n\n- `@import \"tailwindcss\"` - Entry point that loads Tailwind\n- `@theme { }` - Define or extend design tokens\n- `@theme static { }` - Define tokens that should not generate utilities\n- `@utility` - Create custom utilities\n- `@custom-variant` - Define custom variants\n\n**Minimal Example:**\n\n```css\n@import \"tailwindcss\";\n\n@theme {\n  --color-brand: oklch(0.72 0.11 178);\n  --font-display: \"Inter\", sans-serif;\n  --spacing-edge: 1.5rem;\n}\n```\n\nAll theme tokens defined with `@theme` automatically become available as utility classes. For example, `--color-brand` can be used as `bg-brand`, `text-brand`, `border-brand`, etc.\n\n## ESLint Integration\n\nUse `eslint-plugin-better-tailwindcss` for Tailwind CSS v4 class validation and style enforcement.\n\n**Correctness Rules (errors):**\n\n- `no-conflicting-classes` - Detect classes that override each other\n- `no-unknown-classes` - Flag classes not registered with Tailwind\n\n**Stylistic Rules (warnings):**\n\n- `enforce-canonical-classes` - Use standard v4 class names\n- `enforce-shorthand-classes` - Use abbreviated class versions\n- `no-deprecated-classes` - Remove outdated class names\n- `no-duplicate-classes` - Eliminate redundant declarations\n- `no-unnecessary-whitespace` - Clean up extra spacing\n\n**Examples:**\n\n```typescript\n// ❌ Bad: separate padding\n<div className=\"px-6 py-6\">\n\n// ✅ Good: shorthand\n<div className=\"p-6\">\n```\n\n```typescript\n// ❌ Bad: separate width/height\n<div className=\"w-6 h-6\">\n\n// ✅ Good: size utility\n<div className=\"size-6\">\n```\n\nRun the project's ESLint check after modifying Tailwind classes to validate all changes across the codebase.\n\n## Coding Preferences\n\n### Layout and Spacing\n\n**Use `gap` for flex/grid spacing, not `space-x`/`space-y`:**\n\nThe `gap` utilities handle wrapping correctly, while `space-*` utilities break when flex/grid items wrap to multiple lines.\n\n```typescript\n// ✅ Good: gap handles wrapping\n<div className=\"flex gap-4\">\n\n// ❌ Bad: breaks when items wrap\n<div className=\"flex space-x-4\">\n```\n\n**Prefer `size-*` over separate `w-*`/`h-*` for equal dimensions:**\n\n```typescript\n// ✅ Good: concise\n<div className=\"size-16\">\n\n// ❌ Bad: redundant\n<div className=\"w-16 h-16\">\n```\n\n**Always use `min-h-dvh` instead of `min-h-screen`:**\n\nDynamic viewport height (`dvh`) accounts for mobile browser chrome, while `vh` units ignore it and cause layout issues on mobile Safari.\n\n```typescript\n// ✅ Good: works on mobile Safari\n<main className=\"min-h-dvh\">\n\n// ❌ Bad: buggy on mobile Safari\n<main className=\"min-h-screen\">\n```\n\n**Prefer top/left margins over bottom/right:**\n\nConsistent directionality improves layout predictability.\n\n```typescript\n// ✅ Good: top margin\n<div className=\"mt-4\">\n\n// ❌ Avoid: bottom margin (unless needed)\n<div className=\"mb-4\">\n```\n\n**Use padding on parent containers instead of bottom margins on last child:**\n\nPadding provides consistent spacing without needing `:last-child` selectors.\n\n```typescript\n// ✅ Good: padding on parent\n<section className=\"pb-8\">\n  <div>Item 1</div>\n  <div>Item 2</div>\n  <div>Item 3</div>\n</section>\n\n// ❌ Avoid: margin on children\n<section>\n  <div className=\"mb-4\">Item 1</div>\n  <div className=\"mb-4\">Item 2</div>\n  <div>Item 3</div>\n</section>\n```\n\n**For max-widths, prefer container scale over pixel values:**\n\n```typescript\n// ✅ Good: semantic container size\n<div className=\"max-w-2xl\">\n\n// ❌ Avoid: arbitrary pixel value\n<div className=\"max-w-[672px]\">\n```\n\n### Typography\n\n**Avoid `leading-*` classes; use line height modifiers:**\n\nTailwind v4 supports inline line height modifiers with the `text-{size}/{leading}` syntax.\n\n```typescript\n// ✅ Good: combined size and line height\n<p className=\"text-base/7\">\n\n// ❌ Bad: separate utilities\n<p className=\"text-base leading-7\">\n```\n\n**Font Size Reference:**\n\n| Class       | Size |\n| ----------- | ---- |\n| `text-xs`   | 12px |\n| `text-sm`   | 14px |\n| `text-base` | 16px |\n| `text-lg`   | 18px |\n| `text-xl`   | 20px |\n\n### Colors and Opacity\n\n**Use opacity modifier syntax, not separate opacity utilities:**\n\nAll `*-opacity-*` utilities were removed in Tailwind v4. Use the modifier syntax instead.\n\n```typescript\n// ✅ Good: opacity modifier\n<div className=\"bg-red-500/60\">\n\n// ❌ Bad: removed in v4\n<div className=\"bg-red-500 bg-opacity-60\">\n```\n\n**Prefer design tokens over arbitrary hex values:**\n\nCheck the project's `@theme` configuration before using arbitrary color values.\n\n```typescript\n// ✅ Good: theme token\n<div className=\"bg-brand\">\n\n// ❌ Avoid: arbitrary hex (check theme first)\n<div className=\"bg-[#4f46e5]\">\n```\n\n### Border Radius\n\nTailwind v4 renamed border radius utilities:\n\n| v3           | v4 (equivalent) | Size |\n| ------------ | --------------- | ---- |\n| `rounded-sm` | `rounded-xs`    | 2px  |\n| `rounded`    | `rounded-sm`    | 4px  |\n| `rounded-md` | `rounded`       | 6px  |\n| `rounded-lg` | `rounded-md`    | 8px  |\n\nUse the v4 names when writing new code.\n\n### Gradients\n\nTailwind v4 renamed gradient utilities and added new gradient types.\n\n**Use `bg-linear-*`, not `bg-gradient-*`:**\n\n```typescript\n// ✅ Good: v4 syntax\n<div className=\"bg-linear-to-r from-blue-500 to-purple-500\">\n\n// ❌ Bad: removed in v4\n<div className=\"bg-gradient-to-r from-blue-500 to-purple-500\">\n```\n\n**New gradient types:**\n\n- `bg-radial` - Radial gradients\n- `bg-conic` - Conic gradients\n\n**Example:**\n\n```typescript\n<div className=\"bg-radial from-blue-500 to-purple-500\">\n<div className=\"bg-conic from-red-500 via-yellow-500 to-green-500\">\n```\n\n### Arbitrary Values\n\n**Always prefer Tailwind's predefined scale:**\n\nCheck the project's `@theme` configuration for available tokens before using arbitrary values.\n\n```typescript\n// ✅ Good: predefined scale\n<div className=\"ml-4\">\n\n// ❌ Avoid: arbitrary pixel value\n<div className=\"ml-[16px]\">\n```\n\n**General rule:** Prefer sizing scale over pixel values. Three similar lines of code is better than a premature abstraction.\n\n### Class Merging\n\nThe common pattern is a `cn` utility combining `clsx` + `tailwind-merge`.\n\n**Use `cn` for:**\n\n- Static constants: `const CARD_BASE = cn(\"fixed classes\")`\n- Conditional classes: `cn(\"base\", condition && \"conditional\")`\n- Dynamic merging: `cn(baseClasses, className)`\n- Conflict resolution: `cn(\"p-4\", \"p-6\")` → `\"p-6\"`\n\n**Do NOT use `cn` for:**\n\n- Static strings in `className` attributes: `className=\"fixed classes\"`\n\n**Examples:**\n\n```typescript\n// ✅ Good: static string in className\n<button className=\"rounded-lg px-4 py-2 font-medium bg-blue-600\">\n\n// ✅ Good: static constant with cn\nconst CARD_BASE = cn(\"rounded-lg border border-gray-300 p-4\");\n<div className={CARD_BASE} />\n\n// ✅ Good: conditional with cn\n<button className={cn(\n  \"rounded-lg px-4 py-2 font-medium\",\n  isActive ? \"bg-blue-600\" : \"bg-gray-700\",\n  disabled && \"opacity-50\"\n)} />\n\n// ❌ Bad: unnecessary cn for static className attribute\n<button className={cn(\"rounded-lg px-4 py-2 font-medium\")} />\n```\n\n### Image Sizing\n\nUse Tailwind size classes instead of pixel values for `Image` components.\n\n```typescript\n// ✅ Good: Tailwind units\n<Image src={src} alt={alt} className=\"size-16\" />\n<Image src={src} alt={alt} className=\"w-24 h-auto\" />\n\n// ❌ Bad: pixel values\n<Image src={src} alt={alt} width={64} height={64} />\n```\n\n### Z-Index\n\nDefine z-index values as CSS custom properties in `@theme`, then reference them with the `z-(--z-*)` syntax.\n\n**Never use arbitrary z-index numbers:**\n\n```typescript\n// ✅ Good: theme z-index value\n<div className=\"z-(--z-modal)\">\n<div className=\"z-(--z-sticky)\">\n\n// ❌ Bad: arbitrary z-index numbers\n<div className=\"z-[100]\">\n<div className=\"z-[9999]\">\n```\n\n**Define z-index tokens in CSS:**\n\n```css\n@theme {\n  --z-base: 0;\n  --z-sticky: 10;\n  --z-modal: 100;\n  --z-tooltip: 1000;\n}\n```\n\n### Dark Mode\n\nUse the plain `dark:` variant for dark mode styles.\n\n**Pattern:**\n\nWrite light mode styles first, then add dark mode overrides.\n\n```typescript\n// ✅ Good: light mode first, then dark override\n<div className=\"bg-white text-gray-900 dark:bg-gray-900 dark:text-white\">\n\n// ❌ Avoid: dark mode first (less readable)\n<div className=\"dark:bg-gray-900 dark:text-white bg-white text-gray-900\">\n```\n\n## CSS Modules\n\nUse CSS Modules only as a last resort for complex CSS that cannot be easily written with Tailwind classes.\n\nAll `.module.css` files must include `@reference \"#tailwind\";` at the top to enable Tailwind utilities and theme tokens inside the module.\n\n**Example:**\n\n```css\n/* component.module.css */\n@reference \"#tailwind\";\n\n.component {\n  /* Complex CSS that can't be expressed with Tailwind utilities */\n  /* Can still use Tailwind utilities and theme tokens */\n}\n```\n\n## Common Tasks\n\n### Adding a Component with Variants\n\n1. Read `references/tailwind-variants.md` for patterns\n2. Check the project's `@theme` configuration for available tokens\n3. Use `tv()` from `tailwind-variants` for type-safe variants\n\n**Example:**\n\n```typescript\nimport { tv } from \"tailwind-variants\";\n\nconst button = tv({\n  base: \"rounded-lg px-4 py-2 font-medium\",\n  variants: {\n    color: {\n      primary: \"bg-blue-600 text-white\",\n      secondary: \"bg-gray-600 text-white\",\n    },\n    size: {\n      sm: \"text-sm\",\n      md: \"text-base\",\n      lg: \"text-lg\",\n    },\n  },\n});\n```\n\n### Debugging Styles\n\n1. Check `references/tailwind-v4-rules.md` for breaking changes\n2. Verify gradient syntax (`bg-linear-*`, not `bg-gradient-*`)\n3. Verify CSS variable syntax (`bg-my-color`, not `bg-[--var-my-color]`)\n4. Check if arbitrary value exists in the project's `@theme` configuration\n\n### Working with Colors\n\n1. Check the project's `@theme` configuration first to see available colors\n2. Use semantic color names when available\n3. Use opacity modifiers for transparency (`/20`, `/50`, etc.)\n4. Avoid arbitrary colors unless absolutely necessary\n\n**Example:**\n\n```typescript\n// ✅ Good: theme token with opacity\n<div className=\"bg-brand/20 text-brand\">\n\n// ❌ Avoid: arbitrary hex\n<div className=\"bg-[#4f46e5]/20 text-[#4f46e5]\">\n```\n\n### Adding Animations\n\n1. Read `references/tw-animate-css.md` for available animations\n2. Combine a base class (`animate-in` or `animate-out`) with effect classes\n3. Note decimal spacing gotcha: use `[0.625rem]` syntax, not `2.5`\n\n**Example:**\n\n```typescript\n// Enter: fade + slide up\n<div className=\"fade-in slide-in-from-bottom-4 duration-300 animate-in\">\n\n// Exit: fade + slide down\n<div className=\"fade-out slide-out-to-bottom-4 duration-200 animate-out\">\n```\n\n## Quick Reference Table\n\n| Aspect             | Pattern                                           |\n| ------------------ | ------------------------------------------------- |\n| Configuration      | CSS-only: `@theme`, `@utility`, `@custom-variant` |\n| Gradients          | `bg-linear-*`, `bg-radial`, `bg-conic`            |\n| Opacity            | Modifier syntax: `bg-black/50`                    |\n| Line Height        | Modifier syntax: `text-base/7`                    |\n| Font Features      | `font-features-zero`, `font-features-ss01`, etc.  |\n| CSS Variables      | `bg-my-color` (auto-created from `@theme`)        |\n| CSS Modules        | `@reference \"#tailwind\";` at top                  |\n| Class Merging      | `cn()` for conditionals; plain string for static  |\n| Viewport           | `min-h-dvh` (not `min-h-screen`)                  |\n| Component Variants | `references/tailwind-variants.md`                 |\n| Animations         | `references/tw-animate-css.md`                    |\n| V4 Rules           | `references/tailwind-v4-rules.md`                 |\n\n## Reference Documentation\n\n- **Tailwind v4 Rules & Best Practices:** `references/tailwind-v4-rules.md` — Breaking changes, removed/renamed utilities, layout rules, typography, gradients, CSS variables, new v4 features, common pitfalls\n- **tailwind-variants Patterns:** `references/tailwind-variants.md` — Component variants, slots API, composition, TypeScript integration, responsive variants\n- **tw-animate-css Reference:** `references/tw-animate-css.md` — Enter/exit animations, slide/fade/zoom utilities, spacing gotchas","tags":["tailwind","css","agent","skills","paulrberg","agent-skills","ai-agents"],"capabilities":["skill","source-paulrberg","skill-tailwind-css","topic-agent-skills","topic-ai-agents"],"categories":["agent-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/PaulRBerg/agent-skills/tailwind-css","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add PaulRBerg/agent-skills","source_repo":"https://github.com/PaulRBerg/agent-skills","install_from":"skills.sh"}},"qualityScore":"0.475","qualityRationale":"deterministic score 0.47 from registry signals: · indexed on github topic:agent-skills · 50 github stars · SKILL.md body (12,345 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:56:18.920Z","embedding":null,"createdAt":"2026-04-18T22:17:48.799Z","updatedAt":"2026-04-22T00:56:18.920Z","lastSeenAt":"2026-04-22T00:56:18.920Z","tsv":"'-16':897 '-2':837,869,1141 '-24':905 '-4':776,819,835,867,1139 '-50':852 '-6':778,780 '/20':1250 '/50':1251,1344 '/7':1352 '0':975 '0.11':144 '0.625':1299 '0.72':143 '1':452,462,1096,1178,1225,1272 '1.5':156 '10':979 '100':983 '1000':987 '12px':525 '14px':529 '16px':533 '178':145 '18px':537 '2':454,464,1101,1184,1237,1278 '2.5':1303 '20px':541 '2px':620 '3':456,466,1111,1195,1244,1293 '300':817 '4':1210,1253 '4px':625 '600':845,1151,1159 '64':918,920 '6px':630 '700':849 '8px':637 'abbrevi':246 'absolut':1258 'abstract':735 'account':377 'across':300 'ad':653,1091,1270 'add':17,27,1006 'alt':893,894,901,902,915,916 'alway':361,690 'anim':28,32,1271,1277,1284,1288,1403,1447,1452 'animate-in':1283 'animate-out':1287 'api':1439 'arbitrari':483,578,589,597,688,707,714,945,958,1213,1255,1268 'ask':12 'aspect':1317 'attribut':790,859 'auto':908,1371 'auto-cr':1370 'automat':164 'avail':166,703,1109,1235,1243,1276 'avoid':419,457,482,487,596,713,1018,1254,1267 'bad':274,280,342,359,400,514,570,669,853,909,957 'base':532,757,764,808,823,974,1134,1171,1281,1351 'baseclass':770 'becom':165 'best':1413 'better':195,731 'bg':180,659,663,677,682,843,847,1149,1157,1189,1193,1201,1205,1330,1333,1336,1342,1367 'bg-black':1341 'bg-blue':842,1148 'bg-brand':179 'bg-conic':681,1335 'bg-gradient':662,1192 'bg-gray':846,1156 'bg-linear':658,1188,1329 'bg-my-color':1200,1366 'bg-radial':676,1332 'black':1343 'blue':844,1150 'border':186,602,607,813,815 'border-brand':185 'border-gray':814 'bottom':420,431 'bottom/right':409 'brand':141,174,181,184,187 'break':329,343,1182,1416 'browser':380 'buggi':401 'button':828,860,1132 'cannot':1038 'canon':234 'card':756,807,822 'caus':388 'chang':299,1183,1417 'check':291,581,599,696,1102,1179,1211,1226 'child':435,444 'children':460 'chrome':381 'class':19,46,169,201,212,214,222,224,235,239,244,247,252,255,260,295,489,520,736,760,762,793,878,1044,1282,1292,1381 'classnam':771,789,791,800,821,829,858,861,895,903 'clean':268 'clsx':746 'cn':743,751,758,763,769,774,784,805,809,827,830,855,862,1383 'code':303,645,729 'codebas':302 'color':140,173,542,590,1146,1203,1209,1224,1236,1240,1256,1369 'color-brand':139,172 'combin':509,745,1279 'common':739,1089,1429 'complex':1035,1071 'compon':68,885,1070,1093,1400,1436 'component.module.css':1067 'composit':1440 'concis':358 'condit':761,765,766,825,1385 'configur':34,60,77,89,91,586,701,1107,1221,1231,1319 'conflict':211,772 'conic':683,684,1337 'consist':410,438 'const':755,806,1131 'constant':754,803 'contain':428,472,480 'core':99 'correct':206,325 'creat':124,1372 'css':3,33,45,49,55,58,75,79,87,94,135,199,930,969,970,1024,1027,1036,1066,1072,1197,1321,1364,1375,1424,1448 'css-first':57,74 'css-on':86,1320 'custom':125,128,131,931,1326 'custom-vari':127,1325 'dark':988,993,996,1007,1016,1019 'debug':1176 'decim':1295 'declar':263 'defin':109,116,130,161,924,963 'deprec':251 'design':112,575 'detect':213 'dimens':355 'direct':98,100,411 'disabl':850 'display':148 'div':820 'document':1409 'duplic':259 'dvh':366,376,1394 'dynam':373,767 'easili':1040 'edg':155 'effect':1291 'elimin':81,261 'enabl':1056 'enforc':205,233,242 'enforce-canonical-class':232 'enforce-shorthand-class':241 'enter':1306 'enter/exit':1451 'entri':103 'equal':354 'equival':612 'error':208 'eslint':189,193,290 'eslint-plugin-better-tailwindcss':192 'etc':188,1252,1363 'exampl':134,171,272,686,794,1065,1123,1260,1304 'exist':1215 'exit':1310 'expert':51 'express':1077 'extend':111 'extra':270 'fade':1307,1311 'favor':84 'featur':1354,1357,1361,1428 'file':95,1047 'first':59,76,601,1004,1014,1021,1232 'fix':20,759,792 'flag':223 'flex/grid':311,331 'font':147,517,839,871,1143,1353,1356,1360 'font-display':146 'font-features-ss01':1359 'font-features-zero':1355 'font-medium':838,870,1142 'gap':309,321,339 'general':717 'generat':121 'good':277,283,338,357,395,416,447,478,508,567,593,666,710,796,801,824,887,951,1011,1262 'gotcha':1297,1456 'gradient':646,650,655,664,674,680,685,1186,1194,1328,1423 'gray':816,848,1158 'guidanc':52 'h':352,365,371,907,1393,1398 'h-auto':906 'handl':323,340 'height':375,492,499,513,919,1346 'hex':579,598,1269 'ignor':385 'imag':873,884,890,898,912 'import':101,136,1125 'improv':412 'includ':1049 'index':923,927,948,955,961,966 'inlin':497 'insid':1062 'instead':367,429,565,879 'integr':190,1442 'inter':149 'isact':841 'issu':390 'item':332,345,451,453,455,461,463,465 'last':434,443,1032 'last-child':442 'layout':305,389,413,1420 'lead':488,505 'less':1022 'lg':536,633,812,833,865,1137,1172,1175 'light':1001,1012 'line':336,491,498,512,727,1345 'linear':660,1190,1331 'live':92 'load':106 'margin':407,418,421,432,458 'max':469 'max-width':468 'md':628,636,1168 'medium':840,872,1144 'mention':42 'merg':737,749,768,1382 'migrat':37 'min':364,370,1392,1397 'min-h-dvh':363,1391 'min-h-screen':369,1396 'minim':133 'mobil':379,392,398,403 'modal':982 'mode':989,997,1002,1008,1013,1020 'modern':61 'modifi':293,493,500,547,563,569,1247,1339,1347 'modul':1025,1028,1064,1376 'module.css':1046 'multipl':335 'must':1048 'name':240,256,641,1241 'necessari':1259 'need':423,441 'never':943 'new':644,654,673,1426 'no-conflicting-class':209 'no-deprecated-class':249 'no-duplicate-class':257 'no-unknown-class':219 'no-unnecessary-whitespac':264 'note':1294 'number':949,962 'oklch':142 'opac':544,546,551,554,568,851,1246,1266,1338 'outdat':254 'overrid':216,1009,1017 'p':775,777,779,818 'pad':276,425,436,448 'parent':427,450 'pattern':63,740,999,1100,1318,1434 'pitfal':1430 'pixel':475,484,715,723,881,910 'plain':992,1386 'plugin':194 'point':104 'practic':1414 'predefin':694,711 'predict':414 'prefer':304,347,405,471,574,691,719 'prematur':734 'primari':1147 'project':288,583,698,1104,1218,1228 'properti':932 'provid':437 'px':834,866,1138 'py':836,868,1140 'quick':1314 'radial':678,679,1334 'radius':603,608 'read':1097,1273 'readabl':1023 'redund':262,360 'refer':519,936,1050,1068,1315,1377,1408,1449 'references/tailwind-v4-rules.md':1180,1407,1415 'references/tailwind-variants.md':1098,1402,1435 'references/tw-animate-css.md':1274,1404,1450 'regist':226 'rem':157,1300 'remov':253,557,571,670 'removed/renamed':1418 'renam':606,649 'res':47 'resolut':773 'resort':1033 'respons':1443 'round':615,618,621,623,627,629,632,635,811,832,864,1136 'rounded-lg':631,810,831,863,1135 'rounded-md':626,634 'rounded-sm':614,622 'rounded-x':617 'rule':207,230,718,1406,1412,1421 'run':286 'safari':393,399,404 'safe':67,1121 'san':151 'sans-serif':150 'scale':473,695,712,721 'screen':372,1399 'secondari':1155 'see':1234 'selector':445 'semant':479,1239 'separ':275,281,350,515,550 'serif':152 'shorthand':243,278 'similar':726 'size':284,348,481,504,510,518,521,613,720,874,877,896,1163 'skill':5 'skill-tailwind-css' 'slide':1308,1312 'slide/fade/zoom':1453 'slot':1438 'sm':528,616,624,1164,1167 'source-paulrberg' 'space':154,271,307,312,315,318,327,439,1296,1455 'space-i':317 'space-x':314 'spacing-edg':153 'special':97 'src':891,892,899,900,913,914 'ss01':1362 'standard':237 'static':115,753,786,797,802,857,1389 'sticki':978 'still':1082 'string':787,798,1387 'style':14,22,69,204,998,1003,1177 'stylist':229 'support':496 'syntax':506,548,564,668,942,1187,1199,1301,1340,1348 'tabl':1316 'tailwind':2,16,18,21,25,35,39,43,48,54,72,78,107,198,228,294,494,559,604,647,692,748,876,888,1043,1051,1057,1069,1079,1084,1116,1129,1378,1410,1432 'tailwind-css':1 'tailwind-merg':747 'tailwind-vari':24,71,1115,1128,1431 'tailwind.config.ts':82 'tailwindcss':102,137,196 'task':1090 'text':183,503,523,527,531,535,539,1153,1161,1166,1170,1174,1350 'text-bas':530,1169,1349 'text-brand':182 'text-lg':534,1173 'text-sm':526,1165 'text-whit':1152,1160 'text-x':522 'text-xl':538 'theme':108,114,138,159,163,585,594,600,700,934,952,971,1060,1087,1106,1220,1230,1263,1323,1374 'three':725 'token':113,117,160,576,595,704,967,1061,1088,1110,1264 'tooltip':986 'top':417,1054,1380 'top/left':406 'topic-agent-skills' 'topic-ai-agents' 'transpar':1249 'tv':1113,1126,1133 'tw':31,1446 'tw-animate-css':30,1445 'type':66,656,675,1120 'type-saf':65,1119 'typescript':273,279,337,356,394,415,446,477,507,566,592,665,687,709,795,886,950,1010,1124,1261,1305,1441 'typographi':486,1422 'unit':384,889 'unknown':221 'unless':422,1257 'unnecessari':266,854 'use':8,23,96,177,191,236,245,308,362,424,490,545,561,588,638,657,706,750,783,875,944,990,1026,1083,1112,1238,1245,1298 'user':11 'util':44,62,122,123,126,168,285,322,328,516,552,555,609,651,744,1058,1080,1085,1324,1419,1454 'v3':610 'v4':36,40,50,56,80,200,238,495,560,573,605,611,640,648,667,672,1405,1411,1427 'valid':202,297 'valu':476,485,580,591,689,708,716,724,882,911,928,956,1214 'var':1207 'var-my-color':1206 'variabl':1198,1365,1425 'variant':26,73,129,132,994,1095,1117,1122,1130,1145,1327,1401,1433,1437,1444 'verifi':1185,1196 'version':248 'vh':383 'viewport':374,1390 'w':351,904 'warn':231 'white':1154,1162 'whitespac':267 'width':470,917 'width/height':282 'without':440 'work':396,1222 'wrap':324,333,341,346 'write':643,1000 'written':1041 'x':316 'xl':540 'xs':524,619 'y':319 'z':922,926,940,941,947,954,960,965,973,977,981,985 'z-base':972 'z-index':921,925,946,953,959,964 'z-modal':980 'z-sticki':976 'z-tooltip':984 'zero':1358","prices":[{"id":"9f7f4e07-febb-4abf-929b-232ace5a0cc8","listingId":"cd6e0209-12a7-479e-82fc-6a7882b0ed30","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"PaulRBerg","category":"agent-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:17:48.799Z"}],"sources":[{"listingId":"cd6e0209-12a7-479e-82fc-6a7882b0ed30","source":"github","sourceId":"PaulRBerg/agent-skills/tailwind-css","sourceUrl":"https://github.com/PaulRBerg/agent-skills/tree/main/skills/tailwind-css","isPrimary":false,"firstSeenAt":"2026-04-18T22:17:48.799Z","lastSeenAt":"2026-04-22T00:56:18.920Z"}],"details":{"listingId":"cd6e0209-12a7-479e-82fc-6a7882b0ed30","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"PaulRBerg","slug":"tailwind-css","github":{"repo":"PaulRBerg/agent-skills","stars":50,"topics":["agent-skills","ai-agents"],"license":"mit","html_url":"https://github.com/PaulRBerg/agent-skills","pushed_at":"2026-04-20T16:22:56Z","description":"PRB's collection of agent skills","skill_md_sha":"4c8c9c836d1dfb2a2b274c79236ca8d7f901fc6d","skill_md_path":"skills/tailwind-css/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/PaulRBerg/agent-skills/tree/main/skills/tailwind-css"},"layout":"multi","source":"github","category":"agent-skills","frontmatter":{"name":"tailwind-css","description":"This skill should be used when the user asks to \"style with Tailwind\", \"add Tailwind classes\", \"fix Tailwind styles\", \"use tailwind-variants\", \"add animations with tw-animate-css\", \"configure Tailwind v4\", \"migrate to Tailwind v4\", or mentions Tailwind utilities, CSS classes, responsive design, dark mode, gradients, design tokens, or CSS Modules."},"skills_sh_url":"https://skills.sh/PaulRBerg/agent-skills/tailwind-css"},"updatedAt":"2026-04-22T00:56:18.920Z"}}