Complete framework implementation for texture atlas, UI component factory, and theme system.
Framework/
├── Atlas.lua - Texture atlas management and coordinate mapping
├── ColorPalette.lua - Theme color system with RGB/RGBA support
├── FontKit.lua - Font management and application
├── LayoutHelper.lua - Grid system, anchoring, responsive scaling
├── FrameFactory.lua - Component factory (buttons, panels, tabs, scrollbars, tooltips)
└── README.md - Framework documentation
Themes/
├── AbstractGlass.lua - Abstract Dark Glass theme
├── NeonSciFi.lua - Neon Sci-Fi theme
└── README.md - Theme documentation
Media/Textures/Atlas/
├── Common.tga - Shared UI elements (to be created)
├── AbstractGlass.tga - Dark glass theme textures (to be created)
├── NeonSciFi.tga - Neon sci-fi theme textures (to be created)
└── README.md - Atlas documentation
- Texture coordinate mapping for efficient atlas usage
- Multiple atlas support (Common, AbstractGlass, NeonSciFi)
- Pixel-to-texcoord conversion helpers
- Texture preloading system
- Region-based texture application
- Theme-based color management
- Hex-to-RGB conversion
- Color manipulation (lighten, darken, alpha)
- Multi-theme support with active theme switching
- Comprehensive color definitions for all UI components
- Theme-specific font selections
- Predefined size scales (tiny, small, normal, medium, large, huge, massive)
- LibSharedMedia-3.0 integration
- Font application helpers
- Custom size support
- 8-pixel grid system with snap-to-grid
- Standard anchor positions (9 cardinal points)
- Responsive scaling based on resolution (reference: 2133x1200)
- VBox and HBox layout containers
- Fill parent and centering utilities
- Margin and padding management
- Buttons: Normal, hover, pressed, disabled states with theme textures
- Panels: Background and border with theme styling
- Tabs: Active/inactive states with text color switching
- Scrollbars: Track and thumb with theme textures
- Tooltips: Themed backgrounds with custom font application
- Theme switching capability
- Visual Style: Dark, translucent glass with subtle gradients
- Primary Color: Cyan (#00CCFF)
- Background: Very dark blue (RGB: 12, 12, 25)
- Transparency: High (90-95% opacity)
- Best For: Clean, professional, minimal distraction
- Visual Style: High-contrast neon with glowing effects
- Primary Color: Cyan neon (#00FFFF)
- Background: Deep black-blue (RGB: 0, 0, 12)
- Effects: Holographic overlays, glow effects
- Best For: Cyberpunk aesthetic, high visibility
The framework is loaded in AbstractUI.toc before the core engine and modules:
Framework\Atlas.lua
Framework\ColorPalette.lua
Framework\FontKit.lua
Framework\LayoutHelper.lua
Framework\FrameFactory.lua
Themes\AbstractGlass.lua
Themes\NeonSciFi.lua
FrameFactory is initialized in Core.lua during addon OnEnable.
local AbstractUI = LibStub("AceAddon-3.0"):GetAddon("AbstractUI")
local FrameFactory = AbstractUI.FrameFactory
local ColorPalette = AbstractUI.ColorPalette
local LayoutHelper = AbstractUI.LayoutHelper
-- Set theme
FrameFactory:SetTheme("AbstractGlass")
-- Create themed button
local button = FrameFactory:CreateButton(parent, 120, 32, "My Button")
LayoutHelper:SetAnchor(button, "CENTER", parent)
-- Get theme color
local r, g, b, a = ColorPalette:GetColor("primary")
-- Create panel with layout
local panel = FrameFactory:CreatePanel(parent, 400, 300)
local vbox = LayoutHelper:CreateVBox(panel, 8)
vbox:Add(button, 32)- Create Texture Atlases: Design and create .tga files for Common, AbstractGlass, and NeonSciFi atlases
- Integrate with Existing Modules: Update existing modules to use FrameFactory instead of raw CreateFrame
- Theme Options: Add theme selection to the options menu
- Additional Components: Expand FrameFactory with checkboxes, sliders, dropdowns, etc.
- Animation System: Add animation helpers for fades, slides, and effects
- Framework files:
/Framework/ - Theme files:
/Themes/ - Atlas textures:
/Media/Textures/Atlas/ - Documentation: README.md in each directory