├── .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 |
63 |
64 |
65 |
81 |
82 |
83 |
94 |
95 |
96 |
97 |
98 |
99 |
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 | You need to enable JavaScript to run this app.
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 ;
36 | }
37 | }
38 |
39 | CustomButton.propTypes = {
40 | fill: PropTypes.bool,
41 | simple: PropTypes.bool,
42 | pullRight: PropTypes.bool,
43 | block: PropTypes.bool,
44 | round: PropTypes.bool
45 | };
46 |
47 | export default CustomButton;
48 |
--------------------------------------------------------------------------------
/src/components/CustomCheckbox/CustomCheckbox.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 | class CustomCheckbox extends Component {
21 | constructor(props) {
22 | super(props);
23 | this.state = {
24 | is_checked: props.isChecked ? true : false
25 | };
26 | this.handleClick = this.handleClick.bind(this);
27 | }
28 | handleClick() {
29 | this.setState({ is_checked: !this.state.is_checked });
30 | }
31 | render() {
32 | const { isChecked, number, label, inline, ...rest } = this.props;
33 | const classes =
34 | inline !== undefined ? "checkbox checkbox-inline" : "checkbox";
35 | return (
36 |
37 |
44 | {label}
45 |
46 | );
47 | }
48 | }
49 |
50 | export default CustomCheckbox;
51 |
--------------------------------------------------------------------------------
/src/components/CustomRadio/CustomRadio.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 | class CustomRadio extends Component {
21 | render() {
22 | const { number, label, option, name, ...rest } = this.props;
23 |
24 | return (
25 |
26 |
27 | {label}
28 |
29 | );
30 | }
31 | }
32 |
33 | export default CustomRadio;
34 |
--------------------------------------------------------------------------------
/src/components/FixedPlugin/FixedPlugin.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 | /*eslint-disable*/
19 | import React, { Component } from "react";
20 | import Toggle from "react-toggle";
21 |
22 | import imagine1 from "assets/img/sidebar-1.jpg";
23 | import imagine2 from "assets/img/sidebar-2.jpg";
24 | import imagine3 from "assets/img/sidebar-3.jpg";
25 | import imagine4 from "assets/img/sidebar-4.jpg";
26 |
27 | class FixedPlugin extends Component {
28 | constructor(props) {
29 | super(props);
30 | this.state = {
31 | classes: "dropdown show-dropdown open",
32 | bg_checked: true,
33 | bgImage: this.props.bgImage
34 | };
35 | }
36 | handleClick = () => {
37 | this.props.handleFixedClick();
38 | };
39 | onChangeClick = () => {
40 | this.props.handleHasImage(!this.state.bg_checked);
41 | this.setState({ bg_checked: !this.state.bg_checked });
42 | };
43 | render() {
44 | return (
45 |
46 |
47 |
48 |
49 |
50 |
214 |
215 |
216 | );
217 | }
218 | }
219 |
220 | export default FixedPlugin;
221 |
--------------------------------------------------------------------------------
/src/components/Footer/Footer.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 } from "react-bootstrap";
20 |
21 | class Footer extends Component {
22 | render() {
23 | return (
24 |
51 | );
52 | }
53 | }
54 |
55 | export default Footer;
56 |
--------------------------------------------------------------------------------
/src/components/FormInputs/FormInputs.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 { FormGroup, ControlLabel, FormControl, Row } from "react-bootstrap";
20 |
21 | function FieldGroup({ label, ...props }) {
22 | return (
23 |
24 | {label}
25 |
26 |
27 | );
28 | }
29 |
30 | export class FormInputs extends Component {
31 | render() {
32 | var row = [];
33 | for (var i = 0; i < this.props.ncols.length; i++) {
34 | row.push(
35 |
36 |
37 |
38 | );
39 | }
40 | return {row}
;
41 | }
42 | }
43 |
44 | export default FormInputs;
45 |
--------------------------------------------------------------------------------
/src/components/FullPageLoader/FullPageLoader.jsx:
--------------------------------------------------------------------------------
1 | import React, {Component} from 'react';
2 | import {connect} from 'react-redux';
3 | import LoaderGif from '../../assets/img/loader.gif'
4 |
5 | class FullPageLoader extends Component {
6 | state = { }
7 |
8 |
9 | render() {
10 | const {loading} = this.props;
11 |
12 | if(!loading) return null;
13 |
14 | return (
15 |
16 |
17 |
18 |
19 |
20 | );
21 | }
22 | }
23 |
24 |
25 | const mapStateToProps = state => ({ loading: state.application.loading })
26 |
27 | export default connect(mapStateToProps)(FullPageLoader);
--------------------------------------------------------------------------------
/src/components/Navbars/AdminNavbar.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 { Navbar } from "react-bootstrap";
20 |
21 | import AdminNavbarLinks from "./AdminNavbarLinks.jsx";
22 |
23 | class Header extends Component {
24 | constructor(props) {
25 | super(props);
26 | this.mobileSidebarToggle = this.mobileSidebarToggle.bind(this);
27 | this.state = {
28 | sidebarExists: false
29 | };
30 | }
31 | mobileSidebarToggle(e) {
32 | if (this.state.sidebarExists === false) {
33 | this.setState({
34 | sidebarExists: true
35 | });
36 | }
37 | e.preventDefault();
38 | document.documentElement.classList.toggle("nav-open");
39 | var node = document.createElement("div");
40 | node.id = "bodyClick";
41 | node.onclick = function() {
42 | this.parentElement.removeChild(this);
43 | document.documentElement.classList.toggle("nav-open");
44 | };
45 | document.body.appendChild(node);
46 | }
47 | render() {
48 | return (
49 |
50 |
51 |
52 | {this.props.brandText}
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 | );
61 | }
62 | }
63 |
64 | export default Header;
65 |
--------------------------------------------------------------------------------
/src/components/Navbars/AdminNavbarLinks.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 { NavItem, Nav, NavDropdown, MenuItem } from "react-bootstrap";
20 |
21 | class AdminNavbarLinks extends Component {
22 | render() {
23 | const notification = (
24 |
25 |
26 |
27 |
5
28 |
Notification
29 |
30 | );
31 | return (
32 |
33 |
34 |
35 |
36 | Dashboard
37 |
38 |
44 | Notification 1
45 | Notification 2
46 | Notification 3
47 | Notification 4
48 | Another notifications
49 |
50 |
51 |
52 | Search
53 |
54 |
55 |
56 |
57 | Account
58 |
59 |
64 | Action
65 | Another action
66 | Something
67 | Another action
68 | Something
69 |
70 | Separated link
71 |
72 |
73 | Log out
74 |
75 |
76 |
77 | );
78 | }
79 | }
80 |
81 | export default AdminNavbarLinks;
82 |
--------------------------------------------------------------------------------
/src/components/PageLoader/PageLoader.jsx:
--------------------------------------------------------------------------------
1 | import React, { Component } from "react";
2 | import loaderImg from "assets/img/loader.gif";
3 | import { connect } from "react-redux";
4 |
5 | class PageLoader extends Component {
6 | state = {};
7 | render() {
8 | const { loading } = this.props;
9 |
10 | if (!loading) return null;
11 |
12 | return (
13 |
14 |
15 |
16 |
17 |
18 | );
19 | }
20 | }
21 |
22 | const mapStateToProps = state => ({ loading: state.application.loading });
23 |
24 | export default connect(mapStateToProps)(PageLoader);
25 |
--------------------------------------------------------------------------------
/src/components/Sidebar/Sidebar.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 { NavLink } from "react-router-dom";
20 |
21 | import AdminNavbarLinks from "../Navbars/AdminNavbarLinks.jsx";
22 |
23 | import logo from "assets/img/reactlogo.png";
24 |
25 | class Sidebar extends Component {
26 | constructor(props) {
27 | super(props);
28 | this.state = {
29 | width: window.innerWidth
30 | };
31 | }
32 | activeRoute(routeName) {
33 | return this.props.location.pathname.indexOf(routeName) > -1 ? "active" : "";
34 | }
35 | updateDimensions() {
36 | this.setState({ width: window.innerWidth });
37 | }
38 | componentDidMount() {
39 | this.updateDimensions();
40 | window.addEventListener("resize", this.updateDimensions.bind(this));
41 | }
42 | render() {
43 | const sidebarBackground = {
44 | backgroundImage: "url(" + this.props.image + ")"
45 | };
46 | return (
47 |
103 | );
104 | }
105 | }
106 |
107 | export default Sidebar;
108 |
--------------------------------------------------------------------------------
/src/components/StatsCard/StatsCard.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 { Row, Col } from "react-bootstrap";
20 |
21 | export class StatsCard extends Component {
22 | render() {
23 | return (
24 |
25 |
26 |
27 |
28 |
29 | {this.props.bigIcon}
30 |
31 |
32 |
33 |
34 |
{this.props.statsText}
35 | {this.props.statsValue}
36 |
37 |
38 |
39 |
40 |
41 |
42 | {this.props.statsIcon} {this.props.statsIconText}
43 |
44 |
45 |
46 |
47 | );
48 | }
49 | }
50 |
51 | export default StatsCard;
52 |
--------------------------------------------------------------------------------
/src/components/Tasks/Tasks.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 { Tooltip, OverlayTrigger } from "react-bootstrap";
20 | import Checkbox from "components/CustomCheckbox/CustomCheckbox.jsx";
21 | import Button from "components/CustomButton/CustomButton.jsx";
22 |
23 | export class Tasks extends Component {
24 | handleCheckbox = event => {
25 | const target = event.target;
26 | console.log(event.target);
27 | this.setState({
28 | [target.name]: target.checked
29 | });
30 | };
31 | render() {
32 | const edit = Edit Task ;
33 | const remove = Remove ;
34 | const tasks_title = [
35 | 'Sign contract for "What are conference organizers afraid of?"',
36 | "Lines From Great Russian Literature? Or E-mails From My Boss?",
37 | "Flooded: One year later, assessing what was lost and what was found when a ravaging rain swept through metro Detroi",
38 | "Create 4 Invisible User Experiences you Never Knew About",
39 | 'Read "Following makes Medium better"',
40 | "Unfollow 5 enemies from twitter"
41 | ];
42 | var tasks = [];
43 | var number;
44 | for (var i = 0; i < tasks_title.length; i++) {
45 | number = "checkbox" + i;
46 | tasks.push(
47 |
48 |
49 |
53 |
54 | {tasks_title[i]}
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
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 |
69 |
86 |
{this.props.description}
87 |
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 |
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 |
50 |
51 |
52 |
53 | Notifications Style
54 |
55 | This is a plain notification
56 |
57 |
58 |
59 | ✕
60 |
61 | This is a notification with close button.
62 |
63 |
64 |
65 | ✕
66 |
67 |
68 |
69 | This is a notification with close button and icon.
70 |
71 |
72 |
73 |
74 | ✕
75 |
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 |
89 | ✕
90 |
91 |
92 | Info - This is a regular notification made with
93 | bsStyle="info"
94 |
95 |
96 |
97 |
98 | ✕
99 |
100 |
101 | Success - This is a regular notification made
102 | with bsStyle="success"
103 |
104 |
105 |
106 |
107 | ✕
108 |
109 |
110 | Warning - This is a regular notification made
111 | with bsStyle="warning"
112 |
113 |
114 |
115 |
116 | ✕
117 |
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 | this.props.handleClick("tl")}
142 | >
143 | Top Left
144 |
145 |
146 |
147 | this.props.handleClick("tc")}
151 | >
152 | Top Center
153 |
154 |
155 |
156 | this.props.handleClick("tr")}
160 | >
161 | Top Right
162 |
163 |
164 |
165 |
166 |
167 | this.props.handleClick("bl")}
171 | >
172 | Bottom Left
173 |
174 |
175 |
176 | this.props.handleClick("bc")}
180 | >
181 | Bottom Center
182 |
183 |
184 |
185 | this.props.handleClick("br")}
189 | >
190 | Bottom Right
191 |
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 | Paragraph Lorem 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 |
97 | Current Version
98 |
99 |
100 |
101 |
108 | Upgrade to PRO
109 |
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 |
166 | Update Profile
167 |
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 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 | }
201 | />
202 |
203 |
204 |
205 |
206 | );
207 | }
208 | }
209 |
210 | const mapStateToProps = state =>({})
211 |
212 | export default connect(mapStateToProps)(UserProfile);
213 |
--------------------------------------------------------------------------------