← Blog

Week 1 - Button, Metal rendering, and rounded corners


After months of meticulous preparation, we're thrilled to share our first week of progress at 120.dev. Our journey has officially begun, and we're excited to bring you along as we build something special. During this week, our primary focus has been on creating versatile components that mirror the flexibility and aesthetic appeal of web interfaces, ensuring a cohesive user experience across platforms.

Button

Our vision has always been to create native applications that feel as intuitive and flexible as the web. This week, we focused on establishing our component foundation, beginning with the most essential UI element: the Button.

Taking inspiration from the design principles of radix-ui.com, we've developed a button component that serves as the cornerstone of our design system. What makes this particularly exciting is how we're implementing these familiar web-like components in truly native environments.

Rounded corners

To make our button more appealing, we implemented customized rounded corners with precise control over the radius. This feature enhances the visual aesthetics while maintaining consistency across different platforms, creating a more polished and modern interface element.

While rounded corners feel so natural and expected in today's interfaces, achieving this level of finesse was once a substantial technical challenge. There's a fascinating story about Steve Jobs' obsession with rounded rectangles in the original Macintosh interface. His insistence on perfect curves, despite the technical limitations of the time, demonstrates how important these seemingly small details are to creating truly delightful user experiences. You can read more about this on folklore.org.

Metal rendering

We all know that Apple developed Metal to enhance 3D rendering in games, but today it has become essential for achieving high-performance UI rendering. This week, we've implemented gradient effects and box shadows to create realistic 3D button rendering.

At first glance, you might mistake these for web buttons, but they're actually rendered natively using Metal on macOS. While 3D interfaces might not be the current trend, it's enjoyable to see a touch of nostalgia brought back with modern technology.

Questions and answers around the web

Question: So you added to a blank canvas?

Answer: Ah, we build our native apps in a similar way to how everyone would build a website. We are currently creating our design tokens and component library, similar to Storybook for the web. This approach makes it easier to visualize and maintain consistency across of the apps.

Question: Interesting, so what are you designing the components for and what programming language are you using?

Answer: Yeah, exciting times ahead! We're building AI-powered native apps that run across platforms. Since there is nothing like this has been done before, we’re designing our own components from scratch. We are using Rust programming language.


Get updates on new features, performance improvements directly in your inbox.

Never miss a release note or roadmap announcement.