Extension Components

Production-tested components from whykusanagi.xyz for galleries, social links, countdowns, and more.

NSFW Content Blur

Content warning system with blur overlay that reveals on click. Perfect for galleries with age-restricted content. Automatically removes blur when opened in lightbox.

Demo (Click to Reveal)

<!-- Add nsfw-content class to blur --> <div class="gallery-item nsfw-content" data-warning="18+ Click to View"> <img src="sensitive-image.jpg" alt="Description"> </div> <!-- Custom warning text --> <div class="gallery-item nsfw-content" data-warning="Sensitive Content"> <img src="image.jpg" alt="Description"> </div> <!-- JavaScript API --> <script type="module"> import { initGallery } from '@whykusanagi/corrupted-theme/gallery'; const gallery = initGallery('#gallery', { enableNsfw: true, nsfwWarning: '18+ Click to View', onNsfwReveal: (element) => console.log('Revealed:', element) }); </script>

Social Links List

Link-in-bio style social links layout with profile avatar, name, bio, and styled link buttons. Perfect for profile pages, link aggregation, and social showcases.

Demo

Avatar Sizes

.profile-avatar.sm

.profile-avatar

.profile-avatar.lg

<div class="social-links-container"> <img src="profile.jpg" alt="Profile" class="profile-avatar"> <h1 class="profile-name">@username</h1> <p class="profile-bio">Your bio text here.</p> <div class="link-list"> <!-- Platform-specific hover colors --> <a href="#" class="link-item twitter"> <i class="fab fa-twitter"></i> Twitter </a> <a href="#" class="link-item instagram"> <i class="fab fa-instagram"></i> Instagram </a> <a href="#" class="link-item youtube"> <i class="fab fa-youtube"></i> YouTube </a> <a href="#" class="link-item github"> <i class="fab fa-github"></i> GitHub </a> <a href="#" class="link-item discord"> <i class="fab fa-discord"></i> Discord </a> <a href="#" class="link-item twitch"> <i class="fab fa-twitch"></i> Twitch </a> <!-- Default accent color --> <a href="#" class="link-item"> <i class="fas fa-globe"></i> Website </a> </div> </div>

Countdown Widget

Sophisticated event countdown widget with configurable shapes, character images, overlay effects, and animated popup messages. Supports JSON configuration for multiple events.

Live Demo

Shape Variants

Available shape containers (all maintain 375px base size):

diamond circle heart star hexagon octagon

Configuration Options

Property Type Description
title string Title displayed above countdown
eventDate ISO 8601 Target date/time for countdown
character.image string Character image URL
character.background.type string Shape type (diamond, circle, etc.)
character.overlay object Overlay image with animation
popup object Popup message configuration
completedMessage string Message shown when countdown ends
<!-- HTML --> <div id="countdown-widget"></div> <!-- JavaScript with inline config --> <script type="module"> import { initCountdown } from '@whykusanagi/corrupted-theme/countdown'; initCountdown({ config: { title: 'Product Launch', eventDate: '2025-04-01T00:00:00-07:00', completedMessage: 'Now Available!', character: { image: 'character.png', rotation: 0, background: { type: 'diamond', color: 'radial-gradient(circle, rgba(54, 83, 161, 0.6), rgba(217, 79, 144, 0.6))', borderColor: '#4c2967' }, overlay: { image: 'overlay.png', position: 'behind', animation: 'float' } }, popup: { message: '<strong>Don\'t miss it!</strong><br>Pre-order now!', frequency: 15000, duration: 5000 } } }); </script> <!-- Or load from JSON via URL parameter --> <!-- Access: page.html?event=kirara loads /data/countdown/kirara.json --> <script type="module"> import { initCountdown } from '@whykusanagi/corrupted-theme/countdown'; initCountdown(); // Reads ?event= from URL </script>

JSON Configuration File

{ "title": "Manga Launch Countdown", "eventDate": "2025-04-01T04:00:00-07:00", "basicMessage": "Fall of Kirara manga launch", "completedMessage": "Now Available! Get your copy today!", "style": "compact", "character": { "image": "Fall_of_Kirara.png", "rotation": 0, "background": { "type": "diamond", "color": null, "borderColor": "#4c2967", "pattern": false }, "overlay": { "image": "Tentacle_Foil.png", "position": "behind", "animation": "float", "rotation": null } }, "popup": { "message": "📚 Pre-order now! <a href='#'>Shop</a>", "frequency": 10000, "duration": 5000, "colors": { "bg": "#3653a1", "border": "#d94f90", "text": "#ffffff" } }, "colors": { "primary": null, "accent": null, "text": null } }