Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,378 changes: 906 additions & 472 deletions AuraDesigner/Indicators.lua

Large diffs are not rendered by default.

842 changes: 735 additions & 107 deletions AuraDesigner/Options.lua

Large diffs are not rendered by default.

16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
# DandersFrames Changelog

## [Unreleased]

### New Features

* (Frames) **Unified border system** — every border (frame, buff/debuff icons, aura bars, defensive icons, missing-buff, resource bar, pet frames, targeted spells) now runs through one engine with consistent **Style / Colour / Alpha / Gradient** controls. (by Krathe)
* (Borders) Added optional **border animations** — 10 effects (pulse, wipe, ripple, segment reveal, sides/corners-only, proc glow, dash, and more), available wherever a border is drawn. (by Krathe)

### Improvements

* (Performance) The expiring-border ticker now **throttles and staggers per entry** to cut overhead when many borders are expiring at once. (by Krathe)

### Bug Fixes

* (Range) The frame border (and other element borders) now reliably **fade out of range**, preserved across border re-renders. (by Krathe)
* (Defensive Icon) The defensive cooldown icon and its border now render **above auras** and stay co-planar with the icon. (by Krathe)

## [4.3.12]

### New Features
Expand Down
505 changes: 481 additions & 24 deletions Config.lua

Large diffs are not rendered by default.

606 changes: 397 additions & 209 deletions Core.lua

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions DandersFrames.toc
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ Libs\AceSerializer-3.0\AceSerializer-3.0.lua
Libs\LibDataBroker-1.1\LibDataBroker-1.1.lua
Libs\LibDBIcon-1.0\LibDBIcon-1.0.lua
Libs\LibSharedMedia-3.0\LibSharedMedia-3.0.lua
Libs\LibCustomGlow-1.0\LibCustomGlow-1.0.xml
Libs\LibDeflate\LibDeflate.lua
Libs\LibSerialize\LibSerialize.lua

