promotional bannermobile promotional banner

Aurora

Minimalistic UI theme for World of Warcraft
Back to Files

12.1.0.9

File nameAurora-12.1.0.9.zip
Uploader
Gethe88Gethe88
Uploaded
Sep 12, 2026
Downloads
631
Size
804.1 KB
Flavors
MoP ClassicRetailClassic TBCClassic
File ID
8868811
Type
R
Release
Supported game versions
  • 12.1.0
  • 5.5.4
  • 2.5.6
  • 1.15.9

What's new

[12.1.0.9]

Added

  • add: NamePlates skin for the classic flavors — era, TBC and Mists now resolve Blizzard_NamePlates\Classic\. Blizzard unified the nameplate file set across flavors, so the file is a deliberate verbatim copy of the Mainline skin plus a flavor note; every symbol it touches was verified present in all three trees (NamePlateDriverMixin, OnNamePlateAdded, NamePlateAurasMixin:RefreshAuras/:RefreshLossOfControl, HealthBarsContainer, the aura/debuff/crowd-control/loss-of-control list frames, ForEachNamePlate, and all three SetClassNameplateBar* driver methods — the driver methods exist on classic even though the frames never arrive, so the hooksecurefunc calls are safe and stay in for parity). Health and cast bars are deliberately not skinned: Base.SetBackdrop writes BackdropMixin functions and _backdropInfo directly onto the bar, which taints it, and on the next nameplate reuse cycle CompactUnitFrame_UpdateHealPrediction then reads GetMinMaxValues() tainted and errors on a secret number. Only the aura icons are cropped. Keep the two files in sync — a plain diff between them should show only the flavor note [classic]
  • add: TimeManager skin for the classic flavors — clock globe and stopwatch frame/tab art removed, the stopwatch check and the alarm dropdowns and edit box skinned. Blizzard splits this addon per flavor, but the frame structure the skin touches is the same in both trees: TimeManagerFrame inherits ButtonFrameTemplate, the alarm dropdowns hang off AlarmTimeFrame by parentKey, and the stopwatch textures keep their $parent* names. The one real difference is that classic's alarm dropdowns inherit WowStyle1ThinDropdownTemplate where retail uses WowStyle1DropdownTemplate, which Skin.DropdownButton already handles; the explicit dropdown widths are cosmetic tuning picked against the retail template, so they are what to eyeball on a classic client rather than anything that can fail loudly [classic]
  • add: vanilla-style group finder row templates — browse results (LFGBrowseSearchEntryTemplate), listing activity rows (LFGListingActivityRowTemplate) and the lazily-created category buttons, closing the deferral left in the skin header. All three families are recycled by their container, so each is skinned from an update/add hook rather than once at load. Meaningful art is kept per the file's existing policy — party, class and newcomer icons on a result row, the Enumerate and Solo role art, and the category icons; what gets recoloured is the ADD-blended highlight and selected bars, the parts that actually fight the theme, using the same blend reset plus Aurora highlight colour as the classic AuctionUI rows. The RoleCountNoScriptsTemplate icon swaps are inlined because Skin.RoleCountNoScriptsTemplate is Mainline-only [classic]

Fixed

  • fix: the chat edit-box border hook threw attempt to index local 'channeleditBox' (a nil value) at login (×3 for a user with channel-bound chat windows). Hook.ChatFrameEditBoxMixinUpdateHeader read ChatFrameUtil.GetActiveWindow() — which returns ACTIVE_CHAT_EDIT_BOX, the edit box the user currently has open — instead of the edit box it was handed. That is nil whenever UpdateHeader runs outside a user-opened edit box, which is exactly the reported path: UPDATE_CHAT_WINDOWSChatFrameMixin:UpdateDefaultChatTargeteditBox:UpdateHeader() fires as chat settings arrive at login, and reaches the CHANNEL branch for any window whose default target is a channel. A mis-port dating to the WoW 12 removal of ChatEdit_GetChannelTarget(editBox); it also read the wrong window's channel colour whenever it did not crash. It now uses editBox:GetChannelTarget(), matching Blizzard's own UpdateHeader at ChatFrameEditBox.lua:641, with a comment recording why GetActiveWindow() is the wrong object so the next API rename does not repeat it [mainline]

Known Issues

  • The ShouldShowMawBuffs guard added in 12.1.0.8 owns a Blizzard global, which taints it permanently for every later reader. A 4½-minute field log on a shipped build has since put a number on that cost: 38,407 of 152,518 lines (25%) are RealUI_Skins reading the global, sustained at ~140/sec, because ScenarioObjectiveTrackerMixin:OnEvent reads it inside its UNIT_AURA branch. That is a rare error traded for a continuously tainted aura path, and it makes taintLog close to unusable for any other diagnosis on an affected setup. The trade should be re-priced rather than left standing [mainline]
  • The world-event/scenario UI widgets still render with Blizzard's styling while that skin is gated [mainline]
  • The GameTooltip_InsertFrame taint described under 12.1.0.2 is unchanged [mainline]

This mod has no additional files