├── .gitignore ├── CHANGELOG.md ├── Documentation ├── css │ ├── demo.css │ ├── documentation.css │ └── light-bootstrap-dashboard.css ├── img │ ├── apple-icon.png │ ├── back.jpg │ ├── favicon.png │ └── tim-logo.png └── tutorial-components.html ├── ISSUE_TEMPLATE.md ├── LICENSE.md ├── README.md ├── jsconfig.json ├── package.json ├── public ├── apple-icon.png ├── favicon.ico ├── index.html └── manifest.json └── src ├── actions └── application.js ├── assets ├── css │ ├── animate.min.css │ ├── demo.css │ ├── light-bootstrap-dashboard-react.css │ ├── light-bootstrap-dashboard-react.css.map │ ├── light-bootstrap-dashboard-react.min.css │ └── pe-icon-7-stroke.css ├── fonts │ ├── Pe-icon-7-stroke.eot │ ├── Pe-icon-7-stroke.svg │ ├── Pe-icon-7-stroke.ttf │ ├── Pe-icon-7-stroke.woff │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 ├── img │ ├── default-avatar.png │ ├── faces │ │ ├── face-0.jpg │ │ ├── face-1.jpg │ │ ├── face-2.jpg │ │ ├── face-3.jpg │ │ ├── face-4.jpg │ │ ├── face-5.jpg │ │ ├── face-6.jpg │ │ ├── face-7.jpg │ │ └── tim_vector.jpe │ ├── loader.gif │ ├── loading-bubbles.svg │ ├── mask.png │ ├── new_logo.png │ ├── reactlogo.png │ ├── sidebar-1.jpg │ ├── sidebar-2.jpg │ ├── sidebar-3.jpg │ ├── sidebar-4.jpg │ ├── sidebar-5.jpg │ └── tim_80x80.png └── sass │ ├── lbd │ ├── _alerts.scss │ ├── _buttons.scss │ ├── _cards.scss │ ├── _chartist.scss │ ├── _checkbox-radio-switch.scss │ ├── _dropdown.scss │ ├── _footers.scss │ ├── _inputs.scss │ ├── _misc.scss │ ├── _mixins.scss │ ├── _navbars.scss │ ├── _responsive.scss │ ├── _sidebar-and-main-panel.scss │ ├── _tables.scss │ ├── _typography.scss │ ├── _variables.scss │ └── mixins │ │ ├── _buttons.scss │ │ ├── _cards.scss │ │ ├── _chartist.scss │ │ ├── _icons.scss │ │ ├── _inputs.scss │ │ ├── _labels.scss │ │ ├── _morphing-buttons.scss │ │ ├── _navbars.scss │ │ ├── _social-buttons.scss │ │ ├── _tabs.scss │ │ ├── _transparency.scss │ │ └── _vendor-prefixes.scss │ └── light-bootstrap-dashboard-react.scss ├── components ├── Card │ └── Card.jsx ├── CustomButton │ └── CustomButton.jsx ├── CustomCheckbox │ └── CustomCheckbox.jsx ├── CustomRadio │ └── CustomRadio.jsx ├── FixedPlugin │ └── FixedPlugin.jsx ├── Footer │ └── Footer.jsx ├── FormInputs │ └── FormInputs.jsx ├── FullPageLoader │ └── FullPageLoader.jsx ├── Navbars │ ├── AdminNavbar.jsx │ └── AdminNavbarLinks.jsx ├── PageLoader │ └── PageLoader.jsx ├── Sidebar │ └── Sidebar.jsx ├── StatsCard │ └── StatsCard.jsx ├── Tasks │ └── Tasks.jsx └── UserCard │ └── UserCard.jsx ├── config.js ├── index.js ├── layouts └── Admin.jsx ├── logo.svg ├── reducers ├── application.js └── rootReducer.js ├── routes.js ├── store.js ├── variables └── Variables.jsx └── views ├── Dashboard.jsx ├── Icons.jsx ├── Maps.jsx ├── Notifications.jsx ├── TableList.jsx ├── Typography.jsx ├── Upgrade.jsx └── UserProfile.jsx /.gitignore: -------------------------------------------------------------------------------- 1 | package-lock.json 2 | node_modules/ 3 | src/config.js -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | ## [1.3.0] 2019-05-03 4 | ### Bug fixing 5 | - Renamed `src/layouts/Dashboard/Dashboard.jsx` to `src/layouts/Admin.jsx` 6 | - Renamed `src/views/Dashboard/Dashboard.jsx` to `src/views/Dashboard.jsx` 7 | - Renamed `src/views/Dashboard/Dashboard.jsx` to `src/views/Icons.jsx` 8 | - Renamed `src/views/Dashboard/Dashboard.jsx` to `src/views/Maps.jsx` 9 | - Renamed `src/views/Dashboard/Dashboard.jsx` to `src/views/Notifications.jsx` 10 | - Renamed `src/views/Dashboard/Dashboard.jsx` to `src/views/TableList.jsx` 11 | - Renamed `src/views/Dashboard/Dashboard.jsx` to `src/views/Typography.jsx` 12 | - Renamed `src/views/Dashboard/Dashboard.jsx` to `src/views/Upgrade.jsx` 13 | - Renamed `src/views/Dashboard/Dashboard.jsx` to `src/views/UserProfile.jsx` 14 | - Renamed `src/components/Header` to `src/components/Navbars` 15 | - Renamed `src/components/Navbars/Header.jsx` to `src/components/Navbars/AdminNavbar.jsx` 16 | - Renamed `src/components/Navbars/HeaderLinks.jsx` to `src/components/Navbars/AdminNavbarLinks.jsx` 17 | - Changes caused by running [the prettier command](https://prettier.io/docs/en/install.html) for *.jsx*, *.js*, *.html* and *.css* files 18 | - Changed our buggy routing system, now it should work flawlessly, for more info, please refer to our [live docs here](https://demos.creative-tim.com/light-bootstrap-dashboard-react/#/documentation/routing-system) 19 | - Solved 20 | - https://github.com/creativetimofficial/light-bootstrap-dashboard-react/issues/48 21 | - https://github.com/creativetimofficial/light-bootstrap-dashboard-react/issues/47 22 | - https://github.com/creativetimofficial/light-bootstrap-dashboard-react/issues/34 23 | - https://github.com/creativetimofficial/light-bootstrap-dashboard-react/issues/30 24 | - https://github.com/creativetimofficial/light-bootstrap-dashboard-react/issues/19 25 | - https://github.com/creativetimofficial/light-bootstrap-dashboard-react/issues/17 26 | - https://github.com/creativetimofficial/light-bootstrap-dashboard-react/issues/15 27 | - Removed `.env` file and replaced it with `jsconfig.json` 28 | - Small bug fixes 29 | ### Removed dependencies/components 30 | - Deleted `src/routes/*` folder 31 | - node-sass-chokidar 32 | - npm-run-all 33 | ### Added dependencies/components 34 | - Added `src/routes.js` file (instead of the three files from `src/routes/*`) 35 | - @types/markerclustererplus@2.1.33 (to stop install warnings) 36 | - @types/googlemaps@3.30.19 (to stop install warnings) 37 | - @types/react@16.8.13 (to stop install warnings) 38 | - typescript@3.4.3 (to stop install warnings) 39 | - react-router@5.0.0 (react-router-dom auto-installs this package, but it is better to have them both inside package.json) 40 | - react-toggle@4.0.2 41 | ### Update dependencies 42 | - node-sass 4.6.1 → 4.12.0 43 | - react 16.2.0 → 16.8.6 44 | - react-bootstrap 0.32.1 → 0.32.4 45 | - react-chartist 0.13.1 → 0.13.3 46 | - react-dom 16.2.0 → 16.8.6 47 | - react-router-dom 4.2.2 → 5.0.0 48 | - react-scripts 1.1.1 → 3.0.0 49 | 50 | ## [1.2.0] 2018-04-12 51 | ### Bug fixing 52 | - Added `fluid` prop on `Grid` component in `Footer` 53 | - Moved all the contents of `elements` folder to `components` folder and delete it 54 | - Renamed `containers` folder to `layouts` 55 | - Renamed `App/App.jsx` to `Dashboard/Dashboard.jsx` 56 | - Renamed `src/routes/app.jsx` to `src/routes/dashboard.jsx` 57 | - Renamed `appRoutes` to `dashboardRoutes` 58 | - Added `src/routes/index.jsx` and made the routes in `src/index.js` dynamically based on `indexRoutes` from `src/routes/index.jsx` (users can now make new layouts and routes for them easier) 59 | ### Removed dependencies/components 60 | - `google-maps-react@1.1.0` 61 | - `react-router@4.1.2` 62 | ### Added dependencies/components 63 | - `node-sass@4.6.1` 64 | - `react-google-maps@9.4.5` (insted of `google-maps-react@1.1.0`) 65 | - `bootstrap@3.3.7` (and deleted `src/assets/bootstrap.min.css?v=3.3.5`) 66 | ### Update dependencies 67 | - `npm-run-all@4.1.1` to `npm-run-all@4.1.2` 68 | - `react@15.6.1` to `react@16.2.0` 69 | - `react-bootstrap@0.31.1` to `react-bootstrap@0.32.1` 70 | - `react-chartist@0.13.0` to `react-chartist@0.13.1` 71 | - `react-dom@15.6.1` to `react-dom@16.2.0` 72 | - `react-notification-system@0.2.15` to `react-notification-system@0.2.17` 73 | - `react-router-dom@4.1.2` to `react-router-dom@4.2.2` 74 | - `react-scripts@1.0.10` to `react-scripts@1.1.1` 75 | 76 | ## [1.1.0] 2017-10-30 77 | ### Bug fixing 78 | - Changed property of `isChecked` in `CustomCheckbox` 79 | - Removed hover state for checkboxes and radios 80 | - Moved `NotificationSystem` outside of `.main-panel` (for responsive issues) 81 | - All `div`'s with Bootstrap classes (`.container`,`.container-fluid`,`.row`,`.col-*`) were changed in React-Bootstrap components 82 | - Changed `Notifications Places` buttons from buttons with `className` to our own button component `CustomButton` 83 | - Added property `round` in `CustomButton` (for the button class `.btn-round`) 84 | - Added dynamic routes 85 | 86 | 87 | ## [1.0.0] 2017-09-20 88 | ### Original Release 89 | - Added React-Bootstrap as base framework 90 | - Added design from Light Bootstrap Dashboard by Creative Tim 91 | -------------------------------------------------------------------------------- /Documentation/css/demo.css: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | ========================================================= 4 | * Light Bootstrap Dashboard React - v1.3.0 5 | ========================================================= 6 | 7 | * Product Page: https://www.creative-tim.com/product/light-bootstrap-dashboard-react 8 | * Copyright 2019 Creative Tim (https://www.creative-tim.com) 9 | * Licensed under MIT (https://github.com/creativetimofficial/light-bootstrap-dashboard-react/blob/master/LICENSE.md) 10 | 11 | * Coded by Creative Tim 12 | 13 | ========================================================= 14 | 15 | * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 16 | 17 | */ 18 | @media (min-width: 992px){ 19 | .typo-line{ 20 | padding-left: 140px; 21 | margin-bottom: 40px; 22 | position: relative; 23 | } 24 | 25 | .typo-line .category{ 26 | transform: translateY(-50%); 27 | top: 50%; 28 | left: 0px; 29 | position: absolute; 30 | } 31 | } 32 | 33 | .icon-section { 34 | margin: 0 0 3em; 35 | clear: both; 36 | overflow: hidden; 37 | } 38 | .icon-container { 39 | width: 240px; 40 | padding: .7em 0; 41 | float: left; 42 | position: relative; 43 | text-align: left; 44 | } 45 | .icon-container [class^="ti-"], 46 | .icon-container [class*=" ti-"] { 47 | color: #000; 48 | position: absolute; 49 | margin-top: 3px; 50 | transition: .3s; 51 | } 52 | .icon-container:hover [class^="ti-"], 53 | .icon-container:hover [class*=" ti-"] { 54 | font-size: 2.2em; 55 | margin-top: -5px; 56 | } 57 | .icon-container:hover .icon-name { 58 | color: #000; 59 | } 60 | .icon-name { 61 | color: #aaa; 62 | margin-left: 35px; 63 | font-size: .8em; 64 | transition: .3s; 65 | } 66 | .icon-container:hover .icon-name { 67 | margin-left: 45px; 68 | } 69 | 70 | .places-buttons .btn{ 71 | margin-bottom: 30px 72 | } 73 | .sidebar .nav > li.active-pro{ 74 | position: absolute; 75 | width: 100%; 76 | bottom: 10px; 77 | } 78 | .sidebar .nav > li.active-pro a{ 79 | background: rgba(255, 255, 255, 0.14); 80 | opacity: 1; 81 | color: #FFFFFF; 82 | } 83 | 84 | .table-upgrade td:nth-child(2), 85 | .table-upgrade td:nth-child(3){ 86 | text-align: center; 87 | } 88 | body.nude{ 89 | background-color: #f4f3ef; 90 | } 91 | -------------------------------------------------------------------------------- /Documentation/css/documentation.css: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | ========================================================= 4 | * Light Bootstrap Dashboard React - v1.3.0 5 | ========================================================= 6 | 7 | * Product Page: https://www.creative-tim.com/product/light-bootstrap-dashboard-react 8 | * Copyright 2019 Creative Tim (https://www.creative-tim.com) 9 | * Licensed under MIT (https://github.com/creativetimofficial/light-bootstrap-dashboard-react/blob/master/LICENSE.md) 10 | 11 | * Coded by Creative Tim 12 | 13 | ========================================================= 14 | 15 | * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 16 | 17 | */ 18 | .tim-row{ 19 | padding-top: 60px; 20 | } 21 | pre.prettyprint{ 22 | background-color: #eee; 23 | border: 0px; 24 | margin-bottom: 0; 25 | margin-top: 20px; 26 | padding: 20px; 27 | text-align: left; 28 | } 29 | .atv, .str{ 30 | color: #05AE0E; 31 | } 32 | .tag, .pln, .kwd{ 33 | color: #3472F7; 34 | } 35 | .atn{ 36 | color: #2C93FF; 37 | } 38 | .pln{ 39 | color: #333; 40 | } 41 | .com{ 42 | color: #999; 43 | } 44 | .space-top{ 45 | margin-top: 50px; 46 | } 47 | .btn-primary .caret{ 48 | border-top-color: #3472F7; 49 | color: #3472F7; 50 | } 51 | .area-line{ 52 | border: 1px solid #999; 53 | border-left: 0; 54 | border-right: 0; 55 | color: #666; 56 | display: block; 57 | margin-top: 20px; 58 | padding: 8px 0; 59 | text-align: center; 60 | } 61 | .area-line a{ 62 | color: #666; 63 | } 64 | .container-fluid{ 65 | padding-right: 15px; 66 | padding-left: 15px; 67 | } 68 | .logo-container .logo{ 69 | overflow: hidden; 70 | border-radius: 50%; 71 | border: 1px solid #333333; 72 | width: 50px; 73 | float: left; 74 | } 75 | .header-wrapper { 76 | position: relative; 77 | height: 100%; 78 | } 79 | 80 | .header-wrapper .navbar { 81 | border-radius: 0; 82 | position: absolute; 83 | width: 100%; 84 | z-index: 3; 85 | } 86 | .header-wrapper .header { 87 | background-color: #ff8f5e; 88 | background-position: center center; 89 | background-size: cover; 90 | height: 100%; 91 | overflow: hidden; 92 | position: absolute; 93 | width: 100%; 94 | z-index: 1; 95 | } 96 | .header-wrapper .header .filter::after { 97 | content: ""; 98 | display: block; 99 | height: 100%; 100 | left: 0; 101 | opacity: 0.77; 102 | position: absolute; 103 | top: 0; 104 | width: 100%; 105 | z-index: 2; 106 | } 107 | .header-wrapper .title-container{ 108 | color: #fff; 109 | position: relative; 110 | top: 30%; 111 | z-index: 3; 112 | 113 | } 114 | .logo-container .brand{ 115 | font-size: 18px; 116 | color: #FFFFFF; 117 | line-height: 20px; 118 | float: left; 119 | margin-left: 10px; 120 | margin-top: 5px; 121 | width: 50px; 122 | height: 50px; 123 | } 124 | .logo-container{ 125 | margin-top: 10px; 126 | margin-left: 15px; 127 | } 128 | .logo-container .logo img{ 129 | width: 100%; 130 | } 131 | .navbar-small .logo-container .brand{ 132 | color: #333333; 133 | } 134 | .fixed-section{ 135 | top: 90px; 136 | max-height: 493px; 137 | overflow: scroll; 138 | border-bottom: 1px solid rgba(220,220,220, .6); 139 | } 140 | 141 | .fixed-section ul{ 142 | padding: 0; 143 | } 144 | 145 | .fixed-section.affix-top{ 146 | margin-top: 90px; 147 | } 148 | 149 | .fixed-section ul li{ 150 | list-style: none; 151 | } 152 | .fixed-section li a{ 153 | font-size: 14px; 154 | padding: 2px; 155 | display: block; 156 | color: #666666; 157 | } 158 | .fixed-section li a.active{ 159 | color: #00bbff; 160 | } 161 | .fixed-section.float{ 162 | position: fixed; 163 | top: 100px; 164 | width: 200px; 165 | margin-top: 0; 166 | } 167 | .copyright { 168 | color: #777777; 169 | padding: 10px 15px; 170 | font-size: 14px; 171 | margin: 15px 3px; 172 | line-height: 20px; 173 | text-align: center; 174 | } 175 | 176 | .table-bigboy .img-container{ 177 | width: 130px; 178 | height: 85px; 179 | } 180 | 181 | .table-bigboy .td-name{ 182 | min-width: 170px; 183 | } 184 | #buttons-row .btn{ 185 | margin-bottom: 15px; 186 | } 187 | 188 | .navbar .navbar-nav > li > a.btn.btn-white, 189 | .navbar .navbar-nav > li > a.btn.btn-white:hover, 190 | .navbar .navbar-nav > li > a.btn.btn-white:focus{ 191 | color: #FFFFFF; 192 | } 193 | 194 | @media (min-width: 992px){ 195 | .navbar { 196 | min-height: 70px; 197 | } 198 | } 199 | 200 | .header-full{ 201 | min-height: 100vh; 202 | height: auto; 203 | max-height: 999px; 204 | } 205 | .filter{ 206 | position: absolute; 207 | left: 0; 208 | right: 0; 209 | top: 0; 210 | bottom: 0; 211 | width: 100%; 212 | height: 100%; 213 | z-index: 0; 214 | 215 | } 216 | .filter:after{ 217 | background: #1dc7ea; 218 | background: rgba(0, 0, 0, 0) linear-gradient(to bottom, #058faa 0%, #058faa 100%) repeat scroll 0 0 / 150% 150%; 219 | height: 100% !important; 220 | } 221 | -------------------------------------------------------------------------------- /Documentation/img/apple-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/Documentation/img/apple-icon.png -------------------------------------------------------------------------------- /Documentation/img/back.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/Documentation/img/back.jpg -------------------------------------------------------------------------------- /Documentation/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/Documentation/img/favicon.png -------------------------------------------------------------------------------- /Documentation/img/tim-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/Documentation/img/tim-logo.png -------------------------------------------------------------------------------- /Documentation/tutorial-components.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | Components - Light Bootstrap Dashboard React Free by Creative Tim 31 | 32 | 33 | 37 | 38 | 39 | 45 | 46 | 47 | 48 | 49 | 50 | 54 | 59 | 60 | 61 | 62 | 98 | 99 |
100 |
101 |
102 |
103 |

