Starkon Template
Starkon Template, modern React uygulamaları için tasarlanmış kapsamlı bir component kütüphanesidir. Radix UI tabanlı, erişilebilir ve özelleştirilebilir komponentler sunar.
Kurulum
npx create-starkon-template my-project
cd my-project
npm install
npm run dev
starkon-template/
├── src/
│ ├── app/
│ │ ├── (auth)/
│ │ │ ├── components/
│ │ │ ├── dashboard/
│ │ │ ├── settings/
│ │ │ └── layout.tsx
│ │ ├── auth/
│ │ │ └── login/
│ │ ├── globals.css
│ │ ├── layout.tsx
│ │ └── page.tsx
│ ├── components/
│ │ ├── core/
│ │ │ ├── Accordion/
│ │ │ ├── AlertDialog/
│ │ │ ├── Avatar/
│ │ │ ├── Badge/
│ │ │ ├── Button/
│ │ │ ├── Card/
│ │ │ ├── Checkbox/
│ │ │ ├── CommandMenu/
│ │ │ ├── DataTable/
│ │ │ ├── Dialog/
│ │ │ ├── Dropdown/
│ │ │ ├── Input/
│ │ │ ├── Label/
│ │ │ ├── Loading/
│ │ │ ├── Popover/
│ │ │ ├── Select/
│ │ │ ├── Separator/
│ │ │ ├── Skeleton/
│ │ │ ├── Slider/
│ │ │ ├── Switch/
│ │ │ ├── Tabs/
│ │ │ ├── Textarea/
│ │ │ ├── Toast/
│ │ │ └── Tooltip/
│ │ ├── forms/
│ │ │ └── auth/
│ │ └── ui/
│ │ ├── ComponentDemo/
│ │ ├── ErrorBoundary/
│ │ ├── FileUpload/
│ │ ├── LanguageToggle/
│ │ ├── PageHeader/
│ │ ├── ThemeToggle/
│ │ └── ToastContainer/
│ ├── data/
│ │ └── componentDemoData.tsx
│ ├── hooks/
│ │ ├── useAuth.ts
│ │ ├── useDropdownPortal.ts
│ │ ├── useDropdownState.ts
│ │ ├── useForm.ts
│ │ ├── useLocalStorage.ts
│ │ ├── useLocale.ts
│ │ ├── useScrollbarCompensation.ts
│ │ ├── useTheme.ts
│ │ └── useTokenManager.ts
│ ├── lib/
│ │ ├── locale-utils.ts
│ │ ├── utils.ts
│ │ └── validations/
│ │ └── auth.ts
│ ├── locales/
│ │ ├── en/
│ │ ├── tr/
│ │ └── index.ts
│ ├── providers/
│ │ ├── AuthProvider.tsx
│ │ ├── ClientProviders.tsx
│ │ └── TokenManagerProvider.tsx
│ ├── services/
│ │ ├── apiService.ts
│ │ ├── apiSlice.ts
│ │ ├── authService.ts
│ │ ├── constants.ts
│ │ ├── tokenManager.ts
│ │ └── utils.ts
│ ├── store/
│ │ ├── slices/
│ │ │ ├── langSlice.ts
│ │ │ ├── loadingSlice.ts
│ │ │ ├── themeSlice.ts
│ │ │ ├── toastSlice.ts
│ │ │ └── userSlice.ts
│ │ ├── index.ts
│ │ └── types.ts
│ ├── types/
│ │ └── index.ts
│ ├── utils/
│ │ └── security.ts
│ ├── index.ts
│ └── middleware.ts
├── public/
│ ├── favicon.svg
│ ├── robots.txt
│ └── site.webmanifest
├── next.config.mjs
├── tailwind.config.mjs
├── postcss.config.mjs
├── tsconfig.json
├── package.json
└── README.md
Ă–zellikler
Temel BileĹźenler
- Button: 5 farklı varyant, 4 boyut seçeneği, loading durumu
- Input: Çeşitli varyantlar, ikon desteği, validasyon entegrasyonu
- Card: Esnek içerik kartları, hover efektleri
- Dialog: Modal diyaloglar, erişilebilir tasarım
- Select: Özelleştirilebilir dropdown seçiciler
- DataTable: Sıralama, filtreleme, sayfalama desteği
Form Yönetimi
- React Hook Form entegrasyonu
- Zod validasyon şemaları
- Çoklu dil form hata mesajları
- Otomatik form durumu yönetimi
Çoklu Dil Desteği
- Türkçe ve İngilizce dil desteği
- i18next entegrasyonu
- Otomatik dil algılama
- Cookie tabanlı dil tercihi
Tema Sistemi
- Açık/koyu tema desteği
- Sistem tercihi algılama
- CSS custom properties ile renk yönetimi
- Smooth tema geçişleri
State Yönetimi
- Redux Toolkit ile merkezi state
- Redux Persist ile kalıcı veri
- Optimistic UI gĂĽncellemeleri
- Real-time bildirim sistemi
Authentication
- JWT token yönetimi
- Otomatik token yenileme
- Korumalı rota sistemi
- Middleware tabanlı yetkilendirme
GeliĹźtirici Deneyimi
- TypeScript ile tip gĂĽvenliÄźi
- ESLint ve Prettier entegrasyonu
- Storybook benzeri component showcase
- Kapsamlı JSDoc dokümantasyonu
Kullanılan Teknolojiler
Frontend Framework
- Next.js 15 - React framework
- React 18 - UI kĂĽtĂĽphanesi
- TypeScript - Tip gĂĽvenliÄźi
UI/UX
- Tailwind CSS - Utility-first CSS framework
- Radix UI - Headless UI primitives
- Lucide React - İkon kütüphanesi
- Framer Motion - Animasyon kĂĽtĂĽphanesi
State Management
- Redux Toolkit - State yönetimi
- React Redux - React-Redux bağlantısı
- Redux Persist - State kalıcılığı
Form Yönetimi
- React Hook Form - Form yönetimi
- Zod - Schema validation
- @hookform/resolvers - Zod entegrasyonu
Çoklu Dil
- i18next - Uluslararasılaştırma
- react-i18next - React entegrasyonu
- i18next-browser-languagedetector - Dil algılama
API Yönetimi
- RTK Query - Data fetching
- Axios - HTTP client
Development Tools
- ESLint - Kod kalitesi
- Prettier - Kod formatlaması
- PostCSS - CSS iĹźleme
Başlangıç
Gereksinimler
- Node.js 18.0.0 veya ĂĽzeri
- npm, yarn veya pnpm
Kurulum ve Çalıştırma
Projeyi oluĹźtur
npx create-starkon-template my-app
cd my-app
npm install
npm run dev
`Tarayıcıda http://localhost:3000 adresini aç`
Build ve Deploy
npm run build
npm start
npm run lint
npm run type-check
npm run prettier
Sayfalar
- `/` - Landing page
- `/dashboard` - Kullanıcı dashboard'u (korumalı)
- `/components` - Component showcase (korumalı)
- `/settings` - Kullanıcı ayarları (korumalı)
### Authentication
- `/auth/login` - Giriş sayfası
Demo Kullanıcıları
Admin: admin@example.com / Admin123!
User: user@example.com / User123!
Demo: demo@example.com / Demo123!
Component Showcase
Component showcase sayfası (`/components`) tüm mevcut bileşenleri interaktif olarak sunar:
- Gerçek zamanlı preview
- Kod örnekleri
- Props dokĂĽmantasyonu
- Kullanım senaryoları
- Filtreleme ve arama
Ă–zelleĹźtirme
Tema Ă–zelleĹźtirme
tailwind.config.mjs dosyasında renk paleti ve tasarım sistemini özelleştirebilirsiniz:
// Özel renkler tanımlama
colors: {
primary: {
50: 'hsl(var(--primary-50))',
// ... diÄźer tonlar
}
}
Yeni Dil Ekleme
src/locales/ altında yeni dil klasörü oluşturun
translation.json dosyasını çevirin
src/lib/locale-utils.ts dosyasında dili SUPPORTED_LOCALES'a ekleyin
Yeni Component Ekleme
src/components/core/ altında component klasörü oluşturun
- Component'i geliĹźtirin
src/index.ts dosyasından export edin
src/data/componentDemoData.tsx dosyasına demo ekleyin
API Entegrasyonu
Proje mock authentication kullanır, ancak gerçek API entegrasyonu için:
src/config/api.ts dosyasında API URL'lerini güncelleyin
src/services/apiSlice.ts dosyasında endpoint'leri tanımlayın
- Authentication logic'ini
src/hooks/useAuth.ts dosyasında güncelleyin
Deployment
Vercel (Ă–nerilen)
npm install -g vercel
vercel
Netlify
npm run build
Docker
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]
Katkıda Bulunma
- Fork yapın
- Feature branch oluĹźturun (
git checkout -b feature/amazing-feature)
- DeÄźiĹźikliklerinizi commit edin (
git commit -m 'Add amazing feature')
- Branch'inizi push edin (
git push origin feature/amazing-feature)
- Pull Request oluĹźturun
Lisans
MIT License - detaylar için LICENSE dosyasına bakın.
İletişim