markora-ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,497 @@
1
+ # ✨ Markora UI - Premium React Component Library
2
+
3
+ A production-ready React and Next.js UI library featuring beautifully crafted components, advanced templates, and a modern design system built with TypeScript, Tailwind CSS, and React.
4
+
5
+ [![npm version](https://img.shields.io/npm/v/markora-ui.svg)](https://www.npmjs.com/package/markora-ui)
6
+ [![MIT License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
7
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.0%2B-blue)](https://www.typescriptlang.org/)
8
+ [![React](https://img.shields.io/badge/React-18.2%2B%20%7C%2019.0%2B-blue)](https://reactjs.org)
9
+
10
+ ---
11
+
12
+ ## 🎯 Why Markora UI?
13
+
14
+ - **60+ Professional Components** - Production-ready instead of disconnected snippets
15
+ - **Fully Type-Safe** - Complete TypeScript support with IntelliSense
16
+ - **Accessibility First** - WCAG 2.1 compliant, keyboard navigation built-in
17
+ - **Theme System** - Light & dark mode with customizable design tokens
18
+ - **Zero Runtime** - Tailwind CSS based, styles ship as CSS only
19
+ - **Tree-Shakeable** - Import only what you need, optimize bundle size
20
+ - **Interactive Docs** - Live component showcase with copy-paste code
21
+ - **Built for Teams** - Works seamlessly with React, Next.js, and modern tooling
22
+
23
+ ---
24
+
25
+ ## 📦 Installation
26
+
27
+ ### Prerequisites
28
+ - React 18.2+ or 19.0+
29
+ - Tailwind CSS 3.0+
30
+ - Node.js 16+
31
+
32
+ ### Quick Install
33
+
34
+ ```bash
35
+ npm install markora-ui
36
+ # or
37
+ yarn add markora-ui
38
+ # or
39
+ pnpm add markora-ui
40
+ ```
41
+
42
+ ---
43
+
44
+ ## 🚀 Getting Started
45
+
46
+ ### Step 1: Configure Tailwind CSS
47
+
48
+ If you haven't already, set up Tailwind CSS:
49
+
50
+ ```bash
51
+ npm install -D tailwindcss postcss autoprefixer
52
+ npx tailwindcss init -p
53
+ ```
54
+
55
+ ### Step 2: Update `tailwind.config.ts`
56
+
57
+ Include Aether UI in your Tailwind config:
58
+
59
+ ```typescript
60
+ import type { Config } from 'tailwindcss';
61
+
62
+ export default {
63
+ content: [
64
+ './index.html',
65
+ './src/**/*.{js,ts,jsx,tsx}',
66
+ './node_modules/markora-ui/**/*.{js,mjs,ts,mts}',
67
+ ],
68
+ theme: {
69
+ extend: {},
70
+ },
71
+ plugins: [],
72
+ } satisfies Config;
73
+ ```
74
+
75
+ ### Step 3: Import Styles
76
+
77
+ In your app's entry point:
78
+
79
+ ```typescript
80
+ import 'aether-ui/styles.css';
81
+ ```
82
+
83
+ ### Step 4: Start Using Components
84
+
85
+ ```typescript
86
+ import { Button, Card, CardContent, CardHeader, CardTitle } from 'aether-ui';
87
+
88
+ export default function App() {
89
+ return (
90
+ <div className="p-8">
91
+ <Card>
92
+ <CardHeader>
93
+ <CardTitle>Welcome to Markora UI</CardTitle>
94
+ </CardHeader>
95
+ <CardContent>
96
+ <Button variant="primary" size="lg">
97
+ Get Started
98
+ </Button>
99
+ </CardContent>
100
+ </Card>
101
+ </div>
102
+ );
103
+ }
104
+ ```
105
+
106
+ ---
107
+
108
+ ## 📚 Component Library
109
+
110
+ ### Form Components (16)
111
+ - **Input** - Text, email, password inputs with validation
112
+ - **InputField** - Labeled input with helper text and error states
113
+ - **Textarea** - Multi-line text input
114
+ - **TextareaField** - Textarea with labels and validation
115
+ - **Select** - Single and multi-select dropdowns
116
+ - **Combobox** - Searchable select component
117
+ - **Checkbox** - Standalone and groups
118
+ - **Radio** - Radio button groups
119
+ - **FileUpload** - File upload component
120
+ - **Switch** - Toggle switches
121
+ - **DatePicker** - Calendar date selection
122
+ - **InputGroup** - Grouped inputs with addons
123
+ - **NumberInput** - Number input with increment/decrement
124
+ - **InputOTP** - One-time password inputs
125
+ - **NativeSelect** - Native select element
126
+ - **SegmentedControl** - Segmented control component
127
+
128
+ ### Button Components (5)
129
+ - **Button** - Primary, secondary, outline, destructive, ghost variants
130
+ - **IconButton** - Compact button for icons only
131
+ - **ButtonGroup** - Group related buttons
132
+ - **MarkoriButton** - Premium styled button variant
133
+ - **ActionBar** - Toolbar for grouped actions
134
+
135
+ ### Data Display (15)
136
+ - **Table** - Basic data table
137
+ - **DataTable** - Advanced table with sorting/filtering
138
+ - **Card** - Container with header, content, footer
139
+ - **Badge** - Labels and status indicators
140
+ - **Stat** - Metric display with trends
141
+ - **Rating** - Star rating component
142
+ - **Avatar** - User profile pictures
143
+ - **AvatarGroup** - Multiple avatars grouped
144
+ - **Progress** - Progress bars
145
+ - **ProgressCircle** - Circular progress indicator
146
+ - **Timeline** - Event timeline
147
+ - **Pagination** - Page navigation
148
+ - **Divider** - Visual separator
149
+ - **Typography** - Text styles and variants
150
+ - **Chart** - Data visualization (bar, line, area)
151
+
152
+ ### Navigation (8)
153
+ - **Tabs** - Tab navigation
154
+ - **Breadcrumb** - Breadcrumb navigation
155
+ - **Navigation** - Navigation menu
156
+ - **NavigationMenu** - Complex navigation structures
157
+ - **Sidebar** - Collapsible sidebar
158
+ - **Menubar** - Menu bar component
159
+ - **Dock** - Floating dock navigation
160
+ - **TreeView** - Hierarchical tree navigation
161
+
162
+ ### Overlay Components (8)
163
+ - **Dialog** - Modal dialog
164
+ - **Sheet** - Drawer/slide-out dialog
165
+ - **Popover** - Floating popover
166
+ - **Tooltip** - Tooltip with placements
167
+ - **DropdownMenu** - Dropdown menu
168
+ - **ContextMenu** - Right-click context menu
169
+ - **HoverCard** - Hover reveal card
170
+ - **Modal** - Modal dialog variant
171
+
172
+ ### Feedback (6)
173
+ - **Toast** - Toast notifications (via Sonner)
174
+ - **Callout** - Alert callout boxes
175
+ - **Banner** - Top/bottom banners
176
+ - **AlertDialog** - Alert dialogs
177
+ - **Skeleton** - Loading skeleton
178
+ - **Spinner** - Loading spinner
179
+
180
+ ### Special Components (12+)
181
+ - **Accordion** - Collapsible sections
182
+ - **Carousel** - Image carousel
183
+ - **Clipboard** - Copy to clipboard
184
+ - **Collapsible** - Collapsible content
185
+ - **Command** - Command palette
186
+ - **EmptyState** - Empty state UI
187
+ - **Label** - Form labels
188
+ - **Kbd** - Keyboard key display
189
+ - **Marquee** - Scrolling marquee
190
+ - **Separator** - Visual separator
191
+ - **Slider** - Range slider
192
+ - **ScrollArea** - Scrollable container
193
+
194
+ ### Premium Effects (8+)
195
+ - **BorderBeam** - Animated border beam
196
+ - **Meteors** - Meteor rain effect
197
+ - **OrbitingCircles** - Orbiting circles animation
198
+ - **SpotlightCard** - Spotlight hover effect
199
+ - **BackgroundGradient** - Gradient backgrounds
200
+ - **CelestialPulse** - Pulsing celestial effect
201
+ - **GradientText** - Gradient text
202
+ - **HolographicDataDeck** - Holographic data display
203
+
204
+ ### Templates & Layouts (5+)
205
+ - **PricingCard** - Pricing tier cards
206
+ - **FeatureCard** - Feature showcase cards
207
+ - **ProductShowcaseCarousel** - Product showcase
208
+ - **InteractiveOrbNavigation** - Interactive orb nav
209
+ - **SocialPulseWidget** - Social metrics widget
210
+
211
+ ---
212
+
213
+ ## 💡 Usage Examples
214
+
215
+ ### Basic Form
216
+
217
+ ```typescript
218
+ import { InputField, Select, Button } from 'markora-ui';
219
+ import { useState } from 'react';
220
+
221
+ export default function ContactForm() {
222
+ const [email, setEmail] = useState('');
223
+
224
+ return (
225
+ <form className="space-y-4 max-w-md">
226
+ <InputField
227
+ label="Email Address"
228
+ type="email"
229
+ placeholder="you@example.com"
230
+ value={email}
231
+ onChange={(e) => setEmail(e.target.value)}
232
+ hint="We'll never share your email"
233
+ />
234
+ <Select
235
+ label="Subject"
236
+ options={[
237
+ { label: 'Support', value: 'support' },
238
+ { label: 'Sales', value: 'sales' },
239
+ { label: 'General', value: 'general' },
240
+ ]}
241
+ />
242
+ <Button fullWidth variant="primary">
243
+ Submit
244
+ </Button>
245
+ </form>
246
+ );
247
+ }
248
+ ```
249
+
250
+ ### With Next.js 14+
251
+
252
+ ```typescript
253
+ // app/layout.tsx
254
+ import 'markora-ui/styles.css';
255
+ import { ThemeProvider } from 'markora-ui';
256
+
257
+ export default function RootLayout({ children }) {
258
+ return (
259
+ <html>
260
+ <body>
261
+ <ThemeProvider>{children}</ThemeProvider>
262
+ </body>
263
+ </html>
264
+ );
265
+ }
266
+
267
+ // app/page.tsx
268
+ 'use client';
269
+
270
+ import { Button, Card, CardContent, CardHeader, CardTitle } from 'aether-ui';
271
+
272
+ export default function Page() {
273
+ return (
274
+ <Card>
275
+ <CardHeader>
276
+ <CardTitle>Launch faster</CardTitle>
277
+ </CardHeader>
278
+ <CardContent>
279
+ <Button variant="primary">Ship with Markora UI</Button>
280
+ </CardContent>
281
+ </Card>
282
+ );
283
+ }
284
+ ```
285
+
286
+ ### Dark Mode
287
+
288
+ ```typescript
289
+ import { ThemeProvider, ThemeToggle, Button } from 'markora-ui';
290
+
291
+ export default function App() {
292
+ return (
293
+ <ThemeProvider defaultTheme="light" storageKey="theme">
294
+ <div className="p-8">
295
+ <ThemeToggle />
296
+ <Button>Hello World</Button>
297
+ </div>
298
+ </ThemeProvider>
299
+ );
300
+ }
301
+ ```
302
+
303
+ ### Custom Styling
304
+
305
+ All components support Tailwind classes:
306
+
307
+ ```typescript
308
+ <Button
309
+ variant="primary"
310
+ className="shadow-lg hover:shadow-xl transition-shadow duration-300"
311
+ >
312
+ Enhanced Button
313
+ </Button>
314
+ ```
315
+
316
+ ---
317
+
318
+ ## 🎨 Theming
319
+
320
+ ### Available Theme Variables
321
+
322
+ ```css
323
+ --background /* Page background */
324
+ --foreground /* Text foreground */
325
+ --card /* Card background */
326
+ --card-foreground /* Card text */
327
+ --primary /* Primary accent */
328
+ --primary-foreground
329
+ --secondary /* Secondary accent */
330
+ --secondary-foreground
331
+ --destructive /* Danger state */
332
+ --destructive-foreground
333
+ --muted /* Muted text */
334
+ --muted-foreground
335
+ --accent /* Accent color */
336
+ --accent-foreground
337
+ --border /* Border color */
338
+ ```
339
+
340
+ ### Light & Dark Mode
341
+
342
+ The library automatically supports system preferences. Override with:
343
+
344
+ ```typescript
345
+ <ThemeProvider attribute="class" defaultTheme="dark" storageKey="app-theme">
346
+ {children}
347
+ </ThemeProvider>
348
+ ```
349
+
350
+ ---
351
+
352
+ ## 📖 Interactive Docs
353
+
354
+ Run the development server to explore all components:
355
+
356
+ ```bash
357
+ npm run dev
358
+ ```
359
+
360
+ Navigate to `http://localhost:5173` to see:
361
+ - Live component previews
362
+ - Editable examples
363
+ - Copy-paste code snippets
364
+ - All variants for each component
365
+
366
+ ---
367
+
368
+ ## 🔧 Advanced Usage
369
+
370
+ ### Extending Components
371
+
372
+ ```typescript
373
+ import { Button, type ButtonProps } from 'markora-ui';
374
+
375
+ interface CustomButtonProps extends ButtonProps {
376
+ analytics?: string;
377
+ }
378
+
379
+ export function CustomButton({ analytics, ...props }: CustomButtonProps) {
380
+ return (
381
+ <Button
382
+ {...props}
383
+ onClick={(e) => {
384
+ // Track analytics
385
+ console.log('Clicked:', analytics);
386
+ props.onClick?.(e);
387
+ }}
388
+ />
389
+ );
390
+ }
391
+ ```
392
+
393
+ ### With CSS Modules
394
+
395
+ ```typescript
396
+ import styles from './page.module.css';
397
+ import { Button } from 'markora-ui';
398
+
399
+ export default function Page() {
400
+ return (
401
+ <Button variant="primary" className={styles.button}>
402
+ Styled Button
403
+ </Button>
404
+ );
405
+ }
406
+ ```
407
+
408
+ ---
409
+
410
+ ## 📦 Bundle Size
411
+
412
+ Minified and tree-shaken:
413
+
414
+ | Format | Size | Gzipped |
415
+ |--------|------|---------|
416
+ | ESM | ~45KB | ~12KB |
417
+ | CJS | ~48KB | ~13KB |
418
+ | CSS | ~8KB | ~2KB |
419
+
420
+ <details>
421
+ <summary><strong>Size breakdown by category</strong></summary>
422
+
423
+ - Form Components: ~8KB
424
+ - Buttons: ~2KB
425
+ - Data Display: ~12KB
426
+ - Navigation: ~6KB
427
+ - Overlays: ~8KB
428
+ - Effects & Templates: ~9KB
429
+
430
+ </details>
431
+
432
+ ---
433
+
434
+ ## ✅ Browser Support
435
+
436
+ | Browser | Minimum Version |
437
+ |---------|-----------------|
438
+ | Chrome | Latest |
439
+ | Firefox | Latest |
440
+ | Safari | 13+ |
441
+ | Edge | Latest |
442
+ | iOS Safari | 13+ |
443
+ | Android Chrome | 81+ |
444
+
445
+ ---
446
+
447
+ ## 🤝 Contributing
448
+
449
+ We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
450
+
451
+ ### Development
452
+
453
+ ```bash
454
+ # Install dependencies
455
+ npm install
456
+
457
+ # Start dev server
458
+ npm run dev
459
+
460
+ # Build for production
461
+ npm run build
462
+
463
+ # Run tests
464
+ npm run test
465
+
466
+ # Lint code
467
+ npm run lint
468
+
469
+ # Format code
470
+ npm run format
471
+ ```
472
+
473
+ ---
474
+
475
+ ## 📄 License
476
+
477
+ MIT © 2024 Markora UI
478
+
479
+ ---
480
+
481
+ ## 🙋 Support & Community
482
+
483
+ - 📖 [Full Documentation](https://markora-ui.dev)
484
+ - 🐛 [Report Issues](https://github.com/yourusername/markora-ui/issues)
485
+ - 💬 [Discussions](https://github.com/yourusername/markora-ui/discussions)
486
+ - 📧 Email: support@markora-ui.dev
487
+ - 🐦 Twitter: [@markora_ui](https://twitter.com/markora_ui)
488
+
489
+ ---
490
+
491
+ ## 🎉 Changelog
492
+
493
+ See [CHANGELOG.md](CHANGELOG.md) for version history and breaking changes.
494
+
495
+ ---
496
+
497
+ **Made with ❤️ by the Markora UI Team**