Light Bootstrap Dashboard React Free

104 |

v1.3.0

105 |

106 | We are constantly doing updates for you. 107 |

108 | View Documentation 114 |
115 |
116 |
117 | 118 | 119 | -------------------------------------------------------------------------------- /ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 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 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": "src", 4 | "paths": { 5 | "*": ["src/*"] 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "light-bootstrap-dashboard-react", 3 | "version": "1.3.0", 4 | "private": true, 5 | "dependencies": { 6 | "axios": "^0.19.0", 7 | "bootstrap": "3.3.7", 8 | "chartist": "0.10.1", 9 | "node-sass": "4.12.0", 10 | "react": "16.8.6", 11 | "react-bootstrap": "0.32.4", 12 | "react-chartist": "0.13.3", 13 | "react-dom": "16.8.6", 14 | "react-google-maps": "9.4.5", 15 | "react-notification-system": "0.2.17", 16 | "react-redux": "^7.1.3", 17 | "react-router": "5.0.0", 18 | "react-router-dom": "5.0.0", 19 | "react-scripts": "3.0.0", 20 | "react-toggle": "4.0.2", 21 | "redux": "^4.0.5", 22 | "redux-thunk": "^2.3.0" 23 | }, 24 | "devDependencies": { 25 | "@types/googlemaps": "3.30.19", 26 | "@types/markerclustererplus": "2.1.33", 27 | "@types/react": "16.8.13", 28 | "typescript": "3.4.3" 29 | }, 30 | "scripts": { 31 | "start": "react-scripts start", 32 | "build": "react-scripts build", 33 | "test": "react-scripts test --env=jsdom", 34 | "eject": "react-scripts eject", 35 | "install:clean": "rm -rf node_modules/ && rm -rf package-lock.json && npm install && npm start", 36 | "compile-sass": "node-sass src/assets/sass/light-bootstrap-dashboard-react.scss src/assets/css/light-bootstrap-dashboard-react.css", 37 | "minify-sass": "node-sass src/assets/sass/light-bootstrap-dashboard-react.scss src/assets/css/light-bootstrap-dashboard-react.min.css --output-style compressed", 38 | "map-sass": "node-sass src/assets/sass/light-bootstrap-dashboard-react.scss src/assets/css/light-bootstrap-dashboard-react.css --source-map true" 39 | }, 40 | "browserslist": { 41 | "production": [ 42 | ">0.2%", 43 | "not dead", 44 | "not op_mini all" 45 | ], 46 | "development": [ 47 | "last 1 chrome version", 48 | "last 1 firefox version", 49 | "last 1 safari version" 50 | ] 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /public/apple-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/public/apple-icon.png -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 | 24 | 28 | 29 | 33 | 34 | 35 | 40 | 41 | 50 | Light Bootstrap Dashboard - React 51 | 52 | 56 | 61 | 62 | 63 | 64 |
65 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "LBDR", 3 | "name": "Light Bootstrap Dashboard React by Creative Tim", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": ".", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /src/actions/application.js: -------------------------------------------------------------------------------- 1 | export const profileData = data => dispatch => { 2 | dispatch({ 3 | type: "PROFILE_DATA", 4 | data 5 | }); 6 | }; 7 | 8 | export const showLoader = () => dispatch => { 9 | dispatch({ 10 | type: "SHOW_LOADER" 11 | }) 12 | } 13 | 14 | export const hideLoader = () => dispatch => { 15 | dispatch({ 16 | type: "HIDE_LOADER" 17 | }) 18 | } 19 | -------------------------------------------------------------------------------- /src/assets/fonts/Pe-icon-7-stroke.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/fonts/Pe-icon-7-stroke.eot -------------------------------------------------------------------------------- /src/assets/fonts/Pe-icon-7-stroke.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/fonts/Pe-icon-7-stroke.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Pe-icon-7-stroke.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/fonts/Pe-icon-7-stroke.woff -------------------------------------------------------------------------------- /src/assets/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /src/assets/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /src/assets/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /src/assets/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /src/assets/img/default-avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/img/default-avatar.png -------------------------------------------------------------------------------- /src/assets/img/faces/face-0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/img/faces/face-0.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/face-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/img/faces/face-1.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/face-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/img/faces/face-2.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/face-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/img/faces/face-3.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/face-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/img/faces/face-4.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/face-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/img/faces/face-5.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/face-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/img/faces/face-6.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/face-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/img/faces/face-7.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/tim_vector.jpe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/img/faces/tim_vector.jpe -------------------------------------------------------------------------------- /src/assets/img/loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/img/loader.gif -------------------------------------------------------------------------------- /src/assets/img/loading-bubbles.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 9 | 10 | 11 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/assets/img/mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/img/mask.png -------------------------------------------------------------------------------- /src/assets/img/new_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/img/new_logo.png -------------------------------------------------------------------------------- /src/assets/img/reactlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/img/reactlogo.png -------------------------------------------------------------------------------- /src/assets/img/sidebar-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/img/sidebar-1.jpg -------------------------------------------------------------------------------- /src/assets/img/sidebar-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/img/sidebar-2.jpg -------------------------------------------------------------------------------- /src/assets/img/sidebar-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/img/sidebar-3.jpg -------------------------------------------------------------------------------- /src/assets/img/sidebar-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/img/sidebar-4.jpg -------------------------------------------------------------------------------- /src/assets/img/sidebar-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/img/sidebar-5.jpg -------------------------------------------------------------------------------- /src/assets/img/tim_80x80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codegeous/react-demo/c3cc333e82a57a08081f278701a92acf299d4f97/src/assets/img/tim_80x80.png -------------------------------------------------------------------------------- /src/assets/sass/lbd/_alerts.scss: -------------------------------------------------------------------------------- 1 | .alert{ 2 | border: 0; 3 | border-radius: 0; 4 | color: #FFFFFF; 5 | padding: 10px 15px; 6 | font-size: 14px; 7 | 8 | .container &{ 9 | border-radius: 4px; 10 | 11 | } 12 | .navbar &{ 13 | border-radius: 0; 14 | left: 0; 15 | position: absolute; 16 | right: 0; 17 | top: 85px; 18 | width: 100%; 19 | z-index: 3; 20 | } 21 | .navbar:not(.navbar-transparent) &{ 22 | top: 70px; 23 | } 24 | 25 | span[data-notify="icon"]{ 26 | font-size: 30px; 27 | display: block; 28 | left: 15px; 29 | position: absolute; 30 | top: 50%; 31 | margin-top: -15px; 32 | } 33 | 34 | button.close{ 35 | position: absolute; 36 | right: 10px; 37 | top: 50%; 38 | margin-top: -13px; 39 | z-index: 1033; 40 | background-color: #FFFFFF; 41 | display: block; 42 | border-radius: 50%; 43 | opacity: .4; 44 | line-height: 20px; 45 | font-size: 12px; 46 | width: 25px; 47 | height: 25px; 48 | outline: 0 !important; 49 | text-align: center; 50 | padding: 3px; 51 | font-weight: 300; 52 | 53 | &:hover{ 54 | opacity: .55; 55 | } 56 | } 57 | 58 | .close ~ span{ 59 | display: block; 60 | max-width: 89%; 61 | } 62 | 63 | &[data-notify="container"]{ 64 | padding: 10px 10px 10px 20px; 65 | border-radius: $border-radius-base; 66 | } 67 | 68 | &.alert-with-icon{ 69 | padding-left: 65px; 70 | } 71 | a, a:hover, a:focus{ 72 | text-decoration: underline; 73 | color: white; 74 | } 75 | } 76 | .alert-info{ 77 | background-color: $azure-navbar; 78 | } 79 | .alert-success { 80 | background-color: $green-navbar; 81 | } 82 | .alert-warning { 83 | background-color: $orange-navbar; 84 | } 85 | .alert-danger { 86 | background-color: $red-navbar; 87 | } 88 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_buttons.scss: -------------------------------------------------------------------------------- 1 | .btn{ 2 | border-width: $border-thick; 3 | background-color: $transparent-bg; 4 | font-weight: $font-weight-normal; 5 | 6 | @include opacity(.8); 7 | padding: $padding-base-vertical $padding-base-horizontal; 8 | 9 | @include btn-styles($default-color, $default-states-color); 10 | 11 | &:hover, 12 | &:focus{ 13 | @include opacity(1); 14 | outline: 0 !important; 15 | } 16 | &:active, 17 | &.active, 18 | .open > &.dropdown-toggle { 19 | @include box-shadow(none); 20 | outline: 0 !important; 21 | } 22 | 23 | &.btn-icon{ 24 | padding: $padding-base-vertical; 25 | } 26 | 27 | } 28 | 29 | // Apply the mixin to the buttons 30 | //.btn-default { @include btn-styles($default-color, $default-states-color); } 31 | .btn-primary { @include btn-styles($primary-color, $primary-states-color); } 32 | .btn-success { @include btn-styles($success-color, $success-states-color); } 33 | .btn-info { @include btn-styles($info-color, $info-states-color); } 34 | .btn-warning { @include btn-styles($warning-color, $warning-states-color); } 35 | .btn-danger { @include btn-styles($danger-color, $danger-states-color); } 36 | .btn-neutral { 37 | @include btn-styles($white-color, $white-color); 38 | 39 | &:active, 40 | &.active, 41 | .open > &.dropdown-toggle{ 42 | background-color: $white-color; 43 | color: $default-color; 44 | } 45 | 46 | &.btn-fill, 47 | &.btn-fill:hover, 48 | &.btn-fill:focus{ 49 | color: $default-color; 50 | } 51 | 52 | &.btn-simple:active, 53 | &.btn-simple.active{ 54 | background-color: transparent; 55 | } 56 | } 57 | 58 | .btn{ 59 | &:disabled, 60 | &[disabled], 61 | &.disabled{ 62 | @include opacity(.5); 63 | } 64 | } 65 | .btn-round{ 66 | border-width: $border-thin; 67 | border-radius: $btn-round-radius !important; 68 | padding: $padding-round-vertical $padding-round-horizontal; 69 | 70 | &.btn-icon{ 71 | padding: $padding-round-vertical; 72 | } 73 | } 74 | .btn-simple{ 75 | border: $none; 76 | font-size: $font-size-medium; 77 | padding: $padding-base-vertical $padding-base-horizontal; 78 | 79 | &.btn-icon{ 80 | padding: $padding-base-vertical; 81 | } 82 | } 83 | .btn-lg{ 84 | @include btn-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $border-radius-large); 85 | font-weight: $font-weight-normal; 86 | } 87 | .btn-sm{ 88 | @include btn-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $border-radius-small); 89 | } 90 | .btn-xs { 91 | @include btn-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $border-radius-small); 92 | } 93 | .btn-wd { 94 | min-width: 140px; 95 | } 96 | 97 | .btn-group.select{ 98 | width: 100%; 99 | } 100 | .btn-group.select .btn{ 101 | text-align: left; 102 | } 103 | .btn-group.select .caret{ 104 | position: absolute; 105 | top: 50%; 106 | margin-top: -1px; 107 | right: 8px; 108 | } 109 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_cards.scss: -------------------------------------------------------------------------------- 1 | .card{ 2 | border-radius: $border-radius-base; 3 | box-shadow: 0 1px 2px rgba(0,0,0,.05),0 0 0 1px rgba(63,63,68,.1); 4 | background-color: #FFFFFF; 5 | margin-bottom: 30px; 6 | 7 | .image{ 8 | width: 100%; 9 | overflow: hidden; 10 | height: 260px; 11 | border-radius: $border-radius-base $border-radius-base 0 0; 12 | position: relative; 13 | -webkit-transform-style: preserve-3d; 14 | -moz-transform-style: preserve-3d; 15 | transform-style: preserve-3d; 16 | 17 | img { 18 | width: 100%; 19 | } 20 | } 21 | .filter{ 22 | position: absolute; 23 | z-index: 2; 24 | background-color: rgba(0,0,0,.68); 25 | top: 0; 26 | left: 0; 27 | width: 100%; 28 | height: 100%; 29 | text-align: center; 30 | 31 | @include opacity(0); 32 | 33 | .btn{ 34 | @include vertical-align(); 35 | } 36 | } 37 | &:hover .filter{ 38 | @include opacity(1); 39 | } 40 | .btn-hover{ 41 | @include opacity(0); 42 | } 43 | &:hover .btn-hover{ 44 | @include opacity(1); 45 | } 46 | .content{ 47 | padding: 15px 15px 10px 15px; 48 | } 49 | .header{ 50 | padding: 15px 15px 0; 51 | } 52 | .category, 53 | label{ 54 | font-size: $font-size-base; 55 | font-weight: $font-weight-normal; 56 | color: $dark-gray; 57 | margin-bottom: 0px; 58 | 59 | i{ 60 | font-size: $font-paragraph; 61 | } 62 | } 63 | 64 | label{ 65 | font-size: $font-size-small; 66 | margin-bottom: 5px; 67 | text-transform: uppercase; 68 | } 69 | 70 | .title{ 71 | margin: $none; 72 | color: $black-color; 73 | font-weight: $font-weight-light; 74 | } 75 | .avatar{ 76 | width: 30px; 77 | height: 30px; 78 | overflow: hidden; 79 | border-radius: 50%; 80 | margin-right: 5px; 81 | } 82 | .description{ 83 | font-size: $font-size-base; 84 | color: #333; 85 | } 86 | .footer{ 87 | padding: 0; 88 | background-color: $transparent-bg; 89 | line-height: 30px; 90 | 91 | .legend{ 92 | padding: 5px 0; 93 | } 94 | 95 | hr{ 96 | margin-top: 5px; 97 | margin-bottom: 5px; 98 | } 99 | } 100 | .stats{ 101 | color: #a9a9a9; 102 | } 103 | .footer div{ 104 | display: inline-block; 105 | } 106 | 107 | .author{ 108 | font-size: $font-size-small; 109 | font-weight: $font-weight-bold; 110 | text-transform: uppercase; 111 | } 112 | .author i{ 113 | font-size: $font-size-base; 114 | } 115 | h6{ 116 | font-size: $font-size-small; 117 | margin: 0; 118 | } 119 | &.card-separator:after{ 120 | height: 100%; 121 | right: -15px; 122 | top: 0; 123 | width: 1px; 124 | background-color: $medium-gray; 125 | content: ""; 126 | position: absolute; 127 | } 128 | 129 | .ct-chart{ 130 | margin: 30px 0 30px; 131 | height: 245px; 132 | } 133 | 134 | .table{ 135 | tbody td:first-child, 136 | thead th:first-child{ 137 | padding-left: 15px; 138 | } 139 | 140 | tbody td:last-child, 141 | thead th:last-child{ 142 | padding-right: 15px; 143 | } 144 | } 145 | 146 | .alert{ 147 | border-radius: $border-radius-base; 148 | position: relative; 149 | 150 | &.alert-with-icon{ 151 | padding-left: 65px; 152 | } 153 | } 154 | } 155 | .card-user{ 156 | .image{ 157 | height: 110px; 158 | } 159 | .image-plain{ 160 | height: 0; 161 | margin-top: 110px; 162 | } 163 | .author{ 164 | text-align: center; 165 | text-transform: none; 166 | margin-top: -70px; 167 | } 168 | .avatar{ 169 | width: 124px; 170 | height: 124px; 171 | border: 5px solid #FFFFFF; 172 | position: relative; 173 | margin-bottom: 15px; 174 | 175 | &.border-gray{ 176 | border-color: #EEEEEE; 177 | } 178 | } 179 | .title{ 180 | line-height: 24px; 181 | } 182 | .content{ 183 | min-height: 240px; 184 | } 185 | } 186 | 187 | .card-user, 188 | .card-price{ 189 | .footer{ 190 | padding: 5px 15px 10px; 191 | } 192 | hr{ 193 | margin: 5px 15px; 194 | } 195 | } 196 | .card-plain{ 197 | background-color: transparent; 198 | box-shadow: none; 199 | border-radius: 0; 200 | 201 | .image{ 202 | border-radius: 4px; 203 | } 204 | } 205 | 206 | .card-stats{ 207 | .icon-big{ 208 | font-size: 3em; 209 | min-height: 64px; 210 | i{ 211 | font-weight: bold; 212 | line-height: 59px; 213 | } 214 | } 215 | .numbers{ 216 | font-size: 2em; 217 | text-align: right; 218 | p { 219 | margin: 0; 220 | } 221 | } 222 | } 223 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_chartist.scss: -------------------------------------------------------------------------------- 1 | @mixin ct-responsive-svg-container($width: 100%, $ratio: $ct-container-ratio) { 2 | display: block; 3 | position: relative; 4 | width: $width; 5 | 6 | &:before { 7 | display: block; 8 | float: left; 9 | content: ""; 10 | width: 0; 11 | height: 0; 12 | padding-bottom: $ratio * 100%; 13 | } 14 | 15 | &:after { 16 | content: ""; 17 | display: table; 18 | clear: both; 19 | } 20 | 21 | > svg { 22 | display: block; 23 | position: absolute; 24 | top: 0; 25 | left: 0; 26 | } 27 | } 28 | 29 | @mixin ct-align-justify($ct-text-align: $ct-text-align, $ct-text-justify: $ct-text-justify) { 30 | -webkit-box-align: $ct-text-align; 31 | -webkit-align-items: $ct-text-align; 32 | -ms-flex-align: $ct-text-align; 33 | align-items: $ct-text-align; 34 | -webkit-box-pack: $ct-text-justify; 35 | -webkit-justify-content: $ct-text-justify; 36 | -ms-flex-pack: $ct-text-justify; 37 | justify-content: $ct-text-justify; 38 | // Fallback to text-align for non-flex browsers 39 | @if($ct-text-justify == 'flex-start') { 40 | text-align: left; 41 | } @else if ($ct-text-justify == 'flex-end') { 42 | text-align: right; 43 | } @else { 44 | text-align: center; 45 | } 46 | } 47 | 48 | @mixin ct-flex() { 49 | // Fallback to block 50 | display: block; 51 | display: -webkit-box; 52 | display: -moz-box; 53 | display: -ms-flexbox; 54 | display: -webkit-flex; 55 | display: flex; 56 | } 57 | 58 | @mixin ct-chart-label($ct-text-color: $ct-text-color, $ct-text-size: $ct-text-size, $ct-text-line-height: $ct-text-line-height) { 59 | fill: $ct-text-color; 60 | color: $ct-text-color; 61 | font-size: $ct-text-size; 62 | line-height: $ct-text-line-height; 63 | } 64 | 65 | @mixin ct-chart-grid($ct-grid-color: $ct-grid-color, $ct-grid-width: $ct-grid-width, $ct-grid-dasharray: $ct-grid-dasharray) { 66 | stroke: $ct-grid-color; 67 | stroke-width: $ct-grid-width; 68 | 69 | @if ($ct-grid-dasharray) { 70 | stroke-dasharray: $ct-grid-dasharray; 71 | } 72 | } 73 | 74 | @mixin ct-chart-point($ct-point-size: $ct-point-size, $ct-point-shape: $ct-point-shape) { 75 | stroke-width: $ct-point-size; 76 | stroke-linecap: $ct-point-shape; 77 | } 78 | 79 | @mixin ct-chart-line($ct-line-width: $ct-line-width, $ct-line-dasharray: $ct-line-dasharray) { 80 | fill: none; 81 | stroke-width: $ct-line-width; 82 | 83 | @if ($ct-line-dasharray) { 84 | stroke-dasharray: $ct-line-dasharray; 85 | } 86 | } 87 | 88 | @mixin ct-chart-area($ct-area-opacity: $ct-area-opacity) { 89 | stroke: none; 90 | fill-opacity: $ct-area-opacity; 91 | } 92 | 93 | @mixin ct-chart-bar($ct-bar-width: $ct-bar-width) { 94 | fill: none; 95 | stroke-width: $ct-bar-width; 96 | } 97 | 98 | @mixin ct-chart-donut($ct-donut-width: $ct-donut-width) { 99 | fill: none; 100 | stroke-width: $ct-donut-width; 101 | } 102 | 103 | @mixin ct-chart-series-color($color) { 104 | .#{$ct-class-point}, .#{$ct-class-line}, .#{$ct-class-bar}, .#{$ct-class-slice-donut} { 105 | stroke: $color; 106 | } 107 | 108 | .#{$ct-class-slice-pie}, .#{$ct-class-area} { 109 | fill: $color; 110 | } 111 | } 112 | 113 | @mixin ct-chart($ct-container-ratio: $ct-container-ratio, $ct-text-color: $ct-text-color, $ct-text-size: $ct-text-size, $ct-grid-color: $ct-grid-color, $ct-grid-width: $ct-grid-width, $ct-grid-dasharray: $ct-grid-dasharray, $ct-point-size: $ct-point-size, $ct-point-shape: $ct-point-shape, $ct-line-width: $ct-line-width, $ct-bar-width: $ct-bar-width, $ct-donut-width: $ct-donut-width, $ct-series-names: $ct-series-names, $ct-series-colors: $ct-series-colors) { 114 | 115 | .#{$ct-class-label} { 116 | @include ct-chart-label($ct-text-color, $ct-text-size); 117 | } 118 | 119 | .#{$ct-class-chart-line} .#{$ct-class-label}, 120 | .#{$ct-class-chart-bar} .#{$ct-class-label} { 121 | @include ct-flex(); 122 | } 123 | 124 | .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-start} { 125 | @include ct-align-justify(flex-end, flex-start); 126 | // Fallback for browsers that don't support foreignObjects 127 | text-anchor: start; 128 | } 129 | 130 | .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-end} { 131 | @include ct-align-justify(flex-start, flex-start); 132 | // Fallback for browsers that don't support foreignObjects 133 | text-anchor: start; 134 | } 135 | 136 | .#{$ct-class-label}.#{$ct-class-vertical}.#{$ct-class-start} { 137 | @include ct-align-justify(flex-end, flex-end); 138 | // Fallback for browsers that don't support foreignObjects 139 | text-anchor: end; 140 | } 141 | 142 | .#{$ct-class-label}.#{$ct-class-vertical}.#{$ct-class-end} { 143 | @include ct-align-justify(flex-end, flex-start); 144 | // Fallback for browsers that don't support foreignObjects 145 | text-anchor: start; 146 | } 147 | 148 | .#{$ct-class-chart-bar} .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-start} { 149 | @include ct-align-justify(flex-end, center); 150 | // Fallback for browsers that don't support foreignObjects 151 | text-anchor: start; 152 | } 153 | 154 | .#{$ct-class-chart-bar} .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-end} { 155 | @include ct-align-justify(flex-start, center); 156 | // Fallback for browsers that don't support foreignObjects 157 | text-anchor: start; 158 | } 159 | 160 | .#{$ct-class-chart-bar}.#{$ct-class-horizontal-bars} .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-start} { 161 | @include ct-align-justify(flex-end, flex-start); 162 | // Fallback for browsers that don't support foreignObjects 163 | text-anchor: start; 164 | } 165 | 166 | .#{$ct-class-chart-bar}.#{$ct-class-horizontal-bars} .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-end} { 167 | @include ct-align-justify(flex-start, flex-start); 168 | // Fallback for browsers that don't support foreignObjects 169 | text-anchor: start; 170 | } 171 | 172 | .#{$ct-class-chart-bar}.#{$ct-class-horizontal-bars} .#{$ct-class-label}.#{$ct-class-vertical}.#{$ct-class-start} { 173 | //@include ct-chart-label($ct-text-color, $ct-text-size, center, $ct-vertical-text-justify); 174 | @include ct-align-justify(center, flex-end); 175 | // Fallback for browsers that don't support foreignObjects 176 | text-anchor: end; 177 | } 178 | 179 | .#{$ct-class-chart-bar}.#{$ct-class-horizontal-bars} .#{$ct-class-label}.#{$ct-class-vertical}.#{$ct-class-end} { 180 | @include ct-align-justify(center, flex-start); 181 | // Fallback for browsers that don't support foreignObjects 182 | text-anchor: end; 183 | } 184 | 185 | .#{$ct-class-grid} { 186 | @include ct-chart-grid($ct-grid-color, $ct-grid-width, $ct-grid-dasharray); 187 | } 188 | 189 | .#{$ct-class-point} { 190 | @include ct-chart-point($ct-point-size, $ct-point-shape); 191 | } 192 | 193 | .#{$ct-class-line} { 194 | @include ct-chart-line($ct-line-width); 195 | } 196 | 197 | .#{$ct-class-area} { 198 | @include ct-chart-area(); 199 | } 200 | 201 | .#{$ct-class-bar} { 202 | @include ct-chart-bar($ct-bar-width); 203 | } 204 | 205 | .#{$ct-class-slice-donut} { 206 | @include ct-chart-donut($ct-donut-width); 207 | } 208 | 209 | @if $ct-include-colored-series { 210 | @for $i from 0 to length($ct-series-names) { 211 | .#{$ct-class-series}-#{nth($ct-series-names, $i + 1)} { 212 | $color: nth($ct-series-colors, $i + 1); 213 | 214 | @include ct-chart-series-color($color); 215 | } 216 | } 217 | } 218 | } 219 | 220 | @if $ct-include-classes { 221 | @include ct-chart(); 222 | 223 | @if $ct-include-alternative-responsive-containers { 224 | @for $i from 0 to length($ct-scales-names) { 225 | .#{nth($ct-scales-names, $i + 1)} { 226 | @include ct-responsive-svg-container($ratio: nth($ct-scales, $i + 1)); 227 | } 228 | } 229 | } 230 | } -------------------------------------------------------------------------------- /src/assets/sass/lbd/_checkbox-radio-switch.scss: -------------------------------------------------------------------------------- 1 | /* Checkbox and radio */ 2 | .checkbox, 3 | .radio { 4 | margin-bottom: 12px; 5 | } 6 | 7 | .checkbox label, 8 | .radio label { 9 | display: inline-block; 10 | position: relative; 11 | cursor: pointer; 12 | padding-left: 24px; 13 | margin-bottom: 0; 14 | } 15 | 16 | .checkbox label::before, 17 | .checkbox label::after{ 18 | font-family: 'FontAwesome'; 19 | content: "\f096"; 20 | display: inline-block; 21 | position: absolute; 22 | width: 20px; 23 | height: 20px; 24 | left: 0; 25 | cursor: pointer; 26 | line-height: 19px; 27 | font-size: 20px; 28 | -webkit-font-smoothing: antialiased; 29 | -moz-osx-font-smoothing: grayscale; 30 | top: 1px; 31 | color: $medium-gray; 32 | transition: color 0.2s linear; 33 | padding: 1px; 34 | } 35 | 36 | .checkbox label::after{ 37 | content: ""; 38 | text-align: center; 39 | opacity: 1; 40 | left: 1px; 41 | color: $medium-gray; 42 | } 43 | 44 | .checkbox input[type="checkbox"], 45 | .radio input[type="radio"] { 46 | opacity: 0; 47 | margin-left: 0; 48 | } 49 | 50 | .checkbox input[type="checkbox"]:checked + label::after{ 51 | font-family: 'FontAwesome'; 52 | content: "\f046"; 53 | } 54 | 55 | .checkbox input[type="checkbox"]:checked + label::after{ 56 | color: $info-color; 57 | } 58 | 59 | .checkbox input[type="checkbox"]:checked + label::before{ 60 | opacity: 0; 61 | } 62 | 63 | .checkbox input[type="checkbox"]:disabled + label, 64 | .radio input[type="radio"]:disabled + label, 65 | .checkbox input[type="checkbox"]:disabled:checked + label::after { 66 | color: $medium-gray; 67 | } 68 | .checkbox input[type="checkbox"]:disabled + label::before, 69 | .checkbox input[type="checkbox"]:disabled + label::after{ 70 | cursor: not-allowed; 71 | } 72 | 73 | .checkbox input[type="checkbox"]:disabled + label, 74 | .radio input[type="radio"]:disabled + label{ 75 | cursor: not-allowed; 76 | } 77 | 78 | .checkbox.checkbox-circle label::before { 79 | border-radius: 50%; 80 | } 81 | 82 | .checkbox.checkbox-inline { 83 | padding-left:0; 84 | } 85 | 86 | .checkbox-primary input[type="checkbox"]:checked + label::before { 87 | background-color: #428bca; 88 | border-color: #428bca; 89 | } 90 | 91 | .checkbox-primary input[type="checkbox"]:checked + label::after { 92 | color: #fff; 93 | } 94 | 95 | .checkbox-danger input[type="checkbox"]:checked + label::before { 96 | background-color: #d9534f; 97 | border-color: #d9534f; 98 | } 99 | 100 | .checkbox-danger input[type="checkbox"]:checked + label::after { 101 | color: #fff; 102 | } 103 | 104 | .checkbox-info input[type="checkbox"]:checked + label::before { 105 | background-color: #5bc0de; 106 | border-color: #5bc0de; 107 | } 108 | 109 | .checkbox-info input[type="checkbox"]:checked + label::after { 110 | color: #fff; 111 | } 112 | 113 | .checkbox-warning input[type="checkbox"]:checked + label::before { 114 | background-color: #f0ad4e; 115 | border-color: #f0ad4e; 116 | } 117 | 118 | .checkbox-warning input[type="checkbox"]:checked + label::after { 119 | color: #fff; 120 | } 121 | 122 | .checkbox-success input[type="checkbox"]:checked + label::before { 123 | background-color: #5cb85c; 124 | border-color: #5cb85c; 125 | } 126 | 127 | .checkbox-success input[type="checkbox"]:checked + label::after { 128 | color: #fff; 129 | } 130 | 131 | .radio label::before, 132 | .radio label::after { 133 | font-family: 'FontAwesome'; 134 | content: "\f10c"; 135 | font-size: 20px; 136 | height: 20px; 137 | width: 20px; 138 | -webkit-font-smoothing: antialiased; 139 | -moz-osx-font-smoothing: grayscale; 140 | display: inline-block; 141 | position: absolute; 142 | line-height: 19px; 143 | left: 0; 144 | top: 0; 145 | color: $medium-gray; 146 | padding: 1px; 147 | transition: color 0.2s linear; 148 | } 149 | 150 | .radio input[type="radio"]:checked + label::after { 151 | font-family: 'FontAwesome'; 152 | content: "\f192"; 153 | color: $medium-gray; 154 | } 155 | 156 | .radio input[type="radio"]:checked + label::after{ 157 | color: $info-color; 158 | } 159 | 160 | 161 | .radio input[type="radio"]:disabled + label { 162 | color: #ddd; 163 | } 164 | 165 | .radio input[type="radio"]:disabled + label::before, 166 | .radio input[type="radio"]:disabled + label::after { 167 | color: #ddd; 168 | } 169 | 170 | .radio.radio-inline { 171 | margin-top: 0; 172 | } 173 | 174 | 175 | 176 | 177 | /** 178 | * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches. 179 | * 180 | * @version v3.3.4 181 | * @homepage https://bttstrp.github.io/bootstrap-switch 182 | * @author Mattia Larentis (http://larentis.eu) 183 | * @license Apache-2.0 184 | */ 185 | 186 | .bootstrap-switch { 187 | display: inline-block; 188 | direction: ltr; 189 | cursor: pointer; 190 | border-radius: 4px; 191 | border: 1px solid; 192 | border-color: #ccc; 193 | position: relative; 194 | text-align: left; 195 | overflow: hidden; 196 | line-height: 8px; 197 | z-index: 0; 198 | -webkit-user-select: none; 199 | -moz-user-select: none; 200 | -ms-user-select: none; 201 | user-select: none; 202 | vertical-align: middle; 203 | -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; 204 | -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; 205 | transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; 206 | } 207 | .bootstrap-switch .bootstrap-switch-container { 208 | display: inline-block; 209 | top: 0; 210 | border-radius: 4px; 211 | -webkit-transform: translate3d(0, 0, 0); 212 | transform: translate3d(0, 0, 0); 213 | } 214 | .bootstrap-switch .bootstrap-switch-handle-on, 215 | .bootstrap-switch .bootstrap-switch-handle-off, 216 | .bootstrap-switch .bootstrap-switch-label { 217 | -webkit-box-sizing: border-box; 218 | -moz-box-sizing: border-box; 219 | box-sizing: border-box; 220 | cursor: pointer; 221 | display: table-cell; 222 | vertical-align: middle; 223 | padding: 6px 12px; 224 | font-size: 14px; 225 | line-height: 20px; 226 | } 227 | .bootstrap-switch .bootstrap-switch-handle-on, 228 | .bootstrap-switch .bootstrap-switch-handle-off { 229 | text-align: center; 230 | z-index: 1; 231 | } 232 | .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary, 233 | .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary { 234 | color: #fff; 235 | background: #337ab7; 236 | } 237 | .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info, 238 | .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info { 239 | color: #fff; 240 | background: #5bc0de; 241 | } 242 | .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success, 243 | .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success { 244 | color: #fff; 245 | background: #5cb85c; 246 | } 247 | .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning, 248 | .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning { 249 | background: #f0ad4e; 250 | color: #fff; 251 | } 252 | .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger, 253 | .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger { 254 | color: #fff; 255 | background: #d9534f; 256 | } 257 | .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default, 258 | .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default { 259 | color: #000; 260 | background: #eeeeee; 261 | } 262 | .bootstrap-switch .bootstrap-switch-label { 263 | text-align: center; 264 | margin-top: -1px; 265 | margin-bottom: -1px; 266 | z-index: 100; 267 | color: #333; 268 | background: #fff; 269 | } 270 | .bootstrap-switch span::before { 271 | content: "\200b"; 272 | } 273 | .bootstrap-switch .bootstrap-switch-handle-on { 274 | border-bottom-left-radius: 3px; 275 | border-top-left-radius: 3px; 276 | } 277 | .bootstrap-switch .bootstrap-switch-handle-off { 278 | border-bottom-right-radius: 3px; 279 | border-top-right-radius: 3px; 280 | } 281 | .bootstrap-switch input[type='radio'], 282 | .bootstrap-switch input[type='checkbox'] { 283 | position: absolute !important; 284 | top: 0; 285 | left: 0; 286 | margin: 0; 287 | z-index: -1; 288 | opacity: 0; 289 | filter: alpha(opacity=0); 290 | visibility: hidden; 291 | } 292 | .bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on, 293 | .bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off, 294 | .bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label { 295 | padding: 1px 5px; 296 | font-size: 12px; 297 | line-height: 1.5; 298 | } 299 | .bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on, 300 | .bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off, 301 | .bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label { 302 | padding: 5px 10px; 303 | font-size: 12px; 304 | line-height: 1.5; 305 | } 306 | .bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on, 307 | .bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off, 308 | .bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label { 309 | padding: 6px 16px; 310 | font-size: 18px; 311 | line-height: 1.3333333; 312 | } 313 | .bootstrap-switch.bootstrap-switch-disabled, 314 | .bootstrap-switch.bootstrap-switch-readonly, 315 | .bootstrap-switch.bootstrap-switch-indeterminate { 316 | cursor: default !important; 317 | } 318 | .bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on, 319 | .bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on, 320 | .bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on, 321 | .bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off, 322 | .bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off, 323 | .bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off, 324 | .bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label, 325 | .bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label, 326 | .bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label { 327 | opacity: 0.5; 328 | filter: alpha(opacity=50); 329 | cursor: default !important; 330 | } 331 | .bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container { 332 | -webkit-transition: margin-left 0.5s; 333 | -o-transition: margin-left 0.5s; 334 | transition: margin-left 0.5s; 335 | } 336 | .bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on { 337 | border-bottom-left-radius: 0; 338 | border-top-left-radius: 0; 339 | border-bottom-right-radius: 3px; 340 | border-top-right-radius: 3px; 341 | } 342 | .bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off { 343 | border-bottom-right-radius: 0; 344 | border-top-right-radius: 0; 345 | border-bottom-left-radius: 3px; 346 | border-top-left-radius: 3px; 347 | } 348 | .bootstrap-switch.bootstrap-switch-focused { 349 | border-color: #66afe9; 350 | outline: 0; 351 | -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); 352 | box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); 353 | } 354 | .bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label, 355 | .bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label { 356 | border-bottom-right-radius: 3px; 357 | border-top-right-radius: 3px; 358 | } 359 | .bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label, 360 | .bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label { 361 | border-bottom-left-radius: 3px; 362 | border-top-left-radius: 3px; 363 | } 364 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_dropdown.scss: -------------------------------------------------------------------------------- 1 | .dropdown-menu{ 2 | visibility: hidden; 3 | margin: 0; 4 | padding: 0; 5 | border-radius: $border-radius-extreme; 6 | display: block; 7 | z-index: 9000; 8 | position: absolute; 9 | 10 | @include opacity(0); 11 | @include box-shadow($dropdown-shadow); 12 | 13 | .open &{ 14 | @include opacity(1); 15 | visibility: visible; 16 | } 17 | .select &{ 18 | border-radius: $border-radius-bottom; 19 | @include box-shadow(none); 20 | @include transform-origin($select-coordinates); 21 | @include transform-scale(1); 22 | @include transition($fast-transition-time, $transition-linear); 23 | margin-top: -20px; 24 | } 25 | .select.open &{ 26 | margin-top: -1px; 27 | } 28 | 29 | > li > a { 30 | padding: $padding-base-vertical $padding-base-horizontal; 31 | color: #333333; 32 | 33 | img{ 34 | margin-top: -3px; 35 | } 36 | } 37 | > li > a:focus{ 38 | outline: 0 !important; 39 | } 40 | 41 | .btn-group.select &{ 42 | min-width: 100%; 43 | } 44 | 45 | > li:first-child > a{ 46 | border-top-left-radius: $border-radius-extreme; 47 | border-top-right-radius: $border-radius-extreme; 48 | } 49 | 50 | > li:last-child > a{ 51 | border-bottom-left-radius: $border-radius-extreme; 52 | border-bottom-right-radius: $border-radius-extreme; 53 | } 54 | 55 | .select & > li:first-child > a{ 56 | border-radius: 0; 57 | border-bottom: 0 none; 58 | } 59 | 60 | > li > a:hover, 61 | > li > a:focus { 62 | background-color: $smoke-bg; 63 | color: #333333; 64 | opacity: 1; 65 | text-decoration: none; 66 | } 67 | 68 | &.dropdown-blue > li > a:hover, 69 | &.dropdown-blue > li > a:focus{ 70 | background-color: $light-blue; 71 | } 72 | &.dropdown-azure > li > a:hover, 73 | &.dropdown-azure > li > a:focus{ 74 | background-color: $light-azure; 75 | } 76 | &.ct-green > li > a:hover, 77 | &.ct-green > li > a:focus{ 78 | background-color: $light-green; 79 | } 80 | &.dropdown-orange > li > a:hover, 81 | &.dropdown-orange > li > a:focus{ 82 | background-color: $light-orange; 83 | } 84 | &.dropdown-red > li > a:hover, 85 | &.dropdown-red > li > a:focus{ 86 | background-color: $light-red; 87 | } 88 | 89 | } 90 | 91 | .dropdown-with-icons{ 92 | > li > a{ 93 | padding-left: 0px; 94 | line-height: 28px; 95 | } 96 | i{ 97 | text-align: center; 98 | line-height: 28px; 99 | float: left; 100 | 101 | &[class^="pe-"]{ 102 | font-size: 24px; 103 | width: 46px; 104 | } 105 | &[class^="fa"]{ 106 | font-size: 14px; 107 | width: 38px; 108 | } 109 | } 110 | } 111 | 112 | //fix bug for the select items in btn-group 113 | .btn-group.select{ 114 | overflow: hidden; 115 | } 116 | .btn-group.select.open{ 117 | overflow: visible; 118 | } 119 | 120 | 121 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_footers.scss: -------------------------------------------------------------------------------- 1 | .footer{ 2 | background-color: $white-color; 3 | line-height: $line-height; 4 | 5 | nav > ul{ 6 | list-style: none; 7 | margin: 0; 8 | padding: 0; 9 | font-weight: normal; 10 | 11 | a:not(.btn){ 12 | color: $dark-gray; 13 | display: block; 14 | margin-bottom: 3px; 15 | &:hover, 16 | &:focus{ 17 | color: $default-states-color; 18 | } 19 | } 20 | } 21 | .social-area{ 22 | padding: 15px 0; 23 | h5{ 24 | padding-bottom: 15px; 25 | } 26 | } 27 | .social-area > a:not(.btn){ 28 | color: $dark-gray; 29 | display: inline-block; 30 | vertical-align: top; 31 | padding: $padding-social-a; 32 | font-size: $font-size-large-navbar; 33 | font-weight: normal; 34 | line-height: $line-height; 35 | text-align: center; 36 | &:hover, 37 | &:focus{ 38 | color: $default-states-color; 39 | } 40 | } 41 | .copyright{ 42 | color: $default-states-color; 43 | padding: 10px 15px; 44 | margin: 10px 3px; 45 | line-height: 20px; 46 | font-size: $font-size-base; 47 | } 48 | hr{ 49 | border-color: $medium-gray; 50 | } 51 | .title{ 52 | color: $default-states-color; 53 | } 54 | } 55 | 56 | .footer-default{ 57 | background-color: $smoke-bg; 58 | } 59 | 60 | .footer:not(.footer-big){ 61 | nav > ul{ 62 | font-size: $font-size-base; 63 | li{ 64 | margin-left: 20px; 65 | float: left; 66 | } 67 | a{ 68 | padding: 10px 0px; 69 | margin: 10px 10px 10px 0px; 70 | } 71 | } 72 | } 73 | 74 | 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_inputs.scss: -------------------------------------------------------------------------------- 1 | .form-control::-moz-placeholder{ 2 | @include placeholder($medium-gray,1); 3 | } 4 | .form-control:-moz-placeholder{ 5 | @include placeholder($medium-gray,1); 6 | } 7 | .form-control::-webkit-input-placeholder{ 8 | @include placeholder($medium-gray,1); 9 | } 10 | .form-control:-ms-input-placeholder{ 11 | @include placeholder($medium-gray,1); 12 | } 13 | 14 | .form-control { 15 | background-color: $white-bg; 16 | border: 1px solid $light-gray; 17 | border-radius: $border-radius-base; 18 | color: #565656; 19 | @include input-size($padding-base-vertical, $padding-base-horizontal - 4, $height-base); 20 | @include box-shadow(none); 21 | 22 | &:focus{ 23 | background-color: $white-bg; 24 | border: 1px solid $medium-dark-gray; 25 | @include box-shadow(none); 26 | outline: 0 !important; 27 | color: #333333; 28 | } 29 | 30 | .has-success &, 31 | .has-error &, 32 | .has-success &:focus, 33 | .has-error &:focus{ 34 | border-color: $light-gray; 35 | @include box-shadow(none); 36 | } 37 | 38 | .has-success &{ 39 | color: $success-color; 40 | } 41 | .has-success &:focus{ 42 | border-color: $success-color; 43 | } 44 | .has-error &{ 45 | color: $danger-color; 46 | } 47 | .has-error &:focus{ 48 | border-color: $danger-color; 49 | } 50 | 51 | & + .form-control-feedback{ 52 | border-radius: $border-radius-large; 53 | font-size: $font-size-base; 54 | margin-top: -7px; 55 | position: absolute; 56 | right: 10px; 57 | top: 50%; 58 | vertical-align: middle; 59 | } 60 | 61 | .open &{ 62 | border-radius: $border-radius-base $border-radius-base 0 0; 63 | border-bottom-color: transparent; 64 | } 65 | } 66 | 67 | .input-lg{ 68 | height: 55px; 69 | padding: $padding-large-vertical $padding-large-horizontal; 70 | } 71 | 72 | .has-error{ 73 | .form-control-feedback{ 74 | color: $danger-color; 75 | } 76 | } 77 | .has-success{ 78 | .form-control-feedback{ 79 | color: $success-color 80 | } 81 | } 82 | 83 | 84 | .input-group-addon { 85 | background-color: $white-color; 86 | border: 1px solid $light-gray; 87 | border-radius: $border-radius-base; 88 | 89 | .has-success &, 90 | .has-error &{ 91 | background-color: $white-color; 92 | border: 1px solid $light-gray; 93 | } 94 | .has-error .form-control:focus + &{ 95 | border-color: $danger-color; 96 | color: $danger-color; 97 | } 98 | .has-success .form-control:focus + &{ 99 | border-color: $success-color; 100 | color: $success-color; 101 | } 102 | .form-control:focus + &, 103 | .form-control:focus ~ &{ 104 | background-color: $white-color; 105 | border-color: $dark-gray; 106 | } 107 | } 108 | 109 | .input-group .form-control:first-child, 110 | .input-group-addon:first-child, 111 | .input-group-btn:first-child > .dropdown-toggle, 112 | .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { 113 | border-right: 0 none; 114 | } 115 | .input-group .form-control:last-child, 116 | .input-group-addon:last-child, 117 | .input-group-btn:last-child > .dropdown-toggle, 118 | .input-group-btn:first-child > .btn:not(:first-child) { 119 | border-left: 0 none; 120 | } 121 | .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { 122 | background-color: $smoke-bg; 123 | color: $default-color; 124 | cursor: not-allowed; 125 | } 126 | 127 | .input-group-btn .btn{ 128 | border-width: $border-thin; 129 | padding: $padding-round-vertical $padding-base-horizontal; 130 | } 131 | .input-group-btn .btn-default:not(.btn-fill){ 132 | border-color: $medium-gray; 133 | } 134 | 135 | .input-group-btn:last-child > .btn{ 136 | margin-left: 0; 137 | } 138 | 139 | .input-group-focus .input-group-addon{ 140 | border-color: $dark-gray; 141 | } 142 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_misc.scss: -------------------------------------------------------------------------------- 1 | /* General overwrite */ 2 | body, 3 | .wrapper{ 4 | min-height: 100vh; 5 | position: relative; 6 | background-color: white; 7 | } 8 | a{ 9 | color: $info-color; 10 | 11 | &:hover, &:focus{ 12 | color: $info-states-color; 13 | text-decoration: none; 14 | } 15 | } 16 | 17 | a:focus, a:active, 18 | button::-moz-focus-inner, 19 | input::-moz-focus-inner, 20 | input[type="reset"]::-moz-focus-inner, 21 | input[type="button"]::-moz-focus-inner, 22 | input[type="submit"]::-moz-focus-inner, 23 | select::-moz-focus-inner, 24 | input[type="file"] > input[type="button"]::-moz-focus-inner{ 25 | outline:0; 26 | } 27 | .ui-slider-handle:focus, 28 | .navbar-toggle, 29 | input:focus { 30 | outline : 0 !important; 31 | } 32 | 33 | /* Animations */ 34 | .form-control, 35 | .input-group-addon, 36 | .tagsinput, 37 | .navbar, 38 | .navbar .alert{ 39 | @include transition($general-transition-time, $transition-linear); 40 | } 41 | 42 | .sidebar .nav a, 43 | .table > tbody > tr .td-actions .btn{ 44 | @include transition($fast-transition-time, $transition-ease-in); 45 | } 46 | 47 | .btn{ 48 | @include transition($ultra-fast-transition-time, $transition-ease-in); 49 | } 50 | .fa{ 51 | width: 18px; 52 | text-align: center; 53 | } 54 | .margin-top{ 55 | margin-top: 50px; 56 | } 57 | 58 | .wrapper{ 59 | position: relative; 60 | top: 0; 61 | height: 100vh; 62 | } 63 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_mixins.scss: -------------------------------------------------------------------------------- 1 | //Utilities 2 | 3 | @import "mixins/transparency"; 4 | @import "mixins/vendor-prefixes"; 5 | 6 | 7 | //Components 8 | 9 | @import "mixins/buttons"; 10 | @import "mixins/inputs"; 11 | @import "mixins/labels"; 12 | @import "mixins/tabs"; 13 | 14 | @import "mixins/navbars"; 15 | @import "mixins/icons"; 16 | @import "mixins/social-buttons"; 17 | 18 | @import "mixins/morphing-buttons"; 19 | 20 | @import "mixins/cards"; 21 | 22 | @import "mixins/chartist"; -------------------------------------------------------------------------------- /src/assets/sass/lbd/_navbars.scss: -------------------------------------------------------------------------------- 1 | .nav { 2 | > li{ 3 | > a:hover, 4 | > a:focus{ 5 | background-color: transparent; 6 | } 7 | } 8 | } 9 | .navbar{ 10 | border: $none; 11 | font-size: $font-size-navbar; 12 | border-radius: 0; 13 | 14 | .navbar-brand { 15 | font-weight: $font-weight-normal; 16 | margin: $navbar-margin-brand; 17 | padding: $navbar-padding-brand; 18 | font-size: $font-size-large-navbar; 19 | } 20 | .navbar-nav{ 21 | > li > a { 22 | padding: $navbar-padding-a; 23 | margin: $navbar-margin-a; 24 | position: relative; 25 | } 26 | > li > a.btn{ 27 | margin: $navbar-margin-a-btn; 28 | padding: $padding-base-vertical $padding-base-horizontal; 29 | } 30 | > li > a.btn-round{ 31 | margin: $navbar-margin-a-btn-round; 32 | } 33 | > li > a [class^="fa"]{ 34 | font-size: $font-size-large + 1; 35 | position: relative; 36 | line-height: 16px; 37 | top: 1px; 38 | } 39 | 40 | .notification{ 41 | position: absolute; 42 | background-color: #FB404B; 43 | text-align: center; 44 | border-radius: 10px; 45 | min-width: 18px; 46 | padding: 0 5px; 47 | height: 18px; 48 | font-size: 12px; 49 | color: #FFFFFF; 50 | font-weight: bold; 51 | line-height: 18px; 52 | top: 0px; 53 | left: 7px; 54 | } 55 | } 56 | .btn{ 57 | margin: $navbar-margin-btn; 58 | font-size: $font-size-base; 59 | } 60 | .btn-simple{ 61 | font-size: $font-size-medium; 62 | } 63 | .caret{ 64 | // @include center-item(); 65 | } 66 | 67 | &.fixed{ 68 | width: calc(100% - $sidebar-width); 69 | right: 0; 70 | left: auto; 71 | border-radius: 0; 72 | } 73 | 74 | } 75 | 76 | .navbar-nav > li > .dropdown-menu{ 77 | border-radius: $border-radius-extreme; 78 | margin-top: -5px; 79 | } 80 | 81 | .navbar-transparent, [class*="navbar-ct"]{ 82 | .navbar-brand{ 83 | color: $white-color; 84 | @include opacity(.9); 85 | 86 | &:focus, 87 | &:hover{ 88 | background-color: transparent; 89 | @include opacity(1); 90 | } 91 | } 92 | 93 | .navbar-nav{ 94 | > li > a:not(.btn){ 95 | color: $white-color; 96 | border-color: $white-color; 97 | @include opacity(0.8); 98 | } 99 | > .active > a:not(.btn), 100 | > .active > a:hover:not(.btn), 101 | > .active > a:focus:not(.btn), 102 | > li > a:hover:not(.btn), 103 | > li > a:focus:not(.btn){ 104 | background-color: transparent; 105 | border-radius: 3px; 106 | color: $white-color; 107 | @include opacity(1); 108 | } 109 | .nav > li > a.btn:hover{ 110 | background-color: transparent; 111 | } 112 | 113 | > .dropdown > a .caret, 114 | > .dropdown > a:hover .caret, 115 | > .dropdown > a:focus .caret{ 116 | border-bottom-color: $white-color; 117 | border-top-color: $white-color; 118 | } 119 | 120 | > .open > a, 121 | > .open > a:hover, 122 | > .open > a:focus { 123 | background-color: transparent; 124 | color: $white-color; 125 | @include opacity(1); 126 | } 127 | } 128 | 129 | .btn-default{ 130 | color: $white-color; 131 | border-color: $white-color; 132 | } 133 | .btn-default.btn-fill{ 134 | color: $dark-gray; 135 | background-color: $white-color; 136 | @include opacity(.9); 137 | } 138 | .btn-default.btn-fill:hover, 139 | .btn-default.btn-fill:focus, 140 | .btn-default.btn-fill:active, 141 | .btn-default.btn-fill.active, 142 | .open .dropdown-toggle.btn-fill.btn-default{ 143 | border-color: $white-color; 144 | @include opacity(1); 145 | } 146 | 147 | } 148 | .navbar-transparent{ 149 | .dropdown-menu .divider{ 150 | background-color: rgba($white-color,.2); 151 | } 152 | } 153 | 154 | .nav-open .nav .caret{ 155 | border-bottom-color: $white-color; 156 | border-top-color: $white-color; 157 | } 158 | 159 | .navbar-default { 160 | background-color: $white-navbar; 161 | border-bottom: 1px solid rgba(0, 0, 0, 0.1); 162 | 163 | .navbar-nav{ 164 | > li > a:not(.btn){ 165 | color: $dark-gray; 166 | } 167 | 168 | > .active > a, 169 | > .active > a:not(.btn):hover, 170 | > .active > a:not(.btn):focus, 171 | > li > a:not(.btn):hover, 172 | > li > a:not(.btn):focus { 173 | background-color: transparent; 174 | border-radius: 3px; 175 | color: $info-color; 176 | @include opacity(1); 177 | } 178 | 179 | > .dropdown > a:hover .caret, 180 | > .dropdown > a:focus .caret { 181 | border-bottom-color: $info-color; 182 | border-top-color: $info-color; 183 | 184 | } 185 | 186 | > .open > a, 187 | > .open > a:hover, 188 | > .open > a:focus{ 189 | background-color: transparent; 190 | color: $info-color; 191 | } 192 | 193 | .navbar-toggle:hover,.navbar-toggle:focus { 194 | background-color: transparent; 195 | } 196 | 197 | } 198 | 199 | &:not(.navbar-transparent) .btn-default:hover{ 200 | color: $info-color; 201 | border-color: $info-color; 202 | } 203 | &:not(.navbar-transparent) .btn-neutral, 204 | &:not(.navbar-transparent) .btn-neutral:hover, 205 | &:not(.navbar-transparent) .btn-neutral:active{ 206 | color: $dark-gray; 207 | } 208 | } 209 | 210 | /* Navbar with icons */ 211 | 212 | .navbar-icons{ 213 | &.navbar .navbar-brand{ 214 | margin-top: 12px; 215 | margin-bottom: 12px; 216 | } 217 | .navbar-nav{ 218 | > li > a{ 219 | text-align: center; 220 | padding: $navbar-padding-a-icons; 221 | margin: $navbar-margin-a-icons; 222 | } 223 | 224 | [class^="pe"] { 225 | font-size: 30px; 226 | position: relative; 227 | } 228 | p { 229 | margin: 3px 0 0; 230 | } 231 | } 232 | } 233 | 234 | .navbar-form{ 235 | @include box-shadow(none); 236 | .form-control{ 237 | @include light-form(); 238 | height: 22px; 239 | font-size: $font-size-navbar; 240 | line-height: $line-height-general; 241 | color: $light-gray; 242 | } 243 | .navbar-transparent & .form-control, 244 | [class*="navbar-ct"] & .form-control{ 245 | color: $white-color; 246 | border: $none; 247 | border-bottom: 1px solid rgba($white-color,.6); 248 | } 249 | 250 | } 251 | 252 | .navbar-ct-blue{ 253 | @include navbar-color($blue-navbar); 254 | } 255 | .navbar-ct-azure{ 256 | @include navbar-color($azure-navbar); 257 | } 258 | .navbar-ct-green{ 259 | @include navbar-color($green-navbar); 260 | } 261 | .navbar-ct-orange{ 262 | @include navbar-color($orange-navbar); 263 | } 264 | .navbar-ct-red{ 265 | @include navbar-color($red-navbar); 266 | } 267 | 268 | .navbar-transparent{ 269 | padding-top: 15px; 270 | background-color: transparent; 271 | border-bottom: 1px solid transparent; 272 | } 273 | 274 | .navbar-toggle{ 275 | margin-top: 19px; 276 | margin-bottom: 19px; 277 | border: $none; 278 | 279 | .icon-bar { 280 | background-color: $white-color; 281 | } 282 | .navbar-collapse, 283 | .navbar-form { 284 | border-color: transparent; 285 | } 286 | 287 | &.navbar-default .navbar-toggle:hover, 288 | &.navbar-default .navbar-toggle:focus { 289 | background-color: transparent; 290 | } 291 | } 292 | 293 | 294 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_sidebar-and-main-panel.scss: -------------------------------------------------------------------------------- 1 | .sidebar{ 2 | position: fixed; 3 | top: 0; 4 | bottom: 0; 5 | left: 0; 6 | width: 260px; 7 | display: block; 8 | z-index: 1; 9 | color: #fff; 10 | font-weight: 200; 11 | background-size: cover; 12 | background-position: center center; 13 | 14 | .sidebar-wrapper{ 15 | position: relative; 16 | height: calc(100vh - 75px); 17 | overflow: auto; 18 | width: 260px; 19 | z-index: 4; 20 | padding-bottom: 30px; 21 | } 22 | 23 | .sidebar-background{ 24 | position: absolute; 25 | z-index: 1; 26 | height: 100%; 27 | width: 100%; 28 | display: block; 29 | top: 0; 30 | left: 0; 31 | background-size: cover; 32 | background-position: center center; 33 | } 34 | 35 | .logo{ 36 | padding: 10px 30px; 37 | border-bottom: 1px solid rgba(255, 255, 255, 0.2); 38 | position: relative; 39 | z-index: 4; 40 | 41 | p{ 42 | float: left; 43 | font-size: 20px; 44 | margin: 10px 10px; 45 | color: $white-color; 46 | line-height: 20px; 47 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 48 | } 49 | 50 | a.logo-mini{ 51 | float: left; 52 | text-align: center; 53 | width: 30px; 54 | margin-right: 15px; 55 | 56 | img{ 57 | width: 40px; 58 | margin-left: -3px; 59 | display: block; 60 | margin-top: 2px; 61 | } 62 | } 63 | 64 | a.logo-normal{ 65 | display: block; 66 | } 67 | 68 | .logo-img{ 69 | width: 34px; 70 | display: inline-block; 71 | height: 34px; 72 | margin-left: -2px; 73 | margin-top: -2px; 74 | margin-right: 10px; 75 | border-radius: 30px; 76 | text-align: center; 77 | } 78 | } 79 | 80 | .logo-tim{ 81 | border-radius: 50%; 82 | border: 1px solid #333; 83 | display: block; 84 | height: 61px; 85 | width: 61px; 86 | float: left; 87 | overflow: hidden; 88 | 89 | img{ 90 | width: 60px; 91 | height: 60px; 92 | } 93 | } 94 | 95 | .nav{ 96 | margin-top: 20px; 97 | 98 | li{ 99 | > a{ 100 | color: #FFFFFF; 101 | margin: 5px 15px; 102 | opacity: .86; 103 | border-radius: 4px; 104 | } 105 | 106 | &:hover > a, 107 | &.open > a, 108 | &.open > a:focus, 109 | &.open > a:hover{ 110 | background: rgba(255,255,255,0.13); 111 | opacity: 1; 112 | } 113 | 114 | &.active > a{ 115 | color: #FFFFFF; 116 | opacity: 1; 117 | background: rgba(255,255,255,0.23); 118 | 119 | } 120 | } 121 | 122 | p{ 123 | margin: 0; 124 | line-height: 30px; 125 | font-size: 12px; 126 | font-weight: 600; 127 | text-transform: uppercase; 128 | } 129 | 130 | .caret{ 131 | top: 24px; 132 | position: absolute; 133 | right: 15px; 134 | } 135 | 136 | i{ 137 | font-size: 28px; 138 | float: left; 139 | margin-right: 15px; 140 | line-height: 30px; 141 | width: 30px; 142 | text-align: center; 143 | } 144 | } 145 | } 146 | 147 | 148 | .sidebar, 149 | body > .navbar-collapse{ 150 | .logo{ 151 | padding: 10px 30px; 152 | border-bottom: 1px solid rgba(255, 255, 255, 0.2); 153 | 154 | p{ 155 | float: left; 156 | font-size: 20px; 157 | margin: 10px 10px; 158 | color: $white-color; 159 | line-height: 20px; 160 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 161 | } 162 | 163 | .simple-text{ 164 | text-transform: uppercase; 165 | padding: $padding-small-vertical $padding-zero; 166 | display: block; 167 | font-size: $font-size-large; 168 | color: $white-color; 169 | font-weight: $font-weight-normal; 170 | line-height: 30px; 171 | } 172 | } 173 | 174 | .logo-tim{ 175 | border-radius: 50%; 176 | border: 1px solid #333; 177 | display: block; 178 | height: 61px; 179 | width: 61px; 180 | float: left; 181 | overflow: hidden; 182 | 183 | img{ 184 | width: 60px; 185 | height: 60px; 186 | } 187 | } 188 | 189 | &:after, 190 | &:before{ 191 | display: block; 192 | content: ""; 193 | position: absolute; 194 | width: 100%; 195 | height: 100%; 196 | top: 0; 197 | left: 0; 198 | z-index: 2; 199 | } 200 | 201 | &:before{ 202 | opacity: .33; 203 | background: #000000; 204 | } 205 | 206 | &:after{ 207 | @include icon-gradient($black-color-top, $black-color-bottom); 208 | z-index: 3; 209 | opacity: 1; 210 | } 211 | 212 | &[data-image]:after, 213 | &.has-image:after{ 214 | opacity: .77; 215 | } 216 | 217 | &[data-color="blue"]:after{ 218 | @include icon-gradient($new-dark-blue, $blue-color-bottom); 219 | } 220 | &[data-color="azure"]:after{ 221 | @include icon-gradient($new-blue, $azure-color-bottom); 222 | } 223 | &[data-color="green"]:after{ 224 | @include icon-gradient($new-green, $green-color-bottom); 225 | } 226 | &[data-color="orange"]:after{ 227 | @include icon-gradient($new-orange, $orange-color-bottom); 228 | } 229 | &[data-color="red"]:after{ 230 | @include icon-gradient($new-red, $red-color-bottom); 231 | } 232 | &[data-color="purple"]:after{ 233 | @include icon-gradient($new-purple, $purple-color-bottom); 234 | } 235 | } 236 | 237 | 238 | .main-panel{ 239 | background: rgba(203,203,210,.15); 240 | position: relative; 241 | float: right; 242 | width: $sidebar-width; 243 | 244 | > .content{ 245 | padding: 30px 15px; 246 | min-height: calc(100% - 123px); 247 | } 248 | 249 | > .footer{ 250 | border-top: 1px solid #e7e7e7; 251 | } 252 | 253 | .navbar{ 254 | margin-bottom: 0; 255 | } 256 | } 257 | 258 | .sidebar, 259 | .main-panel{ 260 | -webkit-transition-property: top,bottom; 261 | transition-property: top,bottom; 262 | -webkit-transition-duration: .2s,.2s; 263 | transition-duration: .2s,.2s; 264 | -webkit-transition-timing-function: linear,linear; 265 | transition-timing-function: linear,linear; 266 | -webkit-overflow-scrolling: touch; 267 | } 268 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_tables.scss: -------------------------------------------------------------------------------- 1 | .table{ 2 | 3 | .radio, 4 | .checkbox{ 5 | position: relative; 6 | height: 20px; 7 | display: block; 8 | width: 20px; 9 | padding: 0px 0px; 10 | margin: 0px 5px; 11 | text-align: center; 12 | 13 | .icons{ 14 | left: 5px; 15 | } 16 | } 17 | > thead > tr > th, 18 | > tbody > tr > th, 19 | > tfoot > tr > th, 20 | > thead > tr > td, 21 | > tbody > tr > td, 22 | > tfoot > tr > td{ 23 | padding: 12px 8px; 24 | vertical-align: middle; 25 | } 26 | // MANU : aici este ceva schimbat!!! 27 | > tbody > tr > td{ 28 | font-size: 14px; 29 | } 30 | > thead > tr > th{ 31 | border-bottom-width: 1px; 32 | font-size: $font-size-small; 33 | text-transform: uppercase; 34 | color: $dark-gray; 35 | font-weight: $font-weight-normal; 36 | padding-bottom: 5px; 37 | } 38 | 39 | .td-actions .btn{ 40 | @include opacity(0.36); 41 | 42 | &.btn-xs{ 43 | padding-left: 3px; 44 | padding-right: 3px; 45 | } 46 | } 47 | .td-actions{ 48 | min-width: 90px; 49 | } 50 | 51 | > tbody > tr{ 52 | position: relative; 53 | 54 | &:hover{ 55 | .td-actions .btn{ 56 | @include opacity(1); 57 | } 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_typography.scss: -------------------------------------------------------------------------------- 1 | /* Font Smoothing */ 2 | body, 3 | h1, .h1, 4 | h2, .h2, 5 | h3, .h3, 6 | h4, .h4, 7 | h5, .h5, 8 | h6, .h6, 9 | p, 10 | .navbar, 11 | .brand, 12 | .btn-simple, 13 | .alert, 14 | a, 15 | .td-name, 16 | td, 17 | button.close{ 18 | -moz-osx-font-smoothing: grayscale; 19 | -webkit-font-smoothing: antialiased; 20 | font-family: "Roboto","Helvetica Neue",Arial,sans-serif; 21 | font-weight: $font-weight-normal; 22 | } 23 | 24 | h1, .h1, h2, .h2, h3, .h3, h4, .h4{ 25 | font-weight: $font-weight-light; 26 | margin: $margin-large-vertical 0 $margin-base-vertical; 27 | } 28 | 29 | h1, .h1 { 30 | font-size: $font-size-h1; 31 | } 32 | h2, .h2{ 33 | font-size: $font-size-h2; 34 | } 35 | h3, .h3{ 36 | font-size: $font-size-h3; 37 | margin: 20px 0 10px; 38 | } 39 | h4, .h4{ 40 | font-size: $font-size-h4; 41 | line-height: 30px; 42 | } 43 | h5, .h5 { 44 | font-size: $font-size-h5; 45 | margin-bottom: 15px; 46 | } 47 | h6, .h6{ 48 | font-size: $font-size-h6; 49 | font-weight: $font-weight-bold; 50 | text-transform: uppercase; 51 | } 52 | p{ 53 | font-size: $font-paragraph; 54 | line-height: $line-height-general; 55 | } 56 | 57 | h1 small, h2 small, h3 small, h4 small, h5 small, h6 small, .h1 small, .h2 small, .h3 small, .h4 small, .h5 small, .h6 small, h1 .small, h2 .small, h3 .small, h4 .small, h5 .small, h6 .small, .h1 .small, .h2 .small, .h3 .small, .h4 .small, .h5 .small, .h6 .small { 58 | color: $dark-gray; 59 | font-weight: $font-weight-light; 60 | line-height: $line-height-general; 61 | } 62 | 63 | h1 small, h2 small, h3 small, h1 .small, h2 .small, h3 .small { 64 | font-size: 60%; 65 | } 66 | 67 | h1 .subtitle{ 68 | display: block; 69 | margin: 0 0 $margin-large-vertical; 70 | } 71 | 72 | .text-muted{ 73 | color: #9A9A9A; 74 | } 75 | .text-primary, .text-primary:hover{ 76 | color: #1D62F0 !important; 77 | } 78 | .text-info, .text-info:hover{ 79 | color: $info-color !important; 80 | } 81 | .text-success, .text-success:hover{ 82 | color: $success-color !important; 83 | } 84 | .text-warning, .text-warning:hover{ 85 | color: $warning-color !important; 86 | } 87 | .text-danger, .text-danger:hover{ 88 | color: $danger-color !important; 89 | } 90 | 91 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_variables.scss: -------------------------------------------------------------------------------- 1 | //== Buttons 2 | // 3 | //## For each of Bootstrap's buttons, define text, background and border color. 4 | 5 | $none: 0 !default; 6 | $border-thin: 1px !default; 7 | $border-thick: 2px !default; 8 | 9 | $white-color: #FFFFFF !default; 10 | $white-bg: #FFFFFF !default; 11 | 12 | $smoke-bg: #F5F5F5 !default; 13 | 14 | $black-bg: rgba(30,30,30,.97) !default; 15 | 16 | $black-color: #333333 !default; 17 | $black-hr: #444444 !default; 18 | 19 | $light-gray: #E3E3E3 !default; 20 | $medium-gray: #DDDDDD !default; 21 | $medium-dark-gray: #AAAAAA !default; 22 | $dark-gray: #9A9A9A !default; 23 | 24 | $transparent-bg: transparent !default; 25 | 26 | $default-color: #888888 !default; 27 | $default-bg: #888888 !default; 28 | $default-states-color: #777777 !default; 29 | 30 | $primary-color: #3472F7 !default; 31 | $primary-bg: #3472F7 !default; 32 | $primary-states-color: #1D62F0 !default; 33 | 34 | $success-color: #87CB16 !default; 35 | $success-bg: #87CB16 !default; 36 | $success-states-color: #049F0C !default; 37 | 38 | $info-color: #1DC7EA !default; 39 | $info-bg: #1DC7EA !default; 40 | $info-states-color: lighten($info-color, 8%) !default; 41 | 42 | $warning-color: #FF9500 !default; 43 | $warning-bg: #FF9500 !default; 44 | $warning-states-color: #ED8D00 !default; 45 | 46 | 47 | $danger-color: #FF4A55 !default; 48 | $danger-bg: #FF4A55 !default; 49 | $danger-states-color: #EE2D20 !default; 50 | 51 | 52 | 53 | $link-disabled-color: #666666 !default; 54 | 55 | 56 | /* light colors */ 57 | $light-blue: rgba($primary-color, .2); 58 | $light-azure: rgba($info-color, .2); 59 | $light-green: rgba($success-color, .2); 60 | $light-orange: rgba($warning-color, .2); 61 | $light-red: rgba($danger-color, .2); 62 | 63 | 64 | //== Components 65 | // 66 | 67 | $padding-base-vertical: 8px !default; 68 | $padding-base-horizontal: 16px !default; 69 | 70 | $padding-round-vertical: 9px !default; 71 | $padding-round-horizontal: 18px !default; 72 | 73 | $padding-simple-vertical: 10px !default; 74 | $padding-simple-horizontal: 18px !default; 75 | 76 | $padding-large-vertical: 14px !default; 77 | $padding-large-horizontal: 30px !default; 78 | 79 | $padding-small-vertical: 5px !default; 80 | $padding-small-horizontal: 10px !default; 81 | 82 | $padding-xs-vertical: 1px !default; 83 | $padding-xs-horizontal: 5px !default; 84 | 85 | $padding-label-vertical: 2px !default; 86 | $padding-label-horizontal: 12px !default; 87 | 88 | $margin-large-vertical: 30px !default; 89 | $margin-base-vertical: 15px !default; 90 | 91 | $padding-zero: 0px !default; 92 | 93 | $margin-bottom: 0 0 10px 0 !default; 94 | $border-radius-small: 3px !default; 95 | $border-radius-base: 4px !default; 96 | $border-radius-large: 6px !default; 97 | $border-radius-extreme: 10px !default; 98 | 99 | $border-radius-large-top: $border-radius-large $border-radius-large 0 0 !default; 100 | $border-radius-large-bottom: 0 0 $border-radius-large $border-radius-large !default; 101 | 102 | $btn-round-radius: 30px !default; 103 | 104 | $height-base: 40px !default; 105 | 106 | $font-size-base: 14px !default; 107 | $font-size-small: 12px !default; 108 | $font-size-medium: 16px !default; 109 | $font-size-large: 18px !default; 110 | $font-size-large-navbar: 20px !default; 111 | 112 | $font-size-h1: 52px !default; 113 | $font-size-h2: 36px !default; 114 | $font-size-h3: 28px !default; 115 | $font-size-h4: 22px !default; 116 | $font-size-h5: 16px !default; 117 | $font-size-h6: 14px !default; 118 | $font-paragraph: 16px !default; 119 | $font-size-navbar: 16px !default; 120 | $font-size-small: 12px !default; 121 | 122 | $font-weight-light: 300 !default; 123 | $font-weight-normal: 400 !default; 124 | $font-weight-semi: 500 !default; 125 | $font-weight-bold: 600 !default; 126 | 127 | $line-height-general: 1.5 !default; 128 | $line-height: 20px !default; 129 | $line-height-lg: 54px !default; 130 | 131 | $sidebar-width: calc(100% - 260px) !default; 132 | 133 | 134 | $border-radius-top: 10px 10px 0 0 !default; 135 | $border-radius-bottom: 0 0 10px 10px !default; 136 | 137 | $dropdown-shadow: 1px 2px 3px rgba(0, 0, 0, 0.125); 138 | 139 | $general-transition-time: 300ms !default; 140 | 141 | $slow-transition-time: 370ms !default; 142 | $dropdown-coordinates: 29px -50px !default; 143 | 144 | $fast-transition-time: 150ms !default; 145 | 146 | $ultra-fast-transition-time: 100ms !default; 147 | 148 | $select-coordinates: 50% -40px !default; 149 | 150 | $transition-linear: linear !default; 151 | $transition-bezier: cubic-bezier(0.34, 1.61, 0.7, 1) !default; 152 | $transition-ease: ease 0s; 153 | $transition-ease-in: ease-in !default; 154 | $transition-ease-out: ease-out !default; 155 | 156 | 157 | $navbar-padding-a: 10px 15px; 158 | $navbar-margin-a: 10px 3px; 159 | 160 | $padding-social-a: 10px 5px; 161 | 162 | $navbar-margin-a-btn: 15px 3px; 163 | $navbar-margin-a-btn-round: 16px 3px; 164 | 165 | $navbar-padding-a-icons: 6px 15px; 166 | $navbar-margin-a-icons: 6px 3px; 167 | 168 | $navbar-padding-brand: 15px 15px; 169 | $navbar-margin-brand: 5px 0px; 170 | 171 | $navbar-margin-brand-icons: 12px auto; 172 | 173 | $navbar-margin-btn: 15px 3px; 174 | 175 | $height-icon: 64px !default; 176 | $width-icon: 64px !default; 177 | $padding-icon: 12px !default; 178 | $border-radius-icon: 15px !default; 179 | 180 | $size-icon: 64px; 181 | $size-icon-sm: 32px; 182 | 183 | 184 | $height-icon-sm: 32px; 185 | $width-icon-sm: 32px; 186 | $padding-icon-sm: 4px; 187 | $border-radius-icon-sm: 7px; 188 | 189 | $height-icon-message: 40px; 190 | $width-icon-message: 40px; 191 | 192 | $height-icon-message-sm: 20px; 193 | $width-icon-message-sm: 20px; 194 | 195 | $default-color-top: #d9d9d9 !default; 196 | $default-color-bottom: #909297 !default; 197 | 198 | $blue-color-top: #4087ea; 199 | $blue-color-bottom: #2632c1; 200 | 201 | $azure-color-top: #45c0fd; 202 | $azure-color-bottom: #4091ff; 203 | 204 | $green-color-top: #a1eb3a; 205 | $green-color-bottom: #6dc030; 206 | 207 | $orange-color-top: #ffb33b; 208 | $orange-color-bottom: #ff5221; 209 | 210 | $red-color-top: #ff3b30; 211 | $red-color-bottom: #bb0502; 212 | 213 | $purple-color-top: #df55e1; 214 | $purple-color-bottom: #943bea; 215 | 216 | $pink-color-top: #ff2a63; 217 | $pink-color-bottom: #ff2e2e; 218 | 219 | $black-color-top: #282828; 220 | $black-color-bottom: #111; 221 | 222 | $social-facebook: #3b5998; 223 | $social-twitter: #55acee; 224 | $social-pinterest: #cc2127; 225 | $social-google: #dd4b39; 226 | $social-linkedin: #0976b4; 227 | $social-dribbble: #ea4c89; 228 | $social-github: #333333; 229 | $social-youtube: #e52d27; 230 | $social-stumbleupon: #eb4924; 231 | $social-reddit: #ff4500; 232 | $social-tumblr: #35465c; 233 | $social-behance: #1769ff; 234 | 235 | 236 | $filter-blue: darken($primary-color, 10%); 237 | $filter-azure: darken($info-color, 10%); 238 | $filter-green: darken($success-color, 10%); 239 | $filter-orange: darken($warning-color, 10%); 240 | $filter-red: darken($danger-color, 10%); 241 | 242 | 243 | $new-blue: #1DC7EA; 244 | $new-purple: #9368E9; 245 | $new-red: #FB404B; 246 | $new-green: #87CB16; 247 | $new-orange: #FFA534; 248 | $new-dark-blue: #1b8dff; 249 | $new-black: #5e5e5e; 250 | 251 | 252 | $topbar-x: topbar-x !default; 253 | $topbar-back: topbar-back !default; 254 | $bottombar-x: bottombar-x !default; 255 | $bottombar-back: bottombar-back !default; 256 | 257 | 258 | $white-navbar: rgba(#FFFFFF, .96); 259 | $blue-navbar: lighten($new-dark-blue, 10%); 260 | $azure-navbar: lighten($new-blue, 15%); 261 | $green-navbar: lighten($new-green, 10%); 262 | $orange-navbar: lighten($new-orange, 10%); 263 | $red-navbar: lighten($new-red, 10%); 264 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_buttons.scss: -------------------------------------------------------------------------------- 1 | // Mixin for generating new styles 2 | @mixin btn-styles($btn-color, $btn-states-color) { 3 | border-color: $btn-color; 4 | color: $btn-color; 5 | 6 | &:hover, 7 | &:focus, 8 | &:active, 9 | &.active, 10 | .open > &.dropdown-toggle { 11 | background-color: $transparent-bg; 12 | color: $btn-states-color; 13 | border-color: $btn-states-color; 14 | } 15 | 16 | &.disabled, 17 | &:disabled, 18 | &[disabled], 19 | fieldset[disabled] & { 20 | &, 21 | &:hover, 22 | &:focus, 23 | &.focus, 24 | &:active, 25 | &.active { 26 | background-color: $transparent-bg; 27 | border-color: $btn-color; 28 | } 29 | } 30 | 31 | 32 | &.btn-fill { 33 | color: $white-color; 34 | background-color: $btn-color; 35 | @include opacity(1); 36 | 37 | &:hover, 38 | &:focus, 39 | &:active, 40 | &.active, 41 | .open > &.dropdown-toggle{ 42 | background-color: $btn-states-color; 43 | color: $white-color; 44 | } 45 | 46 | .caret{ 47 | border-top-color: $white-color; 48 | } 49 | } 50 | 51 | .caret{ 52 | border-top-color: $btn-color; 53 | } 54 | } 55 | 56 | 57 | @mixin btn-size($padding-vertical, $padding-horizontal, $font-size, $border){ 58 | font-size: $font-size; 59 | border-radius: $border; 60 | padding: $padding-vertical $padding-horizontal; 61 | 62 | &.btn-round{ 63 | padding: $padding-vertical + 1 $padding-horizontal; 64 | } 65 | 66 | &.btn-simple{ 67 | padding: $padding-vertical + 2 $padding-horizontal; 68 | } 69 | 70 | } -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_cards.scss: -------------------------------------------------------------------------------- 1 | @mixin filter($color){ 2 | @if $color == #FFFFFF{ 3 | background-color: rgba($color,.91); 4 | } @else { 5 | background-color: rgba($color,.69); 6 | } 7 | } 8 | 9 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_chartist.scss: -------------------------------------------------------------------------------- 1 | // Scales for responsive SVG containers 2 | $ct-scales: ((1), (15/16), (8/9), (5/6), (4/5), (3/4), (2/3), (5/8), (1/1.618), (3/5), (9/16), (8/15), (1/2), (2/5), (3/8), (1/3), (1/4)) !default; 3 | $ct-scales-names: (ct-square, ct-minor-second, ct-major-second, ct-minor-third, ct-major-third, ct-perfect-fourth, ct-perfect-fifth, ct-minor-sixth, ct-golden-section, ct-major-sixth, ct-minor-seventh, ct-major-seventh, ct-octave, ct-major-tenth, ct-major-eleventh, ct-major-twelfth, ct-double-octave) !default; 4 | 5 | // Class names to be used when generating CSS 6 | $ct-class-chart: ct-chart !default; 7 | $ct-class-chart-line: ct-chart-line !default; 8 | $ct-class-chart-bar: ct-chart-bar !default; 9 | $ct-class-horizontal-bars: ct-horizontal-bars !default; 10 | $ct-class-chart-pie: ct-chart-pie !default; 11 | $ct-class-chart-donut: ct-chart-donut !default; 12 | $ct-class-label: ct-label !default; 13 | $ct-class-series: ct-series !default; 14 | $ct-class-line: ct-line !default; 15 | $ct-class-point: ct-point !default; 16 | $ct-class-area: ct-area !default; 17 | $ct-class-bar: ct-bar !default; 18 | $ct-class-slice-pie: ct-slice-pie !default; 19 | $ct-class-slice-donut: ct-slice-donut !default; 20 | $ct-class-grid: ct-grid !default; 21 | $ct-class-vertical: ct-vertical !default; 22 | $ct-class-horizontal: ct-horizontal !default; 23 | $ct-class-start: ct-start !default; 24 | $ct-class-end: ct-end !default; 25 | 26 | // Container ratio 27 | $ct-container-ratio: (1/1.618) !default; 28 | 29 | // Text styles for labels 30 | $ct-text-color: rgba(0, 0, 0, 0.4) !default; 31 | $ct-text-size: 1.3rem !default; 32 | $ct-text-align: flex-start !default; 33 | $ct-text-justify: flex-start !default; 34 | $ct-text-line-height: 1; 35 | 36 | // Grid styles 37 | $ct-grid-color: rgba(0, 0, 0, 0.2) !default; 38 | $ct-grid-dasharray: 2px !default; 39 | $ct-grid-width: 1px !default; 40 | 41 | // Line chart properties 42 | $ct-line-width: 3px !default; 43 | $ct-line-dasharray: false !default; 44 | $ct-point-size: 8px !default; 45 | // Line chart point, can be either round or square 46 | $ct-point-shape: round !default; 47 | // Area fill transparency between 0 and 1 48 | $ct-area-opacity: 0.8 !default; 49 | 50 | // Bar chart bar width 51 | $ct-bar-width: 10px !default; 52 | 53 | // Donut width (If donut width is to big it can cause issues where the shape gets distorted) 54 | $ct-donut-width: 60px !default; 55 | 56 | // If set to true it will include the default classes and generate CSS output. If you're planning to use the mixins you 57 | // should set this property to false 58 | $ct-include-classes: true !default; 59 | 60 | // If this is set to true the CSS will contain colored series. You can extend or change the color with the 61 | // properties below 62 | $ct-include-colored-series: $ct-include-classes !default; 63 | 64 | // If set to true this will include all responsive container variations using the scales defined at the top of the script 65 | $ct-include-alternative-responsive-containers: $ct-include-classes !default; 66 | 67 | // Series names and colors. This can be extended or customized as desired. Just add more series and colors. 68 | $ct-series-names: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) !default; 69 | $ct-series-colors: ( 70 | $new-blue, 71 | $new-red, 72 | $new-orange, 73 | $new-purple, 74 | $new-green, 75 | $new-dark-blue, 76 | $new-black, 77 | $social-google, 78 | $social-tumblr, 79 | $social-youtube, 80 | $social-twitter, 81 | $social-pinterest, 82 | $social-behance, 83 | #6188e2, 84 | #a748ca 85 | ) !default; -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_icons.scss: -------------------------------------------------------------------------------- 1 | @mixin icon-background ($icon-url){ 2 | background-image : url($icon-url); 3 | 4 | } 5 | 6 | @mixin icon-shape ($size, $padding, $border-radius) { 7 | height: $size; 8 | width: $size; 9 | padding: $padding; 10 | border-radius: $border-radius; 11 | display: inline-table; 12 | 13 | } -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_inputs.scss: -------------------------------------------------------------------------------- 1 | @mixin input-size($padding-vertical, $padding-horizontal, $height){ 2 | padding: $padding-vertical $padding-horizontal; 3 | height: $height; 4 | } 5 | 6 | @mixin placeholder($color, $opacity){ 7 | color: $color; 8 | @include opacity(1); 9 | } 10 | 11 | @mixin light-form(){ 12 | border-radius: 0; 13 | border:0; 14 | padding: 0; 15 | background-color: transparent; 16 | 17 | } -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_labels.scss: -------------------------------------------------------------------------------- 1 | @mixin label-style(){ 2 | padding: $padding-label-vertical $padding-label-horizontal; 3 | border: 1px solid $default-color; 4 | border-radius: $border-radius-small; 5 | color: $default-color; 6 | font-weight: $font-weight-semi; 7 | font-size: $font-size-small; 8 | text-transform: uppercase; 9 | display: inline-block; 10 | vertical-align: middle; 11 | } 12 | 13 | @mixin label-color($color){ 14 | border-color: $color; 15 | color: $color; 16 | } 17 | @mixin label-color-fill($color){ 18 | border-color: $color; 19 | color: $white-color; 20 | background-color: $color; 21 | } -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_morphing-buttons.scss: -------------------------------------------------------------------------------- 1 | $prefixes: ('', '-moz-', '-webkit-', '-ms-') !default; 2 | 3 | @mixin circle-animation(){ 4 | @for $i from 0 to length($prefixes) { 5 | @include circle-animation-details(nth($prefixes, $i + 1)); 6 | } 7 | } 8 | 9 | @mixin circle-animation-details($name){ 10 | #{$name}animation-name: spin; 11 | #{$name}animation-duration: 1250ms; 12 | #{$name}animation-iteration-count: infinite; 13 | #{$name}animation-timing-function: linear; 14 | 15 | } 16 | @keyframes spin { 17 | from { transform:rotate(0deg); } 18 | to { transform:rotate(360deg); } 19 | } 20 | 21 | @-webkit-keyframes spin { 22 | from { -webkit-transform: rotate(0deg); } 23 | to { -webkit-transform: rotate(360deg); } 24 | } 25 | 26 | @-moz-keyframes spin { 27 | from { -moz-transform: rotate(0deg); } 28 | to { -moz-transform: rotate(360deg); } 29 | } 30 | 31 | @-ms-keyframes spin { 32 | from { -ms-transform: rotate(0deg); } 33 | to { -ms-transform: rotate(360deg); } 34 | } -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_navbars.scss: -------------------------------------------------------------------------------- 1 | @mixin navbar-color($color){ 2 | background-color: $color; 3 | } 4 | 5 | @mixin center-item(){ 6 | left: 0; 7 | right: 0; 8 | margin-right: auto; 9 | margin-left: auto; 10 | position: absolute; 11 | } -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_social-buttons.scss: -------------------------------------------------------------------------------- 1 | @mixin social-buttons-color ($color){ 2 | 3 | border-color: $color; 4 | color: $color; 5 | 6 | &:hover, 7 | &:focus, 8 | &:active, 9 | &.active, 10 | .open > &.dropdown-toggle { 11 | background-color: $transparent-bg; 12 | color: $color; 13 | border-color: $color; 14 | opacity: 1; 15 | } 16 | 17 | &:disabled, 18 | &[disabled], 19 | &.disabled { 20 | background-color: $transparent-bg; 21 | border-color: $color; 22 | } 23 | 24 | &.btn-fill { 25 | color: $white-color; 26 | background-color: $color; 27 | opacity: 0.9; 28 | 29 | &:hover, 30 | &:focus, 31 | &:active, 32 | &.active, 33 | .open > &.dropdown-toggle{ 34 | background-color: $color; 35 | color: $white-color; 36 | opacity: 1; 37 | } 38 | 39 | } 40 | 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_tabs.scss: -------------------------------------------------------------------------------- 1 | @mixin pill-style($color){ 2 | border: 1px solid $color; 3 | color: $color; 4 | } -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_transparency.scss: -------------------------------------------------------------------------------- 1 | // Opacity 2 | 3 | @mixin opacity($opacity) { 4 | opacity: $opacity; 5 | // IE8 filter 6 | $opacity-ie: ($opacity * 100); 7 | filter: #{alpha(opacity=$opacity-ie)}; 8 | } 9 | 10 | @mixin black-filter($opacity){ 11 | top: 0; 12 | left: 0; 13 | height: 100%; 14 | width: 100%; 15 | position: absolute; 16 | background-color: rgba(17,17,17,$opacity); 17 | display: block; 18 | content: ""; 19 | z-index: 1; 20 | } -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_vendor-prefixes.scss: -------------------------------------------------------------------------------- 1 | // User select 2 | // For selecting text on the page 3 | 4 | @mixin user-select($select) { 5 | -webkit-user-select: $select; 6 | -moz-user-select: $select; 7 | -ms-user-select: $select; // IE10+ 8 | user-select: $select; 9 | } 10 | 11 | @mixin box-shadow($shadow...) { 12 | -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1 13 | box-shadow: $shadow; 14 | } 15 | 16 | // Box sizing 17 | @mixin box-sizing($boxmodel) { 18 | -webkit-box-sizing: $boxmodel; 19 | -moz-box-sizing: $boxmodel; 20 | box-sizing: $boxmodel; 21 | } 22 | 23 | 24 | @mixin transition($time, $type){ 25 | -webkit-transition: all $time $type; 26 | -moz-transition: all $time $type; 27 | -o-transition: all $time $type; 28 | -ms-transition: all $time $type; 29 | transition: all $time $type; 30 | } 31 | 32 | @mixin transform-scale($value){ 33 | -webkit-transform: scale($value); 34 | -moz-transform: scale($value); 35 | -o-transform: scale($value); 36 | -ms-transform: scale($value); 37 | transform: scale($value); 38 | } 39 | 40 | @mixin transform-translate-x($value){ 41 | -webkit-transform: translate3d($value, 0, 0); 42 | -moz-transform: translate3d($value, 0, 0); 43 | -o-transform: translate3d($value, 0, 0); 44 | -ms-transform: translate3d($value, 0, 0); 45 | transform: translate3d($value, 0, 0); 46 | } 47 | 48 | @mixin transform-origin($coordinates){ 49 | -webkit-transform-origin: $coordinates; 50 | -moz-transform-origin: $coordinates; 51 | -o-transform-origin: $coordinates; 52 | -ms-transform-origin: $coordinates; 53 | transform-origin: $coordinates; 54 | } 55 | 56 | @mixin icon-gradient ($top-color, $bottom-color){ 57 | background: $top-color; 58 | background: -moz-linear-gradient(top, $top-color 0%, $bottom-color 100%); 59 | background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,$top-color), color-stop(100%,$bottom-color)); 60 | background: -webkit-linear-gradient(top, $top-color 0%,$bottom-color 100%); 61 | background: -o-linear-gradient(top, $top-color 0%,$bottom-color 100%); 62 | background: -ms-linear-gradient(top, $top-color 0%,$bottom-color 100%); 63 | background: linear-gradient(to bottom, $top-color 0%,$bottom-color 100%); 64 | background-size: 150% 150%; 65 | } 66 | 67 | @mixin radial-gradient($extern-color, $center-color){ 68 | background: $extern-color; 69 | background: -moz-radial-gradient(center, ellipse cover, $center-color 0%, $extern-color 100%); /* FF3.6+ */ 70 | background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,$center-color), color-stop(100%,$extern-color)); /* Chrome,Safari4+ */ 71 | background: -webkit-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* Chrome10+,Safari5.1+ */ 72 | background: -o-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* Opera 12+ */ 73 | background: -ms-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* IE10+ */ 74 | background: radial-gradient(ellipse at center, $center-color 0%,$extern-color 100%); /* W3C */ 75 | background-size: 550% 450%; 76 | } 77 | 78 | @mixin vertical-align { 79 | position: relative; 80 | top: 50%; 81 | -webkit-transform: translateY(-50%); 82 | -ms-transform: translateY(-50%); 83 | transform: translateY(-50%); 84 | } 85 | 86 | @mixin rotate-180(){ 87 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); 88 | -webkit-transform: rotate(180deg); 89 | -ms-transform: rotate(180deg); 90 | transform: rotate(180deg); 91 | } 92 | 93 | @mixin bar-animation($type){ 94 | -webkit-animation: $type 500ms linear 0s; 95 | -moz-animation: $type 500ms linear 0s; 96 | animation: $type 500ms 0s; 97 | -webkit-animation-fill-mode: forwards; 98 | -moz-animation-fill-mode: forwards; 99 | animation-fill-mode: forwards; 100 | } 101 | 102 | @mixin topbar-x-rotation(){ 103 | @keyframes topbar-x { 104 | 0% {top: 0px; transform: rotate(0deg); } 105 | 45% {top: 6px; transform: rotate(145deg); } 106 | 75% {transform: rotate(130deg); } 107 | 100% {transform: rotate(135deg); } 108 | } 109 | @-webkit-keyframes topbar-x { 110 | 0% {top: 0px; -webkit-transform: rotate(0deg); } 111 | 45% {top: 6px; -webkit-transform: rotate(145deg); } 112 | 75% {-webkit-transform: rotate(130deg); } 113 | 100% { -webkit-transform: rotate(135deg); } 114 | } 115 | @-moz-keyframes topbar-x { 116 | 0% {top: 0px; -moz-transform: rotate(0deg); } 117 | 45% {top: 6px; -moz-transform: rotate(145deg); } 118 | 75% {-moz-transform: rotate(130deg); } 119 | 100% { -moz-transform: rotate(135deg); } 120 | } 121 | } 122 | 123 | @mixin topbar-back-rotation(){ 124 | @keyframes topbar-back { 125 | 0% { top: 6px; transform: rotate(135deg); } 126 | 45% { transform: rotate(-10deg); } 127 | 75% { transform: rotate(5deg); } 128 | 100% { top: 0px; transform: rotate(0); } 129 | } 130 | 131 | @-webkit-keyframes topbar-back { 132 | 0% { top: 6px; -webkit-transform: rotate(135deg); } 133 | 45% { -webkit-transform: rotate(-10deg); } 134 | 75% { -webkit-transform: rotate(5deg); } 135 | 100% { top: 0px; -webkit-transform: rotate(0); } 136 | } 137 | 138 | @-moz-keyframes topbar-back { 139 | 0% { top: 6px; -moz-transform: rotate(135deg); } 140 | 45% { -moz-transform: rotate(-10deg); } 141 | 75% { -moz-transform: rotate(5deg); } 142 | 100% { top: 0px; -moz-transform: rotate(0); } 143 | } 144 | } 145 | 146 | @mixin bottombar-x-rotation(){ 147 | @keyframes bottombar-x { 148 | 0% {bottom: 0px; transform: rotate(0deg);} 149 | 45% {bottom: 6px; transform: rotate(-145deg);} 150 | 75% {transform: rotate(-130deg);} 151 | 100% {transform: rotate(-135deg);} 152 | } 153 | @-webkit-keyframes bottombar-x { 154 | 0% {bottom: 0px; -webkit-transform: rotate(0deg);} 155 | 45% {bottom: 6px; -webkit-transform: rotate(-145deg);} 156 | 75% {-webkit-transform: rotate(-130deg);} 157 | 100% {-webkit-transform: rotate(-135deg);} 158 | } 159 | @-moz-keyframes bottombar-x { 160 | 0% {bottom: 0px; -moz-transform: rotate(0deg);} 161 | 45% {bottom: 6px; -moz-transform: rotate(-145deg);} 162 | 75% {-moz-transform: rotate(-130deg);} 163 | 100% {-moz-transform: rotate(-135deg);} 164 | } 165 | } 166 | 167 | @mixin bottombar-back-rotation{ 168 | @keyframes bottombar-back { 169 | 0% { bottom: 6px;transform: rotate(-135deg);} 170 | 45% { transform: rotate(10deg);} 171 | 75% { transform: rotate(-5deg);} 172 | 100% { bottom: 0px;transform: rotate(0);} 173 | } 174 | @-webkit-keyframes bottombar-back { 175 | 0% {bottom: 6px;-webkit-transform: rotate(-135deg);} 176 | 45% {-webkit-transform: rotate(10deg);} 177 | 75% {-webkit-transform: rotate(-5deg);} 178 | 100% {bottom: 0px;-webkit-transform: rotate(0);} 179 | } 180 | @-moz-keyframes bottombar-back { 181 | 0% {bottom: 6px;-moz-transform: rotate(-135deg);} 182 | 45% {-moz-transform: rotate(10deg);} 183 | 75% {-moz-transform: rotate(-5deg);} 184 | 100% {bottom: 0px;-moz-transform: rotate(0);} 185 | } 186 | 187 | } 188 | 189 | 190 | -------------------------------------------------------------------------------- /src/assets/sass/light-bootstrap-dashboard-react.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | ========================================================= 4 | * Light Bootstrap Dashboard React - v1.3.0 5 | * Based on Light Bootstrap Dashboard - v1.3.0 6 | ========================================================= 7 | 8 | * Product Page: http://www.creative-tim.com/product/light-bootstrap-dashboard-react 9 | * Copyright 2019 Creative Tim (http://www.creative-tim.com) 10 | * Licensed under MIT (https://github.com/creativetimofficial/light-bootstrap-dashboard-react/blob/master/LICENSE.md) 11 | 12 | ========================================================= 13 | 14 | * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 15 | 16 | */ 17 | 18 | @import "lbd/variables"; 19 | @import "lbd/mixins"; 20 | 21 | // Core CSS 22 | @import "lbd/typography"; 23 | @import "lbd/misc"; 24 | @import "lbd/sidebar-and-main-panel"; 25 | @import "lbd/buttons"; 26 | @import "lbd/inputs"; 27 | 28 | @import "lbd/alerts"; 29 | @import "lbd/tables"; 30 | 31 | @import "lbd/checkbox-radio-switch"; 32 | @import "lbd/navbars"; 33 | @import "lbd/footers"; 34 | 35 | // Fancy Stuff 36 | @import "lbd/dropdown"; 37 | @import "lbd/cards"; 38 | @import "lbd/chartist"; 39 | @import "lbd/responsive"; 40 | -------------------------------------------------------------------------------- /src/components/Card/Card.jsx: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | ========================================================= 4 | * Light Bootstrap Dashboard React - v1.3.0 5 | ========================================================= 6 | 7 | * Product Page: https://www.creative-tim.com/product/light-bootstrap-dashboard-react 8 | * Copyright 2019 Creative Tim (https://www.creative-tim.com) 9 | * Licensed under MIT (https://github.com/creativetimofficial/light-bootstrap-dashboard-react/blob/master/LICENSE.md) 10 | 11 | * Coded by Creative Tim 12 | 13 | ========================================================= 14 | 15 | * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 16 | 17 | */ 18 | import React, { Component } from "react"; 19 | 20 | export class Card extends Component { 21 | render() { 22 | return ( 23 |
24 |
25 |

{this.props.title}

26 |

{this.props.category}

27 |
28 |
37 | {this.props.content} 38 | 39 |
40 | {this.props.legend} 41 | {this.props.stats != null ?
: ""} 42 |
43 | {this.props.stats} 44 |
45 |
46 |
47 |
48 | ); 49 | } 50 | } 51 | 52 | export default Card; 53 | -------------------------------------------------------------------------------- /src/components/CustomButton/CustomButton.jsx: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | ========================================================= 4 | * Light Bootstrap Dashboard React - v1.3.0 5 | ========================================================= 6 | 7 | * Product Page: https://www.creative-tim.com/product/light-bootstrap-dashboard-react 8 | * Copyright 2019 Creative Tim (https://www.creative-tim.com) 9 | * Licensed under MIT (https://github.com/creativetimofficial/light-bootstrap-dashboard-react/blob/master/LICENSE.md) 10 | 11 | * Coded by Creative Tim 12 | 13 | ========================================================= 14 | 15 | * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 16 | 17 | */ 18 | import React, { Component } from "react"; 19 | import { Button } from "react-bootstrap"; 20 | import cx from "classnames"; 21 | import PropTypes from "prop-types"; 22 | 23 | class CustomButton extends Component { 24 | render() { 25 | const { fill, simple, pullRight, round, block, ...rest } = this.props; 26 | 27 | const btnClasses = cx({ 28 | "btn-fill": fill, 29 | "btn-simple": simple, 30 | "pull-right": pullRight, 31 | "btn-block": block, 32 | "btn-round": round 33 | }); 34 | 35 | return 60 | 61 | 62 | 63 | 66 | 67 | 68 | 69 | ); 70 | } 71 | return {tasks}; 72 | } 73 | } 74 | 75 | export default Tasks; 76 | -------------------------------------------------------------------------------- /src/components/UserCard/UserCard.jsx: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | ========================================================= 4 | * Light Bootstrap Dashboard React - v1.3.0 5 | ========================================================= 6 | 7 | * Product Page: https://www.creative-tim.com/product/light-bootstrap-dashboard-react 8 | * Copyright 2019 Creative Tim (https://www.creative-tim.com) 9 | * Licensed under MIT (https://github.com/creativetimofficial/light-bootstrap-dashboard-react/blob/master/LICENSE.md) 10 | 11 | * Coded by Creative Tim 12 | 13 | ========================================================= 14 | 15 | * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 16 | 17 | */ 18 | import React, { Component } from "react"; 19 | import {ProgressBar} from 'react-bootstrap'; 20 | import axios from 'axios'; 21 | 22 | export class UserCard extends Component { 23 | 24 | state = { 25 | uploadPercentage: 0, 26 | avatar: '' 27 | } 28 | 29 | componentDidMount = () =>{ 30 | const {avatar} = this.props; 31 | this.setState({ avatar }) 32 | } 33 | 34 | uploadFile = ({ target: { files } }) =>{ 35 | console.log( files[0] ) 36 | let data = new FormData(); 37 | data.append( 'file', files[0] ) 38 | 39 | const options = { 40 | onUploadProgress: (progressEvent) => { 41 | const {loaded, total} = progressEvent; 42 | let percent = Math.floor( (loaded * 100) / total ) 43 | console.log( `${loaded}kb of ${total}kb | ${percent}%` ); 44 | 45 | if( percent < 100 ){ 46 | this.setState({ uploadPercentage: percent }) 47 | } 48 | } 49 | } 50 | 51 | axios.post("https://www.mocky.io/v2/5cc8019d300000980a055e76", data, options).then(res => { 52 | console.log(res) 53 | this.setState({ avatar: res.data.url, uploadPercentage: 100 }, ()=>{ 54 | setTimeout(() => { 55 | this.setState({ uploadPercentage: 0 }) 56 | }, 1000); 57 | }) 58 | }) 59 | } 60 | 61 | render() { 62 | const {uploadPercentage} = this.state; 63 | return ( 64 |
65 |
66 | ... 67 |
68 | 88 |
89 |
{this.props.socials}
90 |
91 | ); 92 | } 93 | } 94 | 95 | export default UserCard; 96 | -------------------------------------------------------------------------------- /src/config.js: -------------------------------------------------------------------------------- 1 | export const config = { 2 | GOOGLE_MAP_KEY : "TestKey" 3 | } -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom"; 3 | 4 | import { BrowserRouter, Route, Switch, Redirect } from "react-router-dom"; 5 | 6 | import "bootstrap/dist/css/bootstrap.min.css"; 7 | import "./assets/css/animate.min.css"; 8 | import "./assets/sass/light-bootstrap-dashboard-react.scss?v=1.3.0"; 9 | import "./assets/css/demo.css"; 10 | import "./assets/css/pe-icon-7-stroke.css"; 11 | 12 | import AdminLayout from "layouts/Admin.jsx"; 13 | 14 | import { Provider } from "react-redux"; 15 | import configureStore from "./store"; 16 | 17 | ReactDOM.render( 18 | 19 | 20 | 21 | } /> 22 | 23 | 24 | 25 | , 26 | document.getElementById("root") 27 | ); 28 | -------------------------------------------------------------------------------- /src/layouts/Admin.jsx: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | ========================================================= 4 | * Light Bootstrap Dashboard React - v1.3.0 5 | ========================================================= 6 | 7 | * Product Page: https://www.creative-tim.com/product/light-bootstrap-dashboard-react 8 | * Copyright 2019 Creative Tim (https://www.creative-tim.com) 9 | * Licensed under MIT (https://github.com/creativetimofficial/light-bootstrap-dashboard-react/blob/master/LICENSE.md) 10 | 11 | * Coded by Creative Tim 12 | 13 | ========================================================= 14 | 15 | * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 16 | 17 | */ 18 | import React, { Component } from "react"; 19 | import { Route, Switch } from "react-router-dom"; 20 | import NotificationSystem from "react-notification-system"; 21 | 22 | import AdminNavbar from "components/Navbars/AdminNavbar"; 23 | import Footer from "components/Footer/Footer"; 24 | import Sidebar from "components/Sidebar/Sidebar"; 25 | import FixedPlugin from "components/FixedPlugin/FixedPlugin.jsx"; 26 | 27 | import { style } from "variables/Variables.jsx"; 28 | 29 | import routes from "routes.js"; 30 | 31 | import image from "assets/img/sidebar-3.jpg"; 32 | import FullPageLoader from "components/FullPageLoader/FullPageLoader"; 33 | 34 | class Admin extends Component { 35 | constructor(props) { 36 | super(props); 37 | this.state = { 38 | _notificationSystem: null, 39 | image: image, 40 | color: "black", 41 | hasImage: true, 42 | fixedClasses: "dropdown show-dropdown open" 43 | }; 44 | } 45 | handleNotificationClick = position => {}; 46 | getRoutes = routes => { 47 | return routes.map((prop, key) => { 48 | if (prop.layout === "/admin") { 49 | return ( 50 | ( 53 | 57 | )} 58 | key={key} 59 | /> 60 | ); 61 | } else { 62 | return null; 63 | } 64 | }); 65 | }; 66 | 67 | getBrandText = path => { 68 | for (let i = 0; i < routes.length; i++) { 69 | if ( 70 | this.props.location.pathname.indexOf( 71 | routes[i].layout + routes[i].path 72 | ) !== -1 73 | ) { 74 | return routes[i].name; 75 | } 76 | } 77 | return "Brand"; 78 | }; 79 | 80 | handleImageClick = image => { 81 | this.setState({ image: image }); 82 | }; 83 | 84 | handleColorClick = color => { 85 | this.setState({ color: color }); 86 | }; 87 | 88 | handleHasImage = hasImage => { 89 | this.setState({ hasImage: hasImage }); 90 | }; 91 | 92 | handleFixedClick = () => { 93 | if (this.state.fixedClasses === "dropdown") { 94 | this.setState({ fixedClasses: "dropdown show-dropdown open" }); 95 | } else { 96 | this.setState({ fixedClasses: "dropdown" }); 97 | } 98 | }; 99 | 100 | componentDidMount() { 101 | this.setState({ _notificationSystem: this.refs.notificationSystem }); 102 | } 103 | 104 | componentDidUpdate(e) { 105 | if ( 106 | window.innerWidth < 993 && 107 | e.history.location.pathname !== e.location.pathname && 108 | document.documentElement.className.indexOf("nav-open") !== -1 109 | ) { 110 | document.documentElement.classList.toggle("nav-open"); 111 | } 112 | if (e.history.action === "PUSH") { 113 | document.documentElement.scrollTop = 0; 114 | document.scrollingElement.scrollTop = 0; 115 | this.refs.mainPanel.scrollTop = 0; 116 | } 117 | } 118 | 119 | render() { 120 | return ( 121 |
122 | 123 | 130 |
131 | 135 | {this.getRoutes(routes)} 136 |
137 |
138 | 139 | 140 |
141 | ); 142 | } 143 | } 144 | 145 | export default Admin; 146 | -------------------------------------------------------------------------------- /src/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/reducers/application.js: -------------------------------------------------------------------------------- 1 | const initialState = { 2 | data: {}, 3 | loading: false 4 | }; 5 | 6 | export default (state = initialState, action) => { 7 | switch (action.type) { 8 | case "PROFILE_DATA": 9 | return { 10 | ...state, 11 | data: { ...action.data } 12 | }; 13 | 14 | case "SHOW_LOADER": 15 | return { ...state, loading: true }; 16 | 17 | case "HIDE_LOADER": 18 | return { ...state, loading: false }; 19 | 20 | default: 21 | return state; 22 | } 23 | }; 24 | -------------------------------------------------------------------------------- /src/reducers/rootReducer.js: -------------------------------------------------------------------------------- 1 | import { combineReducers } from 'redux'; 2 | import application from './application'; 3 | export default combineReducers({ 4 | application 5 | }); -------------------------------------------------------------------------------- /src/routes.js: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | ========================================================= 4 | * Light Bootstrap Dashboard React - v1.3.0 5 | ========================================================= 6 | 7 | * Product Page: https://www.creative-tim.com/product/light-bootstrap-dashboard-react 8 | * Copyright 2019 Creative Tim (https://www.creative-tim.com) 9 | * Licensed under MIT (https://github.com/creativetimofficial/light-bootstrap-dashboard-react/blob/master/LICENSE.md) 10 | 11 | * Coded by Creative Tim 12 | 13 | ========================================================= 14 | 15 | * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 16 | 17 | */ 18 | import Dashboard from "views/Dashboard.jsx"; 19 | import UserProfile from "views/UserProfile.jsx"; 20 | import TableList from "views/TableList.jsx"; 21 | import Typography from "views/Typography.jsx"; 22 | import Icons from "views/Icons.jsx"; 23 | import Maps from "views/Maps.jsx"; 24 | import Notifications from "views/Notifications.jsx"; 25 | import Upgrade from "views/Upgrade.jsx"; 26 | 27 | const dashboardRoutes = [ 28 | { 29 | path: "/dashboard", 30 | name: "Dashboard", 31 | icon: "pe-7s-graph", 32 | component: Dashboard, 33 | layout: "/admin" 34 | }, 35 | { 36 | path: "/user", 37 | name: "User Profile", 38 | icon: "pe-7s-user", 39 | component: UserProfile, 40 | layout: "/admin" 41 | }, 42 | { 43 | path: "/table", 44 | name: "Table List", 45 | icon: "pe-7s-note2", 46 | component: TableList, 47 | layout: "/admin" 48 | }, 49 | { 50 | path: "/typography", 51 | name: "Typography", 52 | icon: "pe-7s-news-paper", 53 | component: Typography, 54 | layout: "/admin" 55 | }, 56 | { 57 | path: "/icons", 58 | name: "Icons", 59 | icon: "pe-7s-science", 60 | component: Icons, 61 | layout: "/admin" 62 | }, 63 | { 64 | path: "/maps", 65 | name: "Maps", 66 | icon: "pe-7s-map-marker", 67 | component: Maps, 68 | layout: "/admin" 69 | }, 70 | { 71 | path: "/notifications", 72 | name: "Notifications", 73 | icon: "pe-7s-bell", 74 | component: Notifications, 75 | layout: "/admin" 76 | }, 77 | { 78 | upgrade: true, 79 | path: "/upgrade", 80 | name: "Upgrade to PRO", 81 | icon: "pe-7s-rocket", 82 | component: Upgrade, 83 | layout: "/admin" 84 | } 85 | ]; 86 | 87 | export default dashboardRoutes; 88 | -------------------------------------------------------------------------------- /src/store.js: -------------------------------------------------------------------------------- 1 | import { createStore, compose, applyMiddleware } from "redux"; 2 | import thunk from "redux-thunk"; 3 | import rootReducer from "./reducers/rootReducer"; 4 | 5 | const composeEnhancer = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; 6 | 7 | export default function configureStore() { 8 | return createStore(rootReducer, composeEnhancer(applyMiddleware(thunk))); 9 | } 10 | -------------------------------------------------------------------------------- /src/views/Dashboard.jsx: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | ========================================================= 4 | * Light Bootstrap Dashboard React - v1.3.0 5 | ========================================================= 6 | 7 | * Product Page: https://www.creative-tim.com/product/light-bootstrap-dashboard-react 8 | * Copyright 2019 Creative Tim (https://www.creative-tim.com) 9 | * Licensed under MIT (https://github.com/creativetimofficial/light-bootstrap-dashboard-react/blob/master/LICENSE.md) 10 | 11 | * Coded by Creative Tim 12 | 13 | ========================================================= 14 | 15 | * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 16 | 17 | */ 18 | import React, { Component } from "react"; 19 | import ChartistGraph from "react-chartist"; 20 | import { Grid, Row, Col } from "react-bootstrap"; 21 | 22 | import { Card } from "components/Card/Card.jsx"; 23 | import { StatsCard } from "components/StatsCard/StatsCard.jsx"; 24 | import { Tasks } from "components/Tasks/Tasks.jsx"; 25 | import { 26 | dataPie, 27 | legendPie, 28 | dataSales, 29 | optionsSales, 30 | responsiveSales, 31 | legendSales, 32 | dataBar, 33 | optionsBar, 34 | responsiveBar, 35 | legendBar 36 | } from "variables/Variables.jsx"; 37 | 38 | class Dashboard extends Component { 39 | createLegend(json) { 40 | var legend = []; 41 | for (var i = 0; i < json["names"].length; i++) { 42 | var type = "fa fa-circle text-" + json["types"][i]; 43 | legend.push(); 44 | legend.push(" "); 45 | legend.push(json["names"][i]); 46 | } 47 | return legend; 48 | } 49 | render() { 50 | return ( 51 |
52 | 53 | 54 | 55 | } 57 | statsText="Capacity" 58 | statsValue="105GB" 59 | statsIcon={} 60 | statsIconText="Updated now" 61 | /> 62 | 63 | 64 | } 66 | statsText="Revenue" 67 | statsValue="$1,345" 68 | statsIcon={} 69 | statsIconText="Last day" 70 | /> 71 | 72 | 73 | } 75 | statsText="Errors" 76 | statsValue="23" 77 | statsIcon={} 78 | statsIconText="In the last hour" 79 | /> 80 | 81 | 82 | } 84 | statsText="Followers" 85 | statsValue="+45" 86 | statsIcon={} 87 | statsIconText="Updated now" 88 | /> 89 | 90 | 91 | 92 | 93 | 101 | 107 |
108 | } 109 | legend={ 110 |
{this.createLegend(legendSales)}
111 | } 112 | /> 113 | 114 | 115 | 125 | 126 | 127 | } 128 | legend={ 129 |
{this.createLegend(legendPie)}
130 | } 131 | /> 132 | 133 | 134 | 135 | 136 | 137 | 145 | 151 | 152 | } 153 | legend={ 154 |
{this.createLegend(legendBar)}
155 | } 156 | /> 157 | 158 | 159 | 160 | 167 | 168 | 169 |
170 | 171 | } 172 | /> 173 | 174 |
175 | 176 | 177 | ); 178 | } 179 | } 180 | 181 | export default Dashboard; 182 | -------------------------------------------------------------------------------- /src/views/Icons.jsx: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | ========================================================= 4 | * Light Bootstrap Dashboard React - v1.3.0 5 | ========================================================= 6 | 7 | * Product Page: https://www.creative-tim.com/product/light-bootstrap-dashboard-react 8 | * Copyright 2019 Creative Tim (https://www.creative-tim.com) 9 | * Licensed under MIT (https://github.com/creativetimofficial/light-bootstrap-dashboard-react/blob/master/LICENSE.md) 10 | 11 | * Coded by Creative Tim 12 | 13 | ========================================================= 14 | 15 | * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 16 | 17 | */ 18 | import React, { Component } from "react"; 19 | import { Grid, Row, Col } from "react-bootstrap"; 20 | 21 | import Card from "components/Card/Card"; 22 | import { iconsArray } from "variables/Variables.jsx"; 23 | 24 | class Icons extends Component { 25 | render() { 26 | return ( 27 |
28 | 29 | 30 | 31 | 36 | Handcrafted by our friends from{" "} 37 | 42 | Pixeden 43 | 44 | 45 | } 46 | content={ 47 | 48 | {iconsArray.map((prop, key) => { 49 | return ( 50 | 58 |
59 | 60 | 61 |
62 | 63 | ); 64 | })} 65 |
66 | } 67 | /> 68 | 69 |
70 |
71 |
72 | ); 73 | } 74 | } 75 | 76 | export default Icons; 77 | -------------------------------------------------------------------------------- /src/views/Maps.jsx: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | ========================================================= 4 | * Light Bootstrap Dashboard React - v1.3.0 5 | ========================================================= 6 | 7 | * Product Page: https://www.creative-tim.com/product/light-bootstrap-dashboard-react 8 | * Copyright 2019 Creative Tim (https://www.creative-tim.com) 9 | * Licensed under MIT (https://github.com/creativetimofficial/light-bootstrap-dashboard-react/blob/master/LICENSE.md) 10 | 11 | * Coded by Creative Tim 12 | 13 | ========================================================= 14 | 15 | * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 16 | 17 | */ 18 | import React from "react"; 19 | // react components used to create a google map 20 | import { 21 | withScriptjs, 22 | withGoogleMap, 23 | GoogleMap, 24 | Marker 25 | } from "react-google-maps"; 26 | 27 | import {config} from '../config'; 28 | 29 | const CustomMap = withScriptjs( 30 | withGoogleMap(props => ( 31 | 39 | 40 | 41 | )) 42 | ); 43 | 44 | function Maps({ ...prop }) { 45 | return ( 46 | } 49 | containerElement={
} 50 | mapElement={
} 51 | /> 52 | ); 53 | } 54 | 55 | export default Maps; 56 | -------------------------------------------------------------------------------- /src/views/Notifications.jsx: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | ========================================================= 4 | * Light Bootstrap Dashboard React - v1.3.0 5 | ========================================================= 6 | 7 | * Product Page: https://www.creative-tim.com/product/light-bootstrap-dashboard-react 8 | * Copyright 2019 Creative Tim (https://www.creative-tim.com) 9 | * Licensed under MIT (https://github.com/creativetimofficial/light-bootstrap-dashboard-react/blob/master/LICENSE.md) 10 | 11 | * Coded by Creative Tim 12 | 13 | ========================================================= 14 | 15 | * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 16 | 17 | */ 18 | import React, { Component } from "react"; 19 | import { Grid, Row, Col, Alert } from "react-bootstrap"; 20 | 21 | import Button from "components/CustomButton/CustomButton.jsx"; 22 | 23 | class Notifications extends Component { 24 | render() { 25 | return ( 26 |
27 | 28 |
29 |
30 |

