Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Comments on FAST from using it in July 2022 #157

Open
JasonWeill opened this issue Jul 28, 2022 · 2 comments
Open

Comments on FAST from using it in July 2022 #157

JasonWeill opened this issue Jul 28, 2022 · 2 comments
Labels
enhancement New feature or request

Comments

@JasonWeill
Copy link
Contributor

I've been working with @ellisonbg on an extension idea. We had been talking about using Microsoft's FAST design system for it. This is something previously discussed in #143. I also noticed jupyter-ui-toolkit by @fcollonval, a Jupyter-optimized component library that uses FAST and that is labeled as a work in progress. As a proof of concept, I tried replacing a couple of HTML checkboxes with the fast-checkbox component, wrapped using the FAST React integration.

FAST shows a great deal of promise, but the two checkboxes did not work as expected. I found the official documentation for FAST to be fairly minimal, and third-party discussion of FAST is sparse and difficult to find on search engines. FAST touts its Adaptive Color System as automatically selecting colors, but in my testing, the label of checkboxes appeared as pure white, with no apparent way to change this. See screen shot below.

checkboxes

The documentation I saw suggested that FAST's Adaptive Color System should be relied upon to choose colors, and it indeed seems to do so on the FAST web site, built entirely with FAST. Jupyter has its own concept of "light mode" versus "dark mode," and I could not figure out how to coerce FAST to play nicely with it.

I talked with Frédéric about the adoption of FAST. He mentioned that Microsoft is working on a major revision to FAST, first discussed publicly in April 2022 and, as of July 28, still under development.

It seems like right now, FAST is not in a stable and production-ready state for use with upcoming JupyterLab code, including extensions. Its documentation and community are minimal, particularly for the purposes of migrating from ordinary HTML inputs to their FAST counterparts. My team is looking at other modern widget and design systems (and we are open to suggestions) but FAST is not looking like a compelling option at the moment.

@JasonWeill JasonWeill added the enhancement New feature or request label Jul 28, 2022
@fcollonval
Copy link
Member

fcollonval commented Jul 29, 2022

Preliminary comment: the goal of FAST has never been to provide a library of final components but core technologies for building web-components (similar to Lit) and a design system (for which I did not find equivalent the closest I see are CSS tools like SASS). This is the reason they stop providing an official on-shelve components toolkit to highlight the need for projects to develop their own toolkit.
So this is the reason, I started the jupyter-ui-toolkit to be the primary API for Jupyter developers and not the now deprecated FAST components.

More specific comments:

  • Regarding the documention: I fully agree, it could definitely be improved. The best source I found was their chat - they are very welcoming and responsive.
  • The checkboxes demo:
    The default FAST palette is black. Hence the text is white. You could either change the background to be dark or set the base luminance token to tell the design system you want the light mode: see jupyter toolkit
  • Adaptive Color System: see the jupyter toolkit
  • The major revision of FAST - it won't break much of the fundamental API and will bring new features like server side rendering, faster rendering.

It seems like right now, FAST is not in a stable and production-ready state for use

I can understand it does not fit production-ready state for some organizations. But what are the reasons for stating it is not stable? I never encounter unstable versions and they respect semver.

Did you try creating demos based on jupyter-ui-toolkit?

  • I created successfully:

Peek 2022-07-29 12-05

So from my experiences, the most complex element is to synchronize the FAST design system with the JupyterLab theme. In jupyter-ui-toolkit, I achieve that - but there are room for improvements. Then regarding the components themselves, they are correctly design to work with. They may lack features compare to other tool-kits. But again this is not the goal of FAST; it will be up to the maintainers of the Jupyter Toolkit to add them.

@JasonWeill
Copy link
Contributor Author

@fcollonval Thanks for the detailed response! I had reviewed the work you did on jupyter-ui-toolkit, and I would like to use it for upcoming projects. The WIP tag discouraged me from doing so, since I'm working on a project that has kind of a tight timeline (and that has a significant open source component). Thanks for sharing all these resources, particularly the FAST Discord.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants