tw-mantine
npx skills add https://github.com/ray123fa/agentskills --skill tw-mantine
Agent 安装分布
Skill 文档
Tailwind CSS v4 + Mantine v8 Integration
Overview
Skill ini menyediakan panduan lengkap untuk mengintegrasikan Tailwind CSS v4 dengan Mantine v8 di Next.js. Kombinasi ini memungkinkan:
- Tailwind: Utility-first CSS untuk styling cepat dan konsisten
- Mantine: Komponen React feature-rich dengan accessibility built-in
Quick Start
1. Install Dependencies
npm install @mantine/core @mantine/hooks @mantine/form @mantine/modals @mantine/notifications
npm install -D tailwindcss @tailwindcss/postcss
npm install tailwind-merge clsx
2. Setup PostCSS
Create postcss.config.mjs:
const config = {
plugins: {
"@tailwindcss/postcss": {},
},
};
export default config;
3. Setup Global CSS
Untuk detail setup lengkap, lihat:
- App Router: references/app-router-setup.md
- Pages Router: references/pages-router-setup.md
Integration Patterns
Pattern 1: classNames Prop (Recommended)
Gunakan classNames prop untuk menerapkan utility classes Tailwind ke bagian spesifik komponen Mantine:
import { Button } from '@mantine/core';
function HybridButton() {
return (
<Button
classNames={{
root: 'hover:scale-105 transition-transform duration-200 shadow-lg',
label: 'font-semibold tracking-wide',
}}
>
Click Me
</Button>
);
}
Pattern 2: style Prop
Gunakan untuk styling inline sederhana:
<Button style={{ backgroundColor: 'var(--mantine-color-red-5)' }}>
Red Button
</Button>
Pattern 3: Global Theme Configuration
Konfigurasi classNames di theme untuk semua instance komponen:
import { createTheme, MantineProvider } from '@mantine/core';
const theme = createTheme({
components: {
Button: Button.extend({
classNames: {
root: 'shadow-md hover:shadow-lg transition-shadow',
},
}),
},
});
function App() {
return (
<MantineProvider theme={theme}>
{/* All buttons will have Tailwind shadows */}
</MantineProvider>
);
}
Dark Mode Integration
Tailwind v4 dan Mantine v8 mendukung dark mode secara native. Implementasikan dengan:
CSS Setup
@import "tailwindcss";
/* Tailwind will automatically detect dark mode from prefers-color-scheme */
Component Usage
<div className="bg-white dark:bg-gray-800 rounded-lg p-6">
<h3 className="text-gray-900 dark:text-white">Title</h3>
<p className="text-gray-500 dark:text-gray-400">Description</p>
</div>
Mantine Color Scheme
MantineProvider secara otomatis mengikuti sistem color scheme. Tidak perlu konfigurasi tambahan.
Reusable Hybrid Components
Gunakan komponen template dari assets/templates/components/:
- HybridButton: Button dengan efek hover dan shadow Tailwind
- HybridCard: Card dengan layout flex dan responsive spacing
- HybridModal: Modal dengan styling custom menggunakan Tailwind
- HybridTextInput: Input dengan styling focus dan error states
Common Selectors Reference
Setiap komponen Mantine memiliki selectors internal yang dapat di-styling:
| Component | Selectors |
|---|---|
| Button | root, inner, label, section |
| TextInput | root, input, label, error, description |
| Card | root, section |
| Modal | root, header, body, overlay |
| Select | root, input, dropdown, options |
Lihat references/integration-patterns.md untuk daftar lengkap.
Best Practices
Do’s
- Gunakan
classNamesuntuk styling yang kompleks (hover, focus, transitions) - Gunakan
styleprop untuk styling inline sederhana - Definisikan classNames global di theme untuk konsistensi
- Gunakan
tailwind-mergedanclsxuntuk menggabungkan classes dinamis
Don’ts
- Jangan gunakan
sxprop (deprecated di Mantine 7+) - Hindari styling yang bertabrakan antara Tailwind dan Mantine defaults
- Jangan override CSS variables Mantine kecuali diperlukan
Troubleshooting
Classes tidak diterapkan
- Pastikan Tailwind CSS diimport di global CSS
- Periksa spesifisitas selector CSS
- Gunakan
!importanthanya jika benar-benar diperlukan
Style conflicts
- Mantine menggunakan CSS variables, prioritaskan utility Tailwind untuk override
- Gunakan
classNamesuntuk targeting selector spesifik