@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.
@@ -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. See [NIKKE_COMPONENTS.md](./NIKKE_COMPONENTS.md) for complete documentation.
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 [VARIABLES_REFERENCE.md](./VARIABLES_REFERENCE.md) for complete variable list.
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">&times;</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
- - [VARIABLES_REFERENCE.md](./VARIABLES_REFERENCE.md) - Complete CSS variables reference
650
- - [NIKKE_COMPONENTS.md](./NIKKE_COMPONENTS.md) - Nikke-specific components
651
- - [CUSTOMIZATION.md](./CUSTOMIZATION.md) - Customization guide
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-24
657
- **Version:** 1.0
943
+ **Last Updated:** 2025-11-26
944
+ **Version:** 1.1
658
945
  **Status:** Complete and Production Ready
659
946
 
@@ -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-arrow-left"></i> Back</a>
122
- <div class="navbar-links">
123
- <a href="#basic">Basic</a>
124
- <a href="#variants">Variants</a>
125
- <a href="#sizes">Sizes</a>
126
- <a href="#states">States</a>
127
- <a href="#icons">Icons</a>
128
- <a href="#groups">Groups</a>
129
- </div>
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
 
@@ -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-arrow-left"></i> Back</a>
231
- <div class="navbar-links">
232
- <a href="#basic">Basic</a>
233
- <a href="#with-image">Images</a>
234
- <a href="#testimonial">Testimonials</a>
235
- <a href="#stats">Stats</a>
236
- <a href="#product">Product</a>
237
- </div>
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