From b910b3d1473769cf73a4366c883c8516222d047e Mon Sep 17 00:00:00 2001 From: Vendicated Date: Sun, 14 Dec 2025 14:42:37 +0100 Subject: [PATCH 1/5] fix FriendsSince & own CustomRPC buttons not showing for yourself --- src/api/PluginManager.ts | 6 +++++- .../settings/tabs/plugins/PluginCard.tsx | 6 +++--- src/plugins/customRPC/index.tsx | 15 +++++++++------ src/plugins/friendsSince/index.tsx | 2 +- src/utils/types.ts | 4 ++++ 5 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/api/PluginManager.ts b/src/api/PluginManager.ts index d75617e33..17976da31 100644 --- a/src/api/PluginManager.ts +++ b/src/api/PluginManager.ts @@ -91,6 +91,10 @@ function isReporterTestable(p: Plugin, part: ReporterTestable) { : (p.reporterTestable & part) === part; } +export function pluginRequiresRestart(p: Plugin) { + return p.requiresRestart !== false && (p.requiresRestart || !!p.patches?.length); +} + export const startAllPlugins = traceFunction("startAllPlugins", function startAllPlugins(target: StartAt) { logger.info(`Starting plugins (stage ${target})`); for (const name in Plugins) { @@ -119,7 +123,7 @@ export function startDependenciesRecursive(p: Plugin) { settings[d].enabled = true; dep.isDependency = true; - if (dep.patches) { + if (pluginRequiresRestart(dep)) { logger.warn(`Enabling dependency ${d} requires restart.`); restartNeeded = true; return; diff --git a/src/components/settings/tabs/plugins/PluginCard.tsx b/src/components/settings/tabs/plugins/PluginCard.tsx index a0c9cbc41..cf08bad89 100644 --- a/src/components/settings/tabs/plugins/PluginCard.tsx +++ b/src/components/settings/tabs/plugins/PluginCard.tsx @@ -5,7 +5,7 @@ */ import { showNotice } from "@api/Notices"; -import { isPluginEnabled, startDependenciesRecursive, startPlugin, stopPlugin } from "@api/PluginManager"; +import { isPluginEnabled, pluginRequiresRestart, startDependenciesRecursive, startPlugin, stopPlugin } from "@api/PluginManager"; import { CogWheel, InfoIcon } from "@components/Icons"; import { AddonCard } from "@components/settings/AddonCard"; import { isObjectEmpty } from "@utils/misc"; @@ -49,8 +49,8 @@ export function PluginCard({ plugin, disabled, onRestartNeeded, onMouseEnter, on } } - // if the plugin has patches, dont use stopPlugin/startPlugin. Wait for restart to apply changes. - if (plugin.patches?.length) { + // if the plugin requires a restart, don't use stopPlugin/startPlugin. Wait for restart to apply changes. + if (pluginRequiresRestart(plugin)) { settings.enabled = !wasEnabled; onRestartNeeded(plugin.name, "enabled"); return; diff --git a/src/plugins/customRPC/index.tsx b/src/plugins/customRPC/index.tsx index 2408b8cc1..45a567c37 100644 --- a/src/plugins/customRPC/index.tsx +++ b/src/plugins/customRPC/index.tsx @@ -215,17 +215,20 @@ export default definePlugin({ description: "Add a fully customisable Rich Presence (Game status) to your Discord profile", authors: [Devs.captain, Devs.AutumnVN, Devs.nin0dev], dependencies: ["UserSettingsAPI"], - start: setRpc, - stop: () => setRpc(true), + // This plugin's patch is not important for functionality, so don't require a restart + requiresRestart: false, settings, + start: setRpc, + stop: () => setRpc(true), + + // Discord hides buttons on your own Rich Presence for some reason. This patch disables that behaviour patches: [ { - find: ".party?(0", - all: true, + find: ".buttons.length)>=1", replacement: { - match: /\i\.id===\i\.id\?null:/, - replace: "" + match: /.getId\(\)===\i.id/, + replace: "$& && false" } } ], diff --git a/src/plugins/friendsSince/index.tsx b/src/plugins/friendsSince/index.tsx index d5628edf8..8c0c11c7e 100644 --- a/src/plugins/friendsSince/index.tsx +++ b/src/plugins/friendsSince/index.tsx @@ -15,7 +15,7 @@ const containerWrapper = findByPropsLazy("memberSinceWrapper"); const container = findByPropsLazy("memberSince"); const getCreatedAtDate = findByCodeLazy('month:"short",day:"numeric"'); const locale = findByPropsLazy("getLocale"); -const Section = findComponentByCodeLazy('"auto":"smooth"', ".section"); +const Section = findComponentByCodeLazy('headingVariant:"text-xs/medium"', ".section"); export default definePlugin({ name: "FriendsSince", diff --git a/src/utils/types.ts b/src/utils/types.ts index e7b78f972..7fc676185 100644 --- a/src/utils/types.ts +++ b/src/utils/types.ts @@ -126,6 +126,10 @@ export interface PluginDef { * Whether this plugin should be enabled by default, but can be disabled */ enabledByDefault?: boolean; + /** + * Whether enabling or disabling this plugin requires a restart. Defaults to true if the plugin has patches. + */ + requiresRestart?: boolean; /** * When to call the start() method * @default StartAt.WebpackReady From 40b0976c35f7d0fef2e78c0dbc2f486da7e45f19 Mon Sep 17 00:00:00 2001 From: Vendicated Date: Sun, 14 Dec 2025 14:58:35 +0100 Subject: [PATCH 2/5] FriendsSince: fix in dms profile sidebar --- src/plugins/friendsSince/index.tsx | 65 +++++++++++++++++------------ src/plugins/friendsSince/styles.css | 3 ++ 2 files changed, 42 insertions(+), 26 deletions(-) create mode 100644 src/plugins/friendsSince/styles.css diff --git a/src/plugins/friendsSince/index.tsx b/src/plugins/friendsSince/index.tsx index 8c0c11c7e..c39b2600e 100644 --- a/src/plugins/friendsSince/index.tsx +++ b/src/plugins/friendsSince/index.tsx @@ -4,6 +4,8 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ +import "./styles.css"; + import ErrorBoundary from "@components/ErrorBoundary"; import { Devs } from "@utils/constants"; import { getCurrentChannel } from "@utils/discord"; @@ -15,7 +17,7 @@ const containerWrapper = findByPropsLazy("memberSinceWrapper"); const container = findByPropsLazy("memberSince"); const getCreatedAtDate = findByCodeLazy('month:"short",day:"numeric"'); const locale = findByPropsLazy("getLocale"); -const Section = findComponentByCodeLazy('headingVariant:"text-xs/medium"', ".section"); +const Section = findComponentByCodeLazy("headingVariant:", ".section", ".header"); export default definePlugin({ name: "FriendsSince", @@ -54,35 +56,46 @@ export default definePlugin({ const friendsSince = RelationshipStore.getSince(userId); if (!friendsSince) return null; + if (isSidebar) { + return ( +
+ + {getCreatedAtDate(friendsSince, locale.getLocale())} + +
+ ); + } + return ( -
- { - isSidebar ? ( +
+
+
+ {!!getCurrentChannel()?.guild_id && ( + + )} {getCreatedAtDate(friendsSince, locale.getLocale())} - ) : ( -
-
- {!!getCurrentChannel()?.guild_id && ( - - )} - - {getCreatedAtDate(friendsSince, locale.getLocale())} - -
-
- ) - } +
+
); }, { noop: true }), diff --git a/src/plugins/friendsSince/styles.css b/src/plugins/friendsSince/styles.css new file mode 100644 index 000000000..0e404c1b6 --- /dev/null +++ b/src/plugins/friendsSince/styles.css @@ -0,0 +1,3 @@ +.vc-friendsSince-profile-section { + gap: 4px; +} \ No newline at end of file From 5b369dbed1e917e4a26f3b7dca4b8d7b7b12fb6e Mon Sep 17 00:00:00 2001 From: Vendicated Date: Sun, 14 Dec 2025 15:22:44 +0100 Subject: [PATCH 3/5] remove legacy intl compatibility --- packages/discord-types/src/components.d.ts | 8 --- src/plugins/fakeNitro/index.tsx | 16 ++---- src/plugins/noBlockedMessages/index.ts | 4 +- src/utils/discord.tsx | 6 +-- src/utils/intlHash.ts | 15 ------ src/utils/patches.ts | 63 ++++++---------------- src/webpack/common/utils.ts | 3 +- src/webpack/patchWebpack.ts | 6 --- 8 files changed, 26 insertions(+), 95 deletions(-) diff --git a/packages/discord-types/src/components.d.ts b/packages/discord-types/src/components.d.ts index 76e03a918..bb26e5ecd 100644 --- a/packages/discord-types/src/components.d.ts +++ b/packages/discord-types/src/components.d.ts @@ -317,14 +317,6 @@ export type Slider = ComponentClass>; -// TODO - type maybe idk probably not that useful other than the constants -export type Flex = ComponentType> & { - Align: Record<"START" | "END" | "CENTER" | "STRETCH" | "BASELINE", string>; - Direction: Record<"VERTICAL" | "HORIZONTAL" | "HORIZONTAL_REVERSE", string>; - Justify: Record<"START" | "END" | "CENTER" | "BETWEEN" | "AROUND", string>; - Wrap: Record<"NO_WRAP" | "WRAP" | "WRAP_REVERSE", string>; -}; - declare enum PopoutAnimation { NONE = "1", TRANSLATE = "2", diff --git a/src/plugins/fakeNitro/index.tsx b/src/plugins/fakeNitro/index.tsx index 8f9127f59..824744c1a 100644 --- a/src/plugins/fakeNitro/index.tsx +++ b/src/plugins/fakeNitro/index.tsx @@ -23,7 +23,7 @@ import { Devs } from "@utils/constants"; import { getCurrentGuild, getEmojiURL } from "@utils/discord"; import { Logger } from "@utils/Logger"; import definePlugin, { OptionType, Patch } from "@utils/types"; -import type { Emoji, Message } from "@vencord/discord-types"; +import type { Emoji, Message, Sticker } from "@vencord/discord-types"; import { StickerFormatType } from "@vencord/discord-types/enums"; import { findByCodeLazy, findByPropsLazy, findStoreLazy, proxyLazyWebpack } from "@webpack"; import { Alerts, ChannelStore, DraftType, EmojiStore, FluxDispatcher, Forms, GuildMemberStore, lodash, Parser, PermissionsBits, PermissionStore, StickersStore, UploadHandler, UserSettingsActionCreators, UserStore } from "@webpack/common"; @@ -702,8 +702,9 @@ export default definePlugin({ } }, - getStickerLink(stickerId: string) { - return `https://media.discordapp.net/stickers/${stickerId}.png?size=${settings.store.stickerSize}`; + getStickerLink({ format_type, id }: Sticker) { + const ext = format_type === StickerFormatType.GIF; + return `https://media.discordapp.net/stickers/${id}.${ext}?size=${settings.store.stickerSize}`; }, async sendAnimatedSticker(stickerLink: string, stickerId: string, channelId: string) { @@ -840,14 +841,7 @@ export default definePlugin({ if (sticker.available !== false && (canUseStickers || sticker.guild_id === guildId)) break stickerBypass; - // [12/12/2023] - // Work around an annoying bug where getStickerLink will return StickerType.GIF, - // but will give us a normal non animated png for no reason - // TODO: Remove this workaround when it's not needed anymore - let link = this.getStickerLink(sticker.id); - if (sticker.format_type === StickerFormatType.GIF && link.includes(".png")) { - link = link.replace(".png", ".gif"); - } + const link = this.getStickerLink(sticker); if (sticker.format_type === StickerFormatType.APNG) { if (!hasAttachmentPerms(channelId)) { diff --git a/src/plugins/noBlockedMessages/index.ts b/src/plugins/noBlockedMessages/index.ts index c8fe022aa..f8153750f 100644 --- a/src/plugins/noBlockedMessages/index.ts +++ b/src/plugins/noBlockedMessages/index.ts @@ -18,7 +18,7 @@ import { definePluginSettings, migratePluginSetting } from "@api/Settings"; import { Devs } from "@utils/constants"; -import { runtimeHashMessageKey, runtimeHashMessageKeyLegacy } from "@utils/intlHash"; +import { runtimeHashMessageKey } from "@utils/intlHash"; import { Logger } from "@utils/Logger"; import definePlugin, { OptionType } from "@utils/types"; import { Message } from "@vencord/discord-types"; @@ -92,7 +92,7 @@ export default definePlugin({ shouldHide(props: MessageDeleteProps): boolean { try { const collapsedReason = props.collapsedReason(); - const is = (key: string) => collapsedReason === i18n.t[runtimeHashMessageKey(key)]() || collapsedReason === i18n.t[runtimeHashMessageKeyLegacy(key)](); + const is = (key: string) => collapsedReason === i18n.t[runtimeHashMessageKey(key)](); return is("BLOCKED_MESSAGE_COUNT") || (settings.store.applyToIgnoredUsers && is("IGNORED_MESSAGE_COUNT")); } catch (e) { diff --git a/src/utils/discord.tsx b/src/utils/discord.tsx index 08c9c3497..1198ef220 100644 --- a/src/utils/discord.tsx +++ b/src/utils/discord.tsx @@ -22,21 +22,19 @@ import { ChannelActionCreators, ChannelStore, ComponentDispatch, Constants, Flux import { Except } from "type-fest"; import { copyToClipboard } from "./clipboard"; -import { runtimeHashMessageKey, runtimeHashMessageKeyLegacy } from "./intlHash"; +import { runtimeHashMessageKey } from "./intlHash"; import { Logger } from "./Logger"; import { MediaModalItem, MediaModalProps, openMediaModal } from "./modal"; const IntlManagerLogger = new Logger("IntlManager"); -// TODO: remove legacy hashing function once Discord ships new one everywhere for a while - /** * Get an internationalized message from a non hashed key * @param key The plain message key * @param values The values to interpolate, if it's a rich message */ export function getIntlMessage(key: string, values?: Record): any { - return getIntlMessageFromHash(runtimeHashMessageKey(key), values, key) || getIntlMessageFromHash(runtimeHashMessageKeyLegacy(key), values, key); + return getIntlMessageFromHash(runtimeHashMessageKey(key), values, key); } /** diff --git a/src/utils/intlHash.ts b/src/utils/intlHash.ts index b66cd4d82..ac80d1368 100644 --- a/src/utils/intlHash.ts +++ b/src/utils/intlHash.ts @@ -50,18 +50,3 @@ export function runtimeHashMessageKey(key: string): string { BASE64_TABLE[((bytes[3] & 0x03) << 4) | (bytes[4] >> 4)], ].join(""); } - -// Old variant for compatibility -// TODO: remove once Discord shipped new one everywhere for a while -export function runtimeHashMessageKeyLegacy(key: string): string { - const hash = h64(key, 0); - const bytes = numberToBytes(hash); - return [ - BASE64_TABLE[bytes[0] >> 2], - BASE64_TABLE[((bytes[0] & 0x03) << 4) | (bytes[1] >> 4)], - BASE64_TABLE[((bytes[1] & 0x0f) << 2) | (bytes[2] >> 6)], - BASE64_TABLE[bytes[2] & 0x3f], - BASE64_TABLE[bytes[3] >> 2], - BASE64_TABLE[((bytes[3] & 0x03) << 4) | (bytes[3] >> 4)], - ].join(""); -} diff --git a/src/utils/patches.ts b/src/utils/patches.ts index c70249019..b212e6241 100644 --- a/src/utils/patches.ts +++ b/src/utils/patches.ts @@ -16,66 +16,35 @@ * along with this program. If not, see . */ -import { runtimeHashMessageKey, runtimeHashMessageKeyLegacy } from "./intlHash"; +import { runtimeHashMessageKey } from "./intlHash"; import { Patch, PatchReplacement, ReplaceFn } from "./types"; -// TODO: remove legacy hashing function once Discord ships new one everywhere for a while - -// @ts-expect-error "RegExp.escape" is very new and not yet in DOM types -const escapeRegex = RegExp.escape || ((s: string) => s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")); - -function getReplacement(isString: boolean, hashed: string) { - const hasSpecialChars = !Number.isNaN(Number(hashed[0])) || hashed.includes("+") || hashed.includes("/"); - - if (hasSpecialChars) { - return isString - ? `["${hashed}"]` - : String.raw`(?:\["${hashed}"\])`.replaceAll("+", "\\+"); - } - - return isString ? `.${hashed}` : String.raw`(?:\.${hashed})`; -} - -function getCompatReplacement(key: string) { - const hashed = getReplacement(false, runtimeHashMessageKey(key)); - const legacyHashed = getReplacement(false, runtimeHashMessageKeyLegacy(key)); - - return String.raw`(?:${hashed}|${legacyHashed})`; -} - -function canonicalizeMatchCompatString(str: string) { - let result = ""; - let lastIndex = 0; - const re = /#{intl::([\w$+/]*)(?:::(\w+))?}/g; - for (const match of str.matchAll(re)) { - result += escapeRegex(str.slice(lastIndex, match.index)); - result += match[2] === "raw" ? getReplacement(false, match[1]) : getCompatReplacement(match[1]); - lastIndex = (match.index ?? 0) + match[0].length; - } - result += escapeRegex(str.slice(lastIndex)); - return new RegExp(result); -} - -export function canonicalizeMatch(match: T): T extends RegExp ? RegExp : string | RegExp { - if (typeof match === "string") { - return canonicalizeMatchCompatString(match) as any; - } - +export function canonicalizeMatch(match: T): T { let partialCanon = typeof match === "string" ? match : match.source; partialCanon = partialCanon.replaceAll(/#{intl::([\w$+/]*)(?:::(\w+))?}/g, (_, key, modifier) => { - if (modifier === "raw") return getReplacement(false, key); - return getCompatReplacement(key); + const hashed = modifier === "raw" ? key : runtimeHashMessageKey(key); + + const isString = typeof match === "string"; + const hasSpecialChars = !Number.isNaN(Number(hashed[0])) || hashed.includes("+") || hashed.includes("/"); + + if (hasSpecialChars) { + return isString + ? `["${hashed}"]` + : String.raw`(?:\["${hashed}"\])`.replaceAll("+", "\\+"); + } + + return isString ? `.${hashed}` : String.raw`(?:\.${hashed})`; }); if (typeof match === "string") { - return partialCanon as any; + return partialCanon as T; } const canonSource = partialCanon.replaceAll("\\i", String.raw`(?:[A-Za-z_$][\w$]*)`); const canonRegex = new RegExp(canonSource, match.flags); canonRegex.toString = match.toString.bind(match); - return canonRegex as any; + return canonRegex as T; } export function canonicalizeReplace(replace: T, pluginPath: string): T { diff --git a/src/webpack/common/utils.ts b/src/webpack/common/utils.ts index ff4c0b29a..95bb5f267 100644 --- a/src/webpack/common/utils.ts +++ b/src/webpack/common/utils.ts @@ -205,8 +205,7 @@ export const DisplayProfileUtils: t.DisplayProfileUtils = mapMangledModuleLazy(/ export const DateUtils: t.DateUtils = mapMangledModuleLazy("millisecondsInUnit:", { calendarFormat: filters.byCode("sameElse"), dateFormat: filters.byCode('":'), - // TODO: the +? are for compat with the old version - Remove them once no longer needed - isSameDay: filters.byCode(/Math\.abs\(\+?\i-\+?\i\)/), + isSameDay: filters.byCode(/Math\.abs\(\i-\i\)/), diffAsUnits: filters.byCode("days:0", "millisecondsInUnit") }); diff --git a/src/webpack/patchWebpack.ts b/src/webpack/patchWebpack.ts index 2e2a793e6..57751b597 100644 --- a/src/webpack/patchWebpack.ts +++ b/src/webpack/patchWebpack.ts @@ -8,7 +8,6 @@ import { Settings } from "@api/Settings"; import { makeLazy } from "@utils/lazy"; import { Logger } from "@utils/Logger"; import { interpolateIfDefined } from "@utils/misc"; -import { canonicalizeReplacement } from "@utils/patches"; import { Patch, PatchReplacement } from "@utils/types"; import { WebpackRequire } from "@vencord/discord-types/webpack"; @@ -548,11 +547,6 @@ function patchFactory(moduleId: PropertyKey, originalFactory: AnyModuleFactory): continue; } - // TODO: remove once Vesktop has been updated to use addPatch - if (patch.plugin === "Vesktop") { - canonicalizeReplacement(replacement, "VCDP"); - } - const lastCode = code; const lastFactory = originalFactory; From ad173d700392adc5bab2176c65887ddaa58a6799 Mon Sep 17 00:00:00 2001 From: Vendicated Date: Sun, 14 Dec 2025 15:28:46 +0100 Subject: [PATCH 4/5] remove legacy css colour variable fallback --- src/api/Notifications/styles.css | 6 +- src/components/Button.css | 80 +++++++++---------- src/components/Card.css | 6 +- src/components/Switch.css | 4 +- src/components/settings/AddonCard.css | 4 +- src/components/settings/QuickAction.css | 6 +- .../tabs/patchHelper/FullPatchInput.tsx | 2 +- .../tabs/patchHelper/PatchPreview.tsx | 2 +- .../settings/tabs/plugins/UIElements.css | 6 +- .../tabs/plugins/components/styles.css | 2 +- .../settings/tabs/plugins/styles.css | 8 +- src/components/settings/tabs/styles.css | 4 +- src/plugins/betterSessions/index.tsx | 2 +- src/plugins/clientTheme/clientTheme.css | 2 +- src/plugins/copyFileContents/style.css | 4 +- src/plugins/customRPC/index.tsx | 2 +- src/plugins/customRPC/settings.css | 2 +- src/plugins/decor/ui/styles.css | 2 +- src/plugins/fakeNitro/index.tsx | 2 +- src/plugins/friendsSince/index.tsx | 2 +- src/plugins/ignoreActivities/index.tsx | 2 +- src/plugins/memberCount/style.css | 2 +- src/plugins/messageLogger/deleteStyleText.css | 2 +- src/plugins/permissionsViewer/styles.css | 14 ++-- src/plugins/pictureInPicture/styles.css | 6 +- src/plugins/pinDms/styles.css | 2 +- src/plugins/plainFolderIcon/style.css | 2 +- .../readAllNotificationsButton/style.css | 4 +- src/plugins/reviewDB/style.css | 4 +- src/plugins/sendTimestamps/styles.css | 4 +- src/plugins/serverInfo/styles.css | 6 +- src/plugins/spotifyControls/spotifyStyles.css | 14 ++-- src/plugins/textReplace/index.tsx | 2 +- src/plugins/userVoiceShow/style.css | 4 +- src/plugins/vencordToolbox/styles.css | 6 +- src/plugins/voiceDownload/style.css | 4 +- src/plugins/voiceMessages/styles.css | 4 +- 37 files changed, 115 insertions(+), 115 deletions(-) diff --git a/src/api/Notifications/styles.css b/src/api/Notifications/styles.css index 136ef7ea8..5ced23678 100644 --- a/src/api/Notifications/styles.css +++ b/src/api/Notifications/styles.css @@ -47,13 +47,13 @@ .vc-notification-close-btn { all: unset; cursor: pointer; - color: var(--interactive-icon-default, var(--interactive-normal)); + color: var(--interactive-icon-default); opacity: 0.5; transition: opacity 0.2s ease-in-out, color 0.2s ease-in-out; } .vc-notification-close-btn:hover { - color: var(--interactive-icon-hover, var(--interactive-hover)); + color: var(--interactive-icon-hover); opacity: 1; } @@ -137,5 +137,5 @@ .vc-notification-log-danger-btn { color: var(--white-500); - background-color: var(--redesign-button-danger-background, var(--button-danger-background)); + background-color: var(--redesign-button-danger-background); } \ No newline at end of file diff --git a/src/components/Button.css b/src/components/Button.css index 7e7eebdc7..6f70510b5 100644 --- a/src/components/Button.css +++ b/src/components/Button.css @@ -10,7 +10,7 @@ text-align: start; transition: 50ms ease-in; transition-property: background-color, color, border-color, opacity; - background: var(--control-secondary-background-default, var(--control-background-secondary-default)); + background: var(--control-secondary-background-default); color: var(--text-default); white-space: nowrap; @@ -26,7 +26,7 @@ &:focus-visible { /* stylelint-disable-next-line custom-property-pattern */ - box-shadow: 0 0 0 4px var(--__adaptive-focus-ring-color, var(--border-focus, var(--focus-primary, #00b0f4))); + box-shadow: 0 0 0 4px var(--__adaptive-focus-ring-color, var(--border-focus, #00b0f4)); } } @@ -63,84 +63,84 @@ } .vc-btn-primary { - background-color: var(--control-primary-background-default, var(--control-background-primary-default)); - border-color: var(--control-primary-border-default, var(--control-border-primary-default)); - color: var(--control-primary-text-default, var(--control-text-primary-default)); + background-color: var(--control-primary-background-default); + border-color: var(--control-primary-border-default); + color: var(--control-primary-text-default); &:hover { - background-color: var(--control-primary-background-hover, var(--control-background-primary-hover)); - border-color: var(--control-primary-border-hover, var(--control-border-primary-hover)); - color: var(--control-primary-text-hover, var(--control-text-primary-hover)); + background-color: var(--control-primary-background-hover); + border-color: var(--control-primary-border-hover); + color: var(--control-primary-text-hover); } } .vc-btn-secondary, .vc-btn-link { - background-color: var(--control-secondary-background-default, var(--control-background-secondary-default)); - border-color: var(--control-secondary-border-default, var(--control-border-secondary-default)); - color: var(--control-secondary-text-default, var(--control-text-secondary-default)); + background-color: var(--control-secondary-background-default); + border-color: var(--control-secondary-border-default); + color: var(--control-secondary-text-default); &:hover { - background-color: var(--control-secondary-background-hover, var(--control-background-secondary-hover)); - border-color: var(--control-secondary-border-hover, var(--control-border-secondary-hover)); - color: var(--control-secondary-text-hover, var(--control-text-secondary-hover)); + background-color: var(--control-secondary-background-hover); + border-color: var(--control-secondary-border-hover); + color: var(--control-secondary-text-hover); } } .vc-btn-dangerPrimary { - background-color: var(--control-critical-primary-background-default, var(--control-background-critical-primary-default)); - border-color: var(--control-critical-primary-border-default, var(--control-border-critical-primary-default)); - color: var(--control-critical-primary-text-default, var(--control-text-critical-primary-default)); + background-color: var(--control-critical-primary-background-default); + border-color: var(--control-critical-primary-border-default); + color: var(--control-critical-primary-text-default); &:hover { - background-color: var(--control-critical-primary-background-hover, var(--control-background-critical-primary-hover)); - border-color: var(--control-critical-primary-border-hover, var(--control-border-critical-primary-hover)); - color: var(--control-critical-primary-text-hover, var(--control-text-critical-primary-hover)); + background-color: var(--control-critical-primary-background-hover); + border-color: var(--control-critical-primary-border-hover); + color: var(--control-critical-primary-text-hover); } } .vc-btn-dangerSecondary { - background-color: var(--control-critical-secondary-background-default, var(--control-background-critical-secondary-default)); - border-color: var(--control-critical-secondary-border-default, var(--control-border-critical-secondary-default)); - color: var(--control-critical-secondary-text-default, var(--control-text-critical-secondary-default)); + background-color: var(--control-critical-secondary-background-default); + border-color: var(--control-critical-secondary-border-default); + color: var(--control-critical-secondary-text-default); &:hover { - background-color: var(--control-critical-secondary-background-hover, var(--control-background-critical-secondary-hover)); - border-color: var(--control-critical-secondary-border-hover, var(--control-border-critical-secondary-hover)); - color: var(--control-critical-secondary-text-hover, var(--control-text-critical-secondary-hover)); + background-color: var(--control-critical-secondary-background-hover); + border-color: var(--control-critical-secondary-border-hover); + color: var(--control-critical-secondary-text-hover); } } .vc-btn-overlayPrimary { - background-color: var(--control-overlay-primary-background-default, var(--control-background-overlay-primary-default)); - border-color: var(--control-overlay-primary-border-default, var(--control-border-overlay-primary-default)); - color: var(--control-overlay-primary-text-default, var(--control-text-overlay-primary-default)); + background-color: var(--control-overlay-primary-background-default); + border-color: var(--control-overlay-primary-border-default); + color: var(--control-overlay-primary-text-default); &:hover { - background-color: var(--control-overlay-primary-background-hover, var(--control-background-overlay-primary-hover)); - border-color: var(--control-overlay-primary-border-hover, var(--control-border-overlay-primary-hover)); - color: var(--control-overlay-primary-text-hover, var(--control-text-overlay-primary-hover)); + background-color: var(--control-overlay-primary-background-hover); + border-color: var(--control-overlay-primary-border-hover); + color: var(--control-overlay-primary-text-hover); } } .vc-btn-positive { - background-color: var(--redesign-button-positive-background, var(--button-positive-background)); + background-color: var(--redesign-button-positive-background); color: var(--white); &:hover { - background-color: var(--redesign-button-positive-pressed-background, var(--button-positive-background-hover)); + background-color: var(--redesign-button-positive-pressed-background); } } .vc-btn-none { background-color: transparent; border-color: transparent; - color: var(--control-icon-only-icon-default, var(--control-icon-icon-only-default)); + color: var(--control-icon-only-icon-default); &:hover { - background-color: var(--control-icon-only-background-hover, var(--control-background-icon-only-hover)); - border-color: var(--control-icon-only-border-hover, var(--control-border-icon-only-hover)); - color: var(--control-icon-only-icon-hover, var(--control-icon-icon-only-hover)); + background-color: var(--control-icon-only-background-hover); + border-color: var(--control-icon-only-border-hover); + color: var(--control-icon-only-icon-hover); } } @@ -177,7 +177,7 @@ &:focus-visible { /* stylelint-disable-next-line custom-property-pattern */ - box-shadow: 0 0 0 4px var(--__adaptive-focus-ring-color, var(--border-focus, var(--focus-primary, #00b0f4))); + box-shadow: 0 0 0 4px var(--__adaptive-focus-ring-color, var(--border-focus, #00b0f4)); } } @@ -190,7 +190,7 @@ } .vc-text-btn-danger { - color: var(--text-feedback-critical, var(--text-danger)); + color: var(--text-feedback-critical); } .vc-text-btn-link { diff --git a/src/components/Card.css b/src/components/Card.css index 59ff8baa8..97e36ed84 100644 --- a/src/components/Card.css +++ b/src/components/Card.css @@ -1,5 +1,5 @@ .vc-card-base { - background: var(--card-background-default, var(--card-primary-bg)); + background: var(--card-background-default); border-radius: var(--radius-sm, 8px) } @@ -8,11 +8,11 @@ } .vc-card-warning { - border: 1px solid var(--icon-status-idle, var(--info-warning-foreground)); + border: 1px solid var(--icon-status-idle); } .vc-card-danger { - border: 1px solid var(--icon-status-dnd, var(--info-danger-foreground)); + border: 1px solid var(--icon-status-dnd); } .vc-card-defaultPadding { diff --git a/src/components/Switch.css b/src/components/Switch.css index 186724f46..cb23a892f 100644 --- a/src/components/Switch.css +++ b/src/components/Switch.css @@ -15,7 +15,7 @@ .vc-switch-checked { background: var(--brand-500); - border-color: var(--control-primary-border-default, var(--control-border-primary-default)); + border-color: var(--control-primary-border-default); } .vc-switch-disabled { @@ -25,7 +25,7 @@ .vc-switch-focusVisible { /* stylelint-disable-next-line custom-property-pattern */ - box-shadow: 0 0 0 4px var(--__adaptive-focus-ring-color, var(--border-focus, var(--focus-primary, #00b0f4))); + box-shadow: 0 0 0 4px var(--__adaptive-focus-ring-color, var(--border-focus, #00b0f4)); } .vc-switch-slider { diff --git a/src/components/settings/AddonCard.css b/src/components/settings/AddonCard.css index dbcd16e95..bb82ee1c3 100644 --- a/src/components/settings/AddonCard.css +++ b/src/components/settings/AddonCard.css @@ -1,6 +1,6 @@ .vc-addon-card { - background-color: var(--card-background-default, var(--card-primary-bg)); - color: var(--interactive-icon-active, var(--interactive-active)); + background-color: var(--card-background-default); + color: var(--interactive-icon-active); border: 1px solid var(--border-subtle); border-radius: 8px; display: block; diff --git a/src/components/settings/QuickAction.css b/src/components/settings/QuickAction.css index 10364f72a..caef5a290 100644 --- a/src/components/settings/QuickAction.css +++ b/src/components/settings/QuickAction.css @@ -14,7 +14,7 @@ .vc-settings-quickActions-pill { all: unset; - background: var(--redesign-button-secondary-background, var(--button-secondary-background)); + background: var(--redesign-button-secondary-background); color: var(--text-default); display: flex; align-items: center; @@ -26,13 +26,13 @@ } .vc-settings-quickActions-pill:hover { - background: var(--redesign-button-secondary-pressed-background, var(--button-secondary-background-hover)); + background: var(--redesign-button-secondary-pressed-background); transform: translateY(-1px); box-shadow: var(--elevation-high); } .vc-settings-quickActions-pill:focus-visible { - outline: 2px solid var(--border-focus, var(--focus-primary)); + outline: 2px solid var(--border-focus); outline-offset: 2px; } diff --git a/src/components/settings/tabs/patchHelper/FullPatchInput.tsx b/src/components/settings/tabs/patchHelper/FullPatchInput.tsx index 2a9ba6f80..eaad1d4f7 100644 --- a/src/components/settings/tabs/patchHelper/FullPatchInput.tsx +++ b/src/components/settings/tabs/patchHelper/FullPatchInput.tsx @@ -77,7 +77,7 @@ export function FullPatchInput({ setFind, setParsedFind, setMatch, setReplacemen onChange={setPatch} onBlur={update} /> - {error !== "" && {error}} + {error !== "" && {error}} ); } diff --git a/src/components/settings/tabs/patchHelper/PatchPreview.tsx b/src/components/settings/tabs/patchHelper/PatchPreview.tsx index f640730de..46613f19a 100644 --- a/src/components/settings/tabs/patchHelper/PatchPreview.tsx +++ b/src/components/settings/tabs/patchHelper/PatchPreview.tsx @@ -140,7 +140,7 @@ export function PatchPreview({ module, match, replacement, setReplacementError } )} {compileResult && ( - + {compileResult[1]} )} diff --git a/src/components/settings/tabs/plugins/UIElements.css b/src/components/settings/tabs/plugins/UIElements.css index c205abc29..30db51dbd 100644 --- a/src/components/settings/tabs/plugins/UIElements.css +++ b/src/components/settings/tabs/plugins/UIElements.css @@ -1,13 +1,13 @@ .vc-plugin-ui-elements-button { display: flex; align-items: center; - color: var(--interactive-icon-default, var(--interactive-normal)); + color: var(--interactive-icon-default); margin-top: 0.5em; cursor: pointer; &:hover { - background-color: var(--background-mod-subtle, var(--background-modifier-hover)); - color: var(--interactive-icon-hover, var(--interactive-hover)); + background-color: var(--background-mod-subtle); + color: var(--interactive-icon-hover); } } diff --git a/src/components/settings/tabs/plugins/components/styles.css b/src/components/settings/tabs/plugins/components/styles.css index a28b80c5b..f104d4db5 100644 --- a/src/components/settings/tabs/plugins/components/styles.css +++ b/src/components/settings/tabs/plugins/components/styles.css @@ -31,5 +31,5 @@ } .vc-plugins-setting-error { - color: var(--text-feedback-critical, var(--text-danger, #FF5C5C)); + color: var(--text-feedback-critical, #FF5C5C); } \ No newline at end of file diff --git a/src/components/settings/tabs/plugins/styles.css b/src/components/settings/tabs/plugins/styles.css index a4ad0d9fc..2685c6b1f 100644 --- a/src/components/settings/tabs/plugins/styles.css +++ b/src/components/settings/tabs/plugins/styles.css @@ -29,16 +29,16 @@ padding: 0; background: transparent; margin-right: 8px; - color: var(--icon-muted, var(--icon-secondary)); + color: var(--icon-muted); transition: background-color .2s ease; &:hover { - color: var(--interactive-icon-hover, var(--interactive-hover)) + color: var(--interactive-icon-hover) } } .vc-plugins-settings-button:hover { - color: var(--interactive-icon-hover, var(--interactive-hover)); + color: var(--interactive-icon-hover); } .vc-plugins-filter-controls { @@ -74,7 +74,7 @@ .vc-plugins-restart-button { margin-top: 0.5em; - background: var(--icon-status-idle, var(--info-warning-foreground)) !important; + background: var(--icon-status-idle) !important; } .vc-plugins-info-icon:not(:hover, :focus) { diff --git a/src/components/settings/tabs/styles.css b/src/components/settings/tabs/styles.css index 02a82faad..119dfac15 100644 --- a/src/components/settings/tabs/styles.css +++ b/src/components/settings/tabs/styles.css @@ -20,7 +20,7 @@ display: inline-block !important; color: var(--text-default) !important; padding: 0.5em 1em; - border: 1px solid var(--input-border-default, var(--input-border)); + border: 1px solid var(--input-border-default); max-height: unset; background-color: transparent; box-sizing: border-box; @@ -47,7 +47,7 @@ .vc-cloud-erase-data-danger-btn { color: var(--white-500); - background-color: var(--redesign-button-danger-background, var(--button-danger-background)); + background-color: var(--redesign-button-danger-background); } .vc-settings-modal { diff --git a/src/plugins/betterSessions/index.tsx b/src/plugins/betterSessions/index.tsx index f83925a3e..496db8842 100644 --- a/src/plugins/betterSessions/index.tsx +++ b/src/plugins/betterSessions/index.tsx @@ -140,7 +140,7 @@ export default definePlugin({ overflow: "hidden", borderRadius: "50%", - backgroundColor: "var(--interactive-icon-default, var(--interactive-normal))", + backgroundColor: "var(--interactive-icon-default)", color: "var(--background-base-lower)", }} > diff --git a/src/plugins/clientTheme/clientTheme.css b/src/plugins/clientTheme/clientTheme.css index a0607efb0..9c185bc0c 100644 --- a/src/plugins/clientTheme/clientTheme.css +++ b/src/plugins/clientTheme/clientTheme.css @@ -16,7 +16,7 @@ } .vc-clientTheme-container [class^="swatch"] { - border: thin solid var(--input-border-default, var(--input-border)) !important; + border: thin solid var(--input-border-default) !important; } .vc-clientTheme-buttons-container { diff --git a/src/plugins/copyFileContents/style.css b/src/plugins/copyFileContents/style.css index 4ad026754..818652539 100644 --- a/src/plugins/copyFileContents/style.css +++ b/src/plugins/copyFileContents/style.css @@ -1,9 +1,9 @@ .vc-cfc-button { - color: var(--interactive-icon-default, var(--interactive-normal)); + color: var(--interactive-icon-default); cursor: pointer; padding-left: 4px; } .vc-cfc-button:hover { - color: var(--interactive-icon-hover, var(--interactive-hover)); + color: var(--interactive-icon-hover); } \ No newline at end of file diff --git a/src/plugins/customRPC/index.tsx b/src/plugins/customRPC/index.tsx index 45a567c37..18e4bec14 100644 --- a/src/plugins/customRPC/index.tsx +++ b/src/plugins/customRPC/index.tsx @@ -279,7 +279,7 @@ export default definePlugin({ -
+
{activity && diff --git a/src/plugins/ignoreActivities/index.tsx b/src/plugins/ignoreActivities/index.tsx index 01db9bb4b..14863ad6f 100644 --- a/src/plugins/ignoreActivities/index.tsx +++ b/src/plugins/ignoreActivities/index.tsx @@ -64,7 +64,7 @@ function ToggleActivityComponent(activity: IgnoredActivity, isPlaying = false) { const { ignoredActivities } = s; if (ignoredActivities.some(act => act.id === activity.id)) return ToggleIconOff(activity, "var(--status-danger)"); - return ToggleIconOn(activity, isPlaying ? "var(--green-300)" : "var(--interactive-icon-default, var(--interactive-normal))"); + return ToggleIconOn(activity, isPlaying ? "var(--green-300)" : "var(--interactive-icon-default)"); } function handleActivityToggle(e: React.MouseEvent, activity: IgnoredActivity) { diff --git a/src/plugins/memberCount/style.css b/src/plugins/memberCount/style.css index fcb4cf0c8..6eb7efa14 100644 --- a/src/plugins/memberCount/style.css +++ b/src/plugins/memberCount/style.css @@ -47,7 +47,7 @@ .vc-membercount-total-count { fill: none; - stroke: var(--icon-status-offline, var(--status-offline)); + stroke: var(--icon-status-offline); stroke-width: 4px; width: 15px; height: 15px; diff --git a/src/plugins/messageLogger/deleteStyleText.css b/src/plugins/messageLogger/deleteStyleText.css index 82cf6ae94..e12261b70 100644 --- a/src/plugins/messageLogger/deleteStyleText.css +++ b/src/plugins/messageLogger/deleteStyleText.css @@ -1,6 +1,6 @@ .messagelogger-deleted { --text-default: var(--status-danger, #f04747); - --interactive-icon-default: var(--interactive-normal, var(--status-danger, #f04747)); + --interactive-icon-default: var(--status-danger, #f04747); --text-muted: var(--status-danger, #f04747); --embed-title: var(--red-460, #be3535); --text-link: var(--red-460, #be3535); diff --git a/src/plugins/permissionsViewer/styles.css b/src/plugins/permissionsViewer/styles.css index fff85b739..c4b4c0943 100644 --- a/src/plugins/permissionsViewer/styles.css +++ b/src/plugins/permissionsViewer/styles.css @@ -66,11 +66,11 @@ } .vc-permviewer-modal-list-item:hover { - background-color: var(--background-mod-subtle, var(--background-modifier-hover)); + background-color: var(--background-mod-subtle); } .vc-permviewer-modal-list-item-active { - background-color: var(--background-mod-strong, var(--background-modifier-selected)); + background-color: var(--background-mod-strong); } .vc-permviewer-modal-list-item-text { @@ -100,7 +100,7 @@ .vc-permviewer-modal-divider { width: 2px; - background-color: var(--background-mod-normal, var(--background-modifier-active)); + background-color: var(--background-mod-normal); } .vc-permviewer-modal-perms { @@ -114,7 +114,7 @@ align-items: center; gap: 5px; padding: 10px 2px 10px 10px; - border-bottom: 2px solid var(--background-mod-normal, var(--background-modifier-active)); + border-bottom: 2px solid var(--background-mod-normal); } .vc-permviewer-modal-perms-item:last-child { @@ -122,7 +122,7 @@ } .vc-permviewer-modal-perms-item-icon { - border: 1px solid var(--background-mod-strong, var(--background-modifier-selected)); + border: 1px solid var(--background-mod-strong); width: 24px; height: 24px; } @@ -135,13 +135,13 @@ } .vc-permviewer-modal-perms-item .vc-info-icon:hover { - color: var(--interactive-icon-active, var(--interactive-active)); + color: var(--interactive-icon-active); } /* copy pasted from discord cause impossible to webpack find */ .vc-permviewer-role-button { border-radius: var(--radius-sm); - color: var(--interactive-icon-default, var(--interactive-normal)); + color: var(--interactive-icon-default); border: 1px solid var(--user-profile-border); /* stylelint-disable-next-line value-no-vendor-prefix */ width: -moz-fit-content; diff --git a/src/plugins/pictureInPicture/styles.css b/src/plugins/pictureInPicture/styles.css index e889bc4bd..ec008e1f4 100644 --- a/src/plugins/pictureInPicture/styles.css +++ b/src/plugins/pictureInPicture/styles.css @@ -1,8 +1,8 @@ .vc-pip-button { - color: var(--interactive-icon-default, var(--interactive-normal)); + color: var(--interactive-icon-default); } .vc-pip-button:hover { - background-color: var(--background-mod-subtle, var(--background-modifier-hover)); - color: var(--interactive-icon-hover, var(--interactive-hover)); + background-color: var(--background-mod-subtle); + color: var(--interactive-icon-hover); } \ No newline at end of file diff --git a/src/plugins/pinDms/styles.css b/src/plugins/pinDms/styles.css index d038e06b1..1458743bf 100644 --- a/src/plugins/pinDms/styles.css +++ b/src/plugins/pinDms/styles.css @@ -28,7 +28,7 @@ .vc-pindms-collapse-icon { width: 16px; height: 16px; - color: var(--interactive-icon-default, var(--interactive-normal)); + color: var(--interactive-icon-default); transform: rotate(90deg) } diff --git a/src/plugins/plainFolderIcon/style.css b/src/plugins/plainFolderIcon/style.css index d8c7f6dc5..9b14be933 100644 --- a/src/plugins/plainFolderIcon/style.css +++ b/src/plugins/plainFolderIcon/style.css @@ -6,5 +6,5 @@ transform: translateZ(0); /* The new icons are fully transparent. Add a sane default to match the old behavior */ - background-color: color-mix(in oklab, var(--custom-folder-color, var(--badge-background-default, var(--bg-brand))) 40%, transparent); + background-color: color-mix(in oklab, var(--custom-folder-color, var(--badge-background-default)) 40%, transparent); } \ No newline at end of file diff --git a/src/plugins/readAllNotificationsButton/style.css b/src/plugins/readAllNotificationsButton/style.css index a3d55a214..1d1fe185a 100644 --- a/src/plugins/readAllNotificationsButton/style.css +++ b/src/plugins/readAllNotificationsButton/style.css @@ -1,5 +1,5 @@ .vc-ranb-button { - color: var(--interactive-icon-default, var(--interactive-normal)); + color: var(--interactive-icon-default); padding: 0 0.5em; width: 100%; font-size: 14px; @@ -8,5 +8,5 @@ } .vc-ranb-button:hover { - color: var(--interactive-icon-active, var(--interactive-active)); + color: var(--interactive-icon-active); } \ No newline at end of file diff --git a/src/plugins/reviewDB/style.css b/src/plugins/reviewDB/style.css index c462466d4..1efc9961f 100644 --- a/src/plugins/reviewDB/style.css +++ b/src/plugins/reviewDB/style.css @@ -40,7 +40,7 @@ .vc-rdb-modal-footer .vc-rdb-input { margin-bottom: 0; - background: var(--input-background-default, var(--input-background)); + background: var(--input-background-default); } .vc-rdb-modal-footer [class|="pageControlContainer"] { @@ -62,7 +62,7 @@ } .vc-rdb-review:hover { - background: var(--message-background-hover, var(--background-message-hover)) !important; + background: var(--message-background-hover) !important; border-radius: 8px; } diff --git a/src/plugins/sendTimestamps/styles.css b/src/plugins/sendTimestamps/styles.css index 08d119b81..0cdc02983 100644 --- a/src/plugins/sendTimestamps/styles.css +++ b/src/plugins/sendTimestamps/styles.css @@ -1,11 +1,11 @@ .vc-st-date-picker { - background-color: var(--input-background-default, var(--input-background)); + background-color: var(--input-background-default); color: var(--text-default); width: 95%; padding: 8px 8px 8px 12px; margin: 1em 0; outline: none; - border: 1px solid var(--input-background-default, var(--input-background)); + border: 1px solid var(--input-background-default); border-radius: 4px; font-weight: 500; font-style: inherit; diff --git a/src/plugins/serverInfo/styles.css b/src/plugins/serverInfo/styles.css index 741499c05..1b5bb43e2 100644 --- a/src/plugins/serverInfo/styles.css +++ b/src/plugins/serverInfo/styles.css @@ -48,7 +48,7 @@ .vc-gp-tab { border-bottom: 2px solid transparent; - color: var(--interactive-icon-default, var(--interactive-normal)); + color: var(--interactive-icon-default); cursor: pointer; line-height: 14px; } @@ -58,7 +58,7 @@ } .vc-gp-tab:where(.vc-gp-selected, :hover, :focus) { - border-bottom-color: var(--interactive-icon-active, var(--interactive-active)); + border-bottom-color: var(--interactive-icon-active); } .vc-gp-info { @@ -97,5 +97,5 @@ } .vc-gp-scroller [class^="listRow"]:hover { - background-color: var(--background-mod-subtle, var(--background-modifier-hover)); + background-color: var(--background-mod-subtle); } \ No newline at end of file diff --git a/src/plugins/spotifyControls/spotifyStyles.css b/src/plugins/spotifyControls/spotifyStyles.css index 4470ec201..74dd7a499 100644 --- a/src/plugins/spotifyControls/spotifyStyles.css +++ b/src/plugins/spotifyControls/spotifyStyles.css @@ -16,7 +16,7 @@ margin: 0 2px; border-radius: var(--radius-sm); background: none; - color: var(--interactive-icon-default, var(--interactive-normal)); + color: var(--interactive-icon-default); padding: 0; width: 32px; height: 32px; @@ -26,8 +26,8 @@ } .vc-spotify-button:hover { - color: var(--interactive-icon-hover, var(--interactive-hover)); - background-color: var(--background-mod-strong, var(--background-modifier-selected)); + color: var(--interactive-icon-hover); + background-color: var(--background-mod-strong); } .vc-spotify-button-icon { @@ -171,7 +171,7 @@ } #vc-spotify-progress-bar > [class^="slider"] [class^="barFill"] { - background-color: var(--interactive-icon-active, var(--interactive-active)); + background-color: var(--interactive-icon-active); } #vc-spotify-progress-bar > [class^="slider"]:hover [class^="barFill"] { @@ -184,9 +184,9 @@ width: 16px !important; margin-top: calc(17px/-2 + var(--bar-offset)/2); margin-left: -0.5px; - background-color: var(--interactive-icon-active, var(--interactive-active)); - border-color: var(--interactive-icon-default, var(--interactive-normal)); - color: var(--interactive-icon-default, var(--interactive-normal)); + background-color: var(--interactive-icon-active); + border-color: var(--interactive-icon-default); + color: var(--interactive-icon-default); opacity: 0; transition: opacity 0.1s; } diff --git a/src/plugins/textReplace/index.tsx b/src/plugins/textReplace/index.tsx index 35996cccd..8122ab395 100644 --- a/src/plugins/textReplace/index.tsx +++ b/src/plugins/textReplace/index.tsx @@ -92,7 +92,7 @@ function renderFindError(find: string) { return null; } catch (e) { return ( - + {String(e)} ); diff --git a/src/plugins/userVoiceShow/style.css b/src/plugins/userVoiceShow/style.css index 5984f9548..6ee5fd7a0 100644 --- a/src/plugins/userVoiceShow/style.css +++ b/src/plugins/userVoiceShow/style.css @@ -1,5 +1,5 @@ .vc-uvs-speaker { - color: var(--interactive-icon-default, var(--interactive-normal)); + color: var(--interactive-icon-default); display: flex; align-items: center; justify-content: center; @@ -10,7 +10,7 @@ } .vc-uvs-clickable:hover { - color: var(--interactive-icon-hover, var(--interactive-hover)); + color: var(--interactive-icon-hover); } .vc-uvs-profile-speaker { diff --git a/src/plugins/vencordToolbox/styles.css b/src/plugins/vencordToolbox/styles.css index 72b343edc..60991923d 100644 --- a/src/plugins/vencordToolbox/styles.css +++ b/src/plugins/vencordToolbox/styles.css @@ -4,13 +4,13 @@ } .vc-toolbox-icon { - color: var(--interactive-icon-default, var(--interactive-normal)); + color: var(--interactive-icon-default); } .vc-toolbox-btn[class*="selected"] .vc-toolbox-icon { - color: var(--interactive-icon-active, var(--interactive-active)); + color: var(--interactive-icon-active); } .vc-toolbox-btn:hover .vc-toolbox-icon { - color: var(--interactive-icon-hover, var(--interactive-hover)); + color: var(--interactive-icon-hover); } \ No newline at end of file diff --git a/src/plugins/voiceDownload/style.css b/src/plugins/voiceDownload/style.css index 56ebf5532..4e1379e21 100644 --- a/src/plugins/voiceDownload/style.css +++ b/src/plugins/voiceDownload/style.css @@ -1,12 +1,12 @@ .vc-voice-download { width: 24px; height: 24px; - color: var(--interactive-icon-default, var(--interactive-normal)); + color: var(--interactive-icon-default); margin-left: 12px; cursor: pointer; position: relative; } .vc-voice-download:hover { - color: var(--interactive-icon-active, var(--interactive-active)); + color: var(--interactive-icon-active); } \ No newline at end of file diff --git a/src/plugins/voiceMessages/styles.css b/src/plugins/voiceMessages/styles.css index de48729c2..5736a3378 100644 --- a/src/plugins/voiceMessages/styles.css +++ b/src/plugins/voiceMessages/styles.css @@ -21,7 +21,7 @@ } .vc-vmsg-preview-indicator { - background: var(--redesign-button-secondary-background, var(--button-secondary-background)); + background: var(--redesign-button-secondary-background); width: 16px; height: 16px; border-radius: 50%; @@ -50,5 +50,5 @@ } .vc-vmsg-error { - color: var(--text-feedback-critical, var(--text-danger, #FF5C5C)); + color: var(--text-feedback-critical, #FF5C5C); } \ No newline at end of file From 6827b8a3a657c117628bf90cc8fdd81fb1fbe437 Mon Sep 17 00:00:00 2001 From: Vendicated Date: Sun, 14 Dec 2025 15:33:26 +0100 Subject: [PATCH 5/5] bump to 1.13.9 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2e790a415..f6c2e7e12 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "vencord", "private": "true", - "version": "1.13.8", + "version": "1.13.9", "description": "The cutest Discord client mod", "homepage": "https://github.com/Vendicated/Vencord#readme", "bugs": {