Official store corpus · report generated 2026-07-20 · addon data updated 2026-07-20
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.
| Module | Plugins | Calls | Δ calls | |
|---|---|---|---|---|
require("fs") | 52 | 53 | 0 | |
Plugins requiring | ||||
require("path") | 51 | 52 | 0 | |
Plugins requiring | ||||
require("events") | 3 | 3 | 0 | |
Plugins requiring | ||||
require("electron") | 3 | 3 | 0 | |
Plugins requiring | ||||
require("(dynamic)") | 1 | 1 | 0 | |
Plugins requiring | ||||
Δ compares against the 2026-07-14 snapshot.
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.
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.
| Global | Plugins | Calls | |
|---|---|---|---|
DiscordNative.clipboard | 15 | 26 | |
DiscordNative | 4 | 5 | |
process.env | 4 | 5 | |
process | 3 | 3 | |
global | 2 | 7 | |
global.document | 2 | 6 | |
process.versions | 2 | 5 | |
DiscordNative.fileManager | 2 | 3 | |
DiscordNative.nativeModules | 2 | 2 | |
DiscordNative.app | 1 | 4 | |
Buffer.from | 1 | 2 | |
global.ZeresPluginLibrary | 1 | 1 | |
process.exit | 1 | 1 | |
global.Object | 1 | 1 |
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.
| Method | Plugins | Calls | |
|---|---|---|---|
getInternalInstance hazard | 8 | 9 | |
unmountComponentAtNode hazard | 1 | 2 | |
render hazard | 1 | 2 | |
findDOMNode hazard | 1 | 2 | |
createRoot modern | 8 | 10 |
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.)
| Approach | Plugins | |
|---|---|---|
BdApi.DOM.addStyle API | 73 | |
document.createElement("style") hand-rolled | 3 |
Calls resolved through aliases, destructuring, and new BdApi() instances. Use this to weigh the impact of API changes.
| Namespace | Calls | Plugins | |
|---|---|---|---|
BdApi.React | 5,267 | 126 | |
BdApi.Webpack | 2,239 | 144 | |
BdApi.UI | 588 | 154 | |
BdApi.Data | 587 | 113 | |
BdApi.Patcher | 410 | 111 | |
BdApi.ContextMenu | 266 | 49 | |
BdApi.DOM | 256 | 82 | |
BdApi.Components | 231 | 50 | |
BdApi.Logger | 228 | 52 | |
BdApi.Utils | 182 | 71 | |
BdApi.Plugins | 95 | 61 | |
BdApi.Net | 79 | 64 | |
BdApi.Hooks | 65 | 17 | |
BdApi.ReactUtils | 62 | 30 | |
BdApi.Themes | 21 | 4 | |
BdApi.ReactDOM | 16 | 11 | |
BdApi.settings | 4 | 1 | |
BdApi.Commands | 4 | 1 | |
BdApi.isSettingEnabled | 2 | 1 | |
BdApi.disableSetting | 2 | 1 | |
BdApi.enableSetting | 2 | 1 |
| API | Calls | Plugins | Δ | |
|---|---|---|---|---|
BdApi.React.createElement | 4,483 | 99 | +2 | |
BdApi.Webpack.Filters.byStrings | 390 | 58 | 0 | |
BdApi.Data.load | 299 | 106 | 0 | |
BdApi.Webpack.getByKeys | 252 | 65 | 0 | |
BdApi.Data.save | 238 | 105 | 0 | |
BdApi.Webpack.getModule | 235 | 76 | 0 | |
BdApi.UI.showToast | 231 | 90 | 0 | |
BdApi.Webpack.Filters.byKeys | 217 | 53 | 0 | |
BdApi.React.Fragment | 170 | 30 | 0 | |
BdApi.Patcher.after | 156 | 71 | 0 | |
BdApi.Webpack.Filters.bySource | 156 | 39 | 0 | |
BdApi.Webpack.getStore | 150 | 45 | 0 | |
BdApi.React.useState | 133 | 50 | 0 | |
BdApi.Webpack.getByStrings | 131 | 29 | 0 | |
BdApi.Patcher.unpatchAll | 123 | 101 | 0 | |
BdApi.DOM.removeStyle | 104 | 72 | 0 | |
BdApi.UI.showConfirmationModal | 98 | 70 | 0 | |
BdApi.DOM.addStyle | 97 | 73 | 0 | |
BdApi.React | 96 | 80 | 0 | |
BdApi.Webpack.waitForModule | 92 | 36 | 0 | |
BdApi.Logger.error | 90 | 29 | 0 | |
BdApi.Webpack | 81 | 67 | 0 | |
BdApi.Net.fetch | 77 | 63 | +1 | |
BdApi.Utils.findInTree | 68 | 35 | 0 | |
BdApi.UI.buildSettingsPanel | 64 | 57 | 0 | |
BdApi.UI.alert | 64 | 60 | 0 | |
BdApi.React.Component | 64 | 36 | 0 | |
BdApi.React.useEffect | 63 | 37 | 0 | |
BdApi.Logger.info | 60 | 21 | −1 | |
BdApi.Hooks.useStateFromStores | 57 | 12 | 0 |
BdApi.ContextMenu.patch | 56 | 30 | 0 | |
BdApi.UI.showChangelogModal | 56 | 52 | 0 | |
BdApi.Plugins.folder | 56 | 52 | 0 | |
BdApi.React.useRef | 55 | 31 | 0 | |
BdApi.Webpack.getWithKey | 47 | 26 | 0 | |
BdApi.Patcher | 45 | 45 | 0 | |
BdApi.React.memo | 45 | 5 | 0 | |
BdApi.ContextMenu.buildItem | 44 | 21 | 0 | |
BdApi.Webpack.getBySource | 40 | 24 | 0 | |
BdApi.Patcher.before | 40 | 26 | 0 | |
BdApi.UI | 39 | 39 | 0 | |
BdApi.Data | 39 | 39 | 0 | |
BdApi.Webpack.getMangled | 38 | 16 | 0 | |
BdApi.Webpack.Filters | 37 | 37 | 0 | |
BdApi.Logger.warn | 37 | 16 | 0 | |
BdApi.Patcher.instead | 34 | 25 | 0 | |
BdApi.ContextMenu.open | 33 | 12 | 0 | |
BdApi.Utils.className | 33 | 8 | 0 | |
BdApi.DOM | 32 | 32 | 0 | |
BdApi.Webpack.Filters.byStoreName | 31 | 7 | 0 | |
BdApi.Webpack.getBulk | 29 | 29 | 0 | |
BdApi.ContextMenu.Item | 29 | 12 | 0 | |
BdApi.Utils.extend | 28 | 14 | 0 | |
BdApi.ContextMenu | 26 | 25 | 0 | |
BdApi.React.createRef | 26 | 6 | 0 | |
BdApi.ContextMenu.buildMenu | 25 | 9 | 0 | |
BdApi.Components.SettingItem | 25 | 10 | 0 | |
BdApi.React.useMemo | 25 | 13 | 0 | |
BdApi.Components.Tooltip | 24 | 20 | 0 | |
BdApi.Components.Button | 24 | 11 | 0 | |
BdApi.React.useCallback | 22 | 16 | 0 | |
BdApi.Logger | 21 | 21 | 0 | |
BdApi.Utils | 21 | 21 | 0 | |
BdApi.ReactUtils.getOwnerInstance | 21 | 15 | 0 | |
BdApi.React.useLayoutEffect | 17 | 9 | 0 | |
BdApi.Webpack.Filters.byPrototypeKeys | 16 | 8 | 0 | |
BdApi.Components.DropdownInput | 16 | 7 | 0 | |
BdApi.Components.SwitchInput | 15 | 12 | 0 | |
BdApi.Webpack.Stores.UserStore.getUser | 15 | 4 | 0 | |
BdApi.ContextMenu.unpatch | 14 | 8 | 0 | |
BdApi.UI.createTooltip | 14 | 5 | 0 | |
BdApi.Components.Text | 14 | 9 | 0 | |
BdApi.Utils.Store | 13 | 11 | 0 | |
BdApi.ContextMenu.buildMenuChildren | 13 | 3 | 0 | |
BdApi.Webpack.Stores.UserStore.getCurrentUser | 13 | 7 | 0 | |
BdApi.ReactUtils.wrapInHooks | 13 | 7 | 0 | |
BdApi.Components | 12 | 12 | 0 | |
BdApi.React.cloneElement | 12 | 11 | 0 | |
BdApi.Webpack.Stores.ChannelStore.getChannel | 12 | 5 | 0 | |
BdApi.DOM.createElement | 12 | 5 | 0 | |
BdApi.React.useSyncExternalStore | 12 | 7 | 0 | |
BdApi.Webpack.Stores | 11 | 11 | 0 | |
BdApi.ContextMenu.Menu | 11 | 6 | 0 | |
BdApi.ReactUtils | 11 | 11 | 0 | |
BdApi.Webpack.Stores.UserStore | 11 | 11 | 0 | |
BdApi.Plugins.get | 11 | 5 | +1 | |
BdApi.Plugins.isEnabled | 10 | 6 | +1 | |
BdApi.Logger.log | 10 | 7 | +1 | |
BdApi.Data.delete | 10 | 9 | 0 | |
BdApi.Components.Button.Sizes.SMALL | 9 | 6 | 0 | |
BdApi.ReactDOM | 9 | 9 | 0 | |
BdApi.DOM.parseHTML | 9 | 6 | 0 | |
BdApi.Webpack.Stores.ChannelStore | 9 | 9 | 0 | |
BdApi.ReactUtils.getInternalInstance | 9 | 8 | 0 | |
BdApi.Plugins | 9 | 4 | 0 | |
BdApi.Webpack.getBulkKeyed | 8 | 8 | 0 | |
BdApi.Components.TextInput | 8 | 5 | 0 | |
BdApi.Webpack.Stores.GuildStore.getGuild | 8 | 5 | 0 | |
BdApi.Webpack.Stores.GuildStore | 8 | 8 | 0 | |
BdApi.Components.ErrorBoundary | 8 | 7 | 0 | |
BdApi.Components.Button.Colors.RED | 8 | 5 | 0 | |
BdApi.Webpack.Stores.SelectedGuildStore.getGuildId | 7 | 3 | 0 | |
BdApi.Patcher.* | 7 | 6 | 0 | |
BdApi.Themes | 7 | 3 | 0 | |
BdApi.Webpack.Filters.combine | 7 | 5 | 0 | |
BdApi.Logger.debug | 7 | 1 | 0 | |
BdApi.ReactDOM.createRoot | 7 | 7 | 0 | |
BdApi.Webpack.Stores.MessageStore.getMessage | 7 | 2 | 0 | |
BdApi.React.createContext | 6 | 5 | 0 | |
BdApi.React.isValidElement | 6 | 6 | 0 | |
BdApi.UI.showNotice | 6 | 5 | 0 | |
BdApi.Webpack.Stores.SelectedChannelStore | 6 | 6 | 0 | |
BdApi.React.useReducer | 6 | 6 | 0 | |
BdApi.Components.Spinner | 6 | 4 | 0 | |
BdApi.Webpack.Stores.PermissionStore.can | 6 | 4 | 0 | |
BdApi.Components.RadioInput | 6 | 5 | 0 | |
BdApi.Webpack.getByPrototypeKeys | 5 | 5 | 0 | |
BdApi.Webpack.Stores.PresenceStore | 5 | 5 | 0 | |
BdApi.Webpack.Stores.UserStore._dispatcher.unsubscribe | 5 | 1 | 0 | |
BdApi.Webpack.Stores.UserStore._dispatcher.subscribe | 5 | 1 | 0 | |
BdApi.Webpack.Stores.UserStore._dispatcher | 5 | 4 | 0 | |
BdApi.Webpack.Stores.GuildMemberStore | 5 | 5 | 0 | |
BdApi.ContextMenu.Group | 5 | 5 | 0 | |
BdApi.Components.Text.Sizes.SIZE_16 | 5 | 3 | 0 | |
BdApi.Utils.semverCompare | 5 | 5 | 0 | |
BdApi.Utils.forceLoad | 5 | 5 | 0 | |
BdApi.Patcher.getPatchesByCaller | 5 | 5 | 0 | |
BdApi.UI.openDialog | 5 | 2 | 0 | |
BdApi.Utils.mapObject | 5 | 5 | 0 | |
BdApi.UI.showInviteModal | 4 | 2 | 0 | |
BdApi.UI.buildSettingItem | 4 | 3 | 0 | |
BdApi.ContextMenu.close | 4 | 4 | 0 | |
BdApi.React.useContext | 4 | 3 | 0 | |
BdApi.Webpack.Stores.GuildRoleStore | 4 | 4 | 0 | |
BdApi.Components.Flex | 4 | 3 | 0 | |
BdApi.Components.SettingGroup | 4 | 4 | 0 | |
BdApi.ReactUtils.createNodePatcher | 4 | 4 | 0 | |
BdApi.Webpack.Stores.MessageStore | 4 | 4 | 0 | |
BdApi.Utils.debounce | 4 | 4 | 0 | |
BdApi.React.forwardRef | 4 | 4 | 0 | |
BdApi.Components.Button.Colors.GREEN | 3 | 2 | 0 | |
BdApi.Hooks.useData | 3 | 3 | 0 | |
BdApi.Webpack.Stores.UserStore._dispatcher.dispatch | 3 | 2 | 0 | |
BdApi.Webpack.Stores.SelectedChannelStore.getCurrentlySelectedChannelId | 3 | 2 | 0 | |
BdApi.Webpack.Stores.SelectedGuildStore | 3 | 3 | 0 | |
BdApi.Webpack.Stores.GuildRoleStore.getRolesSnapshot | 3 | 3 | 0 | |
BdApi.Webpack.Stores.LocaleStore.locale | 3 | 3 | 0 | |
BdApi.React.useTransition | 3 | 3 | 0 | |
BdApi.React.useId | 3 | 3 | 0 | |
BdApi.Components.ColorInput | 3 | 3 | 0 | |
BdApi.Webpack.Stores.SortedGuildStore | 3 | 3 | 0 | |
BdApi.Themes.disable | 3 | 2 | 0 | |
BdApi.Themes.isEnabled | 3 | 2 | 0 | |
BdApi.Plugins.disable | 3 | 2 | 0 | |
BdApi.Plugins.enable | 3 | 2 | 0 | |
BdApi.Plugins.reload | 3 | 2 | 0 | |
BdApi.Themes.folder | 3 | 1 | 0 | |
BdApi.Webpack.getById | 3 | 3 | 0 | |
BdApi.Components.Flex.Justify.END | 3 | 2 | 0 | |
BdApi.ContextMenu.Separator | 3 | 2 | 0 | |
BdApi.Logger.stacktrace | 3 | 2 | 0 | |
BdApi.Webpack.Stores.PresenceStore.getStatus | 3 | 1 | 0 | |
BdApi.UI.showNotification | 3 | 2 | 0 | |
BdApi.Webpack.Stores.RelationshipStore | 3 | 3 | 0 | |
BdApi.Hooks | 3 | 3 | 0 | |
BdApi.Webpack.Stores.LocaleStore | 3 | 3 | 0 | |
BdApi.Webpack.Stores.PermissionStore | 3 | 3 | 0 | |
BdApi.Components.Spinner.Type.* | 3 | 1 | 0 | |
BdApi.ReactUtils.wrapElement | 3 | 1 | 0 | |
BdApi.Net | 2 | 2 | 0 | |
BdApi.Webpack.Stores.PresenceStore.emitChange | 2 | 1 | 0 | |
BdApi.Webpack.Stores.PresenceStore.getClientStatus | 2 | 2 | 0 | |
BdApi.Webpack.Stores.MessageStore.emitChange | 2 | 1 | 0 | |
BdApi.React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.H | 2 | 2 | 0 | |
BdApi.Webpack.modules.* | 2 | 2 | 0 | |
BdApi.Webpack.Stores.SelectedChannelStore.getChannelId | 2 | 2 | 0 | |
BdApi.Webpack.Stores.GuildMemberCountStore.getMemberCount | 2 | 2 | 0 | |
BdApi.Webpack.Stores.GuildMemberCountStore | 2 | 2 | 0 | |
BdApi.Webpack.Stores.GuildMemberStore.getMembers | 2 | 1 | 0 | |
BdApi.Webpack.Stores.SortedGuildStore.getFlattenedGuildIds | 2 | 2 | 0 | |
BdApi.Components.Text.Colors.HEADER_PRIMARY | 2 | 1 | 0 | |
BdApi.Components.Spinner.Type.SPINNING_CIRCLE | 2 | 1 | 0 | |
BdApi.settings.map | 2 | 1 | 0 | |
BdApi.settings | 2 | 1 | 0 | |
BdApi.isSettingEnabled | 2 | 1 | 0 | |
BdApi.disableSetting | 2 | 1 | 0 | |
BdApi.enableSetting | 2 | 1 | 0 | |
BdApi.Themes.get | 2 | 1 | 0 | |
BdApi.Themes.enable | 2 | 1 | 0 | |
BdApi.Webpack.getModules | 2 | 2 | 0 | |
BdApi.Components.Button.Looks.FILLED | 2 | 1 | 0 | |
BdApi.Webpack.Filters.byComponentType | 2 | 2 | 0 | |
BdApi.Webpack.Filters.not | 2 | 1 | 0 | |
BdApi.React.lazy | 2 | 2 | 0 | |
BdApi.React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED | 2 | 1 | 0 | |
BdApi.ContextMenu.CheckboxItem | 2 | 2 | 0 | |
BdApi.Webpack.Stores.ReferencedMessageStore.getMessageByReference | 2 | 2 | 0 | |
BdApi.Webpack.Stores.MessageStore.getMessages | 2 | 1 | 0 | |
BdApi.Webpack.Stores.ReferencedMessageStore | 2 | 2 | 0 | |
BdApi.Webpack.Stores.GuildMemberStore.getMember | 2 | 2 | 0 | |
BdApi.Webpack.Stores.GuildStore.getGuildsArray | 2 | 2 | 0 | |
BdApi.Webpack.Stores.IdleStore | 2 | 2 | 0 | |
BdApi.Webpack.Stores.UserGuildSettingsStore | 2 | 2 | 0 | |
BdApi.Components.Text.Sizes.SIZE_12 | 2 | 1 | 0 | |
BdApi.Hooks.useForceUpdate | 2 | 2 | 0 | |
BdApi.Webpack.getAllByKeys | 2 | 1 | 0 | |
BdApi.Webpack.Stores.LocaleStore.removeChangeListener | 2 | 2 | 0 | |
BdApi.Webpack.Stores.LocaleStore.addChangeListener | 2 | 2 | 0 | |
BdApi.Webpack.Stores.VoiceStateStore.getDiscoverableVoiceStateForUser | 2 | 1 | 0 | |
BdApi.Data.save.bind | 1 | 1 | 0 | |
BdApi.React.use | 1 | 1 | 0 | |
BdApi.Components.NumberInput | 1 | 1 | 0 | |
BdApi.React.useInsertionEffect | 1 | 1 | 0 | |
BdApi.Webpack.Stores.ThreadMemberListStore.getMemberListSections | 1 | 1 | 0 | |
BdApi.Webpack.Stores.PrivateChannelSortStore.getSortedChannels | 1 | 1 | 0 | |
BdApi.Webpack.Stores.ChannelMemberStore.getProps | 1 | 1 | 0 | |
BdApi.Webpack.Stores.ChannelMemberStore | 1 | 1 | 0 | |
BdApi.Webpack.Stores.PrivateChannelSortStore | 1 | 1 | 0 | |
BdApi.Webpack.Stores.ThreadMemberListStore | 1 | 1 | 0 | |
BdApi.DOM.animate | 1 | 1 | 0 | |
BdApi.DOM.onRemoved | 1 | 1 | 0 | |
BdApi.Components.Spinner.Type.SPINNING_CIRCLE_SIMPLE | 1 | 1 | 0 | |
BdApi.React.useImperativeHandle | 1 | 1 | 0 | |
BdApi.Webpack.Stores.StickersStore.getStickersByGuildId | 1 | 1 | 0 | |
BdApi.Webpack.Stores.EmojiStore.getGuildEmoji | 1 | 1 | 0 | |
BdApi.Webpack.Stores.StickersStore | 1 | 1 | 0 | |
BdApi.Webpack.Stores.EmojiStore | 1 | 1 | 0 | |
BdApi.Components.Text.Colors.ERROR | 1 | 1 | 0 | |
BdApi.Components.Text.Sizes.SIZE_14 | 1 | 1 | 0 | |
BdApi.Webpack.Stores.StickersStore.getStickerById | 1 | 1 | 0 | |
BdApi.React.Children.map | 1 | 1 | 0 | |
BdApi.Webpack.Stores.SearchQueryStore | 1 | 1 | 0 | |
BdApi.Webpack.Stores.SearchAutocompleteStore | 1 | 1 | 0 | |
BdApi.Components.Flex.Direction.VERTICAL | 1 | 1 | 0 | |
BdApi.Commands.unregisterAll | 1 | 1 | 0 | |
BdApi.Commands.register | 1 | 1 | 0 | |
BdApi.Components.Button.Looks.OUTLINED | 1 | 1 | 0 | |
BdApi.Components.Flex.Justify.BETWEEN | 1 | 1 | 0 | |
BdApi.Components.Text.Sizes.SIZE_20 | 1 | 1 | 0 | |
BdApi.Components.Flex.Justify.START | 1 | 1 | 0 | |
BdApi.Components.Button.Colors.BRAND | 1 | 1 | 0 | |
BdApi.Commands.Types.OptionTypes.BOOLEAN | 1 | 1 | 0 | |
BdApi.Commands.Types | 1 | 1 | 0 | |
BdApi.Components.SearchInput | 1 | 1 | 0 | |
BdApi.React.PureComponent | 1 | 1 | 0 | |
BdApi.React.Children.only | 1 | 1 | 0 | |
BdApi.Webpack.Filters.byRegex | 1 | 1 | 0 | |
BdApi.Webpack.Stores.GuildMemberCountStore.getOnlineCount | 1 | 1 | 0 | |
BdApi.Components.Text.Colors.HEADER_SECONDARY | 1 | 1 | 0 | |
BdApi.Components.Button.Colors.CUSTOM | 1 | 1 | 0 | |
BdApi.Components.SliderInput | 1 | 1 | 0 | |
BdApi.Components.Button.Sizes.ICON | 1 | 1 | 0 | |
BdApi.Components.Button.Colors.TRANSPARENT | 1 | 1 | 0 | |
BdApi.Components.Flex.Align.CENTER | 1 | 1 | 0 | |
BdApi.Components.Flex.Direction.HORIZONTAL | 1 | 1 | 0 | |
BdApi.Webpack.Stores.RunningGameStore.getGamesSeen | 1 | 1 | 0 | |
BdApi.Webpack.Stores.UserSettingsProtoStore | 1 | 1 | 0 | |
BdApi.Webpack.Stores.WindowStore.isVisible | 1 | 1 | 0 | |
BdApi.Webpack.Stores.IdleStore.isAFK | 1 | 1 | 0 | |
BdApi.Webpack.Stores.SpeakingStore.isSpeaking | 1 | 1 | 0 | |
BdApi.Webpack.Stores.PresenceStore.isVROnline | 1 | 1 | 0 | |
BdApi.Webpack.Stores.PresenceStore.isMobileOnline | 1 | 1 | 0 | |
BdApi.Webpack.Stores.RelationshipStore.getNickname | 1 | 1 | 0 | |
BdApi.Webpack.Stores.ChannelStore.getChannelIds | 1 | 1 | 0 | |
BdApi.Webpack.Stores.UserGuildSettingsStore.getNewForumThreadsCreated | 1 | 1 | 0 | |
BdApi.Webpack.Stores.WindowStore | 1 | 1 | 0 | |
BdApi.Webpack.Stores.SpeakingStore | 1 | 1 | 0 | |
BdApi.Webpack.modules.*.toString | 1 | 1 | 0 | |
BdApi.Webpack.Stores.RecentMentionsStore | 1 | 1 | 0 | |
BdApi.Webpack.Stores.RecentMentionsStore.emitChange | 1 | 1 | 0 | |
BdApi.Webpack.Stores.GuildReadStateStore | 1 | 1 | 0 | |
BdApi.Webpack.Stores.ReadStateStore | 1 | 1 | 0 | |
BdApi.Webpack.Stores.AccessibilityStore.removeChangeListener | 1 | 1 | 0 | |
BdApi.Webpack.Stores.AccessibilityStore.addChangeListener | 1 | 1 | 0 | |
BdApi.Webpack.Stores.AccessibilityStore.zoom | 1 | 1 | 0 | |
BdApi.Webpack.Stores.AccessibilityStore | 1 | 1 | 0 | |
BdApi.Components.Text.Colors.LINK | 1 | 1 | 0 | |
BdApi.Components.Text.Colors.MUTED | 1 | 1 | 0 | |
BdApi.Webpack.Stores.ReadStateStore._dispatcher | 1 | 1 | 0 | |
BdApi.Webpack.Stores.RunningGameStore | 1 | 1 | 0 | |
BdApi.Webpack.Stores.ConsentStore | 1 | 1 | 0 | |
BdApi.Webpack.Stores.ActivityTrackingStore | 1 | 1 | 0 | |
BdApi.Components.Button.Looks.BLANK | 1 | 1 | 0 | |
BdApi.Webpack.getAllByStrings | 1 | 1 | 0 | |
BdApi.Webpack.Stores.PendingReplyStore.getPendingReply | 1 | 1 | 0 | |
BdApi.Webpack.Stores.PendingReplyStore | 1 | 1 | 0 | |
BdApi.Components.Button.Sizes.MEDIUM | 1 | 1 | 0 | |
BdApi.Components.Spinner.Type | 1 | 1 | 0 | |
BdApi.Webpack.Stores.RelationshipStore.getFriendIDs | 1 | 1 | 0 | |
BdApi.Webpack.Stores.GuildStore.getGuilds | 1 | 1 | 0 | |
BdApi.Webpack.Stores.RawGuildEmojiStore.getGuildEmojis | 1 | 1 | 0 | |
BdApi.Webpack.Stores.RawGuildEmojiStore | 1 | 1 | 0 | |
BdApi.ReactUtils.getOwnerInstance.bind | 1 | 1 | 0 | |
BdApi.Webpack.Stores.GuildChannelStore | 1 | 1 | 0 | |
BdApi.Webpack.Stores.VoiceStateStore | 1 | 1 | 0 | |
BdApi.Webpack.Stores.TypingStore | 1 | 1 | 0 | |
BdApi.Webpack.Stores.JoinedThreadsStore | 1 | 1 | 0 | |
BdApi.Themes.getAll | 1 | 1 | 0 | |
BdApi.ContextMenu.RadioItem | 1 | 1 | 0 | |
BdApi.Webpack.Filters.byDisplayName | 1 | 1 | 0 |
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.
| Namespace | Members nothing calls | Count | |
|---|---|---|---|
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.
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 path | Calls | Plugins |
|---|---|---|
BdApi.settings | 4 | 1 |
Which plugins
| ||
BdApi.isSettingEnabled | 2 | 1 |
Which plugins
| ||
BdApi.disableSetting | 2 | 1 |
Which plugins
| ||
BdApi.enableSetting | 2 | 1 |
Which plugins
| ||
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.
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.
| Member | Status | Plugins defining it | |
|---|---|---|---|
getName | deprecated | 55 | |
getAuthor | deprecated | 52 | |
getDescription | deprecated | 51 | |
getVersion | deprecated | 51 | |
load | removal candidate | 70 | |
onSwitch | removal candidate | 9 | |
observer | removal candidate | 6 | |
start | current | 192 | |
stop | current | 189 | |
getSettingsPanel | current | 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.
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.
| Target | Plugins | Calls | |
|---|---|---|---|
dispatch key | 24 | 25 | |
subscribe key | 24 | 24 | |
UserStore store | 23 | 23 | |
ChannelStore store | 15 | 15 | |
GuildStore store | 11 | 11 | |
RelationshipStore store | 11 | 11 | |
useStateFromStores string | 11 | 11 | |
Store key | 10 | 12 | |
SelectedGuildStore store | 10 | 10 | |
SelectedChannelStore store | 10 | 10 | |
GuildMemberStore store | 9 | 10 | |
getLocale key | 9 | 10 | |
openModal key | 9 | 9 | |
sendMessage key | 8 | 8 | |
(dynamic) key | 7 | 8 | |
Modal key | 7 | 7 | |
getCurrentUser key | 6 | 6 | |
Unsupported animation config: string | 6 | 6 | |
getGuildIconURL key | 6 | 6 | |
connectStores key | 6 | 6 | |
container key | 5 | 6 | |
message key | 5 | 5 | |
.getState();for string | 5 | 5 | |
selectionMode:"single",onSelectionChange: string | 5 | 5 | |
isSelected: string | 5 | 5 |
stickToMarkers string | 5 | 5 | |
PresenceStore store | 5 | 5 | |
openUserProfileModal key | 5 | 5 | |
GuildRoleStore store | 5 | 5 | |
parseTopic key | 5 | 5 | |
MediaEngineStore store | 5 | 5 | |
icon key | 4 | 7 | |
MessageStore store | 4 | 5 | |
intl key | 4 | 5 | |
button key | 4 | 5 | |
getNickname string | 4 | 5 | |
register key | 4 | 4 | |
channel key | 4 | 4 | |
locale key | 4 | 4 | |
initialize key | 4 | 4 | |
_sendMessage key | 4 | 4 | |
scroller key | 4 | 4 | |
VoiceStateStore store | 4 | 4 | |
iconContainer key | 4 | 4 | |
RTCConnectionStore store | 4 | 4 | |
parse key | 4 | 4 | |
chat key | 4 | 4 | |
base key | 4 | 4 | |
onCloseRequest string | 4 | 4 | |
onCloseCallback string | 4 | 4 | |
guildId string | 3 | 7 | |
MANAGE_CHANNELS string | 3 | 7 | |
onClose string | 3 | 5 | |
grow key | 3 | 5 | |
LocalActivityStore store | 3 | 4 | |
content key | 3 | 4 | |
checked string | 3 | 4 | |
fetchMessage key | 3 | 3 | |
deleteMessage key | 3 | 3 | |
thin key | 3 | 3 | |
title key | 3 | 3 | |
data-text-variant string | 3 | 3 | |
editMessage key | 3 | 3 | |
jumpToMessage key | 3 | 3 | |
channelTextArea key | 3 | 3 | |
getUserAvatarURL key | 3 | 3 | |
.BUTTON_LOADING_STARTED_LABEL, string | 3 | 3 | |
section string | 3 | 3 | |
showNotification key | 3 | 3 | |
ApplicationStreamingStore store | 3 | 3 | |
channel string | 3 | 3 | |
anchor key | 3 | 3 | |
anchorUnderlineOnHover key | 3 | 3 | |
GUILD_EMOJI key | 3 | 3 | |
GUILD_EMOJIS key | 3 | 3 | |
messageType string | 3 | 3 | |
.modalKey? string | 3 | 3 | |
,instant: string | 3 | 3 | |
.onCloseCallback() string | 3 | 3 | |
UserProfileStore store | 3 | 3 | |
sanitizeUrl string | 3 | 3 | |
root key | 3 | 3 | |
statusColor string | 3 | 3 | |
Icon key | 3 | 3 | |
ThemeStore store | 3 | 3 | |
PLAYING string | 3 | 3 | |
(dynamic) undefined | 3 | 3 | |
getStateFromStores string | 3 | 3 | |
USER_UPDATE string | 3 | 3 | |
Promise.resolve string | 3 | 3 | |
GuildChannelStore store | 3 | 3 | |
instant string | 3 | 3 | |
backdropStyle string | 3 | 3 | |
innerClassName string | 3 | 3 | |
filesMetadata: string | 3 | 3 | |
requireConfirm: string | 3 | 3 | |
stickToMarkers key | 3 | 3 | |
initialValue key | 3 | 3 | |
Animation key | 3 | 3 | |
renderPopout string | 3 | 3 | |
label string | 3 | 3 | |
description string | 3 | 3 | |
data-direction string | 3 | 3 | |
data-justify string | 3 | 3 | |
shouldIndicateNewChannel string | 3 | 3 | |
sidebar key | 3 | 3 | |
activity string | 2 | 6 | |
layer key | 2 | 4 | |
platform=== string | 2 | 4 | |
spotifyData string | 2 | 4 | |
colorPrimary key | 2 | 4 | |
circleIcon key | 2 | 4 | |
gameState key | 2 | 3 | |
clickableImage key | 2 | 3 | |
gameProfileModalChecks string | 2 | 3 | |
onOpened string | 2 | 3 | |
embeddedActivity string | 2 | 3 | |
.09v4.91a3.09 string | 2 | 3 | |
isGroupDM string | 2 | 3 | |
wrapper key | 2 | 3 | |
USER_MENTION string | 2 | 3 | |
inlinePreview string | 2 | 3 | |
avatarWrapper key | 2 | 3 | |
.setState string | 2 | 2 | |
.getState()[ string | 2 | 2 | |
Looks key | 2 | 2 | |
Link key | 2 | 2 | |
useSpring key | 2 | 2 | |
canRemoveAnyRoles string | 2 | 2 | |
isMobile string | 2 | 2 | |
.PlatformTypes.WINDOWS string | 2 | 2 | |
leading: string | 2 | 2 | |
username key | 2 | 2 | |
standardSidebarView key | 2 | 2 | |
relationshipType string | 2 | 2 | |
trackUserProfileAction string | 2 | 2 | |
displayProfile string | 2 | 2 | |
startTyping key | 2 | 2 | |
decorator key | 2 | 2 | |
hovered key | 2 | 2 | |
selected key | 2 | 2 | |
getMessage key | 2 | 2 | |
getMessages key | 2 | 2 | |
getChannel key | 2 | 2 | |
textArea key | 2 | 2 | |
layerContainer key | 2 | 2 | |
onClickContainer: string | 2 | 2 | |
user: string | 2 | 2 | |
.isNonUserBot()? string | 2 | 2 | |
setBadge key | 2 | 2 | |
AnalyticEventConfigs key | 2 | 2 | |
getDiscordUtils key | 2 | 2 | |
defaultColor key | 2 | 2 | |
baseLayer key | 2 | 2 | |
FocusRing was given a focusTarget string | 2 | 2 | |
moveGrabber string | 2 | 2 | |
,scrollbarType: string | 2 | 2 | |
getLastSelectedGuildId key | 2 | 2 | |
getLastSelectedChannelId key | 2 | 2 | |
transitionTo - Transitioning to string | 2 | 2 | |
fetchMessages key | 2 | 2 | |
requestPermission key | 2 | 2 | |
(dynamic) store | 2 | 2 | |
getState key | 2 | 2 | |
_dispatch key | 2 | 2 | |
avatarContainer key | 2 | 2 | |
PermissionStore store | 2 | 2 | |
preload key | 2 | 2 | |
display string | 2 | 2 | |
getUserOutbox string | 2 | 2 | |
translateSurrogatesToInlineEmoji string | 2 | 2 | |
timestamps string | 2 | 2 | |
.TEXT_FEEDBACK_POSITIVE string | 2 | 2 | |
start string | 2 | 2 | |
end string | 2 | 2 | |
duration string | 2 | 2 | |
percentage string | 2 | 2 | |
USER_PROFILE_ACTIVITY_BUTTONS string | 2 | 2 | |
PRESS_PLAY_ON_SPOTIFY_BUTTON string | 2 | 2 | |
PRESS_JOIN_CALL_BUTTON string | 2 | 2 | |
maxUsers string | 2 | 2 | |
isGuildStageVoice string | 2 | 2 | |
.CONNECT string | 2 | 2 | |
hasIcon string | 2 | 2 | |
switchIconsEnabled string | 2 | 2 | |
openUserSettings key | 2 | 2 | |
transitionToGuild - Transitioning to string | 2 | 2 | |
guild string | 2 | 2 | |
NewGameStore store | 2 | 2 | |
ApplicationStore store | 2 | 2 | |
hasAvatarForGuild string | 2 | 2 | |
alpha2 string | 2 | 2 | |
embeddedActivityConfig string | 2 | 2 | |
ctaConfig string | 2 | 2 | |
flatMap string | 2 | 2 | |
parentId string | 2 | 2 | |
disableFetch string | 2 | 2 | |
"PRESS_CLOUD_PLAY_BUTTON" string | 2 | 2 | |
.EMBEDDED string | 2 | 2 | |
{return(0, string | 2 | 2 | |
META_QUEST string | 2 | 2 | |
supported_platforms string | 2 | 2 | |
distributorCTAConfigs string | 2 | 2 | |
PLAY_CTA_DISPLAYED string | 2 | 2 | |
.CUSTOM_STATUS&&(null string | 2 | 2 | |
.XBOX string | 2 | 2 | |
.PS5 string | 2 | 2 | |
M8.95185131 string | 2 | 2 | |
M17.7516 string | 2 | 2 | |
Array.isArray(e)?e.some( string | 2 | 2 | |
JOIN)&& string | 2 | 2 | |
&&!!(0, string | 2 | 2 | |
.INSTANCE&&null!=e string | 2 | 2 | |
e?.application_id=== string | 2 | 2 | |
SS string | 2 | 2 | |
USER_ACTIVITY_METADATA string | 2 | 2 | |
ACTIVITY_METADATA_UPDATE string | 2 | 2 | |
formatPathWithQuery key | 2 | 2 | |
contextKey string | 2 | 2 | |
.POPOUT string | 2 | 2 | |
contextless string | 2 | 2 | |
DispatchApplicationStore string | 2 | 2 | |
data string | 2 | 2 | |
getOfficialGame string | 2 | 2 | |
:null! string | 2 | 2 | |
7.61c-.25.95.31 string | 2 | 2 | |
launch key | 2 | 2 | |
reportUnverifiedGame key | 2 | 2 | |
asContainer string | 2 | 2 | |
keyboardShortcut string | 2 | 2 | |
"string"==typeof string | 2 | 2 | |
18.5V22a1 string | 2 | 2 | |
2.4l.57-.58a.74.74 string | 2 | 2 | |
14.99a3.17 string | 2 | 2 | |
USER_ACTIVITY_PLAY string | 2 | 2 | |
USER_ACTIVITY_SYNC string | 2 | 2 | |
LISTENING string | 2 | 2 | |
SPOTIFY).name string | 2 | 2 | |
M12.7609503,7.08043507 string | 2 | 2 | |
0Zm-2.77-.2-3.33-2.5a.25 string | 2 | 2 | |
className string | 2 | 2 | |
isNonUserBot string | 2 | 2 | |
small key | 2 | 2 | |
bar key | 2 | 2 | |
tabularNumbers key | 2 | 2 | |
separator key | 2 | 2 | |
statusPickerModalMenu key | 2 | 2 | |
inner key | 2 | 2 | |
Provider string | 2 | 2 | |
Divider key | 2 | 2 | |
SWITCH_BACKGROUND_DEFAULT string | 2 | 2 | |
RunningGameStore store | 2 | 2 | |
UserSettingsProtoStore store | 2 | 2 | |
WindowStore store | 2 | 2 | |
useContext string | 2 | 2 | |
buttonWrapper key | 2 | 2 | |
buttonContent key | 2 | 2 | |
emojiButton key | 2 | 2 | |
stickerButton key | 2 | 2 | |
trinketsIcon key | 2 | 2 | |
UserGuildSettingsStore store | 2 | 2 | |
getDisambiguatedEmojiContext key | 2 | 2 | |
getEmojiUnavailableReason key | 2 | 2 | |
TypingStore store | 2 | 2 | |
trailing key | 2 | 2 | |
app key | 2 | 2 | |
isTyping string | 2 | 2 | |
buttons key | 2 | 2 | |
numpad plus string | 2 | 2 | |
iconWrapper key | 2 | 2 | |
ack key | 2 | 2 | |
LocaleStore store | 2 | 2 | |
getObscureReason string | 2 | 2 | |
getSendMessageOptionsForReply key | 2 | 2 | |
"text-input" string | 2 | 2 | |
"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 | 2 | 2 | |
.ImpressionTypes.MODAL,"aria-labelledby": string | 2 | 2 | |
"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 | 2 | 2 | |
"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 | 2 | 2 | |
GuildMemberCountStore store | 2 | 2 | |
defaultRules key | 2 | 2 | |
uploadFileToCloud string | 2 | 2 | |
getVoiceChannelId key | 2 | 2 | |
getUserMaxFileSize string | 2 | 2 | |
padding-size-sm key | 2 | 2 | |
navigationDescription key | 2 | 2 | |
scrollerInner key | 2 | 2 | |
messageListItem key | 2 | 2 | |
threadMessageAccessoryContentLeadingIcon key | 2 | 2 | |
createRoot key | 2 | 2 | |
getTypingUsers string | 2 | 2 | |
getRecipientId string | 2 | 2 | |
unreadMentionsIndicatorBottom key | 2 | 2 | |
tutorialContainer key | 2 | 2 | |
listItemWrapper key | 2 | 2 | |
lowerBadge key | 2 | 2 | |
decorations string | 2 | 2 | |
button string | 2 | 2 | |
hasText string | 2 | 2 | |
expressiveWrapper string | 2 | 2 | |
WebkitLineClamp string | 2 | 2 | |
),style:{marginTop: string | 2 | 2 | |
helperTextId string | 2 | 2 | |
errorMessage string | 2 | 2 | |
hasActiveThreads string | 2 | 2 | |
isGuildVocal string | 2 | 2 | |
GUILD_TEXT key | 2 | 2 | |
containerProps string | 2 | 2 | |
emojiId string | 2 | 2 | |
emojiName string | 2 | 2 | |
animated string | 2 | 2 | |
shouldAnimate string | 2 | 2 | |
WARNING key | 2 | 2 | |
ERROR key | 2 | 2 | |
.controlId string | 2 | 2 | |
INVERTED key | 2 | 2 | |
"fieldset" string | 2 | 2 | |
"legend" string | 2 | 2 | |
must not be a thread starter message string | 2 | 2 | |
CHANNEL_THREAD_VIEW string | 2 | 2 | |
GUILD_DISCOVERY string | 2 | 2 | |
getStageInstanceByChannel string | 2 | 2 | |
colorBrandInverted key | 1 | 5 | |
plateMuted key | 1 | 3 | |
setState key | 1 | 3 | |
autocomplete key | 1 | 3 | |
controlIcon key | 1 | 2 | |
.MODAL_ROOT_LEGACY, string | 1 | 2 | |
tooltipText string | 1 | 2 | |
layoutContainer key | 1 | 2 | |
profileAppConnections key | 1 | 2 | |
colorClass string | 1 | 2 | |
stopPropagation string | 1 | 2 | |
upperContainer key | 1 | 2 | |
targetIsUser string | 1 | 2 | |
readyState string | 1 | 2 | |
zoomable string | 1 | 2 | |
minHeight string | 1 | 2 | |
lottieIcon key | 1 | 2 | |
disableReturnRef string | 1 | 2 | |
children string | 1 | 2 | |
"tooltip" string | 1 | 2 | |
submenuPaddingContainer string | 1 | 2 | |
autocompleteInner key | 1 | 2 | |
onCloseRequest:null!= string | 1 | 1 | |
actionLogger key | 1 | 1 | |
Colors key | 1 | 1 | |
showRemainingCharacterCount string | 1 | 1 | |
colorDefault key | 1 | 1 | |
submenu key | 1 | 1 | |
spacingTop key | 1 | 1 | |
scrollerBase key | 1 | 1 | |
fade key | 1 | 1 | |
animated key | 1 | 1 | |
Easing key | 1 | 1 | |
isFirstMessageInForumPost protoKey | 1 | 1 | |
isSystemDM protoKey | 1 | 1 | |
addReaction protoKey | 1 | 1 | |
onExpand string | 1 | 1 | |
onCollapse string | 1 | 1 | |
canAddRoles string | 1 | 1 | |
Math.ceil string | 1 | 1 | |
.STREAMING string | 1 | 1 | |
.ONLINE string | 1 | 1 | |
.IDLE string | 1 | 1 | |
),style: string | 1 | 1 | |
.divider, string | 1 | 1 | |
reducedMotion: string | 1 | 1 | |
transitionState: string | 1 | 1 | |
small string | 1 | 1 | |
dialog string | 1 | 1 | |
focusProps: string | 1 | 1 | |
,tooltipNote: string | 1 | 1 | |
?.stackNextByDefault string | 1 | 1 | |
.analyticsLocation, string | 1 | 1 | |
,friendToken: string | 1 | 1 | |
_channelMessages key | 1 | 1 | |
embed_ string | 1 | 1 | |
.ForwardContextMessage string | 1 | 1 | |
.footerWarningWrapper string | 1 | 1 | |
["children","className","element"] string | 1 | 1 | |
"useStateFromStores" string | 1 | 1 | |
sliderClassName: string | 1 | 1 | |
onDragEnd:this.handleDragEnd string | 1 | 1 | |
handleValueChange string | 1 | 1 | |
videoButton key | 1 | 1 | |
popoutOpen key | 1 | 1 | |
guildIcon key | 1 | 1 | |
unsubscribe key | 1 | 1 | |
usernameFont key | 1 | 1 | |
.pronouns string | 1 | 1 | |
UserProfilePopoutBody string | 1 | 1 | |
.hidePersonalInformation string | 1 | 1 | |
QuickSwitcher string | 1 | 1 | |
.searchableTitles string | 1 | 1 | |
SessionsStore store | 1 | 1 | |
useSyncExternalStore key | 1 | 1 | |
unsafe_rawColors key | 1 | 1 | |
userInfo key | 1 | 1 | |
getDMFromUserId key | 1 | 1 | |
type:"CREATE_PENDING_REPLY" string | 1 | 1 | |
receiveMessage key | 1 | 1 | |
getSrc protoKey | 1 | 1 | |
getRatio protoKey | 1 | 1 | |
isEmojiDisabled key | 1 | 1 | |
isEmojiFiltered key | 1 | 1 | |
topEmojis string | 1 | 1 | |
getDisambiguatedEmojiContext string | 1 | 1 | |
useEmojiCategories string | 1 | 1 | |
getEmojiURL key | 1 | 1 | |
interactive string | 1 | 1 | |
iconType string | 1 | 1 | |
generateGuildPermissionSpec key | 1 | 1 | |
roleCircle key | 1 | 1 | |
role key | 1 | 1 | |
roleTag key | 1 | 1 | |
eyebrow key | 1 | 1 | |
openPrivateChannel key | 1 | 1 | |
bg key | 1 | 1 | |
trapClicks key | 1 | 1 | |
markup key | 1 | 1 | |
originalLink key | 1 | 1 | |
label key | 1 | 1 | |
startingIndex?? string | 1 | 1 | |
"data-mana-component":"text-area" string | 1 | 1 | |
tooltipId string | 1 | 1 | |
defaultLayerContext string | 1 | 1 | |
.searchParams.delete("width"), string | 1 | 1 | |
disableReturnRef: string | 1 | 1 | |
defaultMarginlegend key | 1 | 1 | |
messagesPopout key | 1 | 1 | |
header key | 1 | 1 | |
disable-adaptive-theme string | 1 | 1 | |
sourceWidth: string | 1 | 1 | |
sourceHeight: string | 1 | 1 | |
toolbarClassName string | 1 | 1 | |
"stack":"replace" string | 1 | 1 | |
.onCloseCallback(), string | 1 | 1 | |
onCloseCallback?.()} string | 1 | 1 | |
dangerous key | 1 | 1 | |
switchContainer key | 1 | 1 | |
setFile key | 1 | 1 | |
canSaveImage string | 1 | 1 | |
if(null!= string | 1 | 1 | |
searchParams string | 1 | 1 | |
.HORIZONTAL_REVERSE, string | 1 | 1 | |
.attachmentItemSmall]: string | 1 | 1 | |
renderLeading: string | 1 | 1 | |
,onChange: string | 1 | 1 | |
.premiumFeatures?.additionalEmojiSlots??0 string | 1 | 1 | |
.GuildFeatures.MORE_STICKERS)&& string | 1 | 1 | |
.GUILD_EMOJIS( string | 1 | 1 | |
EMOJI_UPLOAD_START string | 1 | 1 | |
sanitizeEmojiName key | 1 | 1 | |
MESSAGE_CROSSPOST key | 1 | 1 | |
CREATE_GUILD_EXPRESSIONS key | 1 | 1 | |
horizontalControlColumnWidth:`min( string | 1 | 1 | |
"data-mana-component":"text-input" string | 1 | 1 | |
"top",badgeStrokeColor: string | 1 | 1 | |
.HEADER_BAR) string | 1 | 1 | |
getPlaceholder protoKey | 1 | 1 | |
channelWithIcon string | 1 | 1 | |
GuildFeatures key | 1 | 1 | |
setSearchQuery key | 1 | 1 | |
getGuildFolderById key | 1 | 1 | |
getUser key | 1 | 1 | |
getUserIds key | 1 | 1 | |
getStatus key | 1 | 1 | |
isMute key | 1 | 1 | |
isDeaf key | 1 | 1 | |
isSelfMute key | 1 | 1 | |
isSelfDeaf key | 1 | 1 | |
getGuild key | 1 | 1 | |
getGuilds key | 1 | 1 | |
moreUsers key | 1 | 1 | |
emptyUser key | 1 | 1 | |
clickableAvatar key | 1 | 1 | |
this.context?this.renderNonInteractive(): string | 1 | 1 | |
closeUserProfileModal key | 1 | 1 | |
defaultRenderUser string | 1 | 1 | |
showDefaultAvatarsForNullUsers string | 1 | 1 | |
createFriendInvite key | 1 | 1 | |
heading-lg/semibold key | 1 | 1 | |
fetchChannel key | 1 | 1 | |
unread string | 1 | 1 | |
.ALL_MESSAGES string | 1 | 1 | |
fetchApplication key | 1 | 1 | |
onOpenProfile string | 1 | 1 | |
avatar string | 1 | 1 | |
STREAMING string | 1 | 1 | |
isVROnline string | 1 | 1 | |
isDM string | 1 | 1 | |
name string | 1 | 1 | |
setPopoutRef string | 1 | 1 | |
fetchGuildProfile string | 1 | 1 | |
showSubtext string | 1 | 1 | |
caretConfig string | 1 | 1 | |
connectionsRoleId string | 1 | 1 | |
USER_PROFILE_FETCH_START string | 1 | 1 | |
.metadata)?void string | 1 | 1 | |
.EPISODE? string | 1 | 1 | |
data-username-with-effects string | 1 | 1 | |
popAll key | 1 | 1 | |
getMatchingInboxEntry string | 1 | 1 | |
getMatchingOutboxEntry string | 1 | 1 | |
delay string | 1 | 1 | |
lineClamp string | 1 | 1 | |
warn string | 1 | 1 | |
preview string | 1 | 1 | |
instanceof string | 1 | 1 | |
widget string | 1 | 1 | |
transitionTo - Transitioning to string | 1 | 1 | |
Replacing route with string | 1 | 1 | |
.goBack() string | 1 | 1 | |
.goForward() string | 1 | 1 | |
aria-label string | 1 | 1 | |
roles string | 1 | 1 | |
map(e string | 1 | 1 | |
AccessibilityStore store | 1 | 1 | |
AuthenticationStore store | 1 | 1 | |
ApplicationStreamPreviewStore store | 1 | 1 | |
StreamerModeStore store | 1 | 1 | |
let{userId string | 1 | 1 | |
,{variant string | 1 | 1 | |
"primary", string | 1 | 1 | |
userId string | 1 | 1 | |
tooltipText: string | 1 | 1 | |
,variant string | 1 | 1 | |
{text string | 1 | 1 | |
menuItems string | 1 | 1 | |
popoutTargetRef string | 1 | 1 | |
{userId: string | 1 | 1 | |
EDIT_PROFILE string | 1 | 1 | |
"user-bot-profile-add-app" string | 1 | 1 | |
userBio string | 1 | 1 | |
disableAnimations string | 1 | 1 | |
hidePersonalInformation string | 1 | 1 | |
onUpdate string | 1 | 1 | |
placeholder string | 1 | 1 | |
connectedAccount string | 1 | 1 | |
connectedAccountOpenIcon string | 1 | 1 | |
CONNECTED_ACCOUNT_VIEWED string | 1 | 1 | |
data-scroller string | 1 | 1 | |
fade:!0, string | 1 | 1 | |
.ADMINISTRATOR string | 1 | 1 | |
.MANAGE_MESSAGES string | 1 | 1 | |
MODAL_V2 string | 1 | 1 | |
discriminatorClass string | 1 | 1 | |
nick string | 1 | 1 | |
.test string | 1 | 1 | |
.url)) string | 1 | 1 | |
;return(0,i.jsx)("div",{className: string | 1 | 1 | |
overflowCount key | 1 | 1 | |
circle key | 1 | 1 | |
clamp key | 1 | 1 | |
hideRestrictedProfile string | 1 | 1 | |
outer key | 1 | 1 | |
overlay key | 1 | 1 | |
disabledButtonWrapper key | 1 | 1 | |
sizeSmall key | 1 | 1 | |
focusLock key | 1 | 1 | |
fullscreenOnMobile key | 1 | 1 | |
bannerButton key | 1 | 1 | |
progress key | 1 | 1 | |
lineClamp2Plus key | 1 | 1 | |
badgeContainer key | 1 | 1 | |
badgesContainer key | 1 | 1 | |
background key | 1 | 1 | |
safetyTable key | 1 | 1 | |
onCloseProfile: string | 1 | 1 | |
trackUserProfileAction: string | 1 | 1 | |
PRESS_CLEAR_CUSTOM_STATUS string | 1 | 1 | |
SENT_BY_SOCIAL_LAYER_INTEGRATION string | 1 | 1 | |
rtcConnectionStatus key | 1 | 1 | |
ping key | 1 | 1 | |
connection key | 1 | 1 | |
src string | 1 | 1 | |
size string | 1 | 1 | |
lookFilled key | 1 | 1 | |
caret key | 1 | 1 | |
caret--center key | 1 | 1 | |
navigator.clipboard.write string | 1 | 1 | |
Clipboard API not supported. string | 1 | 1 | |
M19.73 string | 1 | 1 | |
setContainer string | 1 | 1 | |
getApplicationsForGuild key | 1 | 1 | |
"USER_ACTIVITY_STATISTICS_FETCH_SUCCESS" string | 1 | 1 | |
fetchProfile error string | 1 | 1 | |
USER_PROFILE_FETCH_FAILURE string | 1 | 1 | |
grow string | 1 | 1 | |
shrink string | 1 | 1 | |
align string | 1 | 1 | |
basis string | 1 | 1 | |
PersistedStore key | 1 | 1 | |
darken string | 1 | 1 | |
ConnectedAppsStore string | 1 | 1 | |
branchId string | 1 | 1 | |
user string | 1 | 1 | |
onAction string | 1 | 1 | |
themeType string | 1 | 1 | |
Anchor string | 1 | 1 | |
href string | 1 | 1 | |
route string | 1 | 1 | |
iconClassName string | 1 | 1 | |
linkButtonIcon key | 1 | 1 | |
shape string | 1 | 1 | |
.ROUND string | 1 | 1 | |
throttle key | 1 | 1 | |
M10.04 string | 1 | 1 | |
.ALBUM string | 1 | 1 | |
.EPISODE string | 1 | 1 | |
"no artist ids in metadata" string | 1 | 1 | |
UserProfile string | 1 | 1 | |
application string | 1 | 1 | |
void string | 1 | 1 | |
getWindowOpen string | 1 | 1 | |
CHANNEL_CALL_POPOUT string | 1 | 1 | |
.TRACK string | 1 | 1 | |
isProtocolRegistered string | 1 | 1 | |
noWrap key | 1 | 1 | |
a key | 1 | 1 | |
customTheme key | 1 | 1 | |
"rtl" string | 1 | 1 | |
getComputedStyle string | 1 | 1 | |
document.body.appendChild( string | 1 | 1 | |
offsetWidth string | 1 | 1 | |
arguments[2]:"scroll" string | 1 | 1 | |
popoutWrapper key | 1 | 1 | |
size24 key | 1 | 1 | |
="wanderingCubes string | 1 | 1 | |
transitionAppear string | 1 | 1 | |
.canBasicChannel string | 1 | 1 | |
previewUrl: string | 1 | 1 | |
getVoiceChannelId string | 1 | 1 | |
22.95c-1.7-.16-3.4-.77-4.88-1.73-1.24-.8-1.52-1.13-1.52-1.8 string | 1 | 1 | |
null string | 1 | 1 | |
ACTIVITY_FEED_GUILD_VISITED string | 1 | 1 | |
webBuildOverride string | 1 | 1 | |
isLoading string | 1 | 1 | |
Array.isArray string | 1 | 1 | |
GLOBAL_FEED string | 1 | 1 | |
application_id string | 1 | 1 | |
useMemo string | 1 | 1 | |
ConnectedAppsStore store | 1 | 1 | |
ContentInventoryStore store | 1 | 1 | |
DispatchApplicationStore store | 1 | 1 | |
GameStore store | 1 | 1 | |
LaunchableGameStore store | 1 | 1 | |
LibraryApplicationStatisticsStore store | 1 | 1 | |
LibraryApplicationStore store | 1 | 1 | |
NowPlayingViewStore store | 1 | 1 | |
POPOUT string | 1 | 1 | |
"contextless" string | 1 | 1 | |
entry string | 1 | 1 | |
sourceUserId string | 1 | 1 | |
.PLAYING} string | 1 | 1 | |
svg key | 1 | 1 | |
mask key | 1 | 1 | |
customButtons key | 1 | 1 | |
absolute key | 1 | 1 | |
popoutContentWrapper key | 1 | 1 | |
GUILD_MEMBER_VERIFICATION string | 1 | 1 | |
"data-toggleable-component":"switch" string | 1 | 1 | |
layout:"horizontal" string | 1 | 1 | |
oneByOneGrid key | 1 | 1 | |
.toString.toString().includes("[native code]") string | 1 | 1 | |
itemsForLayout string | 1 | 1 | |
isSingleMosaicItem string | 1 | 1 | |
imageZoom key | 1 | 1 | |
imageWrapper key | 1 | 1 | |
loadingOverlay key | 1 | 1 | |
mediaArea key | 1 | 1 | |
wrapperControlsHidden key | 1 | 1 | |
hoverButtonGroup key | 1 | 1 | |
visualMediaItemContainer key | 1 | 1 | |
dimensionlessImage key | 1 | 1 | |
.duration_secs string | 1 | 1 | |
.waveform string | 1 | 1 | |
.url string | 1 | 1 | |
closeModal key | 1 | 1 | |
closeAllModals key | 1 | 1 | |
SpotifyStore store | 1 | 1 | |
PLAYER_PAUSE string | 1 | 1 | |
enabled key | 1 | 1 | |
lookBlank key | 1 | 1 | |
colorBrand key | 1 | 1 | |
NO_WRAP string | 1 | 1 | |
flexShrink: string | 1 | 1 | |
evenodd string | 1 | 1 | |
M12 22a10 10 0 1 string | 1 | 1 | |
speechSynthesis.speak string | 1 | 1 | |
speechSynthesis.cancel string | 1 | 1 | |
setTTSType string | 1 | 1 | |
StreamRTCConnectionStore store | 1 | 1 | |
STREAM_START string | 1 | 1 | |
GUILD string | 1 | 1 | |
CALL string | 1 | 1 | |
OVERLAY string | 1 | 1 | |
"STREAM_STOP" string | 1 | 1 | |
labelWrapper key | 1 | 1 | |
rtcConnectionStatusConnected key | 1 | 1 | |
voiceButtonsContainer key | 1 | 1 | |
default key | 1 | 1 | |
searchWithoutFetchingLatest key | 1 | 1 | |
parsePreprocessor key | 1 | 1 | |
unparse key | 1 | 1 | |
.BOT string | 1 | 1 | |
.ORIGINAL_POSTER string | 1 | 1 | |
]:!0,interactive: string | 1 | 1 | |
SUPPRESS_NOTIFICATIONS string | 1 | 1 | |
SELF_MENTIONABLE_SYSTEM string | 1 | 1 | |
hasThread key | 1 | 1 | |
messageSpine key | 1 | 1 | |
repliedMessageClickableSpine key | 1 | 1 | |
percent string | 1 | 1 | |
foregroundGradientColor string | 1 | 1 | |
message_reference string | 1 | 1 | |
isProbablyAValidSnowflake string | 1 | 1 | |
appAsidePanelWrapper key | 1 | 1 | |
.BOOKMARKS?( string | 1 | 1 | |
.MENTIONS?( string | 1 | 1 | |
type:"CHANNEL_ACK",channelId string | 1 | 1 | |
type:"BULK_ACK",channels: string | 1 | 1 | |
SpeakingStore store | 1 | 1 | |
"SENDING"=== string | 1 | 1 | |
renderUserGuildPopout: channel should never be string | 1 | 1 | |
preloadUserProfileForPopout string | 1 | 1 | |
Invalid arguments string | 1 | 1 | |
getGuildMemberAvatarURLSimple string | 1 | 1 | |
userAvatar key | 1 | 1 | |
audienceContainer key | 1 | 1 | |
audienceIcon key | 1 | 1 | |
overlap key | 1 | 1 | |
avatarSmall key | 1 | 1 | |
e.value string | 1 | 1 | |
e.disabled string | 1 | 1 | |
e.hideBorder string | 1 | 1 | |
e.tooltipNote string | 1 | 1 | |
e.onChange string | 1 | 1 | |
e.className string | 1 | 1 | |
e.style string | 1 | 1 | |
isFocused key | 1 | 1 | |
isElementFullScreen key | 1 | 1 | |
.join("+") string | 1 | 1 | |
labelRow string | 1 | 1 | |
titleId string | 1 | 1 | |
errorId string | 1 | 1 | |
setIsFocused string | 1 | 1 | |
sidebarList key | 1 | 1 | |
sidebarListRounded key | 1 | 1 | |
selectChannel key | 1 | 1 | |
PUBLIC_THREAD key | 1 | 1 | |
GUILD_FORUM key | 1 | 1 | |
THREAD_CREATED key | 1 | 1 | |
SUPPRESS_NOTIFICATIONS key | 1 | 1 | |
EPHEMERAL key | 1 | 1 | |
ALL_MESSAGES key | 1 | 1 | |
ONLY_MENTIONS key | 1 | 1 | |
parent_id string | 1 | 1 | |
isGuildOrCategoryOrChannelMuted string | 1 | 1 | |
embedFull key | 1 | 1 | |
embedVideoActions key | 1 | 1 | |
iconWrapperActive key | 1 | 1 | |
Thread must have a parent ID string | 1 | 1 | |
FORM key | 1 | 1 | |
SIDEBAR key | 1 | 1 | |
open key | 1 | 1 | |
close key | 1 | 1 | |
setAlwaysOnTop key | 1 | 1 | |
PopoutWindowStore store | 1 | 1 | |
stopTyping key | 1 | 1 | |
getSuperProperties key | 1 | 1 | |
getSuperPropertiesBase64 key | 1 | 1 | |
getDebugOptionsHeaderValue key | 1 | 1 | |
increment key | 1 | 1 | |
distribution key | 1 | 1 | |
Request key | 1 | 1 | |
post key | 1 | 1 | |
get key | 1 | 1 | |
del key | 1 | 1 | |
ReadStateStore store | 1 | 1 | |
M7 1a1 1 0 0 1 1 1v.75c0 string | 1 | 1 | |
SingleSelect string | 1 | 1 | |
selectionMode string | 1 | 1 | |
embedMedia key | 1 | 1 | |
embedVideo key | 1 | 1 | |
embedSuppressButton key | 1 | 1 | |
SearchMessageStore store | 1 | 1 | |
safeDispatch key | 1 | 1 | |
dispatchToLastSubscribed key | 1 | 1 | |
FORUM_CHANNEL_GUIDELINES key | 1 | 1 | |
CREATE_FORUM_POST key | 1 | 1 | |
computePermissions key | 1 | 1 | |
ADD_REACTIONS key | 1 | 1 | |
addFiles key | 1 | 1 | |
fileName string | 1 | 1 | |
fileSize string | 1 | 1 | |
renderAdjacentContent string | 1 | 1 | |
onContextMenu string | 1 | 1 | |
mediaLayoutType string | 1 | 1 | |
getEchoCancellation key | 1 | 1 | |
fromTimestamp key | 1 | 1 | |
fullscreenOnMobile string | 1 | 1 | |
scale(1) string | 1 | 1 | |
Wrap.NO_WRAP,className: string | 1 | 1 | |
let{headerId: string | 1 | 1 | |
grow:0 string | 1 | 1 | |
useDefaultUnderlineStyles string | 1 | 1 | |
getDefaultLinkInterceptor string | 1 | 1 | |
horizontalControlColumnWidth:`min($ string | 1 | 1 | |
dI3q4h string | 1 | 1 | |
disableColor string | 1 | 1 | |
autocompleteQuerySymbol key | 1 | 1 | |
.isGroupDM() string | 1 | 1 | |
refresh_sm string | 1 | 1 | |
interactiveClassName string | 1 | 1 | |
renderUsers protoKey | 1 | 1 | |
renderMoreUsers protoKey | 1 | 1 | |
.guildbar.AVATAR_SIZE string | 1 | 1 | |
backgroundStyle string | 1 | 1 | |
dI3q4u string | 1 | 1 | |
"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 | 1 | 1 | |
headingColor: string | 1 | 1 | |
heading: string | 1 | 1 | |
extractTimestamp key | 1 | 1 | |
.getImageData(0,0, string | 1 | 1 | |
.shouldHideMediaOptions string | 1 | 1 | |
hasMediaOptions: string | 1 | 1 | |
numMediaItems: string | 1 | 1 | |
ChannelMemberStore store | 1 | 1 | |
EmojiStore store | 1 | 1 | |
}=window.GLOBAL_ENV;return string | 1 | 1 | |
StickersStore store | 1 | 1 | |
SoundboardStore store | 1 | 1 | |
MANAGE_GUILD_EXPRESSIONS key | 1 | 1 | |
"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 | 1 | 1 | |
requestMembersById key | 1 | 1 | |
"data-mana-component":"select" string | 1 | 1 | |
PendingReplyStore store | 1 | 1 | |
viewingChannelId string | 1 | 1 | |
parsedUserId string | 1 | 1 | |
quotedChatMessage key | 1 | 1 | |
stopPropagation(), string | 1 | 1 | |
onClick: string | 1 | 1 | |
dangerous string | 1 | 1 | |
uaUU/g string | 1 | 1 | |
BAN_MEMBERS key | 1 | 1 | |
showMentionToggle string | 1 | 1 | |
FOCUS_CHANNEL_TEXT_AREA string | 1 | 1 | |
clickable key | 1 | 1 | |
browser key | 1 | 1 | |
toolbar key | 1 | 1 | |
iconBadge key | 1 | 1 | |
getChannelId key | 1 | 1 | |
getGuildId key | 1 | 1 | |
getFrequentlyUsedReactionEmojisWithoutFetchingLatest string | 1 | 1 | |
loadIfNecessary string | 1 | 1 | |
EMOJI_NAME_RE key | 1 | 1 | |
RawGuildEmojiStore store | 1 | 1 | |
renderGIF() string | 1 | 1 | |
imagePool string | 1 | 1 | |
uploadArea key | 1 | 1 | |
textAreaSlate key | 1 | 1 | |
iterations! string | 1 | 1 | |
insertFragment string | 1 | 1 | |
highlight key | 1 | 1 | |
hasLanguage key | 1 | 1 | |
winButton key | 1 | 1 | |
PlatformTypes.WINDOWS string | 1 | 1 | |
paste key | 1 | 1 | |
getSetting key | 1 | 1 | |
FriendsStore store | 1 | 1 | |
Pages key | 1 | 1 | |
Sections key | 1 | 1 | |
Objects key | 1 | 1 | |
ObjectTypes key | 1 | 1 | |
defaultProps key | 1 | 1 | |
marginBottom40 key | 1 | 1 | |
marginTop4 key | 1 | 1 | |
search-google string | 1 | 1 | |
onHide string | 1 | 1 | |
getAvatarURL string | 1 | 1 | |
Refetch string | 1 | 1 | |
typingUsers: string | 1 | 1 | |
"svg" string | 1 | 1 | |
(dynamic) string | 1 | 1 | |
isMultiUserDM string | 1 | 1 | |
peopleListItemRef string | 1 | 1 | |
VIEW_CREATOR_MONETIZATION_ANALYTICS key | 1 | 1 | |
getDiscoverableVoiceState string | 1 | 1 | |
getDiscoverableVoiceStateForUser string | 1 | 1 | |
isPrivate string | 1 | 1 | |
transitionTo - string | 1 | 1 | |
panels key | 1 | 1 | |
accountPopoutButtonWrapper key | 1 | 1 | |
botTagCozy key | 1 | 1 | |
botTagVerified key | 1 | 1 | |
getVoiceStatesForChannel key | 1 | 1 | |
withMentionPrefix string | 1 | 1 | |
ConfirmModal key | 1 | 1 | |
mobileApp key | 1 | 1 | |
combokeys key | 1 | 1 | |
disable key | 1 | 1 | |
rules key | 1 | 1 | |
getDefaultLocale key | 1 | 1 | |
toggleSelfDeaf key | 1 | 1 | |
toggleSelfMute key | 1 | 1 | |
getSoundpack string | 1 | 1 | |
play string | 1 | 1 | |
KEYBOARD_MODIFIER_KEY string | 1 | 1 | |
UNK string | 1 | 1 | |
hasPermission key | 1 | 1 | |
APP string | 1 | 1 | |
data-app-not-dev-tools string | 1 | 1 | |
AppTitleBar string | 1 | 1 | |
tooltip string | 1 | 1 | |
HEADER_BAR_BADGE_BOTTOM string | 1 | 1 | |
hasLayers string | 1 | 1 | |
isAuthenticated string | 1 | 1 | |
checkbox string | 1 | 1 | |
animated.rect string | 1 | 1 | |
getSocket key | 1 | 1 | |
role:"img" string | 1 | 1 | |
icon` string | 1 | 1 | |
REPLY key | 1 | 1 | |
USER_JOIN key | 1 | 1 | |
t key | 1 | 1 | |
isRepliedMessage string | 1 | 1 | |
userOverride string | 1 | 1 | |
trailingIconClass string | 1 | 1 | |
CHANNEL_PINNED_MESSAGE string | 1 | 1 | |
tabIndex string | 1 | 1 | |
orientation string | 1 | 1 | |
SortedVoiceStateStore store | 1 | 1 | |
permissionOverwrites string | 1 | 1 | |
VIEW_CHANNEL string | 1 | 1 | |
CONNECT string | 1 | 1 | |
ActiveThreadsStore store | 1 | 1 | |
DevToolsDesignTogglesStore store | 1 | 1 | |
pickerIntention string | 1 | 1 | |
GUILD_STICKER_RELATED_EMOJI key | 1 | 1 | |
SOUNDBOARD key | 1 | 1 | |
referencedMessage string | 1 | 1 | |
USER_JOIN string | 1 | 1 | |
createMessage: author cannot be undefined string | 1 | 1 | |
unread key | 1 | 1 | |
link key | 1 | 1 | |
repliedTextPreview key | 1 | 1 | |
repliedTextContent key | 1 | 1 | |
layers key | 1 | 1 | |
dm key | 1 | 1 | |
bannerImage key | 1 | 1 | |
bannerImg key | 1 | 1 | |
nameTag key | 1 | 1 | |
diversitySelectorOptions key | 1 | 1 | |
variant string | 1 | 1 | |
data-excessive-heading-level string | 1 | 1 | |
renderBreadcrumb string | 1 | 1 | |
"eyebrow" string | 1 | 1 | |
query string | 1 | 1 | |
"aria-label": string | 1 | 1 | |
clearable:null string | 1 | 1 | |
WANDERING_CUBES key | 1 | 1 | |
CHANNEL_THREAD_VIEW key | 1 | 1 | |
GUILD_DISCOVERY key | 1 | 1 | |
ROLE_SUBSCRIPTIONS key | 1 | 1 | |
CHANNEL_BROWSER key | 1 | 1 | |
ENTER key | 1 | 1 | |
LEAVE key | 1 | 1 | |
textButton string | 1 | 1 | |
textVariant string | 1 | 1 | |
fullWidth string | 1 | 1 | |
wrap string | 1 | 1 | |
"horizontal" string | 1 | 1 | |
APP_NOT_OPENED key | 1 | 1 | |
RESOLVING key | 1 | 1 | |
"input" string | 1 | 1 | |
prefixElement string | 1 | 1 | |
panels string | 1 | 1 | |
ACCOUNT_PANEL string | 1 | 1 | |
GUILD_ROLE_SUBSCRIPTIONS key | 1 | 1 | |
CHANNELS_AND_ROLES key | 1 | 1 | |
CHANNEL_TEXT_AREA string | 1 | 1 | |
markdown string | 1 | 1 | |
EXPRESSION_PICKER string | 1 | 1 | |
positionContainer string | 1 | 1 | |
appLauncher string | 1 | 1 | |
sticker string | 1 | 1 | |
gif string | 1 | 1 | |
badgeStrokeColor key | 1 | 1 | |
animate key | 1 | 1 | |
timestampFormat string | 1 | 1 | |
"LLLL" string | 1 | 1 | |
theme- string | 1 | 1 | |
images- string | 1 | 1 | |
ENTERING key | 1 | 1 | |
EXITING key | 1 | 1 | |
messageDisplayCompact string | 1 | 1 | |
providedChannel string | 1 | 1 | |
"span" string | 1 | 1 | |
isUnread string | 1 | 1 | |
|\\d+ string | 1 | 1 | |
shouldConfirm string | 1 | 1 | |
setTimeout string | 1 | 1 | |
Anchor key | 1 | 1 | |
setEnableHardwareAcceleration key | 1 | 1 | |
releaseChannel key | 1 | 1 | |
Invite Button Embed string | 1 | 1 | |
getInvite string | 1 | 1 | |
resolveInvite key | 1 | 1 | |
createInvite key | 1 | 1 | |
ImpressionNames key | 1 | 1 | |
colors key | 1 | 1 | |
modules key | 1 | 1 | |
humanize key | 1 | 1 | |
filesize key | 1 | 1 | |
focusLastVisibleItem string | 1 | 1 | |
"focus" string | 1 | 1 | |
SortedGuildStore store | 1 | 1 | |
PrivateChannelSortStore store | 1 | 1 | |
LayerStore store | 1 | 1 | |
InviteStore store | 1 | 1 | |
stackingBehavior string | 1 | 1 | |
onCloseCallback() string | 1 | 1 | |
filter string | 1 | 1 | |
popout: string | 1 | 1 | |
.at(-1) string | 1 | 1 | |
currentToastMap.has string | 1 | 1 | |
type key | 1 | 1 | |
type string | 1 | 1 | |
position string | 1 | 1 | |
props.computedMatch string | 1 | 1 | |
props.path string | 1 | 1 | |
props.location string | 1 | 1 | |
cloneElement string | 1 | 1 | |
strict string | 1 | 1 | |
isExact string | 1 | 1 | |
).location string | 1 | 1 | |
.match string | 1 | 1 | |
.params string | 1 | 1 | |
AppLayer displayName | 1 | 1 | |
ChannelSectionStore store | 1 | 1 | |
"single" string | 1 | 1 | |
clear:()=> string | 1 | 1 | |
"LAYER_PUSH" string | 1 | 1 | |
"LAYER_POP" string | 1 | 1 | |
"LAYER_POP_ALL" string | 1 | 1 | |
MODAL_ROOT_LEGACY string | 1 | 1 | |
MEDIUM key | 1 | 1 | |
LARGE key | 1 | 1 | |
headerIdIsManaged string | 1 | 1 | |
HORIZONTAL string | 1 | 1 | |
separator string | 1 | 1 | |
HORIZONTAL_REVERSE string | 1 | 1 | |
scrollbarType string | 1 | 1 | |
"listitem" string | 1 | 1 | |
"list" string | 1 | 1 | |
.Provider string | 1 | 1 | |
containerRef string | 1 | 1 | |
sortedThreadIds string | 1 | 1 | |
"group" string | 1 | 1 | |
MATCHES key | 1 | 1 | |
STARTS_WITH key | 1 | 1 | |
copyValue string | 1 | 1 | |
TEXT_COPIED string | 1 | 1 | |
setSelectedSearchContext key | 1 | 1 | |
VIEW_THREAD key | 1 | 1 | |
VIEW_MOD_REPORT key | 1 | 1 | |
isRichTooltip string | 1 | 1 | |
scrim string | 1 | 1 | |
isVisible string | 1 | 1 | |
.delete string | 1 | 1 | |
getContextMenu string | 1 | 1 | |
isOpen string | 1 | 1 | |
subMenuClassName string | 1 | 1 | |
menuSubmenuProps string | 1 | 1 | |
listClassName string | 1 | 1 | |
TRANSLATE key | 1 | 1 | |
SCALE key | 1 | 1 | |
modalKey string | 1 | 1 | |
"instant" string | 1 | 1 | |
getLayers string | 1 | 1 | |
hasFullScreenLayer string | 1 | 1 | |
getGuild string | 1 | 1 | |
postSidebarWidth string | 1 | 1 | |
dontCloseOnActionIfHoldingShiftKey string | 1 | 1 | |
data-menu-item string | 1 | 1 | |
profileEffect string | 1 | 1 | |
animationType string | 1 | 1 | |
useReducedMotion string | 1 | 1 | |
isIntersecting string | 1 | 1 | |
arguments.length string | 1 | 1 | |
useRootElementContext string | 1 | 1 | |
transitionState string | 1 | 1 | |
padding-size- string | 1 | 1 | |
onExitComplete string | 1 | 1 | |
popoverGradientWrapper string | 1 | 1 | |
spacing string | 1 | 1 | |
standardSidebarView string | 1 | 1 | |
onSaveText string | 1 | 1 | |
EMPHASIZE_NOTICE string | 1 | 1 | |
MEMBER_SAFETY_PAGE string | 1 | 1 | |
closeGuildSidebar string | 1 | 1 | |
"showNavigationMobile" string | 1 | 1 | |
MODAL string | 1 | 1 | |
headingId string | 1 | 1 | |
theme string | 1 | 1 | |
"dialog" string | 1 | 1 | |
CallChatSidebar string | 1 | 1 | |
chatInputType string | 1 | 1 | |
CHANNEL_CALL string | 1 | 1 | |
chatLayerWrapper key | 1 | 1 | |
chatTarget key | 1 | 1 | |
contentRegion key | 1 | 1 | |
section key | 1 | 1 | |
nav key | 1 | 1 | |
rootWithShadow key | 1 | 1 | |
appMount key | 1 | 1 | |
chatContent key | 1 | 1 | |
containerDefault key | 1 | 1 | |
channelInfo key | 1 | 1 | |
groupStart key | 1 | 1 | |
toast key | 1 | 1 | |
disableScrollAnchor key | 1 | 1 | |
select key | 1 | 1 | |
measurement key | 1 | 1 | |
actionBar key | 1 | 1 | |
headerTrailing key | 1 | 1 | |
inactive key | 1 | 1 | |
cozyMessage key | 1 | 1 | |
divider key | 1 | 1 | |
unreadPill key | 1 | 1 | |
messagesPopoutWrap key | 1 | 1 | |
interactive key | 1 | 1 | |
typing key | 1 | 1 | |
ellipsis key | 1 | 1 | |
guilds key | 1 | 1 | |
messagesWrapper key | 1 | 1 | |
scrollerContent key | 1 | 1 | |
useImperativeHandle string | 1 | 1 | |
getScrollerState string | 1 | 1 | |
isScrolling string | 1 | 1 | |
thread string | 1 | 1 | |
getVoiceStatesForChannel string | 1 | 1 | |
fontSize key | 1 | 1 | |
fontScale key | 1 | 1 | |
must be a thread starter message string | 1 | 1 | |
canManageRoles string | 1 | 1 | |
IS_JOIN_REQUEST_INTERVIEW_CHANNEL string | 1 | 1 | |
typingUsers string | 1 | 1 | |
isThreadCreation string | 1 | 1 | |
channelStream string | 1 | 1 | |
oldestUnreadMessageId string | 1 | 1 | |
MESSAGE key | 1 | 1 | |
DIVIDER key | 1 | 1 | |
"separator" string | 1 | 1 | |
isBeforeGroup string | 1 | 1 | |
obscurityControlClassName string | 1 | 1 | |
renderAuthor protoKey | 1 | 1 | |
renderMedia protoKey | 1 | 1 | |
focusProps string | 1 | 1 | |
"li" string | 1 | 1 | |
statusOffline key | 1 | 1 | |
guildDetail key | 1 | 1 | |
closePrivateChannel key | 1 | 1 | |
__unsupportedReactNodeAsText string | 1 | 1 | |
isViewingRoles string | 1 | 1 | |
hasChannel key | 1 | 1 | |
changeDraft key | 1 | 1 | |
getDraft key | 1 | 1 | |
getRecentlyEditedDrafts key | 1 | 1 | |
getChannelPermissions key | 1 | 1 | |
PREMIUM_LOCKED key | 1 | 1 | |
canUseCustomStickersEverywhere string | 1 | 1 | |
STANDARD key | 1 | 1 | |
GUILD key | 1 | 1 | |
getStickerById key | 1 | 1 | |
getStickersByGuildId key | 1 | 1 | |
editor key | 1 | 1 | |
placeholder key | 1 | 1 | |
autocompleteRowVertical key | 1 | 1 | |
autocompleteAttached key | 1 | 1 | |
sendBotMessage key | 1 | 1 |
| Method | Plugins | Calls | |
|---|---|---|---|
(dynamic) | 34 | 55 | |
render | 27 | 39 | |
type | 25 | 28 | |
A | 14 | 16 | |
Ay | 6 | 7 | |
sendMessage | 6 | 6 | |
children | 4 | 6 | |
Z | 3 | 5 | |
componentDidMount | 3 | 3 | |
showNotification | 2 | 3 | |
componentWillUnmount | 2 | 2 | |
renderElement | 2 | 2 | |
Avatar | 1 | 2 | |
buildLayout | 1 | 2 | |
renderSection | 1 | 2 | |
RolesListWithOverflow | 1 | 1 | |
isMobileOnline | 1 | 1 | |
handle | 1 | 1 | |
useCallback | 1 | 1 | |
getWidth | 1 | 1 | |
renderControls | 1 | 1 | |
startTyping | 1 | 1 | |
isEmojiFiltered | 1 | 1 | |
setBadge | 1 | 1 | |
setSystemTrayIcon | 1 | 1 |
track | 1 | 1 | |
ensureModule | 1 | 1 | |
setObservedGamesCallback | 1 | 1 | |
getActiveSocketAndDevice | 1 | 1 | |
getActivities | 1 | 1 | |
getEmojiURL | 1 | 1 | |
Nameplate | 1 | 1 | |
useGradientStyle | 1 | 1 | |
getUserAvatarURL | 1 | 1 | |
f5 | 1 | 1 | |
editMessage | 1 | 1 | |
renderNameZone | 1 | 1 | |
messageHeader | 1 | 1 | |
E | 1 | 1 | |
Button | 1 | 1 | |
ContentInventoryCardHeader | 1 | 1 | |
GameProfileV2Trailing | 1 | 1 | |
renderAttachments | 1 | 1 | |
wasAutoPaused | 1 | 1 | |
handleVoiceConnect | 1 | 1 | |
handleBlockedOrIgnoredUserVoiceChannelJoin | 1 | 1 | |
getSpeakingWhileMuted | 1 | 1 | |
updateAsync | 1 | 1 | |
searchWithoutFetchingLatest | 1 | 1 | |
parse | 1 | 1 | |
getEmojiUnavailableReason | 1 | 1 | |
react | 1 | 1 | |
default | 1 | 1 | |
cq | 1 | 1 | |
renderEmbeds | 1 | 1 | |
renderContent | 1 | 1 | |
_sendMessage | 1 | 1 | |
action | 1 | 1 | |
getDiscoverableVoiceState | 1 | 1 | |
isFocused | 1 | 1 | |
get | 1 | 1 | |
getRowHeight | 1 | 1 | |
onMouseDown | 1 | 1 | |
onAuxClick | 1 | 1 | |
onMouseUp | 1 | 1 | |
onMouseEnter | 1 | 1 | |
onMouseLeave | 1 | 1 |
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.
| Theme | Hardcoded classes | per KB | |
|---|---|---|---|
| vozy 🎀 / surCord | 62,812 | 11.6 | |
| Theo EwzZer / roundmoledV2 | 62,327 | 11.6 | |
| DevilBro / EmojiReplace | 61,393 | 11.7 | |
| wq_qt / chillax | 59,028 | 11.1 | |
| zuzumi / Discord11 | 57,340 | 10.8 | |
| 11pixels / dtm-16 | 16,340 | 5.3 | |
| CapnKitten / Material-Discord | 11,313 | 12.9 | |
| JustCursedRedLuigi / SkeuoCord | 10,014 | 12.1 | |
| 11pixels / dtm-08 | 7,699 | 4.7 | |
| KillYoy / DiscordNight | 7,669 | 22.2 | |
| Saltssaumure / Tritone | 5,369 | 22.8 | |
| DevilBro / BasicBackground | 4,685 | 10.4 | |
| Saltssaumure / NineX | 4,349 | 13.9 | |
| Eight_P / T1 | 3,691 | 24.3 | |
| lolpowerluke / alanWalker | 3,530 | 10.2 |
| Nebulys / WizardUI | 3,469 | 11.6 | |
| Elisniper / Glass Wave | 3,229 | 8.9 | |
| DevilBro / DiscordRecolor | 2,608 | 10.0 | |
| SyndiShanX / discorddark | 2,440 | 15.2 | |
| Gibbu / Fluent | 2,368 | 5.1 | |
| milbit / OldCord | 2,262 | 5.0 | |
| LeafyLuigi / pyrite | 2,137 | 11.3 | |
| Izy / Discord Reborn | 2,022 | 4.7 | |
| ShadowDevilsAvenged / NewAkameGaKill | 1,972 | 18.1 | |
| ShadowDevilsAvenged / Old-AkameGaKill-Theme | 1,950 | 17.6 | |
| CapnKitten / Spotify-Discord | 1,933 | 13.4 | |
| cruxie / nocturnal | 1,921 | 11.0 | |
| CapnKitten / Translucence | 1,898 | 12.2 | |
| ShadowDevilsAvenged / Youtube_Nation | 1,830 | 17.7 | |
| ShadowDevilsAvenged / NewKemonoFriends | 1,801 | 17.7 | |
| ShadowDevilsAvenged / NewBNHA | 1,799 | 17.8 | |
| ShadowDevilsAvenged / NewRemTheme | 1,764 | 17.5 | |
| Izy / Quiet | 1,747 | 4.7 | |
| ShadowDevilsAvenged / Old-BNHA-Theme | 1,728 | 17.2 | |
| cruxie / neutron | 1,596 | 10.4 | |
| DevEvil / RosyNight | 1,535 | 13.1 | |
| epic1online / Nox | 1,526 | 11.8 | |
| Zacam / PurpleOnyx | 1,289 | 11.7 | |
| NyxIsBad / ClearVision-v7-BetterDiscord | 1,287 | 14.3 | |
| DevEvil / Azurite | 1,276 | 6.5 | |
| HawkRatio / OperaGX | 1,236 | 3.0 | |
| FeoreV / FVUI | 1,163 | 7.0 | |
| Saltssaumure / Exponent | 1,106 | 15.3 | |
| GH0STP4WZ / virtual-boy | 1,086 | 15.4 | |
| Saltssaumure / Synthesis | 1,019 | 16.4 | |
| DevEvil / Dark+ | 1,014 | 4.7 | |
| Saltssaumure / Pesterchum | 994 | 28.3 | |
| accrazed / NieR-Light-Source | 977 | 10.8 | |
| snajper.exe / tokyo_midnight | 949 | 6.8 | |
| Tropical / DarkMatter | 923 | 7.4 | |
| DevilBro / BlurpleRecolor | 923 | 8.7 | |
| Gibbu / FrostedGlass | 862 | 9.1 | |
| cavw / AlternativeVistaAutoUpdate | 845 | 7.1 | |
| malasangre / roundmoled | 843 | 7.1 | |
| Saltssaumure / Neobrutal | 811 | 17.5 | |
| markchan0225 / RoundedDiscord | 778 | 35.5 | |
| VaporousCreeper / GGO_Kirito | 763 | 14.7 | |
| refact0r / system24 | 754 | 6.6 | |
| LuckFire / amoled-cord | 668 | 11.3 | |
| dav#8444 / dtm-18 | 651 | 0.9 | |
| refact0r / midnight | 622 | 6.7 | |
| Gibbu / MinimalCord | 620 | 12.6 | |
| ungiglio / discordia | 601 | 9.3 | |
| bielak / cyberpunk2077 | 600 | 13.2 | |
| Saltssaumure / piOS | 561 | 12.5 | |
| Mixter213 / MixPack | 548 | 19.3 | |
| zuzumi / Moon-Rabbits-Dream-About-Virtual | 515 | 10.1 | |
| DevEvil / Neptune | 513 | 5.5 | |
| Insta / DiscordPlus | 436 | 5.7 | |
| orblazer / nordic | 412 | 8.5 | |
| the.rabbit.disabler / aider | 384 | 4.0 | |
| Gibbu / SoftX | 371 | 7.9 | |
| Sappy / SpotiCord | 361 | 5.2 | |
| DevEvil / Ocean | 353 | 3.6 | |
| Elisniper / Material Blue Discord | 335 | 1.1 | |
| tnt4me / SleekCord | 317 | 11.2 | |
| The Commie Axolotl / MaterialDesign | 307 | 4.9 | |
| DevilBro / ServerColumns | 255 | 15.0 | |
| the.rabbit.disabler / shine | 230 | 6.5 | |
| cursedelectric / CursedCord | 224 | 0.6 | |
| the.rabbit.disabler / ddex4 | 199 | 4.8 | |
| The Commie Axolotl / Ultra | 196 | 8.1 | |
| .domitori / discord16 | 177 | 10.7 | |
| puckzxz / NotAnotherAnimeTheme | 177 | 14.5 | |
| Rock#5429 / Eris | 166 | 8.6 | |
| DevilBro / SettingsModal | 153 | 12.6 | |
| Bates / DarkNeon | 134 | 6.0 | |
| Bates / Fallout4Terminal | 120 | 5.2 | |
| coolkie / discord-mica | 105 | 10.5 | |
| programmer2514 / UIRefreshRefresh | 104 | 10.9 | |
| Gibbu / RadialStatus | 85 | 8.2 | |
| The Commie Axolotl / OSX | 84 | 4.7 | |
| Pix / spectra | 48 | 0.5 | |
| Ashtrath / tokyo-night | 48 | 2.8 | |
| Alex / amethyst | 48 | 0.1 | |
| Alex / kaleidoscope | 48 | 0.6 | |
| Gibbu / HorizontalServerList | 40 | 12.8 | |
| Kaynooo / glass_local | 5 | 0.8 |
| Plugin | Hardcoded classes | per KB | |
|---|---|---|---|
| KingGamingYT / ActivityFeed | 628 | 1.5 | |
| Knew / EmbedMoreImages | 28 | 1.4 | |
| programmer2514 / CollapsibleUI | 3 | 0.0 | |
| Zerebos / BetterFormattingRedux | 1 | 0.0 |
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).
Live Discord custom properties read via var(), by addon. These survive class-name rehashing.
| Variable | Addons | |
|---|---|---|
--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 |
--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 |
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.
| Variable | Addons | |
|---|---|---|
--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 |
--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.
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.
| Variable | Addons | |
|---|---|---|
--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 |
--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 |
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).
| Host | Plugins | Refs | |
|---|---|---|---|
| mwittrien.github.io | 47 | 47 | |
| github.com | 2 | 2 | |
| raw.githubusercontent.com | 1 | 1 | |
| doggybootsy.github.io | 1 | 1 | |
| 127.0.0.1 | 1 | 1 | |
| discord.com | 1 | 1 | |
| nintendoeverything.com | 1 | 1 | |
| news.xbox.com | 1 | 1 | |
| unknownworlds-strapi.live.kraftonamericas.com | 1 | 1 | |
| net-secondary.web.minecraft-services.net | 1 | 1 | |
| fortnite-api.com | 1 | 1 | |
| store.steampowered.com | 1 | 1 | |
| shared.fastly.steamstatic.com | 1 | 1 | |
| api.streamelements.com | 1 | 1 | |
| tiktok-tts.weilnet.workers.dev | 1 | 1 | |
| gql.twitch.tv | 1 | 1 | |
| rules2.clearurls.xyz | 1 | 1 | |
| timezonedb.catvibers.me | 1 | 1 | |
| thelazysquid.github.io | 1 | 1 | |
| cdn.jsdelivr.net | 1 | 1 | |
| ws.audioscrobbler.com | 1 | 1 | |
| api.github.com | 1 | 1 |
| Host | Addons | Refs | |
|---|---|---|---|
| discord.com | 33 | 163,157 | |
| fonts.gstatic.com | 30 | 78 | |
| fonts.googleapis.com | 27 | 42 | |
| i.imgur.com | 24 | 165 | |
| mwittrien.github.io | 19 | 17,440 | |
| raw.githubusercontent.com | 17 | 178 | |
| cdn.discordapp.com | 15 | 144 | |
| discordstyles.github.io | 14 | 76 | |
| saltssaumure.github.io | 7 | 35 | |
| discord-custom-covers.github.io | 6 | 6 | |
| nyri4.github.io | 5 | 244 | |
| ptb.discord.com | 5 | 25 | |
| discordapp.com | 5 | 20 | |
| github.com | 5 | 16 | |
| devevil99.github.io | 5 | 7 | |
| raw.githack.com | 5 | 5 | |
| media.discordapp.net | 4 | 63 | |
| cdn.jsdelivr.net | 4 | 41 | |
| blade04208.github.io | 4 | 37 | |
| static.discord.com | 4 | 17 | |
| i.ibb.co | 4 | 6 | |
| davart154.github.io | 4 | 5 | |
| capnkitten.github.io | 3 | 551 | |
| fonts.cdnfonts.com | 3 | 30 | |
| thecommieaxolotl.github.io | 3 | 13 |
| crearts-community.github.io | 3 | 11 | |
| upload.wikimedia.org | 3 | 8 | |
| maendisease.github.io | 3 | 7 | |
| dablulite.github.io | 3 | 3 | |
| mr-miner1.github.io | 3 | 3 | |
| user-images.githubusercontent.com | 3 | 3 | |
| zuzumi-f.github.io | 2 | 14 | |
| dyzean.github.io | 2 | 10 | |
| cdn.rawgit.com | 2 | 10 | |
| xcruxiex.github.io | 2 | 8 | |
| tiredmala.github.io | 2 | 7 | |
| minidiscordthemes.github.io | 2 | 7 | |
| refact0r.github.io | 2 | 7 | |
| spinfish.github.io | 2 | 7 | |
| elisniper.github.io | 2 | 6 | |
| ellexidecodes.github.io | 2 | 6 | |
| gibbu.github.io | 2 | 5 | |
| www.svgrepo.com | 2 | 4 | |
| b4t3s.github.io | 2 | 4 | |
| images.alphacoders.com | 2 | 3 | |
| xyzenix.github.io | 2 | 2 | |
| rawgit.com | 2 | 2 | |
| images5.alphacoders.com | 2 | 2 | |
| images3.alphacoders.com | 2 | 2 | |
| storage.googleapis.com | 2 | 2 | |
| goose-nest.github.io | 2 | 2 | |
| dagcord.github.io | 2 | 2 | |
| paz.pw | 2 | 2 | |
| adx74.fr | 2 | 2 | |
| media.tenor.com | 2 | 2 | |
| ch3rry.red | 2 | 2 | |
| teamcofh.com | 2 | 2 | |
| www.your-url-here.com | 2 | 2 | |
| feorev.github.io | 1 | 116 | |
| canary.discord.com | 1 | 110 | |
| chillax-org.github.io | 1 | 49 | |
| files.catbox.moe | 1 | 49 | |
| milbits.github.io | 1 | 41 | |
| lukasvh.codeberg.page | 1 | 35 | |
| ungiglio.github.io | 1 | 25 | |
| leafyluigi.github.io | 1 | 23 | |
| goldenlys.github.io | 1 | 22 | |
| warrayquipsome.github.io | 1 | 19 | |
| joshuah345.github.io | 1 | 18 | |
| lolpowerluke.github.io | 1 | 11 | |
| przemec.github.io | 1 | 10 | |
| slddev.github.io | 1 | 10 | |
| rockesv.github.io | 1 | 10 | |
| clearvision.github.io | 1 | 10 | |
| accrazed.github.io | 1 | 9 | |
| i.postimg.cc | 1 | 9 | |
| snajperexe.github.io | 1 | 8 | |
| plusinsta.github.io | 1 | 6 | |
| zacam.github.io | 1 | 5 | |
| monstrousdev.github.io | 1 | 5 | |
| eight-p.github.io | 1 | 5 | |
| tnt4me.github.io | 1 | 4 | |
| encore.scdn.co | 1 | 4 | |
| pixelmelt.github.io | 1 | 4 | |
| p0rtl6.github.io | 1 | 4 | |
| slippinggittys-discord-themes.github.io | 1 | 3 | |
| riddim-glitch.github.io | 1 | 3 | |
| forums.everybodyedits.com | 1 | 2 | |
| syndishanx.github.io | 1 | 2 | |
| imgpile.com | 1 | 2 | |
| dom1torii.github.io | 1 | 2 | |
| rawcdn.githack.com | 1 | 2 | |
| i.vgy.me | 1 | 2 | |
| deadfrekk.github.io | 1 | 2 | |
| external-content.duckduckgo.com | 1 | 2 | |
| steamuserimages-a.akamaihd.net | 1 | 1 | |
| nfld99.github.io | 1 | 1 | |
| multiplexurbangreen.com | 1 | 1 | |
| cdn.custom-cursor.com | 1 | 1 | |
| cdn-icons-png.flaticon.com | 1 | 1 | |
| luckfire.github.io | 1 | 1 | |
| markchan0225.github.io | 1 | 1 | |
| booglesmcgee.github.io | 1 | 1 | |
| mixter213.github.io | 1 | 1 | |
| abs.twimg.com | 1 | 1 | |
| discord-mica.pages.dev | 1 | 1 | |
| chaseingebritson.github.io | 1 | 1 | |
| patrykbielanin.github.io | 1 | 1 | |
| i.gifer.com | 1 | 1 | |
| chloecinders.github.io | 1 | 1 | |
| images8.alphacoders.com | 1 | 1 | |
| winzoro.net | 1 | 1 | |
| images7.alphacoders.com | 1 | 1 | |
| wallpapers.com | 1 | 1 | |
| purplewizard.space | 1 | 1 | |
| cinnab0nbak3ry.github.io | 1 | 1 | |
| zerebos.github.io | 1 | 1 | |
| imgur.com | 1 | 1 | |
| l-ratio.github.io | 1 | 1 | |
| (dynamic) | 1 | 1 | |
| nexus-themes.github.io | 1 | 1 | |
| marda33.github.io | 1 | 1 | |
| puckzxz.github.io | 1 | 1 | |
| cursedelectric.github.io | 1 | 1 | |
| cursedelectric.neocities.org | 1 | 1 | |
| killyoy.github.io | 1 | 1 |
| Host | Plugins | Refs | |
|---|---|---|---|
| mwittrien.github.io | 48 | 52 | |
| www.w3.org | 43 | 168 | |
| github.com | 40 | 45 | |
| raw.githubusercontent.com | 28 | 31 | |
| cdn.discordapp.com | 15 | 60 | |
| (dynamic) | 8 | 14 | |
| media.discordapp.net | 6 | 23 | |
| discord.com | 5 | 16 | |
| paypal.me | 5 | 5 | |
| i.scdn.co | 3 | 5 | |
| static-cdn.jtvnw.net | 3 | 5 | |
| translate.googleapis.com | 3 | 4 | |
| yandex.com | 3 | 3 | |
| devevil.com | 3 | 3 | |
| svelte.dev | 2 | 42 | |
| cdn.jsdelivr.net | 2 | 5 | |
| generativelanguage.googleapis.com | 2 | 3 | |
| example.com | 2 | 3 | |
| www.youtube.com | 2 | 3 | |
| api.groq.com | 2 | 2 | |
| api.spotify.com | 2 | 2 | |
| regexr.com | 2 | 2 | |
| api.openai.com | 2 | 2 | |
| www.google.com | 2 | 2 | |
| www.bing.com | 2 | 2 |
| duckduckgo.com | 2 | 2 | |
| search.brave.com | 2 | 2 | |
| api.github.com | 2 | 2 | |
| discord.gg | 2 | 2 | |
| i.ytimg.com | 2 | 2 | |
| wikipedia.org | 1 | 9,481 | |
| i.imgur.com | 1 | 6 | |
| www.patreon.com | 1 | 3 | |
| doggybootsy.com | 1 | 2 | |
| openapi.naver.com | 1 | 2 | |
| images-ext-2.discordapp.net | 1 | 2 | |
| images-ext-1.discordapp.net | 1 | 2 | |
| shared.fastly.steamstatic.com | 1 | 2 | |
| console.groq.com | 1 | 2 | |
| platform.openai.com | 1 | 2 | |
| api.streamelements.com | 1 | 2 | |
| tenor.com | 1 | 2 | |
| open.spotify.com | 1 | 2 | |
| startpage.com | 1 | 2 | |
| docs.betteranimations.net | 1 | 2 | |
| api.supadata.ai | 1 | 1 | |
| supadata.ai | 1 | 1 | |
| doggybootsy.github.io | 1 | 1 | |
| zerebos.com | 1 | 1 | |
| www.twitch.tv | 1 | 1 | |
| translate.google.com | 1 | 1 | |
| fanyi-api.baidu.com | 1 | 1 | |
| translate.yandex.net | 1 | 1 | |
| www.itranslate.com | 1 | 1 | |
| web-api.itranslateapp.com | 1 | 1 | |
| api.deepseek.com | 1 | 1 | |
| api-free.deepl.com | 1 | 1 | |
| api.deepl.com | 1 | 1 | |
| api.cognitive.microsofttranslator.com | 1 | 1 | |
| trace.moe | 1 | 1 | |
| tineye.com | 1 | 1 | |
| pic.sogou.com | 1 | 1 | |
| saucenao.com | 1 | 1 | |
| karmadecay.com | 1 | 1 | |
| iqdb.org | 1 | 1 | |
| imgops.com | 1 | 1 | |
| lens.google.com | 1 | 1 | |
| image.baidu.com | 1 | 1 | |
| images-ext-2.discord | 1 | 1 | |
| images-ext-1.discord | 1 | 1 | |
| s.team | 1 | 1 | |
| store.steampowered. | 1 | 1 | |
| help.steampowered. | 1 | 1 | |
| steamcommunity. | 1 | 1 | |
| search.yahoo.com | 1 | 1 | |
| www.wolframalpha.com | 1 | 1 | |
| search.sethforprivacy.com | 1 | 1 | |
| www.urbandictionary.com | 1 | 1 | |
| www.startpage.com | 1 | 1 | |
| stackoverflow.com | 1 | 1 | |
| searx.info | 1 | 1 | |
| www.qwant.com | 1 | 1 | |
| www.quora.com | 1 | 1 | |
| www.pinterest.com | 1 | 1 | |
| www.linkedin.com | 1 | 1 | |
| scholar.google.com | 1 | 1 | |
| www.facebook.com | 1 | 1 | |
| www.ecosia.org | 1 | 1 | |
| www.dogpile.com | 1 | 1 | |
| ask.com | 1 | 1 | |
| www.amazon.com | 1 | 1 | |
| www.paypal.me | 1 | 1 | |
| 127.0.0.1 | 1 | 1 | |
| undefined | 1 | 1 | |
| static.discord.com | 1 | 1 | |
| static.wikia.nocookie.net | 1 | 1 | |
| files.catbox.moe | 1 | 1 | |
| store.steampowered.com | 1 | 1 | |
| fortnite-api.com | 1 | 1 | |
| net-secondary.web.minecraft-services.net | 1 | 1 | |
| unknownworlds.com | 1 | 1 | |
| unknownworlds-strapi.live.kraftonamericas.com | 1 | 1 | |
| news.xbox.com | 1 | 1 | |
| nintendoeverything.com | 1 | 1 | |
| latex.codecogs.com | 1 | 1 | |
| tiktok-tts.weilnet.workers.dev | 1 | 1 | |
| xenoncolt.live | 1 | 1 | |
| gql.twitch.tv | 1 | 1 | |
| player.twitch.tv | 1 | 1 | |
| twitch.tv | 1 | 1 | |
| translate-pa.googleapis.com | 1 | 1 | |
| twitter.com | 1 | 1 | |
| media.tenor.com | 1 | 1 | |
| convertio.co | 1 | 1 | |
| replacement.com | 1 | 1 | |
| twenty-icons.com | 1 | 1 | |
| fxbsky.app | 1 | 1 | |
| yout-ube.com | 1 | 1 | |
| tfxktok.com | 1 | 1 | |
| tnktok.com | 1 | 1 | |
| vxinstagram.com | 1 | 1 | |
| twittpr.com | 1 | 1 | |
| fixvx.com | 1 | 1 | |
| vxtwitter.com | 1 | 1 | |
| fixupx.com | 1 | 1 | |
| fxtwitter.com | 1 | 1 | |
| vxreddit.com | 1 | 1 | |
| rxddit.com | 1 | 1 | |
| rules2.clearurls.xyz | 1 | 1 | |
| timezonedb.catvibers.me | 1 | 1 | |
| thelazysquid.github.io | 1 | 1 | |
| spotify.com | 1 | 1 | |
| search.aol.com | 1 | 1 | |
| yahoo.com | 1 | 1 | |
| perplexity.ai | 1 | 1 | |
| bing.com | 1 | 1 | |
| google.com | 1 | 1 | |
| searx.be | 1 | 1 | |
| api-v2.soundcloud.com | 1 | 1 | |
| ws.audioscrobbler.com | 1 | 1 | |
| makersuite.google.com | 1 | 1 | |
| devevil99.github.io | 1 | 1 | |
| avatars.githubusercontent.com | 1 | 1 | |
| gist.githubusercontent.com | 1 | 1 | |
| betterdiscord.app | 1 | 1 | |
| boosty.to | 1 | 1 |
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 | Addons | % of corpus | |
|---|---|---|---|
@name required | 322 | 100% | |
@author required | 322 | 100% | |
@description required | 322 | 100% | |
@version required | 322 | 100% | |
@source | 289 | 89% | |
@invite | 189 | 59% | |
@website | 172 | 53% | |
@authorId | 167 | 52% | |
@donate | 117 | 36% | |
@authorLink | 63 | 20% | |
@patreon | 61 | 19% | |
@runAt | 20 | 6% | |
@updateUrl non-standard | 90 | 28% | |
@license non-standard | 12 | 4% | |
@var non-standard | 6 | 2% | |
@changelog non-standard | 2 | 1% | |
@displayName non-standard | 1 | 0% | |
@updateURL non-standard | 1 | 0% | |
@exports non-standard | 1 | 0% | |
@changelogDate non-standard | 1 | 0% | |
@colorwayVar non-standard | 1 | 0% | |
@github non-standard | 1 | 0% | |
@github_raw non-standard | 1 | 0% | |
@keyframes non-standard | 1 | 0% | |
@updateurl non-standard | 1 | 0% | |
@discordBuild non-standard | 1 | 0% |
Only fields BD consumes are validated. Duplicated non-standard fields are conventions (DevilBro's @var theme settings, @changelog) and are not counted as defects.
| Problem | Addons |
|---|---|
Version is not a version number @version | 6 |
Which addons
| |
Link field is not an http(s) URL @website | 2 |
Which addons
| |
Link field is not an http(s) URL @source | 2 |
Which addons
| |
Missing required field @name | 1 |
Which addons
| |
Missing required field @author | 1 |
Which addons
| |
Missing required field @description | 1 |
Which addons
| |
Missing required field @version | 1 |
Which addons
| |
| Sink | Uses | Plugins |
|---|---|---|
innerHTML | 79 | 61 |
outerHTML | 4 | 1 |
| Kind | Uses | Plugins |
|---|---|---|
Function | 2 | 2 |
eval | 2 | 2 |
| Signal | Plugins | |
|---|---|---|
| large-string-array | 28 | |
| high-entropy-strings | 24 | |
| escape-heavy-strings | 5 | |
| dynamic-eval | 2 | |
| dynamic-function | 2 | |
| many-single-char-identifiers | 1 |
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.
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.
| Plugin | Signals |
|---|---|
| quantumsoul / LaTeX | many-single-char-identifierslarge-string-arrayhigh-entropy-stringsdynamic-evaldynamic-function |
| arg0NNY / BetterAnimations | large-string-arrayescape-heavy-stringshigh-entropy-stringsdynamic-function |
| Zerebos / PermissionsViewer | large-string-arrayescape-heavy-stringshigh-entropy-strings |
| SuperTouch / Summarizer | large-string-arrayhigh-entropy-strings |
| Zerebos / RoleMembers | large-string-arrayhigh-entropy-strings |
| DevilBro / Translator | large-string-arrayhigh-entropy-strings |
| KingGamingYT / ActivityFeed | large-string-arrayescape-heavy-strings |
| DaddyBoard / PingNotification | large-string-arrayhigh-entropy-strings |
| Snues / Incognito | large-string-arrayhigh-entropy-strings |
| TheLazySquid / GifCaptioner | large-string-arrayhigh-entropy-strings |
| Knew / EmbedMoreImages | large-string-arrayhigh-entropy-strings |
| programmer2514 / CollapsibleUI | large-string-arraydynamic-eval |
| arg0NNY / PasscodeLock | large-string-arrayhigh-entropy-strings |