Why was Navita created?
Two of the more popular solutions are styled-components and emotion. Both are great, but they have some drawbacks—the most significant being that all styling computations and applications occur at runtime.
We tried to solve what others didn't. Vanilla-Extract is a fantastic library, and we've taken massive inspiration from it. Some parts of the public API are more or less copies of it. We also have used some parts of their documentation to explain concepts.
But Navita is written from the ground up.
There are two main differences between Navita and Vanilla-Extract:
- Navita generates Atomic CSS classes by default.
- Navita doesn't require a special extension to work. You can co-locate your styles with your components.
We've also tried to make Navita as fast as possible. Smart caching, and no internal bundler has allowed us to have minimal development performance impact.
We have a lot of ideas for the future of Navita. If you feel like there's something missing—please let us know, and we'll try to make it happen!
We're also looking for contributors, so if you want to help us make Navita better, please reach out!
Some ideas on the roadmap:
- Expanding shorthand properties
- The ability to configure the engine to not assume pixels for numeric values.