-
-
Notifications
You must be signed in to change notification settings - Fork 16
Vision
OXVG aims to be the primary toolchain for SVGs. That is, for OXVG provide all the tools necessary for developers to build SVGs or design tools.
We want to graduate from the tagline "Rust alternative to SVGO and InkScape", which introduces the tool as an analogue to these titans, to a unique and standalone offering "The SVG toolchain".
SVG tooling as it is today is either available as proprietary software for designers or as disparate, often ageing, packages for developers. We'd like to provide a unified, high-quality toolchain for developers (where-ever they be) to build competitive software for designers.
The features OXVG provides should extends the common use-cases of SVG tooling, all under one roof.
- Optimisation: To be used to deliver smaller and more performance SVG files
- Linting: To be used to gain confidence in the SVG files being used
- Actions: To be used to manipulate SVG files
There are some features that OXVG will not provide, by merit of them being too complicated or irreplaceable.
- Rendering. Consider using the industry standard Skia instead.
- Non-SVG. SVG is an open standard, while other formats such as
.aiare not.
- Express the spec: Should abstract, but not hide, the underlying SVG spec.
-
Competitive: Should work with SVGs effectively at lower cost.
- Fast, Correct, Effective, and Cheap: See the benchmarks
- Everywhere: Should work where you need it, regardless of operating-system, interface, programming-language, or web/native
- MIT Licensed: Can be freely used, distributed, and modified as outlined by the MIT license
- Community: Users of OXVG should feel encouraged to get in touch with and even work with maintainers
- Monorepo: Whether you're looking for the source of a binary, library, etc, it should be discoverable under one codebase
- Maintainable: Code and documentation should be structured as best as possible, without getting in the way of delivery
As well as providing the primary features expressed in the vision, we also hope to dogfood the project to understand which areas the project needs to focus. I'd like to deliver a low-level modal design editor created using OXVG.
-
Modal: In the same vein as modal text-editors, to allow editing SVG files without being tied to a mouse
- Editing, Visual, Command, Macro, etc modes
- Discoverable: Should contextually display available elements and attributes based on the SVG spec.
-
Analog: Should be an analog rather than an abstraction over OXVG
- History is represented as a set of
actionsupon the original SVG - UI interactions commit an
actionto history - Commands and macros can be created as
actions - Node tree should be displayed that matches the SVG representation
- Editor info such as history and state should be saveable directly into the SVG
- History is represented as a set of
- Visual: A preview of the SVG should be displayed
Alongside the oxvg binary may be a modal editor for SVGs. This will display a UI simplified version of the PWA. This editor will be aimed more towards developers and will be MIT licensed.
I'd like to produce a source-available SVG editor that can be visited via a web browser and installable as a PWA. This editor will be aimed more towards designers and will be licensed but source available.
- Local-first: Should be static and backend-less
- Unenforced License: The PWA will likely have some sort of license to help support the overall project, but can easily be bypassed for those that cannot afford to.
- Hackable: Should deliver the PWA unminified, so user's who've installed it can read and modify it as needed.