{"action":"created","issue":{"url":"https://api.github.com/repos/mattdesl/canvas-sketch/issues/38","repository_url":"https://api.github.com/repos/mattdesl/canvas-sketch","labels_url":"https://api.github.com/repos/mattdesl/canvas-sketch/issues/38/labels{/name}","comments_url":"https://api.github.com/repos/mattdesl/canvas-sketch/issues/38/comments","events_url":"https://api.github.com/repos/mattdesl/canvas-sketch/issues/38/events","html_url":"https://github.com/mattdesl/canvas-sketch/issues/38","id":384133376,"node_id":"MDU6SXNzdWUzODQxMzMzNzY=","number":38,"title":"Floating Playback Controls","user":{"login":"mattdesl","id":1383811,"node_id":"MDQ6VXNlcjEzODM4MTE=","avatar_url":"https://avatars1.githubusercontent.com/u/1383811?v=4","gravatar_id":"","url":"https://api.github.com/users/mattdesl","html_url":"https://github.com/mattdesl","followers_url":"https://api.github.com/users/mattdesl/followers","following_url":"https://api.github.com/users/mattdesl/following{/other_user}","gists_url":"https://api.github.com/users/mattdesl/gists{/gist_id}","starred_url":"https://api.github.com/users/mattdesl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mattdesl/subscriptions","organizations_url":"https://api.github.com/users/mattdesl/orgs","repos_url":"https://api.github.com/users/mattdesl/repos","events_url":"https://api.github.com/users/mattdesl/events{/privacy}","received_events_url":"https://api.github.com/users/mattdesl/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-11-25T23:56:44Z","updated_at":"2018-11-27T14:16:59Z","closed_at":null,"author_association":"OWNER","body":"There has been some suggestions to build a mini floating HUD to control the sketch – see [#8](https://github.com/mattdesl/canvas-sketch/issues/8). This could be useful in the interim until a more complete GUI system is added (see [#20](https://github.com/mattdesl/canvas-sketch/issues/20)).\r\n\r\nIt would probably need to handle the following:\r\n\r\n- Buttons to export a single frame and start/stop recording a frame sequence\r\n- Button to play/pause loop\r\n- Button to stop loop (going back to frame 0)\r\n- Button to git commit & export (Ctrl + K)\r\n- Skip to first frame / last frame\r\n- Skip forward / backward by one frame\r\n\r\nThis seems like a good idea. One potential issue is that `canvas-sketch` is designed to work with multiple instances of itself (for example – if you are building a blog post with many canvas elements throughout), whereas HUD generally implies a singleton design. One solution might be to absolutely position the HUD just underneath the canvas element (or in the corner if the canvas fills the page) so each can be controlled independently.\r\n\r\nIf you'd like to help contribute, I think what would be most useful is posting different sketches and ideas in terms of the UX, layout and design of this sort of HUD/toolbar.\r\n\r\nIf it *is* floating below the canvas, it could be great to show a little ruler with ticks and dimensions (in user units, like inches) along the width and height of the canvas."},"comment":{"url":"https://api.github.com/repos/mattdesl/canvas-sketch/issues/comments/442073410","html_url":"https://github.com/mattdesl/canvas-sketch/issues/38#issuecomment-442073410","issue_url":"https://api.github.com/repos/mattdesl/canvas-sketch/issues/38","id":442073410,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0MjA3MzQxMA==","user":{"login":"joshwcomeau","id":6692932,"node_id":"MDQ6VXNlcjY2OTI5MzI=","avatar_url":"https://avatars0.githubusercontent.com/u/6692932?v=4","gravatar_id":"","url":"https://api.github.com/users/joshwcomeau","html_url":"https://github.com/joshwcomeau","followers_url":"https://api.github.com/users/joshwcomeau/followers","following_url":"https://api.github.com/users/joshwcomeau/following{/other_user}","gists_url":"https://api.github.com/users/joshwcomeau/gists{/gist_id}","starred_url":"https://api.github.com/users/joshwcomeau/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshwcomeau/subscriptions","organizations_url":"https://api.github.com/users/joshwcomeau/orgs","repos_url":"https://api.github.com/users/joshwcomeau/repos","events_url":"https://api.github.com/users/joshwcomeau/events{/privacy}","received_events_url":"https://api.github.com/users/joshwcomeau/received_events","type":"User","site_admin":false},"created_at":"2018-11-27T14:16:59Z","updated_at":"2018-11-27T14:16:59Z","author_association":"NONE","body":"Ok! I tried some stuff out, came up with a few possible ideas.\r\n\r\nFirst, I was inspired by software like Photoshop, which have an array of controls aligned along the left edge. I tried it in a \"floating buttons\" style, as well as with a backdrop to make it feel more like a toolbar.\r\n\r\n<img width=\"1071\" alt=\"screen shot 2018-11-27 at 9 11 36 am\" src=\"https://user-images.githubusercontent.com/6692932/49087267-8e016280-f224-11e8-8268-990f787447a2.png\">\r\n<img width=\"1084\" alt=\"screen shot 2018-11-27 at 9 11 43 am\" src=\"https://user-images.githubusercontent.com/6692932/49087274-8fcb2600-f224-11e8-9447-53a92053b493.png\">\r\n\r\n\r\nThe idea of a \"toolbar\" isn't quite right, though, since they aren't exactly tools that you can select, they're controls that can be activated. So I don't know that this is the right direction... although maybe it's still intuitive enough?\r\n\r\nNext I tried having the buttons positioned absolutely below the canvas, as @mattdesl suggested. I kinda like it!\r\n\r\n<img width=\"1075\" alt=\"screen shot 2018-11-27 at 9 11 51 am\" src=\"https://user-images.githubusercontent.com/6692932/49087331-ae312180-f224-11e8-802c-6c8906f3b09b.png\">\r\n\r\nI also played with having it be stuck to the bottom of the screen, with a backdrop:\r\n\r\n<img width=\"1075\" alt=\"screen shot 2018-11-27 at 9 11 59 am\" src=\"https://user-images.githubusercontent.com/6692932/49087355-bb4e1080-f224-11e8-8337-8f69bd0b64c3.png\">\r\n\r\nAnd, finally, I imagined it having a draggable handle, so the user could put it wherever they wanted:\r\n\r\n<img width=\"1073\" alt=\"screen shot 2018-11-27 at 9 12 07 am\" src=\"https://user-images.githubusercontent.com/6692932/49087383-d1f46780-f224-11e8-9118-4e12b796c364.png\">\r\n\r\nEach design shares the same button/icons. I tried to make them match the style of the existing canvas UI without being so similar that it seemed like mini-canvases. I also realized that they form logical groups, and used spacing to show which items are related.\r\n\r\nI imagine each button could have a tooltip on hover, to explain what it does, since the icons aren't entirely intuitive.\r\n\r\n> If it is floating below the canvas, it could be great to show a little ruler with ticks and dimensions (in user units, like inches) along the width and height of the canvas.\r\n\r\nI think having a ruler, or another way to measure distances in user-supplied units, is really interesting! But I kinda feel like that should be its own issue? I can think of a number of ways to tackle that, and I think it might expand the scope of this feature quite a bit if it's tackled at the same time. Just my humble opinion though =)\r\n\r\nAgain, while I'm working on my design skills, they're not quite there yet. I expect many folks in this community will have a better eye for UX and UI design =)"}}
{"actor":{"display_login":"joshwcomeau"}}