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).