25 karma · joined March 23, 2015
2) Yeah the scene graph would tell the renderer to only render the bare minimum with a clipping rectangle. Re-rendering the whole canvas is only done when some sort of "global" change like scrolling occurs.
3) I agree with you completely on this one. There are ways to do it for sure but they require some tinkering. Like I said in another reply, one of the main goals is to keep everything consistent. And actually, with the newer browsers the text rendering has actually been really good canvas.
4) For the set of questions with hotkeys, I do not intend to remove any functionality from end user. I never really thought about these things so thanks a lot, now I can keep them in mind. I cannot give you a specific answer as of right now, but I do know there are ways of capturing text selection and keeping that selection independent from how the user tries to highlight text.
I don't find any of this negative, on the contrary I am thankful for the feedback.
To keep the line wrapping consistent with how the designer sees it in the application, wrapping is handled by the app itself, it doesn't rely on the text layout algorithm HTML uses. Consistency is the priority.
Lets use two applications that are out on the market as examples.
Webflow: Produces good HTML and CSS but you still as the designer are expected to deal with ID's and classes directly. You also need to at least have a rudimentary understanding of css styling and the box model, designers are allergic to that.
Webydo: All design, but try to use the html inspector and check the code it produces. It is bloated. Check out one of the websites in their showcase, http://muccatypo.com/
One of the advantages using the canvas this way is that it allows the page to be rendered only through the use of numerical data saving bandwidth when delivering a webpage.
- "partially sighted users with screen-readers": For example, the final interface will expose a set of controls to set attributes that help screen readers do their jobs. The HTML structure is pretty much determined by the order of elements inside the content panel.
- "keyboard controls. E.g. can I find / highlight / copy text?": The canvas piggybacks from the generated HTML. So for example if the user presses the tab key to alter the input focus in the page, with a listener the changes can be reflected on the canvas depending on which element is focused. DOM elements are linked to the entities being rendered in the canvas. Text picking with the mouse would be handled by queying the scene graph and mirroring how text gets highlighted in the browser. Copy and pasting would be handled by the Clipboard API.
- "scrolling, especially on resource constrained browsers. Do you have a massive framebuffer? what about long pages? animation and region invalidation?": While the amount of elements in the page will correlate directly with the amount of memory that page is consuming. We have to keep in mind that most (if not all) of the things that are rendered are being treated as quads. This isnt a 3D mesh. Infinite scrolling is a feature I do have in mind implementing, but I don't have an specific answer for that yet unfortunately. Region invalidation (I'll assume you mean with space partioning) would be handle with the scene graph. Could you tell me more specifically what you want to know about animation?
- "script blockers": If the user is blocking scripts in the browser then all he will get to see is plain HTML unfortunately. AFAIK this is something that cannnot be stopped.
Thanks for the feedback! If you have more questions keep asking them.
Now for your questions...
Web designers are the target market. Since last week I have been mailing web design blogs, bloggers, etc. Standard promo stuff.
moebius.io uses conventional HTML+CSS code written by me, I still have not completely finished the functionality for the video and form elements. You can be sure as soon as I have those fledged out (mid-summer, couple of months prior to releasing beta) the home page will be published with the app.
If you have any more questions I'll be happy to answer them!
Indiegogo (Preview) Campaign Link https://www.indiegogo.com/project/preview/240b4149
Demo Video Link https://vimeo.com/moebiusio/demo