This was a very useful exploration into the Grid API and front-facing demo pages for this library.
A few take aways:
Webpack can bundle fonts into the build -- which seems to really give a demo page a unique feel
CSS API should be mandatory in every component -- and wrapping components need to expose the API
In the long term, the current focus management employed in the Grid seems to inhibit new Grid Cell types but the underlying mechanisms seems to work well for a variety of implementations
From these, the follow up tasks (in priority):
Invert the focus management: currently, each individual cell encodes the focus logic and transfers focus to other nodes outside its React tree. This seems to weigh down the implementation of each cell and I think we can do better -- even though we can DRY up the code, it still does not feel like the appropriate abstraction(s). My suggestion will be to move the responsibility to the Grid component. Each cell will only be responsible for managing the flow events from its React tree and the Grid will react accordingly.
The landing demo page should only show case simple functionality. Each individual component should link to dedicated pages that explore its API and performance -- perhaps to even on-going explorations.
The core CSS should only focus on layout responsibilities to avoid unnecessary CSS overrides through composition. I am not really sure where to show case the CSS API of each component but it must be done somewhere.
I'm going to merge this in.
This was a very useful exploration into the Grid API and front-facing demo pages for this library.
A few take aways:
From these, the follow up tasks (in priority):
Invert the focus management: currently, each individual cell encodes the focus logic and transfers focus to other nodes outside its React tree. This seems to weigh down the implementation of each cell and I think we can do better -- even though we can DRY up the code, it still does not feel like the appropriate abstraction(s). My suggestion will be to move the responsibility to the Grid component. Each cell will only be responsible for managing the flow events from its React tree and the Grid will react accordingly.
The landing demo page should only show case simple functionality. Each individual component should link to dedicated pages that explore its API and performance -- perhaps to even on-going explorations.
The core CSS should only focus on layout responsibilities to avoid unnecessary CSS overrides through composition. I am not really sure where to show case the CSS API of each component but it must be done somewhere.