-
Notifications
You must be signed in to change notification settings - Fork 0
Theme Borders
Host addons can override LibSettingsDesigner backdrop border assets with
opts.borders, opts.themeBorders, or opts.borderAssets in
Config:RegisterAddOn.
Every key is optional. Missing keys keep the built-in LibSettingsDesigner
default. Use default when one asset should apply broadly, then override
individual zones such as button, row, topbar, or search.
Border styles use the standard WoW backdrop fields:
{
bgFile = "Interface\\Tooltips\\UI-Tooltip-Background",
edgeFile = "Interface\\AddOns\\MyAddon\\Media\\MyBorder",
tile = true,
tileSize = 16,
edgeSize = 12,
insets = { left = 3, right = 3, top = 3, bottom = 3 },
}Use one default and override only the zones that should visibly differ:
local app = Config:RegisterAddOn(addonName, {
title = "My Addon",
borders = {
default = {
edgeFile = "Interface\\AddOns\\MyAddon\\Media\\PanelBorder",
edgeSize = 14,
insets = { left = 4, right = 4, top = 4, bottom = 4 },
},
button = {
edgeFile = "Interface\\AddOns\\MyAddon\\Media\\ButtonBorder",
edgeSize = 10,
insets = { left = 2, right = 2, top = 2, bottom = 2 },
},
toggle = {
edgeFile = "Interface\\AddOns\\MyAddon\\Media\\ToggleBorder",
edgeSize = 9,
insets = { left = 2, right = 2, top = 2, bottom = 2 },
},
},
})For dynamic themes, provide a function:
borders = function(app)
return MyAddonDB.profile.theme == "custom" and MyAddon.CustomBorders or nil
endIf the options are changed after the frame was created, open the settings again
or call ConfigUI:Open(app) to refresh the visible frame theme.
local MY_BORDERS = {
default = {
edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Border",
edgeSize = 16,
insets = { left = 4, right = 4, top = 4, bottom = 4 },
},
row = {
edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
edgeSize = 8,
insets = { left = 2, right = 2, top = 2, bottom = 2 },
},
topbarButton = {
edgeFile = "Interface\\AddOns\\MyAddon\\Media\\TopbarButtonBorder",
edgeSize = 12,
insets = { left = 3, right = 3, top = 3, bottom = 3 },
},
}
local app = Config:RegisterAddOn(addonName, {
title = "My Addon",
borders = MY_BORDERS,
})Direct keys:
default, panel, topbar, content, sidebar, card, dashboardCard, detailSection,
detailColumn, row, button, topbarButton, search, control, toggle, toggleKnob,
swatch, reorderItem
Aliases:
background -> panel
frame -> panel
buttons -> button
topbarButtons -> topbarButton
checkbox / checkboxes / switch -> toggle
switchKnob -> toggleKnob
dropdown -> button
input -> control
color / colorSwatch -> swatch
dashboard -> dashboardCard
detail -> detailSection
- Keep
colorsandbordersseparate. - Use
colorsfor RGBA values. - Use
bordersfor backdrop assets, edge size, tile settings, and insets. - Use addon's own media paths for custom assets.
- Override only what the addon needs; defaults remain for missing keys.
Wiki
• Home
• Architecture
• Vendoring
• Quick Start
• Field Glossary
• Troubleshooting
• Validation
Reference
⚬ Config API
⚬ UI API
⚬ Elements
⚬ Examples
Elements
Structure
• Category
• Page
• Group
• Dashboard
• InfoPage
• Custom
Controls
• Toggle
• CheckboxDropdown
• Dropdown
• MultiDropdown
• SoundDropdown
• Input
• Slider
• Button
Advanced
• ColorPicker
• ColorPalette
• ColorOverrides
• ReorderList
• Expandable
• Notes
Examples
Start
• Minimal Addon
• Complete Settings Center
• Wrapper Bridge Pattern
Data and Behavior
• Dependent Controls
• Nested Database Values
• Dynamic Dropdowns
• Runtime Refresh
• Search and New Badges
• Custom Hosted Editors
Polish
• Support Links
• Theme Colors
• Theme Borders