npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

mrlib-ui

v1.1.0

Published

Modern React UI component library with TypeScript, Tailwind CSS, and multi-language support

Readme

⚡ mrlib-ui - Modern React UI Library

Modern, hafif ve temiz tasarıma sahip React uygulamaları oluşturmak için tasarlanmış kapsamlı UI komponent kütüphanesi.

✨ Özellikler

  • Hızlı Geliştirme: Vite ile optimize edilmiş build süreci
  • 🎨 Modern Tasarım: Apple benzeri temiz ve minimal tasarım prensipleri
  • 📱 Responsive: Tüm cihazlarda mükemmel görünüm
  • 🔧 TypeScript: %100 tip güvenliği ve gelişmiş IDE desteği
  • 🚀 53+ Komponent: Kapsamlı UI komponent koleksiyonu
  • 🪝 24 Hook: Gelişmiş state yönetimi için custom hook'lar
  • 🌙 Dark Mode: Otomatik sistem tercihi algılama
  • 🌍 Çok Dilli: Türkçe ve İngilizce dil desteği
  • 📦 Optimize Bundle: Sadece 24.8KB (gzip: 5.6KB)
  • 🎯 CLI Tool: Hızlı proje oluşturma

🚀 Hızlı Başlangıç

Gereksinimler

  • Node.js 16+
  • npm veya yarn

Kurulum

1. CLI ile Proje Oluşturma (Önerilen)

# Yeni proje oluştur
npx mrlib-ui create my-awesome-project

# Proje klasörüne git
cd my-awesome-project

# Bağımlılıkları yükle
npm install

# Geliştirme sunucusunu başlat
npm run dev

2. Manuel Kurulum

# Paketi yükle
npm install mrlib-ui

# Komponentleri import et
import { Button, Input, Card } from 'mrlib-ui'

3. Geliştirme için Klonlama

# Projeyi klonlayın
git clone <repository-url>
cd mrlib-ui

# Bağımlılıkları yükleyin
npm install

# Geliştirme sunucusunu başlatın
npm run dev

Tarayıcınızda http://localhost:3000 adresini açın.

📁 Proje Yapısı

src/
├── components/          # UI componentleri
│   ├── ui/             # Temel UI componentleri
│   │   ├── Button.tsx
│   │   ├── Card.tsx
│   │   ├── Input.tsx
│   │   ├── Modal.tsx
│   │   ├── Toast.tsx
│   │   ├── Tooltip.tsx
│   │   ├── Select.tsx
│   │   ├── Checkbox.tsx
│   │   ├── Radio.tsx
│   │   ├── Switch.tsx
│   │   ├── Slider.tsx
│   │   ├── Progress.tsx
│   │   ├── Badge.tsx
│   │   ├── Avatar.tsx
│   │   ├── Container.tsx
│   │   ├── Divider.tsx
│   │   ├── Spacer.tsx
│   │   ├── Tabs.tsx
│   │   ├── Accordion.tsx
│   │   ├── DatePicker.tsx
│   │   ├── Table.tsx
│   │   ├── List.tsx
│   │   ├── Textarea.tsx
│   │   ├── Alert.tsx
│   │   ├── Skeleton.tsx
│   │   ├── Drawer.tsx
│   │   ├── Breadcrumb.tsx
│   │   ├── FileUpload.tsx
│   │   └── Dropdown.tsx
│   ├── Header.tsx
│   ├── Hero.tsx
│   ├── Features.tsx
│   └── Footer.tsx
├── contexts/            # React Context'ler
│   ├── ThemeContext.tsx
│   ├── ToastContext.tsx
│   └── LanguageContext.tsx
├── hooks/               # Custom hook'lar
│   ├── useToggle.ts
│   ├── useDebounce.ts
│   ├── useLocalStorage.ts
│   ├── useResponsive.ts
│   ├── useClipboard.ts
│   ├── useScrollPosition.ts
│   ├── useMediaQuery.ts
│   └── index.ts
├── utils/               # Yardımcı fonksiyonlar
│   ├── cn.ts
│   ├── format.ts
│   ├── validation.ts
│   └── index.ts
├── types/               # TypeScript tip tanımları
│   └── index.ts
├── pages/               # Sayfa komponentleri
│   ├── Documentation.tsx
│   └── Examples.tsx
├── App.tsx
├── main.tsx
├── index.css
└── index.ts

🎨 Tasarım Sistemi

Renk Paleti

