react-material-admin
☄️React Material Admin is a React template built with Material-UI
Top Related Projects
Material UI: Comprehensive React component library that implements Google's Material Design. Free forever.
React version of Material Dashboard by Creative Tim
React Dashboard made with Material UI’s components. Our pro template contains features like TypeScript version, authentication system with Firebase and Auth0 plus many other
Tabler is free and open-source HTML Dashboard UI Kit built on Bootstrap
Open source admin template based on Bootstrap 5 and React.js
Customizable admin dashboard template based on Angular 10+
Quick Overview
React Material Admin is a free and open-source admin dashboard template built with React and Material-UI. It provides a clean and modern interface for creating administrative panels, featuring a responsive design and a variety of pre-built components and layouts.
Pros
- Built with popular and well-maintained technologies (React and Material-UI)
- Responsive design that works well on various screen sizes
- Includes a variety of pre-built components and layouts for quick development
- Free and open-source, allowing for customization and community contributions
Cons
- Limited documentation and examples compared to some commercial alternatives
- May require additional customization for specific use cases or complex applications
- Not actively maintained, with infrequent updates
- Some reported issues with TypeScript support and outdated dependencies
Code Examples
- Creating a custom dashboard widget:
import React from 'react';
import { Paper, Typography } from '@material-ui/core';
const CustomWidget = ({ title, value }) => (
<Paper elevation={3} style={{ padding: '1rem', textAlign: 'center' }}>
<Typography variant="h6">{title}</Typography>
<Typography variant="h4">{value}</Typography>
</Paper>
);
export default CustomWidget;
- Implementing a data table with sorting and pagination:
import React from 'react';
import { Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Paper, TablePagination } from '@material-ui/core';
const DataTable = ({ data, columns }) => {
const [page, setPage] = React.useState(0);
const [rowsPerPage, setRowsPerPage] = React.useState(10);
const handleChangePage = (event, newPage) => {
setPage(newPage);
};
const handleChangeRowsPerPage = (event) => {
setRowsPerPage(parseInt(event.target.value, 10));
setPage(0);
};
return (
<Paper>
<TableContainer>
<Table>
<TableHead>
<TableRow>
{columns.map((column) => (
<TableCell key={column.id}>{column.label}</TableCell>
))}
</TableRow>
</TableHead>
<TableBody>
{data.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage).map((row) => (
<TableRow key={row.id}>
{columns.map((column) => (
<TableCell key={column.id}>{row[column.id]}</TableCell>
))}
</TableRow>
))}
</TableBody>
</Table>
</TableContainer>
<TablePagination
rowsPerPageOptions={[5, 10, 25]}
component="div"
count={data.length}
rowsPerPage={rowsPerPage}
page={page}
onPageChange={handleChangePage}
onRowsPerPageChange={handleChangeRowsPerPage}
/>
</Paper>
);
};
export default DataTable;
- Adding a new route to the sidebar menu:
import React from 'react';
import { Home as HomeIcon } from '@material-ui/icons';
const newMenuItem = {
id: 'custom-page',
label: 'Custom Page',
link: '/custom-page',
icon: <HomeIcon />
};
// Add this to the structure array in src/components/Sidebar/Sidebar.js
structure.push(newMenuItem);
Getting Started
-
Clone the repository:
git clone https://github.com/flatlogic/react-material-admin.git
-
Install dependencies:
cd react-material-admin npm install
-
Start the development server:
npm start
-
Open your browser and navigate to
http://localhost:3000
to view the admin dashboard.
Competitor Comparisons
Material UI: Comprehensive React component library that implements Google's Material Design. Free forever.
Pros of Material-UI
- Larger community and more frequent updates
- Extensive documentation and examples
- Wider range of components and customization options
Cons of Material-UI
- Steeper learning curve for beginners
- Larger bundle size due to comprehensive feature set
Code Comparison
Material-UI:
import { Button, TextField } from '@mui/material';
function MyComponent() {
return (
<>
<TextField label="Name" variant="outlined" />
<Button variant="contained" color="primary">Submit</Button>
</>
);
}
React Material Admin:
import { Button, TextField } from 'react-material-admin';
function MyComponent() {
return (
<>
<TextField label="Name" />
<Button color="primary">Submit</Button>
</>
);
}
Summary
Material-UI offers a more comprehensive set of components and customization options, backed by a larger community and extensive documentation. However, it may have a steeper learning curve and larger bundle size compared to React Material Admin. The code comparison shows similar syntax, with Material-UI offering more built-in variants and properties. Choose Material-UI for complex projects with diverse UI requirements, while React Material Admin might be suitable for simpler admin interfaces with a focus on ease of use.
React version of Material Dashboard by Creative Tim
Pros of Material Dashboard React
- More active development with frequent updates and bug fixes
- Extensive documentation and better community support
- Wider range of pre-built components and layouts
Cons of Material Dashboard React
- Steeper learning curve for beginners
- Less customizable without purchasing the pro version
- Larger bundle size, which may impact initial load times
Code Comparison
React Material Admin:
import React from 'react';
import { Grid, Paper, Typography } from '@material-ui/core';
import { makeStyles } from '@material-ui/styles';
const useStyles = makeStyles(theme => ({
root: {
padding: theme.spacing(3)
}
}));
Material Dashboard React:
import React from "react";
import { makeStyles } from "@material-ui/core/styles";
import Grid from "@material-ui/core/Grid";
import Card from "components/Card/Card.js";
import CardHeader from "components/Card/CardHeader.js";
import CardBody from "components/Card/CardBody.js";
Both repositories use Material-UI components, but Material Dashboard React has more custom components and a slightly different import structure. React Material Admin tends to use more standard Material-UI components directly, while Material Dashboard React has created custom wrappers for some components.
React Dashboard made with Material UI’s components. Our pro template contains features like TypeScript version, authentication system with Firebase and Auth0 plus many other
Pros of Material Kit React
- More comprehensive UI components and pre-built pages
- Better documentation and code organization
- Regular updates and active community support
Cons of Material Kit React
- Steeper learning curve due to more complex structure
- May be overkill for simpler projects
- Requires Pro version for some advanced features
Code Comparison
Material Kit React:
import { ThemeProvider } from '@mui/material/styles';
import CssBaseline from '@mui/material/CssBaseline';
import { createTheme } from '../theme';
const theme = createTheme();
function App() {
return (
<ThemeProvider theme={theme}>
<CssBaseline />
{/* Your app content */}
</ThemeProvider>
);
}
React Material Admin:
import { MuiThemeProvider, createMuiTheme } from "@material-ui/core/styles";
import { CssBaseline } from "@material-ui/core";
const theme = createMuiTheme({
// Theme options
});
function App() {
return (
<MuiThemeProvider theme={theme}>
<CssBaseline />
{/* Your app content */}
</MuiThemeProvider>
);
}
Both projects use Material-UI for theming, but Material Kit React uses a more recent version with slightly different import statements and a custom theme creation function. React Material Admin uses an older version of Material-UI, which may impact long-term maintainability.
Tabler is free and open-source HTML Dashboard UI Kit built on Bootstrap
Pros of Tabler
- Built with vanilla JavaScript, making it more lightweight and flexible
- Extensive collection of UI components and pre-built pages
- Responsive design with mobile-first approach
Cons of Tabler
- Requires more custom JavaScript for complex interactions
- Less integrated with React ecosystem
Code Comparison
Tabler (HTML/CSS):
<div class="card">
<div class="card-header">
<h3 class="card-title">Card title</h3>
</div>
<div class="card-body">
<p>Card content</p>
</div>
</div>
React Material Admin (React/JSX):
import { Card, CardHeader, CardContent, Typography } from '@material-ui/core';
<Card>
<CardHeader title="Card title" />
<CardContent>
<Typography>Card content</Typography>
</CardContent>
</Card>
Key Differences
- Tabler is framework-agnostic, while React Material Admin is React-specific
- React Material Admin leverages Material-UI components, offering a more cohesive Material Design experience
- Tabler provides more ready-to-use UI elements and layouts out of the box
Use Cases
- Choose Tabler for quick prototyping or projects not tied to a specific framework
- Opt for React Material Admin when building React applications with Material Design principles
Community and Support
- Both projects have active communities and regular updates
- Tabler has a larger GitHub star count, indicating broader adoption
Open source admin template based on Bootstrap 5 and React.js
Pros of CoreUI Free React Admin Template
- More comprehensive documentation and better-organized codebase
- Wider range of pre-built components and layouts
- Active community support and regular updates
Cons of CoreUI Free React Admin Template
- Steeper learning curve due to its extensive feature set
- Less flexibility for customization compared to React Material Admin
- Larger bundle size, which may impact initial load times
Code Comparison
React Material Admin:
import React from 'react';
import { Grid } from '@material-ui/core';
import { makeStyles } from '@material-ui/styles';
const useStyles = makeStyles(theme => ({
root: {
padding: theme.spacing(4)
}
}));
CoreUI Free React Admin Template:
import React from 'react'
import {
CCard,
CCardBody,
CCardHeader,
CCol,
CRow
} from '@coreui/react'
const Dashboard = () => {
return (
<>
<CCard>
<CCardHeader>Dashboard</CCardHeader>
<CCardBody>
{/* Dashboard content */}
</CCardBody>
</CCard>
</>
)
}
The code comparison shows that CoreUI uses its own custom components (CCard, CCardBody, etc.) while React Material Admin relies on Material-UI components. CoreUI's approach may lead to a more consistent design but potentially less flexibility in customization.
Customizable admin dashboard template based on Angular 10+
Pros of ngx-admin
- Built with Angular, offering a robust framework for large-scale applications
- Extensive collection of UI components and modules out-of-the-box
- Supports multiple backend integrations (Node.js, .NET, Java, PHP)
Cons of ngx-admin
- Steeper learning curve for developers not familiar with Angular
- Less flexibility in customization compared to React-based solutions
- Potentially heavier initial load due to Angular's framework size
Code Comparison
ngx-admin (Angular):
import { Component } from '@angular/core';
@Component({
selector: 'app-dashboard',
templateUrl: './dashboard.component.html',
})
export class DashboardComponent { }
react-material-admin (React):
import React from 'react';
const Dashboard = () => {
return <div>Dashboard Content</div>;
};
export default Dashboard;
The code comparison shows the basic structure of a component in each framework. ngx-admin uses Angular's component decorator, while react-material-admin uses React's functional component syntax. This highlights the different approaches and syntaxes between the two frameworks, which can impact development speed and ease of use depending on the developer's familiarity with each technology.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
React Material Admin â Material-UI Dashboard Template
Built with React, Material-UI, React Router. No jQuery and Bootstrap!
This version uses React 16.14.0, React Router v5, MaterialUI v4, built with React Hooks and React Context (No Redux)
The React Material Admin template demonstrates a modern approach to dashboard design. React 16.14.0, React Router v5, and MaterialUI v4, built using React Hooks and React Context (eschewing Redux), provide a streamlined, contemporary foundation for developing business software dashboards.
View Demo | Download | More templates | Support forum
Full Version
This is a limited version of Full React Material Admin with more components, pages and theme support.
Features
- React (16.14.0)
- React Hooks
- React Context
- No jQuery and Bootstrap!
- Mobile friendly layout (responsive)
- Create-react-app under the hood
- React Router v5
- Material-UI v4
- Modular Architecture
- CSS-in-JS styles
- Webpack build
- Stylish, clean, responsive layout
- Authentication
Pages
We have implemented some basic pages, so you can see our template in action.
- Dashboard
- Typography
- Tables
- Notifications
- Charts
- Icons
- Maps
- Login
- Error
Quick Start
1. Get the latest version
You can start by cloning the latest version of React Dashboard on your local machine by running:
$ git clone https://github.com/flatlogic/react-material-admin.git MyApp
$ cd MyApp
2. Run yarn install
This will install both run-time project dependencies and developer tools listed in package.json file.
3. Run yarn start
Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser. Whenever you modify any of the source files inside the /src
folder,
the module bundler (Webpack) will recompile the
app on the fly and refresh all the connected browsers.
4. Run yarn build
Builds the app for production to the build folder. It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes. Your app is ready to be deployed!
Support
For any additional information please go to our support forum and raise your questions or feedback provide there. We highly appreciate your participation!
How can I support developers?
- Star our GitHub repo :star:
- Tweet about it.
- Create pull requests, submit bugs, suggest new features or documentation updates :wrench:
- Follow @flatlogic on Twitter.
- Subscribe to Flatlogic newsletter at flatlogic.com
- Like our page on Facebook :thumbsup:
More from Flatlogic
- React Native Starter - ð A powerful react native starter template that bootstraps development of your mobile application
- Sing App - ð¥ Free and open-source admin dashboard template built with Bootstrap 4
- Awesome Bootstrap Checkboxes & Radios - â Pure css way to make inputs look prettier
- React Dashboard - ð¥ React Dashboard - isomorphic admin dashboard template with GraphQL
- Light Blue Dashboard - ð¦ Free and open-source admin dashboard template built with Bootstrap
Premium themes
Looking for premium themes and templates? Check out more admin dashboard templates at flatlogic.com.
License
MIT.
Top Related Projects
Material UI: Comprehensive React component library that implements Google's Material Design. Free forever.
React version of Material Dashboard by Creative Tim
React Dashboard made with Material UI’s components. Our pro template contains features like TypeScript version, authentication system with Firebase and Auth0 plus many other
Tabler is free and open-source HTML Dashboard UI Kit built on Bootstrap
Open source admin template based on Bootstrap 5 and React.js
Customizable admin dashboard template based on Angular 10+
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot