promotional bannermobile promotional banner

Squizzframes

Party, raid, pet and unit frames built for 12.1, with a full indicator system, click-casting, a tank tracker and a resource bar.
Back to Files

v1.35

File nameSquizzFrames-v1.35.zip
Uploader
SquizzCheezeSquizzCheeze
Uploaded
Sep 27, 2026
Downloads
11
Size
2.2 MB
Flavors
Retail
File ID
8987678
Type
R
Release
Supported game versions
  • 12.1.5
  • 12.1.0

What's new

SquizzFrames - Changelog
========================

V1.35 (2026-09-27)
------------------

Changed:

- Every indicator now places itself with a single Anchor Point, the way Name,
  Health and Power Text already did, instead of separate Anchor Point and
  Relative Point dropdowns. To put a row outside the frame, anchor it to that
  edge and use the offset - for example HoTs above the frame: TOP, with Y
  Offset equal to the icon size. Indicators you had placed with two different
  points are converted automatically and stay exactly where they were.

- The built-in spell checklists (Healer HoTs, externals, defensives and the
  rest) show one row per spell name. A spell tracked under more than one ID,
  such as Earth Shield, is ticked or unticked in one go instead of needing
  every copy found and unticked separately.

- A new custom Bar indicator starts inside the frame's top-right corner.

V1.34 (2026-09-27)
------------------

New:

- An alignment grid in Edit Mode, in your class colour, with the two centre
  lines drawn brighter. A small toolbar at the top of the screen switches the
  grid between Dimmed, Bright and Off, and turns Snap on or off.

- With Snap on, a frame you drag snaps its centre to the screen's centre
  lines, and its edges to the screen edges and to the nearest other frame -
  lined up flush with it or placed right beside it. That includes
  Squizzumables' frames and cooldown groups, which share the same grid. The
  grid lines themselves are a visual guide and do not snap. A snap holds
  until you pull a little further away, so frames do not flick between
  nearby points. Snap is off by default; with it off, dragging works exactly
  as before.

- Unit frames attached to a cooldown group can match its height: tick "Match
  Height of Attached Frame" under Position. Made for a frame placed to the
  left or right of the group, so the two line up top and bottom. It follows
  the group when that changes size.

Changed:

- A cast bar set to "On This Frame" now sits flush against its unit frame at
  an Offset Y of 0. There was a 2 pixel gap built in, so 0 was never really
  0. Bars you had given your own offset keep their exact position (the 2
  pixels are folded into your offset); bars left at 0 close the gap.

Fixed:

- With "Match Height of Attached Frame" on, the options preview now shows the
  matched height, and the Height slider says it is being overridden (and by
  how much), instead of both showing a height the frame is not using.

- Dragging the Tank Tracker in Edit Mode at a scale other than 100%: the
  handle ran ahead of or behind the cursor while dragging. Where it ended up
  was always right; only the live position was off.

V1.33 (2026-09-26)
------------------

New:

- Unit frames can attach to a cooldown group. Under Position, pick
  "Attached to a Cooldown Group", then the group, the side (above, below,
  left, right or centred) and an X/Y offset. Squizzumables' cooldown groups
  are listed first, custom groups included; Blizzard's Cooldown Manager rows
  are there too. The frame follows the group when it moves, out of combat.
  In combat it stays where it is, because unit frames cannot be moved
  mid-fight. The boss frames attach as one stack.

- Cast bars can attach to the Resource Bar: the power bar or the points row.
  While the one it is attached to is hidden (switched off, or no points in
  this spec), the cast bar goes back under its own frame.

- The cast bar and resource bar "Attach To" and "Match Width Of" lists now
  include Squizzumables' cooldown groups. Anyone using Squizzumables' Hide
  Blizzard's Cooldown Manager option should use those: Blizzard's own rows are
  moved offscreen by that option, and anything attached to them goes too.

- Works with Squizzumables V1.90, whose cooldown groups can attach to
  SquizzFrames' cast bars, unit frames and resource bar. If two settings would
  attach frames to each other in a circle, the second one is ignored rather
  than breaking the layout. That includes a unit frame attached to a group
  that is itself attached below that frame's cast bar.

- Better performance in groups and raids:
  - Party and raid frames no longer scan every aura change for custom
    indicator types you are not using. That scan runs for every group member
    on every aura change, and for most setups it found nothing to do.
  - The periodic aura refreshes (custom colour and bar indicators, unit frame
    buffs and debuffs, Tank Tracker) are spread out a little at a time instead
    of all running in the same frame, which removes a small regular hitch in
    large groups.

- Tank Tracker: the Debuffs and Defensives rows have a Growth setting, which
  sets the direction icons run and whether extra rows stack below or above.
  With a row placed above the frame and Rows set to 2 or more, "Right, new rows
  above" puts the first icon in the bottom row, next to the frame. Existing
  rows keep their current layout (right, new rows below).

V1.32 (2026-09-24)
------------------

Changed:

- The unit frames follow the same rule as the party and raid indicators:
  every element now starts at an X/Y offset of 0,0 on its anchor. That is the
  Name, Health and Level text (2 pixels in from their edge before), the buff
  and debuff rows (2 pixels off the frame), and the aura stack counts (1 pixel
  off their corner).

  Existing profiles are updated once, on the first load after the update: an
  element still at its old default moves to 0,0, and anything you placed
  yourself keeps your position.

V1.31 (2026-09-24)
------------------

Changed:

- Every indicator now starts at an X/Y offset of 0,0 on its anchor, instead
  of a few pixels off it. This covers the built-in indicators, the Healer
  preset and new custom indicators.

  Your existing profiles are updated once, on the first load after the
  update: an indicator still at its old default offset moves to 0,0, which
  shifts it by a few pixels (Leader Icon, the largest, by 10). Anything you
  moved yourself keeps your position, and nothing else in the profile changes.

V1.30 (2026-09-23)
------------------

New:

- Name, Health and Power Text each have a Custom Color picker in the
  Indicators tab, with opacity. Picking a colour switches the text to it;
  ticking Class Color (or Power Color) and back again restores it.
- Frame Opacity on the General page: one slider each for Party Frames, Raid
  Frames, Unit Frames (cast bars included), Pet Frames and the Tank Tracker.
  It fades the whole group and works together with Fade Out of Range, so an
  out-of-range player dims further rather than snapping back to full.

Fixed:

- The unit frames' options preview ignored "Class Color the Bar" on the cast
  bar, so with it ticked, changing Bar Color recoloured the preview but not
  the real bar. The preview now shows the class colour the real bar uses.
- The transparency slider in every colour picker ran backwards: dragging it
  towards opaque made the colour more transparent, and a colour's saved
  opacity opened at the opposite end of the slider.

V1.29 (2026-09-22)
------------------

New:

- Emergency Soul Link is built into click casting. Pick Item, then
  "Emergency Soul Link (any quality)" from the list: one binding covers both
  crafted qualities, uses the better one you are carrying, and switches by
  itself when that runs out (out of combat). It stays in the list whether or
  not you have one in your bags, so a healer can bind it ahead of time.

Fixed:

- Item click-cast bindings did nothing on SquizzFrames' own frames except
  throw a "bad argument ... C_Item.IsEquippableItem" error on every click. The
  item was handed to the game as a bare number, which it reads as an
  equipment slot rather than an item. Bindings made with Blizzard's frames or
  the mouseover option were unaffected.

V1.28 (2026-09-19)
------------------

New:

- Ping Marker. When someone pings a group member, the marker the game draws on
  its own raid frames now appears on yours as well. It follows your "show pings
  on raid frames" setting, and lives under Alerts in the Designer with its own
  position, size and frame level like any other indicator.

- Debuffs has a Filter: Everything, Priority debuffs, Boss & role mechanics, or
  Priority + Boss & role. It sits alongside Hide Crowd Control rather than
  replacing it, so the two combine, and the unit frames' debuff row offers the
  same choices.

  Everything stays the default, and the reason the others are opt-in is worth
  knowing: they rely on the game having FLAGGED a debuff as a boss, role or
  priority mechanic. Not every encounter's debuffs are flagged, and when they
  are not, a narrowed row shows nothing at all.

