#π¨-theme-development
1 messages Β· Page 45 of 1
oh makes sense i guess i'll keep what i got
what are you trying to do?
i was just seeing if there was a better way to do this
where message group backgrounds are slightly darker for visibility purposes
are you trying to hide the message background?
what are you doing rn?
[data-list-item-id^=chat-messages___] {
background: rgba(0, 0, 0, 0.267);
}
that's a pretty reasonable way of doing it
Honestly that might be one of the best ways
:(
doing it that way does override other types of backgrounds, so you might have to rewrite the css for those
not sure if there's a way to do it without having to do that
oh
i think if you do this it fixes that
:where([data-list-item-id^=chat-messages___]) {
background: rgba(0, 0, 0, 0.267);
}
@echo frost test
yeah
:where makes it 0 specificty
if i can spell
i stylized something from the brand deal discord did with riot for arcane to use as my home icon :3 (b4 and after)
Would something background: CurrentColor, 0 work
Probably needs different formatting but idea is there
shnoice :3
wdym
yeah we need more context
Like take the current Color and mess with the transparency
oh
i think you'd need to use color-mix() for that
Ah
yeah
i cried to the series 3 times each for over an hour. and for reference, i had never cried to fiction before this
wompus finally officially dead???
i have also the past three days ruthlessly putting effort into an ekko edit (still not done)
based
how many times have you watched arcane
twice fully
i watched s1 twice but s2 only once so far
i cant do that again for a while i have my mental health to worry about man 
i've been planning on rewatching both seasons for like 2 months, but i haven't had the free full day or two i want to just watch it
thoughts on the theme so far
oh shit i have 2 hours before i have to go to school
and i havent slept
speedsleep time chat nini
pretty cool
what are these though?
are you censoring servers or is that something else
bit weird imo
that doesnt stand for anything btw i just have lots of random test servers Lol
i just put it there bc 1: the themes is only for me and my wife and 2: helps keep focus on the more important servers
plus an empty server can be used as a spacer
NNINI CHATTTTTT
gn
Gn
okay classes fixed again
same here! though I am wondering how I can fix that discovery icon (it's been like that before the update too)
so like, if anyone knows, would be helpful!
the calss for the div wrapping the discovery button is: listItem__650eb Take a look in your theme for any references to listItem__650eb it'll likely have:
.listItem__650eb {
background-color: #1e1e22
}
or something similar.
Replace that with:
.listItem__650eb {
background-color: transparent !important.
}```
Default discord has css setting the background color of the discovery icon footer
You'll need to set the background of the element .footer__214dc to be transparent/none/unset
I'll try that when I get home, thank you!
I will not leave you alone for using ulgy legacy syntax though
rgba(r, g, b, a) -> rgb(r g b / a)
also both rbg and hex can eat a rock, oklch best :3
what about oklab :(
I guess cool but very confusing, at least oklch is very similar to hsl and therefore fairly intuitive
I think oklab is more perceptually uniform
lab color space is just idk how anyone can think of colors in terms of "how red/green" and "how blue/yellow"
oh wait are oklab and oklch the same space
I believe oklch is to oklab like hsv is to rgb
oklch is to lch like oklab is to lab :D
Ok
The oklch() functional notation expresses a given color in the Oklab color space. oklch() is the cylindrical form of oklab(), using the same L axis, but with polar Chroma (C) and Hue (h) coordinates.
from mdn
(i only really know about oklab from this video using it for a color space with all the blocks in minecraft https://youtu.be/nJlZT5AE9zY)
What is a perceptual uniform color space and how can we use it in Minecraft.
Link to Oklab post
https://bottosson.github.io/posts/oklab/
World Download
https://drive.google.com/file/d/1vS-HsjfSAYz-Sz_YFBEifEQy6WfggkmC/view?usp=drive_link
Moulberry CIELAB link
https://youtu.be/o-JL0AEL0rc?si=4g7PCz7tAR6ZGvt-
does any1 have that css snippet which turns everything into skeleton loaders?
so you can showcase a theme without leaking stuff
danke
that shit should be pinned ngl
its peak
anyone here a css goat and knows how to move the nitro badge back to where it was
it's already there for me
but you can use order for them
i moved the donor badge as an example by applying order: 1 to all of the underlined ones
god the most annoying thing about visual refresh is that it uses a new method for displaying the window decorations, using attributes
meaning that vesktop has no support for them
i cant fix it with a custom plugin
yyyeerrraarrsesssarseaandthgrasssmannpunkyeseyahhavinh
afternoon
yep that's annoying
How can I select something with the βPick an element from the pageβ if the overlay disappears as soon as you click away. I hope you understand what I mean.
CTRL + Shift + C doenst work for me.
f8break plugin is your friend
you trigger the showing of the element while you have devtools open, press f8 to freeze discord and then inspect to your heart's content but do note that the element picker will click through some tooltips for an example due to pointer-events: none I'm assuming
^^ this, but for tooltips you can also avoid using the element picker, they are placed in a floating element very near the root so scroll all the way up and start looking
but remember to use F8 to break first
or scroll all the way down, many layers are at the end of the tree
you need to be focused on devtools for that to work
Crazy idea π
is there a way to freeze discord on the boot-up screen? Shiggy loader got broken by a new update and debugging is hard when you can't inspect the elements proper.
nvm f8break
THEY READDED IT
oh my fucking god
wait readded what
That stupid thing in refresh that shows the server name in the titlebar
huh
2
I assume you're running some theme too
prob this #π¨-css-snippets message
Discord please never follow through on visual refresh
Discord please make visual refresh optional
discord please keep visual refresh so i dont have to re-code this theme
im experimenting with popular color schemes 
Rosebox still looks the best to me tbh
@pure cairn any chance i can borrow you for a moment?
im tryna think how to explain this hang on
the bottom right is there a way i can cut off that part of the member list so it starts from 1 above?

all i need is a yes/no and ill try and do it somehow
I remember tinkering with the memberlist a while ago
you might be able to set a custom height, but from what I remember the content is adaptive, which means borders and stuff may vary
i see
With my pc off, all I can say is
well thanks ill see what i can do
yea ofc i dont expect u to turn ur pc on at all lol
can u let me know once u have sorted yours out?
I was gonna post similar except without the second class and with height: calc(100% - 30px);
yeah and 30px is not enough but the thought counts
dunno what the height should be because I'm on visual refresh with half broken theme
works perfectly thank you my good sir
This doesnβt seem todo what it it should
.panels_c48ade :is(button[aria-label="Mute"], button[aria-label="User Settings"]) {
order: 1;
}
scaleX i think
nvm i got it
dam bro you need to optimse ur css a bit
shit is making my PC explode
25% of my 5800x3d being used by this theme
XDDDDD
We collaboratively have no clue where the lag is coming from
i could probably tell you
if you remind me when i have time
i'm good at profiling rendering perf
just busy XD
When's that?
now you see
i wish i knew!
so just ping me every now and then asking
this theme fucks tho
I'll ask you in an hour or 2
ty
Ah ok
KEK
W
an 9s snapshot, 6s of which is spent rendering
its ALL animations
ALL of it
so probably these?
yeah, try removing transitions and animations
@half crystal
on scroll discord is re-calculating styles [which ofc is a very retarded discord thing to do]
and you have some very heavy CSS, recalculating which each frame tanks perf
Currently away from PC, will try later or make a pr
so its likely some expensive styles like animations, transitions, transforms or filters
ah
TLDR: discord does bad thing, your css aplifies bad thing x100
normally it wouldnt be an issue, but react
cool
discord is a special kind of sphagetti code
real as fuck
i really need to recode my main theme into scss
did discord hire DevilBro to write the css?
no effect
That :not:has:not:has check is very cursed
where did you find this thing?
performance tab in chrome dev menu
the reload button on the top?
dot in circle
it has taken over 30 minutes and still not complete

your profile should rarely be more than a minute
YES
you've just recorded discord doing fuck-all for 30 mins
now thats a fairly stable dicklord
however [THIS](#π¨-theme-development message) is not
my theme has 2200 lines + 300 line root file
Surprised that it's not too slow
im surprised why a theme half the size IS slow
where can i get these hehe
still experimental so you cannot get them just yet
ok looking forward
you can however grab the latest build of the theme from github, update the classes, and then change the colors manually
colors for Rose Pine and Solarized
ty!
is there any way to post in #π¨-css-snippets?
or should i just post goobies here
Open a #π©-modmail
not a bad idea to post here first so we can roast it
sure

rainbow name! wowee! only place i didn't include is any weird UI and the member list
.avatar_c19a55[src*="165098921071345666"] + h3 .username_c19a55, /* chat names rainbow */
.userAvatar__55bab[style*="165098921071345666"] + div .username__07f91, /* vc channel rainbow */
.panelTitleContainer__37e49 div /* name in channel menu*/ {
background: linear-gradient(90deg, #ff6c6c, #ffbd6c, #faff6c, #9fff6c, #6c94ff, #ec6cff, #ff6c6c, #ffbd6c);
background-size: 1200% 1200%;
animation: rainbow 3s linear infinite;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
/*font-weight: bold; (optional)*/
}
@keyframes rainbow {
0%{background-position:0% 0%}
100%{background-position:95% 0%}
} ```
just throw user id there
Should really try to find a way to this with :has()
[class^=footer_]:has([class*=discoveryIcon_]) {display: none; }
oh i didn't even realize that was a thing
You really should never actually use :has()
#πΎ-core-development message
in general yes but if unavoidable and a dealbreaker use the immediate parent of the element you want
if you use :has() on body or some stupid shit, you will die instantly
real shit
but also in general discord, CSS really does not like it so you should avoid it at any cost
discord DOM and CSS so horror i have enough motivation as-is
can barely figure out hiding one element and im somewhat wellversed in CSS
nothing in my theme uses has :3
my performance explodes the most when importing discord adblock lmfao
read lines of text challenge (impossible)
change avatar_c19a55[src*="165098921071345666"] + h3 .username_c19a55 to avatar_c19a55[src*="165098921071345666"] ~ h3 .username_c19a55 so it works when people have an avatar decoration (it is between avatar and h3 element)

you can try running the benchmark script to find overly slow selectors too
the what
paste this in console, then run the function with your theme code as the argument
sure, this seems safe
the output is a csv of selectors and how long they took to evaluate
just read the code lol
lil vro is going to steal you token 
/joke
what do you mean "run the function with your theme as the argument"
benchmarkSelectors(`paste theme code here`)
got it now i just need to go grab a csv viewer lmao
just paste into google sheets or something
but the problem is tesco mobile high speed internet is not, in fact, high speed
google docs finally worked, but it doesnt import well
ok so each thing using body:has slows down the code by at least 0.75s
pretty sure you can just ctrl+v into the thing
change it to tab seperated for it to work in google sheets
to be able to paste it into google sheets*
tragic
[class^=buttonsInner_]:not(:hover, :has([d^="M16.32 14.72a1 1 0 0 1"]))
@vestal field ^
oh whoa i think my css may be slowing down discord
pretty significantly
yes, the benchmarking script is very stupid
it can only read one line selectors, nested and other weird types may not work
How does discord do it
How do they manage to make css significantly laggier with each update
wdym
Remember that querySelector performance has fairly little relation to stylesheet performance
Though if one is outrageously slow I guess it's not unlikely that the other is too
not in the same way u can do it with JS
?
you can see what CSS features are tanking perf, like reflow, animations, gpu rendering, rasterization, style recalculation etc
but not "hey its this exact style thats lagging"
like with js where u have "hey this exact line of code is taking 100ms"
so to perf css you realistically gotta add ur selectors, benchmark perf, see if they caused issues, add more selectors
i usually make a binary search for that
i kinda meant css selector performance
does the performance tab in devtools work for css
read above
yeah @half crystal so discord repaints the entire side userlist and chat when scrolling, each frame!
god i love react
* {
will-change: scroll-position;
}
fixes the scrolling perf issues
ah, the top banner also re-paints every frame @half crystal
so on my pc this repaints 160 times per second
π
yeah the gif
is fucking you
gifs cause repaints
each frame
so you might need to tone down the styling you apply on the banenr too
but this alone x100'd the perf
since scrolling is now gpu based
typing animations also fuck you
ofc forcing will change might change Z indexes in rare cases
but its a simple "fix all" solution
you could disable the typing animation like that one plugin does and your perf will x10 again
a lot better now doe
there are still quite a bit of forced reflows, but its way more usable than before
PR this please, I'm not at my PC right now
its a hack, not a proper fix
i just showed ya what the perf problems are
ya can identify the rest urself
Typing animation has been a cpu hog for years
its not that bad
its simply a bad animation, but its a generic bad animation that reflows itself
scrolling anything is way worse, as it repaints each of the elements scrolled
typing is also awful as it reflows the entire window on each character
so while "yes its bad", its far from the worst
That is pretty bad
This entire snippet is one big bodge, I really dont care
yeah i noticed lol
there are a lot of problems, but it is really cool
and way better than what discord is doing
yeah its honestly annoying how.... clueless people are about web rendering perf
Or anything perf, really
But yeah web rendering perf is definitely one that people especially don't think about
most of the time its scrolling that causes the most perf issues
and 99.9% of the time you can just add
.overflow-y-scroll,
.overflow-y-auto,
.overflow-x-scroll,
.overflow-x-auto,
.overflow-auto,
.overflow-scroll {
will-change: scroll-position;
}
to any css framework
and fix those problems
sometimes you can do contain: strict on large overflowing contrainers, but that isnt a "fix all" solution
and for react 9/10 issues are caused by any form of state update, which repaints 90% of the ui because bad react code
π
I dropped [class*=scroll] { will-change: scroll-position; } into my quickcss and wow, performance is great now even with all my shadows and gradients and backdrop-filter:blur()
only thing that's still lagging is chat text input (which gets worse the longer I have discord open)
unfortunately a lot of scrollable classes dont have a scrollable class
such as sidebar
which is why i did *
which sidebar
server list
chat input lagging i was not able to fix, it lags because it re-paints the user list each frame
What have you done
forces scrolling to be GPU rendered, rather than CPU rendered
which means element dont re-paint on scroll when overflow: scroll is used
with userlist disabled it's the same tho so idk
yeah there are other contributors too
this is truly wires
scrolling is fine
but as they said, typing still feels slow
even with the memberlist hidden
like scroll to see changes
its a hack to fix a lot of bad css perf
yeah my performance was terrible with my theme on linux even before the discord update that supposedly wrecked perf but with that one line I can put my eyecandy all back on
but doesnt fix the underlying problems
but like, everything else is way faster
it just covers most of them
holy guacamole
the fact is, ur css is still dogshit, and other things that cause paint updates, aka typing, opening menus etc
will still lag to shit
my css is indeed dogshit
same
idk why my theme isn't lagging it's held together by hopes and dreams
well this is funny

discord built different
it's so sphaghetti bad decisions help it
thats for will-change transform
and left
and contents
time to swap to my original settings file
for scroll position it doesnt matter much
and see how it goes
I probably have the heaviest css, I do this to every message, and am using a bunch of :has()/:is() as well as https://raw.githubusercontent.com/nvhhr/discordcss/main/snippets/shadows.theme.css
since it has no effect on non-scrollable elelments
wow it's actually working fine, except for the typing stuff
taking the quick out of quickcss
if I want to use an attribute selector with an applied style
does it have to be :has([style]) or can it just be a more precise selector with [style] attached to it?
genuinely don't remember
can i see what you're currently using?
this feels laggy
/* Avatar Status Glow */
[class^=avatar_] {
&:has([fill="#23a55a"]) { /* online */
color:#23a55a;
filter: drop-shadow(0 0 5px currentColor);
}
&:has([fill="#f0b232"]) { /* idle */
color:#f0b232;
filter: drop-shadow(0 0 5px currentColor);
}
&:has([fill="#f23f43"]) { /* dnd */
color:#f23f43;
filter: drop-shadow(0 0 5px currentColor);
}
&:has([fill="#593695"]) { /* streaming */
color:#593695;
filter: drop-shadow(0 0 5px currentColor);
}
& .wrapper__44b0c rect,
[class^="avatarWrapper_"] .avatar__37e49 rect {
display: none;
}
& foreignObject { /* remove annoying border */
mask: none;
}
}```
also there is mask="url(#svg-mask-status-online)" etc
idk exactly where this is replacing

so much [class^=]
honestly that might be the lag
try just using real element names and see what it does
mfw my quickcss is somehow worse than ```css
*:hover { transform: rotate(7200deg); }
didn't know about this one tbh
works with like everything until you change status with a user popout open
will try that tomorrow
why is there so much class*=
I did most snippets a long time ago
class*= bad and was the direct cause for a theme i made to be super laggy
now I usually try to go for class^= or plain names
yeah
i like how clearvision makes their theme define elements
basicially put everything with placeholder names in a scss file and then you only need to update that
what does icons on hover do? @pure cairn
makes so settings cogwheel, mute and deafen icons are not shown until the user area is hovered
ok time to slowly fix snippets
:root
{ --font-code: "JetBrains Mono"; }
/* Home Icon */
.wrapper__6e9f8[data-list-item-id=guildsnav___home]>.childWrapper__6e9f8
{ background: transparent; }
/* Better NSFW Tag */
.linkTop__2ea32:has(path[d^="M18.09 1.63"])> .children__2ea32::after
{ content: "NSFW";
background: var(--main-color);
color: var(--status-danger-text);
padding: 0px 4px;
border-radius: 8px;
font-size: 12px;
font-weight: 600;
line-height: 16px;
margin-left: 4px; }
/* Icons on Hover */
.flex__7c0ba {
opacity: 0%;
transition: 0.2s ease-in-out;
display: grid;
grid-template-columns: auto auto;
&:hover {
opacity: 100%;
}
}
button[aria-label="User Settings"] {
grid-column: 2;
}
.panels_c48ade:not(:hover) .panel__5dec7 {
display: none;
}
.actions__4cd01 {
position: absolute;
left: 32px;
}```
stuff like that seems to help lag
does anyone have any css for like a message bubble thing and when mentioned the bubble goes orange?
nvm that anymore now im tryna figure out how to position where an image is within a chat
example of it being misaligned
Looks like both hide nitro upselling css snippets are causing me lag in my theme, Is there one to remove at least the gift button from my text box? that's the main one I care about
button[aria-label="Send a gift"] { display: none; }
Only works if your client language is English
Could probably drop the button part but eh
Sure but then it'd get much slower
Because it's less precise/specific?
Or at least a little slower
Since it's have to check all elements and not just all button elements
/* Hide gift button */
.buttons__74017 > .button__201d5 {
display: none;
}
could has do this if you dont mind having a :has
button:has([d^=" M-7,10 C-8.104999542236328,10 -9"]) {
display: none!important;
}
:has is super slow
ik
appears the more i touch my theme the more i realise theres issues with it
Story of my life
real tbh

real shit
ive just discovered that images arent aligned with messages
now its really pissing me off
Horror
.
There's some padding/margin missing
Somewhere
button:is([aria-label="Send a gift"])
{
display: none;
}
How's that different in terms of performance?
DevilBro ahh code
im bored rn
well this looks fine and dandy obviously
bro i go thru this weird ahh code every week to do some stuff to it but thankfully the creator actually updated it when the classes broke so theres that i guess
Ngl now I wanna start working on my new theme, I'll probably use plain class names instead of wildcards so at least it's less heavy
do me a solid favour
It'll break but eh, whatever
comment what everything is
i wish this code was commented but it isnt
like to attempt to fix the padding i have searched for many words
Not only comment it out
But also split into multiple files
So it's somewhat modular
thats sexy stuff
good chance im gonna kms
With @import? That should only affect loading time, not runtime perf
Yeah that was my idea
When are imports processed?
At startup?
They're handled when the sheet is loaded yeah
That sounds nice
After loading there shouldn't be any difference compared to if it was written in place of the import
Then yeah, I will definitely split the file into smaller ones
Also because discord doesn't refresh big themes without having to reload the whole client
While smaller files instantly update on save
if you guys had to guess what would the image padding by labelled as?
It's definitely after .wrapper_ .cozy_
An unholy mess obviously
true dat
if i leave it as an import but then copy the code block that i need and change it will that work or do i need to copy the whole file?
You have the local file, don't you?
i can just copy that whole file yea
No I mean, you have it downloaded as a local file as well?
this is the one i have downloaded
i did have that whole file like 2 days ago then the creator fixed it so i just installed the default file
Okay
Then you just have to find the code you need in the imported file and put it somewhere else
Be it your quickcss or another local css file
oh and u said it would be under .wrapper_.cozy yea that doesnt exist in this theme π
You can either copy the code, which means you'll probably have to add an !important to it in your css so it overrides the import
Or straight up cut it, so it's only in your css without having to override anything

i see
now its just a matter of finding it
per chance would it include "attachment"?
Wish I had my laptop on rn, but I think it might be the case
Apparently the class is .cozyMessage_
thank you
i found it already
The class you needed?
yea
.cozyMessage__5126c:not(.systemMessage__5126c) .container_b7e1cb {
margin-top: 8px;
margin-left: 0;
}
it was this
tell me about it
What about nesting instead, does it heavily affect performance?
Because if it does, that might explain why all my themes lag
(besides all the other obvious reasons)
Yippee
theres no fucking way
WHY DOES THIS ACTUALLY WORK
man, I can't figure out why the chatContent scroller has a themed, very visible scrollbar, while the search results scroller has a barely visible black scrollbar.
and by extension, idk how to make the latter look like the former
they both have scrollbar-color: auto; scrollbar-width: auto and that's it
probably ::-webkit-scrollbar
doesn't server list have a .scroller class?
remove badges, for whoever needs it
[class^="tags_"] > [class^="container_"] {
display: none;
}
i've had it for a bit lol, somebody's probably done this before
yo anybody have css to change vencord icon and loading screen on desktop
ok so it breaks super reactions lol
this is quite unfortunate
i think im just gonna remove the glow but idk if there are any other elements with box-shadow like this
I just use [class*=scroll] { will-change: scroll-position; } should find all scrollables
yeah im using that
but the scroll optimizations it does makes box-shadows glitch out i think
super reactions are fine for you?
who knows
i explained it above
no
at least i didnt see one
did quick css break
or something like that
this seems to no longer work for servers
#channels li:has(>[class*=type]):not(
:has([class^=unread_], [class*=modeSelected_])
), div:not([class*=interactiveSelected_]):has(
>[href^="/channels/@me/"]
):not(:has(>a>[class*=highlighted_])) {
opacity: 0.3;
}
Jesus fucking Christ what a selector
someone wrote this for me so idk what that means lol
holy selectors

wow
i still dont onow what u guys mean by that
What is this even supposed to do
it changes the unread text channel opacity cuz i find it too bright
like this (im on phone rn)
in my pc client the theme-support its abit bright so its hard to differentiate
this also applies to threads, dms, vcs and stuff
im on a theme that doesnt have that part customizable π
Show what you want to do with your theme on
i jus want unread channels dimmer
changing this doesnt seem to change that anymore
go to your :root section of the theme and search for text-muted
they probably changed the variable color
how do u guys find which variable is where and what
The style panel has every var in body lmfao
bet
it does on visual refresh at least
even more reason for me to make this and recode this
yeah
idk
this new chat bar sucks tbh
i think it's either 1 or 5
5 doesnt do anything for me
Toggle in appearance is off by default I think
No point it looks ugly
Resizable is fine ig but collapsible looks bad
One or Three is what im reading rn
where is this
so, colored message search scrollbar for whoever needs it ```cs
[class^="searchResultsWrap_"] [class^="scroller_"]:hover::-webkit-scrollbar-thumb {
background-size: 200vh;
background-image: linear-gradient(rgb(var(--bg-overlay-color-inverse) / var(--bg-overlay-opacity-4)), rgb(var(--bg-overlay-color-inverse) / var(--bg-overlay-opacity-4))), var(--custom-theme-background);
background-clip: padding-box;
border: 2px solid transparent;
border-radius: 4px;
background-color: var(--scrollbar-thin-thumb);
min-height: 40px;
}
is that the experiments server ntts talks about?
I should join that
@upper isle i need a small thing, i think its a bug with vencord but theres an annoying NEW notifcation when there is a ping in server, it dosnt serve and purpseo than just being an eye sore
heres the code for it in inspect element
<div class="unreadMentionsIndicatorBottom_ef3116 unreadMentionsFixedFooter_ef3116"><div class="bar__3b95d unreadMentionsBar_ef3116 mention__3b95d active__3b95d" aria-hidden="false" style="transform: translateY(0%);"><span class="text__3b95d">new</span></div></div>
div[class*="unreadMentionsBar_"] {
display: none;
}
do you want this one gone too
first thing i read when opening twitter
https://vxtwitter.com/discordpreviews/status/1886543994374574187
honestly it wouldn't look half bad if they actually fixed the fucking inconsistent padding everywhere
div[class*="mentionsBar__"] {
display: none;
}
why put the div on it?
should work without it
slower
man discombobulated every section of discord
HOW THE FUCK ARE YOU ALL SLIGHTLY MISALIGNED

as of like, yesterday or the day before, my theme seems to be causing extreme performance issues but ONLY when i'm typing in the message bar
I haven't changed anything so i'm not entirely sure where to begin troubleshooting
trying to submit my wonderous theme to the BD hivemind and this verify account button has no feedback as to whether its done shit or not
hm, no technical info or workarounds?
nope
discord just fucky uppy
delightful
i dont see your verification request
probably something broke
check console i guess
had to click it a few times but it did make a post request
there really should be some clarification for that button tho
and my theme will work, because its made for it
theme dev hell 
also, where tf would it send deny and approve msgs to?
Took me so long to see how an automod chat bubble looks like for testing
If it rolls out , my theme is toast
nothing I can do about it
project will go into archive mode 
get like an alt account
make a server
block a word
get main to join server
say word
ta da
I'll just be in a friend's server that already has everything set up
I don't know how to do allat
the bot sends in your dms
i think im just gonna rewrite everything lol
its gonna be painful
They first make 90% of the themes lag discord
Then start releasing the visual refresh

Not looking forward to the upcoming weeks
Yeah, they'd have no other reason for them otherwise
Except fuck with theme devs
π
ban for using themes when
Soonβ’οΈ
no i think discord just has a bunch of frontend devs with nothing to do, so they come up with bs updates to avoid getting fired
if they actually wanted to kill themes and client mods they could
Iβm 100% sure thatβs more than just a frontend devs, has to be the backend ones too
real
client theme is kinda built in now?
:root {
--theme-base-color: hsl(350, 91%, 56%) !important;
--theme-base-color-hsl: 350 91% 56% !important;
--theme-base-color-amount: 40% !important;
}```
var driven client my beloved
it feels flat though, you need to do the offsets https://github.com/Vendicated/Vencord/blob/main/src%2Fplugins%2FclientTheme%2Findex.tsx#L137-L148
those offsets are based on the old client's colors right
honestly i don't mind this look, it's probably how they intend custom nitro themes to work
ugh i hate how the user panel is just position: absoluted
there's zero reason to do this cause the server and channel lists dont even extend below it anyway
i hope you've seen the new offsets
#πΎ-core-development message
graph #πΎ-core-development message
idk why people hate on visual refresh so much besides it breaking everything and probably being discord-code cursed
it looks okay
the changes to the user panel and chat bar were pretty pointless tbh
I'm fine with whatever the fuck the graph is
I'm not fine with 49 and 50 being the same
i need it darker than midnight
it really does look like midnight 2
i'm listening...? /j
still combing through my css file but so far everything with a :has operator has been causing the extreme lag when typing
nvm, found something with a has op that didnt lag
these blocks lagged:
[class*="modeUnreadImportant_"]:has([class*="mentionsBadge_"]) [class*="name_"],
[class*="modeUnreadImportant_"]:has([class*="mentionsBadge_"]) [class*="iconContainer_"] svg {
color: #b97272;
}
[class*="modeUnreadImportant_"]:has([class*="mentionsBadge_"]) [class*="unreadImportant_"] {
background-color: #b97272;
}
div[class^="buttonsInner_"]:has(div[aria-label="Edit"]):has(div[aria-label="Reply"]) {
transform: translateX(calc(((var(--msg-section-spacing) * 2) + (var(--msg-solo-button-width) * 2)) * -1));
}
div[class^="buttonsInner_"]:has(div[aria-label="Edit"]) div[aria-label="Reply"] {
right: calc(((var(--msg-section-spacing) * 2) + (var(--msg-solo-button-width) * 2)) * -1);
}
This block did not:
[class*="listItem_"]:has([aria-label="Download Apps"]) {
display: none;
}```
Okay so so far it seems that :has itself is fine
but anything :has() <subselector> causes the lag
actually div:has(a) a doesnt cause it so maybe it's the class* selectors?
Yep okay, :has() in combination with a [attribute=""] selector is what's causing the issue
i wrote div:has(a) [class*="anchor_"] which caused it
I think has is better when using > so it only has to search its direct children instead of all of its ancestors
(idk if ancestors is the proper term when talking about html elements)
not sure, but i get what you mean :P
Its weird that it's only SUDDENLY started causing issues within the week
what did discord change?
i think the latest discord update caused quite a bit of lag
maybe only when using vencord, but i've been having way more lag since it
its definitely not vencord specific
vencord was the first thing i disabled for troubleshooting and it lags even without it
(provided you have a custom theme)
how are you using a theme without vencord
well you can inject themes via the console
oh you're doing that?
No but as example
but i don't think you can even open devtools in vanilla discord
I use a custom client i made myself that uses the injectstylesheet(?) functions on electron webviews
but it would work just the same if you manually added a <style>
iii did not i shall do that now with webclient
well web is quite a bit different
i meant any client mods in general as opposed to vanilla discord by this message
Yeah it is replicable on a stock webclient
with or without theme
With, its fine without
it definitely is something with custom css, but not anything to do with any client mods (unless they're using the bad css)
just sanity checked and yes it also happens on a stock desktop client with theme too
wait can you open devtools with stock discord?
you can it just requires some file editing
oh
the lag seems to occur irregardless of the presence of >
if you have :has(...) [class*="..."] at all it causes issues
Same behaviour even with ^=
Hell, same issue even with [class=""] that doesn't even match anything
well using that will have to look at every ancestor of :has(...)
like using the space
this rule would also cause lag:
div:has(a) > [class="ancestor"] {
display: none;
}```
it doesnt even match anything in the client, but it still lags when typing
div:has(a) is a little crazy tbh
lag 102 over here
it is but is mostly an example
just avoid :has at all costs
or switch to normal classes
i use it productively like this:
[class^="modeUnreadImportant_"]:has([class^="mentionsBadge_"]) [class^="name_"],
[class^="modeUnreadImportant_"]:has([class^="mentionsBadge_"]) [class^="iconContainer_"] svg {
color: #b97272;
}
i'm not aware of any other way to do this selector without has as the mention badge is the only indicator on a channel list item
two :has and a svg in the same snippet is brazy
my point with it is that before whatever happened a week ago, It would not cause any notable issues
i guess avoid " " between expensive selectors, avoid very general selectors like svg at the end (its evaluated right to left)
sure its incredibly broad and inefficient, But it had no issues
welcome to discord π
yeah
The annoying part is it doesn't matter if you use > between everything or not the lag issue still occurs
and only seems to occur with an attribute selector after the :has()
you could swap to normal classes i guess, the auto class updater works well enough and you can just run that whenever discord rerolls
INSIDE the has is no issue, and without the is fine
:has(>element) is way better right?
o yea probably
the stuff inside the :has() doesnt matter for this specific lag issue
my only guess is that react must be reconciling way way way more than it should be on something?
and it is relatively fine in the absence of expensive selectors but goes absolutely haywire with this specific mix of :has() and [attribute=]
hm, curious question
why does [class^="modeUnreadImportant_"] not match modeUnreadImportant__2ea32 but *= does?
There's probably another element with the same class that gets processed first
Just like you can't really use [class^=wrapper_] by itself cuz there's a ton of them
oh, does ^= only match one unique class?
It matches classes that start with whatever you add afterwards
But if it's not specific enough, it doesn't work
Try adding a parent class and see if it changes
it similarly does not
(wrong thing from clipboard at first)
i tried [class^="containerDefault_"] > [class^="modeUnreadImportant_"] but it doesn't work unless i change specifically the modeUnreadImportant to *=
Eh, it's not super important
does the class start with modeUnreadImportant_?
just the trying to replace my *= to ^=
Yes, it's modeUnreadImportant__2ea32
you sure it's not class="someRandomClass modeUnreadImportant__2ea32"?
That actually makes a difference? I thought class was interpreted as an array not as a string
what element is it?
<li class="containerDefault_c69b6d" data-dnd-name=":jigsaw:-plugin-development"><div class="iconVisibility_c69b6d wrapper__2ea32 modeUnreadImportant__2ea32">
yeah but where does it show up
In the channel sidebar?
It's somewhere in the channel list
So it's an unread channel
this isnt related to the lag issue
but it was only when i was typing in a text field (any textfield did it)
ok yeah i'm lagging with textfield too
but i don't think turning off themes is helping it
this is a lag test
oh ok this is way better actually
actually maybe not
the specific symptoms i was getting is that if you type at a fairly high speed like, >60wpm, The client will hang for several seconds, compounding on how much you continue typing after it first locks up
i type at something like 100-130wpm so it kinda makes it impossible for me to actually type when the message bar locks up for 10s of seconds at a time
well the text still goes through, you just don't have a display
Yeah
try restarting discord though
i did do that as a sanity check first
that fixes it for me for a little bit at least
but for now my lag issue is solved since i've eliminated the problemated css rules
I dont get the issue at all on stock unthemed
i get like, SOME hitching and stuttering but its not really enough for me to care about
you do have hardware acceleration on right?
as far as im aware
i had tried turning it off, but it's much better with it on for me
where would i enable/disable it anyway?
it's in advanced settings
that's weird
are you on vesktop?
Maybe i won't see it because i'm technically webclient
maybe vesktop doesn't have it
i am not
oh you're on webclient
technically
well that's almost certainly why
But generally i don't have any perf issues that i notice or care about
other than this recent typing issue which i've worked around for now
removing attribute selectors after :has() selectors
yeah
I replaced [class*="modeUnreadImportant_"]:has([class*="mentionsBadge_"]) [class*="name_"]
with [class*="modeUnreadImportant_"]:has([class*="mentionsBadge_"]) .name__2ea32 and the issue was solved
which i really hate having to use the minified/packed/whatever class names because i don't like to have to screw around with updating class names
it's probably less of a hassle to just use the full class names
Its never been an issue until now
it only happens a couple times a year, and the class updater is usually working within the first day
holy SHIT the refresh looks like ASS
one of my alts apparently got the a/b
dear god i hope they backtrack on this like they did the mobile new ui
i think it's mostly ok actually
the darker mode looks better
but i feel like the title bar is a lot bigger now
They made every panel bigger yet somehow it just made it look infinitely more cramped
the server browser is uncomfortable
anyone know how to bring the "delete message" button
Use that one plugin that makes the shift menu always active
Can't remember the name of it
press shift or use the plugin mentioned above that always makes it show the full menu (ShowAllMessageButtons)
thanks alot!
oh wait i found out why discord was lagging for me
my cpu usages was reaching 100% because i've been keeping bloons open lol
Yeah that'd do it lmao
Oh dear jesus https://transfur.science/l5m05nmi
that is ABYSMAL
no wonder it's lagging
pretty sure they didnt backtrack on the new UI tho?
discord has a tendency to doubledown on bad decisions
They fixed the needing 15 taps to get between dms and guilds
But there's still a shitload of bad animations and swipe-to-reply
they started screwing up my theme already
does someone got this ugly as shit update aswell ?
They backtracked on the new nav layout
they still refreshed it
for the most part they fixed the massive issues with it
yeah i miss the bottom server picker from the old mobile beta
that fucked
the sidebar one sucks
agreed
was fuckin amazing
HELL YEAH
whoa
visual refresh microsoft edition real
turns out, near everything in the bg uses --background-base-tertiary
and since they all use background: you can set an image to --background-base-tertiary and it basically just works, with a bit of tweaking
smaller profiles, thoughts
tbf i think the text just needs an outline or something to make it readable
and maybe the pronouns next to the badges
it depends on the profile really
i suppose
who needs banners?
very true
banners are back but i forgot my glasses
ok too much blur
half the blur
what's the point of having them if they're that blurred tbf
i would just go back to no banner tbh
Or have them behind the whole popout
or use text-shadows to make text more visible
or webkit-text-stroke maybe but that's kinda shitty still I think unless it's been fixed
anyone know how change this discord text or is it even possible with css
search for .wordmarkWindows__421ed in the devtools tab
holy shit i forgot the name of the numbers which make an image
im so baffeled
SVG
fuck me
you can do this if you don't want to bother with an svg
(delete the .footer__... {...} if you want discovery icon to show)
@ornate zodiac ^
The numbers which make an image
Yes, that's the most accurate definition of svg I've heard in a while, love it

all images are numbers
all images can be represented by numbers
all digital images are made up of bits with two states which are most commonly represented by numbers

yeah, i'm satisfied with that amount of correctness
it's a bit like saying a meal is made up of atoms
that's a very good kind of correct
I try to remove this black box behind the notification count, but i just can't find a way to do it. Does somebody know how?
i found the solution in an old post:
.wrapper_cc5dd2 > svg > mask > use[href*="lower"] {
display: none;
}
the BD team had to perform like a fucking exorcism on my account to get me to be able to submit a theme lmfao
Would you mind telling me where you got that theme that rounds everything?
this is an in progress version of midnight for the ui refresh update
current version is here https://github.com/refact0r/midnight-discord
thnaks allot!
I dont know if its me, though im missing the pilled server list, channels, and chat name
you have ui refresh
i havent released the updated version of the theme for that yet
see pins in #π₯-vencord-support-π₯ for how to revert it so you can use the current version of midnight
alright thanks!
That was intended for the banner in settings, turns out that rule applies to all
what in a theme causes discord to lag? i used to think it was having too many attribute selectors but was then told thats all loaded in on start-up... so idk where to look to make it less laggy
Yes, css is loaded at startup
The selectors are then evaluated whenever anything changes on the page
Attribute selectors are indeed slow if there are many of them
:has selectors are also very slow
i was getting complaints about lag from icon revert
i pushed out a change that should hopefully fix that
ohh which is all the time so they are relevant, thank you I'll see if I can minimise the use of attribute and :has selectors
Hey! Is anyone interested in making a theme? I've looked and looked for a gruvbox dark hard theme (that works) and I've had no luck, I tried to make one myself but couldn't be dedicated enough to finish it π For anyone that is interested and doesn't know the gruvbox colour scheme, here you go https://github.com/morhetz/gruvbox I also attached an image of the dark mode colour scheme
Well that's perfect, thank you so much! I guess I couldn't find this one since it doesn't mention gruvbox anywhere
but thank you again.
Damn that's not updated for a while
what causes themes to lag/be slow as of recent? saw a #1257025907625951423 post ab it and was curious about the details
it can be different things, but the biggest contributor is :has()
do you know what else it can be, looking for a decent list
Is likely just the same things that generally cause issues, was just amplified somehow in the update. Animations, pseudo-classes, pseudo-elements, attribute selectors, element selectors, universal selectors
Looks like the Vencord update was mostly focused on removing element selectors and combinators





