├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── ISSUE_TEMPLATE.md
├── License.pdf
├── README.md
├── Useful_Resources.pdf
├── buttons.html
├── css
├── addons
│ ├── datatables-select.css
│ ├── datatables-select.min.css
│ ├── datatables.css
│ ├── datatables.min.css
│ ├── directives.css
│ ├── directives.min.css
│ ├── flag.css
│ ├── flag.min.css
│ ├── rating.css
│ ├── rating.min.css
│ ├── zmd.hierarchical-display.css
│ └── zmd.hierarchical-display.min.css
├── bootstrap.css
├── bootstrap.min.css
├── mdb.css
├── mdb.lite.css
├── mdb.lite.min.css
├── mdb.min.css
├── modules
│ ├── animations-extended.css
│ └── animations-extended.min.css
├── style.css
└── style.min.css
├── font
└── roboto
│ ├── Roboto-Bold.eot
│ ├── Roboto-Bold.ttf
│ ├── Roboto-Bold.woff
│ ├── Roboto-Bold.woff2
│ ├── Roboto-Light.eot
│ ├── Roboto-Light.ttf
│ ├── Roboto-Light.woff
│ ├── Roboto-Light.woff2
│ ├── Roboto-Medium.eot
│ ├── Roboto-Medium.ttf
│ ├── Roboto-Medium.woff
│ ├── Roboto-Medium.woff2
│ ├── Roboto-Regular.eot
│ ├── Roboto-Regular.ttf
│ ├── Roboto-Regular.woff
│ ├── Roboto-Regular.woff2
│ ├── Roboto-Thin.eot
│ ├── Roboto-Thin.ttf
│ ├── Roboto-Thin.woff
│ └── Roboto-Thin.woff2
├── form.html
├── img
├── flags.png
├── lightbox
│ ├── default-skin.png
│ ├── default-skin.svg
│ └── preloader.gif
├── overlays
│ ├── 01.png
│ ├── 02.png
│ ├── 03.png
│ ├── 04.png
│ ├── 05.png
│ ├── 06.png
│ ├── 07.png
│ ├── 08.png
│ └── 09.png
├── sample.jpg
└── svg
│ ├── arrow_left.svg
│ ├── arrow_right.svg
│ └── flags.png
├── js
├── addons
│ ├── datatables-select.js
│ ├── datatables-select.min.js
│ ├── datatables.js
│ ├── datatables.min.js
│ ├── imagesloaded.pkgd.min.js
│ ├── jquery.zmd.hierarchical-display.js
│ ├── jquery.zmd.hierarchical-display.min.js
│ ├── masonry.pkgd.min.js
│ ├── progressBar.js
│ ├── progressBar.min.js
│ ├── rating.js
│ └── rating.min.js
├── bootstrap.js
├── bootstrap.min.js
├── jquery-3.4.1.min.js
├── mdb.js
├── mdb.min.js
├── modules
│ ├── bs-custom-file-input.js
│ ├── chart.js
│ ├── default-file-input.js
│ ├── enhanced-modals.js
│ ├── forms-free.js
│ ├── jquery.easing.js
│ ├── scrolling-navbar.js
│ ├── treeview.js
│ ├── velocity.js
│ ├── velocity.min.js
│ ├── waves.js
│ └── wow.js
└── popper.min.js
└── scss
├── _custom-skin.scss
├── _custom-styles.scss
├── _custom-variables.scss
├── addons
├── _datatables-select.scss
├── _datatables.scss
├── _directives.scss
├── _flags.scss
├── _hierarchical-display.scss
└── _rating.scss
├── core
├── _colors.scss
├── _global.scss
├── _helpers.scss
├── _masks.scss
├── _mixins.scss
├── _typography.scss
├── _variables.scss
├── _waves.scss
└── bootstrap
│ ├── _functions.scss
│ ├── _rfs.scss
│ └── _variables.scss
├── free
├── _animations-basic.scss
├── _badges.scss
├── _buttons.scss
├── _cards.scss
├── _carousels.scss
├── _depreciated.scss
├── _dropdowns.scss
├── _footers.scss
├── _forms.scss
├── _input-group.scss
├── _list-group.scss
├── _loader.scss
├── _modals.scss
├── _msc.scss
├── _navbars.scss
├── _pagination.scss
├── _steppers.scss
├── _switch.scss
├── _tables.scss
├── _treeview.scss
└── modules
│ └── animations-extended
│ ├── _module.scss
│ └── animations-extended.scss
├── mdb.lite.scss
├── mdb.scss
└── style.scss
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, nationality, personal appearance, race, religion, or sexual identity and orientation.
6 |
7 | ## Our Standards
8 |
9 | Examples of behavior that contributes to creating a positive environment include:
10 |
11 | * Using welcoming and inclusive language
12 | * Being respectful of differing viewpoints and experiences
13 | * Gracefully accepting constructive criticism
14 | * Focusing on what is best for the community
15 | * Showing empathy towards other community members
16 |
17 | Examples of unacceptable behavior by participants include:
18 |
19 | * The use of sexualized language or imagery and unwelcome sexual attention or advances
20 | * Trolling, insulting/derogatory comments, and personal or political attacks
21 | * Public or private harassment
22 | * Publishing others' private information, such as a physical or electronic address, without explicit permission
23 | * Other conduct which could reasonably be considered inappropriate in a professional setting
24 |
25 | ## Our Responsibilities
26 |
27 | Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
28 |
29 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
30 |
31 | ## Scope
32 |
33 | This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
34 |
35 | ## Enforcement
36 |
37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at contact@mdbootstrap.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
38 |
39 | Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
40 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing Guide
2 |
3 | We value your and our time, we created this Guidline to avoid unnecessary diffuculties with pull requests and contribution process.
4 |
5 | Please read the text below **before starting your improvements** in order to help us make cooperation and reviewing experience as pleasent and effective as possible.
6 |
7 | Not following these rules and procedures may entail closing issues or rejection of your work even if it's theoreticly adequate.
8 |
9 | ## Issues and Support
10 |
11 | 1. **Use Support Forum** - don't use GitHub Issues for personal questions and support requests. We're maintaining a [dedicated Support Forum](https://mdbootstrap.com/support/) for this purpose. This is also a go-to place for every suggestion, opinion, bugs, and issue reports - if you'd like to receive help as soon as possible. Reports posted on Support Forum are **prior to GitHub issues**.
12 |
13 | 2. **Check available resources** - always check current issues before opening your own. Also check [Support Forum](https://mdbootstrap.com/support/) and [Documentation](https://mdbootstrap.com/md-bootstrap-sitemap/) - most likely you'll find your answer there. Unchecked issues and duplicates will be closed immediatelly.
14 |
15 | 3. **Examine issue source** - MDB code is depending on other projects, mainly [Bootstrap](https://github.com/twbs/bootstrap). Don't open issues concerning sources we cannot influence. For example - lack of flexbox support for older IE versions is determined by Bootstrap not MDB.
16 |
17 | 4. **Check updates** - We resolve most of reported bugs and issues with every new release. Check if your MDB template version is the latest. If you want to keep track on updates and bug fixes, the best way is joining our newsletter [here](https://mdbootstrap.com/newsletter/).
18 |
19 | 5. **Be specific** - describe your case **in English**, clearly and with details. Attach code examples, screenshots, links and any other relevant resources.
20 |
21 | ## Contributing Standards
22 | All improvements, fixes and new elements are welcome and we're deeply grateful for every help attempt. Although we recommend thinking twice before starting. We don't want to waste your time and some changes may be rejected not becouse of their quality but simply as a result of different style, organization or prefifined procedures we maintain.
23 | That's why we came up with standards below, following them will maximize the chance of your contribution beeing included in project.
24 |
25 | 1. Make sure that your idea doesn't contradict the concepts of [Bootstrap](https://getbootstrap.com/), [Material Design](https://material.io/guidelines/) and [jQuery](https://jquery.com/)
26 | 2. Verify if it fits the rest of MDB envoirement and style
27 | 3. Write and form your code accordingly to [those rules](http://codeguide.co/)
28 | 4. Use Gulp to minify your code after finishing
29 | 5. Create clear titles and detailed descriptions for your Pull Requests
30 |
31 | ## Questions
32 | If you're not sure about your ideas or you'd like to talk about them with our team before starting, write to: contact@mdbootstrap.com, and for every query regarding technical consultance open your case on [Support Forum](https://mdbootstrap.com/support/)
33 |
--------------------------------------------------------------------------------
/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | ### Expected behavior
2 |
3 | ### Actual behavior
4 |
5 | ### Your working environment and MDB template version information
6 |
7 | ### Resources (screenshots, code snippets etc.)
8 |
9 | For every **question of technical nature**, in order to get the most detailed answer as soon as possible, ask on our dedicated [Support Forum](https://mdbootstrap.com/support/)
10 |
--------------------------------------------------------------------------------
/License.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/License.pdf
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [](https://mdbootstrap.com/freebies/jquery/landing-page/)
2 |
3 | # Bootstrap 4 & Material Design - Landing Page Template
4 |
5 | Free, responsive Landing Page template containing stunning, full or half-page Intro, Call to Action Buttons, Forms, and many other crucial components. Built with the newest Bootstrap 4 and Material Design. MIT license – free for personal and commercial use.
6 |
7 | ________
8 |
9 | # Live Previews:
10 | ## https://mdbootstrap.com/freebies/jquery/landing-page/
11 |
12 | # Most important features:
13 |
14 | 1. Fully responsive
15 |
16 | 2. Plenty of useful components
17 |
18 | 3. Easy installation
19 |
20 | 4. Easy to use and customize
21 |
22 | 5. Active community
23 |
24 | 6. Dedicated support forum
25 |
26 | 7. Detailed documentation
27 |
28 | # Demo:
29 | **Main demo**: https://mdbootstrap.com/previews/free-templates/landing-page/form.html
30 |
31 | # MDB Quick Start (5 minutes):
32 | **Written Tutorial**: https://mdbootstrap.com/education/bootstrap/quick-start/
33 |
34 | **Video Tutorial**:https://www.youtube.com/watch?v=cXTThxoywNQ&t=9s
35 |
36 | **npm installation**
37 | You can install MDBootstrap using NPM:
38 | - `npm install mdbootstrap`
39 |
40 | # Additional tutorials:
41 |
42 | **MDB - Bootstrap tutorial**: https://mdbootstrap.com/education/bootstrap/
43 |
44 | **MDB - Wordpress tutorial**: https://mdbootstrap.com/education/wordpress/
45 |
46 | # Documentation:
47 |
48 | **Huge, detailed documentation avilable online on**: https://mdbootstrap.com/
49 |
50 | # PRO version:
51 |
52 | **MDB Landing Page Template Pro (jQuery version)**: https://mdbootstrap.com/products/jquery-landing-page/
53 |
54 | # Highlights:
55 | **Bootstrap 4**
56 | Thanks to MDB you can take advantage of all feature of newest Bootstrap 4.
57 |
58 | **Material Design for Bootstrap**
59 | This template is built with MDBootstrap - powerful and free UI Kit, containing 400+ material UI elements, 600+ material icons, 74 CSS animations, SASS files, templates, tutorials and many more.
60 |
61 | **Free for personal and commercial use**
62 | Our license is user-friendly. Feel free to use MDB for both private as well as commercial projects.
63 |
64 | **10 fresh ready to use templates**
65 | We are going further and giving to you ready to use templates! Use them as you like, as an inspiration, prototype or final product for your customers.
66 |
67 | **Fully responsive**
68 | It doesn't matter whether your project will be displayed on desktop, laptop, tablet or mobile phone. MDB looks great on each screen.
69 |
70 | **Technical support**
71 | We really care about reliability. If you have any questions - do not hesitate to contact us.
72 |
73 | **Active community**
74 | Our society grows day by day. Visit **our forum** and check how it is to be a part of our family.
75 |
76 | **Flex box**
77 | MDB fully suppports Flex Box. You can forget about alignment issues.
78 |
79 | **Latest jQuery**
80 | MDB is integrated with newest jQuery, therefore you can use all the newest features which comes along with it.
81 |
82 | **Detailed documentation:**
83 | We give you detailed documentation at your disposal. It will help you to implement your ideas easily.
84 |
85 | A big **thank you to all our users** who are working with us to improve the software. We wouldn't be where we are without you.
86 |
87 | # Useful Links:
88 |
89 | Getting started: https://mdbootstrap.com/docs/jquery/getting-started/download/
90 |
91 | 5 min quick start: https://mdbootstrap.com/education/bootstrap/quick-start/
92 |
93 | Material Design + Bootstrap Tutorial: https://mdbootstrap.com/education/bootstrap/
94 |
95 | Material Design + WordPress Tutorial: https://mdbootstrap.com/education/wordpress/
96 |
97 | Other Freebies: https://mdbootstrap.com/freebies/
98 |
99 | Premium Templates: https://mdbootstrap.com/templates/
100 |
101 |
102 | # Social Media:
103 |
104 | Twitter: https://twitter.com/MDBootstrap
105 |
106 | Facebook: https://www.facebook.com/mdbootstrap
107 |
108 | Pinterest: https://pl.pinterest.com/mdbootstrap
109 |
110 | Google+: https://plus.google.com/u/0/b/107863090883699620484/+Mdbootstrap/posts
111 |
112 | Dribbble: https://dribbble.com/mdbootstrap
113 |
114 | LinkedIn: https://www.linkedin.com/company/material-design-for-bootstrap
115 |
116 | # Visit our website: https://mdbootstrap.com/
117 |
--------------------------------------------------------------------------------
/Useful_Resources.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/Useful_Resources.pdf
--------------------------------------------------------------------------------
/css/addons/datatables-select.css:
--------------------------------------------------------------------------------
1 | /*
2 | * MDBootstrap integration with Datatables
3 | * Learn more: https://mdbootstrap.com/docs/jquery/tables/datatables/
4 | * About MDBootstrap: https://mdbootstrap.com/
5 | *
6 | * This combined file was created taking that code from this webstie:
7 | * https://cdn.datatables.net/select/1.2.7/css/select.dataTables.min.css
8 | *
9 | *
10 | * To rebuild or modify this file with the latest versions of the included
11 | * software please visit:
12 | * https://datatables.net/download/#bs4/dt-1.10.18
13 | *
14 | * Included libraries:
15 | * DataTables 1.10.18
16 | */
17 | table.dataTable tbody > tr.selected,
18 | table.dataTable tbody > tr > .selected {
19 | background-color: #B0BED9; }
20 |
21 | table.dataTable.stripe tbody > tr.odd.selected,
22 | table.dataTable.stripe tbody > tr.odd > .selected, table.dataTable.display tbody > tr.odd.selected,
23 | table.dataTable.display tbody > tr.odd > .selected {
24 | background-color: #acbad4; }
25 |
26 | table.dataTable.hover tbody > tr.selected:hover,
27 | table.dataTable.hover tbody > tr > .selected:hover, table.dataTable.display tbody > tr.selected:hover,
28 | table.dataTable.display tbody > tr > .selected:hover {
29 | background-color: #aab7d1; }
30 |
31 | table.dataTable.order-column tbody > tr.selected > .sorting_1, table.dataTable.order-column tbody > tr.selected > .sorting_2, table.dataTable.order-column tbody > tr.selected > .sorting_3, table.dataTable.display tbody > tr.selected > .sorting_1, table.dataTable.display tbody > tr.selected > .sorting_2, table.dataTable.display tbody > tr.selected > .sorting_3 {
32 | background-color: #acbad5; }
33 |
34 | table.dataTable.order-column tbody > tr > .selected, table.dataTable.display tbody > tr > .selected {
35 | background-color: #acbad5; }
36 |
37 | table.dataTable.display tbody > tr.odd.selected > .sorting_1, table.dataTable.order-column.stripe tbody > tr.odd.selected > .sorting_1 {
38 | background-color: #a6b4cd; }
39 |
40 | table.dataTable.display tbody > tr.odd.selected > .sorting_2, table.dataTable.order-column.stripe tbody > tr.odd.selected > .sorting_2 {
41 | background-color: #a8b5cf; }
42 |
43 | table.dataTable.display tbody > tr.odd.selected > .sorting_3, table.dataTable.order-column.stripe tbody > tr.odd.selected > .sorting_3 {
44 | background-color: #a9b7d1; }
45 |
46 | table.dataTable.display tbody > tr.even.selected > .sorting_1, table.dataTable.order-column.stripe tbody > tr.even.selected > .sorting_1 {
47 | background-color: #acbad5; }
48 |
49 | table.dataTable.display tbody > tr.even.selected > .sorting_2, table.dataTable.order-column.stripe tbody > tr.even.selected > .sorting_2 {
50 | background-color: #aebcd6; }
51 |
52 | table.dataTable.display tbody > tr.even.selected > .sorting_3, table.dataTable.order-column.stripe tbody > tr.even.selected > .sorting_3 {
53 | background-color: #afbdd8; }
54 |
55 | table.dataTable.display tbody > tr.odd > .selected, table.dataTable.order-column.stripe tbody > tr.odd > .selected {
56 | background-color: #a6b4cd; }
57 |
58 | table.dataTable.display tbody > tr.even > .selected, table.dataTable.order-column.stripe tbody > tr.even > .selected {
59 | background-color: #acbad5; }
60 |
61 | table.dataTable.display tbody > tr.selected:hover > .sorting_1, table.dataTable.order-column.hover tbody > tr.selected:hover > .sorting_1 {
62 | background-color: #a2aec7; }
63 |
64 | table.dataTable.display tbody > tr.selected:hover > .sorting_2, table.dataTable.order-column.hover tbody > tr.selected:hover > .sorting_2 {
65 | background-color: #a3b0c9; }
66 |
67 | table.dataTable.display tbody > tr.selected:hover > .sorting_3, table.dataTable.order-column.hover tbody > tr.selected:hover > .sorting_3 {
68 | background-color: #a5b2cb; }
69 |
70 | table.dataTable.display tbody > tr:hover > .selected, table.dataTable.display tbody > tr > .selected:hover, table.dataTable.order-column.hover tbody > tr:hover > .selected, table.dataTable.order-column.hover tbody > tr > .selected:hover {
71 | background-color: #a2aec7; }
72 |
73 | table.dataTable tbody td.select-checkbox, table.dataTable tbody th.select-checkbox {
74 | position: relative; }
75 |
76 | table.dataTable tbody td.select-checkbox:before, table.dataTable tbody td.select-checkbox:after, table.dataTable tbody th.select-checkbox:before, table.dataTable tbody th.select-checkbox:after {
77 | display: block;
78 | position: absolute;
79 | top: 1.2em;
80 | left: 50%;
81 | width: 12px;
82 | height: 12px;
83 | -webkit-box-sizing: border-box;
84 | box-sizing: border-box; }
85 |
86 | table.dataTable tbody td.select-checkbox:before,
87 | table.dataTable tbody th.select-checkbox:before {
88 | content: ' ';
89 | margin-top: 4px;
90 | margin-left: -6px;
91 | border: 1px solid black;
92 | -webkit-border-radius: 3px;
93 | border-radius: 3px; }
94 |
95 | table.dataTable tr.selected td.select-checkbox:after,
96 | table.dataTable tr.selected th.select-checkbox:after {
97 | content: '\2714';
98 | margin-top: 0px;
99 | margin-left: -4px;
100 | text-align: center;
101 | text-shadow: 1px 1px #B0BED9, -1px -1px #B0BED9, 1px -1px #B0BED9, -1px 1px #B0BED9; }
102 |
103 | div.dataTables_wrapper span.select-info, div.dataTables_wrapper span.select-item {
104 | margin-left: 0.5em; }
105 |
106 | @media screen and (max-width: 640px) {
107 | div.dataTables_wrapper span.select-info, div.dataTables_wrapper span.select-item {
108 | margin-left: 0;
109 | display: block; } }
110 |
--------------------------------------------------------------------------------
/css/addons/datatables-select.min.css:
--------------------------------------------------------------------------------
1 | table.dataTable tbody>tr.selected,table.dataTable tbody>tr>.selected{background-color:#B0BED9}table.dataTable.display tbody>tr.odd.selected,table.dataTable.display tbody>tr.odd>.selected,table.dataTable.stripe tbody>tr.odd.selected,table.dataTable.stripe tbody>tr.odd>.selected{background-color:#acbad4}table.dataTable.display tbody>tr.selected:hover,table.dataTable.display tbody>tr>.selected:hover,table.dataTable.hover tbody>tr.selected:hover,table.dataTable.hover tbody>tr>.selected:hover{background-color:#aab7d1}table.dataTable.display tbody>tr.selected>.sorting_1,table.dataTable.display tbody>tr.selected>.sorting_2,table.dataTable.display tbody>tr.selected>.sorting_3,table.dataTable.display tbody>tr>.selected,table.dataTable.order-column tbody>tr.selected>.sorting_1,table.dataTable.order-column tbody>tr.selected>.sorting_2,table.dataTable.order-column tbody>tr.selected>.sorting_3,table.dataTable.order-column tbody>tr>.selected{background-color:#acbad5}table.dataTable.display tbody>tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody>tr.odd.selected>.sorting_1{background-color:#a6b4cd}table.dataTable.display tbody>tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody>tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.dataTable.display tbody>tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody>tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.dataTable.display tbody>tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody>tr.even.selected>.sorting_1{background-color:#acbad5}table.dataTable.display tbody>tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody>tr.even.selected>.sorting_2{background-color:#aebcd6}table.dataTable.display tbody>tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody>tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody>tr.odd>.selected,table.dataTable.order-column.stripe tbody>tr.odd>.selected{background-color:#a6b4cd}table.dataTable.display tbody>tr.even>.selected,table.dataTable.order-column.stripe tbody>tr.even>.selected{background-color:#acbad5}table.dataTable.display tbody>tr.selected:hover>.sorting_1,table.dataTable.order-column.hover tbody>tr.selected:hover>.sorting_1{background-color:#a2aec7}table.dataTable.display tbody>tr.selected:hover>.sorting_2,table.dataTable.order-column.hover tbody>tr.selected:hover>.sorting_2{background-color:#a3b0c9}table.dataTable.display tbody>tr.selected:hover>.sorting_3,table.dataTable.order-column.hover tbody>tr.selected:hover>.sorting_3{background-color:#a5b2cb}table.dataTable.display tbody>tr:hover>.selected,table.dataTable.display tbody>tr>.selected:hover,table.dataTable.order-column.hover tbody>tr:hover>.selected,table.dataTable.order-column.hover tbody>tr>.selected:hover{background-color:#a2aec7}table.dataTable tbody td.select-checkbox,table.dataTable tbody th.select-checkbox{position:relative}table.dataTable tbody td.select-checkbox:after,table.dataTable tbody td.select-checkbox:before,table.dataTable tbody th.select-checkbox:after,table.dataTable tbody th.select-checkbox:before{display:block;position:absolute;top:1.2em;left:50%;width:12px;height:12px;-webkit-box-sizing:border-box;box-sizing:border-box}table.dataTable tbody td.select-checkbox:before,table.dataTable tbody th.select-checkbox:before{content:' ';margin-top:4px;margin-left:-6px;border:1px solid #000;-webkit-border-radius:3px;border-radius:3px}table.dataTable tr.selected td.select-checkbox:after,table.dataTable tr.selected th.select-checkbox:after{content:'\2714';margin-top:0;margin-left:-4px;text-align:center;text-shadow:1px 1px #B0BED9,-1px -1px #B0BED9,1px -1px #B0BED9,-1px 1px #B0BED9}div.dataTables_wrapper span.select-info,div.dataTables_wrapper span.select-item{margin-left:.5em}@media screen and (max-width:640px){div.dataTables_wrapper span.select-info,div.dataTables_wrapper span.select-item{margin-left:0;display:block}}
--------------------------------------------------------------------------------
/css/addons/datatables.css:
--------------------------------------------------------------------------------
1 | /*
2 | * MDBootstrap integration with Datatables
3 | * Learn more: https://mdbootstrap.com/docs/jquery/tables/datatables/
4 | * About MDBootstrap: https://mdbootstrap.com/
5 | *
6 | * This combined file was created by the DataTables downloader builder:
7 | * https://datatables.net/download
8 | *
9 | * To rebuild or modify this file with the latest versions of the included
10 | * software please visit:
11 | * https://datatables.net/download/#bs4/dt-1.10.18
12 | *
13 | * Included libraries:
14 | * DataTables 1.10.18
15 | */
16 | table.dataTable thead {
17 | cursor: pointer; }
18 | table.dataTable thead > tr > th:active,
19 | table.dataTable thead > tr > td:active {
20 | outline: none; }
21 |
22 | div.dataTables_wrapper div.dataTables_length.d-flex.flex-row label {
23 | margin-top: 1.2rem;
24 | margin-right: 1rem; }
25 |
26 | div.dataTables_wrapper div.dataTables_length.d-flex.flex-row .select-wrapper.mdb-select span,
27 | div.dataTables_wrapper div.dataTables_length.d-flex.flex-row .select-wrapper.mdb-select .select-dropdown {
28 | margin-top: 1rem; }
29 |
30 | div.dataTables_wrapper div.dataTables_length label, div.dataTables_wrapper div.dataTables_filter label {
31 | text-align: left;
32 | font-weight: normal;
33 | padding-top: .5rem;
34 | padding-bottom: .5rem; }
35 |
36 | div.dataTables_wrapper div.dataTables_length select,
37 | div.dataTables_wrapper div.dataTables_length input {
38 | width: auto; }
39 |
40 | div.dataTables_wrapper div.dataTables_filter {
41 | text-align: right; }
42 | div.dataTables_wrapper div.dataTables_filter select,
43 | div.dataTables_wrapper div.dataTables_filter input {
44 | width: auto; }
45 | div.dataTables_wrapper div.dataTables_filter input {
46 | margin-left: .5rem;
47 | display: inline-block; }
48 |
49 | div.dataTables_wrapper div.dataTables_info, div.dataTables_wrapper div.dataTables_paginate {
50 | font-weight: normal;
51 | padding-top: 1rem;
52 | padding-bottom: 1rem; }
53 |
54 | div.dataTables_wrapper div.dataTables_paginate {
55 | text-align: right;
56 | margin: 0; }
57 | div.dataTables_wrapper div.dataTables_paginate ul.pagination {
58 | -webkit-box-pack: end;
59 | -webkit-justify-content: flex-end;
60 | -ms-flex-pack: end;
61 | justify-content: flex-end; }
62 | div.dataTables_wrapper div.dataTables_paginate ul.pagination .page-item.active .page-link:focus {
63 | background-color: #4285f4; }
64 | div.dataTables_wrapper div.dataTables_paginate ul.pagination .page-item .page-link:focus {
65 | -webkit-box-shadow: none;
66 | box-shadow: none; }
67 |
68 | @media (max-width: 767px) {
69 | div.dataTables_wrapper div .dataTables_length,
70 | div.dataTables_wrapper div .dataTables_filter,
71 | div.dataTables_wrapper div .dataTables_info,
72 | div.dataTables_wrapper div .dataTables_paginate ul.pagination {
73 | text-align: center;
74 | -webkit-box-pack: center;
75 | -webkit-justify-content: center;
76 | -ms-flex-pack: center;
77 | justify-content: center; } }
78 |
79 | .bs-select select {
80 | display: inline-block !important; }
81 |
82 | table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting,
83 | table.dataTable thead > tr > td.sorting_asc,
84 | table.dataTable thead > tr > td.sorting_desc,
85 | table.dataTable thead > tr > td.sorting {
86 | padding-right: 30px; }
87 |
88 | table.dataTable thead > tr > th:active,
89 | table.dataTable thead > tr > td:active {
90 | outline: none; }
91 |
92 | table.dataTable thead .sorting,
93 | table.dataTable thead .sorting_asc,
94 | table.dataTable thead .sorting_desc,
95 | table.dataTable thead .sorting_asc_disabled,
96 | table.dataTable thead .sorting_desc_disabled {
97 | cursor: pointer;
98 | position: relative; }
99 |
100 | table.dataTable thead .sorting:before, table.dataTable thead .sorting:after,
101 | table.dataTable thead .sorting_asc:before,
102 | table.dataTable thead .sorting_asc:after,
103 | table.dataTable thead .sorting_desc:before,
104 | table.dataTable thead .sorting_desc:after,
105 | table.dataTable thead .sorting_asc_disabled:before,
106 | table.dataTable thead .sorting_asc_disabled:after,
107 | table.dataTable thead .sorting_desc_disabled:before,
108 | table.dataTable thead .sorting_desc_disabled:after {
109 | position: absolute;
110 | bottom: 0.9em;
111 | display: block;
112 | opacity: 0.3; }
113 |
114 | table.dataTable thead .sorting:before,
115 | table.dataTable thead .sorting_asc:before,
116 | table.dataTable thead .sorting_desc:before,
117 | table.dataTable thead .sorting_asc_disabled:before,
118 | table.dataTable thead .sorting_desc_disabled:before {
119 | right: 1em;
120 | content: "\f0de"; }
121 |
122 | table.dataTable thead .sorting:after,
123 | table.dataTable thead .sorting_asc:after,
124 | table.dataTable thead .sorting_desc:after,
125 | table.dataTable thead .sorting_asc_disabled:after,
126 | table.dataTable thead .sorting_desc_disabled:after {
127 | content: "\f0dd";
128 | right: 16px; }
129 |
130 | table.dataTable thead .sorting:before,
131 | table.dataTable thead .sorting_asc:before,
132 | table.dataTable thead .sorting_desc:before,
133 | table.dataTable thead .sorting_asc_disabled:before,
134 | table.dataTable thead .sorting_desc_disabled:before,
135 | table.dataTable thead .sorting:after,
136 | table.dataTable thead .sorting_asc:after,
137 | table.dataTable thead .sorting_desc:after,
138 | table.dataTable thead .sorting_asc_disabled:after,
139 | table.dataTable thead .sorting_desc_disabled:after {
140 | font-family: 'Font Awesome\ 5 Free';
141 | font-weight: 900;
142 | font-size: 1rem; }
143 |
144 | table.dataTable thead .sorting_asc:before,
145 | table.dataTable thead .sorting_desc:after {
146 | opacity: 1; }
147 |
148 | table.dataTable thead .sorting_asc_disabled:before,
149 | table.dataTable thead .sorting_desc_disabled:after {
150 | opacity: 0; }
151 |
--------------------------------------------------------------------------------
/css/addons/datatables.min.css:
--------------------------------------------------------------------------------
1 | div.dataTables_wrapper div.dataTables_filter input,div.dataTables_wrapper div.dataTables_filter select,div.dataTables_wrapper div.dataTables_length input,div.dataTables_wrapper div.dataTables_length select{width:auto}table.dataTable thead{cursor:pointer}div.dataTables_wrapper div.dataTables_length.d-flex.flex-row label{margin-top:1.2rem;margin-right:1rem}div.dataTables_wrapper div.dataTables_length.d-flex.flex-row .select-wrapper.mdb-select .select-dropdown,div.dataTables_wrapper div.dataTables_length.d-flex.flex-row .select-wrapper.mdb-select span{margin-top:1rem}div.dataTables_wrapper div.dataTables_filter label,div.dataTables_wrapper div.dataTables_length label{text-align:left;font-weight:400;padding-top:.5rem;padding-bottom:.5rem}div.dataTables_wrapper div.dataTables_filter{text-align:right}div.dataTables_wrapper div.dataTables_filter input{margin-left:.5rem;display:inline-block}div.dataTables_wrapper div.dataTables_info,div.dataTables_wrapper div.dataTables_paginate{font-weight:400;padding-top:1rem;padding-bottom:1rem}div.dataTables_wrapper div.dataTables_paginate{text-align:right;margin:0}div.dataTables_wrapper div.dataTables_paginate ul.pagination{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}div.dataTables_wrapper div.dataTables_paginate ul.pagination .page-item.active .page-link:focus{background-color:#4285f4}div.dataTables_wrapper div.dataTables_paginate ul.pagination .page-item .page-link:focus{-webkit-box-shadow:none;box-shadow:none}@media (max-width:767px){div.dataTables_wrapper div .dataTables_filter,div.dataTables_wrapper div .dataTables_info,div.dataTables_wrapper div .dataTables_length,div.dataTables_wrapper div .dataTables_paginate ul.pagination{text-align:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}}.bs-select select{display:inline-block!important}table.dataTable thead>tr>td.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc{padding-right:30px}table.dataTable thead>tr>td:active,table.dataTable thead>tr>th:active{outline:0}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_desc_disabled{cursor:pointer;position:relative}table.dataTable thead .sorting:after,table.dataTable thead .sorting:before,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_asc:before,table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_asc_disabled:before,table.dataTable thead .sorting_desc:after,table.dataTable thead .sorting_desc:before,table.dataTable thead .sorting_desc_disabled:after,table.dataTable thead .sorting_desc_disabled:before{position:absolute;bottom:.9em;display:block;opacity:.3;font-family:'Font Awesome\ 5 Free';font-weight:900;font-size:1rem}table.dataTable thead .sorting:before,table.dataTable thead .sorting_asc:before,table.dataTable thead .sorting_asc_disabled:before,table.dataTable thead .sorting_desc:before,table.dataTable thead .sorting_desc_disabled:before{right:1em;content:"\f0de"}table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc:after,table.dataTable thead .sorting_desc_disabled:after{content:"\f0dd";right:16px}table.dataTable thead .sorting_asc:before,table.dataTable thead .sorting_desc:after{opacity:1}table.dataTable thead .sorting_asc_disabled:before,table.dataTable thead .sorting_desc_disabled:after{opacity:0}
--------------------------------------------------------------------------------
/css/addons/directives.css:
--------------------------------------------------------------------------------
1 | .opacity-0 {
2 | opacity: 0; }
3 |
4 | .opacity-10 {
5 | opacity: 0.1; }
6 |
7 | .opacity-20 {
8 | opacity: 0.2; }
9 |
10 | .opacity-30 {
11 | opacity: 0.3; }
12 |
13 | .opacity-40 {
14 | opacity: 0.4; }
15 |
16 | .opacity-50 {
17 | opacity: 0.5; }
18 |
19 | .opacity-60 {
20 | opacity: 0.6; }
21 |
22 | .opacity-70 {
23 | opacity: 0.7; }
24 |
25 | .opacity-80 {
26 | opacity: 0.8; }
27 |
28 | .opacity-90 {
29 | opacity: 0.9; }
30 |
31 | .opacity-100 {
32 | opacity: 1; }
--------------------------------------------------------------------------------
/css/addons/directives.min.css:
--------------------------------------------------------------------------------
1 | .opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-100{opacity:1}
--------------------------------------------------------------------------------
/css/addons/rating.css:
--------------------------------------------------------------------------------
1 | .mdb-rating .rate-popover {
2 | color: grey; }
3 |
4 | .mdb-rating .live {
5 | color: black; }
6 |
7 | .mdb-rating .oneStar {
8 | color: #44370f; }
9 |
10 | .mdb-rating .twoStars {
11 | color: #96781e; }
12 |
13 | .mdb-rating .threeStars {
14 | color: #e2b52e; }
15 |
16 | .mdb-rating .fourStars {
17 | color: #f1ba12; }
18 |
19 | .mdb-rating .fiveStars {
20 | color: #f3cb06; }
21 |
22 | .mdb-rating .amber-text {
23 | color: #ffc107 !important; }
--------------------------------------------------------------------------------
/css/addons/rating.min.css:
--------------------------------------------------------------------------------
1 | .mdb-rating .rate-popover{color:grey}.mdb-rating .live{color:#000}.mdb-rating .oneStar{color:#44370f}.mdb-rating .twoStars{color:#96781e}.mdb-rating .threeStars{color:#e2b52e}.mdb-rating .fourStars{color:#f1ba12}.mdb-rating .fiveStars{color:#f3cb06}.mdb-rating .amber-text{color:#ffc107!important}
--------------------------------------------------------------------------------
/css/addons/zmd.hierarchical-display.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Material Design Hierarchical Display by Sergey Kupletsky (@zavoloklom) - https://github.com/zavoloklom/material-design-hierarchical-display/
3 | * License - https://github.com/zavoloklom/material-design-hierarchical-display/blob/master/LICENSE (MIT License)
4 | */
5 | .zmd-hierarchical-display {
6 | visibility: hidden; }
7 | .zmd-hierarchical-display.in {
8 | visibility: visible; }
9 |
10 | .zmd-hierarchical-displaying {
11 | visibility: visible; }
12 |
13 | .animation {
14 | -webkit-animation-duration: 1s;
15 | animation-duration: 1s;
16 | -webkit-animation-fill-mode: both;
17 | animation-fill-mode: both; }
18 |
19 | .animation.zoomedIn,
20 | .animation.zoomedOut {
21 | -webkit-animation-timing-function: cubic-bezier(0.55, 0, 0.1, 1);
22 | animation-timing-function: cubic-bezier(0.55, 0, 0.1, 1); }
23 |
24 | @-webkit-keyframes zoomedIn {
25 | from {
26 | -webkit-transform: scale(0);
27 | transform: scale(0); }
28 | to {
29 | -webkit-transform: scale(1);
30 | transform: scale(1); } }
31 |
32 | @keyframes zoomedIn {
33 | from {
34 | -webkit-transform: scale(0);
35 | transform: scale(0); }
36 | to {
37 | -webkit-transform: scale(1);
38 | transform: scale(1); } }
39 |
40 | @-webkit-keyframes zoomedOut {
41 | from {
42 | -webkit-transform: scale(1);
43 | transform: scale(1); }
44 | to {
45 | -webkit-transform: scale(0);
46 | transform: scale(0); } }
47 |
48 | @keyframes zoomedOut {
49 | from {
50 | -webkit-transform: scale(1);
51 | transform: scale(1); }
52 | to {
53 | -webkit-transform: scale(0);
54 | transform: scale(0); } }
55 |
56 | .zoomedIn {
57 | -webkit-animation-name: zoomedIn;
58 | animation-name: zoomedIn; }
59 |
60 | .zoomedOut {
61 | -webkit-animation-name: zoomedOut;
62 | animation-name: zoomedOut; }
63 |
--------------------------------------------------------------------------------
/css/addons/zmd.hierarchical-display.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Material Design Hierarchical Display by Sergey Kupletsky (@zavoloklom) - https://github.com/zavoloklom/material-design-hierarchical-display/
3 | * License - https://github.com/zavoloklom/material-design-hierarchical-display/blob/master/LICENSE (MIT License)
4 | */.zmd-hierarchical-display{visibility:hidden}.zmd-hierarchical-display.in{visibility:visible}.zmd-hierarchical-displaying{visibility:visible}.animation{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animation.zoomedIn,.animation.zoomedOut{-webkit-animation-timing-function:cubic-bezier(.55,0,.1,1);animation-timing-function:cubic-bezier(.55,0,.1,1)}@-webkit-keyframes zoomedIn{from{-webkit-transform:scale(0);transform:scale(0)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomedIn{from{-webkit-transform:scale(0);transform:scale(0)}to{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomedOut{from{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomedOut{from{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(0);transform:scale(0)}}.zoomedIn{-webkit-animation-name:zoomedIn;animation-name:zoomedIn}.zoomedOut{-webkit-animation-name:zoomedOut;animation-name:zoomedOut}
--------------------------------------------------------------------------------
/css/style.css:
--------------------------------------------------------------------------------
1 | /* Required height of parents of the Half Page Carousel for proper displaying carousel itself */
2 | html,
3 | body,
4 | .view {
5 | height: 100%; }
6 |
7 | @media (max-width: 740px) {
8 | .full-page-intro {
9 | height: 1000px; } }
10 |
11 | /* Half Page Carousel itself*/
12 | .carousel {
13 | height: 50%; }
14 | .carousel .carousel-inner {
15 | height: 100%; }
16 | .carousel .carousel-inner .carousel-item,
17 | .carousel .carousel-inner .active {
18 | height: 100%; }
19 |
20 | /* Adjustment for mobile devices*/
21 | @media (max-width: 776px) {
22 | .carousel {
23 | height: 100%; } }
24 |
25 | /* Navbar animation */
26 | .navbar {
27 | background-color: rgba(0, 0, 0, 0.3); }
28 |
29 | .top-nav-collapse {
30 | background-color: #1C2331; }
31 |
32 | /* Adding color to the Navbar on mobile */
33 | @media only screen and (max-width: 768px) {
34 | .navbar {
35 | background-color: #1C2331; } }
36 |
37 | /* Footer color for sake of consistency with Navbar */
38 | .page-footer {
39 | background-color: #1C2331; }
40 |
--------------------------------------------------------------------------------
/css/style.min.css:
--------------------------------------------------------------------------------
1 | .view,body,html{height:100%}@media (max-width:740px){.full-page-intro{height:1000px}}.carousel{height:50%}.carousel .carousel-inner,.carousel .carousel-inner .active,.carousel .carousel-inner .carousel-item{height:100%}@media (max-width:776px){.carousel{height:100%}}.navbar{background-color:rgba(0,0,0,.3)}.page-footer,.top-nav-collapse{background-color:#1C2331}@media only screen and (max-width:768px){.navbar{background-color:#1C2331}}
--------------------------------------------------------------------------------
/font/roboto/Roboto-Bold.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/font/roboto/Roboto-Bold.eot
--------------------------------------------------------------------------------
/font/roboto/Roboto-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/font/roboto/Roboto-Bold.ttf
--------------------------------------------------------------------------------
/font/roboto/Roboto-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/font/roboto/Roboto-Bold.woff
--------------------------------------------------------------------------------
/font/roboto/Roboto-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/font/roboto/Roboto-Bold.woff2
--------------------------------------------------------------------------------
/font/roboto/Roboto-Light.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/font/roboto/Roboto-Light.eot
--------------------------------------------------------------------------------
/font/roboto/Roboto-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/font/roboto/Roboto-Light.ttf
--------------------------------------------------------------------------------
/font/roboto/Roboto-Light.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/font/roboto/Roboto-Light.woff
--------------------------------------------------------------------------------
/font/roboto/Roboto-Light.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/font/roboto/Roboto-Light.woff2
--------------------------------------------------------------------------------
/font/roboto/Roboto-Medium.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/font/roboto/Roboto-Medium.eot
--------------------------------------------------------------------------------
/font/roboto/Roboto-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/font/roboto/Roboto-Medium.ttf
--------------------------------------------------------------------------------
/font/roboto/Roboto-Medium.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/font/roboto/Roboto-Medium.woff
--------------------------------------------------------------------------------
/font/roboto/Roboto-Medium.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/font/roboto/Roboto-Medium.woff2
--------------------------------------------------------------------------------
/font/roboto/Roboto-Regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/font/roboto/Roboto-Regular.eot
--------------------------------------------------------------------------------
/font/roboto/Roboto-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/font/roboto/Roboto-Regular.ttf
--------------------------------------------------------------------------------
/font/roboto/Roboto-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/font/roboto/Roboto-Regular.woff
--------------------------------------------------------------------------------
/font/roboto/Roboto-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/font/roboto/Roboto-Regular.woff2
--------------------------------------------------------------------------------
/font/roboto/Roboto-Thin.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/font/roboto/Roboto-Thin.eot
--------------------------------------------------------------------------------
/font/roboto/Roboto-Thin.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/font/roboto/Roboto-Thin.ttf
--------------------------------------------------------------------------------
/font/roboto/Roboto-Thin.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/font/roboto/Roboto-Thin.woff
--------------------------------------------------------------------------------
/font/roboto/Roboto-Thin.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/font/roboto/Roboto-Thin.woff2
--------------------------------------------------------------------------------
/img/flags.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/img/flags.png
--------------------------------------------------------------------------------
/img/lightbox/default-skin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/img/lightbox/default-skin.png
--------------------------------------------------------------------------------
/img/lightbox/default-skin.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/img/lightbox/preloader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/img/lightbox/preloader.gif
--------------------------------------------------------------------------------
/img/overlays/01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/img/overlays/01.png
--------------------------------------------------------------------------------
/img/overlays/02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/img/overlays/02.png
--------------------------------------------------------------------------------
/img/overlays/03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/img/overlays/03.png
--------------------------------------------------------------------------------
/img/overlays/04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/img/overlays/04.png
--------------------------------------------------------------------------------
/img/overlays/05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/img/overlays/05.png
--------------------------------------------------------------------------------
/img/overlays/06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/img/overlays/06.png
--------------------------------------------------------------------------------
/img/overlays/07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/img/overlays/07.png
--------------------------------------------------------------------------------
/img/overlays/08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/img/overlays/08.png
--------------------------------------------------------------------------------
/img/overlays/09.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/img/overlays/09.png
--------------------------------------------------------------------------------
/img/sample.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/img/sample.jpg
--------------------------------------------------------------------------------
/img/svg/arrow_left.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/img/svg/arrow_right.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/img/svg/flags.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mdbootstrap/Landing-Page-Template-Bootstrap/a72186574fdf5023b228f372cf9720a4a9c09322/img/svg/flags.png
--------------------------------------------------------------------------------
/js/addons/datatables-select.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | Select for DataTables 1.2.7
3 | 2015-2018 SpryMedia Ltd - datatables.net/license/mit
4 | */
5 | (function(e){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(i){return e(i,window,document)}):"object"===typeof exports?module.exports=function(i,l){i||(i=window);if(!l||!l.fn.dataTable)l=require("datatables.net")(i,l).$;return e(l,i,i.document)}:e(jQuery,window,document)})(function(e,i,l,h){function u(a,c,b){var d;d=function(b,c){if(b>c)var d=c,c=b,b=d;var f=!1;return a.columns(":visible").indexes().filter(function(a){a===b&&(f=!0);return a===c?(f=!1,!0):f})};var f=function(b,c){var d=a.rows({search:"applied"}).indexes();if(d.indexOf(b)>d.indexOf(c))var f=c,c=b,b=f;var e=!1;return d.filter(function(a){a===b&&(e=!0);return a===c?(e=!1,!0):e})};!a.cells({selected:!0}).any()&&!b?(d=d(0,c.column),b=f(0,c.row)):(d=d(b.column,c.column),b=f(b.row,c.row));b=a.cells(b,d).flatten();a.cells(c,{selected:!0}).any()?a.cells(b).deselect():a.cells(b).select()}function q(a){var c=a.settings()[0]._select.selector;e(a.table().container()).off("mousedown.dtSelect",c).off("mouseup.dtSelect",c).off("click.dtSelect",c);e("body").off("click.dtSelect"+a.table().node().id)}function x(a){var c=e(a.table().container()),b=a.settings()[0],d=b._select.selector,f;c.on("mousedown.dtSelect",d,function(b){if(b.shiftKey||b.metaKey||b.ctrlKey)c.css("-moz-user-select","none").one("selectstart.dtSelect",d,function(){return!1});i.getSelection&&(f=i.getSelection())}).on("mouseup.dtSelect",d,function(){c.css("-moz-user-select","")}).on("click.dtSelect",d,function(b){var c=a.select.items();if(i.getSelection){var d=i.getSelection();if((!d.anchorNode||e(d.anchorNode).closest("table")[0]===a.table().node())&&d!==f)return}var d=a.settings()[0],g=a.settings()[0].oClasses.sWrapper.replace(/ /g,".");if(e(b.target).closest("div."+g)[0]==a.table().container()&&(g=a.cell(e(b.target).closest("td, th")),g.any())){var h=e.Event("user-select.dt");j(a,h,[c,g,b]);h.isDefaultPrevented()||(h=g.index(),"row"===c?(c=h.row,r(b,a,d,"row",c)):"column"===c?(c=g.index().column,r(b,a,d,"column",c)):"cell"===c&&(c=g.index(),r(b,a,d,"cell",c)),d._select_lastCell=h)}});e("body").on("click.dtSelect"+a.table().node().id,function(c){b._select.blurable&&!e(c.target).parents().filter(a.table().container()).length&&(0!==e(c.target).parents("html").length&&!e(c.target).parents("div.DTE").length)&&o(b,!0)})}function j(a,c,b,d){if(!d||a.flatten().length)"string"===typeof c&&(c+=".dt"),b.unshift(a),e(a.table().node()).trigger(c,b)}function y(a){var c=a.settings()[0];if(c._select.info&&c.aanFeatures.i&&"api"!==a.select.style()){var b=a.rows({selected:!0}).flatten().length,d=a.columns({selected:!0}).flatten().length,f=a.cells({selected:!0}).flatten().length,k=function(b,c,d){b.append(e('').append(a.i18n("select."+c+"s",{_:"%d "+c+"s selected","0":"",1:"1 "+c+" selected"},d)))};e.each(c.aanFeatures.i,function(c,a){var a=e(a),g=e('');k(g,"row",b);k(g,"column",d);k(g,"cell",f);var h=a.children("span.select-info");h.length&&h.remove();""!==g.text()&&a.append(g)})}}function z(a,c,b,d){var f=a[c+"s"]({search:"applied"}).indexes(),d=e.inArray(d,f),k=e.inArray(b,f);if(!a[c+"s"]({selected:!0}).any()&&-1===d)f.splice(e.inArray(b,f)+1,f.length);else{if(d>k)var g=k,k=d,d=g;f.splice(k+1,f.length);f.splice(0,d)}a[c](b,{selected:!0}).any()?(f.splice(e.inArray(b,f),1),a[c+"s"](f).deselect()):a[c+"s"](f).select()}function o(a,c){if(c||"single"===a._select.style){var b=new g.Api(a);b.rows({selected:!0}).deselect();b.columns({selected:!0}).deselect();b.cells({selected:!0}).deselect()}}function r(a,c,b,d,f){var e=c.select.style(),g=c[d](f,{selected:!0}).any();"os"===e?a.ctrlKey||a.metaKey?c[d](f).select(!g):a.shiftKey?"cell"===d?u(c,f,b._select_lastCell||null):z(c,d,f,b._select_lastCell?b._select_lastCell[d]:null):(a=c[d+"s"]({selected:!0}),g&&1===a.flatten().length?c[d](f).deselect():(a.deselect(),c[d](f).select())):"multi+shift"==e?a.shiftKey?"cell"===d?u(c,f,b._select_lastCell||null):z(c,d,f,b._select_lastCell?b._select_lastCell[d]:null):c[d](f).select(!g):c[d](f).select(!g)}function p(a,c){return function(b){return b.i18n("buttons."+a,c)}}function s(a){a=a._eventNamespace;return"draw.dt.DT"+a+" select.dt.DT"+a+" deselect.dt.DT"+a}var g=e.fn.dataTable;g.select={};g.select.version="1.2.7";g.select.init=function(a){var c=a.settings()[0],b=c.oInit.select,d=g.defaults.select,b=b===h?d:b,d="row",f="api",k=!1,v=!0,w="td, th",i="selected",j=!1;c._select={};if(!0===b)f="os",j=!0;else if("string"===typeof b)f=b,j=!0;else if(e.isPlainObject(b)&&(b.blurable!==h&&(k=b.blurable),b.info!==h&&(v=b.info),b.items!==h&&(d=b.items),b.style!==h&&(f=b.style,j=!0),b.selector!==h&&(w=b.selector),b.className!==h))i=b.className;a.select.selector(w);a.select.items(d);a.select.style(f);a.select.blurable(k);a.select.info(v);c._select.className=i;e.fn.dataTable.ext.order["select-checkbox"]=function(b,c){return this.api().column(c,{order:"index"}).nodes().map(function(c){return"row"===b._select.items?e(c).parent().hasClass(b._select.className):"cell"===b._select.items?e(c).hasClass(b._select.className):!1})};!j&&e(a.table().node()).hasClass("selectable")&&a.select.style("os")};e.each([{type:"row",prop:"aoData"},{type:"column",prop:"aoColumns"}],function(a,c){g.ext.selector[c.type].push(function(b,a,f){var a=a.selected,e,g=[];if(!0!==a&&!1!==a)return f;for(var h=0,i=f.length;h');
9 | $this.hasClass('md-progress') ? selector.children().children().addClass('md-progress-bar-text') : selector.children().children().addClass('progress-bar-text');
10 | (progressValue !== 100) ? selector.children().children().text(`${progressValue}%`) : selector.children().children().html('');
11 | }
12 |
13 | function set(selector, value) {
14 | selector.children().removeClass('success fail active');
15 | selector.children().attr('aria-valuenow', value);
16 | init(selector);
17 | if (value > 100) {
18 | return false;
19 | } else if (value === 100) {
20 | selector.children().addClass('success');
21 | } else if (value < 30) {
22 | selector.children().addClass('fail');
23 | } else {
24 | selector.children().addClass('active');
25 | }
26 | return true;
27 | }
28 |
29 | set($this, givenValue);
30 | };
31 | }(jQuery));
32 |
--------------------------------------------------------------------------------
/js/addons/progressBar.min.js:
--------------------------------------------------------------------------------
1 | (function($){$.fn.progressBar=function(givenValue){const $this=$(this);function init(selector){const progressValue=selector.children().attr('aria-valuenow');selector.children().width(`${progressValue}%`);selector.children().html('');$this.hasClass('md-progress')?selector.children().children().addClass('md-progress-bar-text'):selector.children().children().addClass('progress-bar-text');(progressValue!==100)?selector.children().children().text(`${progressValue}%`):selector.children().children().html('')}
2 | function set(selector,value){selector.children().removeClass('success fail active');selector.children().attr('aria-valuenow',value);init(selector);if(value>100){return!1}else if(value===100){selector.children().addClass('success')}else if(value<30){selector.children().addClass('fail')}else{selector.children().addClass('active')}
3 | return!0}
4 | set($this,givenValue)}}(jQuery))
--------------------------------------------------------------------------------
/js/addons/rating.js:
--------------------------------------------------------------------------------
1 | (function ($) {
2 | $.fn.mdbRate = function () {
3 | var $stars;
4 | // Custom whitelist to allow for using HTML tags in popover content
5 | var myDefaultWhiteList = $.fn.tooltip.Constructor.Default.whiteList
6 | myDefaultWhiteList.textarea = [];
7 | myDefaultWhiteList.button = [];
8 |
9 | var $container = $(this);
10 |
11 | var titles = ['Very bad', 'Poor', 'OK', 'Good', 'Excellent'];
12 |
13 | for (var i = 0; i < 5; i++) {
14 | $container.append(``);
16 | }
17 |
18 | $stars = $container.children();
19 |
20 | if ($container.hasClass('rating-faces')) {
21 | $stars.addClass('far fa-meh-blank');
22 | } else if ($container.hasClass('empty-stars')) {
23 | $stars.addClass('far fa-star');
24 | } else {
25 | $stars.addClass('fas fa-star');
26 | }
27 |
28 | $stars.on('mouseover', function () {
29 | var index = $(this).attr('data-index');
30 | markStarsAsActive(index);
31 | });
32 |
33 | function markStarsAsActive(index) {
34 | unmarkActive();
35 |
36 | for (var i = 0; i <= index; i++) {
37 |
38 | if ($container.hasClass('rating-faces')) {
39 | $($stars.get(i)).removeClass('fa-meh-blank');
40 | $($stars.get(i)).addClass('live');
41 |
42 | switch (index) {
43 | case '0':
44 | $($stars.get(i)).addClass('fa-angry');
45 | break;
46 | case '1':
47 | $($stars.get(i)).addClass('fa-frown');
48 | break;
49 | case '2':
50 | $($stars.get(i)).addClass('fa-meh');
51 | break;
52 | case '3':
53 | $($stars.get(i)).addClass('fa-smile');
54 | break;
55 | case '4':
56 | $($stars.get(i)).addClass('fa-laugh');
57 | break;
58 | }
59 |
60 | } else if ($container.hasClass('empty-stars')) {
61 | $($stars.get(i)).addClass('fas');
62 | switch (index) {
63 | case '0':
64 | $($stars.get(i)).addClass('oneStar');
65 | break;
66 | case '1':
67 | $($stars.get(i)).addClass('twoStars');
68 | break;
69 | case '2':
70 | $($stars.get(i)).addClass('threeStars');
71 | break;
72 | case '3':
73 | $($stars.get(i)).addClass('fourStars');
74 | break;
75 | case '4':
76 | $($stars.get(i)).addClass('fiveStars');
77 | break;
78 | }
79 | } else {
80 | $($stars.get(i)).addClass('amber-text');
81 |
82 | }
83 | }
84 | }
85 |
86 | function unmarkActive() {
87 | $stars.parent().hasClass('rating-faces') ? $stars.addClass('fa-meh-blank') : $stars;
88 | $container.hasClass('empty-stars') ? $stars.removeClass('fas') : $container;
89 | $stars.removeClass('fa-angry fa-frown fa-meh fa-smile fa-laugh live oneStar twoStars threeStars fourStars fiveStars amber-text');
90 | }
91 |
92 | $stars.on('click', function () {
93 | $stars.popover('hide');
94 | });
95 |
96 | // Submit, you can add some extra custom code here
97 | // ex. to send the information to the server
98 | $container.on('click', '#voteSubmitButton', function () {
99 | $stars.popover('hide');
100 | });
101 |
102 | // Cancel, just close the popover
103 | $container.on('click', '#closePopoverButton', function () {
104 | $stars.popover('hide');
105 | });
106 |
107 | if ($container.hasClass('feedback')) {
108 |
109 | $(function () {
110 | $stars.popover({
111 | // Append popover to #rateMe to allow handling form inside the popover
112 | container: $container,
113 | // Custom content for popover
114 | content: `
`
115 | });
116 | })
117 | }
118 |
119 | $stars.tooltip();
120 | }
121 | })(jQuery);
--------------------------------------------------------------------------------
/js/addons/rating.min.js:
--------------------------------------------------------------------------------
1 | (function($){$.fn.mdbRate=function(){var $stars;var myDefaultWhiteList=$.fn.tooltip.Constructor.Default.whiteList
2 | myDefaultWhiteList.textarea=[];myDefaultWhiteList.button=[];var $container=$(this);var titles=['Very bad','Poor','OK','Good','Excellent'];for(var i=0;i<5;i++){$container.append(``)}
4 | $stars=$container.children();if($container.hasClass('rating-faces')){$stars.addClass('far fa-meh-blank')}else if($container.hasClass('empty-stars')){$stars.addClass('far fa-star')}else{$stars.addClass('fas fa-star')}
5 | $stars.on('mouseover',function(){var index=$(this).attr('data-index');markStarsAsActive(index)});function markStarsAsActive(index){unmarkActive();for(var i=0;i<=index;i++){if($container.hasClass('rating-faces')){$($stars.get(i)).removeClass('fa-meh-blank');$($stars.get(i)).addClass('live');switch(index){case '0':$($stars.get(i)).addClass('fa-angry');break;case '1':$($stars.get(i)).addClass('fa-frown');break;case '2':$($stars.get(i)).addClass('fa-meh');break;case '3':$($stars.get(i)).addClass('fa-smile');break;case '4':$($stars.get(i)).addClass('fa-laugh');break}}else if($container.hasClass('empty-stars')){$($stars.get(i)).addClass('fas');switch(index){case '0':$($stars.get(i)).addClass('oneStar');break;case '1':$($stars.get(i)).addClass('twoStars');break;case '2':$($stars.get(i)).addClass('threeStars');break;case '3':$($stars.get(i)).addClass('fourStars');break;case '4':$($stars.get(i)).addClass('fiveStars');break}}else{$($stars.get(i)).addClass('amber-text')}}}
6 | function unmarkActive(){$stars.parent().hasClass('rating-faces')?$stars.addClass('fa-meh-blank'):$stars;$container.hasClass('empty-stars')?$stars.removeClass('fas'):$container;$stars.removeClass('fa-angry fa-frown fa-meh fa-smile fa-laugh live oneStar twoStars threeStars fourStars fiveStars amber-text')}
7 | $stars.on('click',function(){$stars.popover('hide')});$container.on('click','#voteSubmitButton',function(){$stars.popover('hide')});$container.on('click','#closePopoverButton',function(){$stars.popover('hide')});if($container.hasClass('feedback')){$(function(){$stars.popover({container:$container,content:`
`})})}
8 | $stars.tooltip()}})(jQuery)
--------------------------------------------------------------------------------
/js/modules/bs-custom-file-input.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * bsCustomFileInput v1.3.2 (https://github.com/Johann-S/bs-custom-file-input)
3 | * Copyright 2018 - 2019 Johann-S
4 | * Licensed under MIT (https://github.com/Johann-S/bs-custom-file-input/blob/master/LICENSE)
5 | */
6 | (function (global, factory) {
7 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
8 | typeof define === 'function' && define.amd ? define(factory) :
9 | (global = global || self, global.bsCustomFileInput = factory());
10 | }(this, function () {
11 | 'use strict';
12 |
13 | var Selector = {
14 | CUSTOMFILE: '.custom-file input[type="file"]',
15 | CUSTOMFILELABEL: '.custom-file-label',
16 | FORM: 'form',
17 | INPUT: 'input'
18 | };
19 |
20 | var textNodeType = 3;
21 |
22 | var getDefaultText = function getDefaultText(input) {
23 | var defaultText = '';
24 | var label = input.parentNode.querySelector(Selector.CUSTOMFILELABEL);
25 |
26 | if (label) {
27 | defaultText = label.innerHTML;
28 | }
29 |
30 | return defaultText;
31 | };
32 |
33 | var findFirstChildNode = function findFirstChildNode(element) {
34 | if (element.childNodes.length > 0) {
35 | var childNodes = [].slice.call(element.childNodes);
36 |
37 | for (var i = 0; i < childNodes.length; i++) {
38 | var node = childNodes[i];
39 |
40 | if (node.nodeType !== textNodeType) {
41 | return node;
42 | }
43 | }
44 | }
45 |
46 | return element;
47 | };
48 |
49 | var restoreDefaultText = function restoreDefaultText(input) {
50 | var defaultText = input.bsCustomFileInput.defaultText;
51 | var label = input.parentNode.querySelector(Selector.CUSTOMFILELABEL);
52 |
53 | if (label) {
54 | var element = findFirstChildNode(label);
55 | element.innerHTML = defaultText;
56 | }
57 | };
58 |
59 | var fileApi = !!window.File;
60 | var FAKE_PATH = 'fakepath';
61 | var FAKE_PATH_SEPARATOR = '\\';
62 |
63 | var getSelectedFiles = function getSelectedFiles(input) {
64 | if (input.hasAttribute('multiple') && fileApi) {
65 | return [].slice.call(input.files).map(function (file) {
66 | return file.name;
67 | }).join(', ');
68 | }
69 |
70 | if (input.value.indexOf(FAKE_PATH) !== -1) {
71 | var splittedValue = input.value.split(FAKE_PATH_SEPARATOR);
72 | return splittedValue[splittedValue.length - 1];
73 | }
74 |
75 | return input.value;
76 | };
77 |
78 | function handleInputChange() {
79 | var label = this.parentNode.querySelector(Selector.CUSTOMFILELABEL);
80 |
81 | if (label) {
82 | var element = findFirstChildNode(label);
83 | var inputValue = getSelectedFiles(this);
84 |
85 | if (inputValue.length) {
86 | element.innerHTML = inputValue;
87 | } else {
88 | restoreDefaultText(this);
89 | }
90 | }
91 | }
92 |
93 | function handleFormReset() {
94 | var customFileList = [].slice.call(this.querySelectorAll(Selector.INPUT)).filter(function (input) {
95 | return !!input.bsCustomFileInput;
96 | });
97 |
98 | for (var i = 0, len = customFileList.length; i < len; i++) {
99 | restoreDefaultText(customFileList[i]);
100 | }
101 | }
102 |
103 | var customProperty = 'bsCustomFileInput';
104 | var Event = {
105 | FORMRESET: 'reset',
106 | INPUTCHANGE: 'change'
107 | };
108 | var bsCustomFileInput = {
109 | init: function init(inputSelector, formSelector) {
110 | if (inputSelector === void 0) {
111 | inputSelector = Selector.CUSTOMFILE;
112 | }
113 |
114 | if (formSelector === void 0) {
115 | formSelector = Selector.FORM;
116 | }
117 |
118 | var customFileInputList = [].slice.call(document.querySelectorAll(inputSelector));
119 | var formList = [].slice.call(document.querySelectorAll(formSelector));
120 |
121 | for (var i = 0, len = customFileInputList.length; i < len; i++) {
122 | var input = customFileInputList[i];
123 | Object.defineProperty(input, customProperty, {
124 | value: {
125 | defaultText: getDefaultText(input)
126 | },
127 | writable: true
128 | });
129 | handleInputChange.call(input);
130 | input.addEventListener(Event.INPUTCHANGE, handleInputChange);
131 | }
132 |
133 | for (var _i = 0, _len = formList.length; _i < _len; _i++) {
134 | formList[_i].addEventListener(Event.FORMRESET, handleFormReset);
135 |
136 | Object.defineProperty(formList[_i], customProperty, {
137 | value: true,
138 | writable: true
139 | });
140 | }
141 | },
142 | destroy: function destroy() {
143 | var formList = [].slice.call(document.querySelectorAll(Selector.FORM)).filter(function (form) {
144 | return !!form.bsCustomFileInput;
145 | });
146 | var customFileInputList = [].slice.call(document.querySelectorAll(Selector.INPUT)).filter(function (input) {
147 | return !!input.bsCustomFileInput;
148 | });
149 |
150 | for (var i = 0, len = customFileInputList.length; i < len; i++) {
151 | var input = customFileInputList[i];
152 | restoreDefaultText(input);
153 | input[customProperty] = undefined;
154 | input.removeEventListener(Event.INPUTCHANGE, handleInputChange);
155 | }
156 |
157 | for (var _i2 = 0, _len2 = formList.length; _i2 < _len2; _i2++) {
158 | formList[_i2].removeEventListener(Event.FORMRESET, handleFormReset);
159 |
160 | formList[_i2][customProperty] = undefined;
161 | }
162 | }
163 | };
164 |
165 | return bsCustomFileInput;
166 |
167 | }));
168 | //# sourceMappingURL=bs-custom-file-input.js.map
169 |
170 | document.addEventListener("DOMContentLoaded", function () {
171 |
172 | bsCustomFileInput.init()
173 | });
174 |
--------------------------------------------------------------------------------
/js/modules/default-file-input.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | (function ($) {
4 | $('.input-default-wrapper').on('change', '.input-default-js', function (e) {
5 |
6 | var $this = $(e.target),
7 | $label = $this.next('label'),
8 | $files = $this[0].files;
9 | var fileName = '';
10 |
11 | if ($files && $files.length > 1) {
12 | fileName = ($this.attr('data-multiple-target') || '').replace('{target}', $files.length);
13 | } else if (e.target.value) {
14 | fileName = e.target.value.split('\\').pop();
15 | }
16 | fileName ? $label.find('.span-choose-file').html(fileName) : $label.html($label.html());
17 | });
18 | })(jQuery);
--------------------------------------------------------------------------------
/js/modules/enhanced-modals.js:
--------------------------------------------------------------------------------
1 | /*
2 | Enhanced Bootstrap Modals
3 | https://mdbootstrap.com
4 | office@mdbootstrap.com
5 | */
6 |
7 | (function($){
8 | $('body').on('shown.bs.modal', '.modal', function() {
9 | if(!$('.modal-backdrop').length) {
10 |
11 | $modal_dialog = $(this).children('.modal-dialog')
12 |
13 | if($modal_dialog.hasClass('modal-side')) {
14 | $(this).addClass('modal-scrolling');
15 | $('body').addClass('scrollable');
16 | }
17 |
18 | if($modal_dialog.hasClass('modal-frame')) {
19 | $(this).addClass('modal-content-clickable');
20 | $('body').addClass('scrollable');
21 | }
22 | }
23 | });
24 | $('body').on('hidden.bs.modal', '.modal', function() {
25 | $('body').removeClass('scrollable');
26 | });
27 | })(jQuery);
28 |
--------------------------------------------------------------------------------
/js/modules/forms-free.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | var _this = void 0;
4 |
5 | (function ($) {
6 | var inputSelector = "".concat(['text', 'password', 'email', 'url', 'tel', 'number', 'search', 'search-md'].map(function (selector) {
7 | return "input[type=".concat(selector, "]");
8 | }).join(', '), ", textarea");
9 | var textAreaSelector = '.materialize-textarea';
10 |
11 | var updateTextFields = function updateTextFields($input) {
12 | var $labelAndIcon = $input.siblings('label, i');
13 | var hasValue = $input.val().length;
14 | var hasPlaceholder = $input.attr('placeholder');
15 | var addOrRemove = "".concat(hasValue || hasPlaceholder ? 'add' : 'remove', "Class");
16 | $labelAndIcon[addOrRemove]('active');
17 | };
18 |
19 | var validateField = function validateField($input) {
20 | if ($input.hasClass('validate')) {
21 | var value = $input.val();
22 | var noValue = !value.length;
23 | var isValid = !$input[0].validity.badInput;
24 |
25 | if (noValue && isValid) {
26 | $input.removeClass('valid').removeClass('invalid');
27 | } else {
28 | var valid = $input.is(':valid');
29 | var length = Number($input.attr('length')) || 0;
30 |
31 | if (valid && (!length || length > value.length)) {
32 | $input.removeClass('invalid').addClass('valid');
33 | } else {
34 | $input.removeClass('valid').addClass('invalid');
35 | }
36 | }
37 | }
38 | };
39 |
40 | var textAreaAutoResize = function textAreaAutoResize() {
41 | var $textarea = $(_this);
42 |
43 | if ($textarea.val().length) {
44 | var $hiddenDiv = $('.hiddendiv');
45 | var fontFamily = $textarea.css('font-family');
46 | var fontSize = $textarea.css('font-size');
47 |
48 | if (fontSize) {
49 | $hiddenDiv.css('font-size', fontSize);
50 | }
51 |
52 | if (fontFamily) {
53 | $hiddenDiv.css('font-family', fontFamily);
54 | }
55 |
56 | if ($textarea.attr('wrap') === 'off') {
57 | $hiddenDiv.css('overflow-wrap', 'normal').css('white-space', 'pre');
58 | }
59 |
60 | $hiddenDiv.text("".concat($textarea.val(), "\n"));
61 | var content = $hiddenDiv.html().replace(/\n/g, '
');
62 | $hiddenDiv.html(content); // When textarea is hidden, width goes crazy.
63 | // Approximate with half of window size
64 |
65 | $hiddenDiv.css('width', $textarea.is(':visible') ? $textarea.width() : $(window).width() / 2);
66 | $textarea.css('height', $hiddenDiv.height());
67 | }
68 | };
69 |
70 | $(inputSelector).each(function (index, input) {
71 | var $this = $(input);
72 | var $labelAndIcon = $this.siblings('label, i');
73 | updateTextFields($this);
74 | var isValid = input.validity.badInput;
75 |
76 | if (isValid) {
77 | $labelAndIcon.addClass('active');
78 | }
79 | });
80 | $(document).on('focus', inputSelector, function (e) {
81 | $(e.target).siblings('label, i').addClass('active');
82 | });
83 | $(document).on('blur', inputSelector, function (e) {
84 | var $this = $(e.target);
85 | var noValue = !$this.val();
86 | var invalid = !e.target.validity.badInput;
87 | var noPlaceholder = $this.attr('placeholder') === undefined;
88 |
89 | if (noValue && invalid && noPlaceholder) {
90 | $this.siblings('label, i').removeClass('active');
91 | }
92 |
93 | validateField($this);
94 | });
95 | $(document).on('change', inputSelector, function (e) {
96 | var $this = $(e.target);
97 | updateTextFields($this);
98 | validateField($this);
99 | });
100 | $('input[autofocus]').siblings('label, i').addClass('active');
101 | $(document).on('reset', function (e) {
102 | var $formReset = $(e.target);
103 |
104 | if ($formReset.is('form')) {
105 | var $formInputs = $formReset.find(inputSelector);
106 | $formInputs.removeClass('valid').removeClass('invalid').each(function (index, input) {
107 | var $this = $(input);
108 | var noDefaultValue = !$this.val();
109 | var noPlaceholder = !$this.attr('placeholder');
110 |
111 | if (noDefaultValue && noPlaceholder) {
112 | $this.siblings('label, i').removeClass('active');
113 | }
114 | });
115 | $formReset.find('select.initialized').each(function (index, select) {
116 | var $select = $(select);
117 | var $visibleInput = $select.siblings('input.select-dropdown');
118 | var defaultValue = $select.children('[selected]').val();
119 | $select.val(defaultValue);
120 | $visibleInput.val(defaultValue);
121 | });
122 | }
123 | });
124 |
125 | function init() {
126 | var $text = $('.md-textarea-auto');
127 |
128 | if ($text.length) {
129 | var observe;
130 |
131 | if (window.attachEvent) {
132 | observe = function observe(element, event, handler) {
133 | element.attachEvent("on".concat(event), handler);
134 | };
135 | } else {
136 | observe = function observe(element, event, handler) {
137 | element.addEventListener(event, handler, false);
138 | };
139 | }
140 |
141 | $text.each(function () {
142 | var self = this;
143 |
144 | function resize() {
145 | self.style.height = 'auto';
146 | self.style.height = "".concat(self.scrollHeight, "px");
147 | }
148 |
149 | function delayedResize() {
150 | window.setTimeout(resize, 0);
151 | }
152 |
153 | observe(self, 'change', resize);
154 | observe(self, 'cut', delayedResize);
155 | observe(self, 'paste', delayedResize);
156 | observe(self, 'drop', delayedResize);
157 | observe(self, 'keydown', delayedResize);
158 | resize();
159 | });
160 | }
161 | }
162 |
163 | init();
164 | var $body = $('body');
165 |
166 | if (!$('.hiddendiv').first().length) {
167 | var $hiddenDiv = $('');
168 | $body.append($hiddenDiv);
169 | }
170 |
171 | $(textAreaSelector).each(textAreaAutoResize);
172 | $body.on('keyup keydown', textAreaSelector, textAreaAutoResize);
173 | })(jQuery);
--------------------------------------------------------------------------------
/js/modules/jquery.easing.js:
--------------------------------------------------------------------------------
1 | /*
2 | * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
3 | *
4 | * Uses the built in easing capabilities added In jQuery 1.1
5 | * to offer multiple easing options
6 | *
7 | * TERMS OF USE - jQuery Easing
8 | *
9 | * Open source under the BSD License.
10 | *
11 | * Copyright © 2008 George McGinley Smith
12 | * All rights reserved.
13 | *
14 | * Redistribution and use in source and binary forms, with or without modification,
15 | * are permitted provided that the following conditions are met:
16 | *
17 | * Redistributions of source code must retain the above copyright notice, this list of
18 | * conditions and the following disclaimer.
19 | * Redistributions in binary form must reproduce the above copyright notice, this list
20 | * of conditions and the following disclaimer in the documentation and/or other materials
21 | * provided with the distribution.
22 | *
23 | * Neither the name of the author nor the names of contributors may be used to endorse
24 | * or promote products derived from this software without specific prior written permission.
25 | *
26 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
27 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
28 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
29 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
31 | * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
32 | * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
33 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
34 | * OF THE POSSIBILITY OF SUCH DAMAGE.
35 | *
36 | */
37 |
38 | // t: current time, b: begInnIng value, c: change In value, d: duration
39 | jQuery.easing['jswing'] = jQuery.easing['swing'];
40 |
41 | jQuery.extend( jQuery.easing,
42 | {
43 | def: 'easeOutQuad',
44 | swing: function (x, t, b, c, d) {
45 | //alert(jQuery.easing.default);
46 | return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
47 | },
48 | easeInQuad: function (x, t, b, c, d) {
49 | return c*(t/=d)*t + b;
50 | },
51 | easeOutQuad: function (x, t, b, c, d) {
52 | return -c *(t/=d)*(t-2) + b;
53 | },
54 | easeInOutQuad: function (x, t, b, c, d) {
55 | if ((t/=d/2) < 1) return c/2*t*t + b;
56 | return -c/2 * ((--t)*(t-2) - 1) + b;
57 | },
58 | easeInCubic: function (x, t, b, c, d) {
59 | return c*(t/=d)*t*t + b;
60 | },
61 | easeOutCubic: function (x, t, b, c, d) {
62 | return c*((t=t/d-1)*t*t + 1) + b;
63 | },
64 | easeInOutCubic: function (x, t, b, c, d) {
65 | if ((t/=d/2) < 1) return c/2*t*t*t + b;
66 | return c/2*((t-=2)*t*t + 2) + b;
67 | },
68 | easeInQuart: function (x, t, b, c, d) {
69 | return c*(t/=d)*t*t*t + b;
70 | },
71 | easeOutQuart: function (x, t, b, c, d) {
72 | return -c * ((t=t/d-1)*t*t*t - 1) + b;
73 | },
74 | easeInOutQuart: function (x, t, b, c, d) {
75 | if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
76 | return -c/2 * ((t-=2)*t*t*t - 2) + b;
77 | },
78 | easeInQuint: function (x, t, b, c, d) {
79 | return c*(t/=d)*t*t*t*t + b;
80 | },
81 | easeOutQuint: function (x, t, b, c, d) {
82 | return c*((t=t/d-1)*t*t*t*t + 1) + b;
83 | },
84 | easeInOutQuint: function (x, t, b, c, d) {
85 | if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
86 | return c/2*((t-=2)*t*t*t*t + 2) + b;
87 | },
88 | easeInSine: function (x, t, b, c, d) {
89 | return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
90 | },
91 | easeOutSine: function (x, t, b, c, d) {
92 | return c * Math.sin(t/d * (Math.PI/2)) + b;
93 | },
94 | easeInOutSine: function (x, t, b, c, d) {
95 | return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
96 | },
97 | easeInExpo: function (x, t, b, c, d) {
98 | return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
99 | },
100 | easeOutExpo: function (x, t, b, c, d) {
101 | return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
102 | },
103 | easeInOutExpo: function (x, t, b, c, d) {
104 | if (t==0) return b;
105 | if (t==d) return b+c;
106 | if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
107 | return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
108 | },
109 | easeInCirc: function (x, t, b, c, d) {
110 | return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
111 | },
112 | easeOutCirc: function (x, t, b, c, d) {
113 | return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
114 | },
115 | easeInOutCirc: function (x, t, b, c, d) {
116 | if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
117 | return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
118 | },
119 | easeInElastic: function (x, t, b, c, d) {
120 | var s=1.70158;var p=0;var a=c;
121 | if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
122 | if (a < Math.abs(c)) { a=c; var s=p/4; }
123 | else var s = p/(2*Math.PI) * Math.asin (c/a);
124 | return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
125 | },
126 | easeOutElastic: function (x, t, b, c, d) {
127 | var s=1.70158;var p=0;var a=c;
128 | if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
129 | if (a < Math.abs(c)) { a=c; var s=p/4; }
130 | else var s = p/(2*Math.PI) * Math.asin (c/a);
131 | return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
132 | },
133 | easeInOutElastic: function (x, t, b, c, d) {
134 | var s=1.70158;var p=0;var a=c;
135 | if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);
136 | if (a < Math.abs(c)) { a=c; var s=p/4; }
137 | else var s = p/(2*Math.PI) * Math.asin (c/a);
138 | if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
139 | return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
140 | },
141 | easeInBack: function (x, t, b, c, d, s) {
142 | if (s == undefined) s = 1.70158;
143 | return c*(t/=d)*t*((s+1)*t - s) + b;
144 | },
145 | easeOutBack: function (x, t, b, c, d, s) {
146 | if (s == undefined) s = 1.70158;
147 | return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
148 | },
149 | easeInOutBack: function (x, t, b, c, d, s) {
150 | if (s == undefined) s = 1.70158;
151 | if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
152 | return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
153 | },
154 | easeInBounce: function (x, t, b, c, d) {
155 | return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
156 | },
157 | easeOutBounce: function (x, t, b, c, d) {
158 | if ((t/=d) < (1/2.75)) {
159 | return c*(7.5625*t*t) + b;
160 | } else if (t < (2/2.75)) {
161 | return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
162 | } else if (t < (2.5/2.75)) {
163 | return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
164 | } else {
165 | return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
166 | }
167 | },
168 | easeInOutBounce: function (x, t, b, c, d) {
169 | if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
170 | return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
171 | }
172 | });
173 |
174 | /*
175 | *
176 | * TERMS OF USE - EASING EQUATIONS
177 | *
178 | * Open source under the BSD License.
179 | *
180 | * Copyright © 2001 Robert Penner
181 | * All rights reserved.
182 | *
183 | * Redistribution and use in source and binary forms, with or without modification,
184 | * are permitted provided that the following conditions are met:
185 | *
186 | * Redistributions of source code must retain the above copyright notice, this list of
187 | * conditions and the following disclaimer.
188 | * Redistributions in binary form must reproduce the above copyright notice, this list
189 | * of conditions and the following disclaimer in the documentation and/or other materials
190 | * provided with the distribution.
191 | *
192 | * Neither the name of the author nor the names of contributors may be used to endorse
193 | * or promote products derived from this software without specific prior written permission.
194 | *
195 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
196 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
197 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
198 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
199 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
200 | * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
201 | * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
202 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
203 | * OF THE POSSIBILITY OF SUCH DAMAGE.
204 | *
205 | */
--------------------------------------------------------------------------------
/js/modules/scrolling-navbar.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | (function ($) {
4 | var SCROLLING_NAVBAR_OFFSET_TOP = 50;
5 | $(window).on('scroll', function () {
6 | var $navbar = $('.navbar');
7 |
8 | if ($navbar.length) {
9 | if ($navbar.offset().top > SCROLLING_NAVBAR_OFFSET_TOP) {
10 | $('.scrolling-navbar').addClass('top-nav-collapse');
11 | } else {
12 | $('.scrolling-navbar').removeClass('top-nav-collapse');
13 | }
14 | }
15 | });
16 | })(jQuery);
--------------------------------------------------------------------------------
/js/modules/treeview.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | (function ($) {
4 | $.fn.mdbTreeview = function () {
5 | var $this = $(this);
6 |
7 | if ($this.hasClass('treeview')) {
8 | var $toggler = $this.find('.rotate');
9 | $.each($toggler, function (e) {
10 | $($toggler[e]).off('click');
11 | $($toggler[e]).on('click', function () {
12 | var $this = $(this);
13 | $this.siblings('.nested').toggleClass('active');
14 | $this.toggleClass('down');
15 | });
16 | });
17 | }
18 |
19 | if ($this.hasClass('treeview-animated')) {
20 | var $elements = $this.find('.treeview-animated-element');
21 | var $closed = $this.find('.closed');
22 | $this.find('.nested').hide();
23 | $closed.off('click');
24 | $closed.on('click', function () {
25 | var $this = $(this);
26 | var $target = $this.siblings('.nested');
27 | var $pointer = $this.children('.fa-angle-right');
28 | $this.toggleClass('open');
29 | $pointer.toggleClass('down');
30 | !$target.hasClass('active') ? $target.addClass('active').slideDown() : $target.removeClass('active').slideUp();
31 | return false;
32 | });
33 | $elements.off('click');
34 | $elements.on('click', function () {
35 | var $this = $(this);
36 | $this.hasClass('opened') ? $this.removeClass('opened') : ($elements.removeClass('opened'), $this.addClass('opened'));
37 | });
38 | }
39 |
40 | if ($this.hasClass('treeview-colorful')) {
41 | var _$elements = $this.find('.treeview-colorful-element');
42 |
43 | var $header = $this.find('.treeview-colorful-items-header');
44 | $this.find('.nested').hide();
45 | $header.off('click');
46 | $header.on('click', function () {
47 | var $this = $(this);
48 | var $target = $this.siblings('.nested');
49 | var $pointerPlus = $this.children('.fa-plus-circle');
50 | var $pointerMinus = $this.children('.fa-minus-circle');
51 | $this.toggleClass('open');
52 | $pointerPlus.removeClass('fa-plus-circle');
53 | $pointerPlus.addClass('fa-minus-circle');
54 | $pointerMinus.removeClass('fa-minus-circle');
55 | $pointerMinus.addClass('fa-plus-circle');
56 | !$target.hasClass('active') ? $target.addClass('active').slideDown() : $target.removeClass('active').slideUp();
57 | });
58 |
59 | _$elements.off('click');
60 |
61 | _$elements.on('click', function () {
62 | var $this = $(this);
63 | $this.hasClass('opened') ? _$elements.removeClass('opened') : (_$elements.removeClass('opened'), $this.addClass('opened'));
64 | });
65 | }
66 | };
67 | })(jQuery);
--------------------------------------------------------------------------------
/js/modules/wow.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var WOW;
4 |
5 | (function ($) {
6 |
7 | WOW = function WOW() {
8 |
9 | return {
10 |
11 | init: function init() {
12 |
13 | var animationName = [];
14 |
15 | var once = 1;
16 |
17 | function mdbWow() {
18 |
19 | var windowHeight = window.innerHeight;
20 | var scroll = window.scrollY;
21 |
22 | $('.wow').each(function () {
23 |
24 | if ($(this).css('visibility') == 'visible') {
25 | return;
26 | }
27 |
28 | if (windowHeight + scroll - 100 > getOffset(this) && scroll < getOffset(this) || windowHeight + scroll - 100 > getOffset(this) + $(this).height() && scroll < getOffset(this) + $(this).height() || windowHeight + scroll == $(document).height() && getOffset(this) + 100 > $(document).height()) {
29 |
30 | var index = $(this).index('.wow');
31 |
32 | var delay = $(this).attr('data-wow-delay');
33 |
34 | if (delay) {
35 |
36 | delay = $(this).attr('data-wow-delay').slice(0, -1
37 |
38 | );
39 | var self = this;
40 |
41 | var timeout = parseFloat(delay) * 1000;
42 |
43 | $(self).addClass('animated');
44 | $(self).css({
45 | 'visibility': 'visible'
46 | });
47 | $(self).css({
48 | 'animation-delay': delay
49 | });
50 | $(self).css({
51 | 'animation-name': animationName[index]
52 | });
53 |
54 | var removeTime = $(this).css('animation-duration').slice(0, -1) * 1000;
55 |
56 | if ($(this).attr('data-wow-delay')) {
57 |
58 | removeTime += $(this).attr('data-wow-delay').slice(0, -1) * 1000;
59 | }
60 |
61 | var self = this;
62 |
63 | setTimeout(function () {
64 |
65 | $(self).removeClass('animated');
66 | }, removeTime);
67 | } else {
68 |
69 | $(this).addClass('animated');
70 | $(this).css({
71 | 'visibility': 'visible'
72 | });
73 | $(this).css({
74 | 'animation-name': animationName[index]
75 | });
76 |
77 | var removeTime = $(this).css('animation-duration').slice(0, -1) * 1000;
78 |
79 | var self = this;
80 |
81 | setTimeout(function () {
82 |
83 | $(self).removeClass('animated');
84 | }, removeTime);
85 | }
86 | }
87 | });
88 | }
89 |
90 | function appear() {
91 |
92 | $('.wow').each(function () {
93 |
94 | var index = $(this).index('.wow');
95 |
96 | var delay = $(this).attr('data-wow-delay');
97 |
98 | if (delay) {
99 |
100 | delay = $(this).attr('data-wow-delay').slice(0, -1);
101 |
102 | var timeout = parseFloat(delay) * 1000;
103 |
104 | $(this).addClass('animated');
105 | $(this).css({
106 | 'visibility': 'visible'
107 | });
108 | $(this).css({
109 | 'animation-delay': delay + 's'
110 | });
111 | $(this).css({
112 | 'animation-name': animationName[index]
113 | });
114 | } else {
115 |
116 | $(this).addClass('animated');
117 | $(this).css({
118 | 'visibility': 'visible'
119 | });
120 | $(this).css({
121 | 'animation-name': animationName[index]
122 | });
123 | }
124 | });
125 | }
126 |
127 | function hide() {
128 |
129 | var windowHeight = window.innerHeight;
130 | var scroll = window.scrollY;
131 |
132 | $('.wow.animated').each(function () {
133 |
134 | if (windowHeight + scroll - 100 > getOffset(this) && scroll > getOffset(this) + 100 || windowHeight + scroll - 100 < getOffset(this) && scroll < getOffset(this) + 100 || getOffset(this) + $(this).height > $(document).height() - 100) {
135 |
136 | $(this).removeClass('animated');
137 | $(this).css({
138 | 'animation-name': 'none'
139 | });
140 | $(this).css({
141 | 'visibility': 'hidden'
142 | });
143 | } else {
144 |
145 | var removeTime = $(this).css('animation-duration').slice(0, -1) * 1000;
146 |
147 | if ($(this).attr('data-wow-delay')) {
148 |
149 | removeTime += $(this).attr('data-wow-delay').slice(0, -1) * 1000;
150 | }
151 |
152 | var self = this;
153 |
154 | setTimeout(function () {
155 |
156 | $(self).removeClass('animated');
157 | }, removeTime);
158 | }
159 | });
160 |
161 | mdbWow();
162 |
163 | once--;
164 | }
165 |
166 | function getOffset(elem) {
167 |
168 | var box = elem.getBoundingClientRect();
169 |
170 | var body = document.body;
171 | var docEl = document.documentElement;
172 |
173 | var scrollTop = window.pageYOffset || docEl.scrollTop || body.scrollTop;
174 |
175 | var clientTop = docEl.clientTop || body.clientTop || 0;
176 |
177 | var top = box.top + scrollTop - clientTop;
178 |
179 | return Math.round(top);
180 | }
181 |
182 | $('.wow').each(function () {
183 |
184 | $(this).css({
185 | 'visibility': 'hidden'
186 | });
187 | animationName[$(this).index('.wow')] = $(this).css('animation-name');
188 | $(this).css({
189 | 'animation-name': 'none'
190 | });
191 | });
192 |
193 | $(window).scroll(function () {
194 |
195 | if (once) {
196 |
197 | hide();
198 | } else {
199 |
200 | mdbWow();
201 | }
202 | });
203 |
204 | appear();
205 | }
206 | };
207 | };
208 | })(jQuery);
209 |
--------------------------------------------------------------------------------
/scss/_custom-skin.scss:
--------------------------------------------------------------------------------
1 | // Your custom skin
2 | // Skins
3 | $skins: () !default;
4 | $skins: map-merge((
5 | "test": (
6 | "skin-primary-color": #fff,
7 | "skin-navbar": #fff,
8 | "skin-footer-color": #fff,
9 | "skin-flat": #fff,
10 | "skin-accent": #fff,
11 | "skin-sidenav-item": #fff,
12 | "skin-sidenav-item-hover": #fff,
13 | "skin-gradient-start": #fff,
14 | "skin-gradient-end": #fff,
15 | "skin-mask-slight": #fff,
16 | "skin-mask-light": #fff,
17 | "skin-mask-strong": #fff,
18 | "skin-sn-child": #fff,
19 | "skin-btn-primary": #fff,
20 | "skin-btn-secondary": #fff,
21 | "skin-btn-default": #fff,
22 | "skin-text": #fff
23 | )
24 | ), $skins);
25 |
26 |
--------------------------------------------------------------------------------
/scss/_custom-styles.scss:
--------------------------------------------------------------------------------
1 | // Your custom styles
2 |
--------------------------------------------------------------------------------
/scss/_custom-variables.scss:
--------------------------------------------------------------------------------
1 | // Your custom variables
2 |
--------------------------------------------------------------------------------
/scss/addons/_datatables-select.scss:
--------------------------------------------------------------------------------
1 | /*
2 | * MDBootstrap integration with Datatables
3 | * Learn more: https://mdbootstrap.com/docs/jquery/tables/datatables/
4 | * About MDBootstrap: https://mdbootstrap.com/
5 | *
6 | * This combined file was created taking that code from this webstie:
7 | * https://cdn.datatables.net/select/1.2.7/css/select.dataTables.min.css
8 | *
9 | *
10 | * To rebuild or modify this file with the latest versions of the included
11 | * software please visit:
12 | * https://datatables.net/download/#bs4/dt-1.10.18
13 | *
14 | * Included libraries:
15 | * DataTables 1.10.18
16 | */
17 |
18 | table {
19 | &.dataTable {
20 | tbody > tr {
21 | &.selected,
22 | > .selected {
23 | background-color: #b0bed9;
24 | }
25 | }
26 | &.stripe, &.display {
27 | tbody > tr.odd {
28 | &.selected,
29 | > .selected {
30 | background-color: #acbad4;
31 | }
32 | }
33 | }
34 | &.hover, &.display {
35 | tbody > tr {
36 | &.selected:hover,
37 | > .selected:hover {
38 | background-color: #aab7d1;
39 | }
40 | }
41 | }
42 | &.order-column, &.display {
43 | tbody > tr {
44 | &.selected > {
45 | .sorting_1, .sorting_2, .sorting_3 {
46 | background-color: #acbad5;
47 | }
48 | }
49 | > .selected {
50 | background-color: #acbad5;
51 | }
52 | }
53 | }
54 | &.display, &.order-column.stripe {
55 | tbody > tr {
56 | &.odd.selected > .sorting_1 {
57 | background-color: #a6b4cd;
58 | }
59 | }
60 | }
61 | &.display tbody > tr.odd.selected > .sorting_2, &.order-column.stripe tbody > tr.odd.selected > .sorting_2 {
62 | background-color: #a8b5cf;
63 | }
64 | &.display tbody > tr.odd.selected > .sorting_3, &.order-column.stripe tbody > tr.odd.selected > .sorting_3 {
65 | background-color: #a9b7d1;
66 | }
67 | &.display tbody > tr.even.selected > .sorting_1, &.order-column.stripe tbody > tr.even.selected > .sorting_1 {
68 | background-color: #acbad5;
69 | }
70 | &.display tbody > tr.even.selected > .sorting_2, &.order-column.stripe tbody > tr.even.selected > .sorting_2 {
71 | background-color: #aebcd6;
72 | }
73 | &.display tbody > tr.even.selected > .sorting_3, &.order-column.stripe tbody > tr.even.selected > .sorting_3 {
74 | background-color: #afbdd8;
75 | }
76 | &.display tbody > tr.odd > .selected, &.order-column.stripe tbody > tr.odd > .selected {
77 | background-color: #a6b4cd;
78 | }
79 | &.display tbody > tr.even > .selected, &.order-column.stripe tbody > tr.even > .selected {
80 | background-color: #acbad5;
81 | }
82 | &.display tbody > tr.selected:hover > .sorting_1, &.order-column.hover tbody > tr.selected:hover > .sorting_1 {
83 | background-color: #a2aec7;
84 | }
85 | &.display tbody > tr.selected:hover > .sorting_2, &.order-column.hover tbody > tr.selected:hover > .sorting_2 {
86 | background-color: #a3b0c9;
87 | }
88 | &.display tbody > tr.selected:hover > .sorting_3, &.order-column.hover tbody > tr.selected:hover > .sorting_3 {
89 | background-color: #a5b2cb;
90 | }
91 | &.display, &.order-column.hover {
92 | tbody > tr {
93 | &:hover > .selected, > .selected:hover {
94 | background-color: #a2aec7;
95 | }
96 | }
97 | }
98 | tbody {
99 | td, th {
100 | &.select-checkbox {
101 | position: relative;
102 | &:before,
103 | &:after {
104 | position: absolute;
105 | top: 1.2em;
106 | left: 50%;
107 | box-sizing: border-box;
108 | display: block;
109 | width: 12px;
110 | height: 12px;
111 | }
112 | }
113 | }
114 | td.select-checkbox:before,
115 | th.select-checkbox:before {
116 | margin-top: 4px;
117 | margin-left: -6px;
118 | content: " ";
119 | border: 1px solid #000;
120 | border-radius: 3px;
121 | }
122 | }
123 | tr.selected {
124 | td.select-checkbox:after,
125 | th.select-checkbox:after {
126 | margin-top: 0;
127 | margin-left: -4px;
128 | text-align: center;
129 | text-shadow: 1px 1px #b0bed9, -1px -1px #b0bed9, 1px -1px #b0bed9, -1px 1px #b0bed9;
130 | content: "\2714";
131 | }
132 | }
133 | }
134 | }
135 |
136 | div.dataTables_wrapper span {
137 | &.select-info, &.select-item {
138 | margin-left: .5em;
139 | }
140 | }
141 |
142 | @media screen and (max-width: 640px) {
143 | div.dataTables_wrapper span {
144 | &.select-info, &.select-item {
145 | display: block;
146 | margin-left: 0;
147 | }
148 | }
149 | }
150 |
--------------------------------------------------------------------------------
/scss/addons/_datatables.scss:
--------------------------------------------------------------------------------
1 | /*
2 | * MDBootstrap integration with Datatables
3 | * Learn more: https://mdbootstrap.com/docs/jquery/tables/datatables/
4 | * About MDBootstrap: https://mdbootstrap.com/
5 | *
6 | * This combined file was created by the DataTables downloader builder:
7 | * https://datatables.net/download
8 | *
9 | * To rebuild or modify this file with the latest versions of the included
10 | * software please visit:
11 | * https://datatables.net/download/#bs4/dt-1.10.18
12 | *
13 | * Included libraries:
14 | * DataTables 1.10.18
15 | */
16 |
17 | div.dataTables_wrapper div {
18 | &.dataTables_length {
19 | select, input {
20 | width: auto;
21 | }
22 | &.d-flex.flex-row {
23 | label {
24 | margin-top: 1.2rem;
25 | margin-right: 1rem;
26 | }
27 | .select-wrapper.mdb-select {
28 | span, .select-dropdown {
29 | margin-top: 1rem;
30 | }
31 | }
32 | }
33 | }
34 | &.dataTables_length,
35 | &.dataTables_filter {
36 | label {
37 | padding-top: .5rem;
38 | padding-bottom: .5rem;
39 | font-weight: 400;
40 | text-align: left;
41 | }
42 | }
43 | &.dataTables_filter {
44 | select,
45 | input {
46 | width: auto;
47 | }
48 | input {
49 | display: inline-block;
50 | margin-left: .5rem;
51 | }
52 | text-align: right;
53 | }
54 | &.dataTables_info,
55 | &.dataTables_paginate {
56 | padding-top: 1rem;
57 | padding-bottom: 1rem;
58 | font-weight: 400;
59 | }
60 | &.dataTables_paginate {
61 | margin: 0;
62 | text-align: right;
63 | ul.pagination {
64 | -ms-flex-pack: end;
65 | -webkit-justify-content: flex-end;
66 | justify-content: flex-end;
67 | -webkit-box-pack: end;
68 | .page-item {
69 | &.active .page-link:focus {
70 | background-color: #4285f4;
71 | }
72 | .page-link:focus {
73 | -webkit-box-shadow: none;
74 | box-shadow: none;
75 | }
76 | }
77 | }
78 | }
79 | }
80 |
81 | @media (max-width: 767px) {
82 | div.dataTables_wrapper div {
83 | .dataTables_length, .dataTables_filter, .dataTables_info, .dataTables_paginate ul.pagination {
84 | -ms-flex-pack: center;
85 | -webkit-justify-content: center;
86 | justify-content: center;
87 | text-align: center;
88 | -webkit-box-pack: center;
89 | }
90 | }
91 | }
92 |
93 | .bs-select select {
94 | display: inline-block !important;
95 | }
96 |
97 | table.dataTable thead {
98 | cursor: pointer;
99 | > tr > {
100 | th,
101 | td {
102 | &.sorting_asc, &.sorting_desc, &.sorting {
103 | padding-right: 30px;
104 | }
105 | }
106 | th:active, td:active {
107 | outline: none;
108 | }
109 | }
110 | .sorting,
111 | .sorting_asc,
112 | .sorting_desc,
113 | .sorting_asc_disabled,
114 | .sorting_desc_disabled {
115 | position: relative;
116 | cursor: pointer;
117 | &:before, &:after {
118 | position: absolute;
119 | bottom: .9em;
120 | display: block;
121 | opacity: .3;
122 | }
123 | }
124 | .sorting:before, .sorting_asc:before, .sorting_desc:before, .sorting_asc_disabled:before, .sorting_desc_disabled:before {
125 | right: 1em;
126 | font-family: "Font Awesome\ 5 Free", sans-serif;
127 | font-size: 1rem;
128 | font-weight: 900;
129 | content: "\f0de";
130 | }
131 | .sorting:after, .sorting_asc:after, .sorting_desc:after, .sorting_asc_disabled:after, .sorting_desc_disabled:after {
132 | right: 16px;
133 | font-family: "Font Awesome\ 5 Free", sans-serif;
134 | font-size: 1rem;
135 | font-weight: 900;
136 | content: "\f0dd";
137 | }
138 | .sorting_asc:before, .sorting_desc:after {
139 | opacity: 1;
140 | }
141 | .sorting_asc_disabled:before, .sorting_desc_disabled:after {
142 | opacity: 0;
143 | }
144 | }
145 |
--------------------------------------------------------------------------------
/scss/addons/_directives.scss:
--------------------------------------------------------------------------------
1 | // Optional directives
2 | @each $key in (0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100) {
3 | .opacity-#{$key} {
4 | opacity: $key * .01;
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/scss/addons/_hierarchical-display.scss:
--------------------------------------------------------------------------------
1 | .zmd-hierarchical-display {
2 | visibility: hidden;
3 | &.in {
4 | visibility: visible;
5 | }
6 | }
7 | .zmd-hierarchical-displaying {
8 | visibility: visible;
9 | }
10 |
11 | .animation {
12 | animation-duration: 1s;
13 | animation-fill-mode: both;
14 | }
15 |
16 | .animation.zoomedIn,
17 | .animation.zoomedOut {
18 | animation-timing-function: cubic-bezier(.55, 0, .1, 1); // "Swift Out" easing curve
19 | }
20 |
21 | @keyframes zoomedIn {
22 | from {
23 | transform: scale(0);
24 | }
25 | to {
26 | transform: scale(1);
27 | }
28 | }
29 |
30 | @keyframes zoomedOut {
31 | from {
32 | transform: scale(1);
33 | }
34 | to {
35 | transform: scale(0);
36 | }
37 | }
38 |
39 | .zoomedIn {
40 | animation-name: zoomedIn;
41 | }
42 |
43 | .zoomedOut {
44 | animation-name: zoomedOut;
45 | }
46 |
47 |
--------------------------------------------------------------------------------
/scss/addons/_rating.scss:
--------------------------------------------------------------------------------
1 | .mdb-rating {
2 |
3 | .rate-popover {
4 | color: #808080;
5 | }
6 |
7 | .live {
8 | color: #000;
9 | }
10 |
11 | .oneStar {
12 | color: #44370f;
13 | }
14 |
15 | .twoStars {
16 | color: #96781e;
17 | }
18 |
19 | .threeStars {
20 | color: #e2b52e;
21 | }
22 |
23 | .fourStars {
24 | color: #f1ba12;
25 | }
26 |
27 | .fiveStars {
28 | color: #f3cb06;
29 | }
30 |
31 | .amber-text {
32 | color: #ffc107;
33 | }
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/scss/core/_global.scss:
--------------------------------------------------------------------------------
1 | // Globals
2 | // Full palette of colors
3 | @each $color_name, $color in $mdb-colors-1 {
4 | @each $color_type, $color_value in $color {
5 | @if $color_type == "base" {
6 | .#{$color_name} {
7 | background-color: $color_value !important;
8 | }
9 | .#{$color_name}-text {
10 | color: $color-value !important;
11 | }
12 | .rgba-#{$color_name}-slight,
13 | .rgba-#{$color_name}-slight:after {
14 | background-color: rgba($color_value, .1);
15 | }
16 | .rgba-#{$color_name}-light,
17 | .rgba-#{$color_name}-light:after {
18 | background-color: rgba($color_value, .3);
19 | }
20 | .rgba-#{$color_name}-strong,
21 | .rgba-#{$color_name}-strong:after {
22 | background-color: rgba($color_value, .7);
23 | }
24 | }
25 | @else {
26 | @if $enable_full_palette {
27 | .#{$color_name}.#{$color_type} {
28 | background-color: $color_value !important;
29 | }
30 | }
31 | }
32 | }
33 | }
34 |
35 | // Stylish color
36 | @each $color_name, $color_value in $stylish-rgba {
37 | .#{$color_name} {
38 | background-color: $color_value;
39 | }
40 | }
41 |
42 | // Material colors palette
43 | @each $color_name, $color in $material-colors {
44 | .#{$color_name} {
45 | background-color: $color !important;
46 | }
47 | }
48 |
49 | // Basic gradients
50 | @each $name, $val in $gradients {
51 | @include make-gradient($name, $val);
52 | }
53 | @each $name, $val in $gradients-rgba {
54 | @include make-gradient-rgba($name, $val);
55 | }
56 |
57 | .dark-grey-text {
58 | color: #4f4f4f !important;
59 | &:hover,
60 | &:focus {
61 | color: #4f4f4f !important;
62 | }
63 | }
64 |
65 | // Shadow on hover
66 | .hoverable {
67 | box-shadow: none;
68 | transition: $transition-hoverable;
69 | &:hover {
70 | box-shadow: $z-depth-2;
71 | transition: $transition-hoverable;
72 | }
73 | }
74 |
75 | // Shadows
76 | .z-depth-0 {
77 | box-shadow: none !important;
78 | }
79 | .z-depth-1 {
80 | box-shadow: $z-depth-1 !important;
81 | }
82 | .z-depth-1-half {
83 | box-shadow: $z-depth-1-half !important;
84 | }
85 | .z-depth-2 {
86 | box-shadow: $z-depth-2 !important;
87 | }
88 | .z-depth-3 {
89 | box-shadow: $z-depth-3 !important;
90 | }
91 | .z-depth-4 {
92 | box-shadow: $z-depth-4 !important;
93 | }
94 | .z-depth-5 {
95 | box-shadow: $z-depth-5 !important;
96 | }
97 |
98 | // Disabled cursor
99 | .disabled,
100 | :disabled {
101 | pointer-events: none !important;
102 | }
103 |
104 | // Links
105 | a {
106 | color: $link-color;
107 | text-decoration: none;
108 | cursor: pointer;
109 | transition: $transition-basic;
110 | &:hover {
111 | color: $link-hover-color;
112 | text-decoration: none;
113 | transition: $transition-basic;
114 | }
115 | &.disabled,
116 | &:disabled {
117 | &:hover {
118 | color: $link-color;
119 | }
120 | }
121 | }
122 |
123 | a:not([href]):not([tabindex]), a:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover {
124 | color: inherit;
125 | text-decoration: none;
126 | }
127 |
128 | // Divider
129 | .divider-new {
130 | display: flex;
131 | flex-direction: row;
132 | align-items: center;
133 | justify-content: center;
134 | margin-top: $divider-margin-y;
135 | margin-bottom: $divider-margin-y;
136 | > h1, h2, h3, h4, h5, h6 {
137 | margin-bottom: 0;
138 | }
139 | &:before,
140 | &:after {
141 | flex: 1;
142 | height: 1.5px;
143 | height: $divider-height;
144 | content: "";
145 | background: #c6c6c6;
146 | }
147 | &:before {
148 | margin: 0 $divider-margin-x 0 0;
149 | }
150 | &:after {
151 | margin: 0 0 0 $divider-margin-x;
152 | }
153 | }
154 |
--------------------------------------------------------------------------------
/scss/core/_helpers.scss:
--------------------------------------------------------------------------------
1 | // Helpers
2 | // MDB helpers
3 | .img-fluid,
4 | .video-fluid {
5 | max-width: 100%;
6 | height: auto;
7 | }
8 |
9 | .flex-center {
10 | display: flex;
11 | align-items: center;
12 | justify-content: center;
13 | height: 100%;
14 |
15 | p {
16 | margin: 0;
17 | }
18 |
19 | ul {
20 | text-align: center;
21 |
22 | li {
23 | margin-bottom: $flex-center-ul-mb;
24 |
25 | &:last-of-type {
26 | margin-bottom: 0;
27 | }
28 | }
29 | }
30 | }
31 |
32 | .hr-light {
33 | border-top: 1px solid $hr-light;
34 | }
35 |
36 | .hr-dark {
37 | border-top: 1px solid $hr-dark;
38 | }
39 |
40 | // Responsive width
41 | .w-responsive {
42 | width: 75%;
43 |
44 | @media (max-width: 740px) {
45 | width: 100%;
46 | }
47 | }
48 |
49 | // Collapsible body
50 | .collapsible-body {
51 | display: none;
52 | }
53 |
54 | .jumbotron {
55 | background-color: $white-base;
56 | border-radius: $border-radius-base;
57 | box-shadow: $z-depth-1;
58 | }
59 |
60 | @each $name,
61 | $color in $basic-mdb-colors {
62 | @include bg-variant(".bg-#{$name}", $color);
63 |
64 | .border-#{$name} {
65 | border-color: $color !important;
66 | }
67 | }
68 |
69 | .card-img-100 {
70 | width: 100px;
71 | height: 100px;
72 | }
73 |
74 | .card-img-64 {
75 | width: 64px;
76 | height: 64px;
77 | }
78 |
79 | .mml-1 {
80 | margin-left: - .25rem !important;
81 | }
82 |
83 | .flex-1 {
84 | flex: 1;
85 | }
86 |
--------------------------------------------------------------------------------
/scss/core/_masks.scss:
--------------------------------------------------------------------------------
1 | // Masks
2 | // General properties
3 | .view {
4 | position: relative;
5 | overflow: hidden;
6 | cursor: default;
7 | .mask {
8 | position: absolute;
9 | top: 0;
10 | right: 0;
11 | bottom: 0;
12 | left: 0;
13 | width: 100%;
14 | height: 100%;
15 | overflow: hidden;
16 | background-attachment: fixed;
17 | }
18 | img, video {
19 | position: relative;
20 | display: block;
21 | }
22 | video {
23 | &.video-intro {
24 | top: 50%;
25 | left: 50%;
26 | z-index: -100;
27 | width: auto;
28 | min-width: 100%;
29 | height: auto;
30 | min-height: 100%;
31 | transition: $intro-video-transition opacity;
32 | transform: $intro-video-transform;
33 | }
34 | }
35 | }
36 |
37 | // Overlay
38 | .overlay {
39 | .mask {
40 | opacity: 0;
41 | transition: $mask-overlay-transition;
42 | &:hover {
43 | opacity: 1;
44 | }
45 | }
46 | }
47 |
48 | // Zoom
49 | .zoom {
50 | img, video {
51 | transition: $mask-zoom-transition;
52 | }
53 | &:hover {
54 | img, video {
55 | transform: $mask-zoom-transform;
56 | }
57 | }
58 | }
59 |
60 | // Patterns
61 | $patterns: (
62 | 1: "01",
63 | 2: "02",
64 | 3: "03",
65 | 4: "04",
66 | 5: "05",
67 | 6: "06",
68 | 7: "07",
69 | 8: "08",
70 | 9: "09"
71 | ) !default;
72 |
73 | @each $no, $filename in $patterns {
74 | .pattern-#{$no} {
75 | background: url("#{$image-path}/overlays/#{$filename}.png");
76 | background-attachment: fixed;
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/scss/core/_mixins.scss:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // Bootstrap Mixins
3 | @function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {
4 | $n: index($breakpoint-names, $name);
5 | @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);
6 | }
7 |
8 | @function breakpoint-min($name, $breakpoints: $grid-breakpoints) {
9 | $min: map-get($breakpoints, $name);
10 | @return if($min !=0, $min, null);
11 | }
12 |
13 | @function breakpoint-max($name, $breakpoints: $grid-breakpoints) {
14 | $next: breakpoint-next($name, $breakpoints);
15 | @return if($next, breakpoint-min($next, $breakpoints) - .02px, null);
16 | }
17 |
18 | // Media of at least the minimum breakpoint width. No query for the smallest breakpoint.
19 | // Makes the @content apply to the given breakpoint and wider.
20 | @mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {
21 | $min: breakpoint-min($name, $breakpoints);
22 |
23 | @if $min {
24 | @media (min-width: $min) {
25 | @content;
26 | }
27 | }
28 |
29 | @else {
30 | @content;
31 | }
32 | }
33 |
34 | // Media of at most the maximum breakpoint width. No query for the largest breakpoint.
35 | // Makes the @content apply to the given breakpoint and narrower.
36 | @mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {
37 | $max: breakpoint-max($name, $breakpoints);
38 |
39 | @if $max {
40 | @media (max-width: $max) {
41 | @content;
42 | }
43 | }
44 |
45 | @else {
46 | @content;
47 | }
48 | }
49 |
50 | // Media that spans multiple breakpoint widths.
51 | // Makes the @content apply between the min and max breakpoints
52 | @mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {
53 | $min: breakpoint-min($lower, $breakpoints);
54 | $max: breakpoint-max($upper, $breakpoints);
55 |
56 | @if $min !=null and $max !=null {
57 | @media (min-width: $min) and (max-width: $max) {
58 | @content;
59 | }
60 | }
61 |
62 | @else if $max==null {
63 | @include media-breakpoint-up($lower, $breakpoints) {
64 | @content;
65 | }
66 | }
67 |
68 | @else if $min==null {
69 | @include media-breakpoint-down($upper, $breakpoints) {
70 | @content;
71 | }
72 | }
73 | }
74 |
75 | // Media between the breakpoint's minimum and maximum widths.
76 | // No minimum for the smallest breakpoint, and no maximum for the largest one.
77 | // Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.
78 | @mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {
79 | $min: breakpoint-min($name, $breakpoints);
80 | $max: breakpoint-max($name, $breakpoints);
81 |
82 | @if $min !=null and $max !=null {
83 | @media (min-width: $min) and (max-width: $max) {
84 | @content;
85 | }
86 | }
87 |
88 | @else if $max==null {
89 | @include media-breakpoint-up($name, $breakpoints) {
90 | @content;
91 | }
92 | }
93 |
94 | @else if $min==null {
95 | @include media-breakpoint-down($name, $breakpoints) {
96 | @content;
97 | }
98 | }
99 | }
100 |
101 | @function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {
102 | @return if(breakpoint-min($name, $breakpoints)==null, "", "-#{$name}");
103 | }
104 |
105 | @mixin hover {
106 | &:hover { @content; }
107 | }
108 |
109 | @mixin hover-focus {
110 | &:hover,
111 | &:focus {
112 | @content;
113 | }
114 | }
115 |
116 | // Background color
117 | @mixin bg-variant($parent, $color) {
118 | #{$parent} {
119 | background-color: $color !important;
120 | }
121 |
122 | a#{$parent},
123 | button#{$parent} {
124 | @include hover-focus {
125 | background-color: darken($color, 10%) !important;
126 | }
127 | }
128 | }
129 |
130 | // Typography
131 | @mixin text-emphasis-variant($parent, $color) {
132 | #{$parent} {
133 | color: $color !important;
134 | }
135 |
136 | a#{$parent} {
137 | @include hover-focus {
138 | color: darken($color, 10%) !important;
139 | }
140 | }
141 | }
142 |
143 | // Placeholder
144 | @mixin placeholder {
145 | &::placeholder {
146 | @content;
147 | }
148 | }
149 |
150 | /// Grid system
151 | //
152 | // Generate semantic grid columns with these mixins.
153 |
154 | @mixin make-container($gutter: $grid-gutter-width) {
155 | width: 100%;
156 | padding-right: $gutter / 2;
157 | padding-left: $gutter / 2;
158 | margin-right: auto;
159 | margin-left: auto;
160 | }
161 |
162 | // For each breakpoint, define the maximum width of the container in a media query
163 | @mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {
164 |
165 | @each $breakpoint,
166 | $container-max-width in $max-widths {
167 | @include media-breakpoint-up($breakpoint, $breakpoints) {
168 | max-width: $container-max-width;
169 | }
170 | }
171 | }
172 |
173 | @mixin make-row() {
174 | display: flex;
175 | flex-wrap: wrap;
176 | margin-right: ($grid-gutter-width / -2);
177 | margin-left: ($grid-gutter-width / -2);
178 | }
179 |
180 | @mixin make-col-ready() {
181 | position: relative;
182 | // Prevent columns from becoming too narrow when at smaller grid tiers by
183 | // always setting `width: 100%;`. This works because we use `flex` values
184 | // later on to override this initial width.
185 | width: 100%;
186 | min-height: 1px; // Prevent collapsing
187 | padding-right: ($grid-gutter-width / 2);
188 | padding-left: ($grid-gutter-width / 2);
189 | }
190 |
191 | @mixin make-col($size, $columns: $grid-columns) {
192 | flex: 0 0 percentage($size / $columns);
193 | // Add a `max-width` to ensure content within each column does not blow out
194 | // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari
195 | // do not appear to require this.
196 | max-width: percentage($size / $columns);
197 | }
198 |
199 | @mixin make-col-offset($size, $columns: $grid-columns) {
200 | $num: $size / $columns;
201 | margin-left: if($num==0, 0, percentage($num));
202 | }
203 |
204 | @mixin clearfix() {
205 | &::after {
206 | display: block;
207 | clear: both;
208 | content: "";
209 | }
210 | }
211 |
212 | @mixin float-left {
213 | float: left !important;
214 | }
215 |
216 | @mixin float-right {
217 | float: right !important;
218 | }
219 |
220 | @mixin float-none {
221 | float: none !important;
222 | }
223 |
224 | // CSS image replacement
225 | @mixin text-hide($ignore-warning: false) {
226 | // stylelint-disable-next-line font-family-no-missing-generic-family-keyword
227 | font: 0/0 a;
228 | color: transparent;
229 | text-shadow: none;
230 | background-color: transparent;
231 | border: 0;
232 |
233 | @if ($ignore-warning !=true) {
234 | @warn "The `text-hide()` mixin has been deprecated as of v4.1.0. It will be removed entirely in v5.";
235 | }
236 | }
237 |
238 | // Only display content to screen readers
239 | //
240 | // See: https://a11yproject.com/posts/how-to-hide-content/
241 | // See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/
242 |
243 | @mixin sr-only {
244 | position: absolute;
245 | width: 1px;
246 | height: 1px;
247 | padding: 0;
248 | overflow: hidden;
249 | clip: rect(0, 0, 0, 0);
250 | white-space: nowrap;
251 | border: 0;
252 | }
253 |
254 | // Use in conjunction with .sr-only to only display content when it's focused.
255 | //
256 | // Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
257 | //
258 | // Credit: HTML5 Boilerplate
259 |
260 | @mixin sr-only-focusable {
261 |
262 | &:active,
263 | &:focus {
264 | position: static;
265 | width: auto;
266 | height: auto;
267 | overflow: visible;
268 | clip: auto;
269 | white-space: normal;
270 | }
271 | }
272 |
273 | @mixin invisible($visibility) {
274 | visibility: $visibility !important;
275 | }
276 |
277 | // MDB Mixins
278 | @mixin hover-focus-active {
279 | &:hover,
280 | &:focus,
281 | &:active {
282 | @content;
283 | }
284 | }
285 |
286 | // Set the color of the button and badge
287 | @function set-notification-text-color($color) {
288 | @if (lightness($color) > 80) {
289 | @return $black-base; // Lighter backgorund, return dark color
290 | }
291 |
292 | @else {
293 | @return $white-base; // Darker background, return light color
294 | }
295 | }
296 |
297 | // Make button
298 | @mixin make-button ($name, $color) {
299 | .btn-#{$name} {
300 | color: set-notification-text-color($color);
301 | background-color: $color !important;
302 |
303 | &:hover {
304 | color: set-notification-text-color($color);
305 | background-color: lighten($color, 5%);
306 | }
307 |
308 | &:focus,
309 | &.focus {
310 | box-shadow: $z-depth-1-half;
311 | }
312 |
313 | &:focus,
314 | &:active,
315 | &.active {
316 | background-color: darken($color, 20%);
317 | }
318 |
319 | &.dropdown-toggle {
320 | background-color: $color !important;
321 |
322 | &:hover,
323 | &:focus {
324 | background-color: lighten($color, 5%) !important;
325 | }
326 | }
327 |
328 | &:not([disabled]):not(.disabled):active,
329 | &:not([disabled]):not(.disabled).active,
330 | .show > &.dropdown-toggle {
331 | background-color: darken($color, 20%) !important;
332 | box-shadow: $z-depth-1-half;
333 | }
334 |
335 | &:not([disabled]):not(.disabled):active:focus,
336 | &:not([disabled]):not(.disabled).active:focus,
337 | .show > &.dropdown-toggle:focus {
338 | box-shadow: $z-depth-1-half;
339 | }
340 | }
341 |
342 | .#{$name}-ic {
343 | color: $color !important;
344 |
345 | &:hover,
346 | &:focus {
347 | color: $color;
348 | }
349 | }
350 |
351 | a.btn:not([href]):not([tabindex]),
352 | a.btn:not([href]):not([tabindex]):focus,
353 | a.btn:not([href]):not([tabindex]):hover {
354 | color: set-notification-text-color($color);
355 | }
356 | table {
357 | &.table {
358 | a {
359 | &.btn {
360 | &.btn-#{$name} {
361 | color: set-notification-text-color($color);
362 | }
363 | }
364 | }
365 | }
366 | }
367 | }
368 |
369 | // Make outline button
370 | @mixin make-outline-button ($name, $color) {
371 | .btn-outline-#{$name} {
372 | color: $color !important;
373 | background-color: transparent !important;
374 | border: 2px solid $color !important;
375 |
376 | &:hover,
377 | &:focus,
378 | &:active,
379 | &:active:focus,
380 | &.active {
381 | color: $color !important;
382 | background-color: transparent !important;
383 | border-color: $color !important;
384 | }
385 |
386 | &:not([disabled]):not(.disabled):active,
387 | &:not([disabled]):not(.disabled).active,
388 | .show > &.dropdown-toggle {
389 | background-color: transparent !important;
390 | border-color: $color !important;
391 | box-shadow: $z-depth-1-half;
392 | }
393 |
394 | &:not([disabled]):not(.disabled):active:focus,
395 | &:not([disabled]):not(.disabled).active:focus,
396 | .show > &.dropdown-toggle:focus {
397 | box-shadow: $z-depth-1-half;
398 | }
399 | }
400 | }
401 |
402 | // Make gradient
403 | @mixin make-gradient($name, $value) {
404 | .#{$name}-gradient {
405 | background: linear-gradient(40deg, map-get($value, start), map-get($value, end)) !important;
406 | }
407 | }
408 |
409 | $opacity: .9 !default;
410 |
411 | // Make gradient
412 | @mixin make-gradient-rgba($name, $value) {
413 | .#{$name}-gradient-rgba {
414 | background: linear-gradient(40deg, map-get($value, start), map-get($value, end)) !important;
415 | }
416 | }
417 |
418 | // Make gradient button
419 | @mixin make-gradient-button($name, $value) {
420 | .btn {
421 | &.#{$name}-gradient {
422 | color: $white-base;
423 | transition: .5s ease;
424 |
425 | &:hover,
426 | &:focus,
427 | &:active,
428 | &:active:focus &.active {
429 | background: linear-gradient(lighten(map-get($value, start), 5%), lighten(map-get($value, end), 5%));
430 | }
431 | }
432 | }
433 | }
434 |
435 | // Button size
436 | @mixin button-size($padding-y, $padding-x, $font-size) {
437 | padding: $padding-y $padding-x;
438 | font-size: $font-size;
439 | }
440 |
441 | @mixin make-badge($name, $color) {
442 | .badge-#{$name} {
443 | color: set-notification-text-color($color) !important;
444 | background-color: $color !important;
445 | }
446 | }
447 |
448 | // Make input
449 | @mixin make-input($margin-bottom, $label-font-size, $label-active-font-size, $top, $prefix-font-size, $margin-left, $width, $margin-left-2) {
450 | .validate {
451 | margin-bottom: $margin-bottom;
452 | }
453 |
454 | label {
455 | font-size: $label-font-size;
456 |
457 | &.active {
458 | font-size: $label-active-font-size;
459 | }
460 | }
461 |
462 | .prefix {
463 | top: $top;
464 | font-size: $prefix-font-size;
465 |
466 | ~ input,
467 | ~ textarea {
468 | width: $width;
469 | margin-left: $margin-left;
470 | }
471 |
472 | ~ label {
473 | margin-left: $margin-left;
474 | }
475 |
476 | ~ .form-text {
477 | margin-left: $margin-left-2;
478 | }
479 | }
480 | }
481 |
482 | // Make navbar
483 | @mixin make-navbar($color-0, $background-image, $color, $color-2, $color-3) {
484 | .navbar-nav {
485 | .nav-item {
486 | .nav-link {
487 | &.disbled {
488 | color: $color-0;
489 |
490 | &:hover {
491 | color: $color-0;
492 | }
493 | }
494 | }
495 | }
496 | }
497 |
498 | .navbar-toggler-icon {
499 | cursor: pointer;
500 | background-image: $background-image;
501 | }
502 |
503 | .breadcrumb,
504 | .navbar-nav {
505 | .nav-item {
506 | .nav-link {
507 | color: $color;
508 | transition: $navbar-nav-transition;
509 |
510 | &:hover {
511 | color: $color-2;
512 | }
513 | }
514 |
515 | &.active > .nav-link {
516 | background-color: $color-3;
517 |
518 | &:hover {
519 | color: $color;
520 | }
521 | }
522 | }
523 | }
524 |
525 | .navbar-toggler {
526 | color: $color;
527 | }
528 |
529 | form {
530 | .md-form {
531 | input {
532 | border-bottom: 1px solid $color;
533 |
534 | &:focus:not([readonly]) {
535 | border-color: $input-md-focus-color;
536 | }
537 | }
538 |
539 | .form-control {
540 | color: $color;
541 |
542 | @include placeholder {
543 | font-weight: $navbar-font-weight;
544 | color: $color;
545 | }
546 | }
547 | }
548 | }
549 | }
550 |
551 | // Make floating button
552 | @mixin make-btn-floating($width, $height, $font-size, $line-height) {
553 | width: $width;
554 | height: $height;
555 |
556 | i {
557 | font-size: $font-size;
558 | line-height: $line-height;
559 | }
560 | }
561 |
562 | // Keyframes
563 | @mixin keyframes($animation-name) {
564 | @keyframes #{$animation-name} {
565 | @content;
566 | }
567 | }
568 |
569 | // Scroll bar and scroll spy width and height
570 | @mixin scroll-width($scrollbar-width) {
571 | width: $scrollbar-width;
572 | }
573 |
574 | @mixin scroll-height($scrollbar-height) {
575 | height: $scrollbar-height;
576 | }
577 |
578 | // Scroll spy font-weight
579 | @mixin scrollspy-font-weight($scrollspy-font-weight) {
580 | font-weight: $scrollspy-font-weight;
581 | }
582 |
583 | // Switch width and height
584 | @mixin switch-width-height($switchWidth, $switchHeight) {
585 | width: $switchWidth;
586 | height: $switchHeight;
587 | }
588 |
589 | // Make Box-shadows
590 | @mixin box-shadows($shadow...) {
591 | box-shadow: $shadow;
592 | }
593 |
594 | // Make Transition
595 | @mixin transition-main($transition...) {
596 | transition: $transition;
597 | }
598 |
599 | // Make border-radius scrollspy
600 | @mixin scrollspy-border-radius($scrollspy-radius) {
601 | border-radius: $scrollspy-radius;
602 | }
603 |
604 | // Make border-radius scrollspy 4rows
605 | @mixin scrollspy-border-radius-4rows($top-left, $top-right, $bottom-right, $bottom-left) {
606 | border-radius: $top-left $top-right $bottom-right $bottom-left;
607 | }
608 |
609 | //Make animation for progresss
610 | @mixin progress-animation-default($animation...) {
611 | animation: $animation;
612 | }
613 |
614 | //Make transform
615 | @mixin transform($transform...) {
616 | transform: $transform;
617 | }
618 |
--------------------------------------------------------------------------------
/scss/core/_typography.scss:
--------------------------------------------------------------------------------
1 | // Typography
2 |
3 | // Roboto font
4 | @font-face {
5 | font-family: Roboto;
6 | font-weight: 200;
7 | src: local(Roboto Thin), url("#{$roboto-font-path}Roboto-Thin.eot");
8 | src: url("#{$roboto-font-path}Roboto-Thin.eot?#iefix") format("embedded-opentype"), url("#{$roboto-font-path}Roboto-Thin.woff2") format("woff2"), url("#{$roboto-font-path}Roboto-Thin.woff") format("woff"), url("#{$roboto-font-path}Roboto-Thin.ttf") format("truetype");
9 | }
10 |
11 | @font-face {
12 | font-family: Roboto;
13 | font-weight: 300;
14 | src: local(Roboto Light), url("#{$roboto-font-path}Roboto-Light.eot");
15 | src: url("#{$roboto-font-path}Roboto-Light.eot?#iefix") format("embedded-opentype"), url("#{$roboto-font-path}Roboto-Light.woff2") format("woff2"), url("#{$roboto-font-path}Roboto-Light.woff") format("woff"), url("#{$roboto-font-path}Roboto-Light.ttf") format("truetype");
16 | }
17 |
18 | @font-face {
19 | font-family: Roboto;
20 | font-weight: 400;
21 | src: local(Roboto Regular), url("#{$roboto-font-path}Roboto-Regular.eot");
22 | src: url("#{$roboto-font-path}Roboto-Regular.eot?#iefix") format("embedded-opentype"), url("#{$roboto-font-path}Roboto-Regular.woff2") format("woff2"), url("#{$roboto-font-path}Roboto-Regular.woff") format("woff"), url("#{$roboto-font-path}Roboto-Regular.ttf") format("truetype");
23 | }
24 |
25 | @font-face {
26 | font-family: Roboto;
27 | font-weight: 500;
28 | src: url("#{$roboto-font-path}Roboto-Medium.eot");
29 | src: url("#{$roboto-font-path}Roboto-Medium.eot?#iefix") format("embedded-opentype"), url("#{$roboto-font-path}Roboto-Medium.woff2") format("woff2"), url("#{$roboto-font-path}Roboto-Medium.woff") format("woff"), url("#{$roboto-font-path}Roboto-Medium.ttf") format("truetype");
30 | }
31 |
32 | @font-face {
33 | font-family: Roboto;
34 | font-weight: 700;
35 | src: url("#{$roboto-font-path}Roboto-Bold.eot");
36 | src: url("#{$roboto-font-path}Roboto-Bold.eot?#iefix") format("embedded-opentype"), url("#{$roboto-font-path}Roboto-Bold.woff2") format("woff2"), url("#{$roboto-font-path}Roboto-Bold.woff") format("woff"), url("#{$roboto-font-path}Roboto-Bold.ttf") format("truetype");
37 | }
38 |
39 | // General properties
40 | body {
41 | font-family: $mdb-font-family;
42 | font-weight: $font-weight-light;
43 | }
44 |
45 | h1, h2, h3, h4, h5, h6 {
46 | font-weight: $font-weight-light;
47 | }
48 |
49 | // Blockquote
50 | .blockquote {
51 | padding: $blockquote-padding-y $blockquote-padding-x;
52 | border-left: .25rem solid #eceeef;
53 | &.text-right {
54 | border-right: .25rem solid #eceeef;
55 | border-left: none;
56 | }
57 | .bq-title {
58 | margin-bottom: 0;
59 | font-size: $font-size-large;
60 | font-weight: 400;
61 | }
62 | p {
63 | padding: $blockquote-p-padding-y 0;
64 | font-size: $blockquote-p-font-size;
65 | }
66 | }
67 |
68 | @each $name, $color in $basic {
69 | .bq-#{$name} {
70 | border-left: 3px solid $color !important;
71 | .bq-title {
72 | color: $color !important;
73 | }
74 | }
75 | }
76 |
77 | // Responsive headings
78 | @each $key, $val in $grid-breakpoints {
79 | @include media-breakpoint-up($key) {
80 | $y: map-get($responsive-headings, $key);
81 | @each $name, $value in $y {
82 | .#{$name}-responsive {
83 | font-size: $value;
84 | }
85 | }
86 | }
87 | }
88 |
89 | @each $name, $color in $basic-mdb-colors {
90 | @include text-emphasis-variant(".text-#{$name}", $color);
91 | }
92 |
93 | .font-small {
94 | font-size: $font-size-small;
95 | }
96 |
--------------------------------------------------------------------------------
/scss/core/_waves.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Waves v0.7.6
3 | * http://fian.my.id/Waves
4 | *
5 | * Copyright 2014-2018 Alfiana E. Sibuea and other contributors
6 | * Released under the MIT license
7 | * https://github.com/fians/Waves/blob/master/LICENSE */
8 |
9 | @mixin waves-transition($transition){
10 | -webkit-transition: $transition;
11 | -moz-transition: $transition;
12 | -o-transition: $transition;
13 | transition: $transition;
14 | }
15 |
16 | @mixin waves-transform($string){
17 | -webkit-transform: $string;
18 | -moz-transform: $string;
19 | -ms-transform: $string;
20 | -o-transform: $string;
21 | transform: $string;
22 | }
23 |
24 | @mixin waves-box-shadow($shadow){
25 | -webkit-box-shadow: $shadow;
26 | box-shadow: $shadow;
27 | }
28 |
29 | .waves-effect {
30 | position: relative;
31 | overflow: hidden;
32 | cursor: pointer;
33 | -webkit-user-select: none;
34 | -moz-user-select: none;
35 | -ms-user-select: none;
36 | user-select: none;
37 | -webkit-tap-highlight-color: transparent;
38 |
39 | .waves-ripple {
40 | $gradient: rgba(0, 0, 0, .2) 0,rgba(0, 0, 0, .3) 40%,rgba(0, 0, 0, .4) 50%,rgba(0, 0, 0, .5) 60%,rgba(255, 255, 255, 0) 70%;
41 | position: absolute;
42 | width: 100px;
43 | height: 100px;
44 | margin-top: -50px;
45 | margin-left: -50px;
46 | pointer-events: none;
47 | background: rgba(0, 0, 0, .2);
48 | background: radial-gradient($gradient);
49 | border-radius: 50%;
50 | opacity: 0;
51 | -webkit-transition-property: -webkit-transform, opacity;
52 | -moz-transition-property: -moz-transform, opacity;
53 | -o-transition-property: -o-transform, opacity;
54 | transition-property: transform, opacity;
55 | @include waves-transition(all .5s ease-out);
56 | @include waves-transform(scale(0) translate(0,0));
57 | }
58 |
59 | &.waves-light .waves-ripple {
60 | $gradient: rgba(255, 255, 255, .2) 0,rgba(255, 255, 255, .3) 40%,rgba(255, 255, 255, .4) 50%,rgba(255, 255, 255, .5) 60%,rgba(255, 255, 255, 0) 70%;
61 | background: rgba(255, 255, 255, .4);
62 | background: radial-gradient($gradient);
63 | }
64 |
65 | &.waves-classic .waves-ripple {
66 | background: rgba(0, 0, 0, .2);
67 | }
68 |
69 | &.waves-classic.waves-light .waves-ripple {
70 | background: rgba(255, 255, 255, .4);
71 | }
72 | }
73 |
74 | .waves-notransition {
75 | @include waves-transition(none #{"!important"});
76 | }
77 |
78 | .waves-button,
79 | .waves-circle {
80 | @include waves-transform(translateZ(0));
81 | -webkit-mask-image: -webkit-radial-gradient(circle, #fff 100%, #000 100%);
82 | }
83 |
84 | .waves-button,
85 | .waves-button:hover,
86 | .waves-button:visited,
87 | .waves-button-input {
88 | z-index: 1;
89 | font-size: 1em;
90 | line-height: 1em;
91 | color: inherit;
92 | text-align: center;
93 | text-decoration: none;
94 | white-space: nowrap;
95 | vertical-align: middle;
96 | cursor: pointer;
97 | background-color: rgba(0, 0, 0, 0);
98 | border: none;
99 | outline: none;
100 | }
101 |
102 | .waves-button {
103 | padding: .85em 1.1em;
104 | border-radius: .2em;
105 | }
106 |
107 | .waves-button-input {
108 | padding: .85em 1.1em;
109 | margin: 0;
110 | }
111 |
112 | .waves-input-wrapper {
113 | position: relative;
114 | display: inline-block;
115 | vertical-align: middle;
116 | border-radius: .2em;
117 |
118 | &.waves-button {
119 | padding: 0;
120 | }
121 |
122 | .waves-button-input {
123 | position: relative;
124 | top: 0;
125 | left: 0;
126 | z-index: 1;
127 | }
128 | }
129 |
130 | .waves-circle {
131 | width: 2.5em;
132 | height: 2.5em;
133 | line-height: 2.5em;
134 | text-align: center;
135 | border-radius: 50%;
136 | }
137 |
138 | .waves-float {
139 | -webkit-mask-image: none;
140 | @include waves-box-shadow(0 1px 1.5px 1px rgba(0, 0, 0, .12));
141 | @include waves-transition(all 300ms);
142 |
143 | &:active {
144 | @include waves-box-shadow(0 8px 20px 1px rgba(0, 0, 0, .3));
145 | }
146 | }
147 |
148 | .waves-block {
149 | display: block;
150 | }
151 |
152 | a {
153 | &.waves-effect,
154 | &.waves-light {
155 | display: inline-block;
156 | }
157 | }
158 |
--------------------------------------------------------------------------------
/scss/core/bootstrap/_functions.scss:
--------------------------------------------------------------------------------
1 | // Bootstrap functions
2 | //
3 | // Utility mixins and functions for evaluating source code across our variables, maps, and mixins.
4 |
5 | // Ascending
6 | // Used to evaluate Sass maps like our grid breakpoints.
7 | @mixin _assert-ascending($map, $map-name) {
8 | $prev-key: null;
9 | $prev-num: null;
10 | @each $key, $num in $map {
11 | @if $prev-num == null or unit($num) == "%" {
12 | // Do nothing
13 | } @else if not comparable($prev-num, $num) {
14 | @warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !";
15 | } @else if $prev-num >= $num {
16 | @warn "Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !";
17 | }
18 | $prev-key: $key;
19 | $prev-num: $num;
20 | }
21 | }
22 |
23 | // Starts at zero
24 | // Used to ensure the min-width of the lowest breakpoint starts at 0.
25 | @mixin _assert-starts-at-zero($map, $map-name: "$grid-breakpoints") {
26 | $values: map-values($map);
27 | $first-value: nth($values, 1);
28 | @if $first-value != 0 {
29 | @warn "First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.";
30 | }
31 | }
32 |
33 | // Replace `$search` with `$replace` in `$string`
34 | // Used on our SVG icon backgrounds for custom forms.
35 | //
36 | // @author Hugo Giraudel
37 | // @param {String} $string - Initial string
38 | // @param {String} $search - Substring to replace
39 | // @param {String} $replace ('') - New value
40 | // @return {String} - Updated string
41 | @function str-replace($string, $search, $replace: "") {
42 | $index: str-index($string, $search);
43 |
44 | @if $index {
45 | @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
46 | }
47 |
48 | @return $string;
49 | }
50 |
51 | // Color contrast
52 | @function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {
53 | $r: red($color);
54 | $g: green($color);
55 | $b: blue($color);
56 |
57 | $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;
58 |
59 | @if ($yiq >= $yiq-contrasted-threshold) {
60 | @return $dark;
61 | } @else {
62 | @return $light;
63 | }
64 | }
65 |
66 | // Retrieve color Sass maps
67 | @function color($key: "blue") {
68 | @return map-get($colors, $key);
69 | }
70 |
71 | @function theme-color($key: "primary") {
72 | @return map-get($theme-colors, $key);
73 | }
74 |
75 | @function gray($key: "100") {
76 | @return map-get($grays, $key);
77 | }
78 |
79 | // Request a theme color level
80 | @function theme-color-level($color-name: "primary", $level: 0) {
81 | $color: theme-color($color-name);
82 | $color-base: if($level > 0, $black, $white);
83 | $level: abs($level);
84 |
85 | @return mix($color-base, $color, $level * $theme-color-interval);
86 | }
87 |
--------------------------------------------------------------------------------
/scss/core/bootstrap/_rfs.scss:
--------------------------------------------------------------------------------
1 | // stylelint-disable property-blacklist, scss/dollar-variable-default
2 |
3 | // SCSS RFS mixin
4 | //
5 | // Automated font-resizing
6 | //
7 | // See https://github.com/twbs/rfs
8 |
9 | // Configuration
10 |
11 | // Base font size
12 | $rfs-base-font-size: 1.25rem !default;
13 | $rfs-font-size-unit: rem !default;
14 |
15 | // Breakpoint at where font-size starts decreasing if screen width is smaller
16 | $rfs-breakpoint: 1200px !default;
17 | $rfs-breakpoint-unit: px !default;
18 |
19 | // Resize font-size based on screen height and width
20 | $rfs-two-dimensional: false !default;
21 |
22 | // Factor of decrease
23 | $rfs-factor: 10 !default;
24 |
25 | @if type-of($rfs-factor) != "number" or $rfs-factor <= 1 {
26 | @error "`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.";
27 | }
28 |
29 | // Generate enable or disable classes. Possibilities: false, "enable" or "disable"
30 | $rfs-class: false !default;
31 |
32 | // 1 rem = $rfs-rem-value px
33 | $rfs-rem-value: 16 !default;
34 |
35 | // Safari iframe resize bug: https://github.com/twbs/rfs/issues/14
36 | $rfs-safari-iframe-resize-bug-fix: false !default;
37 |
38 | // Disable RFS by setting $enable-responsive-font-sizes to false
39 | $enable-responsive-font-sizes: true !important;
40 |
41 | // Cache $rfs-base-font-size unit
42 | $rfs-base-font-size-unit: unit($rfs-base-font-size);
43 |
44 | // Remove px-unit from $rfs-base-font-size for calculations
45 | @if $rfs-base-font-size-unit == "px" {
46 | $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);
47 | }
48 | @else if $rfs-base-font-size-unit == "rem" {
49 | $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);
50 | }
51 |
52 | // Cache $rfs-breakpoint unit to prevent multiple calls
53 | $rfs-breakpoint-unit-cache: unit($rfs-breakpoint);
54 |
55 | // Remove unit from $rfs-breakpoint for calculations
56 | @if $rfs-breakpoint-unit-cache == "px" {
57 | $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);
58 | }
59 | @else if $rfs-breakpoint-unit-cache == "rem" or $rfs-breakpoint-unit-cache == "em" {
60 | $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);
61 | }
62 |
63 | // Responsive font-size mixin
64 | @mixin rfs($fs, $important: false) {
65 | // Cache $fs unit
66 | $fs-unit: if(type-of($fs) == "number", unit($fs), false);
67 |
68 | // Add !important suffix if needed
69 | $rfs-suffix: if($important, " !important", "");
70 |
71 | // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value
72 | @if not $fs-unit or $fs-unit != "" and $fs-unit != "px" and $fs-unit != "rem" or $fs == 0 {
73 | font-size: #{$fs}#{$rfs-suffix};
74 | }
75 | @else {
76 | // Variables for storing static and fluid rescaling
77 | $rfs-static: null;
78 | $rfs-fluid: null;
79 |
80 | // Remove px-unit from $fs for calculations
81 | @if $fs-unit == "px" {
82 | $fs: $fs / ($fs * 0 + 1);
83 | }
84 | @else if $fs-unit == "rem" {
85 | $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);
86 | }
87 |
88 | // Set default font-size
89 | @if $rfs-font-size-unit == rem {
90 | $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};
91 | }
92 | @else if $rfs-font-size-unit == px {
93 | $rfs-static: #{$fs}px#{$rfs-suffix};
94 | }
95 | @else {
96 | @error "`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.";
97 | }
98 |
99 | // Only add media query if font-size is bigger as the minimum font-size
100 | // If $rfs-factor == 1, no rescaling will take place
101 | @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {
102 | $min-width: null;
103 | $variable-unit: null;
104 |
105 | // Calculate minimum font-size for given font-size
106 | $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;
107 |
108 | // Calculate difference between given font-size and minimum font-size for given font-size
109 | $fs-diff: $fs - $fs-min;
110 |
111 | // Base font-size formatting
112 | // No need to check if the unit is valid, because we did that before
113 | $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);
114 |
115 | // If two-dimensional, use smallest of screen width and height
116 | $variable-unit: if($rfs-two-dimensional, vmin, vw);
117 |
118 | // Calculate the variable width between 0 and $rfs-breakpoint
119 | $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};
120 |
121 | // Set the calculated font-size.
122 | $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};
123 | }
124 |
125 | // Rendering
126 | @if $rfs-fluid == null {
127 | // Only render static font-size if no fluid font-size is available
128 | font-size: $rfs-static;
129 | }
130 | @else {
131 | $mq-value: null;
132 |
133 | // RFS breakpoint formatting
134 | @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {
135 | $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};
136 | }
137 | @else if $rfs-breakpoint-unit == px {
138 | $mq-value: #{$rfs-breakpoint}px;
139 | }
140 | @else {
141 | @error "`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.";
142 | }
143 |
144 | @if $rfs-class == "disable" {
145 | // Adding an extra class increases specificity,
146 | // which prevents the media query to override the font size
147 | &,
148 | .disable-responsive-font-size &,
149 | &.disable-responsive-font-size {
150 | font-size: $rfs-static;
151 | }
152 | }
153 | @else {
154 | font-size: $rfs-static;
155 | }
156 |
157 | @if $rfs-two-dimensional {
158 | @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {
159 | @if $rfs-class == "enable" {
160 | .enable-responsive-font-size &,
161 | &.enable-responsive-font-size {
162 | font-size: $rfs-fluid;
163 | }
164 | }
165 | @else {
166 | font-size: $rfs-fluid;
167 | }
168 |
169 | @if $rfs-safari-iframe-resize-bug-fix {
170 | // stylelint-disable-next-line length-zero-no-unit
171 | min-width: 0vw;
172 | }
173 | }
174 | }
175 | @else {
176 | @media (max-width: #{$mq-value}) {
177 | @if $rfs-class == "enable" {
178 | .enable-responsive-font-size &,
179 | &.enable-responsive-font-size {
180 | font-size: $rfs-fluid;
181 | }
182 | }
183 | @else {
184 | font-size: $rfs-fluid;
185 | }
186 |
187 | @if $rfs-safari-iframe-resize-bug-fix {
188 | // stylelint-disable-next-line length-zero-no-unit
189 | min-width: 0vw;
190 | }
191 | }
192 | }
193 | }
194 | }
195 | }
196 |
197 | // The font-size & responsive-font-size mixin uses RFS to rescale font sizes
198 | @mixin font-size($fs, $important: false) {
199 | @include rfs($fs, $important);
200 | }
201 |
202 | @mixin responsive-font-size($fs, $important: false) {
203 | @include rfs($fs, $important);
204 | }
205 |
--------------------------------------------------------------------------------
/scss/free/_animations-basic.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * animate.css -http://daneden.me/animate
3 | * Version - 3.7.0
4 | * Licensed under the MIT license - http://opensource.org/licenses/MIT
5 | *
6 | * Copyright (c) 2018 Daniel Eden
7 | */
8 | .animated {
9 | animation-duration: 1s;
10 | animation-fill-mode: both;
11 | &.infinite {
12 | animation-iteration-count: infinite;
13 | }
14 | &.delay-1s {
15 | animation-delay: 1s;
16 | }
17 | &.delay-2s {
18 | animation-delay: 2s;
19 | }
20 | &.delay-3s {
21 | animation-delay: 3s;
22 | }
23 | &.delay-4s {
24 | animation-delay: 4s;
25 | }
26 | &.delay-5s {
27 | animation-delay: 5s;
28 | }
29 | &.fast {
30 | animation-duration: 800ms;
31 | }
32 | &.faster {
33 | animation-duration: 500ms;
34 | }
35 | &.slow {
36 | animation-duration: 2s;
37 | }
38 | &.slower {
39 | animation-duration: 3s;
40 | }
41 | }
42 |
43 | @media (prefers-reduced-motion) {
44 | .animated {
45 | transition: none !important;
46 | animation: unset !important;
47 | }
48 | }
49 |
50 | @keyframes fadeIn {
51 | from {
52 | opacity: 0;
53 | }
54 |
55 | to {
56 | opacity: 1;
57 | }
58 | }
59 |
60 | .fadeIn {
61 | animation-name: fadeIn;
62 | }
63 |
64 | @keyframes fadeInDown {
65 | from {
66 | opacity: 0;
67 | transform: translate3d(0, -100%, 0);
68 | }
69 |
70 | to {
71 | opacity: 1;
72 | transform: translate3d(0, 0, 0);
73 | }
74 | }
75 |
76 | .fadeInDown {
77 | animation-name: fadeInDown;
78 | }
79 |
80 | @keyframes fadeInLeft {
81 | from {
82 | opacity: 0;
83 | transform: translate3d(-100%, 0, 0);
84 | }
85 |
86 | to {
87 | opacity: 1;
88 | transform: translate3d(0, 0, 0);
89 | }
90 | }
91 |
92 | .fadeInLeft {
93 | animation-name: fadeInLeft;
94 | }
95 |
96 |
97 | @keyframes fadeInRight {
98 | from {
99 | opacity: 0;
100 | transform: translate3d(100%, 0, 0);
101 | }
102 |
103 | to {
104 | opacity: 1;
105 | transform: translate3d(0, 0, 0);
106 | }
107 | }
108 |
109 | .fadeInRight {
110 | animation-name: fadeInRight;
111 | }
112 |
113 |
114 | @keyframes fadeInUp {
115 | from {
116 | opacity: 0;
117 | transform: translate3d(0, 100%, 0);
118 | }
119 |
120 | to {
121 | opacity: 1;
122 | transform: translate3d(0, 0, 0);
123 | }
124 | }
125 |
126 | .fadeInUp {
127 | animation-name: fadeInUp;
128 | }
129 |
130 |
131 | @keyframes fadeOut {
132 | from {
133 | opacity: 1;
134 | }
135 |
136 | to {
137 | opacity: 0;
138 | }
139 | }
140 |
141 | .fadeOut {
142 | animation-name: fadeOut;
143 | }
144 |
145 |
146 | @keyframes fadeOutDown {
147 | from {
148 | opacity: 1;
149 | }
150 |
151 | to {
152 | opacity: 0;
153 | transform: translate3d(0, 100%, 0);
154 | }
155 | }
156 |
157 | .fadeOutDown {
158 | animation-name: fadeOutDown;
159 | }
160 |
161 |
162 | @keyframes fadeOutLeft {
163 | from {
164 | opacity: 1;
165 | }
166 |
167 | to {
168 | opacity: 0;
169 | transform: translate3d(-100%, 0, 0);
170 | }
171 | }
172 |
173 | .fadeOutLeft {
174 | animation-name: fadeOutLeft;
175 | }
176 |
177 |
178 | @keyframes fadeOutRight {
179 | from {
180 | opacity: 1;
181 | }
182 |
183 | to {
184 | opacity: 0;
185 | transform: translate3d(100%, 0, 0);
186 | }
187 | }
188 |
189 | .fadeOutRight {
190 | animation-name: fadeOutRight;
191 | }
192 |
193 |
194 | @keyframes fadeOutUp {
195 | from {
196 | opacity: 1;
197 | }
198 |
199 | to {
200 | opacity: 0;
201 | transform: translate3d(0, -100%, 0);
202 | }
203 | }
204 |
205 | .fadeOutUp {
206 | animation-name: fadeOutUp;
207 | }
208 |
--------------------------------------------------------------------------------
/scss/free/_badges.scss:
--------------------------------------------------------------------------------
1 | // Badges
2 | .badge {
3 | color: $white !important;
4 | border-radius: $border-radius-base;
5 | box-shadow: $z-depth-1;
6 | }
7 | .badge-pill {
8 | padding-right: $badge-pill-padding-x;
9 | padding-left: $badge-pill-padding-x;
10 | border-radius: $badge-pill-border-radius;
11 | }
12 | @each $name, $color in $basic-mdb-colors {
13 | @include make-badge($name, $color);
14 | }
15 |
16 |
--------------------------------------------------------------------------------
/scss/free/_buttons.scss:
--------------------------------------------------------------------------------
1 | // Buttons
2 | .btn {
3 | margin: $btn-margin-basic;
4 | color: inherit;
5 | text-transform: uppercase;
6 | word-wrap: break-word;
7 | white-space: normal;
8 | cursor: pointer;
9 | border: 0;
10 | border-radius: $border-radius-base;
11 | box-shadow: $z-depth-1;
12 | transition: $btn-transition;
13 | @include button-size($btn-padding-y-basic, $btn-padding-x-basic, $btn-font-size-basic);
14 |
15 | @include hover-focus-active {
16 | outline: 0;
17 | box-shadow: $z-depth-1-half;
18 | }
19 |
20 | &.btn-block {
21 | margin: inherit;
22 | }
23 |
24 | .fas,
25 | .fab,
26 | .far {
27 | &.right {
28 | margin-left: $btn-icon-margin;
29 | }
30 | &.left {
31 | margin-right: $btn-icon-margin;
32 | }
33 | }
34 |
35 | &.btn-lg {
36 | @include button-size($btn-padding-y-large, $btn-padding-x-large, $btn-font-size-large);
37 | }
38 | &.btn-md {
39 | @include button-size($btn-padding-y-medium, $btn-padding-x-medium, $btn-font-size-medium);
40 | }
41 | &.btn-sm {
42 | @include button-size($btn-padding-y-small, $btn-padding-x-small, $btn-font-size-small);
43 | }
44 |
45 | &.disabled,
46 | &:disabled {
47 | @include hover-focus-active {
48 | box-shadow: $z-depth-1;
49 | }
50 | }
51 |
52 | &[class*="btn-outline-"] {
53 | padding-top: $btn-outline-padding-y-basic;
54 | padding-bottom: $btn-outline-padding-y-basic;
55 | &.btn-lg {
56 | padding-top: $btn-outline-padding-y-large;
57 | padding-bottom: $btn-outline-padding-y-large;
58 | }
59 | &.btn-md {
60 | padding-top: $btn-outline-padding-y-medium;
61 | padding-bottom: $btn-outline-padding-y-medium;
62 | }
63 | &.btn-sm {
64 | padding-top: $btn-outline-padding-y-small;
65 | padding-bottom: $btn-outline-padding-y-small;
66 | }
67 | }
68 | }
69 |
70 | .btn-link {
71 | color: $black-base;
72 | background-color: transparent;
73 | box-shadow: none;
74 | @include hover-focus-active {
75 | color: $black-base;
76 | background-color: transparent;
77 | box-shadow: none;
78 | }
79 | }
80 |
81 | .btn-group {
82 | > .btn:not(:first-child),
83 | > .btn-group:not(:first-child) {
84 | margin-left: -$btn-group-margin;
85 | }
86 | }
87 |
88 | @each $btn_name, $color_value in $mdb-colors {
89 | @include make-button($btn_name, $color_value);
90 | @include make-outline-button($btn_name, $color_value);
91 | }
92 |
93 | @each $name, $val in $gradients {
94 | @include make-gradient-button($name, $val);
95 | }
96 |
97 | .btn-warning:not(:disabled):not(.disabled).active,
98 | .btn-warning:not(:disabled):not(.disabled):active,
99 | .show > .btn-warning.dropdown-toggle {
100 | color: $white-base;
101 | }
102 |
103 |
--------------------------------------------------------------------------------
/scss/free/_cards.scss:
--------------------------------------------------------------------------------
1 | // Cards
2 | .card {
3 | font-weight: 400;
4 | border: 0;
5 | box-shadow: $z-depth-1;
6 | &[class*="border"] {
7 | border: 1px solid $grey-base;
8 | box-shadow: none;
9 | }
10 | .card-body {
11 | h1, h2, h3, h4, h5, h6 {
12 | font-weight: 400;
13 | }
14 | .card-title {
15 | a {
16 | transition: $md-card-link-transition;
17 | &:hover {
18 | transition: $md-card-link-transition;
19 | }
20 | }
21 | }
22 | .card-text {
23 | font-size: $md-card-font-size;
24 | font-weight: 400;
25 | color: $md-card-text-color;
26 | }
27 | }
28 | .md-form {
29 | label {
30 | font-weight: 300;
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/scss/free/_carousels.scss:
--------------------------------------------------------------------------------
1 | // Carousels
2 | .carousel {
3 | .carousel-control-prev-icon,
4 | .carousel-control-next-icon {
5 | width: $carousel-control-icon-width;
6 | height: $carousel-control-icon-height;
7 | }
8 | .carousel-control-prev-icon {
9 | background-image: $carousel-control-prev-icon;
10 | }
11 | .carousel-control-next-icon {
12 | background-image: $carousel-control-next-icon;
13 | }
14 | .carousel-indicators {
15 | li {
16 | width: $carousel-indicators-width;
17 | height: $carousel-indicators-height;
18 | cursor: pointer;
19 | border-radius: $carousel-indicators-border-radius;
20 | }
21 | }
22 | }
23 | .carousel-fade {
24 | .carousel-item {
25 | opacity: 0;
26 | transition-duration: $carousel-transition-duration;
27 | transition-property: opacity;
28 | }
29 | .carousel-item.active,
30 | .carousel-item-next.carousel-item-left,
31 | .carousel-item-prev.carousel-item-right {
32 | opacity: 1;
33 | }
34 | .carousel-item-left,
35 | .carousel-item-right {
36 | &.active {
37 | opacity: 0;
38 | }
39 | }
40 | .carousel-item-next,
41 | .carousel-item-prev,
42 | .carousel-item.active,
43 | .carousel-item-left.active,
44 | .carousel-item-prev.active {
45 | transform: $carousel-item-transform;
46 | @supports (transform-style: preserve-3d) {
47 | transform: $carousel-item-transform-2;
48 | }
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/scss/free/_depreciated.scss:
--------------------------------------------------------------------------------
1 | // These settings will be only for one version
2 | // Scrolable navbar
3 |
4 | /*
5 | .navbar {
6 | &.fixed-top,
7 | &.sticky-top {
8 | .navbar-collapse {
9 | @media (min-width: 400px) and (max-width: 767px),
10 | (min-width: 800px) and (max-width: 850px) {
11 | max-height: 340px;
12 | overflow-x: hidden;
13 | overflow-y: auto;
14 | }
15 | }
16 | }
17 | }
18 | */
19 |
--------------------------------------------------------------------------------
/scss/free/_dropdowns.scss:
--------------------------------------------------------------------------------
1 | // Dropdowns
2 | .dropdown {
3 | .dropdown-menu {
4 | .dropdown-item {
5 | &:active {
6 | background-color: $grey-darken-1;
7 | }
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/scss/free/_footers.scss:
--------------------------------------------------------------------------------
1 | // Footers
2 | footer {
3 | &.page-footer {
4 | bottom: 0;
5 | color: $white-base;
6 | .container-fluid {
7 | width: auto;
8 | }
9 | .footer-copyright {
10 | overflow: hidden;
11 | color: $footer-copyright-color;
12 | background-color: $footer-copyright-bg-color;
13 | }
14 | a {
15 | color: $white-base;
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/scss/free/_input-group.scss:
--------------------------------------------------------------------------------
1 | // Input group
2 | .md-form {
3 | &.input-group {
4 | label {
5 | top: 0;
6 | margin-bottom: 0;
7 | }
8 | .input-group-text {
9 | background-color: $input-group-text-bgc;
10 | &.md-addon {
11 | font-weight: 500;
12 | background-color: transparent;
13 | border: none;
14 | }
15 | }
16 | .form-control {
17 | padding: $input-group-form-control-py $input-group-form-control-px;
18 | margin: 0;
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/scss/free/_list-group.scss:
--------------------------------------------------------------------------------
1 | // List group
2 | .media {
3 | .media-left {
4 | padding: $list-group-padding;
5 |
6 | img {
7 | box-shadow: $z-depth-1;
8 | }
9 | }
10 | }
11 |
12 | .list-group {
13 | .list-group-item {
14 | &:first-child {
15 | border-top-left-radius: $border-radius-base;
16 | border-top-right-radius: $border-radius-base;
17 | }
18 |
19 | &:last-child {
20 | border-bottom-right-radius: $border-radius-base;
21 | border-bottom-left-radius: $border-radius-base;
22 | }
23 | }
24 |
25 | a,
26 | button {
27 | transition: $list-group-transition;
28 |
29 | &:hover {
30 | transition: $list-group-transition;
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/scss/free/_loader.scss:
--------------------------------------------------------------------------------
1 | // Loader / Spinner
2 | .fast {
3 | &.spinner-border {
4 | animation: $spinner-border-animation;
5 | }
6 | &.spinner-grow {
7 | animation: $spinner-grow-animation;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/scss/free/_modals.scss:
--------------------------------------------------------------------------------
1 | // Modals
2 | // Styles for body
3 | body {
4 | &.modal-open {
5 | padding-right: 0 !important;
6 | overflow: auto;
7 | }
8 | &.scrollable {
9 | overflow-y: auto;
10 | }
11 | }
12 |
13 | // *** ENHANCED BOOTSTRAP MODALS ***///
14 | // General styles
15 | .modal-dialog {
16 | .modal-content {
17 | border: 0;
18 | border-radius: $border-radius-base;
19 | box-shadow: $z-depth-1-half;
20 | .modal-header {
21 | border-top-left-radius: $border-radius-base;
22 | border-top-right-radius: $border-radius-base;
23 | }
24 | }
25 | // Cascading modals
26 | &.cascading-modal {
27 | margin-top: 10%;
28 | .close {
29 | color: $white-base;
30 | text-shadow: none;
31 | outline: 0;
32 | opacity: 1;
33 | }
34 | // Cascading header
35 | .modal-header {
36 | padding: $cascading-modal-padding;
37 | margin: $cascading-modal-margin-top $cascading-modal-margin-right $cascading-modal-margin-bottom $cascading-modal-margin-left;
38 | text-align: center;
39 | border: none;
40 | border-radius: $border-radius-base;
41 | box-shadow: $z-depth-1-half;
42 | .close {
43 | margin-right: $cascading-modal-close-margin-right;
44 | }
45 | .title {
46 | width: 100%;
47 | margin-bottom: 0;
48 | font-size: $cascading-modal-font-size;
49 | .fas, .fab, .far {
50 | margin-right: $cascading-modal-fa-margin-right;
51 | }
52 | }
53 | .social-buttons {
54 | margin-top: $cascading-modal-social-margin-top;
55 | a {
56 | font-size: $cascading-modal-a-font-size;
57 | }
58 | }
59 | }
60 | // Cascading tabs nav
61 | .modal-c-tabs {
62 | .md-tabs {
63 | display: flex;
64 | margin: $cascading-modal-tabs-margin-top $cascading-modal-tabs-margin-x 0 $cascading-modal-tabs-margin-x;
65 | box-shadow: $z-depth-1;
66 | li {
67 | flex: 1;
68 | a {
69 | text-align: center;
70 | }
71 | }
72 | }
73 | .tab-content {
74 | padding: $cascading-modal-tabs-padding-top 0 0 0;
75 | }
76 |
77 | /*
78 | .md-tabs {
79 | border-radius: $md-card-border-radius;
80 | .nav-item {
81 | .nav-link {
82 | border-radius: $md-card-border-radius;
83 | background-color: inherit;
84 | color: $white-base;
85 | }
86 | }
87 | }
88 | */
89 | }
90 | // Footer customization
91 | .modal-body,
92 | .modal-footer {
93 | padding-right: $modal-body-padding-right;
94 | padding-left: $modal-body-padding-left;
95 | color: $grey-darken-2;
96 | .additional-option {
97 | margin-top: $modal-body-margin-top;
98 | text-align: center;
99 | }
100 | }
101 | // Cascading avatar
102 | &.modal-avatar {
103 | margin-top: $modal-avatar-margin-top;
104 | .modal-header {
105 | @extend .img-fluid;
106 | margin: $modal-avatar-header-margin-top 0 $modal-avatar-header-margin-bottom;
107 | box-shadow: none;
108 | img {
109 | width: $modal-avatar-img-width;
110 | margin-right: auto;
111 | margin-left: auto;
112 | box-shadow: $z-depth-2;
113 | }
114 | }
115 | }
116 | }
117 | // Modal notify
118 | &.modal-notify {
119 | .heading {
120 | padding: $modal-notify-heading-padding;
121 | margin: 0;
122 | font-size: $modal-notify-font-size;
123 | color: $white-base;
124 | }
125 | .modal-header {
126 | border: 0;
127 | box-shadow: $z-depth-1;
128 | }
129 | .close {
130 | opacity: 1;
131 | }
132 | .modal-body {
133 | padding: $modal-notify-body-padding;
134 | color: $grey-darken-2;
135 | }
136 | @each $name, $color in $basic {
137 | &.modal-#{$name} {
138 | .modal-header {
139 | background-color: $color;
140 | }
141 | .fas, .fab, .far {
142 | color: $color;
143 | }
144 | .badge {
145 | background-color: $color;
146 | }
147 | .btn {
148 | .fas,
149 | .fab,
150 | .far {
151 | color: #fff;
152 | }
153 | &.btn-outline-#{$name} {
154 | .fas,
155 | .fab,
156 | .far {
157 | color: $color;
158 | }
159 | }
160 | }
161 | }
162 | }
163 | }
164 | }
165 |
166 | // Position & Size
167 | .modal {
168 | padding-right: 0 !important;
169 | .modal-dialog {
170 | @media (min-width: 768px) {
171 | &.modal-top {
172 | top: 0;
173 | }
174 | &.modal-left {
175 | left: 0;
176 | }
177 | &.modal-right {
178 | right: 0;
179 | }
180 | &.modal-bottom {
181 | bottom: 0;
182 | }
183 | &.modal-top-left {
184 | top: $modal-distance;
185 | left: $modal-distance;
186 | }
187 | &.modal-top-right {
188 | top: $modal-distance;
189 | right: $modal-distance;
190 | }
191 | &.modal-bottom-left {
192 | bottom: $modal-distance;
193 | left: $modal-distance;
194 | }
195 | &.modal-bottom-right {
196 | right: $modal-distance;
197 | bottom: $modal-distance;
198 | }
199 | }
200 | }
201 | &.fade {
202 | &.top:not(.show) .modal-dialog {
203 | transform: $modal-fade-top-transform;
204 | }
205 | &.left:not(.show) .modal-dialog {
206 | transform: $modal-fade-left-transform;
207 | }
208 | &.right:not(.show) .modal-dialog {
209 | transform: $modal-fade-right-transform;
210 | }
211 | &.bottom:not(.show) .modal-dialog {
212 | transform: $modal-fade-bottom-transform;
213 | }
214 | }
215 | @media (min-width: $medium-screen) {
216 | &.modal-scrolling {
217 | position: relative;
218 | .modal-dialog {
219 | position: fixed;
220 | z-index: 1050;
221 | }
222 | }
223 | &.modal-content-clickable {
224 | top: auto;
225 | bottom: auto;
226 | .modal-dialog {
227 | position: fixed;
228 | }
229 | }
230 | .modal-fluid {
231 | width: 100%;
232 | max-width: 100%;
233 | .modal-content {
234 | width: 100%;
235 | }
236 | }
237 | .modal-frame {
238 | position: absolute;
239 | width: 100%;
240 | max-width: 100% !important;
241 | margin: 0 !important;
242 | &.modal-bottom {
243 | bottom: 0;
244 | }
245 | }
246 | .modal-full-height {
247 | position: absolute;
248 | top: 0;
249 | right: 0;
250 | display: flex;
251 | width: $modal-width;
252 | height: auto;
253 | min-height: 100%;
254 | margin: 0;
255 | &.modal-top,
256 | &.modal-bottom {
257 | display: block;
258 | width: 100%;
259 | max-width: 100%;
260 | height: auto;
261 | }
262 | &.modal-top {
263 | bottom: auto;
264 | }
265 | &.modal-bottom {
266 | top: auto;
267 | min-height: 0;
268 | }
269 | .modal-content {
270 | width: 100%;
271 | }
272 | &.modal-lg {
273 | width: 90%;
274 | max-width: 90%;
275 | @media (min-width: $medium-screen) {
276 | width: $modal-full-height-medium-screen;
277 | max-width: $modal-full-height-medium-screen;
278 | }
279 | @media (min-width: $large-screen) {
280 | width: $modal-full-height-large-screen;
281 | max-width: $modal-full-height-large-screen;
282 | }
283 | }
284 | }
285 | .modal-side {
286 | position: absolute;
287 | right: $modal-distance;
288 | bottom: $modal-distance;
289 | width: $modal-width;
290 | margin: 0;
291 | }
292 | }
293 | }
294 |
--------------------------------------------------------------------------------
/scss/free/_msc.scss:
--------------------------------------------------------------------------------
1 | // Miscellaneous
2 | // Edge Headers
3 | .edge-header {
4 | display: block;
5 | height: $edge-header-height;
6 | background-color: $edge-header-background-color;
7 | }
8 |
9 | .free-bird {
10 | margin-top: $edge-header-margin-top;
11 | }
12 |
13 | // Additional gradients
14 | .juicy-peach-gradient {
15 | background-image: linear-gradient(to right, #ffecd2 0%, #fcb69f 100%);
16 | }
17 |
18 | .young-passion-gradient {
19 | background-image: linear-gradient(to right, #ff8177 0%, #ff867a 0%, #ff8c7f 21%, #f99185 52%, #cf556c 78%, #b12a5b 100%);
20 | }
21 |
22 | .lady-lips-gradient {
23 | background-image: linear-gradient(to top, #ff9a9e 0%, #fecfef 99%, #fecfef 100%);
24 | }
25 |
26 | .sunny-morning-gradient {
27 | background-image: linear-gradient(120deg, #f6d365 0%, #fda085 100%);
28 | }
29 |
30 | .rainy-ashville-gradient {
31 | background-image: linear-gradient(to top, #fbc2eb 0%, #a6c1ee 100%);
32 | }
33 |
34 | .frozen-dreams-gradient {
35 | background-image: linear-gradient(to top, #fdcbf1 0%, #fdcbf1 1%, #e6dee9 100%);
36 | }
37 |
38 | .warm-flame-gradient {
39 | background-image: linear-gradient(45deg, #ff9a9e 0%, #fad0c4 99%, #fad0c4 100%);
40 | }
41 |
42 | .night-fade-gradient {
43 | background-image: linear-gradient(to top, #a18cd1 0%, #fbc2eb 100%);
44 | }
45 |
46 | .spring-warmth-gradient {
47 | background-image: linear-gradient(to top, #fad0c4 0%, #ffd1ff 100%);
48 | }
49 |
50 | .winter-neva-gradient {
51 | background-image: linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%);
52 | }
53 |
54 | .dusty-grass-gradient {
55 | background-image: linear-gradient(120deg, #d4fc79 0%, #96e6a1 100%);
56 | }
57 |
58 | .tempting-azure-gradient {
59 | background-image: linear-gradient(120deg, #84fab0 0%, #8fd3f4 100%);
60 | }
61 |
62 | .heavy-rain-gradient {
63 | background-image: linear-gradient(to top, #cfd9df 0%, #e2ebf0 100%);
64 | }
65 |
66 | .amy-crisp-gradient {
67 | background-image: linear-gradient(120deg, #a6c0fe 0%, #f68084 100%);
68 | }
69 |
70 | .mean-fruit-gradient {
71 | background-image: linear-gradient(120deg, #fccb90 0%, #d57eeb 100%);
72 | }
73 |
74 | .deep-blue-gradient {
75 | background-image: linear-gradient(120deg, #e0c3fc 0%, #8ec5fc 100%);
76 | }
77 |
78 | .ripe-malinka-gradient {
79 | background-image: linear-gradient(120deg, #f093fb 0%, #f5576c 100%);
80 | }
81 |
82 | .cloudy-knoxville-gradient {
83 | background-image: linear-gradient(120deg, #fdfbfb 0%, #ebedee 100%);
84 | }
85 |
86 | .morpheus-den-gradient {
87 | background-image: linear-gradient(to top, #30cfd0 0%, #330867 100%);
88 | }
89 |
90 | .rare-wind-gradient {
91 | background-image: linear-gradient(to top, #a8edea 0%, #fed6e3 100%);
92 | }
93 |
94 | .near-moon-gradient {
95 | background-image: linear-gradient(to top, #5ee7df 0%, #b490ca 100%);
96 | }
97 |
98 | .schedule-list {
99 | .hr-bold {
100 | border-top: 2px solid #212529;
101 | }
102 |
103 | .font-smaller {
104 | font-size: .8rem;
105 | }
106 | }
107 |
108 | .note {
109 | padding: 10px;
110 | border-left: 6px solid;
111 | border-radius: 5px;
112 | strong {
113 | font-weight: 600;
114 | }
115 | p {
116 | font-weight: 500;
117 | }
118 | }
119 |
120 | @each $name, $color in $note {
121 | .note-#{$name} {
122 | background-color: map-get($color, bgc);
123 | border-color: map-get($color, border-color);
124 | }
125 | }
126 |
--------------------------------------------------------------------------------
/scss/free/_navbars.scss:
--------------------------------------------------------------------------------
1 | // Navbars
2 | .navbar {
3 | font-weight: $navbar-font-weight;
4 | box-shadow: $z-depth-1;
5 | form {
6 | .md-form {
7 | input {
8 | margin: 0 $navbar-form-input-mr $navbar-form-input-mb $navbar-form-input-ml;
9 | }
10 | }
11 | }
12 | .breadcrumb {
13 | padding: $navbar-breadcrumb-padding-top 0 0 $navbar-breadcrumb-padding-left;
14 | margin: 0;
15 | font-size: $navbar-double-font-size;
16 | font-weight: $navbar-font-weight;
17 | background-color: inherit;
18 | .breadcrumb-item {
19 | color: $white-base;
20 | &.active {
21 | color: $navbar-breadcrumb-color;
22 | }
23 | &:before {
24 | color: $navbar-breadcrumb-color;
25 | }
26 | }
27 | }
28 | .navbar-toggler {
29 | border-width: 0;
30 | outline: 0;
31 | }
32 | .nav-flex-icons {
33 | flex-direction: row;
34 | }
35 | .container {
36 | @media (max-width: $medium-screen) {
37 | width: 100%;
38 | .navbar-toggler-right {
39 | right: 0;
40 | }
41 | }
42 | }
43 | .nav-item {
44 | .nav-link {
45 | display: block;
46 | &.disabled {
47 | &:active {
48 | pointer-events: none;
49 | }
50 | }
51 | .fas, .fab, .far {
52 | padding-right: $navbar-flex-icons-padding-lg;
53 | padding-left: $navbar-flex-icons-padding-lg;
54 | }
55 | @media (max-width: $medium-screen) {
56 | padding-right: $navbar-flex-icons-padding-md;
57 | padding-left: $navbar-flex-icons-padding-md;
58 | }
59 | }
60 | }
61 | .dropdown-menu {
62 | position: absolute !important;
63 | margin-top: 0;
64 | a {
65 | padding: $navbar-dropdown-menu-padding;
66 | font-size: $navbar-dropdown-font-size;
67 | font-weight: $navbar-font-weight;
68 | color: $black;
69 | }
70 | form {
71 | @media (max-width: $small-screen) {
72 | width: 17rem;
73 | }
74 | @media (min-width: $small-screen) {
75 | width: 22rem;
76 | }
77 | }
78 | }
79 | &.navbar-light {
80 | @include make-navbar($navbar-light-disabled-color, $navbar-light-toggler-icon, $black, $navbar-light-hover-color, $navbar-light-bg-active-color);
81 | }
82 | &.navbar-dark {
83 | @include make-navbar($navbar-dark-disabled-color, $navbar-dark-toggler-icon, $white, $navbar-dark-hover-color, $navbar-dark-bg-active-color);
84 | }
85 | &.scrolling-navbar {
86 | @media (min-width: $small-screen) {
87 | padding-top: $navbar-scrolling-padding;
88 | padding-bottom: $navbar-scrolling-padding;
89 | transition: $navbar-scrolling-transition;
90 | .navbar-nav > li {
91 | transition-duration: $navbar-scrolling-transition-duration;
92 | }
93 | &.top-nav-collapse {
94 | padding-top: $navbar-top-collapse-padding;
95 | padding-bottom: $navbar-top-collapse-padding;
96 | }
97 | }
98 | }
99 | }
100 |
--------------------------------------------------------------------------------
/scss/free/_pagination.scss:
--------------------------------------------------------------------------------
1 | // Pagination
2 | .pagination {
3 | .page-item {
4 | &.active {
5 | .page-link {
6 | color: $white-base;
7 | background-color: $primary-color;
8 | border-radius: $border-radius-base;
9 | box-shadow: $z-depth-1;
10 | transition: $pagination-active-transition;
11 | &:hover {
12 | background-color: $primary-color;
13 | }
14 | }
15 | }
16 | &.disabled {
17 | .page-link {
18 | color: $pagination-page-item-disabled-color;
19 | }
20 | }
21 | .page-link {
22 | font-size: $pagination-page-link-font-size;
23 | color: $pagination-page-link-color;
24 | background-color: transparent;
25 | border: 0;
26 | outline: 0;
27 | transition: $pagination-page-link-transition;
28 | &:hover {
29 | background-color: $pagination-page-link-hover-bg-color;
30 | border-radius: $border-radius-base;
31 | transition: $pagination-page-link-transition;
32 | }
33 | &:focus {
34 | background-color: transparent;
35 | box-shadow: none;
36 | }
37 | }
38 | }
39 | &.pagination-lg {
40 | .page-item {
41 | .page-link {
42 | font-size: $pagination-page-link-font-size-lg;
43 | }
44 | }
45 | }
46 | &.pagination-sm {
47 | .page-item {
48 | .page-link {
49 | font-size: $pagination-page-link-font-size-sm;
50 | }
51 | }
52 | }
53 | &.pagination-circle {
54 | .page-item {
55 | .page-link {
56 | margin-right: $pagination-circle-margin-x;
57 | margin-left: $pagination-circle-margin-x;
58 | border-radius: $pagination-circle-border-radius;
59 | &:hover {
60 | border-radius: $pagination-circle-border-radius;
61 | }
62 | }
63 | &.active {
64 | .page-link {
65 | border-radius: $pagination-circle-border-radius;
66 | }
67 | }
68 | }
69 | }
70 | @each $name, $color in $pagination-colors {
71 | &.pg-#{$name} {
72 | .page-item {
73 | &.active {
74 | .page-link {
75 | background-color: $color;
76 | &:hover {
77 | background-color: $color;
78 | }
79 | }
80 | }
81 | }
82 | }
83 | }
84 | }
85 |
--------------------------------------------------------------------------------
/scss/free/_steppers.scss:
--------------------------------------------------------------------------------
1 | // Steppers
2 | ul.stepper {
3 | padding: 0 1.5rem;
4 | padding: 1.5rem;
5 | margin: 1em -1.5rem;
6 | overflow-x: hidden;
7 | overflow-y: auto;
8 | counter-reset: section;
9 |
10 | li {
11 | a {
12 | padding: $stepper-li-a-padding;
13 | text-align: center;
14 |
15 | .circle {
16 | display: inline-block;
17 | width: 1.75rem;
18 | height: 1.75rem;
19 | margin-right: $stepper-li-a-circle-mr;
20 | line-height: 1.7rem;
21 | color: $stepper-li-a-circle-color;
22 | text-align: center;
23 | background: $stepper-li-a-circle-bg;
24 | border-radius: $stepper-li-a-circle-border-radius;
25 | }
26 |
27 | .label {
28 | display: inline-block;
29 | color: $stepper-li-a-circle-bg;
30 | }
31 | }
32 |
33 | &.active,
34 | &.completed {
35 | a {
36 | .circle {
37 | @extend .primary-color;
38 | }
39 |
40 | .label {
41 | font-weight: 600;
42 | color: $stepper-li-a-label-color;
43 | }
44 | }
45 | }
46 |
47 | &.warning {
48 | a {
49 | .circle {
50 | // background-color: #ff3547 !important;
51 | @extend .danger-color !optional;
52 | }
53 | }
54 | }
55 | }
56 | }
57 |
58 | // Horizontal
59 | .stepper-horizontal {
60 | position: relative;
61 | display: flex;
62 | justify-content: space-between;
63 |
64 | li {
65 | position: relative;
66 | display: flex;
67 | flex: 1;
68 | align-items: center;
69 | transition: $stepper-horizontal-li-transition;
70 |
71 | a {
72 | .label {
73 | margin-top: $stepper-horizontal-li-a-label-mt;
74 | }
75 | }
76 |
77 | &:not(:last-child):after {
78 | position: relative;
79 | flex: 1;
80 | height: $stepper-horizontal-li-after-height;
81 | margin: $stepper-horizontal-li-after-margin 0 0 0;
82 | content: "";
83 | background-color: $stepper-horizontal-li-after-bgc;
84 | }
85 |
86 | &:not(:first-child):before {
87 | position: relative;
88 | flex: 1;
89 | height: $stepper-horizontal-li-after-height;
90 | margin: $stepper-horizontal-li-after-margin 0 0 0;
91 | content: "";
92 | background-color: $stepper-horizontal-li-after-bgc;
93 | }
94 |
95 | &:hover {
96 | background-color: rgba(0, 0, 0, .06);
97 | }
98 | }
99 |
100 | @media (max-width: $stepper-horizontal-breakpoint) {
101 | flex-direction: column;
102 |
103 | li {
104 | flex-direction: column;
105 | align-items: flex-start;
106 |
107 | a {
108 | .label {
109 | flex-flow: column nowrap;
110 | order: 2;
111 | margin-top: $stepper-horizontal-small-li-a-label-mt;
112 | }
113 | }
114 |
115 | &:not(:last-child):after {
116 | position: absolute;
117 | top: $stepper-horizontal-small-li-after-top;
118 | left: $stepper-horizontal-small-li-after-left;
119 | width: $stepper-horizontal-small-li-after-width;
120 | height: $stepper-horizontal-small-li-after-height;
121 | content: "";
122 | }
123 | }
124 | }
125 |
126 | > li:not(:last-of-type) {
127 | margin-bottom: 0 !important;
128 | }
129 | }
130 |
131 | // Vertical
132 | .stepper-vertical {
133 | position: relative;
134 | display: flex;
135 | flex-direction: column;
136 | justify-content: space-between;
137 |
138 | li {
139 | position: relative;
140 | display: flex;
141 | flex: 1;
142 | flex-direction: column;
143 | align-items: flex-start;
144 |
145 | a {
146 | position: relative;
147 | display: flex;
148 | align-self: flex-start;
149 |
150 | .circle {
151 | order: 1;
152 | }
153 |
154 | .label {
155 | flex-flow: column nowrap;
156 | order: 2;
157 | margin-top: $stepper-vertical-li-a-label-mt;
158 | }
159 | }
160 |
161 | &.completed {
162 | a {
163 | .label {
164 | font-weight: 500;
165 | }
166 | }
167 | }
168 |
169 | .step-content {
170 | display: block;
171 | padding: $stepper-vertical-li-step-content-padding;
172 | margin-top: 0;
173 | margin-left: $stepper-vertical-li-step-content-ml;
174 |
175 | p {
176 | font-size: $stepper-vertical-li-step-content-p-font-size;
177 | }
178 | }
179 |
180 | &:not(:last-child):after {
181 | position: absolute;
182 | top: $stepper-vertical-li-after-top;
183 | left: $stepper-vertical-li-after-left;
184 | width: $stepper-vertical-li-after-width;
185 | height: $stepper-vertical-li-after-height;
186 | content: "";
187 | background-color: $stepper-vertical-li-after-bgc;
188 | }
189 | }
190 | }
191 |
--------------------------------------------------------------------------------
/scss/free/_switch.scss:
--------------------------------------------------------------------------------
1 | // Switch free
2 | .bs-switch {
3 | position: relative;
4 | display: inline-block;
5 | width: 60px;
6 | height: 34px;
7 | input {
8 | display: none;
9 | &:checked {
10 | + .slider {
11 | background-color: #2196F3;
12 | &:before {
13 | transform: translateX(26px);
14 | }
15 | }
16 | }
17 | &:focus {
18 | + .slider {
19 | box-shadow: 0 0 1px #2196F3;
20 | }
21 | }
22 | }
23 | .slider {
24 | position: absolute;
25 | cursor: pointer;
26 | top: 0;
27 | left: 0;
28 | right: 0;
29 | bottom: 0;
30 | background-color: #ccc;
31 | -webkit-transition: .4s;
32 | transition: .4s;
33 | &:before {
34 | position: absolute;
35 | content: "";
36 | height: 26px;
37 | width: 26px;
38 | left: 4px;
39 | bottom: 4px;
40 | background-color: white;
41 | -webkit-transition: .4s;
42 | transition: .4s;
43 | }
44 | &.round {
45 | border-radius: 34px;
46 | &:before {
47 | border-radius: 50%;
48 | }
49 | }
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/scss/free/_tables.scss:
--------------------------------------------------------------------------------
1 | // Tables
2 | table {
3 | th {
4 | font-size: $table-th-font-size;
5 | font-weight: 400;
6 | }
7 | td {
8 | font-size: $table-td-font-size;
9 | font-weight: 300;
10 | }
11 | &.table {
12 | thead th {
13 | border-top: none;
14 | }
15 | th,
16 | td {
17 | padding-top: $table-th-padding-top;
18 | padding-bottom: $table-td-padding-bottom;
19 | }
20 | a {
21 | margin: 0;
22 | color: $table-a-color;
23 | // &.btn {
24 | // color: inherit;
25 | // }
26 | }
27 | .label-table {
28 | height: $table-label-line-height;
29 | padding: 0;
30 | margin: 0;
31 | line-height: $table-label-height;
32 | }
33 | &.btn-table {
34 | td {
35 | vertical-align: middle;
36 | }
37 | }
38 | }
39 | &.table-hover {
40 | tbody {
41 | tr {
42 | &:hover {
43 | background-color: $table-hover-background-color;
44 | transition: $table-hover-transition;
45 | }
46 | }
47 | }
48 | }
49 | .th-lg {
50 | min-width: $table-th-lg-min-width;
51 | }
52 | .th-sm {
53 | min-width: $table-th-sm-min-width;
54 | }
55 | &.table-sm {
56 | th,
57 | td {
58 | padding-top: $table-sm-padding-y;
59 | padding-bottom: $table-sm-padding-y;
60 | }
61 | }
62 | }
63 | .table-scroll-vertical {
64 | max-height: $table-scroll-vertical-max-height;
65 | overflow-y: auto;
66 | }
67 | .table-fixed {
68 | table-layout: fixed;
69 | }
70 | .table-responsive,
71 | .table-responsive-sm,
72 | .table-responsive-md,
73 | .table-responsive-lg,
74 | .table-responsive-xl {
75 | > .table-bordered {
76 | border-top: 1px solid #dee2e6;
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/scss/free/_treeview.scss:
--------------------------------------------------------------------------------
1 | // Treeview
2 | .treeview {
3 | &.w-20 {
4 | width: 20rem;
5 | }
6 | .rotate {
7 | margin-top: .2rem;
8 | font-size: .8rem;
9 | vertical-align: text-top;
10 | cursor: pointer;
11 | user-select: none;
12 | transition: all .1s linear;
13 | &.down {
14 | transform: rotate(90deg);
15 | }
16 | }
17 | .nested {
18 | display: none;
19 | }
20 | .active {
21 | display: block;
22 | }
23 | ul {
24 | list-style-type: none;
25 | }
26 | .ic-w {
27 | width: 1.3rem;
28 | }
29 | }
30 |
31 | .treeview-animated {
32 | &.w-20 {
33 | width: 20rem;
34 | }
35 | ul {
36 | position: relative;
37 | padding-left: 1em;
38 | list-style: none;
39 | }
40 |
41 | .treeview-animated-list {
42 | li {
43 | padding: .2em 0 0 .2em;
44 | }
45 |
46 | .treeview-animated-items {
47 |
48 | .nested {
49 | &::before {
50 | position: absolute;
51 | left: 5px;
52 | display: block;
53 | width: 5px;
54 | height: 100%;
55 | content: "";
56 | background-color: #808080;
57 | }
58 | }
59 |
60 | .closed {
61 | display: block;
62 | padding: .2em .2em .2em .4em;
63 | margin-right: 0;
64 | border-top-left-radius: .3em;
65 | border-bottom-left-radius: .3em;
66 |
67 | &:hover {
68 | background-color: rgb(140, 185, 255);
69 | }
70 |
71 | .fa-angle-right {
72 | font-size: .8rem;
73 | transition: all .1s linear;
74 |
75 | &.down {
76 | position: relative;
77 | color: #f8f9fa;
78 | transform: rotate(90deg);
79 | }
80 | }
81 | }
82 |
83 | .open {
84 | background-color: rgb(50, 160, 255);
85 | transition: all .1s linear;
86 |
87 | &:hover {
88 | color: #f8f9fa;
89 | background-color: rgb(50, 160, 255);
90 | }
91 |
92 | span {
93 | color: #f8f9fa;
94 | }
95 | }
96 | }
97 |
98 | .treeview-animated-element {
99 | padding: .2em .2em .2em .6em;
100 | cursor: pointer;
101 | border-top-left-radius: 4px;
102 | border-bottom-left-radius: 4px;
103 | transition: all .1s linear;
104 |
105 | &:hover {
106 | background-color: rgb(140, 185, 255);
107 | }
108 |
109 | &.opened {
110 | color: #f8f9fa;
111 | background-color: rgb(50, 160, 255);
112 |
113 | &:hover {
114 | color: #f8f9fa;
115 | background-color: rgb(50, 160, 255);
116 | }
117 | }
118 | }
119 | }
120 | }
121 |
122 | .treeview-colorful {
123 | font-size: 16px;
124 | font-weight: 400;
125 | background: rgba(224, 127, 178, .2);
126 |
127 | &.w-20 {
128 | width: 20rem;
129 | }
130 |
131 | hr {
132 | border-color: #a2127a;
133 | }
134 |
135 | h6 {
136 | font-size: 1.4em;
137 | font-weight: 500;
138 | color: #a2127a;
139 | }
140 |
141 | ul {
142 | position: relative;
143 | padding-left: 0;
144 | list-style: none;
145 | }
146 |
147 | .treeview-colorful-list {
148 |
149 | ul {
150 | padding-left: 1em;
151 | margin-top: .1em;
152 | background: rgba(224, 127, 178, .2);
153 | }
154 | }
155 |
156 | .treeview-colorful-element {
157 | padding: .2em .2em .2em 1em;
158 | cursor: pointer;
159 | border: 2px solid transparent;
160 | border-right: 0 solid transparent;
161 | transition: all .1s linear;
162 |
163 | &:hover {
164 | background-color: #e07fb2;
165 | }
166 |
167 | &.opened {
168 | color: #ffac47;
169 | background-color: #a2127a;
170 | border: 2px solid #ffac47;
171 | border-right: 0 solid transparent;
172 |
173 | &:hover {
174 | color: #ffac47;
175 | background-color: #a2127a;
176 | }
177 | }
178 |
179 | }
180 | .treeview-colorful-items-header {
181 | display: block;
182 | padding: .4em;
183 | margin-right: 0;
184 | border-bottom: 2px solid transparent;
185 | transition: all .1s linear;
186 |
187 | &:hover {
188 | background-color: #e07fb2;
189 | }
190 |
191 | &.open {
192 | background-color: #a2127a;
193 | border-bottom: 2px solid #ffac47;
194 | transition: all .1s linear;
195 |
196 | span {
197 | color: #ffac47;
198 | }
199 |
200 | &:hover {
201 | color: #ffac47;
202 | background-color: #a2127a;
203 | }
204 |
205 | div:hover {
206 | background-color: #a2127a;
207 | }
208 | }
209 |
210 | .fa-angle-right {
211 | font-size: .8rem;
212 | transition: all .2s linear;
213 | }
214 |
215 | .fas {
216 | position: relative;
217 | color: #ffac47;
218 | transition: all .2s linear;
219 | transform: rotate(90deg);
220 | }
221 |
222 | .fa-minus-circle {
223 | position: relative;
224 | color: #ffac47;
225 | transition: all .2s linear;
226 | transform: rotate(180deg);
227 | }
228 | }
229 | }
230 |
--------------------------------------------------------------------------------
/scss/free/modules/animations-extended/animations-extended.scss:
--------------------------------------------------------------------------------
1 | /*
2 | * MDBootstrap Animations Extended
3 | * Learn more: https://mdbootstrap.com/docs/jquery/css/animations/
4 | * About MDBootstrap: https://mdbootstrap.com/
5 | */
6 |
7 | @import "module";
8 |
--------------------------------------------------------------------------------
/scss/mdb.lite.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Material Design for Bootstrap 4
3 | * Version: MDB Lite 4.8.11
4 | *
5 | *
6 | * Copyright: Material Design for Bootstrap
7 | * https://mdbootstrap.com/
8 | *
9 | * Read the license: https://mdbootstrap.com/general/license/
10 | *
11 | *
12 | * Documentation: https://mdbootstrap.com/
13 | *
14 | * Getting started: https://mdbootstrap.com/docs/jquery/getting-started/download/
15 | *
16 | * Tutorials: https://mdbootstrap.com/education/bootstrap/
17 | *
18 | * Templates: https://mdbootstrap.com/templates/
19 | *
20 | * Support: https://mdbootstrap.com/support/
21 | *
22 | * Contact: office@mdbootstrap.com
23 | *
24 | * Attribution: Animate CSS, Twitter Bootstrap, Materialize CSS, Normalize CSS, Waves JS, WOW JS, Toastr, Chart.js
25 | *
26 | */
27 |
28 | @charset "UTF-8";
29 |
30 | // Bootstrap
31 | @import "core/bootstrap/functions";
32 | @import "core/bootstrap/variables";
33 |
34 | // CORE
35 | @import "core/mixins";
36 | // Your custom variables
37 | @import "custom-variables";
38 | @import "core/colors";
39 | @import "core/variables";
40 | @import "core/global";
41 | @import "core/helpers";
42 | @import "core/typography";
43 | @import "core/masks";
44 | @import "core/waves";
45 |
46 | // FREE
47 | @import "free/animations-basic";
48 | @import "free/buttons";
49 | @import "free/cards";
50 | @import "free/dropdowns";
51 | @import "free/input-group";
52 | @import "free/navbars";
53 | @import "free/pagination";
54 | @import "free/badges";
55 | @import "free/modals";
56 | @import "free/carousels";
57 | @import "free/forms";
58 | @import "free/msc";
59 | @import "free/footers";
60 | @import "free/list-group";
61 | @import "free/tables";
62 | @import "free/depreciated";
63 | @import "free/steppers";
64 | @import "free/loader";
65 | @import "free/treeview";
66 |
67 | // Your custom styles
68 | @import "custom-styles";
69 |
--------------------------------------------------------------------------------
/scss/mdb.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Material Design for Bootstrap 4
3 | * Version: MDB FREE 4.8.11
4 | *
5 | *
6 | * Copyright: Material Design for Bootstrap
7 | * https://mdbootstrap.com/
8 | *
9 | * Read the license: https://mdbootstrap.com/general/license/
10 | *
11 | *
12 | * Documentation: https://mdbootstrap.com/
13 | *
14 | * Getting started: https://mdbootstrap.com/docs/jquery/getting-started/download/
15 | *
16 | * Tutorials: https://mdbootstrap.com/education/bootstrap/
17 | *
18 | * Templates: https://mdbootstrap.com/templates/
19 | *
20 | * Support: https://mdbootstrap.com/support/
21 | *
22 | * Contact: office@mdbootstrap.com
23 | *
24 | * Attribution: Animate CSS, Twitter Bootstrap, Materialize CSS, Normalize CSS, Waves JS, WOW JS, Toastr, Chart.js
25 | *
26 | */
27 |
28 | @charset "UTF-8";
29 |
30 | // Bootstrap
31 | @import "core/bootstrap/functions";
32 | @import "core/bootstrap/variables";
33 | @import "core/bootstrap/rfs";
34 |
35 | // CORE
36 | @import "core/mixins";
37 | // Your custom variables
38 | @import "custom-variables";
39 | @import "core/colors";
40 | @import "core/variables";
41 | @import "core/global";
42 | @import "core/helpers";
43 | @import "core/typography";
44 | @import "core/masks";
45 | @import "core/waves";
46 |
47 | // FREE
48 | @import "free/animations-basic";
49 | @import "free/modules/animations-extended/module";
50 | @import "free/buttons";
51 | @import "free/cards";
52 | @import "free/dropdowns";
53 | @import "free/input-group";
54 | @import "free/navbars";
55 | @import "free/pagination";
56 | @import "free/badges";
57 | @import "free/modals";
58 | @import "free/carousels";
59 | @import "free/forms";
60 | @import "free/msc";
61 | @import "free/footers";
62 | @import "free/list-group";
63 | @import "free/tables";
64 | @import "free/depreciated";
65 | @import "free/steppers";
66 | @import "free/loader";
67 | @import "free/treeview";
68 | // Free addons
69 | // @import "addons/datatables";
70 | // @import "addons/datatables-select";
71 | // @import "addons/directives";
72 | // @import "addons/hierarchical-display";
73 | // @import "addons/flags";
74 | // @import "addons/rating";
75 |
76 | // Your custom styles
77 | @import "custom-styles";
78 |
--------------------------------------------------------------------------------
/scss/style.scss:
--------------------------------------------------------------------------------
1 | // Your custom styles
2 |
3 | /* Required height of parents of the Half Page Carousel for proper displaying carousel itself */
4 | html,
5 | body,
6 | .view {
7 | height: 100%; }
8 |
9 | @media (max-width: 740px) {
10 | .full-page-intro {
11 | height: 1000px; } }
12 |
13 | /* Half Page Carousel itself*/
14 | .carousel {
15 | height: 50%; }
16 | .carousel .carousel-inner {
17 | height: 100%; }
18 | .carousel .carousel-inner .carousel-item,
19 | .carousel .carousel-inner .active {
20 | height: 100%; }
21 |
22 | /* Adjustment for mobile devices*/
23 | @media (max-width: 776px) {
24 | .carousel {
25 | height: 100%; } }
26 |
27 | /* Navbar animation */
28 | .navbar {
29 | background-color: rgba(0, 0, 0, 0.3); }
30 |
31 | .top-nav-collapse {
32 | background-color: #1C2331; }
33 |
34 | /* Adding color to the Navbar on mobile */
35 | @media only screen and (max-width: 768px) {
36 | .navbar {
37 | background-color: #1C2331; } }
38 |
39 | /* Footer color for sake of consistency with Navbar */
40 | .page-footer {
41 | background-color: #1C2331; }
42 |
--------------------------------------------------------------------------------