BetterDiscord Addon Analysis

Official store corpus · report generated 2026-07-20 · addon data updated 2026-07-20

Plugins analyzed
208
no change since 2026-07-14
Themes analyzed
115
no change since 2026-07-14
Authors
130
no change since 2026-07-14
Corpus size
16.5 MB
+1.1 KB since 2026-07-14
Parse errors
0
✓ full AST coverage
Legacy API uses
0
✓ old-old APIs are gone
Uncalled API members
27
no change since 2026-07-14
Using require()
56
no change since 2026-07-14
Bundled / packed code
13
no change since 2026-07-14
Hardcoding classes
102
no change since 2026-07-14
Malformed meta
10
no change since 2026-07-14
Self-installing
48
no change since 2026-07-14

require() usage — polyfill retirement list

BetterDiscord has no real require; these modules are served by the polyfill. Each list names the plugins to migrate before it can be removed. Plugins also reach the same environment without require — see Environment coupling below.

ModulePluginsCallsΔ calls
require("fs")
52530
Plugins requiring fs
  • Dastan / FavoriteMedia
  • DevilBro / 0BDFDB
  • DevilBro / BetterFriendList
  • DevilBro / BetterNsfwTag
  • DevilBro / BetterSearchPage
  • DevilBro / CharCounter
  • DevilBro / ChatAliases
  • DevilBro / ChatFilter
  • DevilBro / ClickableMentions
  • DevilBro / CompleteTimestamps
  • DevilBro / CustomQuoter
  • DevilBro / CustomStatusPresets
  • DevilBro / DisplayServersAsChannels
  • DevilBro / EditChannels
  • DevilBro / EditRoles
  • DevilBro / EditServers
  • DevilBro / EditUsers
  • DevilBro / FriendNotifications
  • DevilBro / GameActivityToggle
  • DevilBro / GoogleSearchReplace
  • DevilBro / HideMutedCategories
  • DevilBro / ImageUtilities
  • DevilBro / LastMessageDate
  • DevilBro / MessageUtilities
  • DevilBro / NotificationSounds
  • DevilBro / OldTitleBar
  • DevilBro / OpenSteamLinksInApp
  • DevilBro / PersonalPins
  • DevilBro / PinDMs
  • DevilBro / QuickMention
  • DevilBro / ReadAllNotificationsButton
  • DevilBro / RemoveBlockedUsers
  • DevilBro / RemoveNicknames
  • DevilBro / RevealAllSpoilers
  • DevilBro / ServerCounter
  • DevilBro / ServerDetails
  • DevilBro / ServerFolders
  • DevilBro / ServerHider
  • DevilBro / ShowBadgesInChat
  • DevilBro / ShowConnections
  • DevilBro / SpellCheck
  • DevilBro / SplitLargeMessages
  • DevilBro / SpotifyControls
  • DevilBro / StaffTag
  • DevilBro / TimedLightDarkMode
  • DevilBro / TopRoleEverywhere
  • DevilBro / Translator
  • DevilBro / UserNotes
  • DevilBro / WriteUpperCase
  • Riolubruh / VoiceMessages
  • Yentis / EmoteReplacer
  • arg0NNY / BetterAnimations
require("path")
51520
Plugins requiring path
  • Dastan / FavoriteMedia
  • DevilBro / 0BDFDB
  • DevilBro / BetterFriendList
  • DevilBro / BetterNsfwTag
  • DevilBro / BetterSearchPage
  • DevilBro / CharCounter
  • DevilBro / ChatAliases
  • DevilBro / ChatFilter
  • DevilBro / ClickableMentions
  • DevilBro / CompleteTimestamps
  • DevilBro / CustomQuoter
  • DevilBro / CustomStatusPresets
  • DevilBro / DisplayServersAsChannels
  • DevilBro / EditChannels
  • DevilBro / EditRoles
  • DevilBro / EditServers
  • DevilBro / EditUsers
  • DevilBro / FriendNotifications
  • DevilBro / GameActivityToggle
  • DevilBro / GoogleSearchReplace
  • DevilBro / HideMutedCategories
  • DevilBro / ImageUtilities
  • DevilBro / LastMessageDate
  • DevilBro / MessageUtilities
  • DevilBro / NotificationSounds
  • DevilBro / OldTitleBar
  • DevilBro / OpenSteamLinksInApp
  • DevilBro / PersonalPins
  • DevilBro / PinDMs
  • DevilBro / QuickMention
  • DevilBro / ReadAllNotificationsButton
  • DevilBro / RemoveBlockedUsers
  • DevilBro / RemoveNicknames
  • DevilBro / RevealAllSpoilers
  • DevilBro / ServerCounter
  • DevilBro / ServerDetails
  • DevilBro / ServerFolders
  • DevilBro / ServerHider
  • DevilBro / ShowBadgesInChat
  • DevilBro / ShowConnections
  • DevilBro / SpellCheck
  • DevilBro / SplitLargeMessages
  • DevilBro / SpotifyControls
  • DevilBro / StaffTag
  • DevilBro / TimedLightDarkMode
  • DevilBro / TopRoleEverywhere
  • DevilBro / Translator
  • DevilBro / UserNotes
  • DevilBro / WriteUpperCase
  • Riolubruh / VoiceMessages
  • arg0NNY / BetterAnimations
require("events")
330
Plugins requiring events
  • Zerebos / BlurNSFW
  • arg0NNY / BetterAnimations
  • samfundev / ChannelTabs
require("electron")
330
Plugins requiring electron
  • KingGamingYT / ActivityFeed
  • arg0NNY / BetterAnimations
  • programmer2514 / MessageScanAI
require("(dynamic)")
110
Plugins requiring (dynamic)
  • DevilBro / 0BDFDB

Δ compares against the 2026-07-14 snapshot.

Environment coupling

The rest of what plugins reach for outside the addon sandbox: Node/Electron globals touched directly rather than through the require polyfill, and the React entry points that break on a Discord React bump.

Node/Electron globals

Direct access to the bridged environment, shown as root plus one segment. A file that binds one of these names locally (function f(process)) is skipped entirely rather than guessed at, so these are floor values.

GlobalPluginsCalls
DiscordNative.clipboard
1526
DiscordNative
45
process.env
45
process
33
global
27
global.document
26
process.versions
25
DiscordNative.fileManager
23
DiscordNative.nativeModules
22
DiscordNative.app
14
Buffer.from
12
global.ZeresPluginLibrary
11
process.exit
11
global.Object
11

React-upgrade hazards

Entry points that break when Discord bumps React: render, findDOMNode and unmountComponentAtNode were removed in React 19, hydrate in 18. createRoot is the opposite signal — plugins already on the modern root API.

MethodPluginsCalls
getInternalInstance hazard
89
unmountComponentAtNode hazard
12
render hazard
12
findDOMNode hazard
12
createRoot modern
810

Style injection — API vs hand-rolled API winning

The same question createRoot answers for React, for stylesheets: are plugins using the API BD offers, or doing it by hand? BdApi.DOM.addStyle injects a managed <style> that BD removes on unload; a hand-rolled document.createElement("style") is the plugin's own to clean up. Here the API is ahead — the healthy direction. (React's virtual createElement("style") is not counted; only a real DOM node is.)

ApproachPlugins
BdApi.DOM.addStyle API
73
document.createElement("style") hand-rolled
3

BdApi usage by namespace

Calls resolved through aliases, destructuring, and new BdApi() instances. Use this to weigh the impact of API changes.

NamespaceCallsPlugins
BdApi.React
5,267126
BdApi.Webpack
2,239144
BdApi.UI
588154
BdApi.Data
587113
BdApi.Patcher
410111
BdApi.ContextMenu
26649
BdApi.DOM
25682
BdApi.Components
23150
BdApi.Logger
22852
BdApi.Utils
18271
BdApi.Plugins
9561
BdApi.Net
7964
BdApi.Hooks
6517
BdApi.ReactUtils
6230
BdApi.Themes
214
BdApi.ReactDOM
1611
BdApi.settings
41
BdApi.Commands
41
BdApi.isSettingEnabled
21
BdApi.disableSetting
21
BdApi.enableSetting
21
Top individual APIs (300 distinct)
APICallsPluginsΔ
BdApi.React.createElement
4,48399+2
BdApi.Webpack.Filters.byStrings
390580
BdApi.Data.load
2991060
BdApi.Webpack.getByKeys
252650
BdApi.Data.save
2381050
BdApi.Webpack.getModule
235760
BdApi.UI.showToast
231900
BdApi.Webpack.Filters.byKeys
217530
BdApi.React.Fragment
170300
BdApi.Patcher.after
156710
BdApi.Webpack.Filters.bySource
156390
BdApi.Webpack.getStore
150450
BdApi.React.useState
133500
BdApi.Webpack.getByStrings
131290
BdApi.Patcher.unpatchAll
1231010
BdApi.DOM.removeStyle
104720
BdApi.UI.showConfirmationModal
98700
BdApi.DOM.addStyle
97730
BdApi.React
96800
BdApi.Webpack.waitForModule
92360
BdApi.Logger.error
90290
BdApi.Webpack
81670
BdApi.Net.fetch
7763+1
BdApi.Utils.findInTree
68350
BdApi.UI.buildSettingsPanel
64570
BdApi.UI.alert
64600
BdApi.React.Component
64360
BdApi.React.useEffect
63370
BdApi.Logger.info
6021−1
BdApi.Hooks.useStateFromStores
57120
Show all 270 remaining APIs
BdApi.ContextMenu.patch
56300
BdApi.UI.showChangelogModal
56520
BdApi.Plugins.folder
56520
BdApi.React.useRef
55310
BdApi.Webpack.getWithKey
47260
BdApi.Patcher
45450
BdApi.React.memo
4550
BdApi.ContextMenu.buildItem
44210
BdApi.Webpack.getBySource
40240
BdApi.Patcher.before
40260
BdApi.UI
39390
BdApi.Data
39390
BdApi.Webpack.getMangled
38160
BdApi.Webpack.Filters
37370
BdApi.Logger.warn
37160
BdApi.Patcher.instead
34250
BdApi.ContextMenu.open
33120
BdApi.Utils.className
3380
BdApi.DOM
32320
BdApi.Webpack.Filters.byStoreName
3170
BdApi.Webpack.getBulk
29290
BdApi.ContextMenu.Item
29120
BdApi.Utils.extend
28140
BdApi.ContextMenu
26250
BdApi.React.createRef
2660
BdApi.ContextMenu.buildMenu
2590
BdApi.Components.SettingItem
25100
BdApi.React.useMemo
25130
BdApi.Components.Tooltip
24200
BdApi.Components.Button
24110
BdApi.React.useCallback
22160
BdApi.Logger
21210
BdApi.Utils
21210
BdApi.ReactUtils.getOwnerInstance
21150
BdApi.React.useLayoutEffect
1790
BdApi.Webpack.Filters.byPrototypeKeys
1680
BdApi.Components.DropdownInput
1670
BdApi.Components.SwitchInput
15120
BdApi.Webpack.Stores.UserStore.getUser
1540
BdApi.ContextMenu.unpatch
1480
BdApi.UI.createTooltip
1450
BdApi.Components.Text
1490
BdApi.Utils.Store
13110
BdApi.ContextMenu.buildMenuChildren
1330
BdApi.Webpack.Stores.UserStore.getCurrentUser
1370
BdApi.ReactUtils.wrapInHooks
1370
BdApi.Components
12120
BdApi.React.cloneElement
12110
BdApi.Webpack.Stores.ChannelStore.getChannel
1250
BdApi.DOM.createElement
1250
BdApi.React.useSyncExternalStore
1270
BdApi.Webpack.Stores
11110
BdApi.ContextMenu.Menu
1160
BdApi.ReactUtils
11110
BdApi.Webpack.Stores.UserStore
11110
BdApi.Plugins.get
115+1
BdApi.Plugins.isEnabled
106+1
BdApi.Logger.log
107+1
BdApi.Data.delete
1090
BdApi.Components.Button.Sizes.SMALL
960
BdApi.ReactDOM
990
BdApi.DOM.parseHTML
960
BdApi.Webpack.Stores.ChannelStore
990
BdApi.ReactUtils.getInternalInstance
980
BdApi.Plugins
940
BdApi.Webpack.getBulkKeyed
880
BdApi.Components.TextInput
850
BdApi.Webpack.Stores.GuildStore.getGuild
850
BdApi.Webpack.Stores.GuildStore
880
BdApi.Components.ErrorBoundary
870
BdApi.Components.Button.Colors.RED
850
BdApi.Webpack.Stores.SelectedGuildStore.getGuildId
730
BdApi.Patcher.*
760
BdApi.Themes
730
BdApi.Webpack.Filters.combine
750
BdApi.Logger.debug
710
BdApi.ReactDOM.createRoot
770
BdApi.Webpack.Stores.MessageStore.getMessage
720
BdApi.React.createContext
650
BdApi.React.isValidElement
660
BdApi.UI.showNotice
650
BdApi.Webpack.Stores.SelectedChannelStore
660
BdApi.React.useReducer
660
BdApi.Components.Spinner
640
BdApi.Webpack.Stores.PermissionStore.can
640
BdApi.Components.RadioInput
650
BdApi.Webpack.getByPrototypeKeys
550
BdApi.Webpack.Stores.PresenceStore
550
BdApi.Webpack.Stores.UserStore._dispatcher.unsubscribe
510
BdApi.Webpack.Stores.UserStore._dispatcher.subscribe
510
BdApi.Webpack.Stores.UserStore._dispatcher
540
BdApi.Webpack.Stores.GuildMemberStore
550
BdApi.ContextMenu.Group
550
BdApi.Components.Text.Sizes.SIZE_16
530
BdApi.Utils.semverCompare
550
BdApi.Utils.forceLoad
550
BdApi.Patcher.getPatchesByCaller
550
BdApi.UI.openDialog
520
BdApi.Utils.mapObject
550
BdApi.UI.showInviteModal
420
BdApi.UI.buildSettingItem
430
BdApi.ContextMenu.close
440
BdApi.React.useContext
430
BdApi.Webpack.Stores.GuildRoleStore
440
BdApi.Components.Flex
430
BdApi.Components.SettingGroup
440
BdApi.ReactUtils.createNodePatcher
440
BdApi.Webpack.Stores.MessageStore
440
BdApi.Utils.debounce
440
BdApi.React.forwardRef
440
BdApi.Components.Button.Colors.GREEN
320
BdApi.Hooks.useData
330
BdApi.Webpack.Stores.UserStore._dispatcher.dispatch
320
BdApi.Webpack.Stores.SelectedChannelStore.getCurrentlySelectedChannelId
320
BdApi.Webpack.Stores.SelectedGuildStore
330
BdApi.Webpack.Stores.GuildRoleStore.getRolesSnapshot
330
BdApi.Webpack.Stores.LocaleStore.locale
330
BdApi.React.useTransition
330
BdApi.React.useId
330
BdApi.Components.ColorInput
330
BdApi.Webpack.Stores.SortedGuildStore
330
BdApi.Themes.disable
320
BdApi.Themes.isEnabled
320
BdApi.Plugins.disable
320
BdApi.Plugins.enable
320
BdApi.Plugins.reload
320
BdApi.Themes.folder
310
BdApi.Webpack.getById
330
BdApi.Components.Flex.Justify.END
320
BdApi.ContextMenu.Separator
320
BdApi.Logger.stacktrace
320
BdApi.Webpack.Stores.PresenceStore.getStatus
310
BdApi.UI.showNotification
320
BdApi.Webpack.Stores.RelationshipStore
330
BdApi.Hooks
330
BdApi.Webpack.Stores.LocaleStore
330
BdApi.Webpack.Stores.PermissionStore
330
BdApi.Components.Spinner.Type.*
310
BdApi.ReactUtils.wrapElement
310
BdApi.Net
220
BdApi.Webpack.Stores.PresenceStore.emitChange
210
BdApi.Webpack.Stores.PresenceStore.getClientStatus
220
BdApi.Webpack.Stores.MessageStore.emitChange
210
BdApi.React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.H
220
BdApi.Webpack.modules.*
220
BdApi.Webpack.Stores.SelectedChannelStore.getChannelId
220
BdApi.Webpack.Stores.GuildMemberCountStore.getMemberCount
220
BdApi.Webpack.Stores.GuildMemberCountStore
220
BdApi.Webpack.Stores.GuildMemberStore.getMembers
210
BdApi.Webpack.Stores.SortedGuildStore.getFlattenedGuildIds
220
BdApi.Components.Text.Colors.HEADER_PRIMARY
210
BdApi.Components.Spinner.Type.SPINNING_CIRCLE
210
BdApi.settings.map
210
BdApi.settings
210
BdApi.isSettingEnabled
210
BdApi.disableSetting
210
BdApi.enableSetting
210
BdApi.Themes.get
210
BdApi.Themes.enable
210
BdApi.Webpack.getModules
220
BdApi.Components.Button.Looks.FILLED
210
BdApi.Webpack.Filters.byComponentType
220
BdApi.Webpack.Filters.not
210
BdApi.React.lazy
220
BdApi.React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED
210
BdApi.ContextMenu.CheckboxItem
220
BdApi.Webpack.Stores.ReferencedMessageStore.getMessageByReference
220
BdApi.Webpack.Stores.MessageStore.getMessages
210
BdApi.Webpack.Stores.ReferencedMessageStore
220
BdApi.Webpack.Stores.GuildMemberStore.getMember
220
BdApi.Webpack.Stores.GuildStore.getGuildsArray
220
BdApi.Webpack.Stores.IdleStore
220
BdApi.Webpack.Stores.UserGuildSettingsStore
220
BdApi.Components.Text.Sizes.SIZE_12
210
BdApi.Hooks.useForceUpdate
220
BdApi.Webpack.getAllByKeys
210
BdApi.Webpack.Stores.LocaleStore.removeChangeListener
220
BdApi.Webpack.Stores.LocaleStore.addChangeListener
220
BdApi.Webpack.Stores.VoiceStateStore.getDiscoverableVoiceStateForUser
210
BdApi.Data.save.bind
110
BdApi.React.use
110
BdApi.Components.NumberInput
110
BdApi.React.useInsertionEffect
110
BdApi.Webpack.Stores.ThreadMemberListStore.getMemberListSections
110
BdApi.Webpack.Stores.PrivateChannelSortStore.getSortedChannels
110
BdApi.Webpack.Stores.ChannelMemberStore.getProps
110
BdApi.Webpack.Stores.ChannelMemberStore
110
BdApi.Webpack.Stores.PrivateChannelSortStore
110
BdApi.Webpack.Stores.ThreadMemberListStore
110
BdApi.DOM.animate
110
BdApi.DOM.onRemoved
110
BdApi.Components.Spinner.Type.SPINNING_CIRCLE_SIMPLE
110
BdApi.React.useImperativeHandle
110
BdApi.Webpack.Stores.StickersStore.getStickersByGuildId
110
BdApi.Webpack.Stores.EmojiStore.getGuildEmoji
110
BdApi.Webpack.Stores.StickersStore
110
BdApi.Webpack.Stores.EmojiStore
110
BdApi.Components.Text.Colors.ERROR
110
BdApi.Components.Text.Sizes.SIZE_14
110
BdApi.Webpack.Stores.StickersStore.getStickerById
110
BdApi.React.Children.map
110
BdApi.Webpack.Stores.SearchQueryStore
110
BdApi.Webpack.Stores.SearchAutocompleteStore
110
BdApi.Components.Flex.Direction.VERTICAL
110
BdApi.Commands.unregisterAll
110
BdApi.Commands.register
110
BdApi.Components.Button.Looks.OUTLINED
110
BdApi.Components.Flex.Justify.BETWEEN
110
BdApi.Components.Text.Sizes.SIZE_20
110
BdApi.Components.Flex.Justify.START
110
BdApi.Components.Button.Colors.BRAND
110
BdApi.Commands.Types.OptionTypes.BOOLEAN
110
BdApi.Commands.Types
110
BdApi.Components.SearchInput
110
BdApi.React.PureComponent
110
BdApi.React.Children.only
110
BdApi.Webpack.Filters.byRegex
110
BdApi.Webpack.Stores.GuildMemberCountStore.getOnlineCount
110
BdApi.Components.Text.Colors.HEADER_SECONDARY
110
BdApi.Components.Button.Colors.CUSTOM
110
BdApi.Components.SliderInput
110
BdApi.Components.Button.Sizes.ICON
110
BdApi.Components.Button.Colors.TRANSPARENT
110
BdApi.Components.Flex.Align.CENTER
110
BdApi.Components.Flex.Direction.HORIZONTAL
110
BdApi.Webpack.Stores.RunningGameStore.getGamesSeen
110
BdApi.Webpack.Stores.UserSettingsProtoStore
110
BdApi.Webpack.Stores.WindowStore.isVisible
110
BdApi.Webpack.Stores.IdleStore.isAFK
110
BdApi.Webpack.Stores.SpeakingStore.isSpeaking
110
BdApi.Webpack.Stores.PresenceStore.isVROnline
110
BdApi.Webpack.Stores.PresenceStore.isMobileOnline
110
BdApi.Webpack.Stores.RelationshipStore.getNickname
110
BdApi.Webpack.Stores.ChannelStore.getChannelIds
110
BdApi.Webpack.Stores.UserGuildSettingsStore.getNewForumThreadsCreated
110
BdApi.Webpack.Stores.WindowStore
110
BdApi.Webpack.Stores.SpeakingStore
110
BdApi.Webpack.modules.*.toString
110
BdApi.Webpack.Stores.RecentMentionsStore
110
BdApi.Webpack.Stores.RecentMentionsStore.emitChange
110
BdApi.Webpack.Stores.GuildReadStateStore
110
BdApi.Webpack.Stores.ReadStateStore
110
BdApi.Webpack.Stores.AccessibilityStore.removeChangeListener
110
BdApi.Webpack.Stores.AccessibilityStore.addChangeListener
110
BdApi.Webpack.Stores.AccessibilityStore.zoom
110
BdApi.Webpack.Stores.AccessibilityStore
110
BdApi.Components.Text.Colors.LINK
110
BdApi.Components.Text.Colors.MUTED
110
BdApi.Webpack.Stores.ReadStateStore._dispatcher
110
BdApi.Webpack.Stores.RunningGameStore
110
BdApi.Webpack.Stores.ConsentStore
110
BdApi.Webpack.Stores.ActivityTrackingStore
110
BdApi.Components.Button.Looks.BLANK
110
BdApi.Webpack.getAllByStrings
110
BdApi.Webpack.Stores.PendingReplyStore.getPendingReply
110
BdApi.Webpack.Stores.PendingReplyStore
110
BdApi.Components.Button.Sizes.MEDIUM
110
BdApi.Components.Spinner.Type
110
BdApi.Webpack.Stores.RelationshipStore.getFriendIDs
110
BdApi.Webpack.Stores.GuildStore.getGuilds
110
BdApi.Webpack.Stores.RawGuildEmojiStore.getGuildEmojis
110
BdApi.Webpack.Stores.RawGuildEmojiStore
110
BdApi.ReactUtils.getOwnerInstance.bind
110
BdApi.Webpack.Stores.GuildChannelStore
110
BdApi.Webpack.Stores.VoiceStateStore
110
BdApi.Webpack.Stores.TypingStore
110
BdApi.Webpack.Stores.JoinedThreadsStore
110
BdApi.Themes.getAll
110
BdApi.ContextMenu.RadioItem
110
BdApi.Webpack.Filters.byDisplayName
110

