Lib: NoobTaco-Config

by NoobTaco

152 downloads Updated 1 game version

About

From the README

CI Status Release Status Discord Buy Me A Coffee

NoobTaco-Config is a modular, schema-driven configuration framework for World of Warcraft addons. Designed with a focus on "pixel-perfect" aesthetics and ease of use, it allows developers to build complex, themed options menus using simple Lua tables.

📸 Screenshots

OverviewTheme Support
WelcomeThemes

[!TIP]Use the Library Showcase in-game to see the dynamic theming and all widgets in action.

✨ Features

  • 🛠️ Declarative Schemas: Define your entire UI layout in nested Lua tables.
  • 🎨 Dynamic Theming: Built-in support for NoobTaco, Nord, and Catppuccin themes.
  • 🔡 Accessible Typography: Integrated with the Poppins font family using optimized weights (Medium, Bold) for maximum readability.
  • ⚡ Transactional State: Built-in commit/revert logic for user settings.
  • 🌈 Inline Color Tokens: Use |ctoken| (e.g., |chighlight|) to dynamically style text based on the active theme.
  • 📁 Nested Data: Native support for dot-notation in IDs to map directly to complex SavedVariables.
  • 🔊 Media Previewing: Specialized media widgets with built-in playback for sounds.

🚀 Quick Start

1. Initialization

Retrieve the library via LibStub.

local Lib = LibStub("NoobTaco-Config-1.0")if not Lib then return end

2. Create a Schema

Define the layout of your settings panel.

local schema = {    type = "group",    label = "General Settings",    children = {        {            type = "about",            icon = [[Interface\AddOns\MyAddon\Media\Logo]],            title = "My Addon",            version = "1.0.0",            description = "A powerful configuration suite.",            links = {                {                     label = "GitHub",                     url = "https://github.com/...",                    onClick = function() print("Custom Click!") end                }            }        },        {            type = "card",            label = "Feature Settings",            children = {                 { id = "enableFeature", type = "checkbox", label = "Enable Magic", default = true },                 { id = "powerLevel", type = "slider", label = "Power Level", min = 0, max = 100, default = 9000 }            }        }    }}

3. Rendering

-- Render directly to a Blizzard category frameLib.Renderer:Render(schema, myPanel)

🖼️ UI Showcase

Inputs & WidgetsButtonsFeedback & Alerts
InputsButtonsFeedback

🧪 Theme Engine

The library supports instant theme switching. All colors, including inline tokens, update in real-time.

NoobTaco (Standard)Nord (Frost)Catppuccin (Mocha)
NoobTacoNordCatppuccin

📚 Documentation

❤️ Support

If you're looking for help, have questions, or want to join the community, join us on Discord!

Discord Buy Me A Coffee

📄 AI Usage

See AI_USAGE.md for more information.

📄 License

This project is licensed under the GPL-3.0-or-later License - see the LICENSE file for details.

WowUp installs Lib: NoobTaco-Config and keeps it up to date, along with the rest of your addons.

Download WowUp