Modern ve temiz tasarım dilinden ilham alan renk paleti:

  • Primary: Modern Blue (#007AFF)
  • Success: Modern Green (#34C759)
  • Warning: Modern Orange (#FF9500)
  • Error: Modern Red (#FF3B30)
  • Gray Scale: Modern Gray (50-900)
  • Dark Mode: Premium dark gray tones for sophisticated dark theme
  • Premium Palettes: Gold, Silver, Platinum, Rose Gold, Emerald, Sapphire, Amethyst, Ruby, Topaz, Pearl, Onyx (50-900 shades)

Typography

  • Font Family: SF Pro Display/Text (Apple'ın sistem fontu)
  • Font Sizes: Responsive ve tutarlı tipografi ölçekleri

Component'ler

Button

import { Button } from '@/components/ui/Button'

// Temel kullanım
<Button variant="primary" size="md">
  Tıkla
</Button>

// Loading state
<Button loading={true}>
  Yükleniyor...
</Button>

// Farklı varyantlar
<Button variant="secondary">İkincil</Button>
<Button variant="ghost">Hayalet</Button>
<Button variant="destructive">Tehlikeli</Button>

Card

import { Card, CardHeader, CardTitle, CardContent } from '@/components/ui/Card'

<Card>
  <CardHeader>
    <CardTitle>Başlık</CardTitle>
  </CardHeader>
  <CardContent>
    İçerik buraya gelir
  </CardContent>
</Card>

Input

import { Input } from '@/components/ui/Input'

<Input
  label="Email"
  type="email"
  placeholder="[email protected]"
  error="Geçerli bir email girin"
/>

Modal

import { Modal } from '@/components/ui/Modal'

<Modal
  isOpen={isOpen}
  onClose={() => setIsOpen(false)}
  title="Modal Başlığı"
>
  Modal içeriği buraya gelir
</Modal>

🪝 Custom Hook'lar (24 Hook)

State Management

  • useToggle - Boolean state toggle
  • usePrevious - Previous value tracking
  • useLocalStorage - LocalStorage sync
  • useDebounce - Value debouncing

UI Interactions

  • useClickOutside - Outside click detection
  • useHover - Hover state tracking
  • useFocus - Focus state tracking
  • useKeyPress - Keyboard event handling

Form Management

  • useForm - Form state management
  • useValidation - Form validation logic

Network & Data

  • useAsync - Async operation handling
  • useFetch - HTTP request management
  • useOnline - Online/offline status
  • useGeolocation - Location tracking

Utilities

  • useClipboard - Clipboard operations
  • useCopyToClipboard - Copy to clipboard
  • useResponsive - Responsive breakpoints
  • useMediaQuery - Media query matching

Timer & Animation

  • useInterval - Interval timer
  • useTimeout - Timeout timer
  • useAnimation - CSS animations
  • useIntersectionObserver - Element visibility

Örnek Kullanım

import { useToggle, useAsync, useForm } from 'mrlib-ui'

function MyComponent() {
  const [isOpen, toggle] = useToggle(false)
  const { data, loading, error } = useAsync(fetchData)
  const { values, errors, handleChange } = useForm({
    email: '',
    password: ''
  })
  
  return (
    <div>
      <Button onClick={toggle}>
        {isOpen ? 'Kapat' : 'Aç'}
      </Button>
      {loading ? 'Yükleniyor...' : data}
    </div>
  )
}

🌙 Dark Mode

Dark mode desteği tamamen Tailwind CSS ile entegre edilmiştir:

import { useTheme } from '@/contexts/ThemeContext'

const { theme, setTheme } = useTheme()

// Tema değiştirme
setTheme('dark') // 'light' | 'dark' | 'system'

🌍 Çok Dilli Destek

Türkçe ve İngilizce dil desteği:

import { useLanguage } from '@/contexts/LanguageContext'

const { language, setLanguage, t } = useLanguage()

// Çeviri kullanımı
const title = t('nav.home') // 'Ana Sayfa' veya 'Home'

🛠️ Geliştirme

Komutlar

# Geliştirme sunucusu
npm run dev

# Production build
npm run build

# Type kontrolü
npm run type-check

# Linting
npm run lint

# Preview
npm run preview

Konfigürasyon

  • Vite: Modern build tool ve dev server
  • TypeScript: Tip güvenliği
  • Tailwind CSS: Utility-first CSS framework
  • ESLint: Code linting
  • PostCSS: CSS processing
  • Framer Motion: Animasyonlar
  • Zod: Schema validation

📦 Paketleme

Bu starter kit'i kendi projenizde kullanmak için:

# Build
npm run build

# Dist klasöründe hazır dosyalar oluşur

🤝 Katkıda Bulunma

  1. Fork yapın
  2. Feature branch oluşturun (git checkout -b feature/amazing-feature)
  3. Commit yapın (git commit -m 'Add amazing feature')
  4. Push yapın (git push origin feature/amazing-feature)
  5. Pull Request oluşturun

📄 Lisans

Bu proje MIT lisansı altında lisanslanmıştır.

🙏 Teşekkürler


Not: Bu starter kit modern tasarım prensiplerinden ilham alınarak oluşturulmuştur.

📚 Dokümantasyon

Detaylı dokümantasyon için http://localhost:3009/docs adresini ziyaret edin.

🎯 Örnekler

Canlı örnekler için http://localhost:3009/examples adresini ziyaret edin.

Hazır Template

Doğrudan template oluşturmak için bu komutu kullanabilirsiniz npx mrlib-ui create my-awesome-project

📊 UI Kit Karşılaştırması

| UI Kit | Bundle Size | Gzip | Components | Hooks | TypeScript | |-------------|------------|--------|------------|-------|------------| | mrlib-ui | 24.8 kB | 5.6 kB | 53+ | 24 | 100% | | Ant Design | ~200 kB | ~60 kB | 50+ | 0 | 100% | | Material-UI | ~300 kB | ~90 kB | 100+ | 0 | 100% | | Chakra UI | ~150 kB | ~45 kB | 60+ | 0 | 100% | | Mantine | ~180 kB | ~55 kB | 80+ | 0 | 100% |

🏆 Neden mrlib-ui?

  • En Küçük Bundle: 5.6KB gzip ile en hafif UI kit
  • En Kapsamlı: 53 komponent + 24 hook
  • CLI Desteği: Hızlı proje oluşturma
  • Apple Tasarımı: Modern ve temiz arayüz
  • Çok Dilli: Türkçe ve İngilizce destek