├── .babelrc ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── LICENSE.md ├── README.md ├── bower.json ├── deploy.js ├── package.json ├── public ├── apple-icon.png ├── favicon.ico ├── googlee35aa2f2fd7b0c5b.html ├── index.html ├── manifest.json └── sitemap.xml ├── src ├── assets │ ├── css │ │ └── material-kit-react.css │ ├── img │ │ ├── apple-icon.png │ │ ├── bg.jpg │ │ ├── bg2.jpg │ │ ├── bg3.jpg │ │ ├── bg4.jpg │ │ ├── bg7.jpg │ │ ├── examples │ │ │ ├── clem-onojegaw.jpg │ │ │ ├── clem-onojeghuo.jpg │ │ │ ├── cynthia-del-rio.jpg │ │ │ ├── mariya-georgieva.jpg │ │ │ ├── olu-eletu.jpg │ │ │ ├── studio-1.jpg │ │ │ ├── studio-2.jpg │ │ │ ├── studio-3.jpg │ │ │ ├── studio-4.jpg │ │ │ └── studio-5.jpg │ │ ├── faces │ │ │ ├── avatar.jpg │ │ │ ├── camp.jpg │ │ │ ├── card-profile1-square.jpg │ │ │ ├── card-profile2-square.jpg │ │ │ ├── card-profile4-square.jpg │ │ │ ├── card-profile5-square.jpg │ │ │ ├── card-profile6-square.jpg │ │ │ ├── christian.jpg │ │ │ ├── kendall.jpg │ │ │ └── marc.jpg │ │ ├── favicon.png │ │ ├── landing-bg.jpg │ │ ├── landing.jpg │ │ ├── profile-bg.jpg │ │ ├── profile.jpg │ │ └── sign.jpg │ ├── jss │ │ ├── material-kit-react.jsx │ │ └── material-kit-react │ │ │ ├── components │ │ │ ├── badgeStyle.jsx │ │ │ ├── buttonStyle.jsx │ │ │ ├── cardBodyStyle.jsx │ │ │ ├── cardFooterStyle.jsx │ │ │ ├── cardHeaderStyle.jsx │ │ │ ├── cardStyle.jsx │ │ │ ├── customDropdownStyle.jsx │ │ │ ├── customInputStyle.jsx │ │ │ ├── customLinearProgressStyle.jsx │ │ │ ├── customTabsStyle.jsx │ │ │ ├── footerStyle.jsx │ │ │ ├── headerLinksStyle.jsx │ │ │ ├── headerStyle.jsx │ │ │ ├── infoStyle.jsx │ │ │ ├── navPillsStyle.jsx │ │ │ ├── paginationStyle.jsx │ │ │ ├── parallaxStyle.jsx │ │ │ ├── snackbarContentStyle.jsx │ │ │ └── typographyStyle.jsx │ │ │ ├── customCheckboxRadioSwitch.jsx │ │ │ ├── imagesStyles.jsx │ │ │ ├── modalStyle.jsx │ │ │ ├── popoverStyles.jsx │ │ │ ├── tooltipsStyle.jsx │ │ │ └── views │ │ │ ├── components.jsx │ │ │ ├── componentsSections │ │ │ ├── basicsStyle.jsx │ │ │ ├── carouselStyle.jsx │ │ │ ├── completedStyle.jsx │ │ │ ├── downloadStyle.jsx │ │ │ ├── exampleStyle.jsx │ │ │ ├── javascriptStyles.jsx │ │ │ ├── loginStyle.jsx │ │ │ ├── navbarsStyle.jsx │ │ │ ├── notificationsStyles.jsx │ │ │ ├── pillsStyle.jsx │ │ │ ├── tabsStyle.jsx │ │ │ └── typographyStyle.jsx │ │ │ ├── landingPage.jsx │ │ │ ├── landingPageSections │ │ │ ├── productStyle.jsx │ │ │ ├── teamStyle.jsx │ │ │ └── workStyle.jsx │ │ │ ├── loginPage.jsx │ │ │ └── profilePage.jsx │ └── scss │ │ ├── core │ │ ├── _misc.scss │ │ ├── _mixins.scss │ │ ├── _variables.scss │ │ ├── mixins │ │ │ └── _colored-shadows.scss │ │ └── variables │ │ │ ├── _bootstrap-material-design-base.scss │ │ │ ├── _bootstrap-material-design.scss │ │ │ ├── _brand.scss │ │ │ ├── _colors-map.scss │ │ │ ├── _colors.scss │ │ │ ├── _functions.scss │ │ │ ├── _shadow.scss │ │ │ └── _variables.scss │ │ ├── material-kit-react.scss │ │ └── plugins │ │ ├── _plugin-nouislider.scss │ │ ├── _plugin-react-datetime.scss │ │ └── _plugin-react-slick.scss ├── components │ ├── Badge │ │ └── Badge.jsx │ ├── Card │ │ ├── Card.jsx │ │ ├── CardBody.jsx │ │ ├── CardFooter.jsx │ │ └── CardHeader.jsx │ ├── Clearfix │ │ └── Clearfix.jsx │ ├── CustomButtons │ │ └── Button.jsx │ ├── CustomDropdown │ │ └── CustomDropdown.jsx │ ├── CustomInput │ │ └── CustomInput.jsx │ ├── CustomLinearProgress │ │ └── CustomLinearProgress.jsx │ ├── CustomTabs │ │ └── CustomTabs.jsx │ ├── Footer │ │ └── Footer.jsx │ ├── Grid │ │ ├── GridContainer.jsx │ │ └── GridItem.jsx │ ├── Header │ │ ├── Header.jsx │ │ └── HeaderLinks.jsx │ ├── InfoArea │ │ └── InfoArea.jsx │ ├── NavPills │ │ └── NavPills.jsx │ ├── Pagination │ │ └── Pagination.jsx │ ├── Parallax │ │ └── Parallax.jsx │ ├── Snackbar │ │ └── SnackbarContent.jsx │ └── Typography │ │ ├── Danger.jsx │ │ ├── Info.jsx │ │ ├── Muted.jsx │ │ ├── Primary.jsx │ │ ├── Quote.jsx │ │ ├── Small.jsx │ │ ├── Success.jsx │ │ └── Warning.jsx ├── index.js ├── logo.svg ├── store │ ├── actions │ │ └── index.js │ ├── index.js │ ├── preloadedState.js │ └── reducers │ │ └── index.js ├── utils │ └── Cookies.js └── views │ ├── Components │ ├── Components.jsx │ └── Sections │ │ ├── SectionBasics.jsx │ │ ├── SectionCarousel.jsx │ │ ├── SectionCompletedExamples.jsx │ │ ├── SectionDownload.jsx │ │ ├── SectionExamples.jsx │ │ ├── SectionJavascript.jsx │ │ ├── SectionLogin.jsx │ │ ├── SectionNavbars.jsx │ │ ├── SectionNotifications.jsx │ │ ├── SectionPills.jsx │ │ ├── SectionTabs.jsx │ │ └── SectionTypography.jsx │ ├── LandingPage │ ├── LandingPage.jsx │ └── Sections │ │ ├── ProductSection.jsx │ │ ├── TeamSection.jsx │ │ └── WorkSection.jsx │ ├── LoginPage │ └── LoginPage.jsx │ └── ProfilePage │ └── ProfilePage.jsx └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "@babel/env", 4 | "@babel/react" 5 | ], 6 | "plugins": [ 7 | "@babel/plugin-proposal-class-properties" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | !.eslintrc.js 2 | documentation/ 3 | build/ 4 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | parser: "babel-eslint", 3 | env: { 4 | es6: true, 5 | node: true, 6 | browser: true 7 | }, 8 | parserOptions: { 9 | ecmaVersion: 6, 10 | sourceType: "module", 11 | ecmaFeatures: { 12 | jsx: true 13 | } 14 | }, 15 | plugins: ["react"], 16 | extends: [ 17 | "eslint:recommended", 18 | "plugin:react/recommended", 19 | "plugin:prettier/recommended" 20 | ] 21 | }; 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | bower_components 3 | node_modules 4 | npm-debug.log 5 | build 6 | .sass-cache -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Creative Tim 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 | # [React Material Kit](https://appseed.us/apps/material-kit) 2 | 3 | Full-Stack app with **Material Design** coded in **React** 4 | 5 |
6 | 7 | ![Material Kit React](https://github.com/app-generator/static/blob/master/products/react-express-material-kit.jpg?raw=true) 8 | 9 |
10 | 11 | ## Requirements 12 | - [Node.js](https://nodejs.org/) >= 6.x 13 | 14 |
15 | 16 | ## Setting up for development 17 | - clone the project: `https://github.com/app-generator/material-kit-react.git` 18 | - change directory to this project: `cd material-kit-react` 19 | - Default backend URL `http://127.0.0.1:3000`. This can be overwritten by updating the file: `src/views/LoginPage/LoginPage.jsx` 20 | 21 |
22 | 23 | ## Scripts 24 | 25 | **Install Dependencies** 26 | ```bash 27 | $ yarn 28 | ``` 29 | 30 | **Start app for development** 31 | * **Linux/MacOs**: 32 | ```yarn start``` 33 | 34 | * Visit [localhost:8080](http://localhost:8080) in your browser. The `default port 8080` can be overwritten by updating the `package.json`, `scripts \ start` attribute. 35 | 36 | **Production Build** 37 | * **Linux/MacOs**: 38 | `yarn build` - build the app in `build` directory 39 | 40 |
41 | 42 | ## Support 43 | 44 | For issues and features request, use **Github** or access the [support page](https://appseed.us/support) provided by **AppSeed** 45 | 46 |
47 | 48 | --- 49 | [React Material Kit](https://appseed.us/apps/material-kit) provided by **AppSeed** 50 | -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "material-kit-react", 3 | "homepage": "https://github.com/creativetimofficial/material-kit-react", 4 | "authors": [ 5 | "creative-tim" 6 | ], 7 | "description": "A Badass Material-UI Kit based on Material Design", 8 | "main": "dist/index.js", 9 | "keywords": [ 10 | "material", 11 | "design", 12 | "material-ui", 13 | "google", 14 | "twitter" 15 | ], 16 | "license": "Creative TIM License", 17 | "ignore": [ 18 | "**/.*", 19 | "node_modules", 20 | "bower_components", 21 | "test", 22 | "tests" 23 | ], 24 | "private": true 25 | } 26 | -------------------------------------------------------------------------------- /deploy.js: -------------------------------------------------------------------------------- 1 | var FtpDeploy = require('ftp-deploy'); 2 | var ftpDeploy = new FtpDeploy(); 3 | 4 | var config = { 5 | user: "FTP_USER", 6 | password: "FTP_PASS", 7 | host: "FTP_HOSt", 8 | port: 21, 9 | localRoot: __dirname + '/build', 10 | remoteRoot: '/', 11 | include: ['*', '**/*'], // this would upload everything except dot files 12 | //include: ['*.php', 'dist/*'], 13 | exclude: ['dist/**/*.map'], // e.g. exclude sourcemaps - ** exclude: [] if nothing to exclude ** 14 | deleteRemote: false, // delete ALL existing files at destination before uploading, if true 15 | forcePasv: false // Passive mode is forced (EPSV command is not sent) 16 | } 17 | 18 | // use with promises 19 | ftpDeploy.deploy(config) 20 | .then(res => console.log('finished:', res)) 21 | .catch(err => console.log(err)) 22 | 23 | // use with callback 24 | //ftpDeploy.deploy(config, function(err, res) { 25 | // if (err) console.log(err) 26 | // else console.log('finished:', res); 27 | //}); 28 | 29 | ftpDeploy.on('uploading', function(data) { 30 | data.totalFilesCount; // total file count being transferred 31 | data.transferredFileCount; // number of files transferred 32 | data.filename; // partial path with filename being uploaded 33 | }); 34 | 35 | ftpDeploy.on('uploaded', function(data) { 36 | console.log(data); // same data as uploading event 37 | }); 38 | 39 | ftpDeploy.on('log', function(data) { 40 | console.log(data); // same data as uploading event 41 | }); 42 | 43 | ftpDeploy.on('upload-error', function (data) { 44 | console.log(data.err); // data will also include filename, relativePath, and other goodies 45 | }); 46 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "material-kit-react", 3 | "version": "1.4.0", 4 | "description": "Material Kit React. Coded by Creative Tim", 5 | "private": true, 6 | "main": "dist/index.js", 7 | "dependencies": { 8 | "@material-ui/core": "3.9.2", 9 | "@material-ui/icons": "3.0.2", 10 | "classnames": "2.2.6", 11 | "ftp-deploy": "^2.3.3", 12 | "history": "4.7.2", 13 | "jwt-decode": "^2.2.0", 14 | "moment": "2.24.0", 15 | "node-sass": "4.11.0", 16 | "nouislider": "13.1.0", 17 | "prop-types": "15.7.1", 18 | "react": "16.8.1", 19 | "react-datetime": "2.16.3", 20 | "react-dom": "16.8.1", 21 | "react-redux": "^6.0.0", 22 | "react-router-dom": "4.3.1", 23 | "react-scripts": "^2.1.8", 24 | "react-slick": "0.23.2", 25 | "react-swipeable-views": "0.13.1", 26 | "redux": "^4.0.1", 27 | "redux-devtools-extension": "^2.13.8" 28 | }, 29 | "devDependencies": { 30 | "@babel/cli": "7.2.3", 31 | "@babel/plugin-proposal-class-properties": "7.3.0", 32 | "@babel/preset-env": "7.3.1", 33 | "@babel/preset-react": "7.0.0" 34 | }, 35 | "optionalDependencies": { 36 | "eslint-config-prettier": "4.0.0", 37 | "eslint-plugin-prettier": "3.0.1" 38 | }, 39 | "scripts": { 40 | "start": "PORT=8080 NODE_PATH=./src react-scripts start", 41 | "start_win": "react-scripts start", 42 | "build": "NODE_PATH=./src react-scripts build", 43 | "build_win": "react-scripts build", 44 | "deploy": "node deploy", 45 | "test": "react-scripts test --env=jsdom", 46 | "eject": "react-scripts eject", 47 | "lint:check": "eslint . --ext=js,jsx; exit 0", 48 | "lint:fix": "eslint . --ext=js,jsx --fix; exit 0", 49 | "install:clean": "rm -rf node_modules/ && rm -rf package-lock.json && npm install && npm start", 50 | "build-package-css": "node-sass src/assets/scss/material-kit-react.scss dist/material-kit-react.css", 51 | "build-package": "npm run build-package-css && babel src --out-dir dist", 52 | "compile-sass": "node-sass src/assets/scss/material-kit-react.scss src/assets/css/material-kit-react.css", 53 | "minify-sass": "node-sass src/assets/scss/material-kit-react.scss src/assets/css/material-kit-react.min.css --output-style compressed", 54 | "map-sass": "node-sass src/assets/scss/material-kit-react.scss src/assets/css/material-kit-react.css --source-map true" 55 | }, 56 | "browserslist": [ 57 | ">0.2%", 58 | "not dead", 59 | "not ie <= 11", 60 | "not op_mini all" 61 | ] 62 | } 63 | -------------------------------------------------------------------------------- /public/apple-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/public/apple-icon.png -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/public/favicon.ico -------------------------------------------------------------------------------- /public/googlee35aa2f2fd7b0c5b.html: -------------------------------------------------------------------------------- 1 | google-site-verification: googlee35aa2f2fd7b0c5b.html -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 14 | 15 | 16 | 21 | 22 | 27 | 31 | 40 | 41 | Material Kit coded in React and Express by @AppSeed.us 42 | 43 | 44 | 45 | 46 | 47 |
48 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": "./index.html", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /public/sitemap.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | https://material-kit-react.appseed.us 11 | 1 12 | monthly 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/assets/img/apple-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/apple-icon.png -------------------------------------------------------------------------------- /src/assets/img/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/bg.jpg -------------------------------------------------------------------------------- /src/assets/img/bg2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/bg2.jpg -------------------------------------------------------------------------------- /src/assets/img/bg3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/bg3.jpg -------------------------------------------------------------------------------- /src/assets/img/bg4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/bg4.jpg -------------------------------------------------------------------------------- /src/assets/img/bg7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/bg7.jpg -------------------------------------------------------------------------------- /src/assets/img/examples/clem-onojegaw.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/examples/clem-onojegaw.jpg -------------------------------------------------------------------------------- /src/assets/img/examples/clem-onojeghuo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/examples/clem-onojeghuo.jpg -------------------------------------------------------------------------------- /src/assets/img/examples/cynthia-del-rio.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/examples/cynthia-del-rio.jpg -------------------------------------------------------------------------------- /src/assets/img/examples/mariya-georgieva.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/examples/mariya-georgieva.jpg -------------------------------------------------------------------------------- /src/assets/img/examples/olu-eletu.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/examples/olu-eletu.jpg -------------------------------------------------------------------------------- /src/assets/img/examples/studio-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/examples/studio-1.jpg -------------------------------------------------------------------------------- /src/assets/img/examples/studio-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/examples/studio-2.jpg -------------------------------------------------------------------------------- /src/assets/img/examples/studio-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/examples/studio-3.jpg -------------------------------------------------------------------------------- /src/assets/img/examples/studio-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/examples/studio-4.jpg -------------------------------------------------------------------------------- /src/assets/img/examples/studio-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/examples/studio-5.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/avatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/faces/avatar.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/camp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/faces/camp.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/card-profile1-square.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/faces/card-profile1-square.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/card-profile2-square.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/faces/card-profile2-square.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/card-profile4-square.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/faces/card-profile4-square.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/card-profile5-square.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/faces/card-profile5-square.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/card-profile6-square.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/faces/card-profile6-square.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/christian.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/faces/christian.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/kendall.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/faces/kendall.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/marc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/faces/marc.jpg -------------------------------------------------------------------------------- /src/assets/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/favicon.png -------------------------------------------------------------------------------- /src/assets/img/landing-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/landing-bg.jpg -------------------------------------------------------------------------------- /src/assets/img/landing.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/landing.jpg -------------------------------------------------------------------------------- /src/assets/img/profile-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/profile-bg.jpg -------------------------------------------------------------------------------- /src/assets/img/profile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/profile.jpg -------------------------------------------------------------------------------- /src/assets/img/sign.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/app-generator/material-kit-react/7720ea99a9dc618c7728c1bff68ce2cad85d6b31/src/assets/img/sign.jpg -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react.jsx: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | ========================================================= 4 | * Material Kit React - v1.4.0 based on Material Kit - v2.0.2 5 | ========================================================= 6 | 7 | * Product Page: https://www.creative-tim.com/product/material-kit-react 8 | * Copyright 2018 Creative Tim (https://www.creative-tim.com) 9 | * Licensed under MIT (https://github.com/creativetimofficial/material-kit-react/blob/master/LICENSE.md) 10 | 11 | ========================================================= 12 | 13 | * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 14 | 15 | */ 16 | 17 | // ############################## 18 | // // // Variables - Styles that are used on more than one component 19 | // ############################# 20 | 21 | const drawerWidth = 260; 22 | 23 | const transition = { 24 | transition: "all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1)" 25 | }; 26 | 27 | const conatinerFluid = { 28 | paddingRight: "15px", 29 | paddingLeft: "15px", 30 | marginRight: "auto", 31 | marginLeft: "auto", 32 | width: "100%" 33 | }; 34 | const container = { 35 | ...conatinerFluid, 36 | "@media (min-width: 576px)": { 37 | maxWidth: "540px" 38 | }, 39 | "@media (min-width: 768px)": { 40 | maxWidth: "720px" 41 | }, 42 | "@media (min-width: 992px)": { 43 | maxWidth: "960px" 44 | }, 45 | "@media (min-width: 1200px)": { 46 | maxWidth: "1140px" 47 | } 48 | }; 49 | 50 | const boxShadow = { 51 | boxShadow: 52 | "0 10px 30px -12px rgba(0, 0, 0, 0.42), 0 4px 25px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2)" 53 | }; 54 | 55 | const card = { 56 | display: "inline-block", 57 | position: "relative", 58 | width: "100%", 59 | margin: "25px 0", 60 | boxShadow: "0 1px 4px 0 rgba(0, 0, 0, 0.14)", 61 | borderRadius: "3px", 62 | color: "rgba(0, 0, 0, 0.87)", 63 | background: "#fff" 64 | }; 65 | 66 | const defaultFont = { 67 | fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif', 68 | fontWeight: "300", 69 | lineHeight: "1.5em" 70 | }; 71 | 72 | const primaryColor = "#9c27b0"; 73 | const warningColor = "#ff9800"; 74 | const dangerColor = "#f44336"; 75 | const successColor = "#4caf50"; 76 | const infoColor = "#00acc1"; 77 | const roseColor = "#e91e63"; 78 | const grayColor = "#999999"; 79 | 80 | const primaryBoxShadow = { 81 | boxShadow: 82 | "0 12px 20px -10px rgba(156, 39, 176, 0.28), 0 4px 20px 0px rgba(0, 0, 0, 0.12), 0 7px 8px -5px rgba(156, 39, 176, 0.2)" 83 | }; 84 | const infoBoxShadow = { 85 | boxShadow: 86 | "0 12px 20px -10px rgba(0, 188, 212, 0.28), 0 4px 20px 0px rgba(0, 0, 0, 0.12), 0 7px 8px -5px rgba(0, 188, 212, 0.2)" 87 | }; 88 | const successBoxShadow = { 89 | boxShadow: 90 | "0 12px 20px -10px rgba(76, 175, 80, 0.28), 0 4px 20px 0px rgba(0, 0, 0, 0.12), 0 7px 8px -5px rgba(76, 175, 80, 0.2)" 91 | }; 92 | const warningBoxShadow = { 93 | boxShadow: 94 | "0 12px 20px -10px rgba(255, 152, 0, 0.28), 0 4px 20px 0px rgba(0, 0, 0, 0.12), 0 7px 8px -5px rgba(255, 152, 0, 0.2)" 95 | }; 96 | const dangerBoxShadow = { 97 | boxShadow: 98 | "0 12px 20px -10px rgba(244, 67, 54, 0.28), 0 4px 20px 0px rgba(0, 0, 0, 0.12), 0 7px 8px -5px rgba(244, 67, 54, 0.2)" 99 | }; 100 | const roseBoxShadow = { 101 | boxShadow: 102 | "0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(233, 30, 99, 0.4)" 103 | }; 104 | 105 | const warningCardHeader = { 106 | color: "#fff", 107 | background: "linear-gradient(60deg, #ffa726, #fb8c00)", 108 | ...warningBoxShadow 109 | }; 110 | const successCardHeader = { 111 | color: "#fff", 112 | background: "linear-gradient(60deg, #66bb6a, #43a047)", 113 | ...successBoxShadow 114 | }; 115 | const dangerCardHeader = { 116 | color: "#fff", 117 | background: "linear-gradient(60deg, #ef5350, #e53935)", 118 | ...dangerBoxShadow 119 | }; 120 | const infoCardHeader = { 121 | color: "#fff", 122 | background: "linear-gradient(60deg, #26c6da, #00acc1)", 123 | ...infoBoxShadow 124 | }; 125 | const primaryCardHeader = { 126 | color: "#fff", 127 | background: "linear-gradient(60deg, #ab47bc, #8e24aa)", 128 | ...primaryBoxShadow 129 | }; 130 | const roseCardHeader = { 131 | color: "#fff", 132 | background: "linear-gradient(60deg, #ec407a, #d81b60)", 133 | ...roseBoxShadow 134 | }; 135 | const cardActions = { 136 | margin: "0 20px 10px", 137 | paddingTop: "10px", 138 | borderTop: "1px solid #eeeeee", 139 | height: "auto", 140 | ...defaultFont 141 | }; 142 | 143 | const cardHeader = { 144 | margin: "-30px 15px 0", 145 | borderRadius: "3px", 146 | padding: "15px" 147 | }; 148 | 149 | const defaultBoxShadow = { 150 | border: "0", 151 | borderRadius: "3px", 152 | boxShadow: 153 | "0 10px 20px -12px rgba(0, 0, 0, 0.42), 0 3px 20px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2)", 154 | padding: "10px 0", 155 | transition: "all 150ms ease 0s" 156 | }; 157 | 158 | const title = { 159 | color: "#3C4858", 160 | margin: "1.75rem 0 0.875rem", 161 | textDecoration: "none", 162 | fontWeight: "700", 163 | fontFamily: `"Roboto Slab", "Times New Roman", serif` 164 | }; 165 | 166 | const cardTitle = { 167 | ...title, 168 | marginTop: ".625rem" 169 | }; 170 | 171 | const cardLink = { 172 | "& + $cardLink": { 173 | marginLeft: "1.25rem" 174 | } 175 | }; 176 | 177 | const cardSubtitle = { 178 | marginBottom: "0", 179 | marginTop: "-.375rem" 180 | }; 181 | 182 | export { 183 | //variables 184 | drawerWidth, 185 | transition, 186 | container, 187 | conatinerFluid, 188 | boxShadow, 189 | card, 190 | defaultFont, 191 | primaryColor, 192 | warningColor, 193 | dangerColor, 194 | successColor, 195 | infoColor, 196 | roseColor, 197 | grayColor, 198 | primaryBoxShadow, 199 | infoBoxShadow, 200 | successBoxShadow, 201 | warningBoxShadow, 202 | dangerBoxShadow, 203 | roseBoxShadow, 204 | warningCardHeader, 205 | successCardHeader, 206 | dangerCardHeader, 207 | infoCardHeader, 208 | primaryCardHeader, 209 | roseCardHeader, 210 | cardActions, 211 | cardHeader, 212 | defaultBoxShadow, 213 | title, 214 | cardTitle, 215 | cardLink, 216 | cardSubtitle 217 | }; 218 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/components/badgeStyle.jsx: -------------------------------------------------------------------------------- 1 | import { 2 | primaryColor, 3 | warningColor, 4 | dangerColor, 5 | successColor, 6 | infoColor, 7 | roseColor 8 | } from "assets/jss/material-kit-react.jsx"; 9 | 10 | const badgeStyle = { 11 | badge: { 12 | marginRight: "3px", 13 | borderRadius: "12px", 14 | padding: "5px 12px", 15 | textTransform: "uppercase", 16 | fontSize: "10px", 17 | fontWeight: "500", 18 | lineHeight: "1", 19 | color: "#fff", 20 | textAlign: "center", 21 | whiteSpace: "nowrap", 22 | verticalAlign: "baseline", 23 | display: "inline-block" 24 | }, 25 | primary: { 26 | backgroundColor: primaryColor 27 | }, 28 | warning: { 29 | backgroundColor: warningColor 30 | }, 31 | danger: { 32 | backgroundColor: dangerColor 33 | }, 34 | success: { 35 | backgroundColor: successColor 36 | }, 37 | info: { 38 | backgroundColor: infoColor 39 | }, 40 | rose: { 41 | backgroundColor: roseColor 42 | }, 43 | gray: { 44 | backgroundColor: "#6c757d" 45 | } 46 | }; 47 | 48 | export default badgeStyle; 49 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/components/cardBodyStyle.jsx: -------------------------------------------------------------------------------- 1 | const cardBodyStyle = { 2 | cardBody: { 3 | padding: "0.9375rem 1.875rem", 4 | flex: "1 1 auto" 5 | } 6 | }; 7 | 8 | export default cardBodyStyle; 9 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/components/cardFooterStyle.jsx: -------------------------------------------------------------------------------- 1 | const cardFooterStyle = { 2 | cardFooter: { 3 | display: "flex", 4 | alignItems: "center", 5 | backgroundColor: "transparent", 6 | padding: "0.9375rem 1.875rem" 7 | } 8 | }; 9 | 10 | export default cardFooterStyle; 11 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/components/cardHeaderStyle.jsx: -------------------------------------------------------------------------------- 1 | import { 2 | warningCardHeader, 3 | successCardHeader, 4 | dangerCardHeader, 5 | infoCardHeader, 6 | primaryCardHeader 7 | } from "assets/jss/material-kit-react.jsx"; 8 | const cardHeaderStyle = { 9 | cardHeader: { 10 | borderRadius: "3px", 11 | padding: "1rem 15px", 12 | marginLeft: "15px", 13 | marginRight: "15px", 14 | marginTop: "-30px", 15 | border: "0", 16 | marginBottom: "0" 17 | }, 18 | cardHeaderPlain: { 19 | marginLeft: "0px", 20 | marginRight: "0px" 21 | }, 22 | warningCardHeader, 23 | successCardHeader, 24 | dangerCardHeader, 25 | infoCardHeader, 26 | primaryCardHeader 27 | }; 28 | 29 | export default cardHeaderStyle; 30 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/components/cardStyle.jsx: -------------------------------------------------------------------------------- 1 | const cardStyle = { 2 | card: { 3 | border: "0", 4 | marginBottom: "30px", 5 | marginTop: "30px", 6 | borderRadius: "6px", 7 | color: "rgba(0, 0, 0, 0.87)", 8 | background: "#fff", 9 | width: "100%", 10 | boxShadow: 11 | "0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12)", 12 | position: "relative", 13 | display: "flex", 14 | flexDirection: "column", 15 | minWidth: "0", 16 | wordWrap: "break-word", 17 | fontSize: ".875rem", 18 | transition: "all 300ms linear" 19 | }, 20 | cardPlain: { 21 | background: "transparent", 22 | boxShadow: "none" 23 | }, 24 | cardCarousel: { 25 | overflow: "hidden" 26 | } 27 | }; 28 | 29 | export default cardStyle; 30 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/components/customDropdownStyle.jsx: -------------------------------------------------------------------------------- 1 | import { 2 | defaultFont, 3 | primaryColor, 4 | primaryBoxShadow, 5 | infoColor, 6 | infoBoxShadow, 7 | successColor, 8 | successBoxShadow, 9 | warningColor, 10 | warningBoxShadow, 11 | dangerColor, 12 | dangerBoxShadow, 13 | roseColor, 14 | roseBoxShadow 15 | } from "assets/jss/material-kit-react.jsx"; 16 | 17 | const customDropdownStyle = theme => ({ 18 | popperClose: { 19 | pointerEvents: "none" 20 | }, 21 | dropdown: { 22 | borderRadius: "3px", 23 | border: "0", 24 | boxShadow: "0 2px 5px 0 rgba(0, 0, 0, 0.26)", 25 | top: "100%", 26 | zIndex: "1000", 27 | minWidth: "160px", 28 | padding: "5px 0", 29 | margin: "2px 0 0", 30 | fontSize: "14px", 31 | textAlign: "left", 32 | listStyle: "none", 33 | backgroundColor: "#fff", 34 | backgroundClip: "padding-box" 35 | }, 36 | menuList: { 37 | padding: "0" 38 | }, 39 | popperResponsive: { 40 | zIndex: "1200", 41 | [theme.breakpoints.down("sm")]: { 42 | zIndex: "1640", 43 | position: "static", 44 | float: "none", 45 | width: "auto", 46 | marginTop: "0", 47 | backgroundColor: "transparent", 48 | border: "0", 49 | boxShadow: "none", 50 | color: "black" 51 | } 52 | }, 53 | dropdownItem: { 54 | ...defaultFont, 55 | fontSize: "13px", 56 | padding: "10px 20px", 57 | margin: "0 5px", 58 | borderRadius: "2px", 59 | position: "relative", 60 | transition: "all 150ms linear", 61 | display: "block", 62 | clear: "both", 63 | fontWeight: "400", 64 | height: "fit-content", 65 | color: "#333", 66 | whiteSpace: "nowrap" 67 | }, 68 | blackHover: { 69 | "&:hover": { 70 | boxShadow: 71 | "0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(33, 33, 33, 0.4)", 72 | backgroundColor: "#212121", 73 | color: "#fff" 74 | } 75 | }, 76 | primaryHover: { 77 | "&:hover": { 78 | backgroundColor: primaryColor, 79 | color: "#FFFFFF", 80 | ...primaryBoxShadow 81 | } 82 | }, 83 | infoHover: { 84 | "&:hover": { 85 | backgroundColor: infoColor, 86 | color: "#FFFFFF", 87 | ...infoBoxShadow 88 | } 89 | }, 90 | successHover: { 91 | "&:hover": { 92 | backgroundColor: successColor, 93 | color: "#FFFFFF", 94 | ...successBoxShadow 95 | } 96 | }, 97 | warningHover: { 98 | "&:hover": { 99 | backgroundColor: warningColor, 100 | color: "#FFFFFF", 101 | ...warningBoxShadow 102 | } 103 | }, 104 | dangerHover: { 105 | "&:hover": { 106 | backgroundColor: dangerColor, 107 | color: "#FFFFFF", 108 | ...dangerBoxShadow 109 | } 110 | }, 111 | roseHover: { 112 | "&:hover": { 113 | backgroundColor: roseColor, 114 | color: "#FFFFFF", 115 | ...roseBoxShadow 116 | } 117 | }, 118 | dropdownItemRTL: { 119 | textAlign: "right" 120 | }, 121 | dropdownDividerItem: { 122 | margin: "5px 0", 123 | backgroundColor: "rgba(0, 0, 0, 0.12)", 124 | height: "1px", 125 | overflow: "hidden" 126 | }, 127 | buttonIcon: { 128 | width: "20px", 129 | height: "20px" 130 | }, 131 | caret: { 132 | transition: "all 150ms ease-in", 133 | display: "inline-block", 134 | width: "0", 135 | height: "0", 136 | marginLeft: "4px", 137 | verticalAlign: "middle", 138 | borderTop: "4px solid", 139 | borderRight: "4px solid transparent", 140 | borderLeft: "4px solid transparent" 141 | }, 142 | caretActive: { 143 | transform: "rotate(180deg)" 144 | }, 145 | caretRTL: { 146 | marginRight: "4px" 147 | }, 148 | dropdownHeader: { 149 | display: "block", 150 | padding: "0.1875rem 1.25rem", 151 | fontSize: "0.75rem", 152 | lineHeight: "1.428571", 153 | color: "#777", 154 | whiteSpace: "nowrap", 155 | fontWeight: "inherit", 156 | marginTop: "10px", 157 | "&:hover,&:focus": { 158 | backgroundColor: "transparent", 159 | cursor: "auto" 160 | } 161 | }, 162 | noLiPadding: { 163 | padding: "0" 164 | } 165 | }); 166 | 167 | export default customDropdownStyle; 168 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/components/customInputStyle.jsx: -------------------------------------------------------------------------------- 1 | import { 2 | primaryColor, 3 | dangerColor, 4 | successColor, 5 | defaultFont 6 | } from "assets/jss/material-kit-react.jsx"; 7 | 8 | const customInputStyle = { 9 | disabled: { 10 | "&:before": { 11 | borderColor: "transparent !important" 12 | } 13 | }, 14 | underline: { 15 | "&:hover:not($disabled):before,&:before": { 16 | borderColor: "#D2D2D2 !important", 17 | borderWidth: "1px !important" 18 | }, 19 | "&:after": { 20 | borderColor: primaryColor 21 | } 22 | }, 23 | underlineError: { 24 | "&:after": { 25 | borderColor: dangerColor 26 | } 27 | }, 28 | underlineSuccess: { 29 | "&:after": { 30 | borderColor: successColor 31 | } 32 | }, 33 | whiteUnderline: { 34 | "&:hover:not($disabled):before,&:before": { 35 | borderColor: "#FFFFFF" 36 | }, 37 | "&:after": { 38 | borderColor: "#FFFFFF" 39 | } 40 | }, 41 | labelRoot: { 42 | ...defaultFont, 43 | color: "#AAAAAA !important", 44 | fontWeight: "400", 45 | fontSize: "14px", 46 | lineHeight: "1.42857", 47 | top: "10px", 48 | "& + $underline": { 49 | marginTop: "0px" 50 | } 51 | }, 52 | labelRootError: { 53 | color: dangerColor + " !important" 54 | }, 55 | labelRootSuccess: { 56 | color: successColor + " !important" 57 | }, 58 | formControl: { 59 | margin: "0 0 17px 0", 60 | paddingTop: "27px", 61 | position: "relative", 62 | "& svg,& .fab,& .far,& .fal,& .fas,& .material-icons": { 63 | color: "#495057" 64 | } 65 | }, 66 | input: { 67 | color: "#495057", 68 | "&,&::placeholder": { 69 | fontSize: "14px", 70 | fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif', 71 | fontWeight: "400", 72 | lineHeight: "1.42857", 73 | opacity: "1" 74 | }, 75 | "&::placeholder": { 76 | color: "#AAAAAA" 77 | } 78 | }, 79 | whiteInput: { 80 | "&,&::placeholder": { 81 | color: "#FFFFFF", 82 | opacity: "1" 83 | } 84 | } 85 | }; 86 | 87 | export default customInputStyle; 88 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/components/customLinearProgressStyle.jsx: -------------------------------------------------------------------------------- 1 | import { 2 | primaryColor, 3 | warningColor, 4 | dangerColor, 5 | successColor, 6 | infoColor, 7 | roseColor, 8 | grayColor 9 | } from "assets/jss/material-kit-react.jsx"; 10 | 11 | const customLinearProgressStyle = { 12 | root: { 13 | height: "4px", 14 | marginBottom: "20px", 15 | overflow: "hidden" 16 | }, 17 | bar: { 18 | height: "4px" 19 | }, 20 | primary: { 21 | backgroundColor: primaryColor 22 | }, 23 | warning: { 24 | backgroundColor: warningColor 25 | }, 26 | danger: { 27 | backgroundColor: dangerColor 28 | }, 29 | success: { 30 | backgroundColor: successColor 31 | }, 32 | info: { 33 | backgroundColor: infoColor 34 | }, 35 | rose: { 36 | backgroundColor: roseColor 37 | }, 38 | gray: { 39 | backgroundColor: grayColor 40 | }, 41 | primaryBackground: { 42 | background: "rgba(156, 39, 176, 0.2)" 43 | }, 44 | warningBackground: { 45 | background: "rgba(255, 152, 0, 0.2)" 46 | }, 47 | dangerBackground: { 48 | background: "rgba(244, 67, 54, 0.2)" 49 | }, 50 | successBackground: { 51 | background: "rgba(76, 175, 80, 0.2)" 52 | }, 53 | infoBackground: { 54 | background: "rgba(0, 188, 212, 0.2)" 55 | }, 56 | roseBackground: { 57 | background: "rgba(233, 30, 99, 0.2)" 58 | }, 59 | grayBackground: { 60 | background: "rgba(221, 221, 221, 0.2)" 61 | } 62 | }; 63 | 64 | export default customLinearProgressStyle; 65 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/components/customTabsStyle.jsx: -------------------------------------------------------------------------------- 1 | const customTabsStyle = { 2 | cardTitle: { 3 | float: "left", 4 | padding: "10px 10px 10px 0px", 5 | lineHeight: "24px" 6 | }, 7 | cardTitleRTL: { 8 | float: "right", 9 | padding: "10px 0px 10px 10px !important" 10 | }, 11 | displayNone: { 12 | display: "none !important" 13 | }, 14 | tabsRoot: { 15 | minHeight: "unset !important" 16 | }, 17 | tabRootButton: { 18 | minHeight: "unset !important", 19 | minWidth: "unset !important", 20 | width: "unset !important", 21 | height: "unset !important", 22 | maxWidth: "unset !important", 23 | maxHeight: "unset !important", 24 | padding: "10px 15px", 25 | borderRadius: "3px", 26 | lineHeight: "24px", 27 | border: "0 !important", 28 | color: "#fff !important", 29 | marginLeft: "4px", 30 | "&:last-child": { 31 | marginLeft: "0px" 32 | } 33 | }, 34 | tabLabelContainer: { 35 | padding: "0px" 36 | }, 37 | tabLabel: { 38 | fontWeight: "500", 39 | fontSize: "12px" 40 | }, 41 | tabSelected: { 42 | backgroundColor: "rgba(255, 255, 255, 0.2)", 43 | transition: "0.2s background-color 0.1s" 44 | }, 45 | tabWrapper: { 46 | display: "inline-block", 47 | minHeight: "unset !important", 48 | minWidth: "unset !important", 49 | width: "unset !important", 50 | height: "unset !important", 51 | maxWidth: "unset !important", 52 | maxHeight: "unset !important", 53 | "& > svg": { 54 | verticalAlign: "middle", 55 | margin: "-1px 5px 0 0" 56 | } 57 | } 58 | }; 59 | 60 | export default customTabsStyle; 61 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/components/footerStyle.jsx: -------------------------------------------------------------------------------- 1 | import { container, primaryColor } from "assets/jss/material-kit-react.jsx"; 2 | 3 | const footerStyle = { 4 | block: { 5 | color: "inherit", 6 | padding: "0.9375rem", 7 | fontWeight: "500", 8 | fontSize: "12px", 9 | textTransform: "uppercase", 10 | borderRadius: "3px", 11 | textDecoration: "none", 12 | position: "relative", 13 | display: "block" 14 | }, 15 | left: { 16 | float: "left!important", 17 | display: "block" 18 | }, 19 | right: { 20 | padding: "15px 0", 21 | margin: "0", 22 | float: "right!important" 23 | }, 24 | footer: { 25 | padding: "0.9375rem 0", 26 | textAlign: "center", 27 | display: "flex", 28 | zIndex: "2", 29 | position: "relative" 30 | }, 31 | a: { 32 | color: primaryColor, 33 | textDecoration: "none", 34 | backgroundColor: "transparent" 35 | }, 36 | footerWhiteFont: { 37 | "&,&:hover,&:focus": { 38 | color: "#FFFFFF" 39 | } 40 | }, 41 | container, 42 | list: { 43 | marginBottom: "0", 44 | padding: "0", 45 | marginTop: "0" 46 | }, 47 | inlineBlock: { 48 | display: "inline-block", 49 | padding: "0px", 50 | width: "auto" 51 | }, 52 | icon: { 53 | width: "18px", 54 | height: "18px", 55 | position: "relative", 56 | top: "3px" 57 | } 58 | }; 59 | export default footerStyle; 60 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/components/headerLinksStyle.jsx: -------------------------------------------------------------------------------- 1 | import { defaultFont } from "assets/jss/material-kit-react.jsx"; 2 | 3 | import tooltip from "assets/jss/material-kit-react/tooltipsStyle.jsx"; 4 | 5 | const headerLinksStyle = theme => ({ 6 | list: { 7 | ...defaultFont, 8 | fontSize: "14px", 9 | margin: 0, 10 | paddingLeft: "0", 11 | listStyle: "none", 12 | paddingTop: "0", 13 | paddingBottom: "0", 14 | color: "inherit" 15 | }, 16 | listItem: { 17 | float: "left", 18 | color: "inherit", 19 | position: "relative", 20 | display: "block", 21 | width: "auto", 22 | margin: "0", 23 | padding: "0", 24 | [theme.breakpoints.down("sm")]: { 25 | width: "100%", 26 | "&:after": { 27 | width: "calc(100% - 30px)", 28 | content: '""', 29 | display: "block", 30 | height: "1px", 31 | marginLeft: "15px", 32 | backgroundColor: "#e5e5e5" 33 | } 34 | } 35 | }, 36 | listItemText: { 37 | padding: "0 !important" 38 | }, 39 | navLink: { 40 | color: "inherit", 41 | position: "relative", 42 | padding: "0.9375rem", 43 | fontWeight: "400", 44 | fontSize: "12px", 45 | textTransform: "uppercase", 46 | borderRadius: "3px", 47 | lineHeight: "20px", 48 | textDecoration: "none", 49 | margin: "0px", 50 | display: "inline-flex", 51 | "&:hover,&:focus": { 52 | color: "inherit", 53 | background: "rgba(200, 200, 200, 0.2)" 54 | }, 55 | [theme.breakpoints.down("sm")]: { 56 | width: "calc(100% - 30px)", 57 | marginLeft: "15px", 58 | marginBottom: "8px", 59 | marginTop: "8px", 60 | textAlign: "left", 61 | "& > span:first-child": { 62 | justifyContent: "flex-start" 63 | } 64 | } 65 | }, 66 | notificationNavLink: { 67 | color: "inherit", 68 | padding: "0.9375rem", 69 | fontWeight: "400", 70 | fontSize: "12px", 71 | textTransform: "uppercase", 72 | lineHeight: "20px", 73 | textDecoration: "none", 74 | margin: "0px", 75 | display: "inline-flex", 76 | top: "4px" 77 | }, 78 | registerNavLink: { 79 | top: "3px", 80 | position: "relative", 81 | fontWeight: "400", 82 | fontSize: "12px", 83 | textTransform: "uppercase", 84 | lineHeight: "20px", 85 | textDecoration: "none", 86 | margin: "0px", 87 | display: "inline-flex" 88 | }, 89 | navLinkActive: { 90 | color: "inherit", 91 | backgroundColor: "rgba(255, 255, 255, 0.1)" 92 | }, 93 | icons: { 94 | width: "20px", 95 | height: "20px", 96 | marginRight: "3px" 97 | }, 98 | socialIcons: { 99 | position: "relative", 100 | fontSize: "20px !important", 101 | marginRight: "4px" 102 | }, 103 | dropdownLink: { 104 | "&,&:hover,&:focus": { 105 | color: "inherit", 106 | textDecoration: "none", 107 | display: "block", 108 | padding: "10px 20px" 109 | } 110 | }, 111 | ...tooltip, 112 | marginRight5: { 113 | marginRight: "5px" 114 | } 115 | }); 116 | 117 | export default headerLinksStyle; 118 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/components/headerStyle.jsx: -------------------------------------------------------------------------------- 1 | import { 2 | container, 3 | defaultFont, 4 | primaryColor, 5 | infoColor, 6 | successColor, 7 | warningColor, 8 | dangerColor, 9 | roseColor, 10 | transition, 11 | boxShadow, 12 | drawerWidth 13 | } from "assets/jss/material-kit-react.jsx"; 14 | 15 | const headerStyle = { 16 | appBar: { 17 | display: "flex", 18 | border: "0", 19 | borderRadius: "3px", 20 | padding: "0.625rem 0", 21 | marginBottom: "20px", 22 | color: "#555", 23 | width: "100%", 24 | backgroundColor: "#fff", 25 | boxShadow: 26 | "0 4px 18px 0px rgba(0, 0, 0, 0.12), 0 7px 10px -5px rgba(0, 0, 0, 0.15)", 27 | transition: "all 150ms ease 0s", 28 | alignItems: "center", 29 | flexFlow: "row nowrap", 30 | justifyContent: "flex-start", 31 | position: "relative", 32 | zIndex: "unset" 33 | }, 34 | absolute: { 35 | position: "absolute", 36 | zIndex: "1100" 37 | }, 38 | fixed: { 39 | position: "fixed", 40 | zIndex: "1100" 41 | }, 42 | container: { 43 | ...container, 44 | minHeight: "50px", 45 | flex: "1", 46 | alignItems: "center", 47 | justifyContent: "space-between", 48 | display: "flex", 49 | flexWrap: "nowrap" 50 | }, 51 | flex: { 52 | flex: 1 53 | }, 54 | title: { 55 | ...defaultFont, 56 | lineHeight: "30px", 57 | fontSize: "18px", 58 | borderRadius: "3px", 59 | textTransform: "none", 60 | color: "inherit", 61 | padding: "8px 16px", 62 | "&:hover,&:focus": { 63 | color: "inherit", 64 | background: "transparent" 65 | } 66 | }, 67 | appResponsive: { 68 | margin: "20px 10px" 69 | }, 70 | primary: { 71 | backgroundColor: primaryColor, 72 | color: "#FFFFFF", 73 | boxShadow: 74 | "0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(156, 39, 176, 0.46)" 75 | }, 76 | info: { 77 | backgroundColor: infoColor, 78 | color: "#FFFFFF", 79 | boxShadow: 80 | "0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(0, 188, 212, 0.46)" 81 | }, 82 | success: { 83 | backgroundColor: successColor, 84 | color: "#FFFFFF", 85 | boxShadow: 86 | "0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(76, 175, 80, 0.46)" 87 | }, 88 | warning: { 89 | backgroundColor: warningColor, 90 | color: "#FFFFFF", 91 | boxShadow: 92 | "0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(255, 152, 0, 0.46)" 93 | }, 94 | danger: { 95 | backgroundColor: dangerColor, 96 | color: "#FFFFFF", 97 | boxShadow: 98 | "0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(244, 67, 54, 0.46)" 99 | }, 100 | rose: { 101 | backgroundColor: roseColor, 102 | color: "#FFFFFF", 103 | boxShadow: 104 | "0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(233, 30, 99, 0.46)" 105 | }, 106 | transparent: { 107 | backgroundColor: "transparent !important", 108 | boxShadow: "none", 109 | paddingTop: "25px", 110 | color: "#FFFFFF" 111 | }, 112 | dark: { 113 | color: "#FFFFFF", 114 | backgroundColor: "#212121 !important", 115 | boxShadow: 116 | "0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(33, 33, 33, 0.46)" 117 | }, 118 | white: { 119 | border: "0", 120 | padding: "0.625rem 0", 121 | marginBottom: "20px", 122 | color: "#555", 123 | backgroundColor: "#fff !important", 124 | boxShadow: 125 | "0 4px 18px 0px rgba(0, 0, 0, 0.12), 0 7px 10px -5px rgba(0, 0, 0, 0.15)" 126 | }, 127 | drawerPaper: { 128 | border: "none", 129 | bottom: "0", 130 | transitionProperty: "top, bottom, width", 131 | transitionDuration: ".2s, .2s, .35s", 132 | transitionTimingFunction: "linear, linear, ease", 133 | width: drawerWidth, 134 | ...boxShadow, 135 | position: "fixed", 136 | display: "block", 137 | top: "0", 138 | height: "100vh", 139 | right: "0", 140 | left: "auto", 141 | visibility: "visible", 142 | overflowY: "visible", 143 | borderTop: "none", 144 | textAlign: "left", 145 | paddingRight: "0px", 146 | paddingLeft: "0", 147 | ...transition 148 | } 149 | }; 150 | 151 | export default headerStyle; 152 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/components/infoStyle.jsx: -------------------------------------------------------------------------------- 1 | import { 2 | primaryColor, 3 | warningColor, 4 | dangerColor, 5 | successColor, 6 | infoColor, 7 | roseColor, 8 | grayColor, 9 | title 10 | } from "assets/jss/material-kit-react.jsx"; 11 | 12 | const infoStyle = { 13 | infoArea: { 14 | maxWidth: "360px", 15 | margin: "0 auto", 16 | padding: "0px" 17 | }, 18 | iconWrapper: { 19 | float: "left", 20 | marginTop: "24px", 21 | marginRight: "10px" 22 | }, 23 | primary: { 24 | color: primaryColor 25 | }, 26 | warning: { 27 | color: warningColor 28 | }, 29 | danger: { 30 | color: dangerColor 31 | }, 32 | success: { 33 | color: successColor 34 | }, 35 | info: { 36 | color: infoColor 37 | }, 38 | rose: { 39 | color: roseColor 40 | }, 41 | gray: { 42 | color: grayColor 43 | }, 44 | icon: { 45 | width: "36px", 46 | height: "36px" 47 | }, 48 | descriptionWrapper: { 49 | color: grayColor, 50 | overflow: "hidden" 51 | }, 52 | title, 53 | description: { 54 | color: grayColor, 55 | overflow: "hidden", 56 | marginTop: "0px", 57 | fontSize: "14px" 58 | }, 59 | iconWrapperVertical: { 60 | float: "none" 61 | }, 62 | iconVertical: { 63 | width: "61px", 64 | height: "61px" 65 | } 66 | }; 67 | 68 | export default infoStyle; 69 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/components/navPillsStyle.jsx: -------------------------------------------------------------------------------- 1 | import { 2 | roseColor, 3 | primaryColor, 4 | infoColor, 5 | successColor, 6 | warningColor, 7 | dangerColor 8 | } from "assets/jss/material-kit-react.jsx"; 9 | 10 | const navPillsStyle = theme => ({ 11 | root: { 12 | marginTop: "20px", 13 | paddingLeft: "0", 14 | marginBottom: "0", 15 | overflow: "visible !important" 16 | }, 17 | flexContainer: { 18 | [theme.breakpoints.down("xs")]: { 19 | display: "flex", 20 | flexWrap: "wrap" 21 | } 22 | }, 23 | displayNone: { 24 | display: "none !important" 25 | }, 26 | fixed: { 27 | overflowX: "visible" 28 | }, 29 | horizontalDisplay: { 30 | display: "block" 31 | }, 32 | pills: { 33 | float: "left", 34 | position: "relative", 35 | display: "block", 36 | borderRadius: "30px", 37 | minWidth: "100px", 38 | textAlign: "center", 39 | transition: "all .3s", 40 | padding: "10px 15px", 41 | color: "#555555", 42 | height: "auto", 43 | opacity: "1", 44 | maxWidth: "100%", 45 | margin: "0 5px" 46 | }, 47 | pillsWithIcons: { 48 | borderRadius: "4px" 49 | }, 50 | tabIcon: { 51 | width: "30px", 52 | height: "30px", 53 | display: "block", 54 | margin: "15px 0" 55 | }, 56 | horizontalPills: { 57 | width: "100%", 58 | float: "none !important", 59 | "& + button": { 60 | margin: "10px 0" 61 | } 62 | }, 63 | labelContainer: { 64 | padding: "0!important", 65 | color: "inherit" 66 | }, 67 | label: { 68 | lineHeight: "24px", 69 | textTransform: "uppercase", 70 | fontSize: "12px", 71 | fontWeight: "500", 72 | position: "relative", 73 | display: "block", 74 | color: "inherit" 75 | }, 76 | contentWrapper: { 77 | marginTop: "20px" 78 | }, 79 | primary: { 80 | "&,&:hover": { 81 | color: "#FFFFFF", 82 | backgroundColor: primaryColor, 83 | boxShadow: 84 | "0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(156, 39, 176, 0.4)" 85 | } 86 | }, 87 | info: { 88 | "&,&:hover": { 89 | color: "#FFFFFF", 90 | backgroundColor: infoColor, 91 | boxShadow: 92 | "0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(76, 175, 80, 0.4)" 93 | } 94 | }, 95 | success: { 96 | "&,&:hover": { 97 | color: "#FFFFFF", 98 | backgroundColor: successColor, 99 | boxShadow: 100 | "0 2px 2px 0 rgba(76, 175, 80, 0.14), 0 3px 1px -2px rgba(76, 175, 80, 0.2), 0 1px 5px 0 rgba(76, 175, 80, 0.12)" 101 | } 102 | }, 103 | warning: { 104 | "&,&:hover": { 105 | color: "#FFFFFF", 106 | backgroundColor: warningColor, 107 | boxShadow: 108 | "0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(255, 152, 0, 0.4)" 109 | } 110 | }, 111 | danger: { 112 | "&,&:hover": { 113 | color: "#FFFFFF", 114 | backgroundColor: dangerColor, 115 | boxShadow: 116 | "0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(255, 152, 0, 0.4)" 117 | } 118 | }, 119 | rose: { 120 | "&,&:hover": { 121 | color: "#FFFFFF", 122 | backgroundColor: roseColor, 123 | boxShadow: 124 | "0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(233, 30, 99, 0.4)" 125 | } 126 | }, 127 | alignCenter: { 128 | alignItems: "center", 129 | justifyContent: "center" 130 | } 131 | }); 132 | 133 | export default navPillsStyle; 134 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/components/paginationStyle.jsx: -------------------------------------------------------------------------------- 1 | import { 2 | grayColor, 3 | primaryColor, 4 | infoColor, 5 | successColor, 6 | warningColor, 7 | dangerColor 8 | } from "assets/jss/material-kit-react.jsx"; 9 | 10 | const paginationStyle = { 11 | pagination: { 12 | display: "inline-block", 13 | paddingLeft: "0", 14 | margin: "0 0 20px 0", 15 | borderRadius: "4px" 16 | }, 17 | paginationItem: { 18 | display: "inline" 19 | }, 20 | paginationLink: { 21 | ":first-of-type": { 22 | marginleft: "0" 23 | }, 24 | border: "0", 25 | borderRadius: "30px !important", 26 | transition: "all .3s", 27 | padding: "0px 11px", 28 | margin: "0 3px", 29 | minWidth: "30px", 30 | height: "30px", 31 | minHeight: "auto", 32 | lineHeight: "30px", 33 | fontWeight: "400", 34 | fontSize: "12px", 35 | textTransform: "uppercase", 36 | background: "transparent", 37 | position: "relative", 38 | float: "left", 39 | textDecoration: "none", 40 | boxSizing: "border-box", 41 | "&,&:hover,&:focus": { 42 | color: grayColor 43 | }, 44 | "&:hover,&:focus": { 45 | zIndex: "3", 46 | backgroundColor: "#eee", 47 | borderColor: "#ddd" 48 | }, 49 | "&:hover": { 50 | cursor: "pointer" 51 | } 52 | }, 53 | primary: { 54 | "&,&:hover,&:focus": { 55 | backgroundColor: primaryColor, 56 | borderColor: primaryColor, 57 | color: "#FFFFFF", 58 | boxShadow: 59 | "0 4px 5px 0 rgba(156, 39, 176, 0.14), 0 1px 10px 0 rgba(156, 39, 176, 0.12), 0 2px 4px -1px rgba(156, 39, 176, 0.2)" 60 | }, 61 | "&:hover,&:focus": { 62 | zIndex: "2", 63 | cursor: "default" 64 | } 65 | }, 66 | info: { 67 | "&,&:hover,&:focus": { 68 | backgroundColor: infoColor, 69 | borderColor: infoColor, 70 | color: "#FFFFFF", 71 | boxShadow: 72 | "0 4px 5px 0 rgba(0, 188, 212, 0.14), 0 1px 10px 0 rgba(0, 188, 212, 0.12), 0 2px 4px -1px rgba(0, 188, 212, 0.2)" 73 | }, 74 | "&:hover,&:focus": { 75 | zIndex: "2", 76 | cursor: "default" 77 | } 78 | }, 79 | success: { 80 | "&,&:hover,&:focus": { 81 | backgroundColor: successColor, 82 | borderColor: successColor, 83 | color: "#FFFFFF", 84 | boxShadow: 85 | "0 4px 5px 0 rgba(76, 175, 80, 0.14), 0 1px 10px 0 rgba(76, 175, 80, 0.12), 0 2px 4px -1px rgba(76, 175, 80, 0.2)" 86 | }, 87 | "&:hover,&:focus": { 88 | zIndex: "2", 89 | cursor: "default" 90 | } 91 | }, 92 | warning: { 93 | "&,&:hover,&:focus": { 94 | backgroundColor: warningColor, 95 | borderColor: warningColor, 96 | color: "#FFFFFF", 97 | boxShadow: 98 | "0 4px 5px 0 rgba(255, 152, 0, 0.14), 0 1px 10px 0 rgba(255, 152, 0, 0.12), 0 2px 4px -1px rgba(255, 152, 0, 0.2)" 99 | }, 100 | "&:hover,&:focus": { 101 | zIndex: "2", 102 | cursor: "default" 103 | } 104 | }, 105 | danger: { 106 | "&,&:hover,&:focus": { 107 | backgroundColor: dangerColor, 108 | borderColor: dangerColor, 109 | color: "#FFFFFF", 110 | boxShadow: 111 | "0 4px 5px 0 rgba(244, 67, 54, 0.14), 0 1px 10px 0 rgba(244, 67, 54, 0.12), 0 2px 4px -1px rgba(244, 67, 54, 0.2)" 112 | }, 113 | "&:hover,&:focus": { 114 | zIndex: "2", 115 | cursor: "default" 116 | } 117 | }, 118 | disabled: { 119 | "&,&:hover,&:focus": { 120 | color: "#777", 121 | cursor: "not-allowed", 122 | backgroundColor: "#fff", 123 | borderColor: "#ddd" 124 | } 125 | } 126 | }; 127 | 128 | export default paginationStyle; 129 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/components/parallaxStyle.jsx: -------------------------------------------------------------------------------- 1 | const parallaxStyle = { 2 | parallax: { 3 | height: "90vh", 4 | maxHeight: "1000px", 5 | overflow: "hidden", 6 | position: "relative", 7 | backgroundPosition: "center center", 8 | backgroundSize: "cover", 9 | margin: "0", 10 | padding: "0", 11 | border: "0", 12 | display: "flex", 13 | alignItems: "center" 14 | }, 15 | filter: { 16 | "&:before": { 17 | background: "rgba(0, 0, 0, 0.5)" 18 | }, 19 | "&:after,&:before": { 20 | position: "absolute", 21 | zIndex: "1", 22 | width: "100%", 23 | height: "100%", 24 | display: "block", 25 | left: "0", 26 | top: "0", 27 | content: "''" 28 | } 29 | }, 30 | small: { 31 | height: "380px" 32 | } 33 | }; 34 | 35 | export default parallaxStyle; 36 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/components/snackbarContentStyle.jsx: -------------------------------------------------------------------------------- 1 | import { 2 | defaultFont, 3 | primaryBoxShadow, 4 | infoBoxShadow, 5 | successBoxShadow, 6 | warningBoxShadow, 7 | dangerBoxShadow, 8 | container 9 | } from "assets/jss/material-kit-react.jsx"; 10 | 11 | const snackbarContentStyle = { 12 | root: { 13 | ...defaultFont, 14 | position: "relative", 15 | padding: "20px 15px", 16 | lineHeight: "20px", 17 | marginBottom: "20px", 18 | fontSize: "14px", 19 | backgroundColor: "white", 20 | color: "#555555", 21 | borderRadius: "0px", 22 | maxWidth: "100%", 23 | minWidth: "auto", 24 | boxShadow: 25 | "0 12px 20px -10px rgba(255, 255, 255, 0.28), 0 4px 20px 0px rgba(0, 0, 0, 0.12), 0 7px 8px -5px rgba(255, 255, 255, 0.2)" 26 | }, 27 | info: { 28 | backgroundColor: "#00d3ee", 29 | color: "#ffffff", 30 | ...infoBoxShadow 31 | }, 32 | success: { 33 | backgroundColor: "#5cb860", 34 | color: "#ffffff", 35 | ...successBoxShadow 36 | }, 37 | warning: { 38 | backgroundColor: "#ffa21a", 39 | color: "#ffffff", 40 | ...warningBoxShadow 41 | }, 42 | danger: { 43 | backgroundColor: "#f55a4e", 44 | color: "#ffffff", 45 | ...dangerBoxShadow 46 | }, 47 | primary: { 48 | backgroundColor: "#af2cc5", 49 | color: "#ffffff", 50 | ...primaryBoxShadow 51 | }, 52 | message: { 53 | padding: "0", 54 | display: "block", 55 | maxWidth: "89%" 56 | }, 57 | close: { 58 | width: "14px", 59 | height: "14px" 60 | }, 61 | iconButton: { 62 | width: "24px", 63 | height: "24px", 64 | float: "right", 65 | fontSize: "1.5rem", 66 | fontWeight: "500", 67 | lineHeight: "1", 68 | position: "absolute", 69 | right: "-4px", 70 | top: "0", 71 | padding: "0" 72 | }, 73 | icon: { 74 | display: "block", 75 | float: "left", 76 | marginRight: "1.071rem" 77 | }, 78 | container: { 79 | ...container, 80 | position: "relative" 81 | } 82 | }; 83 | 84 | export default snackbarContentStyle; 85 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/components/typographyStyle.jsx: -------------------------------------------------------------------------------- 1 | import { 2 | defaultFont, 3 | primaryColor, 4 | infoColor, 5 | successColor, 6 | warningColor, 7 | dangerColor 8 | } from "assets/jss/material-kit-react.jsx"; 9 | 10 | const typographyStyle = { 11 | defaultFontStyle: { 12 | ...defaultFont, 13 | fontSize: "14px" 14 | }, 15 | defaultHeaderMargins: { 16 | marginTop: "20px", 17 | marginBottom: "10px" 18 | }, 19 | quote: { 20 | padding: "10px 20px", 21 | margin: "0 0 20px", 22 | fontSize: "17.5px", 23 | borderLeft: "5px solid #eee" 24 | }, 25 | quoteText: { 26 | margin: "0 0 10px", 27 | fontStyle: "italic" 28 | }, 29 | quoteAuthor: { 30 | display: "block", 31 | fontSize: "80%", 32 | lineHeight: "1.42857143", 33 | color: "#777" 34 | }, 35 | mutedText: { 36 | color: "#777" 37 | }, 38 | primaryText: { 39 | color: primaryColor 40 | }, 41 | infoText: { 42 | color: infoColor 43 | }, 44 | successText: { 45 | color: successColor 46 | }, 47 | warningText: { 48 | color: warningColor 49 | }, 50 | dangerText: { 51 | color: dangerColor 52 | }, 53 | smallText: { 54 | fontSize: "65%", 55 | fontWeight: "400", 56 | lineHeight: "1", 57 | color: "#777" 58 | } 59 | }; 60 | 61 | export default typographyStyle; 62 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/customCheckboxRadioSwitch.jsx: -------------------------------------------------------------------------------- 1 | import { 2 | primaryColor, 3 | dangerColor, 4 | roseColor, 5 | grayColor 6 | } from "assets/jss/material-kit-react.jsx"; 7 | 8 | const customCheckboxRadioSwitch = { 9 | checkRoot: { 10 | padding: "14px" 11 | }, 12 | radioRoot: { 13 | padding: "16px" 14 | }, 15 | checkboxAndRadio: { 16 | position: "relative", 17 | display: "block", 18 | marginTop: "10px", 19 | marginBottom: "10px" 20 | }, 21 | checkboxAndRadioHorizontal: { 22 | position: "relative", 23 | display: "block", 24 | "&:first-child": { 25 | marginTop: "10px" 26 | }, 27 | "&:not(:first-child)": { 28 | marginTop: "-14px" 29 | }, 30 | marginTop: "0", 31 | marginBottom: "0" 32 | }, 33 | checked: { 34 | color: primaryColor + "!important" 35 | }, 36 | checkedIcon: { 37 | width: "20px", 38 | height: "20px", 39 | border: "1px solid rgba(0, 0, 0, .54)", 40 | borderRadius: "3px" 41 | }, 42 | uncheckedIcon: { 43 | width: "0px", 44 | height: "0px", 45 | padding: "9px", 46 | border: "1px solid rgba(0, 0, 0, .54)", 47 | borderRadius: "3px" 48 | }, 49 | disabledCheckboxAndRadio: { 50 | opacity: "0.45" 51 | }, 52 | label: { 53 | cursor: "pointer", 54 | paddingLeft: "0", 55 | color: "rgba(0, 0, 0, 0.26)", 56 | fontSize: "14px", 57 | lineHeight: "1.428571429", 58 | fontWeight: "400", 59 | display: "inline-flex", 60 | transition: "0.3s ease all" 61 | }, 62 | labelHorizontal: { 63 | color: "rgba(0, 0, 0, 0.26)", 64 | cursor: "pointer", 65 | display: "inline-flex", 66 | fontSize: "14px", 67 | lineHeight: "1.428571429", 68 | fontWeight: "400", 69 | paddingTop: "39px", 70 | marginRight: "0", 71 | "@media (min-width: 992px)": { 72 | float: "right" 73 | } 74 | }, 75 | labelHorizontalRadioCheckbox: { 76 | paddingTop: "22px" 77 | }, 78 | labelLeftHorizontal: { 79 | color: "rgba(0, 0, 0, 0.26)", 80 | cursor: "pointer", 81 | display: "inline-flex", 82 | fontSize: "14px", 83 | lineHeight: "1.428571429", 84 | fontWeight: "400", 85 | paddingTop: "22px", 86 | marginRight: "0" 87 | }, 88 | labelError: { 89 | color: dangerColor 90 | }, 91 | radio: { 92 | color: primaryColor + "!important" 93 | }, 94 | radioChecked: { 95 | width: "16px", 96 | height: "16px", 97 | border: "1px solid " + primaryColor, 98 | borderRadius: "50%" 99 | }, 100 | radioUnchecked: { 101 | width: "0px", 102 | height: "0px", 103 | padding: "7px", 104 | border: "1px solid rgba(0, 0, 0, .54)", 105 | borderRadius: "50%" 106 | }, 107 | inlineChecks: { 108 | marginTop: "8px" 109 | }, 110 | iconCheckbox: { 111 | height: "116px", 112 | width: "116px", 113 | color: grayColor, 114 | "& > span:first-child": { 115 | borderWidth: "4px", 116 | borderStyle: "solid", 117 | borderColor: "#CCCCCC", 118 | textAlign: "center", 119 | verticalAlign: "middle", 120 | borderRadius: "50%", 121 | color: "inherit", 122 | margin: "0 auto 20px", 123 | transition: "all 0.2s" 124 | }, 125 | "&:hover": { 126 | color: roseColor, 127 | "& > span:first-child": { 128 | borderColor: roseColor 129 | } 130 | } 131 | }, 132 | iconCheckboxChecked: { 133 | color: roseColor, 134 | "& > span:first-child": { 135 | borderColor: roseColor 136 | } 137 | }, 138 | iconCheckboxIcon: { 139 | fontSize: "40px", 140 | lineHeight: "111px" 141 | }, 142 | switchBase: { 143 | color: primaryColor + "!important" 144 | }, 145 | switchIcon: { 146 | boxShadow: "0 1px 3px 1px rgba(0, 0, 0, 0.4)", 147 | color: "#FFFFFF !important", 148 | border: "1px solid rgba(0, 0, 0, .54)", 149 | transform: "translateX(-4px)!important" 150 | }, 151 | switchIconChecked: { 152 | borderColor: "#9c27b0", 153 | transform: "translateX(0px)!important" 154 | }, 155 | switchBar: { 156 | width: "30px", 157 | height: "15px", 158 | backgroundColor: "rgb(80, 80, 80)", 159 | borderRadius: "15px", 160 | opacity: "0.7!important" 161 | }, 162 | switchChecked: { 163 | "& + $switchBar": { 164 | backgroundColor: "rgba(156, 39, 176, 1) !important" 165 | } 166 | } 167 | }; 168 | 169 | export default customCheckboxRadioSwitch; 170 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/imagesStyles.jsx: -------------------------------------------------------------------------------- 1 | const imagesStyles = { 2 | imgFluid: { 3 | maxWidth: "100%", 4 | height: "auto" 5 | }, 6 | imgRounded: { 7 | borderRadius: "6px !important" 8 | }, 9 | imgRoundedCircle: { 10 | borderRadius: "50% !important" 11 | }, 12 | imgRaised: { 13 | boxShadow: 14 | "0 5px 15px -8px rgba(0, 0, 0, 0.24), 0 8px 10px -5px rgba(0, 0, 0, 0.2)" 15 | }, 16 | imgGallery: { 17 | width: "100%", 18 | marginBottom: "2.142rem" 19 | }, 20 | imgCardTop: { 21 | width: "100%", 22 | borderTopLeftRadius: "calc(.25rem - 1px)", 23 | borderTopRightRadius: "calc(.25rem - 1px)" 24 | }, 25 | imgCardBottom: { 26 | width: "100%", 27 | borderBottomLeftRadius: "calc(.25rem - 1px)", 28 | borderBottomRightRadius: "calc(.25rem - 1px)" 29 | }, 30 | imgCard: { 31 | width: "100%", 32 | borderRadius: "calc(.25rem - 1px)" 33 | }, 34 | imgCardOverlay: { 35 | position: "absolute", 36 | top: "0", 37 | right: "0", 38 | bottom: "0", 39 | left: "0", 40 | padding: "1.25rem" 41 | } 42 | }; 43 | 44 | export default imagesStyles; 45 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/modalStyle.jsx: -------------------------------------------------------------------------------- 1 | const modalStyle = { 2 | modal: { 3 | borderRadius: "6px" 4 | }, 5 | modalHeader: { 6 | borderBottom: "none", 7 | paddingTop: "24px", 8 | paddingRight: "24px", 9 | paddingBottom: "0", 10 | paddingLeft: "24px", 11 | minHeight: "16.43px" 12 | }, 13 | modalTitle: { 14 | margin: "0", 15 | lineHeight: "1.42857143" 16 | }, 17 | modalCloseButton: { 18 | color: "#999999", 19 | marginTop: "-12px", 20 | WebkitAppearance: "none", 21 | padding: "0", 22 | cursor: "pointer", 23 | background: "0 0", 24 | border: "0", 25 | fontSize: "inherit", 26 | opacity: ".9", 27 | textShadow: "none", 28 | fontWeight: "700", 29 | lineHeight: "1", 30 | float: "right" 31 | }, 32 | modalClose: { 33 | width: "16px", 34 | height: "16px" 35 | }, 36 | modalBody: { 37 | paddingTop: "24px", 38 | paddingRight: "24px", 39 | paddingBottom: "16px", 40 | paddingLeft: "24px", 41 | position: "relative" 42 | }, 43 | modalFooter: { 44 | padding: "15px", 45 | textAlign: "right", 46 | paddingTop: "0", 47 | margin: "0" 48 | }, 49 | modalFooterCenter: { 50 | marginLeft: "auto", 51 | marginRight: "auto" 52 | } 53 | }; 54 | 55 | export default modalStyle; 56 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/popoverStyles.jsx: -------------------------------------------------------------------------------- 1 | const popoverStyles = { 2 | popover: { 3 | padding: "0", 4 | boxShadow: 5 | "0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2)", 6 | lineHeight: "1.5em", 7 | background: "#fff", 8 | border: "none", 9 | borderRadius: "3px", 10 | display: "block", 11 | maxWidth: "276px", 12 | fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif', 13 | fontStyle: "normal", 14 | fontWeight: "400", 15 | textAlign: "start", 16 | textDecoration: "none", 17 | textShadow: "none", 18 | textTransform: "none", 19 | letterSpacing: "normal", 20 | wordBreak: "normal", 21 | wordSpacing: "normal", 22 | whiteSpace: "normal", 23 | lineBreak: "auto", 24 | fontSize: "0.875rem", 25 | wordWrap: "break-word" 26 | }, 27 | popoverBottom: { 28 | marginTop: "5px" 29 | }, 30 | popoverHeader: { 31 | backgroundColor: "#fff", 32 | border: "none", 33 | padding: "15px 15px 5px", 34 | fontSize: "1.125rem", 35 | margin: "0", 36 | color: "#555", 37 | borderTopLeftRadius: "calc(0.3rem - 1px)", 38 | borderTopRightRadius: "calc(0.3rem - 1px)" 39 | }, 40 | popoverBody: { 41 | padding: "10px 15px 15px", 42 | lineHeight: "1.4", 43 | color: "#555" 44 | } 45 | }; 46 | 47 | export default popoverStyles; 48 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/tooltipsStyle.jsx: -------------------------------------------------------------------------------- 1 | const tooltipsStyle = { 2 | tooltip: { 3 | padding: "10px 15px", 4 | minWidth: "130px", 5 | color: "#555555", 6 | lineHeight: "1.7em", 7 | background: "#FFFFFF", 8 | border: "none", 9 | borderRadius: "3px", 10 | boxShadow: 11 | "0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2)", 12 | maxWidth: "200px", 13 | textAlign: "center", 14 | fontFamily: '"Helvetica Neue",Helvetica,Arial,sans-serif', 15 | fontSize: "0.875em", 16 | fontStyle: "normal", 17 | fontWeight: "400", 18 | textShadow: "none", 19 | textTransform: "none", 20 | letterSpacing: "normal", 21 | wordBreak: "normal", 22 | wordSpacing: "normal", 23 | wordWrap: "normal", 24 | whiteSpace: "normal", 25 | lineBreak: "auto" 26 | } 27 | }; 28 | 29 | export default tooltipsStyle; 30 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/views/components.jsx: -------------------------------------------------------------------------------- 1 | import { container } from "assets/jss/material-kit-react.jsx"; 2 | 3 | const componentsStyle = { 4 | container, 5 | brand: { 6 | color: "#FFFFFF", 7 | textAlign: "left" 8 | }, 9 | title: { 10 | fontSize: "4.2rem", 11 | fontWeight: "600", 12 | display: "inline-block", 13 | position: "relative" 14 | }, 15 | subtitle: { 16 | fontSize: "1.313rem", 17 | maxWidth: "500px", 18 | margin: "10px 0 0" 19 | }, 20 | main: { 21 | background: "#FFFFFF", 22 | position: "relative", 23 | zIndex: "3" 24 | }, 25 | mainRaised: { 26 | margin: "-60px 30px 0px", 27 | borderRadius: "6px", 28 | boxShadow: 29 | "0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2)" 30 | }, 31 | link: { 32 | textDecoration: "none" 33 | }, 34 | textCenter: { 35 | textAlign: "center" 36 | } 37 | }; 38 | 39 | export default componentsStyle; 40 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/views/componentsSections/basicsStyle.jsx: -------------------------------------------------------------------------------- 1 | import { container, title } from "assets/jss/material-kit-react.jsx"; 2 | import customCheckboxRadioSwitch from "assets/jss/material-kit-react/customCheckboxRadioSwitch.jsx"; 3 | 4 | const basicsStyle = { 5 | sections: { 6 | padding: "70px 0" 7 | }, 8 | container, 9 | title: { 10 | ...title, 11 | marginTop: "30px", 12 | minHeight: "32px", 13 | textDecoration: "none" 14 | }, 15 | space50: { 16 | height: "50px", 17 | display: "block" 18 | }, 19 | space70: { 20 | height: "70px", 21 | display: "block" 22 | }, 23 | icons: { 24 | width: "17px", 25 | height: "17px", 26 | color: "#FFFFFF" 27 | }, 28 | ...customCheckboxRadioSwitch 29 | }; 30 | 31 | export default basicsStyle; 32 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/views/componentsSections/carouselStyle.jsx: -------------------------------------------------------------------------------- 1 | import { container } from "assets/jss/material-kit-react.jsx"; 2 | 3 | const carouselStyle = { 4 | section: { 5 | padding: "70px 0" 6 | }, 7 | container, 8 | marginAuto: { 9 | marginLeft: "auto !important", 10 | marginRight: "auto !important" 11 | } 12 | }; 13 | 14 | export default carouselStyle; 15 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/views/componentsSections/completedStyle.jsx: -------------------------------------------------------------------------------- 1 | import { container } from "assets/jss/material-kit-react"; 2 | 3 | const completedStyle = { 4 | section: { 5 | padding: "70px 0" 6 | }, 7 | container: { 8 | ...container, 9 | textAlign: "center !important" 10 | } 11 | }; 12 | 13 | export default completedStyle; 14 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/views/componentsSections/downloadStyle.jsx: -------------------------------------------------------------------------------- 1 | import { container } from "assets/jss/material-kit-react.jsx"; 2 | 3 | const downloadStyle = { 4 | section: { 5 | padding: "70px 0" 6 | }, 7 | container, 8 | textCenter: { 9 | textAlign: "center" 10 | }, 11 | sharingArea: { 12 | marginTop: "80px" 13 | }, 14 | socials: { 15 | maxWidth: "24px", 16 | marginTop: "0", 17 | width: "100%", 18 | transform: "none", 19 | left: "0", 20 | top: "0", 21 | height: "100%", 22 | fontSize: "20px", 23 | marginRight: "4px" 24 | } 25 | }; 26 | 27 | export default downloadStyle; 28 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/views/componentsSections/exampleStyle.jsx: -------------------------------------------------------------------------------- 1 | import { conatinerFluid } from "assets/jss/material-kit-react.jsx"; 2 | 3 | import imagesStyle from "assets/jss/material-kit-react/imagesStyles.jsx"; 4 | 5 | const exampleStyle = { 6 | section: { 7 | padding: "70px 0" 8 | }, 9 | container: { 10 | ...conatinerFluid, 11 | textAlign: "center !important" 12 | }, 13 | ...imagesStyle, 14 | link: { 15 | textDecoration: "none" 16 | } 17 | }; 18 | 19 | export default exampleStyle; 20 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/views/componentsSections/javascriptStyles.jsx: -------------------------------------------------------------------------------- 1 | import { container, title } from "assets/jss/material-kit-react.jsx"; 2 | 3 | import modalStyle from "assets/jss/material-kit-react/modalStyle.jsx"; 4 | import tooltipsStyle from "assets/jss/material-kit-react/tooltipsStyle.jsx"; 5 | import popoverStyles from "assets/jss/material-kit-react/popoverStyles.jsx"; 6 | 7 | const javascriptStyles = { 8 | section: { 9 | padding: "70px 0 0" 10 | }, 11 | container, 12 | title: { 13 | ...title, 14 | marginTop: "30px", 15 | minHeight: "32px", 16 | textDecoration: "none" 17 | }, 18 | icon: { 19 | width: "17px", 20 | height: "17px", 21 | marginRight: "4px" 22 | }, 23 | ...modalStyle, 24 | label: { 25 | color: "rgba(0, 0, 0, 0.26)", 26 | cursor: "pointer", 27 | display: "inline-flex", 28 | fontSize: "14px", 29 | transition: "0.3s ease all", 30 | lineHeight: "1.428571429", 31 | fontWeight: "400", 32 | paddingLeft: "0" 33 | }, 34 | ...tooltipsStyle, 35 | ...popoverStyles 36 | }; 37 | 38 | export default javascriptStyles; 39 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/views/componentsSections/loginStyle.jsx: -------------------------------------------------------------------------------- 1 | import { container } from "assets/jss/material-kit-react.jsx"; 2 | 3 | import image from "assets/img/sign.jpg"; 4 | 5 | const loginStyle = { 6 | section: { 7 | minHeight: "110vh", 8 | maxHeight: "1600px", 9 | overflow: "hidden", 10 | padding: "70px 0", 11 | backgroundPosition: "top center", 12 | backgroundSize: "cover", 13 | margin: "0", 14 | border: "0", 15 | display: "flex", 16 | alignItems: "center", 17 | backgroundImage: "url(" + image + ")" 18 | }, 19 | container, 20 | form: { 21 | margin: "0" 22 | }, 23 | cardHeader: { 24 | width: "auto", 25 | textAlign: "center", 26 | marginLeft: "20px", 27 | marginRight: "20px", 28 | marginTop: "-40px", 29 | padding: "20px 0", 30 | marginBottom: "15px" 31 | }, 32 | socialIcons: { 33 | maxWidth: "24px", 34 | marginTop: "0", 35 | width: "100%", 36 | transform: "none", 37 | left: "0", 38 | top: "0", 39 | height: "100%", 40 | lineHeight: "41px", 41 | fontSize: "20px" 42 | }, 43 | divider: { 44 | marginTop: "30px", 45 | marginBottom: "0px", 46 | textAlign: "center" 47 | }, 48 | cardFooter: { 49 | paddingTop: "0rem", 50 | border: "0", 51 | borderRadius: "6px", 52 | justifyContent: "center !important" 53 | }, 54 | socialLine: { 55 | marginTop: "1rem", 56 | textAlign: "center", 57 | padding: "0" 58 | }, 59 | inputIconsColor: { 60 | color: "#495057" 61 | } 62 | }; 63 | 64 | export default loginStyle; 65 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/views/componentsSections/navbarsStyle.jsx: -------------------------------------------------------------------------------- 1 | import { container, title } from "assets/jss/material-kit-react.jsx"; 2 | import headerLinksStyle from "assets/jss/material-kit-react/components/headerLinksStyle.jsx"; 3 | 4 | const navbarsStyle = theme => ({ 5 | section: { 6 | padding: "70px 0", 7 | paddingTop: "0" 8 | }, 9 | container, 10 | title: { 11 | ...title, 12 | marginTop: "30px", 13 | minHeight: "32px", 14 | textDecoration: "none" 15 | }, 16 | navbar: { 17 | marginBottom: "-20px", 18 | zIndex: "100", 19 | position: "relative", 20 | overflow: "hidden", 21 | "& header": { 22 | borderRadius: "0" 23 | } 24 | }, 25 | navigation: { 26 | backgroundPosition: "center center", 27 | backgroundSize: "cover", 28 | marginTop: "0", 29 | minHeight: "740px" 30 | }, 31 | formControl: { 32 | margin: "0 !important", 33 | paddingTop: "0" 34 | }, 35 | inputRootCustomClasses: { 36 | margin: "0!important" 37 | }, 38 | searchIcon: { 39 | width: "20px", 40 | height: "20px", 41 | color: "inherit" 42 | }, 43 | ...headerLinksStyle(theme), 44 | img: { 45 | width: "40px", 46 | height: "40px", 47 | borderRadius: "50%" 48 | }, 49 | imageDropdownButton: { 50 | padding: "0px", 51 | top: "4px", 52 | borderRadius: "50%", 53 | marginLeft: "5px" 54 | } 55 | }); 56 | 57 | export default navbarsStyle; 58 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/views/componentsSections/notificationsStyles.jsx: -------------------------------------------------------------------------------- 1 | import { container, title } from "assets/jss/material-kit-react.jsx"; 2 | 3 | const notificationsStyles = { 4 | section: { 5 | backgroundColor: "#FFFFFF", 6 | display: "block", 7 | width: "100%", 8 | position: "relative", 9 | padding: "0" 10 | }, 11 | title: { 12 | ...title, 13 | marginTop: "30px", 14 | minHeight: "32px", 15 | textDecoration: "none" 16 | }, 17 | container 18 | }; 19 | 20 | export default notificationsStyles; 21 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/views/componentsSections/pillsStyle.jsx: -------------------------------------------------------------------------------- 1 | import { container, title } from "assets/jss/material-kit-react.jsx"; 2 | 3 | const pillsStyle = { 4 | section: { 5 | padding: "70px 0" 6 | }, 7 | container, 8 | title: { 9 | ...title, 10 | marginTop: "30px", 11 | minHeight: "32px", 12 | textDecoration: "none" 13 | } 14 | }; 15 | 16 | export default pillsStyle; 17 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/views/componentsSections/tabsStyle.jsx: -------------------------------------------------------------------------------- 1 | import { container } from "assets/jss/material-kit-react.jsx"; 2 | 3 | const tabsStyle = { 4 | section: { 5 | background: "#EEEEEE", 6 | padding: "70px 0" 7 | }, 8 | container, 9 | textCenter: { 10 | textAlign: "center" 11 | } 12 | }; 13 | 14 | export default tabsStyle; 15 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/views/componentsSections/typographyStyle.jsx: -------------------------------------------------------------------------------- 1 | import { container, title } from "assets/jss/material-kit-react.jsx"; 2 | 3 | import imagesStyles from "assets/jss/material-kit-react/imagesStyles.jsx"; 4 | 5 | const typographyStyle = { 6 | section: { 7 | padding: "70px 0" 8 | }, 9 | container, 10 | space50: { 11 | height: "50px", 12 | display: "block" 13 | }, 14 | title: { 15 | ...title, 16 | marginTop: "30px", 17 | minHeight: "32px", 18 | textDecoration: "none" 19 | }, 20 | typo: { 21 | paddingLeft: "25%", 22 | marginBottom: "40px", 23 | position: "relative", 24 | width: "100%" 25 | }, 26 | note: { 27 | fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif', 28 | bottom: "10px", 29 | color: "#c0c1c2", 30 | display: "block", 31 | fontWeight: "400", 32 | fontSize: "13px", 33 | lineHeight: "13px", 34 | left: "0", 35 | marginLeft: "20px", 36 | position: "absolute", 37 | width: "260px" 38 | }, 39 | marginLeft: { 40 | marginLeft: "auto !important" 41 | }, 42 | ...imagesStyles 43 | }; 44 | 45 | export default typographyStyle; 46 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/views/landingPage.jsx: -------------------------------------------------------------------------------- 1 | import { container, title } from "assets/jss/material-kit-react.jsx"; 2 | 3 | const landingPageStyle = { 4 | container: { 5 | zIndex: "12", 6 | color: "#FFFFFF", 7 | ...container 8 | }, 9 | title: { 10 | ...title, 11 | display: "inline-block", 12 | position: "relative", 13 | marginTop: "30px", 14 | minHeight: "32px", 15 | color: "#FFFFFF", 16 | textDecoration: "none" 17 | }, 18 | subtitle: { 19 | fontSize: "1.313rem", 20 | maxWidth: "500px", 21 | margin: "10px auto 0" 22 | }, 23 | main: { 24 | background: "#FFFFFF", 25 | position: "relative", 26 | zIndex: "3" 27 | }, 28 | mainRaised: { 29 | margin: "-60px 30px 0px", 30 | borderRadius: "6px", 31 | boxShadow: 32 | "0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2)" 33 | } 34 | }; 35 | 36 | export default landingPageStyle; 37 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/views/landingPageSections/productStyle.jsx: -------------------------------------------------------------------------------- 1 | import { title } from "assets/jss/material-kit-react.jsx"; 2 | 3 | const productStyle = { 4 | section: { 5 | padding: "70px 0", 6 | textAlign: "center" 7 | }, 8 | title: { 9 | ...title, 10 | marginBottom: "1rem", 11 | marginTop: "30px", 12 | minHeight: "32px", 13 | textDecoration: "none" 14 | }, 15 | description: { 16 | color: "#999" 17 | } 18 | }; 19 | 20 | export default productStyle; 21 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/views/landingPageSections/teamStyle.jsx: -------------------------------------------------------------------------------- 1 | import { cardTitle, title } from "assets/jss/material-kit-react.jsx"; 2 | import imagesStyle from "assets/jss/material-kit-react/imagesStyles.jsx"; 3 | 4 | const teamStyle = { 5 | section: { 6 | padding: "70px 0", 7 | textAlign: "center" 8 | }, 9 | title: { 10 | ...title, 11 | marginBottom: "1rem", 12 | marginTop: "30px", 13 | minHeight: "32px", 14 | textDecoration: "none" 15 | }, 16 | ...imagesStyle, 17 | itemGrid: { 18 | marginLeft: "auto", 19 | marginRight: "auto" 20 | }, 21 | cardTitle, 22 | smallTitle: { 23 | color: "#6c757d" 24 | }, 25 | description: { 26 | color: "#999" 27 | }, 28 | justifyCenter: { 29 | justifyContent: "center !important" 30 | }, 31 | socials: { 32 | marginTop: "0", 33 | width: "100%", 34 | transform: "none", 35 | left: "0", 36 | top: "0", 37 | height: "100%", 38 | lineHeight: "41px", 39 | fontSize: "20px", 40 | color: "#999" 41 | }, 42 | margin5: { 43 | margin: "5px" 44 | } 45 | }; 46 | 47 | export default teamStyle; 48 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/views/landingPageSections/workStyle.jsx: -------------------------------------------------------------------------------- 1 | import { title } from "assets/jss/material-kit-react.jsx"; 2 | 3 | const workStyle = { 4 | section: { 5 | padding: "70px 0" 6 | }, 7 | title: { 8 | ...title, 9 | marginBottom: "50px", 10 | marginTop: "30px", 11 | minHeight: "32px", 12 | textDecoration: "none", 13 | textAlign: "center" 14 | }, 15 | description: { 16 | color: "#999", 17 | textAlign: "center" 18 | }, 19 | textCenter: { 20 | textAlign: "center" 21 | }, 22 | textArea: { 23 | marginRight: "15px", 24 | marginLeft: "15px" 25 | } 26 | }; 27 | 28 | export default workStyle; 29 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/views/loginPage.jsx: -------------------------------------------------------------------------------- 1 | import { container } from "assets/jss/material-kit-react.jsx"; 2 | 3 | const signupPageStyle = { 4 | container: { 5 | ...container, 6 | zIndex: "2", 7 | position: "relative", 8 | paddingTop: "20vh", 9 | color: "#FFFFFF" 10 | }, 11 | cardHidden: { 12 | opacity: "0", 13 | transform: "translate3d(0, -60px, 0)" 14 | }, 15 | pageHeader: { 16 | minHeight: "100vh", 17 | height: "auto", 18 | display: "inherit", 19 | position: "relative", 20 | margin: "0", 21 | padding: "0", 22 | border: "0", 23 | alignItems: "center", 24 | "&:before": { 25 | background: "rgba(0, 0, 0, 0.5)" 26 | }, 27 | "&:before,&:after": { 28 | position: "absolute", 29 | zIndex: "1", 30 | width: "100%", 31 | height: "100%", 32 | display: "block", 33 | left: "0", 34 | top: "0", 35 | content: '""' 36 | }, 37 | "& footer li a,& footer li a:hover,& footer li a:active": { 38 | color: "#FFFFFF" 39 | }, 40 | "& footer": { 41 | position: "absolute", 42 | bottom: "0", 43 | width: "100%" 44 | } 45 | }, 46 | form: { 47 | margin: "0" 48 | }, 49 | cardHeader: { 50 | width: "auto", 51 | textAlign: "center", 52 | marginLeft: "20px", 53 | marginRight: "20px", 54 | marginTop: "-40px", 55 | padding: "20px 0", 56 | marginBottom: "15px" 57 | }, 58 | socialIcons: { 59 | maxWidth: "24px", 60 | marginTop: "0", 61 | width: "100%", 62 | transform: "none", 63 | left: "0", 64 | top: "0", 65 | height: "100%", 66 | lineHeight: "41px", 67 | fontSize: "20px" 68 | }, 69 | divider: { 70 | marginTop: "30px", 71 | marginBottom: "0px", 72 | textAlign: "center" 73 | }, 74 | cardFooter: { 75 | paddingTop: "0rem", 76 | border: "0", 77 | borderRadius: "6px", 78 | justifyContent: "center !important" 79 | }, 80 | socialLine: { 81 | marginTop: "1rem", 82 | textAlign: "center", 83 | padding: "0" 84 | }, 85 | inputIconsColor: { 86 | color: "#495057" 87 | } 88 | }; 89 | 90 | export default signupPageStyle; 91 | -------------------------------------------------------------------------------- /src/assets/jss/material-kit-react/views/profilePage.jsx: -------------------------------------------------------------------------------- 1 | import { container, title } from "assets/jss/material-kit-react.jsx"; 2 | 3 | import imagesStyle from "assets/jss/material-kit-react/imagesStyles.jsx"; 4 | 5 | const profilePageStyle = { 6 | container, 7 | profile: { 8 | textAlign: "center", 9 | "& img": { 10 | maxWidth: "160px", 11 | width: "100%", 12 | margin: "0 auto", 13 | transform: "translate3d(0, -50%, 0)" 14 | } 15 | }, 16 | description: { 17 | margin: "1.071rem auto 0", 18 | maxWidth: "600px", 19 | color: "#999", 20 | textAlign: "center !important" 21 | }, 22 | name: { 23 | marginTop: "-80px" 24 | }, 25 | ...imagesStyle, 26 | main: { 27 | background: "#FFFFFF", 28 | position: "relative", 29 | zIndex: "3" 30 | }, 31 | mainRaised: { 32 | margin: "-60px 30px 0px", 33 | borderRadius: "6px", 34 | boxShadow: 35 | "0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2)" 36 | }, 37 | title: { 38 | ...title, 39 | display: "inline-block", 40 | position: "relative", 41 | marginTop: "30px", 42 | minHeight: "32px", 43 | textDecoration: "none" 44 | }, 45 | socials: { 46 | marginTop: "0", 47 | width: "100%", 48 | transform: "none", 49 | left: "0", 50 | top: "0", 51 | height: "100%", 52 | lineHeight: "41px", 53 | fontSize: "20px", 54 | color: "#999" 55 | }, 56 | navWrapper: { 57 | margin: "20px auto 50px auto", 58 | textAlign: "center" 59 | } 60 | }; 61 | 62 | export default profilePageStyle; 63 | -------------------------------------------------------------------------------- /src/assets/scss/core/_misc.scss: -------------------------------------------------------------------------------- 1 | html * { 2 | -webkit-font-smoothing: antialiased; 3 | -moz-osx-font-smoothing: grayscale; 4 | } 5 | body { 6 | font-size: 1rem; 7 | } 8 | body, 9 | h1, 10 | h2, 11 | h3, 12 | h4, 13 | h5, 14 | h6 { 15 | font-family: "Roboto", "Helvetica", "Arial", sans-serif; 16 | font-weight: 300; 17 | line-height: 1.5em; 18 | } 19 | h1, 20 | h2, 21 | h3, 22 | h4, 23 | h5, 24 | h6 { 25 | color: inherit; 26 | } 27 | h1, 28 | h2, 29 | h3 { 30 | margin-top: 20px; 31 | margin-bottom: 10px; 32 | } 33 | h4, 34 | h5, 35 | h6 { 36 | margin-top: 10px; 37 | margin-bottom: 10px; 38 | } 39 | h1 { 40 | font-size: 3.3125rem; 41 | line-height: 1.15em; 42 | } 43 | h2 { 44 | font-size: 2.25rem; 45 | line-height: 1.5em; 46 | } 47 | h3 { 48 | font-size: 1.5625rem; 49 | line-height: 1.4em; 50 | } 51 | h4 { 52 | font-size: 1.125rem; 53 | line-height: 1.5em; 54 | } 55 | h5 { 56 | font-size: 1.0625rem; 57 | line-height: 1.55em; 58 | } 59 | h6 { 60 | font-size: 0.75rem; 61 | text-transform: uppercase; 62 | font-weight: 500; 63 | } 64 | p { 65 | font-size: 14px; 66 | margin: 0 0 10px; 67 | } 68 | html { 69 | font-family: sans-serif; 70 | line-height: 1.15; 71 | -webkit-text-size-adjust: 100%; 72 | -ms-text-size-adjust: 100%; 73 | -ms-overflow-style: scrollbar; 74 | -webkit-tap-highlight-color: transparent; 75 | } 76 | body { 77 | background-color: #e5e5e5; 78 | color: $black-color; 79 | margin: 0; 80 | font-size: 1rem; 81 | text-align: left; 82 | } 83 | 84 | legend { 85 | border-bottom: 0; 86 | } 87 | 88 | // Prevent highlight on mobile 89 | * { 90 | -webkit-tap-highlight-color: rgba(255, 255, 255, 0); 91 | -webkit-tap-highlight-color: transparent; 92 | box-sizing: border-box; 93 | &:focus { 94 | outline: 0; 95 | } 96 | } 97 | 98 | a { 99 | color: $link-color; 100 | text-decoration: none; 101 | background-color: transparent; 102 | &:hover, 103 | &:focus { 104 | color: darken($link-color, 5%); 105 | text-decoration: none; 106 | } 107 | } 108 | 109 | label { 110 | font-size: 14px; 111 | line-height: 1.42857; 112 | color: $checkboxes-text-color; 113 | font-weight: 400; 114 | } 115 | small { 116 | font-size: 75%; 117 | color: #777; 118 | font-weight: 400; 119 | } 120 | img { 121 | vertical-align: middle; 122 | border-style: none; 123 | } 124 | form { 125 | margin-bottom: 1.125rem; 126 | } 127 | -------------------------------------------------------------------------------- /src/assets/scss/core/_mixins.scss: -------------------------------------------------------------------------------- 1 | @import "mixins/colored-shadows"; 2 | -------------------------------------------------------------------------------- /src/assets/scss/core/_variables.scss: -------------------------------------------------------------------------------- 1 | @import "variables/colors"; 2 | @import "variables/shadow"; 3 | 4 | @import "variables/bootstrap-material-design-base"; 5 | 6 | // Customized BS variables 7 | @import "variables/brand"; 8 | 9 | // import their vars after customization for use below 10 | $enable-flex: true; // fully adopt flexbox layouts 11 | $enable-shadows: true; // enable shadows, set to false to turn off shadows 12 | 13 | // // Core Bootstrap Variables 14 | @import "variables/functions"; 15 | @import "variables/variables"; 16 | 17 | @import "variables/bootstrap-material-design"; 18 | -------------------------------------------------------------------------------- /src/assets/scss/core/mixins/_colored-shadows.scss: -------------------------------------------------------------------------------- 1 | @mixin shadow-big() { 2 | box-shadow: 0 16px 38px -12px rgba(0, 0, 0, $bmd-shadow-penumbra-opacity * 4), 3 | 0 4px 25px 0px rgba(0, 0, 0, $bmd-shadow-ambient-opacity), 4 | 0 8px 10px -5px rgba(0, 0, 0, $bmd-shadow-umbra-opacity); 5 | } 6 | 7 | @mixin shadow-big-image() { 8 | // new box shadow optimized for Tables and Phones 9 | box-shadow: 0 5px 15px -8px rgba(0, 0, 0, $bmd-shadow-ambient-opacity * 2), 10 | 0 8px 10px -5px rgba(0, 0, 0, $bmd-shadow-umbra-opacity); 11 | } 12 | 13 | @mixin shadow-big-navbar() { 14 | box-shadow: 0 10px 20px -12px rgba(0, 0, 0, $bmd-shadow-penumbra-opacity * 3), 15 | 0 3px 20px 0px rgba(0, 0, 0, $bmd-shadow-ambient-opacity), 16 | 0 8px 10px -5px rgba(0, 0, 0, $bmd-shadow-umbra-opacity); 17 | } 18 | 19 | @mixin shadow-big-color($color) { 20 | // new box shadow optimized for Tables and Phones 21 | box-shadow: 0 5px 20px 0px rgba(0, 0, 0, 0.2), 22 | 0 13px 24px -11px rgba($color, 0.6); 23 | } 24 | 25 | @mixin shadow-small-color($color) { 26 | // new box shadow optimized for Tablets and Phones 27 | box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 28 | 0 7px 10px -5px rgba($color, 0.4); 29 | } 30 | 31 | @mixin shadow-navbar-color($color) { 32 | // new box shadow optimized for Tablets and Phones 33 | 34 | @if ($color == $white-color) { 35 | box-shadow: 0 4px 18px 0px rgba(0, 0, 0, 0.12), 36 | 0 7px 10px -5px rgba(0, 0, 0, 0.15); 37 | } @else { 38 | box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 39 | 0 7px 12px -5px rgba($color, 0.46); 40 | } 41 | } 42 | 43 | @mixin shadow-2dp() { 44 | box-shadow: 0 2px 2px 0 rgba(0, 0, 0, $bmd-shadow-penumbra-opacity), 45 | 0 3px 1px -2px rgba(0, 0, 0, $bmd-shadow-ambient-opacity), 46 | 0 1px 5px 0 rgba(0, 0, 0, $bmd-shadow-umbra-opacity); 47 | } 48 | 49 | @mixin shadow-4dp() { 50 | box-shadow: 0 4px 5px 0 rgba(0, 0, 0, $bmd-shadow-penumbra-opacity), 51 | 0 1px 10px 0 rgba(0, 0, 0, $bmd-shadow-ambient-opacity), 52 | 0 2px 4px -1px rgba(0, 0, 0, $bmd-shadow-umbra-opacity); 53 | } 54 | 55 | @mixin shadow-6dp() { 56 | box-shadow: 0 6px 10px 0 rgba(0, 0, 0, $bmd-shadow-penumbra-opacity), 57 | 0 1px 18px 0 rgba(0, 0, 0, $bmd-shadow-ambient-opacity), 58 | 0 3px 5px -1px rgba(0, 0, 0, $bmd-shadow-umbra-opacity); 59 | } 60 | 61 | @mixin shadow-8dp() { 62 | box-shadow: 0 8px 10px 1px rgba(0, 0, 0, $bmd-shadow-penumbra-opacity), 63 | 0 3px 14px 2px rgba(0, 0, 0, $bmd-shadow-ambient-opacity), 64 | 0 5px 5px -3px rgba(0, 0, 0, $bmd-shadow-umbra-opacity); 65 | } 66 | 67 | @mixin shadow-16dp() { 68 | box-shadow: 0 16px 24px 2px rgba(0, 0, 0, $bmd-shadow-penumbra-opacity), 69 | 0 6px 30px 5px rgba(0, 0, 0, $bmd-shadow-ambient-opacity), 70 | 0 8px 10px -5px rgba(0, 0, 0, $bmd-shadow-umbra-opacity); 71 | } 72 | 73 | @mixin shadow-2dp-color($color) { 74 | box-shadow: 0 2px 2px 0 rgba($color, $bmd-shadow-penumbra-opacity), 75 | 0 3px 1px -2px rgba($color, $bmd-shadow-umbra-opacity), 76 | 0 1px 5px 0 rgba($color, $bmd-shadow-ambient-opacity); 77 | } 78 | 79 | @mixin shadow-4dp-color($color) { 80 | box-shadow: 0 4px 5px 0 rgba($color, $bmd-shadow-penumbra-opacity), 81 | 0 1px 10px 0 rgba($color, $bmd-shadow-ambient-opacity), 82 | 0 2px 4px -1px rgba($color, $bmd-shadow-umbra-opacity); 83 | } 84 | 85 | @mixin shadow-8dp-color($color) { 86 | box-shadow: 0 8px 10px 1px rgba($color, $bmd-shadow-penumbra-opacity), 87 | 0 3px 14px 2px rgba(0, 0, 0, $bmd-shadow-ambient-opacity), 88 | 0 5px 5px -3px rgba($color, $bmd-shadow-umbra-opacity); 89 | } 90 | 91 | @mixin shadow-16dp-color($color) { 92 | box-shadow: 0 16px 24px 2px rgba($color, $bmd-shadow-penumbra-opacity), 93 | 0 6px 30px 5px rgba(0, 0, 0, $bmd-shadow-ambient-opacity), 94 | 0 8px 10px -5px rgba($color, $bmd-shadow-umbra-opacity); 95 | } 96 | 97 | @mixin button-shadow-color($color) { 98 | box-shadow: 0 14px 26px -12px rgba($color, $bmd-shadow-penumbra-opacity * 3), 99 | 0 4px 23px 0px rgba(0, 0, 0, $bmd-shadow-ambient-opacity), 100 | 0 8px 10px -5px rgba($color, $bmd-shadow-umbra-opacity); 101 | } 102 | 103 | @mixin shadow-z-1() { 104 | box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.12), 0 1px 6px 0 rgba(0, 0, 0, 0.12); 105 | } 106 | 107 | @mixin shadow-z-1-hover() { 108 | box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); 109 | } 110 | 111 | @mixin shadow-z-2() { 112 | box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); 113 | } 114 | 115 | @mixin shadow-z-3() { 116 | box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 117 | 0 17px 50px 0 rgba(0, 0, 0, 0.19); 118 | } 119 | 120 | @mixin shadow-z-4() { 121 | box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 122 | 0 25px 55px 0 rgba(0, 0, 0, 0.21); 123 | } 124 | 125 | @mixin shadow-z-5() { 126 | box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 127 | 0 40px 77px 0 rgba(0, 0, 0, 0.22); 128 | } 129 | -------------------------------------------------------------------------------- /src/assets/scss/core/variables/_bootstrap-material-design-base.scss: -------------------------------------------------------------------------------- 1 | $gray-lighter: rgba($black, 0.12) !default; 2 | $gray-light: #999 !default; 3 | $gray-alpha: 0.54 !default; 4 | $gray: #555 !default; // spec color 5 | $gray-dark: rgba( 6 | $black, 7 | 0.87 8 | ) !default; // used for text color - others use grey-600 which is considerably lighter 9 | 10 | $bmd-font-weight-base: 400; 11 | 12 | // wondering if any of these could still be refactored out, but are definitely in use. 13 | $bmd-inverse: rgba($white, 1) !default; 14 | $bmd-inverse-light: rgba($white, 0.84) !default; 15 | $bmd-inverse-lighter: rgba($white, 0.54) !default; 16 | 17 | $bmd-label-color: $gray-color !default; 18 | $bmd-label-color-inner-focus: $gray !default; // e.g. radio label or text-muted not a control-label which is primary 19 | 20 | $border-radius-base: 3px !default; 21 | $border-radius-small: 2px !default; 22 | $border-radius-large: 6px !default; 23 | $border-radius-huge: 10px !default; 24 | $border-radius-label: 12px !default; 25 | $border-radius-extreme: 30px !default; 26 | 27 | // Typography elements 28 | $mdb-font-family: "Roboto", "Helvetica", "Arial", sans-serif !default; 29 | $mdb-text-color-light: $white !default; 30 | $mdb-text-color-light-hex: $white !default; // for contrast function in inverse 31 | $mdb-text-color-primary: unquote("rgba(#{$rgb-black}, 0.87)") !default; 32 | $mdb-text-color-primary-hex: $black !default; // for contrast function in inverse 33 | $icon-color: rgba(0, 0, 0, 0.5) !default; 34 | 35 | $mdb-label-color: unquote("rgba(#{$rgb-black}, 0.26)") !default; 36 | $mdb-label-color-toggle-focus: unquote("rgba(#{$rgb-black}, .54)") !default; 37 | -------------------------------------------------------------------------------- /src/assets/scss/core/variables/_brand.scss: -------------------------------------------------------------------------------- 1 | // Bootstrap brand color customization 2 | $brand-primary: $purple !default; 3 | $brand-success: $green !default; 4 | $brand-danger: $red !default; 5 | $brand-warning: $orange !default; 6 | $brand-info: $cyan !default; 7 | $brand-rose: $pink !default; 8 | -------------------------------------------------------------------------------- /src/assets/scss/core/variables/_functions.scss: -------------------------------------------------------------------------------- 1 | // Bootstrap functions 2 | // 3 | // Utility mixins and functions for evalutating source code across our variables, maps, and mixins. 4 | 5 | // Ascending 6 | // Used to evaluate Sass maps like our grid breakpoints. 7 | @mixin _assert-ascending($map, $map-name) { 8 | $prev-key: null; 9 | $prev-num: null; 10 | @each $key, $num in $map { 11 | @if $prev-num == null { 12 | // Do nothing 13 | } @else if not comparable($prev-num, $num) { 14 | @warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !"; 15 | } @else if $prev-num >= $num { 16 | @warn "Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !"; 17 | } 18 | $prev-key: $key; 19 | $prev-num: $num; 20 | } 21 | } 22 | 23 | // Starts at zero 24 | // Another grid mixin that ensures the min-width of the lowest breakpoint starts at 0. 25 | @mixin _assert-starts-at-zero($map) { 26 | $values: map-values($map); 27 | $first-value: nth($values, 1); 28 | @if $first-value != 0 { 29 | @warn "First breakpoint in `$grid-breakpoints` must start at 0, but starts at #{$first-value}."; 30 | } 31 | } 32 | 33 | // Replace `$search` with `$replace` in `$string` 34 | // Used on our SVG icon backgrounds for custom forms. 35 | // 36 | // @author Hugo Giraudel 37 | // @param {String} $string - Initial string 38 | // @param {String} $search - Substring to replace 39 | // @param {String} $replace ('') - New value 40 | // @return {String} - Updated string 41 | @function str-replace($string, $search, $replace: "") { 42 | $index: str-index($string, $search); 43 | 44 | @if $index { 45 | @return str-slice($string, 1, $index - 1) + $replace + 46 | str-replace( 47 | str-slice($string, $index + str-length($search)), 48 | $search, 49 | $replace 50 | ); 51 | } 52 | 53 | @return $string; 54 | } 55 | 56 | // Color contrast 57 | @function color-yiq($color) { 58 | $r: red($color); 59 | $g: green($color); 60 | $b: blue($color); 61 | 62 | $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000; 63 | 64 | @if ($yiq >= $yiq-contrasted-threshold) { 65 | @return $yiq-text-dark; 66 | } @else { 67 | @return $yiq-text-light; 68 | } 69 | } 70 | 71 | // Retrieve color Sass maps 72 | @function color($key: "blue") { 73 | @return map-get($colors, $key); 74 | } 75 | 76 | @function theme-color($key: "primary") { 77 | @return map-get($theme-colors, $key); 78 | } 79 | 80 | @function gray($key: "100") { 81 | @return map-get($grays, $key); 82 | } 83 | 84 | // Request a theme color level 85 | @function theme-color-level($color-name: "primary", $level: 0) { 86 | $color: theme-color($color-name); 87 | $color-base: if($level > 0, #000, #fff); 88 | $level: abs($level); 89 | 90 | @return mix($color-base, $color, $level * $theme-color-interval); 91 | } 92 | -------------------------------------------------------------------------------- /src/assets/scss/core/variables/_shadow.scss: -------------------------------------------------------------------------------- 1 | // Shadows (originally from mdl http://www.getmdl.io/) 2 | $bmd-shadow-umbra-opacity: 0.2 !default; 3 | $bmd-shadow-penumbra-opacity: 0.14 !default; 4 | $bmd-shadow-ambient-opacity: 0.12 !default; 5 | 6 | // Declare the following for reuse with both mixins and the bootstrap variables 7 | $bmd-shadow-focus: 0 0 8px rgba($black, 0.18), 0 8px 16px rgba($black, 0.36); 8 | 9 | $bmd-shadow-2dp: 0 2px 2px 0 rgba($black, $bmd-shadow-penumbra-opacity), 10 | 0 3px 1px -2px rgba($black, $bmd-shadow-umbra-opacity), 11 | 0 1px 5px 0 rgba($black, $bmd-shadow-ambient-opacity); 12 | 13 | $bmd-shadow-3dp: 0 3px 4px 0 rgba($black, $bmd-shadow-penumbra-opacity), 14 | 0 3px 3px -2px rgba($black, $bmd-shadow-umbra-opacity), 15 | 0 1px 8px 0 rgba($black, $bmd-shadow-ambient-opacity); 16 | 17 | $bmd-shadow-4dp: 0 4px 5px 0 rgba($black, $bmd-shadow-penumbra-opacity), 18 | 0 1px 10px 0 rgba($black, $bmd-shadow-ambient-opacity), 19 | 0 2px 4px -1px rgba($black, $bmd-shadow-umbra-opacity); 20 | 21 | $bmd-shadow-6dp: 0 6px 10px 0 rgba($black, $bmd-shadow-penumbra-opacity), 22 | 0 1px 18px 0 rgba($black, $bmd-shadow-ambient-opacity), 23 | 0 3px 5px -1px rgba($black, $bmd-shadow-umbra-opacity); 24 | 25 | $bmd-shadow-8dp: 0 8px 10px 1px rgba($black, $bmd-shadow-penumbra-opacity), 26 | 0 3px 14px 2px rgba($black, $bmd-shadow-ambient-opacity), 27 | 0 5px 5px -3px rgba($black, $bmd-shadow-umbra-opacity); 28 | 29 | $bmd-shadow-16dp: 0 16px 24px 2px rgba($black, $bmd-shadow-penumbra-opacity), 30 | 0 6px 30px 5px rgba($black, $bmd-shadow-ambient-opacity), 31 | 0 8px 10px -5px rgba($black, $bmd-shadow-umbra-opacity); 32 | 33 | $bmd-shadow-24dp: 0 9px 46px 8px rgba($black, $bmd-shadow-penumbra-opacity), 34 | 0 11px 15px -7px rgba($black, $bmd-shadow-ambient-opacity), 35 | 0 24px 38px 3px rgba($black, $bmd-shadow-umbra-opacity); 36 | -------------------------------------------------------------------------------- /src/assets/scss/material-kit-react.scss: -------------------------------------------------------------------------------- 1 | /*! ========================================================= 2 | * 3 | * Material Kit React v1.4.0 based on Material Kit Free - v2.0.2 (Bootstrap 4.0.0 Final Edition) 4 | * 5 | * ========================================================= 6 | * 7 | * Product Page: https://www.creative-tim.com/product/material-kit-pro 8 | * Available with purchase of license from https://www.creative-tim.com/product/material-kit-pro 9 | * Copyright 2018 Creative Tim (https://www.creative-tim.com) 10 | * License Creative Tim (https://www.creative-tim.com/license) 11 | * 12 | * ========================================================= */ 13 | 14 | @import "core/variables"; 15 | @import "core/mixins"; 16 | 17 | // Core Components 18 | @import "core/misc"; 19 | 20 | // Core Plugins 21 | 22 | // @import "plugins/plugin-datetime-picker"; 23 | @import "plugins/plugin-nouislider"; 24 | @import "plugins/plugin-react-datetime"; 25 | @import "plugins/plugin-react-slick"; 26 | -------------------------------------------------------------------------------- /src/assets/scss/plugins/_plugin-react-slick.scss: -------------------------------------------------------------------------------- 1 | /* Slider */ 2 | .slick-slider { 3 | position: relative; 4 | 5 | display: block; 6 | box-sizing: border-box; 7 | 8 | -webkit-user-select: none; 9 | -moz-user-select: none; 10 | -ms-user-select: none; 11 | user-select: none; 12 | 13 | -webkit-touch-callout: none; 14 | -khtml-user-select: none; 15 | -ms-touch-action: pan-y; 16 | touch-action: pan-y; 17 | -webkit-tap-highlight-color: transparent; 18 | 19 | @media (min-width: 768px) { 20 | .slick-caption { 21 | display: block !important; 22 | } 23 | } 24 | 25 | .slick-caption { 26 | padding-bottom: 45px; 27 | position: absolute; 28 | right: 15%; 29 | bottom: 20px; 30 | left: 15%; 31 | z-index: 10; 32 | padding-top: 20px; 33 | color: #ffffff; 34 | text-align: center; 35 | z-index: 3; 36 | display: none; 37 | } 38 | .slick-slide { 39 | > div:first-child { 40 | position: relative; 41 | } 42 | } 43 | .slick-icons { 44 | position: relative; 45 | top: 5px; 46 | } 47 | .slick-image { 48 | width: 100% !important; 49 | display: inline-flex !important; 50 | } 51 | } 52 | 53 | .slick-list { 54 | position: relative; 55 | 56 | display: block; 57 | overflow: hidden; 58 | 59 | margin: 0; 60 | padding: 0; 61 | } 62 | .slick-list:focus { 63 | outline: none; 64 | } 65 | .slick-list.dragging { 66 | cursor: pointer; 67 | cursor: hand; 68 | } 69 | 70 | .slick-slider .slick-track, 71 | .slick-slider .slick-list { 72 | -webkit-transform: translate3d(0, 0, 0); 73 | -moz-transform: translate3d(0, 0, 0); 74 | -ms-transform: translate3d(0, 0, 0); 75 | -o-transform: translate3d(0, 0, 0); 76 | transform: translate3d(0, 0, 0); 77 | } 78 | 79 | .slick-track { 80 | position: relative; 81 | top: 0; 82 | left: 0; 83 | 84 | display: block; 85 | margin-left: auto; 86 | margin-right: auto; 87 | } 88 | .slick-track:before, 89 | .slick-track:after { 90 | display: table; 91 | 92 | content: ""; 93 | } 94 | .slick-track:after { 95 | clear: both; 96 | } 97 | .slick-loading .slick-track { 98 | visibility: hidden; 99 | } 100 | 101 | .slick-slide { 102 | display: none; 103 | float: left; 104 | 105 | height: 100%; 106 | min-height: 1px; 107 | } 108 | [dir="rtl"] .slick-slide { 109 | float: right; 110 | } 111 | .slick-slide img { 112 | display: block; 113 | } 114 | .slick-slide.slick-loading img { 115 | display: none; 116 | } 117 | .slick-slide.dragging img { 118 | pointer-events: none; 119 | } 120 | .slick-initialized .slick-slide { 121 | display: block; 122 | } 123 | .slick-loading .slick-slide { 124 | visibility: hidden; 125 | } 126 | .slick-vertical .slick-slide { 127 | display: block; 128 | 129 | height: auto; 130 | 131 | border: 1px solid transparent; 132 | } 133 | .slick-arrow.slick-hidden { 134 | display: none; 135 | } 136 | button.slick-arrow.slick-prev, 137 | button.slick-arrow.slick-next { 138 | font-size: 0; 139 | line-height: 0; 140 | position: absolute; 141 | top: 50%; 142 | display: block; 143 | // width: 20px; 144 | height: 100%; 145 | padding: 0; 146 | -ms-transform: translateY(-50%); 147 | transform: translateY(-50%); 148 | cursor: pointer; 149 | border: none; 150 | color: transparent; 151 | outline: none; 152 | background: transparent; 153 | width: 15%; 154 | z-index: 2; 155 | opacity: 0.5; 156 | } 157 | .slick-prev { 158 | left: 0; 159 | &::before { 160 | content: "\f053"; 161 | font-weight: 600; 162 | font-family: Font Awesome\ 5 Free; 163 | -moz-osx-font-smoothing: grayscale; 164 | -webkit-font-smoothing: antialiased; 165 | display: inline-block; 166 | font-style: normal; 167 | font-variant: normal; 168 | text-rendering: auto; 169 | line-height: 1; 170 | color: white; 171 | font-size: 30px; 172 | width: 100%; 173 | } 174 | } 175 | .slick-next { 176 | right: 0; 177 | &::before { 178 | content: "\f054"; 179 | font-weight: 600; 180 | font-family: Font Awesome\ 5 Free; 181 | -moz-osx-font-smoothing: grayscale; 182 | -webkit-font-smoothing: antialiased; 183 | display: inline-block; 184 | font-style: normal; 185 | font-variant: normal; 186 | text-rendering: auto; 187 | line-height: 1; 188 | color: #fff; 189 | font-size: 30px; 190 | width: 100%; 191 | } 192 | } 193 | .slick-list { 194 | z-index: 1; 195 | } 196 | .slick-dots { 197 | margin-top: 0; 198 | margin-bottom: 1rem; 199 | position: absolute; 200 | bottom: 5px; 201 | // margin-right: 15%; 202 | // margin-left: 15%; 203 | width: 100%; 204 | padding: 0; 205 | list-style: none; 206 | text-align: center; 207 | z-index: 3; 208 | } 209 | .slick-dots li, 210 | .slick-dots li button { 211 | width: 20px; 212 | height: 20px; 213 | cursor: pointer; 214 | } 215 | .slick-dots li { 216 | position: relative; 217 | display: inline-block; 218 | margin: 0 5px; 219 | padding: 0; 220 | } 221 | .slick-dots li button { 222 | font-size: 0; 223 | line-height: 0; 224 | display: block; 225 | padding: 5px; 226 | color: transparent; 227 | border: 0; 228 | outline: none; 229 | background: transparent; 230 | &::before { 231 | position: absolute; 232 | top: 0; 233 | left: 0; 234 | width: 10px; 235 | height: 10px; 236 | content: "\2022"; 237 | text-align: center; 238 | opacity: 1; 239 | background-color: #fff; 240 | -webkit-font-smoothing: antialiased; 241 | -moz-osx-font-smoothing: grayscale; 242 | box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 243 | 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2); 244 | border-radius: 2px; 245 | transition: all 300ms linear; 246 | } 247 | } 248 | .slick-dots li.slick-active button:before { 249 | width: 15px; 250 | height: 15px; 251 | box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 252 | 0 2px 4px -1px rgba(0, 0, 0, 0.2); 253 | top: -3px; 254 | } 255 | -------------------------------------------------------------------------------- /src/components/Badge/Badge.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library to set properties for components 3 | import PropTypes from "prop-types"; 4 | 5 | // @material-ui/core components 6 | import withStyles from "@material-ui/core/styles/withStyles"; 7 | 8 | import badgeStyle from "assets/jss/material-kit-react/components/badgeStyle.jsx"; 9 | 10 | function Badge({ ...props }) { 11 | const { classes, color, children } = props; 12 | return ( 13 | {children} 14 | ); 15 | } 16 | 17 | Badge.defaultProps = { 18 | color: "gray" 19 | }; 20 | 21 | Badge.propTypes = { 22 | classes: PropTypes.object.isRequired, 23 | color: PropTypes.oneOf([ 24 | "primary", 25 | "warning", 26 | "danger", 27 | "success", 28 | "info", 29 | "rose", 30 | "gray" 31 | ]) 32 | }; 33 | 34 | export default withStyles(badgeStyle)(Badge); 35 | -------------------------------------------------------------------------------- /src/components/Card/Card.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library that concatenates classes 3 | import classNames from "classnames"; 4 | // nodejs library to set properties for components 5 | import PropTypes from "prop-types"; 6 | // @material-ui/core components 7 | import withStyles from "@material-ui/core/styles/withStyles"; 8 | // @material-ui/icons 9 | 10 | // core components 11 | import cardStyle from "assets/jss/material-kit-react/components/cardStyle.jsx"; 12 | 13 | function Card({ ...props }) { 14 | const { classes, className, children, plain, carousel, ...rest } = props; 15 | const cardClasses = classNames({ 16 | [classes.card]: true, 17 | [classes.cardPlain]: plain, 18 | [classes.cardCarousel]: carousel, 19 | [className]: className !== undefined 20 | }); 21 | return ( 22 |
23 | {children} 24 |
25 | ); 26 | } 27 | 28 | Card.propTypes = { 29 | classes: PropTypes.object.isRequired, 30 | className: PropTypes.string, 31 | plain: PropTypes.bool, 32 | carousel: PropTypes.bool 33 | }; 34 | 35 | export default withStyles(cardStyle)(Card); 36 | -------------------------------------------------------------------------------- /src/components/Card/CardBody.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library that concatenates classes 3 | import classNames from "classnames"; 4 | // nodejs library to set properties for components 5 | import PropTypes from "prop-types"; 6 | // @material-ui/core components 7 | import withStyles from "@material-ui/core/styles/withStyles"; 8 | // @material-ui/icons 9 | 10 | // core components 11 | import cardBodyStyle from "assets/jss/material-kit-react/components/cardBodyStyle.jsx"; 12 | 13 | function CardBody({ ...props }) { 14 | const { classes, className, children, ...rest } = props; 15 | const cardBodyClasses = classNames({ 16 | [classes.cardBody]: true, 17 | [className]: className !== undefined 18 | }); 19 | return ( 20 |
21 | {children} 22 |
23 | ); 24 | } 25 | 26 | CardBody.propTypes = { 27 | classes: PropTypes.object.isRequired, 28 | className: PropTypes.string 29 | }; 30 | 31 | export default withStyles(cardBodyStyle)(CardBody); 32 | -------------------------------------------------------------------------------- /src/components/Card/CardFooter.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library that concatenates classes 3 | import classNames from "classnames"; 4 | // nodejs library to set properties for components 5 | import PropTypes from "prop-types"; 6 | // @material-ui/core components 7 | import withStyles from "@material-ui/core/styles/withStyles"; 8 | // @material-ui/icons 9 | 10 | // core components 11 | import cardFooterStyle from "assets/jss/material-kit-react/components/cardFooterStyle.jsx"; 12 | 13 | function CardFooter({ ...props }) { 14 | const { classes, className, children, ...rest } = props; 15 | const cardFooterClasses = classNames({ 16 | [classes.cardFooter]: true, 17 | [className]: className !== undefined 18 | }); 19 | return ( 20 |
21 | {children} 22 |
23 | ); 24 | } 25 | 26 | CardFooter.propTypes = { 27 | classes: PropTypes.object.isRequired, 28 | className: PropTypes.string 29 | }; 30 | 31 | export default withStyles(cardFooterStyle)(CardFooter); 32 | -------------------------------------------------------------------------------- /src/components/Card/CardHeader.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library that concatenates classes 3 | import classNames from "classnames"; 4 | // nodejs library to set properties for components 5 | import PropTypes from "prop-types"; 6 | // @material-ui/core components 7 | import withStyles from "@material-ui/core/styles/withStyles"; 8 | // @material-ui/icons 9 | 10 | // core components 11 | import cardHeaderStyle from "assets/jss/material-kit-react/components/cardHeaderStyle.jsx"; 12 | 13 | function CardHeader({ ...props }) { 14 | const { classes, className, children, color, plain, ...rest } = props; 15 | const cardHeaderClasses = classNames({ 16 | [classes.cardHeader]: true, 17 | [classes[color + "CardHeader"]]: color, 18 | [classes.cardHeaderPlain]: plain, 19 | [className]: className !== undefined 20 | }); 21 | return ( 22 |
23 | {children} 24 |
25 | ); 26 | } 27 | 28 | CardHeader.propTypes = { 29 | classes: PropTypes.object.isRequired, 30 | className: PropTypes.string, 31 | color: PropTypes.oneOf(["warning", "success", "danger", "info", "primary"]), 32 | plain: PropTypes.bool 33 | }; 34 | 35 | export default withStyles(cardHeaderStyle)(CardHeader); 36 | -------------------------------------------------------------------------------- /src/components/Clearfix/Clearfix.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library to set properties for components 3 | import PropTypes from "prop-types"; 4 | 5 | // mterial-ui components 6 | import withStyles from "@material-ui/core/styles/withStyles"; 7 | 8 | const style = { 9 | clearfix: { 10 | "&:after,&:before": { 11 | display: "table", 12 | content: '" "' 13 | }, 14 | "&:after": { 15 | clear: "both" 16 | } 17 | } 18 | }; 19 | 20 | function Clearfix({ ...props }) { 21 | const { classes } = props; 22 | return
; 23 | } 24 | 25 | Clearfix.propTypes = { 26 | classes: PropTypes.object.isRequired 27 | }; 28 | 29 | export default withStyles(style)(Clearfix); 30 | -------------------------------------------------------------------------------- /src/components/CustomButtons/Button.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library to set properties for components 3 | import PropTypes from "prop-types"; 4 | // nodejs library that concatenates classes 5 | import classNames from "classnames"; 6 | 7 | // @material-ui/core components 8 | import withStyles from "@material-ui/core/styles/withStyles"; 9 | import Button from "@material-ui/core/Button"; 10 | 11 | // core components 12 | 13 | import buttonStyle from "assets/jss/material-kit-react/components/buttonStyle.jsx"; 14 | 15 | function RegularButton({ ...props }) { 16 | const { 17 | classes, 18 | color, 19 | round, 20 | children, 21 | fullWidth, 22 | disabled, 23 | simple, 24 | size, 25 | block, 26 | link, 27 | justIcon, 28 | className, 29 | ...rest 30 | } = props; 31 | const btnClasses = classNames({ 32 | [classes.button]: true, 33 | [classes[size]]: size, 34 | [classes[color]]: color, 35 | [classes.round]: round, 36 | [classes.fullWidth]: fullWidth, 37 | [classes.disabled]: disabled, 38 | [classes.simple]: simple, 39 | [classes.block]: block, 40 | [classes.link]: link, 41 | [classes.justIcon]: justIcon, 42 | [className]: className 43 | }); 44 | return ( 45 | 48 | ); 49 | } 50 | 51 | RegularButton.propTypes = { 52 | classes: PropTypes.object.isRequired, 53 | color: PropTypes.oneOf([ 54 | "primary", 55 | "info", 56 | "success", 57 | "warning", 58 | "danger", 59 | "rose", 60 | "white", 61 | "facebook", 62 | "twitter", 63 | "google", 64 | "github", 65 | "transparent" 66 | ]), 67 | size: PropTypes.oneOf(["sm", "lg"]), 68 | simple: PropTypes.bool, 69 | round: PropTypes.bool, 70 | fullWidth: PropTypes.bool, 71 | disabled: PropTypes.bool, 72 | block: PropTypes.bool, 73 | link: PropTypes.bool, 74 | justIcon: PropTypes.bool 75 | }; 76 | 77 | export default withStyles(buttonStyle)(RegularButton); 78 | -------------------------------------------------------------------------------- /src/components/CustomDropdown/CustomDropdown.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library that concatenates classes 3 | import classNames from "classnames"; 4 | // nodejs library to set properties for components 5 | import PropTypes from "prop-types"; 6 | 7 | // @material-ui/core components 8 | import withStyles from "@material-ui/core/styles/withStyles"; 9 | import MenuItem from "@material-ui/core/MenuItem"; 10 | import MenuList from "@material-ui/core/MenuList"; 11 | import ClickAwayListener from "@material-ui/core/ClickAwayListener"; 12 | import Paper from "@material-ui/core/Paper"; 13 | import Grow from "@material-ui/core/Grow"; 14 | import Divider from "@material-ui/core/Divider"; 15 | import Icon from "@material-ui/core/Icon"; 16 | import Popper from "@material-ui/core/Popper"; 17 | 18 | // core components 19 | import Button from "components/CustomButtons/Button.jsx"; 20 | 21 | import customDropdownStyle from "assets/jss/material-kit-react/components/customDropdownStyle.jsx"; 22 | 23 | class CustomDropdown extends React.Component { 24 | constructor(props) { 25 | super(props); 26 | this.state = { 27 | open: false 28 | }; 29 | } 30 | handleClick = () => { 31 | this.setState(state => ({ open: !state.open })); 32 | }; 33 | handleClose = param => { 34 | this.setState({ open: false }); 35 | if (this.props && this.props.onClick) { 36 | this.props.onClick(param); 37 | } 38 | }; 39 | handleCloseAway = event => { 40 | if (this.anchorEl.contains(event.target)) { 41 | return; 42 | } 43 | this.setState({ open: false }); 44 | }; 45 | render() { 46 | const { open } = this.state; 47 | const { 48 | classes, 49 | buttonText, 50 | buttonIcon, 51 | dropdownList, 52 | buttonProps, 53 | dropup, 54 | dropdownHeader, 55 | caret, 56 | hoverColor, 57 | left, 58 | rtlActive, 59 | noLiPadding 60 | } = this.props; 61 | const caretClasses = classNames({ 62 | [classes.caret]: true, 63 | [classes.caretActive]: open, 64 | [classes.caretRTL]: rtlActive 65 | }); 66 | const dropdownItem = classNames({ 67 | [classes.dropdownItem]: true, 68 | [classes[hoverColor + "Hover"]]: true, 69 | [classes.noLiPadding]: noLiPadding, 70 | [classes.dropdownItemRTL]: rtlActive 71 | }); 72 | let icon = null; 73 | switch (typeof buttonIcon) { 74 | case "function": 75 | icon = ; 76 | break; 77 | case "string": 78 | icon = ( 79 | {this.props.buttonIcon} 80 | ); 81 | break; 82 | default: 83 | icon = null; 84 | break; 85 | } 86 | return ( 87 |
88 |
89 | 103 |
104 | 123 | {({ TransitionProps, placement }) => ( 124 | 133 | 134 | 135 | 136 | {dropdownHeader !== undefined ? ( 137 | this.handleClose(dropdownHeader)} 139 | className={classes.dropdownHeader} 140 | > 141 | {dropdownHeader} 142 | 143 | ) : null} 144 | {dropdownList.map((prop, key) => { 145 | if (prop.divider) { 146 | return ( 147 | this.handleClose("divider")} 150 | className={classes.dropdownDividerItem} 151 | /> 152 | ); 153 | } 154 | return ( 155 | this.handleClose(prop)} 158 | className={dropdownItem} 159 | > 160 | {prop} 161 | 162 | ); 163 | })} 164 | 165 | 166 | 167 | 168 | )} 169 | 170 |
171 | ); 172 | } 173 | } 174 | 175 | CustomDropdown.defaultProps = { 176 | caret: true, 177 | hoverColor: "primary" 178 | }; 179 | 180 | CustomDropdown.propTypes = { 181 | classes: PropTypes.object.isRequired, 182 | hoverColor: PropTypes.oneOf([ 183 | "black", 184 | "primary", 185 | "info", 186 | "success", 187 | "warning", 188 | "danger", 189 | "rose" 190 | ]), 191 | buttonText: PropTypes.node, 192 | buttonIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.string]), 193 | dropdownList: PropTypes.array, 194 | buttonProps: PropTypes.object, 195 | dropup: PropTypes.bool, 196 | dropdownHeader: PropTypes.node, 197 | rtlActive: PropTypes.bool, 198 | caret: PropTypes.bool, 199 | left: PropTypes.bool, 200 | noLiPadding: PropTypes.bool, 201 | // function that retuns the selected item 202 | onClick: PropTypes.func 203 | }; 204 | 205 | export default withStyles(customDropdownStyle)(CustomDropdown); 206 | -------------------------------------------------------------------------------- /src/components/CustomInput/CustomInput.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library to set properties for components 3 | import PropTypes from "prop-types"; 4 | // nodejs library that concatenates classes 5 | import classNames from "classnames"; 6 | // @material-ui/core components 7 | import withStyles from "@material-ui/core/styles/withStyles"; 8 | import FormControl from "@material-ui/core/FormControl"; 9 | import InputLabel from "@material-ui/core/InputLabel"; 10 | import Input from "@material-ui/core/Input"; 11 | 12 | import customInputStyle from "assets/jss/material-kit-react/components/customInputStyle.jsx"; 13 | 14 | function CustomInput({ ...props }) { 15 | const { 16 | classes, 17 | formControlProps, 18 | labelText, 19 | id, 20 | labelProps, 21 | inputProps, 22 | error, 23 | white, 24 | inputRootCustomClasses, 25 | success, 26 | errors, 27 | onChange, 28 | value, 29 | name 30 | } = props; 31 | 32 | const labelClasses = classNames({ 33 | [" " + classes.labelRootError]: error, 34 | [" " + classes.labelRootSuccess]: success && !error 35 | }); 36 | const underlineClasses = classNames({ 37 | [classes.underlineError]: error, 38 | [classes.underlineSuccess]: success && !error, 39 | [classes.underline]: true, 40 | [classes.whiteUnderline]: white 41 | }); 42 | const marginTop = classNames({ 43 | [inputRootCustomClasses]: inputRootCustomClasses !== undefined 44 | }); 45 | const inputClasses = classNames({ 46 | [classes.input]: true, 47 | [classes.whiteInput]: white 48 | }); 49 | var formControlClasses; 50 | if (formControlProps !== undefined) { 51 | formControlClasses = classNames( 52 | formControlProps.className, 53 | classes.formControl 54 | ); 55 | } else { 56 | formControlClasses = classes.formControl; 57 | } 58 | return ( 59 | 60 | {labelText !== undefined ? ( 61 | 66 | {labelText} 67 | 68 | ) : null} 69 | 82 |
    83 | { errors && errors.map(message => ( 84 |
  • 85 |

    {message}

    86 |
  • 87 | ))} 88 |
