@whykusanagi/corrupted-theme 0.1.1 → 0.1.2
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 +120 -0
- package/README.md +91 -7
- package/docs/COMPONENTS_REFERENCE.md +295 -8
- package/examples/assets/celeste-avatar.png +0 -0
- package/examples/button.html +21 -9
- package/examples/card.html +21 -8
- package/examples/extensions-showcase.html +716 -0
- package/examples/form.html +21 -8
- package/examples/index.html +619 -396
- package/examples/layout.html +21 -7
- package/examples/nikke-team-builder.html +22 -8
- package/examples/showcase-complete.html +44 -13
- package/examples/showcase.html +20 -7
- package/package.json +12 -5
- package/src/css/extensions.css +933 -0
- package/src/css/theme.css +6 -74
- package/src/css/typography.css +5 -0
- package/src/lib/countdown-widget.js +609 -0
- package/src/lib/gallery.js +481 -0
package/CHANGELOG.md
CHANGED
|
@@ -21,6 +21,126 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
21
21
|
|
|
22
22
|
---
|
|
23
23
|
|
|
24
|
+
## [0.1.2] - 2025-11-26
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
|
|
28
|
+
#### Extension Components (`src/css/extensions.css`)
|
|
29
|
+
Production-tested components from whykusanagi.xyz, now part of the core package:
|
|
30
|
+
|
|
31
|
+
- **Gallery System**
|
|
32
|
+
- `.gallery-container` - Responsive grid layout with variants (compact, large)
|
|
33
|
+
- `.gallery-item` - Image cards with aspect ratio options (square, portrait, landscape)
|
|
34
|
+
- `.filter-bar` and `.filter-btn` - Category filtering with animated transitions
|
|
35
|
+
- `gallery.js` - JavaScript module for filtering, lightbox, and NSFW handling
|
|
36
|
+
|
|
37
|
+
- **Lightbox Component**
|
|
38
|
+
- `.lightbox` - Fullscreen image viewer overlay
|
|
39
|
+
- `.lightbox-image`, `.lightbox-close`, `.lightbox-prev`, `.lightbox-next`
|
|
40
|
+
- `.lightbox-caption`, `.lightbox-counter`
|
|
41
|
+
- Keyboard navigation (Arrow keys, Escape)
|
|
42
|
+
- Touch gesture support for mobile
|
|
43
|
+
|
|
44
|
+
- **NSFW Content Blur**
|
|
45
|
+
- `.nsfw-content` - Click-to-reveal blur overlay
|
|
46
|
+
- Custom warning text via `data-warning` attribute
|
|
47
|
+
- `.revealed` state for toggling visibility
|
|
48
|
+
- Auto-reveal in lightbox mode
|
|
49
|
+
|
|
50
|
+
- **Social Links List**
|
|
51
|
+
- `.social-links-container` - Link-in-bio layout
|
|
52
|
+
- `.profile-avatar` - Circular avatar with glow (sm, default, lg sizes)
|
|
53
|
+
- `.profile-name`, `.profile-bio` - Profile text components
|
|
54
|
+
- `.link-list`, `.link-item` - Styled link buttons
|
|
55
|
+
- Platform-specific hover colors (twitter, instagram, youtube, github, discord, twitch)
|
|
56
|
+
|
|
57
|
+
- **Countdown Widget**
|
|
58
|
+
- `.countdown-container`, `.shape-container` - Event countdown layout
|
|
59
|
+
- Shape variants: diamond, circle, heart, star, hexagon, octagon
|
|
60
|
+
- `.countdown-box`, `.countdown-timer` - Timer display
|
|
61
|
+
- `.countdown-popup` - Animated popup messages
|
|
62
|
+
- `.countdown-character`, `.countdown-overlay-wrapper` - Image support
|
|
63
|
+
- `countdown-widget.js` - JavaScript module with JSON config support
|
|
64
|
+
|
|
65
|
+
#### New JavaScript Modules (`src/lib/`)
|
|
66
|
+
- `gallery.js` - Gallery system with filtering, lightbox, and NSFW handling
|
|
67
|
+
- `countdown-widget.js` - Countdown widget with JSON configuration
|
|
68
|
+
|
|
69
|
+
#### New Package Exports
|
|
70
|
+
```javascript
|
|
71
|
+
'@whykusanagi/corrupted-theme/extensions' // extensions.css
|
|
72
|
+
'@whykusanagi/corrupted-theme/gallery' // gallery.js
|
|
73
|
+
'@whykusanagi/corrupted-theme/countdown' // countdown-widget.js
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
#### Example Pages
|
|
77
|
+
- `examples/extensions-showcase.html` - Interactive demo for all extension components
|
|
78
|
+
- `examples/index.html` - Central landing hub for the design system with categorized navigation
|
|
79
|
+
- `examples/assets/celeste-avatar.png` - Local avatar image for demos
|
|
80
|
+
|
|
81
|
+
#### Design System Architecture
|
|
82
|
+
- **Central Landing Hub** (`examples/index.html`)
|
|
83
|
+
- Hero section with quick install instructions
|
|
84
|
+
- Categorized cards linking to Core Components, Extensions, Glass Components, API Docs, Nikke, Animations
|
|
85
|
+
- Quick links for common component pages
|
|
86
|
+
- Professional Netflix/Meta-level information architecture
|
|
87
|
+
|
|
88
|
+
- **Global Navigation System**
|
|
89
|
+
- Consistent navigation bar across all 9 example pages
|
|
90
|
+
- Home, Components (dropdown), Extensions (dropdown), Examples (dropdown), Docs links
|
|
91
|
+
- Section anchors in dropdowns for quick navigation
|
|
92
|
+
- Proper active state highlighting
|
|
93
|
+
|
|
94
|
+
### Fixed
|
|
95
|
+
|
|
96
|
+
#### Chrome White Background Flash
|
|
97
|
+
- **Added:** `background-color: var(--bg)` to both `html` and `body` in `typography.css`
|
|
98
|
+
- **Why:** Chrome browsers showed white flash before CSS variables loaded
|
|
99
|
+
- **Impact:** Consistent dark background across all browsers immediately on load
|
|
100
|
+
|
|
101
|
+
#### Navigation Consistency
|
|
102
|
+
- **Updated:** All 9 example pages now have identical global navigation
|
|
103
|
+
- **Why:** Some pages (button.html, card.html, form.html, layout.html) had minimal "Back" links only
|
|
104
|
+
- **Impact:** Users can navigate the entire design system from any page
|
|
105
|
+
|
|
106
|
+
#### Dead Links Fixed
|
|
107
|
+
- **Fixed:** "Customization" links pointed to non-existent `CUSTOMIZATION.md`
|
|
108
|
+
- **Changed to:** `COMPONENTS_REFERENCE.md#customization`
|
|
109
|
+
- **Fixed:** Backgrounds section link added to Components dropdown
|
|
110
|
+
|
|
111
|
+
#### Image Hotlinking
|
|
112
|
+
- **Removed:** All Unsplash hotlinks (9 instances)
|
|
113
|
+
- **Replaced with:** Local `assets/celeste-avatar.png` and `placehold.co` placeholders
|
|
114
|
+
- **Why:** External hotlinks may break, cause CORS issues, or violate terms
|
|
115
|
+
- **Impact:** All demo images load reliably in any environment
|
|
116
|
+
|
|
117
|
+
### Changed
|
|
118
|
+
|
|
119
|
+
#### Documentation Updates
|
|
120
|
+
- **README.md** - Added "Extension Components" section with usage examples
|
|
121
|
+
- **COMPONENTS_REFERENCE.md** - Added full documentation for all extension components
|
|
122
|
+
- Updated table of contents in both files
|
|
123
|
+
|
|
124
|
+
#### CSS Architecture
|
|
125
|
+
- `theme.css` now imports `extensions.css` automatically
|
|
126
|
+
- Cleaned up duplicate NSFW styles (now in extensions.css only)
|
|
127
|
+
- Added explicit background color to `html` element for faster paint
|
|
128
|
+
|
|
129
|
+
#### Example Page Updates
|
|
130
|
+
- All example pages updated with consistent global navigation
|
|
131
|
+
- `showcase-complete.html` - Added `id="backgrounds"` anchor and dropdown link
|
|
132
|
+
- `index.html` - Transformed into design system landing hub
|
|
133
|
+
- Layouts page added to Examples dropdown across all pages
|
|
134
|
+
|
|
135
|
+
### Files Added
|
|
136
|
+
- `src/css/extensions.css`
|
|
137
|
+
- `src/lib/gallery.js`
|
|
138
|
+
- `src/lib/countdown-widget.js`
|
|
139
|
+
- `examples/extensions-showcase.html`
|
|
140
|
+
- `examples/assets/celeste-avatar.png`
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
24
144
|
## [0.1.1] - 2025-11-26
|
|
25
145
|
|
|
26
146
|
### Fixed
|
package/README.md
CHANGED
|
@@ -11,13 +11,14 @@ A production-ready glassmorphic design system for cinematic, cyberpunk-inspired
|
|
|
11
11
|
6. [Component Quick Reference](#component-quick-reference)
|
|
12
12
|
7. [Animations & Experience Layer](#animations--experience-layer)
|
|
13
13
|
8. [Nikke Utilities](#nikke-utilities)
|
|
14
|
-
9. [
|
|
15
|
-
10. [
|
|
16
|
-
11. [
|
|
17
|
-
12. [
|
|
18
|
-
13. [
|
|
19
|
-
14. [
|
|
20
|
-
15. [
|
|
14
|
+
9. [Extension Components](#extension-components)
|
|
15
|
+
10. [Customization & Tokens](#customization--tokens)
|
|
16
|
+
11. [Coding Standards](#coding-standards)
|
|
17
|
+
12. [Development Workflow](#development-workflow)
|
|
18
|
+
13. [Testing & QA Expectations](#testing--qa-expectations)
|
|
19
|
+
14. [Support](#support)
|
|
20
|
+
15. [Celeste Widget Integration](#celeste-widget-integration-optional)
|
|
21
|
+
16. [License](#license)
|
|
21
22
|
|
|
22
23
|
## Overview
|
|
23
24
|
- **Glassmorphism-first** visual language with layered depth, gradients, and scanlines.
|
|
@@ -403,6 +404,89 @@ Class | Behavior
|
|
|
403
404
|
```
|
|
404
405
|
All Nikke-specific helpers live alongside the main utilities (`src/css/nikke-utilities.css`) and observe the same token set, so there are no visual disconnects between game-specific and general UI.
|
|
405
406
|
|
|
407
|
+
## Extension Components
|
|
408
|
+
|
|
409
|
+
Production-tested components from whykusanagi.xyz for galleries, social links, countdowns, and more. All extension styles are included in `theme.css` or can be imported separately via `extensions.css`.
|
|
410
|
+
|
|
411
|
+
### Gallery System
|
|
412
|
+
|
|
413
|
+
Responsive gallery grid with filtering, lightbox, and NSFW content support.
|
|
414
|
+
|
|
415
|
+
```html
|
|
416
|
+
<div class="filter-bar">
|
|
417
|
+
<button class="filter-btn active" data-filter="all">All</button>
|
|
418
|
+
<button class="filter-btn" data-filter="photos">Photos</button>
|
|
419
|
+
</div>
|
|
420
|
+
|
|
421
|
+
<div class="gallery-container" id="my-gallery">
|
|
422
|
+
<div class="gallery-item" data-tags="photos">
|
|
423
|
+
<img src="image.jpg" alt="Description">
|
|
424
|
+
<div class="gallery-caption">Caption text</div>
|
|
425
|
+
</div>
|
|
426
|
+
</div>
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
```javascript
|
|
430
|
+
import { initGallery } from '@whykusanagi/corrupted-theme/gallery';
|
|
431
|
+
|
|
432
|
+
const gallery = initGallery('#my-gallery', {
|
|
433
|
+
enableLightbox: true,
|
|
434
|
+
enableNsfw: true,
|
|
435
|
+
filterAnimation: true
|
|
436
|
+
});
|
|
437
|
+
|
|
438
|
+
gallery.filter('photos'); // Filter by category
|
|
439
|
+
gallery.openLightbox(0); // Open first image
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
### Social Links List
|
|
443
|
+
|
|
444
|
+
Link-in-bio style layout with branded platform colors.
|
|
445
|
+
|
|
446
|
+
```html
|
|
447
|
+
<div class="social-links-container">
|
|
448
|
+
<img src="avatar.jpg" class="profile-avatar">
|
|
449
|
+
<h1 class="profile-name">@username</h1>
|
|
450
|
+
<p class="profile-bio">Your bio here</p>
|
|
451
|
+
<div class="link-list">
|
|
452
|
+
<a href="#" class="link-item twitter"><i class="fab fa-twitter"></i> Twitter</a>
|
|
453
|
+
<a href="#" class="link-item github"><i class="fab fa-github"></i> GitHub</a>
|
|
454
|
+
</div>
|
|
455
|
+
</div>
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
### Countdown Widget
|
|
459
|
+
|
|
460
|
+
Event countdown with configurable shapes (diamond, circle, heart, star, hexagon, octagon).
|
|
461
|
+
|
|
462
|
+
```javascript
|
|
463
|
+
import { initCountdown } from '@whykusanagi/corrupted-theme/countdown';
|
|
464
|
+
|
|
465
|
+
initCountdown({
|
|
466
|
+
config: {
|
|
467
|
+
title: 'Launch Countdown',
|
|
468
|
+
eventDate: '2025-04-01T00:00:00-07:00',
|
|
469
|
+
completedMessage: 'Now Live!',
|
|
470
|
+
character: {
|
|
471
|
+
image: 'character.png',
|
|
472
|
+
background: { type: 'diamond' }
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
});
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
### NSFW Content Blur
|
|
479
|
+
|
|
480
|
+
Click-to-reveal overlay for sensitive content.
|
|
481
|
+
|
|
482
|
+
```html
|
|
483
|
+
<div class="gallery-item nsfw-content" data-warning="18+ Click to View">
|
|
484
|
+
<img src="sensitive-image.jpg" alt="Description">
|
|
485
|
+
</div>
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
See `examples/extensions-showcase.html` for interactive demos and `docs/COMPONENTS_REFERENCE.md` for complete API documentation.
|
|
489
|
+
|
|
406
490
|
## Customization & Tokens
|
|
407
491
|
Override only the tokens you need. The defaults intentionally mirror the showcase.
|
|
408
492
|
```css
|
|
@@ -17,6 +17,12 @@ This document provides a comprehensive reference for all components available in
|
|
|
17
17
|
6. [API Documentation](#api-documentation)
|
|
18
18
|
7. [Nikke Components](#nikke-components)
|
|
19
19
|
8. [Background & Images](#background--images)
|
|
20
|
+
9. [Extension Components](#extension-components)
|
|
21
|
+
- [Gallery System](#gallery-system)
|
|
22
|
+
- [Lightbox](#lightbox)
|
|
23
|
+
- [NSFW Content Blur](#nsfw-content-blur)
|
|
24
|
+
- [Social Links List](#social-links-list)
|
|
25
|
+
- [Countdown Widget](#countdown-widget)
|
|
20
26
|
|
|
21
27
|
---
|
|
22
28
|
|
|
@@ -445,7 +451,7 @@ Complete API documentation components for building readable API docs.
|
|
|
445
451
|
|
|
446
452
|
## Nikke Components
|
|
447
453
|
|
|
448
|
-
Game-specific components for Nikke applications.
|
|
454
|
+
Game-specific components for Nikke applications.
|
|
449
455
|
|
|
450
456
|
### Element Badges
|
|
451
457
|
|
|
@@ -632,7 +638,7 @@ All components follow accessibility best practices:
|
|
|
632
638
|
|
|
633
639
|
## Customization
|
|
634
640
|
|
|
635
|
-
All components use CSS variables for easy customization. See
|
|
641
|
+
All components use CSS variables for easy customization. See `src/css/variables.css` for the complete variable list.
|
|
636
642
|
|
|
637
643
|
```css
|
|
638
644
|
:root {
|
|
@@ -644,16 +650,297 @@ All components use CSS variables for easy customization. See [VARIABLES_REFERENC
|
|
|
644
650
|
|
|
645
651
|
---
|
|
646
652
|
|
|
653
|
+
## Extension Components
|
|
654
|
+
|
|
655
|
+
Production-tested components from whykusanagi.xyz for galleries, social links, countdowns, and more. Import via `extensions.css` (included in `theme.css`) or individually.
|
|
656
|
+
|
|
657
|
+
### Gallery System
|
|
658
|
+
|
|
659
|
+
Responsive gallery grid with filtering and lightbox integration.
|
|
660
|
+
|
|
661
|
+
**Filter Bar:**
|
|
662
|
+
```html
|
|
663
|
+
<div class="filter-bar">
|
|
664
|
+
<button class="filter-btn active" data-filter="all">All</button>
|
|
665
|
+
<button class="filter-btn" data-filter="photos">Photos</button>
|
|
666
|
+
<button class="filter-btn" data-filter="art">Art</button>
|
|
667
|
+
</div>
|
|
668
|
+
```
|
|
669
|
+
|
|
670
|
+
**Gallery Container:**
|
|
671
|
+
```html
|
|
672
|
+
<div class="gallery-container" id="my-gallery">
|
|
673
|
+
<div class="gallery-item" data-tags="photos">
|
|
674
|
+
<img src="image.jpg" alt="Description">
|
|
675
|
+
<div class="gallery-caption">
|
|
676
|
+
<div class="title">Image Title</div>
|
|
677
|
+
<div class="meta">Category • Date</div>
|
|
678
|
+
</div>
|
|
679
|
+
</div>
|
|
680
|
+
</div>
|
|
681
|
+
```
|
|
682
|
+
|
|
683
|
+
**Variants:**
|
|
684
|
+
- `.gallery-container.compact` - Smaller grid items (200px min)
|
|
685
|
+
- `.gallery-container.large` - Larger grid items (350px min)
|
|
686
|
+
- `.gallery-item.square` - 1:1 aspect ratio
|
|
687
|
+
- `.gallery-item.portrait` - 3:4 aspect ratio
|
|
688
|
+
- `.gallery-item.landscape` - 16:9 aspect ratio
|
|
689
|
+
- `.filter-bar.left` - Left-aligned filters
|
|
690
|
+
- `.filter-bar.right` - Right-aligned filters
|
|
691
|
+
|
|
692
|
+
**JavaScript Integration:**
|
|
693
|
+
```javascript
|
|
694
|
+
import { initGallery } from '@whykusanagi/corrupted-theme/gallery';
|
|
695
|
+
|
|
696
|
+
const gallery = initGallery('#my-gallery', {
|
|
697
|
+
filterBarSelector: '.filter-bar .filter-btn',
|
|
698
|
+
enableLightbox: true,
|
|
699
|
+
enableNsfw: true,
|
|
700
|
+
filterAnimation: true,
|
|
701
|
+
onFilter: (filter) => console.log('Filtered:', filter)
|
|
702
|
+
});
|
|
703
|
+
|
|
704
|
+
// Manual filter
|
|
705
|
+
gallery.filter('photos');
|
|
706
|
+
```
|
|
707
|
+
|
|
708
|
+
---
|
|
709
|
+
|
|
710
|
+
### Lightbox
|
|
711
|
+
|
|
712
|
+
Fullscreen image viewer with keyboard navigation and touch gestures.
|
|
713
|
+
|
|
714
|
+
```html
|
|
715
|
+
<!-- Lightbox is auto-created by gallery.js -->
|
|
716
|
+
<!-- Manual creation (if needed): -->
|
|
717
|
+
<div class="lightbox" id="my-lightbox">
|
|
718
|
+
<button class="lightbox-close">×</button>
|
|
719
|
+
<button class="lightbox-prev"><i class="fas fa-chevron-left"></i></button>
|
|
720
|
+
<img class="lightbox-image" src="" alt="">
|
|
721
|
+
<button class="lightbox-next"><i class="fas fa-chevron-right"></i></button>
|
|
722
|
+
<div class="lightbox-caption"></div>
|
|
723
|
+
<div class="lightbox-counter"></div>
|
|
724
|
+
</div>
|
|
725
|
+
```
|
|
726
|
+
|
|
727
|
+
**Features:**
|
|
728
|
+
- Keyboard navigation (Arrow keys, Escape)
|
|
729
|
+
- Touch swipe gestures on mobile
|
|
730
|
+
- Click outside to close
|
|
731
|
+
- Image counter display
|
|
732
|
+
- Automatic caption display
|
|
733
|
+
|
|
734
|
+
**JavaScript API:**
|
|
735
|
+
```javascript
|
|
736
|
+
const gallery = initGallery('#gallery');
|
|
737
|
+
|
|
738
|
+
// Open specific image
|
|
739
|
+
gallery.openLightbox(0);
|
|
740
|
+
|
|
741
|
+
// Close lightbox
|
|
742
|
+
gallery.closeLightbox();
|
|
743
|
+
```
|
|
744
|
+
|
|
745
|
+
---
|
|
746
|
+
|
|
747
|
+
### NSFW Content Blur
|
|
748
|
+
|
|
749
|
+
Content warning overlay with click-to-reveal functionality.
|
|
750
|
+
|
|
751
|
+
```html
|
|
752
|
+
<!-- Default warning text -->
|
|
753
|
+
<div class="gallery-item nsfw-content">
|
|
754
|
+
<img src="sensitive-image.jpg" alt="Description">
|
|
755
|
+
</div>
|
|
756
|
+
|
|
757
|
+
<!-- Custom warning text -->
|
|
758
|
+
<div class="gallery-item nsfw-content" data-warning="Sensitive Content">
|
|
759
|
+
<img src="image.jpg" alt="Description">
|
|
760
|
+
</div>
|
|
761
|
+
```
|
|
762
|
+
|
|
763
|
+
**States:**
|
|
764
|
+
- Default: Blurred with "18+ Click to View" overlay
|
|
765
|
+
- `.revealed`: Blur removed, overlay hidden
|
|
766
|
+
|
|
767
|
+
**JavaScript API:**
|
|
768
|
+
```javascript
|
|
769
|
+
const gallery = initGallery('#gallery', {
|
|
770
|
+
enableNsfw: true,
|
|
771
|
+
nsfwWarning: 'Click to View',
|
|
772
|
+
onNsfwReveal: (element) => console.log('Revealed:', element)
|
|
773
|
+
});
|
|
774
|
+
|
|
775
|
+
// Manual reveal
|
|
776
|
+
gallery.revealNsfw(element);
|
|
777
|
+
```
|
|
778
|
+
|
|
779
|
+
---
|
|
780
|
+
|
|
781
|
+
### Social Links List
|
|
782
|
+
|
|
783
|
+
Link-in-bio style layout for social profiles.
|
|
784
|
+
|
|
785
|
+
```html
|
|
786
|
+
<div class="social-links-container">
|
|
787
|
+
<img src="avatar.jpg" alt="Profile" class="profile-avatar">
|
|
788
|
+
<h1 class="profile-name">@username</h1>
|
|
789
|
+
<p class="profile-bio">Your bio text here.</p>
|
|
790
|
+
|
|
791
|
+
<div class="link-list">
|
|
792
|
+
<!-- Platform-specific hover colors -->
|
|
793
|
+
<a href="#" class="link-item twitter">
|
|
794
|
+
<i class="fab fa-twitter"></i> Twitter
|
|
795
|
+
</a>
|
|
796
|
+
<a href="#" class="link-item instagram">
|
|
797
|
+
<i class="fab fa-instagram"></i> Instagram
|
|
798
|
+
</a>
|
|
799
|
+
<a href="#" class="link-item youtube">
|
|
800
|
+
<i class="fab fa-youtube"></i> YouTube
|
|
801
|
+
</a>
|
|
802
|
+
<a href="#" class="link-item github">
|
|
803
|
+
<i class="fab fa-github"></i> GitHub
|
|
804
|
+
</a>
|
|
805
|
+
<a href="#" class="link-item discord">
|
|
806
|
+
<i class="fab fa-discord"></i> Discord
|
|
807
|
+
</a>
|
|
808
|
+
<a href="#" class="link-item twitch">
|
|
809
|
+
<i class="fab fa-twitch"></i> Twitch
|
|
810
|
+
</a>
|
|
811
|
+
<!-- Default accent color -->
|
|
812
|
+
<a href="#" class="link-item">
|
|
813
|
+
<i class="fas fa-globe"></i> Website
|
|
814
|
+
</a>
|
|
815
|
+
</div>
|
|
816
|
+
</div>
|
|
817
|
+
```
|
|
818
|
+
|
|
819
|
+
**Avatar Sizes:**
|
|
820
|
+
- `.profile-avatar.sm` - 100px diameter
|
|
821
|
+
- `.profile-avatar` - 140px diameter (default)
|
|
822
|
+
- `.profile-avatar.lg` - 180px diameter
|
|
823
|
+
|
|
824
|
+
**Platform Classes:**
|
|
825
|
+
Each platform class applies branded hover colors:
|
|
826
|
+
- `.twitter` - Twitter blue
|
|
827
|
+
- `.instagram` - Instagram gradient
|
|
828
|
+
- `.youtube` - YouTube red
|
|
829
|
+
- `.github` - GitHub dark
|
|
830
|
+
- `.discord` - Discord purple
|
|
831
|
+
- `.twitch` - Twitch purple
|
|
832
|
+
|
|
833
|
+
---
|
|
834
|
+
|
|
835
|
+
### Countdown Widget
|
|
836
|
+
|
|
837
|
+
Event countdown with configurable shapes and animations.
|
|
838
|
+
|
|
839
|
+
**HTML Container:**
|
|
840
|
+
```html
|
|
841
|
+
<div id="countdown-widget"></div>
|
|
842
|
+
```
|
|
843
|
+
|
|
844
|
+
**JavaScript Initialization:**
|
|
845
|
+
```javascript
|
|
846
|
+
import { initCountdown } from '@whykusanagi/corrupted-theme/countdown';
|
|
847
|
+
|
|
848
|
+
// Inline configuration
|
|
849
|
+
initCountdown({
|
|
850
|
+
config: {
|
|
851
|
+
title: 'Product Launch',
|
|
852
|
+
eventDate: '2025-04-01T00:00:00-07:00',
|
|
853
|
+
completedMessage: 'Now Available!',
|
|
854
|
+
character: {
|
|
855
|
+
image: 'character.png',
|
|
856
|
+
rotation: 0,
|
|
857
|
+
background: {
|
|
858
|
+
type: 'diamond',
|
|
859
|
+
color: 'radial-gradient(circle, rgba(54, 83, 161, 0.6), rgba(217, 79, 144, 0.6))',
|
|
860
|
+
borderColor: '#4c2967'
|
|
861
|
+
},
|
|
862
|
+
overlay: {
|
|
863
|
+
image: 'overlay.png',
|
|
864
|
+
position: 'behind',
|
|
865
|
+
animation: 'float'
|
|
866
|
+
}
|
|
867
|
+
},
|
|
868
|
+
popup: {
|
|
869
|
+
message: '<strong>Pre-order now!</strong>',
|
|
870
|
+
frequency: 15000,
|
|
871
|
+
duration: 5000
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
});
|
|
875
|
+
|
|
876
|
+
// Or load from JSON via URL parameter
|
|
877
|
+
// Access: page.html?event=kirara loads /data/countdown/kirara.json
|
|
878
|
+
initCountdown();
|
|
879
|
+
```
|
|
880
|
+
|
|
881
|
+
**Shape Types:**
|
|
882
|
+
- `diamond` - Rotated square (default)
|
|
883
|
+
- `circle` - Round container
|
|
884
|
+
- `heart` - Heart shape
|
|
885
|
+
- `star` - 5-point star
|
|
886
|
+
- `hexagon` - 6-sided polygon
|
|
887
|
+
- `octagon` - 8-sided polygon
|
|
888
|
+
|
|
889
|
+
**Configuration Schema:**
|
|
890
|
+
```javascript
|
|
891
|
+
{
|
|
892
|
+
title: string, // Display title
|
|
893
|
+
eventDate: string, // ISO 8601 date
|
|
894
|
+
completedMessage: string, // Message when countdown ends
|
|
895
|
+
character: {
|
|
896
|
+
image: string, // Image URL
|
|
897
|
+
rotation: number, // Degrees (0-360)
|
|
898
|
+
objectPosition: string, // CSS object-position
|
|
899
|
+
background: {
|
|
900
|
+
type: string, // Shape type
|
|
901
|
+
color: string, // CSS background
|
|
902
|
+
borderColor: string // Hex color
|
|
903
|
+
},
|
|
904
|
+
overlay: {
|
|
905
|
+
image: string, // Overlay image URL
|
|
906
|
+
position: 'behind'|'front',
|
|
907
|
+
animation: 'float'|null,
|
|
908
|
+
rotation: number
|
|
909
|
+
}
|
|
910
|
+
},
|
|
911
|
+
popup: {
|
|
912
|
+
message: string, // HTML content
|
|
913
|
+
frequency: number, // Ms between popups
|
|
914
|
+
duration: number, // Ms popup visible
|
|
915
|
+
colors: {
|
|
916
|
+
bg: string,
|
|
917
|
+
border: string,
|
|
918
|
+
text: string
|
|
919
|
+
}
|
|
920
|
+
}
|
|
921
|
+
}
|
|
922
|
+
```
|
|
923
|
+
|
|
924
|
+
**CSS Classes:**
|
|
925
|
+
- `.countdown-container` - Main wrapper (600×600px)
|
|
926
|
+
- `.shape-container` - Shape wrapper (375×375px)
|
|
927
|
+
- `.shape-container.diamond|circle|heart|star|hexagon|octagon`
|
|
928
|
+
- `.countdown-box` - Timer display
|
|
929
|
+
- `.countdown-popup` - Popup message
|
|
930
|
+
- `.countdown-character` - Character image
|
|
931
|
+
- `.countdown-overlay-wrapper` - Overlay container
|
|
932
|
+
|
|
933
|
+
---
|
|
934
|
+
|
|
647
935
|
## Related Documentation
|
|
648
936
|
|
|
649
|
-
- [
|
|
650
|
-
- [
|
|
651
|
-
- [
|
|
652
|
-
- [ACCESSIBILITY.md](./ACCESSIBILITY.md) - Accessibility standards
|
|
937
|
+
- [README.md](../README.md) - Main documentation and quick start guide
|
|
938
|
+
- [Variables Reference](#customization) - CSS variables for customization (see Customization section above)
|
|
939
|
+
- [Nikke Components](#nikke-components) - Game-specific components (see section above)
|
|
653
940
|
|
|
654
941
|
---
|
|
655
942
|
|
|
656
|
-
**Last Updated:** 2025-11-
|
|
657
|
-
**Version:** 1.
|
|
943
|
+
**Last Updated:** 2025-11-26
|
|
944
|
+
**Version:** 1.1
|
|
658
945
|
**Status:** Complete and Production Ready
|
|
659
946
|
|
|
Binary file
|
package/examples/button.html
CHANGED
|
@@ -116,17 +116,29 @@
|
|
|
116
116
|
</style>
|
|
117
117
|
</head>
|
|
118
118
|
<body>
|
|
119
|
+
<!-- Global Navigation -->
|
|
119
120
|
<nav class="navbar">
|
|
120
121
|
<div class="navbar-content">
|
|
121
|
-
<a href="index.html" class="navbar-logo"><i class="fas fa-
|
|
122
|
-
<
|
|
123
|
-
<a href="
|
|
124
|
-
<a href="
|
|
125
|
-
<a href="
|
|
126
|
-
<
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
122
|
+
<a href="index.html" class="navbar-logo"><i class="fas fa-palette"></i> Corrupted Theme</a>
|
|
123
|
+
<ul class="navbar-links">
|
|
124
|
+
<li><a href="index.html"><i class="fas fa-home"></i> Home</a></li>
|
|
125
|
+
<li><a href="showcase-complete.html"><i class="fas fa-cube"></i> Components</a></li>
|
|
126
|
+
<li><a href="extensions-showcase.html"><i class="fas fa-puzzle-piece"></i> Extensions</a></li>
|
|
127
|
+
<li class="has-submenu">
|
|
128
|
+
<a href="#" class="active">
|
|
129
|
+
<i class="fas fa-flask"></i> Examples
|
|
130
|
+
<i class="fas fa-chevron-down" style="font-size: 0.7em; margin-left: 4px;"></i>
|
|
131
|
+
</a>
|
|
132
|
+
<div class="submenu">
|
|
133
|
+
<a href="nikke-team-builder.html"><i class="fas fa-users"></i> Nikke Team Builder</a>
|
|
134
|
+
<a href="button.html" class="active"><i class="fas fa-hand-pointer"></i> Buttons</a>
|
|
135
|
+
<a href="card.html"><i class="fas fa-square"></i> Cards</a>
|
|
136
|
+
<a href="form.html"><i class="fas fa-edit"></i> Forms</a>
|
|
137
|
+
<a href="layout.html"><i class="fas fa-columns"></i> Layouts</a>
|
|
138
|
+
</div>
|
|
139
|
+
</li>
|
|
140
|
+
<li><a href="../docs/COMPONENTS_REFERENCE.md"><i class="fas fa-book"></i> Docs</a></li>
|
|
141
|
+
</ul>
|
|
130
142
|
</div>
|
|
131
143
|
</nav>
|
|
132
144
|
|
package/examples/card.html
CHANGED
|
@@ -225,16 +225,29 @@
|
|
|
225
225
|
</style>
|
|
226
226
|
</head>
|
|
227
227
|
<body>
|
|
228
|
+
<!-- Global Navigation -->
|
|
228
229
|
<nav class="navbar">
|
|
229
230
|
<div class="navbar-content">
|
|
230
|
-
<a href="index.html" class="navbar-logo"><i class="fas fa-
|
|
231
|
-
<
|
|
232
|
-
<a href="
|
|
233
|
-
<a href="
|
|
234
|
-
<a href="
|
|
235
|
-
<
|
|
236
|
-
|
|
237
|
-
|
|
231
|
+
<a href="index.html" class="navbar-logo"><i class="fas fa-palette"></i> Corrupted Theme</a>
|
|
232
|
+
<ul class="navbar-links">
|
|
233
|
+
<li><a href="index.html"><i class="fas fa-home"></i> Home</a></li>
|
|
234
|
+
<li><a href="showcase-complete.html"><i class="fas fa-cube"></i> Components</a></li>
|
|
235
|
+
<li><a href="extensions-showcase.html"><i class="fas fa-puzzle-piece"></i> Extensions</a></li>
|
|
236
|
+
<li class="has-submenu">
|
|
237
|
+
<a href="#" class="active">
|
|
238
|
+
<i class="fas fa-flask"></i> Examples
|
|
239
|
+
<i class="fas fa-chevron-down" style="font-size: 0.7em; margin-left: 4px;"></i>
|
|
240
|
+
</a>
|
|
241
|
+
<div class="submenu">
|
|
242
|
+
<a href="nikke-team-builder.html"><i class="fas fa-users"></i> Nikke Team Builder</a>
|
|
243
|
+
<a href="button.html"><i class="fas fa-hand-pointer"></i> Buttons</a>
|
|
244
|
+
<a href="card.html" class="active"><i class="fas fa-square"></i> Cards</a>
|
|
245
|
+
<a href="form.html"><i class="fas fa-edit"></i> Forms</a>
|
|
246
|
+
<a href="layout.html"><i class="fas fa-columns"></i> Layouts</a>
|
|
247
|
+
</div>
|
|
248
|
+
</li>
|
|
249
|
+
<li><a href="../docs/COMPONENTS_REFERENCE.md"><i class="fas fa-book"></i> Docs</a></li>
|
|
250
|
+
</ul>
|
|
238
251
|
</div>
|
|
239
252
|
</nav>
|
|
240
253
|
|