jupyter / enhancement-proposals

Enhancement proposals for the Jupyter Ecosystem
https://jupyter.org/enhancement-proposals
BSD 3-Clause "New" or "Revised" License
115 stars 65 forks source link

Jupyter UI Components Proposal #89

Closed echarles closed 1 year ago

echarles commented 2 years ago

Pre-proposal issue: https://github.com/jupyter/enhancement-proposals/issues/88

Summary

This JEP proposes the adoption of well defined UI Components across Jupyter projects needed to build user interfaces. While being primarily focussed on Web Components and React.js, the creation of components based on other technologies like Vue.js and Svelte will be possible.

The deliverable will be the creation of a ui-components repository providing accessible and themed widgets fully compatible with React.js, without blocking usage by other popular frontend technologies.

The components will target basic visual functions like buttons, drop-down... and will not deliver higher-level components like a usable Cell, or a collection of cells showing a basic Notebook connected to a running Kernel. Such components are for example available in the Jupyter React and would demand further discussion around global state, reactivity, connection to the services hosted on a server...

On top of those components, extended functionalities on reactivity and collaboration are also discussed here. But they are out-of-scope for the deliverable. However, it makes sense to discuss those last aspects in this document in relation to Jupyter Widgets and the current JupyterLab real time collaboration features.

The fundamental components are built on the FAST framework that follow WCAG 2.1, are W3C spec-compliant and use the W3C interaction models when available.

We propose to move the current https://github.com/jupyterlab-contrib/jupyter-ui-toolkit repository to a Jupyter top-level repository. The home of that repository and the npm.js package naming still needs to be defined. That repository will be advertised as the default way to build user interfaces that conform to the Jupyter guidelines.

Proposed Team

Review @fcollonval @jtpio @isabela-pf @tonyfast @gabalafou @Zsailer @minrk

Sheperd @echarles

Anyone interested in this area welcome to join the review team.