diff --git a/.gitignore b/.gitignore index 4d2a143..1788a33 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,15 @@ *.pyc *local.py +*migrations/ media/ static/ +.sass-cache +node_modules/ *db.sqlite3 *.DS_Store *manage.py-oauth2.json # Env folders venv/ -env/ \ No newline at end of file +env/ + diff --git a/assets/config.rb b/assets/config.rb new file mode 100644 index 0000000..5136c51 --- /dev/null +++ b/assets/config.rb @@ -0,0 +1,25 @@ +require 'compass/import-once/activate' +# Require any additional compass plugins here. + +# Set this to the root of your project when deployed: +http_path = "/" +css_dir = "css" +sass_dir = "sass" +images_dir = "images" +javascripts_dir = "javascripts" + +# You can select your preferred output style here (can be overridden via the command line): +# output_style = :expanded or :nested or :compact or :compressed + +# To enable relative paths to assets via compass helper functions. Uncomment: +# relative_assets = true + +# To disable debugging comments that display the original location of your selectors. Uncomment: +# line_comments = false + + +# If you prefer the indented syntax, you might want to regenerate this +# project again passing --syntax sass, or you can uncomment this: +# preferred_syntax = :sass +# and then run: +# sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass diff --git a/assets/css/custom.css b/assets/css/custom.css deleted file mode 100644 index 27326bc..0000000 --- a/assets/css/custom.css +++ /dev/null @@ -1,229 +0,0 @@ - -nav.navbar-color { - background-color: #e8e6e8; -} - -div.address { - margin-left: -15px; -} - -.main { - position: relative; - top: 52px; -} - -div.invoice{ - height: 670px; - border: 1px solid #1b5a23; -} -div.client { - height: 670px; -} - -.navbar-brand{ - padding-top: 13px; - margin-right: 50px; - width: 91px; - height: 26px; - font-family: Roboto; - font-size: 20px; - font-weight: bold; - font-style: normal; - font-stretch: normal; - line-height: 1.3; - letter-spacing: normal; - text-align: left; - color: #222222; -} - -span.Dashboard, -span.Clients, -span.Invoices, -span.user-name { - width: 78px; - height: 21px; - font-family: Roboto; - font-size: 13px; - font-weight: normal; - font-style: normal; - font-stretch: normal; - line-height: 1.31; - letter-spacing: normal; - text-align: left; - color: #7f8fa6; -} - -div.client_form { - height: 310px; - border: 1px solid #1b5a23; - -} -div.client_list { - height: 360px; - border: 1px solid #1b5a23; -} - - -div.scroll { - background-color: #00FFFF; - background-color: blue; - height: 360px; - overflow: scroll; -} - -div.add-client-button { - position: absolute; -} - -ul.errorlist { - color: red; -} - -.btn-search{ - color: #6b46ef; - background-color: #fff; - border-color: #ccc; - border-style: none; -} - -input[placeholder=Search]{ - color: #e0e0e0; - font-size: 12px; - -} -.form-control-search{ - border-style: none; - padding-top: 6px; - padding-right: 12px; - padding-bottom: 6px; - padding-left: 12px; - height: 34px; -} - -.user-image { - width: 35px; - height: 35px; -} - -img.home-dashboard-logo-client-company { - width: 25px; - height: 20px; -} - -li a.user-dropdown { - padding: 10px 5px 5px 5px; -} - -h4.home-dashboard-head{ - width: 129px; - height: 32px; - font-family: Roboto; - font-size: 24px; - font-weight: 500; - font-style: normal; - font-stretch: normal; - line-height: 1.33; - letter-spacing: normal; - text-align: left; - color: #222222; - -} - -span.invoice-total { - width: 100px; - height: 19px; - font-family: Roboto; - font-size: 12px; - font-weight: 300; - font-style: normal; - font-stretch: normal; - line-height: 1.36; - letter-spacing: normal; - text-align: left; - color: #718093; - color: var(--steel); -} - -div.row-title { - - font-family: Roboto; - font-size: 12px; - - color: #718093; -} - -nav.navbar-color { - background-color: #ffffff; -} - -body { - background-color: rgba(201, 201, 201, 0.15); -} - -li.row-home-dashboard-data { - background-color: #ffffff; - border-radius: 2px; - height: 40px; -} - -li.row-home-dashboard-data:hover { - background-color: #7d78ff; - border-radius: 2px; - height: 40px; -} - -li.row-home-dashboard-data:hover .row-data, -li.row-home-dashboard-data:hover .sent, -li.row-home-dashboard-data:hover .draft, -li.row-home-dashboard-data:hover .amount { - color: #fff; -} - -li.row-home-dashboard-data { - margin-bottom: 5px; -} - -div.row-home-dashboard-head { - margin-bottom: 15px; -} - -div.data { - padding: 13px 15px 10px 15px; - font-size: 12px; - font-family: Roboto; - -} - -a.row-data { - color: #7f8fa6; - text-decoration: none; -} - -a.row-data:hover { - color:#00A0C6; - text-decoration:none; - cursor:pointer; -} - -ul { - list-style-type: none; -} - -div.home-dashboard-head { - padding-left: 6%; - padding-bottom: 4%; -} - -span.sent { - color: #88e6cd; -} - -span.draft { - color: #fcce8e; -} - -span.amount { - color: #5d58de; -} - - diff --git a/assets/css/ie.css b/assets/css/ie.css new file mode 100644 index 0000000..5cd5b6c --- /dev/null +++ b/assets/css/ie.css @@ -0,0 +1,5 @@ +/* Welcome to Compass. Use this file to write IE specific override styles. + * Import this file using the following HTML or equivalent: + * */ diff --git a/assets/css/print.css b/assets/css/print.css new file mode 100644 index 0000000..b0e9e45 --- /dev/null +++ b/assets/css/print.css @@ -0,0 +1,3 @@ +/* Welcome to Compass. Use this file to define print styles. + * Import this file using the following HTML or equivalent: + * */ diff --git a/assets/css/screen.css b/assets/css/screen.css new file mode 100644 index 0000000..4fa525f --- /dev/null +++ b/assets/css/screen.css @@ -0,0 +1,68 @@ +/* Welcome to Compass. + * In this file you should write your main styles. (or centralize your imports) + * Import this file using the following HTML or equivalent: + * */ +/* line 5, ../../../../../../../var/lib/gems/2.3.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font: inherit; + font-size: 100%; + vertical-align: baseline; +} + +/* line 22, ../../../../../../../var/lib/gems/2.3.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +html { + line-height: 1; +} + +/* line 24, ../../../../../../../var/lib/gems/2.3.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +ol, ul { + list-style: none; +} + +/* line 26, ../../../../../../../var/lib/gems/2.3.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +table { + border-collapse: collapse; + border-spacing: 0; +} + +/* line 28, ../../../../../../../var/lib/gems/2.3.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +caption, th, td { + text-align: left; + font-weight: normal; + vertical-align: middle; +} + +/* line 30, ../../../../../../../var/lib/gems/2.3.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +q, blockquote { + quotes: none; +} +/* line 103, ../../../../../../../var/lib/gems/2.3.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +q:before, q:after, blockquote:before, blockquote:after { + content: ""; + content: none; +} + +/* line 32, ../../../../../../../var/lib/gems/2.3.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +a img { + border: none; +} + +/* line 116, ../../../../../../../var/lib/gems/2.3.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { + display: block; +} diff --git a/assets/css/style.css b/assets/css/style.css new file mode 100644 index 0000000..64fce02 --- /dev/null +++ b/assets/css/style.css @@ -0,0 +1,1177 @@ +@font-face { + font-family: 'Roboto-Black'; + src: url(../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Black.woff) format("woff"), url(../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Black.woff2) format("woff2"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'Roboto-BlackItalic'; + src: url("../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-BlackItalic.woff") format("woff"), url("../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-BlackItalic.woff2") format("woff2"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'Roboto-Bold'; + src: url("../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Bold.woff") format("woff"), url("../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Bold.woff2") format("woff2"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'Roboto-BoldItalic'; + src: url("../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-BoldItalic.woff") format("woff"), url("../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-BoldItalic.woff2") format("woff2"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'Roboto-Light'; + src: url("../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Light.woff") format("woff"), url("../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Light.woff2") format("woff2"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'Roboto-LightItalic'; + src: url("../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-LightItalic.woff") format("woff"), url("../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-LightItalic.woff2") format("woff2"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'Roboto-Medium'; + src: url("../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Medium.woff") format("woff"), url("../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Medium.woff2") format("woff2"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'Roboto-MediumItalic'; + src: url("../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-MediumItalic.woff") format("woff"), url("../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-MediumItalic.woff2") format("woff2"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'Roboto-Regular'; + src: url("../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Regular.woff") format("woff"), url("../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Regular.woff2") format("woff2"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'Roboto-RegularItalic'; + src: url("../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-RegularItalic.woff") format("woff"), url("../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-RegularItalic.woff2") format("woff2"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'Roboto-Thin'; + src: url("../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Thin.woff") format("woff"), url("../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Thin.woff2") format("woff2"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'Roboto-ThinItalic'; + src: url("../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-ThinItalic.woff") format("woff"), url("../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-ThinItalic.woff2") format("woff2"); + font-weight: normal; + font-style: normal; +} +/* line 88, ../sass/_variables.scss */ +body { + font-family: "Roboto-Regular"; + font-size: 14px; + letter-spacing: 0.003rem; + background: #F9F9F9; + color: #718093; + height: 100%; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; +} + +/* line 98, ../sass/_variables.scss */ +:root { + font-size: 14px; +} + +/* line 2, ../sass/_overrides.scss */ +.btn { + border-radius: 50px; + padding: 13px 35px 12px; + line-height: 14px; + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; +} +/* line 7, ../sass/_overrides.scss */ +.btn:hover { + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; +} +/* line 12, ../sass/_overrides.scss */ +.btn:not([disabled]):not([disabled]):focus, .btn:not([disabled]):not([disabled]):active { + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; +} +/* line 15, ../sass/_overrides.scss */ +.btn:not([disabled]):not([disabled]):focus:focus, .btn:not([disabled]):not([disabled]):active:focus { + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; +} + +/* line 23, ../sass/_overrides.scss */ +.btn-sm { + padding: 5px 35px 4px; + min-height: 40px; +} + +/* line 28, ../sass/_overrides.scss */ +.btn-primary { + background-image: linear-gradient(to left, #5d58de, #4b45dd); + border: solid 2px transparent; + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; +} +/* line 32, ../sass/_overrides.scss */ +.btn-primary:hover { + background-image: linear-gradient(to left, #4944e0, #352fc1); + border: solid 2px transparent; + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; +} +/* line 37, ../sass/_overrides.scss */ +.btn-primary:active { + background-image: linear-gradient(to left, #5d58de, #4b45dd); + border: solid 2px transparent; +} +/* line 43, ../sass/_overrides.scss */ +.btn-primary:not([disabled]):not([disabled]):focus, .btn-primary:not([disabled]):not([disabled]):active { + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; + background-image: linear-gradient(to left, #3a36b7, #2b26a5); + border: solid 2px transparent; +} +/* line 48, ../sass/_overrides.scss */ +.btn-primary:not([disabled]):not([disabled]):focus:focus, .btn-primary:not([disabled]):not([disabled]):active:focus { + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; + background-image: linear-gradient(to left, #3a36b7, #2b26a5); + border: solid 2px transparent; + -webkit-box-shadow: 0px 0px 1rem rgba(93, 88, 222, 0.5); + -moz-box-shadow: 0px 0px 1rem rgba(93, 88, 222, 0.5); + box-shadow: 0px 0px 1rem rgba(93, 88, 222, 0.5); +} + +/* line 59, ../sass/_overrides.scss */ +.btn-danger { + background-image: linear-gradient(to left, #FC4467, #fc2b53); + border: solid 2px transparent; + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; +} +/* line 63, ../sass/_overrides.scss */ +.btn-danger:hover { + background-image: linear-gradient(to left, #fc2b53, #fb123e); + border: solid 2px transparent; + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; +} +/* line 68, ../sass/_overrides.scss */ +.btn-danger:active { + background-image: linear-gradient(to left, #f00431, #d7032c); + border: solid 2px transparent; +} +/* line 74, ../sass/_overrides.scss */ +.btn-danger:not([disabled]):not([disabled]):focus, .btn-danger:not([disabled]):not([disabled]):active { + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; + background-image: linear-gradient(to left, #f00431, #d7032c); + border: solid 2px transparent; +} +/* line 79, ../sass/_overrides.scss */ +.btn-danger:not([disabled]):not([disabled]):focus:focus, .btn-danger:not([disabled]):not([disabled]):active:focus { + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; + background-image: linear-gradient(to left, #f00431, #d7032c); + border: solid 2px transparent; + -webkit-box-shadow: 0px 0px 1rem rgba(252, 68, 103, 0.5); + -moz-box-shadow: 0px 0px 1rem rgba(252, 68, 103, 0.5); + box-shadow: 0px 0px 1rem rgba(252, 68, 103, 0.5); +} + +/* line 90, ../sass/_overrides.scss */ +.btn-success { + background-image: linear-gradient(to left, #58deba, #43dab1); + border: solid 2px transparent; + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; +} +/* line 94, ../sass/_overrides.scss */ +.btn-success:hover { + background-image: linear-gradient(to left, #43dab1, #2dd6a8); + border: solid 2px transparent; + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; +} +/* line 99, ../sass/_overrides.scss */ +.btn-success:active { + background-image: linear-gradient(to left, #27c399, #22ae88); + border: solid 2px transparent; +} +/* line 105, ../sass/_overrides.scss */ +.btn-success:not([disabled]):not([disabled]):focus, .btn-success:not([disabled]):not([disabled]):active { + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; + background-image: linear-gradient(to left, #27c399, #22ae88); + border: solid 2px transparent; +} +/* line 110, ../sass/_overrides.scss */ +.btn-success:not([disabled]):not([disabled]):focus:focus, .btn-success:not([disabled]):not([disabled]):active:focus { + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; + background-image: linear-gradient(to left, #27c399, #22ae88); + border: solid 2px transparent; + -webkit-box-shadow: 0px 0px 1rem rgba(88, 222, 186, 0.5); + -moz-box-shadow: 0px 0px 1rem rgba(88, 222, 186, 0.5); + box-shadow: 0px 0px 1rem rgba(88, 222, 186, 0.5); +} + +/* line 121, ../sass/_overrides.scss */ +.btn-icon, .btn-icon-left { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; +} +/* line 130, ../sass/_overrides.scss */ +.btn-icon-left .feather, +.btn-icon-left i[class*="dripicons-"] { + margin-right: 0.5rem; +} + +/* line 138, ../sass/_overrides.scss */ +.btn-link, .btn-link:hover, .btn-link:hover:not([disabled]):focus, .btn-link:active, .btn-link:active:not([disabled]):focus, .btn-link:not([disabled]):focus, .btn-link:not([disabled]):active { + background-color: transparent; + border: none; + color: #b8c0dc; + text-decoration: none; + padding: 0; +} +/* line 144, ../sass/_overrides.scss */ +.btn-link:hover, .btn-link:hover:not([disabled]):focus, .btn-link:hover:not([disabled]):active { + color: #7f8fa6; +} +/* line 148, ../sass/_overrides.scss */ +.btn-link:active, .btn-link:active:not([disabled]):focus, .btn-link:active:not([disabled]) { + color: #7f8fa6; +} +/* line 154, ../sass/_overrides.scss */ +.btn-link:not([disabled]):not([disabled]):focus, .btn-link:not([disabled]):not([disabled]):active { + color: #7f8fa6; +} +/* line 158, ../sass/_overrides.scss */ +.btn-link:not([disabled]):not([disabled]):focus:focus, .btn-link:not([disabled]):not([disabled]):active:focus { + color: #7f8fa6; + -webkit-box-shadow: 0px 0px 0 0; + -moz-box-shadow: 0px 0px 0 0; + box-shadow: 0px 0px 0 0; +} + +/* line 172, ../sass/_overrides.scss */ +.dropdown.show .dropdown-menu { + -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.06); + -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.06); + box-shadow: 0 0 10px rgba(0, 0, 0, 0.06); + border: solid 1px #eef1f5; + min-width: 200px; + margin-top: 2rem; + border-radius: 10px; + border-top-right-radius: 0; +} +/* line 179, ../sass/_overrides.scss */ +.dropdown.show .dropdown-menu .dropdown-item { + padding: 0.75rem 1.5rem; + color: #718093; +} +/* line 182, ../sass/_overrides.scss */ +.dropdown.show .dropdown-menu .dropdown-item:hover, .dropdown.show .dropdown-menu .dropdown-item:active { + background-color: #837eee; + color: #fff; +} + +/* line 192, ../sass/_overrides.scss */ +.bootstrap-select.btn-group .dropdown-menu.inner { + display: block; +} + +/* line 198, ../sass/_overrides.scss */ +.dropdown-toggle { + cursor: pointer; + color: #b8c0dc; +} +/* line 201, ../sass/_overrides.scss */ +.dropdown-toggle svg { + stroke: #b8c0dc; +} +/* line 204, ../sass/_overrides.scss */ +.dropdown-toggle::after { + display: none; +} + +/* line 210, ../sass/_overrides.scss */ +.select-options { + width: 100% !important; +} +/* line 213, ../sass/_overrides.scss */ +.select-options .dropdown-toggle { + border-radius: 0; + border-bottom: solid 1px #e1e1e1; + text-align: left; + padding-left: 0; + padding-top: 7px; + padding-bottom: 8px; + cursor: pointer; + color: #b8c0dc; +} +/* line 222, ../sass/_overrides.scss */ +.select-options .dropdown-toggle svg { + stroke: #b8c0dc; +} +/* line 225, ../sass/_overrides.scss */ +.select-options .dropdown-toggle::after { + display: inline-block; +} +/* line 228, ../sass/_overrides.scss */ +.select-options .dropdown-toggle .filter-option { + color: #222222; +} +/* line 232, ../sass/_overrides.scss */ +.select-options .dropdown-toggle:not([disabled]):not([disabled]) { + outline: none !important; +} +/* line 234, ../sass/_overrides.scss */ +.select-options .dropdown-toggle:not([disabled]):not([disabled]):focus, .select-options .dropdown-toggle:not([disabled]):not([disabled]):active { + outline: none !important; +} +/* line 237, ../sass/_overrides.scss */ +.select-options .dropdown-toggle:not([disabled]):not([disabled]):focus:focus, .select-options .dropdown-toggle:not([disabled]):not([disabled]):active:focus { + outline: none !important; + -webkit-box-shadow: 0px 0px 0 0; + -moz-box-shadow: 0px 0px 0 0; + box-shadow: 0px 0px 0 0; +} +/* line 245, ../sass/_overrides.scss */ +.select-options .dropdown-toggle.bs-placeholder .filter-option { + color: #b8c0dc; +} +/* line 250, ../sass/_overrides.scss */ +.select-options .dropdown-menu { + -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.06); + -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.06); + box-shadow: 0 0 10px rgba(0, 0, 0, 0.06); + border: solid 1px #eef1f5; + min-width: 200px; + margin-top: 2rem; + border-radius: 10px; + border-top-right-radius: 0; +} +/* line 258, ../sass/_overrides.scss */ +.select-options .dropdown-menu li { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + width: 100%; +} +/* line 263, ../sass/_overrides.scss */ +.select-options .dropdown-menu li a { + padding: 0.75rem 1.5rem; + width: 100%; + color: #718093; +} +/* line 267, ../sass/_overrides.scss */ +.select-options .dropdown-menu li a:hover, .select-options .dropdown-menu li a:active { + background-color: #837eee; + color: #fff; +} +/* line 272, ../sass/_overrides.scss */ +.select-options .dropdown-menu li a:focus { + outline: none; +} +/* line 276, ../sass/_overrides.scss */ +.select-options .dropdown-menu li a span:focus { + outline: none; +} +/* line 283, ../sass/_overrides.scss */ +.select-options .dropdown-menu li.selected .glyphicon-ok, .select-options .dropdown-menu li.active .glyphicon-ok { + position: absolute; + display: inline-block !important; + right: 15px; + margin-top: 5px; +} +/* line 288, ../sass/_overrides.scss */ +.select-options .dropdown-menu li.selected .glyphicon-ok:before, .select-options .dropdown-menu li.active .glyphicon-ok:before { + content: url(../node_modules/dripicons/SVG/checkmark-sm.svg); +} + +/* line 299, ../sass/_overrides.scss */ +.datepicker { + padding: 0px 0px 12px; +} + +/* line 304, ../sass/_overrides.scss */ +.gj-datepicker .input-group-append { + border: none; +} +/* line 306, ../sass/_overrides.scss */ +.gj-datepicker .input-group-append .input-group-text { + padding: 10px 30px 12px; + background-color: transparent; + border: none; +} +/* line 310, ../sass/_overrides.scss */ +.gj-datepicker .input-group-append .input-group-text .gj-icon { + color: rgba(113, 128, 147, 0.8); +} + +/* line 318, ../sass/_overrides.scss */ +h2 { + font-size: 2.57rem; +} + +/* line 322, ../sass/_overrides.scss */ +h3 { + font-size: 1.75rem; +} + +/* line 326, ../sass/_overrides.scss */ +h4 { + font-size: 1.14rem; +} + +/* line 330, ../sass/_overrides.scss */ +a { + color: #5d58de; + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; +} +/* line 333, ../sass/_overrides.scss */ +a:hover { + text-decoration: none; + color: #1e1a83; + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; +} + +/* line 340, ../sass/_overrides.scss */ +.strong { + font-family: "Roboto-Medium"; +} + +/* line 345, ../sass/_overrides.scss */ +.feather { + width: 1.1rem; +} + +/* line 351, ../sass/_overrides.scss */ +.form-control { + border: none; + border-bottom: solid 1px #e1e1e1; + border-radius: 0; + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; +} +/* line 356, ../sass/_overrides.scss */ +.form-control:focus { + -webkit-box-shadow: 0 0 0 0; + -moz-box-shadow: 0 0 0 0; + box-shadow: 0 0 0 0; + border-color: #5d58de; + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; +} +/* line 22, ../sass/_mixins.scss */ +.form-control::-webkit-input-placeholder { + /* Chrome/Opera/Safari */ + color: #b8c0dc; +} +/* line 26, ../sass/_mixins.scss */ +.form-control::-moz-placeholder { + /* Firefox 19+ */ + color: #b8c0dc; +} +/* line 30, ../sass/_mixins.scss */ +.form-control:-ms-input-placeholder { + /* IE 10+ */ + color: #b8c0dc; +} +/* line 34, ../sass/_mixins.scss */ +.form-control:-moz-placeholder { + /* Firefox 18- */ + color: #b8c0dc; +} + +/* line 366, ../sass/_overrides.scss */ +label { + color: #b8c0dc; +} + +/* line 371, ../sass/_overrides.scss */ +.input-group .no-bg { + background-color: transparent; + border: none; +} + +/* line 379, ../sass/_overrides.scss */ +.input-group.icon-absolute .input-group-append { + background: none; + border: none; + position: absolute; + right: 0; +} +/* line 384, ../sass/_overrides.scss */ +.input-group.icon-absolute .input-group-append .input-group-text { + background: none; + border: none; +} + +/* line 393, ../sass/_overrides.scss */ +.circle { + border-radius: 50%; +} + +/* line 399, ../sass/_overrides.scss */ +.v-divider { + border-left: solid 1px #eaeef7; + min-height: 8px; + margin-left: 1rem; + margin-right: 1rem; +} + +/* line 1, ../sass/_base.scss */ +.main-nav { + height: 5.71rem; + border-bottom: solid 1px #f3f3f3; + background: #fff; +} +/* line 6, ../sass/_base.scss */ +.main-nav .nav-item.active { + background-color: rgba(201, 201, 201, 0.15); +} +/* line 8, ../sass/_base.scss */ +.main-nav .nav-item.active a { + font-family: "Roboto-Regular"; + color: #5d58de; +} +/* line 13, ../sass/_base.scss */ +.main-nav .nav-item .nav-link { + font-family: "Roboto-Regular"; + color: #7f8fa6; + padding-top: 2.05rem; + padding-bottom: 2.05rem; + padding-left: 1.5rem; + padding-right: 1.5rem; +} +/* line 22, ../sass/_base.scss */ +.main-nav .nav-serach { + margin-left: 3rem; +} +/* line 24, ../sass/_base.scss */ +.main-nav .nav-serach .input-group-text { + background-color: transparent; + border: none; +} +/* line 26, ../sass/_base.scss */ +.main-nav .nav-serach .input-group-text svg { + stroke: #5d58de; +} +/* line 31, ../sass/_base.scss */ +.main-nav .nav-serach input { + border: none; + width: 17.86rem; +} +/* line 22, ../sass/_mixins.scss */ +.main-nav .nav-serach input::-webkit-input-placeholder { + /* Chrome/Opera/Safari */ + color: #b8c0dc; +} +/* line 26, ../sass/_mixins.scss */ +.main-nav .nav-serach input::-moz-placeholder { + /* Firefox 19+ */ + color: #b8c0dc; +} +/* line 30, ../sass/_mixins.scss */ +.main-nav .nav-serach input:-ms-input-placeholder { + /* IE 10+ */ + color: #b8c0dc; +} +/* line 34, ../sass/_mixins.scss */ +.main-nav .nav-serach input:-moz-placeholder { + /* Firefox 18- */ + color: #b8c0dc; +} +/* line 39, ../sass/_base.scss */ +.main-nav .create-invoice { + margin-right: 3.28rem; +} +/* line 43, ../sass/_base.scss */ +.main-nav .nav-account p { + margin-right: 1.66rem; + color: #7f8fa6; +} +/* line 49, ../sass/_base.scss */ +.main-nav .dropdown-toggle .avatar-md { + margin-right: 0.5rem; +} + +/* line 56, ../sass/_base.scss */ +.avatar, .avatar-sm, .avatar-md, .avatar-lg { + background-position: center center; + background-size: cover; + border-radius: 50%; +} +/* line 62, ../sass/_base.scss */ +.avatar-sm { + width: 30px; + height: 30px; +} +/* line 67, ../sass/_base.scss */ +.avatar-md { + width: 35px; + height: 35px; +} +/* line 72, ../sass/_base.scss */ +.avatar-lg { + width: 70px; + height: 70px; +} + +/* line 80, ../sass/_base.scss */ +.main-content { + background: #F9F9F9; +} +/* line 82, ../sass/_base.scss */ +.main-content .main-content-header { + margin-top: 2rem; + margin-bottom: 2rem; +} + +/* line 91, ../sass/_base.scss */ +.side-bar { + width: 450px; + background: #fff; + -webkit-box-shadow: 3px 3px 20px rgba(0, 0, 0, 0.06); + -moz-box-shadow: 3px 3px 20px rgba(0, 0, 0, 0.06); + box-shadow: 3px 3px 20px rgba(0, 0, 0, 0.06); + padding: 3.6rem 3.2rem; +} +/* line 96, ../sass/_base.scss */ +.side-bar .side-bar-toggle { + position: absolute; + right: 3rem; + top: 3rem; +} +/* line 101, ../sass/_base.scss */ +.side-bar .side-bar-toggle img { + width: 1.75rem; +} +/* line 105, ../sass/_base.scss */ +.side-bar .header-info { + margin-bottom: 2.5rem; +} +/* line 108, ../sass/_base.scss */ +.side-bar .side-bar-subtitle { + color: #b8c0dc; + font-size: 12px; + line-height: 1.33; + letter-spacing: 2px; +} +/* line 115, ../sass/_base.scss */ +.side-bar form .form-group { + margin-bottom: 2rem; +} + +/* line 121, ../sass/_base.scss */ +.fixed-index, .fixed-index-right { + position: fixed; + height: 100%; + top: 0; + bottom: 0; + z-index: 100; +} +/* line 127, ../sass/_base.scss */ +.fixed-index-right { + right: 0; +} + +/* line 133, ../sass/_base.scss */ +#profile-side-bar { + display: none; + width: 350px; +} +/* line 136, ../sass/_base.scss */ +#profile-side-bar .profile-info { + margin: 4.14rem 0; +} +/* line 139, ../sass/_base.scss */ +#profile-side-bar .profile-info .avatar, #profile-side-bar .profile-info .avatar-sm, #profile-side-bar .profile-info .avatar-md, #profile-side-bar .profile-info .avatar-lg { + margin-bottom: 2.14rem; +} +/* line 142, ../sass/_base.scss */ +#profile-side-bar .profile-info .text-dark { + color: #222222; +} +/* line 145, ../sass/_base.scss */ +#profile-side-bar .profile-info .designation { + color: #5d58de; + font-weight: 600; +} +/* line 150, ../sass/_base.scss */ +#profile-side-bar label { + font-size: 12px; + color: #b8c0dc; +} + +/* line 156, ../sass/_base.scss */ +#filter-side-bar { + padding: 3.6rem 5rem; +} + +/* line 163, ../sass/_base.scss */ +.panel-container { + height: 100vh; + padding-top: 10vh; +} +/* line 166, ../sass/_base.scss */ +.panel-container .panel-body { + width: 500px; + border-radius: 4px; + background-color: #fff; + padding: 2.8rem 6rem; + margin-bottom: 3.5rem; + -webkit-box-shadow: 0 2px 6px rgba(153, 170, 190, 0.16); + -moz-box-shadow: 0 2px 6px rgba(153, 170, 190, 0.16); + box-shadow: 0 2px 6px rgba(153, 170, 190, 0.16); +} +/* line 173, ../sass/_base.scss */ +.panel-container .panel-body .panel-title { + letter-spacing: 0.03rem; + color: #5d58de; + font-family: 'Roboto-Medium'; + margin-bottom: 1.5rem; +} + +/* line 184, ../sass/_base.scss */ +.modal .modal-dialog .modal-content { + border: none; + border-radius: 6px; +} +/* line 188, ../sass/_base.scss */ +.modal .modal-dialog .modal-content .modal-header { + border-bottom: none; +} +/* line 191, ../sass/_base.scss */ +.modal .modal-dialog .modal-content .modal-body { + padding: 2rem 3rem; + min-height: 200px; +} +/* line 193, ../sass/_base.scss */ +.modal .modal-dialog .modal-content .modal-body h3 { + font-family: 'Roboto-Medium', sans-serif; + color: #221d76; + margin-bottom: 3rem; +} +/* line 200, ../sass/_base.scss */ +.modal .modal-dialog .modal-content .modal-footer { + border-top: none; + padding-bottom: 4rem; +} + +/* line 2, ../sass/_pages.scss */ +.main-dashboard { + max-width: 1200px; + margin: 0 auto; +} + +/* line 7, ../sass/_pages.scss */ +.table-filters { + background: #fff; + -webkit-box-shadow: 0 2px 6px rgba(153, 170, 190, 0.06); + -moz-box-shadow: 0 2px 6px rgba(153, 170, 190, 0.06); + box-shadow: 0 2px 6px rgba(153, 170, 190, 0.06); + padding: 1.3rem 0rem 1rem; +} +/* line 11, ../sass/_pages.scss */ +.table-filters .filter-tag { + background: #f5f6f8; + border-radius: 20px; + padding: 0.5rem 0.75rem; + font-size: 12px; + margin-right: 0.5rem; + margin-bottom: 0.3rem; +} +/* line 18, ../sass/_pages.scss */ +.table-filters .filter-tag span { + letter-spacing: 0px; +} +/* line 21, ../sass/_pages.scss */ +.table-filters .filter-tag:hover { + background: #eff1f4; + -moz-transition: background, 0.3s, ease-out; + -o-transition: background, 0.3s, ease-out; + -webkit-transition: background, 0.3s, ease-out; + transition: background, 0.3s, ease-out; +} +/* line 25, ../sass/_pages.scss */ +.table-filters .filter-tag a { + background: #fff; + border-radius: 50%; + width: 17px; + height: 17px; + margin-left: 1rem; +} +/* line 31, ../sass/_pages.scss */ +.table-filters .filter-tag a svg { + width: 0.8rem; + height: 0.8rem; + stroke: #5d58de; + stroke-width: 3px; +} +/* line 39, ../sass/_pages.scss */ +.table-filters .clear-filter { + min-width: 80px; +} + +/* line 48, ../sass/_pages.scss */ +.list-invoice-client table thead tr th { + border-top: none; + padding: 0.75rem 2rem; +} +/* line 51, ../sass/_pages.scss */ +.list-invoice-client table thead tr th a { + font-size: 0.9rem; + color: #718093; + font-family: "Roboto-Regular"; +} +/* line 60, ../sass/_pages.scss */ +.list-invoice-client table tbody tr { + border-top: solid 2px #f9f9f9; + background: #fff; + cursor: pointer; +} +/* line 64, ../sass/_pages.scss */ +.list-invoice-client table tbody tr:hover { + background-image: linear-gradient(to left, #a9a6f5, #726de6); + color: #fff; +} +/* line 68, ../sass/_pages.scss */ +.list-invoice-client table tbody tr:hover td span { + color: #fff; +} +/* line 71, ../sass/_pages.scss */ +.list-invoice-client table tbody tr:hover td .due { + color: #ffbfbf; +} +/* line 73, ../sass/_pages.scss */ +.list-invoice-client table tbody tr:hover td .due span { + border: solid 1px #ffbfbf; + border-radius: 2px; + padding: 3px 6px; + font-size: 10px; + color: #ffbfbf; +} +/* line 81, ../sass/_pages.scss */ +.list-invoice-client table tbody tr:hover td .draft { + color: #fcce8e; +} +/* line 83, ../sass/_pages.scss */ +.list-invoice-client table tbody tr:hover td .draft span { + color: #fcce8e; +} +/* line 89, ../sass/_pages.scss */ +.list-invoice-client table tbody tr td { + border: none; + vertical-align: middle; + padding: 1rem 2rem; +} +/* line 93, ../sass/_pages.scss */ +.list-invoice-client table tbody tr td span { + color: #718093; +} +/* line 96, ../sass/_pages.scss */ +.list-invoice-client table tbody tr td .avatar, .list-invoice-client table tbody tr td .avatar-sm, .list-invoice-client table tbody tr td .avatar-md, .list-invoice-client table tbody tr td .avatar-lg { + margin-right: 3rem; +} +/* line 99, ../sass/_pages.scss */ +.list-invoice-client table tbody tr td .draft { + color: #fcce8e; +} +/* line 101, ../sass/_pages.scss */ +.list-invoice-client table tbody tr td .draft span { + color: #fcce8e; +} +/* line 105, ../sass/_pages.scss */ +.list-invoice-client table tbody tr td .due { + color: #FC4467; +} +/* line 107, ../sass/_pages.scss */ +.list-invoice-client table tbody tr td .due span { + border: solid 1px #FC4467; + border-radius: 2px; + padding: 3px 6px; + font-size: 10px; + color: #FC4467; +} + +/* line 121, ../sass/_pages.scss */ +.list-invoice-bar { + margin-top: 3rem; + height: 4rem; + border-bottom: solid 1px #eaeef7; +} +/* line 126, ../sass/_pages.scss */ +.list-invoice-bar .btn-icon span, .list-invoice-bar .btn-icon-left span { + color: #718093; +} +/* line 129, ../sass/_pages.scss */ +.list-invoice-bar .btn-icon .dripicons-scale, .list-invoice-bar .btn-icon-left .dripicons-scale { + font-size: 20px; + margin-right: 1rem; + height: 24px; +} + +/* line 139, ../sass/_pages.scss */ +.invoice-page .invoice-wrapper { + height: 100%; +} +/* line 141, ../sass/_pages.scss */ +.invoice-page .invoice-wrapper .invoice-side-bar { + background: #fcfcfc; + -webkit-box-shadow: 0px 2px 2px rgba(149, 175, 197, 0.5); + -moz-box-shadow: 0px 2px 2px rgba(149, 175, 197, 0.5); + box-shadow: 0px 2px 2px rgba(149, 175, 197, 0.5); + height: calc(100vh - 80px); + overflow-y: auto; + z-index: 50; +} +/* line 147, ../sass/_pages.scss */ +.invoice-page .invoice-wrapper .invoice-side-bar::-webkit-scrollbar { + opacity: 0; + width: 0; +} +/* line 152, ../sass/_pages.scss */ +.invoice-page .invoice-wrapper .invoice-side-bar .invoice-list li { + border-bottom: solid 0.5px #f4f7ff; +} +/* line 154, ../sass/_pages.scss */ +.invoice-page .invoice-wrapper .invoice-side-bar .invoice-list li .invoice-item { + cursor: pointer; + position: relative; + padding: 1.5rem 2.5rem; + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; +} +/* line 159, ../sass/_pages.scss */ +.invoice-page .invoice-wrapper .invoice-side-bar .invoice-list li .invoice-item:hover { + background: #f8f8ff; + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; +} +/* line 162, ../sass/_pages.scss */ +.invoice-page .invoice-wrapper .invoice-side-bar .invoice-list li .invoice-item:hover .delete-item { + opacity: 1; + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; +} +/* line 167, ../sass/_pages.scss */ +.invoice-page .invoice-wrapper .invoice-side-bar .invoice-list li .invoice-item .delete-item { + position: absolute; + top: 10px; + right: 20px; + opacity: 0; + color: #b8c0dc; +} +/* line 175, ../sass/_pages.scss */ +.invoice-page .invoice-wrapper .invoice-side-bar .invoice-list li .invoice-item h4 { + margin-bottom: 5px; + font-size: 1rem; +} +/* line 179, ../sass/_pages.scss */ +.invoice-page .invoice-wrapper .invoice-side-bar .invoice-list li .invoice-item p { + margin-bottom: 0; + font-size: 0.9rem; + color: #b8c0dc; +} +/* line 184, ../sass/_pages.scss */ +.invoice-page .invoice-wrapper .invoice-side-bar .invoice-list li .invoice-item.seleted { + background-image: linear-gradient(to left, #817cef, #8783eb); + color: #fff; +} +/* line 192, ../sass/_pages.scss */ +.invoice-page .invoice-wrapper .invoice-page-details-wrapper { + height: calc(100vh - 80px); + overflow-y: auto; + background: #fff; +} +/* line 196, ../sass/_pages.scss */ +.invoice-page .invoice-wrapper .invoice-page-details-wrapper .invoice-page-details { + height: 100%; + max-width: 860px; +} +/* line 200, ../sass/_pages.scss */ +.invoice-page .invoice-wrapper .invoice-page-details-wrapper .invoice-page-details .invoice-actions .btn { + margin-right: 1rem; +} + +/* line 210, ../sass/_pages.scss */ +.invoice-container { + margin-top: 3rem; + width: 100%; + min-height: 56.25rem; + -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.06); + -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.06); + box-shadow: 0 0 10px rgba(0, 0, 0, 0.06); + background: #fff; + border: solid 1px #eaeef7; + border-radius: 6px; + padding: 4rem 5.7rem; +} +/* line 219, ../sass/_pages.scss */ +.invoice-container .invoice-header { + margin-bottom: 3rem; +} +/* line 222, ../sass/_pages.scss */ +.invoice-container .invoice-summary { + margin: 4rem 0; +} +/* line 225, ../sass/_pages.scss */ +.invoice-container .invoice-footer { + padding-top: 3rem; +} +/* line 227, ../sass/_pages.scss */ +.invoice-container .invoice-footer .footnote { + margin-top: 7rem; +} + +/* line 236, ../sass/_pages.scss */ +.invoice-view-details h3 { + font-family: 'Roboto-Light'; + color: #222222; +} +/* line 240, ../sass/_pages.scss */ +.invoice-view-details h4 { + color: #718093; + font-size: 14px; +} +/* line 245, ../sass/_pages.scss */ +.invoice-view-details .order-summary { + margin-bottom: 5rem; +} +/* line 248, ../sass/_pages.scss */ +.invoice-view-details .order-summary thead tr { + border-bottom: solid 1px #222222; +} +/* line 250, ../sass/_pages.scss */ +.invoice-view-details .order-summary thead tr th { + border: none; + padding: 1.5rem .75rem; +} +/* line 259, ../sass/_pages.scss */ +.invoice-view-details .order-summary tbody tr td { + border: none; + vertical-align: middle; + padding: 2rem .75rem .5rem; +} +/* line 264, ../sass/_pages.scss */ +.invoice-view-details .order-summary tbody tr td.svc-description h4 { + line-height: 1.4; + max-width: 320px; +} + +/* line 277, ../sass/_pages.scss */ +.summary-table tr td { + border: none; +} + +/* line 288, ../sass/_pages.scss */ +.bottom-pagination ul li a { + border: none; + background-color: transparent; +} +/* line 295, ../sass/_pages.scss */ +.bottom-pagination ul li:first-child a, .bottom-pagination ul li:last-child a { + background: #fff; +} + +/* line 304, ../sass/_pages.scss */ +.authenticate-form { + background: #fff; +} +/* line 306, ../sass/_pages.scss */ +.authenticate-form form { + width: 300px; + margin: 0 auto 4rem; +} +/* line 309, ../sass/_pages.scss */ +.authenticate-form form .form-group { + margin-bottom: 3rem; +} +/* line 311, ../sass/_pages.scss */ +.authenticate-form form .form-group label { + margin-bottom: 0; +} + +/* line 318, ../sass/_pages.scss */ +.img-bg-full { + width: 100%; + height: 100vh; + padding: 8rem; + background-image: linear-gradient(to top, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3)), url("../images/img1.jpg"); + background-size: cover; + background-position: center; +} +/* line 327, ../sass/_pages.scss */ +.img-bg-full h2 { + color: #fff; + font-size: 3.5rem; + font-family: "Roboto-Bold"; +} diff --git a/assets/images/avatar.jpg b/assets/images/avatar.jpg new file mode 100644 index 0000000..f545492 Binary files /dev/null and b/assets/images/avatar.jpg differ diff --git a/assets/images/img1.jpg b/assets/images/img1.jpg new file mode 100644 index 0000000..bb2e9d3 Binary files /dev/null and b/assets/images/img1.jpg differ diff --git a/assets/images/svg/arrow-right.svg b/assets/images/svg/arrow-right.svg new file mode 100644 index 0000000..a8cb94e --- /dev/null +++ b/assets/images/svg/arrow-right.svg @@ -0,0 +1,10 @@ + diff --git a/assets/images/svg/boxbg.svg b/assets/images/svg/boxbg.svg new file mode 100644 index 0000000..c1290bf --- /dev/null +++ b/assets/images/svg/boxbg.svg @@ -0,0 +1,19 @@ + \ No newline at end of file diff --git a/assets/images/svg/checkbox.svg b/assets/images/svg/checkbox.svg new file mode 100644 index 0000000..16f2d38 --- /dev/null +++ b/assets/images/svg/checkbox.svg @@ -0,0 +1,40 @@ + diff --git a/assets/images/svg/indeterminate.xml b/assets/images/svg/indeterminate.xml new file mode 100644 index 0000000..b597b94 --- /dev/null +++ b/assets/images/svg/indeterminate.xml @@ -0,0 +1,26 @@ + \ No newline at end of file diff --git a/assets/images/svg/selected.svg b/assets/images/svg/selected.svg new file mode 100644 index 0000000..33aa0c8 --- /dev/null +++ b/assets/images/svg/selected.svg @@ -0,0 +1,47 @@ + diff --git a/assets/img/avatar.jpg b/assets/img/avatar.jpg new file mode 100644 index 0000000..f545492 Binary files /dev/null and b/assets/img/avatar.jpg differ diff --git a/assets/img/img1.jpg b/assets/img/img1.jpg new file mode 100644 index 0000000..bb2e9d3 Binary files /dev/null and b/assets/img/img1.jpg differ diff --git a/assets/img/svg/arrow-right.svg b/assets/img/svg/arrow-right.svg new file mode 100644 index 0000000..a8cb94e --- /dev/null +++ b/assets/img/svg/arrow-right.svg @@ -0,0 +1,10 @@ + diff --git a/assets/img/svg/boxbg.svg b/assets/img/svg/boxbg.svg new file mode 100644 index 0000000..c1290bf --- /dev/null +++ b/assets/img/svg/boxbg.svg @@ -0,0 +1,19 @@ + \ No newline at end of file diff --git a/assets/img/svg/checkbox.svg b/assets/img/svg/checkbox.svg new file mode 100644 index 0000000..16f2d38 --- /dev/null +++ b/assets/img/svg/checkbox.svg @@ -0,0 +1,40 @@ + diff --git a/assets/img/svg/indeterminate.xml b/assets/img/svg/indeterminate.xml new file mode 100644 index 0000000..b597b94 --- /dev/null +++ b/assets/img/svg/indeterminate.xml @@ -0,0 +1,26 @@ + \ No newline at end of file diff --git a/assets/img/svg/selected.svg b/assets/img/svg/selected.svg new file mode 100644 index 0000000..33aa0c8 --- /dev/null +++ b/assets/img/svg/selected.svg @@ -0,0 +1,47 @@ + diff --git a/assets/js/main.js b/assets/js/main.js new file mode 100644 index 0000000..d92a5e9 --- /dev/null +++ b/assets/js/main.js @@ -0,0 +1,18 @@ +$(document).ready(function () { + $('.selectpicker').selectpicker({ + liveSearchPlaceholder: 'Search Clients' + }); + + $('.datepicker').datepicker({ + uiLibrary: 'bootstrap4' + }); + + $('.invoice_date_datepicker').datepicker({ + uiLibrary: 'bootstrap4' + }); + + $('.due_date_datepicker').datepicker({ + uiLibrary: 'bootstrap4' + }); + +}); \ No newline at end of file diff --git a/assets/package-lock.json b/assets/package-lock.json new file mode 100644 index 0000000..3809f72 --- /dev/null +++ b/assets/package-lock.json @@ -0,0 +1,55 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "bootstrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.0.0.tgz", + "integrity": "sha512-gulJE5dGFo6Q61V/whS6VM4WIyrlydXfCgkE+Gxe5hjrJ8rXLLZlALq7zq2RPhOc45PSwQpJkrTnc2KgD6cvmA==" + }, + "bootstrap-select": { + "version": "1.12.4", + "resolved": "https://registry.npmjs.org/bootstrap-select/-/bootstrap-select-1.12.4.tgz", + "integrity": "sha1-fxXTwM6XiGjZwJxw+WYk9V+gLuE=", + "requires": { + "jquery": "3.3.1" + } + }, + "classnames": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz", + "integrity": "sha1-+zgB1FNGdknvNgPH1hoCvRKb3m0=" + }, + "datepicker-bootstrap": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/datepicker-bootstrap/-/datepicker-bootstrap-1.8.0.tgz", + "integrity": "sha512-tUxCqFdaOceQb9o9Hgd8w34cKA6vIp+qrD6hpmpVpjyqwSPs8UJb/4VACkZmMsMH0aYSIHnjkW3FqgywWWYTQQ==", + "requires": { + "jquery": "3.3.1" + } + }, + "dripicons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dripicons/-/dripicons-2.0.0.tgz", + "integrity": "sha512-Z/tQo4X47FqWuxmFWmfVYqXUwhZl5BOGnNTLSGMeJ8qYfNUwuDd+m2XDD6UYHUpa90nM7NMLqEalGShlE2xb4Q==" + }, + "feather-icons": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/feather-icons/-/feather-icons-4.5.0.tgz", + "integrity": "sha512-0DmqGqjp0uANer1UDN+o51Uj8NwLUWyjXe65xqYusuthdHFXLN78v+b5YitEDDtiSwyy+weki4RC1793CkhdpQ==", + "requires": { + "classnames": "2.2.5" + } + }, + "jquery": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", + "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==" + }, + "roboto-fontface-woff": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/roboto-fontface-woff/-/roboto-fontface-woff-0.8.0.tgz", + "integrity": "sha512-Bx9ABEL6FHGNSYpcq0z5tztCDfBm2YYoM+3yc5xiZI4cYVH8jkHlAnQu4W4ahugr1Ewq4zE2X7N2plPOuIh1Nw==" + } + } +} diff --git a/assets/sass/_base.scss b/assets/sass/_base.scss new file mode 100644 index 0000000..0f4873e --- /dev/null +++ b/assets/sass/_base.scss @@ -0,0 +1,206 @@ +.main-nav { + height: 5.71rem; + border-bottom: solid 1px #f3f3f3; + background: $white; + .nav-item { + &.active { + background-color: rgba(201, 201, 201, 0.15); + a { + font-family: $Roboto-Regular; + color: $primary-blue; + } + } + .nav-link { + font-family: $Roboto-Regular; + color: $blue-grey; + padding-top: 2.05rem; + padding-bottom: 2.05rem; + padding-left: 1.5rem; + padding-right: 1.5rem; + } + } + .nav-serach { + margin-left: 3rem; + .input-group-text { + background-color: transparent; + svg { + stroke: $primary-blue; + } + border: none; + } + input { + border: none; + width: 17.86rem; + @include placeholder { + color: $pinkish-grey; + } + } + } + .create-invoice { + margin-right: 3.28rem; + } + .nav-account { + p { + margin-right: 1.66rem; + color: $blue-grey; + } + } + .dropdown-toggle { + .avatar-md { + margin-right: 0.5rem; + } + } +} + + +.avatar { + background: { + position: center center; + size: cover; + } + border-radius: 50%; + &-sm { + @extend .avatar; + width: 30px; + height: 30px + } + &-md { + @extend .avatar; + width: 35px; + height: 35px + } + &-lg { + @extend .avatar; + width: 70px; + height: 70px + } +} + + +.main-content { + background: #F9F9F9; + .main-content-header { + margin-top: 2rem; + margin-bottom: 2rem; + h2 {} + } +} + + +//side-bar styles +.side-bar { + width: 450px; + background: $white; + @include box-shadow(3px, 3px, 20px, rgba(0, 0, 0, 0.06)); + padding: 3.6rem 3.2rem; + .side-bar-toggle { + position: absolute; + right: 3rem; + top: 3rem; + + img { + width: 1.75rem; + } + } + .header-info { + margin-bottom: 2.5rem; + } + .side-bar-subtitle { + color: $pinkish-grey; + font-size: 12px; + line-height: 1.33; + letter-spacing: 2px; + } + form { + .form-group { + margin-bottom: 2rem; + } + } +} + +.fixed-index { + position: fixed; + height: 100%; + top: 0; + bottom: 0; + z-index: 100; + &-right { + @extend .fixed-index; + right: 0; + } +} + +#profile-side-bar { + display: none; + width: 350px; + .profile-info { + margin: 4.14rem 0; + + .avatar { + margin-bottom: 2.14rem; + } + .text-dark { + color: $dark-grey; + } + .designation { + color: $primary-blue; + font-weight: 600; + } + } + label { + font-size: 12px; + color: $pinkish-grey; + } +} + +#filter-side-bar { + padding: 3.6rem 5rem; +} + + + +//custom panels +.panel-container { + height: 100vh; + padding-top: 10vh; + .panel-body { + width: 500px; + border-radius: 4px; + background-color: $white; + padding: 2.8rem 6rem; + margin-bottom: 3.5rem; + @include box-shadow( 0, 2px, 6px, rgba(153, 170, 190, 0.16)); + .panel-title { + letter-spacing: 0.03rem; + color: $primary-blue; + font-family: 'Roboto-Medium'; + margin-bottom: 1.5rem; + } + } +} + +.modal{ + .modal-dialog{ + .modal-content{ + border:none; + border-radius: 6px; + + .modal-header{ + border-bottom:none; + } + .modal-body{ + padding: 2rem 3rem; + h3{ + font-family: 'Roboto-Medium', sans-serif; + color: $cobalt; + margin-bottom: 3rem; + } + min-height: 200px; + } + .modal-footer{ + border-top: none; + padding-bottom: 4rem; + } + } + } +} \ No newline at end of file diff --git a/assets/sass/_mixins.scss b/assets/sass/_mixins.scss new file mode 100644 index 0000000..8196584 --- /dev/null +++ b/assets/sass/_mixins.scss @@ -0,0 +1,38 @@ +@mixin box-shadow($top, $left, $blur, $color, $inset: false) { + @if $inset { + -webkit-box-shadow: inset $top $left $blur $color; + -moz-box-shadow: inset $top $left $blur $color; + box-shadow: inset $top $left $blur $color; + } + @else { + -webkit-box-shadow: $top $left $blur $color; + -moz-box-shadow: $top $left $blur $color; + box-shadow: $top $left $blur $color; + } +} + +@mixin transition($transition...) { + -moz-transition: $transition; + -o-transition: $transition; + -webkit-transition: $transition; + transition: $transition; +} + +@mixin placeholder { + &::-webkit-input-placeholder { + /* Chrome/Opera/Safari */ + @content; + } + &::-moz-placeholder { + /* Firefox 19+ */ + @content; + } + &:-ms-input-placeholder { + /* IE 10+ */ + @content; + } + &:-moz-placeholder { + /* Firefox 18- */ + @content; + } +} \ No newline at end of file diff --git a/assets/sass/_overrides.scss b/assets/sass/_overrides.scss new file mode 100644 index 0000000..e46cd2b --- /dev/null +++ b/assets/sass/_overrides.scss @@ -0,0 +1,404 @@ +//button styles +.btn { + border-radius: 50px; + padding: 13px 35px 12px; + line-height: 14px; + @include transition(all .3s ease-out); + &:hover { + @include transition(all .3s ease-out); + } + &:not([disabled]) { + &:not([disabled]) { + &:focus, + &:active { + @include transition(all .3s ease-out); + &:focus { + @include transition(all .3s ease-out); + } + } + } + } +} + +.btn-sm { + padding: 5px 35px 4px; + min-height: 40px; +} + +.btn-primary { + background-image: linear-gradient(to left, #5d58de, #4b45dd); + border: solid 2px transparent; + @include transition(all .3s ease-out); + &:hover { + background-image: linear-gradient(to left, #4944e0, #352fc1); + border: solid 2px transparent; + @include transition(all .3s ease-out); + } + &:active { + background-image: linear-gradient(to left, #5d58de, #4b45dd); + border: solid 2px transparent; + } + &:not([disabled]) { + &:not([disabled]) { + &:focus, + &:active { + @include transition(all .3s ease-out); + background-image: linear-gradient(to left, #3a36b7, #2b26a5); + border: solid 2px transparent; + &:focus { + @include transition(all .3s ease-out); + background-image: linear-gradient(to left, #3a36b7, #2b26a5); + border: solid 2px transparent; + @include box-shadow(0px, 0px, 1rem, rgba($primary-blue, .5)); + } + } + } + } +} + +.btn-danger { + background-image: linear-gradient(to left, $danger, darken($danger, 5%)); + border: solid 2px transparent; + @include transition(all .3s ease-out); + &:hover { + background-image: linear-gradient(to left, darken($danger, 5%), darken($danger, 10%)); + border: solid 2px transparent; + @include transition(all .3s ease-out); + } + &:active { + background-image: linear-gradient(to left, darken($danger, 15%), darken($danger, 20%)); + border: solid 2px transparent; + } + &:not([disabled]) { + &:not([disabled]) { + &:focus, + &:active { + @include transition(all .3s ease-out); + background-image: linear-gradient(to left, darken($danger, 15%), darken($danger, 20%)); + border: solid 2px transparent; + &:focus { + @include transition(all .3s ease-out); + background-image: linear-gradient(to left, darken($danger, 15%), darken($danger, 20%)); + border: solid 2px transparent; + @include box-shadow(0px, 0px, 1rem, rgba($danger, .5)); + } + } + } + } +} + +.btn-success { + background-image: linear-gradient(to left, $success, darken($success, 5%)); + border: solid 2px transparent; + @include transition(all .3s ease-out); + &:hover { + background-image: linear-gradient(to left, darken($success, 5%), darken($success, 10%)); + border: solid 2px transparent; + @include transition(all .3s ease-out); + } + &:active { + background-image: linear-gradient(to left, darken($success, 15%), darken($success, 20%)); + border: solid 2px transparent; + } + &:not([disabled]) { + &:not([disabled]) { + &:focus, + &:active { + @include transition(all .3s ease-out); + background-image: linear-gradient(to left, darken($success, 15%), darken($success, 20%)); + border: solid 2px transparent; + &:focus { + @include transition(all .3s ease-out); + background-image: linear-gradient(to left, darken($success, 15%), darken($success, 20%)); + border: solid 2px transparent; + @include box-shadow(0px, 0px, 1rem, rgba($success, .5)); + } + } + } + } +} + +.btn-icon { + display: -webkit-box!important; + display: -ms-flexbox!important; + display: flex!important; + -webkit-box-align: center!important; + -ms-flex-align: center!important; + align-items: center!important; + &-left { + @extend .btn-icon; + .feather, + i[class*="dripicons-"] { + margin-right: 0.5rem; + } + } +} + + +.btn-link { + background-color: transparent; + border: none; + color: $pinkish-grey; + text-decoration: none; + padding: 0; + &:hover { + @extend .btn-link; + color: $blue-grey; + } + &:active { + @extend .btn-link; + color: $blue-grey; + } + &:not([disabled]) { + &:not([disabled]) { + &:focus, + &:active { + @extend .btn-link; + color: $blue-grey; + &:focus { + @extend .btn-link; + color: $blue-grey; + @include box-shadow(0px, 0px, 0, 0); + } + } + } + } +} + + +//default dropdown styling +.dropdown { + &.show { + .dropdown-menu { + @include box-shadow(0, 0, 10px, rgba(0, 0, 0, 0.06)); + border: solid 1px #eef1f5; + min-width: 200px; + margin-top: 2rem; + border-radius: 10px; + border-top-right-radius: 0; + .dropdown-item { + padding: 0.75rem 1.5rem; + color: $steel; + &:hover, + &:active { + background-color: $soft-blue; + color: $white; + } + } + } + } +} + +.bootstrap-select.btn-group .dropdown-menu.inner { + display: block; +} + + +//to hide default dropdown-toggle arrow +.dropdown-toggle { + cursor: pointer; + color: $pinkish-grey; + svg { + stroke: $pinkish-grey; + } + &::after { + display: none; + } +} + + +.select-options { + width: 100% !important; + + .dropdown-toggle { + border-radius: 0; + border-bottom: solid 1px #e1e1e1; + text-align: left; + padding-left: 0; + padding-top: 7px; + padding-bottom: 8px; + cursor: pointer; + color: $pinkish-grey; + svg { + stroke: $pinkish-grey; + } + &::after { + display: inline-block; + } + .filter-option { + color: $dark-grey; + } + &:not([disabled]) { + &:not([disabled]) { + outline: none !important; + &:focus, + &:active { + outline: none !important; + &:focus { + outline: none !important; + @include box-shadow(0px, 0px, 0, 0); + } + } + } + } + &.bs-placeholder { + .filter-option { + color: $pinkish-grey; + } + } + } + .dropdown-menu { + @include box-shadow(0, 0, 10px, rgba(0, 0, 0, 0.06)); + border: solid 1px #eef1f5; + min-width: 200px; + margin-top: 2rem; + border-radius: 10px; + border-top-right-radius: 0; + + li { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + width: 100%; + a { + padding: 0.75rem 1.5rem; + width: 100%; + color: $steel; + &:hover, + &:active { + background-color: $soft-blue; + color: $white; + } + &:focus { + outline: none; + } + span { + &:focus { + outline: none; + } + } + } + &.selected, + &.active { + .glyphicon-ok { + position: absolute; + display: inline-block !important; + right: 15px; + margin-top: 5px; + &:before { + content: url(../node_modules/dripicons/SVG/checkmark-sm.svg); + } + } + } + } + } +} + + +//datepicker +.datepicker { + padding: 0px 0px 12px; +} + +.gj-datepicker { + .input-group-append { + border: none; + .input-group-text { + padding: 10px 30px 12px; + background-color: transparent; + border: none; + .gj-icon { + color: rgba($steel, 0.8) + } + } + } +} + +//typography +h2 { + font-size: 2.57rem; +} + +h3 { + font-size: 1.75rem; +} + +h4 { + font-size: 1.14rem; +} + +a { + color: $primary-blue; + @include transition(all .3s ease-out); + &:hover { + text-decoration: none; + color: darken($primary-blue, 30%); + @include transition(all .3s ease-out); + } +} + +.strong { + font-family: $Roboto-Medium; +} + +//icons +.feather { + width: 1.1rem; +} + + +//input styles +.form-control { + border: none; + border-bottom: solid 1px #e1e1e1; + border-radius: 0; + @include transition(all .3s ease-out); + &:focus { + @include box-shadow(0, 0, 0, 0); + border-color: $primary-blue; + @include transition(all .3s ease-out); + } + @include placeholder { + color: #b8c0dc; + } +} + +label { + color: #b8c0dc; +} + +.input-group { + .no-bg { + background-color: transparent; + border: none; + } +} + +.input-group { + &.icon-absolute { + .input-group-append { + background: none; + border: none; + position: absolute; + right: 0; + .input-group-text { + background: none; + border: none; + } + } + } +} + +//shapes and radius +.circle { + border-radius: 50%; +} + + +//dividers +.v-divider { + border-left: solid 1px #eaeef7; + min-height: 8px; + margin-left: 1rem; + margin-right: 1rem; +} diff --git a/assets/sass/_pages.scss b/assets/sass/_pages.scss new file mode 100644 index 0000000..9fb8060 --- /dev/null +++ b/assets/sass/_pages.scss @@ -0,0 +1,332 @@ +//dashboard page +.main-dashboard { + max-width: 1200px; + margin: 0 auto; +} + +.table-filters { + background: $white; + @include box-shadow(0, 2px, 6px, rgba(153, 170, 190, 0.06)); + padding: 1.3rem 0rem 1rem; + .filter-tag { + background: #f5f6f8; + border-radius: 20px; + padding: 0.5rem 0.75rem; + font-size: 12px; + margin-right: 0.5rem; + margin-bottom: 0.3rem; + span { + letter-spacing: 0px; + } + &:hover { + background: darken(#f5f6f8, 2%); + @include transition(background, 0.3s, ease-out); + } + a { + background: #fff; + border-radius: 50%; + width: 17px; + height: 17px; + margin-left: 1rem; + svg { + width: 0.8rem; + height: 0.8rem; + stroke: $primary-blue; + stroke-width: 3px; + } + } + } + .clear-filter { + min-width: 80px; + } +} + +.list-invoice-client { + table { + thead { + tr { + th { + border-top: none; + padding: 0.75rem 2rem; + a { + font-size: 0.9rem; + color: $steel; + font-family: $Roboto-Regular; + } + } + } + } + tbody { + tr { + border-top: solid 2px #f9f9f9; + background: $white; + cursor: pointer; + &:hover { + background-image: linear-gradient(to left, #a9a6f5, #726de6); + color: $white; + td { + span { + color: $white; + } + .due { + color: #ffbfbf; + span { + border: solid 1px #ffbfbf; + border-radius: 2px; + padding: 3px 6px; + font-size: 10px; + color: #ffbfbf; + } + } + .draft { + color: $warning; + span { + color: $warning; + } + } + } + } + td { + border: none; + vertical-align: middle; + padding: 1rem 2rem; + span { + color: $steel; + } + .avatar { + margin-right: 3rem; + } + .draft { + color: $warning; + span { + color: $warning; + } + } + .due { + color: $danger; + span { + border: solid 1px $danger; + border-radius: 2px; + padding: 3px 6px; + font-size: 10px; + color: $danger; + } + } + } + } + } + } +} + +.list-invoice-bar { + margin-top: 3rem; + height: 4rem; + border-bottom: solid 1px #eaeef7; + .btn-icon { + span { + color: $steel; + } + .dripicons-scale { + font-size: 20px; + margin-right: 1rem; + height: 24px; + } + } +} + +//invoices page +.invoice-page { + .invoice-wrapper { + height: 100%; + .invoice-side-bar { + background: #fcfcfc; + @include box-shadow(0px, 2px, 2px, rgba(149, 175, 197, 0.5)); + height: calc(100vh - 80px); + overflow-y: auto; + z-index: 50; + &::-webkit-scrollbar { + opacity: 0; + width: 0; + } + .invoice-list { + li { + border-bottom: solid 0.5px #f4f7ff; + .invoice-item { + cursor: pointer; + position: relative; + padding: 1.5rem 2.5rem; + @include transition(all .3s ease-out); + &:hover { + background: #f8f8ff; + @include transition(all .3s ease-out); + .delete-item { + opacity: 1; + @include transition(all .3s ease-out); + } + } + .delete-item { + position: absolute; + top: 10px; + right: 20px; + opacity: 0; + color: $pinkish-grey; + } + + h4 { + margin-bottom: 5px; + font-size: 1rem; + } + p { + margin-bottom: 0; + font-size: 0.9rem; + color: $pinkish-grey; + } + &.seleted { + background-image: linear-gradient(to left, #817cef, #8783eb); + color: $white; + } + } + } + } + } + .invoice-page-details-wrapper { + height: calc(100vh - 80px); + overflow-y: auto; + background: $white; + .invoice-page-details { + height: 100%; + max-width: 860px; + .invoice-actions { + .btn { + margin-right: 1rem; + } + } + } + } + } +} + +//create invoice +.invoice-container { + margin-top: 3rem; + width: 100%; + min-height: 56.25rem; + @include box-shadow(0, 0, 10px, rgba(0, 0, 0, 0.06)); + background: $white; + border: solid 1px #eaeef7; + border-radius: 6px; + padding: 4rem 5.7rem; + .invoice-header { + margin-bottom: 3rem; + } + .invoice-summary { + margin: 4rem 0; + } + .invoice-footer { + padding-top: 3rem; + .footnote { + margin-top: 7rem; + } + } +} + + +//invoice viewer || pdf +.invoice-view-details { + h3 { + font-family: 'Roboto-Light'; + color: $dark-grey; + } + h4 { + + color: $steel; + font-size: 14px; + } + .order-summary { + margin-bottom: 5rem; + thead { + tr { + border-bottom: solid 1px $dark-grey; + th { + border: none; + padding: 1.5rem .75rem; + } + } + } + tbody { + tr { + + td { + border: none; + vertical-align: middle; + padding: 2rem .75rem .5rem; + &.svc-description{ + h4{ + line-height:1.4; + max-width: 320px; + } + } + } + } + + } + } +} +.summary-table{ + tr{ + td{ + border:none; + } + } +} + + +.bottom-pagination { + ul { + + li { + a { + border: none; + background-color: transparent; + } + &:first-child, + &:last-child { + + a { + background: $white; + } + } + } + } +} + +//images +.authenticate-form { + background: $white; + form { + width: 300px; + margin: 0 auto 4rem; + .form-group { + margin-bottom: 3rem; + label { + margin-bottom: 0; + } + } + } +} + +.img-bg-full { + width: 100%; + height: 100vh; + padding: 8rem; + background: { + image: linear-gradient(to top, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3)), url('../images/img1.jpg'); + size: cover; + position: center; + } + h2 { + color: $white; + font-size: 3.5rem; + font-family: "Roboto-Bold" + } +} \ No newline at end of file diff --git a/assets/sass/_responsive.scss b/assets/sass/_responsive.scss new file mode 100644 index 0000000..e69de29 diff --git a/assets/sass/_variables.scss b/assets/sass/_variables.scss new file mode 100644 index 0000000..3effb3e --- /dev/null +++ b/assets/sass/_variables.scss @@ -0,0 +1,139 @@ +//typography +@font-face{ + font-family: 'Roboto-Black'; + src: url(../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Black.woff) format("woff"), url(../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Black.woff2) format('woff2'); + font-weight: normal; + font-style:normal; +} +@font-face{ + font-family: 'Roboto-BlackItalic'; + src: url('../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-BlackItalic.woff') format("woff"), + url('../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-BlackItalic.woff2') format('woff2'); + font-weight: normal; + font-style:normal; +} +@font-face{ + font-family: 'Roboto-Bold'; + src: url('../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Bold.woff') format("woff"), + url('../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Bold.woff2') format('woff2'); + font-weight: normal; + font-style:normal; +} +@font-face{ + font-family: 'Roboto-BoldItalic'; + src: url('../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-BoldItalic.woff') format("woff"), + url('../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-BoldItalic.woff2') format('woff2'); + font-weight: normal; + font-style:normal; +} +@font-face{ + font-family: 'Roboto-Light'; + src: url('../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Light.woff') format("woff"), + url('../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Light.woff2') format('woff2'); + font-weight: normal; + font-style:normal; +} +@font-face{ + font-family: 'Roboto-LightItalic'; + src: url('../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-LightItalic.woff') format("woff"), + url('../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-LightItalic.woff2') format('woff2'); + font-weight: normal; + font-style:normal; +} +@font-face{ + font-family: 'Roboto-Medium'; + src: url('../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Medium.woff') format("woff"), + url('../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Medium.woff2') format('woff2'); + font-weight: normal; + font-style:normal; +} +@font-face{ + font-family: 'Roboto-MediumItalic'; + src: url('../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-MediumItalic.woff') format("woff"), + url('../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-MediumItalic.woff2') format('woff2'); + font-weight: normal; + font-style:normal; +} +@font-face{ + font-family: 'Roboto-Regular'; + src: url('../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Regular.woff') format("woff"), + url('../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Regular.woff2') format('woff2'); + font-weight: normal; + font-style:normal; +} +@font-face{ + font-family: 'Roboto-RegularItalic'; + src: url('../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-RegularItalic.woff') format("woff"), + url('../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-RegularItalic.woff2') format('woff2'); + font-weight: normal; + font-style:normal; +} +@font-face{ + font-family: 'Roboto-Thin'; + src: url('../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Thin.woff') format("woff"), + url('../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-Thin.woff2') format('woff2'); + font-weight: normal; + font-style:normal; +} +@font-face{ + font-family: 'Roboto-ThinItalic'; + src: url('../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-ThinItalic.woff') format("woff"), + url('../node_modules/roboto-fontface-woff/fonts/roboto/Roboto-ThinItalic.woff2') format('woff2'); + font-weight: normal; + font-style:normal; +} + + + +body{ + font-family:"Roboto-Regular"; + font-size: 14px; + letter-spacing: 0.003rem; + background:#F9F9F9; + color: #718093; + height:100%; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; +} +:root { +font-size: 14px; +} + + +//variables + +$Roboto-Black: 'Roboto-Black'; +$Roboto-BlackItalic: 'Roboto-BlackItalic'; +$Roboto-Bold: 'Roboto-Bold'; +$Roboto-BoldItalic: 'Roboto-BoldItalic'; +$Roboto-Light: 'Roboto-Light'; +$Roboto-LightItalic: 'Roboto-LightItalic'; +$Roboto-Medium: 'Roboto-Medium'; +$Roboto-MediumItalic: 'Roboto-MediumItalic'; +$Roboto-Regular: 'Roboto-Regular'; +$Roboto-RegularItalic: 'Roboto-RegularItalic'; +$Roboto-Thin: 'Roboto-Thin'; +$Roboto-ThinItalic: 'Roboto-ThinItalic'; + + + +//colors +$white: #fff; + +$primary-blue: #5d58de; +$perrywinkle: #9692eb; +$soft-blue: #837eee; + +//state colors +$success: #58deba; +$warning: #fcce8e; +$danger: #FC4467; + + +$steel: #718093; +$cobalt:#221d76; +$dark-grey: #222222; +$blue-grey:#7f8fa6; +$pinkish-grey: #b8c0dc; + + diff --git a/assets/sass/ie.scss b/assets/sass/ie.scss new file mode 100644 index 0000000..5cd5b6c --- /dev/null +++ b/assets/sass/ie.scss @@ -0,0 +1,5 @@ +/* Welcome to Compass. Use this file to write IE specific override styles. + * Import this file using the following HTML or equivalent: + * */ diff --git a/assets/sass/print.scss b/assets/sass/print.scss new file mode 100644 index 0000000..b0e9e45 --- /dev/null +++ b/assets/sass/print.scss @@ -0,0 +1,3 @@ +/* Welcome to Compass. Use this file to define print styles. + * Import this file using the following HTML or equivalent: + * */ diff --git a/assets/sass/screen.scss b/assets/sass/screen.scss new file mode 100644 index 0000000..81de847 --- /dev/null +++ b/assets/sass/screen.scss @@ -0,0 +1,6 @@ +/* Welcome to Compass. + * In this file you should write your main styles. (or centralize your imports) + * Import this file using the following HTML or equivalent: + * */ + +@import "compass/reset"; diff --git a/assets/sass/style.scss b/assets/sass/style.scss new file mode 100644 index 0000000..c8b4981 --- /dev/null +++ b/assets/sass/style.scss @@ -0,0 +1,6 @@ +@import 'variables'; +@import 'mixins'; +@import 'overrides'; +@import 'responsive'; +@import 'base'; +@import 'pages'; \ No newline at end of file diff --git a/invoices/forms.py b/invoices/forms.py index 1f7ee6d..96a2114 100644 --- a/invoices/forms.py +++ b/invoices/forms.py @@ -22,11 +22,9 @@ class Meta: 'due_date', 'invoice_number', 'invoice_date', - 'paid', 'remarks', 'description', 'payment_status', - 'item', ) def __init__(self,*args, **kwargs): diff --git a/invoices/migrations/0001_initial.py b/invoices/migrations/0001_initial.py index 6c6c75f..373f5fc 100644 --- a/invoices/migrations/0001_initial.py +++ b/invoices/migrations/0001_initial.py @@ -1,5 +1,6 @@ -# Generated by Django 2.0 on 2018-02-02 03:42 +# Generated by Django 2.0 on 2018-02-19 23:04 +from django.conf import settings from django.db import migrations, models import django.db.models.deletion import invoices.utils @@ -10,7 +11,9 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('clients', '0001_initial'), + ('clients', '0010_client_archive'), + ('users', '0005_remove_company_owner'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ @@ -22,14 +25,19 @@ class Migration(migrations.Migration): ('invoice_date', models.DateField()), ('due_date', models.DateField()), ('status', models.CharField(choices=[('draft', 'Draft'), ('sent', 'Sent')], default='draft', max_length=10)), - ('paid', models.BooleanField(default=False)), ('remarks', models.TextField(blank=True, max_length=255, null=True)), ('pdf', models.FileField(blank=True, null=True, upload_to=invoices.utils.get_invoice_directory)), ('description', models.CharField(blank=True, max_length=255, null=True)), ('payment_status', models.BooleanField(default=False)), ('date_created', models.DateTimeField(auto_now_add=True)), ('date_updated', models.DateTimeField(auto_now=True)), - ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='clients.Client')), + ('client', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='clients.Client')), + ('company', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='users.Company')), + ('owner', models.ForeignKey(default='', on_delete=django.db.models.deletion.CASCADE, related_name='invoice', to=settings.AUTH_USER_MODEL)), ], ), + migrations.AlterUniqueTogether( + name='invoice', + unique_together={('invoice_number', 'company')}, + ), ] diff --git a/invoices/migrations/0002_auto_20180202_0342.py b/invoices/migrations/0002_auto_20180202_0342.py deleted file mode 100644 index 590ba80..0000000 --- a/invoices/migrations/0002_auto_20180202_0342.py +++ /dev/null @@ -1,39 +0,0 @@ -# Generated by Django 2.0 on 2018-02-02 03:42 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ('users', '0001_initial'), - ('invoices', '0001_initial'), - ('items', '0001_initial'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.AddField( - model_name='invoice', - name='company', - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.Company'), - ), - migrations.AddField( - model_name='invoice', - name='item', - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='items.Item'), - ), - migrations.AddField( - model_name='invoice', - name='owner', - field=models.ForeignKey(default='', on_delete=django.db.models.deletion.CASCADE, related_name='invoice', to=settings.AUTH_USER_MODEL), - ), - migrations.AlterUniqueTogether( - name='invoice', - unique_together={('invoice_number', 'company')}, - ), - ] diff --git a/invoices/migrations/0003_auto_20180202_0454.py b/invoices/migrations/0003_auto_20180202_0454.py deleted file mode 100644 index 09f4702..0000000 --- a/invoices/migrations/0003_auto_20180202_0454.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 2.0 on 2018-02-02 04:54 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('invoices', '0002_auto_20180202_0342'), - ] - - operations = [ - migrations.AlterField( - model_name='invoice', - name='client', - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='clients.Client'), - ), - migrations.AlterField( - model_name='invoice', - name='company', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='users.Company'), - ), - ] diff --git a/invoices/migrations/0004_auto_20180205_0713.py b/invoices/migrations/0004_auto_20180205_0713.py deleted file mode 100644 index 7d9b448..0000000 --- a/invoices/migrations/0004_auto_20180205_0713.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 2.0 on 2018-02-05 07:13 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('invoices', '0003_auto_20180202_0454'), - ] - - operations = [ - migrations.AlterField( - model_name='invoice', - name='invoice_number', - field=models.PositiveIntegerField(blank=True, null=True), - ), - ] diff --git a/invoices/migrations/0005_auto_20180205_0742.py b/invoices/migrations/0005_auto_20180205_0742.py deleted file mode 100644 index 4a2654e..0000000 --- a/invoices/migrations/0005_auto_20180205_0742.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 2.0 on 2018-02-05 07:42 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('invoices', '0004_auto_20180205_0713'), - ] - - operations = [ - migrations.AlterField( - model_name='invoice', - name='invoice_number', - field=models.PositiveIntegerField(), - ), - ] diff --git a/invoices/models.py b/invoices/models.py index 499837d..6e4cfc8 100644 --- a/invoices/models.py +++ b/invoices/models.py @@ -25,10 +25,8 @@ class Invoice(models.Model): invoice_number = models.PositiveIntegerField() invoice_date = models.DateField() due_date = models.DateField() - item = models.ForeignKey(Item ,on_delete=models.SET_NULL, null=True) status = models.CharField(max_length=10, choices=STATUS, default='draft') - paid = models.BooleanField(default=False) remarks = models.TextField(max_length=255,null=True, blank=True) pdf = models.FileField(upload_to=get_invoice_directory,null=True, blank=True) diff --git a/templates/base.html b/templates/base.html index d85cace..d1a50eb 100644 --- a/templates/base.html +++ b/templates/base.html @@ -2,111 +2,154 @@
-