v1.0.0-forever
What's new
FadeUI
v1.0.0 (2026-09-26)
- Prepare v1.0.0 release for CurseForge (#6)
- Set TOC version to 1.0.0 (was 2.0.0)
- Add
## X-Curse-Project-ID: 1713253so the packager uploads to
CurseForge - Gitignore
.env(localCF_API_KEYfor runningrelease.sh) - Add the BigWigs packager
release.shtoscripts/for releasing from
your machine - Update README release docs and the release workflow comment
🤖 Generated with Claude Code
Co-authored-by: Claude Opus 5.5 noreply@anthropic.com - Chat idle hiding, chat-specific modes, and typing box hiding (#5)
Summary
- Chat modes: chat gets its own modes instead of the combat-based
ones: Always, When active (new default) and While typing. - When active: chat hides once the visible chat window has had no
new message, and you haven't typed, for the idle time (set in the Chat
row; default 10s). The next message brings it back. - Typing box: the chat edit boxes (
ChatFrameNEditBox) now hide
with the rest of chat. - Enter /
/opens chat: typing is detected by hooking the edit
boxes' focus, instead of theChatEdit_*globals, which may not exist
in this client. - Settings macro: format bumped to v4 to store the idle time (v3/v2
macros still load). - Defaults: unit and boss frames now default to Combat/Target, and
Cooldown Manager to Never.
Test plan
- <input disabled="disabled" type="checkbox" /> Chat on When active: it hides after the idle time and comes back
on a new message - <input disabled="disabled" type="checkbox" /> Enter and
/show chat, and the cursor is in the typing box - <input disabled="disabled" type="checkbox" /> The typing box hides with chat
- <input disabled="disabled" type="checkbox" /> While typing: chat shows only while typing
- <input disabled="disabled" type="checkbox" /> Settings survive a restart through the settings macro
🤖 Generated with Claude Code
Co-authored-by: Claude Opus 5.5 noreply@anthropic.com - Chat modes: chat gets its own modes instead of the combat-based
- Add swing timers and update default settings (#4)
Summary
- New Swing Timers element (Unit frames section) covering
SwingTimerMainHandFrame,SwingTimerOffHandFrameand
SwingTimerRangedFrame. It uses settings-macro id 31 and defaults to
In combat. - New install defaults:
- Fade-in 0.5s, fade-out 0.5s, 5s delay before fading out
- Player, Pet, Target, Target of Target and Focus frames: Always
- Minimap, Buffs and Quest Tracker: Combat/Target
- Chat: Always
Existing saved settings aren't affected, and older settings macros still
load (the new element gets its default).
Test plan
- <input disabled="disabled" type="checkbox" />
/reloadin the classic beta: the swing timer bars hide out of
combat and show in combat - <input disabled="disabled" type="checkbox" /> Swing timers can still be moved in Edit Mode
- <input disabled="disabled" type="checkbox" /> "Reset to defaults" applies the new defaults
🤖 Generated with Claude Code
Co-authored-by: Claude Opus 5.5 noreply@anthropic.com
- New Swing Timers element (Unit frames section) covering
- Drop develop branch from lint workflow and README
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com - Add luacheck CI (#3)
Summary
- New
Lintworkflow runs luacheck onFadeUI/for every push and PR
todevelopormain. .luacheckrcsets up the WoW Lua 5.1 environment: the globals FadeUI
defines and the WoW API it reads.- README documents the check and the develop → main flow;
.pkgmeta
leaves.luacheckrcout of release zips.
Once this passes,mainwill require theluacheckcheck before a PR
can merge.
🤖 Generated with Claude Code
Co-authored-by: Claude Opus 5.5 noreply@anthropic.com
- New
- Fade timing options and managed-frame visibility fix (#2)
Summary
- Fade timing (from
feat/fade-timing-config): configurable
fade-in, fade-out and fade-out delay. Protected holders use a secure
state handler so they can still show and hide in combat. - Managed-frame fix (from
fix/castbar-visibility): the cast bar
never appeared out of combat under "Always" or "Combat/Target".
Blizzard's layout containers reposition "managed" frames and reparent
them into the container every time they show or the screen is
rearranged. FadeUI was pulling those frames back into its holder before
Blizzard's layout ran, which left them with no position, so they never
drew. - Cast Bar, Quest Tracker and Cooldown Manager are no longer reparented.
FadeUI hides and shows them directly and only brings one back if
Blizzard wants it shown (for example, a cast bar with no cast stays
hidden). - Pet and Boss Frames are protected, so they stay in holders and are
only moved back once Blizzard's layout has positioned them. - The merge wires the directly-hidden elements into the new fade state
handling. They follow the fade-out delay but disappear instantly rather
than fading.
Known limitations
- Later layout passes don't leave room for Pet or Boss Frames, so a
neighbouring managed frame can occasionally overlap them. - If Blizzard repositions a protected managed frame during combat, it
shows regardless of its setting until combat ends. This behaviour
predates this PR.
Testing
- Cast bar fix confirmed in-game on the
_classic_beta_client.
🤖 Generated with Claude Code
Co-authored-by: Claude Opus 5.5 noreply@anthropic.com - Fade timing (from
- Set up addon project tooling (#1)
Sets up the repo as a WoW addon project. No addon code changes: the four
source files are just moved.Changes
- Source in
FadeUI/: the addon files (.toc,Core.lua,
Options.lua,Bindings.xml) are moved into their own folder. scripts/link.sh: symlinksFadeUI/into a WoW client's AddOns
folder so edits load on/reload. The default client is
_classic_beta_; pass a folder name for others, e.g.scripts/link.sh _retail_.- Release packaging: on every
v*tag, a GitHub Actions workflow
runs the BigWigs packager..pkgmetamovesFadeUI/up to the top of
the zip and leaves out dev files. The packager then attaches
FadeUI-<tag>.zipto a GitHub release. Uploads to CurseForge and Wago
are ready to turn on once their API keys are added as repo secrets. - Editor setup:
.vscode/settings.jsonloads the Ketho WoW API
types into the Lua language server and lists the addon's own global
names, so misspelled globals get flagged. - README: usage, dev setup and release steps.
Testing
scripts/link.shran against the local_classic_beta_client, and
the linked folder contains the addon files.- The packaging config was checked against the packager's
release.sh
source only; no test build was run. The first real test will be the next
v*tag after merge.
🤖 Generated with Claude Code
Co-authored-by: Claude Opus 5.5 noreply@anthropic.com - Source in
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include
This mod has no related projects

