Integration of Material UI with UXPin Merge Technology.
Material UI is an implementation of Google's Material Design in React.js, created and maintained by Olivier Tassinari. To support Material UI please consider donation: https://www.patreon.com/oliviertassinari
Merge is a revolutionary technology that lets users import (and keep in sync) coded React.js components from GIT repositories to UXPin editor. The imported components are 100% identical to components used by developers during the development process. It means that components are going to look and, function (interactions, data) identical to the real product experienced by the users.
UXPin is a leading code–based design platform.
Merge is currently only available to selected beta users.
- Fork this repository and clone it to your computer.
- Install dependencies with
npm install
- Log in to your UXPin beta account (approved for alpha and beta tests by UXPin Inc.)
- Start Merge dev environment with
npm start
If you wish to push RMWC components to your UXPin account or set-up a continues integration with a CI server - contact UXPin on Merge alpha Slack community.
Component | Material UI url | Status |
---|---|---|
AppBar | AppBar | ✅ Full Support |
Autocomplete | Autocomplete | Not supported yet |
Avatar | Avatar | ✅ Full Support |
Badge | Badge | ✅ Full Support |
BottomNavigation | BottomNavigation | ✅ Full Support |
Button | Button | ✅ Full Support |
Card | Card | ✅ Full Support |
Chip | Chip | ✅ Full Support |
Dialog | Dialog | 🔻 Not Supported. Issues with absolutely positioned elements. |
Divider | List Divider | ✅ Full Support |
Drawer | Drawer | 🔻 Not Supported. Unknown issue. |
ExpansionPanel | [https://material-ui.com/demos/expansion-panels/) | 🔻 Not Supported. Unknown issue. |
GridList | GridList | ✅ Full Support |
Icon | – | ✅ Full Support |
List | List | ✅ Full Support |
Menu | Menu | 🔻 Not Supported. Issues with absolutely positioned elements. |
Paper | Paper | ✅ Full Support |
DatePicker | Pickers | ✅ Full Support |
TimePicker | Pickers | ✅ Full Support |
CircularProgress | Progress | ✅ Full Support |
LinearProgress | Progress | ✅ Full Support |
Radio | Selection Controls | ✅ Full Support |
RadioGroup | Selection Controls | ✅ Full Support |
Checkbox | Selection Controls | ✅ Full Support |
Switches | Selection Controls | ✅ Full Support |
FormGroup | Selection Controls | ✅ Full Support |
FormLabel | Selection Controls | ✅ Full Support |
Select | Select | ✅ Full Support |
Snackbar | Snackbar | 🔻 Not supported yet |
Stepper | Stepper | 🔻 Not Supported yet |
Table | Table | 🔻 Not Supported yet |
Tabs | Tabs | ✅ Full Support |
TextField | TextFields | ✅ Full Support |
To change theme, modify theme
constant in the ./src/Wrapper/UXPinWrapper.js
file. You can modify any parameters described in
the Material UI documentation
The recommended approach to integrating React.js components with UXPin is via Continuous Integration server (Circle CI, Travis...). This approach provides an opportunity to establish a real single source of truth for design and development.
After the integration with a CI server every commit to master can (if this is how your CI is configured) automatically update library in UXPin.
This repository consits of an example of integration with Circle CI. If you wish to reuse it follow these steps:
- Make sure that you forked this repository.
- Go to https://circleci.com and sign-up for an account with your Github credentials.
- Start a new project and track your fork of this repository.
- Go into your UXPin account, enter UXPin editor (in any project).
- While inside of UXPin editor open Design Systems Libraries panel and create a new library. Copy the library token (keep it secure it provides access to your library!)
If you're not seeing the screen above – contact your account manager. You're not in Merge Beta group yet.
- Go into settings of your project in Circle CI. Enter section
Environment Variables
and click onAdd new variable
. - Name the new variable
UXPIN_AUTH_TOKEN
and pass your token copied from the UXPin library (#5) as its value.
That's it! The next change in the master branch of your fork will automatically trigger Circle CI and send the newest version of your components to UXPin.
Integration with CI server leads to a powerful workflow, with that however comes couple of dangers, so please be aware of them!
⚠️ Don't share your UXPin authorization token with anyone. It leads straight to your design system library in UXPin. Keep the token safe in the CI app!⚠️ Don't keep your UXPin authorization token in any file checked into your git repository.⚠️ Treat contributing to Master branch just like deploying production code. Any change will be automatically reflected in the UXPin library and projects. If you want to experiment with components – start a new branch and use Merge dev environment – experiment mode (in this repository launched vianpm run start
)