Notifications

31 |

32 | Handcrafted by{" "} 33 | 38 | Igor Prado 39 | 40 | . Please checkout the{" "} 41 | 46 | full documentation. 47 | 48 |

49 |
50 |
51 | 52 | 53 |
Notifications Style
54 | 55 | This is a plain notification 56 | 57 | 58 | 61 | This is a notification with close button. 62 | 63 | 64 | 67 | 68 | 69 | This is a notification with close button and icon. 70 | 71 | 72 | 73 | 76 | 77 | 78 | This is a notification with close button and icon and have 79 | many lines. You can see that the icon and the close button 80 | are always vertically aligned. This is a beautiful 81 | notification. So you don't have to worry about the style. 82 | 83 | 84 | 85 | 86 |
Notification states
87 | 88 | 91 | 92 | Info - This is a regular notification made with 93 | bsStyle="info" 94 | 95 | 96 | 97 | 100 | 101 | Success - This is a regular notification made 102 | with bsStyle="success" 103 | 104 | 105 | 106 | 109 | 110 | Warning - This is a regular notification made 111 | with bsStyle="warning" 112 | 113 | 114 | 115 | 118 | 119 | Danger - This is a regular notification made with 120 | bsStyle="danger" 121 | 122 | 123 | 124 |
125 |
126 |
127 |
128 | 129 | 130 |
131 | Notifications Places 132 |

