css stuff

This commit is contained in:
thororen1234 2025-12-15 20:50:16 -05:00
parent 5c72a5e6a5
commit e73e2a11e4
No known key found for this signature in database
27 changed files with 73 additions and 85 deletions

View file

@ -47,7 +47,7 @@
margin-top: 10px;
}
.vc-bactivities-controls [class^="vc-activities-caret-"] {
.vc-bactivities-controls [class*="vc-activities-caret-"] {
display: inline-flex;
align-items: center;
justify-content: center;
@ -56,12 +56,12 @@
background-color: #ffffff4d;
}
.vc-bactivities-controls [class^="vc-activities-caret-"].disabled {
.vc-bactivities-controls [class*="vc-activities-caret-"].disabled {
cursor: not-allowed;
opacity: 0.3;
}
.vc-bactivities-controls [class^="vc-activities-caret-"]:hover:not(.disabled) {
.vc-bactivities-controls [class*="vc-activities-caret-"]:hover:not(.disabled) {
background: var(--input-border-default, var(--input-border));
}

View file

@ -27,9 +27,9 @@ function parseFileSize(size: string) {
}
function getMetadata(audioElement: HTMLElement) {
const metadataElement = audioElement.querySelector("[class^='metadataContent_']");
const metadataElement = audioElement.querySelector("[class*='metadataContent']");
const nameElement = metadataElement?.querySelector("a");
const sizeElement = audioElement.querySelector("[class^='metadataContent_'] [class^='metadataSize_']");
const sizeElement = audioElement.querySelector("[class*='metadataContent'] [class*='metadataSize']");
const url = nameElement?.getAttribute("href");
const audioElementLink = audioElement.querySelector("audio");
@ -42,7 +42,7 @@ function getMetadata(audioElement: HTMLElement) {
return false;
}
const elements = [metadataElement?.parentElement, audioElement.querySelector("[class^='audioControls_']")];
const elements = [metadataElement?.parentElement, audioElement.querySelector("[class*='audioControls']")];
const computedStyle = getComputedStyle(audioElement);
const parentBorderRadius = computedStyle.borderRadius;
@ -196,7 +196,7 @@ function drawSpectrograph(canvasContext, canvas, frequencyData, bufferLength) {
}
function scanForAudioElements(element: HTMLElement) {
element.querySelectorAll("[class^='wrapperAudio_']:not([data-better-audio-processed])").forEach(audioElement => {
element.querySelectorAll("[class*='wrapperAudio']:not([data-better-audio-processed])").forEach(audioElement => {
(audioElement as HTMLElement).dataset.betterAudioProcessed = "true";
const metadata = getMetadata(audioElement as HTMLElement);
@ -302,7 +302,7 @@ export default definePlugin({
settings,
start() {
const waitForContent = () => {
const targetNode = document.querySelector("[class^='content_']");
const targetNode = document.querySelector("[class*='content']");
if (targetNode) {
scanForAudioElements(targetNode as HTMLElement);
observer = createObserver(targetNode as HTMLElement);

View file

@ -1,3 +1,3 @@
[class*="usersList_"] [class*="text_"] {
[class*="usersList"] [class*="text"] {
user-select: text !important;
}
}

View file

@ -1,4 +1,4 @@
h3[class^="h5"]:has([class="vc-bi-header-inner"]) {
h3[class*="h5"]:has([class="vc-bi-header-inner"]) {
display: flex;
margin: 0 !important;
}

View file

@ -25,6 +25,6 @@
}
/* 8 or more columns exceeds the default max width */
[class*="menu_"]:has(>div>.vc-better-quick-react) {
[class*="menu"]:has(>div>.vc-better-quick-react) {
max-width: fit-content;
}
}

View file

@ -14,7 +14,7 @@
overflow: hidden;
}
.vc-channeltabs-tab [class^="wrapper_"] {
.vc-channeltabs-tab [class*="wrapper"] {
min-width: 1.5rem;
}
@ -314,14 +314,14 @@
fill: var(--white-500);
}
.vc-channeltabs-container [class^="iconContainer_"] {
.vc-channeltabs-container [class*="iconContainer"] {
margin: 0 -0.25rem 0 0;
pointer-events: none;
height: 1rem;
transform: scale(0.8);
}
.vc-channeltabs-container [class^="numberBadge"] {
.vc-channeltabs-container [class*="numberBadge"] {
background-color: var(--channeltabs-red) !important;
color: var(--channeltabs-white);
border-radius: 50%;
@ -1023,12 +1023,12 @@
}
/* Enhanced caching mode - smoother transitions */
[class*="chat_"] {
[class*="chat"] {
transition: opacity 0.1s ease;
}
/* Prevent flash when switching tabs with cache enabled */
[class*="scrollerInner_"] {
[class*="scrollerInner"] {
scroll-behavior: auto;
}

View file

@ -335,7 +335,7 @@ export function moveDraggedTabs(index1: number, index2: number) {
function getScrollContainer(): HTMLElement | null {
// discord's main chat scroller
return document.querySelector('[class*="scrollerInner_"]') as HTMLElement;
return document.querySelector('[class*="scrollerInner"]') as HTMLElement;
}
function evictStaleCache() {

View file

@ -120,7 +120,7 @@ export default definePlugin({
message: "Use the bottom panel to navigate between replies.",
type: Toasts.Type.MESSAGE
});
const container = document.querySelector("[class^=channelBottomBarArea_]");
const container = document.querySelector("[class*=channelBottomBarArea_]");
if (!container) {
Toasts.show({
id: Toasts.genId(),

View file

@ -36,7 +36,7 @@ export default definePlugin({
if (Settings.plugins.USRBG.enabled && Settings.plugins.USRBG.voiceBackground) {
if (usrbg.userHasBackground(participantUserId)) {
document.querySelectorAll('[class*="background_"]').forEach(element => {
document.querySelectorAll('[class*="background"]').forEach(element => {
(element as HTMLElement).style.backgroundColor = "transparent";
});
return {

View file

@ -29,7 +29,7 @@ export function getGifByTarget(url: string, target?: HTMLDivElement | null): Gif
export function getGifByMessageAndTarget(target: HTMLDivElement, message: Message) {
const url = target.closest('[class^="imageWrapper"]')?.querySelector("video")?.src ?? target.closest('[class^="imageWrapper"]')?.querySelector("img")?.src;
const url = target.closest('[class*="imageWrapper"]')?.querySelector("video")?.src ?? target.closest('[class*="imageWrapper"]')?.querySelector("img")?.src;
if (!url) return null;

View file

@ -1,3 +1,3 @@
[class*="chipletContainerInner_"]:has([src *="/clan-badges/"]) {
[class*="chipletContainerInner"]:has([src *="/clan-badges/"]) {
display: none;
}
}

View file

@ -61,7 +61,7 @@ export default definePlugin({
start() {
// Discord adds it's paste listeners to #app-mount. We can intercept them
// by attaching listeners a child element.
containerEl = document.querySelector("[class^=appAsidePanelWrapper]")!;
containerEl = document.querySelector("[class*=appAsidePanelWrapper]")!;
containerEl?.addEventListener("paste", blockPastePropogation);
// Also add them to body to intercept the event listeners on document

View file

@ -23,7 +23,7 @@ function shouldEdit(channel: Channel, message: Message, timePeriod: number, shou
should = false;
}
if (document.querySelector('[class^="replyBar__"]')) {
if (document.querySelector('[class*="replyBar"]')) {
should = false;
}

View file

@ -34,26 +34,26 @@
margin-bottom: 5px;
}
#eq-tdl-progress-bar > [class^="slider"] {
#eq-tdl-progress-bar > [class*="slider"] {
flex-grow: 1;
width: 100%;
padding: 0 !important;
}
#eq-tdl-progress-bar > [class^="slider"] [class^="bar"] {
#eq-tdl-progress-bar > [class*="slider"] [class*="bar"] {
height: 3px !important;
top: calc(12px - 4px / 2 + var(--bar-offset));
}
#eq-tdl-progress-bar > [class^="slider"] [class^="barFill"] {
#eq-tdl-progress-bar > [class*="slider"] [class*="barFill"] {
background-image: var(--eq-tdl-slider-gradient);
}
#eq-tdl-progress-bar > [class^="slider"]:hover [class^="barFill"] {
#eq-tdl-progress-bar > [class*="slider"]:hover [class*="barFill"] {
background-image: var(--eq-tdl-slider-gradient);
}
#eq-tdl-progress-bar > [class^="slider"] [class^="grabber"] {
#eq-tdl-progress-bar > [class*="slider"] [class*="grabber"] {
background-color: var(--eq-tdl-slider-grabber);
width: 12px !important;
height: 12px !important;
@ -65,7 +65,7 @@
transition: opacity 0.1s;
}
#eq-tdl-progress-bar:hover > [class^="slider"] [class^="grabber"] {
#eq-tdl-progress-bar:hover > [class*="slider"] [class*="grabber"] {
opacity: 1;
}

View file

@ -34,26 +34,26 @@
margin-bottom: 5px;
}
#vc-ytm-progress-bar > [class^="slider"] {
#vc-ytm-progress-bar > [class*="slider"] {
flex-grow: 1;
width: 100%;
padding: 0 !important;
}
#vc-ytm-progress-bar > [class^="slider"] [class^="bar"] {
#vc-ytm-progress-bar > [class*="slider"] [class*="bar"] {
height: 3px !important;
top: calc(12px - 4px / 2 + var(--bar-offset));
}
#vc-ytm-progress-bar > [class^="slider"] [class^="barFill"] {
#vc-ytm-progress-bar > [class*="slider"] [class*="barFill"] {
background-image: var(--vc-ytm-slider-gradient);
}
#vc-ytm-progress-bar > [class^="slider"]:hover [class^="barFill"] {
#vc-ytm-progress-bar > [class*="slider"]:hover [class*="barFill"] {
background-image: var(--vc-ytm-slider-gradient);
}
#vc-ytm-progress-bar > [class^="slider"] [class^="grabber"] {
#vc-ytm-progress-bar > [class*="slider"] [class*="grabber"] {
background-color: var(--vc-ytm-slider-grabber);
width: 12px !important;
height: 12px !important;
@ -65,7 +65,7 @@
transition: opacity 0.1s;
}
#vc-ytm-progress-bar:hover > [class^="slider"] [class^="grabber"] {
#vc-ytm-progress-bar:hover > [class*="slider"] [class*="grabber"] {
opacity: 1;
}

View file

@ -65,7 +65,7 @@
}
.questify-button,
.questify-sub-inline-group [class^="swatch"] {
.questify-sub-inline-group [class*="swatch"] {
height: 38px;
min-height: 38px;
width: 80px;
@ -93,7 +93,7 @@
transition: color 0.2s ease-in-out;
}
.questify-button [class^="contents"] {
.questify-button [class*="contents"] {
margin: 0 8px;
}
@ -150,8 +150,8 @@
padding: 8px;
}
.questify-color-picker-with-buttons [class^="swatch"],
.questify-color-picker-with-buttons [class^="colorSwatch"] {
.questify-color-picker-with-buttons [class*="swatch"],
.questify-color-picker-with-buttons [class*="colorSwatch"] {
border-radius: 3px;
width: 100%;
margin-bottom: 4px;
@ -197,18 +197,18 @@
pointer-events: none;
}
.questify-quest-button-pill > [class^="item"] {
.questify-quest-button-pill > [class*="item"] {
will-change: transform;
max-height: 8px;
min-height: 8px;
transition: max-height 0.2s ease-in-out;
}
.questify-quest-button-pill.hovered > [class^="item"] {
.questify-quest-button-pill.hovered > [class*="item"] {
max-height: 20px;
}
.questify-quest-button-pill.selected > [class^="item"] {
.questify-quest-button-pill.selected > [class*="item"] {
max-height: 40px;
}
@ -247,43 +247,43 @@
/* Allows glowing reward previews which aren't confined to their own
square video frame to overflow so the glow doesn't get cut off. */
.questify-quest-item-restyle > div > div[class^="rewardDescriptionContainer"] {
.questify-quest-item-restyle > div > div[class*="rewardDescriptionContainer"] {
overflow: visible;
}
/* Quest name color. */
.questify-quest-item-restyle > div > div[class^="rewardDescriptionContainer"] > div[class^="textContainer"] > [class^="eyebrow"] {
.questify-quest-item-restyle > div > div[class*="rewardDescriptionContainer"] > div[class*="textContainer"] > [class*="eyebrow"] {
color: var(--questify-quest-name) !important;
}
/* Reward title + Orbs reward title text color. */
.questify-quest-item-restyle > div > div[class^="rewardDescriptionContainer"] > div[class^="textContainer"] > div[class^="text-md"],
.questify-quest-item-restyle > div > div[class^="rewardDescriptionContainer"] > div[class^="textContainer"] > div[class^="text-md"] > span {
.questify-quest-item-restyle > div > div[class*="rewardDescriptionContainer"] > div[class*="textContainer"] > div[class*="text-md"],
.questify-quest-item-restyle > div > div[class*="rewardDescriptionContainer"] > div[class*="textContainer"] > div[class*="text-md"] > span {
color: var(--questify-reward-title) !important;
}
/* Quest description text color. */
.questify-quest-item-restyle > div > div[class^="rewardDescriptionContainer"] > div[class^="textContainer"] > div[class^="text-sm"] {
.questify-quest-item-restyle > div > div[class*="rewardDescriptionContainer"] > div[class*="textContainer"] > div[class*="text-sm"] {
color: var(--questify-reward-description) !important;
}
/* Hides the gray placeholder elements which distract from the restyles. */
.questify-quest-item-restyle [class^="placeholderElement"] {
.questify-quest-item-restyle [class*="placeholderElement"] {
background-color: transparent;
}
/* Promoted by XYZ text color. */
.questify-quest-item-restyle > div[class^="container"] > div[class^="positionContentOverBackground"] > div[class^="contents"] > div[class^="bottomRow"] > div[class^="text-sm"] {
.questify-quest-item-restyle > div[class*="container"] > div[class*="positionContentOverBackground"] > div[class*="contents"] > div[class*="bottomRow"] > div[class*="text-sm"] {
color: var(--questify-reward-description) !important;
}
/* Drop shadow for >87.5% luminance (near-white) restyle gradients so logos are legible. */
.questify-quest-item-contrast-logo > div[class^="container"] > div[class^="positionContentOverBackground"] > div[class^="contents"] > div[class^="partnerBranding"] > img {
.questify-quest-item-contrast-logo > div[class*="container"] > div[class*="positionContentOverBackground"] > div[class*="contents"] > div[class*="partnerBranding"] > img {
filter: drop-shadow(0 0 10px rgb(0 0 0 / 80%));
}
/* Increased gradient intensity with restyle color. */
.questify-quest-item-intense-gradient > :nth-child(1) [class^="overlay"] {
.questify-quest-item-intense-gradient > :nth-child(1) [class*="overlay"] {
background: linear-gradient(to top,
var(--questify-color) 0,
hsl(from var(--questify-color) h s l / 100%) 20.5%,
@ -296,7 +296,7 @@
}
/* Default gradient intensity with restyle color. */
.questify-quest-item-default-gradient > :nth-child(1) [class^="overlay"] {
.questify-quest-item-default-gradient > :nth-child(1) [class*="overlay"] {
background: linear-gradient(to top,
var(--questify-color) 0,
hsl(from var(--questify-color) h s l / 95%) 20.31%,
@ -304,7 +304,7 @@
}
/* Subtle black gradient. */
.questify-quest-item-black-gradient > :nth-child(1) [class^="overlay"] {
.questify-quest-item-black-gradient > :nth-child(1) [class*="overlay"] {
background: linear-gradient(to top,
hsl(0deg 0% 0% / 80%) 10%,
hsl(0deg 0% 0% / 65%) 20%,
@ -314,13 +314,13 @@
}
/* Hides the gradient altogether. */
.questify-quest-item-hide-gradient > :nth-child(1) [class^="overlay"] {
.questify-quest-item-hide-gradient > :nth-child(1) [class*="overlay"] {
display: none;
}
/* Matches the text overlay which darkens the text of long
descriptions until hovered with the chosen restyle color. */
.questify-quest-item-restyle > :nth-child(2) [class^="textOverflowBlur"] {
.questify-quest-item-restyle > :nth-child(2) [class*="textOverflowBlur"] {
background: linear-gradient(transparent 50%, var(--questify-color) 100%);
filter: brightness(0.9);
}
@ -337,12 +337,12 @@
/* Quest tile border radius. */
.questify-quest-item-restyle > :nth-child(1) [class^="container"] {
.questify-quest-item-restyle > :nth-child(1) [class*="container"] {
border-top-left-radius: 8px;
border-top-right-radius: 8px;
}
.questify-quest-item-restyle > :nth-child(2) [class^="container"] {
.questify-quest-item-restyle > :nth-child(2) [class*="container"] {
border-bottom-left-radius: 8px;
border-bottom-right-radius: 8px;
}

View file

@ -1,4 +1,4 @@
[class^="topic__"] {
[class*="topic"] {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
@ -6,6 +6,6 @@
white-space: unset;
}
[class^="page_"] > * {
[class*="page"] > * {
min-width: 0;
}

View file

@ -1,3 +1,3 @@
[class*="outerContainer_"] [class*="container_"] [class*="actionBar_"] {
[class*="outerContainer"] [class*="container"] [class*="actionBar"] {
gap: 0;
}

View file

@ -34,6 +34,6 @@
z-index: 1;
}
[class*="modeMuted_"] .unreadCountBadge {
[class*="modeMuted"] .unreadCountBadge {
display: none;
}
}

View file

@ -20,7 +20,7 @@
align-items: center;
}
.vc-url-hl-color-picker [class^="swatch"] {
.vc-url-hl-color-picker [class*="swatch"] {
width: 32px;
height: 32px;
border-radius: 4px;
@ -44,4 +44,4 @@
.vc-url-hl-icon {
width: 20px;
height: 20px;
}
}

View file

@ -6,6 +6,6 @@
padding-right: 4px;
}
div[class^='list_'][class*='collapsed_'] .voice-user-buttons {
div[class*='list'][class*='collapsed'] .voice-user-buttons {
display: none;
}

View file

@ -2,8 +2,4 @@
[class*="profile"] [class*="tags"] [class*="container"] {
/* Discord has gap set to 2px instead of 1px, which causes the 12th badge to wrap to a new line. */
gap: 1px;
}
[class*="container_"] [class*="tags_"] [class*="container_"] {
gap: 1px;
}

View file

@ -204,9 +204,6 @@ function generatePluginList() {
Alerts.show({
title: "You are attempting to get support!",
body: <div>
<style>
{'[class*="backdrop_"][style*="backdrop-filter"]{backdrop-filter:blur(16px) brightness(0.25) !important;}'}
</style>
<div style={{ display: "flex", justifyContent: "center", marginBottom: "1rem" }}>
<img src="https://media.tenor.com/QtGqjwBpRzwAAAAi/wumpus-dancing.gif" />
</div>

View file

@ -1,3 +1,3 @@
[aria-label]:has(> [class^="collapseButton_"]) {
[aria-label]:has(> [class*="collapseButton"]) {
display: none
}
}

View file

@ -12,8 +12,8 @@ let style: HTMLStyleElement;
function setCss() {
style.textContent = `
.vc-nsfw-img [class^=imageContainer],
.vc-nsfw-img [class^=wrapperPaused] {
.vc-nsfw-img [class*=imageContainer],
.vc-nsfw-img [class*=wrapperPaused] {
filter: blur(${settings.store.blurAmount}px);
transition: filter 0.2s;

View file

@ -1,5 +0,0 @@
.vc-typing-user [class^="wrapper"] {
display: inline-block;
margin-right: 0.25em;
vertical-align: -4px;
}

View file

@ -94,7 +94,7 @@ export default definePlugin({
getVoiceBackgroundStyles({ className, participantUserId }: any) {
if (className.includes("tile_")) {
if (this.userHasBackground(participantUserId)) {
document.querySelectorAll('[class*="background_"]').forEach(element => {
document.querySelectorAll('[class*="background"]').forEach(element => {
(element as HTMLElement).style.backgroundColor = "transparent";
});
return {