├── .env
├── .gitignore
├── README.md
├── babel.config.js
├── changelog.md
├── config-overrides.js
├── database.sqlite
├── package.json
├── public
├── favicon.ico
├── index.html
├── logo192.png
├── logo512.png
├── manifest.json
└── robots.txt
├── screenshot.png
├── server
├── config.js
├── server.js
└── start.js
├── src
├── actions
│ ├── navigation.js
│ ├── posts.js
│ ├── runtime.js
│ └── user.js
├── components
│ ├── App.js
│ ├── Footer
│ │ ├── Footer.js
│ │ ├── Footer.module.scss
│ │ └── package.json
│ ├── Header
│ │ ├── Header.js
│ │ ├── Header.module.scss
│ │ └── package.json
│ ├── Icon
│ │ ├── Icon.js
│ │ ├── icons
│ │ │ ├── components.svg
│ │ │ ├── dashboard.svg
│ │ │ ├── index.js
│ │ │ ├── logo.svg
│ │ │ ├── mail.svg
│ │ │ ├── notification.svg
│ │ │ ├── notifications.svg
│ │ │ ├── settings.svg
│ │ │ ├── tables.svg
│ │ │ └── typography.svg
│ │ └── package.json
│ ├── Layout
│ │ ├── Layout.js
│ │ ├── Layout.module.scss
│ │ └── package.json
│ ├── Sidebar
│ │ ├── LinksGroup
│ │ │ ├── LinksGroup.js
│ │ │ └── LinksGroup.module.scss
│ │ ├── Sidebar.js
│ │ ├── Sidebar.module.scss
│ │ └── package.json
│ └── Widget
│ │ ├── Widget.js
│ │ ├── Widget.module.scss
│ │ └── package.json
├── config.js
├── constants
│ └── index.js
├── data
│ ├── models
│ │ ├── Post.js
│ │ ├── User.js
│ │ ├── UserClaim.js
│ │ ├── UserLogin.js
│ │ ├── UserProfile.js
│ │ └── index.js
│ ├── mutations
│ │ └── posts.js
│ ├── queries
│ │ ├── me.js
│ │ ├── news.js
│ │ └── posts.js
│ ├── schema.js
│ ├── sequelize.js
│ └── types
│ │ ├── NewsItemType.js
│ │ ├── PostType.js
│ │ └── UserType.js
├── fonts
│ └── glyphicons
│ │ ├── glyphicons-halflings-regular.eot
│ │ ├── glyphicons-halflings-regular.svg
│ │ ├── glyphicons-halflings-regular.ttf
│ │ ├── glyphicons-halflings-regular.woff
│ │ └── glyphicons-halflings-regular.woff2
├── images
│ ├── photo.jpg
│ └── tables
│ │ ├── 1.jpg
│ │ ├── 2.jpg
│ │ ├── 3.jpg
│ │ ├── 4.jpg
│ │ └── 5.jpg
├── index.js
├── pages
│ ├── about
│ │ └── About.js
│ ├── buttons
│ │ ├── Buttons.js
│ │ └── package.json
│ ├── charts
│ │ ├── Charts.js
│ │ ├── charts
│ │ │ ├── BarChart.js
│ │ │ ├── LineChart.js
│ │ │ ├── PercentAreaChart.js
│ │ │ └── PieChart.js
│ │ └── package.json
│ ├── dashboard
│ │ ├── Dashboard.js
│ │ ├── Dashboard.module.scss
│ │ ├── mock.js
│ │ └── package.json
│ ├── error
│ │ ├── ErrorPage.js
│ │ ├── ErrorPage.scss
│ │ └── package.json
│ ├── google
│ │ ├── Google.js
│ │ ├── Google.module.scss
│ │ └── package.json
│ ├── icons
│ │ ├── Icons.js
│ │ ├── Icons.module.scss
│ │ └── package.json
│ ├── login
│ │ ├── Login.js
│ │ ├── Login.module.scss
│ │ └── package.json
│ ├── notFound
│ │ ├── NotFound.js
│ │ ├── NotFound.module.scss
│ │ └── package.json
│ ├── notifications
│ │ ├── Notifications.js
│ │ ├── Notifications.module.scss
│ │ └── package.json
│ ├── posts
│ │ ├── Posts.js
│ │ ├── list
│ │ │ ├── PostList.js
│ │ │ ├── PostList.module.scss
│ │ │ └── mock.js
│ │ ├── new
│ │ │ ├── PostNew.js
│ │ │ └── PostNew.module.scss
│ │ └── package.json
│ ├── privacy
│ │ ├── Privacy.js
│ │ └── package.json
│ ├── profile
│ │ ├── Profile.js
│ │ ├── Profile.module.scss
│ │ └── package.json
│ ├── register
│ │ ├── Register.js
│ │ └── package.json
│ ├── tables
│ │ ├── Static.module.scss
│ │ ├── Tables.js
│ │ └── package.json
│ └── typography
│ │ ├── Typography.js
│ │ └── package.json
├── reducers
│ ├── auth.js
│ ├── index.js
│ ├── navigation.js
│ ├── posts.js
│ └── runtime.js
├── serviceWorker.js
├── static.json
└── styles
│ ├── _general.scss
│ ├── _mixins.scss
│ ├── _overrides.scss
│ ├── _utils.scss
│ ├── _variables.scss
│ ├── app.scss
│ └── theme.scss
├── table.png
└── yarn.lock
/.env:
--------------------------------------------------------------------------------
1 | REACT_APP_NODE_ENV=development
2 | REACT_APP_PORT=5000
3 | REACT_APP_BACKEND=false
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # production
12 | /build
13 |
14 | # misc
15 | .DS_Store
16 | .env.local
17 | .env.development.local
18 | .env.test.local
19 | .env.production.local
20 |
21 | npm-debug.log*
22 | yarn-debug.log*
23 | yarn-error.log*
24 |
25 | # Editors and IDEs
26 | .idea
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## React Dashboard — "[isomorphic](http://nerds.airbnb.com/isomorphic-javascript-future-web-apps/)" admin dashboard template
2 | built with [React](https://facebook.github.io/react/), [Bootstrap](http://getbootstrap.com/), [React Router](https://reacttraining.com/react-router/),
3 | [Redux](http://redux.js.org/) and [GraphQL](http://graphql.org/) based on
4 | [Create React App](https://github.com/facebook/create-react-app) and latest industry best practices.
5 |
6 | [View Demo](https://flatlogic.com/admin-dashboards/react-dashboard/demo) | [Download](https://github.com/flatlogic/react-dashboard.git) | [More templates](https://flatlogic.com/templates) | [Support forum](https://flatlogic.com/forum)
7 |
8 | [](https://flatlogic.com/admin-dashboards/react-dashboard/demo)
9 |
10 | This seed project is like a free version of a template you can find on [Themeforest](https://themeforest.net/category/site-templates/admin-templates) or [Wrapbootstrap](https://wrapbootstrap.com/themes/admin), with working backend integration, to get you started on your next [business software](https://flatlogic.com/) development.
11 |
12 |
13 | ## Features
14 | * React
15 | * Mobile friendly layout (responsive)
16 | * React Router
17 | * Bootstrap3
18 | * GraphQL
19 | * Nodejs backend inegration
20 | * Sass styles
21 | * Stylish, clean, responsive layout
22 | * Lots of utility css classes for rapid development (flatlogic css set)
23 | * Authentication
24 | * CRUD operations examples
25 |
26 | ## Quick Start
27 |
28 | #### 1. Get the latest version
29 |
30 | You can start by cloning the latest version of React Dashboard on your
31 | local machine by running:
32 |
33 | ```shell
34 | $ git clone -o react-dashboard -b master --single-branch \
35 | https://github.com/flatlogic/react-dashboard.git MyApp
36 | $ cd MyApp
37 | ```
38 |
39 | #### 2. Run `yarn install`
40 |
41 | This will install both run-time project dependencies and developer tools listed
42 | in [package.json](../package.json) file.
43 |
44 | #### 3. Run `yarn dev`
45 |
46 | This command will start the app with simultaneously with express server,
47 | set up your database, start local server XAMPP, opensever, or other tool
48 | to start database, connect to it in file
49 | ```shell
50 | src > data > sequelize.js.
51 | ```
52 | Also go to
53 | ```shell
54 | src > data > schema.js
55 | ```
56 | and enable mutation. This preparation
57 | will enable to realize CRUD operations locally
58 |
59 | ### 4. How to create db
60 |
61 | Create db. For instance name it "sequelize" and add posts table to it,
62 | your table should have same structure as you can see on the screenshot
63 |
64 | 
65 |
66 | > [http://localhost:3000/](http://localhost:3000/) — Node.js server
67 | > [http://localhost:3000/graphql](http://localhost:3000/graphql) — GraphQL server and IDE
68 |
69 | #### 5. Run `yarn build`
70 |
71 | Builds the app for production to the build folder.
72 | It correctly bundles React in production mode and optimizes the build for the best performance.
73 |
74 | The build is minified and the filenames include the hashes.
75 | Your app is ready to be deployed!
76 |
77 | Now you can open your web app in a browser, on mobile devices and start
78 | hacking. Whenever you modify any of the source files inside the `/src` folder,
79 | the module bundler ([Webpack](http://webpack.github.io/)) will recompile the
80 | app on the fly and refresh all the connected browsers.
81 |
82 | For more info please refer to [getting started](./docs/getting-started.md) guide to download and run the project (Node.js >= 6.5)
83 |
84 | ## Support
85 | For any additional information please go to our [**support forum**](https://flatlogic.com/forum) and raise your questions or feedback provide there. We highly appreciate your participation!
86 |
87 | ## How can I support developers?
88 | - Star our GitHub repo :star:
89 | - [Tweet about it](https://twitter.com/intent/tweet?text=Amazing%20dashboard%20built%20with%20NodeJS,%20React%20and%20Bootstrap!&url=https://github.com/flatlogic/react-dashboard&via=flatlogic).
90 | - Create pull requests, submit bugs, suggest new features or documentation updates :wrench:
91 | - Follow [@flatlogic on Twitter](https://twitter.com/flatlogic).
92 | - Subscribe to Flatlogic newsletter at [flatlogic.com](https://flatlogic.com/)
93 | - Like our page on [Facebook](https://www.facebook.com/flatlogic/) :thumbsup:
94 |
95 | ## Premium themes
96 | Looking for premium themes and templates? Check out more [admin dashboard templates at flatlogic.com](https://flatlogic.com/admin-dashboards).
97 |
98 | ## License
99 |
100 | [MIT](https://github.com/flatlogic/react-dashboard/blob/master/LICENSE.txt) and another [MIT](https://github.com/flatlogic/react-dashboard/blob/master/LICENSE-react-starter-kit.txt) from RSK.
101 |
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | "presets": [
3 | "react-app"
4 | ],
5 | "plugins": [
6 | "@babel/plugin-proposal-class-properties",
7 | "@babel/plugin-proposal-optional-chaining"
8 | ]
9 | };
--------------------------------------------------------------------------------
/changelog.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | ## [1.5.0] - 14/09/2023
4 |
5 | - Added react-scripts version 5 along with webpack version 5 support.
6 | - Added support for node.js version > 20
7 | - Updated React.js from 16 to 18 version
8 | - Removed old webpack configs.
9 | - Removed unnecessary dev dependencies.
10 | - Replaced deprecated glyphicons-halflings icon library with bootstrap-icons
11 |
12 | ## [1.4.2] - 22/12/2023
13 |
14 | - Updated dependencies
15 |
16 | ## [1.4.1]
17 |
18 | ### Updated
19 | - Added link to flatlogic on login page
20 |
21 | ## [1.4.0]
22 |
23 | ### Updated
24 | - Update libs, fixed text visibility
25 |
26 | ## [1.3.0]
27 |
28 | ### Updated
29 | - Update libs
30 |
31 | ## [1.2.0]
32 |
33 | ### Updated
34 | - Update libs
35 | - Merge PR
36 |
37 | ## [1.1.0]
38 |
39 | ### Updated
40 |
41 | Following libs have beed updated to the recent versions:
42 | - React - 16.7.1
43 | - React-router - 4.3.1
44 | - Reactstrap - 7.1.0
45 |
46 | ## [1.0.0]
47 |
48 | ### New Features
49 |
50 | - Shadow added to image
51 |
--------------------------------------------------------------------------------
/config-overrides.js:
--------------------------------------------------------------------------------
1 | const webpack = require("webpack")
2 | const path = require("path")
3 | module.exports = function override(config) {
4 | const fallback = config.resolve.fallback || {}
5 | Object.assign(fallback, {
6 | crypto: require.resolve("crypto-browserify"),
7 | stream: require.resolve("stream-browserify"),
8 | assert: require.resolve("assert"),
9 | http: require.resolve("stream-http"),
10 | https: require.resolve("https-browserify"),
11 | os: require.resolve("os-browserify"),
12 | url: require.resolve("url"),
13 | vm: require.resolve("vm-browserify"),
14 | })
15 | config.resolve.fallback = fallback
16 | config.plugins = (config.plugins || []).concat([
17 | new webpack.ProvidePlugin({
18 | process: "process/browser",
19 | Buffer: ["buffer", "Buffer"],
20 | }),
21 | ])
22 | const modules = config.resolve.modules
23 | config.resolve.modules = [...modules, path.resolve(__dirname, "src")]
24 | config.module.rules.push({
25 | test: /\.m?js/,
26 | resolve: {
27 | fullySpecified: false,
28 | },
29 | })
30 | return config
31 | }
32 |
--------------------------------------------------------------------------------
/database.sqlite:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/flatlogic/react-dashboard/0a45547c50246dc8f3da058196f2d87f10b421c5/database.sqlite
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-dashboard-new",
3 | "version": "1.5.0",
4 | "private": true,
5 | "dependencies": {
6 | "@typescript-eslint/eslint-plugin": "^2.34.0",
7 | "@typescript-eslint/parser": "^2.34.0",
8 | "assert": "^2.1.0",
9 | "awesome-bootstrap-checkbox": "^1.0.1",
10 | "axios": "^0.19.0",
11 | "babel-eslint": "10.1.0",
12 | "babel-jest": "^24.9.0",
13 | "babel-loader": "8.0.6",
14 | "babel-plugin-named-asset-import": "^0.3.8",
15 | "babel-preset-react-app": "^9.0.2",
16 | "bootstrap": "^4.5.2",
17 | "bootstrap-icons": "^1.11.3",
18 | "buffer": "^6.0.3",
19 | "camelcase": "^5.2.0",
20 | "classnames": "^2.3.2",
21 | "cookie-parser": "^1.4.6",
22 | "cross-env": "^6.0.3",
23 | "crypto-browserify": "^3.12.0",
24 | "css-loader": "2.1.1",
25 | "dotenv": "^8.2.0",
26 | "dotenv-expand": "5.1.0",
27 | "express-graphql": "^0.9.0",
28 | "express-jwt": "^5.3.1",
29 | "file-loader": "3.0.1",
30 | "font-awesome": "^4.7.0",
31 | "fs-extra": "7.0.1",
32 | "graphql": "^14.7.0",
33 | "graphql-relay": "^0.6.0",
34 | "graphql-sequelize": "^9.5.1",
35 | "helmet": "^3.23.3",
36 | "https-browserify": "^1.0.0",
37 | "identity-obj-proxy": "3.0.0",
38 | "is-wsl": "^1.1.0",
39 | "jest": "24.9.0",
40 | "jest-environment-jsdom-fourteen": "0.1.0",
41 | "jest-resolve": "24.9.0",
42 | "jest-watch-typeahead": "0.4.0",
43 | "jsonwebtoken": "^8.5.1",
44 | "mini-css-extract-plugin": "0.8.0",
45 | "mysql2": "^2.2.5",
46 | "normalize.css": "^8.0.1",
47 | "npm-run-all": "^4.1.5",
48 | "os-browserify": "^0.3.0",
49 | "postcss-flexbugs-fixes": "4.1.0",
50 | "postcss-loader": "3.0.0",
51 | "postcss-normalize": "7.0.1",
52 | "postcss-preset-env": "6.7.0",
53 | "postcss-safe-parser": "4.0.1",
54 | "process": "^0.11.10",
55 | "prop-types": "^15.8.1",
56 | "react": "^18.0.0",
57 | "react-app-polyfill": "^1.0.4",
58 | "react-app-rewired": "^2.2.1",
59 | "react-bootstrap-icons": "^1.11.4",
60 | "react-dev-utils": "^9.1.0",
61 | "react-dom": "^18.0.0",
62 | "react-google-maps": "^9.4.5",
63 | "react-redux": "^7.2.1",
64 | "react-router": "^5.2.0",
65 | "react-router-dom": "^5.2.0",
66 | "react-scripts": "^5.0.1",
67 | "react-sparklines": "^1.7.0",
68 | "react-toastify": "^5.4.1",
69 | "reactstrap": "^8.6.0",
70 | "recharts": "^1.8.5",
71 | "redux": "^4.0.4",
72 | "redux-thunk": "^2.3.0",
73 | "resolve": "1.22.8",
74 | "resolve-url-loader": "2",
75 | "sass": "^1.77.8",
76 | "sass-loader": "7.2.0",
77 | "semver": "6.3.0",
78 | "sequelize": "^5.22.3",
79 | "sqlite3": "^4.1.0",
80 | "stream-browserify": "^3.0.0",
81 | "stream-http": "^3.2.0",
82 | "style-loader": "1.0.0",
83 | "ts-pnp": "1.2.0",
84 | "url": "^0.11.4",
85 | "url-loader": "2.1.0",
86 | "uuid": "^3.3.3",
87 | "vm-browserify": "^1.1.2"
88 | },
89 | "scripts": {
90 | "start": "react-app-rewired --openssl-legacy-provider start",
91 | "build": "cross-env PUBLIC_URL='/react-dashboard' react-app-rewired --openssl-legacy-provider build",
92 | "test": "react-app-rewired --openssl-legacy-provider test",
93 | "server": "cross-env PORT=5000 node --openssl-legacy-provider server/start.js",
94 | "dev": "cross-env NODE_ENV=development run-p server start"
95 | },
96 | "proxy": "http://localhost:5000",
97 | "eslintConfig": {
98 | "extends": "react-app"
99 | },
100 | "browserslist": {
101 | "production": [
102 | ">0.2%",
103 | "not dead",
104 | "not op_mini all"
105 | ],
106 | "development": [
107 | "last 1 chrome version",
108 | "last 1 firefox version",
109 | "last 1 safari version"
110 | ]
111 | },
112 | "engines": {
113 | "node": "^20.15"
114 | },
115 | "devDependencies": {
116 | "@babel/cli": "^7.23.4",
117 | "@babel/node": "^7.22.19",
118 | "@babel/plugin-proposal-class-properties": "^7.18.6",
119 | "@babel/plugin-proposal-optional-chaining": "^7.21.0",
120 | "@babel/polyfill": "^7.12.1",
121 | "@babel/preset-env": "^7.11.5"
122 | }
123 | }
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/flatlogic/react-dashboard/0a45547c50246dc8f3da058196f2d87f10b421c5/public/favicon.ico
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
113 | Use any of the available button classes to quickly create a styled button. 114 | Semantically distinguishable beauty. 115 |
116 |117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 |
126 |138 | Fancy larger or smaller buttons? 139 | Four separate sizes available for all use cases: 140 | from tiny 10px button to large one. 141 |
142 |143 | 144 | 145 | 146 | 147 |
148 |
159 | In need of a button, but not the hefty background colors they bring?
160 | Use outline
property to remove all
161 | background images and colors on any button.
162 |
164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 |
173 |
184 | Use any of the available button properties to quickly create a styled button.
185 | Semantically distinguishable beauty. Use .btn-rounded
or .btn-rounded-f
.
186 |
188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 |
197 |
209 | Create block level buttons - those that span the full width
210 | of a parent— by adding block
211 | to <Button>
component.
212 | Great for menu & social buttons.
213 |
233 | Make buttons look unclickable by fading them back 50%.
234 | Add the disabled
to <Button>
component.
235 |
237 | 238 | 239 |
240 |241 | 242 | 243 |
244 |256 | Group a series of buttons together on a single 257 | line with the button group. 258 | Add on optional JavaScript radio and checkbox 259 | style behavior with Bootstrap buttons plugin. 260 |
261 |297 | Add dropdown menus to nearly anything with 298 | this simple plugin, including the buttons, 299 | navbar, tabs, and pills. 300 | Both solid & segmented dropdown options available. 301 |
302 | 303 |
376 | Do more with buttons. Control button states
377 | or create groups of buttons for more components like
378 | toolbars.
379 | Use ButtonGroup
to a group
380 | of checkboxes for checkbox style toggling on
381 | btn-group.
382 |
422 | Do more with buttons. Control button states
423 | or create groups of buttons for more components like toolbars.
424 | Use ButtonGroup
to a group of radio
425 | inputs for radio style toggling on btn-group.
426 |
465 | Fontawesome and Glyph- icons may be used in buttons, 466 | button groups for a toolbar, navigation, or prepended form inputs. 467 | Let your buttons shine! 468 |
469 |{`${label} (Total: ${total})`}
37 |ID | 95 |Username | 96 |Status | 98 ||
---|---|---|---|
1 | 103 |Alice | 104 |alice@email.com | 105 |106 | active 107 | | 108 |
2 | 111 |Bob | 112 |bob@email.com | 113 |114 | delayed 115 | | 116 |
3 | 119 |Duck | 120 |duck@email.com | 121 |122 | active 123 | | 124 |
4 | 127 |Shepherd | 128 |shepherd@email.com | 129 |130 | removed 131 | | 132 |
192 | posts, that have been published recently 193 |
194 | 195 | } 196 | > 197 |{this.formatDate(new Date(post.updatedAt).toLocaleString())} | 203 |204 | {post.title} 205 | | 206 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{post.updatedAt} | 213 |214 | {post.title} 215 | | 216 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Loading... | 222 |
291 | For more components please checkout{' '} 292 | 297 | reactstrap documentation 298 | 299 |
300 | 301 |Sorry, a critical error occurred on this page.
19 |React Dashboard
88 |
91 | User your username and password to sign in
92 | Don't have an account? Sign up now!
93 |
Sorry, the page you were trying to view does not exist.
20 |There are few position options available for notifications. You can click any of 86 | them 87 | to change notifications position:
88 |Different types of notifications for lost of use cases. Custom classes are also 125 | supported.
126 | 128 | 130 | 134 | 135 | 136 |Just few lines of code to instantiate a notifications object. Does not require 139 | passing any options:
140 |{'toast("Thanks for checking out Messenger!");'}
141 | More complex example:
142 |
143 | {'\ntoast.success( \'There was an explosion while processing your request.\', { \n position: location,\n autoClose: 5000, \n hideProgressBar: false, \n closeOnClick: true,\n pauseOnHover: true, \n draggable: true \n});\n\n'}
144 |
145 |
146 |
147 |
148 |
149 | Title | 71 |Content | 72 |Last Updated | 73 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
{post.title} | 80 |{post.content.slice(0, 80)}... | 81 |{this.formatDate(new Date(post.updatedAt).toLocaleString())} | 82 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{post.title} | 89 |{post.content.slice(0, 80)}... | 90 |{post.updatedAt} | 91 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Loading... | 97 |
Basic headings for everyday use
26 |Enhanced with additional text
48 |Make a paragraph stand out by adding .lead
.
Sing App is admin dashboard template built with Bootstrap
57 |Styling for common texts
67 |You can use the mark tag to highlight text.
69 |This line of text is meant to be treated as deleted text.
This line of text is meant to be treated as an addition to the document.
71 |This line of text is meant to be treated as fine print.
72 |This line rendered as italicized text.
73 |This line rendered as bold text.
74 |Various font weights supported
77 |Thin (default) font weight
79 |Normal font weight
80 |Semi bold to empasize important thing
81 |Bold font as a high priority
82 |Bootstrap state colors can be applied to texts too
85 |Some danger text
87 |Some warning text
88 |Some succes text
89 |Some primary text
90 |Some info text
91 |Citing someone is really easy
94 |96 |103 |Don't get set into one form, adapt it and build your own, and let 97 | it grow, be like water. Empty your mind, be formless, shapeless — like water. 98 | Now you put water in a cup, it becomes the cup; You put water into a bottle it 99 | becomes the bottle; You put it in a teapot it becomes the teapot. Now water can 100 | flow or it can crash. Be water, my friend.
101 | 102 |