Up for discussion:
The userscript I (and others) have written seems to be fairly popular among people who have found it. I’ve had several requests to turn it into a Lemmy theme, but I have been hesitant to do so. Partly because I lack the skill to do it, and partly because it isn’t really a “theme” as such. It doesn’t change the colors or do some of the things a theme typically does. In truth, the script is actually (essentially) theme agnostic - I use it with darkly, but it works with all of the other Lemmy themes without issue (hopefully).
I have no qualms with someone helping turn the CSS stuff into a Lemmy theme (or just taking the bull by the horns and doing it) , but with the changes coming in v.0.18 it may be better to wait.
Anyone have any thoughts? Is this script even appropriate for a Lemmy theme?
Hey. Let me start off by saying that this script is great and I’m really thankful for it. There’s still some room for improvement but it makes the experience much much more enjoyable.
So, I’m working on modding the lemmy-ui source code to work on a modded Lemmy instance I’m building with some friends. I’ve only been working on it for a couple days so I’m quite ignorant myself, but I have a few ideas about your project.
So, I don’t think this could be a theme because it does something fundamentally different. A theme is simply a set of colours, fonts and other customization options that describe how Bootstrap should make the content that’s already defined look like. Example, this is what a theme’s code looks like.
What you are doing instead, is replacing the Bootstrap code itself, which is beyond a theme’s scope. You are touching the page’s code.
As far as I know, Lemmy has no way of toggling a feature like this on a user level so user scripts might be your best bet for the time being. However, I like the design so much (and on my instance we are all Reddit refugees anyway) that I’m considering making it the official layout of my instance. I’d still need to figure out how that would work in the details, but I think it could be done without excessive trouble.As a sidenote, reading your code I saw you used the browser’s user agent to check for mobile users. I’d avoid doing that because users can actually modify their user agent if they want to, and some people who really care about their privacy have extensions that do so automatically. Instead you could try using media queries and the window.matchMedia() function (not sure if it’s suported in user scripts as I’m quite the noob in that field, but that’s how I’d do it in a web page).
So, I don’t think this could be a theme because… What you are doing is replacing the Bootstrap code itself
yeah, this is what I thought. Makes sense and I appreciate the insight/feedback.
As a sidenote, reading your code I saw you used the browser’s user agent to check for mobile users.
Yes indeed. That’s coming out. New released updates handle screen width with pure CSS (the @media you mentioned) so there’s no need to check for browser type/agent anymore. In fact, I’m getting rid of basically all the functions (except for the tagline reposition which I’m pretty sure won’t be needed for v0.18).
You might take a look at other Lemmy -> Reddit appearance themes and see what you need to adapt. I found this one which changes Lemmy to look much more like old reddit. Tinker with it, see what changes what, then see what object/class names you need to change to make your script affect the same stuff on Lemmy.
Also yeah, that’s gonna be a chunk of work.
Yeah, the old.reddit.compact script already edits most of those styles. It’s less about the CSS which has already been written/modified and more about getting it into Lemmy as a selectable “native” style rather than relying on Stylus or Tamper/Violentmonkey
I was going to say the same.
don’t know why it cross-posted all over the fediverse… that was not my intention
It wasn’t you who did it. If you check the crossposts it’s just people sharing the link to your github repo.
oh. odd behaviour
Do you have a link to what a Lemmy theme is? Idk if there’s docs or anything. If we can find them I can help you do it.
https://join-lemmy.org/docs/administration/theming.html
it’s a little cryptic. It talks about bootstrap (ok, fine) and then links to a bootstrap builder (there is where I get lost). As I have mentioned in the past, CSS isn’t really my bag (baby). I just poke around until I like how it looks…
k so i researched, there’s nothing new about this bootstrap stuff, what’s new is they’re adding classes to make it easier to theme https://github.com/LemmyNet/lemmy-ui/pull/1361
and that they’re discussing theming
next step is then to check if, having your theme converted to pure CSS or SCSS, when put into the themes folder of a deployment, does it look the same as the userscript, or does it substitute the previous theme and therefore deletes existing colors and shit, or is it simlpy incompatible because it assumes it’s a bootstrap theme and then does it destroy the whole ui due to the lack of bootstrappy defaults?
ez way to check: convince an instance holder (example, the dude) to run a dummy lemmy-ui with a dummy theme that was tedted on stylus for example and see how it behaves when placed into the themes folder.
yeah, i was aware of the theming and UI discussion. I’ve actually started a new userscript based on the beta test instance here: https://enterprise.lemmy.ml/
The CSS will indeed look the same from a layout perspective, but it doesn’t change any colors - and you can’t select two themes at the same time (currently). It doesn’t destroy any bootstrappy defaults, but it would default back to the standard bootstrap color theme. This is why I lean towards this not being appropriate for a “native” Lemmy theme.
Converting the script to stylus is rather trivial - especially now that the comment collapse button and mobile styling is being modified with pure CSS. There are no other functions to convert.
The CSS will indeed look the same from a layout perspective, but it doesn’t change any colors - and you can’t select two themes at the same time (currently). It doesn’t destroy any bootstrappy defaults, but it would default back to the standard bootstrap color theme
Are you implying that you have the ability to upload a .css directly to the UI somehow? or how are you testing its effect on colors and boostraps default classes & color themes? are you talking about stylus with this or something else? cuz i went into enterprise.lemmy.ml and the theme selector seems to have the same themes as this one, maybe i’m missing something.