Expand Down Expand Up @@ -85,6 +86,8 @@ WizardBuilder.lua
# Frame System
Frames\Core.lua
Frames\Colors.lua
Frames\Border.lua
Frames\Expiring.lua
Frames\Create.lua
Frames\Headers.lua
Frames\Update.lua
Expand Down
181 changes: 169 additions & 12 deletions ExportCategories.lua
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,9 @@ DF.ExportCategories = {
"reducedMaxHealthEnabled",
"reducedMaxHealthTexture",

-- Border
"borderSize",
-- Frame Border thickness (rest of frameBorder* keys live in `other`)
"frameBorderSize",

-- Class Color Alpha
"classColorAlpha",

Expand Down Expand Up @@ -168,8 +168,23 @@ DF.ExportCategories = {
"resourceBarClassFilter",
"resourceBarBackgroundEnabled",
"resourceBarBackgroundColor",
"resourceBarBorderEnabled",
"resourceBarBorderBlendMode",
"resourceBarBorderColor",
"resourceBarBorderColorSource",
"resourceBarBorderEnabled",
"resourceBarBorderGradientDirection",
"resourceBarBorderGradientEndColor",
"resourceBarBorderGradientStartColor",
"resourceBarBorderInset",
"resourceBarBorderShadowColor",
"resourceBarBorderShadowEnabled",
"resourceBarBorderShadowOffsetX",
"resourceBarBorderShadowOffsetY",
"resourceBarBorderShadowSize",
"resourceBarBorderSize",
"resourceBarBorderStyle",
"resourceBarBorderTexture",
"resourceBarShowBorder",
"resourceBarFrameLevel",

-- Class Power (player frame pips)
Expand Down Expand Up @@ -313,8 +328,8 @@ DF.ExportCategories = {
"buffStackX",
"buffStackY",
"buffStackMinimum",
"buffBorderEnabled",
"buffBorderThickness",
"buffShowBorder",
"buffBorderSize",
"buffBorderInset",
"buffExpiringEnabled",
"buffExpiringThreshold",
Expand All @@ -324,7 +339,20 @@ DF.ExportCategories = {
"buffExpiringBorderColorByTime",
"buffExpiringBorderThickness",
"buffExpiringBorderInset",
"buffExpiringBorderPulsate",
"buffExpiringBorderPulsate", -- legacy; migrated to AnimationType, kept for old-export compatibility
"buffExpiringBorderAnimationType",
"buffExpiringBorderAnimationColor",
"buffExpiringBorderAnimationFrequency",
"buffExpiringBorderAnimationParticles",
"buffExpiringBorderAnimationLength",
"buffExpiringBorderAnimationThickness",
"buffExpiringBorderAnimationScale",
"buffExpiringBorderAnimationInset",
"buffExpiringBorderAnimationOffsetX",
"buffExpiringBorderAnimationOffsetY",
"buffExpiringBorderAnimationMask",
"buffExpiringBorderAnimationSidesAxis",
"buffExpiringBorderAnimationCornerLength",
"buffExpiringTintEnabled",
"buffExpiringTintColor",

Expand Down Expand Up @@ -370,8 +398,8 @@ DF.ExportCategories = {
"debuffStackX",
"debuffStackY",
"debuffStackMinimum",
"debuffBorderEnabled",
"debuffBorderThickness",
"debuffShowBorder",
"debuffBorderSize",
"debuffBorderInset",
"debuffBorderColorByType",
"debuffBorderColorNone",
Expand Down Expand Up @@ -683,8 +711,36 @@ DF.ExportCategories = {
"defensiveIconSize",
"defensiveIconFrameLevel",
"defensiveIconShowBorder",
"defensiveIconBorderAnimationColor",
"defensiveIconBorderAnimationCornerLength",
"defensiveIconBorderAnimationFrequency",
"defensiveIconBorderAnimationInset",
"defensiveIconBorderAnimationLength",
"defensiveIconBorderAnimationMask",
"defensiveIconBorderAnimationOffsetX",
"defensiveIconBorderAnimationOffsetY",
"defensiveIconBorderAnimationParticles",
"defensiveIconBorderAnimationScale",
"defensiveIconBorderAnimationSidesAxis",
"defensiveIconBorderAnimationThickness",
"defensiveIconBorderAnimationType",
"defensiveIconBorderBlendMode",
"defensiveIconBorderColor",
"defensiveIconBorderGradientDirection",
"defensiveIconBorderGradientEnabled",
"defensiveIconBorderGradientEndColor",
"defensiveIconBorderGradientStartColor",
"defensiveIconBorderInset",
"defensiveIconBorderOffsetX",
"defensiveIconBorderOffsetY",
"defensiveIconBorderShadowColor",
"defensiveIconBorderShadowEnabled",
"defensiveIconBorderShadowOffsetX",
"defensiveIconBorderShadowOffsetY",
"defensiveIconBorderShadowSize",
"defensiveIconBorderSize",
"defensiveIconBorderStyle",
"defensiveIconBorderTexture",
"defensiveIconShowDuration",
"defensiveIconDurationFont",
"defensiveIconDurationScale",
Expand Down Expand Up @@ -770,8 +826,33 @@ DF.ExportCategories = {
"personalTargetedSpellScale",
"personalTargetedSpellAlpha",
"personalTargetedSpellShowBorder",
"personalTargetedSpellBorderAnimationColor",
"personalTargetedSpellBorderAnimationCornerLength",
"personalTargetedSpellBorderAnimationFrequency",
"personalTargetedSpellBorderAnimationInset",
"personalTargetedSpellBorderAnimationLength",
"personalTargetedSpellBorderAnimationMask",
"personalTargetedSpellBorderAnimationOffsetX",
"personalTargetedSpellBorderAnimationOffsetY",
"personalTargetedSpellBorderAnimationParticles",
"personalTargetedSpellBorderAnimationScale",
"personalTargetedSpellBorderAnimationSidesAxis",
"personalTargetedSpellBorderAnimationThickness",
"personalTargetedSpellBorderAnimationType",
"personalTargetedSpellBorderBlendMode",
"personalTargetedSpellBorderColor",
"personalTargetedSpellBorderGradientDirection",
"personalTargetedSpellBorderGradientEndColor",
"personalTargetedSpellBorderGradientStartColor",
"personalTargetedSpellBorderInset",
"personalTargetedSpellBorderShadowColor",
"personalTargetedSpellBorderShadowEnabled",
"personalTargetedSpellBorderShadowOffsetX",
"personalTargetedSpellBorderShadowOffsetY",
"personalTargetedSpellBorderShadowSize",
"personalTargetedSpellBorderSize",
"personalTargetedSpellBorderStyle",
"personalTargetedSpellBorderTexture",
"personalTargetedSpellShowSwipe",
"personalTargetedSpellShowDuration",
"personalTargetedSpellDurationFont",
Expand Down Expand Up @@ -852,8 +933,35 @@ DF.ExportCategories = {
"missingBuffIconScale",
"missingBuffIconFrameLevel",
"missingBuffIconShowBorder",
"missingBuffIconBorderAnimationColor",
"missingBuffIconBorderAnimationCornerLength",
"missingBuffIconBorderAnimationFrequency",
"missingBuffIconBorderAnimationInset",
"missingBuffIconBorderAnimationLength",
"missingBuffIconBorderAnimationMask",
"missingBuffIconBorderAnimationOffsetX",
"missingBuffIconBorderAnimationOffsetY",
"missingBuffIconBorderAnimationParticles",
"missingBuffIconBorderAnimationScale",
"missingBuffIconBorderAnimationSidesAxis",
"missingBuffIconBorderAnimationThickness",
"missingBuffIconBorderAnimationType",
"missingBuffIconBorderBlendMode",
"missingBuffIconBorderColor",
"missingBuffIconBorderGradientDirection",
"missingBuffIconBorderGradientEndColor",
"missingBuffIconBorderGradientStartColor",
"missingBuffIconBorderInset",
"missingBuffIconBorderOffsetX",
"missingBuffIconBorderOffsetY",
"missingBuffIconBorderShadowColor",
"missingBuffIconBorderShadowEnabled",
"missingBuffIconBorderShadowOffsetX",
"missingBuffIconBorderShadowOffsetY",
"missingBuffIconBorderShadowSize",
"missingBuffIconBorderSize",
"missingBuffIconBorderStyle",
"missingBuffIconBorderTexture",
"missingBuffCheckStamina",
"missingBuffCheckIntellect",
"missingBuffCheckAttackPower",
Expand Down Expand Up @@ -881,9 +989,45 @@ DF.ExportCategories = {
-- OTHER - Aggro, selection, range, tooltips, pets, misc
-- ===========================================
other = {
-- Border
"showFrameBorder",
"borderColor",
-- Frame Border (canonical "frame" prefix)
"frameBorderAlpha",
"frameBorderAnimationColor",
"frameBorderAnimationCornerLength",
"frameBorderAnimationFrequency",
"frameBorderAnimationInset",
"frameBorderAnimationLength",
"frameBorderAnimationMask",
"frameBorderAnimationOffsetX",
"frameBorderAnimationOffsetY",
"frameBorderAnimationParticles",
"frameBorderAnimationScale",
"frameBorderAnimationSidesAxis",
"frameBorderAnimationThickness",
"frameBorderAnimationType",
"frameBorderBlendMode",
"frameBorderColorSource",
"frameBorderColor",
"frameBorderGradientDirection",
"frameBorderGradientEnabled",
"frameBorderGradientEndColor",
"frameBorderGradientStartColor",
"frameBorderInset",
"frameBorderOffsetX",
"frameBorderOffsetY",
"frameBorderShadowColor",
"frameBorderShadowEnabled",
"frameBorderShadowOffsetX",
"frameBorderShadowOffsetY",
"frameBorderShadowSize",
"frameBorderStyle",
"frameBorderTexture",
"frameBorderUseClassColor",
"frameShowBorder",

-- Role border colours (shared across consumers via include.roleColor)
"roleBorderColorDamager",
"roleBorderColorHealer",
"roleBorderColorTank",

-- Aggro Highlight
"aggroHighlightMode",
Expand Down Expand Up @@ -1002,7 +1146,20 @@ DF.ExportCategories = {
"petOffsetY",
"petTexture",
"petShowBorder",
"petBorderBlendMode",
"petBorderColor",
"petBorderGradientDirection",
"petBorderGradientEndColor",
"petBorderGradientStartColor",
"petBorderInset",
"petBorderShadowColor",
"petBorderShadowEnabled",
"petBorderShadowOffsetX",
"petBorderShadowOffsetY",
"petBorderShadowSize",
"petBorderSize",
"petBorderStyle",
"petBorderTexture",
"petBackgroundColor",
"petHealthBgColor",
"petHealthColorMode",
Expand Down
Loading