├── .gitignore ├── LICENSE ├── README.md ├── index.html ├── package.json ├── postcss.config.mjs ├── public └── images │ ├── authentication │ ├── create-account.jpg │ ├── login.jpg │ └── reset-password.jpg │ ├── logo.svg │ ├── products │ ├── apple-imac-1.png │ ├── apple-imac-2.png │ └── apple-imac-3.png │ └── users │ ├── bonnie-green-2x.png │ ├── bonnie-green.png │ ├── helene-engels.png │ ├── jese-leos-2x.png │ ├── jese-leos.png │ ├── joseph-mcfall.png │ ├── lana-byrd.png │ ├── leslie-livingston.png │ ├── michael-gough.png │ ├── neil-sims.png │ ├── robert-brown.png │ ├── roberta-casas-2x.png │ ├── roberta-casas.png │ └── thomas-lean.png ├── src ├── components │ ├── navbar.tsx │ └── sidebar.tsx ├── flowbite-theme.ts ├── index.css ├── index.tsx ├── layouts │ └── navbar-sidebar.tsx ├── pages │ ├── authentication │ │ ├── sign-in.tsx │ │ └── sign-up.tsx │ ├── e-commerce │ │ └── products.tsx │ ├── index.tsx │ └── users │ │ └── list.tsx └── svgmap.d.ts ├── tailwind.config.cjs ├── tsconfig.json ├── vite.config.ts └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules 3 | tsconfig.tsbuildinfo 4 | yarn-error.log 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Themesberg 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 |

flowbite-react-admin-dashboard

3 |

4 | Get started with a premium admin dashboard layout built with React, Tailwind CSS and Flowbite featuring 21 example pages including charts, kanban board, mailing system, and more. 5 |

6 |

7 | 8 | Flowbite on Discord 9 | 10 |

