1. Those loading spinners being bumpy pulled my eyes around the screen wildly to the point that they were experiencing pain. They need to be removed.
2. There is a status bar along the top, and an application launcher docked at the bottom. That's way too much vertical space being used, especially on laptops (which I'd wager is going to be the most used viewing modality for this OS). It should be merged into a single bar along one side of the screen.
3. The dropdown at the top left of each window seems to be taking up a lot of space. Especially when you're trying to fit four tabs on the screen. Get rid of it so the tabs can actually be read.
4. At 27 seconds in, there are two close icons in the focused window. That being bad could be a presentation all in itself.
> My point is that defining a complex behavior for a custom tag is not possible without js.
Not necessarily. CSS alone can allow for a lot of useful complex behaviour. You can customise how something renders (or not) or is interactable based on parent elements, sibling elements, css variables, or other state.
> For example, you can't define a reusable 'host-element' tag and expect some additional elements (or some behavior) to automatically appear inside it each time your html includes or you create <host-element> ... </host-element>.
Actually you can, using <template> and <slot> elements. No JS required.
> What's the point of using selector 'link-button[size="large"] a {...}' when you could do the same with '.link-button.large a {...}'?
This is really two questions:
1. What's the point of using <link-button> instead of a link-button class?
2. What's the point of using a size="large" attribute instead of a "large" class?
To answer 1:
Classes end up being misused compared to custom elements. When you make a custom element (in this example "<link-button>"), you're explicitly saying this is a <link-button>. It is not a <blockquote class="link-button">, it is not a <form class="link-button> and it is most certainly not a <picture class="link-button>. It is a <link-button>.
Also with what was stated above, you can use <link-button> to declare default internal elements (using <template> and <slot>) without using js to say what should be inside a link-button.
To answer 2:
Because you should make impossible states impossible (or at the very least present impossible states as impossible). Size is a state, it could be small, large or any other list of predefined values. If you use classes then you can end up with something like <link-element class="small large">. If you use attributes, you end up with something like <link-button size="small"> or <link-button size="large"> but not <link-button size="small" size="large"> (since that's illegal in html and duplicated attributes are ignored).
Plus you're already using attributes for interactive aria roles (or you should be).
You use css to style the menu being open or not with: `#navbar-toggle[aria-expanded=true] ~ #navbar-menu` and not something inaccessible like: `.navbar-menu.navbar-menu-open`.
It didn't solve frontend, it sold developers one lie (i.e. ui = f(state) ) and managers another (developers are interchangeable gears).
Problems are only truly solved by the folks who dedicate themselves to understanding the problem, that is: the folks working on web standards and the other folks implementing them.
> Problems are only truly solved by the folks who dedicate themselves to understanding the problem, that is: the folks working on web standards and the other folks implementing them.
It kills me to think of how amazing Web Components could be if those folks had started standardising them _now_ instead of in "competition" with userland component libraries of the time (while punting on many of the essential challenges of developing UI in the DOM those libraries were still evolving solutions for), and introduced more problems entirely of their own making.
Too bad the problems getting solved aren't the problems that need solving. Maybe this is one of the reasons software development is such a joke of a profession.
If I'm using git for version control, I'm going to use the Fork client (fork.dev) since it essentially replaces git's UI already.
And in a few years if I'm in the position where we want to switch away from git, I'd probably be looking at pijul.
But maybe that will change if jujutsu gets an open source non-git-based backend.
reply