Webstrates / Codestrates

Literate Computing with Webstrates
http://codestrates.org
25 stars 0 forks source link

Transient fullscreen and collapse on paragraphs #5

Open henrikkorsgaard opened 7 years ago

henrikkorsgaard commented 7 years ago

I am not sure I get the rationale behind making the collapse and fullscreen actions on paragraphs persistent across clients. When "others" are collapsing/opening or fullscreening paragraphs it can have an unintended side-effect on the user experience/view/activity of others. To me, the non-transient/persistentfullscreen/collapse is the edge case, e.g. when an application view (fullscreen content paragraph) should be forced upon multiple users. That aside, it would be nice with a transient version of collapse/open and fullscreen.

I see a transient version of toggle fullscreen and collapse as a way of supporting crawling into the engine and adding a sixth gear while others are driving. Something very powerful in my opinion.

Use-case 1: Collaborative development (writing) I suspect collaboration in Codestrates would mean that users frequently edit different parts of the Codestrate and thus might want to fullscreen/open a specific paragraph without having a considerable affect on the user experience of collaborators. If a shared view is needed, one would assume collaborators would easily coordinate by telling to open/close specific paragraphs.

Use-case 2: Inspection In the instances where you have a "final" running application expressed in Codestrates, that is shared by multiple collaborators, one might want to inspect one of the elements, e.g. leave fullscreen and open a code paragraph, without breaking the user experience of others.

Use-case 3: Expanding/fixing features Just as with inspection, leaving full screen to add further content, functions or simply fix something that is not working as intended, might be a common scenario. I can easily see it as useful when prototyping stuff or running studies.

TL;DR: Make collapse and fullscreen transient by default or offer a transient version of each to support inspection, on-the-fly work and more fluent/discrete collaboration.

(I will gladly help implement some of this, if given a crash course to the codebase and ideas. With my current understanding of the code I might make a mess, rather than add something valuable)