File Details
AbstractUI-v12.0.5.27.zip
- R
- May 10, 2026
- 1.47 MB
- 31
- 12.0.5
- Retail
File Name
AbstractUI-v12.0.5.27.zip
Supported Versions
- 12.0.5
AbstractUI v12.0.5.27 Release Notes
🎨 Skinning System Overhaul
New Per-Frame Skinning Controls
- Granular Control: Individual toggle switches for each Blizzard frame
- 20 Skinnable Frames: Character, Spellbook, Talents, Professions, Collections, Achievements, Encounter Journal, Friends, Communities, Guild, PVP, LFG, Quest, Gossip, Dialog, Merchant, Mail, Trade, Game Menu, Settings
- Progress Indicators: All incomplete skins clearly marked as "(IN PROGRESS)" in settings
- Framework API: Centralized
AbstractUI.SkinFrameworkfor consistent skinning across all frames
Completed Skins
- ✅ Character Frame: Fully functional with equipment slots, stats, and titles
Work in Progress (Placeholder Files Created)
- 🚧 Spellbook
- 🚧 Talents / Specialization
- 🚧 Professions
- 🚧 Collections (Mounts, Pets, Toys, Transmog)
- 🚧 Achievements
- 🚧 Encounter Journal
- 🚧 Friends List
- 🚧 Communities / Groups
- 🚧 Guild Panel
- 🚧 PvP Panel
- 🚧 LFG (Dungeon Finder)
- 🚧 Quest Frame
- 🚧 NPC Dialog
- 🚧 Player Choice Dialog
- 🚧 Merchant / Vendor
- 🚧 Mailbox
- 🚧 Trade Window
- 🚧 Game Menu
- 🚧 Settings Panel
🐛 Bug Fixes
Critical Fixes
- Fixed:
ADDON_ACTION_BLOCKEDerror in GroupManager module- Issue: Protected frame security violation when calling
Hide()on CompactRaidFrameManager - Solution: Replaced
OnShowhook withUnregisterAllEvents()approach
- Issue: Protected frame security violation when calling
Code Quality
- Fixed: All new skin modules now use proper
LibStub("AceAddon-3.0"):GetAddon("AbstractUI")pattern - Improved: Frame skin detection uses
OnShowhooks for proper timing - Refactored: Centralized skinning utilities in
AbstractUI.SkinFrameworkAPI
📁 File Organization
New Files
Skins/CharacterPane.lua- Complete character frame skinSkins/SpellBookFrame.lua- Spellbook placeholderSkins/TalentsFrame.lua- Talents placeholderSkins/ProfessionsFrame.lua- Professions placeholderSkins/CollectionsJournal.lua- Collections placeholderSkins/AchievementFrame.lua- Achievements placeholderSkins/EncounterJournal.lua- Encounter Journal placeholderSkins/FriendsFrame.lua- Friends placeholderSkins/CommunitiesFrame.lua- Communities placeholderSkins/GuildFrame.lua- Guild placeholderSkins/PVPUIFrame.lua- PvP placeholderSkins/LFG.lua- LFG placeholder (renamed from PVEFrame)Skins/QuestFrame.lua- Quest placeholderSkins/GossipFrame.lua- NPC Dialog placeholderSkins/DialogFrame.lua- Player Choice placeholderSkins/MerchantFrame.lua- Merchant placeholderSkins/MailFrame.lua- Mail placeholderSkins/TradeFrame.lua- Trade placeholderSkins/GameMenuFrame.lua- Game Menu placeholderSkins/SettingsPanel.lua- Settings placeholderSkins/README.md- Developer documentation for skinning framework
Updated Files
Modules/Skins.lua- Refactored with SkinFramework API and per-frame controlsModules/GroupManager.lua- Fixed protected frame security issueAbstractUI.toc- Added all new skin files to load order
🔧 Developer Notes
SkinFramework API
New centralized utilities for skin developers:
SkinFramework:IsFrameEnabled(frameName)- Check if frame skinning is enabledSkinFramework:GetThemeColors()- Get current theme color paletteSkinFramework:GetColorPalette()- Access ColorPalette moduleSkinFramework:GetFontKit()- Access FontKit moduleSkinFramework:ApplyBackdrop(frame, colors)- Apply themed backdropSkinFramework:StripTextures(frame)- Remove Blizzard textures
Best Practices
- Use
LibStub("AceAddon-3.0"):GetAddon("AbstractUI")to access addon - Hook frame
OnShowevents for proper initialization timing - Check
SkinFramework:IsFrameEnabled()before applying skins - See
Skins/README.mdfor detailed developer guide
🚀 Future Plans
- Complete implementations for all 19 placeholder skins
- Add per-element customization (fonts, colors, borders per frame)
- Improve skin preview/testing tools
- Add import/export for skin configurations
Installation: Copy to World of Warcraft\_retail_\Interface\AddOns\AbstractUI\
Support: Report issues on GitHub or Discord
Compatibility: WoW 12.0.5 (The War Within)