89 |
90 | ); 91 | } 92 | 93 | CustomInput.propTypes = { 94 | classes: PropTypes.object.isRequired, 95 | labelText: PropTypes.node, 96 | labelProps: PropTypes.object, 97 | id: PropTypes.string, 98 | inputProps: PropTypes.object, 99 | formControlProps: PropTypes.object, 100 | inputRootCustomClasses: PropTypes.string, 101 | error: PropTypes.bool, 102 | success: PropTypes.bool, 103 | white: PropTypes.bool 104 | }; 105 | 106 | export default withStyles(customInputStyle)(CustomInput); 107 | -------------------------------------------------------------------------------- /src/components/CustomLinearProgress/CustomLinearProgress.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library to set properties for components 3 | import PropTypes from "prop-types"; 4 | 5 | // @material-ui/core components 6 | import withStyles from "@material-ui/core/styles/withStyles"; 7 | import LinearProgress from "@material-ui/core/LinearProgress"; 8 | // core components 9 | import customLinearProgressStyle from "assets/jss/material-kit-react/components/customLinearProgressStyle.jsx"; 10 | 11 | function CustomLinearProgress({ ...props }) { 12 | const { classes, color, ...rest } = props; 13 | return ( 14 | 21 | ); 22 | } 23 | 24 | CustomLinearProgress.defaultProps = { 25 | color: "gray" 26 | }; 27 | 28 | CustomLinearProgress.propTypes = { 29 | classes: PropTypes.object.isRequired, 30 | color: PropTypes.oneOf([ 31 | "primary", 32 | "warning", 33 | "danger", 34 | "success", 35 | "info", 36 | "rose", 37 | "gray" 38 | ]) 39 | }; 40 | 41 | export default withStyles(customLinearProgressStyle)(CustomLinearProgress); 42 | -------------------------------------------------------------------------------- /src/components/CustomTabs/CustomTabs.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library that concatenates classes 3 | import classNames from "classnames"; 4 | // nodejs library to set properties for components 5 | import PropTypes from "prop-types"; 6 | 7 | // material-ui components 8 | import withStyles from "@material-ui/core/styles/withStyles"; 9 | import Tabs from "@material-ui/core/Tabs"; 10 | import Tab from "@material-ui/core/Tab"; 11 | import Icon from "@material-ui/core/Icon"; 12 | // core components 13 | import Card from "components/Card/Card.jsx"; 14 | import CardBody from "components/Card/CardBody.jsx"; 15 | import CardHeader from "components/Card/CardHeader.jsx"; 16 | 17 | import customTabsStyle from "assets/jss/material-kit-react/components/customTabsStyle.jsx"; 18 | 19 | class CustomTabs extends React.Component { 20 | state = { 21 | value: 0 22 | }; 23 | 24 | handleChange = (event, value) => { 25 | this.setState({ value }); 26 | }; 27 | 28 | render() { 29 | const { 30 | classes, 31 | headerColor, 32 | plainTabs, 33 | tabs, 34 | title, 35 | rtlActive 36 | } = this.props; 37 | const cardTitle = classNames({ 38 | [classes.cardTitle]: true, 39 | [classes.cardTitleRTL]: rtlActive 40 | }); 41 | return ( 42 | 43 | 44 | {title !== undefined ? ( 45 |
{title}
46 | ) : null} 47 | 55 | {tabs.map((prop, key) => { 56 | var icon = {}; 57 | if (prop.tabIcon) { 58 | icon = { 59 | icon: 60 | typeof prop.tabIcon === "string" ? ( 61 | {prop.tabIcon} 62 | ) : ( 63 | 64 | ) 65 | }; 66 | } 67 | return ( 68 | 80 | ); 81 | })} 82 | 83 |
84 | 85 | {tabs.map((prop, key) => { 86 | if (key === this.state.value) { 87 | return
{prop.tabContent}
; 88 | } 89 | return null; 90 | })} 91 |
92 |
93 | ); 94 | } 95 | } 96 | 97 | CustomTabs.propTypes = { 98 | classes: PropTypes.object.isRequired, 99 | headerColor: PropTypes.oneOf([ 100 | "warning", 101 | "success", 102 | "danger", 103 | "info", 104 | "primary", 105 | "rose" 106 | ]), 107 | title: PropTypes.string, 108 | tabs: PropTypes.arrayOf( 109 | PropTypes.shape({ 110 | tabName: PropTypes.string.isRequired, 111 | tabIcon: PropTypes.func, 112 | tabContent: PropTypes.node.isRequired 113 | }) 114 | ), 115 | rtlActive: PropTypes.bool, 116 | plainTabs: PropTypes.bool 117 | }; 118 | 119 | export default withStyles(customTabsStyle)(CustomTabs); 120 | -------------------------------------------------------------------------------- /src/components/Footer/Footer.jsx: -------------------------------------------------------------------------------- 1 | /*eslint-disable*/ 2 | import React from "react"; 3 | // nodejs library to set properties for components 4 | import PropTypes from "prop-types"; 5 | // nodejs library that concatenates classes 6 | import classNames from "classnames"; 7 | import { List, ListItem, withStyles } from "@material-ui/core"; 8 | 9 | // @material-ui/icons 10 | import Favorite from "@material-ui/icons/Favorite"; 11 | 12 | import footerStyle from "assets/jss/material-kit-react/components/footerStyle.jsx"; 13 | 14 | function Footer({ ...props }) { 15 | const { classes, whiteFont } = props; 16 | const footerClasses = classNames({ 17 | [classes.footer]: true, 18 | [classes.footerWhiteFont]: whiteFont 19 | }); 20 | const aClasses = classNames({ 21 | [classes.a]: true, 22 | [classes.footerWhiteFont]: whiteFont 23 | }); 24 | return ( 25 | 62 | ); 63 | } 64 | 65 | Footer.propTypes = { 66 | classes: PropTypes.object.isRequired, 67 | whiteFont: PropTypes.bool 68 | }; 69 | 70 | export default withStyles(footerStyle)(Footer); 71 | -------------------------------------------------------------------------------- /src/components/Grid/GridContainer.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library to set properties for components 3 | import PropTypes from "prop-types"; 4 | 5 | // @material-ui/core components 6 | import withStyles from "@material-ui/core/styles/withStyles"; 7 | import Grid from "@material-ui/core/Grid"; 8 | 9 | const style = { 10 | grid: { 11 | marginRight: "-15px", 12 | marginLeft: "-15px", 13 | width: "auto" 14 | } 15 | }; 16 | 17 | function GridContainer({ ...props }) { 18 | const { classes, children, className, ...rest } = props; 19 | return ( 20 | 21 | {children} 22 | 23 | ); 24 | } 25 | 26 | GridContainer.defaultProps = { 27 | className: "" 28 | }; 29 | 30 | GridContainer.propTypes = { 31 | classes: PropTypes.object.isRequired, 32 | children: PropTypes.node, 33 | className: PropTypes.string 34 | }; 35 | 36 | export default withStyles(style)(GridContainer); 37 | -------------------------------------------------------------------------------- /src/components/Grid/GridItem.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // @material-ui/core components 3 | import withStyles from "@material-ui/core/styles/withStyles"; 4 | import Grid from "@material-ui/core/Grid"; 5 | 6 | const style = { 7 | grid: { 8 | position: "relative", 9 | width: "100%", 10 | minHeight: "1px", 11 | paddingRight: "15px", 12 | paddingLeft: "15px", 13 | flexBasis: "auto" 14 | } 15 | }; 16 | 17 | function GridItem({ ...props }) { 18 | const { classes, children, className, ...rest } = props; 19 | return ( 20 | 21 | {children} 22 | 23 | ); 24 | } 25 | 26 | export default withStyles(style)(GridItem); 27 | -------------------------------------------------------------------------------- /src/components/Header/Header.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library that concatenates classes 3 | import classNames from "classnames"; 4 | // nodejs library to set properties for components 5 | import PropTypes from "prop-types"; 6 | // @material-ui/core components 7 | import withStyles from "@material-ui/core/styles/withStyles"; 8 | import AppBar from "@material-ui/core/AppBar"; 9 | import Toolbar from "@material-ui/core/Toolbar"; 10 | import IconButton from "@material-ui/core/IconButton"; 11 | import Button from "@material-ui/core/Button"; 12 | import Hidden from "@material-ui/core/Hidden"; 13 | import Drawer from "@material-ui/core/Drawer"; 14 | // @material-ui/icons 15 | import Menu from "@material-ui/icons/Menu"; 16 | // core components 17 | import headerStyle from "assets/jss/material-kit-react/components/headerStyle.jsx"; 18 | 19 | class Header extends React.Component { 20 | constructor(props) { 21 | super(props); 22 | this.state = { 23 | mobileOpen: false 24 | }; 25 | this.handleDrawerToggle = this.handleDrawerToggle.bind(this); 26 | this.headerColorChange = this.headerColorChange.bind(this); 27 | } 28 | handleDrawerToggle() { 29 | this.setState({ mobileOpen: !this.state.mobileOpen }); 30 | } 31 | componentDidMount() { 32 | if (this.props.changeColorOnScroll) { 33 | window.addEventListener("scroll", this.headerColorChange); 34 | } 35 | } 36 | headerColorChange() { 37 | const { classes, color, changeColorOnScroll } = this.props; 38 | const windowsScrollTop = window.pageYOffset; 39 | if (windowsScrollTop > changeColorOnScroll.height) { 40 | document.body 41 | .getElementsByTagName("header")[0] 42 | .classList.remove(classes[color]); 43 | document.body 44 | .getElementsByTagName("header")[0] 45 | .classList.add(classes[changeColorOnScroll.color]); 46 | } else { 47 | document.body 48 | .getElementsByTagName("header")[0] 49 | .classList.add(classes[color]); 50 | document.body 51 | .getElementsByTagName("header")[0] 52 | .classList.remove(classes[changeColorOnScroll.color]); 53 | } 54 | } 55 | componentWillUnmount() { 56 | if (this.props.changeColorOnScroll) { 57 | window.removeEventListener("scroll", this.headerColorChange); 58 | } 59 | } 60 | render() { 61 | const { 62 | classes, 63 | color, 64 | rightLinks, 65 | leftLinks, 66 | brand, 67 | fixed, 68 | absolute 69 | } = this.props; 70 | const appBarClasses = classNames({ 71 | [classes.appBar]: true, 72 | [classes[color]]: color, 73 | [classes.absolute]: absolute, 74 | [classes.fixed]: fixed 75 | }); 76 | const brandComponent = ; 77 | return ( 78 | 79 | 80 | {leftLinks !== undefined ? brandComponent : null} 81 |
82 | {leftLinks !== undefined ? ( 83 | 84 | {leftLinks} 85 | 86 | ) : ( 87 | brandComponent 88 | )} 89 |
90 | 91 | {rightLinks} 92 | 93 | 94 | 99 | 100 | 101 | 102 | 103 | 104 | 113 |
114 | {leftLinks} 115 | {rightLinks} 116 |
117 |
118 |
119 | 120 | ); 121 | } 122 | } 123 | 124 | Header.defaultProp = { 125 | color: "white" 126 | }; 127 | 128 | Header.propTypes = { 129 | classes: PropTypes.object.isRequired, 130 | color: PropTypes.oneOf([ 131 | "primary", 132 | "info", 133 | "success", 134 | "warning", 135 | "danger", 136 | "transparent", 137 | "white", 138 | "rose", 139 | "dark" 140 | ]), 141 | rightLinks: PropTypes.node, 142 | leftLinks: PropTypes.node, 143 | brand: PropTypes.string, 144 | fixed: PropTypes.bool, 145 | absolute: PropTypes.bool, 146 | // this will cause the sidebar to change the color from 147 | // this.props.color (see above) to changeColorOnScroll.color 148 | // when the window.pageYOffset is heigher or equal to 149 | // changeColorOnScroll.height and then when it is smaller than 150 | // changeColorOnScroll.height change it back to 151 | // this.props.color (see above) 152 | changeColorOnScroll: PropTypes.shape({ 153 | height: PropTypes.number.isRequired, 154 | color: PropTypes.oneOf([ 155 | "primary", 156 | "info", 157 | "success", 158 | "warning", 159 | "danger", 160 | "transparent", 161 | "white", 162 | "rose", 163 | "dark" 164 | ]).isRequired 165 | }) 166 | }; 167 | 168 | export default withStyles(headerStyle)(Header); 169 | -------------------------------------------------------------------------------- /src/components/Header/HeaderLinks.jsx: -------------------------------------------------------------------------------- 1 | /*eslint-disable*/ 2 | import React from "react"; 3 | // react components for routing our app without refresh 4 | import { Link } from "react-router-dom"; 5 | import { connect } from "react-redux"; 6 | import { logout } from "../../store/actions"; 7 | // @material-ui/core components 8 | import withStyles from "@material-ui/core/styles/withStyles"; 9 | import List from "@material-ui/core/List"; 10 | import ListItem from "@material-ui/core/ListItem"; 11 | 12 | // @material-ui/icons 13 | import { Apps, CloudDownload } from "@material-ui/icons"; 14 | 15 | // core components 16 | import CustomDropdown from "components/CustomDropdown/CustomDropdown.jsx"; 17 | import Button from "components/CustomButtons/Button.jsx"; 18 | import headerLinksStyle from "assets/jss/material-kit-react/components/headerLinksStyle.jsx"; 19 | 20 | const RegisterButton = props => ( 21 | 22 | 23 | 29 | 30 | 31 | ) 32 | 33 | // the logout component emits a logout signal to redux 34 | const Logout = connect(dispatch => ({ dispatch }))(props => ( 35 | 36 | 43 | 44 | )) 45 | 46 | 47 | 48 | function HeaderLinks({ ...props }) { 49 | const { classes } = props; 50 | return ( 51 | 52 | 53 | 63 | Landing Page 64 | , 65 | 66 | Profile Page 67 | , 68 | 69 | Components 70 | 71 | ]} 72 | /> 73 | 74 | 75 | 76 | 77 | 83 | 84 | 85 | { 86 | props.state.user ? : 87 | } 88 | 89 | ); 90 | } 91 | 92 | const HeaderLinksContainer = connect(state => ({ state }))(HeaderLinks); 93 | 94 | export default withStyles(headerLinksStyle)(HeaderLinksContainer); 95 | -------------------------------------------------------------------------------- /src/components/InfoArea/InfoArea.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library to set properties for components 3 | import PropTypes from "prop-types"; 4 | // nodejs library that concatenates classes 5 | import classNames from "classnames"; 6 | // @material-ui/core components 7 | import withStyles from "@material-ui/core/styles/withStyles"; 8 | 9 | import infoStyle from "assets/jss/material-kit-react/components/infoStyle.jsx"; 10 | 11 | function InfoArea({ ...props }) { 12 | const { classes, title, description, iconColor, vertical } = props; 13 | const iconWrapper = classNames({ 14 | [classes.iconWrapper]: true, 15 | [classes[iconColor]]: true, 16 | [classes.iconWrapperVertical]: vertical 17 | }); 18 | const iconClasses = classNames({ 19 | [classes.icon]: true, 20 | [classes.iconVertical]: vertical 21 | }); 22 | return ( 23 |
24 |
25 | 26 |
27 |
28 |

{title}

29 |

{description}

30 |
31 |
32 | ); 33 | } 34 | 35 | InfoArea.defaultProps = { 36 | iconColor: "gray" 37 | }; 38 | 39 | InfoArea.propTypes = { 40 | classes: PropTypes.object.isRequired, 41 | icon: PropTypes.func.isRequired, 42 | title: PropTypes.string.isRequired, 43 | description: PropTypes.string.isRequired, 44 | iconColor: PropTypes.oneOf([ 45 | "primary", 46 | "warning", 47 | "danger", 48 | "success", 49 | "info", 50 | "rose", 51 | "gray" 52 | ]), 53 | vertical: PropTypes.bool 54 | }; 55 | 56 | export default withStyles(infoStyle)(InfoArea); 57 | -------------------------------------------------------------------------------- /src/components/NavPills/NavPills.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library that concatenates classes 3 | import classNames from "classnames"; 4 | // nodejs library to set properties for components 5 | import PropTypes from "prop-types"; 6 | import SwipeableViews from "react-swipeable-views"; 7 | 8 | // @material-ui/core components 9 | import withStyles from "@material-ui/core/styles/withStyles"; 10 | import Tabs from "@material-ui/core/Tabs"; 11 | import Tab from "@material-ui/core/Tab"; 12 | 13 | // core components 14 | import GridContainer from "components/Grid/GridContainer.jsx"; 15 | import GridItem from "components/Grid/GridItem.jsx"; 16 | 17 | import navPillsStyle from "assets/jss/material-kit-react/components/navPillsStyle.jsx"; 18 | 19 | class NavPills extends React.Component { 20 | constructor(props) { 21 | super(props); 22 | this.state = { 23 | active: props.active 24 | }; 25 | } 26 | handleChange = (event, active) => { 27 | this.setState({ active }); 28 | }; 29 | handleChangeIndex = index => { 30 | this.setState({ active: index }); 31 | }; 32 | render() { 33 | const { 34 | classes, 35 | tabs, 36 | direction, 37 | color, 38 | horizontal, 39 | alignCenter 40 | } = this.props; 41 | const flexContainerClasses = classNames({ 42 | [classes.flexContainer]: true, 43 | [classes.horizontalDisplay]: horizontal !== undefined 44 | }); 45 | const tabButtons = ( 46 | 57 | {tabs.map((prop, key) => { 58 | var icon = {}; 59 | if (prop.tabIcon !== undefined) { 60 | icon["icon"] = ; 61 | } 62 | const pillsClasses = classNames({ 63 | [classes.pills]: true, 64 | [classes.horizontalPills]: horizontal !== undefined, 65 | [classes.pillsWithIcons]: prop.tabIcon !== undefined 66 | }); 67 | return ( 68 | 79 | ); 80 | })} 81 | 82 | ); 83 | const tabContent = ( 84 |
85 | 90 | {tabs.map((prop, key) => { 91 | return ( 92 |
93 | {prop.tabContent} 94 |
95 | ); 96 | })} 97 |
98 |
99 | ); 100 | return horizontal !== undefined ? ( 101 | 102 | {tabButtons} 103 | {tabContent} 104 | 105 | ) : ( 106 |
107 | {tabButtons} 108 | {tabContent} 109 |
110 | ); 111 | } 112 | } 113 | 114 | NavPills.defaultProps = { 115 | active: 0, 116 | color: "primary" 117 | }; 118 | 119 | NavPills.propTypes = { 120 | classes: PropTypes.object.isRequired, 121 | // index of the default active pill 122 | active: PropTypes.number, 123 | tabs: PropTypes.arrayOf( 124 | PropTypes.shape({ 125 | tabButton: PropTypes.string, 126 | tabIcon: PropTypes.func, 127 | tabContent: PropTypes.node 128 | }) 129 | ).isRequired, 130 | color: PropTypes.oneOf([ 131 | "primary", 132 | "warning", 133 | "danger", 134 | "success", 135 | "info", 136 | "rose" 137 | ]), 138 | direction: PropTypes.string, 139 | horizontal: PropTypes.shape({ 140 | tabsGrid: PropTypes.object, 141 | contentGrid: PropTypes.object 142 | }), 143 | alignCenter: PropTypes.bool 144 | }; 145 | 146 | export default withStyles(navPillsStyle)(NavPills); 147 | -------------------------------------------------------------------------------- /src/components/Pagination/Pagination.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library to set properties for components 3 | import PropTypes from "prop-types"; 4 | // nodejs library that concatenates classes 5 | import classNames from "classnames"; 6 | 7 | // @material-ui/core components 8 | import withStyles from "@material-ui/core/styles/withStyles"; 9 | import Button from "@material-ui/core/Button"; 10 | 11 | import paginationStyle from "assets/jss/material-kit-react/components/paginationStyle.jsx"; 12 | 13 | function Pagination({ ...props }) { 14 | const { classes, pages, color } = props; 15 | return ( 16 |
    17 | {pages.map((prop, key) => { 18 | const paginationLink = classNames({ 19 | [classes.paginationLink]: true, 20 | [classes[color]]: prop.active, 21 | [classes.disabled]: prop.disabled 22 | }); 23 | return ( 24 |
  • 25 | {prop.onClick !== undefined ? ( 26 | 29 | ) : ( 30 | 36 | )} 37 |
  • 38 | ); 39 | })} 40 |
41 | ); 42 | } 43 | 44 | Pagination.defaultProps = { 45 | color: "primary" 46 | }; 47 | 48 | Pagination.propTypes = { 49 | classes: PropTypes.object.isRequired, 50 | pages: PropTypes.arrayOf( 51 | PropTypes.shape({ 52 | active: PropTypes.bool, 53 | disabled: PropTypes.bool, 54 | text: PropTypes.oneOfType([ 55 | PropTypes.number, 56 | PropTypes.oneOf(["PREV", "NEXT", "..."]) 57 | ]).isRequired, 58 | onClick: PropTypes.func 59 | }) 60 | ).isRequired, 61 | color: PropTypes.oneOf(["primary", "info", "success", "warning", "danger"]) 62 | }; 63 | 64 | export default withStyles(paginationStyle)(Pagination); 65 | -------------------------------------------------------------------------------- /src/components/Parallax/Parallax.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library that concatenates classes 3 | import classNames from "classnames"; 4 | // nodejs library to set properties for components 5 | import PropTypes from "prop-types"; 6 | // @material-ui/core components 7 | import withStyles from "@material-ui/core/styles/withStyles"; 8 | 9 | // core components 10 | import parallaxStyle from "assets/jss/material-kit-react/components/parallaxStyle.jsx"; 11 | 12 | class Parallax extends React.Component { 13 | constructor(props) { 14 | super(props); 15 | var windowScrollTop = window.pageYOffset / 3; 16 | this.state = { 17 | transform: "translate3d(0," + windowScrollTop + "px,0)" 18 | }; 19 | this.resetTransform = this.resetTransform.bind(this); 20 | } 21 | componentDidMount() { 22 | var windowScrollTop = window.pageYOffset / 3; 23 | this.setState({ 24 | transform: "translate3d(0," + windowScrollTop + "px,0)" 25 | }); 26 | window.addEventListener("scroll", this.resetTransform); 27 | } 28 | componentWillUnmount() { 29 | window.removeEventListener("scroll", this.resetTransform); 30 | } 31 | resetTransform() { 32 | var windowScrollTop = window.pageYOffset / 3; 33 | this.setState({ 34 | transform: "translate3d(0," + windowScrollTop + "px,0)" 35 | }); 36 | } 37 | render() { 38 | const { 39 | classes, 40 | filter, 41 | className, 42 | children, 43 | style, 44 | image, 45 | small 46 | } = this.props; 47 | const parallaxClasses = classNames({ 48 | [classes.parallax]: true, 49 | [classes.filter]: filter, 50 | [classes.small]: small, 51 | [className]: className !== undefined 52 | }); 53 | return ( 54 |
63 | {children} 64 |
65 | ); 66 | } 67 | } 68 | 69 | Parallax.propTypes = { 70 | classes: PropTypes.object.isRequired, 71 | className: PropTypes.string, 72 | filter: PropTypes.bool, 73 | children: PropTypes.node, 74 | style: PropTypes.string, 75 | image: PropTypes.string 76 | }; 77 | 78 | export default withStyles(parallaxStyle)(Parallax); 79 | -------------------------------------------------------------------------------- /src/components/Snackbar/SnackbarContent.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library to set properties for components 3 | import PropTypes from "prop-types"; 4 | // @material-ui/core components 5 | import withStyles from "@material-ui/core/styles/withStyles"; 6 | import Snack from "@material-ui/core/SnackbarContent"; 7 | import IconButton from "@material-ui/core/IconButton"; 8 | import Icon from "@material-ui/core/Icon"; 9 | // @material-ui/icons 10 | import Close from "@material-ui/icons/Close"; 11 | 12 | import snackbarContentStyle from "assets/jss/material-kit-react/components/snackbarContentStyle.jsx"; 13 | 14 | class SnackbarContent extends React.Component { 15 | constructor(props) { 16 | super(props); 17 | this.closeAlert = this.closeAlert.bind(this); 18 | const { classes, message, color, close, icon } = props; 19 | var action = []; 20 | if (close !== undefined) { 21 | action = [ 22 | 29 | 30 | 31 | ]; 32 | } 33 | 34 | let snackIcon = null; 35 | switch (typeof icon) { 36 | case "function": 37 | snackIcon = ; 38 | break; 39 | case "string": 40 | snackIcon = {props.icon}; 41 | break; 42 | default: 43 | snackIcon = null; 44 | break; 45 | } 46 | 47 | this.state = { 48 | alert: ( 49 | 52 | {snackIcon} 53 | {message} 54 | {close !== undefined ? action : null} 55 |
56 | } 57 | classes={{ 58 | root: classes.root + " " + classes[color], 59 | message: classes.message + " " + classes.container 60 | }} 61 | /> 62 | ) 63 | }; 64 | } 65 | closeAlert() { 66 | this.setState({ alert: null }); 67 | } 68 | render() { 69 | return this.state.alert; 70 | } 71 | } 72 | 73 | SnackbarContent.propTypes = { 74 | classes: PropTypes.object.isRequired, 75 | message: PropTypes.node.isRequired, 76 | color: PropTypes.oneOf(["info", "success", "warning", "danger", "primary"]), 77 | close: PropTypes.bool, 78 | icon: PropTypes.oneOfType([PropTypes.func, PropTypes.string]) 79 | }; 80 | 81 | export default withStyles(snackbarContentStyle)(SnackbarContent); 82 | -------------------------------------------------------------------------------- /src/components/Typography/Danger.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library to set properties for components 3 | import PropTypes from "prop-types"; 4 | // @material-ui/core components 5 | import withStyles from "@material-ui/core/styles/withStyles"; 6 | // core components 7 | import typographyStyle from "assets/jss/material-kit-react/components/typographyStyle.jsx"; 8 | 9 | function Danger({ ...props }) { 10 | const { classes, children } = props; 11 | return ( 12 |
13 | {children} 14 |
15 | ); 16 | } 17 | 18 | Danger.propTypes = { 19 | classes: PropTypes.object.isRequired 20 | }; 21 | 22 | export default withStyles(typographyStyle)(Danger); 23 | -------------------------------------------------------------------------------- /src/components/Typography/Info.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library to set properties for components 3 | import PropTypes from "prop-types"; 4 | // @material-ui/core components 5 | import withStyles from "@material-ui/core/styles/withStyles"; 6 | // core components 7 | import typographyStyle from "assets/jss/material-kit-react/components/typographyStyle.jsx"; 8 | 9 | function Info({ ...props }) { 10 | const { classes, children } = props; 11 | return ( 12 |
13 | {children} 14 |
15 | ); 16 | } 17 | 18 | Info.propTypes = { 19 | classes: PropTypes.object.isRequired 20 | }; 21 | 22 | export default withStyles(typographyStyle)(Info); 23 | -------------------------------------------------------------------------------- /src/components/Typography/Muted.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library to set properties for components 3 | import PropTypes from "prop-types"; 4 | // @material-ui/core components 5 | import withStyles from "@material-ui/core/styles/withStyles"; 6 | // core components 7 | import typographyStyle from "assets/jss/material-kit-react/components/typographyStyle.jsx"; 8 | 9 | function Muted({ ...props }) { 10 | const { classes, children } = props; 11 | return ( 12 |
13 | {children} 14 |
15 | ); 16 | } 17 | 18 | Muted.propTypes = { 19 | classes: PropTypes.object.isRequired 20 | }; 21 | 22 | export default withStyles(typographyStyle)(Muted); 23 | -------------------------------------------------------------------------------- /src/components/Typography/Primary.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library to set properties for components 3 | import PropTypes from "prop-types"; 4 | // @material-ui/core components 5 | import withStyles from "@material-ui/core/styles/withStyles"; 6 | // core components 7 | import typographyStyle from "assets/jss/material-kit-react/components/typographyStyle.jsx"; 8 | 9 | function Primary({ ...props }) { 10 | const { classes, children } = props; 11 | return ( 12 |
13 | {children} 14 |
15 | ); 16 | } 17 | 18 | Primary.propTypes = { 19 | classes: PropTypes.object.isRequired 20 | }; 21 | 22 | export default withStyles(typographyStyle)(Primary); 23 | -------------------------------------------------------------------------------- /src/components/Typography/Quote.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library to set properties for components 3 | import PropTypes from "prop-types"; 4 | // @material-ui/core components 5 | import withStyles from "@material-ui/core/styles/withStyles"; 6 | // core components 7 | import typographyStyle from "assets/jss/material-kit-react/components/typographyStyle.jsx"; 8 | 9 | function Quote({ ...props }) { 10 | const { classes, text, author } = props; 11 | return ( 12 |
13 |

