UNPKG

starkon

Version:

Create a Next.js project with Starkon

377 lines (293 loc) 12.2 kB
# Starkon Starkon, modern React uygulamaları için tasarlanmış kapsamlı bir component kütüphanesidir. Radix UI tabanlı, erişilebilir ve özelleştirilebilir komponentler sunar. ## Kurulum ```bash npx starkon my-project cd my-project npm install npm run dev ``` ```bash starkon/ ├── src/ ├── app/ # Next.js App Router ├── (auth)/ # Korumalı rotalar grubu ├── components/ # Bileşenler showcase sayfası ├── dashboard/ # Ana kontrol paneli ├── settings/ # Kullanıcı ayarları └── layout.tsx # Auth layout bileşeni ├── auth/ # Authentication sayfaları └── login/ # Giriş sayfası ├── globals.css # Global stil tanımları ├── layout.tsx # Kök layout bileşeni └── page.tsx # Ana sayfa ├── components/ # Component kütüphanesi ├── core/ # Temel UI bileşenleri ├── Accordion/ # Genişletilebilir içerik ├── AlertDialog/ # Uyarı diyalogları ├── Avatar/ # Kullanıcı avatarları ├── Badge/ # Durum etiketleri ├── Button/ # Etkileşimli butonlar ├── Card/ # İçerik kartları ├── Checkbox/ # Seçim kutuları ├── CommandMenu/ # Komut menüsü ├── DataTable/ # Gelişmiş veri tablosu ├── Dialog/ # Modal diyaloglar ├── Dropdown/ # Açılır menüler ├── Input/ # Metin giriş alanları ├── Label/ # Form etiketleri ├── Loading/ # Yükleme animasyonları ├── Popover/ # Açılır içerik kutuları ├── Select/ # Seçim dropdownları ├── Separator/ # Ayırıcı çizgiler ├── Skeleton/ # Yükleme placeholderları ├── Slider/ # Değer seçici kaydırıcılar ├── Switch/ # Açma/kapama düğmeleri ├── Tabs/ # Sekme navigasyonu ├── Textarea/ # Çok satırlı metin alanları ├── Toast/ # Bildirim mesajları └── Tooltip/ # Yardım ipuçları ├── forms/ # Form bileşenleri └── auth/ # Authentication formları └── ui/ # Özel UI bileşenleri ├── ComponentDemo/ # Bileşen demo wrapper ├── ErrorBoundary/ # Hata yakalama ├── FileUpload/ # Dosya yükleme ├── LanguageToggle/# Dil değiştirici ├── PageHeader/ # Sayfa başlığı ├── ThemeToggle/ # Tema değiştirici └── ToastContainer/# Toast yöneticisi ├── data/ # Statik veri dosyaları └── componentDemoData.tsx # Demo component verileri ├── hooks/ # Özel React hook'ları ├── useAuth.ts # Authentication yönetimi ├── useForm.ts # Form yönetimi (Zod entegrasyonu) ├── useLocalStorage.ts # LocalStorage hook'u ├── useLocale.ts # Çoklu dil desteği ├── useTheme.ts # Tema yönetimi └── useTokenManager.ts # Token yönetimi ├── lib/ # Yardımcı kütüphaneler ├── locale-utils.ts # Dil yardımcıları ├── utils.ts # Genel yardımcı fonksiyonlar └── validations/ # Form validasyon şemaları └── auth.ts # Authentication validasyonları ├── locales/ # Çoklu dil desteği ├── en/ # İngilizce çeviriler ├── tr/ # Türkçe çeviriler └── index.ts # i18n yapılandırması ├── providers/ # React context sağlayıcıları ├── AuthProvider.tsx # Authentication context ├── ClientProviders.tsx# Client-side provider wrapper └── TokenManagerProvider.tsx # Token yönetim context ├── services/ # API ve servis katmanları ├── apiService.ts # Ana API servisi ├── apiSlice.ts # RTK Query API slice ├── authService.ts # Authentication servisleri ├── constants.ts # API sabitleri ├── tokenManager.ts # Token yönetim servisi └── utils.ts # Servis yardımcıları ├── store/ # Redux Toolkit store ├── slices/ # Redux slice'ları ├── langSlice.ts # Dil durumu ├── loadingSlice.ts# Yükleme durumu ├── themeSlice.ts # Tema durumu ├── toastSlice.ts # Toast bildirimleri └── userSlice.ts # Kullanıcı durumu ├── index.ts # Store yapılandırması └── types.ts # Store tip tanımları ├── types/ # TypeScript tip tanımları └── index.ts # Genel tip tanımları ├── utils/ # Yardımcı fonksiyonlar └── security.ts # Güvenlik yardımcıları ├── index.ts # Ana export dosyası └── middleware.ts # Next.js middleware ├── public/ # Statik dosyalar ├── favicon.svg # Site ikonu ├── robots.txt # Robot yönergeleri └── site.webmanifest # PWA manifest ├── next.config.mjs # Next.js yapılandırması ├── tailwind.config.mjs # Tailwind CSS yapılandırması ├── postcss.config.mjs # PostCSS yapılandırması ├── tsconfig.json # TypeScript yapılandırması ├── package.json # Proje bağımlılıkları └── README.md # Bu dosya ``` ## Ö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 ```bash npx starkon my-app cd my-app # Bağımlılıkları yükle npm install # Geliştirme sunucusunu başlat npm run dev `Tarayıcıda http://localhost:3000 adresini aç` ``` ## Build ve Deploy ```bash # Production build npm run build # Production sunucusunu başlat npm start # Kod kalitesi kontrolü npm run lint # TypeScript kontrolleri npm run type-check # Kod formatlaması npm run prettier ``` # Sayfalar ```bash ### Ana Sayfalar - `/` - Landing page - `/dashboard` - Kullanıcı dashboard'u (korumalı) - `/components` - Component showcase (korumalı) - `/settings` - Kullanıcı ayarları (korumalı) ### Authentication - `/login` - Giriş sayfası ``` ## Demo Kullanıcıları ```bash Admin: admin@example.com / Admin123! User: user@example.com / User123! Demo: demo@example.com / Demo123! ``` ## Component Showcase ```bash 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: ```bash // Özel renkler tanımlama colors: { primary: { 50: 'hsl(var(--primary-50))', // ... diğer tonlar } } ``` ### Yeni Dil Ekleme 1. `src/locales/` altında yeni dil klasörü oluşturun 2. `translation.json` dosyasını çevirin 3. `src/lib/locale-utils.ts` dosyasında dili SUPPORTED_LOCALES'a ekleyin ### Yeni Component Ekleme 1. `src/components/core/` altında component klasörü oluşturun 2. Component'i geliştirin 3. `src/index.ts` dosyasından export edin 4. `src/data/componentDemoData.tsx` dosyasına demo ekleyin ## API Entegrasyonu Proje mock authentication kullanır, ancak gerçek API entegrasyonu için: 1. `src/config/api.ts` dosyasında API URL'lerini güncelleyin 2. `src/services/apiSlice.ts` dosyasında endpoint'leri tanımlayın 3. Authentication logic'ini `src/hooks/useAuth.ts` dosyasında güncelleyin ## Deployment ### Vercel (Önerilen) ```bash npm install -g vercel vercel ``` ### Netlify ```bash npm run build # out/ klasörünü Netlify'a yükleyin ``` ### Docker ```bash 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 1. Fork yapın 2. Feature branch oluşturun (`git checkout -b feature/amazing-feature`) 3. Değişikliklerinizi commit edin (`git commit -m 'Add amazing feature'`) 4. Branch'inizi push edin (`git push origin feature/amazing-feature`) 5. Pull Request oluşturun ## Lisans MIT License - detaylar için [LICENSE](LICENSE) dosyasına bakın. ## İletişim - GitHub: [zzafergok/starkon](https://github.com/zzafergok/starkon) - Website: [starkon.website](https://starkon.website)