reagent-material-ui is a Reagent wrapper for Material UI v4.
The purpose of this library is to help ClojureScript/Reagent developers use a modern React UI library without the hassle that Reagent/React interop usually is. It is meant to be comprehensive and up to date.
If you aren't familiar with Material UI or its documentation yet, that is the best place to start. Their examples are very good. and this library tries to follow the original ideas as well as possible. See the example project for a simple usage example.
To add Material UI to an existing Reagent project, just add this library to your dependencies:
[arttuka/reagent-material-ui "4.8.3-0"]
Most of the library is in the form of regular Reagent components. Each component is contained in a namespace that mirrors
Material UI's modules. For example, @material-ui/core/IconButton
becomes reagent-material-ui.core.icon-button/icon-button
and @material-ui/icons/Menu
becomes reagent-material-ui.icons.menu/menu
.
Namespace reagent-material-ui.components
contains a copy of each component from @material-ui/core
for ease of use.
Namespace reagent-material-ui.colors
contains all color definitions from @material-ui/core/colors
.
The colors are organized in a single namespace, so @material-ui/core/colors/red
becomes reagent-material-ui.colors/red
.
Namespace reagent-material-ui.styles
contains helper functions and components from @material-ui/core/styles
.
This library also includes date and time picker components from Material-UI Pickers.
Namespace reagent-material-ui.pickers
contains all components from @material-ui/pickers
.
Namespace reagent-material-ui.cljs-time-utils
contains an utility package that lets you use the pickers with cljs-time
(goog.date
) date objects.
The locale prop must be an instance of goog.i18n.DateTimeSymbols
. The default locale is used if no locale prop is given.
See the example project for a usage example.
reagent.core/as-element
can turn a Reagent component into a React node.For more information, check out Reagent's interop guide.
Bug reports, pull requests and ideas for improvement are very welcome. No external services are needed for getting the library up and running.
There are three ways to run tests:
lein test
lein figwheel
(user/start)
Icon files are excluded from Figwheel dev build, because constantly rebuilding such a large number of files causes Figwheel to break.
The build process also includes lein cljfmt
.
The project follows Material UI's version numbering.
@material-ui/core
version: 4.8.3
@material-ui/icons
version: 4.8.3
@material-ui/pickers
version: 3.2.7
This project is licensed under the Eclipse Public License 2.0.
Parts of example project are copyright (c) 2013-2017 Dan Holmsand and Reagent contributors, used under the terms of the MIT License. Material UI Icons are copyright (c) Material UI contributors, used under the terms of the MIT License.
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close