Removal shortlist — 27 of 150 declared members go uncalled

The usage table above measures how big a change's blast radius is; this one asks whether there is any blast radius at all. BdApi's declared surface comes from a manifest generated from BetterDiscord core (v1.13.14, commit 5f9d3b0f, read 2026-07-16) by scripts/surface.ts, and is diffed against what the corpus actually calls. Members are the names addons type, not the classes behind them — AddonAPI is exposed twice, as BdApi.Plugins and BdApi.Themes, and both are counted. Names outside BD's own classes (BdApi.React, BdApi.ReactDOM) are opaque and never judged here; their members are Discord's.

NamespaceMembers nothing callsCount
BdApi.Webpack getAllByPrototypeKeysgetAllByRegexgetAllBySourcegetByRegexgetMangledProxygetProxy
6
BdApi.Commands getCommandsByCallerTypes.CommandTypesTypes.InputTypesTypes.MessageEmbedTypesunregister
5
BdApi.DOM onAddedscreenHeightscreenWidth
3
BdApi.Utils cacheescapeHTMLgetNestedValue
3
BdApi.Plugins getAlltoggle
2
BdApi.ReactUtils getTyperootInstance · deprecated
2
BdApi.Themes reloadtoggle
2
BdApi.Components KeybindInput
1
BdApi.ContextMenu ControlItem
1
BdApi.Data recache
1
BdApi.version (whole namespace)
1

Uncalled in the store corpus only — plugins outside the store, and the private plugins every user writes, are not visible to this analysis. Read it as "no store addon would notice", not "nothing would break". Two known blind spots keep this list honest: plugins built on BDFDB or ZeresPluginLibrary route calls through the library, and BdApi.Patcher.* computes its member name at runtime, so no member of that namespace can be credited from it.

Calls to members that do not exist

The other direction: chains the corpus calls that BD core does not declare. This replaces a hand-maintained list, which could only ever drift out of sync with core.

Called pathCallsPlugins
BdApi.settings41
Which plugins
  • DevilBro / 0BDFDB
BdApi.isSettingEnabled21
Which plugins
  • DevilBro / 0BDFDB
BdApi.disableSetting21
Which plugins
  • DevilBro / 0BDFDB
BdApi.enableSetting21
Which plugins
  • DevilBro / 0BDFDB

This is dead code, not live breakage. All of it is one library — DevilBro/0BDFDB — and every call sits behind a feature-detection guard (typeof BdApi.enableSetting == "function", or an is-array check for BdApi.settings), so the code path is simply never taken. Nothing is broken today and removing these names from core would change nothing. A headline of the form "N plugins call a removed API" would be wrong.

Plugin shape — the v1 lifecycle BD still honors

What plugins define, counted at definition sites via the AST rather than by name: grep -l getName finds 66 plugins, but 11 of those are .getName() calls on Discord modules, which are not plugin lifecycle at all. A plugin that defines a member on a nested helper class as well as on itself is counted once.

MemberStatusPlugins defining it
getNamedeprecated
55
getAuthordeprecated
52
getDescriptiondeprecated
51
getVersiondeprecated
51
loadremoval candidate
70
onSwitchremoval candidate
9
observerremoval candidate
6
startcurrent
192
stopcurrent
189
getSettingsPanelcurrent
136

