From add51da29547f84cb06361d67a36fc607975799e Mon Sep 17 00:00:00 2001 From: alloky Date: Sun, 27 Jan 2019 18:38:44 +0300 Subject: [PATCH] very raw proto --- .gitignore | 25 + config-overrides.js | 18 + package.json | 58 + public/index.html | 21 + src/actions/index.js | 22 + src/actions/index.spec.js | 25 + src/assets/images/dashboard/trending-down.png | Bin 0 -> 1563 bytes src/assets/images/dashboard/trending-up.png | Bin 0 -> 1529 bytes src/assets/images/logo-white.png | Bin 0 -> 1750 bytes src/assets/images/logo.png | Bin 0 -> 1765 bytes src/assets/images/marker.png | Bin 0 -> 17259 bytes src/assets/images/pentagon.png | Bin 0 -> 2903 bytes src/assets/images/pentagon_1.png | Bin 0 -> 5477 bytes src/assets/images/placeholder.jpg | Bin 0 -> 1747 bytes .../vendors/flag/sprite-flags-24x24.css | 1032 ++++++++ .../vendors/flag/sprite-flags-24x24.png | Bin 0 -> 64332 bytes src/assets/vendors/gaxon/fonts/gaxon-ant.eot | Bin 0 -> 43752 bytes src/assets/vendors/gaxon/fonts/gaxon-ant.svg | 199 ++ src/assets/vendors/gaxon/fonts/gaxon-ant.ttf | Bin 0 -> 43550 bytes src/assets/vendors/gaxon/fonts/gaxon-ant.woff | Bin 0 -> 23760 bytes src/assets/vendors/gaxon/icons-reference.html | 1552 ++++++++++++ src/assets/vendors/gaxon/styles.css | 607 +++++ .../react-notification/fonts/notification.eot | Bin 0 -> 2092 bytes .../react-notification/fonts/notification.svg | 20 + .../react-notification/fonts/notification.ttf | Bin 0 -> 1908 bytes .../fonts/notification.woff | Bin 0 -> 1984 bytes .../react-notifications.css | 122 + src/assets/vendors/style.js | 4 + src/components/App.js | 12 + src/components/ClassTreeView.js | 127 + src/components/PropertyEditor.js | 58 + src/index.js | 21 + src/reducers/index.js | 8 + src/reducers/todos.js | 23 + src/reducers/todos.spec.js | 111 + src/reducers/visibilityFilter.js | 12 + src/styles/apps/apps.less | 434 ++++ src/styles/apps/calendar.less | 108 + src/styles/apps/chat.less | 396 +++ src/styles/apps/contact.less | 100 + src/styles/apps/index.less | 5 + src/styles/apps/mail.less | 138 + src/styles/base/base.less | 1188 +++++++++ src/styles/base/gx-margin-padding.less | 1575 ++++++++++++ src/styles/base/index.less | 4 + src/styles/base/row-col.less | 41 + src/styles/base/typography.less | 205 ++ src/styles/dark-theme.less | 2253 +++++++++++++++++ src/styles/flexile.less | 2 + src/styles/global/colors-class.less | 1120 ++++++++ src/styles/global/custom-animation.less | 216 ++ src/styles/global/index.less | 23 + src/styles/global/mixin.less | 160 ++ src/styles/global/variables.less | 207 ++ src/styles/layout/ant-layout.less | 41 + src/styles/layout/customizer.less | 77 + src/styles/layout/drawer.less | 92 + src/styles/layout/footer.less | 4 + src/styles/layout/header.less | 177 ++ src/styles/layout/index.less | 7 + src/styles/layout/navbar.less | 497 ++++ src/styles/layout/sidebar.less | 90 + src/styles/pages/callout.less | 176 ++ src/styles/pages/dashboard.less | 379 +++ src/styles/pages/e-commerce.less | 134 + src/styles/pages/editor.less | 13 + src/styles/pages/error.less | 45 + src/styles/pages/index.less | 8 + src/styles/pages/login.less | 214 ++ src/styles/pages/pricing-tables.less | 166 ++ src/styles/pages/testimonials.less | 95 + src/styles/styles.less | 76 + src/styles/ui/avatar.less | 33 + src/styles/ui/badge.less | 55 + src/styles/ui/button.less | 281 ++ src/styles/ui/card.less | 313 +++ src/styles/ui/cascader.less | 4 + src/styles/ui/form.less | 121 + src/styles/ui/icon.less | 39 + src/styles/ui/index.less | 18 + src/styles/ui/input.less | 185 ++ src/styles/ui/list.less | 178 ++ src/styles/ui/loader.less | 14 + src/styles/ui/pagination.less | 28 + src/styles/ui/pickers.less | 16 + src/styles/ui/progress.less | 9 + src/styles/ui/slider.less | 85 + src/styles/ui/steps.less | 16 + src/styles/ui/tables.less | 161 ++ src/styles/ui/tabs.less | 20 + src/styles/ui/timeline.less | 450 ++++ src/styles/variables.less | 21 + 92 files changed, 16590 insertions(+) create mode 100644 .gitignore create mode 100644 config-overrides.js create mode 100644 package.json create mode 100644 public/index.html create mode 100644 src/actions/index.js create mode 100644 src/actions/index.spec.js create mode 100644 src/assets/images/dashboard/trending-down.png create mode 100644 src/assets/images/dashboard/trending-up.png create mode 100644 src/assets/images/logo-white.png create mode 100644 src/assets/images/logo.png create mode 100644 src/assets/images/marker.png create mode 100644 src/assets/images/pentagon.png create mode 100644 src/assets/images/pentagon_1.png create mode 100644 src/assets/images/placeholder.jpg create mode 100644 src/assets/vendors/flag/sprite-flags-24x24.css create mode 100644 src/assets/vendors/flag/sprite-flags-24x24.png create mode 100644 src/assets/vendors/gaxon/fonts/gaxon-ant.eot create mode 100644 src/assets/vendors/gaxon/fonts/gaxon-ant.svg create mode 100644 src/assets/vendors/gaxon/fonts/gaxon-ant.ttf create mode 100644 src/assets/vendors/gaxon/fonts/gaxon-ant.woff create mode 100644 src/assets/vendors/gaxon/icons-reference.html create mode 100644 src/assets/vendors/gaxon/styles.css create mode 100644 src/assets/vendors/react-notification/fonts/notification.eot create mode 100644 src/assets/vendors/react-notification/fonts/notification.svg create mode 100644 src/assets/vendors/react-notification/fonts/notification.ttf create mode 100644 src/assets/vendors/react-notification/fonts/notification.woff create mode 100644 src/assets/vendors/react-notification/react-notifications.css create mode 100644 src/assets/vendors/style.js create mode 100644 src/components/App.js create mode 100644 src/components/ClassTreeView.js create mode 100644 src/components/PropertyEditor.js create mode 100644 src/index.js create mode 100644 src/reducers/index.js create mode 100644 src/reducers/todos.js create mode 100644 src/reducers/todos.spec.js create mode 100644 src/reducers/visibilityFilter.js create mode 100644 src/styles/apps/apps.less create mode 100644 src/styles/apps/calendar.less create mode 100644 src/styles/apps/chat.less create mode 100644 src/styles/apps/contact.less create mode 100644 src/styles/apps/index.less create mode 100644 src/styles/apps/mail.less create mode 100644 src/styles/base/base.less create mode 100644 src/styles/base/gx-margin-padding.less create mode 100644 src/styles/base/index.less create mode 100644 src/styles/base/row-col.less create mode 100644 src/styles/base/typography.less create mode 100644 src/styles/dark-theme.less create mode 100644 src/styles/flexile.less create mode 100644 src/styles/global/colors-class.less create mode 100644 src/styles/global/custom-animation.less create mode 100644 src/styles/global/index.less create mode 100644 src/styles/global/mixin.less create mode 100644 src/styles/global/variables.less create mode 100644 src/styles/layout/ant-layout.less create mode 100644 src/styles/layout/customizer.less create mode 100644 src/styles/layout/drawer.less create mode 100644 src/styles/layout/footer.less create mode 100644 src/styles/layout/header.less create mode 100644 src/styles/layout/index.less create mode 100644 src/styles/layout/navbar.less create mode 100644 src/styles/layout/sidebar.less create mode 100644 src/styles/pages/callout.less create mode 100644 src/styles/pages/dashboard.less create mode 100644 src/styles/pages/e-commerce.less create mode 100644 src/styles/pages/editor.less create mode 100644 src/styles/pages/error.less create mode 100644 src/styles/pages/index.less create mode 100644 src/styles/pages/login.less create mode 100644 src/styles/pages/pricing-tables.less create mode 100644 src/styles/pages/testimonials.less create mode 100644 src/styles/styles.less create mode 100644 src/styles/ui/avatar.less create mode 100644 src/styles/ui/badge.less create mode 100644 src/styles/ui/button.less create mode 100644 src/styles/ui/card.less create mode 100644 src/styles/ui/cascader.less create mode 100644 src/styles/ui/form.less create mode 100644 src/styles/ui/icon.less create mode 100644 src/styles/ui/index.less create mode 100644 src/styles/ui/input.less create mode 100644 src/styles/ui/list.less create mode 100644 src/styles/ui/loader.less create mode 100644 src/styles/ui/pagination.less create mode 100644 src/styles/ui/pickers.less create mode 100644 src/styles/ui/progress.less create mode 100644 src/styles/ui/slider.less create mode 100644 src/styles/ui/steps.less create mode 100644 src/styles/ui/tables.less create mode 100644 src/styles/ui/tabs.less create mode 100644 src/styles/ui/timeline.less create mode 100644 src/styles/variables.less diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..2f31c7bcb --- /dev/null +++ b/.gitignore @@ -0,0 +1,25 @@ +# See https://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +/node_modules + +# development env files +/.idea +yarn.lock + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/config-overrides.js b/config-overrides.js new file mode 100644 index 000000000..e95637fa4 --- /dev/null +++ b/config-overrides.js @@ -0,0 +1,18 @@ +const path = require('path'); +const rewireLess = require('react-app-rewire-less'); +const rewireReactHotLoader = require('react-app-rewire-hot-loader'); + + +module.exports = function override(config, env) { + config.resolve.modules = [ + path.join(__dirname, 'src') + ].concat(config.resolve.modules); + + config = rewireReactHotLoader(config, env); + + config = rewireLess.withLoaderOptions({ + modifyVars: {}, + })(config, env); + + return config; +}; diff --git a/package.json b/package.json new file mode 100644 index 000000000..899cc4743 --- /dev/null +++ b/package.json @@ -0,0 +1,58 @@ +{ + "name": "flexile", + "version": "0.0.0", + "private": true, + "dependencies": { + "antd": "^3.7.3", + "antd-theme-webpack-plugin": "^1.1.6", + "axios": "^0.18.0", + "draftjs-to-html": "^0.8.4", + "firebase": "^5.2.0", + "less": "2.7.3", + "less-loader": "^4.1.0", + "less-vars-to-js": "^1.2.1", + "moment": "^2.22.2", + "nprogress": "^0.2.0", + "react": "^16.4.1", + "react-app-rewire-hot-loader": "^1.0.1", + "react-big-calendar": "^0.19.2", + "react-bootstrap-sweetalert": "^4.4.1", + "react-ckeditor-component": "^1.0.7", + "react-color": "^2.14.1", + "react-custom-scrollbars": "^4.2.1", + "react-dnd": "^5.0.0", + "react-dnd-html5-backend": "^5.0.1", + "react-dom": "^16.4.1", + "react-draft-wysiwyg": "^1.12.13", + "react-google-maps": "^9.4.5", + "react-hot-loader": "^4.3.3", + "react-intl": "^2.4.0", + "react-notifications": "^1.4.3", + "react-placeholder": "^3.0.1", + "react-redux": "^5.0.7", + "react-router-dom": "^4.3.1", + "react-router-redux": "^5.0.0-alpha.9", + "react-scripts": "1.1.4", + "react-simple-maps": "^0.12.1", + "react-slick": "^0.23.1", + "react-sortable-hoc": "^0.8.3", + "react-star-rating-component": "^1.4.1", + "recharts": "^1.0.1", + "redux": "^4.0.0", + "redux-saga": "^0.16.0", + "slick-carousel": "^1.8.1", + "victory": "^0.27.2" + }, + "scripts": { + "start": "react-app-rewired start", + "build": "react-app-rewired build", + "test": "react-app-rewired --env=jsdom" + }, + "devDependencies": { + "add": "^2.0.6", + "babel-plugin-import": "^1.8.0", + "react-app-rewire-less": "^2.1.2", + "react-app-rewired": "^1.5.2", + "yarn": "^1.7.0" + } +} diff --git a/public/index.html b/public/index.html new file mode 100644 index 000000000..e8ee41cd2 --- /dev/null +++ b/public/index.html @@ -0,0 +1,21 @@ + + + + + + Redux Todos Example + + +
+ + + \ No newline at end of file diff --git a/src/actions/index.js b/src/actions/index.js new file mode 100644 index 000000000..d10bb7a9e --- /dev/null +++ b/src/actions/index.js @@ -0,0 +1,22 @@ +let nextTodoId = 0 +export const addTodo = text => ({ + type: 'ADD_TODO', + id: nextTodoId++, + text +}) + +export const setVisibilityFilter = filter => ({ + type: 'SET_VISIBILITY_FILTER', + filter +}) + +export const toggleTodo = id => ({ + type: 'TOGGLE_TODO', + id +}) + +export const VisibilityFilters = { + SHOW_ALL: 'SHOW_ALL', + SHOW_COMPLETED: 'SHOW_COMPLETED', + SHOW_ACTIVE: 'SHOW_ACTIVE' +} diff --git a/src/actions/index.spec.js b/src/actions/index.spec.js new file mode 100644 index 000000000..37596590e --- /dev/null +++ b/src/actions/index.spec.js @@ -0,0 +1,25 @@ +import * as actions from './index' + +describe('todo actions', () => { + it('addTodo should create ADD_TODO action', () => { + expect(actions.addTodo('Use Redux')).toEqual({ + type: 'ADD_TODO', + id: 0, + text: 'Use Redux' + }) + }) + + it('setVisibilityFilter should create SET_VISIBILITY_FILTER action', () => { + expect(actions.setVisibilityFilter('active')).toEqual({ + type: 'SET_VISIBILITY_FILTER', + filter: 'active' + }) + }) + + it('toggleTodo should create TOGGLE_TODO action', () => { + expect(actions.toggleTodo(1)).toEqual({ + type: 'TOGGLE_TODO', + id: 1 + }) + }) +}) diff --git a/src/assets/images/dashboard/trending-down.png b/src/assets/images/dashboard/trending-down.png new file mode 100644 index 0000000000000000000000000000000000000000..3f92b907d93c2f735c8de01f048479eb611812ad GIT binary patch literal 1563 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 LQNoi!srml^@OYyo literal 0 HcmV?d00001 diff --git a/src/assets/images/logo.png b/src/assets/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f0d5e39d8ab934c0b05ea6e00bef380af17a426a GIT binary patch literal 1765 zcmaJ?c~BE~7+tDRMJOO5a>*LYO)dfniA1h|21&#~kwcM?EF@yGVRwaqb_P&eK*S?|t9*``*rG2JyG) z>zeBV0HDv^&Jp0_F8r}xrGvjqpKNl(2Q$ns3=4*1u_Pe^0p4Ob1_HSTyFC{8M86UJ`T5J0JzP1xPDwiok150)rCyKZ#t3c%5tN#To~Z{i-1Q% z#IY;^$NzmSe8nb6FigQBlarE?NJ%sjjKqH;dgi^445lD!^NC*rcSUklb35>z01Xh5)!F14mw^S~M zlTe2RJdelX%27-x7eQPOn}92jq*5`b%3U48uBXbg%E$CpX- z_h004V9`MtB*zxH;tyQrvRsW7WC}bo2STKYkk}uAW#B@|Ea~#O(3jPF&lNA93u9R> z8Bd0+Y3#omy|{(DM>AcrExuSXJ|xH8j^MT)vPdh#zm{+=$2&x+9tl_Fba)x=-J-*J z_Dvb*dU{c>wfjCVK~Ub|S{py}q7sXub=T+8r*DJj&z*3PNEF^DBMm=7S-T9&Dd~ zD#{PutuRUJkE|8+TPw|`8q$iRTBhIWyy}OX?_cvXGdRw7F+XwbQ*$)gwJ;i3TgYnzPm=Kqo%%ZPHycw-C5WAp7>)iyX;&tiym@Us zzJ~1bINKn*@6UF2LiObJN0~?HkIVHZbXy8jU!qzLoRf_vT95cK2p1SHP^VUqw7Q9w z#wK7~XM|bW;IkgrZRZ2`gqAqjZ0VS)Y`FYtw)kSrt)H%vTY~0hcZem#(GJ8LJ@Z+F zhm2rXlW4TQkCIz^BpVK#yS-L@p^}lQnegfAAbq97)|sE5=SLWGg!_EWO+j7vpXDAfQ;`Nm|Pbc)!5278d9vy&wm>b zHlx<1RNtkxUr5g$*dLsVq#avn;i%)5^J?s7xAF_s-oiVHweIDRYN`U&xmJ2pK$%xK!L*^UU8l@hWtS0ouCBy3z$mnJ+m(czuHvDN z{CnBWrNAe)zrWP3>8Q$V*!-~b>GApSNZ~!p?v(6rX~3F8(^mF(0{WfBy_XsM)sdp< zV$p#6L~-Lrul|8bMvpvd&=F`_otmN>x-z#uCf&P2Y+Jx~J?~WMIQaI#n}jb3CGEq> z1|xalGhYWfN4%~iOQ#Cc%Bu!fWT^KWI%$>f+rjkA(6f9ulq|TLKX2dayJ>GF`Qwb7 hrUcutV#6Bk4ZueAsY_)Q+d<8bhwI1ZRQN=v{|!>)y66A^ literal 0 HcmV?d00001 diff --git a/src/assets/images/marker.png b/src/assets/images/marker.png new file mode 100644 index 0000000000000000000000000000000000000000..36a188f5be56520caa0466f434372f43e4d8b3ff GIT binary patch literal 17259 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 W@>72s|7hh`*W29>U*Yyc>VE<5#Osy- literal 0 HcmV?d00001 diff --git a/src/assets/images/pentagon_1.png b/src/assets/images/pentagon_1.png new file mode 100644 index 0000000000000000000000000000000000000000..30ec14c253deb6884bae5b7760bdf9fb02d62aa7 GIT binary patch literal 5477 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/placeholder.jpg b/src/assets/images/placeholder.jpg new file mode 100644 index 0000000000000000000000000000000000000000..20c26ef1d26af2b19d9f8150fd0990a701f531dc GIT binary patch literal 1747 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 HLj(U8qy>92 literal 0 HcmV?d00001 diff --git a/src/assets/vendors/gaxon/fonts/gaxon-ant.eot b/src/assets/vendors/gaxon/fonts/gaxon-ant.eot new file mode 100644 index 0000000000000000000000000000000000000000..42add27f5768cad8c4d3c67ff7aea516ae861dd4 GIT binary patch literal 43752 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 + + +Generated by Fontastic.me + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/vendors/gaxon/fonts/gaxon-ant.ttf b/src/assets/vendors/gaxon/fonts/gaxon-ant.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1ce55319127a15b7e836a05f59ab5f2abfa8a2ba GIT binary patch literal 43550 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 + + + + + + Font Reference - G-axon font + + + + + +
+

G-axon font

+

This font was created withFontastic

+

CSS mapping

+
    +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • + + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • + + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • + + +
  • +
  • + + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
+

Character mapping

+
    +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
+
+ + + diff --git a/src/assets/vendors/gaxon/styles.css b/src/assets/vendors/gaxon/styles.css new file mode 100644 index 000000000..1299d0064 --- /dev/null +++ b/src/assets/vendors/gaxon/styles.css @@ -0,0 +1,607 @@ +@charset "UTF-8"; + +@font-face { + font-family: "gaxon-ant"; + src:url("fonts/gaxon-ant.eot"); + src:url("fonts/gaxon-ant.eot?#iefix") format("embedded-opentype"), + url("fonts/gaxon-ant.woff") format("woff"), + url("fonts/gaxon-ant.ttf") format("truetype"), + url("fonts/gaxon-ant.svg#gaxon-ant") format("svg"); + font-weight: normal; + font-style: normal; + +} + +[data-icon]:before { + font-family: "gaxon-ant" !important; + content: attr(data-icon); + font-style: normal !important; + font-weight: normal !important; + font-variant: normal !important; + text-transform: none !important; + speak: none; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +[class^="icon-"]:before, +[class*=" icon-"]:before { + font-family: "gaxon-ant" !important; + font-style: normal !important; + font-weight: normal !important; + font-variant: normal !important; + text-transform: none !important; + speak: none; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-error-500:before { + content: "\62"; +} +.icon-add:before { + content: "\63"; +} +.icon-affix:before { + content: "\64"; +} +.icon-alert:before { + content: "\65"; +} +.icon-alert-new:before { + content: "\66"; +} +.icon-all-contacts:before { + content: "\67"; +} +.icon-anchor:before { + content: "\68"; +} +.icon-apps:before { + content: "\69"; +} +.icon-area-chart:before { + content: "\6a"; +} +.icon-chart-area:before { + content: "\6b"; +} +.icon-arrow-left:before { + content: "\6c"; +} +.icon-arrow-right:before { + content: "\6d"; +} +.icon-attachment:before { + content: "\6e"; +} +.icon-auth-screen:before { + content: "\6f"; +} +.icon-autocomplete:before { + content: "\70"; +} +.icon-avatar:before { + content: "\71"; +} +.icon-backtop:before { + content: "\72"; +} +.icon-badge:before { + content: "\73"; +} +.icon-chart-bar:before { + content: "\74"; +} +.icon-calendar-basic:before { + content: "\75"; +} +.icon-birthday:before { + content: "\76"; +} +.icon-breadcrumb:before { + content: "\77"; +} +.icon-button:before { + content: "\78"; +} +.icon-calendar:before { + content: "\79"; +} +.icon-callout:before { + content: "\7a"; +} +.icon-card:before { + content: "\41"; +} +.icon-cards-list-view:before { + content: "\42"; +} +.icon-carousel:before { + content: "\43"; +} +.icon-cascader:before { + content: "\44"; +} +.icon-charvlet-down:before { + content: "\45"; +} +.icon-charvlet-left:before { + content: "\46"; +} +.icon-charvlet-right:before { + content: "\47"; +} +.icon-charvlet-up:before { + content: "\48"; +} +.icon-chat:before { + content: "\49"; +} +.icon-chat-bubble:before { + content: "\4a"; +} +.icon-check:before { + content: "\4b"; +} +.icon-check-circle-o:before { + content: "\4c"; +} +.icon-check-cricle:before { + content: "\4d"; +} +.icon-check-square:before { + content: "\4e"; +} +.icon-check-square-o:before { + content: "\4f"; +} +.icon-circle:before { + content: "\50"; +} +.icon-circle-o:before { + content: "\51"; +} +.icon-ckeditor:before { + content: "\52"; +} +.icon-collapse:before { + content: "\53"; +} +.icon-compose:before { + content: "\54"; +} +.icon-chart-composed:before { + content: "\55"; +} +.icon-contacts:before { + content: "\56"; +} +.icon-copy:before { + content: "\57"; +} +.icon-crm:before { + content: "\58"; +} +.icon-calendar-culture:before { + content: "\59"; +} +.icon-custom-view:before { + content: "\5a"; +} +.icon-dasbhoard:before { + content: "\30"; +} +.icon-data-display:before { + content: "\31"; +} +.icon-data-entry:before { + content: "\32"; +} +.icon-datepicker:before { + content: "\33"; +} +.icon-timeline-default:before { + content: "\34"; +} +.icon-divider:before { + content: "\35"; +} +.icon-down:before { + content: "\36"; +} +.icon-draft:before { + content: "\37"; +} +.icon-drag-and-drop:before { + content: "\38"; +} +.icon-dropdown:before { + content: "\39"; +} +.icon-edit:before { + content: "\21"; +} +.icon-editor:before { + content: "\22"; +} +.icon-ellipse-h:before { + content: "\23"; +} +.icon-ellipse-v:before { + content: "\24"; +} +.icon-email:before { + content: "\25"; +} +.icon-error:before { + content: "\26"; +} +.icon-exclamation:before { + content: "\27"; +} +.icon-expand:before { + content: "\28"; +} +.icon-feedback:before { + content: "\29"; +} +.icon-filter:before { + content: "\2a"; +} +.icon-filter-circle:before { + content: "\2b"; +} +.icon-folder:before { + content: "\2c"; +} +.icon-folder-o:before { + content: "\2d"; +} +.icon-font:before { + content: "\2e"; +} +.icon-forgot-password:before { + content: "\2f"; +} +.icon-forward:before { + content: "\3a"; +} +.icon-forward-o:before { + content: "\3b"; +} +.icon-frequent:before { + content: "\3c"; +} +.icon-map-geo-location:before { + content: "\3d"; +} +.icon-map-google:before { + content: "\3e"; +} +.icon-growth:before { + content: "\3f"; +} +.icon-hotel-booking:before { + content: "\40"; +} +.icon-icon:before { + content: "\5b"; +} +.icon-important:before { + content: "\5d"; +} +.icon-important-o:before { + content: "\5e"; +} +.icon-inbox:before { + content: "\5f"; +} +.icon-input:before { + content: "\60"; +} +.icon-inputnumber:before { + content: "\7b"; +} +.icon-keyboard:before { + content: "\7c"; +} +.icon-like:before { + content: "\7d"; +} +.icon-chart-line:before { + content: "\7e"; +} +.icon-list-select-o:before { + content: "\5c"; +} +.icon-localeprovider:before { + content: "\e000"; +} +.icon-location:before { + content: "\e001"; +} +.icon-lock-screen:before { + content: "\e002"; +} +.icon-map-clustering:before { + content: "\e003"; +} +.icon-map-directions:before { + content: "\e004"; +} +.icon-map-drawing:before { + content: "\e005"; +} +.icon-map-event-listener:before { + content: "\e006"; +} +.icon-map-km-layer:before { + content: "\e007"; +} +.icon-map-overlay:before { + content: "\e008"; +} +.icon-map-popup-info:before { + content: "\e009"; +} +.icon-map-street-view:before { + content: "\e00a"; +} +.icon-map-traffic-layer:before { + content: "\e00b"; +} +.icon-mention:before { + content: "\e00c"; +} +.icon-menu:before { + content: "\e00d"; +} +.icon-menu-fold:before { + content: "\e00e"; +} +.icon-menu-unfold:before { + content: "\e00f"; +} +.icon-message:before { + content: "\e010"; +} +.icon-modal:before { + content: "\e011"; +} +.icon-navigation:before { + content: "\e012"; +} +.icon-notification:before { + content: "\e013"; +} +.icon-notification-new:before { + content: "\e014"; +} +.icon-pagination:before { + content: "\e015"; +} +.icon-picker:before { + content: "\e016"; +} +.icon-chart-pie:before { + content: "\e017"; +} +.icon-plain-list-divider:before { + content: "\e018"; +} +.icon-plain-list-view:before { + content: "\e019"; +} +.icon-popconfirm:before { + content: "\e01a"; +} +.icon-popover:before { + content: "\e01b"; +} +.icon-calendar-popup:before { + content: "\e01c"; +} +.icon-pricing-table:before { + content: "\e01d"; +} +.icon-product-grid:before { + content: "\e01e"; +} +.icon-product-list:before { + content: "\e01f"; +} +.icon-profile:before { + content: "\e020"; +} +.icon-progress:before { + content: "\e021"; +} +.icon-quote-backward:before { + content: "\e022"; +} +.icon-quote-forward:before { + content: "\e023"; +} +.icon-chart-radar:before { + content: "\e024"; +} +.icon-chart-radial:before { + content: "\e025"; +} +.icon-radiobutton:before { + content: "\e026"; +} +.icon-calendar-rendering:before { + content: "\e027"; +} +.icon-reply:before { + content: "\e028"; +} +.icon-reply-o:before { + content: "\e029"; +} +.icon-reset-password:before { + content: "\e02a"; +} +.icon-chart-scatter:before { + content: "\e02b"; +} +.icon-schedule:before { + content: "\e02c"; +} +.icon-search:before { + content: "\e02d"; +} +.icon-select:before { + content: "\e02e"; +} +.icon-calendar-selectable:before { + content: "\e02f"; +} +.icon-sent:before { + content: "\e030"; +} +.icon-setting:before { + content: "\e031"; +} +.icon-shopping-cart:before { + content: "\e032"; +} +.icon-signin:before { + content: "\e033"; +} +.icon-signup:before { + content: "\e034"; +} +.icon-map-simple:before { + content: "\e035"; +} +.icon-slider:before { + content: "\e036"; +} +.icon-spam:before { + content: "\e037"; +} +.icon-spin:before { + content: "\e038"; +} +.icon-star:before { + content: "\e039"; +} +.icon-star-half:before { + content: "\e03a"; +} +.icon-star-o:before { + content: "\e03b"; +} +.icon-steps:before { + content: "\e03c"; +} +.icon-map-styled:before { + content: "\e03d"; +} +.icon-sweet-alert:before { + content: "\e03e"; +} +.icon-switch:before { + content: "\e03f"; +} +.icon-tab:before { + content: "\e040"; +} +.icon-table:before { + content: "\e041"; +} +.icon-table-data:before { + content: "\e042"; +} +.icon-table-general:before { + content: "\e043"; +} +.icon-tag:before { + content: "\e044"; +} +.icon-tag-o:before { + content: "\e045"; +} +.icon-testimonial:before { + content: "\e046"; +} +.icon-thumb-up:before { + content: "\e047"; +} +.icon-ticket-new:before { + content: "\e048"; +} +.icon-tickets:before { + content: "\e049"; +} +.icon-timeline:before { + content: "\e04a"; +} +.icon-timeline-left-align:before { + content: "\e04b"; +} +.icon-timeline-new:before { + content: "\e04c"; +} +.icon-timeline-with-icons:before { + content: "\e04d"; +} +.icon-timepicker:before { + content: "\e04e"; +} +.icon-tooltip:before { + content: "\e04f"; +} +.icon-transfer:before { + content: "\e050"; +} +.icon-translation:before { + content: "\e051"; +} +.icon-trash:before { + content: "\e052"; +} +.icon-tree:before { + content: "\e053"; +} +.icon-chart-tree:before { + content: "\e054"; +} +.icon-treeselect:before { + content: "\e055"; +} +.icon-uncheck-squire:before { + content: "\e056"; +} +.icon-uncheck-squire-o:before { + content: "\e057"; +} +.icon-upload:before { + content: "\e058"; +} +.icon-user:before { + content: "\e059"; +} +.icon-user-o:before { + content: "\e05a"; +} +.icon-view:before { + content: "\e05b"; +} +.icon-view-o:before { + content: "\e05c"; +} +.icon-widgets:before { + content: "\e05d"; +} +.icon-wysiwyg:before { + content: "\e05e"; +} +.icon-error-404:before { + content: "\61"; +} diff --git a/src/assets/vendors/react-notification/fonts/notification.eot b/src/assets/vendors/react-notification/fonts/notification.eot new file mode 100644 index 0000000000000000000000000000000000000000..fe9292fbc2d7c7269c7acb4bd53c3a740d4aa803 GIT binary patch literal 2092 zcma)7PiP!f82`PUo!QBZW@7$rDABG-yL+%EX?C-NZowk77_q2T)6xcXyF1z4lAQ_3 zh9({)5f5G@5k*kwMG!pHUUTtKEDDNHDqfYM7e$aM4 zN-q`KC&*IsL8%z~Qv61HmUeHwxUzspaE`XzC*>FGp1bvtjNjxQ-z)@64dzKoye|FF zw9mvQbRhO=>_;LSp%i~1E4pM{8wsYpn@$4Tm$e(s8#t+P(7E$NWL!!zwVT{=n7&YI zDry*UygJM#VUbXLFgy92NGhJ6a{CiT!WbRN zq%-NMoSS#^*~#Q!a&RE_pm5NQ#<5<;-#B=s9g@Wf@St)x3 zl2=~2;!zX%R>1y?tnZnnRtm3=s^t)}VJ&;BVCJsKPbK%w{8u|?F}pw4RgRW*OG=Tq zH#;R8>r<8evCdkp9>>0AS;DoP*^b$TCnEgTX%xV7cyub4Nk1hXQ+y<0JTCf^g9R}# zx}#^GoaEoo!mu5%AS9^oTf(%in=Z$esgq3C4W$63^!cGJh44F-^~FW$IvR$}QfzV7 zMbprA!;C>XTlU}oTk8;>#`F9e;nDbS)_t9-%k=GhlYu_$S9wt|p zd0U2VzC*jqFw7dI&^i`*&t7>RmW7|kxK^fUTl-oi-p1^zfS-dE& z5s|Bycq4qr9_*$TtN4kX^?)X8YHdiYZ8@0gSuU*Y} zi%WE;j*m@r?okI> + + + Generated by IcoMoon + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/vendors/react-notification/fonts/notification.ttf b/src/assets/vendors/react-notification/fonts/notification.ttf new file mode 100644 index 0000000000000000000000000000000000000000..aa241dded4e9be15fa347ad982c5779b4ba22ece GIT binary patch literal 1908 zcma)7U1%It6h3!m=gwqCJ25}Ip+q|-?e2q`q}iWAw_p)kj8Md?X|VyF?oMX6WM{%= zLlYk)5g&Y!MifDzFM{Ah?Q33qD2jrmP%6GEMPC#__C@feuHU^g+ug>E=DH##@yq>2HjIEyYhQW3j}F$rHRRT(u&DS96GAu>oI4$NtvZ@<>Q z)VbH`$eB+2+ui00zM*kinkP*WSyAM~0+^1z&FZRDNc#&qPhV&$z!jgqq z=9Y@!+36{pxc$OnO{-->TIt zt6Fmwo^8M%6Ea{OZPK9~vw50`^~Id(SMn5>B&Q z%VEmLwd}0|nY*l1%w;w_KyBX=7BtOp zF?J0NWVmiD89@qP7~4Xya8OyFT@bEgao7^XE@oXYxTbMKA>r)VfBbK)6Z8~4hp!P| zjelo7I;gtbX!lIUN9CEIWS8yAE3zkLQBosLt|9U^xn{ftdx&$R4$0JkMc#7}%{kW_ zI=E(h!zw%l;(uS|DNRdp@xJ7^@>k>Q*X>3cUib1c&eeC{jGBja_=z6jjLpO|P zpv93+?B>nmQ9&SH}Qd9EOb=0PT&j>47`_@UqQT7K2JxallZqBBtx r&d_O@XbY(ZST&UCi^_be0=r0?;0vfWqB9txDDn4{|ET^?`k?*~hv_Tq literal 0 HcmV?d00001 diff --git a/src/assets/vendors/react-notification/fonts/notification.woff b/src/assets/vendors/react-notification/fonts/notification.woff new file mode 100644 index 0000000000000000000000000000000000000000..1cb7a50b406b65d48286758bb26e48b1bc945ca8 GIT binary patch literal 1984 zcma)7U1%It6h3!n=k8>tcGmptmJ;onw7U=1O`81~bOnphV1!bvnigBo?PfB&B|B3# z8Lr@eHp;Y>)BKD=FAbAmdsq1&{%x2TL(Ofv^eCNC8 z-h0lybMGvlnw};>Xo(H7lx>GTX+mnWu(gaP&q7JKlKe63l%1g;K$PRZ=8AH3=! zb3el8SeB%>usRR!Hj#Fg#sB!HXXa36AGF%#xVYzOOgiE8yOP zpJ5q;j2$FJSjc)^?0iGhsKowH%~ESj)~TkhvqurSz_u|7sOYWOr{(;;D)b7`ky0_2eNsHC^jJbZCWh0giWnL1 z;=&VCI1Mcf>yj10q`qqjGrDd#kaa^xGaM(hf?&DN4}CVm?^o6r=eX-g7Xq$&Of8pU94sxuj;8T$A%Q zrEa_he?Us30V}k=MLuv4Eu~B}6VSTxt*FU3n*95!jO%(_hIbnG=<;99Z(g^b{gbRX zA0XX&^AO&Ro>jMp-#zvHp#x*o+klJC4R@<|8x^D8$PhvEFpk_Vs?(%ldYs;++u}uW z9SqN6(5vBhw6&TFjnsa+5v?U?Uo?UjNYMKcuYo@i;W+T;5!UfHI2>UKz7b)Q4$^o0 z_QVIk96(QqV|c$lim(R$r3lA?Z$wz96iq}}f?tZTNk#h25893SMy=Xz1U~r`P#bH` zLuyo2I3R!4Z7rfZb1Xkev*c2X77>6B%Fr>&)8t+z*-Ol6*IQbsw&*k#@sQ^Na%k;k z;B?@(GoI_at!mqy%UoE^%+!LDLEz_US|!>>svc(bRr*|+i$79U45|(2B!r8~ O ( +
+ + +
+) + +export default App diff --git a/src/components/ClassTreeView.js b/src/components/ClassTreeView.js new file mode 100644 index 000000000..080ceb447 --- /dev/null +++ b/src/components/ClassTreeView.js @@ -0,0 +1,127 @@ +import React from "react"; +import {Card, Input, Tree} from "antd"; + +const TreeNode = Tree.TreeNode; +const Search = Input.Search; + +const x = 3; +const y = 2; +const z = 1; +const gData = []; + +const generateData = (_level, _preKey, _tns) => { + const preKey = _preKey || '0'; + const tns = _tns || gData; + + const children = []; + for (let i = 0; i < x; i++) { + const key = `${preKey}-${i}`; + tns.push({title: key, key}); + if (i < y) { + children.push(key); + } + } + if (_level < 0) { + return tns; + } + const level = _level - 1; + children.forEach((key, index) => { + tns[index].children = []; + return generateData(level, key, tns[index].children); + }); +}; +generateData(z); + +const dataList = []; +const generateList = (data) => { + for (let i = 0; i < data.length; i++) { + const node = data[i]; + const key = node.key; + dataList.push({key, title: key}); + if (node.children) { + generateList(node.children, node.key); + } + } +}; +generateList(gData); + +const getParentKey = (key, tree) => { + let parentKey; + for (let i = 0; i < tree.length; i++) { + const node = tree[i]; + if (node.children) { + if (node.children.some(item => item.key === key)) { + parentKey = node.key; + } else if (getParentKey(key, node.children)) { + parentKey = getParentKey(key, node.children); + } + } + } + return parentKey; +}; + +class ClassTreeView extends React.Component { + state = { + expandedKeys: [], + searchValue: '', + autoExpandParent: true, + }; + onExpand = (expandedKeys) => { + this.setState({ + expandedKeys, + autoExpandParent: false, + }); + }; + onChange = (e) => { + const value = e.target.value; + const expandedKeys = dataList.map((item) => { + if (item.key.indexOf(value) > -1) { + return getParentKey(item.key, gData); + } + return null; + }).filter((item, i, self) => item && self.indexOf(item) === i); + this.setState({ + expandedKeys, + searchValue: value, + autoExpandParent: false, + }); + }; + + render() { + const {searchValue, expandedKeys, autoExpandParent} = this.state; + const loop = data => data.map((item) => { + const index = item.key.indexOf(searchValue); + const beforeStr = item.key.substr(0, index); + const afterStr = item.key.substr(index + searchValue.length); + const title = index > -1 ? ( + + {beforeStr} + {searchValue} + {afterStr} + + ) : {item.key}; + if (item.children) { + return ( + + {loop(item.children)} + + ); + } + return ; + }); + return ( + + + + {loop(gData)} + + + ); + } +} + +export default ClassTreeView; diff --git a/src/components/PropertyEditor.js b/src/components/PropertyEditor.js new file mode 100644 index 000000000..0ff92eaac --- /dev/null +++ b/src/components/PropertyEditor.js @@ -0,0 +1,58 @@ +import React from "react"; +import {Card, Divider, Icon, Table} from "antd"; + +const columns = [{ + title: 'Name', + dataIndex: 'name', + key: 'name', + render: text =>
{text}, +}, { + title: 'Age', + dataIndex: 'age', + key: 'age', +}, { + title: 'Address', + dataIndex: 'address', + key: 'address', +}, { + title: 'Action', + key: 'action', + render: (text, record) => ( + + Action 一 {record.name} + + Delete + + + More actions + + + ), +}]; + +const data = [{ + key: '1', + name: 'John Brown', + age: 32, + address: 'New York No. 1 Lake Park', +}, { + key: '2', + name: 'Jim Green', + age: 42, + address: 'London No. 1 Lake Park', +}, { + key: '3', + name: 'Joe Black', + age: 32, + address: 'Sidney No. 1 Lake Park', +}]; + +const PropertyEditor = () => { + return ( + + + + ); +}; + +export default PropertyEditor; diff --git a/src/index.js b/src/index.js new file mode 100644 index 000000000..28f1ce1fa --- /dev/null +++ b/src/index.js @@ -0,0 +1,21 @@ +import React from 'react' +import { render } from 'react-dom' +import { createStore } from 'redux' +import { Provider } from 'react-redux' +import App from './components/App' +import rootReducer from './reducers' + +import {ConnectedRouter} from "react-router-redux"; +import {Route, Switch} from "react-router-dom"; + +import "assets/vendors/style"; +import "styles/flexile.less"; + +const store = createStore(rootReducer) + +render( + + + , + document.getElementById('root') +) diff --git a/src/reducers/index.js b/src/reducers/index.js new file mode 100644 index 000000000..54b8f0fc8 --- /dev/null +++ b/src/reducers/index.js @@ -0,0 +1,8 @@ +import { combineReducers } from 'redux' +import todos from './todos' +import visibilityFilter from './visibilityFilter' + +export default combineReducers({ + todos, + visibilityFilter +}) diff --git a/src/reducers/todos.js b/src/reducers/todos.js new file mode 100644 index 000000000..fc6ed32d8 --- /dev/null +++ b/src/reducers/todos.js @@ -0,0 +1,23 @@ +const todos = (state = [], action) => { + switch (action.type) { + case 'ADD_TODO': + return [ + ...state, + { + id: action.id, + text: action.text, + completed: false + } + ] + case 'TOGGLE_TODO': + return state.map(todo => + (todo.id === action.id) + ? {...todo, completed: !todo.completed} + : todo + ) + default: + return state + } +} + +export default todos diff --git a/src/reducers/todos.spec.js b/src/reducers/todos.spec.js new file mode 100644 index 000000000..88eca35d7 --- /dev/null +++ b/src/reducers/todos.spec.js @@ -0,0 +1,111 @@ +import todos from './todos' + +describe('todos reducer', () => { + it('should handle initial state', () => { + expect( + todos(undefined, {}) + ).toEqual([]) + }) + + it('should handle ADD_TODO', () => { + expect( + todos([], { + type: 'ADD_TODO', + text: 'Run the tests', + id: 0 + }) + ).toEqual([ + { + text: 'Run the tests', + completed: false, + id: 0 + } + ]) + + expect( + todos([ + { + text: 'Run the tests', + completed: false, + id: 0 + } + ], { + type: 'ADD_TODO', + text: 'Use Redux', + id: 1 + }) + ).toEqual([ + { + text: 'Run the tests', + completed: false, + id: 0 + }, { + text: 'Use Redux', + completed: false, + id: 1 + } + ]) + + expect( + todos([ + { + text: 'Run the tests', + completed: false, + id: 0 + }, { + text: 'Use Redux', + completed: false, + id: 1 + } + ], { + type: 'ADD_TODO', + text: 'Fix the tests', + id: 2 + }) + ).toEqual([ + { + text: 'Run the tests', + completed: false, + id: 0 + }, { + text: 'Use Redux', + completed: false, + id: 1 + }, { + text: 'Fix the tests', + completed: false, + id: 2 + } + ]) + }) + + it('should handle TOGGLE_TODO', () => { + expect( + todos([ + { + text: 'Run the tests', + completed: false, + id: 1 + }, { + text: 'Use Redux', + completed: false, + id: 0 + } + ], { + type: 'TOGGLE_TODO', + id: 1 + }) + ).toEqual([ + { + text: 'Run the tests', + completed: true, + id: 1 + }, { + text: 'Use Redux', + completed: false, + id: 0 + } + ]) + }) + +}) diff --git a/src/reducers/visibilityFilter.js b/src/reducers/visibilityFilter.js new file mode 100644 index 000000000..1500d4f9c --- /dev/null +++ b/src/reducers/visibilityFilter.js @@ -0,0 +1,12 @@ +import { VisibilityFilters } from '../actions' + +const visibilityFilter = (state = VisibilityFilters.SHOW_ALL, action) => { + switch (action.type) { + case 'SET_VISIBILITY_FILTER': + return action.filter + default: + return state + } +} + +export default visibilityFilter diff --git a/src/styles/apps/apps.less b/src/styles/apps/apps.less new file mode 100644 index 000000000..82dd87214 --- /dev/null +++ b/src/styles/apps/apps.less @@ -0,0 +1,434 @@ +/* Apps Style */ +.@{class-prefix}-app-module { + position: relative; + .flex-display(flex, row, wrap); + margin: -@layout-main-content-padding -@layout-main-content-padding 0; + flex: 1; +} + +.@{class-prefix}-module-side { + position: relative; + z-index: 2; + .flex-display(flex, column, nowrap); + .flex(0, 1, @app-sidebar-width); + min-width: @app-sidebar-width; + + @media screen and (max-width: @screen-md-max) { + min-width: @sidebar-width - 20px; + background-color: @white-color; + } +} + +.@{class-prefix}-module-side-header { + padding: 10px; + min-height: @layout-header-height + 7px; + border-bottom: @border-style-base @border-width-base @border-color; + .flex-display(flex, column, nowrap); + .justify-content(center); + .align-items(center); + background-color: lighten(@grey-2, 0.5%); + color: darken(@grey-8, 2%); + + @media screen and (max-width: @screen-md-max) { + min-height: @layout-header-height; + } +} + +.@{class-prefix}-module-logo { + .flex-display(flex, row, wrap); + font-size: 20px; + + & i { + font-size: 28px; + line-height: 18px; + } +} + +.@{class-prefix}-module-user-info, +.@{class-prefix}-module-side-content { + .flex-display(flex, column, nowrap); + .flex-only(1); +} + +.@{class-prefix}-module-user-detail { + font-size: 12px; +} + +.@{class-prefix}-module-add-task { + .flex-display(flex, row, wrap); + padding: 24px; + + & .ant-btn { + margin-bottom: 0; + } +} + +.@{class-prefix}-module-nav { + list-style: none; + padding-left: 0; + margin-bottom: 0; + .flex-display(flex, column, nowrap); + .justify-content(center); + + & li { + .flex-display(flex, column, nowrap); + } + + & li a { + padding: 12px 29px; + color: lighten(@black-color, 60%); + .flex-display(flex, row, wrap); + .align-items(center); + text-decoration: none; + + &:hover, + &:focus { + color: @black-color; + } + + &.active { + color: @primary-color; + } + } + + & li i { + margin-right: 16px; + font-size: 16px; + } + + & li span { + display: inline-block; + vertical-align: middle; + } + + & li.@{class-prefix}-module-nav-label { + padding: 12px 29px; + } +} + +.@{class-prefix}-module-box { + position: relative; + z-index: 2; + .flex-display(flex, column, nowrap); + .flex(1, 1, auto); + max-width: calc(100%~"-"@app-sidebar-width + 1px); + + @media screen and (max-width: @screen-md-max) { + max-width: 100%; + } +} + +.@{class-prefix}-module-box-header { + padding: 10px 26px; + min-height: 79px; + .flex-display(flex, column, nowrap); + .justify-content(center); + background-color: @white-color; + border-bottom: @border-style-base @border-width-base @border-color; + + @media screen and (max-width: @screen-md-max) { + position: relative; + min-height: 58px; + padding: 5px 26px 5px 110px; + } + + & .@{class-prefix}-drawer-btn { + @media screen and (max-width: @screen-md-max) { + position: absolute; + left: 0; + top: 0; + z-index: 1; + border-right: @border-style-base @border-width-base @border-color; + height: 58px; + width: 98px; + .flex-display(flex, column, nowrap); + .justify-content(center); + .align-items(center); + .border-radius(0); + font-size: 22px; + text-align: center; + } + } +} + +.@{class-prefix}-module-box-header-inner { + .flex-display(flex, row, wrap); + .align-items(center); + .justify-content(space-between); +} + +.@{class-prefix}-module-box-header-right { + .flex-display(flex, row, wrap); + .align-items(center); + margin-left: auto; +} + +.@{class-prefix}-module-box-content { + background-color: @white-color; + .flex-display(flex, column, nowrap); + .flex(1); +} + +.@{class-prefix}-module-box-topbar { + padding: 8px 12px; + min-height: 65px; + .flex-display(flex, row, wrap); + .align-items(center); + border-bottom: @border-style-base @border-width-base @border-color; + + & label.ant-checkbox-wrapper { + margin-right: 10px; + } + + & .ant-dropdown-trigger { + cursor: pointer; + margin-right: 10px; + + & .icon:before { + position: relative; + top: 3px; + } + } + + &-todo { + padding-left: 28px; + } + + @media screen and (max-width: @screen-md-max) { + min-height: 58px; + padding-left: 28px; + padding-right: 28px; + } +} + +.@{class-prefix}-module-list-icon { + .flex-display(flex, row, wrap); + .align-items(center); + padding-right: 10px; + + & .@{class-prefix}-bar-icon { + & .@{class-prefix}-icon-menu:before { + top: 3px; + position: relative; + } + } +} + +.@{class-prefix}-toolbar-separator { + border-left: @border-style-base @border-width-base @border-color; + height: 100%; + width: 1px; + margin: 0 12px; +} + +.@{class-prefix}-module-list { + .flex-display(flex, column, nowrap); + .justify-content(center); +} + +.@{class-prefix}-module-list-item { + .flex-display(flex, row, wrap); + .align-items(center); + padding: 15px 28px; + z-index: 5; + position: relative; + cursor: pointer; + + &:not(:last-child) { + border-bottom: @border-style-base @border-width-base @border-color; + } + + &.@{class-prefix}-mail-cell { + padding-left: 12px; + .align-items(start); + + @media screen and (max-width: @screen-md-max) { + padding-right: 28px; + padding-left: 28px; + } + } + + @media screen and (max-width: @screen-xs-max) { + padding-bottom: 10px; + padding-top: 10px; + } +} + +.@{class-prefix}-module-detail-header { + margin-bottom: 10px; + + @media screen and (max-width: @screen-xs-max) { + margin-bottom: 0; + } +} + +.@{class-prefix}-module-list-info { + .flex-display(flex, row, nowrap); + .justify-content(space-between); + .flex(1); + max-width: calc(100% ~"-" 140px); + + @media screen and (max-width: @screen-xs-max) { + max-width: calc(100% ~"-" 100px); + } +} + +.@{class-prefix}-module-todo-content { + position: relative; + .flex(1); + + & .@{class-prefix}-subject { + margin-bottom: 5px; + } +} + +.@{class-prefix}-module-todo-right { + margin-left: 8px; +} + +.@{class-prefix}-module-sidenav { + background-color: @white-color; + border-right: @border-style-base @border-width-base @border-color; + position: relative; + z-index: 9; + + & .@{class-prefix}-chat-sidenav-main { + max-width: 300px; + min-width: 300px; + width: 90%; + } +} + +.@{class-prefix}-module-date { + max-width: 160px; +} + +.@{class-prefix}-module-detail-item { + padding: 10px 28px; +} + +.@{class-prefix}-task-title { + font-size: @h3-font-size; + + @media screen and (max-width: @screen-md-max) { + font-size: @h4-font-size; + } +} + +.@{class-prefix}-chat-todo-avatar { + margin-right: 15px; +} + +.@{class-prefix}-module-side-scroll { + height: calc(100vh ~"-" 201px) !important; + + .framed-layout & { + height: calc(100vh~"-"201px + 2 * @framed-layout-base) !important; + } + + @media screen and (max-width: @screen-md-max) { + height: calc(100vh ~"-" @layout-header-height) !important; + + .framed-layout & { + height: calc(100vh ~"-" @layout-header-height) !important; + } + } + + & > div:first-child { + overflow-y: scroll !important; + } +} + +.@{class-prefix}-module-content-scroll { + height: calc(100vh ~"-" 266px) !important; + + .framed-layout & { + height: calc(100vh~"-"266px + 2 * @framed-layout-base) !important; + } + + @media screen and (max-width: @screen-md-max) { + height: calc(100vh ~"-" 238px) !important; + + .framed-layout & { + height: calc(100vh ~"-" 238px) !important; + } + } + + & > div:first-child { + overflow-y: scroll !important; + } +} + +.@{class-prefix}-todo-detail-content-scroll { + height: calc(100vh ~"-" 319px) !important; + + .framed-layout & { + height: calc(100vh~"-"319px + 2 * @framed-layout-base) !important; + } + + @media screen and (max-width: @screen-md-max) { + height: calc(100vh ~"-" 291px) !important; + + .framed-layout & { + height: calc(100vh ~"-" 291px) !important; + } + } + + & > div:first-child { + overflow-y: scroll !important; + } +} + +.@{class-prefix}-loader-view { + .flex-display(flex, column, nowrap); + .justify-content(center); + .align-items(center); + .flex(1); + + & .ant-spin { + margin: 0; + } + + .@{class-prefix}-app-module & { + height: calc(100vh ~"-" 266px) !important; + + .framed-layout & { + height: calc(100vh~"-"266px + 2 * @framed-layout-base) !important; + } + + @media screen and (max-width: @screen-md-max) { + height: calc(100vh ~"-" 238px) !important; + + .framed-layout & { + height: calc(100vh ~"-" 238px) !important; + } + } + } + + .@{class-prefix}-chat-module & { + height: calc(100vh ~"-" 122px) !important; + + .framed-layout & { + height: calc(100vh~"-"122px + 2 * @framed-layout-base) !important; + } + + @media screen and (max-width: @screen-md-max) { + .framed-layout & { + height: calc(100vh ~"-" 122px) !important; + } + } + } +} + +.@{class-prefix}-module-default { + .flex-display(flex, column, nowrap); + .justify-content(center); + .align-items(center); + height: 100%; + padding: 15px; +} + +.@{class-prefix}-no-content-found { + .flex-only(1); + font-size: @font-size-lg; +} diff --git a/src/styles/apps/calendar.less b/src/styles/apps/calendar.less new file mode 100644 index 000000000..c399d6e72 --- /dev/null +++ b/src/styles/apps/calendar.less @@ -0,0 +1,108 @@ +/* Calendar Apps Style */ +.@{class-prefix}-rbc-calendar { + overflow: hidden; + padding-bottom: @gx-card-margin-base; + .flex-display(flex, column, nowrap); +} + +.rbc-calendar { + .@{class-prefix}-rbc-calendar & { + .flex-display(flex, column, nowrap); + .flex(1); + height: 100%; + } +} + +.rbc-event { + background-color: @primary-color; +} + +.rbc-event.rbc-selected { + background-color: @primary-7; +} + +.rbc-slot-selection { + background-color: @primary-3; +} + +.rbc-toolbar button:active, +.rbc-toolbar button.rbc-active { + color: @white-color; + background-image: none; + .box-shadow(none); + background-color: @primary-4; + border-color: @primary-color; +} + +.rbc-toolbar button:active:hover, +.rbc-toolbar button.rbc-active:hover, +.rbc-toolbar button:active:focus, +.rbc-toolbar button.rbc-active:focus, +.rbc-toolbar button:focus, +.rbc-toolbar button:hover { + color: @white-color; + background-color: @primary-4; + border-color: @primary-color; +} + +.rbc-month-row { + min-height: 100px; +} + +.rbc-event { + min-height: 50px; +} + +.rbc-btn-group { + & button { + cursor: pointer; + } +} + +@media screen and (max-width: 867px) { + .rbc-toolbar { + .flex-display(flex, column, nowrap); + .align-items(flex-start); + } + + .rbc-toolbar .rbc-toolbar-label { + margin: 8px 0; + } +} + +@media screen and (max-width: 467px) { + .rbc-toolbar { + font-size: 12px; + } + + .rbc-toolbar button { + padding: 5px 10px; + } +} + +/* Calendar Components Style */ +.@{class-prefix}-com-calendar { + & .ant-fullcalendar-header { + & .ant-select { + margin-left: 8px; + margin-bottom: 8px; + } + } + + @media screen and (max-width: 349px) { + margin: 0 -20px; + } +} + +.@{class-prefix}-com-calendar-card { + border: @border-style-base @border-width-base @border-color; + max-width: 300px; + .border-radius(@border-radius-sm); + + .@{class-prefix}-com-calendar { + @media screen and (max-width: 349px) { + margin: 0; + } + } +} + diff --git a/src/styles/apps/chat.less b/src/styles/apps/chat.less new file mode 100644 index 000000000..0d0f55642 --- /dev/null +++ b/src/styles/apps/chat.less @@ -0,0 +1,396 @@ +/*Chat Apps Styles*/ +.@{class-prefix}-chat-module { + position: relative; + + &-box { + .flex-display(flex, row, nowrap); + .flex(1); + background-color: @grey-2; + position: relative; + width: 100%; + } +} + +.@{class-prefix}-chat-sidenav { + .flex-display(flex, column, nowrap); + .flex(0, 1, @app-chat-sidebar-width); + min-width: @app-chat-sidebar-width; + border-right: @border-style-base @border-width-base @border-color; +} + +.@{class-prefix}-chat-sidenav-header { + .flex-display(flex, column, nowrap); + padding: 25px 20px 12px; + background-color: lighten(@grey-2, 0.5%); + border-bottom: @border-style-base @border-width-base @border-color; +} + +.@{class-prefix}-chat-user-hd { + .flex-display(flex, row, nowrap); + margin-bottom: 25px; +} + +.@{class-prefix}-chat-search-wrapper { + .flex-display(flex, column, nowrap); + margin-bottom: 0; +} + +.@{class-prefix}-chat-avatar { + min-width: 50px; + + .@{class-prefix}-chat-user-row & { + padding: 0 5px; + min-width: 10px; + } + + .@{class-prefix}-chat-user-hd & { + cursor: pointer; + } +} + +.@{class-prefix}-chat-sidenav-scroll { + height: calc(100vh ~"-" 295px) !important; + + .framed-layout & { + height: calc(100vh~"-"295px + 2 * @framed-layout-base) !important; + } + + @media screen and (max-width: @screen-md-max) { + height: calc(100vh ~"-" 175px) !important; + + .framed-layout & { + height: calc(100vh ~"-" 175px) !important; + } + } + + & > div:first-child { + overflow-y: scroll !important; + } +} + +.@{class-prefix}-chat-sidenav-scroll-tab-1, +.@{class-prefix}-chat-sidenav-scroll-tab-2 { + height: calc(100vh ~"-" 320px) !important; + + .framed-layout & { + height: calc(100vh~"-"320px + 2 * @framed-layout-base) !important; + } + + @media screen and (max-width: @screen-md-max) { + height: calc(100vh ~"-" 198px) !important; + + .framed-layout & { + height: calc(100vh ~"-" 198px) !important; + } + } + + & > div:first-child { + overflow-y: scroll !important; + } +} + +.@{class-prefix}-chat-list-scroll { + height: calc(100vh ~"-" 268px) !important; + + .framed-layout & { + height: calc(100vh~"-"268px + 2 * @framed-layout-base) !important; + } + + @media screen and (max-width: @screen-lg-max) { + height: calc(100vh ~"-" 242px) !important; + + .framed-layout & { + height: calc(100vh~"-"242px + 2 * @framed-layout-base) !important; + } + } + + @media screen and (max-width: @screen-md-max) { + .framed-layout & { + height: calc(100vh ~"-" 242px) !important; + } + } + + & > div:first-child { + overflow-y: scroll !important; + } +} + +.@{class-prefix}-chat-sidenav-content { + background-color: @white-color; +} + +.@{class-prefix}-chat-sidenav-title { + padding: 10px 16px; + font-size: @font-size-base; + color: @info-color; + .flex-display(flex, column, nowrap); + .justify-content(center); + + @media screen and (max-width: @screen-lg-max) { + font-size: 16px; + } + + @media screen and (max-width: @screen-sm-max) { + font-size: 15px; + } +} + +.@{class-prefix}-chat-tabs-header { + background-color: lighten(@grey-2, 0.5%) !important; +} + +.@{class-prefix}-chat-user { + .flex-display(flex, column, nowrap); + + &.@{class-prefix}-chat-user-center { + .justify-content(center); + .align-items(center); + + & .@{class-prefix}-chat-avatar { + margin-left: auto; + } + } + + &-item { + padding: 16px; + .flex-display(flex, column, nowrap); + .justify-content(center); + cursor: pointer; + max-height: 96px; + + &:not(:last-child) { + border-bottom: @border-style-base @border-width-base @border-color; + } + + &.active, + &:hover { + background-color: @primary-1; + } + } + + &-row { + margin: 0 -5px; + .flex-display(flex, row, wrap); + .align-items(center); + } +} + +.@{class-prefix}-chat-info { + max-width: calc(100% ~"-" 80px); + padding: 0 5px; + .flex-only(1); + + & p { + margin-bottom: 0; + } + + & .h4 { + display: block; + margin-bottom: 3px; + } + + &-des { + color: @grey-8; + font-size: 13px; + } +} + +.@{class-prefix}-chat-contact-col { + max-width: calc(100% ~"-" 50px); + padding: 0 5px; + .flex-only(1); + + & p { + margin-bottom: 0; + } + + & .h4 { + display: block; + margin-bottom: 3px; + } +} + +.@{class-prefix}-chat-date { + padding: 0 5px; + text-align: right; +} + +.@{class-prefix}-fs-80 { + font-size: 80px !important; + line-height: 80px !important; + + .@{class-prefix}-comment-box & { + text-align: center; + margin-bottom: 12px; + } + + @media screen and (max-width: @screen-xs-max) { + font-size: 60px !important; + line-height: 60px !important; + } +} + +.@{class-prefix}-comment-box { + .flex-display(flex, column, nowrap); + .justify-content(center); + .align-items(center); + .flex(1); + height: calc(100vh ~"-" 122px) !important; + + .framed-layout & { + height: calc(100vh~"-"122px + 2 * @framed-layout-base) !important; + + @media screen and (max-width: @screen-md-max) { + height: calc(100vh ~"-" 122px) !important; + } + } +} + +.@{class-prefix}-chat-box { + .flex-display(flex, column, nowrap); + .flex(1); + max-width: 100%; + position: relative; + z-index: 2; +} + +.@{class-prefix}-chat-main { + .flex-display(flex, column, nowrap); +} + +.@{class-prefix}-chat-main-header { + .flex-display(flex, row, wrap); + .align-items(center); + border-bottom: @border-style-base @border-width-base @border-color; + padding: 16px; + background-color: @white-color; + width: 100%; + + @media screen and (max-width: @screen-lg-max) { + padding: 8px 16px; + } + + @media screen and (max-width: @screen-md-max) { + padding: 8px 30px; + } +} + +.@{class-prefix}-chat-main-header-info { + .flex-display(flex, row, wrap); + .align-items(center); + margin-right: auto; +} + +.@{class-prefix}-chat-contact-name { + font-size: 20px; + font-weight: 500; + + @media screen and (max-width: @screen-lg-max) { + font-size: 16px; + } + + @media screen and (max-width: @screen-sm-max) { + font-size: 15px; + } +} + +.@{class-prefix}-chat-main-footer { + .flex-display(flex, column, nowrap); + border-top: @border-style-base @border-width-base @border-color; + padding: 6px 16px; + background-color: @white-color; + width: 100%; + + & .@{class-prefix}-form-group { + margin-bottom: 0; + } +} + +.@{class-prefix}-chat-item { + .flex-display(flex, row, nowrap); + padding: 16px; + + @media screen and (max-width: @screen-md-max) { + padding: 16px 30px; + } + + & .@{class-prefix}-bubble { + padding: 8px 12px; + background-color: @white-color; + .border-radius(20px 20px 20px 0px); + position: relative; + margin-left: 16px; + max-width: 600px; + border: @border-style-base @border-width-base @grey-5; + + @media screen and (max-width: @screen-xs-max) { + width: calc(100% ~"-" 60px); + } + } + + &.@{class-prefix}-flex-row-reverse { + & .@{class-prefix}-bubble { + margin-right: 16px; + margin-left: 0; + background-color: @primary-1; + .border-radius(20px 20px 0 20px); + } + } + + & .ant-avatar { + display: block; + } +} + +.@{class-prefix}-chat-btn { + font-size: 38px !important; + margin-right: 20px; +} + +textarea.@{class-prefix}-chat-textarea { + height: 40px; + .box-shadow(none); + .border-radius(0); +} + +.@{class-prefix}-chat-sent { + min-width: 40px; + line-height: 40px; + font-size: @font-size-lg + 2px; + text-align: center; + cursor: pointer; +} + +.@{class-prefix}-last-message-time { + font-size: 11px; + color: @grey-6; +} + +@media screen and (max-width: @screen-lg-max) { + .@{class-prefix}-chat-main-header { + & .@{class-prefix}-size-60 { + height: 50px !important; + width: 50px !important; + line-height: 50px; + } + + & button { + margin-bottom: 0; + } + } + + .@{class-prefix}-chat-main-header-info { + & .@{class-prefix}-status-pos { + max-width: 50px; + } + } +} + +@media screen and (max-width: @screen-xs-max) { + .@{class-prefix}-module-default { + h1 { + font-size: 17px; + } + } +} + diff --git a/src/styles/apps/contact.less b/src/styles/apps/contact.less new file mode 100644 index 000000000..12d4b2c78 --- /dev/null +++ b/src/styles/apps/contact.less @@ -0,0 +1,100 @@ +/*Contact Apps Styles*/ + +.@{class-prefix}-contact-item { + .align-items(center); + .flex-display(flex, row, wrap); + padding: 8px 12px; + + &:not(:last-child) { + border-bottom: @border-style-base @border-width-base @border-color; + } + + @media screen and (max-width: @screen-md-max) { + padding-right: 28px; + padding-left: 28px; + } +} + +.@{class-prefix}-dragndrop-item { + padding: @dragndrop-paddding-tb @dragndrop-paddding-lr; + + & .@{class-prefix}-draggable-icon { + margin-left: -@dragndrop-paddding-lr; + } +} + +.@{class-prefix}-contact-list-info { + padding-left: 10px; + + @media screen and (max-width: @screen-xs-max) { + max-width: 100%; + width: 100%; + padding-top: 10px; + } +} + +.@{class-prefix}-module-contact-content { + .flex-only(1); +} + +.@{class-prefix}-module-contact-right { + margin-left: 8px; +} + +.@{class-prefix}-contact-name { + font-size: 15px; +} + +.@{class-prefix}-draggable-icon { + cursor: all-scroll; + color: @grey-7; + + &:hover, + &:focus, + &:active { + cursor: all-scroll; + color: @grey-9; + } +} + +.@{class-prefix}-module-side-nav { + padding: 20px 0; +} + +.@{class-prefix}-modal-box-row { + .flex-display(flex, row, wrap); + + & .@{class-prefix}-modal-box-avatar { + .flex-order(2); + margin-left: 16px; + + & .ant-avatar { + width: @size-120; + height: @size-120; + } + + @media screen and (max-width: @screen-xs-max) { + .flex-order(1); + margin-left: 0; + margin-bottom: 16px; + text-align: center; + } + } + + & .@{class-prefix}-modal-box-form-item { + .flex-order(1); + .flex-only(1); + + @media screen and (max-width: @screen-xs-max) { + .flex-order(2); + } + } + + @media screen and (max-width: @screen-xs-max) { + .flex-display(flex, column, nowrap); + } +} + +.@{class-prefix}-dragndrop-actions { + .flex-display(flex, row, wrap); +} diff --git a/src/styles/apps/index.less b/src/styles/apps/index.less new file mode 100644 index 000000000..0721d4da3 --- /dev/null +++ b/src/styles/apps/index.less @@ -0,0 +1,5 @@ +@import "apps"; +@import "mail"; +@import "chat"; +@import "contact"; +@import 'calendar'; diff --git a/src/styles/apps/mail.less b/src/styles/apps/mail.less new file mode 100644 index 000000000..4dec5870c --- /dev/null +++ b/src/styles/apps/mail.less @@ -0,0 +1,138 @@ +/*Mails Apps Styles*/ +.@{class-prefix}-module-box-row { + .flex-display(flex, row, wrap); + width: 100%; +} + +.@{class-prefix}-module-box-column, +.@{class-prefix}-module-list-content { + .flex-display(flex, column, nowrap); + width: 100%; + .flex-only(1); +} + +.@{class-prefix}-mail-list-info { + .flex-display(flex, column, nowrap); + padding-left: 10px; + max-width: calc(100% ~"-" 150px); + + @media screen and (max-width: @screen-xs-max) { + max-width: 100%; + margin-top: 10px; + } +} + +.@{class-prefix}-mail-user-info { + .flex-display(flex, row, wrap); + .align-items(center); + margin-left: 10px; + + & .@{class-prefix}-avatar { + margin-right: 10px; + } + + & .@{class-prefix}-badge { + margin-bottom: 0; + } +} + +.@{class-prefix}-mail-user-des { + .flex-display(flex, row, wrap); + .align-items(center); + + & .@{class-prefix}-time, + & .@{class-prefix}-icon-btn { + margin-left: auto; + } +} + +.@{class-prefix}-mail-detail-inner { + padding: 24px; + + @media screen and (max-width: @screen-md-max) { + padding-right: 28px; + padding-left: 28px; + } +} + +.@{class-prefix}-mail-header { + .flex-display(flex, row, wrap); + .align-items(center); + + @media screen and (max-width: (@screen-xs-max - 77px)) { + display: block; + .align-items(flex-start); + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + } +} + +.@{class-prefix}-mail-header-content { + .flex-display(flex, column, nowrap); + + & .@{class-prefix}-subject { + margin-bottom: 5px; + } +} + +.@{class-prefix}-show-detail { + cursor: pointer; +} + +.@{class-prefix}-module-list-content { + & .@{class-prefix}-subject { + .gx-text-truncate; + } + + & .@{class-prefix}-message { + .flex-display(flex, column, nowrap); + color: darken(@grey-5, 10%); + font-size: 13px; + + p { + margin-bottom: 8px; + } + } +} + +.@{class-prefix}-size { + margin: 5px 0; +} + +.@{class-prefix}-sender-name { + margin-right: 0; + font-weight: @font-weight-medium; + font-size: 15px; +} + +.@{class-prefix}-mail-header-actions { + .justify-content(flex-end); + min-width: 100px; + .flex-display(flex, row, wrap); + + & .icon-btn:not(:last-child) { + margin-right: 3px; + } + + @media screen and (max-width: (@screen-xs-max - 77px)) { + .justify-content(flex-start); + min-width: 10px; + } +} + +@media screen and (max-width: @screen-xs-max) { + .@{class-prefix}-mail-list { + .flex(1, 1, auto); + max-width: 100%; + border-right: 0 none; + } + + .@{class-prefix}-mail-detail { + .flex(1, 1, auto); + max-width: 100%; + } +} diff --git a/src/styles/base/base.less b/src/styles/base/base.less new file mode 100644 index 000000000..0bd27efef --- /dev/null +++ b/src/styles/base/base.less @@ -0,0 +1,1188 @@ +/*Base Styles*/ +body { + overflow: hidden; + .transition(all 0.3s ease-out); + width: 100% !important; + position: relative; + + &.framed-layout { + padding: @framed-layout-base; + background-color: @primary-color; + + @media screen and (max-width: @screen-md-max) { + padding: 0; + } + } + + &.boxed-layout { + background-color: @primary-color; + max-width: @screen-xl-min + 80px; + margin: 0 auto; + .box-shadow(@gx-card-shadow); + } +} + +#root { + height: 100vh; + + .framed-layout & { + height: calc(100vh~"-"2 * @framed-layout-base); + overflow: hidden; + .box-shadow(@gx-card-shadow); + .border-radius(12px); + + @media screen and (max-width: @screen-md-max) { + height: 100vh; + .box-shadow(none) !important; + .border-radius(0) !important; + } + } +} + +.@{class-prefix}-pointer { + cursor: pointer; +} + +a { + color: @primary-color; +} + +a:hover, +a:focus { + color: @primary-7; +} + +a:focus { + text-decoration: none; +} + +ol, ul, dl { + padding-left: 30px; + margin-bottom: 10px; +} + +img { + max-width: 100%; +} + +.@{class-prefix}-w-25 { + width: 25% !important; +} + +.@{class-prefix}-w-50 { + width: 50% !important; +} + +.@{class-prefix}-w-75 { + width: 75% !important; +} + +.@{class-prefix}-w-100 { + width: 100% !important; +} + +.@{class-prefix}-h-25 { + height: 25% !important; +} + +.@{class-prefix}-h-50 { + height: 50% !important; +} + +.@{class-prefix}-h-75 { + height: 75% !important; +} + +.@{class-prefix}-h-100 { + height: 100% !important; +} + +.@{class-prefix}-mw-100 { + max-width: 100% !important; +} + +.@{class-prefix}-mh-100 { + max-height: 100% !important; +} + +.@{class-prefix}-minw50 { + min-width: 50px; +} + +.@{class-prefix}-border { + border: @border-style-base @border-width-base @border-color; +} + +.@{class-prefix}-border-2 { + border: @border-style-base 2px @border-color; +} + +.@{class-prefix}-border-top { + border-top: @border-style-base @border-width-base @border-color; +} + +.@{class-prefix}-border-bottom { + border-bottom: @border-style-base @border-width-base @border-color; +} + +.@{class-prefix}-border-0 { + border: 0 none !important; +} + +.@{class-prefix}-page-heading { + margin-bottom: @gx-card-margin-base; +} + +.@{class-prefix}-page-title { + font-size: @h2-font-size; + margin-bottom: 0; +} + +.@{class-prefix}-size-120 { + height: @size-120 !important; + width: @size-120 !important; + line-height: @size-120 !important; +} + +.@{class-prefix}-size-100 { + height: @size-100 !important; + width: @size-100 !important; + line-height: @size-100 !important; +} + +.@{class-prefix}-size-80 { + height: @size-80 !important; + width: @size-80 !important; + line-height: @size-80 !important; +} + +.@{class-prefix}-size-60 { + height: @size-60 !important; + width: @size-60 !important; + line-height: @size-60 !important; +} + +.@{class-prefix}-size-50 { + height: @size-50 !important; + width: @size-50 !important; + line-height: @size-50 !important; +} + +.@{class-prefix}-size-40 { + height: @size-40 !important; + width: @size-40 !important; + line-height: @size-40 !important; +} + +.@{class-prefix}-size-30 { + height: @size-30 !important; + width: @size-30 !important; + line-height: @size-30 !important; +} + +.@{class-prefix}-size-24 { + height: @size-20 + 4px !important; + width: @size-20 + 4px !important; + line-height: @size-20 + 4px !important; +} + +.@{class-prefix}-size-20 { + height: @size-20 !important; + width: @size-20 !important; + line-height: @size-20 !important; +} + +.@{class-prefix}-rounded-circle { + .border-radius(@border-radius-circle) !important; +} + +.@{class-prefix}-img-fluid, +.@{class-prefix}-img-thumbnail { + max-width: 100%; + height: auto; +} + +.@{class-prefix}-img-fluid-full { + width: 100%; +} + +/*Social Style*/ +.@{class-prefix}-social-link { + list-style: none; + padding-left: 0; + .flex-display(flex, row, wrap); + .align-items(center); + margin: 0 -5px 10px; + + & li { + padding: 0 5px; + margin-bottom: 5px; + line-height: 1; + } + + & li a, + & li i { + cursor: pointer; + width: @size-30; + height: @size-30; + line-height: @size-30; + font-size: @font-size-lg; + text-align: center; + color: @primary-color; + border: @border-style-base @border-width-base @primary-color; + border-radius: @border-radius-circle; + } + + & li.active a, + & li.active i, + & li a:hover, + & li i:hover, + & li a:focus, + & li i:focus { + color: @white-color; + background: @primary-color; + } + + .@{class-prefix}-card-social & { + margin-bottom: 0; + .justify-content(space-around); + } +} + +/*Display Classes*/ +.@{class-prefix}-d-flex { + display: flex !important; +} + +.@{class-prefix}-d-none { + display: none !important; +} + +.@{class-prefix}-d-inline-block { + display: inline-block !important; +} + +.@{class-prefix}-d-block { + display: block !important; +} + +.@{class-prefix}-d-inline-flex { + display: inline-flex !important; +} + +.@{class-prefix}-flex-1 { + .flex(1); +} + +@media screen and (min-width: @screen-sm-min) { + .@{class-prefix}-d-sm-none { + display: none !important; + } + + .@{class-prefix}-d-sm-inline-block { + display: inline-block !important; + } + + .@{class-prefix}-d-sm-block { + display: block !important; + } + + .@{class-prefix}-d-sm-flex { + display: flex !important; + } + + .@{class-prefix}-d-sm-inline-flex { + display: inline-flex !important; + } +} + +@media screen and (min-width: @screen-md-min) { + .@{class-prefix}-d-md-none { + display: none !important; + } + + .@{class-prefix}-d-md-inline-block { + display: inline-block !important; + } + + .@{class-prefix}-d-md-block { + display: block !important; + } + + .@{class-prefix}-d-md-flex { + display: flex !important; + } + + .@{class-prefix}-d-md-inline-flex { + display: inline-flex !important; + } +} + +@media screen and (min-width: @screen-lg-min) { + .@{class-prefix}-d-lg-none { + display: none !important; + } + + .@{class-prefix}-d-lg-inline-block { + display: inline-block !important; + } + + .@{class-prefix}-d-lg-block { + display: block !important; + } + + .@{class-prefix}-d-lg-flex { + display: flex !important; + } + + .@{class-prefix}-d-lg-inline-flex { + display: inline-flex !important; + } +} + +@media screen and (min-width: @screen-xl-min) { + .@{class-prefix}-d-xl-none { + display: none !important; + } + + .@{class-prefix}-d-xl-inline-block { + display: inline-block !important; + } + + .@{class-prefix}-d-xl-block { + display: block !important; + } + + .@{class-prefix}-d-xl-flex { + display: flex !important; + } + + .@{class-prefix}-d-xl-inline-flex { + display: inline-flex !important; + } +} + +/*Display Flex Classes*/ +.@{class-prefix}-flex-row { + .flex-display(flex, row, wrap) !important; +} + +.@{class-prefix}-flex-column { + .flex-display(flex, column, nowrap) !important; +} + +.@{class-prefix}-flex-nowrap { + flex-wrap: nowrap !important; +} + +.@{class-prefix}-flex-row-reverse { + flex-direction: row-reverse !important; +} + +.@{class-prefix}-flex-column-reverse { + flex-direction: column-reverse !important; +} + +.@{class-prefix}-justify-content-start { + .justify-content(flex-start) !important; +} + +.@{class-prefix}-justify-content-end { + .justify-content(flex-end) !important; +} + +.@{class-prefix}-justify-content-center { + .justify-content(center) !important; +} + +.@{class-prefix}-justify-content-between { + .justify-content(space-between) !important; +} + +.@{class-prefix}-justify-content-around { + .justify-content(space-around) !important; +} + +.@{class-prefix}-align-items-start { + .align-items(flex-start) !important; +} + +.@{class-prefix}-align-items-end { + .align-items(flex-end) !important; +} + +.@{class-prefix}-align-items-center { + .align-items(center) !important; +} + +.@{class-prefix}-align-items-stretch { + .align-items(stretch) !important; +} + +.@{class-prefix}-align-content-start { + .align-content(flex-start) !important; +} + +.@{class-prefix}-align-content-end { + .align-content(flex-end) !important; +} + +.@{class-prefix}-align-content-center { + .align-content(center) !important; +} + +.@{class-prefix}-align-content-between { + .align-content(space-between) !important; +} + +.@{class-prefix}-align-content-around { + .align-content(space-around) !important; +} + +.@{class-prefix}-align-content-stretch { + .align-content(stretch) !important; +} + +.@{class-prefix}-align-self-auto { + .align-self(auto) !important; +} + +.@{class-prefix}-align-self-start { + .align-self(flex-start) !important; +} + +.@{class-prefix}-align-self-end { + .align-self(flex-end) !important; +} + +.@{class-prefix}-align-self-center { + .align-self(center) !important; +} + +.@{class-prefix}-align-self-baseline { + .align-self(baseline) !important; +} + +.@{class-prefix}-align-self-stretch { + .align-self(stretch) !important; +} + +@media (min-width: @screen-sm-min) { + .@{class-prefix}-flex-sm-row { + flex-direction: row !important; + } + + .@{class-prefix}-flex-sm-column { + flex-direction: column !important; + } + + .@{class-prefix}-flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + + .@{class-prefix}-flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + + .@{class-prefix}-flex-sm-wrap { + flex-wrap: wrap !important; + } + + .@{class-prefix}-flex-sm-nowrap { + flex-wrap: nowrap !important; + } + + .@{class-prefix}-flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .@{class-prefix}-justify-content-sm-start { + justify-content: flex-start !important; + } + + .@{class-prefix}-justify-content-sm-end { + justify-content: flex-end !important; + } + + .@{class-prefix}-justify-content-sm-center { + justify-content: center !important; + } + + .@{class-prefix}-justify-content-sm-between { + justify-content: space-between !important; + } + + .@{class-prefix}-justify-content-sm-around { + justify-content: space-around !important; + } + + .@{class-prefix}-align-items-sm-start { + align-items: flex-start !important; + } + + .@{class-prefix}-align-items-sm-end { + align-items: flex-end !important; + } + + .@{class-prefix}-align-items-sm-center { + align-items: center !important; + } + + .@{class-prefix}-align-items-sm-baseline { + align-items: baseline !important; + } + + .@{class-prefix}-align-items-sm-stretch { + align-items: stretch !important; + } + + .@{class-prefix}-align-content-sm-start { + align-content: flex-start !important; + } + + .@{class-prefix}-align-content-sm-end { + align-content: flex-end !important; + } + + .@{class-prefix}-align-content-sm-center { + align-content: center !important; + } + + .@{class-prefix}-align-content-sm-between { + align-content: space-between !important; + } + + .@{class-prefix}-align-content-sm-around { + align-content: space-around !important; + } + + .@{class-prefix}-align-content-sm-stretch { + align-content: stretch !important; + } + + .@{class-prefix}-align-self-sm-auto { + align-self: auto !important; + } + + .@{class-prefix}-align-self-sm-start { + align-self: flex-start !important; + } + + .@{class-prefix}-align-self-sm-end { + align-self: flex-end !important; + } + + .@{class-prefix}-align-self-sm-center { + align-self: center !important; + } + + .@{class-prefix}-align-self-sm-baseline { + align-self: baseline !important; + } + + .@{class-prefix}-align-self-sm-stretch { + align-self: stretch !important; + } +} + +@media (min-width: @screen-md-min) { + .@{class-prefix}-flex-md-row { + flex-direction: row !important; + } + + .@{class-prefix}-flex-md-column { + flex-direction: column !important; + } + + .@{class-prefix}-flex-md-row-reverse { + flex-direction: row-reverse !important; + } + + .@{class-prefix}-flex-md-column-reverse { + flex-direction: column-reverse !important; + } + + .@{class-prefix}-flex-md-wrap { + flex-wrap: wrap !important; + } + + .@{class-prefix}-flex-md-nowrap { + flex-wrap: nowrap !important; + } + + .@{class-prefix}-flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .@{class-prefix}-justify-content-md-start { + justify-content: flex-start !important; + } + + .@{class-prefix}-justify-content-md-end { + justify-content: flex-end !important; + } + + .@{class-prefix}-justify-content-md-center { + justify-content: center !important; + } + + .@{class-prefix}-justify-content-md-between { + justify-content: space-between !important; + } + + .@{class-prefix}-justify-content-md-around { + justify-content: space-around !important; + } + + .@{class-prefix}-align-items-md-start { + align-items: flex-start !important; + } + + .@{class-prefix}-align-items-md-end { + align-items: flex-end !important; + } + + .@{class-prefix}-align-items-md-center { + align-items: center !important; + } + + .@{class-prefix}-align-items-md-baseline { + align-items: baseline !important; + } + + .@{class-prefix}-align-items-md-stretch { + align-items: stretch !important; + } + + .@{class-prefix}-align-content-md-start { + align-content: flex-start !important; + } + + .@{class-prefix}-align-content-md-end { + align-content: flex-end !important; + } + + .@{class-prefix}-align-content-md-center { + align-content: center !important; + } + + .@{class-prefix}-align-content-md-between { + align-content: space-between !important; + } + + .@{class-prefix}-align-content-md-around { + align-content: space-around !important; + } + + .@{class-prefix}-align-content-md-stretch { + align-content: stretch !important; + } + + .@{class-prefix}-align-self-md-auto { + align-self: auto !important; + } + + .@{class-prefix}-align-self-md-start { + align-self: flex-start !important; + } + + .@{class-prefix}-align-self-md-end { + align-self: flex-end !important; + } + + .@{class-prefix}-align-self-md-center { + align-self: center !important; + } + + .@{class-prefix}-align-self-md-baseline { + align-self: baseline !important; + } + + .@{class-prefix}-align-self-md-stretch { + align-self: stretch !important; + } +} + +@media (min-width: @screen-lg-min) { + .@{class-prefix}-flex-lg-row { + flex-direction: row !important; + } + + .@{class-prefix}-flex-lg-column { + flex-direction: column !important; + } + + .@{class-prefix}-flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + + .@{class-prefix}-flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + + .@{class-prefix}-flex-lg-wrap { + flex-wrap: wrap !important; + } + + .@{class-prefix}-flex-lg-nowrap { + flex-wrap: nowrap !important; + } + + .@{class-prefix}-flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .@{class-prefix}-justify-content-lg-start { + justify-content: flex-start !important; + } + + .@{class-prefix}-justify-content-lg-end { + justify-content: flex-end !important; + } + + .@{class-prefix}-justify-content-lg-center { + justify-content: center !important; + } + + .@{class-prefix}-justify-content-lg-between { + justify-content: space-between !important; + } + + .@{class-prefix}-justify-content-lg-around { + justify-content: space-around !important; + } + + .@{class-prefix}-align-items-lg-start { + align-items: flex-start !important; + } + + .@{class-prefix}-align-items-lg-end { + align-items: flex-end !important; + } + + .@{class-prefix}-align-items-lg-center { + align-items: center !important; + } + + .@{class-prefix}-align-items-lg-baseline { + align-items: baseline !important; + } + + .@{class-prefix}-align-items-lg-stretch { + align-items: stretch !important; + } + + .@{class-prefix}-align-content-lg-start { + align-content: flex-start !important; + } + + .@{class-prefix}-align-content-lg-end { + align-content: flex-end !important; + } + + .@{class-prefix}-align-content-lg-center { + align-content: center !important; + } + + .@{class-prefix}-align-content-lg-between { + align-content: space-between !important; + } + + .@{class-prefix}-align-content-lg-around { + align-content: space-around !important; + } + + .@{class-prefix}-align-content-lg-stretch { + align-content: stretch !important; + } + + .@{class-prefix}-align-self-lg-auto { + align-self: auto !important; + } + + .@{class-prefix}-align-self-lg-start { + align-self: flex-start !important; + } + + .@{class-prefix}-align-self-lg-end { + align-self: flex-end !important; + } + + .@{class-prefix}-align-self-lg-center { + align-self: center !important; + } + + .@{class-prefix}-align-self-lg-baseline { + align-self: baseline !important; + } + + .@{class-prefix}-align-self-lg-stretch { + align-self: stretch !important; + } +} + +@media (min-width: @screen-xl-min) { + .@{class-prefix}-flex-xl-row { + flex-direction: row !important; + } + + .@{class-prefix}-flex-xl-column { + flex-direction: column !important; + } + + .@{class-prefix}-flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + + .@{class-prefix}-flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + + .@{class-prefix}-flex-xl-wrap { + flex-wrap: wrap !important; + } + + .@{class-prefix}-flex-xl-nowrap { + flex-wrap: nowrap !important; + } + + .@{class-prefix}-flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .@{class-prefix}-justify-content-xl-start { + justify-content: flex-start !important; + } + + .@{class-prefix}-justify-content-xl-end { + justify-content: flex-end !important; + } + + .@{class-prefix}-justify-content-xl-center { + justify-content: center !important; + } + + .justify-content-xl-between { + justify-content: space-between !important; + } + + .@{class-prefix}-justify-content-xl-around { + justify-content: space-around !important; + } + + .@{class-prefix}-align-items-xl-start { + align-items: flex-start !important; + } + + .@{class-prefix}-align-items-xl-end { + align-items: flex-end !important; + } + + .@{class-prefix}-align-items-xl-center { + align-items: center !important; + } + + .@{class-prefix}-align-items-xl-baseline { + align-items: baseline !important; + } + + .@{class-prefix}-align-items-xl-stretch { + align-items: stretch !important; + } + + .@{class-prefix}-align-content-xl-start { + align-content: flex-start !important; + } + + .@{class-prefix}-align-content-xl-end { + align-content: flex-end !important; + } + + .@{class-prefix}-align-content-xl-center { + align-content: center !important; + } + + .@{class-prefix}-align-content-xl-between { + align-content: space-between !important; + } + + .@{class-prefix}-align-content-xl-around { + align-content: space-around !important; + } + + .@{class-prefix}-align-content-xl-stretch { + align-content: stretch !important; + } + + .@{class-prefix}-align-self-xl-auto { + align-self: auto !important; + } + + .@{class-prefix}-align-self-xl-start { + align-self: flex-start !important; + } + + .@{class-prefix}-align-self-xl-end { + align-self: flex-end !important; + } + + .@{class-prefix}-align-self-xl-center { + align-self: center !important; + } + + .@{class-prefix}-align-self-xl-baseline { + align-self: baseline !important; + } + + .@{class-prefix}-align-self-xl-stretch { + align-self: stretch !important; + } +} + +.@{class-prefix}-float-left { + float: left !important; +} + +.@{class-prefix}-float-right { + float: right !important; +} + +.@{class-prefix}-float-none { + float: none !important; +} + +@media (min-width: @screen-sm-min) { + .@{class-prefix}-float-sm-left { + float: left !important; + } + + .@{class-prefix}-float-sm-right { + float: right !important; + } + + .@{class-prefix}-float-sm-none { + float: none !important; + } +} + +@media (min-width: @screen-md-min) { + .@{class-prefix}-float-md-left { + float: left !important; + } + + .@{class-prefix}-float-md-right { + float: right !important; + } + + .@{class-prefix}-float-md-none { + float: none !important; + } +} + +@media (min-width: @screen-lg-min) { + .@{class-prefix}-float-lg-left { + float: left !important; + } + + .@{class-prefix}-float-lg-right { + float: right !important; + } + + .@{class-prefix}-float-lg-none { + float: none !important; + } +} + +@media (min-width: @screen-xl-min) { + .@{class-prefix}-float-xl-left { + float: left !important; + } + + .@{class-prefix}-float-xl-right { + float: right !important; + } + + .@{class-prefix}-float-xl-none { + float: none !important; + } +} + +.@{class-prefix}-position-static { + position: static !important; +} + +.@{class-prefix}-position-relative { + position: relative !important; +} + +.@{class-prefix}-position-absolute { + position: absolute !important; +} + +.@{class-prefix}-position-fixed { + position: fixed !important; +} + +.@{class-prefix}-position-sticky { + position: sticky !important; +} + +.@{class-prefix}-fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} + +.@{class-prefix}-fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} + +/*Embed Responsive Classes*/ +.@{class-prefix}-embed-responsive { + position: relative; + display: block; + width: 100%; + padding: 0; + overflow: hidden; + + &:before { + display: block; + content: ""; + } + + & .@{class-prefix}-embed-responsive-item, + & iframe, + & embed, + & object, + & video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; + } +} + +.@{class-prefix}-embed-responsive-21by9 { + &:before { + padding-top: 42.8571428571%; + } +} + +.@{class-prefix}-embed-responsive-16by9 { + &:before { + padding-top: 56.25%; + } +} + +.@{class-prefix}-embed-responsive-4by3 { + &:before { + padding-top: 75%; + } +} + +.@{class-prefix}-embed-responsive-1by1 { + &:before { + padding-top: 100%; + } +} + +/*Media Object Classes*/ +.@{class-prefix}-media { + .flex-display(flex, row, wrap); + .align-items(flex-start); + + &-body { + .flex-only(1); + } +} + +/*Overflow styles*/ +.@{class-prefix}-overflow-auto { + overflow: auto; +} + +.@{class-prefix}-z-index-20 { + position: relative; + z-index: 20; +} + +/*Hr style*/ +hr { + border-color: fade(@grey-2, 20%); + margin: 15px 0; +} + +/*Status style*/ +.@{class-prefix}-status-pos { + position: relative; + + & .@{class-prefix}-status { + display: block; + position: absolute; + left: 0; + top: 2px; + z-index: 1; + width: 12px; + height: 12px; + .border-radius(@border-radius-circle); + + &.@{class-prefix}-small { + width: 8px; + height: 8px; + } + + &.@{class-prefix}-status-rtl { + top: -4px; + left: auto; + right: -4px; + } + + &.@{class-prefix}-online { + background-color: @green-color; + .gx-online-effect; + } + + &.@{class-prefix}-offline { + background-color: @white-color; + border: @border-style-base @border-width-base @green-color; + .gx-online-effect; + } + + &.@{class-prefix}-away { + background-color: @yellow-color; + .gx-away-effect; + } + + &.@{class-prefix}-orange { + background-color: @orange-color; + .gx-orange-effect; + } + } +} + +// Box Shadow +.@{class-prefix}-box-shadow { + .box-shadow(@gx-card-shadow); +} + +.@{class-prefix}-no-box-shadow { + .box-shadow(none); +} + +.@{class-prefix}-border-radius-md { + .border-radius(@border-radius-base); +} + +// Vertical Align +.@{class-prefix}-vertical-align-top { + vertical-align: top; +} diff --git a/src/styles/base/gx-margin-padding.less b/src/styles/base/gx-margin-padding.less new file mode 100644 index 000000000..f59bbc086 --- /dev/null +++ b/src/styles/base/gx-margin-padding.less @@ -0,0 +1,1575 @@ +/*Margin Padding Styles*/ +.@{class-prefix}-mb-30 { + margin-bottom: 30px !important; +} + +.@{class-prefix}-m-0 { + margin: 0 !important; +} + +.@{class-prefix}-mt-0, +.@{class-prefix}-my-0 { + margin-top: 0 !important; +} + +.@{class-prefix}-mr-0, +.@{class-prefix}-mx-0 { + margin-right: 0 !important; +} + +.@{class-prefix}-mb-0, +.@{class-prefix}-my-0 { + margin-bottom: 0 !important; +} + +.@{class-prefix}-ml-0, +.@{class-prefix}-mx-0 { + margin-left: 0 !important; +} + +.@{class-prefix}-m-1 { + margin: 0.25rem !important; +} + +.@{class-prefix}-mt-1, +.@{class-prefix}-my-1 { + margin-top: 0.25rem !important; +} + +.@{class-prefix}-mr-1, +.@{class-prefix}-mx-1 { + margin-right: 0.25rem !important; +} + +.@{class-prefix}-mb-1, +.@{class-prefix}-my-1 { + margin-bottom: 0.25rem !important; +} + +.@{class-prefix}-ml-1, +.@{class-prefix}-mx-1 { + margin-left: 0.25rem !important; +} + +.@{class-prefix}-m-2 { + margin: 0.5rem !important; +} + +.@{class-prefix}-mt-2, +.@{class-prefix}-my-2 { + margin-top: 0.5rem !important; +} + +.@{class-prefix}-mr-2, +.@{class-prefix}-mx-2 { + margin-right: 0.5rem !important; +} + +.@{class-prefix}-mb-2, +.@{class-prefix}-my-2 { + margin-bottom: 0.5rem !important; +} + +.@{class-prefix}-ml-2, +.@{class-prefix}-mx-2 { + margin-left: 0.5rem !important; +} + +.@{class-prefix}-m-3 { + margin: 1rem !important; +} + +.@{class-prefix}-mt-3, +.@{class-prefix}-my-3 { + margin-top: 1rem !important; +} + +.@{class-prefix}-mr-3, +.@{class-prefix}-mx-3 { + margin-right: 1rem !important; +} + +.@{class-prefix}-mb-3, +.@{class-prefix}-my-3 { + margin-bottom: 1rem !important; +} + +.@{class-prefix}-ml-3, +.@{class-prefix}-mx-3 { + margin-left: 1rem !important; +} + +.@{class-prefix}-m-4 { + margin: 1.5rem !important; +} + +.@{class-prefix}-mt-4, +.@{class-prefix}-my-4 { + margin-top: 1.5rem !important; +} + +.@{class-prefix}-mr-4, +.@{class-prefix}-mx-4 { + margin-right: 1.5rem !important; +} + +.@{class-prefix}-mb-4, +.@{class-prefix}-my-4 { + margin-bottom: 1.5rem !important; +} + +.@{class-prefix}-ml-4, +.@{class-prefix}-mx-4 { + margin-left: 1.5rem !important; +} + +.@{class-prefix}-m-5 { + margin: 3rem !important; +} + +.@{class-prefix}-mt-5, +.@{class-prefix}-my-5 { + margin-top: 3rem !important; +} + +.@{class-prefix}-mr-5, +.@{class-prefix}-mx-5 { + margin-right: 3rem !important; +} + +.@{class-prefix}-mb-5, +.@{class-prefix}-my-5 { + margin-bottom: 3rem !important; +} + +.@{class-prefix}-ml-5, +.@{class-prefix}-mx-5 { + margin-left: 3rem !important; +} + +.@{class-prefix}-p-0 { + padding: 0 !important; +} + +.@{class-prefix}-pt-0, +.@{class-prefix}-py-0 { + padding-top: 0 !important; +} + +.@{class-prefix}-pr-0, +.@{class-prefix}-px-0 { + padding-right: 0 !important; +} + +.@{class-prefix}-pb-0, +.@{class-prefix}-py-0 { + padding-bottom: 0 !important; +} + +.@{class-prefix}-pl-0, +.@{class-prefix}-px-0 { + padding-left: 0 !important; +} + +.@{class-prefix}-p-1 { + padding: 0.25rem !important; +} + +.@{class-prefix}-pt-1, +.@{class-prefix}-py-1 { + padding-top: 0.25rem !important; +} + +.@{class-prefix}-pr-1, +.@{class-prefix}-px-1 { + padding-right: 0.25rem !important; +} + +.@{class-prefix}-pb-1, +.@{class-prefix}-py-1 { + padding-bottom: 0.25rem !important; +} + +.@{class-prefix}-pl-1, +.@{class-prefix}-px-1 { + padding-left: 0.25rem !important; +} + +.@{class-prefix}-p-2 { + padding: 0.5rem !important; +} + +.@{class-prefix}-pt-2, +.@{class-prefix}-py-2 { + padding-top: 0.5rem !important; +} + +.@{class-prefix}-pr-2, +.@{class-prefix}-px-2 { + padding-right: 0.5rem !important; +} + +.@{class-prefix}-pb-2, +.@{class-prefix}-py-2 { + padding-bottom: 0.5rem !important; +} + +.@{class-prefix}-pl-2, +.@{class-prefix}-px-2 { + padding-left: 0.5rem !important; +} + +.@{class-prefix}-p-3 { + padding: 1rem !important; +} + +.@{class-prefix}-pt-3, +.@{class-prefix}-py-3 { + padding-top: 1rem !important; +} + +.@{class-prefix}-pr-3, +.@{class-prefix}-px-3 { + padding-right: 1rem !important; +} + +.@{class-prefix}-pb-3, +.@{class-prefix}-py-3 { + padding-bottom: 1rem !important; +} + +.@{class-prefix}-pl-3, +.@{class-prefix}-px-3 { + padding-left: 1rem !important; +} + +.@{class-prefix}-p-4 { + padding: 1.5rem !important; +} + +.@{class-prefix}-pt-4, +.@{class-prefix}-py-4 { + padding-top: 1.5rem !important; +} + +.@{class-prefix}-pr-4, +.@{class-prefix}-px-4 { + padding-right: 1.5rem !important; +} + +.@{class-prefix}-pb-4, +.@{class-prefix}-py-4 { + padding-bottom: 1.5rem !important; +} + +.@{class-prefix}-pl-4, +.@{class-prefix}-px-4 { + padding-left: 1.5rem !important; +} + +.@{class-prefix}-p-5 { + padding: 2rem !important; +} + +.@{class-prefix}-pt-5, +.@{class-prefix}-py-5 { + padding-top: 2rem !important; +} + +.@{class-prefix}-pr-5, +.@{class-prefix}-px-5 { + padding-right: 2rem !important; +} + +.@{class-prefix}-pb-5, +.@{class-prefix}-py-5 { + padding-bottom: 2rem !important; +} + +.@{class-prefix}-pl-5, +.@{class-prefix}-px-5 { + padding-left: 2rem !important; +} + +.@{class-prefix}-m-auto { + margin: auto !important; +} + +.@{class-prefix}-mt-auto, +.@{class-prefix}-my-auto { + margin-top: auto !important; +} + +.@{class-prefix}-mr-auto, +.@{class-prefix}-mx-auto { + margin-right: auto !important; +} + +.@{class-prefix}-mb-auto, +.@{class-prefix}-my-auto { + margin-bottom: auto !important; +} + +.@{class-prefix}-ml-auto, +.@{class-prefix}-mx-auto { + margin-left: auto !important; +} + +@media (min-width: @screen-sm-min) { + .@{class-prefix}-m-sm-0 { + margin: 0 !important; + } + + .@{class-prefix}-mt-sm-0, + .@{class-prefix}-my-sm-0 { + margin-top: 0 !important; + } + + .@{class-prefix}-mr-sm-0, + .@{class-prefix}-mx-sm-0 { + margin-right: 0 !important; + } + + .@{class-prefix}-mb-sm-0, + .@{class-prefix}-my-sm-0 { + margin-bottom: 0 !important; + } + + .@{class-prefix}-ml-sm-0, + .@{class-prefix}-mx-sm-0 { + margin-left: 0 !important; + } + + .@{class-prefix}-m-sm-1 { + margin: 0.25rem !important; + } + + .@{class-prefix}-mt-sm-1, + .@{class-prefix}-my-sm-1 { + margin-top: 0.25rem !important; + } + + .@{class-prefix}-mr-sm-1, + .@{class-prefix}-mx-sm-1 { + margin-right: 0.25rem !important; + } + + .@{class-prefix}-mb-sm-1, + .@{class-prefix}-my-sm-1 { + margin-bottom: 0.25rem !important; + } + + .@{class-prefix}-ml-sm-1, + .@{class-prefix}-mx-sm-1 { + margin-left: 0.25rem !important; + } + + .@{class-prefix}-m-sm-2 { + margin: 0.5rem !important; + } + + .@{class-prefix}-mt-sm-2, + .@{class-prefix}-my-sm-2 { + margin-top: 0.5rem !important; + } + + .@{class-prefix}-mr-sm-2, + .@{class-prefix}-mx-sm-2 { + margin-right: 0.5rem !important; + } + + .@{class-prefix}-mb-sm-2, + .@{class-prefix}-my-sm-2 { + margin-bottom: 0.5rem !important; + } + + .@{class-prefix}-ml-sm-2, + .@{class-prefix}-mx-sm-2 { + margin-left: 0.5rem !important; + } + + .@{class-prefix}-m-sm-3 { + margin: 1rem !important; + } + + .@{class-prefix}-mt-sm-3, + .@{class-prefix}-my-sm-3 { + margin-top: 1rem !important; + } + + .@{class-prefix}-mr-sm-3, + .@{class-prefix}-mx-sm-3 { + margin-right: 1rem !important; + } + + .@{class-prefix}-mb-sm-3, + .@{class-prefix}-my-sm-3 { + margin-bottom: 1rem !important; + } + + .@{class-prefix}-ml-sm-3, + .@{class-prefix}-mx-sm-3 { + margin-left: 1rem !important; + } + + .@{class-prefix}-m-sm-4 { + margin: 1.5rem !important; + } + + .@{class-prefix}-mt-sm-4, + .@{class-prefix}-my-sm-4 { + margin-top: 1.5rem !important; + } + + .@{class-prefix}-mr-sm-4, + .@{class-prefix}-mx-sm-4 { + margin-right: 1.5rem !important; + } + + .@{class-prefix}-mb-sm-4, + .@{class-prefix}-my-sm-4 { + margin-bottom: 1.5rem !important; + } + + .@{class-prefix}-ml-sm-4, + .@{class-prefix}-mx-sm-4 { + margin-left: 1.5rem !important; + } + + .@{class-prefix}-m-sm-5 { + margin: 3rem !important; + } + + .@{class-prefix}-mt-sm-5, + .@{class-prefix}-my-sm-5 { + margin-top: 3rem !important; + } + + .@{class-prefix}-mr-sm-5, + .@{class-prefix}-mx-sm-5 { + margin-right: 3rem !important; + } + + .@{class-prefix}-mb-sm-5, + .@{class-prefix}-my-sm-5 { + margin-bottom: 3rem !important; + } + + .@{class-prefix}-ml-sm-5, + .@{class-prefix}-mx-sm-5 { + margin-left: 3rem !important; + } + + .@{class-prefix}-p-sm-0 { + padding: 0 !important; + } + + .@{class-prefix}-pt-sm-0, + .@{class-prefix}-py-sm-0 { + padding-top: 0 !important; + } + + .@{class-prefix}-pr-sm-0, + .@{class-prefix}-px-sm-0 { + padding-right: 0 !important; + } + + .@{class-prefix}-pb-sm-0, + .@{class-prefix}-py-sm-0 { + padding-bottom: 0 !important; + } + + .@{class-prefix}-pl-sm-0, + .@{class-prefix}-px-sm-0 { + padding-left: 0 !important; + } + + .@{class-prefix}-p-sm-1 { + padding: 0.25rem !important; + } + + .@{class-prefix}-pt-sm-1, + .@{class-prefix}-py-sm-1 { + padding-top: 0.25rem !important; + } + + .@{class-prefix}-pr-sm-1, + .@{class-prefix}-px-sm-1 { + padding-right: 0.25rem !important; + } + + .@{class-prefix}-pb-sm-1, + .@{class-prefix}-py-sm-1 { + padding-bottom: 0.25rem !important; + } + + .@{class-prefix}-pl-sm-1, + .@{class-prefix}-px-sm-1 { + padding-left: 0.25rem !important; + } + + .@{class-prefix}-p-sm-2 { + padding: 0.5rem !important; + } + + .@{class-prefix}-pt-sm-2, + .@{class-prefix}-py-sm-2 { + padding-top: 0.5rem !important; + } + + .@{class-prefix}-pr-sm-2, + .@{class-prefix}-px-sm-2 { + padding-right: 0.5rem !important; + } + + .@{class-prefix}-pb-sm-2, + .@{class-prefix}-py-sm-2 { + padding-bottom: 0.5rem !important; + } + + .@{class-prefix}-pl-sm-2, + .@{class-prefix}-px-sm-2 { + padding-left: 0.5rem !important; + } + + .@{class-prefix}-p-sm-3 { + padding: 1rem !important; + } + + .@{class-prefix}-pt-sm-3, + .@{class-prefix}-py-sm-3 { + padding-top: 1rem !important; + } + + .@{class-prefix}-pr-sm-3, + .@{class-prefix}-px-sm-3 { + padding-right: 1rem !important; + } + + .@{class-prefix}-pb-sm-3, + .@{class-prefix}-py-sm-3 { + padding-bottom: 1rem !important; + } + + .@{class-prefix}-pl-sm-3, + .@{class-prefix}-px-sm-3 { + padding-left: 1rem !important; + } + + .@{class-prefix}-p-sm-4 { + padding: 1.5rem !important; + } + + .@{class-prefix}-pt-sm-4, + .@{class-prefix}-py-sm-4 { + padding-top: 1.5rem !important; + } + + .@{class-prefix}-pr-sm-4, + .@{class-prefix}-px-sm-4 { + padding-right: 1.5rem !important; + } + + .@{class-prefix}-pb-sm-4, + .@{class-prefix}-py-sm-4 { + padding-bottom: 1.5rem !important; + } + + .@{class-prefix}-pl-sm-4, + .@{class-prefix}-px-sm-4 { + padding-left: 1.5rem !important; + } + + .@{class-prefix}-p-sm-5 { + padding: 2rem !important; + } + + .@{class-prefix}-pt-sm-5, + .@{class-prefix}-py-sm-5 { + padding-top: 2rem !important; + } + + .@{class-prefix}-pr-sm-5, + .@{class-prefix}-px-sm-5 { + padding-right: 2rem !important; + } + + .@{class-prefix}-pb-sm-5, + .py-sm-5 { + padding-bottom: 2rem !important; + } + + .@{class-prefix}-pl-sm-5, + .@{class-prefix}-px-sm-5 { + padding-left: 2rem !important; + } + + .@{class-prefix}-m-sm-auto { + margin: auto !important; + } + + .@{class-prefix}-mt-sm-auto, + .@{class-prefix}-my-sm-auto { + margin-top: auto !important; + } + + .@{class-prefix}-mr-sm-auto, + .@{class-prefix}-mx-sm-auto { + margin-right: auto !important; + } + + .@{class-prefix}-mb-sm-auto, + .@{class-prefix}-my-sm-auto { + margin-bottom: auto !important; + } + + .@{class-prefix}-ml-sm-auto, + .@{class-prefix}-mx-sm-auto { + margin-left: auto !important; + } +} + +// Medium screen / desktop - 768 +@media (min-width: @screen-md-min) { + .@{class-prefix}-m-md-0 { + margin: 0 !important; + } + + .@{class-prefix}-mt-md-0, + .@{class-prefix}-my-md-0 { + margin-top: 0 !important; + } + + .@{class-prefix}-mr-md-0, + .@{class-prefix}-mx-md-0 { + margin-right: 0 !important; + } + + .@{class-prefix}-mb-md-0, + .@{class-prefix}-my-md-0 { + margin-bottom: 0 !important; + } + + .@{class-prefix}-ml-md-0, + .@{class-prefix}-mx-md-0 { + margin-left: 0 !important; + } + + .@{class-prefix}-m-md-1 { + margin: 0.25rem !important; + } + + .@{class-prefix}-mt-md-1, + .@{class-prefix}-my-md-1 { + margin-top: 0.25rem !important; + } + + .@{class-prefix}-mr-md-1, + .@{class-prefix}-mx-md-1 { + margin-right: 0.25rem !important; + } + + .@{class-prefix}-mb-md-1, + .@{class-prefix}-my-md-1 { + margin-bottom: 0.25rem !important; + } + + .@{class-prefix}-ml-md-1, + .@{class-prefix}-mx-md-1 { + margin-left: 0.25rem !important; + } + + .@{class-prefix}-m-md-2 { + margin: 0.5rem !important; + } + + .@{class-prefix}-mt-md-2, + .@{class-prefix}-my-md-2 { + margin-top: 0.5rem !important; + } + + .@{class-prefix}-mr-md-2, + .@{class-prefix}-mx-md-2 { + margin-right: 0.5rem !important; + } + + .@{class-prefix}-mb-md-2, + .@{class-prefix}-my-md-2 { + margin-bottom: 0.5rem !important; + } + + .@{class-prefix}-ml-md-2, + .@{class-prefix}-mx-md-2 { + margin-left: 0.5rem !important; + } + + .@{class-prefix}-m-md-3 { + margin: 1rem !important; + } + + .@{class-prefix}-mt-md-3, + .@{class-prefix}-my-md-3 { + margin-top: 1rem !important; + } + + .@{class-prefix}-mr-md-3, + .@{class-prefix}-mx-md-3 { + margin-right: 1rem !important; + } + + .@{class-prefix}-mb-md-3, + .@{class-prefix}-my-md-3 { + margin-bottom: 1rem !important; + } + + .@{class-prefix}-ml-md-3, + .@{class-prefix}-mx-md-3 { + margin-left: 1rem !important; + } + + .@{class-prefix}-m-md-4 { + margin: 1.5rem !important; + } + + .@{class-prefix}-mt-md-4, + .@{class-prefix}-my-md-4 { + margin-top: 1.5rem !important; + } + + .@{class-prefix}-mr-md-4, + .@{class-prefix}-mx-md-4 { + margin-right: 1.5rem !important; + } + + .@{class-prefix}-mb-md-4, + .@{class-prefix}-my-md-4 { + margin-bottom: 1.5rem !important; + } + + .@{class-prefix}-ml-md-4, + .@{class-prefix}-mx-md-4 { + margin-left: 1.5rem !important; + } + + .@{class-prefix}-m-md-5 { + margin: 3rem !important; + } + + .@{class-prefix}-mt-md-5, + .@{class-prefix}-my-md-5 { + margin-top: 3rem !important; + } + + .@{class-prefix}-mr-md-5, + .@{class-prefix}-mx-md-5 { + margin-right: 3rem !important; + } + + .@{class-prefix}-mb-md-5, + .@{class-prefix}-my-md-5 { + margin-bottom: 3rem !important; + } + + .@{class-prefix}-ml-md-5, + .@{class-prefix}-mx-md-5 { + margin-left: 3rem !important; + } + + .@{class-prefix}-p-md-0 { + padding: 0 !important; + } + + .@{class-prefix}-pt-md-0, + .@{class-prefix}-py-md-0 { + padding-top: 0 !important; + } + + .@{class-prefix}-pr-md-0, + .@{class-prefix}-px-md-0 { + padding-right: 0 !important; + } + + .@{class-prefix}-pb-md-0, + .@{class-prefix}-py-md-0 { + padding-bottom: 0 !important; + } + + .@{class-prefix}-pl-md-0, + .@{class-prefix}-px-md-0 { + padding-left: 0 !important; + } + + .@{class-prefix}-p-md-1 { + padding: 0.25rem !important; + } + + .@{class-prefix}-pt-md-1, + .@{class-prefix}-py-md-1 { + padding-top: 0.25rem !important; + } + + .@{class-prefix}-pr-md-1, + .@{class-prefix}-px-md-1 { + padding-right: 0.25rem !important; + } + + .@{class-prefix}-pb-md-1, + .@{class-prefix}-py-md-1 { + padding-bottom: 0.25rem !important; + } + + .@{class-prefix}-pl-md-1, + .@{class-prefix}-px-md-1 { + padding-left: 0.25rem !important; + } + + .@{class-prefix}-p-md-2 { + padding: 0.5rem !important; + } + + .@{class-prefix}-pt-md-2, + .@{class-prefix}-py-md-2 { + padding-top: 0.5rem !important; + } + + .@{class-prefix}-pr-md-2, + .@{class-prefix}-px-md-2 { + padding-right: 0.5rem !important; + } + + .@{class-prefix}-pb-md-2, + .@{class-prefix}-py-md-2 { + padding-bottom: 0.5rem !important; + } + + .@{class-prefix}-pl-md-2, + .@{class-prefix}-px-md-2 { + padding-left: 0.5rem !important; + } + + .@{class-prefix}-p-md-3 { + padding: 1rem !important; + } + + .@{class-prefix}-pt-md-3, + .@{class-prefix}-py-md-3 { + padding-top: 1rem !important; + } + + .@{class-prefix}-pr-md-3, + .@{class-prefix}-px-md-3 { + padding-right: 1rem !important; + } + + .@{class-prefix}-pb-md-3, + .@{class-prefix}-py-md-3 { + padding-bottom: 1rem !important; + } + + .@{class-prefix}-pl-md-3, + .@{class-prefix}-px-md-3 { + padding-left: 1rem !important; + } + + .@{class-prefix}-p-md-4 { + padding: 1.5rem !important; + } + + .@{class-prefix}-pt-md-4, + .@{class-prefix}-py-md-4 { + padding-top: 1.5rem !important; + } + + .@{class-prefix}-pr-md-4, + .@{class-prefix}-px-md-4 { + padding-right: 1.5rem !important; + } + + .@{class-prefix}-pb-md-4, + .@{class-prefix}-py-md-4 { + padding-bottom: 1.5rem !important; + } + + .@{class-prefix}-pl-md-4, + .@{class-prefix}-px-md-4 { + padding-left: 1.5rem !important; + } + + .@{class-prefix}-p-md-5 { + padding: 2rem !important; + } + + .@{class-prefix}-pt-md-5, + .@{class-prefix}-py-md-5 { + padding-top: 2rem !important; + } + + .@{class-prefix}-pr-md-5, + .@{class-prefix}-px-md-5 { + padding-right: 2rem !important; + } + + .@{class-prefix}-pb-md-5, + .@{class-prefix}-py-md-5 { + padding-bottom: 2rem !important; + } + + .@{class-prefix}-pl-md-5, + .@{class-prefix}-px-md-5 { + padding-left: 2rem !important; + } + + .@{class-prefix}-m-md-auto { + margin: auto !important; + } + + .@{class-prefix}-mt-md-auto, + .@{class-prefix}-my-md-auto { + margin-top: auto !important; + } + + .@{class-prefix}-mr-md-auto, + .@{class-prefix}-mx-md-auto { + margin-right: auto !important; + } + + .@{class-prefix}-mb-md-auto, + .@{class-prefix}-my-md-auto { + margin-bottom: auto !important; + } + + .@{class-prefix}-ml-md-auto, + .@{class-prefix}-mx-md-auto { + margin-left: auto !important; + } +} + +// Large screen / wide desktop - 992 +@media (min-width: @screen-lg-min) { + .@{class-prefix}-m-lg-0 { + margin: 0 !important; + } + + .@{class-prefix}-mt-lg-0, + .@{class-prefix}-my-lg-0 { + margin-top: 0 !important; + } + + .@{class-prefix}-mr-lg-0, + .@{class-prefix}-mx-lg-0 { + margin-right: 0 !important; + } + + .@{class-prefix}-mb-lg-0, + .@{class-prefix}-my-lg-0 { + margin-bottom: 0 !important; + } + + .@{class-prefix}-ml-lg-0, + .@{class-prefix}-mx-lg-0 { + margin-left: 0 !important; + } + + .@{class-prefix}-m-lg-1 { + margin: 0.25rem !important; + } + + .@{class-prefix}-mt-lg-1, + .my-lg-1 { + margin-top: 0.25rem !important; + } + + .@{class-prefix}-mr-lg-1, + .@{class-prefix}-mx-lg-1 { + margin-right: 0.25rem !important; + } + + .@{class-prefix}-mb-lg-1, + .@{class-prefix}-my-lg-1 { + margin-bottom: 0.25rem !important; + } + + .@{class-prefix}-ml-lg-1, + .@{class-prefix}-mx-lg-1 { + margin-left: 0.25rem !important; + } + + .@{class-prefix}-m-lg-2 { + margin: 0.5rem !important; + } + + .@{class-prefix}-mt-lg-2, + .@{class-prefix}-my-lg-2 { + margin-top: 0.5rem !important; + } + + .@{class-prefix}-mr-lg-2, + .@{class-prefix}-mx-lg-2 { + margin-right: 0.5rem !important; + } + + .@{class-prefix}-mb-lg-2, + .@{class-prefix}-my-lg-2 { + margin-bottom: 0.5rem !important; + } + + .@{class-prefix}-ml-lg-2, + .@{class-prefix}-mx-lg-2 { + margin-left: 0.5rem !important; + } + + .@{class-prefix}-m-lg-3 { + margin: 1rem !important; + } + + .@{class-prefix}-mt-lg-3, + .@{class-prefix}-my-lg-3 { + margin-top: 1rem !important; + } + + .@{class-prefix}-mr-lg-3, + .@{class-prefix}-mx-lg-3 { + margin-right: 1rem !important; + } + + .@{class-prefix}-mb-lg-3, + .@{class-prefix}-my-lg-3 { + margin-bottom: 1rem !important; + } + + .@{class-prefix}-ml-lg-3, + .@{class-prefix}-mx-lg-3 { + margin-left: 1rem !important; + } + + .@{class-prefix}-m-lg-4 { + margin: 1.5rem !important; + } + + .@{class-prefix}-mt-lg-4, + .@{class-prefix}-my-lg-4 { + margin-top: 1.5rem !important; + } + + .@{class-prefix}-mr-lg-4, + .@{class-prefix}-mx-lg-4 { + margin-right: 1.5rem !important; + } + + .@{class-prefix}-mb-lg-4, + .@{class-prefix}-my-lg-4 { + margin-bottom: 1.5rem !important; + } + + .@{class-prefix}-ml-lg-4, + .@{class-prefix}-mx-lg-4 { + margin-left: 1.5rem !important; + } + + .@{class-prefix}-m-lg-5 { + margin: 3rem !important; + } + + .@{class-prefix}-mt-lg-5, + .@{class-prefix}-my-lg-5 { + margin-top: 3rem !important; + } + + .@{class-prefix}-mr-lg-5, + .@{class-prefix}-mx-lg-5 { + margin-right: 3rem !important; + } + + .@{class-prefix}-mb-lg-5, + .@{class-prefix}-my-lg-5 { + margin-bottom: 3rem !important; + } + + .@{class-prefix}-ml-lg-5, + .@{class-prefix}-mx-lg-5 { + margin-left: 3rem !important; + } + + .@{class-prefix}-p-lg-0 { + padding: 0 !important; + } + + .@{class-prefix}-pt-lg-0, + .@{class-prefix}-py-lg-0 { + padding-top: 0 !important; + } + + .@{class-prefix}-pr-lg-0, + .@{class-prefix}-px-lg-0 { + padding-right: 0 !important; + } + + .@{class-prefix}-pb-lg-0, + .@{class-prefix}-py-lg-0 { + padding-bottom: 0 !important; + } + + .@{class-prefix}-pl-lg-0, + .@{class-prefix}-px-lg-0 { + padding-left: 0 !important; + } + + .@{class-prefix}-p-lg-1 { + padding: 0.25rem !important; + } + + .@{class-prefix}-pt-lg-1, + .@{class-prefix}-py-lg-1 { + padding-top: 0.25rem !important; + } + + .@{class-prefix}-pr-lg-1, + .@{class-prefix}-px-lg-1 { + padding-right: 0.25rem !important; + } + + .@{class-prefix}-pb-lg-1, + .@{class-prefix}-py-lg-1 { + padding-bottom: 0.25rem !important; + } + + .@{class-prefix}-pl-lg-1, + .@{class-prefix}-px-lg-1 { + padding-left: 0.25rem !important; + } + + .@{class-prefix}-p-lg-2 { + padding: 0.5rem !important; + } + + .@{class-prefix}-pt-lg-2, + .@{class-prefix}-py-lg-2 { + padding-top: 0.5rem !important; + } + + .@{class-prefix}-pr-lg-2, + .@{class-prefix}-px-lg-2 { + padding-right: 0.5rem !important; + } + + .@{class-prefix}-pb-lg-2, + .@{class-prefix}-py-lg-2 { + padding-bottom: 0.5rem !important; + } + + .@{class-prefix}-pl-lg-2, + .@{class-prefix}-px-lg-2 { + padding-left: 0.5rem !important; + } + + .@{class-prefix}-p-lg-3 { + padding: 1rem !important; + } + + .@{class-prefix}-pt-lg-3, + .@{class-prefix}-py-lg-3 { + padding-top: 1rem !important; + } + + .@{class-prefix}-pr-lg-3, + .@{class-prefix}-px-lg-3 { + padding-right: 1rem !important; + } + + .@{class-prefix}-pb-lg-3, + .@{class-prefix}-py-lg-3 { + padding-bottom: 1rem !important; + } + + .@{class-prefix}-pl-lg-3, + .@{class-prefix}-px-lg-3 { + padding-left: 1rem !important; + } + + .@{class-prefix}-p-lg-4 { + padding: 1.5rem !important; + } + + .@{class-prefix}-pt-lg-4, + .@{class-prefix}-py-lg-4 { + padding-top: 1.5rem !important; + } + + .@{class-prefix}-pr-lg-4, + .@{class-prefix}-px-lg-4 { + padding-right: 1.5rem !important; + } + + .@{class-prefix}-pb-lg-4, + .@{class-prefix}-py-lg-4 { + padding-bottom: 1.5rem !important; + } + + .@{class-prefix}-pl-lg-4, + .@{class-prefix}-px-lg-4 { + padding-left: 1.5rem !important; + } + + .@{class-prefix}-p-lg-5 { + padding: 2rem !important; + } + + .@{class-prefix}-pt-lg-5, + .@{class-prefix}-py-lg-5 { + padding-top: 2rem !important; + } + + .@{class-prefix}-pr-lg-5, + .@{class-prefix}-px-lg-5 { + padding-right: 2rem !important; + } + + .@{class-prefix}-pb-lg-5, + .@{class-prefix}-py-lg-5 { + padding-bottom: 2rem !important; + } + + .@{class-prefix}-pl-lg-5, + .@{class-prefix}-px-lg-5 { + padding-left: 2rem !important; + } + + .@{class-prefix}-m-lg-auto { + margin: auto !important; + } + + .@{class-prefix}-mt-lg-auto, + .@{class-prefix}-my-lg-auto { + margin-top: auto !important; + } + + .@{class-prefix}-mr-lg-auto, + .@{class-prefix}-mx-lg-auto { + margin-right: auto !important; + } + + .@{class-prefix}-mb-lg-auto, + .@{class-prefix}-my-lg-auto { + margin-bottom: auto !important; + } + + .@{class-prefix}-ml-lg-auto, + .@{class-prefix}-mx-lg-auto { + margin-left: auto !important; + } +} + +// Extra large screen / full hd - 1200 +@media (min-width: @screen-xl-min) { + .@{class-prefix}-m-xl-0 { + margin: 0 !important; + } + + .@{class-prefix}-mt-xl-0, + .@{class-prefix}-my-xl-0 { + margin-top: 0 !important; + } + + .@{class-prefix}-mr-xl-0, + .@{class-prefix}-mx-xl-0 { + margin-right: 0 !important; + } + + .@{class-prefix}-mb-xl-0, + .@{class-prefix}-my-xl-0 { + margin-bottom: 0 !important; + } + + .@{class-prefix}-ml-xl-0, + .@{class-prefix}-mx-xl-0 { + margin-left: 0 !important; + } + + .@{class-prefix}-m-xl-1 { + margin: 0.25rem !important; + } + + .@{class-prefix}-mt-xl-1, + .@{class-prefix}-my-xl-1 { + margin-top: 0.25rem !important; + } + + .@{class-prefix}-mr-xl-1, + .@{class-prefix}-mx-xl-1 { + margin-right: 0.25rem !important; + } + + .@{class-prefix}-mb-xl-1, + .@{class-prefix}-my-xl-1 { + margin-bottom: 0.25rem !important; + } + + .@{class-prefix}-ml-xl-1, + .@{class-prefix}-mx-xl-1 { + margin-left: 0.25rem !important; + } + + .@{class-prefix}-m-xl-2 { + margin: 0.5rem !important; + } + + .@{class-prefix}-mt-xl-2, + .@{class-prefix}-my-xl-2 { + margin-top: 0.5rem !important; + } + + .@{class-prefix}-mr-xl-2, + .@{class-prefix}-mx-xl-2 { + margin-right: 0.5rem !important; + } + + .@{class-prefix}-mb-xl-2, + .@{class-prefix}-my-xl-2 { + margin-bottom: 0.5rem !important; + } + + .@{class-prefix}-ml-xl-2, + .@{class-prefix}-mx-xl-2 { + margin-left: 0.5rem !important; + } + + .@{class-prefix}-m-xl-3 { + margin: 1rem !important; + } + + .@{class-prefix}-mt-xl-3, + .@{class-prefix}-my-xl-3 { + margin-top: 1rem !important; + } + + .@{class-prefix}-mr-xl-3, + .@{class-prefix}-mx-xl-3 { + margin-right: 1rem !important; + } + + .@{class-prefix}-mb-xl-3, + .@{class-prefix}-my-xl-3 { + margin-bottom: 1rem !important; + } + + .@{class-prefix}-ml-xl-3, + .@{class-prefix}-mx-xl-3 { + margin-left: 1rem !important; + } + + .@{class-prefix}-m-xl-4 { + margin: 1.5rem !important; + } + + .@{class-prefix}-mt-xl-4, + .@{class-prefix}-my-xl-4 { + margin-top: 1.5rem !important; + } + + .@{class-prefix}-mr-xl-4, + .@{class-prefix}-mx-xl-4 { + margin-right: 1.5rem !important; + } + + .@{class-prefix}-mb-xl-4, + .@{class-prefix}-my-xl-4 { + margin-bottom: 1.5rem !important; + } + + .@{class-prefix}-ml-xl-4, + .@{class-prefix}-mx-xl-4 { + margin-left: 1.5rem !important; + } + + .@{class-prefix}-m-xl-5 { + margin: 3rem !important; + } + + .@{class-prefix}-mt-xl-5, + .@{class-prefix}-my-xl-5 { + margin-top: 3rem !important; + } + + .@{class-prefix}-mr-xl-5, + .@{class-prefix}-mx-xl-5 { + margin-right: 3rem !important; + } + + .@{class-prefix}-mb-xl-5, + .@{class-prefix}-my-xl-5 { + margin-bottom: 3rem !important; + } + + .@{class-prefix}-ml-xl-5, + .@{class-prefix}-mx-xl-5 { + margin-left: 3rem !important; + } + + .@{class-prefix}-p-xl-0 { + padding: 0 !important; + } + + .@{class-prefix}-pt-xl-0, + .@{class-prefix}-py-xl-0 { + padding-top: 0 !important; + } + + .@{class-prefix}-pr-xl-0, + .@{class-prefix}-px-xl-0 { + padding-right: 0 !important; + } + + .@{class-prefix}-pb-xl-0, + .@{class-prefix}-py-xl-0 { + padding-bottom: 0 !important; + } + + .@{class-prefix}-pl-xl-0, + .@{class-prefix}-px-xl-0 { + padding-left: 0 !important; + } + + .@{class-prefix}-p-xl-1 { + padding: 0.25rem !important; + } + + .@{class-prefix}-pt-xl-1, + .@{class-prefix}-py-xl-1 { + padding-top: 0.25rem !important; + } + + .@{class-prefix}-pr-xl-1, + .@{class-prefix}-px-xl-1 { + padding-right: 0.25rem !important; + } + + .@{class-prefix}-pb-xl-1, + .@{class-prefix}-py-xl-1 { + padding-bottom: 0.25rem !important; + } + + .@{class-prefix}-pl-xl-1, + .@{class-prefix}-px-xl-1 { + padding-left: 0.25rem !important; + } + + .@{class-prefix}-p-xl-2 { + padding: 0.5rem !important; + } + + .@{class-prefix}-pt-xl-2, + .@{class-prefix}-py-xl-2 { + padding-top: 0.5rem !important; + } + + .@{class-prefix}-pr-xl-2, + .@{class-prefix}-px-xl-2 { + padding-right: 0.5rem !important; + } + + .@{class-prefix}-pb-xl-2, + .@{class-prefix}-py-xl-2 { + padding-bottom: 0.5rem !important; + } + + .@{class-prefix}-pl-xl-2, + .@{class-prefix}-px-xl-2 { + padding-left: 0.5rem !important; + } + + .@{class-prefix}-p-xl-3 { + padding: 1rem !important; + } + + .@{class-prefix}-pt-xl-3, + .@{class-prefix}-py-xl-3 { + padding-top: 1rem !important; + } + + .@{class-prefix}-pr-xl-3, + .@{class-prefix}-px-xl-3 { + padding-right: 1rem !important; + } + + .@{class-prefix}-pb-xl-3, + .@{class-prefix}-py-xl-3 { + padding-bottom: 1rem !important; + } + + .@{class-prefix}-pl-xl-3, + .@{class-prefix}-px-xl-3 { + padding-left: 1rem !important; + } + + .@{class-prefix}-p-xl-4 { + padding: 1.5rem !important; + } + + .@{class-prefix}-pt-xl-4, + .@{class-prefix}-py-xl-4 { + padding-top: 1.5rem !important; + } + + .@{class-prefix}-pr-xl-4, + .@{class-prefix}-px-xl-4 { + padding-right: 1.5rem !important; + } + + .@{class-prefix}-pb-xl-4, + .@{class-prefix}-py-xl-4 { + padding-bottom: 1.5rem !important; + } + + .@{class-prefix}-pl-xl-4, + .@{class-prefix}-px-xl-4 { + padding-left: 1.5rem !important; + } + + .@{class-prefix}-p-xl-5 { + padding: 2rem !important; + } + + .@{class-prefix}-pt-xl-5, + .@{class-prefix}-py-xl-5 { + padding-top: 2rem !important; + } + + .@{class-prefix}-pr-xl-5, + .@{class-prefix}-px-xl-5 { + padding-right: 2rem !important; + } + + .@{class-prefix}-pb-xl-5, + .@{class-prefix}-py-xl-5 { + padding-bottom: 2rem !important; + } + + .@{class-prefix}-pl-xl-5, + .@{class-prefix}-px-xl-5 { + padding-left: 2rem !important; + } + + .@{class-prefix}-m-xl-auto { + margin: auto !important; + } + + .@{class-prefix}-mt-xl-auto, + .@{class-prefix}-my-xl-auto { + margin-top: auto !important; + } + + .@{class-prefix}-mr-xl-auto, + .@{class-prefix}-mx-xl-auto { + margin-right: auto !important; + } + + .@{class-prefix}-mb-xl-auto, + .@{class-prefix}-my-xl-auto { + margin-bottom: auto !important; + } + + .@{class-prefix}-ml-xl-auto, + .@{class-prefix}-mx-xl-auto { + margin-left: auto !important; + } +} diff --git a/src/styles/base/index.less b/src/styles/base/index.less new file mode 100644 index 000000000..77f12e925 --- /dev/null +++ b/src/styles/base/index.less @@ -0,0 +1,4 @@ +@import 'base'; +@import "row-col"; +@import "gx-margin-padding"; +@import "typography"; diff --git a/src/styles/base/row-col.less b/src/styles/base/row-col.less new file mode 100644 index 000000000..0837450b0 --- /dev/null +++ b/src/styles/base/row-col.less @@ -0,0 +1,41 @@ +// mixins for grid system +// ------------------------ +.gx-make-row() { + margin-left: (@grid-gutter-width / -2); + margin-right: (@grid-gutter-width / -2); +} + +.make-grid-columns() { + .col(@index) { + @item: ~".@{ant-prefix}-col-@{index}, .@{ant-prefix}-col-xs-@{index}, .@{ant-prefix}-col-sm-@{index}, .@{ant-prefix}-col-md-@{index}, .@{ant-prefix}-col-lg-@{index}"; + .col((@index + 1), @item); + } + .col(@index, @list) when (@index =< @grid-columns) { + @item: ~".@{ant-prefix}-col-@{index}, .@{ant-prefix}-col-xs-@{index}, .@{ant-prefix}-col-sm-@{index}, .@{ant-prefix}-col-md-@{index}, .@{ant-prefix}-col-lg-@{index}"; + .col((@index + 1), ~"@{list}, @{item}"); + } + .col(@index, @list) when (@index > @grid-columns) { + @{list} { + // Prevent columns from collapsing when empty + padding-left: (@grid-gutter-width / 2); + padding-right: (@grid-gutter-width / 2); + float: none !important; + } + } + .col(1); +} + +// Grid system +.ant-row { + .gx-make-row(); + .flex-display(flex, row, wrap); +} + +.@{class-prefix}-col { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + padding-left: (@grid-gutter-width / 2); + padding-right: (@grid-gutter-width / 2); +} + diff --git a/src/styles/base/typography.less b/src/styles/base/typography.less new file mode 100644 index 000000000..51926bd67 --- /dev/null +++ b/src/styles/base/typography.less @@ -0,0 +1,205 @@ +/*Typography Styles*/ +h1, h2, h3, h4, h5, h6, +.h1, .h2, .h3, .h4, .h5, .h6 { + color: @heading-color; + font-weight: @headings-font-weight; + line-height: @headings-line-height; +} + +h1, .h1 { + font-size: @h1-font-size; + + .framed-layout & { + font-size: @h2-font-size; + + @media screen and (max-width: @screen-sm-max) { + font-size: @h3-font-size; + } + } + + .boxed-layout & { + font-size: @h3-font-size; + + @media screen and (max-width: @screen-sm-max) { + font-size: @h4-font-size; + } + } + + @media screen and (max-width: @screen-sm-max) { + font-size: @h3-font-size; + } + + @media screen and (max-width: @screen-xl-max) { + font-size: @h2-font-size; + } + + @media screen and (min-width: @screen-xxl-min) { + font-size: @h1-font-size + 6px; + + .boxed-layout & { + font-size: @h3-font-size; + } + } +} + +h2, .h2 { + font-size: @h2-font-size; + + @media screen and (max-width: @screen-sm-max) { + font-size: @h3-font-size; + } +} + +h3, .h3 { + font-size: @h3-font-size; + + @media screen and (max-width: @screen-sm-max) { + font-size: @h4-font-size; + } +} + +h4, .h4 { + font-size: @h4-font-size; +} + +h5, .h5 { + font-size: @h5-font-size; +} + +h6, .h6 { + font-size: @h6-font-size; +} + +.@{class-prefix}-h1-lg { + font-size: @h1-font-size + 6px; +} + +.@{class-prefix}-text-strikethrough { + text-decoration: line-through !important; +} + +/*Font size Classes*/ +.@{class-prefix}-fs-xxs { + font-size: @font-size-sm - 4px; +} + +.@{class-prefix}-fs-xs { + font-size: @font-size-sm - 2px; +} + +.@{class-prefix}-fs-sm { + font-size: @font-size-sm; +} + +.@{class-prefix}-fs-md { + font-size: @font-size-base; +} + +.@{class-prefix}-fs-lg { + font-size: @font-size-lg; +} + +.@{class-prefix}-fs-xl { + font-size: @font-size-lg + 4px; +} + +.@{class-prefix}-fs-xxl { + font-size: @font-size-lg + 8px; +} + +// Text Transform class +.@{class-prefix}-text-lowercase { + text-transform: lowercase; +} + +.@{class-prefix}-text-uppercase { + text-transform: uppercase; +} + +.@{class-prefix}-text-capitalize { + text-transform: capitalize; +} + +// Font Weight class +.@{class-prefix}-font-weight-thin { + font-weight: @font-weight-thin; +} + +.@{class-prefix}-font-weight-extra-light { + font-weight: @font-weight-extra-light; +} + +.@{class-prefix}-font-weight-light { + font-weight: @font-weight-light; +} + +.@{class-prefix}-font-weight-normal { + font-weight: @font-weight-normal; +} + +.@{class-prefix}-font-weight-medium { + font-weight: @font-weight-medium; +} + +.@{class-prefix}-font-weight-semi-bold { + font-weight: @font-weight-semi-bold; +} + +.@{class-prefix}-font-weight-bold { + font-weight: @font-weight-medium; +} + +.@{class-prefix}-font-weight-extra-bold { + font-weight: @font-weight-extra-bold; +} + +.@{class-prefix}-font-weight-black { + font-weight: @font-weight-black; +} + +// Font Italic class +.@{class-prefix}-font-italic { + font-style: italic; +} + +// Letter Spacing class +.@{class-prefix}-letter-spacing-base { + letter-spacing: @letter-spacing-base; +} + +.@{class-prefix}-letter-spacing-lg { + letter-spacing: @letter-spacing-lg; +} + +.@{class-prefix}-letter-spacing-xl { + letter-spacing: @letter-spacing-xl; +} + +// Text class +.@{class-prefix}-text-justify { + text-align: justify !important; +} + +.@{class-prefix}-text-nowrap { + white-space: nowrap !important; +} + +.@{class-prefix}-text-left { + text-align: left !important; +} + +.@{class-prefix}-text-right { + text-align: right !important; +} + +.@{class-prefix}-text-center { + text-align: center !important; +} + +// class use for extend +.gx-text-truncate { + width: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} diff --git a/src/styles/dark-theme.less b/src/styles/dark-theme.less new file mode 100644 index 000000000..03dd6d8f6 --- /dev/null +++ b/src/styles/dark-theme.less @@ -0,0 +1,2253 @@ +//global style variables +@dark-theme-primary-color: #38424B; +@dark-theme-secondary-color: lighten(@dark-theme-primary-color, 10%); +@dark-theme-text-color: #E0E0E0; +@dark-theme-heading-color: lighten(@dark-theme-text-color, 5%); +@dark-theme-sidebar-dark-bg: darken(@dark-theme-primary-color, 2%); +@dark-theme-component-background: #434f5a; +@dark-theme-sidebar-dark-text-color: #a1a1a1; +@dark-theme-sidebar-dark-bg-darken: lighten(@dark-theme-sidebar-dark-bg, 6%); +@dark-theme-sidebar-dark-hover-color: @dark-theme-component-background; +@dark-theme-border-color: #495762; + +/*Base Styles*/ +body.dark-theme { + &.framed-layout, + &.boxed-layout { + background-color: darken(@dark-theme-primary-color, 10%); + } +} + +.dark-theme { + color: @dark-theme-text-color; + background-color: @dark-theme-primary-color; + + & a { + color: darken(@dark-theme-text-color, 10%); + } + + & a:hover, + & a:focus { + color: lighten(@dark-theme-text-color, 3%); + } + + & .@{class-prefix}-social-link { + & li a { + color: @dark-theme-text-color; + } + + & li.active a, + & li a:hover, + & li a:focus { + color: lighten(@dark-theme-text-color, 30%); + } + } + + & h1, & h2, & h3, & h4, & h5, & h6, + & .h1, & .h2, & .h3, & .h4, & .h5, & .h6 { + color: @dark-theme-heading-color; + } + + & .@{class-prefix}-drawer-sidebar-dark .ant-drawer-content { + background-color: @dark-theme-sidebar-dark-bg; + } + + & .ant-drawer-right .ant-drawer-content-wrapper, + & .ant-drawer-right .ant-drawer-content { + background: @dark-theme-primary-color; + } + + & .ant-drawer-close { + color: @dark-theme-text-color; + + &:hover, + &:focus { + color: @white-color; + } + } + + & .ant-layout { + background: @dark-theme-primary-color; + } + + & .ant-layout-header { + background: @dark-theme-primary-color; + color: @dark-theme-text-color; + } + + & .ant-layout-footer { + background: @dark-theme-primary-color; + color: @dark-theme-text-color; + border-top-color: @dark-theme-border-color; + } + + & .@{class-prefix}-nav-header { + background-color: @dark-theme-primary-color; + border-bottom-color: @dark-theme-border-color; + } + + & .ant-menu { + color: @dark-theme-text-color; + background: @dark-theme-sidebar-dark-bg; + } + + & .ant-menu-inline, + & .ant-menu-vertical, + & .ant-menu-vertical-left { + border-right-color: @dark-theme-border-color; + } + + & .ant-menu-dark { + color: @dark-theme-text-color; + background: @dark-theme-sidebar-dark-bg; + + & .ant-menu-submenu-title .ant-menu-submenu-arrow:after, + & .ant-menu-submenu-title .ant-menu-submenu-arrow:before { + background: @white-color; + } + } + + & .ant-menu-dark .ant-menu-sub { + color: @dark-theme-text-color; + background: none; + + & .ant-menu-submenu-title .ant-menu-submenu-arrow:after, + & .ant-menu-submenu-title .ant-menu-submenu-arrow:before { + background: @white-color; + } + } + + & .ant-menu-dark.ant-menu-horizontal { + border-bottom-color: @dark-theme-sidebar-dark-bg; + } + + & .ant-menu-dark.ant-menu-horizontal > .ant-menu-item, + & .ant-menu-dark.ant-menu-horizontal > .ant-menu-submenu { + border-color: @dark-theme-sidebar-dark-bg; + } + + & .ant-menu-horizontal { + border-bottom-color: @dark-theme-border-color; + background: @dark-theme-primary-color; + } + + & .ant-menu-horizontal > .ant-menu-item:hover, + & .ant-menu-horizontal > .ant-menu-submenu:hover, + & .ant-menu-horizontal > .ant-menu-item-active, + & .ant-menu-horizontal > .ant-menu-submenu-active, + & .ant-menu-horizontal > .ant-menu-item-open, + & .ant-menu-horizontal > .ant-menu-submenu-open, + & .ant-menu-horizontal > .ant-menu-item-selected, + & .ant-menu-horizontal > .ant-menu-submenu-selected { + border-bottom-color: @dark-theme-text-color; + color: @dark-theme-text-color; + } + + & .ant-menu-horizontal > .ant-menu-item > a, + & .ant-menu-horizontal > .ant-menu-submenu > a { + color: @dark-theme-text-color; + } + + & .ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: lighten(@dark-theme-component-background, 5%); + color: @dark-theme-text-color; + } + + & .ant-layout-sider .ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: fade(@white-color, 12%); + } + + & .ant-menu-submenu > .ant-menu, + & .ant-menu-item:active, + & .ant-menu-submenu-title:active { + background-color: lighten(@dark-theme-component-background, 5%); + color: @dark-theme-text-color; + } + + & .ant-layout-sider .ant-menu-submenu > .ant-menu, + & .ant-layout-sider .ant-menu-item:active, + & .ant-layout-sider .ant-menu-submenu-title:active { + background-color: transparent; + } + + & .ant-menu-item-group-title, + & .ant-menu-item-selected, + & .ant-menu-submenu-selected .ant-menu-submenu-title { + color: @dark-theme-text-color; + } + + & .ant-menu-item:hover, + & .ant-menu-item-active, + & .ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, + & .ant-menu-submenu-active, + & .ant-menu-submenu-title:hover { + color: @dark-theme-text-color; + } + + & .ant-menu-item-disabled, + & .ant-menu-submenu-disabled { + color: darken(@dark-theme-text-color, 25%) !important; + } + + & .ant-menu-dark .ant-menu-item-group-title { + color: @dark-theme-text-color; + } + + & .ant-menu-dark .ant-menu-item { + color: @dark-theme-text-color; + } + + & .ant-menu-dark .ant-menu-item > a { + color: @white-color; + } + + & .ant-menu-submenu-horizontal { + & > .ant-menu-submenu-title { + color: @dark-theme-text-color; + } + } + + & .ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow::before, + & .ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow::before, + & .ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow::before, + & .ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow::before, + & .ant-menu-submenu-vertical > .ant-menu-submenu-title .ant-menu-submenu-arrow::after, + & .ant-menu-submenu-vertical-left > .ant-menu-submenu-title .ant-menu-submenu-arrow::after, + & .ant-menu-submenu-vertical-right > .ant-menu-submenu-title .ant-menu-submenu-arrow::after, + & .ant-menu-submenu-inline > .ant-menu-submenu-title .ant-menu-submenu-arrow::after { + background: @white-color; + } + + & .ant-menu-vertical .ant-menu-item::after, + & .ant-menu-vertical-left .ant-menu-item::after, + & .ant-menu-vertical-right .ant-menu-item::after, + & .ant-menu-inline .ant-menu-item::after { + border-right-color: darken(@dark-theme-border-color, 30%); + } + + & .ant-layout-sider, + & .@{class-prefix}-layout-sider-dark { + background-color: @dark-theme-sidebar-dark-bg; + color: @dark-theme-sidebar-dark-text-color; + .box-shadow(0px 0 4px rgba(0, 0, 0, 0.35)); + } + + & .@{class-prefix}-task-list-item { + + &:not(:last-child) { + border-bottom-color: @dark-theme-border-color; + } + + &:hover .gx-text-hover { + color: darken(@dark-theme-text-color, 10%); + } + } + + & .@{class-prefix}-card-ticketlist .@{class-prefix}-task-list-item { + + &:hover { + background-color: lighten(@dark-theme-component-background, 5%); + + & .@{class-prefix}-task-item-title { + color: lighten(@dark-theme-text-color, 3%); + } + } + } + + & .@{class-prefix}-card-testimonial-content { + background-color: @dark-theme-primary-color; + + &:before { + border-right-color: @dark-theme-primary-color; + } + } + + & .@{class-prefix}-progress-task-list { + & + .@{class-prefix}-progress-task-list { + border-top-color: @dark-theme-border-color; + } + } + + & .@{class-prefix}-card-ticketlist { + & a { + color: darken(@dark-theme-text-color, 10%); + } + } + + & .@{class-prefix}-overview-description { + border-left-color: @dark-theme-border-color; + + @media screen and (max-width: @screen-sm-max) { + border-top-color: @dark-theme-border-color; + border-bottom-color: @dark-theme-border-color; + } + } + + & .@{class-prefix}-revenu { + + &-total { + border-bottom-color: @dark-theme-border-color; + } + + &-col:not(:last-child) { + border-right-color: @dark-theme-border-color; + } + } + + & .@{class-prefix}-product-item { + background: @dark-theme-component-background; + } + + & .@{class-prefix}-login-content { + background-color: @dark-theme-component-background; + + & .ant-input { + background-color: @grey-6; + + &:focus { + border-color: @dark-theme-primary-color; + } + } + } + + & .@{class-prefix}-app-login-main-content { + background-color: @dark-theme-component-background; + } + + & .@{class-prefix}-app-login-content .ant-input { + background-color: @grey-6; + + &:focus { + border-color: @dark-theme-primary-color; + } + } + + & .@{class-prefix}-app-logo-content { + color: @dark-theme-text-color; + + &:before { + background-color: fade(@dark-theme-primary-color, 70%); + } + + & h1 { + color: @dark-theme-text-color; + } + } + + & .@{class-prefix}-app-social-block { + + & .@{class-prefix}-social-link span { + border-color: @dark-theme-primary-color; + color: @dark-theme-primary-color; + + &:hover, + &:focus { + color: @dark-theme-text-color; + background-color: @dark-theme-primary-color; + } + } + } + + & .@{class-prefix}-avatar-img, + & .@{class-prefix}-avatar, + & .@{class-prefix}-badge-outline { + border-color: @dark-theme-border-color; + } + + & .@{class-prefix}-btn, + & .btn { + color: @btn-default-color; + border-color: @btn-default-border; + } + + & .@{class-prefix}-sub-popover .@{class-prefix}-btn, + & .@{class-prefix}-sub-popover .btn { + &:focus, + &:hover { + background-color: @dark-theme-text-color; + } + } + + & .@{class-prefix}-btn-link { + color: darken(@dark-theme-text-color, 10%); + background-color: transparent; + + &:hover { + color: lighten(@dark-theme-text-color, 3%); + } + } + + & .@{class-prefix}-ant-card-actions > li { + &:not(:last-child) { + border-right-color: @dark-theme-border-color; + } + } + + & .ant-card { + color: @dark-theme-text-color; + background: @dark-theme-component-background; + + &-bordered { + border-color: @dark-theme-border-color; + } + + &-head { + border-color: @dark-theme-border-color; + + &-title { + color: @dark-theme-text-color; + } + } + + &-type-inner .ant-card-head { + background: @dark-theme-component-background; + } + + &-meta-title, + &-meta-description { + color: @dark-theme-text-color; + } + + &-actions { + border-top-color: @dark-theme-border-color; + background: @dark-theme-component-background; + + > li { + color: @dark-theme-text-color; + + &:not(:last-child) { + border-right-color: @dark-theme-border-color; + } + + & > span:hover { + color: lighten(@dark-theme-text-color, 3%); + } + } + } + + &-grid { + box-shadow: 1px 0 0 0 @dark-theme-border-color, 0 1px 0 0 @dark-theme-border-color, 1px 1px 0 0 @dark-theme-border-color, 1px 0 0 0 @dark-theme-border-color inset, 0 1px 0 0 @dark-theme-border-color inset; + + &:hover { + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); + } + } + } + + & .@{class-prefix}-card { + background-color: @dark-theme-component-background; + } + + & .@{class-prefix}-card-overview { + background-color: @dark-theme-component-background; + } + + & .@{class-prefix}-card-metrics, + & .@{class-prefix}-card-widget { + .box-shadow(0 1px 4px 0 rgba(0, 0, 0, .15)); + } + + & .@{class-prefix}-icon-views:hover { + background-color: @dark-theme-primary-color; + color: @dark-theme-text-color; + } + + & .@{class-prefix}-search-bar { + + & input[type="search"] { + background: fade(@grey-2, 10%); + + &:focus { + background-color: fade(@grey-2, 30%); + } + } + + & .@{class-prefix}-search-icon { + color: lighten(@grey-6, 10%); + } + } + + & .@{class-prefix}-chat-search-bar { + + & input[type="search"]:focus { + background-color: @dark-theme-component-background; + } + } + + & .@{class-prefix}-user-list { + + &.@{class-prefix}-card-list { + background: @dark-theme-component-background; + } + + & a[class*="gx-meta-"] { + color: @dark-theme-text-color; + } + } + + & .@{class-prefix}-card-strip:not(:last-child) { + border-bottom-color: @dark-theme-border-color; + } + + & .@{class-prefix}-loader-container { + background-color: @grey-6; + } + + & .@{class-prefix}-table { + + & th, + & td { + border-top-color: @dark-theme-border-color; + } + + & thead th { + border-bottom-color: @dark-theme-border-color; + } + + & tbody + tbody { + border-top-color: @dark-theme-border-color; + } + } + + & .@{class-prefix}-table-bordered { + border-color: @dark-theme-border-color; + + & th, + & td { + border-color: @dark-theme-border-color; + } + } + + & .@{class-prefix}-timeline-item:before { + border-left-color: @dark-theme-border-color; + } + + & .@{class-prefix}-timeline-badge { + color: @dark-theme-component-background; + + &:after { + border-color: @dark-theme-border-color; + } + } + + & .@{class-prefix}-timeline-panel { + background-color: @dark-theme-component-background; + border-color: @dark-theme-border-color; + + &:before { + border-color: transparent @dark-theme-border-color; + } + + &:after { + border-color: transparent @dark-theme-component-background; + } + } + + & .@{class-prefix}-timeline-center .@{class-prefix}-timeline-inverted:before { + border-right-color: @dark-theme-border-color; + } + + & .ant-tabs { + color: @dark-theme-text-color; + + &-nav .ant-tabs-tab-active, + &-nav .ant-tabs-tab:hover { + color: darken(@dark-theme-text-color, 10%); + } + + &-ink-bar { + background-color: darken(@dark-theme-text-color, 10%); + } + + &-bar { + border-bottom-color: @dark-theme-border-color; + } + + &-tab-prev, + &-tab-next { + color: @dark-theme-text-color; + + &:hover { + color: @white-color; + } + } + + &-tab-btn-disabled, + &-tab-btn-disabled:hover { + color: darken(@dark-theme-text-color, 40%); + } + + &.ant-tabs-card > .ant-tabs-bar .ant-tabs-tab { + border-color: lighten(@dark-theme-component-background, 8%); + border-bottom-color: @dark-theme-component-background; + background: lighten(@dark-theme-component-background, 2%); + } + + &.ant-tabs-card > .ant-tabs-bar .ant-tabs-tab-active { + background: @dark-theme-component-background; + border-color: lighten(@dark-theme-component-background, 8%); + border-bottom-color: @dark-theme-component-background; + color: @white-color; + } + + &.ant-tabs-card > .ant-tabs-bar .ant-tabs-tab .anticon-close { + color: @dark-theme-text-color; + + &:hover { + color: @white-color; + } + } + } + + & .ant-checkbox { + &-wrapper { + color: @dark-theme-text-color; + } + + &-disabled + span { + color: darken(@dark-theme-text-color, 30%); + } + + &-checked::after, + &-wrapper:hover .ant-checkbox-inner, + &:hover .ant-checkbox-inner, + &-input:focus + .ant-checkbox-inner { + border-color: lighten(@dark-theme-component-background, 20%); + } + + &-checked .ant-checkbox-inner, + &-indeterminate .ant-checkbox-inner { + background-color: lighten(@dark-theme-component-background, 20%); + border-color: lighten(@dark-theme-component-background, 20%); + } + } + + & .ant-timeline { + color: @dark-theme-text-color; + + &-item-head { + background-color: transparent; + } + + &-item-tail { + border-left-color: lighten(@dark-theme-border-color, 8%); + } + + &-item-head-blue { + border-color: lighten(@dark-theme-border-color, 8%); + color: lighten(@dark-theme-text-color, 3%); + } + } + + & .ant-popover { + &-inner, + &-arrow { + background-color: @dark-theme-component-background; + } + + &-inner { + .box-shadow(0 0 4px rgba(0, 0, 0, 0.28)); + } + + &-inner-content, + &-message { + color: @dark-theme-text-color; + } + + &-title { + border-bottom-color: @dark-theme-border-color; + color: @dark-theme-text-color; + } + } + + & .@{class-prefix}-sub-popover li:not(:last-child), + & .@{class-prefix}-popover-header { + border-bottom-color: @dark-theme-border-color; + } + + & .@{class-prefix}-user-popover li { + &:hover, + &:focus { + background-color: lighten(@dark-theme-component-background, 5%); + } + } + + & .ant-divider { + color: @dark-theme-text-color; + background: @dark-theme-border-color; + + &.ant-divider-with-text, + &.ant-divider-with-text-left, + &.ant-divider-with-text-right { + background: none; + } + } + + & .@{class-prefix}-card-body-border-top .ant-card-body { + border-top-color: @dark-theme-border-color; + } + + & .ant-list { + color: @dark-theme-text-color; + + &-split .ant-list-item, + &-split .ant-list-header, + &-something-after-last-item .ant-spin-container > .ant-list-item:last-child { + border-bottom-color: @dark-theme-border-color; + } + + &-item-meta-description, + &-vertical .ant-list-item-content, + &-item-action > li { + color: @dark-theme-text-color; + } + + &-bordered { + border-color: @dark-theme-border-color; + } + + &-item-action-split { + background-color: @dark-theme-border-color; + } + } + + & .@{class-prefix}-btn-light, + & a.@{class-prefix}-btn-light { + color: @dark-theme-text-color !important; + background-color: @dark-theme-primary-color !important; + border-color: @dark-theme-primary-color !important; + + &:hover, + &:focus { + background-color: darken(@dark-theme-primary-color, 10%) !important; + border-color: darken(@dark-theme-primary-color, 10%) !important; + } + } + + & .ant-table { + color: @dark-theme-text-color; + + &-thead > tr > th { + background: lighten(@dark-theme-component-background, 5%); + color: @dark-theme-text-color; + border-bottom-color: @dark-theme-border-color; + } + + &-tbody > tr > td { + border-bottom-color: @dark-theme-border-color; + } + + &-thead > tr, + &-tbody > tr { + &.@{table-prefix-cls}-row-hover > td, + &:hover > td { + background: lighten(@dark-theme-component-background, 5%); + } + } + + &-tbody > tr.ant-table-row-selected td { + background: lighten(@dark-theme-component-background, 5%); + } + + &-small { + border-color: @dark-theme-border-color; + } + + &-small > .ant-table-content > .ant-table-header > table > .ant-table-thead > tr > th, + &-small > .ant-table-content > .ant-table-body > table > .ant-table-thead > tr > th, + &-small > .ant-table-content > .ant-table-scroll > .ant-table-header > table > .ant-table-thead > tr > th, + &-small > .ant-table-content > .ant-table-scroll > .ant-table-body > table > .ant-table-thead > tr > th, + &-small > .ant-table-content > .ant-table-fixed-left > .ant-table-header > table > .ant-table-thead > tr > th, + &-small > .ant-table-content > .ant-table-fixed-right > .ant-table-header > table > .ant-table-thead > tr > th, + &-small > .ant-table-content > .ant-table-fixed-left > .ant-table-body-outer > .ant-table-body-inner > table > .ant-table-thead > tr > th, + &-small > .ant-table-content > .ant-table-fixed-right > .ant-table-body-outer > .ant-table-body-inner > table > .ant-table-thead > tr > th { + background: lighten(@dark-theme-component-background, 5%); + border-bottom-color: @dark-theme-border-color; + } + + &.ant-table-bordered .ant-table-title, + &-bordered .ant-table-header > table, + &-bordered .ant-table-body > table, + &-bordered .ant-table-fixed-left table, + &-bordered .ant-table-fixed-right table, + &.ant-table-bordered .ant-table-footer { + border-color: @dark-theme-border-color; + } + + &-header { + background: lighten(@dark-theme-component-background, 5%); + } + + &-footer { + background: lighten(@dark-theme-component-background, 5%); + + &:before { + background: transparent; + } + } + + &-bordered .ant-table-thead > tr > th, + &-bordered .ant-table-tbody > tr > td { + border-right-color: @dark-theme-border-color; + } + + &-bordered .ant-table-thead > tr:not(:last-child) > th { + border-bottom-color: @dark-theme-border-color; + } + + &-fixed-header > .ant-table-content > .ant-table-scroll > .ant-table-body { + background: @dark-theme-component-background; + } + + &-fixed-left table, + &-fixed-right table { + background: lighten(@dark-theme-component-background, 5%); + } + + &-thead > tr > th .anticon-filter, + &-thead > tr > th .ant-table-filter-icon { + color: @dark-theme-text-color; + + &:hover { + color: @white-color; + } + } + + &-column-sorter { + color: @dark-theme-text-color; + + &-up:hover .anticon, + &-down:hover .anticon, + &-up.on .anticon-caret-up, + &-down.on .anticon-caret-up, + &-up.on .anticon-caret-down, + &-down.on .anticon-caret-down { + color: @white-color; + } + } + + &-row-expand-icon { + background: none; + } + } + + tr.ant-table-expanded-row, + tr.ant-table-expanded-row:hover { + background: lighten(@dark-theme-component-background, 5%); + } + + & .ant-pagination { + color: @dark-theme-text-color; + + &-item { + background-color: darken(@dark-theme-component-background, 5%); + border-color: @dark-theme-border-color; + + &-active, + &:hover, + &:focus { + border-color: @dark-theme-border-color; + + & a { + color: @dark-theme-text-color; + } + } + } + + &-disabled a, + &-disabled:hover a, + &-disabled:focus a, + &-disabled .ant-pagination-item-link, + &-disabled:hover .ant-pagination-item-link, + &-disabled:focus .ant-pagination-item-link { + color: darken(@dark-theme-text-color, 45%); + } + + &-prev, + &-next, + &-jump-prev, + &-jump-next { + color: @dark-theme-text-color; + } + + &-prev .ant-pagination-item-link, + &-next .ant-pagination-item-link { + background-color: darken(@dark-theme-component-background, 5%); + border-color: @dark-theme-border-color; + } + + &-prev:focus .ant-pagination-item-link, + &-next:focus .ant-pagination-item-link, + &-prev:hover .ant-pagination-item-link, + &-next:hover .ant-pagination-item-link { + border-color: @dark-theme-border-color; + color: @dark-theme-text-color; + } + + &-jump-prev:focus:after, + &-jump-next:focus:after, + &-jump-prev:hover:after, + &-jump-next:hover:after { + color: @dark-theme-text-color; + } + + &-simple .ant-pagination-simple-pager input { + background-color: fade(@grey-2, 10%); + border-color: fade(@grey-2, 10%); + color: @dark-theme-text-color; + + &:hover { + border-color: fade(@grey-2, 30%); + } + } + + &-options-quick-jumper input { + background-color: fade(@grey-2, 10%); + border-color: fade(@grey-2, 10%); + color: @dark-theme-text-color; + + &:hover { + border-color: fade(@grey-2, 10%); + } + + &:focus { + border-color: @dark-theme-border-color; + .box-shadow(0 0 0 1px rgba(0, 0, 0, 0.1)); + } + } + } + + & .ant-badge { + color: @dark-theme-text-color; + + &-status-text { + color: @dark-theme-text-color; + } + + &-count { + .box-shadow(0 0 0 1px rgba(0, 0, 0, .15)); + } + } + + & .ant-cascader { + &-picker { + &:focus .ant-cascader-input { + border-color: @dark-theme-border-color; + .box-shadow(0 0 0 1px rgba(0, 0, 0, 0.1)); + } + } + + &-menus { + background: darken(@dark-theme-component-background, 5%); + } + + &-menu { + border-right-color: @dark-theme-border-color; + } + + &-menu-item:hover { + background: darken(@dark-theme-component-background, 8%); + } + + &-picker, + &-picker-clear { + background-color: transparent; + color: @dark-theme-text-color; + } + + &-picker-arrow, + &-menu-item-expand:after { + color: @dark-theme-text-color; + } + + &-menu-item-active:not(.ant-cascader-menu-item-disabled), + &-menu-item-active:not(.ant-cascader-menu-item-disabled):hover { + background: lighten(@dark-theme-component-background, 5%); + } + } + + & .ant-form { + &-item, + &-item-label label, + &-explain, + &-extra { + color: @dark-theme-text-color; + } + } + + & .ant-input { + background-color: fade(@grey-2, 10%) !important; + border-color: fade(@grey-2, 10%); + color: @dark-theme-text-color; + + &:focus, + &:hover { + border-color: fade(@grey-3, 10%); + .box-shadow(0 0 0 1px rgba(0, 0, 0, 0.1)); + } + + &-number { + background-color: fade(@grey-2, 10%); + border-color: fade(@grey-2, 10%); + color: @dark-theme-text-color; + + &:focus, + &:hover { + border-color: fade(@grey-3, 10%); + .box-shadow(0 0 0 1px rgba(0, 0, 0, 0.1)); + } + } + + &-affix-wrapper:hover .ant-input:not(.ant-input-disabled) { + border-color: @dark-theme-border-color; + } + + &-group-addon { + background-color: fade(@grey-2, 10%); + border-color: fade(@grey-2, 10%); + color: @dark-theme-text-color; + + & .ant-select-open .ant-select-selection, + & .ant-select-focused .ant-select-selection { + color: @dark-theme-text-color; + } + } + + &-search-icon { + color: @dark-theme-text-color; + } + + &-affix-wrapper .ant-input-prefix, + &-affix-wrapper .ant-input-suffix { + color: @dark-theme-text-color; + + & i { + color: @dark-theme-text-color !important; + } + } + } + + & .ant-input.@{class-prefix}-chat-textarea { + background-color: @dark-theme-component-background !important; + border-color: @dark-theme-component-background; + color: @dark-theme-text-color; + + &:focus { + border-color: @dark-theme-border-color; + } + } + + & .ant-modal .ant-input { + background-color: @white-color !important; + border-color: lighten(@dark-theme-border-color, 55%); + color: @grey-8; + + &:focus, + &:hover { + border-color: lighten(@dark-theme-border-color, 50%); + } + } + + & .ant-modal .ant-upload-list-item-info .anticon-paper-clip { + color: @grey-8; + } + + & .ant-mention { + &-wrapper { + color: @dark-theme-text-color; + + &.disabled .ant-mention-editor { + background-color: fade(@grey-4, 10%); + color: @dark-theme-text-color; + } + + &.ant-mention-active:not(.disabled) .ant-mention-editor { + border-color: fade(@grey-3, 10%); + .box-shadow(0 0 0 1px rgba(0, 0, 0, 0.1)); + } + } + + &-wrapper .ant-mention-editor { + background-color: fade(@grey-2, 10%); + border-color: fade(@grey-2, 10%); + color: @dark-theme-text-color; + + &:focus { + border-color: fade(@grey-3, 10%); + .box-shadow(0 0 0 1px rgba(0, 0, 0, 0.1)); + } + } + } + + & .ant-select { + color: @dark-theme-text-color; + + &-selection { + background-color: fade(@grey-2, 10%); + border-color: fade(@grey-2, 10%); + + &:hover { + border-color: fade(@grey-2, 10%); + } + } + + &-arrow { + color: @dark-theme-text-color; + } + + &-focused .ant-select-selection, + &-selection:focus, + &-selection:active { + border-color: fade(@grey-3, 10%); + .box-shadow(0 0 0 1px rgba(0, 0, 0, 0.1)); + } + + &-dropdown { + color: @dark-theme-text-color; + background-color: darken(@dark-theme-component-background, 5%); + } + + &-dropdown-menu-item { + color: @dark-theme-text-color; + + &:hover { + background-color: darken(@dark-theme-component-background, 7%); + } + + &-selected, + &-selected:hover, + &-active { + background-color: darken(@dark-theme-component-background, 8%); + color: @dark-theme-text-color; + } + } + + &-auto-complete.ant-select .ant-input:focus, + &-auto-complete.ant-select .ant-input:hover { + border-color: fade(@grey-2, 10%); + } + + &-dropdown-menu-item-group-title { + color: @dark-theme-text-color; + } + + &-auto-complete.ant-select textarea.ant-input { + background: fade(@grey-2, 10%) !important; + } + + &-tree, + &-tree li .ant-select-tree-node-content-wrapper { + color: @dark-theme-text-color; + } + + &-tree li .ant-select-tree-node-content-wrapper:hover, + &-tree li .ant-select-tree-node-content-wrapper.ant-select-tree-node-selected { + background-color: lighten(@dark-theme-component-background, 5%); + } + + &-tree-dropdown .ant-select-dropdown-search .ant-select-search__field, + &-tree-checkbox-checked .ant-select-tree-checkbox-inner, + &-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner { + border-color: lighten(@dark-theme-component-background, 5%); + background-color: lighten(@dark-theme-component-background, 5%); + } + } + + & .ant-select-show-search .ant-select-selection { + background-color: transparent; + .box-shadow(none); + } + + & .ant-transfer { + &-list-search-action, + &-list-search-action i { + color: @dark-theme-text-color; + } + + &-list { + border-color: lighten(@dark-theme-component-background, 8%); + color: @dark-theme-text-color; + } + + &-list-body-with-search { + background-color: lighten(@dark-theme-component-background, 5%); + } + + &-list-header { + background-color: lighten(@dark-theme-component-background, 5%); + border-color: lighten(@dark-theme-component-background, 8%); + color: @dark-theme-text-color; + } + + &-list-content-item:not(.ant-transfer-list-content-item-disabled):hover { + background-color: lighten(@dark-theme-component-background, 8%); + } + + &-list-footer { + border-top-color: lighten(@dark-theme-component-background, 8%); + background-color: lighten(@dark-theme-component-background, 5%); + } + + &-list-content-item-disabled { + color: darken(@dark-theme-text-color, 40%); + } + } + + & .ant-calendar { + background-color: lighten(@dark-theme-component-background, 5%); + border-color: lighten(@dark-theme-component-background, 5%); + color: @dark-theme-text-color; + + &-today .ant-calendar-date { + border-color: lighten(@dark-theme-component-background, 25%); + color: lighten(@dark-theme-component-background, 25%); + background-color: lighten(@dark-theme-component-background, 15%); + } + + &-selected-date .ant-calendar-date, + &-selected-start-date .ant-calendar-date, + &-selected-end-date .ant-calendar-date, + &-selected-day .ant-calendar-date { + background: lighten(@dark-theme-component-background, 25%); + color: @dark-theme-text-color; + } + + &-month-panel-selected-cell .ant-calendar-month-panel-month:hover, + &-month-panel-selected-cell .ant-calendar-month-panel-month, + &-year-panel-selected-cell .ant-calendar-year-panel-year, + &-year-panel-selected-cell .ant-calendar-year-panel-year:hover, + &-decade-panel-selected-cell .ant-calendar-decade-panel-decade, + &-decade-panel-selected-cell .ant-calendar-decade-panel-decade:hover { + background: lighten(@dark-theme-component-background, 25%); + color: @dark-theme-text-color; + } + + &-month-panel-month:hover, + &-year-panel-year:hover, + &-decade-panel-decade:hover { + background: lighten(@dark-theme-component-background, 15%); + } + + &-input { + color: @dark-theme-text-color; + background-color: lighten(@dark-theme-component-background, 5%); + } + + &-month-panel, + &-year-panel, + &-decade-panel { + background-color: lighten(@dark-theme-component-background, 5%); + } + + &-header, + &-input-wrap, + &-month-panel-header, + &-year-panel-header, + &-decade-panel-header { + border-bottom-color: lighten(@dark-theme-component-background, 8%); + } + + &-footer, + &-range .ant-calendar-body, + &-range .ant-calendar-month-panel-body, + &-range .ant-calendar-year-panel-body { + border-top-color: lighten(@dark-theme-component-background, 8%); + } + + &-picker-icon, + &-picker-icon:after { + color: @dark-theme-text-color; + } + + &-picker:hover .ant-calendar-picker-input:not(.ant-input-disabled) { + border-color: @dark-theme-border-color; + } + + &-header .ant-calendar-prev-century-btn, + &-header .ant-calendar-next-century-btn, + &-header .ant-calendar-prev-decade-btn, + &-header .ant-calendar-next-decade-btn, + &-header .ant-calendar-prev-month-btn, + &-header .ant-calendar-next-month-btn, + &-header .ant-calendar-prev-year-btn, + &-header .ant-calendar-next-year-btn, + &-header .ant-calendar-century-select, + &-header .ant-calendar-decade-select, + &-header .ant-calendar-year-select, + &-header .ant-calendar-month-select { + color: @dark-theme-text-color; + } + + &-month-panel-header .ant-calendar-month-panel-prev-century-btn, + &-month-panel-header .ant-calendar-month-panel-next-century-btn, + &-month-panel-header .ant-calendar-month-panel-prev-decade-btn, + &-month-panel-header .ant-calendar-month-panel-next-decade-btn, + &-month-panel-header .ant-calendar-month-panel-prev-month-btn, + &-month-panel-header .ant-calendar-month-panel-next-month-btn, + &-month-panel-header .ant-calendar-month-panel-prev-year-btn, + &-month-panel-header .ant-calendar-month-panel-next-year-btn, + &-month-panel-header .ant-calendar-month-panel-century-select, + &-month-panel-header .ant-calendar-month-panel-decade-select, + &-month-panel-header .ant-calendar-month-panel-year-select, + &-month-panel-header .ant-calendar-month-panel-month-select { + color: @dark-theme-text-color; + } + + &-year-panel-header .ant-calendar-year-panel-prev-century-btn, + &-year-panel-header .ant-calendar-year-panel-next-century-btn, + &-year-panel-header .ant-calendar-year-panel-prev-decade-btn, + &-year-panel-header .ant-calendar-year-panel-next-decade-btn, + &-year-panel-header .ant-calendar-year-panel-prev-month-btn, + &-year-panel-header .ant-calendar-year-panel-next-month-btn, + &-year-panel-header .ant-calendar-year-panel-prev-year-btn, + &-year-panel-header .ant-calendar-year-panel-next-year-btn, + &-year-panel-header .ant-calendar-year-panel-century-select, + &-year-panel-header .ant-calendar-year-panel-decade-select, + &-year-panel-header .ant-calendar-year-panel-year-select, + &-year-panel-header .ant-calendar-year-panel-month-select { + color: @dark-theme-text-color; + } + + &-decade-panel-header .ant-calendar-decade-panel-prev-century-btn, + &-decade-panel-header .ant-calendar-decade-panel-next-century-btn, + &-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn, + &-decade-panel-header .ant-calendar-decade-panel-next-decade-btn, + &-decade-panel-header .ant-calendar-decade-panel-prev-month-btn, + &-decade-panel-header .ant-calendar-decade-panel-next-month-btn, + &-decade-panel-header .ant-calendar-decade-panel-prev-year-btn, + &-decade-panel-header .ant-calendar-decade-panel-next-year-btn { + color: @dark-theme-text-color; + } + + &-date { + color: @dark-theme-text-color; + + &:hover { + background: lighten(@dark-theme-component-background, 15%); + } + } + + &-last-month-cell .ant-calendar-date, + &-next-month-btn-day .ant-calendar-date, + &-year-panel-last-decade-cell .ant-calendar-year-panel-year, + &-year-panel-next-decade-cell .ant-calendar-year-panel-year, + &-decade-panel-last-century-cell .ant-calendar-decade-panel-decade, + &-decade-panel-next-century-cell .ant-calendar-decade-panel-decade { + color: darken(@dark-theme-text-color, 20%); + } + + &-picker-clear { + color: @dark-theme-text-color; + background: none; + } + + & .ant-calendar-ok-btn { + color: @dark-theme-border-color !important; + background-color: lighten(@dark-theme-component-background, 25%) !important; + border-color: lighten(@dark-theme-component-background, 25%) !important; + + &:hover, + &:focus { + color: @dark-theme-primary-color !important; + background-color: lighten(@dark-theme-component-background, 35%) !important; + border-color: @dark-theme-primary-color !important; + } + } + + &-range .ant-calendar-in-range-cell:before { + background-color: lighten(@dark-theme-component-background, 7%); + } + + &-week-number .ant-calendar-body tr.ant-calendar-active-week { + background: lighten(@dark-theme-component-background, 7%); + } + + &-week-number .ant-calendar-body tr .ant-calendar-selected-day .ant-calendar-date, + &-week-number .ant-calendar-body tr .ant-calendar-selected-day:hover .ant-calendar-date, + &-time .ant-calendar-footer .ant-calendar-time-picker-btn-disabled { + color: @dark-theme-text-color; + } + } + + & .ant-fullcalendar { + color: @dark-theme-text-color; + border-top-color: @dark-theme-border-color; + + &-value { + color: @dark-theme-text-color; + + &:hover { + background: lighten(@dark-theme-component-background, 5%); + } + } + + &-fullscreen .ant-fullcalendar-month, + &-fullscreen .ant-fullcalendar-date { + color: @dark-theme-text-color; + border-top-color: lighten(@dark-theme-component-background, 8%); + } + + &-fullscreen .ant-fullcalendar-month:hover, + &-fullscreen .ant-fullcalendar-date:hover, + &-fullscreen .ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-month, + &-fullscreen .ant-fullcalendar-selected-day .ant-fullcalendar-date { + background: lighten(@dark-theme-component-background, 5%); + color: @dark-theme-text-color; + } + + &-fullscreen .ant-fullcalendar-month-panel-current-cell .ant-fullcalendar-month, + &-fullscreen .ant-fullcalendar-today .ant-fullcalendar-date { + border-top-color: lighten(@dark-theme-component-background, 8%); + } + + &-fullscreen .ant-fullcalendar-last-month-cell .ant-fullcalendar-date, + &-fullscreen .ant-fullcalendar-next-month-btn-day .ant-fullcalendar-date, + &-last-month-cell .ant-fullcalendar-value, + &-next-month-btn-day .ant-fullcalendar-value { + color: darken(@dark-theme-text-color, 20%); + } + + &-selected-day .ant-fullcalendar-value, + &-month-panel-selected-cell .ant-fullcalendar-value { + background: lighten(@dark-theme-component-background, 5%); + color: @dark-theme-text-color; + } + + &-today .ant-fullcalendar-value, + &-month-panel-current-cell .ant-fullcalendar-value { + box-shadow: 0 0 0 1px lighten(@dark-theme-component-background, 25%) inset; + background: lighten(@dark-theme-component-background, 25%); + } + + &-fullscreen .ant-fullcalendar-month-panel-selected-cell .ant-fullcalendar-value, + &-fullscreen .ant-fullcalendar-selected-day .ant-fullcalendar-value { + color: @dark-theme-text-color; + background-color: transparent; + box-shadow: none; + } + } + + & .ant-time { + &-picker-panel, + &-picker-icon, + &-picker-icon:after { + color: @dark-theme-text-color; + } + + &-picker-panel-inner { + background-color: lighten(@dark-theme-component-background, 5%); + .box-shadow(0 2px 8px rgba(0, 0, 0, 0.15)); + } + + &-picker-panel-input-wrap { + border-bottom-color: lighten(@dark-theme-component-background, 8%); + + & .ant-time-picker-panel-input { + background-color: transparent; + } + + & a, + & a:hover, + & a:focus, + & a.ant-time-picker-panel-clear-btn:after { + color: @dark-theme-text-color; + } + } + + &-picker-input { + background-color: fade(@grey-2, 10%); + border-color: fade(@grey-2, 10%); + color: @dark-theme-text-color; + + &:focus, + &:hover { + border-color: fade(@grey-3, 10%); + .box-shadow(0 0 0 1px rgba(0, 0, 0, 0.1)); + } + } + + &-picker-panel-select { + border-left-color: lighten(@dark-theme-component-background, 8%); + + & li:hover { + background: lighten(@dark-theme-component-background, 7%); + } + } + } + + li.ant-time-picker-panel-select-option-selected { + background: lighten(@dark-theme-component-background, 8%); + } + + & .ant-slider { + &-mark-text { + color: darken(@dark-theme-text-color, 40%); + } + + &-mark-text-active { + color: @white-color; + } + + &-track { + background-color: lighten(@dark-theme-component-background, 5%); + } + + &-active { + border-color: lighten(@dark-theme-component-background, 5%); + } + } + + & .ant-radio { + color: @dark-theme-text-color; + + &-wrapper { + color: @dark-theme-text-color; + } + + &-wrapper:hover .ant-radio .ant-radio-inner, + &:hover .ant-radio-inner, + &-focused .ant-radio-inner { + border-color: lighten(@dark-theme-component-background, 20%); + } + + &-checked:after { + border-color: lighten(@dark-theme-component-background, 20%); + } + + &-checked .ant-radio-inner { + border-color: lighten(@dark-theme-component-background, 20%); + } + + &-disabled + span { + color: @dark-theme-text-color; + } + + &-button-wrapper { + color: lighten(@dark-theme-component-background, 20%); + background-color: transparent; + border-color: lighten(@dark-theme-component-background, 20%); + + &:hover, + &:focus { + color: @dark-theme-text-color; + } + + &-checked { + box-shadow: none; + border-color: lighten(@dark-theme-component-background, 50%); + color: lighten(@dark-theme-component-background, 50%); + + &:hover, + &:focus { + color: @dark-theme-text-color; + } + + &:first-child { + border-color: lighten(@dark-theme-component-background, 50%); + color: lighten(@dark-theme-component-background, 50%); + } + } + + &:not(:first-child):before { + background-color: lighten(@dark-theme-component-background, 20%); + } + + &-checked:before { + background-color: lighten(@dark-theme-component-background, 20%) !important; + } + } + } + + & .ant-btn { + background-color: darken(@dark-theme-component-background, 5%); + border-color: darken(@dark-theme-component-background, 5%); + color: @dark-theme-text-color; + + &:hover, + &:focus { + color: @dark-theme-text-color; + background-color: darken(@dark-theme-component-background, 8%); + border-color: darken(@dark-theme-component-background, 8%); + } + + &-primary { + background-color: darken(@dark-theme-component-background, 8%) !important; + border-color: darken(@dark-theme-component-background, 8%) !important; + + &:hover, + &:focus { + background-color: darken(@dark-theme-component-background, 12%) !important; + border-color: darken(@dark-theme-component-background, 12%) !important; + } + + &.disabled, + &:disabled { + background-color: darken(@dark-theme-component-background, 10%) !important; + border-color: darken(@dark-theme-component-background, 10%) !important; + } + + &:not([disabled]):not(.disabled):active, + &:not([disabled]):not(.disabled).active { + background-color: darken(@dark-theme-component-background, 5%) !important; + border-color: darken(@dark-theme-component-background, 5%) !important; + } + } + + &-danger { + color: @danger-color; + background-color: transparent; + border-color: @danger-color; + + &:hover, + &:focus { + color: @white-color; + background-color: @danger-color; + border-color: @danger-color; + } + } + } + + & .ant-upload { + color: @dark-theme-text-color; + + &.ant-upload-drag { + background-color: darken(@dark-theme-component-background, 3%); + border-color: darken(@dark-theme-component-background, 3%); + color: @dark-theme-text-color; + + & p.ant-upload-drag-icon .anticon { + color: @dark-theme-text-color; + } + + & p.ant-upload-text, + & p.ant-upload-hint { + color: @dark-theme-text-color; + } + + &:not(.ant-upload-disabled):hover { + border-color: @dark-theme-border-color; + } + } + + &-list-item a, + &-list-item-info .anticon-loading, + &-list-item-info .anticon-paper-clip { + color: @dark-theme-text-color; + } + + &-list-item:hover .ant-upload-list-item-info { + background-color: lighten(@dark-theme-component-background, 5%); + } + + &.ant-upload-select-picture-card { + background-color: darken(@dark-theme-component-background, 3%); + border-color: darken(@dark-theme-component-background, 3%); + + &:hover { + border-color: @dark-theme-border-color; + } + } + } + + & .ant-switch { + color: @white-color; + + &-checked { + background-color: darken(@dark-theme-component-background, 5%); + } + } + + & .@{class-prefix}-bg-grey { + background-color: darken(@grey-5, 25%) !important; + } + + & .ant-breadcrumb { + color: darken(@white-color, 25%); + + &-separator, + & > span:last-child { + color: darken(@white-color, 25%); + } + } + + & .ant-dropdown { + color: @dark-theme-text-color; + + &-menu { + background-color: darken(@dark-theme-component-background, 8%); + } + + &-menu-item, + &-menu-submenu-title { + color: @dark-theme-text-color; + } + + &-menu-item:hover, + &-menu-submenu-title:hover { + background-color: lighten(@dark-theme-component-background, 2%); + } + + &-menu-item .ant-dropdown-menu-submenu-arrow:after, + &-menu-submenu-title .ant-dropdown-menu-submenu-arrow:after { + color: @dark-theme-text-color; + } + + &-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title, + &-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow::after { + color: darken(@dark-theme-text-color, 20%); + } + } + + & .ant-steps-item { + color: @dark-theme-text-color; + + &-finish .ant-steps-item-icon { + background-color: @dark-theme-component-background; + border-color: @dark-theme-text-color; + + & > .ant-steps-icon { + color: @dark-theme-text-color; + } + } + + &-process .ant-steps-item-icon { + background-color: lighten(@dark-theme-component-background, 5%); + border-color: lighten(@dark-theme-component-background, 5%); + + & > .ant-steps-icon { + color: @dark-theme-text-color; + } + } + + &-wait .ant-steps-item-icon { + background-color: @dark-theme-component-background; + border-color: lighten(@dark-theme-component-background, 10%); + + & > .ant-steps-icon { + color: lighten(@dark-theme-component-background, 10%); + } + } + + &-finish > .ant-steps-item-content > .ant-steps-item-description, + &-process > .ant-steps-item-content > .ant-steps-item-description, + &-wait > .ant-steps-item-content > .ant-steps-item-description { + color: darken(@dark-theme-text-color, 20%); + } + + &-finish > .ant-steps-item-content > .ant-steps-item-title, + &-process > .ant-steps-item-content > .ant-steps-item-title, + &-wait > .ant-steps-item-content > .ant-steps-item-title { + color: @dark-theme-text-color; + } + + &-process > .ant-steps-item-content > .ant-steps-item-title:after, + &-wait > .ant-steps-item-content > .ant-steps-item-title:after, + &-process > .ant-steps-item-tail:after, + &-error > .ant-steps-item-content > .ant-steps-item-title:after { + background-color: @dark-theme-border-color; + } + + &-finish > .ant-steps-item-content > .ant-steps-item-title:after, + &-finish > .ant-steps-item-tail:after { + background-color: @dark-theme-text-color; + } + + &-error .ant-steps-item-icon { + background-color: @dark-theme-component-background; + } + + &-finish .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot, + &-finish > .ant-steps-item-tail:after, + &-process .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot { + background: darken(@dark-theme-primary-color, 10%); + } + + &-process > .ant-steps-item-tail:after, + &-wait > .ant-steps-item-tail:after { + background-color: lighten(@dark-theme-component-background, 8%); + } + + &-wait .ant-steps-item-icon > .ant-steps-icon .ant-steps-icon-dot { + background: lighten(@dark-theme-component-background, 8%); + } + } + + & .steps-content { + border-color: @dark-theme-border-color; + background-color: lighten(@dark-theme-component-background, 5%); + } + + & .ant-collapse { + background-color: lighten(@dark-theme-component-background, 5%); + border-color: lighten(@dark-theme-component-background, 10%); + color: @dark-theme-text-color; + + &.@{class-prefix}-collapse-custom { + background-color: transparent; + + & .ant-collapse-item { + background-color: lighten(@dark-theme-component-background, 5%); + } + } + + & > .ant-collapse-item { + border-color: lighten(@dark-theme-component-background, 10%); + } + + & .ant-collapse { + border-color: lighten(@dark-theme-component-background, 22%); + + & > .ant-collapse-item { + border-color: lighten(@dark-theme-component-background, 22%); + } + } + + & > .ant-collapse-item > .ant-collapse-header { + color: @dark-theme-text-color; + } + + &-content { + color: @dark-theme-text-color; + background-color: lighten(@dark-theme-component-background, 12%); + border-top-color: lighten(@dark-theme-component-background, 10%); + } + + & .ant-collapse-item-disabled > .ant-collapse-header, + & .ant-collapse-item-disabled > .ant-collapse-header > .arrow { + color: darken(@dark-theme-text-color, 40%); + } + } + + & .ant-carousel { + color: @dark-theme-text-color; + + & .slick-slide { + background-color: lighten(@dark-theme-component-background, 5%); + } + } + + & .ant-tree { + color: @dark-theme-text-color; + + & li .ant-tree-node-content-wrapper { + color: @dark-theme-text-color; + } + + & li.ant-tree-treenode-disabled > span:not(.ant-tree-switcher), + & li.ant-tree-treenode-disabled > .ant-tree-node-content-wrapper, + & li.ant-tree-treenode-disabled > .ant-tree-node-content-wrapper span { + color: darken(@dark-theme-text-color, 40%); + } + + & li .ant-tree-node-content-wrapper:hover, + & li .ant-tree-node-content-wrapper.ant-tree-node-selected { + background-color: lighten(@dark-theme-component-background, 5%); + } + + &-checkbox-wrapper:hover .ant-tree-checkbox-inner, + &-checkbox:hover .ant-tree-checkbox-inner, + &-checkbox-input:focus + .ant-tree-checkbox-inner { + border-color: darken(@dark-theme-component-background, 5%); + } + + &-checkbox-checked .ant-tree-checkbox-inner, + &-checkbox-indeterminate .ant-tree-checkbox-inner { + background-color: darken(@dark-theme-component-background, 5%); + border-color: darken(@dark-theme-component-background, 5%) !important; + } + + &.ant-tree-show-line li span.ant-tree-switcher { + background: transparent; + color: @dark-theme-text-color; + } + } + + & .ant-tag { + + &-checkable { + color: @dark-theme-text-color; + } + + &-checkable:not(.ant-tag-checkable-checked):hover { + color: @white-color; + } + } + + & .ant-progress { + &-text, + &-circle .ant-progress-text { + color: @dark-theme-text-color; + } + } + + & .ant-anchor { + &-wrapper { + background-color: transparent; + } + + &-link-active > .ant-anchor-link-title { + color: darken(@dark-theme-text-color, 10%); + } + } + + & .rdw-editor-wrapper { + color: darken(@dark-theme-text-color, 60%); + background-color: @component-background; + + & + textarea { + color: darken(@dark-theme-text-color, 60%); + } + } + + & .@{class-prefix}-contact-item:not(:last-child) { + border-bottom-color: @dark-theme-border-color; + } + + .@{class-prefix}-draggable-icon { + color: @dark-theme-text-color; + + &:hover, + &:focus, + &:active { + color: @white-color; + } + } + + & .sweet-alert, + & .@{class-prefix}-map-content { + color: darken(@dark-theme-text-color, 60%); + + & h1, & h2, & h3, & h4, & h5, & h6, & .h1, & .h2, & .h3, & .h4, & .h5, & .h6 { + color: darken(@dark-theme-text-color, 60%); + } + } + + & .@{class-prefix}-module-side { + + @media screen and (max-width: @screen-md-max) { + background-color: @white-color; + } + } + + & .@{class-prefix}-module-side-header { + border-bottom-color: @dark-theme-border-color; + background-color: @dark-theme-component-background; + color: @dark-theme-text-color; + } + + & .@{class-prefix}-module-nav { + + & li a { + color: @dark-theme-text-color; + } + + & li a:hover, + & li a:focus, + & li a.active { + color: @white-color; + } + } + + & .@{class-prefix}-module-box-header { + background-color: @dark-theme-component-background; + border-bottom-color: @dark-theme-border-color; + + & .@{class-prefix}-drawer-btn { + @media screen and (max-width: @screen-md-max) { + border-right-color: @dark-theme-border-color; + } + } + } + + & .@{class-prefix}-module-box-content { + background-color: @dark-theme-component-background; + } + + & .@{class-prefix}-module-box-topbar, + & .@{class-prefix}-module-list-item:not(:last-child) { + border-bottom-color: @dark-theme-border-color; + } + + & .@{class-prefix}-toolbar-separator { + border-left-color: @dark-theme-border-color; + } + + & .@{class-prefix}-module-sidenav { + background-color: @dark-theme-component-background; + border-right-color: @dark-theme-border-color; + } + + & .rbc-event { + background-color: lighten(@dark-theme-component-background,20%); + } + + & .rbc-event.rbc-selected { + background-color: darken(@dark-theme-component-background, 10%); + } + + & .rbc-slot-selection { + background-color: lighten(@dark-theme-component-background, 10%); + } + + & .rbc-toolbar button { + color: @dark-theme-text-color; + border-color: @dark-theme-text-color; + } + + & .rbc-toolbar button:active, + & .rbc-toolbar button.rbc-active, + & .rbc-toolbar button:active:hover, + & .rbc-toolbar button.rbc-active:hover, + & .rbc-toolbar button:active:focus, + & .rbc-toolbar button.rbc-active:focus, + & .rbc-toolbar button:focus, + & .rbc-toolbar button:hover { + color: @dark-theme-primary-color; + background-color: @dark-theme-text-color; + border-color: @dark-theme-text-color; + } + + & .rbc-month-view, + & .rbc-time-view, + & .rbc-today { + background: @dark-theme-component-background; + } + + & .rbc-date-cell { + & a { + color: @dark-theme-text-color; + } + + & a:hover, + & a:focus { + color: @white-color; + } + } + + & .rbc-off-range-bg { + background: lighten(@dark-theme-component-background, 10%); + + & a { + color: darken(@dark-theme-text-color, 40%); + } + + & a:hover, + & a:focus { + color: @dark-theme-text-color; + } + } + + & .@{class-prefix}-com-calendar-card { + border-color: @dark-theme-border-color; + } + + & .@{class-prefix}-chat-module-box { + background-color: @dark-theme-component-background; + } + + & .@{class-prefix}-chat-sidenav { + border-right-color: @dark-theme-border-color; + } + + & .@{class-prefix}-chat-sidenav-header { + background-color: lighten(@dark-theme-component-background, 5%); + border-bottom-color: @dark-theme-border-color; + } + + & .@{class-prefix}-chat-sidenav-content { + background-color: @dark-theme-component-background; + } + + & .@{class-prefix}-chat-sidenav-title { + color: @dark-theme-text-color; + } + + & .@{class-prefix}-chat-tabs-header { + background-color: lighten(@dark-theme-component-background, 5%) !important; + } + + & .@{class-prefix}-chat-user-item { + &:not(:last-child) { + border-bottom-color: @dark-theme-border-color; + } + + &.active, + &:hover { + background-color: lighten(@dark-theme-component-background, 3%); + } + } + + & .@{class-prefix}-chat-info-des { + color: @dark-theme-text-color; + } + + & .@{class-prefix}-chat-main-header { + border-bottom-color: @dark-theme-border-color; + background-color: @dark-theme-component-background; + } + + & .@{class-prefix}-chat-main-footer { + border-top-color: @dark-theme-border-color; + background-color: @dark-theme-component-background; + } + + & .@{class-prefix}-chat-item { + + & .@{class-prefix}-bubble { + background-color: lighten(@dark-theme-component-background, 2%); + border-color: @dark-theme-border-color; + } + + &.@{class-prefix}-flex-row-reverse .@{class-prefix}-bubble { + background-color: lighten(@dark-theme-component-background, 5%); + } + } + + & .@{class-prefix}-error-code { + color: @dark-theme-text-color; + text-shadow: 10px 6px 8px rgba(255, 117, 117, 0.8); + } + + & .@{class-prefix}-btn-yellow, + & a.@{class-prefix}-btn-yellow { + color: @grey-9 !important; + background-color: @yellow-color !important; + border-color: @yellow-color !important; + + &:hover, + &:focus { + color: @white-color !important; + background-color: darken(@yellow-color, 10%) !important; + border-color: darken(@yellow-color, 10%) !important; + } + + &.disabled, + &:disabled { + background-color: @yellow-color !important; + border-color: @yellow-color !important; + } + + &:not([disabled]):not(.disabled):active, + &:not([disabled]):not(.disabled).active { + color: @white-color !important; + background-color: darken(@yellow-color, 10%) !important; + border-color: darken(@yellow-color, 10%) !important; + } + } + + & .@{class-prefix}-package { + background-color: @white-color; + color: @grey-8; + } + + & .@{class-prefix}-package-header { + & > .@{class-prefix}-price { + color: @white-color; + } + + &.@{class-prefix}-text-white { + color: @grey-8 !important; + } + } + + & .@{class-prefix}-bg-primary { + background-color: darken(@dark-theme-component-background, 10%) !important; + } + + & a.@{class-prefix}-bg-primary { + &:hover, + &:focus { + background-color: darken(@dark-theme-component-background, 20%) !important; + } + } + + & .@{class-prefix}-bg-primary-light { + background-color: lighten(@dark-theme-component-background, 10%) !important; + } + + & .@{class-prefix}-text-primary { + color: darken(@white-color, 10%) !important; + } + + & a.@{class-prefix}-text-primary { + &:hover, + &:focus { + color: darken(@white-color, 5%) !important; + } + } + + & .@{class-prefix}-border-primary { + border-color: @dark-theme-border-color !important; + } + + & .@{class-prefix}-btn-outline-primary, + & a.@{class-prefix}-btn-outline-primary { + color: @dark-theme-border-color !important; + border-color: @dark-theme-border-color !important; + + &:hover, + &:focus { + color: @white-color !important; + background-color: @dark-theme-border-color !important; + border-color: @dark-theme-border-color !important; + } + + &.disabled, + &:disabled { + color: @primary-color !important; + background-color: transparent !important; + } + } + + & .@{class-prefix}-badge-primary { + background-color: darken(@dark-theme-component-background, 15%) !important; + } + + & .@{class-prefix}-badge-primary-light { + background-color: lighten(@dark-theme-component-background, 5%) !important; + } + + & .@{class-prefix}-customizer-item:not(:last-child) { + border-bottom-color: @dark-theme-border-color; + } + + + + + + + + + + + + + + +} + +@media screen and (max-width: @screen-sm-max) { + .dark-theme .@{class-prefix}-table-responsive .ant-table { + border: @dark-theme-border-color; + + &.ant-table-bordered .ant-table-footer { + border-top-color: @dark-theme-border-color; + } + } + + .dark-theme .ant-card-bordered.@{class-prefix}-card-full .@{class-prefix}-table-responsive .ant-table { + border-bottom-color: @dark-theme-border-color; + } + + .dark-theme .@{class-prefix}-timeline-center .@{class-prefix}-timeline-inverted:before { + border-left-color: @dark-theme-border-color; + } +} + +@media screen and (max-width: (@screen-xs-max - 100px)) { + .dark-theme .ant-input-group.ant-input-group-compact { + & .@{class-prefix}-border-lt-xs { + border-left-color: @dark-theme-border-color !important; + } + } +} diff --git a/src/styles/flexile.less b/src/styles/flexile.less new file mode 100644 index 000000000..e40c5f868 --- /dev/null +++ b/src/styles/flexile.less @@ -0,0 +1,2 @@ +@import "variables"; +@import "styles"; diff --git a/src/styles/global/colors-class.less b/src/styles/global/colors-class.less new file mode 100644 index 000000000..9c39f0fe4 --- /dev/null +++ b/src/styles/global/colors-class.less @@ -0,0 +1,1120 @@ +@import "variables"; +@import '../../../node_modules/antd/lib/style/color/colors.less'; + +/* color classes */ + +// BG ColorPicker +.@{class-prefix}-bg-primary { + background-color: @primary-color !important; +} + +a.@{class-prefix}-bg-primary { + &:hover, + &:focus { + background-color: @primary-7 !important; + } +} + +.@{class-prefix}-bg-primary-light { + background-color: @primary-4 !important; +} + +.@{class-prefix}-bg-secondary { + background-color: @secondary-color !important; +} + +a.@{class-prefix}-bg-secondary { + &:hover, + &:focus { + background-color: @red-7 !important; + } +} + +.@{class-prefix}-bg-success { + background-color: @success-color !important; +} + +a.@{class-prefix}-bg-success { + &:hover, + &:focus { + background-color: darken(@success-color, 10%) !important; + } +} + +.@{class-prefix}-bg-info { + background-color: @info-color !important; +} + +a.@{class-prefix}-bg-info { + &:hover, + &:focus { + background-color: darken(@info-color, 10%) !important; + } +} + +.@{class-prefix}-bg-warning { + background-color: @warning-color !important; +} + +a.@{class-prefix}-bg-warning { + &:hover, + &:focus { + background-color: darken(@warning-color, 10%) !important; + } +} + +.@{class-prefix}-bg-danger { + background-color: @danger-color !important; +} + +a.@{class-prefix}-bg-danger { + &:hover, + &:focus { + background-color: darken(@danger-color, 10%) !important; + } +} + +.@{class-prefix}-bg-light { + background-color: @grey-4 !important; +} + +a.@{class-prefix}-bg-light { + &:hover, + &:focus { + background-color: @grey-5 !important; + } +} + +.@{class-prefix}-bg-dark { + background-color: @black-color !important; +} + +a.@{class-prefix}-bg-dark { + &:hover, + &:focus { + background-color: lighten(@black-color, 10%) !important; + } +} + +.@{class-prefix}-bg-white { + background-color: @white-color !important; +} + +.@{class-prefix}-bg-grey { + background-color: darken(@grey-5, 5%) !important; +} + +a.@{class-prefix}-bg-grey { + &:hover, + &:focus { + background-color: darken(@grey-6, 5%) !important; + } +} + +.@{class-prefix}-bg-light-grey { + background-color: @grey-2 !important; +} + +.@{class-prefix}-bg-transparent { + background-color: transparent !important; +} + +.@{class-prefix}-bg-pink { + background-color: @pink-color !important; +} + +a.@{class-prefix}-bg-pink { + &:hover, + &:focus { + background-color: darken(@pink-color, 10%) !important; + } +} + +.@{class-prefix}-bg-green { + background-color: @green-color !important; +} + +.@{class-prefix}-bg-green-light { + background-color: lighten(@green-color, 40%) !important; +} + +a.@{class-prefix}-bg-green { + &:hover, + &:focus { + background-color: darken(@green-color, 10%) !important; + } +} + +.@{class-prefix}-bg-red { + background-color: @red-color !important; +} + +a.@{class-prefix}-bg-red { + &:hover, + &:focus { + background-color: darken(@red-color, 10%) !important; + } +} + +.@{class-prefix}-bg-amber { + background-color: @amber-color !important; +} + +.@{class-prefix}-bg-amber-light { + background-color: lighten(@amber-color, 30%) !important; +} + +a.@{class-prefix}-bg-amber { + &:hover, + &:focus { + background-color: darken(@amber-color, 10%) !important; + } +} + +.@{class-prefix}-bg-blue { + background-color: @blue-color !important; +} + +a.@{class-prefix}-bg-blue { + &:hover, + &:focus { + background-color: darken(@blue-color, 10%) !important; + } +} + +.@{class-prefix}-bg-light-blue { + background-color: lighten(@blue-color, 5%) !important; +} + +.@{class-prefix}-bg-indigo { + background-color: @indigo-color !important; +} + +a.@{class-prefix}-bg-indigo { + &:hover, + &:focus { + background-color: darken(@indigo-color, 10%) !important; + } +} + +.@{class-prefix}-bg-purple { + background-color: @purple-color !important; +} + +a.@{class-prefix}-bg-purple { + &:hover, + &:focus { + background-color: darken(@purple-color, 10%) !important; + } +} + +.@{class-prefix}-bg-orange { + background-color: @orange-color !important; +} + +a.@{class-prefix}-bg-orange { + &:hover, + &:focus { + background-color: darken(@orange-color, 10%) !important; + } +} + +.@{class-prefix}-bg-yellow { + background-color: @yellow-color !important; +} + +a.@{class-prefix}-bg-yellow { + &:hover, + &:focus { + background-color: darken(@yellow-color, 10%) !important; + } +} + +.@{class-prefix}-bg-teal { + background-color: @teal-color !important; +} + +a.@{class-prefix}-bg-teal { + &:hover, + &:focus { + background-color: darken(@teal-color, 10%) !important; + } +} + +.@{class-prefix}-bg-cyan { + background-color: @cyan-color !important; +} + +a.@{class-prefix}-bg-cyan { + &:hover, + &:focus { + background-color: darken(@cyan-color, 10%) !important; + } +} + +// Text ColorPicker +.@{class-prefix}-text-white { + color: @white-color !important; +} + +.@{class-prefix}-text-primary { + color: @primary-color !important; +} + +a.@{class-prefix}-text-primary { + &:hover, + &:focus { + color: @primary-color !important; + } +} + +.@{class-prefix}-text-secondary { + color: @secondary-color !important; +} + +a.@{class-prefix}-text-secondary { + &:hover, + &:focus { + color: @red-7 !important; + } +} + +.@{class-prefix}-text-success { + color: @success-color !important; +} + +a.@{class-prefix}-text-success { + &:hover, + &:focus { + color: darken(@success-color, 5%) !important; + } +} + +.@{class-prefix}-text-info { + color: @info-color !important; +} + +a.@{class-prefix}-text-info { + &:hover, + &:focus { + color: darken(@info-color, 5%) !important; + } +} + +.@{class-prefix}-text-warning { + color: @warning-color !important; +} + +a.@{class-prefix}-text-warning { + &:hover, + &:focus { + color: darken(@warning-color, 5%) !important; + } +} + +.@{class-prefix}-text-danger { + color: @danger-color !important; +} + +a.@{class-prefix}-text-danger { + &:hover, + &:focus { + color: darken(@danger-color, 5%) !important; + } +} + +.@{class-prefix}-text-light { + color: darken(@grey-6, 8%) !important; +} + +a.@{class-prefix}-text-light { + &:hover, + &:focus { + color: darken(@grey-7, 8%) !important; + } +} + +.@{class-prefix}-text-light-grey { + color: @grey-5 !important; +} + +a.@{class-prefix}-text-light-grey { + &:hover, + &:focus { + color: @grey-6 !important; + } +} + +.@{class-prefix}-text-grey { + color: @grey-7 !important; +} + +a.@{class-prefix}-text-grey { + &:hover, + &:focus { + color: @grey-9 !important; + } +} + +.@{class-prefix}-text-dark { + color: @grey-8 !important; +} + +a.@{class-prefix}-text-dark { + &:hover, + &:focus { + color: darken(@grey-8, 5%) !important; + } +} + +.@{class-prefix}-text-pink { + color: @pink-color !important; +} + +a.@{class-prefix}-text-pink { + &:hover, + &:focus { + color: darken(@pink-color, 5%) !important; + } +} + +.@{class-prefix}-text-green { + color: @green-color !important; +} + +a.@{class-prefix}-text-green { + &:hover, + &:focus { + color: darken(@green-color, 5%) !important; + } +} + +.@{class-prefix}-text-red { + color: @red-color !important; +} + +a.@{class-prefix}-text-red { + &:hover, + &:focus { + color: darken(@red-color, 5%) !important; + } +} + +.@{class-prefix}-text-amber { + color: @amber-color !important; +} + +a.@{class-prefix}-text-amber { + &:hover, + &:focus { + color: darken(@amber-color, 5%) !important; + } +} + +.@{class-prefix}-text-blue { + color: @blue-color !important; +} + +a.@{class-prefix}-text-blue { + &:hover, + &:focus { + color: darken(@blue-color, 5%) !important; + } +} + +.@{class-prefix}-text-indigo { + color: @indigo-color !important; +} + +a.@{class-prefix}-text-indigo { + &:hover, + &:focus { + color: darken(@indigo-color, 5%) !important; + } +} + +.@{class-prefix}-text-purple { + color: @purple-color !important; +} + +a.@{class-prefix}-text-purple { + &:hover, + &:focus { + color: darken(@purple-color, 5%) !important; + } +} + +.@{class-prefix}-text-orange { + color: @orange-color !important; +} + +a.@{class-prefix}-text-orange { + &:hover, + &:focus { + color: darken(@orange-color, 5%) !important; + } +} + +.@{class-prefix}-text-yellow { + color: @yellow-color !important; +} + +a.@{class-prefix}-text-yellow { + &:hover, + &:focus { + color: darken(@yellow-color, 5%) !important; + } +} + +.@{class-prefix}-text-teal { + color: @teal-color !important; +} + +a.@{class-prefix}-text-teal { + &:hover, + &:focus { + color: darken(@teal-color, 5%) !important; + } +} + +.@{class-prefix}-text-cyan { + color: @cyan-color !important; +} + +a.@{class-prefix}-text-cyan { + &:hover, + &:focus { + color: darken(@cyan-color, 5%) !important; + } +} + +.@{class-prefix}-text-muted { + color: @grey-7 !important; +} + +// Border ColorPicker +.@{class-prefix}-border-primary { + border-color: @primary-color !important; +} + +.@{class-prefix}-border-secondary { + border-color: @secondary-color !important; +} + +.@{class-prefix}-border-success { + border-color: @success-color !important; +} + +.@{class-prefix}-border-info { + border-color: @info-color !important; +} + +.@{class-prefix}-border-warning { + border-color: @warning-color !important; +} + +.@{class-prefix}-border-danger { + border-color: @danger-color !important; +} + +.@{class-prefix}-border-light { + border-color: @grey-6 !important; +} + +.@{class-prefix}-border-dark { + border-color: @grey-8 !important; +} + +.@{class-prefix}-border-white { + border-color: @white-color !important; +} + +.@{class-prefix}-border-grey { + border-color: @grey-6 !important; +} + +.@{class-prefix}-border-pink { + border-color: @pink-color !important; +} + +.@{class-prefix}-border-green { + border-color: @green-color !important; +} + +.@{class-prefix}-border-red { + border-color: @red-color !important; +} + +.@{class-prefix}-border-amber { + border-color: @amber-color !important; +} + +.@{class-prefix}-border-blue { + border-color: @blue-color !important; +} + +.@{class-prefix}-border-indigo { + border-color: @indigo-color !important; +} + +.@{class-prefix}-border-purple { + border-color: @purple-color !important; +} + +.@{class-prefix}-border-orange { + border-color: @orange-color !important; +} + +.@{class-prefix}-border-yellow { + border-color: @yellow-color !important; +} + +.@{class-prefix}-border-teal { + border-color: @blue-color !important; +} + +.@{class-prefix}-border-cyan { + border-color: @cyan-color !important; +} + +// Button ColorPicker +.@{class-prefix}-btn-primary, +a.@{class-prefix}-btn-primary, +.btn-primary { + color: @white-color !important; + background-color: @primary-color !important; + border-color: @primary-color !important; + + &:hover, + &:focus { + color: @white-color !important; + background-color: @primary-7 !important; + border-color: @primary-7 !important; + } + + &.disabled, + &:disabled { + background-color: @primary-color !important; + border-color: @primary-color !important; + } + + &:not([disabled]):not(.disabled):active, + &:not([disabled]):not(.disabled).active { + color: @white-color; + background-color: @primary-7 !important; + border-color: @primary-7 !important; + } +} + +.@{class-prefix}-btn-secondary, +a.@{class-prefix}-btn-secondary { + color: @white-color !important; + background-color: @secondary-color !important; + border-color: @secondary-color !important; + + &:hover, + &:focus { + color: @white-color; + background-color: @red-7 !important; + border-color: @red-7 !important; + } + + &.disabled, + &:disabled { + background-color: @secondary-color !important; + border-color: @secondary-color !important; + } + + &:not([disabled]):not(.disabled):active, + &:not([disabled]):not(.disabled).active { + color: @white-color; + background-color: @red-7 !important; + border-color: @red-7 !important; + } +} + +.@{class-prefix}-btn-success, +a.@{class-prefix}-btn-success { + color: @white-color !important; + background-color: @success-color !important; + border-color: @success-color !important; + + &:hover, + &:focus { + color: @white-color !important; + background-color: darken(@success-color, 10%) !important; + border-color: darken(@success-color, 10%) !important; + } + + &.disabled, + &:disabled { + background-color: @success-color !important; + border-color: @success-color !important; + } + + &:not([disabled]):not(.disabled):active, + &:not([disabled]):not(.disabled).active { + color: @white-color !important; + background-color: darken(@success-color, 10%) !important; + border-color: darken(@success-color, 10%) !important; + } +} + +.@{class-prefix}-btn-info, +a.@{class-prefix}-btn-info { + color: @white-color !important; + background-color: @info-color !important; + border-color: @info-color !important; + + &:hover, + &:focus { + color: @white-color !important; + background-color: darken(@info-color, 10%) !important; + border-color: darken(@info-color, 10%) !important; + } + + &.disabled, + &:disabled { + background-color: @info-color !important; + border-color: @info-color !important; + } + + &:not([disabled]):not(.disabled):active, + &:not([disabled]):not(.disabled).active { + color: @white-color !important; + background-color: darken(@info-color, 10%) !important; + border-color: darken(@info-color, 10%) !important; + } +} + +.@{class-prefix}-btn-warning, +a.@{class-prefix}-btn-warning { + color: @grey-9 !important; + background-color: @warning-color !important; + border-color: @warning-color !important; + + &:hover, + &:focus { + color: @white-color !important; + background-color: darken(@warning-color, 10%) !important; + border-color: darken(@warning-color, 10%) !important; + } + + &.disabled, + &:disabled { + background-color: @warning-color !important; + border-color: @warning-color !important; + } + + &:not([disabled]):not(.disabled):active, + &:not([disabled]):not(.disabled).active { + color: @white-color !important; + background-color: darken(@warning-color, 10%) !important; + border-color: darken(@warning-color, 10%) !important; + } +} + +.@{class-prefix}-btn-yellow, +a.@{class-prefix}-btn-yellow { + color: @grey-9 !important; + background-color: @yellow-color !important; + border-color: @yellow-color !important; + + &:hover, + &:focus { + color: @white-color !important; + background-color: darken(@yellow-color, 10%) !important; + border-color: darken(@yellow-color, 10%) !important; + } + + &.disabled, + &:disabled { + background-color: @yellow-color !important; + border-color: @yellow-color !important; + } + + &:not([disabled]):not(.disabled):active, + &:not([disabled]):not(.disabled).active { + color: @white-color !important; + background-color: darken(@yellow-color, 10%) !important; + border-color: darken(@yellow-color, 10%) !important; + } +} + +.@{class-prefix}-btn-danger, +a.@{class-prefix}-btn-danger, +.@{class-prefix}-btn-red, +a.@{class-prefix}-btn-red { + color: @white-color !important; + background-color: @danger-color !important; + border-color: @danger-color !important; + + &:hover, + &:focus { + color: @white-color !important; + background-color: darken(@danger-color, 10%) !important; + border-color: darken(@danger-color, 10%) !important; + } + + &.disabled, + &:disabled { + background-color: @danger-color !important; + border-color: @danger-color !important; + } + + &:not([disabled]):not(.disabled):active, + &:not([disabled]):not(.disabled).active { + color: @white-color !important; + background-color: darken(@danger-color, 10%) !important; + border-color: darken(@danger-color, 10%) !important; + } +} + +.@{class-prefix}-btn-light, +a.@{class-prefix}-btn-light { + color: @grey-7 !important; + background-color: @grey-4 !important; + border-color: @grey-4 !important; + + &:hover, + &:focus { + color: @grey-7 !important; + background-color: @grey-5 !important; + border-color: @grey-5 !important; + } + + &.disabled, + &:disabled { + background-color: @grey-3 !important; + border-color: @grey-3 !important; + } + + &:not([disabled]):not(.disabled):active, + &:not([disabled]):not(.disabled).active { + color: @grey-9 !important; + background-color: @grey-4 !important; + border-color: @grey-4 !important; + } +} + +.@{class-prefix}-btn-dark, +a.@{class-prefix}-btn-dark { + color: @white-color !important; + background-color: @dark-color !important; + border-color: @dark-color !important; + + &:hover, + &:focus { + color: @white-color !important; + background-color: darken(@dark-color, 10%) !important; + border-color: darken(@dark-color, 10%) !important; + } + + &.disabled, + &:disabled { + background-color: @dark-color !important; + border-color: @dark-color !important; + } + + &:not([disabled]):not(.disabled):active, + &:not([disabled]):not(.disabled).active { + color: @white-color !important; + background-color: darken(@dark-color, 10%) !important; + border-color: darken(@dark-color, 10%) !important; + } +} + +.@{class-prefix}-btn-purple, +a.@{class-prefix}-btn-purple { + color: @white-color !important; + background-color: @purple-color !important; + border-color: @purple-color !important; + + &:hover, + &:focus { + color: @white-color !important; + background-color: darken(@purple-color, 10%) !important; + border-color: darken(@purple-color, 10%) !important; + } + + &.disabled, + &:disabled { + background-color: @purple-color !important; + border-color: @purple-color !important; + } + + &:not([disabled]):not(.disabled):active, + &:not([disabled]):not(.disabled).active { + color: @white-color !important; + background-color: darken(@purple-color, 10%) !important; + border-color: darken(@purple-color, 10%) !important; + } +} + +.@{class-prefix}-btn-outline-primary, +a.@{class-prefix}-btn-outline-primary { + color: @primary-color !important; + background-color: transparent !important; + border-color: @primary-color !important; + + &:hover, + &:focus { + color: @white-color !important; + background-color: @primary-color !important; + border-color: @primary-color !important; + } + + &.disabled, + &:disabled { + color: @primary-color !important; + background-color: transparent !important; + } +} + +.@{class-prefix}-btn-outline-secondary, +a.@{class-prefix}-btn-outline-secondary { + color: @secondary-color !important; + background-color: transparent !important; + border-color: @secondary-color !important; + + &:hover, + &:focus { + color: @white-color !important; + background-color: @secondary-color !important; + border-color: @secondary-color !important; + } + + &.disabled, + &:disabled { + color: @secondary-color !important; + background-color: transparent !important; + } +} + +.@{class-prefix}-btn-outline-success, +a.@{class-prefix}-btn-outline-success { + color: @success-color !important; + background-color: transparent !important; + border-color: @success-color !important; + + &:hover, + &:focus { + color: @white-color !important; + background-color: @success-color !important; + border-color: @success-color !important; + } + + &.disabled, + &:disabled { + color: @success-color !important; + background-color: transparent !important; + } +} + +.@{class-prefix}-btn-outline-info, +a.@{class-prefix}-btn-outline-info { + color: @info-color !important; + background-color: transparent !important; + border-color: @info-color !important; + + &:hover, + &:focus { + color: @white-color !important; + background-color: @info-color !important; + border-color: @info-color !important; + } + + &.disabled, + &:disabled { + color: @info-color !important; + background-color: transparent !important; + } +} + +.@{class-prefix}-btn-outline-warning, +a.@{class-prefix}-btn-outline-warning { + color: @warning-color !important; + background-color: transparent !important; + border-color: @warning-color !important; + + &:hover, + &:focus { + color: @grey-9 !important; + background-color: @warning-color !important; + border-color: @warning-color !important; + } + + &.disabled, + &:disabled { + color: @warning-color !important; + background-color: transparent !important; + } +} + +.@{class-prefix}-btn-outline-danger, +a.@{class-prefix}-btn-outline-danger, +.@{class-prefix}-btn-outline-red, +a.@{class-prefix}-btn-outline-red { + color: @danger-color !important; + background-color: transparent !important; + border-color: @danger-color !important; + + &:hover, + &:focus { + color: @white-color !important; + background-color: @danger-color !important; + border-color: @danger-color !important; + } + + &.disabled, + &:disabled { + color: @danger-color !important; + background-color: transparent !important; + } +} + +.@{class-prefix}-btn-outline-light, +a.@{class-prefix}-btn-outline-light { + color: @grey-7 !important; + background-color: transparent !important; + border-color: @grey-5 !important; + + &:hover, + &:focus { + color: @grey-7 !important; + background-color: @grey-5 !important; + border-color: @grey-5 !important; + } + + &.disabled, + &:disabled { + color: @grey-4 !important; + background-color: transparent !important; + } +} + +.@{class-prefix}-btn-outline-dark, +a.@{class-prefix}-btn-outline-dark { + color: @grey-9 !important; + background-color: transparent !important; + border-color: @grey-9 !important; + + &:hover, + &:focus { + color: @white-color !important; + background-color: @grey-9 !important; + border-color: @grey-9 !important; + } + + &.disabled, + &:disabled { + color: @grey-9 !important; + background-color: transparent !important; + } +} + +// Badge ColorPicker +.@{class-prefix}-badge-primary { + background-color: @primary-color !important; +} + +.@{class-prefix}-badge-primary-light { + background-color: @primary-4 !important; +} + +.@{class-prefix}-badge-secondary { + background-color: @secondary-color !important; +} + +.@{class-prefix}-badge-success { + background-color: @success-color !important; +} + +.@{class-prefix}-badge-info { + background-color: @info-color !important; +} + +.@{class-prefix}-bg-warning { + background-color: @warning-color !important; +} + +.@{class-prefix}-badge-danger { + background-color: @danger-color !important; +} + +.@{class-prefix}-badge-light { + background-color: @grey-4 !important; +} + +.@{class-prefix}-badge-dark { + background-color: @black-color !important; +} + +.@{class-prefix}-badge-white { + background-color: @white-color !important; +} + +.@{class-prefix}-badge-grey { + background-color: @grey-6 !important; +} + +.@{class-prefix}-badge-light-grey { + background-color: @grey-5 !important; +} + +.@{class-prefix}-badge-pink { + background-color: @pink-color !important; +} + +.@{class-prefix}-badge-green { + background-color: @green-color !important; +} + +.@{class-prefix}-badge-green-light { + background-color: lighten(@green-color, 40%) !important; +} + +.@{class-prefix}-badge-red { + background-color: @red-color !important; +} + +.@{class-prefix}-badge-amber { + background-color: @amber-color !important; +} + +.@{class-prefix}-badge-amber-light { + background-color: lighten(@amber-color, 30%) !important; +} + +.@{class-prefix}-badge-blue { + background-color: @blue-color !important; +} + +.@{class-prefix}-badge-light-blue { + background-color: lighten(@blue-color, 5%) !important; +} + +.@{class-prefix}-badge-indigo { + background-color: @indigo-color !important; +} + +.@{class-prefix}-badge-purple { + background-color: @purple-color !important; +} + +.@{class-prefix}-badge-orange { + background-color: @orange-color !important; +} + +.@{class-prefix}-badge-yellow { + background-color: @yellow-color !important; +} + +.@{class-prefix}-badge-teal { + background-color: @teal-color !important; +} + +.@{class-prefix}-badge-cyan { + background-color: @cyan-color !important; +} + diff --git a/src/styles/global/custom-animation.less b/src/styles/global/custom-animation.less new file mode 100644 index 000000000..b93fdc4b4 --- /dev/null +++ b/src/styles/global/custom-animation.less @@ -0,0 +1,216 @@ +/* Ripple magic */ +.gx-ripple-effect { + position: relative; + overflow: hidden; + &:after { + content: ''; + position: absolute; + top: 50%; + left: 50%; + width: 5px; + height: 5px; + background: fade(@white-color, 50%); + opacity: 0; + .border-radius(100%); + transform: scale(1, 1) translate(-50%); + transform-origin: 50% 50%; + } + + &:hover:after { + animation: ripple 1s ease-out; + } +} + +@keyframes ripple { + 0% { + transform: scale(0, 0); + opacity: 0.5; + } + 20% { + transform: scale(60, 60); + opacity: 0.3; + } + 100% { + opacity: 0; + transform: scale(100, 100); + } +} + +@-webkit-keyframes ripple { + 0% { + transform: scale(0, 0); + opacity: 0.5; + } + 20% { + transform: scale(60, 60); + opacity: 0.3; + } + 100% { + opacity: 0; + transform: scale(100, 100); + } +} + +//Pulse Effect +.gx-pulse-effect { + display: block; + .box-shadow (0 0 0 fade(@danger-color, 40%)); + animation: pulse 2s infinite; +} + +@-webkit-keyframes pulse { + 0% { + -webkit-box-shadow: 0 0 0 0 fade(@danger-color, 40%); + } + 70% { + -webkit-box-shadow: 0 0 0 10px fade(@danger-color, 0%); + } + 100% { + -webkit-box-shadow: 0 0 0 0 fade(@danger-color, 0%); + } +} + +@keyframes pulse { + 0% { + -moz-box-shadow: 0 0 0 0 fade(@danger-color, 40%); + box-shadow: 0 0 0 0 fade(@danger-color, 40%); + } + 70% { + -moz-box-shadow: 0 0 0 10px fade(@danger-color, 0%); + box-shadow: 0 0 0 10px fade(@danger-color, 0%); + } + 100% { + -moz-box-shadow: 0 0 0 0 fade(@danger-color, 0%); + box-shadow: 0 0 0 0 fade(@danger-color, 0%); + } +} + +//Online Effect +.gx-online-effect { + display: block; + .box-shadow(0 0 0 fade(@green-color, 40%)); + animation: online 2s infinite; +} + +@-webkit-keyframes online { + 0% { + -webkit-box-shadow: 0 0 0 0 fade(@green-color, 40%); + } + 70% { + -webkit-box-shadow: 0 0 0 10px fade(@green-color, 0%); + } + 100% { + -webkit-box-shadow: 0 0 0 0 fade(@green-color, 0%); + } +} + +@keyframes online { + 0% { + -moz-box-shadow: 0 0 0 0 fade(@green-color, 40%); + box-shadow: 0 0 0 0 fade(@green-color, 40%); + } + 70% { + -moz-box-shadow: 0 0 0 10px fade(@green-color, 0%); + box-shadow: 0 0 0 10px fade(@green-color, 0%); + } + 100% { + -moz-box-shadow: 0 0 0 0 fade(@green-color, 0%); + box-shadow: 0 0 0 0 fade(@green-color, 0%); + } +} + +//Away Effect +.gx-away-effect { + display: block; + .box-shadow(0 0 0 fade(@yellow-color, 40%)); + animation: away 2s infinite; +} + +@-webkit-keyframes away { + 0% { + -webkit-box-shadow: 0 0 0 0 fade(@yellow-color, 40%); + } + 70% { + -webkit-box-shadow: 0 0 0 10px fade(@yellow-color, 0%); + } + 100% { + -webkit-box-shadow: 0 0 0 0 fade(@yellow-color, 0%); + } +} + +@keyframes away { + 0% { + -moz-box-shadow: 0 0 0 0 fade(@yellow-color, 40%); + box-shadow: 0 0 0 0 fade(@yellow-color, 40%); + } + 70% { + -moz-box-shadow: 0 0 0 10px fade(@yellow-color, 0%); + box-shadow: 0 0 0 10px fade(@yellow-color, 0%); + } + 100% { + -moz-box-shadow: 0 0 0 0 fade(@yellow-color, 0%); + box-shadow: 0 0 0 0 fade(@yellow-color, 0%); + } +} + +//Orange Effect +.gx-orange-effect { + display: block; + .box-shadow(0 0 0 fade(@orange-color, 40%)); + animation: away 2s infinite; +} + +@-webkit-keyframes away { + 0% { + -webkit-box-shadow: 0 0 0 0 fade(@orange-color, 40%); + } + 70% { + -webkit-box-shadow: 0 0 0 10px fade(@orange-color, 0%); + } + 100% { + -webkit-box-shadow: 0 0 0 0 fade(@orange-color, 0%); + } +} + +@keyframes away { + 0% { + -moz-box-shadow: 0 0 0 0 fade(@orange-color, 40%); + box-shadow: 0 0 0 0 fade(@orange-color, 40%); + } + 70% { + -moz-box-shadow: 0 0 0 10px fade(@orange-color, 0%); + box-shadow: 0 0 0 10px fade(@orange-color, 0%); + } + 100% { + -moz-box-shadow: 0 0 0 0 fade(@orange-color, 0%); + box-shadow: 0 0 0 0 fade(@orange-color, 0%); + } +} + +//Rotate infinite +@-webkit-keyframes fxicon-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes fxicon-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +.fxicon-hc-spin { + -webkit-animation: fxicon-spin 1.5s infinite linear; + animation: fxicon-spin 1.5s infinite linear; +} diff --git a/src/styles/global/index.less b/src/styles/global/index.less new file mode 100644 index 000000000..66096495e --- /dev/null +++ b/src/styles/global/index.less @@ -0,0 +1,23 @@ +@import "variables"; +@import 'mixin'; +@import "colors-class"; +@import "custom-animation"; +/* width */ +::-webkit-scrollbar { + width: 10px; +} + +/* Track */ +::-webkit-scrollbar-track { + background: transparent; +} + +/* Handle */ +::-webkit-scrollbar-thumb { + background: #888; +} + +/* Handle on hover */ +::-webkit-scrollbar-thumb:hover { + background: #555; +} diff --git a/src/styles/global/mixin.less b/src/styles/global/mixin.less new file mode 100644 index 000000000..9d6bf8fb2 --- /dev/null +++ b/src/styles/global/mixin.less @@ -0,0 +1,160 @@ +// Box Shadow +.box-shadow(@shadow...) { + -webkit-box-shadow: @shadow; + -moz-box-shadow: @shadow; + box-shadow: @shadow; +} + +// Single side border-radius +.border-radius(@radius...) { + -webkit-border-radius: @radius; + -moz-border-radius: @radius; + border-radius: @radius; +} + +// Single side box-sizing +.box-sizing (@type: border-box) { + -webkit-box-sizing: @type; + -moz-box-sizing: @type; + box-sizing: @type; +} + +// Opacity +.opacity (@opacity: 0.5) { + -webkit-opacity: @opacity; + -moz-opacity: @opacity; + opacity: @opacity; +} + +// Transition +.transition (@transition) { + -webkit-transition: @transition; + -moz-transition: @transition; + -ms-transition: @transition; + -o-transition: @transition; + transition: @transition; +} + +// Rotate +.rotate (@deg) { + -webkit-transform: rotate(@deg); + -moz-transform: rotate(@deg); + -ms-transform: rotate(@deg); + -o-transform: rotate(@deg); + transform: rotate(@deg); +} + +// Scale +.scale (@factor) { + -webkit-transform: scale(@factor); + -moz-transform: scale(@factor); + -ms-transform: scale(@factor); + -o-transform: scale(@factor); + transform: scale(@factor); +} + +// -------------------------------------------------- +// Flexbox LESS mixins +// The spec: http://www.w3.org/TR/css3-flexbox +// -------------------------------------------------- + +// Flexbox display +.flex-display(@display: flex, @direction: row, @wrap: wrap) { + display: ~"-webkit-@{display}"; + display: ~"-ms-@{display}box"; // IE10 uses -ms-flexbox + display: ~"-ms-@{display}"; // IE11 + display: @display; + + -webkit-flex-direction: @direction; + -ms-flex-direction: @direction; + flex-direction: @direction; + -webkit-flex-wrap: @wrap; + -ms-flex-wrap: @wrap; + flex-wrap: @wrap; +} + +// Flex Direction and Wrap +.flex-flow(@flow) { + -webkit-flex-flow: @flow; + -ms-flex-flow: @flow; + flex-flow: @flow; +} + +// Display Order +.flex-order(@order: 0) { + -webkit-order: @order; + -ms-order: @order; + order: @order; +} + +// Flex - applies to: flex items +.flex(@flex-grow: 0, @flex-shrink: 1, @flex-basis: auto) { + -webkit-flex: @flex-grow @flex-shrink @flex-basis; + -ms-flex: @flex-grow @flex-shrink @flex-basis; + flex: @flex-grow @flex-shrink @flex-basis; +} + +.flex-only(@flex-only) { + -webkit-flex: @flex-only; + -ms-flex: @flex-only; + flex: @flex-only; +} + +// Axis Alignment +// flex-start | flex-end | center | space-between | space-around +.justify-content(@justify: flex-start) { + -webkit-justify-content: @justify; + -ms-justify-content: @justify; + justify-content: @justify; +} + +// Packing Flex Lines +// flex-start | flex-end | center | space-between | space-around | stretch +.align-content(@align: stretch) { + -webkit-align-content: @align; + -ms-align-content: @align; + align-content: @align; +} + +// Cross-axis Alignment +// flex-start | flex-end | center | baseline | stretch +.align-items(@align: stretch) { + -webkit-align-items: @align; + -ms-align-items: @align; + align-items: @align; +} + +// Cross-axis Alignment +// auto | flex-start | flex-end | center | baseline | stretch +.align-self(@align: auto) { + -webkit-align-self: @align; + -ms-align-self: @align; + align-self: @align; +} + +//Background Image +.background-image(@imgpath, @position:0 0, @repeat: no-repeat) { + background-image: url(@imgpath); + background-position: @position; + background-repeat: @repeat; +} + +//Vertical Gradient +.vertical-gradient (@vstartColor: @orange-6, @vendColor: @red-6) { + background-color: @vstartColor; + background: -webkit-gradient(linear, left top, left bottom, from(@vstartColor), to(@vendColor)); + background: -webkit-linear-gradient(top, @vstartColor, @vendColor); + background: -moz-linear-gradient(top, @vstartColor, @vendColor); + background: -ms-linear-gradient(top, @vstartColor, @vendColor); + background: -o-linear-gradient(top, @vstartColor, @vendColor); +} + +//Horizontal Gradient +.horizontal-gradient (@hstartColor: @orange-6, @hendColor: @red-6) { + background-color: @hstartColor; + background-image: -webkit-gradient(linear, left top, right top, from(@hstartColor), to(@hendColor)); + background-image: -webkit-linear-gradient(left, @hstartColor, @hendColor); + background-image: -moz-linear-gradient(left, @hstartColor, @hendColor); + background-image: -ms-linear-gradient(left, @hstartColor, @hendColor); + background-image: -o-linear-gradient(left, @hstartColor, @hendColor); +} diff --git a/src/styles/global/variables.less b/src/styles/global/variables.less new file mode 100644 index 000000000..ee959643b --- /dev/null +++ b/src/styles/global/variables.less @@ -0,0 +1,207 @@ +@font-family: 'Catamaran', sans-serif; + +@class-prefix: gx; + +// Grey ColorPicker Variables +@grey-2: #fafafa; +@grey-3: #f5f5f5; +@grey-4: #e8e8e8; +@grey-5: #d9d9d9; +@grey-6: #bfbfbf; +@grey-7: #8c8c8c; +@grey-8: #595959; +@grey-9: #262626; + +@info-color: @blue-6; +@success-color: @green-6; +@processing-color: @primary-color; +@error-color: @red-6; +@highlight-color: @red-6; +@warning-color: @orange-6; +@normal-color: #d9d9d9; +@danger-color: #f44336; +@light-color: #e8eaf6; +@dark-color: @grey-9; + +@blue-color: @blue-6; +@indigo-color: #3c1991; +@purple-color: @purple-6; +@pink-color: @pink-6; +@red-color: @red-6; +@orange-color: @orange-6; +@yellow-color: @yellow-6; +@amber-color: @yellow-color; +@green-color: @green-6; +@teal-color: #20c997; +@cyan-color: @cyan-6; +@gold-color: @gold-6; +@lime-color: @lime-6; + +// Background color for `` +@heading-color-dark: fade(#fff, 100%); +@text-color-dark: fade(#fff, 85%); +@text-color-secondary-dark: fade(#fff, 65%); +@font-size-base: 14px; +@font-size-lg: @font-size-base + 2px; +@font-size-sm: 12px; +@line-height-base: 1.5; +@border-radius-base: 4px; +@border-radius-sm: 2px; +@border-radius-lg: 8px; +@border-radius-xxl: 30px; +@border-radius-circle: 50%; + +// Border color +@border-color-base: hsv(0, 0, 85%); // base border outline a component +@border-color-split: hsv(0, 0, 91%); // split border inside a component +@border-width-base: 1px; // width of the border for a component +@border-style-base: solid; // style of a components border +@border-color: @border-color-split; + +// LINK +@link-color: @primary-color; +@link-hover-color: color(~`colorPalette("@{link-color}", 5)`); +@link-active-color: color(~`colorPalette("@{link-color}", 7)`); + +@h1-font-size: 22px; +@h2-font-size: 20px; +@h3-font-size: 18px; +@h4-font-size: 16px; +@h5-font-size: 14px; +@h6-font-size: 12px; + +@headings-font-weight: 400; +@headings-line-height: 1.2; + +@font-weight-thin: 100; +@font-weight-extra-light: 200; +@font-weight-light: 300; +@font-weight-normal: 400; +@font-weight-medium: 500; +@font-weight-semi-bold: 600; +@font-weight-bold: 700; +@font-weight-extra-bold: 800; +@font-weight-black: 900; + +// Sidebar Variables +@sidebar-width: 280px; +@sidebar-mini-drawer-width: 80px; +@sidebar-padding-lr: 30px; + +@sidebar-bg-darken: darken(@sidebar-bg, 3%); +@sidebar-hover-color: @primary-color; + +// Dark Sidebar Variables +@sidebar-dark-bg-darken: lighten(@sidebar-dark-bg, 6%); +@sidebar-dark-hover-color: @white-color; + +// Menu +// --- +@menu-inline-toplevel-item-height: 42px; +@menu-item-height: 42px; +@menu-collapsed-width: 80px; +@menu-bg: @component-background; +@menu-item-color: @text-color; +@menu-highlight-color: @primary-color; +@menu-item-active-bg: @item-active-bg; +@menu-item-group-title-color: #545454; +@menu-highlight-dot-color: @pink-5; + +// dark theme +@menu-dark-color: @text-color-secondary-dark; +@menu-dark-arrow-color: @white-color; +@menu-dark-submenu-bg: @sidebar-dark-bg-darken; +@menu-dark-highlight-color: @white-color; +@menu-dark-item-selected-bg: @sidebar-dark-bg-darken; + +// Layout +@layout-body-background: @body-background; +@layout-header-height: 72px; +@layout-header-padding: 0 30px; +@layout-header-padding-res: 0 20px; +@layout-footer-padding: 14px 30px; +@layout-sider-background: @sidebar-dark-bg; +@layout-trigger-height: 30px; +@layout-trigger-background: #002140; +@layout-trigger-color: @white-color; +@layout-zero-trigger-width: 36px; +@layout-zero-trigger-height: 28px; +@layout-main-content-padding: 30px; + +// Card +// --- +@card-head-color: @heading-color; +@card-head-background: @component-background; +@card-head-padding: 16px; +@card-inner-head-padding: 12px; +@card-padding-base: 24px; +@card-padding-wider: 24px; +@card-actions-background: @background-color-light; +@card-shadow: 0 2px 8px rgba(0, 0, 0, .09); + +@gx-card-padding-base: 24px; +@gx-card-padding-sm: @gx-card-padding-base - 10px; +@gx-card-shadow: 0 0 2px fade(@black-color, 35%); +@gx-card-shadow-lg: 0 0 10px 4px fade(@black-color, 35%); +@gx-card-shadow-md: 0 0 8px 3px fade(@black-color, 20%); +@gx-card-margin-base: 30px; + +// Gutter +@grid-gutter-width: 30px; + +//Sizes Variables +@size-20: 20px; +@size-30: 30px; +@size-40: 40px; +@size-50: 50px; +@size-60: 60px; +@size-80: 80px; +@size-100: 100px; +@size-120: 120px; + +//latter Spacing variables +@letter-spacing-base: 3px; +@letter-spacing-lg: 6px; +@letter-spacing-xl: 8px; + +//CRM Image Location +@image_path: "../../assets/images"; + +// Apps Variables +@app-sidebar-width: 230px; +@app-chat-sidebar-width: 315px; + +// Form +// --- +@label-required-color: @highlight-color; +@label-color: @heading-color; +@form-item-margin-bottom: 20px; +@form-item-trailing-colon: true; +@form-vertical-label-padding: 0 0 8px; +@form-vertical-label-margin: 0; + +// Buttons +@btn-height-base: 32px; +@btn-height-lg: 40px; +@btn-height-sm: 24px; +@btn-font-size-lg: @font-size-lg; +@btn-font-size-sm: @font-size-sm; +@btn-font-size-xs: @font-size-sm - 2px; +@btn-padding-xs: 0 6px; + +// Dragndrop +@dragndrop-paddding-tb: 24px; +@dragndrop-paddding-lr: 16px; + +//Pricing Table +@gx-pricing-table-base: 30px; + +// Customizer +@gx-customizer-width: 370px; +@gx-customizer-base: 20px; + +//Framed Layout +@framed-layout-base: 20px; + + + diff --git a/src/styles/layout/ant-layout.less b/src/styles/layout/ant-layout.less new file mode 100644 index 000000000..fca296918 --- /dev/null +++ b/src/styles/layout/ant-layout.less @@ -0,0 +1,41 @@ +/* Ant Layout Style */ +.ant-layout { + height: 100vh; + position: relative; + background: none; + + & > .ant-layout-content { + overflow-x: hidden; + .flex-display(flex, column, nowrap); + } + + &.ant-layout-has-sider > .ant-layout { + position: relative; + } + .boxed-layout & { + background: @white-color; + } + + .framed-layout & { + background: @white-color; + height: calc(100vh~"-"2 * @framed-layout-base); + + @media screen and (max-width: @screen-md-max) { + height: 100vh; + } + } +} + +.@{class-prefix}-main-content-wrapper { + padding: @layout-main-content-padding @layout-main-content-padding 0; + flex: 1; + //.flex-display(flex, column, nowrap); +} + +.@{class-prefix}-main-content { + .flex-display(flex, column, nowrap); + flex: 1; + height: 100%; +} + + diff --git a/src/styles/layout/customizer.less b/src/styles/layout/customizer.less new file mode 100644 index 000000000..6de08b7e9 --- /dev/null +++ b/src/styles/layout/customizer.less @@ -0,0 +1,77 @@ +/* Customizer Style */ +.@{class-prefix}-customizer { + height: calc(100vh ~"-" 70px) !important; + + &-item { + + &:not(:last-child) { + border-bottom: @border-style-base @border-width-base @border-color; + padding-bottom: @gx-customizer-base; + margin-bottom: @gx-customizer-base; + } + + & .ant-radio-group { + & .ant-radio-button { + display: none; + } + } + } + + &-option { + position: absolute; + right: 0; + top: 150px; + z-index: 99; + } + + @media screen and (max-width: @screen-xs-max) { + width: @gx-customizer-width - 120px !important; + } +} + +.@{class-prefix}-color-option { + margin-bottom: 0; + max-width: @gx-customizer-width - 30px; + padding-left: 0; + + & li { + font-size: 36px; + line-height: 1; + + & a { + width: @size-40; + height: @size-40; + display: block; + position: relative; + .border-radius(@border-radius-circle); + } + + & a:before { + font-family: "gaxon-ant"; + font-size: 20px; + content: "\4b"; + position: absolute; + left: 0; + top: 0; + z-index: 2; + width: @size-40; + height: @size-40; + line-height: @size-40; + text-align: center; + display: none; + color: @white-color; + } + + & a.active:before { + display: block; + } + } + + @media screen and (max-width: @screen-xs-max) { + width: @gx-customizer-width - 150px !important; + } +} + +.@{class-prefix}-cus-customiz { + padding-right: 20px; +} diff --git a/src/styles/layout/drawer.less b/src/styles/layout/drawer.less new file mode 100644 index 000000000..09911107b --- /dev/null +++ b/src/styles/layout/drawer.less @@ -0,0 +1,92 @@ +/* Drawer Style */ +.ant-drawer { + overflow: hidden; + + &-body { + padding: 0; + } + + &-content { + .@{class-prefix}-drawer-sidebar-dark & { + background-color: @sidebar-dark-bg; + } + } + + &-content-wrapper { + width: @sidebar-width !important; + + @media screen and (max-width: @screen-md-max) { + width: @sidebar-width - 20px !important; + } + + .framed-layout & { + top: @framed-layout-base; + bottom: @framed-layout-base; + height: calc(100vh~"-"2 * @framed-layout-base); + .border-radius(11px 0 0 11px); + overflow: hidden; + + @media screen and (max-width: @screen-md-max) { + top: 0; + bottom: 0; + height: 100vh; + .border-radius(0) !important; + } + } + + .ant-drawer-right & { + width: @gx-customizer-width !important; + padding: 15px; + background: @white-color; + + @media screen and (max-width: @screen-md-max) { + width: @gx-customizer-width - 70px !important; + } + + .framed-layout & { + top: @framed-layout-base; + bottom: @framed-layout-base; + height: calc(100vh~"-"2 * @framed-layout-base); + .border-radius(0 11px 11px 0); + overflow: hidden; + + @media screen and (max-width: @screen-md-max) { + top: 0; + bottom: 0; + height: 100vh; + .border-radius(0) !important; + } + } + } + } + + .framed-layout & { + position: absolute; + } + + .boxed-layout & { + position: absolute; + } + + &-left { + .framed-layout & { + left: @framed-layout-base; + } + } + + &-right { + .framed-layout & { + right: @framed-layout-base; + } + } + + &-close { + top: -11px; + + &-x { + width: @size-30 + 5px; + height: @size-30 + 5px; + line-height: @size-30 + 5px; + } + } +} diff --git a/src/styles/layout/footer.less b/src/styles/layout/footer.less new file mode 100644 index 000000000..b2e84ab4a --- /dev/null +++ b/src/styles/layout/footer.less @@ -0,0 +1,4 @@ +/* Footer Style */ +.ant-layout-footer { + border-top: @border-style-base @border-width-base @border-color; +} diff --git a/src/styles/layout/header.less b/src/styles/layout/header.less new file mode 100644 index 000000000..be29e0efd --- /dev/null +++ b/src/styles/layout/header.less @@ -0,0 +1,177 @@ +/* Header Style */ +.ant-layout-header { + .box-shadow(0 0 4px fade(@black-color, 28%)); + .flex-display(flex, row, wrap); + .align-items(center); + .justify-content(space-between); + line-height: 1; + padding: @layout-header-padding; + height: @layout-header-height; + position: relative; + z-index: 10; + color: @header-text-color; + + @media screen and (max-width: @screen-md-max) { + padding: @layout-header-padding-res; + } +} + +.@{class-prefix}-nav-header { + padding: @layout-header-padding; + border-bottom: @border-width-base @border-style-base (fade(@white-color, 50%)); + background-color: @layout-header-background; + + & .ant-menu-horizontal { + margin-bottom: -1px; + border-bottom-color: transparent; + } +} + +.@{class-prefix}-nav-header-below { + .box-shadow(0 1px 2px 1px fade(@black-color, 28%)); + position: relative; + z-index: 999; +} + +.ant-dropdown-menu-item { + .flex-display(); + .align-items(center); +} + +.@{class-prefix}-linebar { + font-size: 20px; +} + +.@{class-prefix}-header-notifications { + list-style: none; + margin: 0; + padding-left: 0; + .flex-display(flex, row, wrap); + .align-items(center); + + & > li { + font-size: 14px; + + &:not(:last-child) { + margin-right: 42px; + + .@{class-prefix}-layout-header-horizontal & { + margin-right: 20px; + } + + @media screen and (max-width: @screen-md-max) { + margin-right: 20px; + } + + @media screen and (max-width: @screen-sm-max) { + margin-right: 16px; + } + } + + &.@{class-prefix}-notify { + margin-right: 22px; + + .@{class-prefix}-layout-header-horizontal & { + margin-right: 20px; + } + + @media screen and (max-width: @screen-md-max) { + margin-right: 16px; + } + } + + &.@{class-prefix}-language { + + & .@{class-prefix}-language-name { + @media screen and (max-width: @screen-xs-max) { + display: none; + } + } + } + + &.@{class-prefix}-notify-search { + @media screen and (max-width: @screen-xs-max) { + display: none !important; + } + } + } +} + +.@{class-prefix}-popover-scroll { + height: 280px !important; + width: 300px !important; + margin: 0 -16px; + + @media screen and (max-width: @screen-xs-max) { + height: 210px !important; + width: 200px !important; + } +} + +.@{class-prefix}-popover-lang-scroll { + height: 220px !important; + width: 160px !important; + margin: 0 -16px; +} + +.ant-popover-placement-bottomRight { + & > .ant-popover-content { + & > .ant-popover-arrow { + right: 10px; + } + } +} + +.@{class-prefix}-popover-header { + .flex-display(flex, row, wrap); + .align-items(center); + .justify-content(space-between); + border-bottom: @border-style-base @border-width-base @border-color; + margin: 0 -16px; + padding: 0 16px 12px; +} + +.@{class-prefix}-sub-popover { + list-style: none; + margin: 0 16px; + padding-left: 0; + + & li { + padding: 20px 0 14px; + + .@{class-prefix}-popover-lang-scroll & { + padding: 5px 0; + } + + &:not(:last-child) { + border-bottom: @border-style-base @border-width-base @border-color; + } + } +} + +.@{class-prefix}-user-nav { + & .ant-avatar.@{class-prefix}-size-50 { + @media screen and (max-width: @screen-md-max) { + height: @size-40 !important; + width: @size-40 !important; + line-height: @size-40 !important; + } + } +} + +.@{class-prefix}-user-popover { + margin: -12px -16px; + padding: 7px 0; + list-style: none; + + & li { + cursor: pointer; + padding: 3px 15px; + width: 150px; + + &:hover, + &:focus { + background-color: @grey-2; + } + } +} diff --git a/src/styles/layout/index.less b/src/styles/layout/index.less new file mode 100644 index 000000000..ef64ed1f1 --- /dev/null +++ b/src/styles/layout/index.less @@ -0,0 +1,7 @@ +@import 'ant-layout'; +@import "header"; +@import "sidebar"; +@import "navbar"; +@import "footer"; +@import "customizer"; +@import "drawer"; diff --git a/src/styles/layout/navbar.less b/src/styles/layout/navbar.less new file mode 100644 index 000000000..2e57daf93 --- /dev/null +++ b/src/styles/layout/navbar.less @@ -0,0 +1,497 @@ +/* Ant Menu Style */ + +// CRM theme +.ant-menu { + color: @menu-item-color; + background: @menu-bg; + + &-horizontal { + background: none; + } + + &-item-group-title { + color: @menu-item-group-title-color; + font-size: @font-size-base; + line-height: @line-height-base; + padding: 10px @sidebar-padding-lr; + + .ant-menu-submenu-popup & { + padding-left: (@sidebar-padding-lr - 10px); + } + + .ant-layout-sider & { + padding-top: (@sidebar-padding-lr + 10px); + } + } + + &-item:active, + &-submenu-title:active { + background: @menu-item-active-bg; + } + &-item .icon { + min-width: 14px; + margin-right: 22px; + + &[class^="icon-"]::before, + &[class*=" icon-"]::before { + position: relative; + top: 2px; + } + } + + &-sub &-item .icon { + font-size: 12px; + } + + &-item > a { + color: @menu-item-color; + &:hover { + color: @menu-highlight-color; + } + } + + &-item-divider { + background-color: @border-color-split; + } + + &-submenu-inline { + .transition(all 0.3s ease-out); + } + + &-submenu-inline&-submenu-open { + + .ant-layout-sider & { + padding: 12px 0; + } + } + + &-item:hover, + &-item-active, + &:not(.ant-menu-inline) &-submenu-open, + &-submenu-active, + &-submenu-title:hover { + color: @menu-highlight-color; + } + + &-horizontal > &-item:hover, + &-horizontal > &-item-active, + &-horizontal > &-submenu &-submenu-title:hover { + background-color: transparent; + } + + &-item-selected { + color: @menu-highlight-color; + > a { + color: @menu-item-color; + } + + > a:hover { + color: @menu-highlight-color; + } + } + + &:not(.ant-menu-horizontal) &-item-selected { + background-color: @menu-item-active-bg; + } + + &-inline, + &-vertical, + &-vertical-left { + border-right: @border-width-base @border-style-base @border-color-split; + } + &-vertical-right { + border-left: @border-width-base @border-style-base @border-color-split; + } + + &-item, + &-submenu-title { + padding: 0 20px; + + .@{class-prefix}-layout-header-horizontal & { + padding: 0 10px; + + @media screen and (max-width: @screen-lg-max) { + padding: 0 6px; + } + } + + .@{iconfont-css-prefix} { + margin-right: 20px; + } + } + + & > &-item-divider { + background-color: @border-color-split; + } + + &-sub { + & > li { + & > a { + position: relative; + } + } + } + + &-submenu { + > .ant-menu { + background-color: @menu-bg; + border-radius: 0; + + &.ant-menu-sub .ant-menu-item { + padding-left: 2*@sidebar-padding-lr - 6px !important; + + .ant-layout-sider & { + padding-left: 2*@sidebar-padding-lr + 6px !important; + } + } + } + + &-popup { + border-radius: 0; + z-index: @zindex-dropdown; + + & .ant-menu-sub { + &.ant-menu .ant-menu-item { + padding-left: @sidebar-padding-lr - 10px !important; + } + } + } + + &-vertical, + &-vertical-left, + &-vertical-right, + &-inline { + .@{menu-prefix-cls}-item:not(:last-child) { + margin-bottom: 0; + } + + > .ant-menu-submenu-title .ant-menu-submenu-arrow { + .@{class-prefix}-app-sidebar & { + position: relative; + top: auto; + right: auto; + } + + .ant-drawer & { + position: relative; + top: auto; + right: auto; + } + + &:before, + &:after { + background-image: linear-gradient(to right, @menu-item-color, @menu-item-color); + } + } + > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow { + &:after, + &:before { + background: linear-gradient(to right, @menu-highlight-color, @menu-highlight-color); + } + } + } + } + + &-vertical &-submenu-selected, + &-vertical-left &-submenu-selected, + &-vertical-right &-submenu-selected { + color: @menu-highlight-color; + > a { + color: @menu-highlight-color; + } + } + + &-horizontal { + border-bottom: @border-width-base @border-style-base @border-color-split; + line-height: 46px; + padding: 0; + + .ant-layout-header & { + border-bottom: 0 none; + line-height: @layout-header-height - 2px; + } + + > .ant-menu-item, + > .ant-menu-submenu { + border-bottom: 2px @border-style-base transparent; + + &:hover, + &-active, + &-open, + &-selected { + border-bottom: 2px @border-style-base @menu-highlight-color; + color: @menu-highlight-color; + } + + > a { + color: @menu-item-color; + &:hover { + color: @menu-highlight-color; + } + &:before { + bottom: -2px; + } + } + } + } + + &-vertical, + &-vertical-left, + &-vertical-right, + &-inline { + .ant-menu-item { + &:not(:last-child) { + margin-bottom: 0; + } + &:after { + border-right: 3px @border-style-base @menu-highlight-color; + } + } + + .ant-menu-item, + .ant-menu-submenu-title { + padding: 0 @sidebar-padding-lr 0 (@sidebar-padding-lr - 10px) !important; + font-size: @font-size-base; + margin-top: 0; + margin-bottom: 0; + text-overflow: inherit; + + .ant-layout-sider & { + padding-left: @sidebar-padding-lr !important; + } + + .ant-drawer & { + padding-left: @sidebar-padding-lr !important; + } + + .icon { + min-width: 14px; + margin-right: 20px; + + &[class^="icon-"]::before, + &[class*=" icon-"]::before { + position: relative; + top: 2px; + } + + & + span { + .ant-layout-sider-collapsed & { + max-width: 0; + display: inline-block; + opacity: 0; + } + } + } + + .@{menu-prefix-cls}-submenu-arrow { + .ant-layout-sider-collapsed & { + display: none; + } + } + + .ant-layout-sider-collapsed & { + padding: 0 (@menu-collapsed-width - 16px) / 2 !important; + } + } + } + + &-inline { + .ant-menu-submenu-title { + padding-right: @sidebar-padding-lr !important; + .flex-display(flex, row, nowrap); + .align-items(center); + .justify-content(space-between); + } + } + + &-inline-collapsed { + width: @menu-collapsed-width; + > .ant-menu-item, + > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item, + > .ant-menu-submenu > .ant-menu-submenu-title { + left: 0; + padding: 0 (@menu-collapsed-width - 16px) / 2 !important; + .@{menu-prefix-cls}-submenu-arrow { + display: none; + } + .icon { + & + span { + max-width: 0; + display: inline-block; + opacity: 0; + } + } + } + &-tooltip { + & .icon { + display: none; + } + + a { + color: @text-color-dark; + } + } + + .ant-menu-item-group-title { + padding-left: 4px; + padding-right: 4px; + display: none; + } + } + + &-item-group-list { + .ant-menu-item, + .ant-menu-submenu-title { + padding: 0 16px 0 28px; + } + } + + &-sub&-inline { + & > .ant-menu-item, + & > .ant-menu-submenu > .ant-menu-submenu-title { + line-height: @menu-item-height; + height: @menu-item-height; + } + + & .ant-menu-item-group-title { + padding: 0 @sidebar-padding-lr; + line-height: @menu-item-height; + height: @menu-item-height; + } + } + + // Disabled state sets text to gray and nukes hover/tab effects + &-item-disabled, + &-submenu-disabled { + color: @disabled-color !important; + > a { + color: @disabled-color !important; + } + > .ant-menu-submenu-title { + color: @disabled-color !important; + } + } + + &-submenu-selected .ant-menu-submenu-title { + color: @menu-highlight-color; + + & .ant-menu-submenu-arrow { + &:after, + &:before { + background: linear-gradient(to right, @menu-highlight-color, @menu-highlight-color); + } + } + } +} + +// dark theme +.ant-menu { + + &-dark, + &-dark &-sub { + color: @menu-dark-color; + background: @menu-dark-bg; + .ant-menu-submenu-title .ant-menu-submenu-arrow { + &:after, + &:before { + background: @menu-dark-arrow-color; + } + } + } + + &-dark &-inline&-sub { + background: none; + box-shadow: none; + } + + &-dark&-horizontal { + border-bottom-color: @menu-dark-bg; + } + + &-dark&-horizontal > &-item, + &-dark&-horizontal > &-submenu { + border-color: @menu-dark-bg; + } + + &-dark &-item .icon { + min-width: 14px; + margin-right: 20px; + + &[class^="icon-"]::before, + &[class*=" icon-"]::before { + position: relative; + top: 2px; + } + } + + &-dark &-item-group-title { + color: @menu-dark-color; + } + + &-dark &-item { + color: @menu-dark-color; + } + + &-dark &-item > a { + color: darken(@menu-dark-color, 20%); + } + + &-dark &-item:hover, + &-dark &-item-active, + &-dark &-submenu-active, + &-dark &-submenu-open, + &-dark &-submenu-selected, + &-dark &-submenu-title:hover { + background-color: fade(@white-color, 12%); + color: @menu-dark-highlight-color; + > a { + color: @menu-dark-highlight-color; + } + > .ant-menu-submenu-title, + > .ant-menu-submenu-title:hover { + > .ant-menu-submenu-arrow { + &:after, + &:before { + background: @menu-dark-highlight-color; + } + } + } + } + + &-dark &-item-selected { + color: @menu-dark-highlight-color; + + > a, + > a:hover { + color: @menu-dark-highlight-color; + } + } + + &&-dark &-item-selected, + &-submenu-popup&-dark &-item-selected { + background-color: fade(@white-color, 09%); + } + + // Disabled state sets text to dark gray and nukes hover/tab effects + &-dark &-item-disabled, + &-dark &-submenu-disabled { + &, + > a { + color: @disabled-color-dark !important; + } + > .ant-menu-submenu-title { + color: @disabled-color-dark !important; + } + } + + &-dark .ant-menu-submenu-selected .ant-menu-submenu-title { + color: @menu-dark-highlight-color; + } +} + +.ant-menu-submenu-horizontal { + & > .ant-menu-submenu-title { + color: @header-text-color; + } +} + diff --git a/src/styles/layout/sidebar.less b/src/styles/layout/sidebar.less new file mode 100644 index 000000000..d7eec51e7 --- /dev/null +++ b/src/styles/layout/sidebar.less @@ -0,0 +1,90 @@ +/* Sidebar Style */ +.@{class-prefix}-app-sidebar { + .transition(all 0.2s ease); +} + +.ant-layout-sider { + background-color: @sidebar-bg; + color: @sidebar-dark-text-color; + flex: 0 0 auto !important; + max-width: none !important; + min-width: 10px !important; + width: @sidebar-width !important; + overflow: hidden; + + @media screen and (max-width: @screen-md-max) { + width: @sidebar-width - 20px !important; + } + + &-collapsed { + width: @sidebar-mini-drawer-width !important; + } + + &.@{class-prefix}-collapsed-sidebar { + width: 0 !important; + min-width: 0 !important; + } +} + +.@{class-prefix}-layout-sider-dark { + background-color: @sidebar-dark-bg; +} + +.@{class-prefix}-layout-sider-header { + padding: 10px @sidebar-padding-lr 10px (2*@sidebar-padding-lr + 10px); + height: @layout-header-height; + .box-shadow(0 0 4px fade(@black-color, 28%)); + position: relative; + z-index: 1; + .flex-display(flex, row, nowrap); + .align-items(center); + + & .@{class-prefix}-site-logo { + display: block; + + .ant-layout-sider-collapsed & { + display: none; + } + } + + & .@{class-prefix}-linebar { + position: absolute; + left: @sidebar-padding-lr - 10px; + z-index: 1; + top: 15px; + .transition(all 0.3s ease-out); + + .ant-layout-sider-collapsed & { + left: 20px; + } + } + + .ant-layout-sider-collapsed & { + padding-left: 20px; + padding-right: 20px; + } + + .@{class-prefix}-drawer-sidebar & { + padding-left: @sidebar-padding-lr; + } + + .@{class-prefix}-drawer-sidebar-dark & { + background-color: fade(@white-color, 10%); + } + + .@{class-prefix}-layout-sider-dark & { + background-color: fade(@white-color, 10%); + } +} + +.@{class-prefix}-layout-sider-scrollbar { + height: calc(100vh ~"-" @layout-header-height) !important; + + .framed-layout & { + height: calc(100vh~"-"@layout-header-height + 2 * @framed-layout-base) !important; + + @media screen and (max-width: @screen-md-max) { + height: calc(100vh ~"-" @layout-header-height) !important; + } + } +} diff --git a/src/styles/pages/callout.less b/src/styles/pages/callout.less new file mode 100644 index 000000000..54e17a195 --- /dev/null +++ b/src/styles/pages/callout.less @@ -0,0 +1,176 @@ +/*Callout Styles*/ +/*Different size images set in Equal block height and width*/ + +.@{class-prefix}-thumb-equal, +.@{class-prefix}-grid-thumb-equal { + position: relative; + padding-bottom: 68%; + height: 0; + width: 100%; + overflow: hidden; +} + +.@{class-prefix}-thumb-cover, +.@{class-prefix}-grid-thumb-cover { + display: block; + position: absolute; + width: 100%; + height: 100%; +} + +.@{class-prefix}-thumb-cover-img, +.@{class-prefix}-grid-thumb-cover img { + height: auto; + max-width: 100%; + min-height: 100%; + object-fit: cover; + width: 100%; +} + +.@{class-prefix}-grid-thumb-equal { + + .@{class-prefix}-product-image & { + padding-bottom: 82%; + } +} + +/*Product listing page styles*/ + +.@{class-prefix}-product-row { + position: relative; + overflow: hidden; + .flex-display(flex, row, wrap); + .align-items(center); + .justify-content(center); + text-align: right; + + &.even { + text-align: left; + } +} + +.@{class-prefix}-product-col { + order: 1; + width: 50%; +} + +.odd .@{class-prefix}-product-thumb { + order: 2; +} + +.@{class-prefix}-product-content { + padding: 20px 55px; + + p { + margin-bottom: 10px; + } +} + +.@{class-prefix}-product-row .@{class-prefix}-grid-thumb-equal { + padding-bottom: 69%; +} + +.@{class-prefix}-product-thumb img { + width: 100%; +} + +.@{class-prefix}-product-content h4 { + margin-bottom: 25px; +} + +@media screen and (max-width: 1230px) { + .@{class-prefix}-product-row .@{class-prefix}-grid-thumb-equal { + padding-bottom: 71%; + } +} + +@media screen and (max-width: @screen-lg-max) { + .@{class-prefix}-product-row { + .flex-display(flex, column, nowrap); + text-align: center; + + &.even { + text-align: center; + } + } + + .@{class-prefix}-product-content h4 { + margin-bottom: 10px; + } + + .@{class-prefix}-product-content { + padding: 20px 35px; + } + + .@{class-prefix}-product-col, + .odd .@{class-prefix}-product-thumb { + order: 1; + width: 100%; + } + + .@{class-prefix}-product-row .@{class-prefix}-grid-thumb-equal { + padding-bottom: 40%; + } +} + +@media screen and (max-width: @screen-md-max) { + .@{class-prefix}-product-row { + .flex-display(flex, row, wrap); + text-align: right; + + &.even { + text-align: left; + } + } + + .@{class-prefix}-grid-thumb-equal { + .@{class-prefix}-product-image & { + padding-bottom: 120%; + } + } + + .@{class-prefix}-product-col, + .odd .@{class-prefix}-product-thumb { + order: 1; + width: 50%; + } + + .odd .@{class-prefix}-product-thumb { + order: 2; + } + + .@{class-prefix}-product-row .@{class-prefix}-grid-thumb-equal { + padding-bottom: 70%; + } +} + +@media screen and (max-width: @screen-sm-max) { + .@{class-prefix}-product-row { + .flex-display(flex, column, nowrap); + text-align: center; + + &.even { + text-align: center; + } + } + + .@{class-prefix}-product-content { + padding: 20px 0; + } + + .@{class-prefix}-product-col, + .odd .@{class-prefix}-product-thumb { + order: 1; + width: 100%; + } + + .@{class-prefix}-product-row .@{class-prefix}-grid-thumb-equal { + padding-bottom: 44%; + } + + .@{class-prefix}-grid-thumb-equal { + .@{class-prefix}-product-image & { + padding-bottom: 44%; + } + } +} diff --git a/src/styles/pages/dashboard.less b/src/styles/pages/dashboard.less new file mode 100644 index 000000000..793244e81 --- /dev/null +++ b/src/styles/pages/dashboard.less @@ -0,0 +1,379 @@ +/*Dashboard Styles*/ +.ant-list-item-meta { + flex-wrap: wrap; +} + +.@{class-prefix}-task-list-item { + position: relative; + + &:not(:last-child) { + border-bottom: @border-style-base @border-width-base @border-color; + padding-bottom: 5px; + margin-bottom: 20px; + + .@{class-prefix}-card-ticketlist & { + border-bottom: 0 none; + padding: 10px @gx-card-padding-base; + margin-bottom: 0; + } + } + + .@{class-prefix}-card-ticketlist & { + padding: 10px @gx-card-padding-base; + + .@{class-prefix}-hover { + display: none; + } + + &:hover { + background-color: darken(@grey-2, 5%); + + .@{class-prefix}-hover { + display: inline-block; + } + + .@{class-prefix}-nonhover { + display: none; + } + + & .@{class-prefix}-task-item-title { + color: @primary-color; + } + } + } + + &:hover { + cursor: pointer; + & .gx-text-hover { + color: @primary-color; + } + } +} + +.@{class-prefix}-dash-h1 { + @media screen and (max-width: @screen-lg-max) { + font-size: @h4-font-size; + } +} + +.@{class-prefix}-task-item-content { + .flex-display(flex, row, nowrap); + .justify-content(space-between); + max-width: calc(100% ~"-" 40px); + + &-left { + max-width: calc(100% ~"-" 100px); + + @media screen and (max-width: @screen-xs-max) { + max-width: 100%; + margin-bottom: 10px; + padding-right: 0; + } + } + + &-right { + min-width: 100px; + padding-right: 10px; + text-align: right; + + @media screen and (max-width: @screen-xs-max) { + text-align: left; + padding-right: 0; + } + + .@{class-prefix}-card-ticketlist & { + padding-top: 8px; + } + } + + @media screen and (max-width: @screen-xs-max) { + flex-direction: column; + } +} + +.@{class-prefix}-card-testimonial { + .flex-display(flex, row, wrap); + .justify-content(space-between); + margin-bottom: 12px; + + &-img { + margin-right: 10px; + margin-bottom: 10px; + } + + &-content { + background-color: @grey-3; + padding: 15px; + position: relative; + margin-left: 10px; + width: calc(100% ~"-" 70px); + .border-radius(@border-radius-sm); + + &:before { + content: ""; + position: absolute; + left: -10px; + top: 10px; + z-index: 1; + width: 0; + height: 0; + border-top: 7px solid transparent; + border-bottom: 7px solid transparent; + border-right: 10px solid @grey-3; + } + + & > :last-child { + margin-bottom: 0; + } + } +} + +.@{class-prefix}-progress-task { + position: relative; + + & :last-child { + margin-bottom: 0; + } + + &-list { + .flex-display(flex, row, wrap); + .align-items(center); + margin-bottom: 15px; + + & + & { + border-top: @border-style-base @border-width-base @border-color; + padding-top: 15px; + } + + & .ant-progress { + margin-bottom: 15px; + } + + &-content { + margin-left: 20px; + margin-bottom: 15px; + } + + @media screen and (max-width: @screen-xs-max) { + margin-bottom: 0; + } + } +} + +.@{class-prefix}-act-task { + position: relative; + + &-cell { + margin-bottom: 20px; + .flex-display(flex, row, nowrap); + .justify-content(space-between); + + @media screen and (max-width: @screen-xs-max) { + margin-bottom: 10px; + } + } + + &-content { + width: calc(100% ~"-" 72px); + + & label.ant-checkbox-wrapper { + & span { + display: block; + overflow: hidden; + } + + & span.ant-checkbox { + float: left; + padding: 6px 5px 0 0; + } + } + } + + &-btn-view { + margin-left: 8px; + width: 65px; + text-align: right; + + @media screen and (max-width: @screen-xs-max) { + margin-left: 0; + margin-top: 10px; + } + } +} + +.@{class-prefix}-card-ticketlist { + & .ant-card-body { + padding-left: 0; + padding-right: 0; + } + + & a { + color: @primary-color; + } +} + +.@{class-prefix}-line-indicator { + list-style: none; + margin: 0; + padding-left: 0; + + & li { + &:not(:last-child) { + margin-bottom: 12px; + } + + & p { + margin-bottom: 0; + } + } + + &-half { + .flex-display(flex, row, wrap); + margin: 0 -12px; + + & li { + width: 50%; + padding: 0 12px; + } + } + + &-col { + width: 25%; + padding-right: 10px; + + @media screen and (max-width: @screen-sm-max) { + width: 100%; + padding-right: 0; + } + } +} + +.@{class-prefix}-line-indi { + height: 3px; + + &-info { + .flex-display(flex, row, nowrap); + .align-items(center); + } +} + +.@{class-prefix}-wel-ema { + position: relative; +} + +.@{class-prefix}-overview-row { + .flex-display(flex, row, wrap); + + @media screen and (max-width: @screen-sm-max) { + flex-direction: column; + } +} + +.@{class-prefix}-overview-description { + width: 25%; + .flex-display(flex, column, nowrap); + margin: -@gx-card-padding-base; + margin-left: 0; + border-left: @border-style-base @border-width-base @border-color; + order: 2; + + @media screen and (max-width: @screen-sm-max) { + order: 1; + width: 100%; + border-left: 0 none !important; + border-top: @border-style-base @border-width-base @border-color; + border-bottom: @border-style-base @border-width-base @border-color; + margin: 15px 0 0; + } +} + +.@{class-prefix}-map-col { + .flex-only(1); + padding: 0 10px; + order: 1; + + @media screen and (max-width: @screen-sm-max) { + order: 2; + padding: 15px 0 0; + } +} + +.@{class-prefix}-revenu { + .flex-only(1); + padding: @card-padding-base - 9px; + .flex-display(flex, column, nowrap); + .justify-content(center); + .align-items(center); + + &-total { + border-bottom: @border-style-base @border-width-base @border-color; + + & h1 { + font-size: @h1-font-size + @h6-font-size; + font-weight: @font-weight-semi-bold; + margin-bottom: 4px; + + @media screen and (max-width: @screen-sm-max) { + font-size: @h1-font-size; + } + } + } + + &-row { + .flex-display(flex, row, wrap); + width: 100%; + } + + &-col { + width: 50%; + padding: 0 (@card-padding-base - 9px); + text-align: center; + + &:not(:last-child) { + border-right: @border-style-base @border-width-base @border-color; + } + } + + & h3 { + font-size: @h1-font-size - 2px; + margin-bottom: 0; + font-weight: @font-weight-medium; + } +} + +.ant-divider-horizontal { + margin: 12px 0; +} + +.@{class-prefix}-visit-col { + order: 1; + + @media screen and (max-width: @screen-lg-max) { + order: 2; + margin-top: 20px; + } +} + +.@{class-prefix}-audi-col { + order: 2; + + @media screen and (max-width: @screen-lg-max) { + order: 1; + } + + @media screen and (max-width: @screen-xs-max) { + margin-top: 20px; + } +} + +@media screen and (max-width: @screen-xs-max) { + .@{class-prefix}-list-item { + & .ant-list-item-content { + flex-direction: column; + } + } +} + + + + diff --git a/src/styles/pages/e-commerce.less b/src/styles/pages/e-commerce.less new file mode 100644 index 000000000..d2983d1a8 --- /dev/null +++ b/src/styles/pages/e-commerce.less @@ -0,0 +1,134 @@ +/*E-commerce Styles*/ + +.@{class-prefix}-product-item { + overflow: hidden; + background: @component-background; + .border-radius(@border-radius-lg + 2px); + margin-bottom: @gx-card-margin-base; + .box-shadow(@gx-card-shadow); +} + +.@{class-prefix}-product-body { + padding: @card-padding-wider; + + & + .@{class-prefix}-product-footer { + padding-top: 0; + } + + & :last-child { + margin-bottom: 0; + } +} + +.@{class-prefix}-product-footer { + padding: @card-padding-wider; + padding-bottom: @card-padding-wider - 9px; +} + +.@{class-prefix}-product-horizontal { + .flex-display(flex, row, wrap); + + & .@{class-prefix}-product-image { + width: 25%; + + @media screen and (max-width: @screen-lg-max) { + width: 33.33333%; + } + + @media screen and (max-width: @screen-md-max) { + width: 25%; + } + + @media screen and (max-width: @screen-sm-max) { + width: 100%; + } + } + + & .@{class-prefix}-product-body { + width: 50%; + + @media screen and (min-width: (@screen-xl-min + 200px)) { + width: 55%; + } + + @media screen and (max-width: @screen-lg-max) { + width: 41.66667%; + } + + @media screen and (max-width: @screen-md-max) { + width: 50%; + } + + @media screen and (max-width: @screen-sm-max) { + width: 100%; + } + + & + .@{class-prefix}-product-footer { + padding-top: @card-padding-wider; + } + } + + & .@{class-prefix}-product-footer { + width: 25%; + text-align: center; + + @media screen and (min-width: (@screen-xl-min + 200px)) { + width: 20%; + } + + & .ant-btn:not(:last-child) { + margin-left: 8px; + margin-right: 8px; + } + + & .ant-btn:last-child { + margin-left: 8px; + margin-right: 8px; + } + + @media screen and (max-width: @screen-sm-max) { + width: 100%; + text-align: left; + } + } + + & .@{class-prefix}-product-image .@{class-prefix}-grid-thumb-equal { + padding-bottom: 80%; + + @media screen and (min-width: (@screen-xl-min + 200px)) { + padding-bottom: 55%; + } + + @media screen and (max-width: @screen-lg-max) { + padding-bottom: 75%; + } + + @media screen and (max-width: @screen-md-max) { + padding-bottom: 88%; + } + + @media screen and (max-width: 849px) { + padding-bottom: 97%; + } + + @media screen and (max-width: @screen-sm-max) { + padding-bottom: 44%; + } + } +} + +.@{class-prefix}-product-vertical { + .flex-display(flex, column, nowrap); + height: calc(100% ~"-" @gx-card-margin-base); + + & .@{class-prefix}-product-body { + .flex-only(1); + } +} + +.@{class-prefix}-product-title { + font-size: @h2-font-size; +} + + + diff --git a/src/styles/pages/editor.less b/src/styles/pages/editor.less new file mode 100644 index 000000000..402210069 --- /dev/null +++ b/src/styles/pages/editor.less @@ -0,0 +1,13 @@ +/*Editor Styles*/ +.rdw-editor-toolbar { + & .rdw-inline-wrapper { + flex-wrap: wrap; + + & .rdw-option-wrapper { + @media screen and (max-width: (@screen-xs-max - 176px)) { + margin-bottom: 8px; + } + } + } +} + diff --git a/src/styles/pages/error.less b/src/styles/pages/error.less new file mode 100644 index 000000000..93486786f --- /dev/null +++ b/src/styles/pages/error.less @@ -0,0 +1,45 @@ +/*Error Styles*/ + +.@{class-prefix}-page-error-container { + position: relative; + height: 100%; + + .flex-display(flex, row, wrap); + .align-items(center); + .justify-content(center); +} + +.@{class-prefix}-page-error-content { + margin: 0 auto; + width: 380px; + max-width: 94%; + + & h2 { + margin-bottom: @size-50; + + @media screen and (max-width: @screen-sm-max) { + margin-bottom: 20px; + } + } +} + +.@{class-prefix}-error-code { + color: @grey-8; + font-size: 160px; + text-align: center; + line-height: 1; + font-weight: @font-weight-medium; + text-shadow: 10px 6px 8px rgba(117, 117, 117, 0.8); + + @media screen and (max-width: @screen-md-max) { + font-size: 130px; + } + + @media screen and (max-width: @screen-sm-max) { + font-size: 100px; + } + + @media screen and (max-width: @screen-xs-max) { + font-size: 80px; + } +} diff --git a/src/styles/pages/index.less b/src/styles/pages/index.less new file mode 100644 index 000000000..a291f830e --- /dev/null +++ b/src/styles/pages/index.less @@ -0,0 +1,8 @@ +@import "callout"; +@import 'e-commerce'; +@import "pricing-tables"; +@import "login"; +@import "dashboard"; +@import "error"; +@import "editor"; +@import "testimonials"; diff --git a/src/styles/pages/login.less b/src/styles/pages/login.less new file mode 100644 index 000000000..53cc3b4be --- /dev/null +++ b/src/styles/pages/login.less @@ -0,0 +1,214 @@ +/*Login Styles*/ + +.@{class-prefix}-login-container { + position: relative; + height: 100%; + padding-bottom: @size-30; + .flex-only(1); + + .flex-display(flex, row, wrap); + .align-items(center); + .justify-content(center); +} + +.@{class-prefix}-login-content { + max-width: 420px; + width: 94%; + margin: auto; + padding: 35px 35px 20px; + background-color: @white-color; + .border-radius(@border-radius-lg); + .box-shadow(@gx-card-shadow); + font-size: 14px; + + & .ant-input { + background-color: @grey-3; + height: auto; + padding: 6px 12px; + + &:focus { + box-shadow: none; + border-color: @primary-color; + } + } + + & .ant-form-item-control-wrapper { + width: 100%; + } + + & .ant-form-item-children { + display: block; + } + + @media screen and (max-width: @screen-xs-max) { + padding: 20px 20px 10px; + } +} + +.@{class-prefix}-login-header { + margin-bottom: 30px; + + @media screen and (max-width: @screen-xs-max) { + margin-bottom: 15px; + } +} + +.@{class-prefix}-app-login-wrap { + height: 100%; + .flex-display(flex, column, nowrap); + .justify-content(center); + overflow-x: hidden; + + @media screen and (max-width: @screen-xs-max) { + padding-top: 20px; + .justify-content(flex-start); + } +} + +.@{class-prefix}-app-login-container { + position: relative; + max-width: 680px; + width: 94%; + margin: 0 auto; + + @media screen and (max-width: @screen-xs-max) { + padding-bottom: 20px ; + } + + & .@{class-prefix}-loader-view { + position: absolute; + left: 0; + right: 0; + text-align: center; + top: 0; + bottom: 0; + z-index: 2; + } +} + +.@{class-prefix}-app-login-main-content { + .flex-display(flex, row, wrap); + background-color: @white-color; + .box-shadow(@gx-card-shadow); + .border-radius(@border-radius-lg + 2px); + font-size: 14px; + overflow: hidden; +} + +.@{class-prefix}-app-login-content { + padding: 35px 35px 20px; + width: 60%; + + & .ant-input { + background-color: @grey-3; + + &:focus { + box-shadow: none; + border-color: @primary-color; + } + } + + & .@{class-prefix}-btn { + padding: 6px 35px !important; + height: auto; + } + + & .ant-form-item-control-wrapper { + width: 100%; + } + + & .ant-form-item-children { + display: block; + } + + @media screen and (max-width: @screen-xs-max) { + width: 100%; + padding: 20px 20px 10px; + } +} + +.@{class-prefix}-app-login-header { + margin-bottom: 30px; + + @media screen and (max-width: @screen-xs-max) { + margin-bottom: 15px; + } +} + +.@{class-prefix}-app-logo-content { + color: @white-color; + padding: 35px 35px 20px; + width: 40%; + position: relative; + overflow: hidden; + .flex-display(flex, column, nowrap); + + & > * { + position: relative; + z-index: 2; + } + + & h1 { + color: @white-color; + } + + @media screen and (max-width: @screen-xs-max) { + width: 100%; + padding: 20px 20px 10px; + } + + &-bg { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: 1; + + &:before { + content: ""; + position: absolute; + left: 0; + top: 0; + z-index: 1; + right: 0; + bottom: 0; + background-color: fade(@primary-color, 70%); + } + + & img { + width: 100%; + } + } +} + +.@{class-prefix}-app-logo-wid { + margin-bottom: auto; +} + +.@{class-prefix}-app-social-block { + .flex-display(flex, row, wrap); + .align-items(center); + .justify-content(space-between); + + & .@{class-prefix}-social-link, + & .@{class-prefix}-social-link li { + margin: 0; + } + + & .@{class-prefix}-social-link span { + border: @border-style-base @border-width-base @primary-color; + .border-radius(@border-radius-circle); + color: @primary-color; + + &:hover, + &:focus { + color: @white-color; + background-color: @primary-color; + } + } + + & p { + margin-bottom: 0; + } +} diff --git a/src/styles/pages/pricing-tables.less b/src/styles/pages/pricing-tables.less new file mode 100644 index 000000000..3bc57df81 --- /dev/null +++ b/src/styles/pages/pricing-tables.less @@ -0,0 +1,166 @@ +/*Pricing Tables Styles*/ +.@{class-prefix}-price-tables { + position: relative; +} + +.@{class-prefix}-package { + position: relative; + margin-bottom: 15px; + overflow: hidden; + .flex-display(flex, column, nowrap); + .border-radius(10px); + .box-shadow(@gx-card-shadow); + .transition(all 0.5s ease-in-out); + height: calc(100% ~"-" 15px); + .scale(0.95); + + &:hover, + &:focus, + &:active { + .scale(1); + .box-shadow(0 0 4px fade(@black-color, 55%)); + + .@{class-prefix}-pt-dark & { + .border-radius(20px); + } + } + + .@{class-prefix}-pt-classic & { + border: 0 none; + .border-radius(0); + } + + &.@{class-prefix}-highlight { + .scale(1); + z-index: 2; + } + + &-header { + padding: @gx-pricing-table-base; + text-align: center; + + & > .@{class-prefix}-price { + display: inline-block; + font-size: 36px; + font-weight: @font-weight-medium; + margin-left: 0; + margin-bottom: 12px; + color: @white-color; + + & > i { + display: inline-block; + margin-right: 6px; + font-weight: bold; + } + } + + & h5 { + color: inherit; + } + + &.@{class-prefix}-text-black { + & > .@{class-prefix}-price { + color: @grey-8 !important; + } + } + + @media only screen and (max-width: @screen-md-max) { + padding-left: @gx-pricing-table-base - 10px; + padding-right: @gx-pricing-table-base - 10px; + } + } + + &-body { + padding: (@gx-pricing-table-base + 20px) @gx-pricing-table-base; + .flex-display(flex, column, nowrap); + .flex-only(1); + .align-items(center); + + @media only screen and (max-width: @screen-md-max) { + padding-left: @gx-pricing-table-base - 10px; + padding-right: @gx-pricing-table-base - 10px; + } + } + + &-items { + list-style: none; + font-size: 14px; + margin: 0 0 20px; + padding-left: 0; + .flex-only(1); + + & li { + margin-bottom: 16px; + .clearfix(); + line-height: inherit; + + & i { + float: left; + min-width: 20px; + margin-right: 16px; + line-height: inherit; + } + + & span { + display: block; + overflow: hidden; + } + } + } + + &-footer { + padding-top: @gx-pricing-table-base; + + & .ant-btn { + text-transform: capitalize; + border: 0 none; + margin-bottom: 0; + } + } + + @media only screen and (max-width: @screen-sm-max) { + &:hover, + &:focus, + &:active, + &.@{class-prefix}-highlight { + .scale(1); + } + } +} + +.@{class-prefix}-text-black { + & .@{class-prefix}-text-white { + color: @grey-8 !important; + } +} + +.@{class-prefix}-pt-circle { + & .@{class-prefix}-package-header { + .border-radius(@border-radius-circle); + height: 224px; + width: 224px; + margin: 40px auto 0; + .align-items(center); + + & .@{class-prefix}-price { + margin-top: 30px; + + @media only screen and (max-width: @screen-md-max) { + font-size: 26px; + margin-top: 12px; + margin-bottom: 6px; + } + } + + & .@{class-prefix}-letter-spacing-base { + @media only screen and (max-width: @screen-md-max) { + letter-spacing: 1px; + } + } + + @media only screen and (max-width: @screen-md-max) { + height: 150px; + width: 150px; + } + } +} diff --git a/src/styles/pages/testimonials.less b/src/styles/pages/testimonials.less new file mode 100644 index 000000000..eae7ec1f6 --- /dev/null +++ b/src/styles/pages/testimonials.less @@ -0,0 +1,95 @@ +/*Testimonial Styles*/ + +.@{class-prefix}-testimonial { + margin-bottom: @gx-card-margin-base; +} + +// Testimonials Classic +.@{class-prefix}-classic-testimonial { + + & .ant-avatar { + margin: 0 auto; + margin-bottom: 30px; + width: @size-120; + height: @size-120; + + & img { + width: 100%; + height: 100%; + } + + @media screen and (max-width: @screen-xs-max) { + width: @size-80; + height: @size-80; + margin-bottom: 15px; + } + } +} + +// Testimonials Standard +.@{class-prefix}-testimonial-bg { + background-color: fade(@black-color, 80%); + padding: 30px; + overflow: hidden; + position: relative; + + @media screen and (max-width: @screen-xs-max) { + padding: 16px; + } + + & .ant-avatar { + display: inline-block; + width: @size-80; + height: @size-80; + overflow: hidden; + border: 4px solid @amber-color; + + & img { + width: 100%; + height: auto; + } + + @media screen and (max-width: 450px) { + width: @size-50; + height: @size-50; + } + } + + & .@{class-prefix}-description { + color: @grey-5; + font-style: italic; + font-weight: @font-weight-normal; + line-height: 25px; + margin-bottom: 15px; + } + + & .@{class-prefix}-title { + color: @amber-color; + margin-bottom: 2px; + } +} + +.@{class-prefix}-testimonial-des { + position: relative; + padding-left: 30px; + + &:before { + font-family: "gaxon-ant"; + font-size: 20px; + content: "\E022"; + color: @white-color; + position: absolute; + top: 0; + left: 0; + .scale(scaleX(-1)); + } +} + +.@{class-prefix}-standard { + + & .@{class-prefix}-media { + @media screen and (max-width: (@screen-xs-max - 100px)) { + flex-direction: column; + } + } +} diff --git a/src/styles/styles.less b/src/styles/styles.less new file mode 100644 index 000000000..df8dc6d5a --- /dev/null +++ b/src/styles/styles.less @@ -0,0 +1,76 @@ +/* +Author : G-axon +Template Name : Flexile Antd React - Admin Template +Version : 1.0 +*/ +/*============================================================= + Table of Contents: + ============================= + A. Globals + 01. Custom Animation + 02. Colors Class + + B. Base + 01. Base Styles + 02. Row Col Styles + 03. Margin Padding Styles + 04. Typography Styles + + C. Layouts + 01. Ant Layout Style + 02. Header Style + 03. Sidebar Style + 04. Ant Menu Style + 05. Footer Styles + 06. Customizer Style + + D. UI Components + 01. Avatar Styles + 02. Badges Styles + 03. Button Styles + 04. Cards Styles + 05. Cascader Styles + 06. Form Styles + 07. Input Styles + 08. Icon Styles + 09. List Styles + 10. Loader Styles + 11. Pagination Styles + 12. Pickers Styles + 13. Progress Styles + 14. Steps Styles + 15. Slider Styles + 16. Tables Styles + 17. Time Lines Style + 18. Tabs Styles + + E. Apps + 01. Apps Style + 02. Mails Apps Styles + 03. Chat Apps Styles + 04. Contact Apps Styles + 05. Calendar Apps Style + + F. Pages + 01. Callout Styles + 02. E-commerce Styles + 03. Pricing Tables Styles + 04. Login Styles + 05. Dashboard Styles + 06. Error Styles + 07. Editor Styles + 08. Testimonial Styles + + =============================================================*/ + +@import '../../node_modules/antd/dist/antd.less'; +//Custom Variables +@import "global/index"; +//Custom Files +@import "base/index"; +@import "layout/index"; +@import "ui/index"; +@import "apps/index"; +@import "pages/index"; +@import "dark-theme"; + diff --git a/src/styles/ui/avatar.less b/src/styles/ui/avatar.less new file mode 100644 index 000000000..b33b93b94 --- /dev/null +++ b/src/styles/ui/avatar.less @@ -0,0 +1,33 @@ +/*Avatar Styles*/ +.@{class-prefix}-avatar-img { + height: @size-50; + width: @size-50; + position: relative; + .border-radius(@border-radius-circle); + border: @border-style-base @border-width-base @border-color; +} + +.@{class-prefix}-avatar-img-lg { + height: @size-100; + width: @size-100; +} + +.ant-avatar-circle { + .border-radius(@border-radius-circle); +} + +.@{class-prefix}-avatar { + .flex-display(flex, row, wrap); + overflow: hidden; + .justify-content(center); + .align-items(center); + height: @size-50; + width: @size-50; + position: relative; + .border-radius(@border-radius-circle); + border: @border-style-base @border-width-base @border-color; +} + +.@{class-prefix}-user-thumb { + position: relative; +} diff --git a/src/styles/ui/badge.less b/src/styles/ui/badge.less new file mode 100644 index 000000000..bd136d68b --- /dev/null +++ b/src/styles/ui/badge.less @@ -0,0 +1,55 @@ +/*Badge Styles*/ +.ant-badge { + margin-bottom: 6px; + + &:not(:last-child) { + margin-right: 12px; + } +} + +.ant-tag { + margin-bottom: 8px; +} + +.@{class-prefix}-badge { + display: inline-block; + padding: 5px 8px 4px; + font-size: 75%; + margin-bottom: 6px; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + .border-radius(@border-radius-sm); + + &:not(:last-child) { + margin-right: 12px; + } + + .@{class-prefix}-chat-date & { + margin-bottom: 0; + width: @size-20; + height: @size-20; + text-align: center; + line-height: @size-20 - 4px; + padding: 2px; + } + + .@{class-prefix}-user-thumb & { + position: absolute; + left: -4px; + top: -4px; + z-index: 1; + margin: 0; + display: block; + width: 16px; + height: 16px; + padding: 0; + line-height: 16px; + } +} + +.@{class-prefix}-badge-outline { + background-color: transparent; + border: @border-style-base @border-width-base @border-color; +} diff --git a/src/styles/ui/button.less b/src/styles/ui/button.less new file mode 100644 index 000000000..79a06cf97 --- /dev/null +++ b/src/styles/ui/button.less @@ -0,0 +1,281 @@ +/*Button Styles*/ +.ant-btn { + + line-height: @btn-height-base - 2px; + + &-sm { + line-height: @btn-height-sm; + } + &-lg { + line-height: @btn-height-lg; + } + &:not(:last-child) { + margin-right: 15px; + + @media screen and (max-width: @screen-xs-max) { + margin-right: 10px; + } + + .ant-btn-group &, + .ant-transfer-operation & { + margin-right: 0; + } + } + + @media screen and (max-width: @screen-xs-max) { + margin-bottom: 10px; + } + + .ant-input-search & { + margin-bottom: 0; + } + + .@{class-prefix}-customizer-option & { + padding: 0 @padding-md + 2px; + font-size: @font-size-lg + 2px; + height: @btn-height-lg + 2px; + line-height: @btn-height-lg + 2px; + margin-bottom: 0; + .box-shadow(@gx-card-shadow-md); + .border-radius(30px 0 0 30px); + .horizontal-gradient(); + border: 0 none; + color: @white-color; + + &:hover, + &:focus { + .horizontal-gradient(@red-6, @orange-6); + } + + & .icon:before { + position: relative; + top: 2px; + } + } + + .@{class-prefix}-module-add-task & { + height: @btn-height-lg - 4px; + + & .icon:before { + position: relative; + top: 2px; + } + } + .ant-modal-footer & { + margin-bottom: 0; + } + + .@{class-prefix}-login-content & { + padding: 9px 20px !important; + height: auto; + line-height: 1; + } +} + +.ant-btn-group { + &:not(:last-child) { + margin-right: 15px; + + @media screen and (max-width: @screen-xs-max) { + margin-right: 10px; + } + } +} + +.ant-radio-group { + & .ant-radio-button-wrapper { + margin-bottom: 6px; + } +} + +button { + outline: none; +} + +.ant-confirm .ant-confirm-btns button + button { + margin-bottom: 8px; +} + +.ant-modal.ant-confirm .ant-confirm-btns button + button, +.ant-modal.ant-confirm .ant-btn { + margin-bottom: 0; +} + +.@{class-prefix}-btn, +.btn { + display: inline-block; + font-weight: @btn-font-weight; + color: @btn-default-color; + text-align: center; + white-space: nowrap; + vertical-align: middle; + border: @border-style-base @border-width-base @btn-default-border; + padding: @btn-padding-base; + height: @btn-height-base; + font-size: @font-size-base; + line-height: @btn-height-base; + .border-radius(2px); + margin-bottom: 15px; + + &:not(:last-child) { + margin-right: 15px; + + @media screen and (max-width: @screen-xs-max) { + margin-right: 10px; + } + } + + @media screen and (max-width: @screen-xs-max) { + margin-bottom: 10px; + } + + &:focus, + &:hover { + text-decoration: none; + } + + &:focus, + &.focus { + outline: 0; + } + + &.disabled, + &:disabled { + opacity: 0.65; + } + + &:not([disabled]):not(.disabled) { + cursor: pointer; + } + + .@{class-prefix}-btn-list & { + margin-bottom: 6px; + } + + .@{class-prefix}-sub-popover & { + border: 0 none; + margin-bottom: 5px; + + &:focus, + &:hover { + background-color: @grey-3; + } + + &:not(:last-child) { + margin-right: 5px; + } + } + + .@{class-prefix}-login-content & { + padding: 9px 20px !important; + height: auto; + line-height: 1; + } +} + +a.@{class-prefix}-btn.disabled, +fieldset[disabled] a.@{class-prefix}-btn { + pointer-events: none; +} + +.@{class-prefix}-btn-rounded { + .border-radius(50px) !important; +} + +.@{class-prefix}-btn-link { + font-size: @font-size-base; + font-weight: @btn-font-weight; + color: @primary-color; + background-color: transparent; + + &:hover { + color: @primary-8; + text-decoration: underline; + background-color: transparent; + border-color: transparent; + } + + &:focus, + &.focus { + text-decoration: underline; + border-color: transparent; + } + + &:disabled, + &.disabled { + color: @grey-6; + } +} + +.@{class-prefix}-btn-lg, +.@{class-prefix}-btn-group-lg > .@{class-prefix}-btn { + padding: @btn-padding-lg; + font-size: @btn-font-size-lg; + line-height: @btn-height-lg; + .border-radius(6px); + height: @btn-height-lg; +} + +.@{class-prefix}-btn-sm, +.@{class-prefix}-btn-group-sm > .@{class-prefix}-btn { + padding: @btn-padding-sm; + font-size: @btn-font-size-sm; + line-height: @btn-height-sm; + .border-radius(2px); + height: @btn-height-sm; +} + +.@{class-prefix}-btn-xs { + font-size: @btn-font-size-xs; + padding: @btn-padding-xs; + height: @btn-height-base - 10px; + line-height: @btn-height-base - 11px; +} + +.@{class-prefix}-btn-block { + display: block; + width: 100%; + + & + & { + margin-top: 0.5rem; + } +} + +.@{class-prefix}-icon-btn { + width: @size-40; + height: @size-40; + .border-radius(2px); + .flex-display(flex, row, wrap); + .justify-content(center); + .align-items(center); + cursor: pointer; + + &:focus, + &:hover { + background-color: fade(@black-color, 10%); + + .@{class-prefix}-layout-sider-dark & { + background-color: @sidebar-dark-bg; + } + } + + .@{class-prefix}-popover-header & { + width: @size-30; + height: @size-30; + } + + & .icon-star-o:before, + & .icon-star:before { + position: relative; + top: 3px; + } + + &.icon { + .@{class-prefix}-module-box-content & { + @media screen and (max-width: @screen-xs-max) { + font-size: 16px; + } + } + } +} + diff --git a/src/styles/ui/card.less b/src/styles/ui/card.less new file mode 100644 index 000000000..5b8909462 --- /dev/null +++ b/src/styles/ui/card.less @@ -0,0 +1,313 @@ +/*Card Styles*/ +.ant-card { + margin-bottom: @gx-card-margin-base; + + &-head { + background: none; + } + + &-head-title { + font-weight: @font-weight-normal; + } + + &-grid { + text-align: center; + width: 25%; + + @media screen and (max-width: @screen-sm-max) { + width: 33.33%; + } + + @media screen and (max-width: @screen-xs-max ) { + width: 50%; + } + } +} + +.ant-card-wider-padding .ant-card-body { + & > :last-child { + margin-bottom: 0; + } +} + +.@{class-prefix}-card-center-vertical { + .flex-display(flex, column, nowrap); + .justify-content(center); +} + +.@{class-prefix}-card-img { + position: relative; + + & .ant-card-body { + position: relative; + } + + & .@{class-prefix}-badge-up { + position: absolute; + right: 60px; + top: -20px; + z-index: 1; + padding: 5px; + .border-radius(@border-radius-circle); + height: @size-40; + width: @size-40; + line-height: 36px; + text-align: center; + } +} + +.@{class-prefix}-card-img-center { + + & .ant-card-cover { + text-align: center; + + & > * { + width: auto; + display: inline-block; + } + } +} + +.@{class-prefix}-card-body-border-top { + & .ant-card-cover { + padding-top: @card-padding-base; + } + + & .ant-card-body { + border-top: @border-style-base @border-width-base @border-color; + margin-top: @gx-card-margin-base; + } +} + +.@{class-prefix}-ant-card-actions { + list-style: none; + margin: 0 -10px 10px; + padding-left: 0; + + & li { + display: inline-block; + vertical-align: top; + padding: 0 10px; + + &:not(:last-child) { + border-right: @border-style-base @border-width-base @border-color; + } + } +} + +.@{class-prefix}-card { + margin-bottom: @gx-card-margin-base; + background-color: @white-color; + .box-shadow(@gx-card-shadow); + position: relative; + .border-radius(@border-radius-sm); + + &-head { + padding: @gx-card-padding-base; + + & .@{class-prefix}-card-title { + margin-bottom: 0; + } + + & + .@{class-prefix}-card-body { + padding-top: 0; + } + + @media screen and (max-width: @screen-md-max) { + padding: @card-padding-base; + } + } + + & .ant-card-head { + border-bottom: 0 none; + min-height: 10px; + padding: 0 @gx-card-padding-base; + + @media screen and (max-width: @screen-md-max) { + padding: 0 @card-padding-base; + } + } + + & .ant-card-head-title { + padding: (@card-head-padding + 9px) 0 0; + text-transform: uppercase; + font-size: @font-size-sm; + + @media screen and (max-width: @screen-md-max) { + padding-top: (@card-head-padding + 4px); + } + } + + &-body, + & .ant-card-body { + padding: @gx-card-padding-base; + padding-top: @gx-card-padding-base - 4px; + + @media screen and (max-width: @screen-md-max) { + padding: @card-padding-base; + } + } + + &.ant-card-bordered { + border: 0 none; + } + + &.ant-card-hoverable { + &:hover { + .box-shadow(0 0 4px fade(@black-color, 45%)); + } + } + + & .ant-card-cover { + padding: @gx-card-padding-base; + padding-bottom: 0; + + @media screen and (max-width: @screen-md-max) { + padding: @card-padding-base; + padding-bottom: 0; + } + } + + &-metrics { + .box-shadow(@gx-card-shadow); + + &.ant-card-bordered { + border: 0 none; + } + + & .ant-card-head { + border-bottom: 0 none; + min-height: 10px; + } + + & .ant-card-head-title { + padding: (@card-head-padding + 4px) 0 0; + text-transform: uppercase; + font-size: @font-size-sm; + } + } + + &-widget { + .box-shadow(@gx-card-shadow); + + &.ant-card-bordered { + border: 0 none; + } + + & .ant-card-head { + border-bottom: 0 none; + min-height: 24px; + padding: @gx-card-padding-base @gx-card-padding-base 0; + } + + & .ant-card-head-wrapper { + .flex-display(flex, row, wrap); + .align-items(center); + } + + & .ant-card-head-title { + padding: 0; + text-transform: uppercase; + font-size: @font-size-sm; + } + + & .ant-card-extra { + padding: 0; + + & .@{class-prefix}-btn { + margin-bottom: 0; + } + } + + & .ant-card-body { + padding: @gx-card-padding-base; + } + + &.@{class-prefix}-card-tabs { + & .ant-tabs-nav-container { + font-size: @h4-font-size; + } + + & .ant-card-body { + padding-top: @gx-card-padding-base - 20px; + } + } + } +} + +.@{class-prefix}-card-sm-padding { + & .ant-card-head { + min-height: 10px; + } + + & .ant-card-head-title { + padding: @gx-card-padding-sm @gx-card-padding-sm 0; + } + + &-body { + padding: @gx-card-padding-sm; + } +} + +.@{class-prefix}-entry-header { + margin-bottom: @gx-card-margin-base; + + & .@{class-prefix}-entry-heading { + margin-bottom: 0; + } + + & .@{class-prefix}-entry-description { + margin-bottom: 0; + font-size: 13px; + } +} + +.@{class-prefix}-card-full { + overflow: hidden; + + & .@{class-prefix}-card-body { + padding: 0; + + & .recharts-legend-wrapper { + padding: 0 @card-padding-wider; + } + } + + & .ant-card-body { + padding: 0; + + & .recharts-legend-wrapper { + padding: 0 @card-padding-wider; + } + } + + & .recharts-default-legend { + margin: 0 -10px !important; + + & li { + padding: 0 10px; + margin: 0 !important; + display: inline-block; + vertical-align: top; + } + + & li .recharts-legend-item-text { + margin-left: 10px; + } + } +} + +.@{class-prefix}-card-overview { + margin-bottom: @gx-card-margin-base; + background-color: @white-color; + .box-shadow(@gx-card-shadow); + position: relative; + .border-radius(@border-radius-sm); + padding: @gx-card-padding-base; + + & .@{class-prefix}-card-title { + text-transform: uppercase; + font-size: @font-size-sm; + margin-bottom: 20px; + } +} diff --git a/src/styles/ui/cascader.less b/src/styles/ui/cascader.less new file mode 100644 index 000000000..25e4888c1 --- /dev/null +++ b/src/styles/ui/cascader.less @@ -0,0 +1,4 @@ +/*Cascader Styles*/ +.ant-cascader-picker { + width: 100%; +} \ No newline at end of file diff --git a/src/styles/ui/form.less b/src/styles/ui/form.less new file mode 100644 index 000000000..0a21b3c13 --- /dev/null +++ b/src/styles/ui/form.less @@ -0,0 +1,121 @@ +/*Form Styles*/ +.ant-form { + & .ant-row { + margin-left: 0; + margin-right: 0; + } + + &-inline { + margin-left: -8px; + margin-right: -8px; + + & .ant-row { + padding-left: 8px; + padding-right: 8px; + } + + & .ant-form-item { + margin-bottom: 10px; + + @media screen and (max-width: @screen-xs-max) { + display: block; + } + } + } + + &-horizontal { + & .ant-row { + margin-left: -15px; + margin-right: -15px; + } + } + + &-vertical { + & .ant-form-item { + padding-bottom: 0; + } + + & .ant-row { + -ms-flex-direction: column; + flex-direction: column; + } + } +} + +.ant-form-item-with-help { + margin-bottom: @form-item-margin-bottom; +} + +.ant-advanced-search-form { + & .@{class-prefix}-btn-link:hover { + text-decoration: none; + } +} + +.ant-form-item-control > .ant-form-item:last-child, +.ant-form-item [class^="ant-col-"] > .ant-form-item:only-child { + margin-bottom: 0; +} + +.@{class-prefix}-form-row0 { + & .ant-row { + margin-left: 0 !important; + margin-right: 0 !important; + } +} + +.@{class-prefix}-login-form { + max-width: 350px; + + & .ant-form-item-control-wrapper { + width: 100%; + } +} + +@media (max-width: @screen-xl-max) { + .ant-form-item-label[class*='ant-col-'] { + padding: 0 15px; + } +} + +@media (max-width: @screen-lg-max) { + .ant-form-item-label[class*='ant-col-'] { + padding: 0 15px; + } + + .ant-form-item, + .ant-form-item-with-help { + margin-bottom: 12px; + } + + .ant-advanced-search-form .ant-form-item { + margin-bottom: 12px; + } +} + +@media (max-width: @screen-md-max) { + .ant-form-item-label[class*='ant-col-'] { + padding: 0 15px; + } +} + +@media (max-width: @screen-sm-max) { + .ant-form-item-label[class*='ant-col-'] { + padding: 0 15px; + } +} + +@media (max-width: @screen-xs-max) { + .ant-form-item-label[class*='ant-col-'] { + padding: 0 15px; + margin-bottom: 8px; + } + + .ant-advanced-search-form { + & .ant-btn, + & .@{class-prefix}-btn-link { + display: block; + margin: 0 0 10px !important; + } + } +} diff --git a/src/styles/ui/icon.less b/src/styles/ui/icon.less new file mode 100644 index 000000000..f16ba6297 --- /dev/null +++ b/src/styles/ui/icon.less @@ -0,0 +1,39 @@ +/*Icon Styles*/ +.@{class-prefix}-icon { + + &-views { + position: relative; + text-align: center; + padding: @card-head-padding; + .border-radius(@border-radius-sm); + .transition(all 0.3s ease-out); + margin-bottom: 15px; + height: calc(100% - 15px); + .flex-display(flex, column, nowrap); + .align-items(center); + .justify-content(center); + + & .icon { + margin-bottom: 12px; + font-size: @h2-font-size; + .transition(all 0.3s ease-out); + line-height: 1; + display: block; + } + + &:hover { + background-color: @primary-color; + cursor: pointer; + color: @white-color; + + & .icon { + .scale(1.4); + } + } + } + + &-text { + display: block; + font-size: @font-size-sm; + } +} diff --git a/src/styles/ui/index.less b/src/styles/ui/index.less new file mode 100644 index 000000000..cb938dc71 --- /dev/null +++ b/src/styles/ui/index.less @@ -0,0 +1,18 @@ +@import "avatar"; +@import "badge"; +@import "button"; +@import "card"; +@import "cascader"; +@import "form"; +@import "input"; +@import "icon"; +@import "list"; +@import "loader"; +@import "pagination"; +@import "pickers"; +@import "progress"; +@import "steps"; +@import "slider"; +@import "tables"; +@import "timeline"; +@import "tabs"; diff --git a/src/styles/ui/input.less b/src/styles/ui/input.less new file mode 100644 index 000000000..2784f6503 --- /dev/null +++ b/src/styles/ui/input.less @@ -0,0 +1,185 @@ +/*Input Styles*/ +.ant-input-search { + margin-bottom: 16px; + + & > .ant-input-suffix > .ant-input-search-button { + margin-right: 0; + } +} + +.ant-input-group { + + & > [class*="col-"] { + padding-left: 0; + float: left !important; + } +} + +.ant-transfer-list { + margin-bottom: 10px; +} + +.@{class-prefix}-form-group { + margin-bottom: 10px; +} + +// Search Bar Style +.@{class-prefix}-search-bar { + position: relative; + + & .@{class-prefix}-form-group { + width: 100%; + height: 100%; + margin-bottom: 0; + } + + & input[type="search"] { + padding-right: 35px; + background: fade(@grey-2, 10%); + + &:focus { + box-shadow: none; + background-color: fade(@grey-2, 30%); + } + } + + & .@{class-prefix}-search-icon { + background-color: transparent; + border: 0 none; + color: lighten(@grey-6, 10%); + height: 32px; + width: 30px; + line-height: 36px; + text-align: center; + + position: absolute; + right: 0; + top: 0; + } +} + +.@{class-prefix}-lt-icon-search-bar { + & input[type="search"] { + padding-right: 16px; + padding-left: 35px; + } + + & .@{class-prefix}-search-icon { + left: 0; + right: auto; + } +} + +.@{class-prefix}-lt-icon-search-bar-lg { + width: 350px; + + & input[type="search"] { + .border-radius(@border-radius-sm); + height: 46px; + padding: 10px 18px 10px 40px; + + @media screen and (max-width: @screen-md-max) { + height: 38px; + padding: 5px 18px 5px 40px; + } + } + + & .@{class-prefix}-search-icon { + width: 35px; + height: 46px; + line-height: 50px; + font-size: 16px; + left: 0; + right: auto; + + @media screen and (max-width: @screen-md-max) { + height: 38px; + line-height: 40px; + } + } + + .@{class-prefix}-layout-header-horizontal & { + width: 200px; + margin-right: 10px; + + @media screen and (max-width: @screen-lg-max) { + width: 120px; + } + } + + @media screen and (max-width: @screen-lg-max) { + width: 150px; + } +} + +.@{class-prefix}-popover-search-bar { + width: 150px; + margin: -10px -14px; +} + +.@{class-prefix}-chat-search-bar { + .flex(1); + min-width: 100px; + width: auto; + + & input[type="search"] { + .box-shadow(none); + .border-radius(0); + height: 40px; + + &:focus { + background-color: @white-color; + } + } + + & .@{class-prefix}-search-icon { + height: 40px; + line-height: 44px; + } +} + +.ant-transfer-list { + width: 150px; + + @media screen and (max-width: @screen-xs-max) { + width: 100%; + } +} + +@media screen and (max-width: @screen-xs-max) { + .@{class-prefix}-ant-transfer-width .ant-transfer-list { + width: 100% !important; + } +} + +@media screen and (max-width: (@screen-xs-max - 100px)) { + .ant-input-group.ant-input-group-compact { + & > * { + .border-radius(4px) !important; + width: 100% !important; + border-right-width: 1px; + + &:not(:last-child) { + margin-bottom: 10px; + } + } + + // reset border for Select, DatePicker, AutoComplete, Cascader, Mention, TimePicker + & > .@{ant-prefix}-select > .@{ant-prefix}-select-selection, + & > .@{ant-prefix}-calendar-picker .@{ant-prefix}-input, + & > .@{ant-prefix}-select-auto-complete .@{ant-prefix}-input, + & > .@{ant-prefix}-cascader-picker .@{ant-prefix}-input, + & > .@{ant-prefix}-mention-wrapper .@{ant-prefix}-mention-editor, + & > .@{ant-prefix}-time-picker .@{ant-prefix}-time-picker-input { + border-radius: 4px; + border-right-width: 1px; + } + + & .@{class-prefix}-border-lt-xs { + border-left: @border-width-base @border-style-base @input-border-color !important; + } + } +} + + + diff --git a/src/styles/ui/list.less b/src/styles/ui/list.less new file mode 100644 index 000000000..1b227b945 --- /dev/null +++ b/src/styles/ui/list.less @@ -0,0 +1,178 @@ +/*List Styles*/ +.ant-list-vertical { + & .ant-list-item-main { + min-width: 200px; + } + + & .ant-list-item-extra { + @media screen and (max-width: (@screen-xs-max - 95px)) { + margin-bottom: 10px; + } + } +} + +.@{class-prefix}-list-item { + & .ant-list-item-extra-wrap { + .flex-display(flex, row, wrap); + .flex-only(1); + + & .ant-list-item-extra { + margin-left: 20px; + + @media screen and (max-width: @screen-xs-max) { + margin-left: 0; + margin-top: 10px; + + & img { + width: 100%; + } + } + } + + @media screen and (max-width: @screen-xs-max) { + .flex-display(flex, column, nowrap); + } + } +} + +.@{class-prefix}-user-list { + width: 100%; + padding-bottom: 10px; + .flex-display(flex, row, wrap); + + &:not(:first-child) { + padding-top: 20px; + + @media screen and (max-width: @screen-xs-max) { + padding-top: 0; + } + } + + &.@{class-prefix}-card-list { + padding: 20px; + background: @component-background; + .border-radius(@border-radius-sm); + margin-bottom: @gx-card-margin-base; + .box-shadow(@gx-card-shadow); + + @media screen and (max-width: @screen-sm-max) { + padding: 15px; + } + } + + & .@{class-prefix}-avatar-img { + margin-right: 20px; + margin-bottom: 10px; + } + + & h3 { + font-weight: @font-weight-medium; + margin-bottom: 8px; + } + + & a[class*="gx-meta-"] { + display: inline-block; + color: @text-color; + font-size: @h6-font-size; + font-weight: @font-weight-medium; + } + + & a[class*="gx-meta-"] i { + margin-right: 6px; + vertical-align: middle; + } + + & .@{class-prefix}-description { + width: calc(100% ~"-" 120px); + + @media screen and (max-width: @screen-xs-max) { + width: 100%; + } + } + + & .@{class-prefix}-btn-list { + & li:not(:last-child) { + margin-right: 10px; + } + } +} + +.@{class-prefix}-list-inline { + margin-left: -5px; + margin-right: -5px; + padding-left: 0; + list-style: none; + & li { + padding: 0 5px; + display: inline-block; + } +} + +.@{class-prefix}-list-inline-lg { + margin-left: -10px; + margin-right: -10px; + padding-left: 0; + list-style: none; + & li { + padding: 0 10px; + display: inline-block; + } +} + +.@{class-prefix}-card-strip { + margin-bottom: 10px; + + &:not(:last-child) { + border-bottom: @border-style-base @border-width-base @border-color; + } +} + +.@{class-prefix}-card-list { + + & .@{class-prefix}-description { + width: calc(100% ~"-" 370px); + + @media screen and (max-width: @screen-sm-max) { + width: 100%; + } + } + + & .@{class-prefix}-img-section { + width: 230px; + margin-left: 20px; + + @media screen and (max-width: @screen-sm-max) { + width: 100%; + margin-left: 0; + } + } +} + +.@{class-prefix}-list-group { + list-style: none; + padding-left: 0; + + & li { + margin-bottom: 6px; + + & i { + margin-right: 12px; + } + } +} + +.@{class-prefix}-dot-list { + list-style: none; + margin: 0 -3px 10px; + padding-left: 0; + + & li { + display: inline-block; + vertical-align: top; + padding: 0 3px; + } + + @media screen and (max-width: @screen-xs-max) { + margin-bottom: 5px; + } +} diff --git a/src/styles/ui/loader.less b/src/styles/ui/loader.less new file mode 100644 index 000000000..110617b44 --- /dev/null +++ b/src/styles/ui/loader.less @@ -0,0 +1,14 @@ +/*Loader Styles*/ +.ant-spin { + margin-right: 16px; + margin-bottom: 10px; +} + +.@{class-prefix}-loader-container { + text-align: center; + background-color: @grey-3; + .border-radius(@border-radius-sm); + padding: @size-30 @size-50; + margin-right: 0; + display: block; +} diff --git a/src/styles/ui/pagination.less b/src/styles/ui/pagination.less new file mode 100644 index 000000000..1c0db2821 --- /dev/null +++ b/src/styles/ui/pagination.less @@ -0,0 +1,28 @@ +/*Pagination Styles*/ +.ant-pagination { + & > li { + margin-bottom: 10px; + + &.ant-pagination-options, + &.ant-pagination-total-text { + margin-bottom: 0; + } + } + + &.mini { + &:not(:last-child) { + margin-bottom: 10px; + } + + & li { + margin-bottom: 5px !important; + } + } + + &-prev, + &-next, + &-jump-prev, + &-jump-next { + line-height: @pagination-item-size - 2px; + } +} diff --git a/src/styles/ui/pickers.less b/src/styles/ui/pickers.less new file mode 100644 index 000000000..ff1ab9787 --- /dev/null +++ b/src/styles/ui/pickers.less @@ -0,0 +1,16 @@ +/*Pickers Styles*/ +.photoshop-picker, +.swatches-picker, +.alpha-picker, +.hue-picker { + width: 100% !important; +} + +.@{class-prefix}-alpha-pickers { + position: relative; + min-height: 250px; +} + +.ant-calendar-footer .ant-calendar-ok-btn { + margin-bottom: 0; +} diff --git a/src/styles/ui/progress.less b/src/styles/ui/progress.less new file mode 100644 index 000000000..b8ea2cd81 --- /dev/null +++ b/src/styles/ui/progress.less @@ -0,0 +1,9 @@ +/*Progress Styles*/ +.ant-progress-line { + margin-right: 8px; + margin-bottom: 8px; +} + +.ant-progress-circle { + .ant-progress-line; +} diff --git a/src/styles/ui/slider.less b/src/styles/ui/slider.less new file mode 100644 index 000000000..bca090cf5 --- /dev/null +++ b/src/styles/ui/slider.less @@ -0,0 +1,85 @@ +/*Slider Styles*/ +.ant-carousel { + & h1, + & h2, + & h3, + & h4, + & h5, + & h6 { + line-height: inherit; + margin-bottom: 0; + } +} + +.@{class-prefix}-vertical-slider { + position: relative; + .flex-display(flex, row, wrap); + margin: 0 -15px; +} + +.@{class-prefix}-vertical-slider-item { + width: 33.33%; + padding: 0 15px; + height: 300px; + .flex-display(flex, column, nowrap); + .align-items(center); + + @media screen and (max-width: @screen-xs-max ) { + width: 50%; + margin-bottom: 15px; + } +} + +.ant-carousel-vertical .@{class-prefix}-vertical-slide { + & .slick-slide { + height: 160px; + } +} + +.slick-slider { + margin-bottom: @gx-card-margin-base; + + & .slick-prev { + left: -15px; + + &:before { + color: @black-color; + } + } + + & .slick-next { + right: -15px; + + &:before { + color: @black-color; + } + } +} + +.slick-dots { + & li { + width: 10px !important; + height: 10px !important; + } + + & li button { + width: 10px !important; + height: 10px !important; + + &:before { + width: 10px !important; + height: 10px !important; + line-height: 10px !important; + } + } +} + +.@{class-prefix}-slide-item { + margin-left: 15px; + margin-right: 15px; + + @media screen and (max-width: (@screen-xs-max - 95px)) { + margin-left: 0; + margin-right: 0; + } +} diff --git a/src/styles/ui/steps.less b/src/styles/ui/steps.less new file mode 100644 index 000000000..eb5224d50 --- /dev/null +++ b/src/styles/ui/steps.less @@ -0,0 +1,16 @@ +/*Steps Styles*/ +.ant-steps-dot { + flex-wrap: wrap; + overflow: hidden; + padding: 10px 0; + + & .ant-steps-item { + margin-bottom: 10px; + } + + & .ant-steps-item-description { + @media screen and (max-width: @screen-xs-max) { + display: none; + } + } +} \ No newline at end of file diff --git a/src/styles/ui/tables.less b/src/styles/ui/tables.less new file mode 100644 index 000000000..117d0a6c3 --- /dev/null +++ b/src/styles/ui/tables.less @@ -0,0 +1,161 @@ +/*Tables Styles*/ +.ant-table-small { + > .ant-table-content { + > .ant-table-header > table, + > .ant-table-body > table, + > .ant-table-scroll > .ant-table-header > table, + > .ant-table-scroll > .ant-table-body > table, + > .ant-table-fixed-left > .ant-table-header > table, + > .ant-table-fixed-right > .ant-table-header > table, + > .ant-table-fixed-left > .ant-table-body-outer > .ant-table-body-inner > table, + > .ant-table-fixed-right > .ant-table-body-outer > .ant-table-body-inner > table { + padding: 0; + } + } +} + +.ant-table { + &-thead > tr > th, + &-tbody > tr > td { + word-break: normal; + } +} + +.@{class-prefix}-table-responsive .ant-table { + min-height: .01%; + overflow-x: auto; +} + +@media screen and (max-width: @screen-sm-max) { + .@{class-prefix}-table-responsive .ant-table { + width: 100%; + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: @border-style-base @border-width-base @border-color; + + .ant-card-bordered.@{class-prefix}-card-full & { + border: 0 none; + border-bottom: @border-style-base @border-width-base @border-color; + } + + & .ant-table-tbody > tr:last-child > td { + border-bottom: 0 none; + } + + &.ant-table-bordered { + + & .ant-table-header > table, + & .ant-table-body > table, + & .ant-table-fixed-left table, + & .ant-table-fixed-right table { + border-top: 0 none; + border-left: 0 none; + } + + & .ant-table-title { + border: 0 none; + } + + & .ant-table-footer { + border: 0 none; + border-top: @border-style-base @border-width-base @border-color; + } + + & .ant-table-thead > tr > th:last-child, + & .ant-table-tbody > tr > td:last-child { + border-right: 0 none; + } + } + } + + .@{class-prefix}-table-responsive .ant-table-body > table > thead > tr > th, + .@{class-prefix}-table-responsive .ant-table-body > table > tbody > tr > th, + .@{class-prefix}-table-responsive .ant-table-body > table > tfoot > tr > th, + .@{class-prefix}-table-responsive .ant-table-body > table > thead > tr > td, + .@{class-prefix}-table-responsive .ant-table-body > table > tbody > tr > td, + .@{class-prefix}-table-responsive .ant-table-body > table > tfoot > tr > td { + white-space: nowrap; + } +} + +.@{class-prefix}-table { + width: 100%; + max-width: 100%; + margin-bottom: 1rem; + background-color: transparent; + + & th, + & td { + padding: 0.75rem; + vertical-align: top; + border-top: @border-style-base @border-width-base @border-color; + } + + & thead th { + vertical-align: bottom; + border-bottom: 2px @border-style-base @border-color; + } + + & tbody + tbody { + border-top: 2px @border-style-base @border-color; + } +} + +.@{class-prefix}-table-bordered { + border: @border-width-base @border-style-base @border-color; + + & th, + & td { + border: @border-width-base @border-style-base @border-color; + } + + & thead th, + & thead td { + border-bottom-width: 2px; + } +} + +.@{class-prefix}-table-no-bordered { + border: 0 none; + + & th, + & td { + border: 0 none; + } + + & thead th, + & thead td { + border-bottom-width: 2px; + } +} + +.@{class-prefix}-table-thead-uppercase { + & thead th { + text-transform: uppercase; + } +} + +.@{class-prefix}-table-padding-lg { + & thead th, + & tbody td { + padding: 20px 30px !important; + + @media screen and (max-width: @screen-md-max) { + padding: 15px 20px !important; + } + + @media screen and (max-width: @screen-sm-max) { + padding: 10px !important; + } + } + + & .ant-table-pagination { + float: none; + text-align: center; + margin: 22px 0; + + @media screen and (max-width: @screen-md-max) { + margin: 16px 0; + } + } +} diff --git a/src/styles/ui/tabs.less b/src/styles/ui/tabs.less new file mode 100644 index 000000000..967a4db0c --- /dev/null +++ b/src/styles/ui/tabs.less @@ -0,0 +1,20 @@ +/*Tabs Styles*/ +.@{class-prefix}-tabs-half { + & .ant-tabs-bar { + margin-bottom: 0; + } + + & .ant-tabs-nav { + display: block; + + & .ant-tabs-tab { + margin: 0; + width: 50%; + text-align: center; + } + + & .ant-tabs-ink-bar { + width: 50%; + } + } +} diff --git a/src/styles/ui/timeline.less b/src/styles/ui/timeline.less new file mode 100644 index 000000000..f01f7b18c --- /dev/null +++ b/src/styles/ui/timeline.less @@ -0,0 +1,450 @@ +/*Time Lines Style*/ + +/*Antd Time Lines Style*/ +.ant-timeline-item { + padding: 0; + + &:not(:last-child) { + padding-bottom: 20px; + } +} + +.@{class-prefix}-timeline-info { + position: relative; + + &:not(:last-child) { + padding-bottom: 20px; + } + + &-day { + text-transform: uppercase; + margin-bottom: 20px; + font-size: @h5-font-size; + } + + & .ant-timeline { + padding-top: 7px; + padding-left: 7px; + } + + & .ant-timeline-item-head-custom { + padding: 0; + } + + & .ant-timeline-item-content { + padding-left: 45px; + top: -3px; + } +} + +/*Custom Time Lines Style*/ +.@{class-prefix}-timeline-left { + float: left; + margin-right: 20px; +} + +.@{class-prefix}-timeline-right { + float: right; + margin-left: 20px; +} + +.@{class-prefix}-timeline-circle { + .border-radius(@border-radius-circle); +} + +.@{class-prefix}-timeline-section { + margin-bottom: 25px; + overflow: hidden; +} + +.@{class-prefix}-timeline-item { + padding-bottom: 25px; + padding-left: 80px; + position: relative; + + &:before { + border-left: @border-style-base 2px @grey-4; + content: ""; + left: 25px; + position: absolute; + top: 25px; + bottom: -20px; + width: 2px; + z-index: 1; + } + &:first-child:before { + border-left-style: dashed; + } + &:last-child:before { + border-left-style: dashed; + bottom: 25px; + } +} + +.@{class-prefix}-timeline-badge { + height: @size-50; + width: @size-50; + position: absolute; + left: 0; + top: 16px; + z-index: 2; + font-size: 16px; + color: @white-color; + text-align: center; + .border-radius(@border-radius-circle); + + &.@{class-prefix}-timeline-img { + background-color: transparent; + + &:after { + display: none; + } + } + + &:after { + position: absolute; + content: ""; + width: 42px; + height: 42px; + background-color: transparent; + border: 4px solid @grey-4; + .border-radius(@border-radius-circle); + left: 4px; + top: 4px; + z-index: 1; + } + + & [class^="gx-"]:before, + & [class*="gx-"]:before { + line-height: 50px; + } +} + +.@{class-prefix}-timeline-img > img, +.@{class-prefix}-timeline-header-img > img { + display: inline-block; + max-width: 100%; + height: auto; +} + +.@{class-prefix}-timeline-panel { + padding: 20px 30px; + position: relative; + background-color: @white-color; + .border-radius(@border-radius-lg); + border: @border-style-base @border-width-base @grey-4; + + &:after, + &:before { + content: ""; + position: absolute; + border-style: solid; + display: inline-block; + top: 30px; + } + + &:before { + border-color: transparent @grey-4; + border-width: 10px 17px 10px 0; + left: -18px; + + } + + &:after { + border-color: transparent @white-color; + border-width: 10px 16px 10px 0; + left: -16px; + } +} + +.@{class-prefix}-timeline-no-padding { + padding: 0; +} + +.@{class-prefix}-timeline-panel-header { + margin-bottom: 10px; +} + +.@{class-prefix}-timeline-header-img { + margin-bottom: 10px; +} + +.@{class-prefix}-timeline-inverted { + & .@{class-prefix}-timeline-left { + float: right; + margin-right: 0; + margin-left: 20px; + } +} + +.@{class-prefix}-timeline-heading { + overflow: hidden; + margin-bottom: 10px; +} + +.@{class-prefix}-timeline-body { + clear: both; +} + +/*Gxtl Center Style*/ +.@{class-prefix}-timeline-center { + & .@{class-prefix}-timeline-item { + clear: both; + float: right; + width: 50%; + padding-left: 55px; + + &:before { + left: 0; + } + } +} + +.@{class-prefix}-timeline-center { + & .@{class-prefix}-timeline-badge { + left: -25px; + right: auto; + } + + & .@{class-prefix}-timeline-time { + position: absolute; + top: 32px; + left: -150px; + right: auto; + z-index: 2; + } + + & .@{class-prefix}-timeline-inverted { + float: left; + text-align: right; + padding-left: 0; + padding-right: 55px; + + &:before { + border-left: 0 none; + border-right: @border-style-base 2px @grey-4; + left: auto; + right: -2px; + } + & .@{class-prefix}-timeline-badge { + left: auto; + right: -25px; + } + + & .@{class-prefix}-timeline-panel { + &:before { + border-width: 10px 0 10px 17px; + left: auto; + right: -18px; + } + + &:after { + border-width: 10px 0 10px 16px; + left: auto; + right: -16px; + } + } + + & .@{class-prefix}-timeline-time { + position: absolute; + top: 32px; + right: -150px; + left: auto; + z-index: 2; + } + } +} + +/*Gxtl Zigzag Style*/ +.@{class-prefix}-timeline-zigzag { + & .@{class-prefix}-timeline-item { + padding-left: 150px; + + & + .@{class-prefix}-timeline-item { + margin-top: -80px; + } + } + + & .@{class-prefix}-timeline-img { + width: 90px; + height: 90px; + left: 5px; + & > img { + width: 100%; + } + } + + & .@{class-prefix}-timeline-inverted .@{class-prefix}-timeline-img { + right: 5px !important; + } + + & .@{class-prefix}-timeline-item:before { + .rotate(35deg); + top: 20px; + bottom: 20px; + } + + & .@{class-prefix}-timeline-inverted { + padding-left: 0; + padding-right: 150px; + &:before { + .rotate(-35deg); + } + } + + & .@{class-prefix}-timeline-item:first-child:before { + border-left-style: solid; + } + + & .@{class-prefix}-timeline-item:last-child:before { + display: none; + } +} + +.@{class-prefix}-timeline-item:last-child:before { + bottom: 25px; +} + +@media screen and (max-width: @screen-md-max) { + .@{class-prefix}-timeline-zigzag .@{class-prefix}-timeline-item + .@{class-prefix}-timeline-item { + margin-top: -60px; + } + + .@{class-prefix}-timeline-zigzag .@{class-prefix}-timeline-item:before { + bottom: 0; + } + + .@{class-prefix}-timeline-zigzag { + & .@{class-prefix}-timeline-item { + padding-left: 120px; + } + + & .@{class-prefix}-timeline-inverted { + padding-right: 120px; + padding-left: 0; + } + } +} + +@media screen and (max-width: @screen-sm-max) { + .@{class-prefix}-timeline-center { + & .@{class-prefix}-timeline-item { + float: none; + padding-left: 80px; + width: auto; + &:before { + left: 25px; + } + } + + & .@{class-prefix}-timeline-badge { + left: 0; + } + + & .@{class-prefix}-timeline-inverted { + float: none; + text-align: left; + padding-right: 0; + + &:before { + border-left: @border-style-base 2px @grey-4; + border-right: 0 none; + left: 24px; + right: auto; + } + & .@{class-prefix}-timeline-badge { + right: auto; + left: 0; + } + + & .@{class-prefix}-timeline-panel { + &:before { + border-width: 10px 17px 10px 0 !important; + left: -18px; + right: auto; + } + &:after { + border-width: 10px 16px 10px 0 !important; + left: -16px; + right: auto; + } + } + } + } + + .@{class-prefix}-timeline-inverted { + & .@{class-prefix}-timeline-panel-header { + float: none; + } + + & .@{class-prefix}-timeline-left { + float: left; + margin-left: 0; + margin-right: 20px; + } + } + + .@{class-prefix}-timeline-zigzag { + & .@{class-prefix}-timeline-panel { + max-height: none; + min-height: 10px; + overflow-y: visible; + } + + & .@{class-prefix}-timeline-item { + padding-left: 100px; + & + .@{class-prefix}-timeline-item { + margin-top: 0; + } + + &:before { + transform: none; + top: 25px; + bottom: -25px; + left: 45px; + } + + &:last-child:before { + bottom: 0; + } + } + & .@{class-prefix}-timeline-inverted:before { + transform: none; + } + } + + .@{class-prefix}-timeline-center { + & .@{class-prefix}-timeline-time, + & .@{class-prefix}-timeline-inverted .@{class-prefix}-timeline-time { + position: relative; + top: auto; + left: auto; + right: auto; + margin-bottom: 6px; + } + + .@{class-prefix}-timeline-time-item .@{class-prefix}-timeline-panel::before, + .@{class-prefix}-timeline-time-item .@{class-prefix}-timeline-panel::after { + top: 10px; + } + } +} + +@media screen and (max-width: 399px) { + .@{class-prefix}-timeline-left { + float: none; + margin-right: 0; + } + + .@{class-prefix}-timeline-right { + float: none; + margin-left: 0; + } + + .@{class-prefix}-timeline-inverted { + & .@{class-prefix}-timeline-left { + float: none; + margin-right: 0; + } + } +} diff --git a/src/styles/variables.less b/src/styles/variables.less new file mode 100644 index 000000000..99c751f01 --- /dev/null +++ b/src/styles/variables.less @@ -0,0 +1,21 @@ +@import "../../node_modules/antd/lib/style/themes/default.less"; + +// ColorPicker Variables +@white-color: #ffffff; +@black-color: #000000; + +//global style variables +@primary-color: #3c1990; +@secondary-color: #ec407a; +@text-color: #545454; +@text-color-secondary: #595959; +@heading-color: #535353; +@header-text-color: #333333; +@layout-header-background: #fefefe; +@layout-footer-background: #fffffd; +@body-background: #f5f5f5; +@sidebar-bg: @white-color; +@sidebar-text-color: #a1a1a1; +@sidebar-dark-bg: @black-color; +@sidebar-dark-text-color: #a1a1a1; +@menu-dark-bg: @sidebar-dark-bg;