At present, our documentation related to design systems is fairly adhoc. Over the last few weeks we've seen more and more community members coming to FAST who have had trouble figuring out how to accomplish design-system-related tasks. We should lift the "Design" docs out from under "Components" into a top level section in our ToC. Tentative name: "Working with Design Systems". We should plan out a more cohesive and comprehensive content strategy for this section which will walk our customers through the following three primary scenarios:
I totally agree that better doc around design system would be highly beneficial. In my experience trying to use FAST and tweak it, that's definitely where I struggled the most. Thanks for looking into this.
I also thing that the 3 scenarios suggested above are very helpful 馃憤
Below are a few feedbacks, linked to my short experience with FAST so far:
In the effort for improving design system doc I would like to suggest to include recipes and css behaviors. Especially for scenario 2 (leveraging a design system). I still struggle to grasp the concept of CSS behaviors. Some questions (for me) are:
And as a personal feedback, it took me quite a bit of time to understand that components are closely coupled with its design system. At first, reading the doc I thought that it could be just easy to create components (for exemple my-icon) and use them with one design system or with another design system (FAST, Fluent, Material, ...). After experimenting a little I came to the understanding that each design system must provide its own set of supported components. Of course they can leverage foundation (for those related to foundation components), but for custom components developed by consumers not so. Maybe this could be a little more clear from the beginning.
And more importantly: thanks for building FAST. Looks very promising 馃
Thanks for the feedback @ben-girardet! @litteredwitherrors and I took a stab at an outline for Design System documentation that I believe will address the questions you have / had as well as those highlighted by @EisenbergEffect. As always, feedback is welcomed and this can be expanded and shuffled as necessary to be more intuitive.
use-defaults explainedDesignSystemProvider that extends FASTDesignSystemProviderAs @nicholasrice and I were working on this, it became apparent to me that referring to the properties and values available in the DesignSystemProvider as the _design system_ can be a bit confusing and somewhere misleading. Especially when we also use the term to describe FAST Frame Components.
While there is no standard as to what makes up a "Design System", the industry does reflect that a design system encompasses more than just properties and values. Properties and values on their own are typically referred to as "design tokens" which are an expression of a visual design language.
I propose that we open the discussion of the use of the term "Design System" in the FAST ecosystem as to create clear definitions that mirrors what is found in the industry.
@litteredwitherrors Great feedback! We can start by adding entries for "Design System" and "Design Token" to our glossary document. We can also do a pass across our docs to use these terms consistently and deep link to the new glossary entries.
@EisenbergEffect Sounds good. I'll make an issue.
Most helpful comment
Thanks for the feedback @ben-girardet! @litteredwitherrors and I took a stab at an outline for Design System documentation that I believe will address the questions you have / had as well as those highlighted by @EisenbergEffect. As always, feedback is welcomed and this can be expanded and shuffled as necessary to be more intuitive.
Outline
Overview
use-defaultsexplainedFAST Frame Design System
DesignSystemProviderthat extends FASTDesignSystemProviderUsing the FAST Design System in a component stylesheet
Creating a new Design System