observer is the one to act on. To serve the 6 plugins that define it, core constructs a document-wide MutationObserver (observe(document, {childList: true, subtree: true})) and dispatches every mutation to every loaded plugin — a cost every user pays on every DOM change, whether or not they run any of those 6. observer, onSwitch and load are marked removal candidates, not deprecated: BD has not deprecated them, and this report is not the place to announce that it has. (load is redundant — a plugin's code already runs at require/eval time and in its constructor, so anything it does can move there — but many plugins never migrated.) The get-family is genuinely deprecated — the meta block supersedes it, and core only consults these overrides if the instance defines them.

Discord internals reliance

What the ecosystem pulls out of Discord's webpack (module keys, exported strings, prototype keys, stores, display names) and which methods it patches. This is the surface that breaks on Discord updates — the highest-demand entries are candidates for a stable CommonModules offering.

These are floors, not totals. 48 of 208 plugins reach Discord through a library object rather than BdApi directly (BDFDB 47, ZeresPluginLibrary 1) — their webpack lookups and patches are attributed to the library, so they are invisible to the tables below. Detection is a runtime read of the library global, not a string mention: the four ex-dependents whose changelogs still say "no longer relies on ZeresPluginLibrary" are correctly excluded. Both libraries are unmaintained — ZeresPluginLibrary was deprecated over a year ago — so every dependent is also a plugin that will need rewriting when the library finally breaks.

Webpack lookup targets

TargetPluginsCalls
dispatch key
2425
subscribe key
2424
UserStore store
2323
ChannelStore store
1515
GuildStore store
1111
RelationshipStore store
1111
useStateFromStores string
1111
Store key
1012
SelectedGuildStore store
1010
SelectedChannelStore store
1010
GuildMemberStore store
910
getLocale key
910
openModal key
99
sendMessage key
88
(dynamic) key
78
Modal key
77
getCurrentUser key
66
Unsupported animation config: string
66
getGuildIconURL key
66
connectStores key
66
container key
56
message key
55
.getState();for string
55
selectionMode:"single",onSelectionChange: string
55
isSelected: string
55
Show 1158 more
stickToMarkers string
55
PresenceStore store
55
openUserProfileModal key
55
GuildRoleStore store
55
parseTopic key
55
MediaEngineStore store
55
icon key
47
MessageStore store
45
intl key
45
button key
45
getNickname string
45
register key
44
channel key
44
locale key
44
initialize key
44
_sendMessage key
44
scroller key
44
VoiceStateStore store
44
iconContainer key
44
RTCConnectionStore store
44
parse key
44
chat key
44
base key
44
onCloseRequest string
44
onCloseCallback string
44
guildId string
37
MANAGE_CHANNELS string
37
onClose string
35
grow key
35
LocalActivityStore store
34
content key
34
checked string
34
fetchMessage key
33
deleteMessage key
33
thin key
33
title key
33
data-text-variant string
33
editMessage key
33
jumpToMessage key
33
channelTextArea key
33
getUserAvatarURL key
33
.BUTTON_LOADING_STARTED_LABEL, string
33
section string
33
showNotification key
33
ApplicationStreamingStore store
33
channel string
33
anchor key
33
anchorUnderlineOnHover key
33
GUILD_EMOJI key
33
GUILD_EMOJIS key
33
messageType string
33
.modalKey? string
33
,instant: string
33
.onCloseCallback() string
33
UserProfileStore store
33
sanitizeUrl string
33
root key
33
statusColor string
33
Icon key
33
ThemeStore store
33
PLAYING string
33
(dynamic) undefined
33
getStateFromStores string
33
USER_UPDATE string
33
Promise.resolve string
33
GuildChannelStore store
33
instant string
33
backdropStyle string
33
innerClassName string
33
filesMetadata: string
33
requireConfirm: string
33
stickToMarkers key
33
initialValue key
33
Animation key
33
renderPopout string
33
label string
33
description string
33
data-direction string
33
data-justify string
33
shouldIndicateNewChannel string
33
sidebar key
33
activity string
26
layer key
24
platform=== string
24
spotifyData string
24
colorPrimary key
24
circleIcon key
24
gameState key
23
clickableImage key
23
gameProfileModalChecks string
23
onOpened string
23
embeddedActivity string
23
.09v4.91a3.09 string
23
isGroupDM string
23
wrapper key
23
USER_MENTION string
23
inlinePreview string
23
avatarWrapper key
23
.setState string
22
.getState()[ string
22
Looks key
22
Link key
22
useSpring key
22
canRemoveAnyRoles string
22
isMobile string
22
.PlatformTypes.WINDOWS string
22
leading: string
22
username key
22
standardSidebarView key
22
relationshipType string
22
trackUserProfileAction string
22
displayProfile string
22
startTyping key
22
decorator key
22
hovered key
22
selected key
22
getMessage key
22
getMessages key
22
getChannel key
22
textArea key
22
layerContainer key
22
onClickContainer: string
22
user: string
22
.isNonUserBot()? string
22
setBadge key
22
AnalyticEventConfigs key
22
getDiscordUtils key
22
defaultColor key
22
baseLayer key
22
FocusRing was given a focusTarget string
22
moveGrabber string
22
,scrollbarType: string
22
getLastSelectedGuildId key
22
getLastSelectedChannelId key
22
transitionTo - Transitioning to string
22
fetchMessages key
22
requestPermission key
22
(dynamic) store
22
getState key
22
_dispatch key
22
avatarContainer key
22
PermissionStore store
22
preload key
22
display string
22
getUserOutbox string
22
translateSurrogatesToInlineEmoji string
22
timestamps string
22
.TEXT_FEEDBACK_POSITIVE string
22
start string
22
end string
22
duration string
22
percentage string
22
USER_PROFILE_ACTIVITY_BUTTONS string
22
PRESS_PLAY_ON_SPOTIFY_BUTTON string
22
PRESS_JOIN_CALL_BUTTON string
22
maxUsers string
22
isGuildStageVoice string
22
.CONNECT string
22
hasIcon string
22
switchIconsEnabled string
22
openUserSettings key
22
transitionToGuild - Transitioning to string
22
guild string
22
NewGameStore store
22
ApplicationStore store
22
hasAvatarForGuild string
22
alpha2 string
22
embeddedActivityConfig string
22
ctaConfig string
22
flatMap string
22
parentId string
22
disableFetch string
22
"PRESS_CLOUD_PLAY_BUTTON" string
22
.EMBEDDED string
22
{return(0, string
22
META_QUEST string
22
supported_platforms string
22
distributorCTAConfigs string
22
PLAY_CTA_DISPLAYED string
22
.CUSTOM_STATUS&&(null string
22
.XBOX string
22
.PS5 string
22
M8.95185131 string
22
M17.7516 string
22
Array.isArray(e)?e.some( string
22
JOIN)&& string
22
&&!!(0, string
22
.INSTANCE&&null!=e string
22
e?.application_id=== string
22
SS string
22
USER_ACTIVITY_METADATA string
22
ACTIVITY_METADATA_UPDATE string
22
formatPathWithQuery key
22
contextKey string
22
.POPOUT string
22
contextless string
22
DispatchApplicationStore string
22
data string
22
getOfficialGame string
22
:null! string
22
7.61c-.25.95.31 string
22
launch key
22
reportUnverifiedGame key
22
asContainer string
22
keyboardShortcut string
22
"string"==typeof string
22
18.5V22a1 string
22
2.4l.57-.58a.74.74 string
22
14.99a3.17 string
22
USER_ACTIVITY_PLAY string
22
USER_ACTIVITY_SYNC string
22
LISTENING string
22
SPOTIFY).name string
22
M12.7609503,7.08043507 string
22
0Zm-2.77-.2-3.33-2.5a.25 string
22
className string
22
isNonUserBot string
22
small key
22
bar key
22
tabularNumbers key
22
separator key
22
statusPickerModalMenu key
22
inner key
22
Provider string
22
Divider key
22
SWITCH_BACKGROUND_DEFAULT string
22
RunningGameStore store
22
UserSettingsProtoStore store
22
WindowStore store
22
useContext string
22
buttonWrapper key
22
buttonContent key
22
emojiButton key
22
stickerButton key
22
trinketsIcon key
22
UserGuildSettingsStore store
22
getDisambiguatedEmojiContext key
22
getEmojiUnavailableReason key
22
TypingStore store
22
trailing key
22
app key
22
isTyping string
22
buttons key
22
numpad plus string
22
iconWrapper key
22
ack key
22
LocaleStore store
22
getObscureReason string
22
getSendMessageOptionsForReply key
22
"text-input" string
22
"M15.16 16.51c-.57.28-1.16-.2-1.16-.83v-.14c0-.43.28-.8.63-1.02a3 3 0 0 0 0-5.04c-.35-.23-.63-.6-.63-1.02v-.14c0-.63.59-1.1 1.16-.83a5 5 0 0 1 0 9.02Z string
22
.ImpressionTypes.MODAL,"aria-labelledby": string
22
"M15.62 17.03a9 9 0 1 1 1.41-1.41l4.68 4.67a1 1 0 0 1-1.42 1.42l-4.67-4.68ZM17 10a7 7 0 1 1-14 0 7 7 0 0 1 14 0Z string
22
"M4 4a3 3 0 0 0-3 3v10a3 3 0 0 0 3 3h11a3 3 0 0 0 3-3v-2.12a1 1 0 string
22
GuildMemberCountStore store
22
defaultRules key
22
uploadFileToCloud string
22
getVoiceChannelId key
22
getUserMaxFileSize string
22
padding-size-sm key
22
navigationDescription key
22
scrollerInner key
22
messageListItem key
22
threadMessageAccessoryContentLeadingIcon key
22
createRoot key
22
getTypingUsers string
22
getRecipientId string
22
unreadMentionsIndicatorBottom key
22
tutorialContainer key
22
listItemWrapper key
22
lowerBadge key
22
decorations string
22
button string
22
hasText string
22
expressiveWrapper string
22
WebkitLineClamp string
22
),style:{marginTop: string
22
helperTextId string
22
errorMessage string
22
hasActiveThreads string
22
isGuildVocal string
22
GUILD_TEXT key
22
containerProps string
22
emojiId string
22
emojiName string
22
animated string
22
shouldAnimate string
22
WARNING key
22
ERROR key
22
.controlId string
22
INVERTED key
22
"fieldset" string
22
"legend" string
22
must not be a thread starter message string
22
CHANNEL_THREAD_VIEW string
22
GUILD_DISCOVERY string
22
getStageInstanceByChannel string
22
colorBrandInverted key
15
plateMuted key
13
setState key
13
autocomplete key
13
controlIcon key
12
.MODAL_ROOT_LEGACY, string
12
tooltipText string
12
layoutContainer key
12
profileAppConnections key
12
colorClass string
12
stopPropagation string
12
upperContainer key
12
targetIsUser string
12
readyState string
12
zoomable string
12
minHeight string
12
lottieIcon key
12
disableReturnRef string
12
children string
12
"tooltip" string
12
submenuPaddingContainer string
12
autocompleteInner key
12
onCloseRequest:null!= string
11
actionLogger key
11
Colors key
11
showRemainingCharacterCount string
11
colorDefault key
11
submenu key
11
spacingTop key
11
scrollerBase key
11
fade key
11
animated key
11
Easing key
11
isFirstMessageInForumPost protoKey
11
isSystemDM protoKey
11
addReaction protoKey
11
onExpand string
11
onCollapse string
11
canAddRoles string
11
Math.ceil string
11
.STREAMING string
11
.ONLINE string
11
.IDLE string
11
),style: string
11
.divider, string
11
reducedMotion: string
11
transitionState: string
11
small string
11
dialog string
11
focusProps: string
11
,tooltipNote: string
11
?.stackNextByDefault string
11
.analyticsLocation, string
11
,friendToken: string
11
_channelMessages key
11
embed_ string
11
.ForwardContextMessage string
11
.footerWarningWrapper string
11
["children","className","element"] string
11
"useStateFromStores" string
11
sliderClassName: string
11
onDragEnd:this.handleDragEnd string
11
handleValueChange string
11
videoButton key
11
popoutOpen key
11
guildIcon key
11
unsubscribe key
11
usernameFont key
11
.pronouns string
11
UserProfilePopoutBody string
11
.hidePersonalInformation string
11
QuickSwitcher string
11
.searchableTitles string
11
SessionsStore store
11
useSyncExternalStore key
11
unsafe_rawColors key
11
userInfo key
11
getDMFromUserId key
11
type:"CREATE_PENDING_REPLY" string
11
receiveMessage key
11
getSrc protoKey
11
getRatio protoKey
11
isEmojiDisabled key
11
isEmojiFiltered key
11
topEmojis string
11
getDisambiguatedEmojiContext string
11
useEmojiCategories string
11
getEmojiURL key
11
interactive string
11
iconType string
11
generateGuildPermissionSpec key
11
roleCircle key
11
role key
11
roleTag key
11
eyebrow key
11
openPrivateChannel key
11
bg key
11
trapClicks key
11
markup key
11
originalLink key
11
label key
11
startingIndex?? string
11
"data-mana-component":"text-area" string
11
tooltipId string
11
defaultLayerContext string
11
.searchParams.delete("width"), string
11
disableReturnRef: string
11
defaultMarginlegend key
11
messagesPopout key
11
header key
11
disable-adaptive-theme string
11
sourceWidth: string
11
sourceHeight: string
11
toolbarClassName string
11
"stack":"replace" string
11
.onCloseCallback(), string
11
onCloseCallback?.()} string
11
dangerous key
11
switchContainer key
11
setFile key
11
canSaveImage string
11
if(null!= string
11
searchParams string
11
.HORIZONTAL_REVERSE, string
11
.attachmentItemSmall]: string
11
renderLeading: string
11
,onChange: string
11
.premiumFeatures?.additionalEmojiSlots??0 string
11
.GuildFeatures.MORE_STICKERS)&& string
11
.GUILD_EMOJIS( string
11
EMOJI_UPLOAD_START string
11
sanitizeEmojiName key
11
MESSAGE_CROSSPOST key
11
CREATE_GUILD_EXPRESSIONS key
11
horizontalControlColumnWidth:`min( string
11
"data-mana-component":"text-input" string
11
"top",badgeStrokeColor: string
11
.HEADER_BAR) string
11
getPlaceholder protoKey
11
channelWithIcon string
11
GuildFeatures key
11
setSearchQuery key
11
getGuildFolderById key
11
getUser key
11
getUserIds key
11
getStatus key
11
isMute key
11
isDeaf key
11
isSelfMute key
11
isSelfDeaf key
11
getGuild key
11
getGuilds key
11
moreUsers key
11
emptyUser key
11
clickableAvatar key
11
this.context?this.renderNonInteractive(): string
11
closeUserProfileModal key
11
defaultRenderUser string
11
showDefaultAvatarsForNullUsers string
11
createFriendInvite key
11
heading-lg/semibold key
11
fetchChannel key
11
unread string
11
.ALL_MESSAGES string
11
fetchApplication key
11
onOpenProfile string
11
avatar string
11
STREAMING string
11
isVROnline string
11
isDM string
11
name string
11
setPopoutRef string
11
fetchGuildProfile string
11
showSubtext string
11
caretConfig string
11
connectionsRoleId string
11
USER_PROFILE_FETCH_START string
11
.metadata)?void string
11
.EPISODE? string
11
data-username-with-effects string
11
popAll key
11
getMatchingInboxEntry string
11
getMatchingOutboxEntry string
11
delay string
11
lineClamp string
11
warn string
11
preview string
11
instanceof string
11
widget string
11
transitionTo - Transitioning to string
11
Replacing route with string
11
.goBack() string
11
.goForward() string
11
aria-label string
11
roles string
11
map(e string
11
AccessibilityStore store
11
AuthenticationStore store
11
ApplicationStreamPreviewStore store
11
StreamerModeStore store
11
let{userId string
11
,{variant string
11
"primary", string
11
userId string
11
tooltipText: string
11
,variant string
11
{text string
11
menuItems string
11
popoutTargetRef string
11
{userId: string
11
EDIT_PROFILE string
11
"user-bot-profile-add-app" string
11
userBio string
11
disableAnimations string
11
hidePersonalInformation string
11
onUpdate string
11
placeholder string
11
connectedAccount string
11
connectedAccountOpenIcon string
11
CONNECTED_ACCOUNT_VIEWED string
11
data-scroller string
11
fade:!0, string
11
.ADMINISTRATOR string
11
.MANAGE_MESSAGES string
11
MODAL_V2 string
11
discriminatorClass string
11
nick string
11
.test string
11
.url)) string
11
;return(0,i.jsx)("div",{className: string
11
overflowCount key
11
circle key
11
clamp key
11
hideRestrictedProfile string
11
outer key
11
overlay key
11
disabledButtonWrapper key
11
sizeSmall key
11
focusLock key
11
fullscreenOnMobile key
11
bannerButton key
11
progress key
11
lineClamp2Plus key
11
badgeContainer key
11
badgesContainer key
11
background key
11
safetyTable key
11
onCloseProfile: string
11
trackUserProfileAction: string
11
PRESS_CLEAR_CUSTOM_STATUS string
11
SENT_BY_SOCIAL_LAYER_INTEGRATION string
11
rtcConnectionStatus key
11
ping key
11
connection key
11
src string
11
size string
11
lookFilled key
11
caret key
11
caret--center key
11
navigator.clipboard.write string
11
Clipboard API not supported. string
11
M19.73 string
11
setContainer string
11
getApplicationsForGuild key
11
"USER_ACTIVITY_STATISTICS_FETCH_SUCCESS" string
11
fetchProfile error string
11
USER_PROFILE_FETCH_FAILURE string
11
grow string
11
shrink string
11
align string
11
basis string
11
PersistedStore key
11
darken string
11
ConnectedAppsStore string
11
branchId string
11
user string
11
onAction string
11
themeType string
11
Anchor string
11
href string
11
route string
11
iconClassName string
11
linkButtonIcon key
11
shape string
11
.ROUND string
11
throttle key
11
M10.04 string
11
.ALBUM string
11
.EPISODE string
11
"no artist ids in metadata" string
11
UserProfile string
11
application string
11
void string
11
getWindowOpen string
11
CHANNEL_CALL_POPOUT string
11
.TRACK string
11
isProtocolRegistered string
11
noWrap key
11
a key
11
customTheme key
11
"rtl" string
11
getComputedStyle string
11
document.body.appendChild( string
11
offsetWidth string
11
arguments[2]:"scroll" string
11
popoutWrapper key
11
size24 key
11
="wanderingCubes string
11
transitionAppear string
11
.canBasicChannel string
11
previewUrl: string
11
getVoiceChannelId string
11
22.95c-1.7-.16-3.4-.77-4.88-1.73-1.24-.8-1.52-1.13-1.52-1.8 string
11
null string
11
ACTIVITY_FEED_GUILD_VISITED string
11
webBuildOverride string
11
isLoading string
11
Array.isArray string
11
GLOBAL_FEED string
11
application_id string
11
useMemo string
11
ConnectedAppsStore store
11
ContentInventoryStore store
11
DispatchApplicationStore store
11
GameStore store
11
LaunchableGameStore store
11
LibraryApplicationStatisticsStore store
11
LibraryApplicationStore store
11
NowPlayingViewStore store
11
POPOUT string
11
"contextless" string
11
entry string
11
sourceUserId string
11
.PLAYING} string
11
svg key
11
mask key
11
customButtons key
11
absolute key
11
popoutContentWrapper key
11
GUILD_MEMBER_VERIFICATION string
11
"data-toggleable-component":"switch" string
11
layout:"horizontal" string
11
oneByOneGrid key
11
.toString.toString().includes("[native code]") string
11
itemsForLayout string
11
isSingleMosaicItem string
11
imageZoom key
11
imageWrapper key
11
loadingOverlay key
11
mediaArea key
11
wrapperControlsHidden key
11
hoverButtonGroup key
11
visualMediaItemContainer key
11
dimensionlessImage key
11
.duration_secs string
11
.waveform string
11
.url string
11
closeModal key
11
closeAllModals key
11
SpotifyStore store
11
PLAYER_PAUSE string
11
enabled key
11
lookBlank key
11
colorBrand key
11
NO_WRAP string
11
flexShrink: string
11
evenodd string
11
M12 22a10 10 0 1 string
11
speechSynthesis.speak string
11
speechSynthesis.cancel string
11
setTTSType string
11
StreamRTCConnectionStore store
11
STREAM_START string
11
GUILD string
11
CALL string
11
OVERLAY string
11
"STREAM_STOP" string
11
labelWrapper key
11
rtcConnectionStatusConnected key
11
voiceButtonsContainer key
11
default key
11
searchWithoutFetchingLatest key
11
parsePreprocessor key
11
unparse key
11
.BOT string
11
.ORIGINAL_POSTER string
11
]:!0,interactive: string
11
SUPPRESS_NOTIFICATIONS string
11
SELF_MENTIONABLE_SYSTEM string
11
hasThread key
11
messageSpine key
11
repliedMessageClickableSpine key
11
percent string
11
foregroundGradientColor string
11
message_reference string
11
isProbablyAValidSnowflake string
11
appAsidePanelWrapper key
11
.BOOKMARKS?( string
11
.MENTIONS?( string
11
type:"CHANNEL_ACK",channelId string
11
type:"BULK_ACK",channels: string
11
SpeakingStore store
11
"SENDING"=== string
11
renderUserGuildPopout: channel should never be string
11
preloadUserProfileForPopout string
11
Invalid arguments string
11
getGuildMemberAvatarURLSimple string
11
userAvatar key
11
audienceContainer key
11
audienceIcon key
11
overlap key
11
avatarSmall key
11
e.value string
11
e.disabled string
11
e.hideBorder string
11
e.tooltipNote string
11
e.onChange string
11
e.className string
11
e.style string
11
isFocused key
11
isElementFullScreen key
11
.join("+") string
11
labelRow string
11
titleId string
11
errorId string
11
setIsFocused string
11
sidebarList key
11
sidebarListRounded key
11
selectChannel key
11
PUBLIC_THREAD key
11
GUILD_FORUM key
11
THREAD_CREATED key
11
SUPPRESS_NOTIFICATIONS key
11
EPHEMERAL key
11
ALL_MESSAGES key
11
ONLY_MENTIONS key
11
parent_id string
11
isGuildOrCategoryOrChannelMuted string
11
embedFull key
11
embedVideoActions key
11
iconWrapperActive key
11
Thread must have a parent ID string
11
FORM key
11
SIDEBAR key
11
open key
11
close key
11
setAlwaysOnTop key
11
PopoutWindowStore store
11
stopTyping key
11
getSuperProperties key
11
getSuperPropertiesBase64 key
11
getDebugOptionsHeaderValue key
11
increment key
11
distribution key
11
Request key
11
post key
11
get key
11
del key
11
ReadStateStore store
11
M7 1a1 1 0 0 1 1 1v.75c0 string
11
SingleSelect string
11
selectionMode string
11
embedMedia key
11
embedVideo key
11
embedSuppressButton key
11
SearchMessageStore store
11
safeDispatch key
11
dispatchToLastSubscribed key
11
FORUM_CHANNEL_GUIDELINES key
11
CREATE_FORUM_POST key
11
computePermissions key
11
ADD_REACTIONS key
11
addFiles key
11
fileName string
11
fileSize string
11
renderAdjacentContent string
11
onContextMenu string
11
mediaLayoutType string
11
getEchoCancellation key
11
fromTimestamp key
11
fullscreenOnMobile string
11
scale(1) string
11
Wrap.NO_WRAP,className: string
11
let{headerId: string
11
grow:0 string
11
useDefaultUnderlineStyles string
11
getDefaultLinkInterceptor string
11
horizontalControlColumnWidth:`min($ string
11
dI3q4h string
11
disableColor string
11
autocompleteQuerySymbol key
11
.isGroupDM() string
11
refresh_sm string
11
interactiveClassName string
11
renderUsers protoKey
11
renderMoreUsers protoKey
11
.guildbar.AVATAR_SIZE string
11
backgroundStyle string
11
dI3q4u string
11
"M5 18a1 1 0 0 0-1 1 3 3 0 0 0 3 3h10a3 3 0 0 0 3-3 1 1 0 0 0-1-1H5ZM3.04 string
11
headingColor: string
11
heading: string
11
extractTimestamp key
11
.getImageData(0,0, string
11
.shouldHideMediaOptions string
11
hasMediaOptions: string
11
numMediaItems: string
11
ChannelMemberStore store
11
EmojiStore store
11
}=window.GLOBAL_ENV;return string
11
StickersStore store
11
SoundboardStore store
11
MANAGE_GUILD_EXPRESSIONS key
11
"M14.24 1.03a1 1 0 0 1 .73 1.21l-1 4a1 1 0 0 1-1.94-.48l1-4a1 1 0 0 1 1.21 string
11
requestMembersById key
11
"data-mana-component":"select" string
11
PendingReplyStore store
11
viewingChannelId string
11
parsedUserId string
11
quotedChatMessage key
11
stopPropagation(), string
11
onClick: string
11
dangerous string
11
uaUU/g string
11
BAN_MEMBERS key
11
showMentionToggle string
11
FOCUS_CHANNEL_TEXT_AREA string
11
clickable key
11
browser key
11
toolbar key
11
iconBadge key
11
getChannelId key
11
getGuildId key
11
getFrequentlyUsedReactionEmojisWithoutFetchingLatest string
11
loadIfNecessary string
11
EMOJI_NAME_RE key
11
RawGuildEmojiStore store
11
renderGIF() string
11
imagePool string
11
uploadArea key
11
textAreaSlate key
11
iterations! string
11
insertFragment string
11
highlight key
11
hasLanguage key
11
winButton key
11
PlatformTypes.WINDOWS string
11
paste key
11
getSetting key
11
FriendsStore store
11
Pages key
11
Sections key
11
Objects key
11
ObjectTypes key
11
defaultProps key
11
marginBottom40 key
11
marginTop4 key
11
search-google string
11
onHide string
11
getAvatarURL string
11
Refetch string
11
typingUsers: string
11
"svg" string
11
(dynamic) string
11
isMultiUserDM string
11
peopleListItemRef string
11
VIEW_CREATOR_MONETIZATION_ANALYTICS key
11
getDiscoverableVoiceState string
11
getDiscoverableVoiceStateForUser string
11
isPrivate string
11
transitionTo - string
11
panels key
11
accountPopoutButtonWrapper key
11
botTagCozy key
11
botTagVerified key
11
getVoiceStatesForChannel key
11
withMentionPrefix string
11
ConfirmModal key
11
mobileApp key
11
combokeys key
11
disable key
11
rules key
11
getDefaultLocale key
11
toggleSelfDeaf key
11
toggleSelfMute key
11
getSoundpack string
11
play string
11
KEYBOARD_MODIFIER_KEY string
11
UNK string
11
hasPermission key
11
APP string
11
data-app-not-dev-tools string
11
AppTitleBar string
11
tooltip string
11
HEADER_BAR_BADGE_BOTTOM string
11
hasLayers string
11
isAuthenticated string
11
checkbox string
11
animated.rect string
11
getSocket key
11
role:"img" string
11
icon` string
11
REPLY key
11
USER_JOIN key
11
t key
11
isRepliedMessage string
11
userOverride string
11
trailingIconClass string
11
CHANNEL_PINNED_MESSAGE string
11
tabIndex string
11
orientation string
11
SortedVoiceStateStore store
11
permissionOverwrites string
11
VIEW_CHANNEL string
11
CONNECT string
11
ActiveThreadsStore store
11
DevToolsDesignTogglesStore store
11
pickerIntention string
11
GUILD_STICKER_RELATED_EMOJI key
11
SOUNDBOARD key
11
referencedMessage string
11
USER_JOIN string
11
createMessage: author cannot be undefined string
11
unread key
11
link key
11
repliedTextPreview key
11
repliedTextContent key
11
layers key
11
dm key
11
bannerImage key
11
bannerImg key
11
nameTag key
11
diversitySelectorOptions key
11
variant string
11
data-excessive-heading-level string
11
renderBreadcrumb string
11
"eyebrow" string
11
query string
11
"aria-label": string
11
clearable:null string
11
WANDERING_CUBES key
11
CHANNEL_THREAD_VIEW key
11
GUILD_DISCOVERY key
11
ROLE_SUBSCRIPTIONS key
11
CHANNEL_BROWSER key
11
ENTER key
11
LEAVE key
11
textButton string
11
textVariant string
11
fullWidth string
11
wrap string
11
"horizontal" string
11
APP_NOT_OPENED key
11
RESOLVING key
11
"input" string
11
prefixElement string
11
panels string
11
ACCOUNT_PANEL string
11
GUILD_ROLE_SUBSCRIPTIONS key
11
CHANNELS_AND_ROLES key
11
CHANNEL_TEXT_AREA string
11
markdown string
11
EXPRESSION_PICKER string
11
positionContainer string
11
appLauncher string
11
sticker string
11
gif string
11
badgeStrokeColor key
11
animate key
11
timestampFormat string
11
"LLLL" string
11
theme- string
11
images- string
11
ENTERING key
11
EXITING key
11
messageDisplayCompact string
11
providedChannel string
11
"span" string
11
isUnread string
11
|\\d+ string
11
shouldConfirm string
11
setTimeout string
11
Anchor key
11
setEnableHardwareAcceleration key
11
releaseChannel key
11
Invite Button Embed string
11
getInvite string
11
resolveInvite key
11
createInvite key
11
ImpressionNames key
11
colors key
11
modules key
11
humanize key
11
filesize key
11
focusLastVisibleItem string
11
"focus" string
11
SortedGuildStore store
11
PrivateChannelSortStore store
11
LayerStore store
11
InviteStore store
11
stackingBehavior string
11
onCloseCallback() string
11
filter string
11
popout: string
11
.at(-1) string
11
currentToastMap.has string
11
type key
11
type string
11
position string
11
props.computedMatch string
11
props.path string
11
props.location string
11
cloneElement string
11
strict string
11
isExact string
11
).location string
11
.match string
11
.params string
11
AppLayer displayName
11
ChannelSectionStore store
11
"single" string
11
clear:()=> string
11
"LAYER_PUSH" string
11
"LAYER_POP" string
11
"LAYER_POP_ALL" string
11
MODAL_ROOT_LEGACY string
11
MEDIUM key
11
LARGE key
11
headerIdIsManaged string
11
HORIZONTAL string
11
separator string
11
HORIZONTAL_REVERSE string
11
scrollbarType string
11
"listitem" string
11
"list" string
11
.Provider string
11
containerRef string
11
sortedThreadIds string
11
"group" string
11
MATCHES key
11
STARTS_WITH key
11
copyValue string
11
TEXT_COPIED string
11
setSelectedSearchContext key
11
VIEW_THREAD key
11
VIEW_MOD_REPORT key
11
isRichTooltip string
11
scrim string
11
isVisible string
11
.delete string
11
getContextMenu string
11
isOpen string
11
subMenuClassName string
11
menuSubmenuProps string
11
listClassName string
11
TRANSLATE key
11
SCALE key
11
modalKey string
11
"instant" string
11
getLayers string
11
hasFullScreenLayer string
11
getGuild string
11
postSidebarWidth string
11
dontCloseOnActionIfHoldingShiftKey string
11
data-menu-item string
11
profileEffect string
11
animationType string
11
useReducedMotion string
11
isIntersecting string
11
arguments.length string
11
useRootElementContext string
11
transitionState string
11
padding-size- string
11
onExitComplete string
11
popoverGradientWrapper string
11
spacing string
11
standardSidebarView string
11
onSaveText string
11
EMPHASIZE_NOTICE string
11
MEMBER_SAFETY_PAGE string
11
closeGuildSidebar string
11
"showNavigationMobile" string
11
MODAL string
11
headingId string
11
theme string
11
"dialog" string
11
CallChatSidebar string
11
chatInputType string
11
CHANNEL_CALL string
11
chatLayerWrapper key
11
chatTarget key
11
contentRegion key
11
section key
11
nav key
11
rootWithShadow key
11
appMount key
11
chatContent key
11
containerDefault key
11
channelInfo key
11
groupStart key
11
toast key
11
disableScrollAnchor key
11
select key
11
measurement key
11
actionBar key
11
headerTrailing key
11
inactive key
11
cozyMessage key
11
divider key
11
unreadPill key
11
messagesPopoutWrap key
11
interactive key
11
typing key
11
ellipsis key
11
guilds key
11
messagesWrapper key
11
scrollerContent key
11
useImperativeHandle string
11
getScrollerState string
11
isScrolling string
11
thread string
11
getVoiceStatesForChannel string
11
fontSize key
11
fontScale key
11
must be a thread starter message string
11
canManageRoles string
11
IS_JOIN_REQUEST_INTERVIEW_CHANNEL string
11
typingUsers string
11
isThreadCreation string
11
channelStream string
11
oldestUnreadMessageId string
11
MESSAGE key
11
DIVIDER key
11
"separator" string
11
isBeforeGroup string
11
obscurityControlClassName string
11
renderAuthor protoKey
11
renderMedia protoKey
11
focusProps string
11
"li" string
11
statusOffline key
11
guildDetail key
11
closePrivateChannel key
11
__unsupportedReactNodeAsText string
11
isViewingRoles string
11
hasChannel key
11
changeDraft key
11
getDraft key
11
getRecentlyEditedDrafts key
11
getChannelPermissions key
11
PREMIUM_LOCKED key
11
canUseCustomStickersEverywhere string
11
STANDARD key
11
GUILD key
11
getStickerById key
11
getStickersByGuildId key
11
editor key
11
placeholder key
11
autocompleteRowVertical key
11
autocompleteAttached key
11
sendBotMessage key
11

Patched methods

MethodPluginsCalls
(dynamic)
3455
render
2739
type
2528
A
1416
Ay
67
sendMessage
66
children
46
Z
35
componentDidMount
33
showNotification
23
componentWillUnmount
22
renderElement
22
Avatar
12
buildLayout
12
renderSection
12
RolesListWithOverflow
11
isMobileOnline
11
handle
11
useCallback
11
getWidth
11
renderControls
11
startTyping
11
isEmojiFiltered
11
setBadge
11
setSystemTrayIcon
11
Show 42 more
track
11
ensureModule
11
setObservedGamesCallback
11
getActiveSocketAndDevice
11
getActivities
11
getEmojiURL
11
Nameplate
11
useGradientStyle
11
getUserAvatarURL
11
f5
11
editMessage
11
renderNameZone
11
messageHeader
11
E
11
Button
11
ContentInventoryCardHeader
11
GameProfileV2Trailing
11
renderAttachments
11
wasAutoPaused
11
handleVoiceConnect
11
handleBlockedOrIgnoredUserVoiceChannelJoin
11
getSpeakingWhileMuted
11
updateAsync
11
searchWithoutFetchingLatest
11
parse
11
getEmojiUnavailableReason
11
react
11
default
11
cq
11
renderEmbeds
11
renderContent
11
_sendMessage
11
action
11
getDiscoverableVoiceState
11
isFocused
11
get
11
getRowHeight
11
onMouseDown
11
onAuxClick
11
onMouseUp
11
onMouseEnter
11
onMouseLeave
11

Hardcoded Discord class names

Discord ships hashed CSS classes in two styles — wrapper_a1b2c3 and name__2ea32 — and rehashes them on class churn. Every token counted here is a selector that silently stops matching when that happens; the fix is a class-module lookup such as BdApi.Webpack.getByKeys(…). Counts are occurrences, not distinct classes: a vendored class-name map inflates a single addon fast.

Remote CSS is now counted. Most themes are a thin @import wrapper whose real CSS lives on a host like *.github.io; that content is fetched, cached, and analysed here, attributed to the importing theme — so shared remote CSS imported by N themes counts under each of the N. This lands a one-time jump in these totals versus older snapshots: a measurement change, not the ecosystem regressing, which is why the tile's delta is neutralised for this data date.

The two columns read differently: Hardcoded classes is raw occurrences — the total blast radius, and the ranking key — while per KB normalizes against analyzed size (store file plus the theme's remote CSS, the same content the tokens were counted over) to show how riddled an addon is regardless of how big it is. A small theme with a handful of hardcoded classes can be denser per KB than a large one that merely vendors a whole class map.

Themes

ThemeHardcoded classesper KB
vozy 🎀 / surCord
62,81211.6
Theo EwzZer / roundmoledV2
62,32711.6
DevilBro / EmojiReplace
61,39311.7
wq_qt / chillax
59,02811.1
zuzumi / Discord11
57,34010.8
11pixels / dtm-16
16,3405.3
CapnKitten / Material-Discord
11,31312.9
JustCursedRedLuigi / SkeuoCord
10,01412.1
11pixels / dtm-08
7,6994.7
KillYoy / DiscordNight
7,66922.2
Saltssaumure / Tritone
5,36922.8
DevilBro / BasicBackground
4,68510.4
Saltssaumure / NineX
4,34913.9
Eight_P / T1
3,69124.3
lolpowerluke / alanWalker
3,53010.2
Show 83 more
Nebulys / WizardUI
3,46911.6
Elisniper / Glass Wave
3,2298.9
DevilBro / DiscordRecolor
2,60810.0
SyndiShanX / discorddark
2,44015.2
Gibbu / Fluent
2,3685.1
milbit / OldCord
2,2625.0
LeafyLuigi / pyrite
2,13711.3
Izy / Discord Reborn
2,0224.7
ShadowDevilsAvenged / NewAkameGaKill
1,97218.1
ShadowDevilsAvenged / Old-AkameGaKill-Theme
1,95017.6
CapnKitten / Spotify-Discord
1,93313.4
cruxie / nocturnal
1,92111.0
CapnKitten / Translucence
1,89812.2
ShadowDevilsAvenged / Youtube_Nation
1,83017.7
ShadowDevilsAvenged / NewKemonoFriends
1,80117.7
ShadowDevilsAvenged / NewBNHA
1,79917.8
ShadowDevilsAvenged / NewRemTheme
1,76417.5
Izy / Quiet
1,7474.7
ShadowDevilsAvenged / Old-BNHA-Theme
1,72817.2
cruxie / neutron
1,59610.4
DevEvil / RosyNight
1,53513.1
epic1online / Nox
1,52611.8
Zacam / PurpleOnyx
1,28911.7
NyxIsBad / ClearVision-v7-BetterDiscord
1,28714.3
DevEvil / Azurite
1,2766.5
HawkRatio / OperaGX
1,2363.0
FeoreV / FVUI
1,1637.0
Saltssaumure / Exponent
1,10615.3
GH0STP4WZ / virtual-boy
1,08615.4
Saltssaumure / Synthesis
1,01916.4
DevEvil / Dark+
1,0144.7
Saltssaumure / Pesterchum
99428.3
accrazed / NieR-Light-Source
97710.8
snajper.exe / tokyo_midnight
9496.8
Tropical / DarkMatter
9237.4
DevilBro / BlurpleRecolor
9238.7
Gibbu / FrostedGlass
8629.1
cavw / AlternativeVistaAutoUpdate
8457.1
malasangre / roundmoled
8437.1
Saltssaumure / Neobrutal
81117.5
markchan0225 / RoundedDiscord
77835.5
VaporousCreeper / GGO_Kirito
76314.7
refact0r / system24
7546.6
LuckFire / amoled-cord
66811.3
dav#8444 / dtm-18
6510.9
refact0r / midnight
6226.7
Gibbu / MinimalCord
62012.6
ungiglio / discordia
6019.3
bielak / cyberpunk2077
60013.2
Saltssaumure / piOS
56112.5
Mixter213 / MixPack
54819.3
zuzumi / Moon-Rabbits-Dream-About-Virtual
51510.1
DevEvil / Neptune
5135.5
Insta / DiscordPlus
4365.7
orblazer / nordic
4128.5
the.rabbit.disabler / aider
3844.0
Gibbu / SoftX
3717.9
Sappy / SpotiCord
3615.2
DevEvil / Ocean
3533.6
Elisniper / Material Blue Discord
3351.1
tnt4me / SleekCord
31711.2
The Commie Axolotl / MaterialDesign
3074.9
DevilBro / ServerColumns
25515.0
the.rabbit.disabler / shine
2306.5
cursedelectric / CursedCord
2240.6
the.rabbit.disabler / ddex4
1994.8
The Commie Axolotl / Ultra
1968.1
.domitori / discord16
17710.7
puckzxz / NotAnotherAnimeTheme
17714.5
Rock#5429 / Eris
1668.6
DevilBro / SettingsModal
15312.6
Bates / DarkNeon
1346.0
Bates / Fallout4Terminal
1205.2
coolkie / discord-mica
10510.5
programmer2514 / UIRefreshRefresh
10410.9
Gibbu / RadialStatus
858.2
The Commie Axolotl / OSX
844.7
Pix / spectra
480.5
Ashtrath / tokyo-night
482.8
Alex / amethyst
480.1
Alex / kaleidoscope
480.6
Gibbu / HorizontalServerList
4012.8
Kaynooo / glass_local
50.8

Plugins

PluginHardcoded classesper KB
KingGamingYT / ActivityFeed
6281.5
Knew / EmbedMoreImages
281.4
programmer2514 / CollapsibleUI
30.0
Zerebos / BetterFormattingRedux
10.0

CSS custom properties — the resilient counterpart

The healthy inverse of hardcoded classes. A theme built on Discord's CSS variables (var(--background-base-low)) rides out class churn; one built on .wrapper_a1b2c3 does not. 158 addons consume at least one of Discord's 4,945 live variables; 100 define (reskin) one of those names, and 128 define custom properties at all (6,676 distinct names — overwhelmingly their own palettes). Consumption and definition are measured from the corpus; the overlap column is diffed against a checked-in manifest of Discord's current variables (captured 2026-07-19).

Consuming Discord variables resilient

Live Discord custom properties read via var(), by addon. These survive class-name rehashing.

VariableAddons
--text-muted
50
--text-strong
29
--font-primary
29
--background-base-lower
29
--text-default
29
--space-xs
28
--border-subtle
28
--font-display
27
--background-secondary-alt
26
--status-danger
26
--background-accent
26
--elevation-high
23
--channels-default
23
--radius-sm
21
--custom-app-top-bar-height
21
Show 518 more
--custom-guild-list-width
21
--custom-guild-sidebar-width
19
--background-base-low
18
--white
17
--interactive-muted
17
--text-subtle
16
--background-base-lowest
15
--brand-500
15
--text-link
14
--interactive-text-default
14
--space-8
13
--channeltextarea-background
12
--background-surface-high
12
--elevation-low
11
--space-md
11
--elevation-stroke
10
--interactive-text-active
10
--background-mod-strong
10
--interactive-text-hover
10
--custom-channel-header-height
10
--scrollbar-auto-thumb
9
--status-positive
9
--font-code
9
--background-mod-subtle
9
--guildbar-avatar-size
9
--input-background-default
9
--input-border-default
9
--space-sm
9
--primary-300
9
--space-16
9
--background-surface-highest
8
--spine-width
8
--scrollbar-thin-thumb
8
--space-xxs
8
--white-500
8
--elevation-medium
7
--scrollbar-auto-track
7
--space-32
7
--white-500-hsl
7
--space-12
7
--background-surface-higher
7
--border-normal
7
--scrollbar-thin-track
7
--custom-guild-list-padding
7
--control-primary-background-default
7
--space-4
7
--status-positive-background
7
--guild-boosting-pink
6
--custom-member-list-width
6
--status-warning
6
--radius-xs
6
--black-500-hsl
6
--border-muted
6
--radius-md
6
--primary-500
6
--background-mod-normal
6
--space-24
6
--tooltip-pointer-bg
5
--custom-panels-spacing
5
--custom-emoji-sprite-bg-position
5
--custom-emoji-sprite-bg-size
5
--decoration-to-avatar-ratio
5
--interactive-background-hover
5
--font-weight-semibold
5
--chat-avatar-size
5
--custom-channel-textarea-text-area-height
5
--control-primary-background-hover
5
--control-primary-background-active
5
--radius-lg
5
--custom-message-margin-horizontal
5
--custom-button-button-sm-height
5
--channel-icon
5
--green-360
5
--border-strong
5
--brand-560
5
--primary-660-hsl
5
--radius-round
4
--primary-600-hsl
4
--primary-800-hsl
4
--background-mod-muted
4
--font-weight-bold
4
--background-gradient-highest
4
--black-500
4
--control-secondary-background-default
4
--control-primary-text-default
4
--input-border-hover
4
--background-feedback-warning
4
--space-lg
4
--custom-theme-base-color
4
--brand-360
4
--custom-user-profile-banner-height
4
--user-profile-border
4
--icon-muted
4
--chat-resize-handle-width
4
--primary-700-hsl
4
--primary-600
4
--modal-background
3
--black-hsl
3
--mention-foreground
3
--custom-standard-sidebar-view-sidebar-content-scrollbar-padding
3
--text-brand
3
--app-frame-border
3
--background-gradient-low
3
--interactive-background-selected
3
--control-secondary-text-default
3
--control-secondary-background-hover
3
--control-primary-border-default
3
--control-primary-border-hover
3
--control-primary-text-hover
3
--control-primary-border-active
3
--control-primary-text-active
3
--custom-input-text-color
3
--input-border-active
3
--icon-feedback-warning
3
--neutral-40
3
--brand-700
3
--brand-600
3
--space-xxl
3
--chat-markup-line-height
3
--red-500
3
--red-400
3
--brand-200
3
--primary-630
3
--custom-premium-colors-premium-gradient-tier-2-diagonal
3
--bar-offset
3
--status-positive-text
3
--primary-400
3
--custom-status-bubble-background-color
3
--message-highlight-background-default
3
--custom-emoji-picker-border-radius
3
--mention-background
3
--primary-430
3
--neutral-1
3
--interactive-icon-default
3
--primary-500-hsl
3
--primary-630-hsl
3
--primary-830-hsl
3
--primary-900-hsl
3
--user-profile-overlay-background
3
--red-400-hsl
3
--text-feedback-critical
3
--blue-345
3
--black
2
--custom-folder-item-animation-duration
2
--custom-standard-sidebar-view-standard-padding
2
--chat-background-default
2
--neutral-80
2
--neutral-79
2
--neutral-95
2
--legacy-elevation-high
2
--font-weight-normal
2
--__current--spoiler-background-color
2
--background-gradient-lowest
2
--background-gradient-lower
2
--background-gradient-high
2
--background-gradient-higher
2
--platform-spotify
2
--interactive-background-active
2
--control-brand-foreground
2
--control-secondary-border-default
2
--control-secondary-border-hover
2
--control-secondary-text-hover
2
--control-secondary-background-active
2
--control-secondary-border-active
2
--control-secondary-text-active
2
--text-feedback-warning
2
--background-feedback-info
2
--icon-feedback-info
2
--text-feedback-info
2
--gutter
2
--brand-400
2
--background-feedback-critical
2
--control-critical-primary-background-default
2
--grabber-size
2
--shadow-high
2
--space-xl
2
--shadow-medium
2
--custom-theme-text-color
2
--opacity-white-8
2
--brand-300
2
--user-profile-background-hover
2
--opacity-black-16
2
--green-430
2
--red-430
2
--border-focus
2
--reply-spacing
2
--neutral-9
2
--divider-color
2
--shadow-ledge
2
--guild-boosting-purple
2
--bar-size
2
--custom-folder-background
2
--guildbar-folder-size
2
--premium-tier-0-header-gradient-1
2
--premium-tier-0-header-gradient-2
2
--premium-tier-0-header-gradient-3
2
--premium-tier-0-header-gradient-4
2
--premium-tier-0-header-gradient-5
2
--custom-message-spacing-vertical-container-cozy
2
--neutral-4
2
--neutral-16
2
--neutral-97-hsl
2
--neutral-97
2
--neutral-83-hsl
2
--neutral-83
2
--neutral-76-hsl
2
--neutral-76
2
--neutral-72-hsl
2
--neutral-72
2
--neutral-69-hsl
2
--neutral-69
2
--neutral-66-hsl
2
--neutral-66
2
--neutral-49-hsl
2
--neutral-49
2
--neutral-45-hsl
2
--neutral-45
2
--neutral-40-hsl
2
--neutral-31-hsl
2
--neutral-31
2
--neutral-19-hsl
2
--neutral-19
2
--neutral-15-hsl
2
--neutral-15
2
--neutral-12-hsl
2
--neutral-9-hsl
2
--neutral-8-hsl
2
--neutral-4-hsl
2
--neutral-1-hsl
2
--blurple-49-hsl
2
--blurple-49
2
--blurple-54-hsl
2
--blurple-54
2
--blurple-65-hsl
2
--blurple-87-hsl
2
--blurple-37-hsl
2
--blurple-37
2
--blurple-1-hsl
2
--blurple-4-hsl
2
--blurple-4
2
--green-new-61-hsl
2
--red-new-61-hsl
2
--yellow-new-57-hsl
2
--blue-new-31-hsl
2
--blue-new-35-hsl
2
--background-brand
2
--status-warning-text
2
--blue-500
2
--blue-530
2
--primary-530-hsl
2
--primary-560-hsl
2
--primary-730-hsl
2
--primary-760-hsl
2
--primary-860-hsl
2
--brand-530-hsl
2
--brand-530
2
--message-mentioned-background-default
2
--control-overlay-secondary-background-default
2
--control-critical-primary-text-default
2
--icon-strong
2
--control-critical-primary-border-default
2
--control-critical-primary-background-active
2
--app-border-frame
2
--custom-preview-background
2
--icon-subtle
2
--primary-130
2
--space-40
2
--shadow-low
2
--primary-530
2
--primary-300-hsl
2
--brand-500-hsl
2
--primary-700
2
--red-460
2
--primary-200
2
--primary-800
2
--primary-660
2
--custom-channel-textarea-text-area-max-height
2
--modal-footer-background
2
--modal-vertical-padding
2
--modal-horizontal-padding
2
--custom-theme-base-color-amount
2
--custom-chat-input-margin-bottom
1
--radius-none
1
--blurple-1
1
--icon-status-idle
1
--opacity-8
1
--opacity-4
1
--opacity-16
1
--opacity-20
1
--neutral-88
1
--opacity-12
1
--opacity-24
1
--neutral-95-hsl
1
--button-border-radius
1
--font-weight-light
1
--__current--spoiler-content-opacity
1
--custom-emoji-picker-constants-emoji-size-medium
1
--custom-emoji-picker-constants-emoji-container-padding-vertical
1
--brand-460
1
--custom-message-margin-left-content-cozy
1
--custom-message-avatar-decoration-size
1
--custom-message-avatar-size
1
--spine-default
1
--brand-800
1
--radius-xxl
1
--red-800
1
--red-300
1
--red-360
1
--red-700
1
--red-600
1
--custom-modal-v2-padding
1
--red-100
1
--brand-100
1
--custom-input-background-color
1
--custom-input-border-color
1
--select-option-height
1
--custom-input-hover-border-color
1
--custom-input-focus-border-color
1
--blue-430
1
--background-feedback-positive
1
--guild-boosting-blue
1
--custom-modal-padding-top
1
--custom-modal-padding-md
1
--opacity-white-12
1
--user-profile-toolbar-background
1
--custom-folder-padding
1
--custom-forum-composer-attachments-attachment-size
1
--font-headline
1
--hypesquad-house-1
1
--hypesquad-house-2
1
--hypesquad-house-3
1
--custom-standard-sidebar-view-sidebar-total-width
1
--neutral-35
1
--neutral-23
1
--custom-poll-style-vote-percentage
1
--custom-margin-margin-small
1
--neutral-11-hsl
1
--neutral-2-hsl
1
--blurple-70-hsl
1
--blurple-50
1
--profile-gradient-start
1
--profile-gradient-end
1
--interactive-icon-hover
1
--blue-560
1
--border-width
1
--brand-160
1
--custom-notice-text
1
--custom-app-top-bar-item-radius
1
--text-feedback-positive
1
--status-online
1
--custom-game-widget-grid-row-size
1
--custom-category-channel-space-before-category
1
--space-6
1
--interactive-icon-active
1
--user-profile-note-background-focus
1
--orange-360
1
--background-scrim
1
--size-sm
1
--custom-emoji-picker-constants-unicode-category-shortcut-height
1
--icon-default
1
--font-weight-semibold-1x-light-theme
1
--opacity-red-12
1
--checkbox-background-default
1
--checkbox-border-default
1
--checkbox-background-selected-default
1
--checkbox-border-selected-default
1
--input-placeholder-text-default
1
--chat-text-muted
1
--brand-05a
1
--message-mentioned-background-hover
1
--brand-10a
1
--message-background-hover
1
--custom-menu-viewport-padding
1
--control-overlay-secondary-background-hover
1
--user-profile-overlay-background-hover
1
--custom-user-profile-top-layer-z-index
1
--red-100-hsl
1
--red-130-hsl
1
--red-160-hsl
1
--red-200-hsl
1
--red-230-hsl
1
--red-260-hsl
1
--red-300-hsl
1
--red-330-hsl
1
--red-345-hsl
1
--red-360-hsl
1
--red-430-hsl
1
--red-460-hsl
1
--red-500-hsl
1
--red-530-hsl
1
--red-560-hsl
1
--red-600-hsl
1
--red-630-hsl
1
--red-660-hsl
1
--red-700-hsl
1
--red-730-hsl
1
--red-760-hsl
1
--red-800-hsl
1
--red-830-hsl
1
--red-860-hsl
1
--red-900-hsl
1
--white-hsl
1
--primary-100-hsl
1
--primary-130-hsl
1
--primary-160-hsl
1
--primary-200-hsl
1
--primary-230-hsl
1
--primary-260-hsl
1
--primary-330-hsl
1
--primary-345-hsl
1
--primary-360-hsl
1
--primary-400-hsl
1
--primary-430-hsl
1
--primary-460-hsl
1
--primary-645-hsl
1
--neutral-8
1
--neutral-36-hsl
1
--neutral-36
1
--neutral-63-hsl
1
--neutral-79-hsl
1
--green-new-61
1
--green-new-87-hsl
1
--green-new-87
1
--green-new-91-hsl
1
--green-new-91
1
--red-new-61
1
--red-new-70-hsl
1
--red-new-70
1
--red-new-78-hsl
1
--red-new-78
1
--yellow-new-57
1
--blue-new-31
1
--blue-new-35
1
--blurple-87
1
--neutral-99
1
--blurple-65
1
--green-new-25
1
--orange-new-63
1
--green-new-62
1
--green-new-55-hsl
1
--blurple-58
1
--blurple-52
1
--blurple-48
1
--brand-900
1
--message-highlight-background-hover
1
--green-new-44-hsl
1
--green-560
1
--green-760
1
--orange-500
1
--yellow-300-hsl
1
--red-new-28
1
--primary-830
1
--red-530
1
--green-530
1
--green-500
1
--primary-900
1
--transparent-hsl
1
--blue-345-hsl
1
--green-360-hsl
1
--brand-260
1
--primary-560
1
--primary-730
1
--green-460
1
--brand-330
1
--yellow-300
1
--primary-360
1
--red-345
1
--green-330
1
--brand-700-hsl
1
--brand-800-hsl
1
--custom-guild-banner-height
1
--orange-330
1
--brand-430
1
--notice-background-critical
1
--custom-guild-settings-roles-intro-roles-transition
1
--custom-guild-settings-roles-intro-pause-transition
1
--custom-guild-settings-roles-intro-background-transition
1
--custom-button-link-underline-width
1
--custom-button-link-underline-offset
1
--premium-tier-2-purple
1
--premium-tier-2-pink
1
--custom-standard-sidebar-view-sidebar-content-width
1
--primary-230
1
--custom-theme-text-color-amount
1
--neutral-22
1
--neutral-84
1
--neutral-89
1
--neutral-5
1
--neutral-87
1
--neutral-96
1
--neutral-98
1
--neutral-100
1
--legacy-elevation-border
1
--legacy-elevation-low
1
--font-weight-medium
1
--space-20
1
--shadow-border
1
--custom-emoji-picker-constants-emoji-picker-height
1
--custom-emoji-picker-constants-min-emoji-picker-width
1
--opacity-black-8
1
--opacity-black-28
1
--opacity-black-60
1
--custom-go-live-modal-art-height
1
--opacity-black-20
1
--control-critical-primary-background-hover
1
--control-critical-primary-border-hover
1
--control-critical-primary-text-hover
1
--control-critical-primary-border-active
1
--control-critical-primary-text-active
1
--space-30
1
--background-gradient-chat
1
--space-0
1
--custom-theme-base-color-hsl
1
--custom-horizontal-padding
1
--card-background-default
1
--status-warning-background
1
--premium-tier-2-purple-hsl
1
--devtools-sidebar-width
1

Reskinning Discord variables overlap

Addons that define a name Discord also ships — the mechanism themes use to retheme Discord, and the thing that breaks silently when Discord renames or drops the variable.

VariableAddons
--text-link
52
--text-muted
49
--background-secondary-alt
48
--background-accent
45
--font-primary
42
--scrollbar-auto-thumb
41
--font-display
41
--channels-default
40
--interactive-muted
40
--scrollbar-auto-track
39
--text-brand
38
--channeltextarea-background
37
--scrollbar-thin-thumb
37
--modal-background
35
--modal-footer-background
30
Show 1448 more
--scrollbar-thin-track
30
--scrollbar-auto-scrollbar-color-thumb
29
--control-brand-foreground
29
--scrollbar-auto-scrollbar-color-track
27
--status-danger
27
--brand-500
25
--channel-icon
25
--background-surface-high
24
--background-base-low
22
--background-base-lower
22
--background-base-lowest
22
--background-surface-higher
20
--elevation-low
20
--text-default
19
--elevation-high
19
--logo-primary
19
--font-code
19
--border-subtle
18
--control-brand-foreground-new
18
--status-positive-background
18
--mention-background
17
--mention-foreground
17
--background-mod-normal
17
--background-surface-highest
17
--brand-360
16
--elevation-stroke
16
--background-mod-subtle
16
--elevation-medium
16
--status-positive
16
--button-outline-brand-background-hover
15
--button-outline-brand-border-active
15
--blurple-50
15
--custom-app-top-bar-height
15
--textbox-markdown-syntax
15
--status-warning
15
--status-warning-background
15
--background-brand
14
--font-headline
14
--custom-channel-textarea-text-area-height
14
--chat-background-default
13
--control-primary-background-default
13
--control-primary-background-hover
13
--text-strong
13
--status-positive-text
13
--status-warning-text
13
--home-background
13
--background-mod-strong
12
--input-border-active
12
--message-highlight-background-default
12
--brand-260
12
--interactive-text-default
12
--channel-text-area-placeholder
12
--border-strong
11
--icon-muted
11
--background-code
11
--brand-530
11
--brand-600
11
--message-mentioned-background-hover
11
--text-subtle
11
--green-360
11
--user-profile-overlay-background
11
--button-danger-background-disabled
11
--selected-tab-item-color
10
--button--underline-color
10
--checkbox-background-selected-default
10
--control-primary-text-default
10
--brand-560
10
--card-background-default
10
--message-mentioned-background-default
10
--icon-strong
10
--chat-border
10
--button-outline-primary-text
10
--spoiler-hidden-background
10
--border-normal
9
--guild-header-text-shadow
9
--radius-sm
9
--radius-round
9
--control-primary-background-active
9
--brand-160
9
--brand-300
9
--brand-460
9
--brand-630
9
--brand-660
9
--brand-700
9
--brand-730
9
--brand-800
9
--brand-900
9
--brand-10a
9
--blurple-60
9
--divider-color
9
--custom-guild-list-width
9
--white
9
--chat-background
9
--interactive-icon-default
9
--chat-text-muted
9
--text-feedback-critical
8
--icon-default
8
--radius-xs
8
--border-focus
8
--icon-link
8
--control-primary-text-active
8
--control-primary-text-hover
8
--brand-100
8
--brand-130
8
--brand-200
8
--brand-230
8
--brand-330
8
--brand-400
8
--brand-430
8
--brand-760
8
--brand-830
8
--brand-860
8
--premium-tier-2-pink-for-gradients
8
--premium-tier-2-purple-for-gradients
8
--premium-tier-2-purple-for-gradients-2
8
--guild-boosting-pink
8
--guild-boosting-purple
8
--guild-boosting-blue
8
--blurple-1
8
--tooltip-pointer-bg
8
--background-mod-muted
8
--icon-subtle
8
--message-background-hover
8
--red-400
8
--interactive-text-active
8
--primary-630
8
--bg-surface-raised
8
--spoiler-revealed-background
8
--app-border-frame
7
--notice-text-warning
7
--text-feedback-positive
7
--radius-md
7
--radius-lg
7
--radius-xl
7
--radius-xxl
7
--checkbox-border-selected-default
7
--brand-345
7
--brand-05a
7
--brand-15a
7
--brand-20a
7
--brand-25a
7
--brand-30a
7
--brand-35a
7
--brand-40a
7
--brand-45a
7
--brand-50a
7
--brand-55a
7
--brand-60a
7
--brand-65a
7
--brand-70a
7
--brand-75a
7
--brand-80a
7
--brand-85a
7
--brand-90a
7
--brand-95a
7
--premium-perk-blue
7
--premium-perk-pink
7
--opacity-blurple-32
7
--blurple-4
7
--blurple-8
7
--blurple-10
7
--blurple-25
7
--blurple-26
7
--blurple-27
7
--blurple-28
7
--blurple-29
7
--blurple-37
7
--blurple-44
7
--blurple-48
7
--blurple-49
7
--blurple-52
7
--blurple-54
7
--blurple-58
7
--blurple-59
7
--blurple-65
7
--blurple-70
7
--blurple-87
7
--interactive-background-hover
7
--input-background-default
7
--interactive-text-hover
7
--custom-chat-input-margin-bottom
7
--input-border-default
7
--white-500
7
--background-feedback-notification
7
--checkbox-background-default
6
--notice-text-critical
6
--notice-text-info
6
--notice-text-positive
6
--text-feedback-warning
6
--premium-tier-0-blue
6
--premium-tier-0-blue-for-gradients
6
--premium-tier-0-purple
6
--premium-tier-0-purple-for-gradients
6
--premium-tier-1-blue-for-gradients
6
--premium-tier-1-dark-blue-for-gradients
6
--premium-tier-2-pink
6
--premium-tier-2-pink-for-gradients-2
6
--premium-tier-2-purple
6
--guild-boosting-blue-for-gradients
6
--guild-boosting-purple-for-gradients
6
--opacity-blurple-8
6
--opacity-blurple-16
6
--opacity-blurple-24
6
--opacity-blurple-60
6
--gutter
6
--icon-feedback-warning
6
--control-secondary-background-hover
6
--interactive-background-selected
6
--control-secondary-background-default
6
--control-secondary-text-default
6
--interactive-icon-hover
6
--interactive-icon-active
6
--primary-500
6
--app-frame-border
6
--input-border-hover
6
--badge-notification-background
6
--card-secondary-bg
5
--background-code-addition
5
--background-code-deletion
5
--background-feedback-critical
5
--checkbox-border-default
5
--notice-background-critical
5
--notice-background-info
5
--notice-background-warning
5
--radius-none
5
--premium-tier-1-blue
5
--premium-tier-1-purple
5
--opacity-blurple-1
5
--opacity-blurple-4
5
--opacity-blurple-12
5
--opacity-blurple-20
5
--opacity-blurple-28
5
--opacity-blurple-36
5
--opacity-blurple-40
5
--opacity-blurple-44
5
--opacity-blurple-48
5
--opacity-blurple-52
5
--opacity-blurple-56
5
--opacity-blurple-64
5
--opacity-blurple-68
5
--opacity-blurple-72
5
--opacity-blurple-76
5
--opacity-blurple-80
5
--opacity-blurple-84
5
--opacity-blurple-88
5
--opacity-blurple-92
5
--opacity-blurple-96
5
--blurple-2
5
--blurple-3
5
--blurple-5
5
--blurple-6
5
--blurple-7
5
--blurple-9
5
--blurple-11
5
--blurple-12
5
--blurple-13
5
--blurple-14
5
--blurple-15
5
--blurple-16
5
--blurple-17
5
--blurple-18
5
--blurple-19
5
--blurple-20
5
--blurple-21
5
--blurple-22
5
--blurple-23
5
--blurple-24
5
--blurple-30
5
--blurple-31
5
--blurple-32
5
--blurple-33
5
--blurple-34
5
--blurple-35
5
--blurple-36
5
--blurple-38
5
--blurple-39
5
--blurple-40
5
--blurple-41
5
--blurple-42
5
--blurple-43
5
--blurple-45
5
--blurple-46
5
--blurple-47
5
--blurple-51
5
--blurple-53
5
--blurple-55
5
--blurple-56
5
--blurple-57
5
--blurple-61
5
--blurple-62
5
--blurple-63
5
--blurple-64
5
--blurple-66
5
--blurple-67
5
--blurple-68
5
--blurple-69
5
--blurple-71
5
--blurple-72
5
--blurple-73
5
--blurple-74
5
--blurple-75
5
--blurple-76
5
--blurple-77
5
--blurple-78
5
--blurple-79
5
--blurple-80
5
--blurple-81
5
--blurple-82
5
--blurple-83
5
--blurple-84
5
--blurple-85
5
--blurple-86
5
--blurple-88
5
--blurple-89
5
--blurple-90
5
--blurple-91
5
--blurple-92
5
--blurple-93
5
--blurple-94
5
--blurple-95
5
--blurple-96
5
--blurple-97
5
--blurple-98
5
--blurple-99
5
--status-online
5
--primary-400
5
--spine-default
5
--interactive-background-active
5
--custom-channel-members-bg
5
--shadow-border
5
--yellow-360
5
--guildbar-avatar-size
5
--shadow-medium
5
--shadow-high
5
--shadow-low
5
--custom-poll-style-vote-percentage
5
--message-highlight-background-hover
5
--primary-600
5
--primary-700
5
--primary-800
5
--radio-background-selected-default
5
--border-muted
5
--background-feedback-info
4
--background-feedback-positive
4
--background-feedback-warning
4
--border-feedback-critical
4
--notice-background-positive
4
--text-feedback-info
4
--custom-status-bubble-background
4
--__header-bar-background
4
--control-overlay-secondary-background-default
4
--red-430
4
--green-330
4
--yellow-300
4
--guildbar-folder-size
4
--custom-member-list-width
4
--custom-theme-base-color
4
--custom-theme-base-color-amount
4
--custom-theme-text-color
4
--custom-theme-text-color-amount
4
--grabber-size
4
--custom-channel-header-height
4
--card-primary-pressed-bg
4
--card-secondary-pressed-bg
4
--shadow-border-filter
4
--shadow-button-overlay
4
--shadow-high-filter
4
--shadow-ledge
4
--shadow-ledge-filter
4
--shadow-low-filter
4
--shadow-low-active
4
--shadow-low-active-filter
4
--shadow-low-hover
4
--shadow-low-hover-filter
4
--shadow-medium-filter
4
--shadow-mobile-navigator-x
4
--shadow-mobile-navigator-x-filter
4
--shadow-top-high
4
--shadow-top-high-filter
4
--shadow-top-ledge
4
--shadow-top-ledge-filter
4
--shadow-top-low
4
--shadow-top-low-filter
4
--custom-status-bubble-background-color
4
--black-500
4
--brand-500-hsl
4
--brand-700-hsl
4
--brand-800-hsl
4
--checkbox-background-selected-hover
4
--progressbar-indicator-background
4
--spoiler-hidden-background-hover
4
--icon-voice-muted
4
--status-speaking
4
--icon-feedback-positive
4
--control-critical-secondary-text-default
4
--checkbox-icon-active
4
--control-secondary-background-active
4
--icon-feedback-critical
4
--input-placeholder-text-default
4
--profile-gradient-role-pill-background
4
--radio-background-selected-hover
4
--radio-thumb-background-active
4
--user-profile-overlay-background-hover
4
--red-500
4
--control-overlay-secondary-background-hover
3
--primary-600-hsl
3
--gradient-progress-pill-background
3
--font-weight-light
3
--font-weight-semibold
3
--font-weight-bold
3
--red-new-50
3
--legacy-elevation-high
3
--legacy-elevation-border
3
--content-inventory-overlay-text-primary
3
--content-inventory-overlay-text-secondary
3
--content-inventory-media-seekbar-container
3
--black
3
--profile-gradient-start
3
--profile-gradient-end
3
--bar-size
3
--spine-width
3
--custom-poll-style-border
3
--neutral-72
3
--neutral-76
3
--neutral-47
3
--__spoiler-background-color--hidden
3
--__spoiler-background-color--revealed
3
--neutral-9
3
--white-500-hsl
3
--black-500-hsl
3
--brand-100-hsl
3
--brand-130-hsl
3
--brand-160-hsl
3
--brand-200-hsl
3
--brand-230-hsl
3
--brand-260-hsl
3
--brand-300-hsl
3
--brand-330-hsl
3
--brand-345-hsl
3
--brand-360-hsl
3
--brand-400-hsl
3
--brand-430-hsl
3
--brand-460-hsl
3
--brand-530-hsl
3
--brand-560-hsl
3
--brand-600-hsl
3
--brand-630-hsl
3
--brand-660-hsl
3
--brand-730-hsl
3
--brand-760-hsl
3
--brand-830-hsl
3
--brand-860-hsl
3
--brand-900-hsl
3
--primary-660
3
--primary-630-hsl
3
--badge-background-brand
3
--control-overlay-primary-background-default
3
--control-overlay-primary-background-hover
3
--control-overlay-primary-border-default
3
--control-overlay-primary-border-hover
3
--control-overlay-primary-text-default
3
--control-overlay-primary-text-hover
3
--custom-notice-text
3
--custom-guild-list-padding
3
--app-frame-background
3
--badge-background-default
3
--control-critical-primary-background-active
3
--control-critical-primary-background-default
3
--control-critical-primary-background-hover
3
--control-critical-primary-text-default
3
--control-critical-primary-text-hover
3
--control-critical-secondary-background-active
3
--control-critical-secondary-background-default
3
--control-critical-secondary-background-hover
3
--control-critical-secondary-border-active
3
--control-critical-secondary-border-default
3
--control-critical-secondary-border-hover
3
--control-critical-secondary-text-active
3
--control-critical-secondary-text-hover
3
--control-expressive-text-default
3
--control-overlay-secondary-background-active
3
--control-primary-border-hover
3
--control-secondary-border-default
3
--control-secondary-text-hover
3
--icon-feedback-info
3
--icon-status-dnd
3
--icon-status-idle
3
--icon-status-offline
3
--icon-status-online
3
--input-text-default
3
--message-automod-background-default
3
--message-automod-background-hover
3
--polls-victor-fill
3
--polls-voted-fill
3
--profile-gradient-note-background
3
--profile-gradient-overlay
3
--profile-gradient-overlay-synced-with-user-theme
3
--profile-gradient-role-pill-border
3
--profile-gradient-section-box
3
--reaction-background-reacted-default
3
--reaction-border-reacted-default
3
--reaction-text-reacted-default
3
--text-overlay-light
3
--text-status-dnd
3
--text-status-idle
3
--text-status-offline
3
--text-status-online
3
--user-profile-background-hover
3
--user-profile-toolbar-background
3
--custom-icon-offset
3
--custom-horizontal-padding
3
--text-code-addition
2
--text-code-builtin
2
--text-code-bullet
2
--text-code-comment
2
--text-code-deletion
2
--text-code-keyword
2
--text-code-section
2
--text-code-string
2
--text-code-tag
2
--text-code-title
2
--text-code-variable
2
--reply-spacing
2
--__current--spoiler-content-opacity
2
--__current--spoiler-text-color
2
--chat-avatar-size
2
--font-weight-normal
2
--legacy-elevation-low
2
--select-option-height
2
--custom-message-margin-left-content-cozy
2
--space-4
2
--space-8
2
--custom-input-border-color
2
--__spoiler-background-color--hidden--hover
2
--shadow-button-overlay-filter
2
--neutral-97-hsl
2
--neutral-97
2
--neutral-99-hsl
2
--neutral-99
2
--neutral-83-hsl
2
--neutral-83
2
--neutral-84-hsl
2
--neutral-84
2
--neutral-87-hsl
2
--neutral-87
2
--neutral-91-hsl
2
--neutral-91
2
--neutral-92-hsl
2
--neutral-92
2
--neutral-95-hsl
2
--neutral-95
2
--neutral-76-hsl
2
--neutral-75-hsl
2
--neutral-75
2
--neutral-79-hsl
2
--neutral-79
2
--neutral-72-hsl
2
--neutral-73-hsl
2
--neutral-73
2
--neutral-74-hsl
2
--neutral-74
2
--neutral-69-hsl
2
--neutral-69
2
--neutral-70-hsl
2
--neutral-70
2
--neutral-71-hsl
2
--neutral-71
2
--neutral-66-hsl
2
--neutral-66
2
--neutral-62-hsl
2
--neutral-62
2
--neutral-63-hsl
2
--neutral-63
2
--neutral-64-hsl
2
--neutral-64
2
--neutral-65-hsl
2
--neutral-65
2
--neutral-49-hsl
2
--neutral-49
2
--neutral-50-hsl
2
--neutral-50
2
--neutral-59-hsl
2
--neutral-59
2
--neutral-60-hsl
2
--neutral-60
2
--neutral-45-hsl
2
--neutral-45
2
--neutral-46-hsl
2
--neutral-46
2
--neutral-47-hsl
2
--neutral-40-hsl
2
--neutral-40
2
--neutral-36-hsl
2
--neutral-36
2
--neutral-37-hsl
2
--neutral-37
2
--neutral-38-hsl
2
--neutral-38
2
--neutral-39-hsl
2
--neutral-39
2
--neutral-31-hsl
2
--neutral-31
2
--neutral-32-hsl
2
--neutral-32
2
--neutral-34-hsl
2
--neutral-34
2
--neutral-19-hsl
2
--neutral-19
2
--neutral-22-hsl
2
--neutral-22
2
--neutral-23-hsl
2
--neutral-23
2
--neutral-27-hsl
2
--neutral-27
2
--neutral-28-hsl
2
--neutral-28
2
--neutral-29-hsl
2
--neutral-29
2
--neutral-15-hsl
2
--neutral-15
2
--neutral-16-hsl
2
--neutral-16
2
--neutral-12-hsl
2
--neutral-12
2
--neutral-11-hsl
2
--neutral-11
2
--neutral-9-hsl
2
--neutral-8-hsl
2
--neutral-8
2
--neutral-4-hsl
2
--neutral-4
2
--neutral-2-hsl
2
--neutral-2
2
--neutral-1-hsl
2
--neutral-1
2
--blurple-49-hsl
2
--blurple-50-hsl
2
--blurple-52-hsl
2
--blurple-54-hsl
2
--blurple-58-hsl
2
--blurple-59-hsl
2
--blurple-60-hsl
2
--blurple-65-hsl
2
--blurple-70-hsl
2
--blurple-87-hsl
2
--blurple-37-hsl
2
--blurple-44-hsl
2
--blurple-48-hsl
2
--blurple-25-hsl
2
--blurple-26-hsl
2
--blurple-27-hsl
2
--blurple-28-hsl
2
--blurple-29-hsl
2
--blurple-1-hsl
2
--blurple-4-hsl
2
--blurple-8-hsl
2
--blurple-10-hsl
2
--green-new-61-hsl
2
--green-new-61
2
--red-new-61-hsl
2
--red-new-61
2
--yellow-new-57-hsl
2
--yellow-new-57
2
--blue-new-31-hsl
2
--blue-new-31
2
--blue-new-35-hsl
2
--blue-new-35
2
--blue-345
2
--blue-500
2
--blue-530
2
--blue-100-hsl
2
--blue-130-hsl
2
--blue-160-hsl
2
--blue-200-hsl
2
--blue-230-hsl
2
--blue-260-hsl
2
--blue-300-hsl
2
--blue-330-hsl
2
--blue-345-hsl
2
--blue-360-hsl
2
--blue-400-hsl
2
--blue-430-hsl
2
--blue-460-hsl
2
--blue-500-hsl
2
--blue-530-hsl
2
--blue-560-hsl
2
--blue-600-hsl
2
--blue-630-hsl
2
--blue-660-hsl
2
--blue-700-hsl
2
--blue-730-hsl
2
--blue-760-hsl
2
--blue-800-hsl
2
--blue-830-hsl
2
--blue-860-hsl
2
--blue-900-hsl
2
--primary-530
2
--primary-560
2
--primary-730
2
--primary-760
2
--primary-830
2
--primary-860
2
--primary-900
2
--primary-500-hsl
2
--primary-530-hsl
2
--primary-560-hsl
2
--primary-660-hsl
2
--primary-700-hsl
2
--primary-730-hsl
2
--primary-760-hsl
2
--primary-800-hsl
2
--primary-830-hsl
2
--primary-860-hsl
2
--primary-900-hsl
2
--custom-notice-background
2
--red-new-46
2
--red-new-60
2
--red-new-65
2
--app-message-embed-secondary-text
2
--background-scrim
2
--background-scrim-lightbox
2
--badge-expressive-background-default
2
--badge-expressive-text-default
2
--badge-text-default
2
--checkbox-background-active
2
--checkbox-background-hover
2
--checkbox-border-active
2
--checkbox-border-hover
2
--checkbox-border-selected-hover
2
--chip-blurple-dark-background
2
--chip-blurple-dark-text
2
--chip-blurple-light-background
2
--chip-blurple-light-text
2
--chip-blurple-medium-background
2
--chip-blurple-medium-text
2
--chip-gray-dark-background
2
--chip-gray-dark-text
2
--chip-gray-light-background
2
--chip-gray-light-text
2
--chip-gray-medium-background
2
--chip-gray-medium-text
2
--chip-green-dark-background
2
--chip-green-dark-text
2
--chip-green-light-background
2
--chip-green-light-text
2
--chip-green-medium-background
2
--chip-green-medium-text
2
--chip-orange-dark-background
2
--chip-orange-dark-text
2
--chip-orange-light-background
2
--chip-orange-light-text
2
--chip-orange-medium-background
2
--chip-orange-medium-text
2
--chip-pink-dark-background
2
--chip-pink-dark-text
2
--chip-pink-light-background
2
--chip-pink-light-text
2
--chip-pink-medium-background
2
--chip-pink-medium-text
2
--chip-purple-dark-background
2
--chip-purple-dark-text
2
--chip-purple-light-background
2
--chip-purple-light-text
2
--chip-purple-medium-background
2
--chip-purple-medium-text
2
--chip-red-dark-background
2
--chip-red-dark-text
2
--chip-red-light-background
2
--chip-red-light-text
2
--chip-red-medium-background
2
--chip-red-medium-text
2
--chip-yellow-dark-background
2
--chip-yellow-dark-text
2
--chip-yellow-light-background
2
--chip-yellow-light-text
2
--chip-yellow-medium-background
2
--chip-yellow-medium-text
2
--context-menu-backdrop-background
2
--control-critical-primary-border-active
2
--control-critical-primary-border-default
2
--control-critical-primary-border-hover
2
--control-critical-primary-icon-active
2
--control-critical-primary-icon-default
2
--control-critical-primary-icon-hover
2
--control-critical-primary-text-active
2
--control-critical-secondary-icon-active
2
--control-critical-secondary-icon-default
2
--control-critical-secondary-icon-hover
2
--control-expressive-background-active
2
--control-expressive-background-default
2
--control-expressive-background-hover
2
--control-expressive-border-active
2
--control-expressive-border-default
2
--control-expressive-border-hover
2
--control-expressive-icon-active
2
--control-expressive-icon-default
2
--control-expressive-icon-hover
2
--control-expressive-text-active
2
--control-expressive-text-hover
2
--control-icon-only-background-active
2
--control-icon-only-background-hover
2
--control-icon-only-border-active
2
--control-icon-only-border-hover
2
--control-icon-only-icon-active
2
--control-icon-only-icon-default
2
--control-icon-only-icon-hover
2
--control-overlay-primary-background-active
2
--control-overlay-primary-border-active
2
--control-overlay-primary-icon-active
2
--control-overlay-primary-icon-default
2
--control-overlay-primary-icon-hover
2
--control-overlay-primary-text-active
2
--control-overlay-secondary-border-active
2
--control-overlay-secondary-border-default
2
--control-overlay-secondary-border-hover
2
--control-overlay-secondary-icon-active
2
--control-overlay-secondary-icon-default
2
--control-overlay-secondary-icon-hover
2
--control-overlay-secondary-text-active
2
--control-overlay-secondary-text-default
2
--control-overlay-secondary-text-hover
2
--control-primary-border-active
2
--control-primary-border-default
2
--control-primary-icon-active
2
--control-primary-icon-default
2
--control-primary-icon-hover
2
--control-secondary-border-active
2
--control-secondary-border-hover
2
--control-secondary-icon-active
2
--control-secondary-icon-default
2
--control-secondary-icon-hover
2
--control-secondary-text-active
2
--creator-revenue-icon-gradient-end
2
--creator-revenue-icon-gradient-start
2
--creator-revenue-info-box-background
2
--creator-revenue-info-box-border
2
--creator-revenue-locked-channel-icon
2
--creator-revenue-progress-bar
2
--embed-background
2
--embed-background-alternate
2
--experimental-avatar-embed-bg
2
--icon-invert
2
--icon-transparent
2
--input-background-error-default
2
--input-border-error-default
2
--input-border-readonly
2
--input-icon-default
2
--input-text-error-default
2
--mobile-background-scrim-opaque
2
--mobile-expression-picker-background-default
2
--mobile-text-heading-primary
2
--navigator-header-tint
2
--overlay-backdrop-lightbox
2
--panel-bg
2
--polls-normal-image-background
2
--progressbar-track-background
2
--radio-background-active
2
--radio-background-default
2
--radio-background-hover
2
--radio-border-active
2
--radio-border-default
2
--radio-border-hover
2
--radio-border-selected-default
2
--radio-border-selected-hover
2
--radio-foreground-active
2
--radio-foreground-default
2
--radio-foreground-hover
2
--reaction-background-active
2
--reaction-background-default
2
--reaction-background-hover
2
--reaction-background-reacted-hover
2
--reaction-border-active
2
--reaction-border-default
2
--reaction-border-hover
2
--reaction-text-active
2
--reaction-text-default
2
--reaction-text-hover
2
--redesign-button-premium-primary-pink-for-gradient
2
--redesign-button-premium-primary-pressed-background
2
--redesign-button-premium-primary-purple-for-gradient
2
--redesign-button-premium-primary-purple-for-gradient-2
2
--redesign-button-tertiary-background
2
--redesign-button-tertiary-pressed-background
2
--redesign-button-tertiary-pressed-text
2
--redesign-button-tertiary-text
2
--switch-background-active
2
--switch-background-default
2
--switch-background-hover
2
--switch-background-selected-default
2
--switch-background-selected-hover
2
--switch-border-default
2
--switch-border-hover
2
--switch-border-selected-default
2
--switch-border-selected-hover
2
--switch-thumb-background-default
2
--switch-thumb-background-selected-default
2
--switch-thumb-icon-active
2
--switch-thumb-icon-default
2
--text-invert
2
--text-overlay-dark
2
--thread-channel-spine
2
--user-profile-activity-toolbar-background
2
--user-profile-border
2
--user-profile-note-background-focus
2
--user-profile-toolbar-border
2
--green-300
2
--primary-100
2
--primary-200
2
--primary-300
2
--primary-645
2
--blue-new-27
2
--premium-perk-dark-blue
2
--premium-perk-green
2
--premium-perk-light-blue
2
--premium-perk-orange
2
--premium-perk-purple
2
--premium-perk-yellow
2
--badge-text-brand
2
--__spoiler-warning-background-color
2
--custom-user-profile-theme-padding
2
--button-border-radius
1
--custom-party-avatars-avatar-diameter
1
--custom-lift-hover
1
--premium-tier-2-purple-for-gradients-hsl
1
--premium-tier-2-purple-for-gradients-2-hsl
1
--premium-tier-2-pink-for-gradients-hsl
1
--premium-tier-2-pink-for-gradients-2-hsl
1
--__card-background-color
1
--custom-user-profile-banner-height
1
--space-xxs
1
--space-12
1
--opacity-black-16
1
--custom-input-background-color
1
--custom-input-hover-border-color
1
--custom-input-focus-border-color
1
--custom-input-text-color
1
--chat-input-icon-size
1
--neutral-43
1
--neutral-41
1
--font-display-marketing-header
1
--font-display-marketing
1
--blue-100
1
--blue-130
1
--blue-160
1
--blue-200
1
--blue-230
1
--blue-260
1
--blue-300
1
--blue-330
1
--blue-360
1
--blue-400
1
--blue-430
1
--blue-460
1
--blue-560
1
--blue-600
1
--blue-630
1
--blue-660
1
--blue-700
1
--blue-730
1
--blue-760
1
--blue-800
1
--blue-830
1
--blue-860
1
--blue-900
1
--border-width
1
--modal-horizontal-padding
1
--modal-vertical-padding
1
--modal-width-medium
1
--__current--spoiler-background-color
1
--form-input-height
1
--custom-user-profile-banner-top
1
--space-xl
1
--space-6
1
--custom-folder-padding
1
--background-gradient-high
1
--background-gradient-chat
1
--background-gradient-app-frame
1
--custom-theme-base-color-hsl
1
--custom-message-avatar-size
1
--custom-message-margin-horizontal
1
--custom-folder-preview-guild-size
1
--custom-preview-background
1
--custom-user-profile-base-layer-z-index
1
--custom-panels-spacing
1
--red-100
1
--red-130
1
--red-160
1
--red-200
1
--red-230
1
--red-260
1
--red-300
1
--red-330
1
--red-345
1
--red-360
1
--red-460
1
--red-530
1
--red-560
1
--red-600
1
--red-630
1
--red-660
1
--red-700
1
--red-730
1
--red-760
1
--red-800
1
--red-830
1
--red-860
1
--red-900
1
--red-100-hsl
1
--red-130-hsl
1
--red-160-hsl
1
--red-200-hsl
1
--red-230-hsl
1
--red-260-hsl
1
--red-300-hsl
1
--red-330-hsl
1
--red-345-hsl
1
--red-360-hsl
1
--red-400-hsl
1
--red-430-hsl
1
--red-460-hsl
1
--red-500-hsl
1
--red-530-hsl
1
--red-560-hsl
1
--red-600-hsl
1
--red-630-hsl
1
--red-660-hsl
1
--red-700-hsl
1
--red-730-hsl
1
--red-760-hsl
1
--red-800-hsl
1
--red-830-hsl
1
--red-860-hsl
1
--red-900-hsl
1
--green-100
1
--green-100-hsl
1
--green-130
1
--green-130-hsl
1
--green-160
1
--green-160-hsl
1
--green-200
1
--green-200-hsl
1
--green-230
1
--green-230-hsl
1
--green-260
1
--green-260-hsl
1
--green-300-hsl
1
--green-330-hsl
1
--green-345
1
--green-345-hsl
1
--green-360-hsl
1
--green-400
1
--green-400-hsl
1
--green-430
1
--green-430-hsl
1
--green-460
1
--green-460-hsl
1
--green-500
1
--green-500-hsl
1
--green-530
1
--green-530-hsl
1
--green-560
1
--green-560-hsl
1
--green-600
1
--green-600-hsl
1
--green-630
1
--green-630-hsl
1
--green-660
1
--green-660-hsl
1
--green-700
1
--green-700-hsl
1
--green-730
1
--green-730-hsl
1
--green-760
1
--green-760-hsl
1
--green-800
1
--green-800-hsl
1
--green-830
1
--green-830-hsl
1
--green-860
1
--green-860-hsl
1
--green-900
1
--green-900-hsl
1
--white-hsl
1
--black-hsl
1
--primary-130
1
--primary-160
1
--primary-230
1
--primary-260
1
--primary-330
1
--primary-345
1
--primary-360
1
--primary-430
1
--primary-460
1
--primary-100-hsl
1
--primary-130-hsl
1
--primary-160-hsl
1
--primary-200-hsl
1
--primary-230-hsl
1
--primary-260-hsl
1
--primary-300-hsl
1
--primary-330-hsl
1
--primary-345-hsl
1
--primary-360-hsl
1
--primary-400-hsl
1
--primary-430-hsl
1
--primary-460-hsl
1
--primary-645-hsl
1
--neutral-6-hsl
1
--neutral-6
1
--green-new-23-hsl
1
--green-new-23
1
--green-new-24-hsl
1
--green-new-24
1
--green-new-25-hsl
1
--green-new-25
1
--green-new-26-hsl
1
--green-new-26
1
--green-new-30-hsl
1
--green-new-30
1
--green-new-31-hsl
1
--green-new-31
1
--green-new-38-hsl
1
--green-new-38
1
--green-new-40-hsl
1
--green-new-40
1
--green-new-44-hsl
1
--green-new-44
1
--green-new-50-hsl
1
--green-new-50
1
--green-new-52-hsl
1
--green-new-52
1
--green-new-60-hsl
1
--green-new-60
1
--green-new-65-hsl
1
--green-new-65
1
--green-new-72-hsl
1
--green-new-72
1
--green-new-76-hsl
1
--green-new-76
1
--green-new-77-hsl
1
--green-new-77
1
--green-new-87-hsl
1
--green-new-87
1
--green-new-91-hsl
1
--green-new-91
1
--red-new-22-hsl
1
--red-new-22
1
--red-new-23-hsl
1
--red-new-23
1
--red-new-29-hsl
1
--red-new-29
1
--red-new-38-hsl
1
--red-new-38
1
--red-new-45-hsl
1
--red-new-45
1
--red-new-50-hsl
1
--red-new-46-hsl
1
--red-new-47-hsl
1
--red-new-47
1
--red-new-60-hsl
1
--red-new-65-hsl
1
--red-new-70-hsl
1
--red-new-70
1
--red-new-75-hsl
1
--red-new-75
1
--red-new-78-hsl
1
--red-new-78
1
--yellow-new-22-hsl
1
--yellow-new-22
1
--yellow-new-24-hsl
1
--yellow-new-24
1
--yellow-new-28-hsl
1
--yellow-new-28
1
--yellow-new-31-hsl
1
--yellow-new-31
1
--yellow-new-36-hsl
1
--yellow-new-36
1
--yellow-new-39-hsl
1
--yellow-new-39
1
--yellow-new-46-hsl
1
--yellow-new-46
1
--yellow-new-54-hsl
1
--yellow-new-54
1
--yellow-new-75-hsl
1
--yellow-new-75
1
--yellow-new-84-hsl
1
--yellow-new-84
1
--orange-new-63-hsl
1
--orange-new-63
1
--blue-new-24-hsl
1
--blue-new-24
1
--blue-new-27-hsl
1
--opacity-4-hsl
1
--opacity-8-hsl
1
--opacity-12-hsl
1
--opacity-16-hsl
1
--opacity-20-hsl
1
--opacity-green-8-hsl
1
--opacity-green-12-hsl
1
--opacity-green-24-hsl
1
--opacity-green-36-hsl
1
--opacity-red-8-hsl
1
--opacity-red-12-hsl
1
--opacity-red-16-hsl
1
--opacity-red-24-hsl
1
--opacity-red-36-hsl
1
--opacity-yellow-8-hsl
1
--opacity-blue-8-hsl
1
--opacity-blurple-8-hsl
1
--opacity-blurple-16-hsl
1
--opacity-blurple-24-hsl
1
--illo-green-50-hsl
1
--illo-pink-50-hsl
1
--illo-pink-60-hsl
1
--illo-pink-70-hsl
1
--illo-purple-40-hsl
1
--illo-purple-60-hsl
1
--illo-nitro-blue-hsl
1
--premium-tier-0-header-gradient-1
1
--premium-tier-0-header-gradient-2
1
--premium-tier-0-header-gradient-3
1
--premium-tier-0-header-gradient-4
1
--premium-tier-0-header-gradient-5
1
--custom-premium-colors-premium-gradient-tier-2-diagonal
1
--premium-tier-2-purple-hsl
1
--premium-tier-2-pink-hsl
1
--premium-perk-blue-hsl
1
--premium-perk-dark-blue-hsl
1
--premium-perk-green-hsl
1
--premium-perk-light-blue-hsl
1
--premium-perk-orange-hsl
1
--premium-perk-pink-hsl
1
--premium-perk-purple-hsl
1
--premium-perk-yellow-hsl
1
--premium-nitro-pink-light-hsl
1
--premium-nitro-pink-light
1
--control-connected-text-default
1
--control-connected-text-hover
1
--control-connected-text-active
1
--background-gradient-highest
1
--control-connected-background-default
1
--control-connected-background-hover
1
--control-connected-background-active
1
--control-connected-border-default
1
--control-connected-border-hover
1
--control-connected-border-active
1
--icon-feedback-notification
1
--__adaptive-focus-ring-color
1
--plum-23
1
--blue-new-26
1
--custom-notice-button-hover
1
--custom-guild-sidebar-width
1
--custom-add-permissions-modal-focus-ring-width
1
--custom-custom-role-icon-form-item-role-icon-preview-size
1
--custom-guild-settings-roles-edit-shared-sidebar-width
1
--custom-guild-settings-roles-intro-roles-transition
1
--custom-guild-settings-roles-intro-pause-transition
1
--custom-guild-settings-roles-intro-background-transition
1
--custom-guild-settings-roles-intro-banner-transition-delay
1
--custom-guild-settings-roles-intro-roles-transition-delay
1
--custom-guild-settings-community-intro-content-spacing
1
--custom-guild-settings-community-intro-hover-distance
1
--custom-guild-settings-community-intro-text-spacing
1
--custom-guild-settings-discovery-landing-page-max-width-tab
1
--custom-guild-settings-discovery-landing-page-settings-max-width
1
--custom-guild-settings-partner-content-spacing
1
--custom-event-detail-info-tab-base-spacing
1
--custom-subscription-listing-previews-carousel-cards-get-cut-off-width
1
--custom-editable-benefits-list-emoji-size
1
--custom-edit-benefit-modal-emoji-size
1
--custom-edit-benefit-modal-emoji-margin
1
--custom-guild-settings-role-subscriptions-max-width
1
--custom-guild-settings-role-subscriptions-overview-settings-max-width
1
--custom-guild-settings-store-page-settings-max-width
1
--custom-importable-benefits-list-listing-image-size
1
--custom-import-benefits-modal-icon-size
1
--custom-import-benefits-modal-role-icon-size
1
--custom-role-icon-uploader-icon-size
1
--custom-guild-role-subscription-style-constants-cover-image-aspect-ratio
1
--custom-historic-earnings-table-toggle-expand-column-width
1
--custom-guild-role-subscription-card-basic-info-tier-image-size
1
--custom-guild-role-subscription-card-basic-info-tier-image-size-mobile
1
--custom-guild-role-subscriptions-overview-page-page-max-width
1
--custom-guild-dialog-popout-width
1
--custom-guild-dialog-splash-ratio
1
--custom-guild-dialog-icon-size
1
--custom-guild-dialog-icon-padding
1
--custom-guild-product-download-modal-header-image-width
1
--custom-guild-onboarding-home-page-max-page-width
1
--custom-guild-onboarding-home-page-max-single-column-width
1
--custom-home-resource-channels-obscured-blur-radius
1
--custom-guild-member-application-review-sidebar-width
1
--custom-featured-items-popout-featured-items-popout-footer-height
1
--custom-guild-boosting-sidebar-display-conditional-bottom-margin
1
--custom-guild-boosting-marketing-progress-bar-marker-dimensions
1
--custom-guild-boosting-marketing-progress-bar-end-markers-margin
1
--custom-guild-boosting-marketing-progress-bar-marker-marker-dimensions
1
--custom-guild-boosting-marketing-tier-cards-tier-card-border-radius
1
--custom-go-live-modal-art-height
1
--custom-gif-picker-gutter-size
1
--custom-gif-picker-search-results-desired-item-width
1
--custom-forum-composer-attachments-attachment-size
1
--custom-forum-post-obscured-blur-radius
1
--custom-forum-post-grid-view-obscured-blur-radius
1
--custom-demo-forum-channel-padding-large
1
--custom-demo-forum-channel-post-padding
1
--custom-demo-forum-channel-gap-size
1
--custom-feedback-modal-emoji-size
1
--custom-feedback-modal-close-button-margin
1
--custom-expression-suggestions-container-padding
1
--custom-expression-suggestions-sticker-suggestion-size
1
--custom-expression-suggestions-sticker-suggestion-margin
1
--custom-expression-picker-constants-expression-picker-list-section-heading-height
1
--custom-expression-picker-constants-expression-picker-inspector-bar-graphic-primary-dimensions
1
--custom-expression-picker-constants-expression-picker-inspector-bar-graphic-secondary-dimensions
1
--custom-expression-picker-constants-expression-picker-inspector-bar-height
1
--custom-emoji-picker-border-radius
1
--custom-emoji-picker-constants-min-emoji-picker-width
1
--custom-emoji-picker-constants-emoji-size-medium
1
--custom-emoji-picker-constants-emoji-size-large
1
--custom-emoji-picker-constants-emoji-container-padding-horizontal
1
--custom-emoji-picker-constants-emoji-container-padding-vertical
1
--custom-emoji-picker-constants-emoji-picker-height
1
--custom-emoji-picker-constants-emoji-section-margin-bottom
1
--custom-emoji-picker-constants-emoji-list-padding-top
1
--custom-emoji-picker-constants-emoji-list-padding-right
1
--custom-emoji-picker-constants-emoji-list-padding-bottom
1
--custom-emoji-picker-constants-emoji-list-padding-left
1
--custom-emoji-picker-constants-emoji-list-search-results-padding-top
1
--custom-emoji-picker-constants-unicode-category-icon-margin-vertical
1
--custom-emoji-picker-constants-unicode-category-icon-size
1
--custom-emoji-picker-constants-unicode-category-icon-padding
1
--custom-emoji-picker-constants-unicode-category-shortcut-height
1
--custom-emoji-picker-constants-guild-category-icon-size
1
--custom-emoji-picker-constants-guild-category-icon-margin-verical
1
--custom-emoji-picker-constants-category-separator-size
1
--custom-emoji-picker-constants-category-separator-margin-vertical
1
--custom-emoji-picker-constants-diversity-emoji-size
1
--custom-emoji-picker-constants-emoji-premium-upsell-height
1
--custom-emoji-picker-constants-emoji-premium-upsell-margin-top
1
--custom-emoji-picker-constants-newly-added-emoji-badge-height
1
--custom-discover-static-guild-card-card-height
1
--custom-discover-featured-guilds-section-card-height
1
--custom-discover-featured-guilds-section-min-card-width
1
--custom-discover-featured-guilds-section-gutter-size
1
--custom-discover-search-results-max-search-bar-width
1
--custom-guild-directory-min-card-width
1
--custom-guild-directory-gutter-size
1
--custom-guild-directory-min-content-width
1
--custom-guild-directory-max-page-width
1
--custom-guild-directory-entry-card-card-height
1
--custom-guild-directory-landing-min-header-height
1
--custom-guild-shop-page-two-column-max-width
1
--custom-aspect-stable-image-container-padding
1
--custom-monetization-info-table-expandable-rows-toggle-expand-column-width
1
--custom-guild-shop-content-width
1
--custom-guild-shop-content-width-reduced
1
--custom-guild-shop-content-width-minimum
1
--custom-guild-shop-channel-row-gradient
1
--custom-guild-shop-channel-row-gradient-hover
1
--custom-guild-shop-channel-row-border-gradient
1
--custom-guild-shop-channel-row-glow
1
--custom-guild-shop-preview-pill-shadow-dark
1
--custom-guild-shop-preview-pill-shadow-light
1
--custom-guild-shop-gradient-start
1
--custom-guild-shop-gradient-end
1
--custom-clips-enabled-indicator-medium-break-point
1
--custom-clips-enabled-indicator-badge-icon-dimension-override
1
--custom-channel-attachment-upload-spoiler-blur-radius
1
--custom-channel-attachment-upload-mini-attachment-size
1
--custom-channel-textarea-text-area-max-height
1
--custom-channel-call-participants-popout-padding-value
1
--custom-stream-upsell-modal-art-height
1
--custom-voice-channel-status-modal-emoji-size
1
--custom-voice-channel-status-modal-emoji-margin
1
--custom-broadcasting-tooltip-image-offset
1
--custom-application-directory-content-min-width
1
--custom-application-directory-content-max-width
1
--custom-guild-count-small-icon-size
1
--custom-guild-count-large-icon-size
1
--custom-collection-gallery-text-container-width
1
--custom-collection-gallery-media-breakpoint
1
--custom-collection-gallery-column-card-height
1
--custom-collection-gallery-row-card-height
1
--custom-collection-list-card-gap
1
--custom-collection-list-with-image-grid-gap
1
--custom-collections-collection-gap
1
--custom-application-directory-profile-sidebar-width
1
--custom-application-directory-profile-sidebar-margin-right
1
--custom-application-directory-profile-icon-size
1
--custom-application-directory-search-sidebar-width
1
--custom-application-directory-search-sidebar-margin-right
1
--custom-accept-invite-modal-invite-modal-height
1
--custom-accept-invite-modal-small-screen-width
1
--custom-avatar-avatar-decoration-border-position
1
--custom-button-button-xl-width
1
--custom-button-button-xl-height
1
--custom-button-button-lg-width
1
--custom-button-button-lg-height
1
--custom-button-button-md-width
1
--custom-button-button-md-height
1
--custom-button-button-sm-width
1
--custom-button-button-sm-height
1
--custom-button-button-tn-height
1
--custom-button-button-tn-width
1
--custom-button-link-underline-width
1
--custom-button-link-underline-offset
1
--custom-button-link-underline-stop
1
--custom-button-filled-hover
1
--custom-button-filled-active
1
--custom-button-transition-duration
1
--custom-modal-min-width-large
1
--custom-special-markdown-small-break-point
1
--custom-special-markdown-medium-break-point
1
--custom-user-profile-hype-squad-badge-icon-size
1
--custom-user-profile-hype-squad-badge-shine-size-offset
1
--custom-guild-discovery-gutter-size
1
--custom-guild-discovery-max-page-width
1
--custom-dropdown-button-small-dropdown-size
1
--custom-dropdown-button-medium-dropdown-size
1
--custom-dropdown-button-large-dropdown-size
1
--custom-dropdown-button-separator-padding
1
--custom-dropdown-button-hitbox-padding
1
--custom-responsive-embed-tile-loading-background-width
1
--custom-game-install-locations-item-padding
1
--custom-game-list-row-min-height
1
--custom-game-list-linked-to-glow-duration
1
--custom-application-store-home-store-home-width
1
--custom-application-store-listing-body-max-width
1
--custom-store-colors-primary-750
1
--custom-store-colors-premium-gradient
1
--custom-member-list-item-avatar-decoration-padding
1
--custom-messages-popout-messages-popout-footer-height
1
--custom-radio-image-border-thickness
1
--custom-standard-sidebar-view-sidebar-content-width
1
--custom-standard-sidebar-view-standard-padding
1
--custom-standard-sidebar-view-sidebar-content-scrollbar-padding
1
--custom-standard-sidebar-view-sidebar-total-width
1
--__spoiler-text-color--hidden
1
--__spoiler-warning-text-color
1
--__spoiler-warning-text-color--hover
1
--__spoiler-warning-background-color--hover
1
--__spoiler-container-box-shadow-color
1
--custom-folder-preview-padding
1
--space-32
1
--custom-base-tile-border-radius
1
--opacity-white-12
1
--wrapper-padding-left
1

Overlap is against Discord's current variables, so it measures live reskins. Using a variable Discord has since renamed or removed (--text-normal--text-default) is the separate fragility signal below.

Outdated variables breaks silently

The CSS-variable analog of a stale hardcoded class. 112 addons still define or read a name from Discord's former semantic layer (--background-primary, --text-normal, --interactive-normal, the --brand-experiment-* scale…) — each now resolves to nothing, so the styling is dead. Matched against the manifest's deprecated list of Discord's removed names, never inferred from the corpus.

VariableAddons
--header-primary
70
--interactive-normal
61
--text-normal
60
--background-secondary
58
--background-primary
58
--background-tertiary
57
--interactive-active
54
--background-modifier-hover
53
--background-floating
51
--header-secondary
50
--background-modifier-selected
49
--interactive-hover
46
--background-modifier-accent
43
--background-modifier-active
39
--brand-experiment
38
Show 29 more
--text-positive
26
--background-message-hover
25
--text-danger
23
--deprecated-card-bg
21
--text-warning
20
--brand-experiment-600
19
--background-mobile-secondary
18
--info-warning-foreground
18
--brand-experiment-500
17
--background-mobile-primary
17
--text-link-low-saturation
15
--brand-experiment-400
15
--deprecated-store-bg
15
--brand-experiment-200
14
--deprecated-quickswitcher-input-background
14
--info-help-foreground
13
--deprecated-card-editable-bg
13
--background-message-highlight
12
--brand-experiment-100
12
--brand-experiment-300
12
--brand-experiment-700
12
--brand-experiment-800
12
--brand-experiment-900
12
--deprecated-text-input-bg
12
--info-danger-foreground
12
--deprecated-text-input-border
11
--info-positive-foreground
11
--background-message-automod
10
--background-nested-floating
10

Network hosts — CSP planning

Sorted by how many addons reference each host. "Runtime calls" are URLs statically resolved into network sinks (connect-src candidates); CSS references cover @import and url() (style/img/font-src).

Runtime network calls

HostPluginsRefs
mwittrien.github.io
4747
github.com
22
raw.githubusercontent.com
11
doggybootsy.github.io
11
127.0.0.1
11
discord.com
11
nintendoeverything.com
11
news.xbox.com
11
unknownworlds-strapi.live.kraftonamericas.com
11
net-secondary.web.minecraft-services.net
11
fortnite-api.com
11
store.steampowered.com
11
shared.fastly.steamstatic.com
11
api.streamelements.com
11
tiktok-tts.weilnet.workers.dev
11
gql.twitch.tv
11
rules2.clearurls.xyz
11
timezonedb.catvibers.me
11
thelazysquid.github.io
11
cdn.jsdelivr.net
11
ws.audioscrobbler.com
11
api.github.com
11

CSS references

HostAddonsRefs
discord.com
33163,157
fonts.gstatic.com
3078
fonts.googleapis.com
2742
i.imgur.com
24165
mwittrien.github.io
1917,440
raw.githubusercontent.com
17178
cdn.discordapp.com
15144
discordstyles.github.io
1476
saltssaumure.github.io
735
discord-custom-covers.github.io
66
nyri4.github.io
5244
ptb.discord.com
525
discordapp.com
520
github.com
516
devevil99.github.io
57
raw.githack.com
55
media.discordapp.net
463
cdn.jsdelivr.net
441
blade04208.github.io
437
static.discord.com
417
i.ibb.co
46
davart154.github.io
45
capnkitten.github.io
3551
fonts.cdnfonts.com
330
thecommieaxolotl.github.io
313
Show 101 more hosts
crearts-community.github.io
311
upload.wikimedia.org
38
maendisease.github.io
37
dablulite.github.io
33
mr-miner1.github.io
33
user-images.githubusercontent.com
33
zuzumi-f.github.io
214
dyzean.github.io
210
cdn.rawgit.com
210
xcruxiex.github.io
28
tiredmala.github.io
27
minidiscordthemes.github.io
27
refact0r.github.io
27
spinfish.github.io
27
elisniper.github.io
26
ellexidecodes.github.io
26
gibbu.github.io
25
www.svgrepo.com
24
b4t3s.github.io
24
images.alphacoders.com
23
xyzenix.github.io
22
rawgit.com
22
images5.alphacoders.com
22
images3.alphacoders.com
22
storage.googleapis.com
22
goose-nest.github.io
22
dagcord.github.io
22
paz.pw
22
adx74.fr
22
media.tenor.com
22
ch3rry.red
22
teamcofh.com
22
www.your-url-here.com
22
feorev.github.io
1116
canary.discord.com
1110
chillax-org.github.io
149
files.catbox.moe
149
milbits.github.io
141
lukasvh.codeberg.page
135
ungiglio.github.io
125
leafyluigi.github.io
123
goldenlys.github.io
122
warrayquipsome.github.io
119
joshuah345.github.io
118
lolpowerluke.github.io
111
przemec.github.io
110
slddev.github.io
110
rockesv.github.io
110
clearvision.github.io
110
accrazed.github.io
19
i.postimg.cc
19
snajperexe.github.io
18
plusinsta.github.io
16
zacam.github.io
15
monstrousdev.github.io
15
eight-p.github.io
15
tnt4me.github.io
14
encore.scdn.co
14
pixelmelt.github.io
14
p0rtl6.github.io
14
slippinggittys-discord-themes.github.io
13
riddim-glitch.github.io
13
forums.everybodyedits.com
12
syndishanx.github.io
12
imgpile.com
12
dom1torii.github.io
12
rawcdn.githack.com
12
i.vgy.me
12
deadfrekk.github.io
12
external-content.duckduckgo.com
12
steamuserimages-a.akamaihd.net
11
nfld99.github.io
11
multiplexurbangreen.com
11
cdn.custom-cursor.com
11
cdn-icons-png.flaticon.com
11
luckfire.github.io
11
markchan0225.github.io
11
booglesmcgee.github.io
11
mixter213.github.io
11
abs.twimg.com
11
discord-mica.pages.dev
11
chaseingebritson.github.io
11
patrykbielanin.github.io
11
i.gifer.com
11
chloecinders.github.io
11
images8.alphacoders.com
11
winzoro.net
11
images7.alphacoders.com
11
wallpapers.com
11
purplewizard.space
11
cinnab0nbak3ry.github.io
11
zerebos.github.io
11
imgur.com
11
l-ratio.github.io
11
(dynamic)
11
nexus-themes.github.io
11
marda33.github.io
11
puckzxz.github.io
11
cursedelectric.github.io
11
cursedelectric.neocities.org
11
killyoy.github.io
11
All string-literal URLs in plugin code (context — includes changelogs, docs links, embedded data)
HostPluginsRefs
mwittrien.github.io
4852
www.w3.org
43168
github.com
4045
raw.githubusercontent.com
2831
cdn.discordapp.com
1560
(dynamic)
814
media.discordapp.net
623
discord.com
516
paypal.me
55
i.scdn.co
35
static-cdn.jtvnw.net
35
translate.googleapis.com
34
yandex.com
33
devevil.com
33
svelte.dev
242
cdn.jsdelivr.net
25
generativelanguage.googleapis.com
23
example.com
23
www.youtube.com
23
api.groq.com
22
api.spotify.com
22
regexr.com
22
api.openai.com
22
www.google.com
22
www.bing.com
22
Show 121 more hosts
duckduckgo.com
22
search.brave.com
22
api.github.com
22
discord.gg
22
i.ytimg.com
22
wikipedia.org
19,481
i.imgur.com
16
www.patreon.com
13
doggybootsy.com
12
openapi.naver.com
12
images-ext-2.discordapp.net
12
images-ext-1.discordapp.net
12
shared.fastly.steamstatic.com
12
console.groq.com
12
platform.openai.com
12
api.streamelements.com
12
tenor.com
12
open.spotify.com
12
startpage.com
12
docs.betteranimations.net
12
api.supadata.ai
11
supadata.ai
11
doggybootsy.github.io
11
zerebos.com
11
www.twitch.tv
11
translate.google.com
11
fanyi-api.baidu.com
11
translate.yandex.net
11
www.itranslate.com
11
web-api.itranslateapp.com
11
api.deepseek.com
11
api-free.deepl.com
11
api.deepl.com
11
api.cognitive.microsofttranslator.com
11
trace.moe
11
tineye.com
11
pic.sogou.com
11
saucenao.com
11
karmadecay.com
11
iqdb.org
11
imgops.com
11
lens.google.com
11
image.baidu.com
11
images-ext-2.discord
11
images-ext-1.discord
11
s.team
11
store.steampowered.
11
help.steampowered.
11
steamcommunity.
11
search.yahoo.com
11
www.wolframalpha.com
11
search.sethforprivacy.com
11
www.urbandictionary.com
11
www.startpage.com
11
stackoverflow.com
11
searx.info
11
www.qwant.com
11
www.quora.com
11
www.pinterest.com
11
www.linkedin.com
11
scholar.google.com
11
www.facebook.com
11
www.ecosia.org
11
www.dogpile.com
11
ask.com
11
www.amazon.com
11
www.paypal.me
11
127.0.0.1
11
undefined
11
static.discord.com
11
static.wikia.nocookie.net
11
files.catbox.moe
11
store.steampowered.com
11
fortnite-api.com
11
net-secondary.web.minecraft-services.net
11
unknownworlds.com
11
unknownworlds-strapi.live.kraftonamericas.com
11
news.xbox.com
11
nintendoeverything.com
11
latex.codecogs.com
11
tiktok-tts.weilnet.workers.dev
11
xenoncolt.live
11
gql.twitch.tv
11
player.twitch.tv
11
twitch.tv
11
translate-pa.googleapis.com
11
twitter.com
11
media.tenor.com
11
convertio.co
11
replacement.com
11
twenty-icons.com
11
fxbsky.app
11
yout-ube.com
11
tfxktok.com
11
tnktok.com
11
vxinstagram.com
11
twittpr.com
11
fixvx.com
11
vxtwitter.com
11
fixupx.com
11
fxtwitter.com
11
vxreddit.com
11
rxddit.com
11
rules2.clearurls.xyz
11
timezonedb.catvibers.me
11
thelazysquid.github.io
11
spotify.com
11
search.aol.com
11
yahoo.com
11
perplexity.ai
11
bing.com
11
google.com
11
searx.be
11
api-v2.soundcloud.com
11
ws.audioscrobbler.com
11
makersuite.google.com
11
devevil99.github.io
11
avatars.githubusercontent.com
11
gist.githubusercontent.com
11
betterdiscord.app
11
boosty.to
11

Meta health

Every addon opens with a JSDoc meta block, parsed by BetterDiscord's parseJsDoc. This table is what BD itself sees: the same parser runs here, so a field listed as present is a field BD resolves. @name, @author, @description and @version are required; BD papers over the last three at load time with Unknown Author / ??? / No description, so a missing one degrades the UI rather than failing outright. Non-standard fields are author or library conventions BD ignores — they are listed for coverage, not judged.

Field coverage

FieldAddons% of corpus
@name required
322100%
@author required
322100%
@description required
322100%
@version required
322100%
@source
28989%
@invite
18959%
@website
17253%
@authorId
16752%
@donate
11736%
@authorLink
6320%
@patreon
6119%
@runAt
206%
@updateUrl non-standard
9028%
@license non-standard
124%
@var non-standard
62%
@changelog non-standard
21%
@displayName non-standard
10%
@updateURL non-standard
10%
@exports non-standard
10%
@changelogDate non-standard
10%
@colorwayVar non-standard
10%
@github non-standard
10%
@github_raw non-standard
10%
@keyframes non-standard
10%
@updateurl non-standard
10%
@discordBuild non-standard
10%

Problems (14 across 10 addons)

Only fields BD consumes are validated. Duplicated non-standard fields are conventions (DevilBro's @var theme settings, @changelog) and are not counted as defects.

ProblemAddons
Version is not a version number @version6
Which addons
  • DevEvil / Dark+
  • DevEvil / RosyNight
  • JustCursedRedLuigi / SkeuoCord
  • Sappy / SpotiCord
  • VaporousCreeper / GGO_Kirito
  • cavw / AlternativeVistaAutoUpdate
Link field is not an http(s) URL @website2
Which addons
  • DeathByPrograms / NotificationWhitelist
  • Goslopo / noctis-viola
Link field is not an http(s) URL @source2
Which addons
  • DeathByPrograms / NotificationWhitelist
  • theholyonez / TheHolyOneZ-Dream
Missing required field @name1
Which addons
  • square / EzLight
Missing required field @author1
Which addons
  • square / EzLight
Missing required field @description1
Which addons
  • square / EzLight
Missing required field @version1
Which addons
  • square / EzLight

Security signals

HTML injection sinks

SinkUsesPlugins
innerHTML7961
outerHTML41

Dynamic code execution

KindUsesPlugins
Function22
eval22

Bundling / packing signals

SignalPlugins
large-string-array
28
high-entropy-strings
24
escape-heavy-strings
5
dynamic-eval
2
dynamic-function
2
many-single-char-identifiers
1

Self-installing plugins (48)

Plugins that both fetch a .plugin.js URL and write a .plugin.js path — they install executable code outside the store's review path, which is the supply-chain surface worth keeping a list of. Both signals are required: a .plugin.js URL on its own is usually just a @source link, and a write on its own is usually a data file. In this corpus the whole list is the BDFDB library downloader that every DevilBro addon ships, which fetches 0BDFDB.plugin.js and writes it into BdApi.Plugins.folder — a library bootstrap rather than literal self-update.

Show all 48
  • DevilBro / 0BDFDB
  • DevilBro / BetterFriendList
  • DevilBro / BetterNsfwTag
  • DevilBro / BetterSearchPage
  • DevilBro / CharCounter
  • DevilBro / ChatAliases
  • DevilBro / ChatFilter
  • DevilBro / ClickableMentions
  • DevilBro / CompleteTimestamps
  • DevilBro / CustomQuoter
  • DevilBro / CustomStatusPresets
  • DevilBro / DisplayServersAsChannels
  • DevilBro / EditChannels
  • DevilBro / EditRoles
  • DevilBro / EditServers
  • DevilBro / EditUsers
  • DevilBro / FriendNotifications
  • DevilBro / GameActivityToggle
  • DevilBro / GoogleSearchReplace
  • DevilBro / HideMutedCategories
  • DevilBro / ImageUtilities
  • DevilBro / LastMessageDate
  • DevilBro / MessageUtilities
  • DevilBro / NotificationSounds
  • DevilBro / OldTitleBar
  • DevilBro / OpenSteamLinksInApp
  • DevilBro / PersonalPins
  • DevilBro / PinDMs
  • DevilBro / QuickMention
  • DevilBro / ReadAllNotificationsButton
  • DevilBro / RemoveBlockedUsers
  • DevilBro / RemoveNicknames
  • DevilBro / RevealAllSpoilers
  • DevilBro / ServerCounter
  • DevilBro / ServerDetails
  • DevilBro / ServerFolders
  • DevilBro / ServerHider
  • DevilBro / ShowBadgesInChat
  • DevilBro / ShowConnections
  • DevilBro / SpellCheck
  • DevilBro / SplitLargeMessages
  • DevilBro / SpotifyControls
  • DevilBro / StaffTag
  • DevilBro / TimedLightDarkMode
  • DevilBro / TopRoleEverywhere
  • DevilBro / Translator
  • DevilBro / UserNotes
  • DevilBro / WriteUpperCase

Bundled / minified code (13)

Heuristic score ≥ 0.4 — code that resists reading because it is bundled, minified, or packed. This measures readability, not safety: every addon here passed the store's normal review, and build tooling is the usual cause.

PluginSignals
quantumsoul / LaTeXmany-single-char-identifierslarge-string-arrayhigh-entropy-stringsdynamic-evaldynamic-function
arg0NNY / BetterAnimationslarge-string-arrayescape-heavy-stringshigh-entropy-stringsdynamic-function
Zerebos / PermissionsViewerlarge-string-arrayescape-heavy-stringshigh-entropy-strings
SuperTouch / Summarizerlarge-string-arrayhigh-entropy-strings
Zerebos / RoleMemberslarge-string-arrayhigh-entropy-strings
DevilBro / Translatorlarge-string-arrayhigh-entropy-strings
KingGamingYT / ActivityFeedlarge-string-arrayescape-heavy-strings
DaddyBoard / PingNotificationlarge-string-arrayhigh-entropy-strings
Snues / Incognitolarge-string-arrayhigh-entropy-strings
TheLazySquid / GifCaptionerlarge-string-arrayhigh-entropy-strings
Knew / EmbedMoreImageslarge-string-arrayhigh-entropy-strings
programmer2514 / CollapsibleUIlarge-string-arraydynamic-eval
arg0NNY / PasscodeLocklarge-string-arrayhigh-entropy-strings