{text}

14 | {author} 15 |
16 | ); 17 | } 18 | 19 | Quote.propTypes = { 20 | classes: PropTypes.object.isRequired, 21 | text: PropTypes.node, 22 | author: PropTypes.node 23 | }; 24 | 25 | export default withStyles(typographyStyle)(Quote); 26 | -------------------------------------------------------------------------------- /src/components/Typography/Small.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library to set properties for components 3 | import PropTypes from "prop-types"; 4 | // @material-ui/core components 5 | import withStyles from "@material-ui/core/styles/withStyles"; 6 | // core components 7 | import typographyStyle from "assets/jss/material-kit-react/components/typographyStyle.jsx"; 8 | 9 | function Small({ ...props }) { 10 | const { classes, children } = props; 11 | return ( 12 |
13 | {children} 14 |
15 | ); 16 | } 17 | 18 | Small.propTypes = { 19 | classes: PropTypes.object.isRequired 20 | }; 21 | 22 | export default withStyles(typographyStyle)(Small); 23 | -------------------------------------------------------------------------------- /src/components/Typography/Success.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library to set properties for components 3 | import PropTypes from "prop-types"; 4 | // @material-ui/core components 5 | import withStyles from "@material-ui/core/styles/withStyles"; 6 | // core components 7 | import typographyStyle from "assets/jss/material-kit-react/components/typographyStyle.jsx"; 8 | 9 | function Success({ ...props }) { 10 | const { classes, children } = props; 11 | return ( 12 |
13 | {children} 14 |
15 | ); 16 | } 17 | 18 | Success.propTypes = { 19 | classes: PropTypes.object.isRequired 20 | }; 21 | 22 | export default withStyles(typographyStyle)(Success); 23 | -------------------------------------------------------------------------------- /src/components/Typography/Warning.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library to set properties for components 3 | import PropTypes from "prop-types"; 4 | // @material-ui/core components 5 | import withStyles from "@material-ui/core/styles/withStyles"; 6 | // core components 7 | import typographyStyle from "assets/jss/material-kit-react/components/typographyStyle.jsx"; 8 | 9 | function Warning({ ...props }) { 10 | const { classes, children } = props; 11 | return ( 12 |
13 | {children} 14 |
15 | ); 16 | } 17 | 18 | Warning.propTypes = { 19 | classes: PropTypes.object.isRequired 20 | }; 21 | 22 | export default withStyles(typographyStyle)(Warning); 23 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom"; 3 | import { createBrowserHistory } from "history"; 4 | import { Router, Route, Switch } from "react-router-dom"; 5 | import jwtDecode from "jwt-decode"; 6 | import { Provider } from "react-redux"; 7 | import store from "./store"; 8 | import { login } from "./store/actions"; 9 | import Cookies from "./utils/Cookies"; 10 | 11 | import "./assets/scss/material-kit-react.scss?v=1.4.0"; 12 | 13 | // pages for this product 14 | import Components from "views/Components/Components.jsx"; 15 | import LandingPage from "views/LandingPage/LandingPage.jsx"; 16 | import ProfilePage from "views/ProfilePage/ProfilePage.jsx"; 17 | import LoginPage from "views/LoginPage/LoginPage.jsx"; 18 | 19 | var hist = createBrowserHistory(); 20 | 21 | const token = Cookies.read("token"); 22 | 23 | if (token) { 24 | const user = jwtDecode(token); 25 | 26 | store.dispatch(login(user)); 27 | } 28 | 29 | ReactDOM.render( 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | , 41 | document.getElementById("root") 42 | ); 43 | -------------------------------------------------------------------------------- /src/logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/store/actions/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | * action types 3 | */ 4 | 5 | export const LOGIN = "LOGIN"; 6 | export const LOGOUT = "LOGOUT"; 7 | 8 | /* 9 | * action creators 10 | */ 11 | 12 | export function login(user) { 13 | return { type: LOGIN, user }; 14 | } 15 | 16 | export function logout() { 17 | return { type: LOGOUT }; 18 | } -------------------------------------------------------------------------------- /src/store/index.js: -------------------------------------------------------------------------------- 1 | import { createStore } from "redux"; 2 | import { composeWithDevTools } from "redux-devtools-extension"; 3 | import reducers from "./reducers"; 4 | import preloadedState from "./preloadedState"; 5 | 6 | export default createStore(reducers, preloadedState, composeWithDevTools()); 7 | -------------------------------------------------------------------------------- /src/store/preloadedState.js: -------------------------------------------------------------------------------- 1 | export default {}; 2 | -------------------------------------------------------------------------------- /src/store/reducers/index.js: -------------------------------------------------------------------------------- 1 | import { combineReducers } from "redux"; 2 | import { 3 | LOGIN, 4 | LOGOUT, 5 | } from "../actions"; 6 | 7 | // the user function itself represents the user key of the store 8 | const user = (state = null, action) => { 9 | switch (action.type) { 10 | case LOGIN: 11 | return { 12 | ...state, 13 | ...action.user 14 | }; 15 | case LOGOUT: 16 | return null 17 | 18 | default: 19 | return state; 20 | } 21 | }; 22 | 23 | const reducers = combineReducers({ 24 | user 25 | }); 26 | 27 | export default reducers; 28 | -------------------------------------------------------------------------------- /src/utils/Cookies.js: -------------------------------------------------------------------------------- 1 | export default { 2 | create(name,value,seconds){ 3 | let expires = ""; 4 | 5 | if(seconds) { 6 | let date = new Date(); 7 | date.setTime(date.getTime() + seconds); 8 | expires = `; expires=${date.toUTCString()}` 9 | } 10 | 11 | document.cookie = `${name}=${value}${expires}; path=/` 12 | 13 | return true; 14 | }, 15 | 16 | read(name){ 17 | const cookies = document.cookie.split(';').map( cookie => cookie.trim() ).map(cookie => cookie.split('=') ) 18 | const cookie = cookies.filter(cookie => cookie.includes(name))[0]; 19 | 20 | if(cookie && cookie.length){ 21 | const value = cookie[1] 22 | 23 | return value; 24 | } 25 | 26 | return false; 27 | }, 28 | 29 | remove(name){ 30 | return this.create(name,"",-1); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/views/Components/Components.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library that concatenates classes 3 | import classNames from "classnames"; 4 | // react components for routing our app without refresh 5 | import { Link } from "react-router-dom"; 6 | // @material-ui/core components 7 | import withStyles from "@material-ui/core/styles/withStyles"; 8 | // @material-ui/icons 9 | // core components 10 | import Header from "components/Header/Header.jsx"; 11 | import Footer from "components/Footer/Footer.jsx"; 12 | import GridContainer from "components/Grid/GridContainer.jsx"; 13 | import GridItem from "components/Grid/GridItem.jsx"; 14 | import Button from "components/CustomButtons/Button.jsx"; 15 | import Parallax from "components/Parallax/Parallax.jsx"; 16 | // sections for this page 17 | import HeaderLinks from "components/Header/HeaderLinks.jsx"; 18 | import SectionBasics from "./Sections/SectionBasics.jsx"; 19 | import SectionNavbars from "./Sections/SectionNavbars.jsx"; 20 | import SectionTabs from "./Sections/SectionTabs.jsx"; 21 | import SectionPills from "./Sections/SectionPills.jsx"; 22 | import SectionNotifications from "./Sections/SectionNotifications.jsx"; 23 | import SectionTypography from "./Sections/SectionTypography.jsx"; 24 | import SectionJavascript from "./Sections/SectionJavascript.jsx"; 25 | import SectionCarousel from "./Sections/SectionCarousel.jsx"; 26 | import SectionCompletedExamples from "./Sections/SectionCompletedExamples.jsx"; 27 | import SectionLogin from "./Sections/SectionLogin.jsx"; 28 | import SectionExamples from "./Sections/SectionExamples.jsx"; 29 | import SectionDownload from "./Sections/SectionDownload.jsx"; 30 | 31 | import componentsStyle from "assets/jss/material-kit-react/views/components.jsx"; 32 | 33 | class Components extends React.Component { 34 | render() { 35 | const { classes, ...rest } = this.props; 36 | return ( 37 |
38 |
} 41 | fixed 42 | color="transparent" 43 | changeColorOnScroll={{ 44 | height: 400, 45 | color: "white" 46 | }} 47 | {...rest} 48 | /> 49 | 50 |
51 | 52 | 53 |
54 |

