Is There Too Much CSS Now?
css-tricks.com
css-tricks.com
What we really need is 'scrollbar-width: thick-ol-windows-95-bar'
Why do designers hate scroll bars :-(
That's why designers don't like it. It's just an unbalanced use of pixels. It's visual clutter.
Unfortunately, none of the alternatives are great, either. The thin ones are hard to use when you do want them. Making them appear and disappear is distracting. Some applications make use of the space (letters in a long alphabetical list suggesting where to scroll, error indicators in an editor), but it's nonstandard and not always applicable.
So designers keep looking for better alternatives. Ideally, you do away with scrolling, but that's not always feasible.
Is there really a shortage of screen space? Scroll bars were introduced on like 14" monitors with a 640x480 resolution. Wasn't a problem then. Why is it we're running out of pixels on a 42" 4K monitor?
I just don't understand why interfaces must be invisible. If anything, a scroll bar provides contextual clues as to what sort of an interface you are looking at. It's something that can be scrolled. It also lets you know where it begins and ends, neither pieces of information are rarely obvious with contemporary GUIs.
Don't underestimate the power of design conventions in making an interface intuitive.
Another fun thing: On Mac OS you can enable scrollbars to always show; but doing this adds a ~18px scroll gutter on every scrollable element, and thus breaks some scrolling web elements where the designers clearly only designed around the default. :)
The scroll wheel is so sluggish and the cursor keys are a lot slower still.
Also I'm not an apple user.
The bar seems to be more familiarity and less functionality to me.
To scroll through a document the size of this thread, I need to paw at the scroll wheel 10 times. It's at the same time slow and imprecise. With the scroll bar, it's a single gesture, it's quick and immediate with pixel precision.
Neither paging, search or expanding/collapsing elements permit this level of control. They're all much slower, and to make matters worse, often implementation defined.
Scroll bars always work the same in every window and every application. Overshooting the mark is a non-issue because scrolling is so fast correction is trivial and immediate.
The alternatives also have a big problem with focus-ambiguity. If I page-down in the text box I'm typing this into, it will page the text input, and not the document. Using the scroll bar to adjust the view, there is no such ambiguity, since the mouse cursor uniquely identifies which element I want to scroll.
Being able to totally override anything in Python (but rarely ever doing so) gives me that comfort.
Seeing a small section of my back deck totally renovated before doing the actual project gives me that comfort.
Having a million css options that I’ll rarely use gives me that comfort.
I dunno if others have this feeling? For me it’s not just rational or preparatory, it’s emotionally driven. I feel anxious about a project until I know I have all the tools and parts to complete it, even if inefficiently.
I feel that there has to be a better way.
It’s not accurate to imply what CSS does is only “managing display preferences”.
CSS is the presentation (color, layout, typography, animation, speech) and state management layer for HTML and SVG, among other markup languages.
I much rather have agreed upon specifications instead of having to invent hacks and work arounds for things that should be standard in 2022.
It took 20+ years to get layout based on columns and rows (CSS Grid); before that, layout comprised of hacks (floats, absolute positioning) and features being misused, like tables.
Container queries, CSS Nesting and the parent selector—-:has()—-results in less and easier to understand code with fewer hacks. It also means doing more without reaching for JavaScript.
CSS is in a good place finally and I for one hope it continues.
I guess the point of my story is that people will misuse tools regardless of what is available to them.
And narrowing the toolset is impossible without dictating terms to others on what tools they don’t get.
One loose analogy is that 99% of stuff in Home Depot I won’t need. But it all makes my walk a bit longer and makes finding stuff harder and there’s probably some tools I didn’t know about that would make my life easier. But should I advocate that a lot of it should be eliminated?
Back in the day, developers would use a CSS framework just to manage grid issues, which had their own limitations.
With CSS Grid, we do things that were difficult or impossible with much less code.
I work with some younger developers that honed their craft after things like SCSS and modern JS frameworks became commonplace. They can't seem to fathom the idea of building even a simple website without node.js.
For many projects - sure - a JS framework, a CSS framework, SCSS, etc, have their place, but I'm convinced many developers are killing themselves with unnecessary complexity. Just wait until you revisit that old blog site you made with tailwind after a few years without updating the mountain of JS dependencies. Oh boy...
In my opinion all of that extra complexity needs to be justified, and for a very large number of basic websites I don't believe it can be.
None of that is to say I don't use (and enjoy using) things like React and Svelte. I am however loving the resurgence in simpler approaches like HTMX.
/s
Tailwind is similar, except that Vuetify components are appearance + functionality. Whereas Tailwind is appearance-only.