This is great feedback, thank you!
Though the cell border appears thin, the entire left margin of the page is clickable; in effect these are “infinitely large” click targets, similar to the menu bar in macOS.
That said, you only benefit from these larger targets once the window is wider than about 1100px. In Old Observable, notebook content was limited to 928px wide when the window is between 1024px and 1440px, at which point is could grow up to 1152px. In New Observable, the notebook is always “full bleed” to allow for theming (such as a background color), while the content is allowed to grow up to 992px wide. So in the range 1024px–1120px, New Observable reserves less space for the left margin… but we could fix that by adding a breakpoint and taking away space from the notebook.
What window width are you typically using? Would you prefer a larger margin in all cases, or to just make the notebook narrower in the 1024px–1120px range? Or would you want the margin to “steal” clicks from the notebook content? (I think that would be frustrating but is arguably necessary on very narrow screens such as phones.)
You can open the Export menu by focusing or selecting a cell and then clicking the download icon in the notebook toolbar. This new approach allows you to download from multiple cells at once, and consolidates the controls in a single, stable place rather than throughout the notebook, which is intended to reduce the flickering and movement. That said, you have to be in edit/tinker mode; more on this below.
I’d like to improve this, likely with a mode menu in the notebook toolbar, and perhaps showing something when a cell is empty (as we’ve done before)… That said, keyboard shortcuts are really the best way to set the cell mode as they are much faster than the mouse (though less discoverable). Command-Enter inserts TypeScript, while Option-Enter splits a cell, preserving its mode. The keyboard shortcuts also work in cell selection mode (Esc, J, K, Enter). And you can insert above using the Shift modifier. And when a cell is empty, Up and Down cycle through cell modes. In Observable Desktop, Command-1, Command-2, etc. also change the mode of the current cell, and these work even when the cell is not empty; unfortunately these shortcuts aren’t available in browsers because they are used to focus tabs; I’d like to introduce some alternatives. And to improve the discoverability of these controls more generally.
Can you explain more why you prefer JavaScript to TypeScript? Are you using Observable JavaScript or vanilla JavaScript? TypeScript is a superset of vanilla JavaScript so there should be no reason to use vanilla JavaScript (unless you want to demonstrate a syntax error). We might also have a user setting to change the default cell mode, though in general we prefer to have the “right” default rather than exposing many settings.
Not sure I understand… is the mode menu not working for you? A video would be great so I can see what’s happening.
This has always been true of notebooks by nature and unfortunately there is not much that we can do. We use scroll anchoring to try to mitigate these changes, but it doesn’t always work. If you have a video or reproduction, or see that this is worse in New Observable, I’ll investigate further to see if we can do anything.
New Observable introduces a read-only mode for non-authors (and you can enter edit/tinker mode by clicking the pencil button in the bottom-right corner); this allowed us to greatly reduce the distractions of the editor interface while reading notebooks. Correspondingly, we’re increasing the visibility of the editor controls in edit mode (which is why the notebook toolbar is always visible in this mode). Perhaps we haven’t gone far enough! Let me play a bit and think more… As I wrote previously, we consolidated the controls to favor bulk operations and make the interface more stable. But I expect we will bring back some controls adjacent to the cells, such as for dragging-and-dropping cells to reorder content, or to (more obviously than Command-clicking the left margin) select cells with the mouse.
Really, thanks for all the feedback. It helps!