Official store corpus · report generated 2026-10-19 · addon data updated 2026-10-19
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. Downloads is the combined cumulative lifetime store downloads of the plugins listed — the installed-base weight of each migration, not active users.
| Module | Plugins | Downloads | Calls | Δ calls | |
|---|---|---|---|---|---|
require("fs") | 49 | 16.8M | 50 | 0 | |
Plugins requiring | |||||
require("path") | 48 | 16.7M | 49 | 0 | |
Plugins requiring | |||||
require("electron") | 3 | 833.2K | 3 | 0 | |
Plugins requiring | |||||
require("events") | 3 | 1.2M | 3 | 0 | |
Plugins requiring | |||||
require("(dynamic)") | 1 | 418.8K | 1 | 0 | |
Plugins requiring | |||||
Δ compares against the 2026-10-12 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 | 9 | 11 |
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 | 72 | |
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,607 | 131 | |
BdApi.Webpack | 2,449 | 155 | |
BdApi.Data | 593 | 108 | |
BdApi.UI | 589 | 151 | |
BdApi.Patcher | 443 | 115 | |
BdApi.ContextMenu | 293 | 49 | |
BdApi.Components | 272 | 61 | |
BdApi.DOM | 250 | 75 | |
BdApi.Logger | 226 | 46 | |
BdApi.Utils | 190 | 72 | |
BdApi.Plugins | 95 | 59 | |
BdApi.Hooks | 90 | 23 | |
BdApi.Net | 77 | 62 | |
BdApi.ReactUtils | 65 | 30 | |
BdApi.Themes | 21 | 4 | |
BdApi.ReactDOM | 20 | 12 | |
BdApi.Commands | 4 | 1 | |
BdApi.settings | 4 | 1 | |
BdApi.isSettingEnabled | 2 | 1 | |
BdApi.disableSetting | 2 | 1 | |
BdApi.enableSetting | 2 | 1 |
| API | Calls | Plugins | Δ | |
|---|---|---|---|---|
BdApi.React.createElement | 4,729 | 105 | 0 | |
BdApi.Webpack.Filters.byStrings | 459 | 62 | +1 | |
BdApi.Data.load | 304 | 108 | 0 | |
BdApi.Webpack.getByKeys | 255 | 66 | 0 | |
BdApi.Data.save | 245 | 107 | 0 | |
BdApi.Webpack.getModule | 243 | 82 | −2 | |
BdApi.UI.showToast | 227 | 86 | 0 | |
BdApi.Webpack.Filters.byKeys | 213 | 54 | 0 | |
BdApi.React.Fragment | 195 | 37 | 0 | |
BdApi.Webpack.Filters.bySource | 173 | 46 | 0 | |
BdApi.Patcher.after | 172 | 76 | 0 | |
BdApi.Webpack.getStore | 158 | 49 | 0 | |
BdApi.React.useState | 151 | 58 | 0 | |
BdApi.Patcher.unpatchAll | 131 | 109 | 0 | |
BdApi.Webpack.getByStrings | 131 | 30 | 0 | |
BdApi.Webpack.waitForModule | 113 | 40 | +3 | |
BdApi.DOM.removeStyle | 103 | 71 | 0 | |
BdApi.React | 102 | 86 | 0 | |
BdApi.Webpack | 101 | 80 | 0 | |
BdApi.DOM.addStyle | 96 | 72 | 0 | |
BdApi.UI.showConfirmationModal | 96 | 67 | 0 | |
BdApi.Logger.error | 93 | 29 | +3 | |
BdApi.Hooks.useStateFromStores | 75 | 16 | 0 | |
BdApi.Net.fetch | 75 | 61 | 0 | |
BdApi.Utils.findInTree | 71 | 35 | 0 | |
BdApi.React.useEffect | 70 | 43 | 0 | |
BdApi.UI.buildSettingsPanel | 65 | 58 | 0 | |
BdApi.UI.showChangelogModal | 65 | 61 | 0 | |
BdApi.React.Component | 64 | 35 | 0 | |
BdApi.React.useRef | 64 | 37 | 0 |
BdApi.Logger.info | 60 | 21 | 0 | |
BdApi.ContextMenu.patch | 58 | 32 | 0 | |
BdApi.ContextMenu.buildItem | 53 | 23 | 0 | |
BdApi.UI.alert | 53 | 49 | 0 | |
BdApi.Plugins.folder | 53 | 49 | 0 | |
BdApi.Webpack.getWithKey | 51 | 26 | 0 | |
BdApi.Webpack.getMangled | 47 | 19 | 0 | |
BdApi.Patcher.instead | 45 | 30 | 0 | |
BdApi.React.memo | 45 | 5 | 0 | |
BdApi.Patcher.before | 42 | 28 | 0 | |
BdApi.Webpack.getBySource | 42 | 25 | 0 | |
BdApi.Patcher | 41 | 41 | 0 | |
BdApi.UI | 39 | 39 | 0 | |
BdApi.ContextMenu.Item | 39 | 13 | 0 | |
BdApi.Logger.warn | 38 | 16 | 0 | |
BdApi.Webpack.Filters | 38 | 38 | 0 | |
BdApi.Utils.className | 34 | 9 | 0 | |
BdApi.React.useCallback | 34 | 19 | 0 | |
BdApi.Data | 33 | 33 | 0 | |
BdApi.ContextMenu.open | 33 | 12 | 0 | |
BdApi.Components.SettingItem | 33 | 11 | 0 | |
BdApi.React.useMemo | 32 | 16 | 0 | |
BdApi.Webpack.Filters.byStoreName | 31 | 7 | 0 | |
BdApi.Webpack.getBulk | 29 | 28 | 0 | |
BdApi.Utils.extend | 28 | 14 | 0 | |
BdApi.Components.Tooltip | 27 | 22 | 0 | |
BdApi.ContextMenu | 27 | 26 | 0 | |
BdApi.React.createRef | 26 | 6 | 0 | |
BdApi.DOM | 26 | 26 | 0 | |
BdApi.ContextMenu.buildMenu | 25 | 9 | 0 | |
BdApi.Components.Button | 25 | 12 | 0 | |
BdApi.Components.Text | 22 | 15 | 0 | |
BdApi.Utils | 21 | 21 | 0 | |
BdApi.ReactUtils.getOwnerInstance | 21 | 15 | 0 | |
BdApi.Webpack.Stores.UserStore.getUser | 21 | 7 | 0 | |
BdApi.Components.SwitchInput | 18 | 15 | 0 | |
BdApi.React.useLayoutEffect | 17 | 9 | 0 | |
BdApi.Webpack.Filters.byPrototypeKeys | 17 | 8 | 0 | |
BdApi.Utils.Store | 17 | 14 | 0 | |
BdApi.Components.DropdownInput | 17 | 8 | 0 | |
BdApi.Logger | 15 | 15 | 0 | |
BdApi.ReactUtils.wrapInHooks | 15 | 6 | 0 | |
BdApi.ContextMenu.unpatch | 15 | 9 | 0 | |
BdApi.React.cloneElement | 14 | 12 | 0 | |
BdApi.Components.ErrorBoundary | 14 | 13 | 0 | |
BdApi.UI.createTooltip | 14 | 5 | 0 | |
BdApi.ContextMenu.buildMenuChildren | 13 | 3 | 0 | |
BdApi.Plugins.get | 13 | 6 | 0 | |
BdApi.DOM.createElement | 13 | 6 | 0 | |
BdApi.Webpack.Stores | 13 | 13 | 0 | |
BdApi.Webpack.Stores.ChannelStore.getChannel | 13 | 6 | 0 | |
BdApi.Webpack.Stores.UserStore.getCurrentUser | 13 | 7 | 0 | |
BdApi.Webpack.Stores.UserStore | 13 | 13 | 0 | |
BdApi.UI.showInviteModal | 12 | 10 | 0 | |
BdApi.ContextMenu.Menu | 12 | 7 | 0 | |
BdApi.Components | 12 | 12 | 0 | |
BdApi.React.useSyncExternalStore | 12 | 7 | 0 | |
BdApi.Plugins.isEnabled | 11 | 7 | 0 | |
BdApi.ReactUtils | 11 | 11 | 0 | |
BdApi.Webpack.Stores.SelectedGuildStore.getGuildId | 11 | 4 | 0 | |
BdApi.ReactDOM | 11 | 10 | 0 | |
BdApi.Data.delete | 10 | 9 | 0 | |
BdApi.Webpack.Stores.ChannelStore | 10 | 10 | 0 | |
BdApi.Hooks | 10 | 10 | 0 | |
BdApi.Logger.log | 10 | 7 | 0 | |
BdApi.DOM.parseHTML | 9 | 6 | 0 | |
BdApi.Components.Button.Sizes.SMALL | 9 | 6 | 0 | |
BdApi.Components.Spinner | 9 | 7 | 0 | |
BdApi.ReactUtils.getInternalInstance | 9 | 8 | 0 | |
BdApi.Plugins | 9 | 4 | 0 | |
BdApi.Components.TextInput | 8 | 5 | 0 | |
BdApi.Components.Button.Colors.RED | 8 | 5 | 0 | |
BdApi.Webpack.Filters.combine | 8 | 6 | 0 | |
BdApi.Webpack.getBulkKeyed | 8 | 8 | 0 | |
BdApi.Webpack.Stores.GuildStore.getGuild | 8 | 5 | 0 | |
BdApi.Webpack.Stores.GuildStore | 8 | 8 | 0 | |
BdApi.React.forwardRef | 8 | 8 | 0 | |
BdApi.Webpack.Stores.MessageStore.getMessage | 8 | 3 | 0 | |
BdApi.ReactDOM.createRoot | 8 | 8 | 0 | |
BdApi.ContextMenu.Group | 7 | 6 | 0 | |
BdApi.Webpack.Stores.SelectedChannelStore | 7 | 7 | 0 | |
BdApi.Patcher.* | 7 | 6 | 0 | |
BdApi.Themes | 7 | 3 | 0 | |
BdApi.Logger.debug | 7 | 1 | 0 | |
BdApi.Components.SettingGroup | 6 | 5 | 0 | |
BdApi.Components.RadioInput | 6 | 5 | 0 | |
BdApi.Webpack.Stores.UserStore._dispatcher.unsubscribe | 6 | 2 | 0 | |
BdApi.Webpack.Stores.UserStore._dispatcher.subscribe | 6 | 2 | 0 | |
BdApi.Webpack.Stores.PermissionStore.can | 6 | 4 | 0 | |
BdApi.React.useReducer | 6 | 6 | 0 | |
BdApi.React.isValidElement | 6 | 6 | 0 | |
BdApi.Utils.mapObject | 6 | 6 | 0 | |
BdApi.UI.showNotice | 5 | 4 | 0 | |
BdApi.Components.Text.Sizes.SIZE_16 | 5 | 3 | 0 | |
BdApi.Components.Flex | 5 | 4 | 0 | |
BdApi.React.useContext | 5 | 4 | 0 | |
BdApi.React.createContext | 5 | 4 | 0 | |
BdApi.ContextMenu.Separator | 5 | 3 | 0 | |
BdApi.ReactUtils.createNodePatcher | 5 | 5 | 0 | |
BdApi.Webpack.Stores.UserStore._dispatcher | 5 | 4 | 0 | |
BdApi.Webpack.Stores.PresenceStore | 5 | 5 | 0 | |
BdApi.Webpack.getByPrototypeKeys | 5 | 5 | 0 | |
BdApi.Webpack.Stores.GuildMemberStore | 5 | 5 | 0 | |
BdApi.Webpack.Stores.GuildRoleStore | 5 | 5 | 0 | |
BdApi.Webpack.Stores.MessageStore | 5 | 5 | 0 | |
BdApi.UI.openDialog | 5 | 2 | 0 | |
BdApi.Utils.semverCompare | 5 | 5 | 0 | |
BdApi.Webpack.Stores.SelectedChannelStore.getCurrentlySelectedChannelId | 5 | 3 | 0 | |
BdApi.Patcher.getPatchesByCaller | 5 | 5 | 0 | |
BdApi.UI.buildSettingItem | 4 | 3 | 0 | |
BdApi.Webpack.getById | 4 | 4 | 0 | |
BdApi.Utils.forceLoad | 4 | 4 | 0 | |
BdApi.Webpack.Stores.UserStore._dispatcher.dispatch | 4 | 3 | 0 | |
BdApi.Webpack.Stores.SelectedChannelStore.getChannelId | 4 | 4 | 0 | |
BdApi.React.useId | 4 | 4 | 0 | |
BdApi.UI.showNotification | 4 | 3 | 0 | |
BdApi.Webpack.Stores.SelectedGuildStore | 4 | 4 | 0 | |
BdApi.Webpack.Stores.LocaleStore.locale | 4 | 4 | 0 | |
BdApi.Webpack.Stores.LocaleStore | 4 | 4 | 0 | |
BdApi.Webpack.Stores.RelationshipStore | 4 | 4 | 0 | |
BdApi.Utils.debounce | 4 | 4 | 0 | |
BdApi.ContextMenu.close | 3 | 3 | 0 | |
BdApi.Webpack.modules.*.toString | 3 | 2 | 0 | |
BdApi.Hooks.useData | 3 | 3 | 0 | |
BdApi.Components.Button.Colors.GREEN | 3 | 2 | 0 | |
BdApi.Components.Flex.Justify.END | 3 | 2 | 0 | |
BdApi.React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.H | 3 | 2 | 0 | |
BdApi.Webpack.Stores.PermissionStore | 3 | 3 | 0 | |
BdApi.Components.Spinner.Type.* | 3 | 1 | 0 | |
BdApi.Webpack.Stores.MessageStore.getMessages | 3 | 2 | 0 | |
BdApi.Components.ColorInput | 3 | 3 | 0 | |
BdApi.Webpack.Stores.GuildRoleStore.getRolesSnapshot | 3 | 3 | 0 | |
BdApi.Logger.stacktrace | 3 | 2 | 0 | |
BdApi.Themes.isEnabled | 3 | 2 | 0 | |
BdApi.Themes.disable | 3 | 2 | 0 | |
BdApi.Webpack.Stores.GIFPickerViewStore._dispatcher.dispatch | 3 | 1 | 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.Stores.SortedGuildStore | 3 | 3 | 0 | |
BdApi.Webpack.getModules | 3 | 3 | 0 | |
BdApi.React.useTransition | 3 | 3 | 0 | |
BdApi.ReactUtils.wrapElement | 3 | 1 | 0 | |
BdApi.Webpack.Stores.PresenceStore.getStatus | 3 | 1 | 0 | |
BdApi.Components.Button.Looks.FILLED | 2 | 1 | 0 | |
BdApi.Webpack.Filters.byComponentType | 2 | 2 | 0 | |
BdApi.React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED | 2 | 1 | 0 | |
BdApi.Webpack.Filters.not | 2 | 1 | 0 | |
BdApi.React.lazy | 2 | 2 | 0 | |
BdApi.ContextMenu.CheckboxItem | 2 | 2 | 0 | |
BdApi.Webpack.Filters.byRegex | 2 | 2 | 0 | |
BdApi.Components.Flex.Align.CENTER | 2 | 2 | 0 | |
BdApi.Webpack.Stores.MessageStore.emitChange | 2 | 1 | 0 | |
BdApi.Webpack.Stores.PresenceStore.emitChange | 2 | 1 | 0 | |
BdApi.Webpack.Stores.PresenceStore.getClientStatus | 2 | 2 | 0 | |
BdApi.Webpack.Stores.GuildStore.getGuildsArray | 2 | 2 | 0 | |
BdApi.Components.SliderInput | 2 | 2 | 0 | |
BdApi.React.use | 2 | 2 | 0 | |
BdApi.Components.Button.Looks.BLANK | 2 | 2 | 0 | |
BdApi.Webpack.Stores.GuildMemberStore.getMember | 2 | 2 | 0 | |
BdApi.Webpack.Stores.SortedGuildStore.getFlattenedGuildIds | 2 | 2 | 0 | |
BdApi.Webpack.Stores.GuildMemberStore.getMembers | 2 | 1 | 0 | |
BdApi.Webpack.modules.* | 2 | 2 | 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.Net | 2 | 2 | 0 | |
BdApi.Hooks.useForceUpdate | 2 | 2 | 0 | |
BdApi.Components.Text.Sizes.SIZE_12 | 2 | 1 | 0 | |
BdApi.Webpack.Stores.IdleStore | 2 | 2 | 0 | |
BdApi.Webpack.getAllByKeys | 2 | 1 | 0 | |
BdApi.Webpack.Stores.GuildMemberCountStore.getMemberCount | 2 | 2 | 0 | |
BdApi.Webpack.Stores.GuildMemberCountStore | 2 | 2 | 0 | |
BdApi.Components.Text.Colors.HEADER_PRIMARY | 2 | 1 | 0 | |
BdApi.Components.Spinner.Type.SPINNING_CIRCLE | 2 | 1 | 0 | |
BdApi.Webpack.Stores.VoiceStateStore.getDiscoverableVoiceStateForUser | 2 | 1 | 0 | |
BdApi.Webpack.Stores.UserGuildSettingsStore | 2 | 2 | 0 | |
BdApi.Webpack.Stores.LocaleStore.removeChangeListener | 2 | 2 | 0 | |
BdApi.Webpack.Stores.LocaleStore.addChangeListener | 2 | 2 | 0 | |
BdApi.Webpack.Stores.ReferencedMessageStore.getMessageByReference | 2 | 2 | 0 | |
BdApi.Webpack.Stores.ReferencedMessageStore | 2 | 2 | 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.Components.Flex.Child | 1 | 1 | 0 | |
BdApi.Data.save.bind | 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.Webpack.Stores.UserStore.emitChange | 1 | 1 | 0 | |
BdApi.Components.Spinner.Type | 1 | 1 | 0 | |
BdApi.Webpack.Stores.UserProfileStore | 1 | 1 | 0 | |
BdApi.Components.Modal | 1 | 1 | 0 | |
BdApi.Webpack.Stores.RelationshipStore.getFriendIDs | 1 | 1 | 0 | |
BdApi.Webpack.Stores.DraftStore.getDraft | 1 | 1 | 0 | |
BdApi.Webpack.Stores.GuildRoleStore.getManyRoles | 1 | 1 | 0 | |
BdApi.Webpack.Stores.DraftStore | 1 | 1 | 0 | |
BdApi.Components.Button.Sizes.MEDIUM | 1 | 1 | 0 | |
BdApi.DOM.onRemoved | 1 | 1 | 0 | |
BdApi.DOM.animate | 1 | 1 | 0 | |
BdApi.Themes.getAll | 1 | 1 | 0 | |
BdApi.ContextMenu.RadioItem | 1 | 1 | 0 | |
BdApi.Webpack.Filters.byDisplayName | 1 | 1 | 0 | |
BdApi.React.Children.map | 1 | 1 | 0 | |
BdApi.Webpack.Stores.SearchQueryStore | 1 | 1 | 0 | |
BdApi.Webpack.Stores.SelectedSearchContextStore | 1 | 1 | — | |
BdApi.Components.NumberInput | 1 | 1 | 0 | |
BdApi.React.useInsertionEffect | 1 | 1 | 0 | |
BdApi.Webpack.Stores.GIFPickerViewStore.getSelectedFormat | 1 | 1 | 0 | |
BdApi.Webpack.Stores.GIFPickerViewStore._dispatcher | 1 | 1 | 0 | |
BdApi.Webpack.Stores.GIFPickerViewStore | 1 | 1 | 0 | |
BdApi.Webpack.Stores.RelationshipStore.getIgnoredIDs | 1 | 1 | 0 | |
BdApi.Webpack.Stores.RelationshipStore.getBlockedIDs | 1 | 1 | 0 | |
BdApi.ReactDOM.flushSync | 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.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.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.Webpack.getAllByStrings | 1 | 1 | 0 | |
BdApi.ReactUtils.getOwnerInstance.bind | 1 | 1 | 0 | |
BdApi.React.Children | 1 | 1 | 0 | |
BdApi.DOM.createElement({target}) | 1 | 1 | 0 | |
BdApi.Components.Button.Colors.CUSTOM | 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.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.Components.Spinner.Type.SPINNING_CIRCLE_SIMPLE | 1 | 1 | 0 | |
BdApi.React.useImperativeHandle | 1 | 1 | 0 | |
BdApi.Webpack.Stores.PendingReplyStore.getPendingReply | 1 | 1 | 0 | |
BdApi.Webpack.Stores.PendingReplyStore | 1 | 1 | 0 | |
BdApi.Webpack.Stores.GuildMemberCountStore.getOnlineCount | 1 | 1 | 0 | |
BdApi.Components.Text.Colors.HEADER_SECONDARY | 1 | 1 | 0 | |
BdApi.Components.Button.Sizes.ICON | 1 | 1 | 0 | |
BdApi.Components.Button.Colors.TRANSPARENT | 1 | 1 | 0 | |
BdApi.Components.Flex.Direction.HORIZONTAL | 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.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.Stores.RunningGameStore.getGamesSeen | 1 | 1 | 0 | |
BdApi.Webpack.Stores.UserSettingsProtoStore | 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
| ||
BdApi.Components.Modal | 1 | 1 |
Which plugins
| ||
BdApi.DOM.createElement({target}) | 1 | 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. Downloads weighs each member by the cumulative lifetime store downloads of its defining plugins — the installed base a removal would touch, not active users.
| Member | Status | Plugins defining it | Downloads | |
|---|---|---|---|---|
getName | deprecated | 52 | 16.0M | |
getAuthor | deprecated | 49 | 16.6M | |
getDescription | deprecated | 48 | 15.7M | |
getVersion | deprecated | 48 | 15.7M | |
load | removal candidate | 63 | 20.1M | |
onSwitch | removal candidate | 9 | 551.7K | |
observer | removal candidate | 7 | 550.1K | |
start | current | 200 | 27.6M | |
stop | current | 197 | 27.6M | |
getSettingsPanel | current | 135 | 21.7M |
observer is the one to act on. To serve the 7 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 7. 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. 45 of 216 plugins reach Discord through a library object rather than BdApi directly (BDFDB 44 · 15.2M downloads, ZeresPluginLibrary 1 · 38.6K downloads) — their webpack lookups and patches are attributed to the library, so they are invisible to the tables below. In installed-base terms the blind spot is 15.3M of the corpus's 56.5M cumulative downloads — 27% of every copy ever installed routes its Discord access through a library these tables cannot see into. 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 | 22 | 22 | |
ChannelStore store | 15 | 15 | |
RelationshipStore store | 11 | 11 | |
GuildStore store | 11 | 11 | |
useStateFromStores string | 11 | 11 | |
Store key | 10 | 12 | |
SelectedGuildStore store | 10 | 10 | |
getLocale key | 9 | 10 | |
GuildMemberStore store | 9 | 10 | |
(dynamic) store | 9 | 10 | |
SelectedChannelStore store | 9 | 9 | |
openModal key | 9 | 9 | |
sendMessage key | 8 | 8 | |
(dynamic) key | 8 | 8 | |
getGuildIconURL key | 6 | 6 | |
Unsupported animation config: string | 6 | 6 | |
connectStores key | 6 | 6 | |
getCurrentUser key | 6 | 6 | |
container key | 5 | 6 | |
selectionMode:"single",onSelectionChange: string | 5 | 5 | |
isSelected: string | 5 | 5 | |
stickToMarkers string | 5 | 5 | |
openUserProfileModal key | 5 | 5 |
parseTopic key | 5 | 5 | |
PresenceStore store | 5 | 5 | |
GuildRoleStore store | 5 | 5 | |
_sendMessage key | 5 | 5 | |
message key | 5 | 5 | |
MediaEngineStore store | 5 | 5 | |
icon key | 4 | 7 | |
MessageStore store | 4 | 5 | |
getNickname string | 4 | 5 | |
button key | 4 | 5 | |
intl key | 4 | 5 | |
VoiceStateStore store | 4 | 4 | |
chat key | 4 | 4 | |
base key | 4 | 4 | |
channel key | 4 | 4 | |
scroller key | 4 | 4 | |
iconContainer key | 4 | 4 | |
.getState();for string | 4 | 4 | |
register key | 4 | 4 | |
onCloseRequest string | 4 | 4 | |
onCloseCallback string | 4 | 4 | |
parse key | 4 | 4 | |
locale key | 4 | 4 | |
initialize key | 4 | 4 | |
RTCConnectionStore store | 4 | 4 | |
guildId string | 3 | 8 | |
MANAGE_CHANNELS string | 3 | 7 | |
onClose string | 3 | 5 | |
grow key | 3 | 5 | |
LocalActivityStore store | 3 | 4 | |
checked string | 3 | 4 | |
content key | 3 | 4 | |
GuildChannelStore store | 3 | 3 | |
UserProfileStore store | 3 | 3 | |
title key | 3 | 3 | |
channelTextArea key | 3 | 3 | |
editMessage key | 3 | 3 | |
ApplicationStreamingStore store | 3 | 3 | |
channel string | 3 | 3 | |
anchor key | 3 | 3 | |
anchorUnderlineOnHover key | 3 | 3 | |
hasIcon string | 3 | 3 | |
switchIconsEnabled string | 3 | 3 | |
GUILD_EMOJI key | 3 | 3 | |
GUILD_EMOJIS key | 3 | 3 | |
messageType string | 3 | 3 | |
sanitizeUrl string | 3 | 3 | |
root key | 3 | 3 | |
.modalKey? string | 3 | 3 | |
statusColor string | 3 | 3 | |
Icon key | 3 | 3 | |
thin key | 3 | 3 | |
ThemeStore store | 3 | 3 | |
PLAYING string | 3 | 3 | |
instant string | 3 | 3 | |
backdropStyle string | 3 | 3 | |
USER_UPDATE string | 3 | 3 | |
Promise.resolve string | 3 | 3 | |
section string | 3 | 3 | |
innerClassName string | 3 | 3 | |
jumpToMessage key | 3 | 3 | |
getUserAvatarURL key | 3 | 3 | |
sidebar key | 3 | 3 | |
Animation key | 3 | 3 | |
renderPopout string | 3 | 3 | |
label string | 3 | 3 | |
description string | 3 | 3 | |
stickToMarkers key | 3 | 3 | |
initialValue key | 3 | 3 | |
data-direction string | 3 | 3 | |
data-justify string | 3 | 3 | |
shouldIndicateNewChannel string | 3 | 3 | |
decorations string | 3 | 3 | |
data-text-variant string | 3 | 3 | |
showNotification key | 3 | 3 | |
(dynamic) undefined | 3 | 3 | |
filesMetadata: string | 3 | 3 | |
requireConfirm: string | 3 | 3 | |
fetchMessage key | 3 | 3 | |
deleteMessage key | 3 | 3 | |
displayProfile string | 3 | 3 | |
.BUTTON_LOADING_STARTED_LABEL, string | 3 | 3 | |
getStateFromStores string | 3 | 3 | |
activity string | 2 | 6 | |
platform=== string | 2 | 4 | |
spotifyData string | 2 | 4 | |
colorPrimary key | 2 | 4 | |
layer key | 2 | 4 | |
circleIcon key | 2 | 4 | |
avatarWrapper key | 2 | 3 | |
gameState key | 2 | 3 | |
clickableImage key | 2 | 3 | |
duration string | 2 | 3 | |
gameProfileModalChecks string | 2 | 3 | |
onOpened string | 2 | 3 | |
data string | 2 | 3 | |
getOfficialGame 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 | |
standardSidebarView key | 2 | 2 | |
_dispatch key | 2 | 2 | |
numpad plus string | 2 | 2 | |
buttons key | 2 | 2 | |
inner key | 2 | 2 | |
canRemoveAnyRoles string | 2 | 2 | |
avatarContainer key | 2 | 2 | |
PermissionStore store | 2 | 2 | |
decorator key | 2 | 2 | |
preload key | 2 | 2 | |
translateSurrogatesToInlineEmoji string | 2 | 2 | |
separator key | 2 | 2 | |
statusPickerModalMenu key | 2 | 2 | |
leadingLayout: string | 2 | 2 | |
actions: string | 2 | 2 | |
.message string | 2 | 2 | |
display string | 2 | 2 | |
getUserOutbox string | 2 | 2 | |
timestamps string | 2 | 2 | |
.TEXT_FEEDBACK_POSITIVE string | 2 | 2 | |
start string | 2 | 2 | |
end 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 | |
openUserSettings key | 2 | 2 | |
getWindowOpen string | 2 | 2 | |
CHANNEL_CALL_POPOUT string | 2 | 2 | |
__unsupportedReactNodeAsText string | 2 | 2 | |
transitionToGuild - Transitioning to string | 2 | 2 | |
guild string | 2 | 2 | |
isGuildStageVoice string | 2 | 2 | |
.CONNECT string | 2 | 2 | |
NewGameStore store | 2 | 2 | |
ApplicationStore store | 2 | 2 | |
relationshipType string | 2 | 2 | |
hasAvatarForGuild string | 2 | 2 | |
variant 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 | |
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 | |
focusLock key | 2 | 2 | |
small key | 2 | 2 | |
bar key | 2 | 2 | |
tabularNumbers key | 2 | 2 | |
,instant: string | 2 | 2 | |
.onCloseCallback() string | 2 | 2 | |
throttle key | 2 | 2 | |
isMobile string | 2 | 2 | |
Provider string | 2 | 2 | |
Divider key | 2 | 2 | |
useSpring key | 2 | 2 | |
defaultColor key | 2 | 2 | |
onClickContainer: string | 2 | 2 | |
user: string | 2 | 2 | |
.isNonUserBot()? string | 2 | 2 | |
SWITCH_BACKGROUND_DEFAULT string | 2 | 2 | |
RunningGameStore store | 2 | 2 | |
UserSettingsProtoStore store | 2 | 2 | |
WindowStore store | 2 | 2 | |
useContext string | 2 | 2 | |
.setState string | 2 | 2 | |
.getState()[ string | 2 | 2 | |
navigationDescription key | 2 | 2 | |
scrollerInner key | 2 | 2 | |
messageListItem key | 2 | 2 | |
threadMessageAccessoryContentLeadingIcon key | 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 | |
"text-input" string | 2 | 2 | |
uploadFileToCloud string | 2 | 2 | |
getSendMessageOptionsForReply key | 2 | 2 | |
openPrivateChannel key | 2 | 2 | |
actionBarInputLayout string | 2 | 2 | |
username key | 2 | 2 | |
getLastSelectedChannelId key | 2 | 2 | |
AnalyticEventConfigs key | 2 | 2 | |
getDiscordUtils key | 2 | 2 | |
textArea key | 2 | 2 | |
layerContainer key | 2 | 2 | |
setBadge key | 2 | 2 | |
GUILD_TEXT key | 2 | 2 | |
"fieldset" string | 2 | 2 | |
"legend" string | 2 | 2 | |
.controlId string | 2 | 2 | |
),style:{marginTop: string | 2 | 2 | |
helperTextId string | 2 | 2 | |
errorMessage string | 2 | 2 | |
INVERTED key | 2 | 2 | |
getStageInstanceByChannel string | 2 | 2 | |
getRecipientId string | 2 | 2 | |
getTypingUsers string | 2 | 2 | |
hasActiveThreads string | 2 | 2 | |
isGuildVocal string | 2 | 2 | |
must not be a thread starter message string | 2 | 2 | |
CHANNEL_THREAD_VIEW string | 2 | 2 | |
GUILD_DISCOVERY string | 2 | 2 | |
getObscureReason string | 2 | 2 | |
withMentionPrefix string | 2 | 2 | |
button string | 2 | 2 | |
hasText string | 2 | 2 | |
expressiveWrapper string | 2 | 2 | |
WebkitLineClamp string | 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 | |
app key | 2 | 2 | |
Looks key | 2 | 2 | |
Link key | 2 | 2 | |
getVoiceChannelId key | 2 | 2 | |
getState key | 2 | 2 | |
onExitComplete string | 2 | 2 | |
CallChatSidebar string | 2 | 2 | |
baseLayer key | 2 | 2 | |
getDisambiguatedEmojiContext key | 2 | 2 | |
getEmojiUnavailableReason key | 2 | 2 | |
fetchMessages key | 2 | 2 | |
trailing key | 2 | 2 | |
getUserMaxFileSize string | 2 | 2 | |
padding-size-sm key | 2 | 2 | |
buttonWrapper key | 2 | 2 | |
buttonContent key | 2 | 2 | |
emojiButton key | 2 | 2 | |
stickerButton key | 2 | 2 | |
trinketsIcon key | 2 | 2 | |
.PlatformTypes.WINDOWS string | 2 | 2 | |
leading: string | 2 | 2 | |
createRoot key | 2 | 2 | |
getLastSelectedGuildId key | 2 | 2 | |
transitionTo - Transitioning to string | 2 | 2 | |
ack key | 2 | 2 | |
PopoutWindowStore store | 2 | 2 | |
UserGuildSettingsStore store | 2 | 2 | |
iconWrapper key | 2 | 2 | |
requestPermission key | 2 | 2 | |
LocaleStore store | 2 | 2 | |
hovered key | 2 | 2 | |
FocusRing was given a focusTarget string | 2 | 2 | |
moveGrabber string | 2 | 2 | |
,scrollbarType: string | 2 | 2 | |
getChannel key | 2 | 2 | |
TypingStore store | 2 | 2 | |
isTyping string | 2 | 2 | |
tree key | 2 | 2 | |
tutorialContainer key | 2 | 2 | |
listItemWrapper key | 2 | 2 | |
lowerBadge key | 2 | 2 | |
selected key | 2 | 2 | |
getMessage key | 2 | 2 | |
getMessages key | 2 | 2 | |
colorBrandInverted key | 1 | 5 | |
setState key | 1 | 3 | |
autocomplete key | 1 | 3 | |
plateMuted key | 1 | 3 | |
disabled string | 1 | 2 | |
component string | 1 | 2 | |
tooltipText string | 1 | 2 | |
labelContainer key | 1 | 2 | |
control key | 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 | |
disableReturnRef string | 1 | 2 | |
children string | 1 | 2 | |
"tooltip" string | 1 | 2 | |
submenuPaddingContainer string | 1 | 2 | |
controlIcon key | 1 | 2 | |
readyState string | 1 | 2 | |
zoomable string | 1 | 2 | |
minHeight string | 1 | 2 | |
.MODAL_ROOT_LEGACY, string | 1 | 2 | |
autocompleteInner key | 1 | 2 | |
lottieIcon key | 1 | 2 | |
selectChannel key | 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 | |
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 | |
onExpand string | 1 | 1 | |
onCollapse string | 1 | 1 | |
canAddRoles string | 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 | |
onCloseProfile: string | 1 | 1 | |
trackUserProfileAction: string | 1 | 1 | |
PRESS_CLEAR_CUSTOM_STATUS string | 1 | 1 | |
fetchApplication key | 1 | 1 | |
imageClassName string | 1 | 1 | |
A.AVATAR string | 1 | 1 | |
pendingAvatarDecoration string | 1 | 1 | |
STREAMING string | 1 | 1 | |
isVROnline string | 1 | 1 | |
currentProfileAvatarHash string | 1 | 1 | |
name string | 1 | 1 | |
setPopoutRef string | 1 | 1 | |
fetchGuildProfile 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 | |
.style string | 1 | 1 | |
"data-text-variant" string | 1 | 1 | |
warn string | 1 | 1 | |
preview string | 1 | 1 | |
instanceof string | 1 | 1 | |
widget string | 1 | 1 | |
pendingNameplate string | 1 | 1 | |
submitting string | 1 | 1 | |
message string | 1 | 1 | |
childFactory string | 1 | 1 | |
"TGg/2k" string | 1 | 1 | |
FAILURE string | 1 | 1 | |
currentToastMap string | 1 | 1 | |
slice(1) string | 1 | 1 | |
appContext string | 1 | 1 | |
USER_SET_GUILD_IDENTITY string | 1 | 1 | |
"USER_PROFILE_SETTINGS_SET_PENDING_CHANGES" string | 1 | 1 | |
0l1.38-1.38a2 string | 1 | 1 | |
DISPLAY_NAME_STYLES_CLOSED string | 1 | 1 | |
labelId string | 1 | 1 | |
helperText string | 1 | 1 | |
"boolean" string | 1 | 1 | |
defaultDirty string | 1 | 1 | |
GENERIC_RICH_TEXTAREA string | 1 | 1 | |
EmojiIntention.CHAT string | 1 | 1 | |
?.value?? string | 1 | 1 | |
maxOptionsVisible string | 1 | 1 | |
getSelfMember string | 1 | 1 | |
getGuildsArray string | 1 | 1 | |
guildBadge string | 1 | 1 | |
Masks.CLAN_ICON string | 1 | 1 | |
getGuildIconURL string | 1 | 1 | |
PROFILE_EFFECT string | 1 | 1 | |
pendingGlobalName string | 1 | 1 | |
pendingNickname string | 1 | 1 | |
pendingPrimaryGuildId string | 1 | 1 | |
"USER_PROFILE_SETTINGS_SUBMIT" string | 1 | 1 | |
"PASSWORD_UPDATED" string | 1 | 1 | |
DISABLE_ACCOUNT string | 1 | 1 | |
"USER_PROFILE_SETTINGS_INIT" string | 1 | 1 | |
"USER_PROFILE_SETTINGS_CLOSE" string | 1 | 1 | |
USER_HARVEST string | 1 | 1 | |
"USER_PROFILE_SETTINGS_CLEAR_ERRORS" string | 1 | 1 | |
"USER_PROFILE_SETTINGS_RESET_PENDING_ACCOUNT_CHANGES" string | 1 | 1 | |
"USER_PROFILE_SETTINGS_RESET_PENDING_CHANGES" string | 1 | 1 | |
"USER_PROFILE_SETTINGS_RESET_AND_CLOSE_FORM" string | 1 | 1 | |
"USER_PROFILE_SETTINGS_RESET_PENDING_LEGACY_USERNAME_DISABLED" string | 1 | 1 | |
"USER_PROFILE_SETTINGS_RESET_PENDING_PRIMARY_GUILD_CHANGES" string | 1 | 1 | |
"USER_PROFILE_UPDATE_START" string | 1 | 1 | |
"USER_PROFILE_PIN_BADGES_ON_CLIENT" string | 1 | 1 | |
"USER_PROFILE_SETTINGS_RESET_PENDING_PROFILE_CHANGES" string | 1 | 1 | |
"USER_PROFILE_SETTINGS_RESET_TRY_IT_OUT_CHANGES" string | 1 | 1 | |
"USER_PROFILE_SETTINGS_SET_TRY_IT_OUT_AVATAR" string | 1 | 1 | |
"USER_PROFILE_SETTINGS_SET_TRY_IT_OUT_AVATAR_DECORATION" string | 1 | 1 | |
"USER_PROFILE_SETTINGS_SET_TRY_IT_OUT_BANNER" string | 1 | 1 | |
"USER_PROFILE_SETTINGS_SET_TRY_IT_OUT_THEME_COLORS" string | 1 | 1 | |
"USER_PROFILE_SETTINGS_SET_TRY_IT_OUT_DISPLAY_NAME_STYLES" string | 1 | 1 | |
"USER_PROFILE_SETTINGS_SET_TRY_IT_OUT_PRESET" string | 1 | 1 | |
SHAKE_PROFILE_MODAL 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 | |
isLaunchableLoading string | 1 | 1 | |
getGameByApplication string | 1 | 1 | |
"scrim":"empty" string | 1 | 1 | |
roles string | 1 | 1 | |
map(e string | 1 | 1 | |
isDM string | 1 | 1 | |
AccessibilityStore store | 1 | 1 | |
AuthenticationStore store | 1 | 1 | |
UserProfileSettingsStore 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 | |
"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 | |
Fragment string | 1 | 1 | |
ipCountryCode 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 | |
currentProfileThemeColors string | 1 | 1 | |
pendingBanner string | 1 | 1 | |
accessibleValue string | 1 | 1 | |
pendingProfileEffect string | 1 | 1 | |
pendingProfileFrame string | 1 | 1 | |
userValue string | 1 | 1 | |
SUPPORTS_JOIN_URL 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 | |
fullscreenOnMobile key | 1 | 1 | |
bannerButton key | 1 | 1 | |
disabled 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 | |
SENT_BY_SOCIAL_LAYER_INTEGRATION 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 | |
wrapperControlsHidden key | 1 | 1 | |
hoverButtonGroup key | 1 | 1 | |
visualMediaItemContainer key | 1 | 1 | |
dimensionlessImage 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 | |
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 | |
.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 | |
DispatchApplicationStore string | 1 | 1 | |
:null! string | 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 | |
rtcConnectionStatus key | 1 | 1 | |
ping key | 1 | 1 | |
connection key | 1 | 1 | |
bookmark string | 1 | 1 | |
mark-unread string | 1 | 1 | |
["children","className","element"] string | 1 | 1 | |
_channelMessages key | 1 | 1 | |
embed_ 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 | |
uaUU/g string | 1 | 1 | |
BAN_MEMBERS key | 1 | 1 | |
showMentionToggle string | 1 | 1 | |
FOCUS_CHANNEL_TEXT_AREA string | 1 | 1 | |
channelBottomBarArea key | 1 | 1 | |
scrollbarGutterStable key | 1 | 1 | |
stopPropagation(), string | 1 | 1 | |
onClick: string | 1 | 1 | |
dangerous 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 | |
renderUsers protoKey | 1 | 1 | |
renderMoreUsers protoKey | 1 | 1 | |
.guildbar.AVATAR_SIZE string | 1 | 1 | |
backgroundStyle string | 1 | 1 | |
PendingReplyStore store | 1 | 1 | |
"data-mana-component":"select" 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 | |
horizontalControlColumnWidth:`min($ string | 1 | 1 | |
unsubscribe key | 1 | 1 | |
usernameFont key | 1 | 1 | |
getSrc protoKey | 1 | 1 | |
getRatio protoKey | 1 | 1 | |
generateGuildPermissionSpec key | 1 | 1 | |
roleCircle key | 1 | 1 | |
role key | 1 | 1 | |
roleTag key | 1 | 1 | |
eyebrow key | 1 | 1 | |
getEmojiURL key | 1 | 1 | |
interactive string | 1 | 1 | |
iconType string | 1 | 1 | |
isEmojiDisabled key | 1 | 1 | |
isEmojiFiltered key | 1 | 1 | |
topEmojis string | 1 | 1 | |
getDisambiguatedEmojiContext string | 1 | 1 | |
useEmojiCategories string | 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 | |
botTagCozy key | 1 | 1 | |
botTagVerified key | 1 | 1 | |
getVoiceStatesForChannel key | 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 | |
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 | |
statusOffline key | 1 | 1 | |
guildDetail key | 1 | 1 | |
closePrivateChannel key | 1 | 1 | |
isViewingRoles 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 | |
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 | |
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 | |
searchWithoutFetchingLatest key | 1 | 1 | |
parsePreprocessor key | 1 | 1 | |
unparse key | 1 | 1 | |
GuildFeatures key | 1 | 1 | |
setSearchQuery key | 1 | 1 | |
isMaxVisiblePageWarningVisible string | 1 | 1 | |
paginationMaxVisiblePage string | 1 | 1 | |
getFrequentlyUsedReactionEmojisWithoutFetchingLatest string | 1 | 1 | |
loadIfNecessary string | 1 | 1 | |
EMOJI_NAME_RE key | 1 | 1 | |
RawGuildEmojiStore store | 1 | 1 | |
paste key | 1 | 1 | |
getSetting key | 1 | 1 | |
PlatformTypes.WINDOWS string | 1 | 1 | |
winButton key | 1 | 1 | |
iterations! string | 1 | 1 | |
insertFragment string | 1 | 1 | |
uploadArea key | 1 | 1 | |
textAreaSlate key | 1 | 1 | |
renderGIF() string | 1 | 1 | |
imagePool string | 1 | 1 | |
highlight key | 1 | 1 | |
hasLanguage key | 1 | 1 | |
closeModal key | 1 | 1 | |
closeAllModals key | 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 | |
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 | |
intl string | 1 | 1 | |
(){var string | 1 | 1 | |
.GIFS_TRENDING_GIFS, string | 1 | 1 | |
.GIFS_TRENDING, string | 1 | 1 | |
bindAll key | 1 | 1 | |
debounce key | 1 | 1 | |
.GAME_PROFILE:return[] string | 1 | 1 | |
channel_item string | 1 | 1 | |
.HEADER_BAR) string | 1 | 1 | |
getPlaceholder protoKey | 1 | 1 | |
channelWithIcon string | 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 | |
embedFull key | 1 | 1 | |
embedVideoActions key | 1 | 1 | |
iconWrapperActive key | 1 | 1 | |
ReadStateStore store | 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 | |
startTyping key | 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 | |
getGuildFolderById key | 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 | |
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 | |
embedMedia key | 1 | 1 | |
embedVideo key | 1 | 1 | |
embedSuppressButton key | 1 | 1 | |
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 | |
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 | |
SessionsStore store | 1 | 1 | |
useSyncExternalStore key | 1 | 1 | |
.hex string | 1 | 1 | |
isMobileOnline string | 1 | 1 | |
getAnyStreamForUser string | 1 | 1 | |
channelTypeOverride string | 1 | 1 | |
isFavoriteSuggestion string | 1 | 1 | |
getMaskId() string | 1 | 1 | |
statusBackdropColor string | 1 | 1 | |
fromIsMobile string | 1 | 1 | |
selectedClassName string | 1 | 1 | |
listitem string | 1 | 1 | |
UserProfileBadgeListRows string | 1 | 1 | |
showAccountIdentifier string | 1 | 1 | |
overrideDiscriminator string | 1 | 1 | |
userInfo key | 1 | 1 | |
.duration_secs string | 1 | 1 | |
.waveform string | 1 | 1 | |
.url string | 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 | |
.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 | |
ImageLoaderUtils.getSrcWithWidthAndHeight string | 1 | 1 | |
toolbarClassName 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 | |
"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 | |
sendBotMessage key | 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 | |
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 | |
SpotifyStore store | 1 | 1 | |
PLAYER_PAUSE 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 | |
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 | |
labelWrapper key | 1 | 1 | |
rtcConnectionStatusConnected key | 1 | 1 | |
voiceButtonsContainer key | 1 | 1 | |
default key | 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 | |
onHide string | 1 | 1 | |
getAvatarURL string | 1 | 1 | |
Refetch string | 1 | 1 | |
typingUsers: string | 1 | 1 | |
]:!0,interactive: string | 1 | 1 | |
SUPPRESS_NOTIFICATIONS string | 1 | 1 | |
SELF_MENTIONABLE_SYSTEM string | 1 | 1 | |
percent string | 1 | 1 | |
foregroundGradientColor string | 1 | 1 | |
message_reference string | 1 | 1 | |
isProbablyAValidSnowflake string | 1 | 1 | |
appAsidePanelWrapper key | 1 | 1 | |
hasThread key | 1 | 1 | |
messageSpine key | 1 | 1 | |
repliedMessageClickableSpine key | 1 | 1 | |
type:"CHANNEL_ACK",channelId string | 1 | 1 | |
type:"BULK_ACK",channels: string | 1 | 1 | |
.BOT string | 1 | 1 | |
.ORIGINAL_POSTER 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 | |
panels key | 1 | 1 | |
accountPopoutButtonWrapper key | 1 | 1 | |
.pronouns string | 1 | 1 | |
UserProfilePopoutBody string | 1 | 1 | |
trackUserProfileAction string | 1 | 1 | |
.hidePersonalInformation string | 1 | 1 | |
QuickSwitcher string | 1 | 1 | |
.searchableTitles string | 1 | 1 | |
receiveMessage key | 1 | 1 | |
getDMFromUserId key | 1 | 1 | |
type:"CREATE_PENDING_REPLY" string | 1 | 1 | |
M7 1a1 1 0 0 1 1 1v.75c0 string | 1 | 1 | |
SingleSelect string | 1 | 1 | |
selectionMode string | 1 | 1 | |
Modal key | 1 | 1 |
| Method | Plugins | Calls | |
|---|---|---|---|
(dynamic) | 38 | 64 | |
type | 25 | 31 | |
render | 24 | 32 | |
A | 17 | 21 | |
Ay | 6 | 7 | |
sendMessage | 6 | 6 | |
children | 5 | 7 | |
Z | 3 | 5 | |
componentDidMount | 3 | 3 | |
_sendMessage | 3 | 3 | |
showNotification | 2 | 3 | |
componentWillUnmount | 2 | 2 | |
OZ | 2 | 2 | |
renderElement | 2 | 2 | |
buildLayout | 1 | 2 | |
Avatar | 1 | 2 | |
renderSection | 1 | 2 | |
getActivities | 1 | 1 | |
getActiveSocketAndDevice | 1 | 1 | |
RolesListWithOverflow | 1 | 1 | |
editMessage | 1 | 1 | |
f5 | 1 | 1 | |
renderNameZone | 1 | 1 | |
LayerSurface | 1 | 1 | |
messageHeader | 1 | 1 |
renderAttachments | 1 | 1 | |
E | 1 | 1 | |
Button | 1 | 1 | |
ContentInventoryCardHeader | 1 | 1 | |
GameProfileV2Trailing | 1 | 1 | |
useCallback | 1 | 1 | |
useState | 1 | 1 | |
handle | 1 | 1 | |
isMobileOnline | 1 | 1 | |
getUserProfile | 1 | 1 | |
track | 1 | 1 | |
ensureModule | 1 | 1 | |
setObservedGamesCallback | 1 | 1 | |
isEmojiFiltered | 1 | 1 | |
setBadge | 1 | 1 | |
setSystemTrayIcon | 1 | 1 | |
onMouseDown | 1 | 1 | |
onAuxClick | 1 | 1 | |
onMouseUp | 1 | 1 | |
onMouseEnter | 1 | 1 | |
onMouseLeave | 1 | 1 | |
get | 1 | 1 | |
getRowHeight | 1 | 1 | |
isFocused | 1 | 1 | |
searchWithoutFetchingLatest | 1 | 1 | |
parse | 1 | 1 | |
getEmojiUnavailableReason | 1 | 1 | |
getEmojiURL | 1 | 1 | |
Nameplate | 1 | 1 | |
useGradientStyle | 1 | 1 | |
getWidth | 1 | 1 | |
renderControls | 1 | 1 | |
action | 1 | 1 | |
getSearchKlipyText | 1 | 1 | |
foundSearch | 1 | 1 | |
foundTrending | 1 | 1 | |
foundTrendingCategories | 1 | 1 | |
quickSwitcherResultsChanged | 1 | 1 | |
getUserAvatarURL | 1 | 1 | |
renderEmbeds | 1 | 1 | |
renderContent | 1 | 1 | |
maybeAutoUpgradeChannel | 1 | 1 | |
confirmPin | 1 | 1 | |
confirmUnpin | 1 | 1 | |
shouldShowWarning | 1 | 1 | |
canUseVoiceActivity | 1 | 1 | |
can | 1 | 1 | |
Ip | 1 | 1 | |
wasAutoPaused | 1 | 1 | |
handleVoiceConnect | 1 | 1 | |
handleBlockedOrIgnoredUserVoiceChannelJoin | 1 | 1 | |
updateAsync | 1 | 1 | |
getSpeakingWhileMuted | 1 | 1 | |
getDiscoverableVoiceState | 1 | 1 | |
react | 1 | 1 | |
cq | 1 | 1 | |
default | 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.
The resilient counterpart within selectors: 61 themes and 27 plugins instead target classes by stable prefix — attribute-substring selectors ([class*="wrapper_"], [class^=; 3,529 selectors in all) that match the name and ignore the hash, so they survive rehashing. Counted over the same content as the tables above: store file plus remote @import CSS attributed per importing theme, and for plugins string literals only (embedded CSS and querySelector arguments), never raw JS text. The other class-attribute operators ($=, ~=, |=) are deliberately excluded — in this corpus they are code-block language matching ([class$="python" i]), not churn resilience.
| 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,026 | 11.1 | |
| zuzumi / Discord11 | 57,340 | 10.8 | |
| 11pixels / dtm-16 | 14,433 | 4.9 | |
| CapnKitten / Material-Discord | 11,986 | 13.2 | |
| JustCursedRedLuigi / SkeuoCord | 10,075 | 12.1 | |
| KillYoy / DiscordNight | 7,669 | 22.2 | |
| 11pixels / dtm-08 | 6,826 | 4.3 | |
| Saltssaumure / Tritone | 5,369 | 22.8 | |
| DevilBro / BasicBackground | 4,715 | 10.5 | |
| Saltssaumure / NineX | 4,349 | 13.9 | |
| Eight_P / T1 | 3,866 | 25.0 | |
| Nebulys / WizardUI | 3,567 | 11.8 |
| lolpowerluke / alanWalker | 3,541 | 10.2 | |
| Elisniper / Glass Wave | 3,233 | 9.0 | |
| DevilBro / DiscordRecolor | 2,600 | 10.0 | |
| milbit / OldCord | 2,381 | 5.1 | |
| Gibbu / Fluent | 2,368 | 5.1 | |
| SyndiShanX / discorddark | 2,272 | 16.1 | |
| LeafyLuigi / pyrite | 2,186 | 11.4 | |
| Elisniper / Material Blue Discord | 2,183 | 7.4 | |
| ShadowDevilsAvenged / NewAkameGaKill | 1,972 | 18.1 | |
| ShadowDevilsAvenged / Old-AkameGaKill-Theme | 1,950 | 17.6 | |
| cruxie / nocturnal | 1,928 | 11.0 | |
| CapnKitten / Translucence | 1,901 | 11.8 | |
| CapnKitten / Spotify-Discord | 1,890 | 13.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 / Discord Reborn | 1,748 | 6.5 | |
| ShadowDevilsAvenged / Old-BNHA-Theme | 1,728 | 17.2 | |
| cruxie / neutron | 1,622 | 10.5 | |
| DevEvil / RosyNight | 1,535 | 13.1 | |
| epic1online / Nox | 1,531 | 11.8 | |
| Izy / Quiet | 1,470 | 6.9 | |
| Zacam / PurpleOnyx | 1,354 | 11.0 | |
| DevEvil / Azurite | 1,348 | 6.7 | |
| NyxIsBad / ClearVision-v7-BetterDiscord | 1,280 | 14.3 | |
| HawkRatio / OperaGX | 1,235 | 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 | |
| DevilBro / BlurpleRecolor | 922 | 8.7 | |
| Tropical / DarkMatter | 922 | 7.4 | |
| Gibbu / FrostedGlass | 862 | 9.1 | |
| cavw / AlternativeVistaAutoUpdate | 845 | 7.1 | |
| malasangre / roundmoled | 843 | 7.1 | |
| Saltssaumure / Neobrutal | 811 | 17.5 | |
| refact0r / system24 | 784 | 6.7 | |
| markchan0225 / RoundedDiscord | 779 | 35.4 | |
| VaporousCreeper / GGO_Kirito | 763 | 14.7 | |
| dav#8444 / dtm-18 | 761 | 1.0 | |
| LuckFire / amoled-cord | 668 | 11.3 | |
| refact0r / midnight | 629 | 6.7 | |
| Gibbu / MinimalCord | 620 | 12.6 | |
| ungiglio / discordia | 608 | 9.3 | |
| bielak / cyberpunk2077 | 600 | 13.2 | |
| Saltssaumure / piOS | 561 | 12.5 | |
| Mixter213 / MixPack | 548 | 19.3 | |
| DevEvil / Neptune | 513 | 5.5 | |
| Insta / DiscordPlus | 443 | 5.7 | |
| snajper.exe / gxcord | 434 | 1.3 | |
| the.rabbit.disabler / aider | 391 | 4.0 | |
| tnt4me / SleekCord | 389 | 11.6 | |
| orblazer / nordic | 386 | 8.1 | |
| Gibbu / SoftX | 371 | 7.9 | |
| Sappy / SpotiCord | 361 | 5.2 | |
| DevEvil / Ocean | 353 | 3.6 | |
| The Commie Axolotl / MaterialDesign | 307 | 4.9 | |
| DevilBro / ServerColumns | 255 | 15.0 | |
| zuzumi / Moon-Rabbits-Dream-About-Virtual | 251 | 4.7 | |
| cursedelectric / CursedCord | 238 | 0.6 | |
| the.rabbit.disabler / shine | 230 | 6.4 | |
| the.rabbit.disabler / ddex4 | 199 | 4.8 | |
| The Commie Axolotl / Ultra | 196 | 8.1 | |
| puckzxz / NotAnotherAnimeTheme | 180 | 14.7 | |
| 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 | |
| Alex / amethyst | 48 | 0.1 | |
| Alex / kaleidoscope | 48 | 0.6 | |
| Ashtrath / tokyo-night | 48 | 2.8 | |
| Gibbu / HorizontalServerList | 29 | 9.9 | |
| 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 | |
| Skamt / Tabbys | 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. 153 addons consume at least one of Discord's 4,945 live variables; 98 define (reskin) one of those names, and 127 define custom properties at all (6,844 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 | 48 | |
--background-base-lower | 29 | |
--space-xs | 29 | |
--border-subtle | 29 | |
--text-strong | 29 | |
--text-default | 28 | |
--status-danger | 26 | |
--background-secondary-alt | 24 | |
--channels-default | 23 | |
--custom-guild-list-width | 22 | |
--font-primary | 22 | |
--radius-sm | 21 | |
--custom-app-top-bar-height | 21 | |
--elevation-high | 21 | |
--background-accent | 20 |
--font-display | 19 | |
--background-base-low | 19 | |
--custom-guild-sidebar-width | 18 | |
--interactive-muted | 17 | |
--white | 16 | |
--text-subtle | 16 | |
--background-base-lowest | 15 | |
--space-8 | 15 | |
--interactive-text-default | 15 | |
--brand-500 | 14 | |
--background-surface-high | 13 | |
--space-md | 13 | |
--text-link | 12 | |
--interactive-text-hover | 11 | |
--channeltextarea-background | 11 | |
--elevation-low | 11 | |
--background-mod-strong | 11 | |
--custom-channel-header-height | 10 | |
--interactive-text-active | 10 | |
--background-mod-subtle | 10 | |
--elevation-stroke | 10 | |
--font-code | 10 | |
--space-12 | 10 | |
--space-16 | 10 | |
--space-sm | 9 | |
--input-background-default | 9 | |
--guildbar-avatar-size | 9 | |
--input-border-default | 9 | |
--scrollbar-auto-thumb | 9 | |
--space-xxs | 8 | |
--status-positive | 8 | |
--radius-xs | 8 | |
--background-surface-highest | 8 | |
--spine-width | 8 | |
--scrollbar-thin-thumb | 8 | |
--white-500 | 8 | |
--control-primary-background-default | 7 | |
--scrollbar-thin-track | 7 | |
--background-surface-higher | 7 | |
--space-4 | 7 | |
--border-normal | 7 | |
--white-500-hsl | 7 | |
--custom-guild-list-padding | 7 | |
--elevation-medium | 7 | |
--space-24 | 7 | |
--scrollbar-auto-track | 7 | |
--status-positive-background | 7 | |
--radius-md | 6 | |
--status-warning | 6 | |
--custom-member-list-width | 6 | |
--space-32 | 6 | |
--interactive-background-hover | 6 | |
--border-strong | 6 | |
--background-mod-normal | 6 | |
--guild-boosting-pink | 6 | |
--custom-channel-textarea-text-area-height | 5 | |
--radius-lg | 5 | |
--custom-button-button-sm-height | 5 | |
--custom-message-margin-horizontal | 5 | |
--radius-round | 5 | |
--background-gradient-highest | 5 | |
--channel-icon | 5 | |
--custom-panels-spacing | 5 | |
--border-muted | 5 | |
--control-primary-background-hover | 5 | |
--control-primary-background-active | 5 | |
--custom-emoji-sprite-bg-position | 5 | |
--custom-emoji-sprite-bg-size | 5 | |
--decoration-to-avatar-ratio | 5 | |
--icon-muted | 5 | |
--black-500-hsl | 5 | |
--tooltip-pointer-bg | 5 | |
--green-360 | 5 | |
--custom-theme-base-color | 4 | |
--background-feedback-warning | 4 | |
--control-secondary-background-default | 4 | |
--brand-360 | 4 | |
--space-lg | 4 | |
--chat-avatar-size | 4 | |
--interactive-background-selected | 4 | |
--primary-660-hsl | 4 | |
--control-primary-text-default | 4 | |
--input-border-hover | 4 | |
--chat-resize-handle-width | 4 | |
--mention-background | 4 | |
--mention-foreground | 4 | |
--brand-560 | 4 | |
--primary-500 | 4 | |
--black-500 | 4 | |
--black-hsl | 4 | |
--font-weight-semibold | 4 | |
--user-profile-border | 4 | |
--background-mod-muted | 4 | |
--brand-600 | 3 | |
--brand-700 | 3 | |
--space-xl | 3 | |
--space-xxl | 3 | |
--chat-markup-line-height | 3 | |
--red-500 | 3 | |
--red-400 | 3 | |
--brand-200 | 3 | |
--background-gradient-low | 3 | |
--neutral-40 | 3 | |
--custom-user-profile-banner-height | 3 | |
--font-weight-bold | 3 | |
--user-profile-overlay-background | 3 | |
--app-frame-border | 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 | |
--text-feedback-critical | 3 | |
--interactive-icon-default | 3 | |
--background-brand | 3 | |
--icon-subtle | 3 | |
--bar-offset | 3 | |
--text-brand | 3 | |
--custom-premium-colors-premium-gradient-tier-2-diagonal | 3 | |
--primary-430 | 3 | |
--modal-background | 3 | |
--custom-message-spacing-vertical-container-cozy | 3 | |
--custom-standard-sidebar-view-sidebar-content-scrollbar-padding | 3 | |
--custom-emoji-picker-border-radius | 3 | |
--background-scrim | 3 | |
--neutral-1 | 3 | |
--message-highlight-background-default | 3 | |
--primary-600-hsl | 3 | |
--primary-600 | 3 | |
--custom-status-bubble-background-color | 3 | |
--status-positive-text | 3 | |
--primary-400 | 3 | |
--blue-345 | 3 | |
--red-400-hsl | 3 | |
--primary-700-hsl | 3 | |
--primary-800-hsl | 3 | |
--custom-preview-background | 2 | |
--brand-400 | 2 | |
--background-feedback-critical | 2 | |
--control-critical-primary-background-default | 2 | |
--grabber-size | 2 | |
--shadow-high | 2 | |
--custom-theme-text-color | 2 | |
--opacity-white-8 | 2 | |
--gutter | 2 | |
--custom-theme-base-color-amount | 2 | |
--red-460 | 2 | |
--app-border-frame | 2 | |
--custom-channel-textarea-text-area-max-height | 2 | |
--opacity-black-16 | 2 | |
--interactive-background-active | 2 | |
--guildbar-folder-size | 2 | |
--space-6 | 2 | |
--message-mentioned-background-default | 2 | |
--control-overlay-secondary-background-default | 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 | |
--platform-spotify | 2 | |
--primary-130 | 2 | |
--space-40 | 2 | |
--__current--spoiler-background-color | 2 | |
--font-weight-medium | 2 | |
--custom-folder-item-animation-duration | 2 | |
--black | 2 | |
--custom-standard-sidebar-view-standard-padding | 2 | |
--border-focus | 2 | |
--blurple-49 | 2 | |
--neutral-40-hsl | 2 | |
--neutral-1-hsl | 2 | |
--neutral-4-hsl | 2 | |
--neutral-4 | 2 | |
--neutral-9-hsl | 2 | |
--neutral-8-hsl | 2 | |
--neutral-12-hsl | 2 | |
--neutral-15-hsl | 2 | |
--neutral-15 | 2 | |
--neutral-19-hsl | 2 | |
--neutral-19 | 2 | |
--neutral-31-hsl | 2 | |
--neutral-31 | 2 | |
--neutral-45-hsl | 2 | |
--neutral-45 | 2 | |
--neutral-49-hsl | 2 | |
--neutral-49 | 2 | |
--neutral-66-hsl | 2 | |
--neutral-66 | 2 | |
--neutral-69-hsl | 2 | |
--neutral-69 | 2 | |
--neutral-72-hsl | 2 | |
--neutral-72 | 2 | |
--neutral-76-hsl | 2 | |
--neutral-76 | 2 | |
--neutral-83-hsl | 2 | |
--neutral-83 | 2 | |
--neutral-97-hsl | 2 | |
--neutral-97 | 2 | |
--neutral-79 | 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 | |
--blurple-1-hsl | 2 | |
--blurple-4-hsl | 2 | |
--blurple-4 | 2 | |
--blurple-49-hsl | 2 | |
--blurple-37-hsl | 2 | |
--blurple-37 | 2 | |
--blurple-54-hsl | 2 | |
--blurple-54 | 2 | |
--blurple-65-hsl | 2 | |
--blurple-87-hsl | 2 | |
--premium-tier-2-pink | 2 | |
--brand-500-hsl | 2 | |
--neutral-16 | 2 | |
--custom-folder-background | 2 | |
--reply-spacing | 2 | |
--bar-size | 2 | |
--neutral-9 | 2 | |
--divider-color | 2 | |
--shadow-ledge | 2 | |
--user-profile-background-hover | 2 | |
--background-gradient-lowest | 2 | |
--background-gradient-lower | 2 | |
--background-gradient-high | 2 | |
--background-gradient-higher | 2 | |
--control-brand-foreground | 2 | |
--primary-530 | 2 | |
--primary-300-hsl | 2 | |
--primary-500-hsl | 2 | |
--primary-630-hsl | 2 | |
--primary-830-hsl | 2 | |
--primary-900-hsl | 2 | |
--primary-630 | 2 | |
--primary-660 | 2 | |
--primary-700 | 2 | |
--primary-800 | 2 | |
--primary-200 | 2 | |
--neutral-80 | 2 | |
--neutral-95 | 2 | |
--legacy-elevation-high | 2 | |
--shadow-low | 2 | |
--chat-background-default | 2 | |
--modal-footer-background | 2 | |
--modal-vertical-padding | 2 | |
--modal-horizontal-padding | 2 | |
--control-critical-primary-border-default | 2 | |
--control-critical-primary-text-default | 2 | |
--control-critical-primary-background-active | 2 | |
--icon-strong | 2 | |
--status-warning-text | 2 | |
--green-430 | 2 | |
--red-430 | 2 | |
--yellow-300-hsl | 1 | |
--opacity-red-12 | 1 | |
--brand-800 | 1 | |
--radius-xxl | 1 | |
--red-800 | 1 | |
--red-300 | 1 | |
--red-360 | 1 | |
--red-700 | 1 | |
--red-600 | 1 | |
--red-100 | 1 | |
--brand-100 | 1 | |
--brand-300 | 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 | |
--custom-theme-base-color-hsl | 1 | |
--custom-horizontal-padding | 1 | |
--card-background-default | 1 | |
--custom-game-widget-grid-row-size | 1 | |
--custom-category-channel-space-before-category | 1 | |
--card-secondary-bg | 1 | |
--custom-notice-text | 1 | |
--custom-app-top-bar-item-radius | 1 | |
--text-feedback-positive | 1 | |
--status-online | 1 | |
--premium-tier-2-purple-for-gradients | 1 | |
--interactive-icon-hover | 1 | |
--blurple-50 | 1 | |
--profile-gradient-start | 1 | |
--profile-gradient-end | 1 | |
--checkbox-background-default | 1 | |
--checkbox-border-default | 1 | |
--checkbox-background-selected-default | 1 | |
--checkbox-border-selected-default | 1 | |
--__current--spoiler-content-opacity | 1 | |
--custom-guild-banner-height | 1 | |
--orange-330 | 1 | |
--red-new-28 | 1 | |
--custom-forum-composer-attachments-attachment-size | 1 | |
--font-headline | 1 | |
--custom-standard-sidebar-view-sidebar-total-width | 1 | |
--hypesquad-house-1 | 1 | |
--hypesquad-house-2 | 1 | |
--hypesquad-house-3 | 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-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 | |
--devtools-sidebar-width | 1 | |
--radius-none | 1 | |
--space-10 | 1 | |
--space-0 | 1 | |
--custom-emoji-picker-constants-unicode-category-shortcut-height | 1 | |
--size-sm | 1 | |
--font-weight-normal | 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 | |
--radio-thumb-background-active | 1 | |
--green-new-25 | 1 | |
--orange-new-63 | 1 | |
--green-new-62 | 1 | |
--green-new-55-hsl | 1 | |
--premium-tier-2-pink-hsl | 1 | |
--opacity-12-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 | |
--neutral-11-hsl | 1 | |
--neutral-2-hsl | 1 | |
--blurple-70-hsl | 1 | |
--custom-chat-input-margin-bottom | 1 | |
--neutral-35 | 1 | |
--neutral-23 | 1 | |
--shadow-medium | 1 | |
--background-feedback-positive | 1 | |
--primary-300 | 1 | |
--guild-boosting-blue | 1 | |
--guild-boosting-purple | 1 | |
--custom-modal-padding-top | 1 | |
--custom-modal-padding-md | 1 | |
--opacity-white-12 | 1 | |
--user-profile-toolbar-background | 1 | |
--custom-folder-padding | 1 | |
--input-placeholder-text-default | 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-530-hsl | 1 | |
--primary-560-hsl | 1 | |
--primary-645-hsl | 1 | |
--primary-730-hsl | 1 | |
--primary-760-hsl | 1 | |
--primary-860-hsl | 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 | |
--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-2 | 1 | |
--neutral-5 | 1 | |
--neutral-87 | 1 | |
--neutral-96 | 1 | |
--neutral-98 | 1 | |
--neutral-100 | 1 | |
--legacy-elevation-border | 1 | |
--shadow-border | 1 | |
--legacy-elevation-low | 1 | |
--space-20 | 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 | |
--blurple-1 | 1 | |
--icon-status-idle | 1 | |
--background-gradient-chat | 1 | |
--blue-500 | 1 | |
--blue-530 | 1 | |
--border-width | 1 | |
--blue-new-30 | 1 | |
--custom-emoji-picker-constants-emoji-size-medium | 1 | |
--custom-emoji-picker-constants-emoji-container-padding-vertical | 1 | |
--blue-430 | 1 | |
--custom-poll-style-vote-percentage | 1 | |
--space-48 | 1 | |
--icon-default | 1 | |
--font-weight-semibold-1x-light-theme | 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 | |
--chat-text-muted | 1 | |
--brand-05a | 1 | |
--channel-text-area-placeholder | 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 | |
--interactive-icon-active | 1 | |
--user-profile-note-background-focus | 1 | |
--orange-360 | 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-530-hsl | 1 | |
--brand-530 | 1 | |
--brand-330 | 1 | |
--yellow-300 | 1 | |
--primary-360 | 1 | |
--red-345 | 1 | |
--green-330 | 1 | |
--brand-700-hsl | 1 | |
--brand-800-hsl | 1 | |
--status-warning-background | 1 | |
--premium-tier-2-purple-hsl | 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 | 49 | |
--text-muted | 46 | |
--background-secondary-alt | 46 | |
--background-accent | 43 | |
--font-primary | 41 | |
--font-display | 39 | |
--scrollbar-auto-thumb | 39 | |
--interactive-muted | 38 | |
--scrollbar-auto-track | 38 | |
--text-brand | 38 | |
--channels-default | 37 | |
--channeltextarea-background | 36 | |
--scrollbar-thin-thumb | 35 | |
--modal-background | 34 | |
--modal-footer-background | 29 |
--scrollbar-thin-track | 29 | |
--control-brand-foreground | 28 | |
--scrollbar-auto-scrollbar-color-thumb | 28 | |
--status-danger | 26 | |
--scrollbar-auto-scrollbar-color-track | 26 | |
--brand-500 | 25 | |
--background-surface-high | 23 | |
--background-base-low | 23 | |
--channel-icon | 23 | |
--background-base-lower | 22 | |
--background-surface-higher | 21 | |
--background-base-lowest | 21 | |
--text-default | 20 | |
--font-code | 19 | |
--status-positive-background | 18 | |
--border-subtle | 18 | |
--logo-primary | 18 | |
--elevation-low | 18 | |
--control-brand-foreground-new | 17 | |
--mention-foreground | 17 | |
--mention-background | 17 | |
--elevation-high | 17 | |
--background-surface-highest | 16 | |
--status-positive | 16 | |
--brand-360 | 16 | |
--background-mod-normal | 16 | |
--blurple-50 | 15 | |
--status-warning | 15 | |
--status-warning-background | 15 | |
--background-mod-subtle | 15 | |
--button-outline-brand-background-hover | 15 | |
--button-outline-brand-border-active | 15 | |
--background-brand | 14 | |
--control-primary-background-default | 14 | |
--chat-background-default | 14 | |
--font-headline | 14 | |
--custom-channel-textarea-text-area-height | 14 | |
--custom-app-top-bar-height | 14 | |
--text-strong | 14 | |
--textbox-markdown-syntax | 14 | |
--elevation-medium | 14 | |
--elevation-stroke | 14 | |
--user-profile-overlay-background | 13 | |
--control-primary-background-hover | 13 | |
--status-positive-text | 13 | |
--home-background | 13 | |
--status-warning-text | 12 | |
--background-mod-strong | 12 | |
--input-border-active | 12 | |
--interactive-text-default | 12 | |
--channel-text-area-placeholder | 12 | |
--message-highlight-background-default | 12 | |
--card-background-default | 11 | |
--checkbox-background-selected-default | 11 | |
--message-mentioned-background-hover | 11 | |
--green-360 | 11 | |
--brand-530 | 11 | |
--border-strong | 11 | |
--text-subtle | 11 | |
--brand-260 | 11 | |
--brand-600 | 11 | |
--background-code | 11 | |
--icon-muted | 11 | |
--button-danger-background-disabled | 11 | |
--selected-tab-item-color | 10 | |
--radius-sm | 10 | |
--chat-border | 10 | |
--brand-560 | 10 | |
--button-outline-primary-text | 10 | |
--message-mentioned-background-default | 10 | |
--spoiler-hidden-background | 10 | |
--icon-strong | 10 | |
--control-primary-text-default | 10 | |
--button--underline-color | 10 | |
--text-feedback-positive | 9 | |
--radius-round | 9 | |
--chat-background | 9 | |
--border-normal | 9 | |
--interactive-icon-default | 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 | |
--control-primary-background-active | 9 | |
--custom-guild-list-width | 9 | |
--bg-surface-raised | 8 | |
--interactive-background-hover | 8 | |
--chat-text-muted | 8 | |
--red-400 | 8 | |
--guild-boosting-blue | 8 | |
--guild-boosting-purple | 8 | |
--icon-default | 8 | |
--text-feedback-critical | 8 | |
--background-feedback-notification | 8 | |
--radius-xs | 8 | |
--radius-md | 8 | |
--radius-lg | 8 | |
--divider-color | 8 | |
--background-mod-muted | 8 | |
--interactive-text-active | 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 | |
--message-background-hover | 8 | |
--spoiler-revealed-background | 8 | |
--icon-subtle | 8 | |
--white | 8 | |
--guild-boosting-pink | 8 | |
--premium-tier-2-purple-for-gradients | 8 | |
--premium-tier-2-purple-for-gradients-2 | 8 | |
--premium-tier-2-pink-for-gradients | 8 | |
--border-focus | 8 | |
--control-primary-text-active | 8 | |
--control-primary-text-hover | 8 | |
--icon-link | 8 | |
--guild-header-text-shadow | 8 | |
--blurple-1 | 8 | |
--tooltip-pointer-bg | 8 | |
--control-secondary-background-default | 7 | |
--control-secondary-background-hover | 7 | |
--notice-text-warning | 7 | |
--radius-xl | 7 | |
--radius-xxl | 7 | |
--interactive-text-hover | 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 | |
--opacity-blurple-32 | 7 | |
--input-background-default | 7 | |
--input-border-default | 7 | |
--white-500 | 7 | |
--primary-630 | 7 | |
--premium-perk-blue | 7 | |
--premium-perk-pink | 7 | |
--app-border-frame | 7 | |
--checkbox-border-selected-default | 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 | |
--brand-345 | 7 | |
--user-profile-overlay-background-hover | 6 | |
--radio-background-selected-default | 6 | |
--text-feedback-warning | 6 | |
--icon-feedback-warning | 6 | |
--notice-text-positive | 6 | |
--notice-text-critical | 6 | |
--notice-text-info | 6 | |
--badge-notification-background | 6 | |
--custom-chat-input-margin-bottom | 6 | |
--interactive-icon-hover | 6 | |
--interactive-icon-active | 6 | |
--interactive-background-selected | 6 | |
--opacity-blurple-8 | 6 | |
--opacity-blurple-16 | 6 | |
--opacity-blurple-24 | 6 | |
--opacity-blurple-60 | 6 | |
--control-secondary-text-default | 6 | |
--premium-tier-0-blue | 6 | |
--premium-tier-0-purple | 6 | |
--premium-tier-1-blue-for-gradients | 6 | |
--premium-tier-1-dark-blue-for-gradients | 6 | |
--gutter | 6 | |
--app-frame-border | 6 | |
--input-border-hover | 6 | |
--blurple-38 | 6 | |
--guild-boosting-blue-for-gradients | 6 | |
--guild-boosting-purple-for-gradients | 6 | |
--premium-tier-0-purple-for-gradients | 6 | |
--premium-tier-0-blue-for-gradients | 6 | |
--premium-tier-2-purple | 6 | |
--premium-tier-2-pink | 6 | |
--premium-tier-2-pink-for-gradients-2 | 6 | |
--radio-background-selected-hover | 5 | |
--checkbox-background-selected-hover | 5 | |
--yellow-360 | 5 | |
--custom-status-bubble-background | 5 | |
--custom-theme-base-color-amount | 5 | |
--custom-theme-text-color-amount | 5 | |
--spine-default | 5 | |
--border-muted | 5 | |
--interactive-background-active | 5 | |
--background-feedback-critical | 5 | |
--notice-background-critical | 5 | |
--notice-background-info | 5 | |
--notice-background-warning | 5 | |
--message-highlight-background-hover | 5 | |
--checkbox-border-default | 5 | |
--primary-400 | 5 | |
--custom-poll-style-vote-percentage | 5 | |
--primary-500 | 5 | |
--background-code-addition | 5 | |
--background-code-deletion | 5 | |
--card-secondary-bg | 5 | |
--checkbox-background-default | 5 | |
--control-overlay-secondary-background-default | 5 | |
--status-online | 5 | |
--radius-none | 5 | |
--custom-user-profile-theme-padding | 5 | |
--guildbar-avatar-size | 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-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 | |
--shadow-border | 5 | |
--shadow-low | 5 | |
--shadow-medium | 5 | |
--green-330 | 4 | |
--icon-feedback-positive | 4 | |
--control-critical-secondary-text-default | 4 | |
--custom-theme-base-color | 4 | |
--custom-theme-text-color | 4 | |
--custom-member-list-width | 4 | |
--__header-bar-background | 4 | |
--custom-channel-members-bg | 4 | |
--text-feedback-info | 4 | |
--control-secondary-background-active | 4 | |
--background-feedback-positive | 4 | |
--background-feedback-warning | 4 | |
--background-feedback-info | 4 | |
--icon-feedback-critical | 4 | |
--notice-background-positive | 4 | |
--input-placeholder-text-default | 4 | |
--icon-voice-muted | 4 | |
--checkbox-icon-active | 4 | |
--radio-thumb-background-active | 4 | |
--black-500 | 4 | |
--yellow-300 | 4 | |
--red-430 | 4 | |
--red-500 | 4 | |
--primary-700 | 4 | |
--guildbar-folder-size | 4 | |
--badge-background-brand | 4 | |
--progressbar-indicator-background | 4 | |
--spoiler-hidden-background-hover | 4 | |
--border-feedback-critical | 4 | |
--card-primary-pressed-bg | 4 | |
--card-secondary-pressed-bg | 4 | |
--control-overlay-secondary-background-active | 4 | |
--profile-gradient-role-pill-background | 4 | |
--custom-channel-header-height | 4 | |
--bar-size | 4 | |
--shadow-border-filter | 4 | |
--shadow-button-overlay | 4 | |
--shadow-high | 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 | |
--grabber-size | 4 | |
--primary-600 | 4 | |
--user-profile-toolbar-background | 3 | |
--status-speaking | 3 | |
--custom-status-bubble-background-color | 3 | |
--app-frame-background | 3 | |
--text-status-online | 3 | |
--text-status-idle | 3 | |
--text-status-dnd | 3 | |
--text-status-offline | 3 | |
--control-secondary-border-default | 3 | |
--control-secondary-text-hover | 3 | |
--control-critical-primary-background-default | 3 | |
--control-critical-primary-background-hover | 3 | |
--control-critical-primary-background-active | 3 | |
--control-critical-primary-text-default | 3 | |
--control-critical-primary-text-hover | 3 | |
--control-critical-secondary-background-default | 3 | |
--control-critical-secondary-background-hover | 3 | |
--control-critical-secondary-background-active | 3 | |
--control-critical-secondary-border-default | 3 | |
--control-critical-secondary-border-hover | 3 | |
--control-critical-secondary-border-active | 3 | |
--control-critical-secondary-text-hover | 3 | |
--control-critical-secondary-text-active | 3 | |
--icon-status-online | 3 | |
--icon-status-idle | 3 | |
--icon-status-dnd | 3 | |
--icon-status-offline | 3 | |
--icon-feedback-info | 3 | |
--message-automod-background-default | 3 | |
--message-automod-background-hover | 3 | |
--__spoiler-background-color--hidden | 3 | |
--input-text-default | 3 | |
--primary-800 | 3 | |
--custom-guild-list-padding | 3 | |
--custom-horizontal-padding | 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 | |
--__spoiler-background-color--revealed | 3 | |
--badge-expressive-text-default | 3 | |
--badge-background-default | 3 | |
--content-inventory-media-seekbar-container | 3 | |
--content-inventory-overlay-text-primary | 3 | |
--content-inventory-overlay-text-secondary | 3 | |
--control-expressive-text-default | 3 | |
--control-overlay-secondary-background-hover | 3 | |
--control-primary-border-hover | 3 | |
--gradient-progress-pill-background | 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 | |
--user-profile-background-hover | 3 | |
--custom-icon-offset | 3 | |
--legacy-elevation-high | 3 | |
--legacy-elevation-border | 3 | |
--custom-poll-style-border | 3 | |
--spine-width | 3 | |
--neutral-9 | 3 | |
--neutral-47 | 3 | |
--neutral-72 | 3 | |
--neutral-76 | 3 | |
--white-500-hsl | 3 | |
--black-500-hsl | 3 | |
--red-new-50 | 3 | |
--blue-new-31-hsl | 3 | |
--blue-new-35-hsl | 3 | |
--blurple-1-hsl | 3 | |
--blurple-4-hsl | 3 | |
--blurple-8-hsl | 3 | |
--blurple-10-hsl | 3 | |
--blurple-25-hsl | 3 | |
--blurple-26-hsl | 3 | |
--blurple-27-hsl | 3 | |
--blurple-28-hsl | 3 | |
--blurple-29-hsl | 3 | |
--blurple-37-hsl | 3 | |
--blurple-44-hsl | 3 | |
--blurple-48-hsl | 3 | |
--blurple-49-hsl | 3 | |
--blurple-50-hsl | 3 | |
--blurple-52-hsl | 3 | |
--blurple-54-hsl | 3 | |
--blurple-58-hsl | 3 | |
--blurple-59-hsl | 3 | |
--blurple-60-hsl | 3 | |
--blurple-65-hsl | 3 | |
--blurple-70-hsl | 3 | |
--blurple-87-hsl | 3 | |
--custom-notice-text | 3 | |
--black | 3 | |
--brand-500-hsl | 3 | |
--brand-700-hsl | 3 | |
--brand-800-hsl | 3 | |
--custom-message-margin-left-content-cozy | 2 | |
--__spoiler-warning-background-color | 2 | |
--badge-text-brand | 2 | |
--green-300 | 2 | |
--blue-500 | 2 | |
--blue-530 | 2 | |
--primary-100 | 2 | |
--primary-200 | 2 | |
--primary-300 | 2 | |
--premium-perk-yellow | 2 | |
--premium-perk-purple | 2 | |
--premium-perk-dark-blue | 2 | |
--premium-perk-light-blue | 2 | |
--premium-perk-green | 2 | |
--premium-perk-orange | 2 | |
--space-4 | 2 | |
--space-8 | 2 | |
--__current--spoiler-content-opacity | 2 | |
--custom-input-border-color | 2 | |
--app-message-embed-secondary-text | 2 | |
--background-scrim | 2 | |
--background-scrim-lightbox | 2 | |
--badge-expressive-background-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 | |
--slider-track-background | 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 | |
--blue-new-27 | 2 | |
--reply-spacing | 2 | |
--select-option-height | 2 | |
--font-weight-light | 2 | |
--font-weight-semibold | 2 | |
--font-weight-bold | 2 | |
--text-code-builtin | 2 | |
--text-code-bullet | 2 | |
--text-code-comment | 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 | |
--neutral-1-hsl | 2 | |
--neutral-1 | 2 | |
--neutral-2-hsl | 2 | |
--neutral-2 | 2 | |
--neutral-4-hsl | 2 | |
--neutral-4 | 2 | |
--neutral-8-hsl | 2 | |
--neutral-8 | 2 | |
--neutral-9-hsl | 2 | |
--neutral-11-hsl | 2 | |
--neutral-11 | 2 | |
--neutral-12-hsl | 2 | |
--neutral-12 | 2 | |
--neutral-15-hsl | 2 | |
--neutral-15 | 2 | |
--neutral-16-hsl | 2 | |
--neutral-16 | 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-31-hsl | 2 | |
--neutral-31 | 2 | |
--neutral-32-hsl | 2 | |
--neutral-32 | 2 | |
--neutral-34-hsl | 2 | |
--neutral-34 | 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-40-hsl | 2 | |
--neutral-40 | 2 | |
--neutral-45-hsl | 2 | |
--neutral-45 | 2 | |
--neutral-46-hsl | 2 | |
--neutral-46 | 2 | |
--neutral-47-hsl | 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-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-66-hsl | 2 | |
--neutral-66 | 2 | |
--neutral-69-hsl | 2 | |
--neutral-69 | 2 | |
--neutral-70-hsl | 2 | |
--neutral-70 | 2 | |
--neutral-71-hsl | 2 | |
--neutral-71 | 2 | |
--neutral-72-hsl | 2 | |
--neutral-73-hsl | 2 | |
--neutral-73 | 2 | |
--neutral-74-hsl | 2 | |
--neutral-74 | 2 | |
--neutral-75-hsl | 2 | |
--neutral-75 | 2 | |
--neutral-76-hsl | 2 | |
--neutral-79-hsl | 2 | |
--neutral-79 | 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-97-hsl | 2 | |
--neutral-97 | 2 | |
--neutral-99-hsl | 2 | |
--neutral-99 | 2 | |
--green-new-61-hsl | 2 | |
--green-new-61 | 2 | |
--red-new-46 | 2 | |
--red-new-60 | 2 | |
--red-new-61-hsl | 2 | |
--red-new-61 | 2 | |
--red-new-65 | 2 | |
--yellow-new-57-hsl | 2 | |
--yellow-new-57 | 2 | |
--blue-new-24-hsl | 2 | |
--blue-new-27-hsl | 2 | |
--blue-new-31 | 2 | |
--blue-new-35 | 2 | |
--blurple-38-hsl | 2 | |
--opacity-blue-8-hsl | 2 | |
--opacity-blurple-8-hsl | 2 | |
--opacity-blurple-16-hsl | 2 | |
--opacity-blurple-24-hsl | 2 | |
--text-code-addition | 2 | |
--text-code-deletion | 2 | |
--legacy-elevation-low | 2 | |
--brand-100-hsl | 2 | |
--brand-130-hsl | 2 | |
--brand-160-hsl | 2 | |
--brand-200-hsl | 2 | |
--brand-230-hsl | 2 | |
--brand-260-hsl | 2 | |
--brand-300-hsl | 2 | |
--brand-330-hsl | 2 | |
--brand-345-hsl | 2 | |
--brand-360-hsl | 2 | |
--brand-400-hsl | 2 | |
--brand-430-hsl | 2 | |
--brand-460-hsl | 2 | |
--brand-530-hsl | 2 | |
--brand-560-hsl | 2 | |
--brand-600-hsl | 2 | |
--brand-630-hsl | 2 | |
--brand-660-hsl | 2 | |
--brand-730-hsl | 2 | |
--brand-760-hsl | 2 | |
--brand-830-hsl | 2 | |
--brand-860-hsl | 2 | |
--brand-900-hsl | 2 | |
--primary-645 | 2 | |
--primary-660 | 2 | |
--primary-600-hsl | 2 | |
--primary-630-hsl | 2 | |
--shadow-button-overlay-filter | 2 | |
--blue-345 | 2 | |
--custom-notice-background | 2 | |
--__spoiler-background-color--hidden--hover | 2 | |
--__current--spoiler-text-color | 2 | |
--custom-folder-preview-guild-size | 1 | |
--custom-preview-background | 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 | |
--space-6 | 1 | |
--custom-folder-padding | 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 | |
--profile-gradient-start | 1 | |
--profile-gradient-end | 1 | |
--blue-new-26 | 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 | |
--custom-base-tile-border-radius | 1 | |
--opacity-white-12 | 1 | |
--chat-avatar-size | 1 | |
--custom-message-avatar-size | 1 | |
--custom-message-margin-horizontal | 1 | |
--font-weight-normal | 1 | |
--neutral-6-hsl | 1 | |
--neutral-6 | 1 | |
--green-new-22-hsl | 1 | |
--green-new-22 | 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-38-hsl | 1 | |
--yellow-new-38 | 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 | 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 | |
--illo-green-50-hsl | 1 | |
--illo-pink-40-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 | |
--guild-boosting-pink-refresh | 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 | |
--platform-partner-hsl | 1 | |
--platform-partner | 1 | |
--control-connected-text-default | 1 | |
--control-connected-text-hover | 1 | |
--control-connected-text-active | 1 | |
--neutral-43 | 1 | |
--neutral-41 | 1 | |
--background-gradient-high | 1 | |
--background-gradient-chat | 1 | |
--background-gradient-app-frame | 1 | |
--custom-theme-base-color-hsl | 1 | |
--chat-input-icon-size | 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 | |
--custom-party-avatars-avatar-diameter | 1 | |
--custom-lift-hover | 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-530 | 1 | |
--primary-560 | 1 | |
--primary-730 | 1 | |
--primary-760 | 1 | |
--primary-830 | 1 | |
--primary-860 | 1 | |
--primary-900 | 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-500-hsl | 1 | |
--primary-530-hsl | 1 | |
--primary-560-hsl | 1 | |
--primary-645-hsl | 1 | |
--primary-660-hsl | 1 | |
--primary-700-hsl | 1 | |
--primary-730-hsl | 1 | |
--primary-760-hsl | 1 | |
--primary-800-hsl | 1 | |
--primary-830-hsl | 1 | |
--primary-860-hsl | 1 | |
--primary-900-hsl | 1 | |
--expressive-gradient-nitro-pink-start | 1 | |
--expressive-gradient-nitro-pink-end | 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 | |
--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 | |
--blue-100-hsl | 1 | |
--blue-130-hsl | 1 | |
--blue-160-hsl | 1 | |
--blue-200-hsl | 1 | |
--blue-230-hsl | 1 | |
--blue-260-hsl | 1 | |
--blue-300-hsl | 1 | |
--blue-330-hsl | 1 | |
--blue-345-hsl | 1 | |
--blue-360-hsl | 1 | |
--blue-400-hsl | 1 | |
--blue-430-hsl | 1 | |
--blue-460-hsl | 1 | |
--blue-500-hsl | 1 | |
--blue-530-hsl | 1 | |
--blue-560-hsl | 1 | |
--blue-600-hsl | 1 | |
--blue-630-hsl | 1 | |
--blue-660-hsl | 1 | |
--blue-700-hsl | 1 | |
--blue-730-hsl | 1 | |
--blue-760-hsl | 1 | |
--blue-800-hsl | 1 | |
--blue-830-hsl | 1 | |
--blue-860-hsl | 1 | |
--blue-900-hsl | 1 | |
--border-width | 1 | |
--blurple-2-hsl | 1 | |
--blurple-3-hsl | 1 | |
--blurple-5-hsl | 1 | |
--blurple-6-hsl | 1 | |
--blurple-7-hsl | 1 | |
--blurple-9-hsl | 1 | |
--blurple-11-hsl | 1 | |
--blurple-12-hsl | 1 | |
--blurple-13-hsl | 1 | |
--blurple-14-hsl | 1 | |
--blurple-15-hsl | 1 | |
--blurple-16-hsl | 1 | |
--blurple-17-hsl | 1 | |
--blurple-18-hsl | 1 | |
--blurple-19-hsl | 1 | |
--blurple-20-hsl | 1 | |
--blurple-21-hsl | 1 | |
--blurple-22-hsl | 1 | |
--blurple-23-hsl | 1 | |
--blurple-24-hsl | 1 | |
--blurple-30-hsl | 1 | |
--blurple-31-hsl | 1 | |
--blurple-32-hsl | 1 | |
--blurple-33-hsl | 1 | |
--blurple-34-hsl | 1 | |
--blurple-35-hsl | 1 | |
--blurple-36-hsl | 1 | |
--blurple-39-hsl | 1 | |
--blurple-40-hsl | 1 | |
--blurple-41-hsl | 1 | |
--blurple-42-hsl | 1 | |
--blurple-43-hsl | 1 | |
--blurple-45-hsl | 1 | |
--blurple-46-hsl | 1 | |
--blurple-47-hsl | 1 | |
--blurple-51-hsl | 1 | |
--blurple-53-hsl | 1 | |
--blurple-55-hsl | 1 | |
--blurple-56-hsl | 1 | |
--blurple-57-hsl | 1 | |
--blurple-61-hsl | 1 | |
--blurple-62-hsl | 1 | |
--blurple-63-hsl | 1 | |
--blurple-64-hsl | 1 | |
--blurple-66-hsl | 1 | |
--blurple-67-hsl | 1 | |
--blurple-68-hsl | 1 | |
--blurple-69-hsl | 1 | |
--blurple-71-hsl | 1 | |
--blurple-72-hsl | 1 | |
--blurple-73-hsl | 1 | |
--blurple-74-hsl | 1 | |
--blurple-75-hsl | 1 | |
--blurple-76-hsl | 1 | |
--blurple-77-hsl | 1 | |
--blurple-78-hsl | 1 | |
--blurple-79-hsl | 1 | |
--blurple-80-hsl | 1 | |
--blurple-81-hsl | 1 | |
--blurple-82-hsl | 1 | |
--blurple-83-hsl | 1 | |
--blurple-84-hsl | 1 | |
--blurple-85-hsl | 1 | |
--blurple-86-hsl | 1 | |
--blurple-88-hsl | 1 | |
--blurple-89-hsl | 1 | |
--blurple-90-hsl | 1 | |
--blurple-91-hsl | 1 | |
--blurple-92-hsl | 1 | |
--blurple-93-hsl | 1 | |
--blurple-94-hsl | 1 | |
--blurple-95-hsl | 1 | |
--blurple-96-hsl | 1 | |
--blurple-97-hsl | 1 | |
--blurple-98-hsl | 1 | |
--blurple-99-hsl | 1 | |
--blurple-100-hsl | 1 | |
--blue-new-1-hsl | 1 | |
--blue-new-2-hsl | 1 | |
--blue-new-3-hsl | 1 | |
--blue-new-4-hsl | 1 | |
--blue-new-5-hsl | 1 | |
--blue-new-6-hsl | 1 | |
--blue-new-7-hsl | 1 | |
--blue-new-8-hsl | 1 | |
--blue-new-9-hsl | 1 | |
--blue-new-10-hsl | 1 | |
--blue-new-11-hsl | 1 | |
--blue-new-12-hsl | 1 | |
--blue-new-13-hsl | 1 | |
--blue-new-14-hsl | 1 | |
--blue-new-15-hsl | 1 | |
--blue-new-16-hsl | 1 | |
--blue-new-17-hsl | 1 | |
--blue-new-18-hsl | 1 | |
--blue-new-19-hsl | 1 | |
--blue-new-20-hsl | 1 | |
--blue-new-21-hsl | 1 | |
--blue-new-22-hsl | 1 | |
--blue-new-23-hsl | 1 | |
--blue-new-25-hsl | 1 | |
--blue-new-26-hsl | 1 | |
--blue-new-28-hsl | 1 | |
--blue-new-29-hsl | 1 | |
--blue-new-30-hsl | 1 | |
--blue-new-32-hsl | 1 | |
--blue-new-33-hsl | 1 | |
--blue-new-34-hsl | 1 | |
--blue-new-36-hsl | 1 | |
--blue-new-37-hsl | 1 | |
--blue-new-38-hsl | 1 | |
--blue-new-39-hsl | 1 | |
--blue-new-40-hsl | 1 | |
--blue-new-41-hsl | 1 | |
--blue-new-42-hsl | 1 | |
--blue-new-43-hsl | 1 | |
--blue-new-44-hsl | 1 | |
--blue-new-45-hsl | 1 | |
--blue-new-46-hsl | 1 | |
--blue-new-47-hsl | 1 | |
--blue-new-48-hsl | 1 | |
--blue-new-49-hsl | 1 | |
--blue-new-50-hsl | 1 | |
--blue-new-51-hsl | 1 | |
--blue-new-52-hsl | 1 | |
--blue-new-53-hsl | 1 | |
--blue-new-54-hsl | 1 | |
--blue-new-55-hsl | 1 | |
--blue-new-56-hsl | 1 | |
--blue-new-57-hsl | 1 | |
--blue-new-58-hsl | 1 | |
--blue-new-59-hsl | 1 | |
--blue-new-60-hsl | 1 | |
--blue-new-61-hsl | 1 | |
--blue-new-62-hsl | 1 | |
--blue-new-63-hsl | 1 | |
--blue-new-64-hsl | 1 | |
--blue-new-65-hsl | 1 | |
--blue-new-66-hsl | 1 | |
--blue-new-67-hsl | 1 | |
--blue-new-68-hsl | 1 | |
--blue-new-69-hsl | 1 | |
--blue-new-70-hsl | 1 | |
--blue-new-71-hsl | 1 | |
--blue-new-72-hsl | 1 | |
--blue-new-73-hsl | 1 | |
--blue-new-74-hsl | 1 | |
--blue-new-75-hsl | 1 | |
--blue-new-76-hsl | 1 | |
--blue-new-77-hsl | 1 | |
--blue-new-78-hsl | 1 | |
--blue-new-79-hsl | 1 | |
--blue-new-80-hsl | 1 | |
--blue-new-81-hsl | 1 | |
--blue-new-82-hsl | 1 | |
--blue-new-83-hsl | 1 | |
--blue-new-84-hsl | 1 | |
--blue-new-85-hsl | 1 | |
--blue-new-86-hsl | 1 | |
--blue-new-87-hsl | 1 | |
--blue-new-88-hsl | 1 | |
--blue-new-89-hsl | 1 | |
--blue-new-90-hsl | 1 | |
--blue-new-91-hsl | 1 | |
--blue-new-92-hsl | 1 | |
--blue-new-93-hsl | 1 | |
--blue-new-94-hsl | 1 | |
--blue-new-95-hsl | 1 | |
--blue-new-96-hsl | 1 | |
--blue-new-97-hsl | 1 | |
--blue-new-98-hsl | 1 | |
--blue-new-99-hsl | 1 | |
--blue-new-100-hsl | 1 | |
--opacity-blue-1-hsl | 1 | |
--opacity-blue-4-hsl | 1 | |
--opacity-blue-12-hsl | 1 | |
--opacity-blue-16-hsl | 1 | |
--opacity-blue-20-hsl | 1 | |
--opacity-blue-24-hsl | 1 | |
--opacity-blue-28-hsl | 1 | |
--opacity-blue-32-hsl | 1 | |
--opacity-blue-36-hsl | 1 | |
--opacity-blue-40-hsl | 1 | |
--opacity-blue-44-hsl | 1 | |
--opacity-blue-48-hsl | 1 | |
--opacity-blue-52-hsl | 1 | |
--opacity-blue-56-hsl | 1 | |
--opacity-blue-60-hsl | 1 | |
--opacity-blue-64-hsl | 1 | |
--opacity-blue-68-hsl | 1 | |
--opacity-blue-72-hsl | 1 | |
--opacity-blue-76-hsl | 1 | |
--opacity-blue-80-hsl | 1 | |
--opacity-blue-84-hsl | 1 | |
--opacity-blue-88-hsl | 1 | |
--opacity-blue-92-hsl | 1 | |
--opacity-blue-96-hsl | 1 | |
--opacity-blurple-1-hsl | 1 | |
--opacity-blurple-4-hsl | 1 | |
--opacity-blurple-12-hsl | 1 | |
--opacity-blurple-20-hsl | 1 | |
--opacity-blurple-28-hsl | 1 | |
--opacity-blurple-32-hsl | 1 | |
--opacity-blurple-36-hsl | 1 | |
--opacity-blurple-40-hsl | 1 | |
--opacity-blurple-44-hsl | 1 | |
--opacity-blurple-48-hsl | 1 | |
--opacity-blurple-52-hsl | 1 | |
--opacity-blurple-56-hsl | 1 | |
--opacity-blurple-60-hsl | 1 | |
--opacity-blurple-64-hsl | 1 | |
--opacity-blurple-68-hsl | 1 | |
--opacity-blurple-72-hsl | 1 | |
--opacity-blurple-76-hsl | 1 | |
--opacity-blurple-80-hsl | 1 | |
--opacity-blurple-84-hsl | 1 | |
--opacity-blurple-88-hsl | 1 | |
--opacity-blurple-92-hsl | 1 | |
--opacity-blurple-96-hsl | 1 | |
--__card-background-color | 1 | |
--font-display-marketing-header | 1 | |
--font-display-marketing | 1 | |
--custom-user-profile-base-layer-z-index | 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. 101 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 | 57 | |
--interactive-normal | 56 | |
--text-normal | 55 | |
--background-secondary | 55 | |
--background-primary | 53 | |
--interactive-active | 51 | |
--background-tertiary | 51 | |
--background-floating | 47 | |
--background-modifier-hover | 47 | |
--header-secondary | 46 | |
--background-modifier-selected | 46 | |
--interactive-hover | 42 | |
--background-modifier-accent | 38 | |
--background-modifier-active | 36 | |
--brand-experiment | 35 |
--text-positive | 23 | |
--background-message-hover | 22 | |
--text-danger | 21 | |
--deprecated-card-bg | 19 | |
--text-warning | 18 | |
--info-warning-foreground | 18 | |
--brand-experiment-600 | 18 | |
--background-mobile-secondary | 18 | |
--brand-experiment-500 | 17 | |
--background-mobile-primary | 17 | |
--brand-experiment-400 | 15 | |
--brand-experiment-200 | 14 | |
--text-link-low-saturation | 14 | |
--deprecated-store-bg | 13 | |
--info-danger-foreground | 12 | |
--brand-experiment-100 | 12 | |
--brand-experiment-300 | 12 | |
--brand-experiment-700 | 12 | |
--brand-experiment-800 | 12 | |
--brand-experiment-900 | 12 | |
--deprecated-quickswitcher-input-background | 12 | |
--info-positive-foreground | 11 | |
--info-help-foreground | 11 | |
--background-message-highlight | 11 | |
--deprecated-card-editable-bg | 11 | |
--background-nested-floating | 10 | |
--background-message-automod | 10 | |
--deprecated-text-input-bg | 10 | |
--deprecated-text-input-border | 9 |
Every removal decision above hinges on the same follow-up: do the affected addons still ship releases, or will they simply break? Addons bucket by last store release relative to the 2026-10-19 data week: active ≤ 6 months, aging 6–24 months, abandoned > 24 months. A release date measures store activity, not author intent — a stable, finished addon looks abandoned here — so staleness is never treated as a defect on its own; the readings below are conjunctions with a fragile or deprecated surface. Cells read addons · cumulative downloads (installed base, never active users).
| Signal | Active ≤ 6mo | Aging 6–24mo | Abandoned > 24mo |
|---|---|---|---|
| Whole corpus | 166 · 24.7M | 107 · 21.3M | 57 · 10.5M |
| Hardcoded Discord classes | 19 · 2.9M | 44 · 15.3M | 39 · 9.5M |
| Outdated CSS variables | 24 · 4.7M | 34 · 9.5M | 43 · 8.1M |
| Deprecated lifecycle (get-family) | 35 · 13.9M | 18 · 2.9M | 0 · 0 |
| Legacy ReactDOM entry points | 8 · 1.4M | 1 · 27.4K | 0 · 0 |
| require() polyfill | 34 · 13.8M | 19 · 3.3M | 0 · 0 |
The observer memo sharpens: of the 7 plugins keeping core's document-wide MutationObserver alive, 0 are abandoned and 4 active.
Of the 61 addons first released within 12 months of the data date, 3 launched already touching a deprecated surface — deprecated patterns are still being adopted, not merely inherited.
Actively-maintained addons still on a deprecated surface: authors who plausibly respond, ranked by the installed base their fix would carry.
| Addon | Downloads | Last release | Surface | |
|---|---|---|---|---|
| DevilBro / Translator | 1.8M | 2026-10-09 | get-family lifecycle | |
| DevilBro / SpotifyControls | 1.6M | 2026-05-28 | get-family lifecycleoutdated CSS variables | |
| DevilBro / GameActivityToggle | 1.5M | 2026-09-25 | get-family lifecycle | |
| DevilBro / SplitLargeMessages | 917.3K | 2026-10-09 | get-family lifecycle | |
| CapnKitten / Translucence | 891.8K | 2026-06-07 | outdated CSS variables | |
| DevilBro / ImageUtilities | 842.2K | 2026-06-08 | get-family lifecycle | |
| arg0NNY / BetterAnimations | 816.6K | 2026-07-09 | get-family lifecycle | |
| DevilBro / ServerDetails | 551.3K | 2026-05-01 | get-family lifecycle | |
| DevilBro / ShowBadgesInChat | 535.6K | 2026-09-19 | get-family lifecycle | |
| DevilBro / NotificationSounds | 529.1K | 2026-09-06 | get-family lifecycle | |
| refact0r / midnight | 487.3K | 2026-10-08 | outdated CSS variables | |
| DevilBro / FriendNotifications | 468.7K | 2026-04-29 | get-family lifecycle | |
| DevilBro / BetterFriendList | 433.6K | 2026-07-02 | get-family lifecycle | |
| DevilBro / ShowConnections | 424.8K | 2026-04-28 | get-family lifecycle | |
| DevilBro / 0BDFDB | 418.8K | 2026-10-09 | get-family lifecycle |
| DevilBro / EditUsers | 373.2K | 2026-04-28 | get-family lifecycle | |
| DevilBro / QuickMention | 350.9K | 2026-09-06 | get-family lifecycle | |
| DevilBro / StaffTag | 347.6K | 2026-05-16 | get-family lifecycle | |
| Strencher / APlatformIndicators | 318.7K | 2026-10-11 | legacy BdApi aliases | |
| wq_qt / chillax | 287.3K | 2026-05-20 | outdated CSS variables | |
| Eight_P / T1 | 260.9K | 2026-05-28 | outdated CSS variables | |
| DevilBro / PinDMs | 260.3K | 2026-08-31 | get-family lifecycle | |
| DevilBro / SpellCheck | 249.1K | 2026-09-06 | get-family lifecycle | |
| DevilBro / LastMessageDate | 239.0K | 2026-04-28 | get-family lifecycle | |
| zuzumi / Moon-Rabbits-Dream-About-Virtual | 237.5K | 2026-09-05 | outdated CSS variables | |
| DevilBro / CustomStatusPresets | 183.0K | 2026-10-09 | get-family lifecycle | |
| DevilBro / WriteUpperCase | 178.2K | 2026-04-28 | get-family lifecycle | |
| arg0NNY / PasscodeLock | 165.8K | 2026-06-04 | get-family lifecycle | |
| unknown81311 / BetterMediaPlayer | 146.2K | 2026-10-14 | outdated CSS variables | |
| Nebulys / WizardUI | 126.9K | 2026-07-30 | outdated CSS variables | |
| refact0r / system24 | 118.7K | 2026-10-08 | outdated CSS variables | |
| DevilBro / ServerFolders | 112.1K | 2026-07-02 | get-family lifecycleoutdated CSS variables | |
| DevilBro / CompleteTimestamps | 108.0K | 2026-10-11 | get-family lifecycle | |
| Neodymium / VoiceActivity | 102.7K | 2026-09-27 | outdated CSS variables | |
| Strencher / Copier | 95.9K | 2026-10-09 | outdated CSS variables | |
| DevilBro / EditRoles | 88.6K | 2026-09-15 | get-family lifecycle | |
| DevilBro / TopRoleEverywhere | 75.4K | 2026-05-16 | get-family lifecycle | |
| DevilBro / PersonalPins | 57.5K | 2026-09-06 | get-family lifecycle | |
| DevilBro / DisplayServersAsChannels | 43.8K | 2026-05-01 | get-family lifecycle | |
| lolpowerluke / alanWalker | 43.6K | 2026-09-12 | outdated CSS variables | |
| orblazer / nordic | 37.8K | 2026-09-12 | outdated CSS variables | |
| DevilBro / GoogleSearchReplace | 35.5K | 2026-09-15 | get-family lifecycle | |
| TheLazySquid / GifCaptioner | 33.7K | 2026-10-08 | get-family lifecycle | |
| iris!#2888 / RemovedConnectionAlerts | 31.1K | 2026-05-21 | get-family lifecycle | |
| tnt4me / SleekCord | 24.9K | 2026-10-08 | outdated CSS variables | |
| arg0NNY / BetterChannelList | 23.0K | 2026-06-04 | outdated CSS variables | |
| DevilBro / CustomQuoter | 15.0K | 2026-09-06 | get-family lifecycle | |
| DaddyBoard / PingNotification | 14.9K | 2026-10-02 | outdated CSS variables | |
| programmer2514 / UIRefreshRefresh | 13.0K | 2026-05-21 | outdated CSS variables | |
| DevilBro / TimedLightDarkMode | 12.6K | 2026-09-17 | get-family lifecycle | |
| TheLazySquid / VideoCompressor | 12.0K | 2026-09-29 | get-family lifecycle | |
| Arven / LiveTyping | 11.0K | 2026-10-12 | outdated CSS variables | |
| Arven / GuildProfile | 7.7K | 2026-10-12 | get-family lifecycleoutdated CSS variables | |
| Zacam / PurpleOnyx | 7.5K | 2026-05-12 | outdated CSS variables | |
| KingGamingYT / NewOldProfiles | 3.4K | 2026-10-08 | outdated CSS variables | |
| nicola02nb / ShortcutScreenshareScreen | 2.9K | 2026-06-02 | outdated CSS variables | |
| KingGamingYT / SimpleUserMenu | 2.5K | 2026-05-07 | outdated CSS variables |
43 addons (8.1M cumulative downloads) have not shipped in over two years and sit on a surface that already resolves to nothing. Their styling or overrides are degraded for every current install today; removing the surface costs them nothing further.
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 | 44 | 44 | |
| github.com | 3 | 4 | |
| raw.githubusercontent.com | 2 | 2 | |
| api.github.com | 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 | |
| ws.audioscrobbler.com | 1 | 1 | |
| doggybootsy.github.io | 1 | 1 | |
| oneshot-free.www.deepl.com | 1 | 1 | |
| rules2.clearurls.xyz | 1 | 1 | |
| timezonedb.catvibers.me | 1 | 1 | |
| thelazysquid.github.io | 1 | 1 | |
| gql.twitch.tv | 1 | 1 | |
| 127.0.0.1 | 1 | 1 | |
| api.streamelements.com | 1 | 1 | |
| tiktok-tts.weilnet.workers.dev | 1 | 1 | |
| cdn.jsdelivr.net | 1 | 1 |
| Host | Addons | Refs | |
|---|---|---|---|
| discord.com | 32 | 163,103 | |
| fonts.gstatic.com | 29 | 77 | |
| fonts.googleapis.com | 26 | 40 | |
| i.imgur.com | 23 | 162 | |
| mwittrien.github.io | 19 | 17,440 | |
| raw.githubusercontent.com | 17 | 178 | |
| discordstyles.github.io | 14 | 30 | |
| cdn.discordapp.com | 13 | 139 | |
| saltssaumure.github.io | 7 | 35 | |
| discord-custom-covers.github.io | 6 | 6 | |
| ptb.discord.com | 5 | 25 | |
| discordapp.com | 5 | 20 | |
| github.com | 5 | 16 | |
| devevil99.github.io | 5 | 7 | |
| raw.githack.com | 5 | 5 | |
| nyri4.github.io | 4 | 196 | |
| 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 | |
| user-images.githubusercontent.com | 4 | 4 | |
| capnkitten.github.io | 3 | 582 | |
| 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 | |
| media.discordapp.net | 3 | 5 | |
| dablulite.github.io | 3 | 3 | |
| mr-miner1.github.io | 3 | 3 | |
| snajperexe.github.io | 2 | 13 | |
| dyzean.github.io | 2 | 10 | |
| cdn.rawgit.com | 2 | 10 | |
| zuzumi-f.github.io | 2 | 10 | |
| xcruxiex.github.io | 2 | 8 | |
| spinfish.github.io | 2 | 7 | |
| refact0r.github.io | 2 | 7 | |
| minidiscordthemes.github.io | 2 | 7 | |
| tiredmala.github.io | 2 | 7 | |
| elisniper.github.io | 2 | 6 | |
| gibbu.github.io | 2 | 5 | |
| www.svgrepo.com | 2 | 4 | |
| b4t3s.github.io | 2 | 4 | |
| images.alphacoders.com | 2 | 3 | |
| goose-nest.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 | |
| dagcord.github.io | 2 | 2 | |
| images5.alphacoders.com | 2 | 2 | |
| images3.alphacoders.com | 2 | 2 | |
| www.your-url-here.com | 2 | 2 | |
| ellexidecodes.github.io | 2 | 2 | |
| xyzenix.github.io | 2 | 2 | |
| rawgit.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 | |
| bd-aw-theme-pages.arch-box.net | 1 | 33 | |
| ungiglio.github.io | 1 | 25 | |
| goldenlys.github.io | 1 | 23 | |
| leafyluigi.github.io | 1 | 22 | |
| warrayquipsome.github.io | 1 | 19 | |
| joshuah345.github.io | 1 | 18 | |
| lolpowerluke.github.io | 1 | 11 | |
| rockesv.github.io | 1 | 10 | |
| przemec.github.io | 1 | 10 | |
| slddev.github.io | 1 | 10 | |
| clearvision.github.io | 1 | 10 | |
| i.postimg.cc | 1 | 9 | |
| accrazed.github.io | 1 | 9 | |
| plusinsta.github.io | 1 | 6 | |
| zacam.github.io | 1 | 6 | |
| monstrousdev.github.io | 1 | 5 | |
| eight-p.github.io | 1 | 5 | |
| pixelmelt.github.io | 1 | 4 | |
| tnt4me.github.io | 1 | 4 | |
| encore.scdn.co | 1 | 4 | |
| p0rtl6.github.io | 1 | 3 | |
| slippinggittys-discord-themes.github.io | 1 | 3 | |
| riddim-glitch.github.io | 1 | 3 | |
| lukasvh.codeberg.page | 1 | 2 | |
| i.vgy.me | 1 | 2 | |
| imgpile.com | 1 | 2 | |
| rawcdn.githack.com | 1 | 2 | |
| deadfrekk.github.io | 1 | 2 | |
| external-content.duckduckgo.com | 1 | 2 | |
| syndishanx.github.io | 1 | 2 | |
| forums.everybodyedits.com | 1 | 2 | |
| purplewizard.space | 1 | 1 | |
| marda33.github.io | 1 | 1 | |
| l-ratio.github.io | 1 | 1 | |
| (dynamic) | 1 | 1 | |
| discord-mica.pages.dev | 1 | 1 | |
| abs.twimg.com | 1 | 1 | |
| images8.alphacoders.com | 1 | 1 | |
| wallpapers.com | 1 | 1 | |
| winzoro.net | 1 | 1 | |
| images7.alphacoders.com | 1 | 1 | |
| zerebos.github.io | 1 | 1 | |
| dom1torii.github.io | 1 | 1 | |
| cursedelectric.github.io | 1 | 1 | |
| cursedelectric.neocities.org | 1 | 1 | |
| i.gifer.com | 1 | 1 | |
| chloecinders.github.io | 1 | 1 | |
| booglesmcgee.github.io | 1 | 1 | |
| markchan0225.github.io | 1 | 1 | |
| nfld99.github.io | 1 | 1 | |
| multiplexurbangreen.com | 1 | 1 | |
| cdn.custom-cursor.com | 1 | 1 | |
| cdn-icons-png.flaticon.com | 1 | 1 | |
| patrykbielanin.github.io | 1 | 1 | |
| imgur.com | 1 | 1 | |
| cinnab0nbak3ry.github.io | 1 | 1 | |
| mixter213.github.io | 1 | 1 | |
| chaseingebritson.github.io | 1 | 1 | |
| puckzxz.github.io | 1 | 1 | |
| luckfire.github.io | 1 | 1 | |
| steamuserimages-a.akamaihd.net | 1 | 1 | |
| nexus-themes.github.io | 1 | 1 | |
| killyoy.github.io | 1 | 1 |
| Host | Plugins | Refs | |
|---|---|---|---|
| www.w3.org | 48 | 176 | |
| mwittrien.github.io | 45 | 49 | |
| github.com | 40 | 45 | |
| raw.githubusercontent.com | 29 | 32 | |
| cdn.discordapp.com | 16 | 61 | |
| (dynamic) | 8 | 14 | |
| media.discordapp.net | 6 | 23 | |
| discord.com | 5 | 16 | |
| paypal.me | 5 | 5 | |
| i.scdn.co | 4 | 6 | |
| static-cdn.jtvnw.net | 3 | 5 | |
| translate.googleapis.com | 3 | 4 | |
| yandex.com | 3 | 3 | |
| devevil.com | 3 | 3 | |
| svelte.dev | 2 | 42 | |
| media.tenor.com | 2 | 8 | |
| cdn.jsdelivr.net | 2 | 5 | |
| generativelanguage.googleapis.com | 2 | 3 | |
| example.com | 2 | 3 | |
| tenor.com | 2 | 3 | |
| www.youtube.com | 2 | 3 | |
| api.github.com | 2 | 2 | |
| discord.gg | 2 | 2 | |
| i.ytimg.com | 2 | 2 | |
| search.brave.com | 2 | 2 |
| duckduckgo.com | 2 | 2 | |
| regexr.com | 2 | 2 | |
| www.google.com | 2 | 2 | |
| www.bing.com | 2 | 2 | |
| api.openai.com | 2 | 2 | |
| api.spotify.com | 2 | 2 | |
| api.groq.com | 2 | 2 | |
| wikipedia.org | 1 | 9,481 | |
| i.imgur.com | 1 | 6 | |
| www.patreon.com | 1 | 3 | |
| shared.fastly.steamstatic.com | 1 | 2 | |
| doggybootsy.com | 1 | 2 | |
| docs.betteranimations.net | 1 | 2 | |
| startpage.com | 1 | 2 | |
| openapi.naver.com | 1 | 2 | |
| images-ext-2.discordapp.net | 1 | 2 | |
| images-ext-1.discordapp.net | 1 | 2 | |
| open.spotify.com | 1 | 2 | |
| console.groq.com | 1 | 2 | |
| platform.openai.com | 1 | 2 | |
| api.streamelements.com | 1 | 2 | |
| www.twitch.tv | 1 | 1 | |
| makersuite.google.com | 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 | |
| api-v2.soundcloud.com | 1 | 1 | |
| ws.audioscrobbler.com | 1 | 1 | |
| doggybootsy.github.io | 1 | 1 | |
| oneshot-free.www.deepl.com | 1 | 1 | |
| rules2.clearurls.xyz | 1 | 1 | |
| timezonedb.catvibers.me | 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 | |
| zerebos.com | 1 | 1 | |
| avatars.githubusercontent.com | 1 | 1 | |
| gist.githubusercontent.com | 1 | 1 | |
| betterdiscord.app | 1 | 1 | |
| boosty.to | 1 | 1 | |
| thelazysquid.github.io | 1 | 1 | |
| latex.codecogs.com | 1 | 1 | |
| undefined | 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 | |
| tenor.googleapis.com | 1 | 1 | |
| www.paypal.me | 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 | |
| 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 | |
| translate-pa.googleapis.com | 1 | 1 | |
| gql.twitch.tv | 1 | 1 | |
| player.twitch.tv | 1 | 1 | |
| twitch.tv | 1 | 1 | |
| twitter.com | 1 | 1 | |
| api.supadata.ai | 1 | 1 | |
| supadata.ai | 1 | 1 | |
| spotify.com | 1 | 1 | |
| 127.0.0.1 | 1 | 1 | |
| convertio.co | 1 | 1 | |
| tiktok-tts.weilnet.workers.dev | 1 | 1 | |
| devevil99.github.io | 1 | 1 | |
| xenoncolt.live | 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. The largest such convention is @updateUrl: 87 addons (26%) carry a field BD never reads — de-facto demand evidence for a first-party update mechanism. Nearly nothing fetches it today (a 2026-07 probe put the hosts at mwittrien.github.io 54, raw.githubusercontent.com 28, then singletons; the one remaining ZeresPluginLibrary dependent is the only self-rolled reader), so these URLs stay advisory and are deliberately excluded from the CSP host inventories.
| Field | Addons | % of corpus | |
|---|---|---|---|
@name required | 329 | 100% | |
@author required | 329 | 100% | |
@description required | 329 | 100% | |
@version required | 329 | 100% | |
@source | 295 | 89% | |
@invite | 190 | 58% | |
@website | 171 | 52% | |
@authorId | 165 | 50% | |
@donate | 116 | 35% | |
@authorLink | 65 | 20% | |
@patreon | 58 | 18% | |
@runAt | 27 | 8% | |
@updateUrl non-standard | 87 | 26% | |
@stable non-standard | 16 | 5% | |
@canary non-standard | 16 | 5% | |
@license non-standard | 12 | 4% | |
@var non-standard | 6 | 2% | |
@changelog non-standard | 3 | 1% | |
@credit non-standard | 2 | 1% | |
@colorwayVar non-standard | 1 | 0% | |
@github non-standard | 1 | 0% | |
@github_raw non-standard | 1 | 0% | |
@exports non-standard | 1 | 0% | |
@discordBuild non-standard | 1 | 0% | |
@updateurl non-standard | 1 | 0% | |
@displayName non-standard | 1 | 0% | |
@updateURL 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 @source | 2 |
Which addons
| |
Link field is not an http(s) URL @website | 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 | 76 | 58 |
dangerouslySetInnerHTML | 13 | 7 |
outerHTML | 4 | 1 |
| Kind | Uses | Plugins |
|---|---|---|
Function | 3 | 3 |
Worker | 3 | 3 |
eval | 2 | 2 |
createElement("script") | 2 | 2 |
| Signal | Plugins | |
|---|---|---|
| large-string-array | 28 | |
| high-entropy-strings | 24 | |
| escape-heavy-strings | 5 | |
| dynamic-function | 3 | |
| dynamic-eval | 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 |
| programmer2514 / CollapsibleUI | large-string-arraydynamic-eval |
| thelastbucket / ChatButtonsBegone | large-string-arrayhigh-entropy-strings |
| KingGamingYT / ActivityFeed | large-string-arrayescape-heavy-strings |
| Zerebos / RoleMembers | large-string-arrayhigh-entropy-strings |
| arg0NNY / PasscodeLock | large-string-arrayhigh-entropy-strings |
| TheLazySquid / GifCaptioner | large-string-arrayhigh-entropy-strings |
| Knew / EmbedMoreImages | large-string-arrayhigh-entropy-strings |
| DevilBro / Translator | large-string-arrayhigh-entropy-strings |
| Snues / Incognito | large-string-arrayhigh-entropy-strings |
| SuperTouch / Summarizer | large-string-arrayhigh-entropy-strings |
| DaddyBoard / PingNotification | large-string-arrayhigh-entropy-strings |
Sinks probed across every plugin (2026-07) and found nowhere in the store corpus — a clean probe is a finding about store health, so it is cited rather than silently lacking a rule: child_process (no shell execution at all), string-argument setTimeout/setInterval, document.write, auth-token webpack lookups (getToken), dynamic import() of remote URLs, and hardcoded Discord REST paths (the three plugins matching /api/vN call third-party APIs — translation, game stores — and the lone discord.com network sink is an asset fetch). Raw localStorage appears in one plugin, on a dead code path.