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.
- package/CHANGELOG.md +23 -0
- package/README.md +119 -6
- package/assets/demo-button.gif +0 -0
- package/assets/demo-hero.gif +0 -0
- package/assets/demo-presets.gif +0 -0
- package/assets/demo-spinners.gif +0 -0
- package/dist/angular/index.cjs +5 -5
- package/dist/angular/index.cjs.map +1 -1
- package/dist/angular/index.d.cts +2 -2
- package/dist/angular/index.d.ts +2 -2
- package/dist/angular/index.js +5 -5
- package/dist/angular/index.js.map +1 -1
- package/dist/{controller-Ceub9kLC.d.ts → controller-Cmc3Hp1j.d.ts} +1 -1
- package/dist/{controller-B6kFsWzi.d.cts → controller-CzNTbEGd.d.cts} +1 -1
- package/dist/element/index.cjs +14 -14
- package/dist/element/index.cjs.map +1 -1
- package/dist/element/index.js +14 -14
- package/dist/element/index.js.map +1 -1
- package/dist/index.cjs +13 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +27 -4
- package/dist/index.d.ts +27 -4
- package/dist/index.js +13 -5
- package/dist/index.js.map +1 -1
- package/dist/native/index.d.cts +1 -1
- package/dist/native/index.d.ts +1 -1
- package/dist/react/index.cjs +14 -14
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.cts +14 -2
- package/dist/react/index.d.ts +14 -2
- package/dist/react/index.js +14 -14
- package/dist/react/index.js.map +1 -1
- package/dist/svelte/index.cjs +4 -4
- package/dist/svelte/index.cjs.map +1 -1
- package/dist/svelte/index.d.cts +1 -1
- package/dist/svelte/index.d.ts +1 -1
- package/dist/svelte/index.js +4 -4
- package/dist/svelte/index.js.map +1 -1
- package/dist/themes/index.d.cts +1 -1
- package/dist/themes/index.d.ts +1 -1
- package/dist/{types-CnR-rU97.d.cts → types-D2ryMkLU.d.cts} +25 -2
- package/dist/{types-CnR-rU97.d.ts → types-D2ryMkLU.d.ts} +25 -2
- package/dist/veilkit.min.js +13 -5
- package/dist/vue/index.cjs +3 -3
- package/dist/vue/index.cjs.map +1 -1
- package/dist/vue/index.d.cts +1 -1
- package/dist/vue/index.d.ts +1 -1
- package/dist/vue/index.js +3 -3
- package/dist/vue/index.js.map +1 -1
- 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,
|
|
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
|
-
- [
|
|
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
|
-
## 🎨
|
|
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
|
-
|
|
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
|