Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cca-io/rescript-mui
ReScript bindings for MUI
https://github.com/cca-io/rescript-mui
bindings material-ui mui rescript
Last synced: about 1 month ago
JSON representation
ReScript bindings for MUI
- Host: GitHub
- URL: https://github.com/cca-io/rescript-mui
- Owner: cca-io
- License: mit
- Created: 2017-11-14T22:03:46.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2024-04-18T13:52:36.000Z (5 months ago)
- Last Synced: 2024-04-20T00:54:59.193Z (5 months ago)
- Topics: bindings, material-ui, mui, rescript
- Language: ReScript
- Homepage:
- Size: 21.2 MB
- Stars: 246
- Watchers: 7
- Forks: 54
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# ReScript Bindings for MUI
## Installation
1. Install all necessary packages according to the official MUI-Material installation guide: https://mui.com/material-ui/getting-started/installation/.
2. Install `@rescript-mui/material````sh
npm install @rescript-mui/material
```3. Add it to `dependencies` in your `rescript.json`:
```json
{
"bs-dependencies": ["@rescript-mui/material"]
}
```This library provides [ReScript](https://rescript-lang.org/) bindings for [MUI](https://mui.com/).
These bindings will only work with ReScript 11 (uncurried mode) and JSX version 4, as it enables us to utilize [untagged variants](https://rescript-lang.org/blog/improving-interop#untagged-variants), optional record fields, and record props spread. The latter is especially important, as we are finally able to inherit props from one component to another more easily.
## What happened to the bindings for Material-UI 4?
They are still available, check out the old website: https://rescript-material-ui.cca.io/.
## Why no new website?
1. One of the goals of this rewrite is to make the usage of MUI in ReScript more accessible. In the best case you never need to leave your editor, since now we have doc comments for (almost) every property.
2. It just takes too much time to maintain.
3. In our opinion, it is much more useful (albeit not as pretty) to just have a look at the [examples folder](./examples/).## What's inside?
| MUI package | ReScript bindings package | Namespace | Progress |
| ------------------- | ----------------------------------------------------------------------- | ---------------- | -------: |
| @mui/material | [@rescript-mui/material](./packages/rescript-mui-material/) | Mui | 100 % |
| @mui/lab | [@rescript-mui/lab](./packages/rescript-mui-lab/) | MuiLab | 100 % |
| @mui/x-date-pickers | [@rescript-mui/x-date-pickers](./packages/rescript-mui-x-date-pickers/) | MuiXDatePickers | 30 % |
| @mui/system | [@rescript-mui/system](./packages/rescript-mui-system/) | MuiSystem | 0 % |
| @mui/base | Not implemented! | MuiBase (?) | - |
| @mui/joy | Not implemented! | Joy (?) | - |
| @mui/x-data-grid | Not implemented! | MuiXDataGrid (?) | - |NOTE: `@mui/styles` will never be implemented, as it is the legacy styling solution which is not compatible with `React.StrictMode` or React 18.
## Documentation
See [documentation](./documentation/README.md).
## Changelog
See [CHANGELOG](./CHANGELOG.md).
## Contributing
See [CONTRIBUTING](./CONTRIBUTING.md).