Material Kit React.

55 |

56 | A Badass Material-UI Kit based on Material Design. 57 |

58 |
59 |
60 |
61 |
62 |
63 | 64 |
65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 80 | 81 | 82 | 83 | 84 |
85 |
86 |
87 | ); 88 | } 89 | } 90 | 91 | export default withStyles(componentsStyle)(Components); 92 | -------------------------------------------------------------------------------- /src/views/Components/Sections/SectionCarousel.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // react component for creating beautiful carousel 3 | import Carousel from "react-slick"; 4 | // @material-ui/core components 5 | import withStyles from "@material-ui/core/styles/withStyles"; 6 | // @material-ui/icons 7 | import LocationOn from "@material-ui/icons/LocationOn"; 8 | // core components 9 | import GridContainer from "components/Grid/GridContainer.jsx"; 10 | import GridItem from "components/Grid/GridItem.jsx"; 11 | import Card from "components/Card/Card.jsx"; 12 | import carouselStyle from "assets/jss/material-kit-react/views/componentsSections/carouselStyle.jsx"; 13 | import image1 from "assets/img/bg.jpg"; 14 | import image2 from "assets/img/bg2.jpg"; 15 | import image3 from "assets/img/bg3.jpg"; 16 | 17 | class SectionCarousel extends React.Component { 18 | render() { 19 | const { classes } = this.props; 20 | const settings = { 21 | dots: true, 22 | infinite: true, 23 | speed: 500, 24 | slidesToShow: 1, 25 | slidesToScroll: 1, 26 | autoplay: false 27 | }; 28 | return ( 29 |
30 |
31 | 32 | 33 | 34 | 35 |
36 | First slide 41 |
42 |

