Frequently Asked Questions
When will Arwes be ready for production?
Arwes is currently in alpha release. It means there is ongoing development with breaking changes. APIs and guidelines can change as they get completed.
The project will be ready for production when it has a stable and tested API.
See roadmap for more details.
What is the development status?
The project is delivered as NPM packages based on specific UI/UX guidelines.
The packages are categorized by functional packages, functionalities which power the UI component system, and implementation packages, design system or visual design component implementations. The functional packages and the guidelines should be completed for the implementation packages to be developed.
In the develop page, each package should have a badge indicating its current status.
- - The functionalities are defined but not yet specified.
- - The functionalities are being specified.
- - In active development.
- - Major APIs are completed and minor changes are being made.
- - Functionalities are under real functional testing.
- - Functionalities are ready for production use.
You can see the project planning tasks for more specific details.
What happened to the previous version of the website arwes.dev?
The previous version was moved to version1-breakpoint1.arwes.dev
with the branch version1-breakpoint1
where you can find the components and the website source code. This package was released
in February, 2018, and it is now deprecated.
The latest version at branch main
is the current
active development with major breaking changes.
Can I use it in React Native and other environments?
Arwes version 1.x is intended to support only web environments with latest technologies.
The project may offer support for other environments in future versions.
You can use tools to embed the web apps into other environments such as mobile with Apache Cordova or Electron in desktop, or simply make it a PWA.
What about Arwes for AR/VR?
Since we can build AR/VR apps for the web now, Arwes can be used for such projects. But for Arwes version 1.0, there is no plan to build/test specific tools for that.
Once the project is stable, we can start defining how Arwes can be implemented for AR/VR.
What browsers are supported?
Latest version of Chrome, Firefox, and Safari, for Android, iOS and desktop.
Testing is still in progress.
Does Arwes only work with React?
Since React is a library with component logic written in JavaScript, we could "easily" use React components with other frameworks or vanilla JavaScript with additional setup.
But Arwes components are highly interconnected with each other so many important features will not work.
For version 1.x, the project is recommended to be used only with React.
What about SSR or the JAMstack?
Arwes is built in tools that can be easily setup for server-side rendering (SSR) or used as static generated markup/JavaScript sites as the JAMstack, so definitely you can use Arwes with Gatsby or Next.
But Arwes requires a few more setup steps to make it work for such requirements due to its design, sound, and animation systems.
There is a plan to document complete examples.
Can I build SEO-friendly sites with Arwes?
Arwes is a framework with rich sound and animations effects so there are a few extra considerations to take for SEO sites/apps. But definitely, the sites built with Arwes can be SEO-friendly.
There is a plan to document these.
Is there a plan to build more specific tools?
There are ideas to add grid layouts, custom form controls, graph, and map tools with Arwes customization but not for version 1.0.
Why does Arwes use CSSinJS as a styling solution?
See A Unified Styling Language.
What about using declarative HTML animation tools?
The Arwes animation system does not enforce any HTML animation tools. But the current recommended tools are imperative such as animejs and GreenSock. Declarative tools like react-spring or Framer Motion are not yet intuitive enough to setup and work with Arwes.
Since the animation API is still in early testing, more production experience will be needed to properly create stable and versatile abstractions for creating and composing component animations with imperative and declarative methodologies.