- Tank Tracker has a new debuff filter, "Encounter debuffs", and it is now the
  default. Instead of asking the game which debuffs are boss or role mechanics,
  it shows what the fight actually applies and drops anything permanent -- food,
  flasks, auras, forms.

  It replaces "Boss & role mechanics" as the default because that setting
  silently showed an EMPTY row in any encounter the game had not tagged. The
  Lost Explorers is the fight that found it: both of its tank swaps, Steady
  Strikes and Shredding Shards, carry no boss or role tag at all. If you had
  chosen a different filter yourself, your choice is kept.

  One trade worth knowing: a Brewmaster's Stagger shows under this filter. It
  carries none of the tags that would let it be filtered back out, so for now
  that is the price of seeing debuffs the game has not tagged.

V1.27 (2026-09-17)
------------------

Changed:

- Name Text, Health Text and Power Text now offer the same settings as the unit
  frames' text, instead of the older set they were built with.

  They take a single Anchor Point rather than an Anchor Point and a Relative
  Point: the text sits on the corner or edge you pick, which is what the second
  dropdown was being used to say anyway. Dragging them around in the Designer
  works exactly as before, and nothing moves when you update.

  Health Text and Power Text take one Format choice -- Health, Health %,
  Health + %, Health / Max, and Power, Power %, Power / Max -- in place of the
  three separate Show Percentage / Show Current / Show Max tickboxes, whose
  eight combinations included several nobody would pick on purpose. Your
  current setting carries across to the matching format.

  The Text Width control (unlimited / percentage / length) is replaced by Max
  Length, measured in characters, with a "..." on anything longer. A name the
  game is currently hiding from addons cannot be shortened, so it is left
  whole rather than dropped.

  Power Text can now show current / max, which the unit frames gained at the
  same time so both offer the same choices.

Fixed:

- Text anchored to a CORNER ignored its anchor when deciding which way to
  line up, so a name anchored top-right drew from the middle of its own space
  and looked like it was sitting top-left. Corners now line the text up the
  same way the unit frames always have.

V1.26 (2026-09-17)
------------------

Added:

- The five Holy Power runes as a resource point shape. Pick "Holy Power Runes"
  under Point Style "Shape" and the row lays all five out in order, the way the
  game's own bar does -- but as plain shapes, so they take whatever colour you
  choose exactly. Blizzard's own art is already coloured, and a colour put over
  it multiplies with it, which is why class and custom colours came out muddy
  on it and clean on everything else.

Fixed:

- Boss frames with buffs or debuffs above or below now make room for them. The
  stack spaced itself on the frames alone, so a row of auras ran into the next
  boss frame. Spacing is now a minimum: with aura rows switched on, the gap
  opens up on its own to fit them, and a spacing you have already raised by
  hand is left alone.

V1.25 (2026-09-17)
------------------

Added:

- Font dropdowns draw every font in its own typeface, so you can see what you
  are choosing without applying it first. The closed dropdown shows your
  current font in itself too. A font that will not load falls back to the
  default face instead of leaving a blank row, so one bad font from another
  addon cannot make the list look broken.

Changed:

- The Tank Tracker's "Max Icons" slider is now called "Max Per Row", which is
  what it has always actually done - a row holds this many icons times Rows.
  The label change is cosmetic; your settings are untouched.

Fixed:

- Dropdown lists stayed put when you scrolled the page behind them, leaving
  the open list floating away from the dropdown it belongs to. They now travel
  with the page.

- Tank Tracker icon rows never wrapped onto a second line - not on your frames
  and not in the options preview - however high Rows was set. The wrap width
  was being handed to the game under a name nothing read, so every row was
  left running as one unlimited line. The debuff row had a second reason on
  top of that: it could only ever hold a single line's worth of icons, so even
  with wrapping working there was nothing to spill onto the next line. Rows
  now does what it says on both rows.

  Defensives rows with a lot of icons will look different as a result: they
  used to run out sideways in one long line and now wrap at the per-row count.

V1.24 (2026-09-16)
------------------

Added:

- "/rl" as a shortcut for reloading your interface. Only claimed if no other
  addon already provides it, so an existing one keeps working.

Changed:

- Declares support for patch 12.1.5 alongside 12.1.0, so it loads on the
  12.1.5 test client without being marked out of date.

Fixed:

- The addon could fail to start, with "Cannot find a library instance of
  AceConfigDialog-3.0" in the error log, if you ran few enough other addons.
  One of the bundled libraries was being loaded after something that needs it
  at load time, and almost every other addon happens to provide that library
  first - so on a normal setup somebody else covered for it and nothing went
  wrong. Found on a test client running only five addons.

Removed:

- The "Show Unfiltered Auras" option on Healer HoTs, External Cooldowns and
  Defensive Cooldowns. It existed for a problem the game fixed five days after
  the option shipped: those indicators used to hide themselves for a player
  the game wouldn't let the addon filter buffs on, and this was the opt-out
  for people who preferred the unfiltered list to an empty space. A hotfix in
  August made filtering work for every group member, so the hiding stopped
  happening and the option stopped doing anything.

  Your other settings are untouched, and nothing on screen changes.

V1.23 (2026-09-16)
------------------

Added:

- With the resource points moved separately, the power bar and the points
  each have their own border switch. Thickness, padding and colour are still
  shared, and a border that was already on stays on for both.

- Unit frame cast bars can have a border, with thickness, padding and colour,
  under each frame's Cast Bar settings. It shows on the options preview too.

Fixed:

- The frame rate hitched every time somebody joined or left the group. One
  join makes the game announce the roster several times, and each
  announcement rebuilt every indicator on every frame from scratch, several
  times over - forty frames in a raid, rebuilt again and again for a change
  that usually affected one of them. Frames are now rebuilt only when the
  person they show, or a setting, has actually changed, and repeated
  announcements from one join no longer stack up passes of the same work.

  Click-casting was rewriting every binding onto every frame on each of those
  announcements as well - several thousand attribute writes for a raid, none
  of which could change anything, since joining a group does not change your
  bindings. Frames that already have the current bindings are now left alone;
  changing a binding still writes all of them immediately.

  A drag handler was also being added to each frame again on every re-wire
  and never removed, so a long session left dozens stacked on every frame.

- Indicators you have switched off are no longer built. Every indicator in
  the list was created and then hidden, and the aura-based ones are far from
  free to create - so walking into a raid built thousands of frames for
  indicators that were never going to draw anything. Switching one on still
  takes effect immediately, with no reload.

V1.22 (2026-09-14)
------------------

Added:

- The resource bar's power bar and resource points can be moved separately.
  Tick "Move Points Separately" on the Unit Frames page: each can then be
  dragged on its own in Edit Mode, attached to another frame, or attached to
  the other, with its own side and offsets, and the points can have their own
  width. They start exactly where they are, so nothing moves until you move
  it.

- Resource points don't have to be plain bars any more. Point Style can be a
  Shape (Round, Diamond, Hexagon, Star, Heart, Shield, Potion, Bottle or Nail
  Polish) or Blizzard Art, the game's own graphic for your class's resource.
  Points can also be coloured Rainbow, still or animated, and can fill left
  to right or bottom to top.

- Resource points now have the same width choices as the power bar: Same as
  Power Bar, Custom or Match a Frame, plus Fit to Points for shapes and art.
  Shapes and art spread evenly across that width, so the row lines up with the
  bar or frame it matches. The resource bar options are split into General,
  Power and Resource tabs.

- Resource points can have a border of their own: an outline around each
  point that follows its shape, with a thickness and colour. Bars and shapes
  both get one; Blizzard art already has its own edges.

Fixed:

- When SquizzFrames updated at the same login as Squizzumables or Avatar
  Continued, their update notes drew on top of each other and flickered. They
  now appear one after another: close one and the next opens.

