Giter VIP home page Giter VIP logo

unicef-material-ui's Introduction

UNICEF material-ui

npm version

Customized version for UNICEF of Material UI. Material UI is a set of ReactJS user interface components based on Google's material design written in Javascript.

You can see a Demo site and the reference documentation.

Getting started

In order to use the UNICEF's Material UI components in your React project install the npm package.

 npm install @unicef/material-ui

Usage

Adding UNICEF theme to your app

To use UNICEF theme add ThemeProvider at the top level of your app and warp you components inside UNICEFStyleProvider

// App.js
import React from 'react'
import { ThemeProvider } from '@mui/material/styles'
import { theme, UNICEFStyleProvider } from '@unicef/material-ui'

export default function App() {
  return (
    <ThemeProvider theme={theme}>
      <UNICEFStyleProvider>
        {/* Components*/}
      </UNICEFStyleProvider>
    </ThemeProvider>
  )
}

More info: Material-ui theming

Example project

You have an full example react project that showcases how to use the components in /example.

Development

In order to extend the components, clone the project and install the dependencies.

git clone https://github.com/unicef/unicef-material-ui.git
cd unicef-material-ui
npm install

The following commands are available:

npm start

Builds the library of components in watch mode.

npm start

Apart from the documentation The package comes with an example app - create-react-app - which is useful for testing and running the components.

cd example
npm install # only if it is first time
npm start

Runs the app in the development mode. Open http://localhost:3000 to view the app in the browser.

It will reload automatically upon edits. Lint errors are also displayed on the console.

npm run build

Builds the component library for production. Leaves the output in the dist folder.

npm run docs

Generates the documentation to be viewed in http://localhost:6060.

Page reloads on any change. Lint errors are displayed in the console, too.

We use styleguidelist for documenting our custom components.

npm run build:docs

Builds the styleguide for production. The output is stored in styleguide folder.

npm run build:site

Builds the styleguide docs as well as the example. The output is stored in site folder.

npm run deploy

Runs npm run build:site and then deploys the output to Github gh-pages.

To deploy from a clean repo

git clone https://unicef.github.io/unicef-material-ui/
cd unicef-material-ui
npm install
npm build
cd example
npm install
cd ..
npm deploy

Release a new version in npm registry

There is a Github action (pipeline) that automatically releases in npm whenever a release is created. To create a release, previously you need to ensure the version is changed in packages.json and then create a tag in the repository. These are the steps:

  1. Get the latest master
  2. Edit packages.json and increase the version number and save to origin/master.
      # After editing packages.json
      git commit -m "bump version x.y.z"
      git push origin master
  3. Create a tag and push it to master:
      git tag releases/vX.Y.Z  # where X.Y.Z is a semver number such as 1.6.9
      git push origin tags
  4. Then in the GitHub web interface create the release. The action will be automatically triggered.

About UNICEF

UNICEF works in over 190 countries and territories to protect the rights of every child. UNICEF has spent more than 70 years working to improve the lives of children and their families. In UNICEF, we believe all children have a right to survive, thrive and fulfill their potential โ€“ to the benefit of a better world.

Donate

Collaborations and support

Just fork the project and make a pull request. You may also consider donating.

License

Distributed under GLPv3.

unicef-material-ui's People

Contributors

dependabot[bot] avatar dfrancisc avatar gauravr7 avatar jwflory avatar merlos avatar sureshsevarthi avatar vinuganesan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.