{"action":"opened","issue":{"url":"https://api.github.com/repos/Automattic/wp-calypso/issues/2152","labels_url":"https://api.github.com/repos/Automattic/wp-calypso/issues/2152/labels{/name}","comments_url":"https://api.github.com/repos/Automattic/wp-calypso/issues/2152/comments","events_url":"https://api.github.com/repos/Automattic/wp-calypso/issues/2152/events","html_url":"https://github.com/Automattic/wp-calypso/issues/2152","id":125193519,"number":2152,"title":"Editor: implement typewriter scrolling","user":{"login":"folletto","id":4389,"avatar_url":"https://avatars.githubusercontent.com/u/4389?v=3","gravatar_id":"","url":"https://api.github.com/users/folletto","html_url":"https://github.com/folletto","followers_url":"https://api.github.com/users/folletto/followers","following_url":"https://api.github.com/users/folletto/following{/other_user}","gists_url":"https://api.github.com/users/folletto/gists{/gist_id}","starred_url":"https://api.github.com/users/folletto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/folletto/subscriptions","organizations_url":"https://api.github.com/users/folletto/orgs","repos_url":"https://api.github.com/users/folletto/repos","events_url":"https://api.github.com/users/folletto/events{/privacy}","received_events_url":"https://api.github.com/users/folletto/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Automattic/wp-calypso/labels/Editor","name":"Editor","color":"006b75"},{"url":"https://api.github.com/repos/Automattic/wp-calypso/labels/[Type]%20Enhancement","name":"[Type] Enhancement","color":"c7def8"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-01-06T15:08:51Z","updated_at":"2016-01-06T15:08:51Z","closed_at":null,"body":"_Typewriter Scrolling_ even if it's not a common term can identify the ability of the editor to detect where the user is writing and move the scroll position to a more proper position in order to make the writing process better. \r\n\r\nTypewriter Scrolling avoids two things:\r\n\r\n1. The \"writing against the edge of the window\" effect, which makes the interface feel cramped.\r\n2. Putting the writing point low on the screen, which is less ideal for ergonomics - a [higher eye level is more comfortable](http://lifehacker.com/5755870/how-to-ergonomically-optimize-your-workspace).\r\n\r\nA representation of this kind of auto-scrolling is this:\r\n\r\n![writing-point](https://cloud.githubusercontent.com/assets/4389/12140493/54dce2e0-b460-11e5-9362-a2b22e730131.png)\r\n\r\nSee a rough demo [here](https://www.youtube.com/watch?v=OYxd71J3sjY).\r\n\r\nAvoiding the \"edge of the screen\" effect is something every editor does, in one form or another:\r\n\r\n* iA Writer, WriteRoom, Scrivener — all have a default typewriter scrolling feature\r\n* Word, Pages — are paginated, thus avoid the issue by working page-by-page (i.e. you get a full blank page). However, even them always make sure to have one [extra blank line at the edge](https://cloud.githubusercontent.com/assets/4389/12145426/faf51f92-b485-11e5-98cc-0e76d5c7640b.png).\r\n* Ulysses — It adds three extra lines when the edge of the screen is reached.\r\n\r\nWe can pick one of these techniques, thus not using a pure typewriter scroll if we feel it's too much. Even if we decide to do a proper typewriter scroll, I'd still advise to do it at 2/3 (not at 1/2) and triggering it only at the end of the page, thus not while editing in the middle of the text.\r\n\r\nA simpler way, initially, could be to just add bottom white padding, something around the equivalent to 1 to 3 lines of text. That alone could be already working well.\r\n\r\n_Discussion split from #2131, cc @aduth._"}}