- Updating from a version older than 1.18 showed the first-time welcome
  instead of the update notes.

V1.21 (2026-09-13)
------------------

Added:

- The Tank Tracker options page has a live, actual-size preview of a tank
  frame, pinned beside the settings, with mock debuff and defensive icons
  showing their duration and stack text. It updates as you drag.

- The Tank Tracker page is split into General, Debuffs and Defensives tabs.

- The tank name can be anchored anywhere on the bar, with X and Y offsets.

- Duration and stack text on both icon rows each have their own font,
  outline, size, colour, anchor and offsets. Until you change them they keep
  following the tracker's main font, so nothing moves on upgrade.

Fixed:

- Choosing no outline for the Tank Tracker's icon text now actually removes
  the outline.

V1.20 (2026-09-11)
------------------

Added:

- The unit frame preview shows duration and stack text on its mock aura
  icons, so the anchor and offset sliders for both can be judged without
  going to find something with a debuff on it. They are drawn from the same
  settings the real icons use, including font, size and colour, and update as
  you drag.

Changed:

- Unit frame aura duration text now sits in the middle of its icon by
  default, instead of hanging underneath it.

- The dispel gradient overlay now spans the whole health bar by default
  instead of half of it, on the party, raid and unit frames alike.

  Both of these are default changes, so they are carried across once for an
  existing profile that had not moved them. Anything you had set yourself is
  left alone, and either can be set back from its own sliders.

V1.19 (2026-09-11)
------------------

Fixed:

- Every target could show the same person's nickname for a whole dungeon.
  Nickname lookups were remembered against the unit token, and "target" is a
  token whose meaning changes every time you click something - so the first
  target that had a nickname on file became the name shown for every target
  after it. Nothing cleared it inside a key, which is why it came right only
  when the run ended and the zone changed. Tokens that get repointed during
  play - target, focus, their targets, boss and arena frames - are no longer
  remembered that way.

- Nicknames no longer apply to any unit frame except your own. The checkbox
  was only ever offered on the player frame, but the setting existed on every
  frame and defaulted to on, so target, focus and boss frames resolved
  nicknames with no way to say otherwise. The leftover setting is removed from
  those frames on load; your player frame keeps whatever you had.

V1.18 (2026-09-10)
------------------

Fixed:

