veilkit 0.2.1 → 0.3.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.
Files changed (50) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +119 -6
  3. package/assets/demo-button.gif +0 -0
  4. package/assets/demo-hero.gif +0 -0
  5. package/assets/demo-presets.gif +0 -0
  6. package/assets/demo-spinners.gif +0 -0
  7. package/dist/angular/index.cjs +5 -5
  8. package/dist/angular/index.cjs.map +1 -1
  9. package/dist/angular/index.d.cts +2 -2
  10. package/dist/angular/index.d.ts +2 -2
  11. package/dist/angular/index.js +5 -5
  12. package/dist/angular/index.js.map +1 -1
  13. package/dist/{controller-Ceub9kLC.d.ts → controller-Cmc3Hp1j.d.ts} +1 -1
  14. package/dist/{controller-B6kFsWzi.d.cts → controller-CzNTbEGd.d.cts} +1 -1
  15. package/dist/element/index.cjs +14 -14
  16. package/dist/element/index.cjs.map +1 -1
  17. package/dist/element/index.js +14 -14
  18. package/dist/element/index.js.map +1 -1
  19. package/dist/index.cjs +13 -5
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.d.cts +27 -4
  22. package/dist/index.d.ts +27 -4
  23. package/dist/index.js +13 -5
  24. package/dist/index.js.map +1 -1
  25. package/dist/native/index.d.cts +1 -1
  26. package/dist/native/index.d.ts +1 -1
  27. package/dist/react/index.cjs +14 -14
  28. package/dist/react/index.cjs.map +1 -1
  29. package/dist/react/index.d.cts +14 -2
  30. package/dist/react/index.d.ts +14 -2
  31. package/dist/react/index.js +14 -14
  32. package/dist/react/index.js.map +1 -1
  33. package/dist/svelte/index.cjs +4 -4
  34. package/dist/svelte/index.cjs.map +1 -1
  35. package/dist/svelte/index.d.cts +1 -1
  36. package/dist/svelte/index.d.ts +1 -1
  37. package/dist/svelte/index.js +4 -4
  38. package/dist/svelte/index.js.map +1 -1
  39. package/dist/themes/index.d.cts +1 -1
  40. package/dist/themes/index.d.ts +1 -1
  41. package/dist/{types-CnR-rU97.d.cts → types-D2ryMkLU.d.cts} +25 -2
  42. package/dist/{types-CnR-rU97.d.ts → types-D2ryMkLU.d.ts} +25 -2
  43. package/dist/veilkit.min.js +13 -5
  44. package/dist/vue/index.cjs +3 -3
  45. package/dist/vue/index.cjs.map +1 -1
  46. package/dist/vue/index.d.cts +1 -1
  47. package/dist/vue/index.d.ts +1 -1
  48. package/dist/vue/index.js +3 -3
  49. package/dist/vue/index.js.map +1 -1
  50. package/package.json +2 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,29 @@ All notable changes to `veilkit` will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.3.0] - 2026-11-07
