#🎨-theme-development
1 messages · Page 17 of 1
maybe —header-primary or —header-secondary
—header-primary: red;
—header-secondary: red;
}```
see if that does literally anything to it
what the fuck? couldn't you just select the button?
qcss will overwrite theme css if you use themes through the folder or online link
wtaf
quickcss will also overwrite imported CSS if using the same selector specificity, as far as I know
yop
hii
Hi to both cuties
is it possible to place the progress bar ontop of the album and name?
depending on how it's structured
you might be able to slap a display: flex; flex-direction: column-reverse;
okay it apprears that you have to use flex-box's order property here
[class*=activityUserPopoutV2_] {
display: flex;
flex-direction: column;
}
[class*=activityUserPopoutV2_] [class*=headerContainer_] { order: -1; }
[class*=activityUserPopoutV2_] [class*=timeBarUserPopoutV2_] {
order: -1;
margin-top: 0;
margin-bottom: 12px;
}
if that's what you're going for
oh yeah that works perfectly thanks!
slightly revamped connections :3
any idea how i can make the purple area smaller?
im not sure what the property name is
mind if i ask why
that looks like a flex-grow or similar aka itll automatically shrink if you add something else there
just seems kinda crowded, id much rather it shrinks to fit the text
shrinking to fit wouldn't look good in a grid
just make it inline-flex
it removes the default flex grow
so regarding #announcements message
the “they reverted the update again”
does this mean i DONT need to get a test rat for my theme to make sure everythings not broken?
ah that worked well, thanks
that works
but discord splits connections into 2 flex boxes (when you have a lot of connections, example me) instead of using grids (guh???)
so its looks kinda weird
(here's a screenshot with [class*=connectedAccountContainer_] { display: inline-flex; width: fit-content; })
yeah i noticed that too
might be possible to have more than 2 in a row but idk
would it be easier to rewrite this entire container and the messagebox with position: absolute so it doesnt conflict with other css
for the most part i have depended on the last child (the emoji) or the send button, and its difficult to get it to work without either of them (got the part without send button to work, but i CANNOT get it with the send button VISIBLE but emoji HIDDEN)
the random css if you want to try to fix it
it uploaded the text content..
gimme a sec
.connectedAccountsColumn_fd2c41 {
display: contents;
}
.connectedAccountContainer__23f00 {
margin: 6px;
margin-left: 0;
margin-top: 0;
border-radius: 50px;
height: fit-content;
}
.connectedAccounts_dc0a56 {
flex-wrap: wrap;
border-top: none !important;
overflow: hidden;
height: fit-content;
}
.connectedAccountContainerWithMetadata_cf88ce {
transition: .3s ease;
}
.connectedAccountContainerWithMetadata_cf88ce:hover {
border-radius: 20px;
}
.connectedAccountChildren__21b60 {
height: 0rem;
min-height: 0rem;
max-height: 2rem;
transition: .3s ease;
}
.connectedAccountContainerWithMetadata_cf88ce:hover > .connectedAccountChildren__21b60 {
height: 1rem;
}
^
idk
usually I would agree
Actually I do agree
but it's basically either consistent sizing or showing details
I want to improve my theme so it doesn't use hardcoded class names. there are however classes that have a name that's identical to another, just with an additional underscore. how can I only match the one with a single underscore and not the one with a double underscore?
example: .compact_cc2939 and .compact__54ecc
doing [class^=compact_] would match both
matching only .compact__54ecc is easy, [class^=compact__], but what about .compact_cc2939?
I just realized that Firefox 121.0 released
this means :has() is now supported in all major browsers!
html {animation: wee 100s infinite ease-in-out;}
@keyframes wee {
from {transform: rotateZ(0deg);}
to {transform: rotateZ(360deg);}
}```
discord slowly rotates, this wont get annoyin g at all (typed while my discorsd rotating)
now use *
no.
now make it only rotate when chat bar is focused to make it more annoying
why stylus 😭
looking good
why not?
is it required to use quickcss? vesktop?
whar
i mean, it doesn't matter
you can use whatever you want i was just curious
oh, i just use it because i also use it on other websites.
I'm not quite sure what you're asking for here, but if it's just how to hide the emoji and send message buttons without nth-child selectors, it can be done like this
/* emoji button */
.emojiButton__8ff6a,
/* send message button */
.separator__8424b {
display: none;
}
not that but oh well
Can you give an example of what you were actually trying to achieve? I'm a dummy but the picture and that explanation aren't too clear
tried to make the last "child" before the send button to be rounded
the red circle is a pseudo element from the send button, which is more of an illusion
the problem is, i cant the width to be based on how many "children" there are, so it can break if the messagebar is too short
i also cant control the alignment since its position:absolute
i figured ill just force the emoji button to always be visible unless it gets overriden by some other snippet

