Offer per-slide layout and deck-level defaults
bollwyvl opened this issue · comments
Elevator Pitch
A notebook-based deck should be able to be customized and then overridden on a per-cell basis.
Motivation
- CSS grid offers a lot of options for in-plane layout
- even wilder things are possible without actually changing the ordering/nesting of the DOM elements
- CSS variables can be overridden in
style
, including jupyterlab defaults like fine-grained font size choices, and would have very high specificity
Design Ideas
- Allow a notebook to have
juptyerlab-deck.slideStyle
. - Allow
slide
andsubslide
cells to setjupyterlab-deck.slideStyle
, overriding the style.- These would be applied to the
.jp-Notebook
's style, rather than the cell's. - These would be "sticky" until the next (sub)slide changes them, such as signaling a reversion to the default flexbox model.
- These would be applied to the
- Offer a number of pre-built patterns with wee icons, which can then be updated by e.g. settings, other (theme) extensions, or copy/pasted from metadata.
- Specifically for grid, individual cells could override the template behavior with additional metadata in
jupyterlab-deck.style
, though this might create illogical navigation patterns and exciting failure modes when adding too many cells for a layout, but caveat emptor once you start messing withstyle
directly.
- Specifically for grid, individual cells could override the template behavior with additional metadata in
- Presumably #15's
position: fixed
elements would not affect custom layouts.