43 | 44 | Yellowstone National Park, United States 45 |

46 |
47 |
48 |
49 | Second slide 54 |
55 |

56 | 57 | Somewhere Beyond, United States 58 |

59 |
60 |
61 |
62 | Third slide 67 |
68 |

69 | 70 | Yellowstone National Park, United States 71 |

72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 | ); 81 | } 82 | } 83 | 84 | export default withStyles(carouselStyle)(SectionCarousel); 85 | -------------------------------------------------------------------------------- /src/views/Components/Sections/SectionCompletedExamples.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // @material-ui/core components 3 | import withStyles from "@material-ui/core/styles/withStyles"; 4 | // @material-ui/icons 5 | 6 | // core components 7 | import GridContainer from "components/Grid/GridContainer.jsx"; 8 | import GridItem from "components/Grid/GridItem.jsx"; 9 | 10 | import completedStyle from "assets/jss/material-kit-react/views/componentsSections/completedStyle.jsx"; 11 | 12 | class SectionCompletedExamples extends React.Component { 13 | render() { 14 | const { classes } = this.props; 15 | return ( 16 |
17 |
18 | 19 | 20 |

Completed with examples

21 |

22 | The kit comes with three pre-built pages to help you get started 23 | faster. You can change the text and images and you're good to 24 | go. More importantly, looking at them will give you a picture of 25 | what you can build with this powerful kit. 26 |

