staffengineer / velo Goto Github PK
View Code? Open in Web Editor NEWApp for brainstorming & sharing ideas π¦ Learning Project
License: Apache License 2.0
App for brainstorming & sharing ideas π¦ Learning Project
License: Apache License 2.0
Make sure that itβs embedded in release binary
Let's make pretty UI with rounded corners for rectangles, buttons, etc.
(possibly bevyengine/bevy#3991 have to be released first)
Support markdown syntax in rectangle. Render markdown once a user stops editing rectangle.
Features:
We use bevy_embedded_assets
to embed assets, let's not do it for wasm, so assets is requested by separate request (this is default behaviour of bevy). Bevy loading screen have to be implemented as part of this issue.
@nx2k3 idea π‘ to use running bicycle gif during loading.
Instead of silently ignore errors or crash the app (during import/export from file/url) let's have a status bar that will report the error (status) to a user.
Useful links:
Some icons are already material-icons, see #68 with initial integration.
Let's change the logic to workaround the issue bevyengine/bevy#5732
This will allow to run application on wasm without errors.
Keys: Ctrl+C / Ctrl+V
Source: https://github.com/StaffEngineer/velo/blob/main/crates/bevy_cosmic_edit/src/lib.rs
Note: would be cool to support both native and wasm targets
We can see how it's done in https://github.com/alepez/lavagna and implement similar idea with drawing pencil on canvas.
make it more modular
Currently app uses database to store app data (documents) on native platform. Prior to storing data in database it was stored in json files in the first version of the app. PR that introduced database usage: #17 and removed saving/loading data from json file. It's useful feature to have ability to just export/import document to json file to share it with a buddy. Let's have an option to export/import document from database to json file.
Similarly how background color of a note can be changed there should be a way to change a text color.
Currently https://github.com/StaffEngineer/rusticify/blob/main/assets/bg.png is used as canvas background... let's have a way to customise it... maybe have a set of canvas image patterns to choose from and to have one-colour backgrounds (see https://excalidraw.com/ for inspiration)
Note: once there is a way to change canvas background it would be good to add it to saving/loading logic, so the user can have chosen background on app starup.
E.g. tooltip on hover, better shortcuts
Currently it's passed to every text element separately, let's have a global one
Currently it's localised to every button system, let's have a global one
Native platform supports fuzzy search feature that is used for filtering documents that contain nodes with particular text. Let's developer fuzzy search feature further and highlight found nodes if they are on viewport.
Just noting the ideas to explore... feel free to contribute your ideas here:
When using the rename functionality, I've noticed that it stops working properly if I keep the delete key pressed for a prolonged period of time. This behavior doesn't occur if the key is pressed singularly.
The renaming process should work properly and be able to handle the deletion of characters even if the delete key is pressed continually.
The renaming process freezes and stops working.
Let's add text fuzzy search support.
As the first iteration for this feature we can just filter documents and show document only if it has node with searched text.
We are almost there for ligatures/emoji support in velo. Let's move bevy_markdown
to use bevy_cosmic_edit
and use fonts that support ligature/emoji.
Allow supporting several app languages.
Wasm target: https://staffengineer.github.io/velo/ (with limited feature set)
Let's automate process to deploy wasm target automatically on merge to main (see readme for build commands).
Currently, it's possible to select only one node, let's have ability to select few nodes simultaneously, e.g to be able to move them together.
E.g.
A lot of ergonomics may be improved when bevy moves to cosmic-text, potentially in 0.11.
Separate issue for one of the ideas from #42
Let's use https://github.com/johanhelsing/matchbox/tree/main/bevy_matchbox and have collaborative editing
Currently it's possible to load app state via document
url param on wasm target. It's nice way to share a document but it requires some manual steps to create public gist with app state. Let's implement GitHub integration, so user can sign in/give velo permissions to create public gist with document state.
Say, by clicking "Share Document" button the following steps are performed:
Draw heart with particles, something like this but another shape: bevy_hanabi/gradient.gif at main Β· djeedai/bevy_hanabi
WebGL: INVALID_OPERATION is fixed for bevy's main branch. By updating project to use main branch we can remove special treatment for arrows introduced here: #29
Note: we may need to update some plugins to use bevy's main branch if they don't updated for that.
Currently, velo doesn't allow to remove document if there is only one document in memory:
if app_state.docs.len() < 2 {
return;
}
On app start velo loads only one document from database to memory, so user can't remove document on app start.
One of the options to fix this: if there is only one document in memory query database and load one more document to allow deleting.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.