- The unit frames' dispel overlay ignored its own settings and showed no icon
  at all. Three separate faults: the overlay shared its styling with the
  party/raid Dispels indicator, so whichever was applied last won for both
  (which is why picking Gradient still tinted the bar the party list's way);
  the opacity slider was passed through at a hundredth of its value, leaving
  the overlay effectively invisible; and the dispel-type icon was never built,
  because the icons became their own indicator and the unit frames were still
  asking the overlay for them. Each frame now styles its dispels independently
  of the party frames and of the other unit frames.

  The unit frames also gained the two overlay styles they were missing (Fill
  and Blizzard Strong Top), the gradient height/fade sliders, and the icon's
  own look options - debuff art instead of the type symbol, cooldown swipe,
  and border.

  The 1:1 preview on the options page draws dispels now too - it never did,
  so the overlay and icon could only be judged by going and finding something
  dispellable. It paints through the same code the live frame uses, so the
  two cannot drift.

- Tank Tracker settings needed a reload to take effect. Changing which debuffs
  are shown, the icon count, the size or the layout did nothing to a row that
  was already on screen - none of it was ever pushed to the live display, so
  every one of those settings was frozen at whatever it was when the row first
  appeared. They all apply immediately now.

  This is also the most likely reason co-tank debuff rows looked empty while
  the player's worked: the rows were showing whatever filter happened to be
  set when each one was first built, not the one you had selected.

Added:

- Dispel overlay and dispel icon on the unit frames. Tints the health bar by
  the type of dispellable debuff, with a matching icon, per dispel type
  colours, and a "show all types" option for when you are watching a tank
  rather than healing.

- The unit frame indicator settings are now one Indicators section with tabs
  across the top - Auras, Dispels, Absorbs, Highlights, Icons - instead of five
  separate rows in the sidebar, matching how the party and raid Indicators page
  works.

- Hover, target and aggro highlights on the unit frames, each with its own
  colour and thickness, per frame. They are separate from the party and raid
  indicators, so a thick gold target highlight on your boss frames does not
  change your raid frames.

  Target Highlight shows which frame your current target is on, which is most
  useful on boss, focus and target-of-target. All three render live on the 1:1
  preview as you adjust them. The aggro highlight can pulse, with its own
  speed and fade depth, the same as the party and raid version.

- Health bars can colour by how hurt someone is instead of by who they are -
  green at full, through amber, to red. Choose a smooth blend or hard bands,
  set all three colours and where the middle one sits.

  On the party, raid and pet frames it is one switch under Layout > Health
  Gradient, driving all of them together. The unit frames have their own, per
  frame, under Colors - so you can have a green-to-red target frame without
  changing your raid frames.

  The game will not let an addon read a health value in combat any more, so
  this hands the colours to the game and lets it pick - which means it keeps
  working through a whole encounter.

- An in-game note about what changed, shown once after each update. New
  installs get a short welcome instead. Re-open either any time with
  /sf notes.

- Unit frames can have a border - thickness, padding and colour, per frame.
  Every other frame type in the addon already had one; the unit frames were
  simply the one that never got it.

- Unit frame text now has a font and outline picker. The setting was already
  being stored and used, it just had no control anywhere, so every frame was
  stuck on the shipped default. It applies to all four readouts on the frame;
  each keeps its own size.

V1.17 (2026-09-08)
------------------

Added:

- Tank Tracker: the duration and stack text on both icon rows now have an
  anchor dropdown and their own offset sliders.

Fixed:

- Tank Tracker: the duration and stack text SIZE sliders did nothing. The size
  had in fact never been applied at all - the font settings were handed to the
  aura engine in the wrong shape, which it ignores silently rather than
  erroring - and on top of that the text style was only ever built when a row
  first appeared, so no text setting could update afterwards either.

V1.16 (2026-09-08)
------------------

Added:

- Tank Tracker (new): a compact frame per tank in your group, with that tank's
  incoming boss and role debuffs above the bar and their active defensives
  below it. Off by default; find it under Tank Tracker in the options and drag
  it in Edit Mode.

  Shows all tanks including you by default, or switch Include Yourself off to
  see only your co-tanks. Works anywhere you are grouped, and solo.

  Full control over both icon rows - position, offsets, icon size, count,
  rows, spacing, duration and stack text, borders - plus frame size, stacking
  direction, spacing, health colour, name font and a border.

  The debuff row defaults to Boss and role mechanics, which is where the game
  actually delivers tank-relevant debuffs. Defensives pick up both personal
  and external cooldowns.

  Layout inspired by CoTankTracker by zerbi; the implementation is our own, on
  the same aura engine the rest of the addon uses, so it keeps working through
  a whole encounter.

- The cast bar's spell name and cast timer now have their own font, size,
  outline, colour and offsets, set separately for each. They previously shared
  one size slider and borrowed the unit frame's font face, which left a cast
  bar detached from its frame - floating free, or riding a Cooldown Manager
  row - with no way to be styled to match where it actually sat.

  Existing cast bars look exactly as they did until you touch the new
  controls.

V1.15 (2026-09-06)
------------------

Fixed:

- Buff and debuff rows on the target, focus and boss frames were piling up
  duplicates: recasting a debuff added another copy of the same icon instead
  of refreshing the one already there, and switching target left the previous
  target's auras on screen. Both rows now force a full re-read - on a timer,
  and immediately whenever you change target or focus.

- Cast bars and the resource bar now follow a Cooldown Manager row when you
  change spec, talents or loadout. Nothing in the unit frames listened for any
  of those, so a bar set to match a CDM row's width kept the previous spec's
  width until you next touched a setting.

- The shield and heal-absorb overlays were drawing UNDERNEATH the health bar
  on the real unit frames, so they were invisible. They sat at the health
  bar's own layer, which left it to chance whether the bar or the overlay won
  -- and the bar did. They are a layer above it now, and the frame's text has
  moved onto its own layer above everything so it still reads over the top.

- Right-clicking a party or raid member no longer gives you a PET menu -- "Show
  Pet in Journal", "Report Pet Name", and crucially no Remove from Group. It
  happened for anyone whose data the game had not sent us: out of range, zoned
  elsewhere, or offline, which is exactly when you most need to remove them.

  The cause is in Blizzard's own right-click handler, which checks "is this
  somebody's battle pet" before it checks "is this a player", and falls into the
  first when it cannot answer either. SquizzFrames now spots that and reopens
  the correct menu. Nothing changes for real pets.

V1.14 (2026-09-06)
------------------

Added:

- Your own pet can now have its own standalone frame, positioned wherever you
  like and kept there in every group state - solo, in a party and in a raid.
  Turn it on under Pet Frames > My Pet. While it's on your pet is taken out of
  the Party and Raid pet layouts, so it never shows up twice.

- Unit Frames (new): player, target, target of target, focus and focus target,
  each independently enabled, sized and positioned, with a health bar and an
  optional power bar. Off by default. Turning it on hides Blizzard's matching
  frames - including its boss frames - and turning it back off gives them all
  back. Find it under Unit Frames in the options.

  Four text readouts per frame - Name, Health, Power and Level - each switched
  on separately, with its own anchor point (any of the nine), offsets, size and
  colour. Health can show the current value, a percent, both, or current/max;
  Power the value or a percent; Level on its own or with the class. Class
  colouring is a per-readout checkbox, off by default, with a custom colour
  picker underneath.

  Health bars colour by class for players and by reaction for NPCs.

  Bar texture and power bar colour come from the same Layout > Appearance
  settings your party frames already use, so everything matches without a
  second set of controls to keep in sync.

  There's also an optional "Mirror Player and Target": drag either frame in
  Edit Mode and the other follows to the opposite side of the screen. Off by
  default, so an asymmetric layout you set up on purpose stays that way.

- Cast bars for the player, target and focus frames, each moved and resized
  independently. A cast bar can sit on its own frame, attach to another frame
  on screen and follow it wherever it goes, or float free and be dragged
  anywhere in Edit Mode.

  Every cast bar shows a handle in Edit Mode whether or not anything is
  casting, so you can see exactly where it will appear. Free ones are orange
  and draggable; attached ones are grey and just show you the position, since
  they follow whatever they're anchored to.

  The width can follow the frame it belongs to, be set by hand, or match
  another frame on screen - including the Cooldown Manager's Essential and
  Utility rows and its tracked-buff bars. Matching tracks live, so a CDM row
  that grows or shrinks takes the cast bar with it.

  The spell icon sits inside the bar and counts toward its width, so matching
  the width to another frame lines the outer edges up exactly.

  Options for icon, spell name, cast timer, bar colour, class colouring, and
  the tint used for casts you can't interrupt. Blizzard's own player cast bar
  can be hidden from the same page - only ever while yours is switched on, so
  you can't end up with none at all.

- Boss frames, up to the five the game supports. They share one set of
  settings and stack in whichever direction you choose, at whatever spacing.
  Drag the first one in Edit Mode to move the whole stack; the rest show you
  where they'll land, so you can lay them out without being in a fight.

- Portraits on any frame, in three styles: the flat 2D portrait, a live 3D
  model, or the class icon. Each can sit on either side, inside the frame or
  beside it, with its own size, offsets, and a zoom control for 3D.

  2D portraits and class icons can be square or round - square by default.

  The 3D model option falls back to the 2D portrait automatically for any unit
  whose model the game won't load - most mobs, and anything in instanced
  content, where 12.1 keeps unit identities hidden from addons. You get a face
  either way instead of an empty box.

- Nicknames now show on the unit frames as well, including your own player
  frame, with a per-frame switch to turn them off. Purely cosmetic and purely
  local - it changes nothing anybody else sees.

- The Unit Frames options page is split into sections - General, Frame,
  Sizing, Colors, Text, Portrait, Cast Bar, Auras, Icons, Absorbs, Resources
  and Position - so you're not scrolling a single long list to find one
  setting. The unit tabs run along the top and the sections down the left, and
  both stay put while the settings scroll.

- Buff and debuff rows on any unit frame, positioned the way you'd expect:
  pick a corner or side (above-left, below-right, left of the frame, and so
  on) and the icons flow away from the frame from there. Growth follows the
  anchor unless you override it. Per-row controls for icon count, size,
  offsets, mine-only filtering, duration text, stacks and borders.

  They're built on the same aura engine the party frames use, so they keep
  working through a whole encounter rather than going blind the moment combat
  starts.

- A live preview down the right of the Unit Frames page, at actual size, so
  you can judge a width or a colour without closing the options and going to
  find a target. It updates as you drag a slider and shows the bars, text,
  portrait, cast bar and aura rows for whichever frame you're editing.

- A Resource Bar: your power bar plus your class's secondary resource, as a
  row of points - Holy Power, Combo Points, Chi, Soul Shards, Arcane Charges,
  Essence or Runes. It works out which one you use from your class and spec,
  and only draws points when you actually have them, so a Feral druid's combo
  points come and go with cat form on their own.

  Drag it in Edit Mode, or anchor it to another frame and it follows that
  frame around - the same list the cast bar offers, including the Cooldown
  Manager rows. It can match another frame's width too.

  Power bar and point row each have their own height and colour (automatic,
  class colour, or your own), the points can sit above or below the bar, and
  the power text has its own format, anchor, offsets, size and colour.

  A solid background sits behind the whole bar so the gaps between the
  resource points read as dark gutters instead of see-through holes - without
  it the charges are genuinely hard to count against a busy scene. On by
  default, with its own colour and padding.

  There's an optional border around the whole thing too, with its own
  thickness, padding and colour. It outlines both rows together, so set the
  row Gap to 0 if you want it tight around them.

  It has its own enable and works whether or not the unit frames themselves
  are switched on - wanting a Holy Power display is not the same as wanting a
  replacement player frame.

- Shield and heal-absorb overlays on any unit frame's health bar, each with
  its own colour and opacity. The shield bar can be set to only appear once
  the absorb is bigger than the missing health - the point where more healing
  would be wasted - and either can fill from the right instead of the left.

- A combat icon and a leader icon on the player frame, both with an anchor
  point, offsets, size and a tint. The leader icon falls back to the assistant
  badge in a raid.

  Arena frames are still to come.

Changed:

- Opacity sliders on every colour picker - across all the indicator pages and
  the unit frames page - now use the addon's own slider styling. They were the
  last stock Blizzard control left in the options.

- One "Hide Blizzard Frames" switch, on the General page, now covers the lot:
  party, raid, player, target, focus, boss, pet and the cast bar. It replaces
  the separate Hide Blizzard Party and Hide Blizzard Raid checkboxes.

  It's safe to just leave on, because it only ever hides a frame SquizzFrames
  is actually drawing. Turn our target frame off and Blizzard's comes back;
  same for every other frame. Blizzard's arena frames are left alone entirely
  for now, since we don't draw those yet.

  Your existing setting carries over. If you'd turned all of them off you keep
  Blizzard's frames; otherwise the new switch comes up on.

  Blizzard's pet frame is covered for the first time - it's hidden when you're
  using our standalone pet frame. If you're not, it stays, even with our player
  frame on (Blizzard parents the pet frame under the player frame, so it needed
  lifting clear to survive).

Fixed:

- No more "Migration: added missing built-in indicator ..." lines filling your
  chat when you join or leave a group. Those were developer diagnostics that
  ran whenever a profile loaded for the first time since an update, which with
  profile auto-switching on could be at the least explicable moment possible.
  The migrations themselves are unchanged; only the chatter is gone. /sf debug
  turns it back on if you ever need it.

- /sf lock, /sf unlock and the "can't reset in combat" message printed a bare
  "nil" instead of what they meant to say.

V1.13 (2026-08-31)
------------------

Fixed:

- The game no longer stutters every time you leave combat. Click-casting was
  rebuilding every binding on every frame it manages - your party or raid
  buttons, all 45 pet frame slots, and any Blizzard or EllesmereUI frames it
  takes over - each time a fight ended, whether or not anything actually
  needed rebuilding. It now only does that work when a change was genuinely
  held back by combat. A half-second retry loop that kept re-trying for the
  whole fight is gone with it.

V1.12 (2026-08-28)
------------------

Fixed:

- Buff tracking works properly again on cross-faction party members in the
  open world, and on anyone dead, phased, in a vehicle or across an instance
  boundary. Blizzard blocked spell-ID filtering for those cases when 12.1
  launched, so the addon hid Healer HoTs and the cooldown indicators rather
  than show you an unfiltered list of every buff someone had. They hotfixed it
  on the 24th, which turned that safeguard into the problem - it was hiding
  indicators that would now work. It's switched off.

V1.11 (2026-08-27)
------------------

Fixed:

- Joining a raid left the party frames on screen underneath the raid frames.
  The addon wasn't noticing the party-to-raid switch at all until something
  else forced it to re-read your group - which is why a /reload cleared it.
  Zoning into an instance also hid it, so it mostly showed up when you were
  invited while standing around.

- Same fault, second symptom: nothing re-read your spec or group type when you
  zoned, which is one of the things that stops profiles auto-switching. If you
  have spec or group profiles set up, expect them to start switching again -
  that's the intended behaviour returning, not a new one.

V1.10 (2026-08-26)
------------------

Fixed:

- "Fade Out of Range" did nothing. The checkbox saved your choice and nothing
  ever read it, so frames faded whether it was ticked or not. It works now,
  and turning it off stops the range checking entirely rather than just hiding
  the result.

- SquizzFrames no longer runs its two background checks when there's nothing
  for them to look at. Standing around solo, the range check was still running
  twice a second (you are never out of range of yourself, and it forced your
  own frame to full opacity every time), and the phase check once a second
  (you can't be in a different phase from yourself). Both now stop when you're
  alone and start again when you group up - the range one also keeps running
  solo if you have a pet frame, which is the one thing that can wander off.

V1.9 (2026-08-25)
-----------------

New:

- Raid frames get a "Group Growth" setting, next to Growth Direction on the
  Layout tab's Raid page. Growth Direction has always been about the units
  inside one subgroup; this is the level above it - which way the subgroup
  blocks themselves march, and from where.

  It offers Right/Left/Center when the groups sit side by side and Down/Up/
  Center when they're stacked (whichever axis they're on follows your
  orientation). Center is the interesting one: the blocks straddle the anchor
  so the raid fills out evenly both ways as groups fill in, instead of always
  extending off one side of it. With the frames anchored by their top edge,
  for instance, they used to creep rightward as groups appeared - now they
  stay centred under the anchor.

  Existing raid layouts are unchanged: no setting means the old behaviour.

- Both aggro indicators now work on pet frames, so a pet pulling something is
  as obvious as its owner doing it. They read the same settings as the main
  frames - colour, size, position, pulse - so there's nothing extra to set up,
  and threat is read per pet, meaning only the pet that actually has aggro
  lights up.

V1.8 (2026-08-24)
-----------------

New:

- New "Phased Icon" indicator: shows when a party member isn't in your phase -
  war mode, Chromie Time, sharding or quest phasing - or is off in a different
  instance group entirely, which gets the LFG eye instead.

  It's a separate indicator rather than another entry in Status Icon on
  purpose. Status Icon can only show one thing at a time, so a phased player
  who was also dead would show the skull and nothing else - and phasing is the
  more useful of the two to know about, since you can't heal, buff or res
  someone who isn't in your phase.

  Find it under Indicators, in the same Alerts group as Status Icon and Status
  Text. On by default, in the top-right corner of the button.

  One caveat worth knowing: the game only reports phasing for people within
  about 250 yards, and gives no answer at all past that. Nothing can work
  around it, so a phased player far enough away will show nothing until they
  get closer.

Changed:

- Aggro (blink) is a small movable block again, the way it originally was,
  instead of a border around the whole button - that shape duplicated what
  Aggro (border) already does and couldn't be placed anywhere. It starts in
  the top-left corner at 11x11 and can be dragged and resized like any other
  indicator. If you're upgrading, it's rebuilt at that default; only its
  on/off state and frame level carry over, since a border had no position or
  size to keep.

- Both aggro indicators gained a colour picker and the same pulse controls:
  whether it pulses at all, how long each fade takes, and how faint it goes.
  The blink pulses by default and the border doesn't, so neither changes
  behaviour just by gaining the settings - tick Pulse on Aggro (border) if you
  want the whole outline flashing instead of a corner marker.

- Edit Mode moved out of the General page and into the options window's title
  bar, next to the close button, so it can be reached from any tab.

- Closing the options window now leaves Edit Mode. Its toggle only exists in
  that window, so staying in edit mode after closing meant reopening the panel
  purely to switch it back off.

- Picking a different indicator now puts the settings pane back at the top,
  instead of keeping the previous indicator's scroll position and dropping you
  into the middle of an unrelated list of settings.

- The mouse wheel scrolls those panes a notch at a time now. It used to jump
  close to a full page per notch.

- External and Defensive Cooldowns now default to square icons (20x20) instead
  of 12x20, which drew every icon stretched. If you'd already changed the size
  yourself it's left exactly as you set it.

- The Orientation dropdown lists four directions with proper names ("Top to
  Bottom" rather than "top-to-bottom"). The two extra entries it used to
  carry, "horizontal" and "vertical", were duplicates of the first direction
  on each axis and several indicators ignored them outright - they're still
  understood if a profile has one saved, just no longer offered.

Fixed:

- Dragging frames in edit mode now starts the moment you press the mouse
  button, instead of sitting still for a moment first. Applies to the party
  container, the pet frames, the preview frames in the options panel, and
  dragging an indicator around in the Designer.

- Dragging by grabbing a unit frame itself (rather than the space around them)
  now works - that path had been doing nothing at all.

- Sliders are much easier to grab: the clickable area now extends above and
  below the thin track instead of matching the 4-pixel line exactly.

- The Edit Mode button stayed lit only while the cursor was on it; it now
  keeps showing whether edit mode is actually on.

- Neither aggro indicator ever appeared in the Designer or the group preview,
  so there was no way to see or place them without pulling a mob. The preview
  faked "no threat", and the check bailed out before reading the fake value at
  all on the group preview's frames, which have no unit.

- Vertical orientation now actually works for Healer HoTs, External and
  Defensive Cooldowns, Debuffs and CC. Those five only ever laid out a
  horizontal row: "Top to Bottom" and "Bottom to Top" fell through to a
  right-to-left row instead of stacking. Both the live frames and the
  Designer's preview follow the setting now, including which corner the block
  grows away from.

- Missing Buffs understood the four directions but not the "vertical" entry
  described above, and its right-to-left/bottom-to-top rows grew out of the
  indicator's own rect instead of inside it.

- A custom Bar indicator's "Bar Orientation" setting did nothing at all -
  nothing ever read it. It now sets which way the bar drains.

- Hovering is a faint tint of your accent colour (class colour by default)
  everywhere in the options window now, instead of the flat brownish-gold two
  places still used: the left-hand tab list (General, Layout, ...) and the
  indicator list on the Indicators tab. It stays well under the selected
  row's own tint so the two can't be confused.

- The Party/Raid buttons and Show Group Preview now light up on hover too, in
  the same accent tint. Whichever one you're already on doesn't change - it's
  accent-filled already.

- The "Custom Indicators >" row in the indicator list was drawn in the accent
  colour, which is the same colour a selected row uses - so it always looked
  like it was selected. It's styled like every other row now.

- Scrollbars are visible again on the Indicators tab and everywhere else that
  scrolls a list (spell lists, click-casting bindings, nicknames), so there's
  some indication that there's more below the fold. They appear only when
  there's actually something to scroll.

V1.7 (2026-08-21)
-----------------

Bug fixes:

- Fixed an "AddOn tried to call a protected function" error when dragging the
  frames to a new position while in combat. The frames can't be moved mid-fight
  - the game blocks it - so dragging now says so and waits instead of erroring.

  The error text blamed whichever other addon happened to be loaded (ElvUI in
  one report), which made it look like their problem. It wasn't.

Improvements:

- Sort By Role in a raid now sorts within each group, instead of rearranging
  the whole raid.

  Turning it on used to replace the group layout entirely - everyone was
  re-shuffled into tank, healer and damage blocks, and which group someone was
  actually in stopped being visible anywhere. Groups now stay groups, and roles
  are ordered inside each one.

  Two smaller things come with it: a group that isn't full no longer pushes the
  next group's members into its column, and Center growth now centres each
  group on its own size rather than assuming five members.

V1.6 (2026-08-19)
-----------------

Bug fixes:

- Fixed the "Attempt to access forbidden object" errors properly. V1.5's
  attempt at this reduced them but did not stop them.

  The game forbids addons from touching an aura icon once it has decided that
  player's buffs are private, and there is no reliable way to ask in advance
  whether a particular icon can be touched - it will say yes and then refuse
  anyway. The refusal can also be triggered by an entirely different addon's
  code running alongside ours, which is outside our control entirely.

  So restyling no longer tries to predict it. It simply tolerates being
  refused, and reapplies itself afterwards for any icon it was turned away
  from.

V1.5 (2026-08-19)
-----------------

Bug fixes:

- Reduced a flood of "Attempt to access forbidden object" errors coming from
  the aura indicators. One report had over five thousand in a single session.

  Only partly effective - see V1.6, which fixes it properly.

- Fixed a party member's frame never coming back if they leave and rejoin the
  group during combat, leaving a gap where their frame should be.

  Most visible with the NPC companions in Delves, who leave and instantly
  rejoin whenever you die, but it could happen to anyone. The game won't let
  frames be reassigned mid-fight, so the frame was left pointing at a player
  who was no longer there, and nothing put it right once the fight ended -
  only a /reload. Leaving combat now rebuilds the group properly.

Improvements:

- Healer HoTs, External Cooldowns and Defensive Cooldowns now hide themselves
  for a player the game won't let the addon filter buffs on, instead of showing
  that player's whole buff list.

  This is the cross-faction problem from V1.4, taken as far as it can go. There
  is no way to filter those buffs - the game switches spell filtering off
  entirely for a player you can't assist - so the choice is between showing
  everything and showing nothing. Showing everything turned out to be worse
  than noise: an icon in the External Cooldowns row means "this player has an
  external cooldown on them", and while filtering is off that isn't true.

  If you'd rather see the unfiltered list than nothing at all, each of the
  three indicators has a new "Show Unfiltered Auras" option to turn the hiding
  off.

- The addon now recognises several more situations where the game blocks buff
  filtering, and stops trusting its spell list in them: while you're in a
  vehicle (including the moment you're climbing in or out), during and after
  cutscenes, and for players who are dead, offline, phased or in a different
  instance.

  The cutscene case is the notable one - a cutscene quietly makes everyone
  unfilterable, including you, and it stayed that way afterwards. Patch 12.1
  plays one on your first login, which is why buffs could look wrong from the
  moment you logged in.

V1.4 (2026-08-16)
-----------------

New:

- Nicknames. Party and raid frames can now show a nickname in place of a
  character name, which is mostly aimed at long cross-realm names that never
  fit in the name text.

  There are two independent kinds. A private list is yours alone - you set a
  nickname for anyone you like and nobody else is involved. A shared nickname
  is one you set for yourself, which is sent to other people in your group who
  also run SquizzFrames, so they see you under the name you picked. You can
  turn the shared half off entirely and keep using the private list, and you
  can block any individual whose shared nickname you'd rather not see.

  Your own private entries always win over anything received from someone
  else, so a nickname you set is never overridden.

  Everything is set up on the new Nicknames page in the options panel (/sf).
  You don't have to type anyone's name out: target them and it's filled in for
  you, or pick them from a list of your current group. There are also
  /sf nick commands if you prefer typing - type it on its own for the list.

  Nicknames are stored per account rather than per profile, so they don't
  disappear when you switch profiles, and nicknames you set for other people
  only need entering once no matter which character you're on.

  The nickname you pick for yourself is per character by default, so alts can
  each have their own. If you'd rather use the same one everywhere, tick "Use
  this nickname on all my characters" - your per-character nicknames are kept,
  not overwritten, so you can switch back at any time.

Bug fixes:

- Changing options during combat no longer produces an "AddOn tried to call a
  protected function" error, and no longer leaves the frames at the wrong
  position until the next reload.

  Moving the frames back to their saved position is something the game only
  allows out of combat. Most paths that do this already waited for combat to
  end, but the ones reached from the options panel and from dragging did not,
  so adjusting a setting mid-fight failed outright. Those now wait for combat
  to end and then apply, like everything else.

- Fixed a crash in raids when Name Text's "Show Group Number" was enabled.

  Once a fight started and the game began hiding player details from addons,
  reading a player's raid group threw an error that stopped the name from
  updating at all. The group number is now left off when the game won't tell
  us, rather than taking the name down with it. The same fault was also
  present in the raid container's auto-sizing, where it could break the frame
  layout instead.

- "Hide Realm Name" no longer stops working partway through a fight.

  Once a fight starts, the game can hide a player's name from addons. The
  addon handled that by passing the name straight through to be drawn, which
  is safe, but meant the realm suffix came along with it and the setting was
  quietly ignored for the rest of the encounter. It now strips the realm using
  a method that works on hidden names too.

- Healer HoTs, External Cooldowns and Defensive Cooldowns show much less of a
  cross-faction group member's buff list in the open world.

  The game only lets an addon filter buffs by spell for a player you're able to
  assist, and cross-faction group members are not assistable outside an
  instance - which is why this looked fine in dungeons and broke the moment you
  stepped outside. The addon already had a fallback for that case, but only
  re-checked on vehicle transitions, so leaving a dungeon left it switched off.
  It now re-checks on zone and instance changes, roster changes and PvP flag
  changes as well.

  Not a complete fix, and it can't be one. That fallback can only filter on
  duration, so their long buffs (food, flasks, intellect, weapon enchants) are
  hidden while short ones still get through - most noticeable in combat, where
  nearly every buff is short. Inside a dungeon or raid the same player filters
  normally.

  This also fixes the reverse case: permanent tracked buffs (Beacon of Light
  and Beacon of Faith, for instance) that had gone missing after a session
  started in the wrong state now reappear as soon as you zone.

V1.3 (2026-08-14)
-----------------

Improvements:

- Custom "Colour" indicators gained an Expiring Color option: below a threshold
  you pick (< 3s, < 5s or < 10s remaining), the health bar switches to a second
  colour. It tracks the health fill exactly like the normal colour does, and
  works in combat.

  This was previously believed impossible. Remaining time is hidden from addons
  on 12.1, so nothing can compare it against a threshold - which is why the
  duration text options had to be rebuilt around the game's own formatter in
  V1.2. The colour now rides that same formatter, so the game makes the
  comparison and the addon never sees the number.

  Only Colour indicators anchored to the health bar can offer it. Ones that
  track auras by name, or that colour the unit button's border, use the older
  scanning path, which has no way to read remaining time safely.

- The Create Custom Indicator dropdown now offers Icon, Bar and Colour only.
  The other ten types were carried over from the addon's original design and
  have never been confirmed to work - some of them likely never did. Offering a
  type that quietly does nothing is worse than not offering it, so they're
  hidden until each has been checked.

  Nothing you already made is affected: an existing indicator of one of those
  types keeps working exactly as before. Types will be added back as they're
  verified.

- Every font dropdown now offers the full font list, not just four entries.
  That covers the Name/Health/Power/Status text indicators, all the Stack and
  Duration font blocks on the aura indicators, and the new pet name text. Any
  font registered by another addon you have installed shows up too.

  Your current selection is unaffected. The three names the old list used are
  kept at the bottom, marked "(legacy)" - one of them is the shipped default,
  and dropping it would have made every existing profile look like its font
  setting had been lost.

- Pet Frames gained "Match Owner Width" and "Match Owner Height" options. With
  one on, each pet frame takes that dimension from its owner instead of its own
  slider, and follows along as you change the party frame size. The two are
  independent, so you can match the width and still set the height by hand.
  Whichever slider is being matched hides rather than sitting there doing
  nothing.

  Attached mode only - a floating pet group sits away from the party frames,
  so there's no owner beside it for the size to match.

- Pet Frames gained a full Name Text section: show/hide, font, size, outline,
  shadow, colour, anchor point and X/Y offset. Party and Raid keep their own
  settings, as with every other pet setting, so a small raid pet frame can use
  a smaller font or hide the name entirely.

  Long names truncate at the frame edge rather than spilling out, and the text
  justifies toward whichever edge you anchor it to.

- Shield Overlay and Heal Absorb gained a Glow Color setting, tinting the
  overshield and over-absorb glow strips independently of the bar's own
  colour. Defaults to white, which is the artwork untouched, so nothing
  changes until you pick a colour.

  The alpha slider works alongside the glow's existing behaviour rather than
  replacing it: on Shield Overlay the glow still only appears while you're
  actually overshielded, and the slider sets how strong it is when it does.

- Dispel Icons gained a "Use Spell Icons" checkbox. Off by default, so nothing
  changes unless you want it: the dispel-type symbol stays the default, since
  it's what stays readable at 16px. Ticked, each icon shows the actual debuff's
  own artwork instead.

  The per-type dedupe still applies either way, so with this on you see the
  icon of whichever debuff of that type the game ranks first, not one icon per
  debuff. The type filter, size, position, orientation and frame level all
  work the same in both modes.

Bug fixes:

- Custom "Colour" indicators anchored to the health bar now honour the Frame
  Border and power bar the way the Dispels overlay does, in the Designer
  preview as well as on live frames. They tinted straight over both, which was
  most visible alongside a Dispels overlay on the same bar - the two disagreed
  about where the frame ended.

  Colour indicators anchored to the unit button (the border mode) are
  unchanged: that border draws outside the button and has nothing to inset
  against.

- Fixed keyboard and mouse-wheel click-casting bindings never working for the
  unit menu or for target. A plain "Y" bound to the menu did nothing, with or
  without a modifier, while spells and macros on the same keys worked fine.

  The game blocks those two actions unless the click that triggered them is a
  recognised click-cast binding. Keyboard bindings work by firing a simulated
  click whose button name the addon invents, so that check could never pass and
  the action was dropped every time. They now take the same route the mouse
  bindings already used for modified clicks, which bypasses the check entirely.

  Target was broken in exactly the same way and is fixed by the same change.

- Fixed opposite-faction group members being permanently faded as "out of
  range", however close they stood. Cross-faction groups are the only case
  affected, and only outdoors - the same players read correctly inside
  instances, which is what gave the cause away.

  Range checks lean on friendly spell and item range, and the game doesn't
  treat an opposite-faction player as a valid friendly target in the open
  world even while you're grouped, so every check answered "no" regardless of
  distance. There was already a fallback for this out of combat, but it only
  triggered when the check gave no answer at all, not when it answered "no" -
  and there was no fallback in combat, where that workaround isn't available.

  Cross-faction members now use the game's own group range check instead, in
  and out of combat. Same-faction members are unaffected and keep using your
  actual healing range.

- Fixed Healer HoTs, External Cooldowns and Defensive Cooldowns showing buffs
  they don't track while you're in a vehicle - or piloting an NPC with its own
  spell bar, which the game treats the same way. Scenario and encounter buffs
  would flood all three indicators at once.

  These indicators filter by spell ID, but the game only honours that filter
  while it considers you able to assist the unit being watched, and it decides
  that fresh for every aura. There's a 60-second duration cap as a backstop for
  when it doesn't - but the addon only decided whether to apply that cap once,
  when the indicator was first built. Enter a vehicle after that point and both
  filters stopped applying at the same moment, leaving nothing at all to narrow
  the list.

  It now re-checks whenever you enter or leave a vehicle, and re-points the
  indicators at the right unit at the same time. Buffs you track are unaffected.

- Fixed the Role Icon always showing DPS when you're solo, whatever you're
  actually specced as. The icon read your GROUP's role assignment, which
  simply doesn't exist outside a group - so a Holy Paladin questing alone,
  and the Designer preview alongside, both wore a damage icon.

  It now falls back to the role your current specialization implies whenever
  no group role is assigned, and updates the moment you change spec. Other
  party members are unchanged: their spec isn't readable without inspecting
  them, so an unassigned role still shows as DPS for them.

V1.2 (2026-08-13)
-----------------

Improvements:

- Dispel icons are now their own indicator, "Dispel Icons", with their own
  Enabled, Size, Position, Orientation and Frame Level - plus Show Cooldown
  Swipe and Show Icon Border toggles, both off by default so the dispel symbol
  reads cleanly on its own.

  Orientation picks Horizontal or Vertical, and Growth then offers that axis's
  two directions - Left to Right / Right to Left, or Up to Down / Down to Up.
  Switching axis re-points Growth automatically.

  "Dispels" is now purely the health bar overlay. Its Show Dispel Icons
  checkbox and its Size/Position are gone: those only ever existed to place the
  single dispel symbol, and the overlay always covers the health bar anyway.
  Your existing settings move across automatically - if you had dispel icons
  on, the new indicator arrives enabled, in the same place and at the same size.

  Dispel Icons also has its own Dispel Types filter, separate from the
  overlay's. The two are independent, so you can colour the health bar for
  every dispel type while only showing a symbol for the ones you actually
  react to.

- Dispel icons no longer stack on top of each other when a target has more than
  one dispellable debuff, and are deduplicated by type: three Magic debuffs
  show one Magic icon, Magic + Curse shows two. They keep the dispel-type
  symbol, and draw above the overlay and the rest of the frame content.

- Removed the Private Auras (Boss) indicator. Those debuffs are drawn by the
  game's own aura system on 12.1, so a separate indicator no longer does
  anything for them - it exists purely as a leftover from 12.0.7. It is
  removed from existing profiles automatically; boss private auras keep
  showing exactly as before.

- Click-casting now works on unit frames that aren't SquizzFrames'. That covers
  Blizzard's boss frames, player, pet, target, focus and both
  target-of-targets; EllesmereUI's party, raid, friendly boss and extra frames;
  and EllesmereUI's own player, target, focus, pet, target-of-target and boss
  frames. This is what lets you click-cast on dungeon and raid bosses, which
  have no SquizzFrames frame of their own.

  On by default, and harmless as a default: the stock bindings are Left =
  target and Right = menu, which is exactly what those frames already did. It
  only changes anything once you bind something yourself. There's an "Other
  addons' frames" checkbox on the Click Casting page to turn it off.

  Three notes. If you also have EllesmereUI's own click-casting switched on
  (it ships off), both addons will be writing to the same frames and whichever
  applied last wins - pick one. Arena enemy frames are not included, since
  unlike boss frames they're built on demand when an arena loads. And unticking
  the checkbox stops future updates but cannot retroactively strip bindings
  already applied; that takes a /reload.

- Out-of-range fading now works in combat. It previously switched itself off
  the moment a fight started and left every frame at full brightness, because
  the range checks it relied on (item range and interact distance) are
  unavailable in combat and were making every party member read as out of
  range.

  It now uses your class's own healing/buff spell range in combat, which is
  both available there and more accurate - it tracks your real reach,
  including talents and shorter ranges like Evoker's. Warriors, Hunters, Death
  Knights and Demon Hunters have no such spell, so they fall back to the
  standard ~40 yard group range instead. Dead party members use that same
  fallback, since a healing-range check on a corpse answers nothing useful.

- Range fading now reacts the moment someone moves out of range, instead of on
  the next half-second refresh. The periodic refresh is still there to cover
  the shorter class-specific ranges, which don't have an event of their own.

- Duration numbers on aura icons no longer carry a unit letter - "2" instead of
  "2m". Note this makes minutes and seconds read the same; on icons this small,
  the low end is what matters.

- The Designer preview now draws the duration text AND the stack count on
  Debuffs, CC, Healer HoTs and both Cooldown indicators, so you can see where
  they sit while positioning things. Both follow the same font, colour, anchor
  and offset settings the real icons use, and update as you drag the sliders.

- Healer HoTs gained the "< 5s Remaining" and "< 3s Remaining" duration
  options. It only offered Always and Never before, on the mistaken belief
  that thresholds were impossible for it.

Bug fixes:

- Fixed a custom "Icon" indicator drawing the wrong texture on live frames and
  printing its icon ID as the stack count (e.g. "135968" on Blessing of
  Freedom). The preview was unaffected, which was the clue: the two took
  different code paths, and the live one was handing a single-icon frame the
  argument list meant for a multi-icon grid, shifting every value by one.
  Both now decide the same way.

- The Stack Font and Duration Font size sliders go down to 1 instead of
  stopping at 5. On a 16-20px aura icon even size 5 is large.

- Fixed permanent buffs never appearing on Healer HoTs or the Cooldown
  indicators - Beacon of Light and Beacon of Faith most visibly, but it applied
  to any tracked buff with no duration.

  These indicators carry a 60-second duration cap to keep out food, flasks and
  other long buffs, needed because the game sometimes discards our tracked-spell
  list. That cap also rejects permanent auras outright, whatever the limit is
  set to. It's now applied only where the spell list is genuinely being ignored,
  so on frames where filtering works you get exactly your tracked spells,
  permanent ones included.

- Fixed the Stack Font and Duration Font settings doing nothing on Healer HoTs.
  It was missing the font defaults the other aura indicators ship, so the
  settings had nowhere to write.

- Fixed the Designer preview ignoring font settings for Healer HoTs, Debuffs,
  CC and the Cooldown indicators when no live frames existed yet - designing
  solo, or with the party frames hidden. The preview's mock duration and stack
  text read the same style table the real icons use, but that table was only
  ever built alongside a live aura container, so with none present the preview
  fell back to built-in defaults and edits appeared to do nothing.

- Fixed those font settings having no effect at all on custom Icon indicators,
  which is why the text stayed large no matter where the slider sat. The stack
  count was using a fixed built-in font, and the duration wasn't our text at
  all - it's the cooldown swipe's own countdown numbers, which use Blizzard's
  font and scale themselves to the icon. Both follow your settings now.

  The countdown's position is still Blizzard's to decide, so the Anchor and
  X/Y Offset in the Duration Font block don't move it - size, outline and
  colour do apply.

- Healer HoTs gained full Stack Font and Duration Font blocks, each under its
  own header, with font, outline, size, shadow, anchor, X/Y offset and colour -
  plus a Show Stacks toggle. This replaces the old duration-offset-only
  control, which the font block is a superset of; a duration offset saved
  under the old control is ignored in favour of the new one.

- Fixed a deleted custom indicator staying visible in the preview. It affected
  the colour and bar custom types specifically: those keep a live aura tracker
  across rebuilds (deliberately, so it isn't torn down and recreated every
  roster change), and nothing was cleaning them up when the indicator was
  removed from the list rather than merely disabled.

- Fixed a large memory leak in the aura indicators. Every aura indicator was
  building live aura trackers for frames that had no unit yet - and because
  those fell back to "player", each one ended up watching your own auras. On a
  raid-capable layout that was around 36 stray trackers per aura indicator,
  every one of them permanent for the rest of the session.

  Nothing visibly broke, which is why it went unnoticed; it just quietly cost
  memory and work every aura update.

- Fixed the layout preview building real aura trackers for every one of its
  fake party/raid slots, for indicators that preview hides anyway.

- Leader Icon gained a Frame Level setting. It never had one, so it couldn't be
  layered against Role Icon despite sitting in the same corner. On an existing
  profile the dropdown starts blank until you pick a value.

- Fixed the Frame Level slider doing nothing on Health Text and Power Text, so
  they couldn't be layered against Name Text. Text is a drawing, not a frame,
  and has no frame level of its own - Name Text was already given a real one
  behind the scenes, and now these two are too.

- Fixed the "Show Stacks" checkbox doing nothing on Debuffs, CC and both
  Cooldown indicators - stack counts were permanently on regardless.

- Fixed the Stack Font and Duration Font settings doing nothing on Debuffs, CC,
  Healer HoTs and both Cooldown indicators. Typeface, size, outline, anchor,
  X/Y offset and colour are all applied now - previously the duration and stack
  text ignored every one of those sliders and used fixed built-in values.

- Fixed the "Show Duration" thresholds doing nothing. "< 5s Remaining" and
  "< 3s Remaining" left the duration text on permanently; it now appears only
  once the remaining time drops below the threshold.

  These options were also labelled backwards ("> 5s Remaining") and now read
  the way they behave.

  Note "On Hover" still behaves as "Always" - detecting the hover needs a
  script handler on the aura icons, which the game no longer permits.

- Fixed profiles not auto-switching when you change specialization. The APIs
  used to read your current spec were moved by Blizzard in a recent patch, and
  the addon's fallback treated the missing ones as "no spec detected" rather
  than reporting an error - so auto-switching quietly did nothing, and the
  spec list on the Profiles page showed "No specializations found for this
  class" instead of letting you set the mapping up.

  Spec-specific click-casting spells were missing from the spell picker for
  the same reason, and are back.

- Fixed the Dispels overlay painting over the Frame Border. Its top, left and
  right edges now stop at the inside of the border, and follow the border's
  size setting as you change it. (The bottom edge already stopped short of the
  power bar.)

- Shield Overlay and Heal Absorb now stop at the same edges. Both spanned the
  whole health bar, so they painted over the Frame Border on three sides and
  over the power bar along the bottom. They follow the border's size setting
  as you change it, and reclaim the space when the border is off or the power
  bar is hidden.

V1.1 (2026-08-13)
-----------------

Bug fixes:

- Fixed aura indicators showing the wrong player's auras when the frames were
  re-sorted. Most visible with "Sort by Role" enabled, where dispel overlays
  would appear on the wrong party member, but Healer HoTs, Debuffs, CC and both
  Cooldown indicators were affected in the same way.

  Cause: these indicators are bound to their unit once, when they are created,
  while the group header reassigns units between frames every time the group is
  re-sorted. The frames stay put, the players move between them, and the aura
  indicators were left pointing at whoever used to be there. They are now
  re-pointed whenever the sort changes.

- Fixed the frames not re-syncing when a player's name resolved late (zoning in,
  or cross-realm party members loading in as "Unknown" first). This also
  re-sorts the group header, which had the same effect as above. It matters most
  with "Sort by Role", since that mode sorts by name within each role.

Note: during combat the frames deliberately stay one sort behind, because unit
frames cannot be safely rewired mid-fight. They re-sync as soon as you leave
combat.

V1.0
----

Initial release.

- Party frames for party1-4 plus the player, with configurable size, spacing,
  growth direction and orientation.
- Cell-style indicator system: name/health/power/status text, role, leader and
  raid target icons, aggro highlighting, shield bar, Healer HoTs, external and
  defensive cooldowns, debuffs, CC, dispels, missing buffs and private auras,
  plus user-created custom indicators.
- Click-casting with per-button, per-modifier bindings for spells, macros,
  items, target/focus/assist and the unit menu.
- Options panel via /sf, with a live preview designer and AceDB profile support.
- Optional integration with BliZzi_Interrupts.

This mod has no additional files