react-dsfr
tss-react
Our great sponsors
react-dsfr | tss-react | |
---|---|---|
9 | 9 | |
396 | 558 | |
3.8% | - | |
9.5 | 8.1 | |
6 days ago | 3 days ago | |
TypeScript | TypeScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
react-dsfr
- French State Design System React Integration
-
The french government's design system
My advice if you don't have a multi-million budget and you only need to support React is to start from MUI components. Components like Date pickers, or Autocomplete are complex and time consuming to code from scratch. First thing you want to do is to build a custom theme for MUI (example DSFR, Example OnyxiaUI) this will make the MUI components roughly match your design system out of the box. Then you can create your own components that are wrapper around MUI components and customize them until they match your design (Example). Trust me, we always underestimate the complexity of building base component from scratch. There are tons of things to consider, I don't even mention the accessibility concerns... Customizing MUI components is the quick win route.
-
Ensure you never forget a case in a switch
If you want a real-world use case you can consider this function, it has a very opaque and complex return type that is inferred from the input it receives. Having type-level unit test for this function is very useful both for ensuring the return type is inferred correctly and as an implicit documentation.
-
tsafe enables to unit test your types.
Do you think it's totological to test the return type of this function?
tss-react
-
The french government's design system
What I meant is that the lib provides the tooling to do CSS-in-JS if you so choose. But it's not at all mandatory. There is a fully type safe class system you can rely on. Internally no CSS-in-JS is used. I personally do love CSS-in-JS (I'm the author of TSS) but I understand the case against it.
-
A Type-safe i18n library
I'm not big on splitting things in neat little modules. Before we had logic.js structure.htm, styles.css then React suggested that logic and structure should be in the same file, it was the right move. Styles, in my oppignion, should be done in JS as well as well. I think that queries shouldn't be mangled with the UI stuffs.
-
How to Troubleshoot Types?
Real-life examples: 1, 2, 3
-
Gatsby JS β How to solve FOUC when using tss-react and Material UI v5
Material UI v5 brought some amazing updates, but switching from JSS to Emotion had an arguably nasty side-effect: it was no longer as straightforward to group your component styles in classes. Fortunately, a fantastic library emerged that allowed developers to not only reduce the extreme pain from migrating all their classes from v4's makeStyles to emotion, but to also to continue to writing classes in practically the same syntax, with wonderful TS type-safety. This library was tss-react, and it was one of my favorite open source discoveries of 2021.
-
What is everyone's go-to style framework/library right now?
You can still use makeStyles with tss-react, as documented here: https://mui.com/guides/migration-v4/#2-use-tss-react. I've used it and it seemed to work quite well.
- β¨ makeStyles is dead, long live makeStyles! β¨
- tss-react will be promoted as the new makeStyles API in material-ui v5
-
tss-react: Like JSS but with better typing. (integrates with MaterialUI)
tss-react
What are some alternatives?
denoify - π¦For NPM module authors that would like to support Deno but do not want to write and maintain a port.
Material UI - Ready-to-use foundational React components, free forever. It includes Material UI, which implements Google's Material Design.
rescript-compiler - The compiler for ReScript.
JSS - JSS is an authoring tool for CSS which uses JavaScript as a host language.
onyxia-ui - π Onyxia UI toolkit
type-fest - A collection of essential TypeScript types
tsafe - π© The missing TypeScript utils
ts-ast-viewer - TypeScript AST viewer.
compodio - Putting the podcast in community radio
gatsby-plugin-material-ui - Gatsby plugin for Material-UI with built-in server-side rendering support
ts-pattern - π¨ The exhaustive Pattern Matching library for TypeScript, with smart type inference.
styled - Minimal CSS-in-JS styled components solution for React.