Overview
Heimerdinger.lol’s skin catalog allows users to:- Browse all available champion skins with pagination
- Search skins by name with partial matching
- Filter by rarity tier (Common, Epic, Legendary, Mythic, Ultimate, etc.)
- View high-quality splash art and loading screen images
- Explore chroma variants for each skin
- See visual features (new animations, voice, textures, particles, recall, VFX, SFX)
Routes
The skin feature uses two main routes defined inroutes/web.php:47-48:
Skin List Page
TheChampionSkinController::index() method (source/app/Http/Controllers/ChampionSkinController.php:18-36) displays paginated skins with filtering:
Advanced Filtering
The skin catalog uses Spatie Query Builder for powerful filtering:Name Search
Partial matching on skin names (e.g.,
?filter[name]=star finds “Star Guardian Ahri”)Rarity Filter
Exact match on rarity tier (e.g.,
?filter[rarity]=Legendary)Pagination
16 skins per page with query string preservation
HTMX Support
Fragment rendering for dynamic updates
Rarity Tiers
Skins are categorized into 8 rarity tiers, each with a distinctive color:Rarity Tier Colors
Rarity Tier Colors
| Rarity | Color | TailwindCSS Class |
|---|---|---|
| Common | Stone | text-stone-300 |
| Rare | Pink | text-pink-300 |
| Epic | Blue | text-blue-400 |
| Legendary | Red | text-red-500 |
| Mythic | Purple | text-purple-500 |
| Ultimate | Yellow | text-yellow-400 |
| Transcendent | Violet | text-violet-400 |
| Exalted | Light Violet | text-violet-300 |
Skin Detail Page
TheChampionSkinController::show() method (source/app/Http/Controllers/ChampionSkinController.php:58-67) displays individual skin details:
Eager Loading
Skin detail pages load the parent champion and all chroma variants to minimize database queries.
Cache Strategy
Skin detail pages are cached for 48 hours with a unique cache key per skin slug.
Skin Model
Skins are represented by theChampionSkin model located at source/app/Models/ChampionSkin.php. The model includes:
Database Properties
Primary key
Riot Games API skin ID
Parent champion ID (foreign key)
Full skin name (e.g., “Star Guardian Ahri”)
Rarity tier (Common, Epic, Legendary, etc.)
RP (Riot Points) price
Discounted price if on sale
Whether the skin is legacy (limited availability)
Whether the skin can be obtained from loot boxes
Visual Features
The skin model tracks which new visual elements each skin includes:new_animations- Custom animationsnew_voice- New voice linesnew_textures- Updated texturesnew_particles- Particle effectsnew_recall- Custom recall animationnew_vfx- Visual effectsnew_sfx- Sound effects
Relationships
Skin Images
The ChampionSkin model provides image accessors for different display contexts:- Splash Art
- Loading Screen
- Tile
- Uncentered Splash
Chromas
Chromas are color variants of skins represented by theSkinChroma model. Each chroma has:
- Unique chroma ID and name
- Individual splash art and loading screen
- Price in RP or Blue Essence
- Association with parent skin
HTMX Integration
The skin catalog supports HTMX for dynamic page updates:When an HTMX request is detected, only the
skin-list fragment is returned for efficient partial page updates.Related Features
Champions
View champion details and abilities
Sales
Check current champion and skin sales
Skin Model
View the full ChampionSkin model API reference
Controller API
See the ChampionSkinController documentation