27 |
28 |
29 |
30 |
31 | ); 32 | } 33 | } 34 | 35 | export default withStyles(completedStyle)(SectionCompletedExamples); 36 | -------------------------------------------------------------------------------- /src/views/Components/Sections/SectionDownload.jsx: -------------------------------------------------------------------------------- 1 | /*eslint-disable*/ 2 | import React from "react"; 3 | 4 | // @material-ui/core components 5 | import withStyles from "@material-ui/core/styles/withStyles"; 6 | // @material-ui/icons 7 | import GridContainer from "components/Grid/GridContainer.jsx"; 8 | import GridItem from "components/Grid/GridItem.jsx"; 9 | import Button from "components/CustomButtons/Button.jsx"; 10 | // core components 11 | import downloadStyle from "assets/jss/material-kit-react/views/componentsSections/downloadStyle.jsx"; 12 | 13 | class SectionDownload extends React.Component { 14 | render() { 15 | const { classes } = this.props; 16 | return ( 17 |
18 |
19 | 20 | 21 |

Do you love this UI Kit?

22 |

23 | Cause if you do, it can be yours for FREE. Hit the buttons below 24 | to navigate to our website where you can find the kit. We also 25 | have the Bootstrap 4 version on plain HTML. Start a new project 26 | or give an old Bootstrap project a new look! 27 |

