FWIW, the link is to basically a glorified demo page _of the design_ of material 3, not a real world implementation of that design. So, that page's performance is not at all reflective of what you'd see when using a relatively recent android app that uses flutter's material components (https://docs.flutter.dev/ui/widgets/material) or one of the many web component libraries that implement MD.
The lag you're noticing is also likely entirely due to their weird cursor behavior. If they simply removed that, I suspect the page's performance wouldn't be at all noticeable.
But since this has name of Google attached to it, many people will mindless ape it to the detriment of experience of their users.
This wouldn't be so much of a problem if so many corporations also hadn't somehow decided that MUI was the next Bootstrap and have been treating it as an underlayer in their Design Systems, most of which aren't actually supposed to look like Material and don't really benefit from being huge additional libraries of CSS and components on top of MUI. I blame Figma for this. I don't know that it is any one specific thing Figma is intentionally doing, but the more design teams use Figma the more they seem to think they "need" a safety blanket of Material UI somewhere in the design stack that they won't actually use correctly or well.
As an engineer often tasked with performance work, I hate how much of Material UI's braindead approach to performance reflects on me in ways I can't do anything about "because that is the design system you wanted" (not the design system you needed). I wish Material UI would either get significantly better or just die already.
But I'm a fan of the cascade done right and with CSS Grid and CSS Variables and @layer vanilla CSS cascade is at an all time jam right now. I'd be surprised we aren't seeing more "Design Systems" in that space, but I've got a feeling given how much you can cut from a Bootstrap or Bulma today for CSS Grid/CSS Variables that maybe we aren't seeing a lot happening there simply because not a lot needs to happen there. People happy with the cascade are getting closer and closer to also being happier with "no frameworks" again. Vanilla CSS feels good to work in again.
There's two ways of answering this, but both amount to a yes
1) I certainly think much more highly of the recent plethora of tailwind based component libraries than the previous generation, which mostly don't require me to actually use tailwind directly (mantine, daisy). Component library developers seem to like it _a lot_, and the outcome is great. If they're happy to use tailwind and I'm happy with the library that is built on top of tailwind, then I'm happy with tailwind.
2) The other way of answering this is if I'm using tailwind directly. To this point, yes, I'm still happy. The metaphor I've used is that tailwind is to css is as ASM is to machine code. It's still low level, but far, far more ergonomic. And in the end, you often end up using a higher level of abstraction anyway (again, see Daisy, mantine).
>Vanilla CSS feels good to work in again.
FWIW, I really do agree with this. But I think tailwind + postcss is even better still.
- Mantine doesn't use Tailwind. It's overly React specific for many of its components that don't really need to be React components but could be Vanilla or Web Components, but it doesn't seem to be anything like the Tailwind approach.
- Daisy seems really funny to me because it seems the long way around to be a Vanilla CSS framework while still being too much Tailwind.
- (ShadCN is definitely the worst of both above things, utterly React-specific and taking the long way around from Tailwind back to things that resemble Vanilla CSS, only with extra React for React's sake)
It's basically like looking at a Figma export and complaining about the performance of it; any actual implementation would be done for any user-facing products realistically will be entirely unrelated both technologically and organizationally.
This could work and be fast with tech from at least 20 years ago, probably even more. It's really incredible this is output from a company valued in trillions.
Please people, test your UI on low bandwidth connections, high latency connections, and both conditions together. It doesn't need to be perfect, but it doesn't have to be anywhere near this bad. HN performs way, way better than these modern javascript heavy lazy loading apps, and I think there's some important insights in that sitting right there for the taking.
The background colour of the hovered element is known. When you specify the bgcolor, also override the cursor image.
For normal elements this can be done with mix-blend-mode, but that's not available for the cursor.
Google as a company, and in many ways Silicon Valley as a whole, is designed around being a bubble that is ignorant of how the rest of the world actually functions.
> on normal consumer internet connections
The only caveat is that the experience is not good on Firefox. Google meet is the only thing I use Chrome/Brave for.
Is React the driver? Do devs just not know? Is management pushing garbage?
I'd say developers who aren't web developers trying to do web dev seems to be the cause of this. Understanding the platform you're developing for is pretty much table stakes for any developer, and not understanding when to use <a> is pretty much the most basic mistake you can make. Literally the first things you learn in web development is about linking to other pages, yet somehow still people fuck up putting a <a> into a webpage properly. Boggles my mind.
React makes it as easy as any other library/framework, but if you don't think about what ends up in the DOM, and why certain things have to be a specific way (often for accessibility and user experience), then you'll screw up even big and expensive projects like this apparently. 2x boggling since this project is literally all about user experience yet they get the most fundamental part of the web wrong.
Hard disagree. I've seen a ton of decent web developers (i.e. people who can use modern CSS, layouts, and modern web stacks) reinventing buttons and links and forgetting about accessibility.
It's a completely orthogonal thing to the dev background.
Yes, these are exactly the people I'm talking about :) You and me just differ in that I won't call them "decent" if they don't understand linking properly.
But this:
> You have to do extra work to fuck it up!
resonates so hard. I get so angry at people who take extra time out of their day to put so much effort into making things worse. So many things on the internet are fine, but people spend so much on making them worse. Who is this good for? Not me, and likely not the person who wasted their time ruining functional things.
And since React doesn’t have built-in support for pushState (Yes I know React Router, but it really wants a hash router), you really need extra work for an internal router. And therefore, every beginner dev does it manually and slightly inconsistently.
So yes, React is absolutely the driver, same as Java is guilty for Guava existing, because it should have been built-in and perfect.
This doesn't sound right. The history API has been widely supported by all major browsers (including mobile) since 2013. React was also first released in 2013. Did React Router ever ship a version without a HistoryRouter.
You would be plentiful right to say it’s a programmer’s skills issue. But you have a very stinky pattern of masses of problems of programmers skills issue, leading to 90% React apps breaking the history.
I say it’s React’s fault. It should be built-in.
That is news to me that Google is using Nextjs for anything.
You really have to go out of your way to break this, and I don't think client-side routers deserve any blame for this. Anyone who is ignorant or careless enough to ship broken links using a client-side router would be just as likely to break anchor tags with their own hand-rolled JavaScript.
The designers here have lost the plot.
34% modernity, 32% subculture, 30% rebelliousness made me cringe.
/s
My comment was a joke
The Android emulator sucks the remainder with ease. The app performs better on a low end Android burner phone then our dev machines so at least we know our users are having a reasonable experience.
I asked him if it was a good use of my (expensive) time to wait 30 seconds for characters to appear on my code editor.
Luckily he gave me a "special exemption" that allowed me to shut that monstrosity down !
* Stand-alone "best of breed" endpoint DLP
* Stand-alone "best of breed" EDR
* Process whitelisting tool
* NAC posture assessment agent
* Three different AV agents
This is not even counting their VPN client(s) or the third party disk encryption agent they used.
I marveled at how they even got all of the agents to coexist, let alone have enough CPU left for people to do their jobs.
Or a more likely scenario - some dev with admin on their machine grabs a malicious NPM package, EDR doesn't grab it because they successfully lobbied to have certain directories exempt for performance reasons (like DevDrive on Windows, or WSL). SSH keys get stolen, and despite all the fancy security products, the environment is still a mess (which is why there's so many products to cover up that fact) so the dev actually has keys to prod, then you're hosed.
I've seen my fair share of orgs with a plethora of security "solutions" and yet fail to understand some basic principles like least privilege or separation of concerns and think all their security software is going to save them.
good joke, like someone gives devs access to prod at all. Let's make it even funnier - if devs are now ops and can manage infra..oh, wait..
Also doesn't help that because I don't feel comfortable with all the monitoring software on my work laptop, I won't use the services I personally pay for with my work browser because I don't want the IT department scraping my personal passwords.
At least they got the Expressive right in the name now, Material Expressive (HATE).
At least with Windows it alternately gets much worse then a bit better again with each version.
Regarding the monstrosity in the link, yes it does make me 'feel things' - things I will refrain from typing out lest they be construed as threatening behaviour.
I wonder if you have Samsung One UI 7 or some other skin. One UI 7 looks a lot more like iOS, but there is little Google can do about that?
People complain about how crap UX is now, and how computer illiterate the general populace has become but I firmly place the blame on forcing the web into an application delivery platform, abandoning all operating system HIG and conventions so that every app is now it's own unique snowflake that breaks conventions.
IMO people would struggle less if it was all native apps that followed the OS. You learn your operating system's conventions and shortcuts, and those translate into every app you run - but then marketing people got their hands in things, and suddenly everything had to be branded and unique, and we are worse off for it.
The lag and that cursor makes it feel like trying to type with mittens on.
As if they couldn't build an absolutely identical page with just HTML and CSS. But no, javascript is the way for them because it has way more tracking and fingerprinting abilities than plain HTML and CSS.
Also... I fucking hate it. I don't want my mouse to stick to buttons, or to change colors constantly.
The "emotion" the this site generated for me was "anger". If this is the pitch for the new design system, my journey of not using Material is coming to a middle.
This to me reads as an indictment of your own lack of effort to tackle these problems for yourself. As if sudden realization of how codependent you are set in.
Your paranoia over control of your life is bizarre since you have agency to walk away and go make clothes, copy paste together existing libraries for mouse input. Physics doesn’t oblige you to sit there being useless to yourself. There’s no Ethernet cable up our ass. Taking away their power is a mere act of agency to increase the difficulty of communicating at us.
Your level of ignorance is unfathomable. Very sad.
Even just making a circle motion with a mouse produces a lot of stuttering. I just did the same action on HN and it's as smooth as you'd expect on a CPU from 1995 and beyond.
> spend zero brainpower on systems without graphics acceleration.
These systems don't exist unless you go out of your way to turn off graphics acceleration. In which case that's kinda on you. It's like ranting about sites requiring javascript. It's just not a realistic expectation to have of anything anymore.
What if I turned it off because it makes my machine more stable? Why do I have to choose between crashing and jank?
Fun fact, for the longest time ever on Windows 10 the Intel Arc drivers for A580 and B580 would crash in Edge if you played some videos on YouTube, it did seem that switching the ANGLE backend or whatever it was called would help, though I got similar issues with VLC when it was using the DirectX based renderer whereas OpenGL renderer didn't have that issue but would make the mouse disappear when in the video window.
A lot of it feels like it was solved after moving to Windows 11, though it's still possible to make the PC freeze by either doing encodes in AV1 in DaVinci Resolve (QuickTime H264 or maybe H265 doesn't seem to have the issue) or through Handbrake, if the GPU is at 100% for prolonged periods of time, whereas recording with OBS or playing pretty much any game doesn't have that sort of an issue.
Might be a bad media chip or something else, go figure - definitely there's at least two people in the world who might benefit from disabling hardware acceleration in some cases, though. My RX 580 doesn't seem to have the issue, so that's the joys of being an early adopter.
Edit: Not directly related, but I turned off DRM support for similar reasons. Web sites keep turning one of my monitors off when that's enabled. Even though I'm not intentionally or perceptibly playing any media. The (well, another) weird thing is the other monitor stays on. They're the same brand and model, using the same cable.
Fancy hardware stuff seems to make browsers unstable, and in my experience this has been true for over a decade. I don't care enough about to try to find a root cause. I don't need DRM support or hardware acceleration for anything I intended to do, so I just turn off anything like that.
My experience was...
Skim through sentence after sentence of award-winning inanity like "Expressive design makes you feel something" as my powerful Macbook stumbles and wheezes...
Then think: "I like how default scrolling makes me feel!"
I have a dual GPU setup with one GPU dedicated to browsers, the cursor still freezes while scrolling and jitters after that and has noticeable lag even when not scrolling across both Chromium based browsers and Firefox on Windows. I'd compare it to a video game with really bad aim acceleration where the mouse just feels sluggish and uncooperative.
I like that people are studying what works and what doesn't in UI/UX, but I'm not sure why they have to break the basics in the process of doing that - that is quite distracting from the overall experience and makes it kind of miserable, just as opening a very JS heavy SPA or what have you would.
It's even infecting Flutter, because it wants to push Material. This is genuinely depressing. And makes me appreciate the command of Steve Jobs, the guy leading Stripe, etc. because when you see abysmal offerings like these, you just can't help to.
And it's phenomenally hard to not be judgmental about this, because after release after release it shows they are not learning.
This latest version exists because the previous one bit rot so hard it wouldn't compile any more and got removed from the Play Store (and the NHS Couch to 5k app I wanted to use was region-locked). Flutter web output still sucks, but it's better than dealing with any amount of Xcode or Android builds for a one-user app:
https://flutter-workout-timers.netlify.app/
I also used it as an opportunity to create separate Material and Cupertino versions you can switch between, and Material 3 just looks like... well, the complete opposite of expressive. I could just be holding it wrong, of course.
The M3 docs I consulted while making it have always been diabolical, with the most overblown, laggy delayed image loading/placeholder stuff I've ever seen, even on a powerful desktop with fast internet.
Also shittier software means you can hire cheaper workers to plough on.
This is extremely bad engineering and these engineers should be called out for it. It takes a special kind of person to deliver this and be proud of it.
Once they made their millions at Google these engineers will be our landlords, angel investors, you name it. The level of ignorance is unfathomable. Very sad.