After a long time working on this project, I'm finally ready to share the first public version of Orbit. Although there's still much to be done, I believe this project is ready to move beyond internal testing.
Orbit is a CSS framework that lets you create simple or complex radial designs and UIs, from pie charts to radial menus, and even fully radial pages.
Orbit is designed to be simple, extensible and compatible with other tools and frameworks, using space-related concepts.
Glad you like it! Several years ago, I wrote my first project, Zircle UI, which mixed zoomable navigation with circular UI. It was not flexible at all, but I enjoyed it and learned a lot from this experience. Then, I decided to split Zircle into two independent parts: Orbit for radial UI (I mean, not constrained to circular shapes), and Zumly, a JS zoomable WIP engine (https://github.com/zumerlab/zumly). While you can use both projects together, they can also be used independently
I’ve been super interested in zoomable interfaces for text - there was an interesting demo in a rust conference talk: https://youtu.be/rC4FCS-oMpg?si=h6xv3fgOXkBTXg3R (skip to 14:45 to see it in action)
I must confess that I don't have any experience in graphic design. I actually used existing examples that I thought were well-designed and tried to recreate them using Orbit to see if it was possible.
I wonder, could you make custom element alternatives to the .bigbang and .gravity-spot classes too? Then they could attach their own resize observers without requiring the developer to do so manually.
I was hesitant to develop custom elements at first because I wanted to use just CSS classes and custom variables. However, in certain cases, the developer experience is a mess without using custom elements. About your question, yes, I would make custom element alternatives.
This is great. I like the intuitive API. Perfect timing, too -- I needed to make a pie menu today for a virtual whiteboard. Currently thinking about how to incorporate hover effects and selection.
Thank you to detect these typos!! If you want to collaborate please click on Edit page link located at bottom of each page and create a PR. I'll merge ASAP.
I had to add a bit of JS/CSS to get the "satellites" hoverable to my liking. The library gives you circle regions and capsules, and you could wrap each in a link or button tag, but that still leaves dead space between the pie slices. I ended up using some trig and pointer handlers. Not sure if I missed part of the docs, or if that's a consideration for future Orbit versions. Still a great library though.
I believe that "satellites" have pointer-events set to none by default. I would think in some solution, maybe adding a CSS utility to change that in case is needed
Just a heads-up though, the scroll animations activate pretty late. When I scrolled to "components", the first component displayed when it was kinda close too the off screen, which is not very comfortable. The animation should trigger a bit after entering the screen
I'm on an older phone though and your landing Page murders it. Animations stutter and scrolling is pretty janky. Not sure I'd that's an issue with the components or something else?
After a long time working on this project, I'm finally ready to share the first public version of Orbit. Although there's still much to be done, I believe this project is ready to move beyond internal testing.
Orbit is a CSS framework that lets you create simple or complex radial designs and UIs, from pie charts to radial menus, and even fully radial pages.
Orbit is designed to be simple, extensible and compatible with other tools and frameworks, using space-related concepts.
To see Orbit in action, check out the landing page, which is built with Orbit. You can also find additional examples here https://zumerlab.github.io/orbit-docs/examples/.
I hope you like it and I'd love to hear your thoughts and feedback.
Thanks! Martin