9
+
10
+ ### Added
11
+ - **Custom Skeleton Layout Builder**:
12
+ - Fluent builder class `SkeletonBuilder` for programmatic skeleton tree construction: `.card()`, `.row()`, `.col()`, `.avatar()`, `.heading()`, `.lines()`, `.button()`, `.rect()`, `.badge()`, `.toConfig()`, `.build()`, and `.toCode()`.
13
+ - Declarative DOM engine `createCustomSkeleton(config)` converting JSON layout trees into responsive, GPU-animated DOM elements.
14
+ - React `<CustomSkeleton config={...} />` component with SSR compatibility.
15
+ - Visual Custom Skeleton Studio on official website (`https://veilkit.tashanto.com/custom-builder`).
16
+ - **45 Canonical Presets** (expanded from 40):
17
+ - Added 5 new high-demand layout presets:
18
+ - `code-block`: Code editor frame with window controls, line numbers, and token lines.
19
+ - `file-explorer`: Hierarchical IDE file tree with folder icons and indented file items.
20
+ - `e-commerce-checkout`: Multi-step address/payment form with order total sidebar summary.
21
+ - `social-story`: Full-screen mobile story view with multi-segment top progress bars.
22
+ - `hero-banner`: Large centered marketing headline, subtitle, badge, and dual CTA buttons.
23
+ - **Production Website & Documentation Overhaul (`website/`)**:
24
+ - Full Next.js 16 documentation and playground website (`https://veilkit.tashanto.com`).
25
+ - Comprehensive SEO architecture: OpenGraph cards, Twitter meta, XML sitemap (`/sitemap.xml`), robots exclusion (`/robots.txt`), and AI crawler index (`/llms.txt`).
26
+ - Schema.org JSON-LD structured data (`SoftwareApplication`, `TechArticle`, `FAQPage`) targeting Google search queries.
27
+ - Deep architectural feature matrix and benchmarks comparing Veilkit vs `react-loading-skeleton`, `react-content-loader`, `nprogress`, `shadcn/ui`, and `mantine`.
28
+ - Dedicated visual catalogs for 45+ Presets (`/presets`), 30 Spinners (`/spinners`), Custom Builder (`/custom-builder`), Comparison Matrix (`/comparison`), and Documentation Hub (`/docs`).
29
+ - Interactive multi-framework code switcher (React, Vue, Svelte, Angular, Web Components, Native, CDN).
30
+
8
31
  ## [0.2.0] - 2026-11-07
9
32
 
10
33
  ### Added
package/README.md CHANGED
@@ -14,10 +14,18 @@
14
14
 
15
15
  A production-grade, zero-dependency loading & skeleton UI toolkit built for the modern web and mobile ecosystem.
16
16
  Pure GPU-accelerated motion (`transform` & `opacity`), synchronized timeline clocks, anti-flicker timing,
17
- auto-measure DOM wrapping, 40 responsive presets, 30 spinners, 30 GPU animations, 16 loading button styles, 5 shape styles, route progress, and frosted glass themes.
17
+ auto-measure DOM wrapping, 45 responsive presets, custom skeleton builder, 30 spinners, 30 GPU animations, 16 loading button styles, 5 shape styles, route progress, and frosted glass themes.
18
18
 