28 |
29 | 30 | 38 | 46 | 47 |
48 |
49 |
50 | 51 | 52 |

Want more?

53 |

54 | We've launched{" "} 55 | 59 | Material Kit PRO React{" "} 60 | 61 | .It has a huge number of components, sections and example pages. 62 | Start Your Development With A Badass Material-UI nspired by 63 | Material Design. 64 |

65 |
66 | 67 | 75 | 83 | 84 |
85 |
86 | 87 |

Thank you for supporting us!

88 |
89 | 92 | 96 | 100 | 103 |
104 |
105 |
106 | ); 107 | } 108 | } 109 | 110 | export default withStyles(downloadStyle)(SectionDownload); 111 | -------------------------------------------------------------------------------- /src/views/Components/Sections/SectionExamples.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // react components for routing our app without refresh 3 | import { Link } from "react-router-dom"; 4 | // @material-ui/core components 5 | import withStyles from "@material-ui/core/styles/withStyles"; 6 | // @material-ui/icons 7 | 8 | // core components 9 | import GridContainer from "components/Grid/GridContainer.jsx"; 10 | import GridItem from "components/Grid/GridItem.jsx"; 11 | import Button from "components/CustomButtons/Button.jsx"; 12 | import exampleStyle from "assets/jss/material-kit-react/views/componentsSections/exampleStyle.jsx"; 13 | 14 | import landing from "assets/img/landing.jpg"; 15 | import profile from "assets/img/profile.jpg"; 16 | 17 | class SectionExamples extends React.Component { 18 | render() { 19 | const { classes } = this.props; 20 | return ( 21 |
22 |
23 | 24 | 25 | 26 | ... 37 | 40 | 41 | 42 | 43 | 44 | ... 55 | 58 | 59 | 60 | 61 |
62 |
63 | ); 64 | } 65 | } 66 | 67 | export default withStyles(exampleStyle)(SectionExamples); 68 | -------------------------------------------------------------------------------- /src/views/Components/Sections/SectionLogin.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // @material-ui/core components 3 | import withStyles from "@material-ui/core/styles/withStyles"; 4 | import InputAdornment from "@material-ui/core/InputAdornment"; 5 | import Icon from "@material-ui/core/Icon"; 6 | // @material-ui/icons 7 | import People from "@material-ui/icons/People"; 8 | import Email from "@material-ui/icons/Email"; 9 | // core components 10 | import GridContainer from "components/Grid/GridContainer.jsx"; 11 | import GridItem from "components/Grid/GridItem.jsx"; 12 | import Card from "components/Card/Card.jsx"; 13 | import CardHeader from "components/Card/CardHeader.jsx"; 14 | import CardBody from "components/Card/CardBody.jsx"; 15 | import CardFooter from "components/Card/CardFooter.jsx"; 16 | import Button from "components/CustomButtons/Button.jsx"; 17 | import CustomInput from "components/CustomInput/CustomInput.jsx"; 18 | 19 | import loginStyle from "assets/jss/material-kit-react/views/componentsSections/loginStyle.jsx"; 20 | 21 | class SectionLogin extends React.Component { 22 | render() { 23 | const { classes } = this.props; 24 | return ( 25 |
26 |
27 | 28 | 29 | 30 |
31 | 32 |