Click to view notifications

133 |
134 | 135 |
136 | 137 | 138 | 145 | 146 | 147 | 154 | 155 | 156 | 163 | 164 | 165 | 166 | 167 | 174 | 175 | 176 | 183 | 184 | 185 | 192 | 193 | 194 |
195 |
196 |
197 |
198 |
199 | ); 200 | } 201 | } 202 | 203 | export default Notifications; 204 | -------------------------------------------------------------------------------- /src/views/TableList.jsx: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | ========================================================= 4 | * Light Bootstrap Dashboard React - v1.3.0 5 | ========================================================= 6 | 7 | * Product Page: https://www.creative-tim.com/product/light-bootstrap-dashboard-react 8 | * Copyright 2019 Creative Tim (https://www.creative-tim.com) 9 | * Licensed under MIT (https://github.com/creativetimofficial/light-bootstrap-dashboard-react/blob/master/LICENSE.md) 10 | 11 | * Coded by Creative Tim 12 | 13 | ========================================================= 14 | 15 | * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 16 | 17 | */ 18 | import React, { Component } from "react"; 19 | import { Grid, Row, Col, Table } from "react-bootstrap"; 20 | 21 | import Card from "components/Card/Card.jsx"; 22 | import { thArray, tdArray } from "variables/Variables.jsx"; 23 | 24 | class TableList extends Component { 25 | render() { 26 | return ( 27 |
28 | 29 | 30 | 31 | 38 | 39 | 40 | {thArray.map((prop, key) => { 41 | return {prop}; 42 | })} 43 | 44 | 45 | 46 | {tdArray.map((prop, key) => { 47 | return ( 48 | 49 | {prop.map((prop, key) => { 50 | return {prop}; 51 | })} 52 | 53 | ); 54 | })} 55 | 56 | 57 | } 58 | /> 59 | 60 | 61 | 62 | 70 | 71 | 72 | {thArray.map((prop, key) => { 73 | return {prop}; 74 | })} 75 | 76 | 77 | 78 | {tdArray.map((prop, key) => { 79 | return ( 80 | 81 | {prop.map((prop, key) => { 82 | return {prop}; 83 | })} 84 | 85 | ); 86 | })} 87 | 88 | 89 | } 90 | /> 91 | 92 | 93 | 94 |
95 | ); 96 | } 97 | } 98 | 99 | export default TableList; 100 | -------------------------------------------------------------------------------- /src/views/Typography.jsx: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | ========================================================= 4 | * Light Bootstrap Dashboard React - v1.3.0 5 | ========================================================= 6 | 7 | * Product Page: https://www.creative-tim.com/product/light-bootstrap-dashboard-react 8 | * Copyright 2019 Creative Tim (https://www.creative-tim.com) 9 | * Licensed under MIT (https://github.com/creativetimofficial/light-bootstrap-dashboard-react/blob/master/LICENSE.md) 10 | 11 | * Coded by Creative Tim 12 | 13 | ========================================================= 14 | 15 | * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 16 | 17 | */ 18 | import React, { Component } from "react"; 19 | import { Grid, Row, Col } from "react-bootstrap"; 20 | 21 | import Card from "components/Card/Card.jsx"; 22 | 23 | class Typography extends Component { 24 | render() { 25 | return ( 26 |
27 | 28 | 29 | 30 | 35 |
36 |