19
19
  [**Live Interactive Playground & Documentation → https://veilkit.tashanto.com**](https://veilkit.tashanto.com)
20
20
 
21
+ <br />
22
+
23
+ <p align="center">
24
+ <a href="https://veilkit.tashanto.com">
25
+ <img src="https://raw.githubusercontent.com/iamtashanto/veilkit/main/assets/demo-hero.gif" alt="Veilkit Loading and Skeleton Demo" width="860" style="max-width: 100%; border-radius: 12px; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.4);" />
26
+ </a>
27
+ </p>
28
+
21
29
  </div>
22
30
 
23
31
  ---
@@ -37,7 +45,8 @@ auto-measure DOM wrapping, 40 responsive presets, 30 spinners, 30 GPU animations
37
45
  - [React Native & Expo](#6-react-native--expo-veilkitnative)
38
46
  - [Electron Desktop](#7-electron-desktop)
39
47
  - [Vanilla JS & CDN](#8-vanilla-javascript--cdn)
40
- - [40 Ready-Made Presets (5 Shape Styles)](#-40-ready-made-presets)
48
+ - [45 Ready-Made Presets (5 Shape Styles)](#-45-ready-made-presets)
49
+ - [Custom Skeleton Layout Builder (Fluent API & JSON Engine)](#-custom-skeleton-layout-builder)
41
50
  - [30 GPU-Accelerated Animations](#-30-gpu-accelerated-animations)
42
51
  - [11 Built-in Themes & Custom Factory](#-11-built-in-themes--custom-theming)
43
52
  - [30 Spinner Loaders](#-30-spinner-loaders)
@@ -466,9 +475,15 @@ Drop-in UMD/IIFE bundle exporting the global `Veilkit`:
466
475
 
467
476
  ---
468
477
 
469
- ## 🎨 40 Ready-Made Presets
478
+ ## 🎨 45 Ready-Made Presets
479
+
480
+ Veilkit includes 45 canonical, responsive, customizable layout presets. Every preset supports responsive breakpoints and 5 shape styles (`rounded`, `pill`, `square`, `sharp`, `glass`).
481
+
482
+ <p align="center">
483
+ <img src="https://raw.githubusercontent.com/iamtashanto/veilkit/main/assets/demo-presets.gif" alt="Veilkit 45 Presets Demo" width="800" style="max-width: 100%; border-radius: 10px;" />
484
+ </p>
470
485
 
471
- Veilkit includes 40 canonical, responsive, customizable layout presets. Every preset supports responsive breakpoints and 5 shape styles (`rounded`, `pill`, `square`, `sharp`, `glass`).
486
+ [**Browse all 45 Presets interactively in the Presets Gallery → https://veilkit.tashanto.com/presets**](https://veilkit.tashanto.com/presets)
472
487
 
473
488
  ### Shape Styles (`shape`)
474
489
  - `rounded`: Default modern rounded corners (`8px` radius).
@@ -483,15 +498,103 @@ Veilkit includes 40 canonical, responsive, customizable layout presets. Every pr
483
498
 
484
499
  | Category | Presets |
485
500
  | :--- | :--- |
486
- | **Cards & Content** | `card`, `product-card`, `product-grid`, `product-detail`, `feed-post`, `article`, `news-feed`, `media-card`, `map-card`, `pricing-card`, `testimonial` |
487
- | **User & Social** | `profile`, `profile-header`, `stories-row`, `reels`, `comment-thread`, `chat` |
501
+ | **Cards & Content** | `card`, `product-card`, `product-grid`, `product-detail`, `e-commerce-checkout`, `feed-post`, `article`, `news-feed`, `media-card`, `map-card`, `pricing-card`, `testimonial`, `hero-banner` |
502
+ | **User & Social** | `profile`, `profile-header`, `stories-row`, `reels`, `social-story`, `comment-thread`, `chat` |
488
503
  | **Dashboard & Data** | `dashboard`, `kpi-card`, `chart-bar`, `chart-line`, `chart-pie`, `kanban`, `timeline`, `calendar`, `table` |
489
504
  | **Lists & Feeds** | `list`, `list-item`, `inbox-list`, `notification-list`, `order-list`, `search-results` |
505
+ | **Developer & Code** | `code-block`, `file-explorer` |
490
506
  | **Forms & Navigation**| `form`, `navbar`, `sidebar`, `tabs`, `settings-page`, `faq-accordion` |
491
507
  | **Media Players** | `video-player`, `music-player` |
492
508
 
493
509
  ---
494
510
 
511
+ ## 🧩 Custom Skeleton Layout Builder
512
+
513
+ Need a skeleton that matches your exact custom website layout? Veilkit provides a fluent builder API and declarative JSON engine, plus an interactive visual builder studio on our website.
514
+
515
+ [**Try the Visual Custom Skeleton Studio → https://veilkit.tashanto.com/custom-builder**](https://veilkit.tashanto.com/custom-builder)
516
+
517
+ ### 1. Fluent Builder API (`SkeletonBuilder`)
518
+ Build modular layouts using method chaining with full TypeScript auto-completion:
519
+
520
+ ```typescript
521
+ import { SkeletonBuilder } from 'veilkit';
522
+
523
+ // Construct custom skeleton tree
524
+ const skeleton = new SkeletonBuilder({
525
+ animation: 'shimmer',
526
+ shape: 'rounded',
527
+ theme: 'dark'
528
+ })
529
+ .card((card) => {
530
+ // Top row with user avatar & meta
531
+ card.row((row) => {
532
+ row.avatar(48);
533
+ row.col((col) => {
534
+ col.heading('65%');
535
+ col.lines(2);
536
+ });
537
+ row.badge(60, 24);
538
+ });
539
+
540
+ // Content media banner
541
+ card.rect('100%', 160);
542
+
543
+ // Bottom action row
544
+ card.row((row) => {
545
+ row.button(110, 36);
546
+ row.button(80, 36);
547
+ });
548
+ })
549
+ .build(); // Returns a ready-to-mount HTMLDivElement
550
+
551
+ document.getElementById('my-app').appendChild(skeleton);
552
+ ```
553
+
554
+ ### 2. React `<CustomSkeleton />` Component
555
+ Pass your custom tree structure directly to the React component:
556
+
557
+ ```tsx
558
+ import { CustomSkeleton, SkeletonBuilder } from 'veilkit/react';
559
+
560
+ const config = new SkeletonBuilder({ shape: 'glass', animation: 'aurora' })
561
+ .row((r) => {
562
+ r.avatar(52);
563
+ r.col((c) => {
564
+ c.heading('75%');
565
+ c.lines(3);
566
+ });
567
+ })
568
+ .toConfig();
569
+
570
+ export function MyCustomLoader() {
571
+ return <CustomSkeleton config={config} />;
572
+ }
573
+ ```
574
+
575
+ ### 3. Declarative JSON Schema (`createCustomSkeleton`)
576
+ Or define layouts as clean, serializable JSON configs (ideal for sharing across micro-frontends):
577
+
578
+ ```typescript
579
+ import { createCustomSkeleton } from 'veilkit';
580
+
581
+ const element = createCustomSkeleton({
582
+ shape: 'rounded',
583
+ animation: 'wave',
584
+ root: {
585
+ type: 'card',
586
+ children: [
587
+ { type: 'avatar', size: 48 },
588
+ { type: 'heading', width: '80%', height: 24 },
589
+ { type: 'lines', count: 3 },
590
+ { type: 'button', width: 120, height: 38 }
591
+ ]
592
+ }
593
+ });
594
+ ```
595
+
596
+ ---
597
+
495
598
  ## ✨ 30 GPU-Accelerated Animations
496
599
 
497
600
  All animations strictly use `transform` and `opacity` to eliminate layout thrashing:
@@ -567,6 +670,12 @@ createTheme({
567
670
 
568
671
  All 30 spinners are GPU-accelerated, scalable via `size` and `color`, and support `glass` frosted blur variants and custom `speed`:
569
672
 
673
+ <p align="center">
674
+ <img src="https://raw.githubusercontent.com/iamtashanto/veilkit/main/assets/demo-spinners.gif" alt="Veilkit 30 Spinners Demo" width="800" style="max-width: 100%; border-radius: 10px;" />
675
+ </p>
676
+
677
+ [**Explore all 30 Spinners interactively in the Spinners Catalog → https://veilkit.tashanto.com/spinners**](https://veilkit.tashanto.com/spinners)
678
+
570
679
  `ring` • `dual-ring` • `dots` • `bars` • `pulse` • `orbit` • `wave` • `bounce` • `ios-activity` • `glass-orb` • `morph` • `progress-circle` • `arc-gradient` • `pulse-ring` • `dots-circle` • `grid-dots` • `square-flip` • `cube-fold` • `hourglass` • `infinity` • `heartbeat-line` • `equalizer` • `chasing-dots` • `typing` • `liquid-fill` • `atom` • `clock` • `radar` • `ellipsis` • `flower`
571
680
 
572
681
  ```tsx
@@ -581,6 +690,10 @@ All 30 spinners are GPU-accelerated, scalable via `size` and `color`, and suppor
581
690
 
582
691
  Veilkit includes a comprehensive loading button with state machine transitions, 16 loading styles, result animations, press feedback, and native haptics:
583
692
 
693
+ <p align="center">
694
+ <img src="https://raw.githubusercontent.com/iamtashanto/veilkit/main/assets/demo-button.gif" alt="Veilkit Loading Button Demo" width="800" style="max-width: 100%; border-radius: 10px;" />
695
+ </p>
696
+
584
697
  - **State Machine**: `idle → loading → success | error → idle`. Automatically handles async promises or explicit `status` prop (`idle`, `loading`, `success`, `error`).
585
698
  - **Auto-Reset**: Configurable `resetAfter` (default: 2000ms) resets success/error state back to idle.
586
699
  - **Double-Click Protection**: Clicks are safely ignored while non-idle.
Binary file
Binary file
Binary file
Binary file