@whykusanagi/corrupted-theme 0.1.0 → 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 +162 -0
- package/README.md +209 -14
- 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/components.css +101 -2
- package/src/css/extensions.css +933 -0
- package/src/css/theme.css +6 -176
- package/src/css/typography.css +5 -0
- package/src/css/variables.css +1 -1
- package/src/lib/countdown-widget.js +609 -0
- package/src/lib/gallery.js +481 -0
|
@@ -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
|
|