37 |

Header 1

Light Bootstrap 38 | Table Heading{" "} 39 |

40 |
41 | 42 |
43 |

44 |

Header 2

Light Bootstrap 45 | Table Heading 46 |

47 |
48 |
49 |

50 |

Header 3

Light Bootstrap 51 | Table Heading 52 |

53 |
54 |
55 |

56 |

Header 4

Light Bootstrap 57 | Table Heading 58 |

59 |
60 |
61 |
62 |

Header 5

Light Bootstrap 63 | Table Heading 64 |
65 |
66 |
67 |
68 |

Header 6

Light Bootstrap 69 | Table Heading 70 |
71 |
72 |
73 |

74 | ParagraphLorem ipsum 75 | dolor sit amet, consectetuer adipiscing elit, sed diam 76 | nonummy nibh euismod tincidunt ut laoreet dolore magna 77 | aliquam erat volutpat. Ut wisi enim ad minim veniam. 78 |

79 |
80 |
81 |

Quote

82 |
83 |

84 | Lorem ipsum dolor sit amet, consectetuer adipiscing 85 | elit, sed diam nonummy nibh euismod tincidunt ut 86 | laoreet dolore magna aliquam erat volutpat. Ut wisi 87 | enim ad minim veniam. 88 |

89 | Steve Jobs, CEO Apple 90 |
91 |
92 | 93 |
94 |

