Quantcast

5.4.12

Steven Jackson [01-03-15 - 03:17]
5.4.12
Filename
Interface/AddOns/SVUI/assets/fonts/Dialog.ttf
Interface/AddOns/SVUI/assets/fonts/Names.ttf
Interface/AddOns/SVUI/data/defaults.lua
Interface/AddOns/SVUI/framework/api/api_general.lua
Interface/AddOns/SVUI/framework/movers/mover_dragger.lua
Interface/AddOns/SVUI/packages/bag/SVBag.lua
Interface/AddOns/SVUI/packages/bar/components/extra.lua
Interface/AddOns/SVUI/packages/chat/SVChat.lua
Interface/AddOns/SVUI/packages/map/SVMap.lua
Interface/AddOns/SVUI/packages/override/components/loot.lua
Interface/AddOns/SVUI/packages/plate/SVPlate.lua
Interface/AddOns/SVUI/packages/quest/SVQuest.lua
Interface/AddOns/SVUI/packages/quest/components/achievements.lua
Interface/AddOns/SVUI/packages/quest/components/active.lua
Interface/AddOns/SVUI/packages/quest/components/quests.lua
Interface/AddOns/SVUI/packages/tip/SVTip.lua
Interface/AddOns/SVUI/packages/tool/buttons/questwatch.lua
Interface/AddOns/SVUI/packages/unit/SVUnit.lua
Interface/AddOns/SVUI/setup/installer.lua
Interface/AddOns/SVUI/setup/presets.lua
Interface/AddOns/SVUI/system/core.lua
Interface/AddOns/SVUI/system/media.lua
Interface/AddOns/SVUI_ChatOMatic/components/answering_service.lua
Interface/AddOns/SVUI_ConfigOMatic/components/dock.lua
Interface/AddOns/SVUI_ConfigOMatic/components/fonts.lua
Interface/AddOns/SVUI_StyleOMatic/components/addons/Omen.lua
Interface/AddOns/SVUI_StyleOMatic/components/blizzard/character.lua
Interface/AddOns/SVUI_StyleOMatic/components/blizzard/garrison.lua
Interface/AddOns/SVUI_StyleOMatic/components/blizzard/quest.lua
diff --git a/Interface/AddOns/SVUI/assets/fonts/Dialog.ttf b/Interface/AddOns/SVUI/assets/fonts/Dialog.ttf
new file mode 100644
index 0000000..2b8c1ef
Binary files /dev/null and b/Interface/AddOns/SVUI/assets/fonts/Dialog.ttf differ
diff --git a/Interface/AddOns/SVUI/assets/fonts/Names.ttf b/Interface/AddOns/SVUI/assets/fonts/Names.ttf
deleted file mode 100644
index 2b8c1ef..0000000
Binary files a/Interface/AddOns/SVUI/assets/fonts/Names.ttf and /dev/null differ
diff --git a/Interface/AddOns/SVUI/data/defaults.lua b/Interface/AddOns/SVUI/data/defaults.lua
index 1575cc5..bbdc2cd 100644
--- a/Interface/AddOns/SVUI/data/defaults.lua
+++ b/Interface/AddOns/SVUI/data/defaults.lua
@@ -36,7 +36,7 @@ local function safename(id)
     return n
 end

-local DIALOGUE_FONT = "SVUI Name Font";
+local DIALOGUE_FONT = "SVUI Dialog Font";
 if(GetLocale() ~= "enUS") then
 	DIALOGUE_FONT = "SVUI Default Font"
 end
