/material-ui-merge

Integration of Material UI with UXPin Merge Technology.

Primary LanguageJavaScriptMIT LicenseMIT

Material UI + UXPin Merge

Integration of Material UI with UXPin Merge Technology.

alt text

About Material UI

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

About UXPin Merge

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.

How to use Merge integration with RMWC?

Merge is currently only available to selected beta users.

  1. Fork this repository and clone it to your computer.
  2. Install dependencies with npm install
  3. Log in to your UXPin beta account (approved for alpha and beta tests by UXPin Inc.)
  4. 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.

Supported components

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

Theming

To change theme, modify theme constant in the ./src/Wrapper/UXPinWrapper.js file. You can modify any parameters described in the Material UI documentation

CI Server Integration (available only for beta users)

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:

  1. Make sure that you forked this repository.
  2. Go to https://circleci.com and sign-up for an account with your Github credentials.
  3. Start a new project and track your fork of this repository.
  4. Go into your UXPin account, enter UXPin editor (in any project).
  5. 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!)

alt text

If you're not seeing the screen above – contact your account manager. You're not in Merge Beta group yet.

  1. Go into settings of your project in Circle CI. Enter section Environment Variables and click on Add new variable.
  2. 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 via npm run start)

Examples

alt text