nextjs-table
v1.0.0
Published
Modern, customizable data table component for Next.js with CRUD operations
Downloads
7
Maintainers
Readme
Next.js Table
Modern, esnek ve özelleştirilebilir React table komponenti. Next.js projeleri için tasarlanmış, Tailwind CSS ile stillendirilmiş.
✨ Özellikler
- 🎯 Modüler Yapı - Compound Component Pattern
- 💎 TypeScript Desteği - Tam tip güvenliği
- 🎨 Tailwind CSS - Modern ve responsive tasarım
- 🔧 Tamamen Özelleştirilebilir - Her component için className desteği
- 📦 Zero Dependencies - Sadece React ve clsx
- 🚀 Next.js Ready - SSR/SSG destekli
🚀 Kurulum
npm install nextjs-table
# veya
yarn add nextjs-table
# veya
pnpm add nextjs-table💡 Kullanım
Basit Kullanım
import { Table } from 'nextjs-table';
function UserTable({ users }) {
return (
<Table>
<Table.Header>
<Table.Row>
<Table.HeaderCell>İsim</Table.HeaderCell>
<Table.HeaderCell>Email</Table.HeaderCell>
<Table.HeaderCell>Durum</Table.HeaderCell>
</Table.Row>
</Table.Header>
<Table.Body>
{users.map((user) => (
<Table.Row key={user.id}>
<Table.Cell>{user.name}</Table.Cell>
<Table.Cell>{user.email}</Table.Cell>
<Table.Cell>
<span className="badge">{user.status}</span>
</Table.Cell>
</Table.Row>
))}
</Table.Body>
</Table>
);
}Boş Durum
<Table.Body>
{data.length === 0 ? (
<Table.Empty colSpan={3}>
<div className="py-8 text-center">
<p>Henüz veri bulunmuyor</p>
</div>
</Table.Empty>
) : (
data.map(item => (
<Table.Row key={item.id}>
{/* ... */}
</Table.Row>
))
)}
</Table.Body>Footer ile Kullanım
<Table>
<Table.Header>
{/* header cells */}
</Table.Header>
<Table.Body>
{/* data rows */}
</Table.Body>
<Table.Footer>
<Table.Row>
<Table.HeaderCell>Toplam</Table.HeaderCell>
<Table.HeaderCell>100</Table.HeaderCell>
</Table.Row>
</Table.Footer>
</Table>🧩 Componentler
Table
Ana wrapper component. Overflow handling ve temel table styling'i sağlar.
<Table className="custom-table">
{/* children */}
</Table>Table.Header / TableHeader
<thead> elementi için wrapper.
Table.Body / TableBody
<tbody> elementi için wrapper.
Table.Footer / TableFooter
<tfoot> elementi için wrapper.
Table.Row / TableRow
<tr> elementi için wrapper. Hover efekti içerir.
Table.HeaderCell / TableHeaderCell
<th> elementi için wrapper. Header cell styling'i ile gelir.
Table.Cell / TableCell
<td> elementi için wrapper.
Props:
colSpan?: number- Hücrenin kaç sütun kaplayacağı
Table.Empty / TableEmpty
Boş durum için özel component.
Props:
colSpan: number- Toplam sütun sayısıchildren: React.ReactNode- Gösterilecek içerik
🎨 Styling
Tüm componentler Tailwind CSS classları kabul eder:
<Table className="shadow-lg border border-gray-200">
<Table.Header className="bg-blue-50">
<Table.Row className="border-b-2">
<Table.HeaderCell className="text-blue-900 font-bold">
Başlık
</Table.HeaderCell>
</Table.Row>
</Table.Header>
<Table.Body>
<Table.Row className="hover:bg-yellow-50">
<Table.Cell className="text-gray-800 font-medium">
İçerik
</Table.Cell>
</Table.Row>
</Table.Body>
</Table>🔧 TypeScript
Tüm componentler TypeScript ile yazılmış ve tam tip desteği sunar:
interface User {
id: number;
name: string;
email: string;
}
// Tip güvenli kullanım
const users: User[] = [...];
<Table.Body>
{users.map((user: User) => (
<Table.Row key={user.id}>
<Table.Cell>{user.name}</Table.Cell>
<Table.Cell>{user.email}</Table.Cell>
</Table.Row>
))}
</Table.Body>📦 Export Türleri
// Compound component (önerilen)
import { Table } from 'nextjs-table';
<Table.Header>...</Table.Header>
// Named imports
import { Table, TableHeader, TableCell } from 'nextjs-table';
// Default import
import Table from 'nextjs-table';👨💻 Geliştirici
Kenan Gündoğan - Full Stack Developer
🤝 Katkıda Bulunma
- Fork edin
- Feature branch oluşturun (
git checkout -b feature/amazing-feature) - Commit yapın (
git commit -m 'Add amazing feature') - Push edin (
git push origin feature/amazing-feature) - Pull Request oluşturun
📄 Lisans
MIT
