Loading...
Loading...
This skill should be used when the user asks to "use Tailwind CSS", "install Tailwind", "style with Tailwind", "add Tailwind utilities", "create responsive design with Tailwind", or needs guidance on Tailwind CSS utility-first styling and configuration.
npx skill4agent add the-perfect-developer/the-perfect-opencode tailwind-css<div class="mx-auto flex max-w-sm items-center gap-x-4 rounded-xl bg-white p-6 shadow-lg">
<img class="size-12 shrink-0" src="/logo.svg" alt="Logo" />
<div>
<div class="text-xl font-medium text-black">Title</div>
<p class="text-gray-500">Description text</p>
</div>
</div><!-- Width 16 on mobile, 32 on medium screens, 48 on large screens -->
<img class="w-16 md:w-32 lg:w-48" src="..." /><!-- Hover, focus, and dark mode variants -->
<button class="bg-sky-500 hover:bg-sky-700 focus:ring-2 dark:bg-sky-900">
Save
</button>npm install tailwindcss @tailwindcss/vitevite.config.tsimport { defineConfig } from 'vite'
import tailwindcss from '@tailwindcss/vite'
export default defineConfig({
plugins: [tailwindcss()],
})@import "tailwindcss";npm run devnpm install tailwindcss @tailwindcss/postcsspostcss.config.jsmodule.exports = {
plugins: {
'@tailwindcss/postcss': {}
}
}@import "tailwindcss";npm install -D tailwindcss@import "tailwindcss";npx tailwindcss -i ./src/input.css -o ./dist/output.css --watch<!-- Flexbox -->
<div class="flex items-center justify-between gap-4">
<!-- Grid -->
<div class="grid grid-cols-3 gap-6">
<!-- Container with max width -->
<div class="mx-auto max-w-7xl px-4"><!-- Heading -->
<h1 class="text-4xl font-bold text-gray-900">
<!-- Paragraph -->
<p class="text-base text-gray-600 leading-relaxed">
<!-- Truncate text -->
<p class="truncate"><!-- Padding -->
<div class="p-6"> <!-- All sides -->
<div class="px-4 py-2"> <!-- Horizontal and vertical -->
<!-- Margin -->
<div class="m-4"> <!-- All sides -->
<div class="mt-8 mb-4"> <!-- Top and bottom --><!-- Background -->
<div class="bg-blue-500">
<!-- Text -->
<p class="text-red-600">
<!-- Border -->
<div class="border border-gray-300"><!-- Stack on mobile, row on medium+ screens -->
<div class="flex flex-col md:flex-row">
<!-- Different padding at breakpoints -->
<div class="p-4 md:p-6 lg:p-8">
<!-- Hide on mobile, show on large screens -->
<div class="hidden lg:block">| Prefix | Min Width | CSS |
|---|---|---|
| 40rem (640px) | |
| 48rem (768px) | |
| 64rem (1024px) | |
| 80rem (1280px) | |
| 96rem (1536px) | |
<!-- Hover -->
<button class="bg-blue-500 hover:bg-blue-700">
<!-- Focus -->
<input class="border-gray-300 focus:border-blue-500 focus:ring-2">
<!-- Active -->
<button class="active:bg-blue-800">
<!-- Disabled -->
<button class="disabled:opacity-50 disabled:cursor-not-allowed">
<!-- Dark mode -->
<div class="bg-white dark:bg-gray-800">
<!-- Group hover (parent-based) -->
<a class="group">
<span class="group-hover:underline">Link</span>
</a><!-- Custom color -->
<div class="bg-[#1da1f2]">
<!-- Custom spacing -->
<div class="top-[117px]">
<!-- Complex grid -->
<div class="grid-cols-[200px_1fr_1fr]">
<!-- Using calc -->
<div class="h-[calc(100vh-4rem)]">
<!-- CSS variables -->
<div class="bg-(--brand-color)">@theme@import "tailwindcss";
@theme {
--color-brand: #ff6347;
--font-sans: 'Inter', system-ui, sans-serif;
--spacing-18: 4.5rem;
--breakpoint-3xl: 120rem;
}@layer utilities@import "tailwindcss";
@layer utilities {
.text-balance {
text-wrap: balance;
}
.scrollbar-hide {
scrollbar-width: none;
&::-webkit-scrollbar {
display: none;
}
}
}// React component
export function Button({ variant, children }) {
const baseClasses = "px-4 py-2 rounded-lg font-medium";
const variants = {
primary: "bg-blue-500 text-white hover:bg-blue-700",
secondary: "bg-gray-200 text-gray-900 hover:bg-gray-300"
};
return (
<button className={`${baseClasses} ${variants[variant]}`}>
{children}
</button>
);
}@layer components {
.btn-primary {
border-radius: calc(infinity * 1px);
background-color: var(--color-blue-500);
padding-inline: var(--spacing-4);
padding-block: var(--spacing-2);
font-weight: var(--font-weight-semibold);
color: white;
&:hover {
@media (hover: hover) {
background-color: var(--color-blue-700);
}
}
}
}@tailwindcss/vitereferences/framework-setup.mdsm:dark:!important<div class="overflow-hidden rounded-lg bg-white shadow-md">
<img class="h-48 w-full object-cover" src="image.jpg" alt="" />
<div class="p-6">
<h3 class="text-xl font-semibold">Card Title</h3>
<p class="mt-2 text-gray-600">Card description text.</p>
<button class="mt-4 rounded bg-blue-500 px-4 py-2 text-white hover:bg-blue-700">
Action
</button>
</div>
</div><div class="space-y-2">
<label class="block text-sm font-medium text-gray-700" for="email">
Email
</label>
<input
id="email"
type="email"
class="w-full rounded-lg border border-gray-300 px-4 py-2 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-500"
placeholder="you@example.com"
/>
</div><nav class="border-b border-gray-200 bg-white">
<div class="mx-auto flex max-w-7xl items-center justify-between px-4 py-4">
<div class="text-xl font-bold">Brand</div>
<div class="hidden space-x-6 md:flex">
<a href="#" class="text-gray-700 hover:text-blue-500">Home</a>
<a href="#" class="text-gray-700 hover:text-blue-500">About</a>
<a href="#" class="text-gray-700 hover:text-blue-500">Contact</a>
</div>
</div>
</nav><head>dark:references/framework-setup.mdreferences/utility-reference.mdreferences/customization-guide.mdnpm install tailwindcss @tailwindcss/viteimport tailwindcss from '@tailwindcss/vite'
export default defineConfig({ plugins: [tailwindcss()] })@import "tailwindcss";flexgridblockinline-blockp-4m-2gap-4space-x-2w-fullh-screenmax-w-lgtext-lgfont-boldleading-relaxedbg-blue-500text-whiteborder-gray-300md:flex-rowlg:grid-cols-3hover:bg-blue-700focus:ring-2dark:bg-gray-800