@@ -63,8 +63,6 @@ SV.defaults["general"] = {
     ["bubbles"] = true,
     ["comix"] = true,
     ["bigComix"] = false,
-    ["questWatch"] = true,
-    ["questHeaders"] = true,
     ["woot"] = true,
     ["gamemenu"] = '1',
     ["afk"] = true,
@@ -90,47 +88,45 @@ SV.defaults["totems"] = {
 }

 SV.defaults["font"] = {
-	["default"] 		= {file = "SVUI Default Font", 	size = 12, 	outline = "OUTLINE", optionName = "Default", 				optionDesc = "The most commonly used font."},
-	["chat"] 			= {file = "SVUI Default Font", 	size = 12, 	outline = "OUTLINE", optionName = "Chat", 					optionDesc = "Font used for chat text."},
-	["chattab"]			= {file = "SVUI Caps Font", 	size = 12, 	outline = "OUTLINE", optionName = "Chat Tabs", 				optionDesc = "Font used for chat tab labels."},
-    ["dialog"] 			= {file = DIALOGUE_FONT, 		size = 10, 	outline = "OUTLINE", optionName = "Dialog", 				optionDesc = "Font used in places that story text appears. (ie.. quest text)"},
-    ["title"] 			= {file = DIALOGUE_FONT, 		size = 16, 	outline = "OUTLINE", optionName = "Titles", 				optionDesc = "Font used to display various titles."},
-    ["number"] 			= {file = "SVUI Number Font", 	size = 11, 	outline = "OUTLINE", optionName = "Numbers (Regular)", 		optionDesc = "Font used to display most numeric values."},
-    ["number_big"]		= {file = "SVUI Number Font", 	size = 18, 	outline = "OUTLINE", optionName = "Numbers (Large)", 		optionDesc = "Font used to display larger numeric values."},
-    ["combat"] 			= {file = "SVUI Combat Font", 	size = 32, 	outline = "OUTLINE", optionName = "Combat", 				optionDesc = "Scrolling combat text font."},
-    ["alert"] 			= {file = "SVUI Alert Font", 	size = 20, 	outline = "OUTLINE", optionName = "Alerts", 				optionDesc = "Font used for on-screen message alerts."},
-    ["zone"] 			= {file = "SVUI Zone Font", 	size = 16, 	outline = "OUTLINE", optionName = "Zone Text",  			optionDesc = "Font used for zone names. Shown when changing zones."},
-    ["caps"] 			= {file = "SVUI Caps Font", 	size = 12, 	outline = "OUTLINE", optionName = "Caps", 					optionDesc = "Font typically used for things like tabs and fitted headers."},
-    ["aura"] 			= {file = "SVUI Number Font", 	size = 10, 	outline = "OUTLINE", optionName = "Auras", 					optionDesc = "Aura counts and timers use this font."},
-    ["data"] 			= {file = "SVUI Number Font", 	size = 11, 	outline = "OUTLINE", optionName = "Docked Stats", 			optionDesc = "Font used by the bottom and top data docks."},
-    ["narrator"]		= {file = "SVUI Narrator Font",	size = 12, 	outline = "OUTLINE", optionName = "Narratives", 			optionDesc = "Font used for things like the 'Meanwhile' tag."},
-    ["pixel"] 			= {file = "SVUI Pixel Font", 	size = 8, 	outline = "MONOCHROMEOUTLINE", optionName = "Pixel", 		optionDesc = "Tiniest fonts."},
-
-    ["questdialog"] 	= {file = "SVUI Default Font", 	size = 11, 	outline = "OUTLINE", optionName = "Quest Tracker Dialog", 	optionDesc = "Default font used in the quest tracker"},
-    ["questheader"] 	= {file = "SVUI Narrator Font", size = 16, 	outline = "OUTLINE", optionName = "Quest Tracker Titles", 	optionDesc = "Font used in the quest tracker for listing headers."},
-    ["questnumber"] 	= {file = "SVUI Number Font", 	size = 11, 	outline = "OUTLINE", optionName = "Quest Tracker Numbers", 	optionDesc = "Font used in the quest tracker to display numeric values."},
-
-    ["platename"] 		= {file = "SVUI Caps Font", 	size = 9, 	outline = "OUTLINE", optionName = "Nameplate Names", 		optionDesc = "Used on nameplates for unit names."},
-    ["plateaura"] 		= {file = "SVUI Caps Font", 	size = 9, 	outline = "OUTLINE", optionName = "Nameplate Auras", 		optionDesc = "Used on nameplates for aura texts."},
-
-    ["unitprimary"] 	= {file = "SVUI Number Font", 	size = 11, 	outline = "OUTLINE", optionName = "Unitframe Values", 		optionDesc = "Used on all primary unit frames for health, power and misc values.\nUnits: player, pet, target, focus, boss and arena"},
-    ["unitsecondary"] 	= {file = "SVUI Number Font", 	size = 11, 	outline = "OUTLINE", optionName = "Unitframe Values", 		optionDesc = "Used on all non-primary unit frames for health, power and misc values.\nUnits: pettarget, targettarget, focustarget, party, raid, raidpet, tank and assist."},
-    ["unitaurabar"] 	= {file = "SVUI Alert Font", 	size = 10, 	outline = "OUTLINE", optionName = "Unitframe AuraBar", 		optionDesc = "Used on unit aurabars."},
-    ["unitauramedium"] 	= {file = "SVUI Default Font", 	size = 10, 	outline = "OUTLINE", optionName = "Unitframe Aura (Medium)",optionDesc = "Used on unit frames for auras (medium scale)."},
-    ["unitauralarge"] 	= {file = "SVUI Number Font", 	size = 10, 	outline = "OUTLINE", optionName = "Unitframe Aura (Large)", optionDesc = "Used on unit frames for auras (large scale)."},
-    ["unitaurasmall"] 	= {file = "SVUI Pixel Font", 	size = 8, 	outline = "MONOCHROMEOUTLINE", optionName = "Unitframe Aura (Small)", 	optionDesc = "Used on unit frames for auras (small scale)."},
+	["default"] 		= {file = "SVUI Default Font", 	size = 12, 	outline = "OUTLINE"},
+    ["dialog"] 			= {file = DIALOGUE_FONT, 		size = 10, 	outline = "OUTLINE"},
+    ["title"] 			= {file = DIALOGUE_FONT, 		size = 16, 	outline = "OUTLINE"},
+    ["number"] 			= {file = "SVUI Number Font", 	size = 11, 	outline = "OUTLINE"},
+    ["number_big"]		= {file = "SVUI Number Font", 	size = 18, 	outline = "OUTLINE"},
+    ["header"]			= {file = "SVUI Number Font", 	size = 18, 	outline = "OUTLINE"},
+    ["combat"] 			= {file = "SVUI Combat Font", 	size = 32, 	outline = "OUTLINE"},
+    ["alert"] 			= {file = "SVUI Alert Font", 	size = 20, 	outline = "OUTLINE"},
+    ["zone"] 			= {file = "SVUI Zone Font", 	size = 16, 	outline = "OUTLINE"},
+    ["caps"] 			= {file = "SVUI Caps Font", 	size = 12, 	outline = "OUTLINE"},
+    ["aura"] 			= {file = "SVUI Number Font", 	size = 10, 	outline = "OUTLINE"},
+    ["data"] 			= {file = "SVUI Number Font", 	size = 11, 	outline = "OUTLINE"},
+    ["narrator"]		= {file = "SVUI Narrator Font",	size = 12, 	outline = "OUTLINE"},
+    ["pixel"] 			= {file = "SVUI Pixel Font", 	size = 8, 	outline = "MONOCHROMEOUTLINE"},
+    ["chatdialog"] 		= {file = "SVUI Default Font", 	size = 12, 	outline = "OUTLINE"},
+	["chattab"]			= {file = "SVUI Caps Font", 	size = 12, 	outline = "OUTLINE"},
+    ["lootdialog"] 		= {file = "SVUI Default Font", 	size = 14, 	outline = "OUTLINE"},
+    ["lootnumber"] 		= {file = "SVUI Number Font", 	size = 11, 	outline = "OUTLINE"},
+    ["rolldialog"] 		= {file = "SVUI Default Font", 	size = 14, 	outline = "OUTLINE"},
+    ["rollnumber"] 		= {file = "SVUI Number Font", 	size = 11, 	outline = "OUTLINE"},
+    ["bagdialog"] 		= {file = "SVUI Default Font", 	size = 11, 	outline = "OUTLINE"},
+    ["bagnumber"] 		= {file = "SVUI Number Font", 	size = 11, 	outline = "OUTLINE"},
+    ["tipdialog"] 		= {file = "SVUI Default Font", 	size = 12, 	outline = "NONE"},
+    ["tipheader"] 		= {file = "SVUI Default Font", 	size = 14, 	outline = "NONE"},
+    ["questdialog"] 	= {file = "SVUI Default Font", 	size = 12, 	outline = "OUTLINE"},
+    ["questheader"] 	= {file = "SVUI Caps Font", 	size = 16, 	outline = "OUTLINE"},
+    ["questnumber"] 	= {file = "SVUI Number Font", 	size = 11, 	outline = "OUTLINE"},
+    ["platename"] 		= {file = "SVUI Caps Font", 	size = 9, 	outline = "OUTLINE"},
+    ["platenumber"] 	= {file = "SVUI Caps Font", 	size = 9, 	outline = "OUTLINE"},
+    ["plateaura"] 		= {file = "SVUI Caps Font", 	size = 9, 	outline = "OUTLINE"},
+    ["unitprimary"] 	= {file = "SVUI Number Font", 	size = 11, 	outline = "OUTLINE"},
+    ["unitsecondary"] 	= {file = "SVUI Number Font", 	size = 11, 	outline = "OUTLINE"},
+    ["unitaurabar"] 	= {file = "SVUI Alert Font", 	size = 10, 	outline = "OUTLINE"},
+    ["unitauramedium"] 	= {file = "SVUI Default Font", 	size = 10, 	outline = "OUTLINE"},
+    ["unitauralarge"] 	= {file = "SVUI Number Font", 	size = 10, 	outline = "OUTLINE"},
+    ["unitaurasmall"] 	= {file = "SVUI Pixel Font", 	size = 8, 	outline = "MONOCHROMEOUTLINE"},
 }

 SV.defaults["media"] = {
-    ["fonts"] = {
-        ["default"] = "SVUI Name Font",
-        ["dialog"] = DIALOGUE_FONT,
-        ["number"] = "SVUI Number Font",
-        ["combat"] = "SVUI Number Font",
-        ["giant"] = "SVUI Name Font",
-        ["size"] = 10,
-        ["unicodeSize"] = 12,
-    },
     ["textures"] = {
         ["pattern"]      = "SVUI Backdrop 1",
         ["comic"]        = "SVUI Comic 1",
@@ -231,7 +227,7 @@ SV.defaults["Dock"] = {

 SV.defaults["SVBar"] = {
 	["enable"] = true,
-	["font"] = "SVUI Clean Font",
+	["font"] = "SVUI Default Font",
 	["fontSize"] = 11,
 	["fontOutline"] = "OUTLINE",
 	["countFont"] = "SVUI Number Font",
@@ -528,7 +524,7 @@ SV.defaults["SVChat"] = {
 	["tabHeight"] = 20,
 	["tabWidth"] = 75,
 	["tabStyled"] = true,
-	["font"] = "SVUI Clean Font",
+	["font"] = "SVUI Default Font",
 	["fontOutline"] = "OUTLINE",
 	["tabFont"] = "SVUI Tab Font",
 	["tabFontSize"] = 11,
@@ -745,7 +741,6 @@ SV.defaults["SVPlate"] = {

 SV.defaults["SVQuest"] = {
     ["enable"] = true,
-    ["rowHeight"] = 20,
 };

 SV.defaults["SVTip"] = {
@@ -766,7 +761,7 @@ SV.defaults["SVTip"] = {
 	["healthBar"] = {
 		["text"] = true,
 		["height"] = 10,
-		["font"] = "SVUI Clean Font",
+		["font"] = "SVUI Default Font",
 		["fontSize"] = 10,
 	},
 };
diff --git a/Interface/AddOns/SVUI/framework/api/api_general.lua b/Interface/AddOns/SVUI/framework/api/api_general.lua
index 572d880..f5de5f3 100644
--- a/Interface/AddOns/SVUI/framework/api/api_general.lua
+++ b/Interface/AddOns/SVUI/framework/api/api_general.lua
@@ -34,7 +34,7 @@ local math      = _G.math;
 local floor, abs, min, max = math.floor, math.abs, math.min, math.max;
 local parsefloat, ceil = math.parsefloat, math.ceil;
 --[[ STRING METHODS ]]--
-local lower = string.lower;
+local lower, upper = string.lower, string.upper;
 --[[ TABLE METHODS ]]--
 local tremove, tcopy, twipe, tsort, tconcat, tdump = table.remove, table.copy, table.wipe, table.sort, table.concat, table.dump;
 --[[
@@ -165,72 +165,93 @@ APPENDED FONT TEMPLATING METHODS
 ##########################################################
 ]]--
 local ManagedFonts = {};
-local RestrictedFonts = {};

-local FontManager = function(self, fontTemplate, fontJustifyH)
+local FONT_LIST_DIRTY = false;
+
+local FontManager = function(self, template, arg, sizeMod, styleOverride, colorR, colorG, colorB)
     if not self then return end
-    local STANDARDFONTSIZE = SV.db.font and SV.db.font.default.size or 11
-
-    fontTemplate = fontTemplate or "default";
-    fontJustifyH = fontJustifyH or "CENTER";
-    local template = SV.db.font[fontTemplate];
-    if(not template) then
-        --print(fontTemplate)
-        return
+    template = template or "default";
+    local info = SV.db.font[template];
+    if(not info) then return end
+
+    local isSystemFont = false;
+    if(arg and (arg == 'SYSTEM')) then
+        isSystemFont = true;
     end
-
-    self.___template = fontTemplate;
-    self.___file = LSM:Fetch("font", template.file);
-    self.___size = template.size;
-    self.___style = template.outline;
-    self.___common = (template.size == STANDARDFONTSIZE);
-
-    self:SetFont(self.___file, self.___size, self.___style)
-    if(template.outline and template.outline ~= "NONE") then
-        self:SetShadowColor(0, 0, 0, 0)
-    else
-        self:SetShadowColor(0, 0, 0, 0.2)
-    end
-    self:SetShadowOffset(1, -1)
-    self:SetJustifyH(fontJustifyH)
-    self:SetJustifyV("MIDDLE")

-    if(fontTemplate ~= "number") then
-        ManagedFonts[self] = true
+    local file = LSM:Fetch("font", info.file);
+    local size = info.size;
+    local outline = info.outline;
+
+    if(styleOverride) then
+        self.___fontOutline = styleOverride;
+        outline = styleOverride;
     end

-    --RestrictedFonts[fontTemplate] = RestrictedFonts[fontTemplate] or {}
-    --tinsert(RestrictedFonts[fontTemplate], self)
-end
---[[
-##########################################################
-UPDATE CALLBACKS
-##########################################################
-]]--
-local function FontTemplateUpdates()
-    local defaultSize = SV.db.font.default.size;
-    --local frameCount = 0;
-    for frame in pairs(ManagedFonts) do
-        if frame then
-            local template = SV.db.font[frame.___template];
-            frame.___file = LSM:Fetch("font", template.file);
-            frame.___size = frame.___common and defaultSize or template.size;
-            frame.___style = template.outline;
-            frame:SetFont(frame.___file, frame.___size, frame.___style);
+    self.___fontSizeMod = sizeMod or 0;
+    self:SetFont(file, (size + self.___fontSizeMod), outline)

-            --frameCount = frameCount + 1
+    if(not isSystemFont) then
+        if(info.outline and info.outline ~= "NONE") then
+            self:SetShadowColor(0, 0, 0, 0)
         else
-            ManagedFonts[frame] = nil
+            self:SetShadowColor(0, 0, 0, 0.2)
+        end
+        self:SetShadowOffset(1, -1)
+        self:SetJustifyH(arg or "CENTER")
+        self:SetJustifyV("MIDDLE")
+    end
+
+    if(colorR and colorG and colorB) then
+        self:SetTextColor(colorR, colorG, colorB);
+    end
+
+    if(not ManagedFonts[template]) then
+        ManagedFonts[template] = {}
+    end
+
+    ManagedFonts[template][self] = true
+end
+
+SV.SetToFontManager = FontManager;
+
+local function UpdateFontTemplate(template)
+    template = template or "default";
+    local info = SV.db.font[template];
+    local file = LSM:Fetch("font", info.file);
+    local size = info.size;
+    local line = info.outline;
+    local list = ManagedFonts[template];
+
+    for frame in pairs(list) do
+        if frame then
+            if(frame.___fontOutline) then
+                frame:SetFont(file, (size + frame.___fontSizeMod), frame.___fontOutline);
+            else
+                frame:SetFont(file, (size + frame.___fontSizeMod), line);
+            end
+        else
+            ManagedFonts[template][frame] = nil;
         end
     end
+end

-    -- print("Total FontFrames: " .. frameCount)
-    -- for fontGroup, list in pairs(RestrictedFonts) do
-    --     print("Total [" .. fontGroup .."]: " .. #list)
-    -- end
+local function UpdateAllFontTemplates()
+    for template, _ in pairs(ManagedFonts) do
+        UpdateFontTemplate(template)
+    end
+end
+
+local function UpdateFontGroup(...)
+    for i = 1, select('#', ...) do
+        local template = select(i, ...)
+        if not template then break end
+        UpdateFontTemplate(template)
+    end
 end

-SV.Events:On("SVUI_FONTS_UPDATED", "FontTemplateUpdates", FontTemplateUpdates);
+SV.Events:On("SVUI_ALLFONTS_UPDATED", "UpdateAllFontTemplates", UpdateAllFontTemplates);
+SV.Events:On("SVUI_FONTGROUP_UPDATED", "UpdateFontGroup", UpdateFontGroup);
 --[[
 ##########################################################
 SECURE FADING
diff --git a/Interface/AddOns/SVUI/framework/movers/mover_dragger.lua b/Interface/AddOns/SVUI/framework/movers/mover_dragger.lua
index a4bd85c..f821c6e 100644
--- a/Interface/AddOns/SVUI/framework/movers/mover_dragger.lua
+++ b/Interface/AddOns/SVUI/framework/movers/mover_dragger.lua
@@ -354,7 +354,7 @@ function Dragger:Initialize()
 		self.Frames = {}
 	end

-	if(not SV.db.general.questWatch) then
+	if(not SV.db.SVQuest.enable) then
 		UIPanels["ObjectiveTrackerFrame"] = { moving = false, snapped = false, canupdate = false, cansetpoint = false, centered = false };
 	end
 	if(SV.db.SVMap.tinyWorldMap) then
diff --git a/Interface/AddOns/SVUI/packages/bag/SVBag.lua b/Interface/AddOns/SVUI/packages/bag/SVBag.lua
index d0541ad..53467f7 100644
--- a/Interface/AddOns/SVUI/packages/bag/SVBag.lua
+++ b/Interface/AddOns/SVUI/packages/bag/SVBag.lua
@@ -78,10 +78,20 @@ local RefProfessionColors = {
 	[0x10000] = {222/255,13/255,65/255},
 	[0x100000] = {18/255,224/255,180/255}
 }
-
 local BagFilters = CreateFrame("Frame", "SVUI_BagFilterMenu", UIParent);
 --[[
 ##########################################################
+UPVALUES
+##########################################################
+]]--
+local DIALOG_FONT = [[Interface\AddOns\SVUI\assets\fonts\Default.ttf]];
+local DIALOG_FONTSIZE = 12;
+local DIALOG_FONTOUTLINE = "OUTLINE";
+local NUMBER_FONT = [[Interface\AddOns\SVUI\assets\fonts\Default.ttf]];
+local NUMBER_FONTSIZE = 12;
+local NUMBER_FONTOUTLINE = "OUTLINE";
+--[[
+##########################################################
 LOCAL FUNCTIONS
 ##########################################################
 ]]--
@@ -1294,7 +1304,7 @@ do
 		frame.holderFrame:SetPointToScale("BOTTOM", frame, "BOTTOM", 0, frame.bottomOffset)

 		frame.Title = frame:CreateFontString()
-		frame.Title:SetFontObject(NumberFont_Outline_Large)
+		frame.Title:FontManager("header")
 		frame.Title:SetText(INVENTORY_TOOLTIP)
 		frame.Title:SetPoint("TOPLEFT", frame, "TOPLEFT", 2, -2)
 		frame.Title:SetTextColor(1,0.8,0)
@@ -1305,7 +1315,7 @@ do
 		frame.BagMenu:Hide()

 		frame.goldText = frame:CreateFontString(nil, "OVERLAY")
-		frame.goldText:FontManager("number")
+		frame.goldText:FontManager("bagnumber")
 		frame.goldText:SetPointToScale("BOTTOMRIGHT", frame.holderFrame, "TOPRIGHT", -2, 4)
 		frame.goldText:SetJustifyH("RIGHT")

@@ -1325,7 +1335,7 @@ do
 		frame.editBox:SetScript("OnChar", Search_OnInput)
 		frame.editBox.SearchReset = Search_OnKeyPressed
 		frame.editBox:SetText(SEARCH)
-		frame.editBox:FontManager("default")
+		frame.editBox:FontManager("bagdialog")

 		local searchButton = CreateFrame("Button", nil, frame)
 		searchButton:RegisterForClicks("LeftButtonUp", "RightButtonUp")
@@ -1334,7 +1344,7 @@ do
 		searchButton:SetStylePanel("Button")
 		searchButton:SetScript("OnClick", Search_OnClick)
 		local searchText = searchButton:CreateFontString(nil, "OVERLAY")
-		searchText:SetFont(SV.Media.font.default, 12, "NONE")
+		searchText:FontManager("bagdialog", nil, 0, "NONE")
 		searchText:SetAllPoints(searchButton)
 		searchText:SetJustifyH("CENTER")
 		searchText:SetText("|cff9999ff"..SEARCH.."|r")
@@ -1413,7 +1423,7 @@ do
 			frame.currencyButton[h].icon:SetTexCoord(0.1, 0.9, 0.1, 0.9)
 			frame.currencyButton[h].text = frame.currencyButton[h]:CreateFontString(nil, "OVERLAY")
 			frame.currencyButton[h].text:SetPointToScale("LEFT", frame.currencyButton[h], "RIGHT", 2, 0)
-			frame.currencyButton[h].text:FontManager("number_big")
+			frame.currencyButton[h].text:FontManager("bagnumber")
 			frame.currencyButton[h]:SetScript("OnEnter", Token_OnEnter)
 			frame.currencyButton[h]:SetScript("OnLeave", Token_OnLeave)
 			frame.currencyButton[h]:SetScript("OnClick", Token_OnClick)
@@ -1486,7 +1496,7 @@ do
 		frame.holderFrame:SetPointToScale("BOTTOM", frame, "BOTTOM", 0, frame.bottomOffset)

 		frame.Title = frame:CreateFontString()
-		frame.Title:SetFontObject(NumberFont_Outline_Large)
+		frame.Title:FontManager("header")
 		frame.Title:SetText(isReagent and REAGENT_BANK or BANK or "Bank")
 		frame.Title:SetPoint("TOPLEFT", frame, "TOPLEFT", 2, -2)
 		frame.Title:SetTextColor(1,0.8,0)
@@ -1790,6 +1800,15 @@ end
 BUILD FUNCTION / UPDATE
 ##########################################################
 ]]--
+function MOD:UpdateLocals()
+	DIALOG_FONT = LSM:Fetch("font", SV.db.font.bagdialog.file);
+	DIALOG_FONTSIZE = SV.db.font.bagdialog.size or 11;
+	DIALOG_FONTOUTLINE = SV.db.font.bagdialog.outline;
+	NUMBER_FONT = LSM:Fetch("font", SV.db.font.bagnumber.file);
+	NUMBER_FONTSIZE = SV.db.font.bagnumber.size;
+	NUMBER_FONTOUTLINE = SV.db.font.bagnumber.outline;
+end
+
 function MOD:ReLoad()
 	if not SV.db.SVBag.enable then return end
 	self:RefreshBagFrames()
diff --git a/Interface/AddOns/SVUI/packages/bar/components/extra.lua b/Interface/AddOns/SVUI/packages/bar/components/extra.lua
index b025066..2455900 100644
--- a/Interface/AddOns/SVUI/packages/bar/components/extra.lua
+++ b/Interface/AddOns/SVUI/packages/bar/components/extra.lua
@@ -58,6 +58,12 @@ local ExtraButton_OnEvent = function(self, event)
 			self:SetAbility()
 		end
 	else
+		if(not InCombatLockdown()) then
+			local action = ExtraActionButton1:GetAttribute('action')
+			if(action) then
+				self:SetAbility(action)
+			end
+		end
 		self:Update()
 	end
 end
diff --git a/Interface/AddOns/SVUI/packages/chat/SVChat.lua b/Interface/AddOns/SVUI/packages/chat/SVChat.lua
index f906e41..eb4150f 100644
--- a/Interface/AddOns/SVUI/packages/chat/SVChat.lua
+++ b/Interface/AddOns/SVUI/packages/chat/SVChat.lua
@@ -660,15 +660,13 @@ do
 		local chatID = chat:GetID();
 		local tabName = chatName.."Tab";
 		local tabText = _G[chatName.."TabText"]
-		--local _, fontSize = FCF_GetChatWindowInfo(chatID);
-		--CHAT_FONTSIZE = fontSize
-		chat:SetFont(CHAT_FONT, CHAT_FONTSIZE, CHAT_FONTOUTLINE)
-		tabText:SetFont(TAB_FONT, TAB_FONTSIZE, TAB_FONTOUTLINE)
+		chat:FontManager("chatdialog", "LEFT")
+		tabText:FontManager("chattab")
 		if(not chat.Panel) then
 			chat:SetStylePanel("Default", "Transparent")
 			chat.Panel:Hide()
 		end
-		if(CHAT_FONTOUTLINE ~= 'NONE' )then
+		if(SV.db.font.chatdialog.outline ~= 'NONE' )then
 			chat:SetShadowColor(0, 0, 0, 0)
 			chat:SetShadowOffset(0, 0)
 		else
@@ -908,12 +906,11 @@ do
 			chat = FCF_GetCurrentChatFrame();
 		end
 		if ( not size ) then
-			size = self.value or CHAT_FONTSIZE;
+			size = self.value or SV.db.font.chatdialog.size;
 		end
-		CHAT_FONTSIZE = size;
-		SV.db.font.chat.size = size;
-		chat:SetFont(CHAT_FONT, size, CHAT_FONTOUTLINE)
-		if(CHAT_FONTOUTLINE ~= 'NONE' )then
+		SV.db.font.chatdialog.size = size;
+		SV.Events:Trigger("SVUI_FONTGROUP_UPDATED", "chatdialog");
+		if(SV.db.font.chatdialog.outline ~= 'NONE' )then
 			chat:SetShadowColor(0, 0, 0, 0)
 			chat:SetShadowOffset(0, 0)
 		else
@@ -1059,15 +1056,9 @@ function MOD:UpdateLocals()
 	CHAT_ALLOW_URL = SV.db.SVChat.url;
 	CHAT_HOVER_URL = SV.db.SVChat.hyperlinkHover;
 	CHAT_STICKY = SV.db.SVChat.sticky;
-	CHAT_FONT = LSM:Fetch("font", SV.db.font.chat.file);
-	CHAT_FONTSIZE = SV.db.font.chat.size or 11;
-	CHAT_FONTOUTLINE = SV.db.font.chat.outline;
 	TAB_WIDTH = SV.db.SVChat.tabWidth;
 	TAB_HEIGHT = SV.db.SVChat.tabHeight;
 	TAB_SKINS = SV.db.SVChat.tabStyled;
-	TAB_FONT = LSM:Fetch("font", SV.db.font.chattab.file);
-	TAB_FONTSIZE = SV.db.font.chattab.size;
-	TAB_FONTOUTLINE = SV.db.font.chattab.outline;
 	CHAT_FADING = SV.db.SVChat.fade;
 	CHAT_PSST = LSM:Fetch("sound", SV.db.SVChat.psst);
 	TIME_STAMP_MASK = SV.db.SVChat.timeStampFormat;
@@ -1076,13 +1067,6 @@ function MOD:UpdateLocals()
 	end
 end

-local function ForceChatFrameUpdate()
-	MOD:UpdateLocals()
-	MOD:RefreshChatFrames(true)
-end
-
-SV.Events:On("SVUI_FONTS_UPDATED", "ForceChatFrameUpdate", ForceChatFrameUpdate);
-
 function MOD:ReLoad()
 	if(not SV.db.SVChat.enable) then return end
 	self:RefreshChatFrames(true)
diff --git a/Interface/AddOns/SVUI/packages/map/SVMap.lua b/Interface/AddOns/SVUI/packages/map/SVMap.lua
index ec67e8f..6433f8c 100644
--- a/Interface/AddOns/SVUI/packages/map/SVMap.lua
+++ b/Interface/AddOns/SVUI/packages/map/SVMap.lua
@@ -283,7 +283,7 @@ do
 end

 local function UpdateMapCoords()
-	local xF, yF = "|cffffffffx:  |r%.1f", "|cffffffffy:  |r%.1f"
+	local xF, yF = "|cffFFCC00X:  |r%.1f", "|cffFFCC00Y:  |r%.1f"
 	local skip = IsInInstance()
 	local c, d = GetPlayerMapPosition("player")
 	if((not skip) and (c ~= 0 and d ~= 0)) then
diff --git a/Interface/AddOns/SVUI/packages/override/components/loot.lua b/Interface/AddOns/SVUI/packages/override/components/loot.lua
index c19b265..ef86996 100644
--- a/Interface/AddOns/SVUI/packages/override/components/loot.lua
+++ b/Interface/AddOns/SVUI/packages/override/components/loot.lua
@@ -285,7 +285,7 @@ local function MakeSlots(id)
 	slot.count = slot.iconFrame:CreateFontString(nil, "OVERLAY")
 	slot.count:SetJustifyH("RIGHT")
 	slot.count:SetPointToScale("BOTTOMRIGHT", slot.iconFrame, -2, 2)
-	slot.count:SetFont(LSM:Fetch("font", "SVUI Clean Font"), 12, "OUTLINE")
+	slot.count:FontManager("lootnumber")
 	slot.count:SetText(1)

 	slot.name = slot:CreateFontString(nil, "OVERLAY")
@@ -293,7 +293,7 @@ local function MakeSlots(id)
 	slot.name:SetPoint("LEFT", slot)
 	slot.name:SetPoint("RIGHT", slot.icon, "LEFT")
 	slot.name:SetNonSpaceWrap(true)
-	slot.name:SetFont(LSM:Fetch("font", "SVUI Clean Font"), 12, "OUTLINE")
+	slot.name:FontManager("lootdialog")

 	slot.drop = slot:CreateTexture(nil, "ARTWORK")
 	slot.drop:SetTexture("Interface\\QuestFrame\\UI-QuestLogTitleHighlight")
@@ -329,7 +329,7 @@ local function CreateRollButton(rollFrame, type, locale, anchor)
 	rollButton:SetScript("OnClick", DoDaRoll)
 	rollButton:SetMotionScriptsWhileDisabled(true)
 	local text = rollButton:CreateFontString(nil, nil)
-	text:SetFont(LSM:Fetch("font", "SVUI Clean Font"),14,"OUTLINE")
+	text:FontManager("rolldialog")
 	text:SetPointToScale("CENTER", 0, ((type == 2 and 1) or (type == 0 and -1.2) or 0))
 	return rollButton, text
 end
@@ -383,16 +383,16 @@ local function CreateRollFrame()
 	rollFrame.need,rollFrame.greed,rollFrame.pass,rollFrame.disenchant = needText,greedText,passText,deText;
 	rollFrame.bindText = rollFrame:CreateFontString()
 	rollFrame.bindText:SetPointToScale("LEFT",passButton,"RIGHT",3,1)
-	rollFrame.bindText:SetFont(LSM:Fetch("font", "SVUI Number Font"),14,"OUTLINE")
+	rollFrame.bindText:FontManager("rollnumber")
 	rollFrame.lootText = rollFrame:CreateFontString(nil,"ARTWORK")
-	rollFrame.lootText:SetFont(LSM:Fetch("font", "SVUI Number Font"),14,"OUTLINE")
+	rollFrame.lootText:FontManager("rollnumber")
 	rollFrame.lootText:SetPointToScale("LEFT",rollFrame.bindText,"RIGHT",0,0)
 	rollFrame.lootText:SetPointToScale("RIGHT",rollFrame,"RIGHT",-5,0)
 	rollFrame.lootText:SetSizeToScale(200,10)
 	rollFrame.lootText:SetJustifyH("LEFT")

 	rollFrame.yourRoll = rollFrame:CreateFontString(nil,"ARTWORK")
-	rollFrame.yourRoll:SetFont(LSM:Fetch("font", "SVUI Number Font"),18,"OUTLINE")
+	rollFrame.yourRoll:FontManager("rollnumber", "CENTER", 4)
 	rollFrame.yourRoll:SetSizeToScale(22,22)
 	rollFrame.yourRoll:SetPointToScale("LEFT",rollFrame,"RIGHT",5,0)
 	rollFrame.yourRoll:SetJustifyH("CENTER")
@@ -650,7 +650,7 @@ function MOD:SetLootFrames()

 	SVUI_LootFrame:SetSizeToScale(256, 64);
 	SVUI_LootFrame:SetStylePanel("Fixed", 'Transparent');
-	SVUI_LootFrame.title:SetFont(LSM:Fetch("font", "SVUI Number Font"),18,"OUTLINE")
+	SVUI_LootFrame.title:FontManager("header")
 	SV:AddToDisplayAudit(SVUI_LootFrame);
 	SVUI_LootFrame:Hide();

diff --git a/Interface/AddOns/SVUI/packages/plate/SVPlate.lua b/Interface/AddOns/SVUI/packages/plate/SVPlate.lua
index 200b4aa..83eac9e 100644
--- a/Interface/AddOns/SVUI/packages/plate/SVPlate.lua
+++ b/Interface/AddOns/SVUI/packages/plate/SVPlate.lua
@@ -1090,12 +1090,12 @@ do
 		if(not ProxyThisPlate(plate, true)) then return; end
 		SVUI_PLATE.name:FontManager("platename")
 		SVUI_PLATE.name:SetTextColor(1, 1, 1)
-		SVUI_PLATE.level:FontManager("platename")
+		SVUI_PLATE.level:FontManager("platenumber")
 		if not PLATE_ARGS.scaled and not PLATE_ARGS.tiny then
 			SVUI_PLATE.health:SetSize(HBWidth, HBHeight)
 		end
 		SVUI_PLATE.health:SetStatusBarTexture(SV.Media.bar.default)
-		SVUI_PLATE.health.text:FontManager("plateaura")
+		SVUI_PLATE.health.text:FontManager("platenumber")
 		SVUI_PLATE.cast:SetSize(HBWidth, CBHeight)
 		SVUI_PLATE.cast:SetStatusBarTexture(SV.Media.bar.gradient)
 		SVUI_PLATE.cast.text:SetFont(SV.Media.font.default, 8, "OUTLINE")
diff --git a/Interface/AddOns/SVUI/packages/quest/SVQuest.lua b/Interface/AddOns/SVUI/packages/quest/SVQuest.lua
index fb83abd..5c099dc 100644
--- a/Interface/AddOns/SVUI/packages/quest/SVQuest.lua
+++ b/Interface/AddOns/SVUI/packages/quest/SVQuest.lua
@@ -407,7 +407,7 @@ end

 function MOD:UpdateLocals()
 	ROW_WIDTH = self.Docklet.ScrollFrame:GetWidth();
-	ROW_HEIGHT = SV.db.SVQuest.rowHeight;
+	ROW_HEIGHT = SV.db.font.questdialog.size / 0.55;
 	INNER_HEIGHT = ROW_HEIGHT - 4;
 	LARGE_ROW_HEIGHT = ROW_HEIGHT * 2;
 	LARGE_INNER_HEIGHT = LARGE_ROW_HEIGHT - 4;
diff --git a/Interface/AddOns/SVUI/packages/quest/components/achievements.lua b/Interface/AddOns/SVUI/packages/quest/components/achievements.lua
index 77d75ea..daa4c01 100644
--- a/Interface/AddOns/SVUI/packages/quest/components/achievements.lua
+++ b/Interface/AddOns/SVUI/packages/quest/components/achievements.lua
@@ -69,7 +69,7 @@ SCRIPT HANDLERS
 ##########################################################
 ]]--
 local RowButton_OnEnter = function(self, ...)
-	GameTooltip:SetOwner(self, "ANCHOR_TOPLEFT", 0, 4)
+	GameTooltip:SetOwner(self, "ANCHOR_BOTTOMLEFT", 0, ROW_HEIGHT)
 	GameTooltip:ClearLines()
 	GameTooltip:AddLine("View this in the achievements window.")
 	GameTooltip:Show()
diff --git a/Interface/AddOns/SVUI/packages/quest/components/active.lua b/Interface/AddOns/SVUI/packages/quest/components/active.lua
index e7085d9..cc53584 100644
--- a/Interface/AddOns/SVUI/packages/quest/components/active.lua
+++ b/Interface/AddOns/SVUI/packages/quest/components/active.lua
@@ -99,7 +99,7 @@ local ObjectiveProgressBar_OnEvent = function(self, event, ...)
 end

 local ActiveButton_OnEnter = function(self, ...)
-	GameTooltip:SetOwner(self, "ANCHOR_TOPLEFT", 0, 4)
+	GameTooltip:SetOwner(self, "ANCHOR_BOTTOMLEFT", 0, ROW_HEIGHT)
 	GameTooltip:ClearLines()
 	GameTooltip:AddDoubleLine("[Left-Click]", "View the log entry for this quest.", 0, 1, 0, 1, 1, 1)
 	GameTooltip:AddLine(" ")
diff --git a/Interface/AddOns/SVUI/packages/quest/components/quests.lua b/Interface/AddOns/SVUI/packages/quest/components/quests.lua
index ff75471..6334a1e 100644
--- a/Interface/AddOns/SVUI/packages/quest/components/quests.lua
+++ b/Interface/AddOns/SVUI/packages/quest/components/quests.lua
@@ -254,14 +254,14 @@ SCRIPT HANDLERS
 ##########################################################
 ]]--
 local BadgeButton_OnEnter = function(self, ...)
-	GameTooltip:SetOwner(self, "ANCHOR_TOPLEFT", 0, 4)
+	GameTooltip:SetOwner(self, "ANCHOR_BOTTOMLEFT", 0, ROW_HEIGHT)
 	GameTooltip:ClearLines()
 	GameTooltip:AddLine("Click to track this quest.")
 	GameTooltip:Show()
 end

 local RowButton_OnEnter = function(self, ...)
-	GameTooltip:SetOwner(self, "ANCHOR_TOPLEFT", 0, 4)
+	GameTooltip:SetOwner(self, "ANCHOR_BOTTOMLEFT", 0, ROW_HEIGHT)
 	GameTooltip:ClearLines()
 	GameTooltip:AddDoubleLine("[Left-Click]", "View the log entry for this quest.", 0, 1, 0, 1, 1, 1)
 	GameTooltip:AddLine(" ")
diff --git a/Interface/AddOns/SVUI/packages/tip/SVTip.lua b/Interface/AddOns/SVUI/packages/tip/SVTip.lua
index 0c4b204..8791eb9 100644
--- a/Interface/AddOns/SVUI/packages/tip/SVTip.lua
+++ b/Interface/AddOns/SVUI/packages/tip/SVTip.lua
@@ -116,8 +116,6 @@ local VISIBILITY_UNITS = "NONE";
 local VISIBILITY_COMBAT = false;
 local BAR_TEXT = true;
 local BAR_HEIGHT = 10;
-local BAR_FONT = "SVUI Clean Font";
-local BAR_FONTSIZE = 10;

 local VisibilityTest = {
 	NONE = function() return false end,
@@ -532,7 +530,7 @@ local _hook_GameTooltip_OnTooltipSetItem = function(self)

 		if(SPELL_IDS and (itemLink ~= nil)) then
 			self:AddLine(" ")
-			left = "|cFFCA3C3CSpell ID: |r"
+			local left = "|cFFCA3C3CSpell ID: |r"
 			local itemID = ("|cFFCA3C3C%s|r %s"):format(left, itemLink):match(":(%w+)")
 			self:AddDoubleLine("|cFFCA3C3CSpell ID: |r", itemID)
 		end
@@ -898,8 +896,6 @@ function MOD:UpdateLocals()
 	COMIC_TIPS = SV.db.SVTip.comicStyle;
 	VISIBILITY_COMBAT = SV.db.SVTip.visibility.combat;
 	BAR_HEIGHT = SV.db.SVTip.healthBar.height;
-	BAR_FONT = SV.db.SVTip.healthBar.font;
-	BAR_FONTSIZE = SV.db.SVTip.healthBar.fontSize;
 	SPELL_IDS = SV.db.SVTip.spellID;
 	ON_CURSOR = SV.db.SVTip.cursorAnchor;
 	BAR_TEXT = SV.db.SVTip.healthBar.text;
diff --git a/Interface/AddOns/SVUI/packages/tool/buttons/questwatch.lua b/Interface/AddOns/SVUI/packages/tool/buttons/questwatch.lua
deleted file mode 100644
index 65e4668..0000000
--- a/Interface/AddOns/SVUI/packages/tool/buttons/questwatch.lua
+++ /dev/null
@@ -1,213 +0,0 @@
---[[
-##############################################################################
-_____/\\\\\\\\\\\____/\\\________/\\\__/\\\________/\\\__/\\\\\\\\\\\_       #
- ___/\\\/////////\\\_\/\\\_______\/\\\_\/\\\_______\/\\\_\/////\\\///__      #
-  __\//\\\______\///__\//\\\______/\\\__\/\\\_______\/\\\_____\/\\\_____     #
-   ___\////\\\__________\//\\\____/\\\___\/\\\_______\/\\\_____\/\\\_____    #
-    ______\////\\\________\//\\\__/\\\____\/\\\_______\/\\\_____\/\\\_____   #
-     _________\////\\\______\//\\\/\\\_____\/\\\_______\/\\\_____\/\\\_____  #
-      __/\\\______\//\\\______\//\\\\\______\//\\\______/\\\______\/\\\_____ #
-       _\///\\\\\\\\\\\/________\//\\\________\///\\\\\\\\\/____/\\\\\\\\\\\_#
-        ___\///////////___________\///___________\/////////_____\///////////_#
-##############################################################################
-S U P E R - V I L L A I N - U I   By: Munglunch                              #
-##############################################################################
-##########################################################
-LOCALIZED LUA FUNCTIONS
-##########################################################
-]]--
---[[ GLOBALS ]]--
-local _G = _G;
-local unpack 	= _G.unpack;
-local select 	= _G.select;
-local pairs 	= _G.pairs;
-local ipairs 	= _G.ipairs;
-local type 		= _G.type;
-local error 	= _G.error;
-local pcall 	= _G.pcall;
-local tostring 	= _G.tostring;
-local tonumber 	= _G.tonumber;
-local tinsert 	= _G.tinsert;
-local string 	= _G.string;
-local math 		= _G.math;
-local bit 		= _G.bit;
-local table 	= _G.table;
---[[ STRING METHODS ]]--
-local lower, upper = string.lower, string.upper;
-local find, format, len, split = string.find, string.format, string.len, string.split;
-local match, sub, join = string.match, string.sub, string.join;
-local gmatch, gsub = string.gmatch, string.gsub;
---[[ MATH METHODS ]]--
-local abs, ceil, floor, round = math.abs, math.ceil, math.floor, math.round;  -- Basic
-local fmod, modf, sqrt = math.fmod, math.modf, math.sqrt;	-- Algebra
-local atan2, cos, deg, rad, sin = math.atan2, math.cos, math.deg, math.rad, math.sin;  -- Trigonometry
-local huge, random = math.huge, math.random;  -- Uncommon
---[[ BINARY METHODS ]]--
-local band, bor = bit.band, bit.bor;
---[[ TABLE METHODS ]]--
-local tremove, tcopy, twipe, tsort, tconcat = table.remove, table.copy, table.wipe, table.sort, table.concat;
---[[
-##########################################################
-GET ADDON DATA
-##########################################################
-]]--
-local SV = select(2, ...)
-local L = SV.L
-
-local MOD = SV.SVTools;
-local ObjectiveTrackerFrame = _G.ObjectiveTrackerFrame
---[[
-##########################################################
-LOCAL VARS
-##########################################################
-]]--
-local ICON_FILE = [[Interface\AddOns\SVUI\assets\artwork\Icons\DOCK-QUESTS]];
---[[
-##########################################################
-CORE FUNCTIONS
-##########################################################
-]]--
-local ShowSubDocklet = function(self)
-	if(InCombatLockdown()) then return end
-	if(not ObjectiveTrackerFrame:IsShown()) then ObjectiveTrackerFrame:Show() end
-end
-
-local HideSubDocklet = function(self)
-	if(InCombatLockdown()) then return end
-	if(ObjectiveTrackerFrame:IsShown()) then ObjectiveTrackerFrame:Hide() end
-end
-
-local UpdateDocklet = function()
-	local cur = SVUI_QuestWatchFrameScrollBar:GetValue()
-	if(not InCombatLockdown()) then
-		ObjectiveTrackerFrame:ClearAllPoints()
-		ObjectiveTrackerFrame:SetAllPoints(SVUI_QuestWatchFrameScrollFrame)
-	end
-	SVUI_QuestWatchFrameScrollBar:SetValue(0)
-	SVUI_QuestWatchFrameScrollBar:SetValue(cur)
-end
-
-function MOD:LoadQuestWatch()
-	if(not ObjectiveTrackerFrame) then return end
-	if(not SV.db.general.questWatch) then
-		ObjectiveTrackerFrame:RemoveTextures(true)
-		ObjectiveTrackerFrame.BlocksFrame:RemoveTextures(true)
-		ObjectiveTrackerFrame.HeaderMenu:RemoveTextures(true)
-		ObjectiveTrackerFrame.BlockDropDown:RemoveTextures(true)
-
-		if(SV.db.general.questHeaders) then
-			ObjectiveTrackerFrame.BlocksFrame.QuestHeader:RemoveTextures(true)
-			ObjectiveTrackerFrame.BlocksFrame.QuestHeader:SetStylePanel("Default", "Headline", true)
-	  		ObjectiveTrackerFrame.BlocksFrame.QuestHeader:SetBackdropColor(0, 0, 0, 0.5)
-	  		ObjectiveTrackerFrame.BlocksFrame.QuestHeader.Panel:ClearAllPoints()
-	  		ObjectiveTrackerFrame.BlocksFrame.QuestHeader.Panel:SetPoint("TOPLEFT", ObjectiveTrackerFrame.BlocksFrame.QuestHeader, "TOPLEFT", -2, -2)
-			ObjectiveTrackerFrame.BlocksFrame.QuestHeader.Panel:SetPoint("BOTTOMRIGHT", ObjectiveTrackerFrame.BlocksFrame.QuestHeader, "BOTTOMRIGHT", 12, 2)
-
-			ObjectiveTrackerFrame.BlocksFrame.AchievementHeader:RemoveTextures(true)
-			ObjectiveTrackerFrame.BlocksFrame.AchievementHeader:SetStylePanel("Default", "Headline", true)
-	  		ObjectiveTrackerFrame.BlocksFrame.AchievementHeader:SetBackdropColor(0, 0, 0, 0.5)
-	  		ObjectiveTrackerFrame.BlocksFrame.AchievementHeader.Panel:ClearAllPoints()
-	  		ObjectiveTrackerFrame.BlocksFrame.AchievementHeader.Panel:SetPoint("TOPLEFT", ObjectiveTrackerFrame.BlocksFrame.AchievementHeader, "TOPLEFT", -2, -2)
-			ObjectiveTrackerFrame.BlocksFrame.AchievementHeader.Panel:SetPoint("BOTTOMRIGHT", ObjectiveTrackerFrame.BlocksFrame.AchievementHeader, "BOTTOMRIGHT", 12, 2)
-
-			ObjectiveTrackerFrame.BlocksFrame.ScenarioHeader:RemoveTextures(true)
-			ObjectiveTrackerFrame.BlocksFrame.ScenarioHeader:SetStylePanel("Default", "Headline", true)
-	  		ObjectiveTrackerFrame.BlocksFrame.ScenarioHeader:SetBackdropColor(0, 0, 0, 0.5)
-	  		ObjectiveTrackerFrame.BlocksFrame.ScenarioHeader.Panel:ClearAllPoints()
-	  		ObjectiveTrackerFrame.BlocksFrame.ScenarioHeader.Panel:SetPoint("TOPLEFT", ObjectiveTrackerFrame.BlocksFrame.ScenarioHeader, "TOPLEFT", -2, -2)
-			ObjectiveTrackerFrame.BlocksFrame.ScenarioHeader.Panel:SetPoint("BOTTOMRIGHT", ObjectiveTrackerFrame.BlocksFrame.ScenarioHeader, "BOTTOMRIGHT", 12, 2)
-	  	end
-	else
-		local bgTex = [[Interface\BUTTONS\WHITE8X8]]
-		local bdTex = SV.Media.bar.glow
-
-		self.QuestWatch = SV.Dock:NewDocklet("BottomRight", "SVUI_QuestWatchFrame", "Quest Watch", ICON_FILE)
-
-		local WIDTH, HEIGHT = self.QuestWatch:GetSize()
-
-		local listFrame = CreateFrame("ScrollFrame", "SVUI_QuestWatchFrameScrollFrame", self.QuestWatch);
-		listFrame:SetPoint("TOPLEFT", self.QuestWatch, -62, 0);
-		listFrame:SetPoint("BOTTOMRIGHT", self.QuestWatch, -31, 21);
-		listFrame:EnableMouseWheel(true);
-
-		local scrollFrame = CreateFrame("Slider", "SVUI_QuestWatchFrameScrollBar", listFrame);
-		scrollFrame:SetHeight(listFrame:GetHeight());
-		scrollFrame:SetWidth(18);
-		scrollFrame:SetPoint("TOPRIGHT", self.QuestWatch, "TOPRIGHT", -3, 0);
-		scrollFrame:SetBackdrop({bgFile = bgTex, edgeFile = bdTex, edgeSize = 4, insets = {left = 3, right = 3, top = 3, bottom = 3}});
-		scrollFrame:SetFrameLevel(6)
-		scrollFrame:SetStylePanel("Fixed", "Transparent", true);
-		scrollFrame:SetThumbTexture("Interface\\Buttons\\UI-ScrollBar-Knob");
-		scrollFrame:SetOrientation("VERTICAL");
-		scrollFrame:SetValueStep(5);
-		scrollFrame:SetMinMaxValues(1, 1420);
-		scrollFrame:SetValue(1);
-		scrollFrame:SetScript("OnValueChanged", function(self, argValue)
-			listFrame:SetVerticalScroll(argValue)
-		end)
-
-		listFrame.slider = scrollFrame;
-		listFrame:SetScript("OnMouseWheel", function(self, delta)
-			local scroll = self:GetVerticalScroll();
-			local value = (scroll - (20  *  delta));
-			if value < -1 then
-				value = 0
-			end
-			if value > 420 then
-				value = 420
-			end
-			--self:SetVerticalScroll(value)
-			self.slider:SetValue(value)
-		end)
-
-		ObjectiveTrackerFrame:ClearAllPoints()
-		ObjectiveTrackerFrame:SetClampedToScreen(false)
-		ObjectiveTrackerFrame:SetHeight(1500)
-		ObjectiveTrackerFrame:SetWidth(WIDTH)
-		ObjectiveTrackerFrame:SetPoint("TOPRIGHT", listFrame, "TOPRIGHT", -2, 0)
-		ObjectiveTrackerFrame:SetFrameLevel(listFrame:GetFrameLevel() + 1)
-
-		ObjectiveTrackerFrame:HookScript("OnEvent", UpdateDocklet)
-		hooksecurefunc(ObjectiveTrackerFrame, "SetPoint", UpdateDocklet)
-
-		-- hooksecurefunc(ObjectiveTrackerFrame, "SetPoint", function(self, a1, p, a2, x, y)
-		-- 	if(p ~= SVUI_QuestWatchFrameScrollFrame) then
-		-- 		self:SetPoint("TOPRIGHT", SVUI_QuestWatchFrameScrollFrame, "TOPRIGHT", -2, 0)
-		-- 	end
-		-- end)
-		--ObjectiveTrackerFrame.SetPoint = function() return end;
-
-		ObjectiveTrackerFrame.HeaderMenu.MinimizeButton:Hide()
-
-		ObjectiveTrackerFrame.BlocksFrame:RemoveTextures(true)
-		ObjectiveTrackerFrame.BlocksFrame:SetPoint("TOPLEFT", ObjectiveTrackerFrame, "TOPLEFT", 87, 0)
-		ObjectiveTrackerFrame.BlocksFrame:SetPoint("BOTTOMLEFT", ObjectiveTrackerFrame, "BOTTOMLEFT", 87, 0)
-		ObjectiveTrackerFrame.BlocksFrame:SetWidth(WIDTH)
-
-		ObjectiveTrackerFrame.BlocksFrame.QuestHeader:SetWidth((WIDTH - 60))
-		ObjectiveTrackerFrame.BlocksFrame.AchievementHeader:SetWidth((WIDTH - 60))
-		ObjectiveTrackerFrame.BlocksFrame.ScenarioHeader:SetWidth((WIDTH - 60))
-
-		if(SV.db.general.questHeaders) then
-			ObjectiveTrackerFrame.BlocksFrame.QuestHeader:RemoveTextures(true)
-			ObjectiveTrackerFrame.BlocksFrame.QuestHeader:SetStylePanel("Fixed", "Headline", true)
-	  		ObjectiveTrackerFrame.BlocksFrame.QuestHeader:SetBackdropColor(0, 0, 0, 0.5)
-
-			ObjectiveTrackerFrame.BlocksFrame.AchievementHeader:RemoveTextures(true)
-			ObjectiveTrackerFrame.BlocksFrame.AchievementHeader:SetStylePanel("Fixed", "Headline", true)
-	  		ObjectiveTrackerFrame.BlocksFrame.AchievementHeader:SetBackdropColor(0, 0, 0, 0.5)
-
-			ObjectiveTrackerFrame.BlocksFrame.ScenarioHeader:RemoveTextures(true)
-			ObjectiveTrackerFrame.BlocksFrame.ScenarioHeader:SetStylePanel("Fixed", "Headline", true)
-	  		ObjectiveTrackerFrame.BlocksFrame.ScenarioHeader:SetBackdropColor(0, 0, 0, 0.5)
-	  	end
-
-		self.QuestWatch.DockButton:MakeDefault();
-		self.QuestWatch:Show();
-		self.QuestWatch:SetScript('OnShow', ShowSubDocklet);
-		self.QuestWatch:SetScript('OnHide', HideSubDocklet);
-
-		listFrame:SetScrollChild(ObjectiveTrackerFrame)
-		SV.Timers:ExecuteTimer(UpdateDocklet, 3)
-	end
-end
\ No newline at end of file
diff --git a/Interface/AddOns/SVUI/packages/unit/SVUnit.lua b/Interface/AddOns/SVUI/packages/unit/SVUnit.lua
index ae8ca19..1959408 100644
--- a/Interface/AddOns/SVUI/packages/unit/SVUnit.lua
+++ b/Interface/AddOns/SVUI/packages/unit/SVUnit.lua
@@ -643,8 +643,14 @@ function MOD:RefreshUnitLayout(frame, template)

 				POWER_GRIP:ClearAllPoints()
 				POWER_GRIP:SetHeightToScale(POWER_HEIGHT - 2)
-				POWER_GRIP:SetPointToScale(BOTTOM_ANCHOR1, frame, BOTTOM_ANCHOR1, (PORTRAIT_WIDTH - (1 * BOTTOM_MODIFIER)), 2)
-				POWER_GRIP:SetPointToScale(BOTTOM_ANCHOR2, frame, BOTTOM_ANCHOR2, (2 * BOTTOM_MODIFIER), 2)
+
+				if(not PORTRAIT_OVERLAY) then
+					POWER_GRIP:SetPointToScale(BOTTOM_ANCHOR1, frame, BOTTOM_ANCHOR1, PORTRAIT_WIDTH, 1)
+					POWER_GRIP:SetPointToScale(BOTTOM_ANCHOR2, frame, BOTTOM_ANCHOR2, (1 * BOTTOM_MODIFIER), 1)
+				else
+					POWER_GRIP:SetPointToScale(BOTTOM_ANCHOR1, frame, BOTTOM_ANCHOR1, (PORTRAIT_WIDTH - (1 * BOTTOM_MODIFIER)), 2)
+					POWER_GRIP:SetPointToScale(BOTTOM_ANCHOR2, frame, BOTTOM_ANCHOR2, (2 * BOTTOM_MODIFIER), 2)
+				end
 			elseif(frame:IsElementEnabled('Power')) then
 				frame:DisableElement('Power')
 				POWER_GRIP:Hide()
diff --git a/Interface/AddOns/SVUI/setup/installer.lua b/Interface/AddOns/SVUI/setup/installer.lua
index 9cda85d..e19b3b2 100644
--- a/Interface/AddOns/SVUI/setup/installer.lua
+++ b/Interface/AddOns/SVUI/setup/installer.lua
@@ -161,7 +161,7 @@ local function UFMoveBottomQuadrant(toggle)
 		anchors.SVUI_Target_MOVE = "BOTTOMSVUIParentBOTTOM278182"
 		anchors.SVUI_TargetCastbar_MOVE = "BOTTOMSVUIParentBOTTOM278122"
 		--anchors.SVUI_Pet_MOVE = "BOTTOMSVUIParentBOTTOM0181"
-		anchors.SVUI_TargetTarget_MOVE = "BOTTOMSVUIParentBOTTOM0214"
+		anchors.SVUI_TargetTarget_MOVE = "BOTTOMSVUIParentBOTTOM0198"
 		anchors.SVUI_Focus_MOVE = "BOTTOMSVUIParentBOTTOM310432"
 		anchors.SVUI_ThreatBar_MOVE = "BOTTOMRIGHTSVUIParentBOTTOMRIGHT-495182"
 	elseif toggle == "shift" then
@@ -170,9 +170,18 @@ local function UFMoveBottomQuadrant(toggle)
 		anchors.SVUI_Target_MOVE = "BOTTOMSVUIParentBOTTOM278210"
 		anchors.SVUI_TargetCastbar_MOVE = "BOTTOMSVUIParentBOTTOM278150"
 		--anchors.SVUI_Pet_MOVE = "BOTTOMSVUIParentBOTTOM0209"
-		anchors.SVUI_TargetTarget_MOVE = "BOTTOMSVUIParentBOTTOM0242"
+		anchors.SVUI_TargetTarget_MOVE = "BOTTOMSVUIParentBOTTOM0226"
 		anchors.SVUI_Focus_MOVE = "BOTTOMSVUIParentBOTTOM310432"
 		anchors.SVUI_ThreatBar_MOVE = "BOTTOMRIGHTSVUIParentBOTTOMRIGHT-495210"
+	elseif toggle == "minimal" then
+		anchors.SVUI_Player_MOVE = "BOTTOMSVUIParentBOTTOM-278182"
+		anchors.SVUI_PlayerCastbar_MOVE = "BOTTOMSVUIParentBOTTOM-278122"
+		anchors.SVUI_Target_MOVE = "BOTTOMSVUIParentBOTTOM278182"
+		anchors.SVUI_TargetCastbar_MOVE = "BOTTOMSVUIParentBOTTOM278122"
+		--anchors.SVUI_Pet_MOVE = "BOTTOMSVUIParentBOTTOM0181"
+		anchors.SVUI_TargetTarget_MOVE = "BOTTOMSVUIParentBOTTOM0182"
+		anchors.SVUI_Focus_MOVE = "BOTTOMSVUIParentBOTTOM310432"
+		anchors.SVUI_ThreatBar_MOVE = "BOTTOMRIGHTSVUIParentBOTTOMRIGHT-495182"
 	else
 		local c = 136;
 		local d = 135;
@@ -655,6 +664,22 @@ function SV.Setup:Minimalist()
 	--SV.db.SVTools.enable = false;
 	SV.db.SVUnit.comicStyle = false;

+	SV.db.SVUnit.player.height = 22;
+	SV.db.SVUnit.player.power.height = 6;
+
+	SV.db.SVUnit.target.height = 22;
+	SV.db.SVUnit.target.power.height = 6;
+	SV.db.SVUnit.targettarget.height = 22;
+	SV.db.SVUnit.targettarget.power.height = 6;
+	SV.db.SVUnit.pet.height = 22;
+	SV.db.SVUnit.pet.power.height = 6;
+	SV.db.SVUnit.focus.height = 22;
+	SV.db.SVUnit.focus.power.height = 6;
+	SV.db.SVUnit.boss.height = 22;
+	SV.db.SVUnit.boss.power.height = 6;
+
+	UFMoveBottomQuadrant("minimal")
+
 	SVLib:SaveSafeData("install_version", SV.Version)
 	StopMusic()
 	SetCVar("Sound_MusicVolume", user_music_vol or 0)
diff --git a/Interface/AddOns/SVUI/setup/presets.lua b/Interface/AddOns/SVUI/setup/presets.lua
index 2891ebc..363e81e 100644
--- a/Interface/AddOns/SVUI/setup/presets.lua
+++ b/Interface/AddOns/SVUI/setup/presets.lua
@@ -670,9 +670,6 @@ local function LoadPresetData()
 		["layouts"] = {
 			["link"] = "SVUnit",
 			["default"] = {
-				["grid"] = {
-					["enable"] = false,
-				},
 				["party"] = {
 					width = 75,
 					height = 60,
@@ -697,6 +694,9 @@ local function LoadPresetData()
 						["xOffset"] = 0,
 						["yOffset"] = 0,
 					},
+					["grid"] = {
+						["enable"] = false,
+					},
 				},
 				["raid"] = {
 					width = 50,
@@ -721,12 +721,12 @@ local function LoadPresetData()
 						["xOffset"] = 8,
 						["yOffset"] = 0,
 					},
+					["grid"] = {
+						["enable"] = false,
+					},
 				},
 			},
 			["healer"] = {
-				["grid"] = {
-					["enable"] = false,
-				},
 				["party"] = {
 					width = 75,
 					height = 60,
@@ -751,6 +751,9 @@ local function LoadPresetData()
 						["xOffset"] = 0,
 						["yOffset"] = 0,
 					},
+					["grid"] = {
+						["enable"] = false,
+					},
 				},
 				["raid"] = {
 					width = 50,
@@ -775,12 +778,12 @@ local function LoadPresetData()
 						["xOffset"] = 8,
 						["yOffset"] = 0,
 					},
+					["grid"] = {
+						["enable"] = false,
+					},
 				},
 			},
 			["dps"] = {
-				["grid"] = {
-					["enable"] = false,
-				},
 				["party"] = {
 					width = 115,
 					height = 25,
@@ -803,12 +806,15 @@ local function LoadPresetData()
 						},
 					},
 					["name"] = {
-						["font"] = "SVUI Clean Font",
+						["font"] = "SVUI Default Font",
 						["fontOutline"] = "NONE",
 						["position"] = "CENTER",
 						["xOffset"] = 0,
 						["yOffset"] = 1,
 					},
+					["grid"] = {
+						["enable"] = false,
+					},
 				},
 				["raid"] = {
 					["showBy"] = "UP_RIGHT",
@@ -826,13 +832,16 @@ local function LoadPresetData()
 						},
 					},
 					["name"] = {
-						["font"] = "SVUI Clean Font",
+						["font"] = "SVUI Default Font",
 						["position"] = "CENTER",
 						["xOffset"] = 0,
 						["yOffset"] = 1,
 					},
 					["width"] = 80,
 					["height"] = 20,
+					["grid"] = {
+						["enable"] = false,
+					},
 				},
 			},
 			["grid"] = {
diff --git a/Interface/AddOns/SVUI/system/core.lua b/Interface/AddOns/SVUI/system/core.lua
index fc2fea4..56bccc1 100644
--- a/Interface/AddOns/SVUI/system/core.lua
+++ b/Interface/AddOns/SVUI/system/core.lua
@@ -412,7 +412,7 @@ function SVUI:VersionCheck()
 end

 function SVUI:RefreshEverything(bypass)
-    self:RefreshAllSystemMedia();
+    self:MediaUpdate();
     self.Mentalo:SetPositions();
     SVLib:RefreshAll();
     if not bypass then
@@ -428,7 +428,7 @@ function SVUI:PLAYER_ENTERING_WORLD()
     end
     if(not self.MediaInitialized) then
         self:RefreshAllSystemMedia()
-    end
+    end
     local _,instanceType = IsInInstance()
     if(instanceType == "pvp") then
         self.BGTimer = self.Timers:ExecuteLoop(RequestBattlefieldScoreData, 5)
@@ -527,14 +527,9 @@ function SVUI:Initialize()
     SVLib:Initialize();

     self:UI_SCALE_CHANGED()
-
-    --self:RefreshSystemFonts();
     self:LoadSystemAlerts();
-
     self.Timers:Initialize();
-
     self:LoadFramework();
-
     self.safedata = SVLib:GetSafeData();

     SVLib:Launch();
@@ -543,7 +538,6 @@ function SVUI:Initialize()
     self:PlayerInfoUpdate();
     self:VersionCheck()
     self:RefreshAllSystemMedia();
-
     hooksecurefunc("StaticPopup_Show", self.StaticPopup_Show)

     SVLib:RefreshModule("SVMap");
diff --git a/Interface/AddOns/SVUI/system/media.lua b/Interface/AddOns/SVUI/system/media.lua
index 22f0c5a..f253a3e 100644
--- a/Interface/AddOns/SVUI/system/media.lua
+++ b/Interface/AddOns/SVUI/system/media.lua
@@ -58,35 +58,6 @@ local RAID_CLASS_COLORS   = _G.RAID_CLASS_COLORS
 local UIDROPDOWNMENU_DEFAULT_TEXT_HEIGHT  = _G.UIDROPDOWNMENU_DEFAULT_TEXT_HEIGHT
 --[[
 ##########################################################
-PRE VARS/FUNCTIONS
-##########################################################
-]]--
-local function SetFont(globalName, font, fontSize, fontOutline, cR, cG, cB)
-  if not font then return end
-  local fontObject = _G[globalName]
-  if not fontObject then return end
-  fontObject:SetFont(font, fontSize, fontOutline);
-  if(cR and cG and cB) then
-    fontObject:SetTextColor(1, 1, 1);
-  end
-end
-
-local function AlterFont(shadowColor, offsetX, offsetY, fontAlpha)
-  if not font then return end
-  local fontObject = _G[globalName]
-  if not fontObject then print(globalName) return end
-  if(shadowColor and type(shadowColor) == "table") then
-    fontObject:SetShadowColor(unpack(shadowColor))
-  end
-  if(offsetX and offsetY) then
-    fontObject:SetShadowOffset(offsetX,offsetY)
-  end
-  if(fontAlpha) then
-    fontObject:SetAlpha(fontAlpha)
-  end
-end
---[[
-##########################################################
 DEFINE SOUND EFFECTS
 ##########################################################
 ]]--
@@ -168,7 +139,7 @@ LSM:Register("font","SVUI Pixel Font",[[Interface\AddOns\SVUI\assets\fonts\Pixel
 LSM:Register("font","SVUI Caps Font",[[Interface\AddOns\SVUI\assets\fonts\Caps.ttf]],LSM.LOCALE_BIT_ruRU+LSM.LOCALE_BIT_western)
 LSM:Register("font","SVUI Classic Font",[[Interface\AddOns\SVUI\assets\fonts\Classic.ttf]])
 LSM:Register("font","SVUI Combat Font",[[Interface\AddOns\SVUI\assets\fonts\Combat.ttf]])
-LSM:Register("font","SVUI Name Font",[[Interface\AddOns\SVUI\assets\fonts\Names.ttf]])
+LSM:Register("font","SVUI Dialog Font",[[Interface\AddOns\SVUI\assets\fonts\Dialog.ttf]])
 LSM:Register("font","SVUI Number Font",[[Interface\AddOns\SVUI\assets\fonts\Numbers.ttf]])
 LSM:Register("font","SVUI Zone Font",[[Interface\AddOns\SVUI\assets\fonts\Zone.ttf]])
 LSM:Register("font","SVUI Flash Font",[[Interface\AddOns\SVUI\assets\fonts\Flash.ttf]])
@@ -196,7 +167,7 @@ do
   if(GetLocale() ~= "enUS") then
     DIALOGUE_FONT = Shared:Fetch("font", "SVUI Default Font")
   else
-    DIALOGUE_FONT = Shared:Fetch("font", "SVUI Name Font")
+    DIALOGUE_FONT = Shared:Fetch("font", "SVUI Dialog Font")
   end

   SV.Media["color"] = {
@@ -314,25 +285,6 @@ function SV:HexColor(arg1,arg2,arg3)
     return hexString
 end

-function SV:MediaUpdate()
-  self.Media.color.default      = self.db.media.colors.default
-  self.Media.color.special      = self.db.media.colors.special
-  self.Media.color.specialdark  = self.db.media.colors.specialdark
-  self.Media.bg.pattern         = LSM:Fetch("background", self.db.media.textures.pattern)
-  self.Media.bg.comic           = LSM:Fetch("background", self.db.media.textures.comic)
-  self.Media.bg.unitlarge       = LSM:Fetch("background", self.db.media.textures.unitlarge)
-  self.Media.bg.unitsmall       = LSM:Fetch("background", self.db.media.textures.unitsmall)
-
-  local cColor1 = self.Media.color.special
-  local cColor2 = self.Media.color.default
-  local r1,g1,b1 = cColor1[1], cColor1[2], cColor1[3]
-  local r2,g2,b2 = cColor2[1], cColor2[2], cColor2[3]
-
-  self.Media.gradient.special = {"VERTICAL",r1,g1,b1,r2,g2,b2}
-
-  self.Events:Trigger("SVUI_COLORS_UPDATED");
-end
-
 local function UpdateChatFontSizes()
   _G.CHAT_FONT_HEIGHTS[1] = 8
   _G.CHAT_FONT_HEIGHTS[2] = 9
@@ -351,108 +303,125 @@ end

 hooksecurefunc("FCF_ResetChatWindows", UpdateChatFontSizes)

-function SV:RefreshSystemFonts()
-  local fontsize = self.db.font.default.size
-  local highlight_fontsize = fontsize + 1;
-  local caps_fontsize = self.db.font.caps.size;
-  local number_fontsize = self.db.font.number.size;
-  local dialog_fontsize = self.db.font.dialog.size;
-  local zone_fontsize = self.db.font.zone.size;
-  local alert_fontsize = self.db.font.alert.size;
-  local combat_fontsize = self.db.font.combat.size;
-
-  local NUMBER_TEXT_FONT = LSM:Fetch("font", self.db.font.number.file);
-  local ALERT_TEXT_FONT = LSM:Fetch("font", self.db.font.alert.file);
-  local ZONE_TEXT_FONT = LSM:Fetch("font", self.db.font.zone.file);
-  local DIALOG_FONT = LSM:Fetch("font", self.db.font.dialog.file);
+local function SetFont(globalName, template, sizeMod, styleOverride, cR, cG, cB)
+  if(not template) then return end
+  if(not _G[globalName]) then return end
+  styleOverride = styleOverride or "NONE"
+  SV.SetToFontManager(_G[globalName], template, "SYSTEM", sizeMod, styleOverride, cR, cG, cB);
+end
+
+function SV:SetGlobalFonts()
+  local fontsize = self.db.font.default.size;
   STANDARD_TEXT_FONT = LSM:Fetch("font", self.db.font.default.file);
   UNIT_NAME_FONT = LSM:Fetch("font", self.db.font.caps.file);
   DAMAGE_TEXT_FONT = LSM:Fetch("font", self.db.font.combat.file);
-
   NAMEPLATE_FONT = STANDARD_TEXT_FONT
   UpdateChatFontSizes()
   UIDROPDOWNMENU_DEFAULT_TEXT_HEIGHT = fontsize
-
-  SetFont("Game18Font", NUMBER_TEXT_FONT, 12)
-  SetFont("Game24Font", NUMBER_TEXT_FONT, 14)
-  SetFont("Game27Font", NUMBER_TEXT_FONT, 16)
-  SetFont("Game30Font", NUMBER_TEXT_FONT, 18)
-  SetFont("Game32Font", NUMBER_TEXT_FONT, 20)
-
-  --SetFont("GameFontNormal", STANDARD_TEXT_FONT, fontsize - 2)
-  SetFont("GameFontWhite", STANDARD_TEXT_FONT, fontsize, 'OUTLINE', 1, 1, 1)
-  SetFont("GameFontWhiteSmall", STANDARD_TEXT_FONT, fontsize, 'NONE', 1, 1, 1)
-  SetFont("GameFontBlack", STANDARD_TEXT_FONT, fontsize, 'NONE', 0, 0, 0)
-  SetFont("GameFontBlackSmall", STANDARD_TEXT_FONT, fontsize - 1, 'NONE', 0, 0, 0)
-  SetFont("GameFontNormalMed2", STANDARD_TEXT_FONT, fontsize + 2)
-  --SetFont("GameFontNormalMed1", STANDARD_TEXT_FONT, fontsize)
-  SetFont("GameFontNormalLarge", STANDARD_TEXT_FONT, fontsize)
-  SetFont("GameFontHighlightSmall", STANDARD_TEXT_FONT, fontsize)
-  SetFont("GameFontHighlight", STANDARD_TEXT_FONT, fontsize+1)
-  SetFont("GameFontHighlightLeft", STANDARD_TEXT_FONT, fontsize+1)
-  SetFont("GameFontHighlightRight", STANDARD_TEXT_FONT, fontsize+1)
-  SetFont("GameFontHighlightLarge2", STANDARD_TEXT_FONT, fontsize+2)
-  SetFont("SystemFont_Med1", STANDARD_TEXT_FONT, fontsize)
-  SetFont("SystemFont_Med3", STANDARD_TEXT_FONT, fontsize)
-  SetFont("SystemFont_Outline_Small", STANDARD_TEXT_FONT, fontsize, "OUTLINE")
-  SetFont("FriendsFont_Normal", STANDARD_TEXT_FONT, fontsize)
-  SetFont("FriendsFont_Small", STANDARD_TEXT_FONT, fontsize)
-  SetFont("FriendsFont_Large", STANDARD_TEXT_FONT, fontsize + 3)
-  SetFont("FriendsFont_UserText", STANDARD_TEXT_FONT, fontsize - 1)
-  SetFont("SystemFont_Small", STANDARD_TEXT_FONT, fontsize - 1)
-  SetFont("GameTooltipHeader", STANDARD_TEXT_FONT, fontsize)
-  SetFont("Tooltip_Med", STANDARD_TEXT_FONT, fontsize - 1)
-  SetFont("Tooltip_Small", STANDARD_TEXT_FONT, fontsize - 1)
-  SetFont("GameFontNormalSmall", STANDARD_TEXT_FONT, fontsize - 1)
-  SetFont("NumberFont_Shadow_Med", STANDARD_TEXT_FONT, fontsize - 1, "OUTLINE")
-  SetFont("NumberFont_Shadow_Small", STANDARD_TEXT_FONT, fontsize - 1, "OUTLINE")
-  SetFont("SystemFont_Tiny", STANDARD_TEXT_FONT, fontsize - 1)
-  SetFont("SystemFont_Shadow_Med1", STANDARD_TEXT_FONT, fontsize)
-  SetFont("SystemFont_Shadow_Med1_Outline", STANDARD_TEXT_FONT, fontsize)
-  SetFont("SystemFont_Shadow_Med2", STANDARD_TEXT_FONT, fontsize)
-  SetFont("SystemFont_Shadow_Med3", STANDARD_TEXT_FONT, fontsize)
-  SetFont("SystemFont_Large", STANDARD_TEXT_FONT, fontsize)
-  SetFont("SystemFont_Huge1", STANDARD_TEXT_FONT, fontsize+4)
-  SetFont("SystemFont_Huge1_Outline", STANDARD_TEXT_FONT, fontsize+4)
-  SetFont("SystemFont_Shadow_Small", STANDARD_TEXT_FONT, fontsize)
-  SetFont("SystemFont_Shadow_Large", STANDARD_TEXT_FONT, fontsize+3)
-
-  SetFont("QuestFont", DIALOG_FONT, dialog_fontsize);
-  SetFont("SpellFont_Small", DIALOG_FONT, dialog_fontsize, "OUTLINE", 1, 1, 1);
-  SetFont("SystemFont_Shadow_Outline_Huge2", DIALOG_FONT, dialog_fontsize+14, "OUTLINE");
-
-  SetFont("NumberFont_OutlineThick_Mono_Small", NUMBER_TEXT_FONT, number_fontsize, "OUTLINE")
-  SetFont("NumberFont_Outline_Huge", NUMBER_TEXT_FONT, number_fontsize+6, "OUTLINE", 28)
-  SetFont("NumberFont_Outline_Large", NUMBER_TEXT_FONT, number_fontsize+6, "OUTLINE")
-  SetFont("NumberFont_Outline_Med", NUMBER_TEXT_FONT, number_fontsize+1, "OUTLINE")
-  SetFont("NumberFontNormal", NUMBER_TEXT_FONT, number_fontsize, "OUTLINE")
-  SetFont("NumberFont_GameNormal", NUMBER_TEXT_FONT, number_fontsize, "OUTLINE")
-  SetFont("NumberFontNormalRight", NUMBER_TEXT_FONT, number_fontsize, "OUTLINE")
-  SetFont("NumberFontNormalRightRed", NUMBER_TEXT_FONT, number_fontsize, "OUTLINE")
-  SetFont("NumberFontNormalRightYellow", NUMBER_TEXT_FONT, number_fontsize, "OUTLINE")
-
-  SetFont("GameFont_Gigantic", ALERT_TEXT_FONT, alert_fontsize, "OUTLINE", 32)
-  SetFont("SystemFont_Shadow_Huge1", ALERT_TEXT_FONT, alert_fontsize, "OUTLINE")
-  --SetFont("SystemFont_OutlineThick_Huge2", ALERT_TEXT_FONT, alert_fontsize, "THICKOUTLINE")
-
-  SetFont("SystemFont_Shadow_Huge3", DAMAGE_TEXT_FONT, combat_fontsize, "OUTLINE")
-  SetFont("CombatTextFont", DAMAGE_TEXT_FONT, combat_fontsize * 3, "OUTLINE")
-
-  SetFont("SystemFont_OutlineThick_Huge4", ZONE_TEXT_FONT, zone_fontsize+6, "OUTLINE");
-  SetFont("SystemFont_OutlineThick_WTF", ZONE_TEXT_FONT, zone_fontsize+9, "OUTLINE");
-  SetFont("SystemFont_OutlineThick_WTF2", ZONE_TEXT_FONT, zone_fontsize+15, "OUTLINE");
-  SetFont("QuestFont_Large", ZONE_TEXT_FONT, zone_fontsize - 3);
-  SetFont("QuestFont_Huge", ZONE_TEXT_FONT, zone_fontsize - 2);
-  SetFont("QuestFont_Super_Huge", ZONE_TEXT_FONT, zone_fontsize);
-  SetFont("SystemFont_OutlineThick_Huge2", ZONE_TEXT_FONT, zone_fontsize+2, "OUTLINE");
-
-  self.Events:Trigger("SVUI_FONTS_UPDATED");
 end

+function SV:SetSystemFonts()
+  --SetFont("GameFontNormal", "default", fontsize - 2)
+  SetFont("GameFontWhite", "default", 0, 'OUTLINE', 1, 1, 1)
+  SetFont("GameFontWhiteSmall", "default", 0, 'NONE', 1, 1, 1)
+  SetFont("GameFontBlack", "default", 0, 'NONE', 0, 0, 0)
+  SetFont("GameFontBlackSmall", "default", -1, 'NONE', 0, 0, 0)
+  SetFont("GameFontNormalMed2", "default", 2)
+  --SetFont("GameFontNormalMed1", "default", 0)
+  SetFont("GameFontNormalLarge", "default")
+  SetFont("GameFontHighlightSmall", "default")
+  SetFont("GameFontHighlight", "default", 1)
+  SetFont("GameFontHighlightLeft", "default", 1)
+  SetFont("GameFontHighlightRight", "default", 1)
+  SetFont("GameFontHighlightLarge2", "default", 2)
+  SetFont("SystemFont_Med1", "default")
+  SetFont("SystemFont_Med3", "default")
+  SetFont("SystemFont_Outline_Small", "default", 0, "OUTLINE")
+  SetFont("FriendsFont_Normal", "default")
+  SetFont("FriendsFont_Small", "default")
+  SetFont("FriendsFont_Large", "default", 3)
+  SetFont("FriendsFont_UserText", "default", -1)
+  SetFont("SystemFont_Small", "default", -1)
+  SetFont("GameFontNormalSmall", "default", -1)
+  SetFont("NumberFont_Shadow_Med", "default", -1, "OUTLINE")
+  SetFont("NumberFont_Shadow_Small", "default", -1, "OUTLINE")
+  SetFont("SystemFont_Tiny", "default", -1)
+  SetFont("SystemFont_Shadow_Med1", "default")
+  SetFont("SystemFont_Shadow_Med1_Outline", "default")
+  SetFont("SystemFont_Shadow_Med2", "default")
+  SetFont("SystemFont_Shadow_Med3", "default")
+  SetFont("SystemFont_Large", "default")
+  SetFont("SystemFont_Huge1", "default", 4)
+  SetFont("SystemFont_Huge1_Outline", "default", 4)
+  SetFont("SystemFont_Shadow_Small", "default")
+  SetFont("SystemFont_Shadow_Large", "default", 3)
+
+  SetFont("QuestFont", "dialog");
+  SetFont("QuestFont_Enormous", "zone", 15, "OUTLINE");
+  SetFont("SpellFont_Small", "dialog", 0, "OUTLINE", 1, 1, 1);
+  SetFont("SystemFont_Shadow_Outline_Huge2", "dialog", 14, "OUTLINE");
+
+  SetFont("GameFont_Gigantic", "alert", 0, "OUTLINE", 32)
+  SetFont("SystemFont_Shadow_Huge1", "alert", 0, "OUTLINE")
+  --SetFont("SystemFont_OutlineThick_Huge2", "alert", 0, "THICKOUTLINE")
+
+  SetFont("SystemFont_Shadow_Huge3", "combat", 0, "OUTLINE")
+  SetFont("CombatTextFont", "combat", 20, "OUTLINE")
+
+  SetFont("SystemFont_OutlineThick_Huge4", "zone", 6, "OUTLINE");
+  SetFont("SystemFont_OutlineThick_WTF", "zone", 9, "OUTLINE");
+  SetFont("SystemFont_OutlineThick_WTF2", "zone", 15, "OUTLINE");
+  SetFont("QuestFont_Large", "zone", -3);
+  SetFont("QuestFont_Huge", "zone", -2);
+  SetFont("QuestFont_Super_Huge", "zone");
+  SetFont("SystemFont_OutlineThick_Huge2", "zone", 2, "OUTLINE");
+
+  SetFont("Game18Font", "number", 1)
+  SetFont("Game24Font", "number", 3)
+  SetFont("Game27Font", "number", 5)
+  SetFont("Game30Font", "number_big")
+  SetFont("Game32Font", "number_big", 1)
+
+  SetFont("NumberFont_OutlineThick_Mono_Small", "number", 0, "OUTLINE")
+  SetFont("NumberFont_Outline_Huge", "number_big", 0, "OUTLINE")
+  SetFont("NumberFont_Outline_Large", "number_big", 0, "OUTLINE")
+  SetFont("NumberFont_Outline_Med", "number", 1, "OUTLINE")
+  SetFont("NumberFontNormal", "number", 0, "OUTLINE")
+  SetFont("NumberFont_GameNormal", "number", 0, "OUTLINE")
+  SetFont("NumberFontNormalRight", "number", 0, "OUTLINE")
+  SetFont("NumberFontNormalRightRed", "number", 0, "OUTLINE")
+  SetFont("NumberFontNormalRightYellow", "number", 0, "OUTLINE")
+
+  SetFont("GameTooltipHeader", "tipheader")
+  SetFont("Tooltip_Med", "tipdialog")
+  SetFont("Tooltip_Small", "tipdialog", -1)
+end
+
+function SV:MediaUpdate()
+  self.Media.color.default      = self.db.media.colors.default
+  self.Media.color.special      = self.db.media.colors.special
+  self.Media.color.specialdark  = self.db.media.colors.specialdark
+  self.Media.bg.pattern         = LSM:Fetch("background", self.db.media.textures.pattern)
+  self.Media.bg.comic           = LSM:Fetch("background", self.db.media.textures.comic)
+  self.Media.bg.unitlarge       = LSM:Fetch("background", self.db.media.textures.unitlarge)
+  self.Media.bg.unitsmall       = LSM:Fetch("background", self.db.media.textures.unitsmall)
+
+  local cColor1 = self.Media.color.special
+  local cColor2 = self.Media.color.default
+  local r1,g1,b1 = cColor1[1], cColor1[2], cColor1[3]
+  local r2,g2,b2 = cColor2[1], cColor2[2], cColor2[3]
+
+  self.Media.gradient.special = {"VERTICAL",r1,g1,b1,r2,g2,b2}
+
+  self.Events:Trigger("SVUI_COLORS_UPDATED");
+end
+
 function SV:RefreshAllSystemMedia()
-  self:RefreshSystemFonts()
-  self:MediaUpdate()
-  self.MediaInitialized = true
+  self:SetGlobalFonts();
+  self:MediaUpdate();
+  self:SetSystemFonts();
+  self.Events:Trigger("SVUI_ALLFONTS_UPDATED");
+  self.MediaInitialized = true;
 end
 --[[
 ##########################################################
@@ -481,5 +450,5 @@ do

   local fName, fHeight, fFlags = CombatTextFont:GetFont()

-  CombatTextFont:SetFont(fontFile, 24, fFlags)
+  CombatTextFont:SetFont(fontFile, fHeight, fFlags)
 end
\ No newline at end of file
diff --git a/Interface/AddOns/SVUI_ChatOMatic/components/answering_service.lua b/Interface/AddOns/SVUI_ChatOMatic/components/answering_service.lua
index 6829ac0..9a470d8 100644
--- a/Interface/AddOns/SVUI_ChatOMatic/components/answering_service.lua
+++ b/Interface/AddOns/SVUI_ChatOMatic/components/answering_service.lua
@@ -867,11 +867,10 @@ OTHER HANDLERS
 ##########################################################
 ]]--
 local AnsweringOnClick = function()
-	if(not PLUGIN.Docklet) then return end
 	if(PLUGIN.Docklet:IsShown()) then
-		PLUGIN.Docklet:Hide()
+		PLUGIN.Docklet.DockButton:Deactivate()
 	else
-		PLUGIN.Docklet:Show()
+		PLUGIN.Docklet.DockButton:Activate()
 	end
 end

diff --git a/Interface/AddOns/SVUI_ConfigOMatic/components/dock.lua b/Interface/AddOns/SVUI_ConfigOMatic/components/dock.lua
index 72de82d..2a43c23 100644
--- a/Interface/AddOns/SVUI_ConfigOMatic/components/dock.lua
+++ b/Interface/AddOns/SVUI_ConfigOMatic/components/dock.lua
@@ -265,8 +265,8 @@ SV.Options.args.Dock.args["rightDockGroup"] = {
 		-- 			order = 1,
 		-- 			type = "toggle",
 		-- 			name = L["Enable"],
-		-- 			get = function()return SV.db.general.questWatch end,
-		-- 		 	set = function(j, value) SV.db.general.questWatch = value; SV:StaticPopup_Show("RL_CLIENT") end
+		-- 			get = function()return SV.db.SVQuest.enable end,
+		-- 		 	set = function(j, value) SV.db.SVQuest.enable = value; SV:StaticPopup_Show("RL_CLIENT") end
 		-- 		}
 		-- 	}
 		-- },
@@ -281,7 +281,7 @@ SV.Options.args.Dock.args["rightDockGroup"] = {
 		-- 			name = L["Enable"],
 		-- 			get = function()return SV.db.general.questHeaders end,
 		-- 		 	set = function(j, value) SV.db.general.questHeaders = value; SV:StaticPopup_Show("RL_CLIENT") end,
-		-- 		 	disabled = function()return (not SV.db.general.questWatch) end,
+		-- 		 	disabled = function()return (not SV.db.SVQuest.enable) end,
 		-- 		}
 		-- 	}
 		-- }
diff --git a/Interface/AddOns/SVUI_ConfigOMatic/components/fonts.lua b/Interface/AddOns/SVUI_ConfigOMatic/components/fonts.lua
index c69b54c..a180d91 100644
--- a/Interface/AddOns/SVUI_ConfigOMatic/components/fonts.lua
+++ b/Interface/AddOns/SVUI_ConfigOMatic/components/fonts.lua
@@ -35,33 +35,202 @@ local _, ns = ...;

 local AceGUIWidgetLSMlists = AceGUIWidgetLSMlists;

-local FONT_GROUP_SORT = {
-	{"Default", 1, {"default"}},
-	{"General", 2, {"dialog", "number", "aura", "chat", "chattab"}},
-	{"Large", 3, {"combat", "alert", "zone", "title", "number_big"}},
-	{"QuestTracker", 4, {"questdialog", "questheader", "questnumber"}},
-	{"Misc", 5, {"data", "narrator", "caps"}},
-	{"NamePlate", 6, {"platename", "plateaura"}},
-	{"UnitFrame", 7, {"unitprimary", "unitsecondary", "unitaurabar", "unitaurasmall", "unitauramedium", "unitauralarge"}},
-};
-local FONT_GROUP_TITLES = {
-	["Default"] = "The most commonly used font in SVUI.",
-	["General"] = "These fonts are found more often than the rest.",
-	["Large"] = "Large versions of the common fonts.",
-	["QuestTracker"] = "Fonts used in the SVUI Quest Tracker.",
-	["Misc"] = "Fonts used in various places including the docks.",
-	["NamePlate"] = "Fonts used in SVUI Name Plates.",
-	["UnitFrame"] = "Fonts used in SVUI Unit Frames.",
+local FONT_INFO = {
+	{"System Dialog", 1, "The most commonly used fonts.",
+		{
+			["default"] = {
+				name = "Default",
+				desc = "Standard font for the majority of uses."
+			},
+			["dialog"] = {
+				name = "Dialog",
+				desc = "Font used in places that story text appears. (ie.. quest text)"
+			},
+			["combat"] = {
+				name = "Combat",
+				desc = "Scrolling combat text font."
+			},
+	    	["alert"] = {
+	    		name = "Alerts",
+	    		desc = "Font used for on-screen message alerts."
+	    	},
+	    	["zone"] = {
+	    		name = "Zone Text",
+	    		desc = "Font used for zone names. Shown when changing zones."
+	    	},
+	    	["title"] = {
+	    		name = "Titles",
+	    		desc = "Font used to display various titles."
+	    	},
+	    	["header"] = {
+	    		name = "Frame Headers",
+	    		desc = "Font used to large names at the top of some frames."
+	    	},
+	    	["caps"] = {
+	    		name = "Caps",
+	    		desc = "Font typically used for things like tabs and fitted headers."
+	    	},
+		},
+	},
+	{"System Numeric", 2, "These fonts are used for many number values.",
+		{
+			["number"] = {
+				name = "Numbers (Regular)",
+				desc = "Font used to display most numeric values."
+			},
+			["number_big"] = {
+	    		name = "Numbers (Large)",
+	    		desc = "Font used to display larger numeric values."
+	    	},
+			["aura"]   = {
+				name = "Auras",
+				desc = "Aura counts and timers use this font."
+			},
+		},
+	},
+	{"Chat", 3, "Fonts used for the chat frame.",
+		{
+			["chatdialog"] = {
+				name = "Chat",
+				desc = "Font used for chat text."
+			},
+			["chattab"] = {
+				name = "Chat Tabs",
+				desc = "Font used for chat tab labels."
+			},
+		},
+	},
+	{"QuestTracker", 4, "Fonts used in the SVUI Quest Tracker.",
+		{
+			["questdialog"] = {
+				name = "Quest Tracker Dialog",
+				desc = "Default font used in the quest tracker"
+			},
+		    ["questheader"] = {
+				name = "Quest Tracker Titles",
+				desc = "Font used in the quest tracker for listing headers."
+			},
+		    ["questnumber"] = {
+				name = "Quest Tracker Numbers",
+				desc = "Font used in the quest tracker to display numeric values."
+			},
+		},
+	},
+	{"NamePlate", 5, "Fonts used in name plates.",
+		{
+			["platename"] = {
+				name = "Nameplate Names",
+				desc = "Used on nameplates for unit names."
+			},
+			["platenumber"] = {
+				name = "Nameplate Numbers",
+				desc = "Used on nameplates for health and level numbers."
+			},
+		    ["plateaura"] = {
+				name = "Nameplate Auras",
+				desc = "Used on nameplates for aura texts."
+			},
+		},
+	},
+	{"UnitFrame", 6, "Fonts used in unit frames.",
+		{
+			["unitaurabar"] = {
+				name = "Unitframe AuraBar",
+				desc = "Used on unit aurabars."
+			},
+		    ["unitauramedium"] = {
+				name = "Unitframe Aura (Medium)",
+				desc = "Used on unit frames for auras (medium scale)."
+			},
+		    ["unitauralarge"] = {
+				name = "Unitframe Aura (Large)",
+				desc = "Used on unit frames for auras (large scale)."
+			},
+		    ["unitaurasmall"] = {
+				name = "Unitframe Aura (Small)",
+				desc = "Used on unit frames for auras (small scale)."
+			},
+		    ["unitprimary"] = {
+				name = "Unitframe Values",
+				desc = "Used on all primary unit frames for health, power and misc values.\nUnits: player, pet, target, focus, boss and arena"
+			},
+		    ["unitsecondary"] = {
+				name = "Unitframe Values",
+				desc = "Used on all non-primary unit frames for health, power and misc values.\nUnits: pettarget, targettarget, focustarget, party, raid, raidpet, tank and assist."
+			},
+		},
+	},
+	{"Bags", 7, "Fonts used in bag slots.",
+		{
+			["bagdialog"] = {
+				name = "Bag Slot Dialog",
+				desc = "Default font used in bag and bank slots"
+			},
+		    ["bagnumber"] = {
+				name = "Bag Slot Numbers",
+				desc = "Font used in bag and bank slots to display numeric values."
+			},
+		},
+	},
+	{"Tooltip", 8, "Fonts used in tooltips.",
+		{
+			["tipdialog"] = {
+				name = "Tooltip Dialog",
+				desc = "Default font used in tooltips"
+			},
+		    ["tipheader"] = {
+				name = "Tooltip Headers",
+				desc = "Font used in tooltips to display large names."
+			},
+		},
+	},
+	{"Loot", 9, "Fonts used in loot frames.",
+		{
+			["lootdialog"] = {
+				name = "Loot Frame Dialog",
+				desc = "Default font used in the loot frame"
+			},
+		    ["lootnumber"] = {
+				name = "Loot Frame Numbers",
+				desc = "Font used in the loot frame to display numeric values."
+			},
+			["rolldialog"] = {
+				name = "Roll Frame Dialog",
+				desc = "Default font used in the loot-roll frame"
+			},
+		    ["rollnumber"] = {
+				name = "Roll Frame Numbers",
+				desc = "Font used in the loot-roll frame to display numeric values."
+			},
+		},
+	},
+	{"Misc", 10, "Fonts used in various places including the docks.",
+		{
+			["data"] = {
+				name = "Docked Stats",
+				desc = "Font used by the bottom and top data docks."
+			},
+	    	["narrator"] = {
+	    		name = "Narratives",
+	    		desc = "Font used for things like the 'Meanwhile' tag."
+	    	},
+	    	["pixel"] = {
+	    		name = "Pixel",
+	    		desc = "Tiniest fonts."
+	    	},
+		},
+	},
 };

 local function GenerateFontGroup()
     local fontGroupArgs = {};

-    for _, listData in pairs(FONT_GROUP_SORT) do
+    for _, listData in pairs(FONT_INFO) do
     	local orderCount = 3;
     	local groupName = listData[1];
     	local groupCount = listData[2];
-    	local groupList = listData[3];
+    	local groupOverview = listData[3];
+    	local groupList = listData[4];
     	fontGroupArgs[groupName] = {
 			order = groupCount,
 			type = "group",
@@ -69,7 +238,7 @@ local function GenerateFontGroup()
 			args = {
 				overview = {
 					order = 1,
-					name = FONT_GROUP_TITLES[groupName],
+					name = groupOverview,
 					type = "description",
 					width = "full",
 				},
@@ -81,25 +250,23 @@ local function GenerateFontGroup()
 				},
 			},
 		};
-    	for _, template in pairs(groupList) do
-    		local data = SV.db.font[template]
-    		if(not data) then print(template) return end
+    	for template, info in pairs(groupList) do
 	    	fontGroupArgs[groupName].args[template] = {
 	    		order = orderCount,
 				type = "group",
 				guiInline = true,
-				name = data.optionName,
+				name = info.name,
 				get = function(key)
 					return SV.db.font[template][key[#key]]
 				end,
 				set = function(key,value)
 					SV.db.font[template][key[#key]] = value;
-					SV:RefreshSystemFonts();
+					SV.Events:Trigger("SVUI_FONTGROUP_UPDATED", template);
 				end,
 				args = {
 					description = {
 						order = 1,
-						name = data.optionDesc,
+						name = info.desc,
 						type = "description",
 						width = "full",
 					},
diff --git a/Interface/AddOns/SVUI_StyleOMatic/components/addons/Omen.lua b/Interface/AddOns/SVUI_StyleOMatic/components/addons/Omen.lua
index 0d8e881..356672c 100644
--- a/Interface/AddOns/SVUI_StyleOMatic/components/addons/Omen.lua
+++ b/Interface/AddOns/SVUI_StyleOMatic/components/addons/Omen.lua
@@ -45,7 +45,7 @@ local function StyleOmen()
   Omen.db.profile.Background.Texture = "None"

   --[[ Bar Settings ]]--
-  Omen.db.profile.Bar.Font = "SVUI Clean Font"
+  Omen.db.profile.Bar.Font = "SVUI Default Font"
   Omen.db.profile.Bar.FontOutline = "None"
   Omen.db.profile.Bar.FontSize = 11
   Omen.db.profile.Bar.Height = 14
@@ -98,7 +98,7 @@ function PLUGIN:Docklet_Omen(parent)
   db.profile.Background.Texture = "None"

   --[[ Bar Settings ]]--
-  db.profile.Bar.Font = "SVUI Clean Font";
+  db.profile.Bar.Font = "SVUI Default Font";
   db.profile.Bar.FontOutline = "None";
   db.profile.Bar.FontSize = 11;
   db.profile.Bar.Height = 14;
diff --git a/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/character.lua b/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/character.lua
index c554c50..904f081 100644
--- a/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/character.lua
+++ b/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/character.lua
@@ -131,33 +131,11 @@ local function StyleCharacterSlots()
 				end
 			end
 		end
-	end
-end
-
-local function EquipmentFlyout_OnShow()
-	EquipmentFlyoutFrameButtons:RemoveTextures()
-	local counter = 1;
-	local button = _G["EquipmentFlyoutFrameButton"..counter]
-	while button do
-		local texture = _G["EquipmentFlyoutFrameButton"..counter.."IconTexture"]
-		button:SetStylePanel("Button")
-		texture:SetTexCoord(0.1, 0.9, 0.1, 0.9)
-		button:GetNormalTexture():SetTexture(0,0,0,0)
-		texture:SetAllPointsIn()
-		button:SetFrameLevel(button:GetFrameLevel() + 2)
-		if not button.Panel then
-			button:SetStylePanel("Default", "Default")
-			button.Panel:SetAllPoints()
-		end
-		counter = counter + 1;
-		button = _G["EquipmentFlyoutFrameButton"..counter]
-	end
-end
+	end

-local function PaperDoll_UpdateTabs()
 	for i = 1, #PAPERDOLL_SIDEBARS do
 		local tab = _G["PaperDollSidebarTab"..i]
-		if tab then
+		if(tab and not tab.Panel) then
 			tab.Highlight:SetTexture(1, 1, 1, 0.3)
 			tab.Highlight:SetPointToScale("TOPLEFT", 3, -4)
 			tab.Highlight:SetPointToScale("BOTTOMRIGHT", -1, 0)
@@ -174,16 +152,37 @@ local function PaperDoll_UpdateTabs()
 			tab:SetStylePanel("Default", "Default", true, 2)
 			tab.Panel:SetPointToScale("TOPLEFT", 2, -3)
 			tab.Panel:SetPointToScale("BOTTOMRIGHT", 0, -2)
+			if(i == 1) then
+				tab:ClearAllPoints()
+				tab:SetPoint("BOTTOM", CharacterFrameInsetRight, "TOP", 0, 4)
+			else
+				tab:ClearAllPoints()
+				tab:SetPoint("LEFT",  _G["PaperDollSidebarTab"..i-1], "RIGHT", 4, 0)
+			end
 		end
 	end
-	PaperDollSidebarTab1:ClearAllPoints()
-	PaperDollSidebarTab1:SetPoint("BOTTOM", CharacterFrameInsetRight, "TOP", 0, 4)
-	PaperDollSidebarTab2:ClearAllPoints()
-	PaperDollSidebarTab2:SetPoint("LEFT", PaperDollSidebarTab1, "RIGHT", 4, 0)
-	PaperDollSidebarTab3:ClearAllPoints()
-	PaperDollSidebarTab3:SetPoint("LEFT", PaperDollSidebarTab2, "RIGHT", 4, 0)
 end

+local function EquipmentFlyout_OnShow()
+	EquipmentFlyoutFrameButtons:RemoveTextures()
+	local counter = 1;
+	local button = _G["EquipmentFlyoutFrameButton"..counter]
+	while button do
+		local texture = _G["EquipmentFlyoutFrameButton"..counter.."IconTexture"]
+		button:SetStylePanel("Button")
+		texture:SetTexCoord(0.1, 0.9, 0.1, 0.9)
+		button:GetNormalTexture():SetTexture(0,0,0,0)
+		texture:SetAllPointsIn()
+		button:SetFrameLevel(button:GetFrameLevel() + 2)
+		if not button.Panel then
+			button:SetStylePanel("Default", "Default")
+			button.Panel:SetAllPoints()
+		end
+		counter = counter + 1;
+		button = _G["EquipmentFlyoutFrameButton"..counter]
+	end
+end
+
 local function Reputation_OnShow()
 	for i = 1, GetNumFactions()do
 		local bar = _G["ReputationBar"..i.."ReputationBar"]
@@ -204,59 +203,55 @@ local function Reputation_OnShow()
 end

 local function PaperDollTitlesPane_OnShow()
-	for _,gName in pairs(PaperDollTitlesPane.buttons) do
-		local btn = _G[gName]
+	for i,btn in pairs(PaperDollTitlesPane.buttons) do
 		if(btn) then
 			btn.BgTop:SetTexture(0,0,0,0)
 			btn.BgBottom:SetTexture(0,0,0,0)
 			btn.BgMiddle:SetTexture(0,0,0,0)
-			btn.Check:SetTexture(0,0,0,0)
-			btn.text:SetAllPointsIn(btn)
-			btn.text:SetFont(SV.Media.font.default,10,"NONE","LEFT")
 		end
-	end
+	end
+	PaperDollTitlesPane_Update()
 end

 local function PaperDollEquipmentManagerPane_OnShow()
-		for _,gName in pairs(PaperDollEquipmentManagerPane.buttons) do
-			local btn = _G[gName]
-			if(btn) then
-				btn.BgTop:SetTexture(0,0,0,0)
-				btn.BgBottom:SetTexture(0,0,0,0)
-				btn.BgMiddle:SetTexture(0,0,0,0)
-				btn.icon:SetSizeToScale(36, 36)
-				btn.Check:SetTexture(0,0,0,0)
-				btn.icon:SetTexCoord(0.1, 0.9, 0.1, 0.9)
-				btn.icon:SetPoint("LEFT", btn, "LEFT", 4, 0)
-				if not btn.icon.bordertop then
-					 SetItemFrame(btn, btn.icon)
-				end
-			end
+	for i,btn in pairs(PaperDollEquipmentManagerPane.buttons) do
+		if(btn) then
+			btn.BgTop:SetTexture(0,0,0,0)
+			btn.BgBottom:SetTexture(0,0,0,0)
+			btn.BgMiddle:SetTexture(0,0,0,0)
+			btn.icon:SetSizeToScale(36, 36)
+			btn.Check:SetTexture(0,0,0,0)
+			btn.icon:SetTexCoord(0.1, 0.9, 0.1, 0.9)
+			btn.icon:SetPoint("LEFT", btn, "LEFT", 4, 0)
+			if not btn.icon.bordertop then
+				 SetItemFrame(btn, btn.icon)
+			end
 		end
+	end

-		GearManagerDialogPopup:RemoveTextures()
-		GearManagerDialogPopup:SetStylePanel("Default", "Inset", true)
-		GearManagerDialogPopup:SetPointToScale("LEFT", PaperDollFrame, "RIGHT", 4, 0)
-		GearManagerDialogPopupScrollFrame:RemoveTextures()
-		GearManagerDialogPopupEditBox:RemoveTextures()
-		GearManagerDialogPopupEditBox:SetStylePanel("Default", 'Inset')
-		GearManagerDialogPopupOkay:SetStylePanel("Button")
-		GearManagerDialogPopupCancel:SetStylePanel("Button")
-
-		for i = 1, NUM_GEARSET_ICONS_SHOWN do
-			local btn = _G["GearManagerDialogPopupButton"..i]
-			if(btn and (not btn.Panel)) then
-				btn:RemoveTextures()
-				btn:SetFrameLevel(btn:GetFrameLevel() + 2)
-				btn:SetStylePanel("Button")
-				if(btn.icon) then
-					btn.icon:SetTexCoord(0.1, 0.9, 0.1, 0.9)
-					btn.icon:SetTexture(0,0,0,0)
-					btn.icon:SetAllPointsIn()
-				end
+	GearManagerDialogPopup:RemoveTextures()
+	GearManagerDialogPopup:SetStylePanel("Default", "Inset", true)
+	GearManagerDialogPopup:SetPointToScale("LEFT", PaperDollFrame, "RIGHT", 4, 0)
+	GearManagerDialogPopupScrollFrame:RemoveTextures()
+	GearManagerDialogPopupEditBox:RemoveTextures()
+	GearManagerDialogPopupEditBox:SetStylePanel("Default", 'Inset')
+	GearManagerDialogPopupOkay:SetStylePanel("Button")
+	GearManagerDialogPopupCancel:SetStylePanel("Button")
+
+	for i = 1, NUM_GEARSET_ICONS_SHOWN do
+		local btn = _G["GearManagerDialogPopupButton"..i]
+		if(btn and (not btn.Panel)) then
+			btn:RemoveTextures()
+			btn:SetFrameLevel(btn:GetFrameLevel() + 2)
+			btn:SetStylePanel("Button")
+			if(btn.icon) then
+				btn.icon:SetTexCoord(0.1, 0.9, 0.1, 0.9)
+				btn.icon:SetTexture(0,0,0,0)
+				btn.icon:SetAllPointsIn()
 			end
 		end
 	end
+end
 --[[
 ##########################################################
 CHARACTERFRAME PLUGINR
@@ -336,8 +331,9 @@ local function CharacterFrameStyle()
 	CharacterModelFrame:SetStylePanel("Fixed", "Model")
 	CharacterFrameExpandButton:SetFrameLevel(CharacterModelFrame:GetFrameLevel() + 5)

+	PaperDollTitlesPane:RemoveTextures()
+	PaperDollTitlesPaneScrollChild:RemoveTextures()
 	PaperDollTitlesPane:SetStylePanel("Default", 'Inset')
-
 	PaperDollTitlesPane:HookScript("OnShow", PaperDollTitlesPane_OnShow)

 	PaperDollEquipmentManagerPane:SetStylePanel("Default", 'Inset')
@@ -355,7 +351,6 @@ local function CharacterFrameStyle()
 		 PLUGIN:ApplyTabStyle(_G["CharacterFrameTab"..i])
 	end

-	hooksecurefunc("PaperDollFrame_UpdateSidebarTabs", PaperDoll_UpdateTabs)

 	ReputationFrame:RemoveTextures(true)
 	ReputationListScrollFrame:RemoveTextures()
diff --git a/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/garrison.lua b/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/garrison.lua
index 4dc3876..1458c74 100644
--- a/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/garrison.lua
+++ b/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/garrison.lua
@@ -291,6 +291,12 @@ local function LoadGarrisonStyle()
 	GarrisonLandingPage.FollowerList:RemoveTextures()
 	GarrisonLandingPage.FollowerList:SetStylePanel("Default", 'Inset', false, 4, 0, 0)

+	local bgFrameTop = CreateFrame("Frame", nil, GarrisonLandingPage.Report)
+	bgFrameTop:SetPoint("TOPLEFT", GarrisonLandingPage.Report, "TOPLEFT", 38, -91)
+	bgFrameTop:SetPoint("BOTTOMRIGHT", GarrisonLandingPage.Report.List, "BOTTOMLEFT", -4, 0)
+	bgFrameTop:SetStylePanel("Default", "Paper")
+	bgFrameTop:SetPanelColor("special")
+
 	PLUGIN:ApplyTabStyle(GarrisonLandingPageTab1, nil, 10, 4)
 	PLUGIN:ApplyTabStyle(GarrisonLandingPageTab2, nil, 10, 4)

@@ -341,6 +347,12 @@ local function LoadGarrisonStyle()
 	GarrisonMissionFrame.MissionTab.MissionPage:SetStylePanel("Default", 'Paper', false, 4, 0, 0)
 	GarrisonMissionFrame.MissionTab.MissionPage:SetPanelColor("special")

+	local missionChance = GarrisonMissionFrame.MissionTab.MissionPage.RewardsFrame.Chance;
+	missionChance:FontManager("number_big")
+	local chanceLabel = GarrisonMissionFrame.MissionTab.MissionPage.RewardsFrame.ChanceLabel
+	chanceLabel:FontManager("header", nil, -4)
+	chanceLabel:ClearAllPoints()
+	chanceLabel:SetPoint("TOP", missionChance, "BOTTOM", 0, -8)

 	GarrisonMissionFrame.MissionTab.MissionPage.Panel:ClearAllPoints()
 	GarrisonMissionFrame.MissionTab.MissionPage.Panel:SetPoint("TOPLEFT", GarrisonMissionFrame.MissionTab.MissionPage, "TOPLEFT", 0, 4)
diff --git a/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/quest.lua b/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/quest.lua
index 849ed6f..1d570a7 100644
--- a/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/quest.lua
+++ b/Interface/AddOns/SVUI_StyleOMatic/components/blizzard/quest.lua
@@ -295,12 +295,13 @@ local function QuestChoiceFrameStyle()
 	bgFrameTop:SetPoint("TOPLEFT", QuestChoiceFrame, "TOPLEFT", 42, -44)
 	bgFrameTop:SetPoint("TOPRIGHT", QuestChoiceFrame, "TOPRIGHT", -42, -44)
 	bgFrameTop:SetHeight(85)
-	bgFrameTop:SetStylePanel("Default", "Inset")
+	bgFrameTop:SetStylePanel("Default", "Paper")
+	bgFrameTop:SetPanelColor("dark")

 	local bgFrameBottom = CreateFrame("Frame", nil, QuestChoiceFrame)
 	bgFrameBottom:SetPoint("TOPLEFT", QuestChoiceFrame, "TOPLEFT", 42, -140)
 	bgFrameBottom:SetPoint("BOTTOMRIGHT", QuestChoiceFrame, "BOTTOMRIGHT", -42, 44)
-	bgFrameBottom:SetStylePanel("Default", "Inset")
+	bgFrameBottom:SetStylePanel("Default", "Paper")


 	PLUGIN:ApplyCloseButtonStyle(QuestChoiceFrame.CloseButton)