macOS in Svelte
macos.vercel.app
macos.vercel.app
At the time they were doing functioning mockups for the Aqua design in Macromedia Director. It was not easy to actually implement the UI with the available hardware, but the mockups showed that it was possible. "Mr. Ratzlaff frequently would remind Apple engineers that 'Macromedia can do it, so why can't you?'"
Only source I can find is: https://www.macobserver.com/article/2006/03/15.9.shtml
> As it so happened, Mr. Ratzlaff and his team had already been working on a ground-up redesign of the operating system after they discovered that their original goal of porting the look-and-feel of Mac OS 8 completely to Mac OS X would be impossible. "We were only going to be able to get about 95% of the way there [putting the Mac OS 8 interface on Mac OS X], which is possibly the worst thing you could do," Mr. Ratzlaff said. The redesign had been scrubbed by higher-ups at Apple but was put back on track by Mr. Jobs.
> With that, Mr. Ratzlaff and his team's list of requirements for the operating system, which had been called overly ambitious and led to laughter from engineers who heard of them only weeks prior, became mandatory. These included 32-bit color with alpha channels and QuickTime integration, all being able to run on a system with just a G3 processor and as a little as 8MB of video memory. Mocking up the operating system's design and functionality with Macromedia's Director, Mr. Ratzlaff frequently would remind Apple engineers that "Macromedia can do it, so why can't you?"
However I got an M1 and can say this is no longer an issue. (despite having only 16GB RAM compared to the 32 on my 16" also). When using native apps the M1 laptop runs amazingly well, it is one of the best performing machines I have ever used for day to day use, even compared to my 5950X desktop system. Of course the 5950X will run circles around it with highly parallel workloads but on single thread the M1 is basically just as good.
You could also use a CSS animation (which can handle display), multi-stage transitions controlled in JavaScript, or Svelte’s own animation system.
Can't express my gratitude enough for sharing this here. Thanks you!
I've read in other comments that you also built this in React... I think people would kill to read a deep dive of the differences you've seen between both frameworks in the context of building this project. I'm a hardcore React user, and Svelte looks great, but what prevents me from adopting it is that I don't have enough info of what its limitations "at the edges" may be in a complex project (whereas I understand React very well in this sense).
Barring a full-on technical blog post - which I think would get you a lot of exposure, but is too much to ask - if you could share some thoughts here I would really appreciate it.
I see you made some submissions that didn't get a lot of traction. HN sucks like that - sometimes you need someone else to give your project visibility. Hope you get some well deserved publicity now.
--
The link goes to the wrong demo!
"macOS in Svelte" is here:
https://macos-svelte.vercel.app/
"macOS in Preact" is here:
I reset the domains for preact one to be macos-preact.vercel.app.
Svelte one is now macos.vercel.app, but macos-svelte.vercel.app will work too
https://github.com/PuruVJ/macos-web/blob/main/src/components... is the source code for the VSCode app - it actually works by adding an iframe around https://github1s.com/puruvj/macos-web
Yup!! No way in world will I build whole VSCode like structure around the monaco editor, just way too much work
(Or maybe....) * wink *
When clicking in in the menu bar to open a menu (for example on the apple logo) and then moving the mouse down, but diagonally in a way that the cursor cross the next to the right menu item (eg finder):
- in this demo the hover triggers the finder menu to open
- on a real map the diagonal down movement prevents that and keeps the current menu open
Moving to Svelte was just copy pasting a lot and modification :)
(PS. Project author here :) )
I never do anything without themes :)
I know this is just a UI recreation and not the actual OS but as a long time KDE user, like over a decade, I can't help but think meh, why does this UI get so much praise?
I can make my desktop look, act and behave literally any way I want, I can modify every single aspect of every single thing on my desktop to suit my work flows and everything I do on a computer exactly so my computer does exactly what I want, when I want, exactly how I want it to in the exact way I want things to be done.
I haven't changed much over the years, i've copied my configs through every update, even brand new computers and everything always just works how I want it to.
Why do people pay the premium for this UI Apple forces you to use?
This is just my opinion, but I've found the classic Mac OS and pre-Yosemite Mac OS X Apple Human Interface Guidelines to be quite well thought of. In fact, while I prefer the technical underpinnings of Mac OS X to those of the classic Mac OS, I prefer the classic Mac OS's interface, which seems more intuitive to me.
Having the ability to theme one's desktop is nice, but I prefer having an ecosystem of well-designed applications that all conform to a common set of well-designed UI/UX guidelines. This is what has kept me on the Mac all these years, and my disappointment with the Linux desktop is that while it's easy for me to theme the desktop, the applications themselves are inconsistent, theming is only skin-deep, and what does not help is the fact that there is no single toolkit, desktop, and/or UI/UX guidelines (though, once again, I can achieve some greater consistency by sticking to Qt/KDE or GTK/GNOME apps). Granted, I admit the holy grail for me is for those well-designed applications to also have customizable UIs.
However, in an age where Electron apps are becoming more common and where M1 Macs can run some iOS apps, there is less cross-application consistency these days on the Mac. I regularly use Zoom and Slack, which clearly stand out when compared to applications that use the native AppKit API's controls.
I feel like everything about the macOS is just weird and the animations are also really weird, like minimizing the window animation - what the hell is that? And it's also weird how icons increase nearby when I hover on something, little things like that feel so off about Mac.
As see on this App, when I hover on the icons in the bottom, they jump bigger and it immediately disorientates me. Like why do that? Am I unable to see the icons in any other way that you have to zoom increase them? And that annoying bouncy animation when those apps require attention.
Far more frustrating, however, is the inconsistent window management. Mac is very unintuitive (coming from Windows). If I have multiple windows of an app open, I can't switch to the right window with Cmd + Tab. It opens the window in the same desktop. It's annoying as hell! A four finger swipe always takes me to the next desktop and there's no way to swipe between the apps on the same desktop (a three finger swipe in Windows).
And while this might be in equal parts Microsoft's fault, but MS apps like Teams just suck. When I'm on a different desktop than the one containing Teams, it takes me three clicks to open up the damn window. In some apps, Cmd + Right arrow will advance the cursor by a word and in most others, all the way to the end of the sentence.
I still fail to understand the allure.
Most, I only use occasionally. I use Xcode, SourceTree, BBEdit, and Adobe Illustrator (to create graphic assets for apps), the most.
I am probably at expert level on most of the apps on my computer (which isn’t really saying that much, as most are “one-tick ponies”); even though I may only use most of them, once a month, or less.
That’s the value of a consistent UI, to me. I am not always happy with the platform standards, but being able to fire up an application that I haven’t used in months, and get productive in seconds, is quite valuable.
Look at HomeKit for example, or any of the other ported apps, no keyboard shortcuts, no keyboard navigation, resizing is a bitch, the proxy icons are on their way out.
Pretty looks, but no substance.
I haven’t used Windows extensively since 2015, but at least back then I had to have a suite of AutoHotKey scripts just to get close to native MacOS functionality.
On iOS this is about to get a lot better too; on iOS/iPadOS 15, if you hold down ⌘, you get a list of keyboard shortcuts currently available, interestingly organized just like the menu bar on MacOS.
The totally secret stuff is all hidden behind ⌥, but actually if you hold that down while looking at menu items, they transform into their secret versions. Still not really discoverable, but there if you know where to look.
The situation is even worse on iOS. Remember when it was news that you could long-press SPACE in order to relocate the text cursor?
There’s a million of these little things, and if you’re in the ecosystem for awhile, you forget that you’ve learned them. They are genuinely useful and pleasant shortcuts that feel appropriate once you’ve learned them. But as far as I know, there’s no universal way to learn all these handy shortcuts.
A few are configurable via System Preferences, and so you can discover them that way. Many of them are not.
Particularly frustrating is that gestures change depending on your device, even stock settings! A swipe from the upper right corner of my iPhone 7 is different than a swipe from the upper corner of my iPhone 11 which is different, and while a two-finger swipe from the right on macOS gives me notifications neither iPad nor iOS do that. Why is it that two-finger tap is context menu on macOS but a two-finger tap on iOS generally does nothing, and there’s a whole different gesture of long-press (I don’t even know if ForceTap is still a thing or not).
The consistency WITHIN macOS across apps is what’s great about macOS. It’s a shame it’s so hard to discover, and it’s a shame they keep changing these patterns without bothering to unify them.
How is "well-designed" defined in that case ? e.g. the oft-referenced paper that Apple apparently used to define their environment as primary mouse-driven ("keyboards users state that they take less time and measurably take more time than mouse users to achieve a given task with a keyboard" or something like that, don't remember the actual phrasing) has famously not been reproduced. In contrast the UI work that went into the win95 design seemed much more experimentally reliable.
I really was curious to hear some perspective on this that wasn't just because I like it. Thank you.
Because...
>I can make my desktop act and behave literally any way I want, I can modify every single aspect of every single thing on my desktop to suit my work flows and everything I do on a computer exactly so my computer does exactly what I want, when I want, exactly how I want it to in the exact way I want things to be done. I haven't changed much over the years, i've copied my configs through every update, even brand new computers and everything always just works how I want it to.
Most people don't want to deal with this^.
There's nothing to "deal with". You can skip all of that and have a nice KDE/plasma desktop. On the other hand you have the builtin option to do things that require 3rd party apps on MacOS (caffeine, magnet, etc.)
- Before even starting, you open the laptop, the bottom stays stuck with the lid, so you raise a little more and shake it and it smashes against the desk. It’s comically unpolished experience. It requires a decade of seniority as an engineer to know that it’s a criteria that you should include to your purchase, whereas with Apple you buy any of them and the quality is uniform.
- I’ve had my macbook for 8 years and still watching movies on batteries, not a single PC laptop can reach such performance.
- It would wake up at the office and play my employee’s music, and I don’t have his password and the sound buttons don’t work without login. Why oh why?
- The GRUB at startup and the workflow for full disk encryption… What is there to defend on the polishing of the various Linux experience?
If you have to be an expert to know that some distribution or another is better, then it’s not an expertise I want to be good at. My job is delivering experiences to my own customers, and software needs to get out of the way.
An OS is a platform to run apps you need and manage resources of and on the machine. If it does that effectively and reliably without a fight, it does it’s job.
I use a Mac for the simple fact that in the last 13 years…I have had precisely 2 MacBooks and one of them was my daily machine that I used for 10 years. Battery swelled and I retired it. I could have probably replaced the battery and kept using it. My latest machine will likely last me another 3-5 years.
Compatibility with existing muscle memory.
In 1989, I took a .twmrc file from a friend, which mapped alt-mouse1 to move, alt-mouse2 to resize and alt-mouse3 to iconify. Those mappings became muscle memory over the next 17 years of twm and ctwm and KDE use.
At that point, my whitebox died and I decided to get an iMac because I was very busy with work and personal life, and didn't want to spend a lot of time building/configuring a new whitebox. MacOS was *nix, so how bad could it be? Well, I ended up fighting MacOS tooth and nail, as I could never get my mappings to work reliably. That lead me to use X11 for a lot of things, but that inter-operated poorly with native apps. After about 9 months, I gave up on Mac as a desktop and gave the iMac to my then-inlaws and built a whitebox.
So I feel strongly that the ability to tweak things like this, even if they are never used, can be crucial to some people.
In fact, I'd very much like to covert to using my M1 mbp as a desktop with a dock, but I simply cannot function using Mac's window management on a deskop. I've tried all kinds of tweaks and add-on to get the behavior I want, and they all fail in some way.
Back in 2008 when I made my last shift the MacOS caused me some frustration because I was expecting window management to work like Windows. Took some time to get past it, but now how it works is my expectation. Lately I have found with moving to iPadOS more and more for non-business computing needs, that when I work on my MBP, I maximize everything and just alt-tab between it all. Windows management needs are almost nil.
Like I say, this is very subjective and Apple don’t get it right all the time, but based on my experience it’s better than the alternatives in this regard. If you value customisability or access to power user features over visual consistency I can totally understand preferring another OS as MacOS does not excel there.
I've been a Mac user ever since 2013 and I feel like it's consistency beats any other desktop environment.
I never have to worry about something not working.
I don't have to tell my colleagues at the end of a project that I'm sorry but I'll be off for a couple hour because my custom wi-fi icon just crashed the system. I don't have to wonder whether my laptop will connect to the airport wifi or they're using a different protocol then the one I have at home.
I know I could customise every aspect of the look and feel of my desktop, I just no longer want to.
I want to get work done.
I have no idea what a "custom WiFi icon" is but I'm guessing you bought something with prebundled apps. That is irrelevant to the discussion of consistency in one OS versus another (but of course important in the buying process but that's another matter).
>or they're using a different protocol then the one I have at home.
You are making a pretty bad case for Mac as Apple is the one that creates and enforced all kinds of "standards" instead of using what everyone else agreed upon years ago. Apple doesn't implement the full WiFi standards, they use their own standards for everything from chargers to media streaming protocols to connectors.
There's a lot of good to be said of Mac but it using the same protocols as everyone else is not one. Unless you ban everything else and live in an Apple world but then standards are completely irrelevant anyway.
On Mac? Both work 100% of the time on every one I've purchased.
That's the difference. 100% vs 80%. If my software deployments broke 20% of the time at work, I would be fired.
Linux supports far more hardware out of the box than either MacOS or Windows.
People pay the "premium" because they do not have to make any effort in selecting which laptop will work out of the box. Effort takes time, time is money. In general, people would rather pay the money upfront, rather then pay with their time later.
At a certain point I compiled my own distros, I recommend RFDVL (read first, downvote later).
In the last 12 months there's been loud threads on HN about Apple and MS breakage and user hostility. Meanwhile, my old installs keep working, out of my way. I've been through a few big Xfce updates too - it got better, objectively better and didn't break anything - and never once (since 2007) has it disrespected me with any user hostile $BigCo_MiddleManager bullshit.
In short: cheers to Linux, Gentoo, Arch and Xfce.
So stable my 70+ "boomer" family can use it. My pop thinks it's "as easy as Win95"
This is before listing the ecosystem advantages of macOS and iOS.
They use Linux _despite_ some technical problems that exist because they want full control of their OS.
Mostly these people know very well that there are shortcomings, also many of them know other computer systems very well and _still_ they use Linux because they feel it is an important choice.
I feel a little bit ashamed that I have to explain this on a website called "hacker news" because that original "hacker spirit" is what is driving most Linux users.
Your position is pure consumerism - fat cat wants everything _now_ and is not willing to think about consequences. Modern surveillance *ism, destruction of our planetary resources and fascism are all build on that mindset.
Apart from this thread is about how the person thinks it doesn’t have any shortcomings compared to macOS.
> because that original "hacker spirit"
I love hacking too! I want to spend more time hacking. Hence I don’t want to waste my time doing uninteresting things like managing a desktop environment. That’s not interesting hacking it’s janitorial.
> Your position is pure consumerism - fat cat wants everything _now_
You’re just being personally abusive now - not sure why you feel the need to do that. Please cut it out.
My position isn’t for consumerism - it’s using the best tool for the job and appreciating quality engineering. Why would I pick a wonky tool instead? A good hacker picks good tools.
I feel all these minor annoyances are worth the premium for me and I'm about to . Don't get me wrong, MacOS isn't perfect but it's a better experience than Windows for me, and Linux is a pain to get setup on a laptop. The biggest one for me is the trackpad on Windows and Linux really suck.
Having the shortcuts being all over the place and near unusable in Linux is understandable as there's no coordination in this community, but not having a single god damn decent terminal (I tried them all) is pathetic. If macOS becomes as locked down as iOS, I will switch to Linux and write my own Terminal.
Apple has developed a smooth, consistent, unrivaled UI experience. Everything works the same across apps written in Apple's UI framework. All the keyboard shortcuts are the same, and they use the Command key avoiding the stupidity of overloading Ctrl which is for sending control codes only.
The Mac UI was developed using principles of human psychology which make it objectively easier, smoother, and more pleasant to use. The Linux UI hasn't evolved beyond the concept of "make it look cool". The Apple UI actually works with your brain to make you more productive -- a "bicycle for the mind" as Jobs put it. Granted, this is less true now than it was in the past, but it's still leagues ahead of Windows and especially Linux.
I found a disc with some of my olde skins recently, some of the real premo ones that to translate to todays lingo; were rarer than a rare pepe and spicier than a spicy meme.
Because we like it. Why does that make you so upset?
You could have spent the 10 minutes you spent typing that rant out in being productive with whatever you have instead of raging about my purchases with my money.
That's not really explaining things at all. That's just an emotional defensive response with nothing to back it up.
Ubuntu for me is getting very good, but inconsistencies like C-M-v in the terminal but C-v in the browser, font handling, etc etc (I could really go on forever) is irritating enough and I don't have time to be an idealist (I did when I was much younger).
The fundamental issue is "which Linux?". Apple sets a single standard and evolves actually fairly slowly over decades. There is a myriad of Linux desktop environments/distribution, but none have the man power and duration that Apple provides.
Buy hey, Linux desktop in 2021 is so much better than it was in 2001, so there's hope.
If i liked GNOME i'd choose Fedora. But since i prefer KDE i use openSUSE Tumbleweed.
Having said that, since when is an emotional reason to use something not a valid reason?
I mean, I don't like MacOS for a bunch of reasons that are probably unreasonable or emotional, but that's my right too.
I was genuinely curious. I've learned my lesson.
Never question Apple.
You’re the one coming in rambling about something just because “I don’t like it” and you expect people to donate their time to arguing with you?
Saying that with admitting Apple's decisions on 'improvements' are many times controversial the least. They, as many vendors of products nowadays, forget the old saying "If it ain't broke, don't fix it". What is worse, they tend to 'improve' or 'revolutionalize' (and nowadays 'disrupt', yeah, they distrupt all right!) things working perfectly and desirably!
I also admit that careful customizations is desirable.
Just like standardization, standardization is desirable too! Standardization has lots of merits.
I thought at one point I still needed to use Macs (for web development work) but there is nothing special it offers at least for what I mostly do.
I value my time sufficiently, thank you very much. Some people value their privacy more than a set of default settings, some don't see tweaking and tinkering as cost but as value by itself. Also you don't seem to get what Free Software is - it's not about getting free stuff.
Linux works perfectly if you select the right hardware for it (which is most hardware, just got to avoid a few obscure components).
If you're a developer or use any development tools at all, Linux is easily the best platform and will save you time. If you host anything on the internet, odds are it's a Linux host.
And even if you're just a regular user, if you don't need a specific piece of obscure software, Linux is super low maintenance as long as you didn't select that small amount of hardware that doesn't work.
Sorry for being a pedant.