Yeah, I'm still not quite sure on why you're doing it, but I can't think of any clean solution for achieving that. The default buttons should all be the same size now, so if you could convince the plugin devs to standardize their shit similarly there shouldn't be any issues with alignment. But, I'm not sure that'd be worth the effort
blame discord for putting the send button inside the container for the messagebar
i've forced it on mine, if it breaks i can blame the random snippets now 
I'm trying to find a use for display: contents
it's sometimes useful
how would i go about getting rid of the empty space leftover from the pfp? (left is how it looks rn, right is how i want it to look)
oh ffs
the 2nd image disappeared
this is more of less how i want it to look like
.cozy_f5c119.wrapper__09ecc {padding-left: 0px;}```
full code if you want the decorations removed too
.cozy_f5c119.wrapper__09ecc {padding-left: 0;}
.avatarDecoration__14b3c {display: none;}```
thanks
np, no real idea why you'd want this though
are u aware compact mode exists..
my thoughts exactly
i am but i want to still have message content on a separate line from the rest and i couldnt figure out a way to do that with just CSS soo
This should do that for compact mode
.compact__54ecc .messageContent__21e69 {
display: block;
}
it does work but theres a weird offset of the content
- i dont want to see the nickname multiple times if its a chain of messages by the same person
yea i have came to the conclusion that fucking around with compact mode may actually be easier
too much UI that gets shat all over the screen with this
Messing with that indent isn't super fun due to the time stamps, you can remove the names from consecutive messages with this though
.message__80c10:not(.groupStart__56db5) .headerText_f47574 {
display: none;
}
sadly that still leaves an empty line and doesnt remove pronoundb
the latter i can probably fix myself
That empty line is again for the timestamps, you can for sure mess around with it, it's just a pain. More so if you want to make it look half decent with plugins like that
the indent doesnt actually seem to have anything to do with the timestamp
it only affects the content, not the header
It's a negative text-indent on the contents as a whole, both the header and the content, they just zero it out on the content
i see why
cope
This is magic numbering it a bit as I'm too lazy to do much else, but give it a go
.compact__54ecc .contents_f41bb2 {
padding-left: 35px;
text-indent: calc(-1*(-1rem + 56px));
}
.message__80c10:not(.groupStart__56db5) .headerText_f47574 {
display: none;
}
.message__80c10:not(.groupStart__56db5) .messageContent__21e69 {
display: inline;
}
.compact__54ecc .messageContent__21e69 {
display: block;
}
You'll just add your pronoun db thing to the .message__80c10:not(.groupStart__56db5) display none bit
why don't you display:none; yourself instead? /j
the c in css stands for Christmas
Christmas Special Style
christams style sheet
whatever magic math youre doing with this, it works
pronoundb thinga was already removed using a separate rule
and without that separate rule it breaks the whole thing
thatd just make him invisible
nah I think that would be hidden or something
That's their weird calc, I just replaced the variables. Not sure why they did it that way, you might be able to get away with just changing it to -40px
im used to android where view.NONE either doesnt work at all, or is synonymous to view.INVISIBLE
view.GONE completley nukes something
thats kinda weird, gone sounds like extreme or something
thanks discord
hey there tab friend!
why does it always spam that popup out of nowhere
omg
i finally found something unique to select server shop
#channels > ul > li:has(#clip0_2645_182555) /* server shop */
{
display: none;
}```
^ bump
[class^=compact_]:not([class*=__])
didn't think of that, thanks
also, is this actually good practice? people seem to mostly use hardcoded class names
it's definitely slower
but when I made a MR with a plugin that included some CSS I got told to do partial matching
if youre talking about the example i sent, i have no clue lmao
its probably shitty and unoptimised but ittl work
partial matching in general
if youre talking about not partial matching, yeah it generally is. classes change across updates so you could always just hardcode and update it when they change but its whatevers easiest for you
bad
*= basically does a .includes check on the entire class string
I'd do
[class^=compact_]:not([class^=compact__])
so compact_bleh foo__meow would yield false positives
the general idea was what I was looking for
also wait yeah
property matching matches the whole string
so mine is also not good and neither is... anything that uses partial matching really
^= is like .startsWith so i dont think [class^=compact_]:not([class^=compact__]) is any different from just [class^=compact_]
maybe [class^=compact_]:not([class*=compact__])
there's only so much you can do
Well that's gonna be a problem for my shitty thene
Entirely hardcoded
Dealing with partial matching got too annoying and too fucking slow
after having this discussion I'm of the opinion that everything should be hardcoded
i think i saw a site that lets you auto update the class names once
@ashen sable also yea the more partial matching you have the slower it's gonna be
I have like 6 partial matching rules in my QuickCSS and shits laggy
If updating your theme every update isn't a problem, yes that's the best way
I'm also reverting this https://github.com/Vendicated/Vencord/pull/2061/commits/86a9a68ecaff2a4658bb28411262fd6d195d929f
shrimply make a vencord plugin to polyfill discord classnames with a stable classname format and use those classnames
That would be the best course of action
I like this idea, they map classes to JS names anyways so these could be used instead (with some prefix)
Something like ThemeAttributes but for every single thing
No need to slow down the browser with partial matching CSS and no need for Devs to hardcode names and then have to update them every uodate
i think @rich prism was working on something like that
Great vesktop broke
I hope he gets it working cuz I'm too stupid to do that myself and sure as shit won't be dealing with either slowdowns or hardcoded
It'd still require updates when they fuck with the structure of stuff wouldn't it? Not sure it's much worth it
yes, but you'd only need to update Vencord
or, if using Discord's JS names, it would not
They don't fuck with structure that often, they just rerandomize the class names
but then those could break
You'd need to update the theme still. When they do shit like that they often change class names entirely. It seems like you'd just be double handling. Tools like this provide a decent middle ground, but they've got the same pitfalls. No matter what you're still going to have to do roughly the same amount of theme maintenance
why would you have to change the theme? if the plugin names stay the same the theme wouldnt have any issues?
theoretically the theme could just assign new constant classes to all the elements and then the theme can reference that
thats just adding an abstarction layer. the goal is to remove partial matching from the theme entirely
They can't always stay the same, the structure of the modules changes fairly often
which would affect the plugin, not theme
or am i dense
i am but i dont work on it very often
it will come out in 2027
if the classes change, it just breaks the plugin- not all themes. So generally that would be a better solution
oh, so you mean changes other than just the part after _
wtf
yeah true
but does that happen often?
if the plugin standardizes class names themes won't need to update unless classes are added or removed
the way it works is it adds a stable classname onto the original classname (so thing__H4K5B5I4G5IV4J3 becomes thing__nottypingthatagain thing which in css is two class names)
and then the theme can just target thing
yeah
They're added and removed often, that's what I mean by structural changes
and it would be theoretically resistant to updates unless the part before the random stuff changes
i woul love to see metrics on this "often" you say
this
Forums have been reworked multiple times in the last year. User popouts I think twice in the last 5 months
I'm not disagreeing
I just want to know the frequency so a better solution could be thought of
i see
since when is 'multiple times' a number
its equal to the expression >1
at least one yeah
ah
i assume forums was discord going back and forth between multiple designs + media channels
and user popout would be decorations/profile effects
I'd be nice if I could remember exact numbers, for sure. I could probably dig up some dates by dredging through the BD servers CSS channel, but that's an amount of effort I'm not ready to go to
both of which i have evaporated
[class^='avatarDecoration_'], [class^='profileEffects_'] {
display: none;
}
Yeah there were a few due to those decorations. I think at one point that just decided to rehaul the whole thing because there was so much useless stuff in there
so end conclusion, themes would still need updates but atleast they'll have consistent class names to target
and better perf
Those changes often would often mean those classnames are referring to different elements though
Like it'd be moved up or down the tree, meaning your rules mightn't have the desired effect
you mean would not?
Yepyep
the performance difference is negligible and it is worth it for longevity of your theme
when discord rerolled all classes, the majority of themes broke. when they did it again a few days ago (now reverted), once again everything broke
however, https://github.com/Synqat/Vencord-theme which uses attribute selectors needed 0 changes for both of those updates
it's not correct though, see #🎨-theme-development message
yes you will often match multiple classes
that's why you use more specific selectors
[class*=wrapper] many matches
[class*=wrapper] > [class*=avatar] one match
@vast delta made a big post abt the performance difference iirc
there is no relevant performance difference
ill trust u
the difference is like 4 million operations per second vs 3 million operations per second
it's negligible
attribute selectors are cleaner too imo rather than having hashes
how is something that can match both wrapper_stuff and image_wrapper_stuff cleaner
because it doesn't break
^= wouldnt have that issue, and as vee said before u can be more specific
what if the class isn't the first class?
that's like saying "how is using \i to match variables better than hardcoding the variable name"
..then u can be more specific w ur selectors
that's when you use ^ instead of * it's not hard to write a good selector
^
which in turn makes them more complex and even slower
it still isn't correct it just works better
I'd much rather write a more complex selector using attributes than the hashed class
im trying to find the exact numbers comparing class/id to attribute but the website layout has been changed completely lol
complex selectors are slower, even if attribute matching was as fast as class matching, having a more complex selector would be slower
performance is really not something to worry about unless you do something stupid on purpose
or unless you're on a pentium 2
I just brought performance up as it was brought up previously
no one said it wasnt slower, it's just not significant (apparently)
you know what, I'm gonna just benchmark it™
I'll rewrite the whole theme using attribute selectors and see if it's any slower
I think that's entirely different, \i is both more correct (you aren't matching random shit) and more reliant
\i literally matches anything
you make it work by making the rest of ur match more specific
anything that could be an identifier, no?
maybe you can use " wrapper", with the space it should match the classes that aren't the first
haven't tried
that sounds more correct, but it does assume that the order of the classes doesn't change
does it?
what does > mean in this context?
direct child
But it's slow at least in my case
ahh
(no)
it's possible
My client lags pretty heavy with dynamic selectors
no
they should've just allowed regex in attribute selectors ffs
your client lags because of other bad css
Like?
like combining * with other selectors
your client cannot lag just because of attribute selectors
do you realise that when people do input[type=text] that's also an attribute selector...
then I would be happy as I could make it correct, and Ven would be happy because it doesn't break lol
that's one of the most common css selectors
you can already make it correct now
if you can't, that's a massive skill issue
simple attr selectors can be parsed by chromium like a million times a second on a decent cpu
I already explained why I don't think it's correct in any possible case
it's opinion of course
correct code isn't objective
lmao
Here are some fun benchmarks, I'm not sure how fair they are though. The second is definitely not fair, as css selectors should be a good deal faster, but it should still be fairly representative
https://measurethat.net/Benchmarks/Show/349/0/dataattribute-vs-class-selector-vs-id-selector
either way, a somewhat standard abstraction layer to allow for bulletproof themes with hardcoded names would be nice
keep in mind that's for selectors that have exactly the same complexity
not possible and useless
complexity matters much more than what kind of selector you use
in what way impossible
there are dozens of classes with the same name
there's no way to know which one you want
just use attribute selectors or deal with updating your themes
that's why you would assign stable names to them
an API break in code you use doesn't need to mean an API break in your code
say avatar_panel for the avatar in the user panel and avatar_chat for the one in chat
are you gonna write a plugin that manually maps hundreds of css modules?
yes. (well not me probably but that's the point)
The person making that plugin would spend more time writing and maintaining documentation than it'd take to update all themes
why not make the plugin autoresolve the mappings based on element surroundings
it's hard to find reliable sources but the one i found with tests has found about a 10% of difference between class and attribute (50ms to 56ms) which was done on a page with 1000 elements, which is about four times less than what discord has and with only one selector, so in a full theme on discord's page, the difference could be much bigger. i have no way to validate these results though further down the page, it is stated that the actual difference caused by purely the selectors could be much higher or much lower. i personally think that at the scale of a full theme, using attribute selectors could lead to a measurable difference, and in bad cases, one you can see yourself. though remember that the impact of having bad selectors in general is way more than using different types of selectors
why not use attribute selectors 🤯
What is fast CSS? Where are the bottlenecks? Are the rules of slow and fast selectors even valid anymore? Are the properties we use more important than the selectors? I felt it was time to revisit some of these questions. In the broad scheme of things, CSS optimisation is certainly low down the priority order...
this is worthless
do proper benchmarks comparing actual themes on actual discord
anything else is pointless
well there arent many benchmarking themes
i can name multiple themes that exclusively use attribute selectors and cause 0 lag and name even more themes that exclusively hardcode classes and have insane lag
at the end of the day, how you write your css matters much more than whether you use hardcoded classes or attribute selectors
the difference is entirely negligible
if the difference wasn't neglible, we would be using C for ui instead of javascript
im not sure if the difference is negligible on a gigantic theme, but it is definitely more important to use better selectors instead of worrying much about the type of selector
even though it uses great selector types, this is still way worse than using an attribute :P (credit, devilbro, who else)
What’s wrong with this?
that seems fine to me
selecting #app-mount is sometimes necessary for specificity
im mostly worried about the > * and > div lines but it could be entirely fine
just use the parent 😭
what in the fuck is this
don't criticise random css unless u have verified it actually causes lag
discord also uses #app-mount in many places
it's a devilbro theme

WHY
i just dont care anymore about performance issue ngl
my theme is unusuable either way
it's to overwrite discord's selector specificity, it would be such a free upgrade to legibility and performance to just use the parent to do that
months of optimization yet no real world difference
mine falls apart as soon as you introduce threads or quotes
performance how
it checks every element up the tree for app-mount, with the parent it would just be one up
Should only be necessary if you're writing custom css for someone using a theme written like above. It's used pretty sparingly in Discords own css
how do you know it walks up
it might also walk down
don't make random assumptions about performance unless you have actual data backing it up
im pretty sure that is how the selector works
don't prematurely optimise
optimize is a must if your layout runs at 1 fps
write code to be as readable and maintainable as possible. then if you face any performance issues, debug them and fix them
you guys are worrying waaaaaaaay too much about performance
I agree
because
Don't prematurely optimise for sure. But you shouldn't be using selectors more specific than the minimum amount you need to overwrite any existing css
i cant run my theme without lagging
that's why I think hardcoded classes are better :p
its on the extreme end and i have no idea how to fix
the reason i would use hardcoded classes because its easier to just open up dev tools and find the issue
you know what it matches
look if you use any rules that include * (as a selector, not inside an attribute selector) or html elements like div, p, etc
yeah you shouldnt spend 10 times more time on making perfect selectors but it's way too easy to just use the parent, using app mount to increase specificity is just as much effort for worse results
it is sometimes necessary to do that, or at least better than the alternative
you also know what it matches when using attribute selectors, unless you're too retarded to write proper selectors 
anyway you can write css however you want so you do you (but if you want contributions to be merged you need to follow vencord style)
Might look at cutting down on psuedo classes, if you've got a fair amount of them in that case
the only instances where i would have to resort to * was for the chat bubble element
otherwise i try to stay away from those
sometimes the element you want to match just has no classes
why do you use so many selectors
and no unique contents
oof, why?
it works ...
i usually just use >div or whatever
i tried using fewer selectors to no avail
* seems more semantic to me in those cases
it doesn't really matter that it's a div
i have to match groupstart (the message leading a group of messages) and other separately
because thats how discords code is
it's something
also have to count for attachments, reactions and the like
i currently cant think of a better method
unless discord gets rid of its stupid code
or that my test machine is simply too weak
this rule is very complex and might be part of the reason why it lags, especially those :not(.thing *), that'll likely make it check your rule for a shit ton of elements
try removing it and similar rules and see if that fixes it
if it doesn't, edge devtools have a css performance debugger that tell you which rules are taking the longest so i recommend using that
microsoft edge devtools??
yes
ew edge
probably will look up a flatpak for that
that performance debugger should be in every devtools
actually seems so cool, i hate that i cant use it
The edge one is more advanced from what I've seen
some elements are quite complex which add up to the lagginess
imma check if FF dev has something similar
its laggier than the steam theme which has 5 times the amount of code
potential scenario: you use [class*="thing_"] in your theme, to match thing_stuff. however, there is thingy_stuff that is either an edge case or a new thing. it just so happens that applying your rules to that completely obliterates Discord.
why not?
just use edge with vencord web
it's just stupid
(no)
just use edge for it
edge devtools have a lot of cool tools that other browsers don't
edge or edge dev
you will not convince me to bring that filth upon my shitty system
Firefox dev tools biggest claim to fame is the way they display grid/flex stuff. Other than that they're kind of shitty to use
are you refusing to read what i say or do you not understand
im genuinely confused
can anybody remind me why exactly am i installing 10gb of updates while using mobile hotspot for networking
i have already said multiple times that you can fix this by doing [class*=parentThing] > [class*=thing]
HEDGEWARS
doesn't matter
oh right discord cockblocked the last update
I'm just saying that you don't actually know what it matches. yes I get that you can fix it by being more specific.
I'm trying to get my point across. I do get yours.
using your logic, you don't know what . matches in regex so you shouldn't ever use it
like their windows 11 setup
error: problem occurred while upgrading discord
error: could not commit transaction
error: failed to commit transaction (transaction aborted)
Errors occurred, no packages were upgraded.
https://cdn.discordapp.com/emojis/1144752140984783020.webp?size=48&name=troll~1&quality=lossless
you don't have a point
you need to unpatch it first
i will get to edge devtools after my holidays
bruh I guess discussing this further makes no sense so I'm gonna stop
i am aware of that
its just that on my prev install upgarding discord directly unpatched it automatically
maybe i had some pacman hook for that
idk
I will follow your project style since it is your project
I do not agree with them and you refuse to try and understand why, so I'm not gonna bother
HAHAHAHA
tf
I assumed the rules do allow the word, since they used it
but I guess that's a case of "rules don't apply to admins"
funny
of course they wont
at least now i have more CSS to fix
if not for testing that and getting timed out i wouldnt know the content blocked message goes off screen with this shart of a theme
i would appreciate if anyone with a cpu stronger than i5-8th gen would be able to look through my theme for performance issues
likely :p
i7 8th gen mobile good enough?
i think i can but no idea how to debug performance
i5-8350U to be exact
I do think that admins should follow their own rules but of course that's opinion
😭 is it that bad
i7-8665U here
build a threadripper pc

no money
fren will give me a board that only runs 4th gen cpu
a lot of automod rules are only in place because people can't behave and abuse the words
steal
i will spend a fuck ton of money on my holiday
so pc build is not likely to happen
until a few more months
https://github.com/SEELE1306/Modular
anyways grab the latest theme.css file from here and test
before i could release v2.0.4 i have to make some more final checks
You use a fair amount of color-mix and shit in that one yeah? I'll install vesktop and take a quick look
ok yea this shit is mad laggy
it's only in support
real
worse than the fuckery i had previously
ah
other than the fact i have no goddamn idea on profiling css performance i can just tell you this is laggy af
Yeah, it's not so hot. It's not bad to the point of being unusable, but it's definitely not pleasant
ok ive got 5.8h of battery left with the current usage method so im not gonna finish this before i get home
wait im shit at math
its actually half that due to the battery giving offset readings
so its close to 2.5h
edgeeee
its a theme specifically for vesktop
it should work on edge too
isnt it just vesktop cause it uses very recent css features
A large amount of the lag seems to be caused by this
/* v2.0.4 */
/* Prevent light mode from making whitenames black (visibility) */
.username_d30d99:not(:has([style])) {
color: var(--brand-experiment-100);
}
just changing that selector to .username_d30d99:not([style]) makes it noticeably better for me
im kinda not too knowledgeable on css, how can i change the color or thickness of this specific element? i tried something like #guildSeparator { color: #986258 !important} and nothing happened
.guildSeparator_dcb3cc
{
background-color: #986258;
}```
for its thickness you would use the height:
default is 2px
oh thanks, i'm guessing the "id" or something after the guildseparator bit is important?
it specifies exactly which element, but i doubt there are other guild separators
if u wanted a more future proof one u could use [class^=guildSeparator_] instead
thank you, what's the difference between doing [class*=blahblahblah] and [class^=blahblahblah]? i tried the first which didn't work
idr wat *= is, but ^= is basically "starts with"
- is contains
lag :<
So real
my fucking EYES
would use 10/10 /srs
this is kinda nice
hello hi this seems to not work my discord is all black now
try invert(2)
not dark theme™️
body
{
filter: invert(1);
}
.avatar__08316, .avatar_f8541f, .wrapper__3af0b, .wrapper_edb6e0, .username_d272d6, .username_d30d99, [type="button"], .anchor_c8ddc0
{
filter: invert(1);
}
img { filter: invert(1) }
html { filter: invert(1) }
how to nest in raw css
explaining in pseudo code
if Messagebar has slashCommandBarThing, if buttons have SendButton, apply to the 2nd last child -> border-radius: 0px 20px 20px 0px;
if Messagebar has slashCommandBarThing, if buttons do not have SendButton, apply to the 1st last child -> border-radius: 0px 20px 20px 0px;
if Messagebar has slashCommandBarThing, if buttons do not have SendButton, apply to the 2nd last child -> border-radius: 0px;
if Messagebar has slashCommandBarThing, apply this to both Messagebar AND SendButton -> top-right, bottom-right 20px;
override the following borders and radiuses on the SendButton
.channelTextArea__2e60f:has(.attachedBars_da3c74) .buttons_ce5b56:has(.separator__8424b) > div:not(.separator__8424b):nth-last-child(2) {
/* border: 1px solid red; */
border-radius: 0px 20px 20px 0px;
}
.channelTextArea__2e60f:has(.attachedBars_da3c74) .buttons_ce5b56:not(:has(.separator__8424b)) > div:not(.separator__8424b):nth-last-child(1) {
/* border: 1px solid green; */
border-radius: 0px 20px 20px 0px;
}
.channelTextArea__2e60f:has(.attachedBars_da3c74) .buttons_ce5b56:not(:has(.separator__8424b)) > div:not(.separator__8424b):nth-last-child(2) {
/* border: 1px solid blue; */
border-radius: 0px;
}
.channelTextArea__2e60f:has(.attachedBars_da3c74) .textArea__74543 + .buttons_ce5b56 > div:only-child {
border-top-right-radius: 20px;
border-bottom-right-radius: 20px;
/* border: 1px solid yellow !important; */
}
.separator__8424b {
/* SILLY OVERRIDE FOR THE THINGY ABOVE */
/* LIKE I SAID, SILLY OVERRIDE I AM SORRY :( */
border-radius: 0px;
}```
i am slowly going insane fixing bugs
It's native nowadays. The syntax is essentially the same as it is with SCSS
no idea how
channeltextarea
&:has()
& .buttons_
&:has()
& > div
... and so on
wait
it's more readable
the advantage is that you won't have to repeat certain selectors again and again
not &.buttons_ though, that'd select chaneltextarea that also has the buttons class
which should be the first 3 lines of the snippet
for the fourth one change it too & .textarea I guess?
There's a space(descendant selector) between both those selectors
might look back at nesting another time
need to fix the searchbar which discord messed up so bad
i wanted to fix with automatic margin/padding but it doesnt work. had to use a hardcoded margin to center the placeholder and input
Like this?
.public-DraftStyleDefault-block,
.public-DraftEditorPlaceholder-root {
width: 100%;
text-align: center;
}
nop
.toolbar__88c63 {
border: 0px solid steelblue;
}
.toolbar__88c63 > div {
/* border: 1px solid green; */
height: 100%;
}
.toolbar__88c63 .iconWrapper_af9215 {
border: 0px solid yellowgreen;
display: flex;
align-items: center;
height: 100%;
}
.search__07df0 {
display: block;
/* border: 1px solid green !important; */
/* box-sizing: unset !important; */
}
.search_ac353c {
/* border: 1px solid springgreen; */
/* border: 1px solid tra; */
height: 100%;
}
.searchBar_e0c60b {
/* display: flex; */
/* align-items: baseline; */
border-radius: 12px;
height: 100% !important;
align-items: center !important;
/* border: 1px solid red !important; */
box-sizing: unset;
}
.public-DraftEditorPlaceholder-root{
top: 6px;
}
.public-DraftEditorPlaceholder-root > div{
padding-left: 3px;
}
.DraftEditor-editorContainer {
height: 28px !important;
/* ^^^ this is hardcoded for now :( */
/* border: 1px solid gold !important; */
}
.public-DraftEditorPlaceholder-root, .public-DraftEditor-content {
padding-bottom: 0px !important;
}
.public-DraftEditor-content > div, .public-DraftEditor-content > div > div {
height: 100% !important;
width: 100%;
border: 0px solid red;
}
.public-DraftStyleDefault-block {
height: 13px;
border: 0px solid green;
}
.public-DraftStyleDefault-block > span {
/* border: 1px solid green !important; */
display: flex;
flex-direction: row !important;
text-align: center !important;
margin-top: 3px !important;
top: 3px !important;
border: 1px solid rebeccapurple;
}
.searchFilter__118cb {
border-radius: 8px 0px 0px 8px;
padding-left: 6px;
height: 100%;
}
.searchAnswer_b452e7 {
border-radius: 0px 8px 8px 0px;
padding-right: 6px;
}
its a big mess
love it when discord uses a custom input specially for the channel header searchbar
Embroidery Trouble Shooting Answers to all your questions about Embroidery problems
Peak CSS
so long
can i not target a class on the root if my style is injecting into documentElement??????
you can
then why the fuck is my selector doing fuck all
in what context, and what selector
vencord injects everything into documentElement
.platform-win #app-mount
what are you trying to achieve
add padding around app-mount only if its windows
its worked before
ok something i thought was a visual bug prob isnt one
fun
why the fuck is usercss-meta mangling this
why the FUCK is it removing this }
just an issue of my code cause my dumbass used an inclusive selector in the regex
moved my theme to a plugin so i can make configurable options
if i wanna change the svg of an element to a different one that is used elsewhere in discord, is it better to just copy paste the d: path("x") or is there a way to just copy the original element's svg? and if so is that more efficient?
alr thanks! :)
how can i remove or change the color of the logo seen here
i’m not near my computer rn but i’ll give you a heads up
find its svg and try to display: none it
that or to change color find the svg and fill: color it
if you can’t do it and don’t have help by the time i’m back i’ll just find a definite working solution for you
content:
fill="#2d1f1d";
}```
i tried this, i'm probably doing it wrong
.childWrapper__01b9c svg
{
color: color;
}```
or
```css
.childWrapper__01b9c svg
{
display: none;
}```
next time just do ctrl + shift + i and inspect the element, u can then fiddle around urself if u wanna learn
ty <3
how did u get that class?
ye
yeah you need to select the svg directly when doing that, not it’s general area
always make sure it only says “svg (resolution)” only
you should've just used usercss. there's an open pr for usercss, which supports theme settings.
one question, i can't seem to find the class that would change that background in the top left, sorry 99% of my questions are asking what class is this lol
nvm, needed an !important, sorry
yeah i find most times for svg’s you need !important
could you link it please?
ah nevermind i found it
managed to try and exactly figure out what it does
i didnt know you could use that trick for previous sibling selector, might apply it to mess known as the messagebar
now i need to clean and port this to the dm list, and settings
so much better,,
ooooooh thats nice ngl
going well so far, managed to get custom font importing working after a bit of struggle
what have i accidentally learnt
/* first item */
.sidebar_ded4b5 .privateChannels__93473 .content__23cab > .container__8759a:first-of-type .interactive__776ee{
border-radius: 12px 12px 0 0;
/* border: 1px solid red; */
}
/* last child */
.sidebar_ded4b5 .privateChannels__93473 .content__23cab > .container__8759a:nth-last-child(1) .interactive__776ee {
border-radius: 0 0 12px 12px;
border-bottom: none;
}
/* first child below THING */
.sidebar_ded4b5 .privateChannels__93473 .content__23cab > .container_de798d + .container__8759a .interactive__776ee {
border-radius: 12px 12px 0 0;
}
/* overrides ^^, last thing above THING */
.sidebar_ded4b5 .privateChannels__93473 .content__23cab > .container__8759a:has(+ .container_de798d) .interactive__776ee {
border-radius: 0 0 12px 12px;
border-bottom: none;
}
this is for the entire dm list
i am scared of what i have learnt and what i will do with it

my eyes hurt
please kill me
blame dablu
why :nth-last-child(1) why not just :last-child
copied from the reference, not sure if it breaks anything
now i have to use whatever this is to fix the message bar send button thing for the 12849th time
why isnt this official yet
so good,,
REMOVED LINES OF BLOATWARE
How to change the font size of everything?
* { font-size: 12px !important; }
replace 12px with whatever size
thanks
* { font-size: 14px !important; }
I changed font and now theres this ugly thing
anyone know how to change that?
.headerText__94c22 { overflow: hidden; }
@mortal mantle
😩
quickcss but fast toggle
@clear siren @supple jacinth @teal cave sorry for the ping but just wanted to say thanks once more for helping me with my "mouseover sidebar" theme recently. https://github.com/ZythDr/Discord-Stuff I've put it on my Github and credited you all! Happy holidays!
👍
/**
* @author Madeline
* @name Effect Remover
* @description Removes all the stinky nitro decorations and profile effects! All at the low low price of FREE!!!
*/
.avatarDecoration__14b3c {display: none;}
.avatarDecoration_ae35e3 {display: none;}
.profileEffects_fd33f6 {display: none;}```
(this doesnt remove profile colors only decorations and effects)
what's the css equivalent of an "or" statement? i want to do
.class[style="color: x;" or "color: y;"]
that doesnt help, when looking it up i j found that u had to sepearate w a comma and write the class again, e.g.
.class[style="color: x;"],
.class[style="color: y;"]
i was j wondering if there was a more concise way of writing it
inefficient as in slower?
You're gonna have to explain what's wrong with it, since it seems to be working
Does anyone know of a theme that can collapse the chat buttons when I start typing, similar to how mobile does? Alternatively does anyone know the CSS to alter to move these to another line? This is getting annoying (reposted from support)
idk how to make it collapse but you can hide it
Hiding would be good as well, or just moving it to another line. Just some way to prevent this weird 'text only takes up 1/8 of the text box' issue lol
I was able to adjust the CSS in the console thing but I'm not sure how to edit it in the quick CSS stuff
how could i select a class ONLY in a different class
so say i wanted to select the messagelogger-edited ONLY in the reply preview class and nothing else
how would i do that?
test2
wait
well i was looking at a reply preview in the support class
and the whole thing is covered by the message before the edit
i want to get rid of that and only that, so it would display the current message
but only in the reply preview
successfully confused
if the message is a reply and the content is edited, remove edit on replied?
yes
something like this?
.message__80c10.hasReply_febd50 > .contents_f41bb2 .messageContent__21e69 .messagelogger-edited{
border: 1px solid red;
display: none;
}```
testasdfhgjasdgfh
the snippet removes this
np
I'm not a Developer
deloper
also it's not mine
"Developer"
where is the problem tho? works fine for me
laggy as shit but its not broken my any extent
How to make icons in the sidebar centered or smaller?
Also anyone know how to make image cover this?
Pad it
I tried
Send your css
tytytytyty
np
@cursive tinsel
:root
{
--bgcol: rgba(10, 10, 10, 0.2);
--background-primary: var(--bgcol);
--background-secondary: var(--bgcol);
--background-tertiary: var(--bgcol);
/*etc etc*/
}
#app-mount
{
background-image: url(whatever background you want);
}
where do i put this
yes
yup
sick
do i just copy paste that in?
quick test i did
yeah
it blue not transparent D:
somewhere in #🏥-vencord-support-🏥 is probably what you mean
unfortunately you wont be able to "fullscreen" the app
yop
what dis
not sure if its on vencord, let me see
yeah i been tryna get it transparent
i have no idea lmao
yop i dont have a transparent theme to test it with
⭕This is a very simple tutorial I show you guys How to Make Your Discord look transparent for FREE!
After you follow this tutorial you will be able to make your discord look more clean and transparent for completely free!
⚫Download Better Discord
https://github.com/rauenzi/B...
heres someoen doing it on
betterdiscord
idk how to do it on vencord
^
what that

:(
devtools -> Vencord.Settings.transparentUNSAFE_USE_AT_OWN_RISK = true paste
UNSAFE_USE_AT_OWN_RISK 
i do but
^
how
its unsafe because it you will no longer have this option
well what would happen if i used it and got "caught
wtf is that
pain
why cant i have a real transparent working theme >:(
that allows full screen :(
does it really matter that much? its like in no way practical
you not wrong but i jus dont wanna get banned for transparent
do whatever you want but its not worth it like at all
legit not being able to maximise so you can see behind the window (click minimise it takes 2 seconds)
yeah i just like transparent i thought i can do it with a regular theme
which sucks
i mean you can always just use an image
but image not transparent silly
vesktop 🔥
no idea for that one
horror

i told vee to make me one and they just sent me what you sent but ion wanna use that if it’s unsafe

its not unsafe??????
it says unsafe but all it does is enable transparency at the loss of maximizing windows
once again its open source, it cant be unsafe
see ur smart
i mean like discord ban safe
It can't be detected by Discord (?)
i don’t work on discord all i saw was unsafe use at own risk
its a silly variable name, there is no risk
Make them believe so

screwed with the transparent theme a bit, i like it tbh
that thing next to my cursor
theres two things next to your cursor
thats other color than everything else
😭
i dont get what you mean just make a picture focusing only that
send me your theme/qcss and ill try and do it
youre probably rounding the wrong element in the first place, chances are it has a wrapper or parent
dw i gave him two lines of code that made the elements red
now he just has to adjust the colors to his liking and put the lines of code wherever 

??????
i will not elaborate

is that ur desktop background?
the way their thing works is they input an image link, and it’ll set it as a background
Anyone know how to make corners rounded even when scrolling?
Set the border radius on the parent rather than the scroller. hide the overflow if required
ill try thx
its working now thank you
what is this hotkey for?
vscode toggle comment
make me transparent working theme >:(
stop having a skill issue boi
make one yourself
https://github.com/lewisakura/vencord feat/usercss branch
gracias
if you want to use gh pr checkout
is there any kind of documentation on how to use it?
i mean how to make theme options, not how to load the pr
@deft niche
@vc-requiredPlugins is a vencord specific extension that makes it so you can set.. well, a list of required plugins
comma separated like ThemeAttributes,a,b,c
awesome, thanks!
yoiu dont need to add @-moz-document btw
and @author has no strict format
unlike in the spec
you probably should though, for interoperation
if youre still looking for one then
:root
{
--bgcol: rgba(59, 47, 100, 0.1);
--background-primary: var(--bgcol);
--background-secondary: var(--bgcol);
--background-tertiary: var(--bgcol);
--background-primary-alt: var(--bgcol);
--background-secondary-alt: var(--bgcol);
--background-tertiary-alt: var(--bgcol);
--bg-overlay-1: var(--bgcol);
--bg-overlay-2: var(--bgcol);
--primary-630: var(--accent);
--__header-bar-background: var(--bgcol);
--channeltextarea-background: var(--bgcol);
}
#app-mount
{
background-color: var(--bgcol);
}
I am still wondering how should I handle this (on a design, not technical, level)
I am tempted to just remove the lines (which I did do at one point, but restored them later)
they aren't useful and don't work with this at all
but then I'm diverging from vanilla Discord more
why did Discord just decide that system messages should have time randomly on the right side instead of on the left side and formatted differently as well
well, this could also be because they don't care about Compact (it probably is)
probably because the time is attached to the username, which system messages don't have
somebody make a christmas theme pls
nah
You're already 4 days too late
So I just noticed
Discord actually "implemented" no light in dark mode
they fixed the out of place light themes
Wow only took 7 years
yes
damn now I don't need a theme for it anymore
but like I never touch it anyways lol
oh boy lets see if this is remotely true
yippie finally its true
discord do absolutely anything right challenge
I'll be back home tonight and get back to css grinding tmr 
where do i put this
fix for SpotifyControls not following custom themes
.theme-dark #vc-spotify-player#vc-spotify-player {
background-color: var(--background-primary);
}
why not make it transparent to make it work for any theme
no
please kill me
why wouldnt you just set it to --background-primary
that way it works for everything
LMFAO
forgor about that
i kinda just opened quickcss, typed in 'black' and was like yep that works im done
updated it

do u know how to open quickcss
clearly not 
real gamers use ven toolbox 
this thing^^^
real gamers dont even know what the FUCK that is 

real gamers only use slow css
yes
damn i wonder why
its almost like we had a whole conversation about a console command you have to run
^
nothing is impossible if you believe in yourself and don't have skill issues
real
i tried it for a bit, its not not useable
kinda fucks up the window sizing but its possible ig
still no idea why someone would want it because its completely impractical and in no way useful
but i mean

devtools -> Vencord.Settings.transparentUNSAFE_USE_AT_OWN_RISK = true paste
its kinda usable if you make it translucent
i need to enable this and use the code u sent?
yup
where tf is dev tools at

like if you get it like this, its not that bad
yee true
i guess its useable with some blur but still
go to the console tab
not really useful or good looking
alr
Vencord.Settings.transparentUNSAFE_USE_AT_OWN_RISK = true
paste that in the console
press enter
(then restart)
nope that guy is lying and is trying to get your mothers maiden name
yes ofcourse you do that
wtf 
too much padding
did you restart lmao
why is --bgcol set to a static color
why shouldnt it be?
works fine for me :3
bc it just makes everything that color..