Login

33 |
34 | 45 | 56 | 69 |
70 |
71 |

Or Be Classical

72 | 73 | 83 | 84 | 85 | ) 86 | }} 87 | /> 88 | 98 | 99 | 100 | ) 101 | }} 102 | /> 103 | 113 | 114 | lock_outline 115 | 116 | 117 | ) 118 | }} 119 | /> 120 | 121 | 122 | 125 | 126 | 127 |
128 |
129 |
130 |
131 |
132 | ); 133 | } 134 | } 135 | 136 | export default withStyles(loginStyle)(SectionLogin); 137 | -------------------------------------------------------------------------------- /src/views/Components/Sections/SectionNotifications.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | // @material-ui/core components 4 | import withStyles from "@material-ui/core/styles/withStyles"; 5 | // @material-ui/icons 6 | import Check from "@material-ui/icons/Check"; 7 | import Warning from "@material-ui/icons/Warning"; 8 | // core components 9 | import SnackbarContent from "components/Snackbar/SnackbarContent.jsx"; 10 | import Clearfix from "components/Clearfix/Clearfix.jsx"; 11 | import notificationsStyles from "assets/jss/material-kit-react/views/componentsSections/notificationsStyles.jsx"; 12 | 13 | class SectionNotifications extends React.Component { 14 | render() { 15 | const { classes } = this.props; 16 | return ( 17 |
18 |
19 |
20 |

Notifications

21 |
22 |
23 | 26 | INFO ALERT: You've got some friends nearby, stop looking at 27 | your phone and find them... 28 | 29 | } 30 | close 31 | color="info" 32 | icon="info_outline" 33 | /> 34 | 37 | SUCCESS ALERT: You've got some friends nearby, stop looking 38 | at your phone and find them... 39 | 40 | } 41 | close 42 | color="success" 43 | icon={Check} 44 | /> 45 | 48 | WARNING ALERT: You've got some friends nearby, stop looking 49 | at your phone and find them... 50 | 51 | } 52 | close 53 | color="warning" 54 | icon={Warning} 55 | /> 56 | 59 | DANGER ALERT: You've got some friends nearby, stop looking 60 | at your phone and find them... 61 | 62 | } 63 | close 64 | color="danger" 65 | icon="info_outline" 66 | /> 67 | 68 |
69 | ); 70 | } 71 | } 72 | 73 | export default withStyles(notificationsStyles)(SectionNotifications); 74 | -------------------------------------------------------------------------------- /src/views/LandingPage/LandingPage.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library that concatenates classes 3 | import classNames from "classnames"; 4 | // @material-ui/core components 5 | import withStyles from "@material-ui/core/styles/withStyles"; 6 | 7 | // @material-ui/icons 8 | 9 | // core components 10 | import Header from "components/Header/Header.jsx"; 11 | import Footer from "components/Footer/Footer.jsx"; 12 | import GridContainer from "components/Grid/GridContainer.jsx"; 13 | import GridItem from "components/Grid/GridItem.jsx"; 14 | import Button from "components/CustomButtons/Button.jsx"; 15 | import HeaderLinks from "components/Header/HeaderLinks.jsx"; 16 | import Parallax from "components/Parallax/Parallax.jsx"; 17 | 18 | import landingPageStyle from "assets/jss/material-kit-react/views/landingPage.jsx"; 19 | 20 | // Sections for this page 21 | import ProductSection from "./Sections/ProductSection.jsx"; 22 | import TeamSection from "./Sections/TeamSection.jsx"; 23 | import WorkSection from "./Sections/WorkSection.jsx"; 24 | 25 | const dashboardRoutes = []; 26 | 27 | class LandingPage extends React.Component { 28 | render() { 29 | const { classes, ...rest } = this.props; 30 | return ( 31 |
32 |
} 37 | fixed 38 | changeColorOnScroll={{ 39 | height: 400, 40 | color: "white" 41 | }} 42 | {...rest} 43 | /> 44 | 45 |
46 | 47 | 48 |

Material Kit React

49 |

50 | Crafted by Creative-Tim, enhanced by AppSeed. 51 |
52 | Web App released under MIT License. 53 |

54 |
55 | 64 |
65 |
66 |
67 |
68 |
69 |
70 | 71 | 72 | 73 |
74 |
75 |
76 |
77 | ); 78 | } 79 | } 80 | 81 | export default withStyles(landingPageStyle)(LandingPage); 82 | -------------------------------------------------------------------------------- /src/views/LandingPage/Sections/ProductSection.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // @material-ui/core components 3 | import withStyles from "@material-ui/core/styles/withStyles"; 4 | 5 | // @material-ui/icons 6 | import Chat from "@material-ui/icons/Chat"; 7 | import VerifiedUser from "@material-ui/icons/VerifiedUser"; 8 | import Fingerprint from "@material-ui/icons/Fingerprint"; 9 | // core components 10 | import GridContainer from "components/Grid/GridContainer.jsx"; 11 | import GridItem from "components/Grid/GridItem.jsx"; 12 | import InfoArea from "components/InfoArea/InfoArea.jsx"; 13 | 14 | import productStyle from "assets/jss/material-kit-react/views/landingPageSections/productStyle.jsx"; 15 | 16 | class ProductSection extends React.Component { 17 | render() { 18 | const { classes } = this.props; 19 | return ( 20 |
21 | 22 | 23 |

Let's talk product

24 |
25 | This is the paragraph where you can write more details about your 26 | product. Keep you user engaged by providing meaningful 27 | information. Remember that by this time, the user is curious, 28 | otherwise he wouldn't scroll to get here. Add a button if you want 29 | the user to see more. 30 |
31 |
32 |
33 |
34 | 35 | 36 | 43 | 44 | 45 | 52 | 53 | 54 | 61 | 62 | 63 |
64 |
65 | ); 66 | } 67 | } 68 | 69 | export default withStyles(productStyle)(ProductSection); 70 | -------------------------------------------------------------------------------- /src/views/LandingPage/Sections/TeamSection.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // nodejs library that concatenates classes 3 | import classNames from "classnames"; 4 | // @material-ui/core components 5 | import withStyles from "@material-ui/core/styles/withStyles"; 6 | 7 | // @material-ui/icons 8 | 9 | // core components 10 | import GridContainer from "components/Grid/GridContainer.jsx"; 11 | import GridItem from "components/Grid/GridItem.jsx"; 12 | import Button from "components/CustomButtons/Button.jsx"; 13 | import Card from "components/Card/Card.jsx"; 14 | import CardBody from "components/Card/CardBody.jsx"; 15 | import CardFooter from "components/Card/CardFooter.jsx"; 16 | 17 | import teamStyle from "assets/jss/material-kit-react/views/landingPageSections/teamStyle.jsx"; 18 | 19 | import team1 from "assets/img/faces/avatar.jpg"; 20 | import team2 from "assets/img/faces/christian.jpg"; 21 | import team3 from "assets/img/faces/kendall.jpg"; 22 | 23 | class TeamSection extends React.Component { 24 | render() { 25 | const { classes } = this.props; 26 | const imageClasses = classNames( 27 | classes.imgRaised, 28 | classes.imgRoundedCircle, 29 | classes.imgFluid 30 | ); 31 | return ( 32 |
33 |

Here is our team

34 |
35 | 36 | 37 | 38 | 39 | ... 40 | 41 |

42 | Gigi Hadid 43 |
44 | Model 45 |

46 | 47 |

48 | You can write here details about one of your team members. 49 | You can give more details about what they do. Feel free to 50 | add some links for people to be able to 51 | follow them outside the site. 52 |

53 |
54 | 55 | 62 | 69 | 76 | 77 |
78 |
79 | 80 | 81 | 82 | ... 83 | 84 |

85 | Christian Louboutin 86 |
87 | Designer 88 |

89 | 90 |

91 | You can write here details about one of your team members. 92 | You can give more details about what they do. Feel free to 93 | add some links for people to be able to 94 | follow them outside the site. 95 |

96 |
97 | 98 | 105 | 112 | 113 |
114 |
115 | 116 | 117 | 118 | ... 119 | 120 |

121 | Kendall Jenner 122 |
123 | Model 124 |

125 | 126 |

127 | You can write here details about one of your team members. 128 | You can give more details about what they do. Feel free to 129 | add some links for people to be able to 130 | follow them outside the site. 131 |

132 |
133 | 134 | 141 | 148 | 155 | 156 |
157 |
158 |
159 |
160 |
161 | ); 162 | } 163 | } 164 | 165 | export default withStyles(teamStyle)(TeamSection); 166 | -------------------------------------------------------------------------------- /src/views/LandingPage/Sections/WorkSection.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | // @material-ui/core components 3 | import withStyles from "@material-ui/core/styles/withStyles"; 4 | 5 | // @material-ui/icons 6 | 7 | // core components 8 | import GridContainer from "components/Grid/GridContainer.jsx"; 9 | import GridItem from "components/Grid/GridItem.jsx"; 10 | import CustomInput from "components/CustomInput/CustomInput.jsx"; 11 | import Button from "components/CustomButtons/Button.jsx"; 12 | 13 | import workStyle from "assets/jss/material-kit-react/views/landingPageSections/workStyle.jsx"; 14 | 15 | class WorkSection extends React.Component { 16 | render() { 17 | const { classes } = this.props; 18 | return ( 19 |
20 | 21 | 22 |

Work with us

23 |

24 | Divide details about your product or agency work into parts. Write 25 | a few lines about each one and contact us about any further 26 | collaboration. We will responde get back to you in a couple of 27 | hours. 28 |

29 |
30 | 31 | 32 | 39 | 40 | 41 | 48 | 49 | 61 | 62 | 68 | 69 | 70 | 71 | 72 |
73 |
74 |
75 |
76 | ); 77 | } 78 | } 79 | 80 | export default withStyles(workStyle)(WorkSection); 81 | --------------------------------------------------------------------------------