11 |
12 |
13 | 14 | 15 | 16 |
17 |
18 |
19 | 20 | **You can [copy/paste code you want from this project](#how-to-use-in-your-own-project), or [use the whole thing for your website](#how-to-install).** 21 | 22 | ## Table of Contents 23 | 24 | - [How to use in your own project](#how-to-use-in-your-own-project) 25 | - [How to install](#how-to-install) 26 | - [Assumptions](#assumptions) 27 | - [How to develop locally](#how-to-develop-locally) 28 | - [How to build for production](#how-to-build-for-production) 29 | - [How to deploy](#how-to-deploy) 30 | 31 | ## How to use in your own project 32 | 33 | In this case, we assume you already have a `nodejs` project with a `package.json`. 34 | 35 | You can copy any of the code from the `.tsx` files in `src/pages` to your own `nodejs` project. Some pages contain optional dependencies discussed further below. Pages might also use some of the static files found in `public`. 36 | 37 | Your project will need to have [`flowbite-react`](https://github.com/bacali95/flowbite-react) installed. That's it! If you're unfamiliar, see [the open-source guide on how to install `flowbite-react`](https://github.com/themesberg/flowbite-react#getting-started). 38 | 39 | Optional dependencies include: 40 | 41 | - [`react-icons`](https://react-icons.github.io/react-icons/) for most of the many icons used 42 | - [`react-apexcharts`](https://github.com/apexcharts/react-apexcharts) for charts/graphs found on [Dashboard page](https://github.com/themesberg/flowbite-react-admin-dashboard/blob/main/src/pages/index.tsx) 43 | - [`react-sortablejs`](https://github.com/SortableJS/react-sortablejs) for Kanban-style boards found on [Kanban page](https://github.com/themesberg/flowbite-react-admin-dashboard/blob/main/src/pages/kanban.tsx) 44 | - [`svgmap`](https://github.com/StephanWagner/svgMap) for maps found on [Dashboard page](https://github.com/themesberg/flowbite-react-admin-dashboard/blob/main/src/pages/kanban.tsx) 45 | 46 | ## How to install 47 | 48 | ### Assumptions 49 | 50 | - You can open a shell/terminal/command prompt 51 | - You have `git` instaslled and can run `git` in the shell 52 | - You have `nodejs` installed and can run `node`, `npm` in the shell 53 | 54 | Install [`yarn`](https://yarnpkg.com/) 55 | 56 | ```sh 57 | npm i -g yarn 58 | ``` 59 | 60 | Clone this repository 61 | 62 | ```sh 63 | git clone https://github.com/themesberg/flowbite-react-admin-dashboard.git 64 | cd flowbite-react-admin-dashboard 65 | ``` 66 | 67 | Install dependencies for this project 68 | 69 | ```sh 70 | yarn install 71 | ``` 72 | 73 | ## How to develop locally 74 | 75 | Once run, this command will display a link to the local server. 76 | 77 | ```sh 78 | yarn dev 79 | ``` 80 | 81 | ## How to build for production 82 | 83 | Your code won't build if you have TypeScript errors. Otherwise, the command will report how large the output files are, which should go to `dist` folder. 84 | 85 | We use [vite](https://vitejs.dev) to build and its default behavior is to emit an `index.html`, `app.js`, and `app.css`. 86 | 87 | ```sh 88 | yarn build 89 | ``` 90 | 91 | ## How to deploy 92 | 93 | You can deploy this repository to any hosting service from Cloudflare Pages, Vercel, or Github Pages to Heroku to AWS to your own Nginx server. 94 | 95 | However, `react-router` needs your server to send all requests to `/`. This is commonly referred to as a [Single Page Application (SPA)](https://developer.mozilla.org/en-US/docs/Glossary/SPA). You will have to add a rewrite to accomplish that. To host on Vercel, for example, you just need to add a `vercel.json` with: 96 | 97 | ```json 98 | { 99 | "routes": [ 100 | { 101 | "src": "/[^.]+", 102 | "dest": "/", 103 | "status": 200 104 | } 105 | ] 106 | } 107 | ``` 108 | 109 | Most, but not all, providers have a mechanism to do this, but we can't cover them all here. 110 | 111 | Alternatively, you can change this app to server-side render. `vite` isn't designed to do that, so you'll need to use a plugin to create an HTML file for each page. `vite` [has a section in their docs](https://github.com/vitejs/awesome-vite#ssr) about SSR plugins and they seem great. 112 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | React Tailwind CSS Dashboard - Flowbite 5 | 6 | 7 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module", 3 | "name": "flowbite-react-admin-dashboard", 4 | "version": "1.0.0", 5 | "descrption": "flowbite-react admin dashboard", 6 | "homepage": "https://github.com/themesberg/flowbite-react-admin-dashboard", 7 | "bugs": "https://github.com/themesberg/flowbite-react-admin-dashboard/issues", 8 | "license": "UNLICENSED", 9 | "author": "Conner Davis ", 10 | "repository": { 11 | "type": "git", 12 | "url": "https://github.com/themesberg/flowbite-react-admin-dashboard.git" 13 | }, 14 | "scripts": { 15 | "build": "yarn typecheck && vite build", 16 | "dev": "vite --host", 17 | "format": "prettier --check --ignore-path .gitignore --write .", 18 | "lint": "eslint --ignore-path .gitignore .", 19 | "preview": "vite preview --host", 20 | "typecheck": "tsc" 21 | }, 22 | "engines": { 23 | "node": ">= 16", 24 | "npm": ">= 8", 25 | "yarn": ">= 1" 26 | }, 27 | "dependencies": { 28 | "apexcharts": "^3.36.3", 29 | "classnames": "^2.3.2", 30 | "flowbite": "^1.5.5", 31 | "flowbite-react": "^0.3.7", 32 | "react-apexcharts": "^1.4.0", 33 | "react-icons": "^4.7.1" 34 | }, 35 | "devDependencies": { 36 | "@types/react": "^18.0.26", 37 | "@types/react-dom": "^18.0.9", 38 | "@types/sortablejs": "^1.15.0", 39 | "@typescript-eslint/eslint-plugin": "^5.46.0", 40 | "@typescript-eslint/parser": "^5.46.0", 41 | "@vitejs/plugin-react": "^2.2.0", 42 | "autoprefixer": "^10.4.13", 43 | "cz-conventional-changelog": "^3.3.0", 44 | "eslint": "^8.29.0", 45 | "eslint-config-prettier": "^8.5.0", 46 | "eslint-plugin-jsx-a11y": "^6.6.1", 47 | "eslint-plugin-prettier": "^4.2.1", 48 | "eslint-plugin-react": "^7.31.11", 49 | "eslint-plugin-react-hooks": "^4.6.0", 50 | "eslint-plugin-tailwindcss": "^3.7.1", 51 | "postcss": "^8.4.19", 52 | "prettier": "^2.8.1", 53 | "react": "^18.2.0", 54 | "react-dom": "^18.2.0", 55 | "react-router": "^6.4.5", 56 | "react-router-dom": "^6.4.5", 57 | "tailwindcss": "^3.2.4", 58 | "typescript": "^4.9.4", 59 | "vite": "^3.2.5", 60 | "vitest": "^0.25.6" 61 | }, 62 | "private": true, 63 | "config": { 64 | "commitizen": { 65 | "path": "cz-conventional-changelog" 66 | } 67 | }, 68 | "eslintConfig": { 69 | "extends": [ 70 | "eslint:recommended", 71 | "plugin:@typescript-eslint/strict", 72 | "plugin:jsx-a11y/recommended", 73 | "plugin:prettier/recommended", 74 | "plugin:react/recommended", 75 | "plugin:react-hooks/recommended", 76 | "plugin:tailwindcss/recommended" 77 | ], 78 | "parser": "@typescript-eslint/parser", 79 | "parserOptions": { 80 | "ecmaFeatures": { 81 | "jsx": true 82 | }, 83 | "project": "./tsconfig.json" 84 | }, 85 | "root": true, 86 | "rules": { 87 | "@typescript-eslint/consistent-type-imports": "error", 88 | "react/react-in-jsx-scope": "off", 89 | "react/no-unescaped-entities": "off", 90 | "tailwindcss/classnames-order": [ 91 | "error", 92 | { 93 | "callees": [ 94 | "classnames" 95 | ], 96 | "config": "tailwind.config.cjs" 97 | } 98 | ], 99 | "tailwindcss/no-custom-classname": [ 100 | "error", 101 | { 102 | "config": "tailwind.config.cjs" 103 | } 104 | ] 105 | }, 106 | "settings": { 107 | "react": { 108 | "version": "detect" 109 | } 110 | } 111 | } 112 | } 113 | -------------------------------------------------------------------------------- /postcss.config.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /public/images/authentication/create-account.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themesberg/flowbite-react-admin-dashboard/ce3afeb2149ad5a91e59c8e98c85e9220224c744/public/images/authentication/create-account.jpg -------------------------------------------------------------------------------- /public/images/authentication/login.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themesberg/flowbite-react-admin-dashboard/ce3afeb2149ad5a91e59c8e98c85e9220224c744/public/images/authentication/login.jpg -------------------------------------------------------------------------------- /public/images/authentication/reset-password.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themesberg/flowbite-react-admin-dashboard/ce3afeb2149ad5a91e59c8e98c85e9220224c744/public/images/authentication/reset-password.jpg -------------------------------------------------------------------------------- /public/images/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /public/images/products/apple-imac-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themesberg/flowbite-react-admin-dashboard/ce3afeb2149ad5a91e59c8e98c85e9220224c744/public/images/products/apple-imac-1.png -------------------------------------------------------------------------------- /public/images/products/apple-imac-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themesberg/flowbite-react-admin-dashboard/ce3afeb2149ad5a91e59c8e98c85e9220224c744/public/images/products/apple-imac-2.png -------------------------------------------------------------------------------- /public/images/products/apple-imac-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themesberg/flowbite-react-admin-dashboard/ce3afeb2149ad5a91e59c8e98c85e9220224c744/public/images/products/apple-imac-3.png -------------------------------------------------------------------------------- /public/images/users/bonnie-green-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themesberg/flowbite-react-admin-dashboard/ce3afeb2149ad5a91e59c8e98c85e9220224c744/public/images/users/bonnie-green-2x.png -------------------------------------------------------------------------------- /public/images/users/bonnie-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themesberg/flowbite-react-admin-dashboard/ce3afeb2149ad5a91e59c8e98c85e9220224c744/public/images/users/bonnie-green.png -------------------------------------------------------------------------------- /public/images/users/helene-engels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themesberg/flowbite-react-admin-dashboard/ce3afeb2149ad5a91e59c8e98c85e9220224c744/public/images/users/helene-engels.png -------------------------------------------------------------------------------- /public/images/users/jese-leos-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themesberg/flowbite-react-admin-dashboard/ce3afeb2149ad5a91e59c8e98c85e9220224c744/public/images/users/jese-leos-2x.png -------------------------------------------------------------------------------- /public/images/users/jese-leos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themesberg/flowbite-react-admin-dashboard/ce3afeb2149ad5a91e59c8e98c85e9220224c744/public/images/users/jese-leos.png -------------------------------------------------------------------------------- /public/images/users/joseph-mcfall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themesberg/flowbite-react-admin-dashboard/ce3afeb2149ad5a91e59c8e98c85e9220224c744/public/images/users/joseph-mcfall.png -------------------------------------------------------------------------------- /public/images/users/lana-byrd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themesberg/flowbite-react-admin-dashboard/ce3afeb2149ad5a91e59c8e98c85e9220224c744/public/images/users/lana-byrd.png -------------------------------------------------------------------------------- /public/images/users/leslie-livingston.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themesberg/flowbite-react-admin-dashboard/ce3afeb2149ad5a91e59c8e98c85e9220224c744/public/images/users/leslie-livingston.png -------------------------------------------------------------------------------- /public/images/users/michael-gough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themesberg/flowbite-react-admin-dashboard/ce3afeb2149ad5a91e59c8e98c85e9220224c744/public/images/users/michael-gough.png -------------------------------------------------------------------------------- /public/images/users/neil-sims.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themesberg/flowbite-react-admin-dashboard/ce3afeb2149ad5a91e59c8e98c85e9220224c744/public/images/users/neil-sims.png -------------------------------------------------------------------------------- /public/images/users/robert-brown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themesberg/flowbite-react-admin-dashboard/ce3afeb2149ad5a91e59c8e98c85e9220224c744/public/images/users/robert-brown.png -------------------------------------------------------------------------------- /public/images/users/roberta-casas-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themesberg/flowbite-react-admin-dashboard/ce3afeb2149ad5a91e59c8e98c85e9220224c744/public/images/users/roberta-casas-2x.png -------------------------------------------------------------------------------- /public/images/users/roberta-casas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themesberg/flowbite-react-admin-dashboard/ce3afeb2149ad5a91e59c8e98c85e9220224c744/public/images/users/roberta-casas.png -------------------------------------------------------------------------------- /public/images/users/thomas-lean.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/themesberg/flowbite-react-admin-dashboard/ce3afeb2149ad5a91e59c8e98c85e9220224c744/public/images/users/thomas-lean.png -------------------------------------------------------------------------------- /src/components/navbar.tsx: -------------------------------------------------------------------------------- 1 | import type { FC } from "react"; 2 | import { Button, DarkThemeToggle, Navbar } from "flowbite-react"; 3 | 4 | const ExampleNavbar: FC = function () { 5 | return ( 6 | 7 |
8 |
9 |
10 | 11 | 12 | 13 | Flowbite 14 | 15 | 16 |
17 |
18 |