Muted Text

95 |

96 | Lorem ipsum dolor sit amet, consectetuer adipiscing 97 | elit, sed diam nonummy nibh euismod tincidunt ut 98 | laoreet. 99 |

100 |
101 |
102 | {/* */} 105 |

Coloured Text

106 |

107 | Text Primary - Light Bootstrap Table Heading and complex 108 | bootstrap dashboard you've ever seen on the internet. 109 |

110 |

111 | Text Info - Light Bootstrap Table Heading and complex 112 | bootstrap dashboard you've ever seen on the internet. 113 |

114 |

115 | Text Success - Light Bootstrap Table Heading and complex 116 | bootstrap dashboard you've ever seen on the internet. 117 |

118 |

119 | Text Warning - Light Bootstrap Table Heading and complex 120 | bootstrap dashboard you've ever seen on the internet. 121 |

122 |

123 | Text Danger - Light Bootstrap Table Heading and complex 124 | bootstrap dashboard you've ever seen on the internet. 125 |

126 |
127 | 128 |
129 |

130 |

Small Tag

Header with small 131 | subtitle
132 | ".small" is a tag for the headers{" "} 133 |

134 |
135 |
136 | } 137 | /> 138 | 139 | 140 | 141 |
142 | ); 143 | } 144 | } 145 | 146 | export default Typography; 147 | -------------------------------------------------------------------------------- /src/views/Upgrade.jsx: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | ========================================================= 4 | * Light Bootstrap Dashboard React - v1.3.0 5 | ========================================================= 6 | 7 | * Product Page: https://www.creative-tim.com/product/light-bootstrap-dashboard-react 8 | * Copyright 2019 Creative Tim (https://www.creative-tim.com) 9 | * Licensed under MIT (https://github.com/creativetimofficial/light-bootstrap-dashboard-react/blob/master/LICENSE.md) 10 | 11 | * Coded by Creative Tim 12 | 13 | ========================================================= 14 | 15 | * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 16 | 17 | */ 18 | import React, { Component } from "react"; 19 | import { Table, Grid, Row, Col } from "react-bootstrap"; 20 | 21 | import Card from "components/Card/Card"; 22 | 23 | import Button from "components/CustomButton/CustomButton"; 24 | 25 | class Icons extends Component { 26 | render() { 27 | return ( 28 |
29 | 30 | 31 | 32 | 41 | 42 | 43 | 44 | Free 45 | PRO 46 | 47 | 48 | 49 | 50 | Components 51 | 30 52 | 60 53 | 54 | 55 | Plugins 56 | 3 57 | 13 58 | 59 | 60 | Example Pages 61 | 7 62 | 24 63 | 64 | 65 | Login/Register/Lock Pages 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | Premium Support 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | Free 85 | Just $49 86 | 87 | 88 | 89 | 90 | 99 | 100 | 101 | 110 | 111 | 112 | 113 | 114 | } 115 | /> 116 | 117 | 118 | 119 |
120 | ); 121 | } 122 | } 123 | 124 | export default Icons; 125 | -------------------------------------------------------------------------------- /src/views/UserProfile.jsx: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | ========================================================= 4 | * Light Bootstrap Dashboard React - v1.3.0 5 | ========================================================= 6 | 7 | * Product Page: https://www.creative-tim.com/product/light-bootstrap-dashboard-react 8 | * Copyright 2019 Creative Tim (https://www.creative-tim.com) 9 | * Licensed under MIT (https://github.com/creativetimofficial/light-bootstrap-dashboard-react/blob/master/LICENSE.md) 10 | 11 | * Coded by Creative Tim 12 | 13 | ========================================================= 14 | 15 | * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 16 | 17 | */ 18 | import React, { Component } from "react"; 19 | import { 20 | Grid, 21 | Row, 22 | Col, 23 | FormGroup, 24 | ControlLabel, 25 | FormControl 26 | } from "react-bootstrap"; 27 | import {connect} from 'react-redux'; 28 | 29 | import { Card } from "components/Card/Card.jsx"; 30 | import { FormInputs } from "components/FormInputs/FormInputs.jsx"; 31 | import { UserCard } from "components/UserCard/UserCard.jsx"; 32 | import Button from "components/CustomButton/CustomButton.jsx"; 33 | 34 | import avatar from "assets/img/faces/face-3.jpg"; 35 | import { toggleLoader } from "actions/application"; 36 | import Axios from "axios"; 37 | import { showLoader } from "actions/application"; 38 | import { hideLoader } from "actions/application"; 39 | 40 | class UserProfile extends Component { 41 | 42 | updateProfile = () =>{ 43 | this.props.dispatch( showLoader() ) 44 | 45 | Axios.post(`https://jsonplaceholder.typicode.com/users`, { user : { name : 'Test User' } }) 46 | .then(res => { 47 | console.log( res ); 48 | 49 | this.props.dispatch( hideLoader() ) 50 | }) 51 | /* setTimeout(() => { 52 | this.props.dispatch( hideLoader() ) 53 | }, 2000); */ 54 | 55 | } 56 | 57 | render() { 58 | return ( 59 |
60 | 61 | 62 | 63 | 67 | 93 | 112 | 125 | 150 | 151 | 152 | 153 | 154 | About Me 155 | 162 | 163 | 164 | 165 | 168 |
169 | 170 | } 171 | /> 172 | 173 | 174 | 181 | "Lamborghini Mercy 182 |
183 | Your chick she so thirsty 184 |
185 | I'm in that two seat Lambo" 186 | 187 | } 188 | socials={ 189 |
190 | 193 | 196 | 199 |
200 | } 201 | /> 202 | 203 | 204 | 205 |
206 | ); 207 | } 208 | } 209 | 210 | const mapStateToProps = state =>({}) 211 | 212 | export default connect(mapStateToProps)(UserProfile); 213 | --------------------------------------------------------------------------------