• This repository has been archived on 22/Jun/2020
  • Stars
    star
    109
  • Rank 308,748 (Top 7 %)
  • Language
    JavaScript
  • Created almost 5 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Jump start Material-UI project with out tears

This project is moved to mui-treasury

logo

Material-UI Layout PRs Welcome

A set of components that allows you to build dynamic and responsive layout based on Material-UI

Prerequisites

This project based on React Material-UI, so you have to install @material-ui/core @material-ui/styles

Installation

// yarn
yarn add mui-layout @material-ui/core @material-ui/styles @material-ui/icons

// npm
npm install mui-layout @material-ui/core @material-ui/styles @material-ui/icons

Demo

see demo here Storybook Demo

Usage

// this example use icon from material-ui/icons, you can use your own!
import React from 'react';
import { ThemeProvider } from '@material-ui/styles';
import { createMuiTheme } from '@material-ui/core/styles';
import ChevronLeft from '@material-ui/icons/ChevronLeft';
import ChevronRight from '@material-ui/icons/ChevronRight';
import MenuRounded from '@material-ui/icons/MenuRounded';

import {
 Root,
 Header,
 Nav,
 Content,
 Footer,
 presets,
} from 'mui-layout';

const baseTheme = createMuiTheme(); // or use your own theme;
const config = presets.createStandardLayout();

const App = () => (
  <ThemeProvider theme={baseTheme}>
   <Root config={config}>
     <Header
       renderMenuIcon={open => (open ? <ChevronLeft /> : <MenuRounded />)}
     >
       header
     </Header>
     <Nav
       renderIcon={collapsed =>
         collapsed ? <ChevronRight /> : <ChevronLeft />
       }
     >
       nav
     </Nav>
     <Content>
       content
     </Content>
     <Footer>
       footer
     </Footer>
   </Root>
  </ThemeProvider>
)

export default App;

Built-in Features

  • Collapsible Nav

    Alt Text

  • Header Magnet

    alt text

  • Auto Collapsed

    alt text

  • Responsive Config

    const extendedConfigs2 = {
      ...defaultConfig,
    
      // navVariant is 'temporary' in mobile and tablet, 'permanent' in desktop and greater
      navVariant: {
        xs: 'temporary',
        md: 'permanent',
      },
    

Custom Styles

Mostly, you will custom Header & Nav. This is an example for Header

Explanation is in storybook

import { makeStyles } from '@material-ui/styles';

const useHeaderStyles = makeStyles(({ palette, spacing }) => ({
  header: {
    backgroundColor: palette.secondary.main,
  },
  menuBtn: {
    padding: spacing(2.5),
    borderRadius: 0,
  },
  icon: {
    color: palette.common.white,
  },
  toolbar: {
    padding: spacing(0, 1),
  },
}));

function App() {
  const {
    icon: iconCss,
    toolbar: toolbarCss,
    header: headerCss,
    menuBtn: menuBtnCss,
  } = useHeaderStyles();
  return (
    <Header
      classes={{ root: headerCss }}
      renderMenuIcon={open =>
        open ? (
          <ChevronLeft className={iconCss} />
        ) : (
          <MenuRounded classes={{ root: iconCss }} />
        )
      }
      menuButtonProps={{ className: menuBtnCss }}
      toolbarProps={{ className: toolbarCss }}
    />
  );
}

Presets

  • Standard

    Alt Text

  • Fixed

    Alt Text

  • Content Based

    Alt Text

  • Cozy

    Alt Text

How it works

  • They are basically material-ui components that are combined to make things easier. AppBar, Toolbar, Drawer

  • use @material-ui/styles to style components

  • use react-hooks

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT

More Repositories

1

mui-treasury

A collection of ready-to-use components based on Material-UI
TypeScript
2,334
star
2

joy-treasury

Design inspiration alive with Joy UI. Copy & paste ready-to-use blocks to your project or clone them with joy-treasury CLI.
TypeScript
36
star
3

tutorial-mui-theming

JavaScript
18
star
4

react-native-video-extension

A hand-crafted extension for `react-native-video` that provide great UX for users.
TypeScript
15
star
5

mui-tailwind-demo

JavaScript
12
star
6

mui-styling

utilities for creating sustainable & reusable Material-UI components
JavaScript
10
star
7

awesome-ui-libraries

A collection of info about all ui libraries to help to choose the best choice for your project.
8
star
8

mui-formik

A toolbox for building form with Material-UI + Formik
JavaScript
8
star
9

firebase-functions-boilerplate

JavaScript
6
star
10

material-ui-theme-generator

JavaScript
3
star
11

mui-v5-storybook-repro

JavaScript
3
star
12

joy-ui-strapi

Experimental themes for Joy UI
TypeScript
2
star
13

react-universe

A set of unified component that make flexbox API cleaner and support many libraries
JavaScript
1
star
14

material-ui-figma

HTML
1
star
15

sysi

JavaScript
1
star
16

storybook-addon-mui-mode

JavaScript
1
star
17

mui-custom-work

material-ui analysis
TypeScript
1
star
18

universal-react-app

A boilerplate for starting universal react app with GAE (Google App Engine)
JavaScript
1
star
19

mui-treasury-next

TypeScript
1
star
20

joy-nextra

TypeScript
1
star
21

Jarvis

TypeScript
1
star
22

my-react-redux

react-redux starter kit
CSS
1
star
23

react-in-thai

For thai education purposes
1
star
24

react-tailwind-trial

📖 My React UI Library
TypeScript
1
star
25

mui-css-vars

JavaScript
1
star
26

scrapee-release

Scrapee – โปรแกรมป้องกันการโกงสำหรับร้านค้าของเก่า
1
star
27

firebase-functions-instance

JavaScript
1
star