├── README.md ├── about.html ├── contact.html ├── courses.html ├── css ├── bootstrap.min.css └── style.css ├── img ├── ai.jpg ├── cat-1.jpg ├── course-3.jpg ├── data.jpg ├── download.jpg ├── m2.jpg ├── machine.jpg ├── machine2.jpg ├── prof2.jpg ├── prof3.jpg ├── prof4.jpg ├── rocky.webp ├── rocky10.jpg ├── rocky11.jpg ├── rocky12.jpg ├── rocky13.jpg ├── rocky2.jpeg ├── rocky3.jpeg ├── rocky4.jpeg ├── rocky6.jpg ├── rocky7.jpg ├── rocky8.jpg ├── rocky9.jpg ├── student12.jpg ├── student2.jpg ├── student3.jpg ├── student4.jpg ├── student5.jpg ├── student6.jpg ├── swati.jpg ├── web.jpg └── web1.jpg ├── index.html ├── js └── main.js ├── lib ├── animate │ ├── animate.css │ └── animate.min.css ├── easing │ ├── easing.js │ └── easing.min.js └── owlcarousel │ └── assets │ ├── ajax-loader.gif │ ├── owl.carousel.css │ ├── owl.carousel.min.css │ ├── owl.theme.default.css │ ├── owl.theme.default.min.css │ ├── owl.theme.green.css │ ├── owl.theme.green.min.css │ └── owl.video.play.png ├── scss ├── bootstrap.scss └── bootstrap │ └── scss │ ├── _accordion.scss │ ├── _alert.scss │ ├── _badge.scss │ ├── _breadcrumb.scss │ ├── _button-group.scss │ ├── _buttons.scss │ ├── _card.scss │ ├── _carousel.scss │ ├── _close.scss │ ├── _containers.scss │ ├── _dropdown.scss │ ├── _forms.scss │ ├── _functions.scss │ ├── _grid.scss │ ├── _helpers.scss │ ├── _images.scss │ ├── _list-group.scss │ ├── _mixins.scss │ ├── _modal.scss │ ├── _nav.scss │ ├── _navbar.scss │ ├── _offcanvas.scss │ ├── _pagination.scss │ ├── _popover.scss │ ├── _progress.scss │ ├── _reboot.scss │ ├── _root.scss │ ├── _spinners.scss │ ├── _tables.scss │ ├── _toasts.scss │ ├── _tooltip.scss │ ├── _transitions.scss │ ├── _type.scss │ ├── _utilities.scss │ ├── _variables.scss │ ├── bootstrap-grid.scss │ ├── bootstrap-reboot.scss │ ├── bootstrap-utilities.scss │ ├── bootstrap.scss │ ├── forms │ ├── _floating-labels.scss │ ├── _form-check.scss │ ├── _form-control.scss │ ├── _form-range.scss │ ├── _form-select.scss │ ├── _form-text.scss │ ├── _input-group.scss │ ├── _labels.scss │ └── _validation.scss │ ├── helpers │ ├── _clearfix.scss │ ├── _colored-links.scss │ ├── _position.scss │ ├── _ratio.scss │ ├── _stretched-link.scss │ ├── _text-truncation.scss │ └── _visually-hidden.scss │ ├── mixins │ ├── _alert.scss │ ├── _border-radius.scss │ ├── _box-shadow.scss │ ├── _breakpoints.scss │ ├── _buttons.scss │ ├── _caret.scss │ ├── _clearfix.scss │ ├── _color-scheme.scss │ ├── _container.scss │ ├── _deprecate.scss │ ├── _forms.scss │ ├── _gradients.scss │ ├── _grid.scss │ ├── _image.scss │ ├── _list-group.scss │ ├── _lists.scss │ ├── _pagination.scss │ ├── _reset-text.scss │ ├── _resize.scss │ ├── _table-variants.scss │ ├── _text-truncate.scss │ ├── _transition.scss │ ├── _utilities.scss │ └── _visually-hidden.scss │ ├── utilities │ └── _api.scss │ └── vendor │ └── _rfs.scss ├── team.html └── testimonial.html /README.md: -------------------------------------------------------------------------------- 1 | # GayanPath - E-Learning Website 2 | 3 | Welcome to GayanPath, an E-Learning website designed to provide a comprehensive and interactive learning experience. This project focuses solely on the front-end development, showcasing a modern, user-friendly interface to enhance the learning journey. 4 | 5 | ## Table of Contents 6 | - [Project Overview](#project-overview) 7 | - [Features](#features) 8 | - [Images](#Images) 9 | - [Tech Stack](#tech-stack) 10 | - [Installation](#installation) 11 | - [Usage](#usage) 12 | - [Contributing](#contributing) 13 | 14 | 15 | ## Project Overview 16 | GayanPath is a front-end only E-Learning website created to offer a visually appealing and easy-to-navigate platform for students and educators. The website is designed with a focus on user experience, ensuring that learners can access educational content effortlessly. 17 | 18 | ### Images 19 | ![GayanPath Home](https://github.com/Rpatel9675/GayanPath--E-Learning-website/assets/120505241/e727db66-f449-43ba-8eee-ba24ccd16d04) 20 | ![GayanPath Courses](https://github.com/Rpatel9675/GayanPath--E-Learning-website/assets/120505241/dff845c5-26cf-4b0b-824a-33c07b0ba22b) 21 | ![GayanPath Course Details](https://github.com/Rpatel9675/GayanPath--E-Learning-website/assets/120505241/c4bdfc66-c9af-449c-bedd-072ddb3f0963) 22 | ![GayanPath About Us](https://github.com/Rpatel9675/GayanPath--E-Learning-website/assets/120505241/8ff10822-de1f-4c96-84fc-4f1e867ccc91) 23 | 24 | ## Features 25 | - **Modern UI:** Clean and contemporary design for an enhanced user experience. 26 | - **Responsive Design:** Optimized for various devices including desktops, tablets, and mobile phones. 27 | - **Interactive Elements:** Engaging components to keep users motivated and involved. 28 | - **Course Listings:** Organized presentation of available courses with detailed information. 29 | - **About Section:** Information about the platform and its mission. 30 | 31 | ## Tech Stack 32 | - **HTML5:** Structuring the web content. 33 | - **CSS3:** Styling the website with custom designs. 34 | - **JavaScript:** Adding interactivity and dynamic features. 35 | - **Bootstrap:** Utilizing pre-designed components and responsive grid system. 36 | 37 | ## Installation 38 | To set up the project locally, follow these steps: 39 | 40 | 1. **Clone the Repository:** 41 | ```sh 42 | git clone https://github.com/Rpatel9675/GayanPath--E-Learning-website.git 43 | ``` 44 | 45 | 2. **Navigate to the Project Directory:** 46 | ```sh 47 | cd GayanPath--E-Learning-website 48 | ``` 49 | 50 | 3. **Open the Project:** 51 | Open the `index.html` file in your preferred web browser. 52 | 53 | ## Usage 54 | Explore the various sections of the website: 55 | 56 | 1. **Home Page:** Overview of the platform and featured courses. 57 | 2. **Courses Page:** Detailed listing of all available courses. 58 | 3. **Course Details:** In-depth information about specific courses. 59 | 4. **About Us:** Learn more about GayanPath and its goals. 60 | 61 | ## Contributing 62 | We welcome contributions to enhance the GayanPath E-Learning website. If you have suggestions, improvements, or new features, please follow these steps: 63 | 64 | 1. Fork the repository. 65 | 2. Create a new branch (`git checkout -b feature-branch`). 66 | 3. Make your changes and commit them (`git commit -m 'Add new feature'`). 67 | 4. Push to the branch (`git push origin feature-branch`). 68 | 5. Open a pull request. 69 | -------------------------------------------------------------------------------- /css/style.css: -------------------------------------------------------------------------------- 1 | /********** Template CSS **********/ 2 | :root { 3 | --primary: #06BBCC; 4 | --light: #F0FBFC; 5 | --dark: #181d38; 6 | } 7 | 8 | .fw-medium { 9 | font-weight: 600 !important; 10 | } 11 | 12 | .fw-semi-bold { 13 | font-weight: 700 !important; 14 | } 15 | 16 | .back-to-top { 17 | position: fixed; 18 | display: none; 19 | right: 45px; 20 | bottom: 45px; 21 | z-index: 99; 22 | } 23 | 24 | 25 | /*** Spinner ***/ 26 | #spinner { 27 | opacity: 0; 28 | visibility: hidden; 29 | transition: opacity .5s ease-out, visibility 0s linear .5s; 30 | z-index: 99999; 31 | } 32 | 33 | #spinner.show { 34 | transition: opacity .5s ease-out, visibility 0s linear 0s; 35 | visibility: visible; 36 | opacity: 1; 37 | } 38 | 39 | 40 | /*** Button ***/ 41 | .btn { 42 | font-family: 'Nunito', sans-serif; 43 | font-weight: 600; 44 | transition: .5s; 45 | } 46 | 47 | .btn.btn-primary, 48 | .btn.btn-secondary { 49 | color: #FFFFFF; 50 | } 51 | 52 | .btn-square { 53 | width: 38px; 54 | height: 38px; 55 | } 56 | 57 | .btn-sm-square { 58 | width: 32px; 59 | height: 32px; 60 | } 61 | 62 | .btn-lg-square { 63 | width: 48px; 64 | height: 48px; 65 | } 66 | 67 | .btn-square, 68 | .btn-sm-square, 69 | .btn-lg-square { 70 | padding: 0; 71 | display: flex; 72 | align-items: center; 73 | justify-content: center; 74 | font-weight: normal; 75 | border-radius: 0px; 76 | } 77 | 78 | 79 | /*** Navbar ***/ 80 | .navbar .dropdown-toggle::after { 81 | border: none; 82 | content: "\f107"; 83 | font-family: "Font Awesome 5 Free"; 84 | font-weight: 900; 85 | vertical-align: middle; 86 | margin-left: 8px; 87 | } 88 | 89 | .navbar-light .navbar-nav .nav-link { 90 | margin-right: 30px; 91 | padding: 25px 0; 92 | color: #FFFFFF; 93 | font-size: 15px; 94 | text-transform: uppercase; 95 | outline: none; 96 | } 97 | 98 | .navbar-light .navbar-nav .nav-link:hover, 99 | .navbar-light .navbar-nav .nav-link.active { 100 | color: var(--primary); 101 | } 102 | 103 | @media (max-width: 991.98px) { 104 | .navbar-light .navbar-nav .nav-link { 105 | margin-right: 0; 106 | padding: 10px 0; 107 | } 108 | 109 | .navbar-light .navbar-nav { 110 | border-top: 1px solid #EEEEEE; 111 | } 112 | } 113 | 114 | .navbar-light .navbar-brand, 115 | .navbar-light a.btn { 116 | height: 75px; 117 | } 118 | 119 | .navbar-light .navbar-nav .nav-link { 120 | color: var(--dark); 121 | font-weight: 500; 122 | } 123 | 124 | .navbar-light.sticky-top { 125 | top: -100px; 126 | transition: .5s; 127 | } 128 | 129 | @media (min-width: 992px) { 130 | .navbar .nav-item .dropdown-menu { 131 | display: block; 132 | margin-top: 0; 133 | opacity: 0; 134 | visibility: hidden; 135 | transition: .5s; 136 | } 137 | 138 | .navbar .dropdown-menu.fade-down { 139 | top: 100%; 140 | transform: rotateX(-75deg); 141 | transform-origin: 0% 0%; 142 | } 143 | 144 | .navbar .nav-item:hover .dropdown-menu { 145 | top: 100%; 146 | transform: rotateX(0deg); 147 | visibility: visible; 148 | transition: .5s; 149 | opacity: 1; 150 | } 151 | } 152 | 153 | 154 | /*** Header carousel ***/ 155 | @media (max-width: 768px) { 156 | .header-carousel .owl-carousel-item { 157 | position: relative; 158 | min-height: 500px; 159 | } 160 | 161 | .header-carousel .owl-carousel-item img { 162 | position: absolute; 163 | width: 100%; 164 | height: 100%; 165 | object-fit: cover; 166 | } 167 | } 168 | 169 | .header-carousel .owl-nav { 170 | position: absolute; 171 | top: 50%; 172 | right: 8%; 173 | transform: translateY(-50%); 174 | display: flex; 175 | flex-direction: column; 176 | } 177 | 178 | .header-carousel .owl-nav .owl-prev, 179 | .header-carousel .owl-nav .owl-next { 180 | margin: 7px 0; 181 | width: 45px; 182 | height: 45px; 183 | display: flex; 184 | align-items: center; 185 | justify-content: center; 186 | color: #FFFFFF; 187 | background: transparent; 188 | border: 1px solid #FFFFFF; 189 | font-size: 22px; 190 | transition: .5s; 191 | } 192 | 193 | .header-carousel .owl-nav .owl-prev:hover, 194 | .header-carousel .owl-nav .owl-next:hover { 195 | background: var(--primary); 196 | border-color: var(--primary); 197 | } 198 | 199 | .page-header { 200 | background: linear-gradient(rgba(24, 29, 56, .7), rgba(24, 29, 56, .7)), url(../img/rocky11.jpg); 201 | background-position: center center; 202 | background-repeat: no-repeat; 203 | background-size: cover; 204 | } 205 | 206 | .page-header-inner { 207 | background: rgba(15, 23, 43, .7); 208 | } 209 | 210 | .breadcrumb-item + .breadcrumb-item::before { 211 | color: var(--light); 212 | } 213 | 214 | 215 | /*** Section Title ***/ 216 | .section-title { 217 | position: relative; 218 | display: inline-block; 219 | text-transform: uppercase; 220 | } 221 | 222 | .section-title::before { 223 | position: absolute; 224 | content: ""; 225 | width: calc(100% + 80px); 226 | height: 2px; 227 | top: 4px; 228 | left: -40px; 229 | background: var(--primary); 230 | z-index: -1; 231 | } 232 | 233 | .section-title::after { 234 | position: absolute; 235 | content: ""; 236 | width: calc(100% + 120px); 237 | height: 2px; 238 | bottom: 5px; 239 | left: -60px; 240 | background: var(--primary); 241 | z-index: -1; 242 | } 243 | 244 | .section-title.text-start::before { 245 | width: calc(100% + 40px); 246 | left: 0; 247 | } 248 | 249 | .section-title.text-start::after { 250 | width: calc(100% + 60px); 251 | left: 0; 252 | } 253 | 254 | 255 | /*** Service ***/ 256 | .service-item { 257 | background: var(--light); 258 | transition: .5s; 259 | } 260 | 261 | .service-item:hover { 262 | margin-top: -10px; 263 | background: var(--primary); 264 | } 265 | 266 | .service-item * { 267 | transition: .5s; 268 | } 269 | 270 | .service-item:hover * { 271 | color: var(--light) !important; 272 | } 273 | 274 | 275 | /*** Categories & Courses ***/ 276 | .category img, 277 | .course-item img { 278 | transition: .5s; 279 | } 280 | 281 | .category a:hover img, 282 | .course-item:hover img { 283 | transform: scale(1.1); 284 | } 285 | 286 | 287 | /*** Team ***/ 288 | .team-item img { 289 | transition: .5s; 290 | } 291 | 292 | .team-item:hover img { 293 | transform: scale(1.1); 294 | } 295 | 296 | 297 | /*** Testimonial ***/ 298 | .testimonial-carousel::before { 299 | position: absolute; 300 | content: ""; 301 | top: 0; 302 | left: 0; 303 | height: 100%; 304 | width: 0; 305 | background: linear-gradient(to right, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%); 306 | z-index: 1; 307 | } 308 | 309 | .testimonial-carousel::after { 310 | position: absolute; 311 | content: ""; 312 | top: 0; 313 | right: 0; 314 | height: 100%; 315 | width: 0; 316 | background: linear-gradient(to left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%); 317 | z-index: 1; 318 | } 319 | 320 | @media (min-width: 768px) { 321 | .testimonial-carousel::before, 322 | .testimonial-carousel::after { 323 | width: 200px; 324 | } 325 | } 326 | 327 | @media (min-width: 992px) { 328 | .testimonial-carousel::before, 329 | .testimonial-carousel::after { 330 | width: 300px; 331 | } 332 | } 333 | 334 | .testimonial-carousel .owl-item .testimonial-text, 335 | .testimonial-carousel .owl-item.center .testimonial-text * { 336 | transition: .5s; 337 | } 338 | 339 | .testimonial-carousel .owl-item.center .testimonial-text { 340 | background: var(--primary) !important; 341 | } 342 | 343 | .testimonial-carousel .owl-item.center .testimonial-text * { 344 | color: #FFFFFF !important; 345 | } 346 | 347 | .testimonial-carousel .owl-dots { 348 | margin-top: 24px; 349 | display: flex; 350 | align-items: flex-end; 351 | justify-content: center; 352 | } 353 | 354 | .testimonial-carousel .owl-dot { 355 | position: relative; 356 | display: inline-block; 357 | margin: 0 5px; 358 | width: 15px; 359 | height: 15px; 360 | border: 1px solid #CCCCCC; 361 | transition: .5s; 362 | } 363 | 364 | .testimonial-carousel .owl-dot.active { 365 | background: var(--primary); 366 | border-color: var(--primary); 367 | } 368 | 369 | 370 | /*** Footer ***/ 371 | .footer .btn.btn-social { 372 | margin-right: 5px; 373 | width: 35px; 374 | height: 35px; 375 | display: flex; 376 | align-items: center; 377 | justify-content: center; 378 | color: var(--light); 379 | font-weight: normal; 380 | border: 1px solid #FFFFFF; 381 | border-radius: 35px; 382 | transition: .3s; 383 | } 384 | 385 | .footer .btn.btn-social:hover { 386 | color: var(--primary); 387 | } 388 | 389 | .footer .btn.btn-link { 390 | display: block; 391 | margin-bottom: 5px; 392 | padding: 0; 393 | text-align: left; 394 | color: #FFFFFF; 395 | font-size: 15px; 396 | font-weight: normal; 397 | text-transform: capitalize; 398 | transition: .3s; 399 | } 400 | 401 | .footer .btn.btn-link::before { 402 | position: relative; 403 | content: "\f105"; 404 | font-family: "Font Awesome 5 Free"; 405 | font-weight: 900; 406 | margin-right: 10px; 407 | } 408 | 409 | .footer .btn.btn-link:hover { 410 | letter-spacing: 1px; 411 | box-shadow: none; 412 | } 413 | 414 | .footer .copyright { 415 | padding: 25px 0; 416 | font-size: 15px; 417 | border-top: 1px solid rgba(256, 256, 256, .1); 418 | } 419 | 420 | .footer .copyright a { 421 | color: var(--light); 422 | } 423 | 424 | .footer .footer-menu a { 425 | margin-right: 15px; 426 | padding-right: 15px; 427 | border-right: 1px solid rgba(255, 255, 255, .1); 428 | } 429 | 430 | .footer .footer-menu a:last-child { 431 | margin-right: 0; 432 | padding-right: 0; 433 | border-right: none; 434 | } -------------------------------------------------------------------------------- /img/ai.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/ai.jpg -------------------------------------------------------------------------------- /img/cat-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/cat-1.jpg -------------------------------------------------------------------------------- /img/course-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/course-3.jpg -------------------------------------------------------------------------------- /img/data.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/data.jpg -------------------------------------------------------------------------------- /img/download.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/download.jpg -------------------------------------------------------------------------------- /img/m2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/m2.jpg -------------------------------------------------------------------------------- /img/machine.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/machine.jpg -------------------------------------------------------------------------------- /img/machine2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/machine2.jpg -------------------------------------------------------------------------------- /img/prof2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/prof2.jpg -------------------------------------------------------------------------------- /img/prof3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/prof3.jpg -------------------------------------------------------------------------------- /img/prof4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/prof4.jpg -------------------------------------------------------------------------------- /img/rocky.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/rocky.webp -------------------------------------------------------------------------------- /img/rocky10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/rocky10.jpg -------------------------------------------------------------------------------- /img/rocky11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/rocky11.jpg -------------------------------------------------------------------------------- /img/rocky12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/rocky12.jpg -------------------------------------------------------------------------------- /img/rocky13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/rocky13.jpg -------------------------------------------------------------------------------- /img/rocky2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/rocky2.jpeg -------------------------------------------------------------------------------- /img/rocky3.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/rocky3.jpeg -------------------------------------------------------------------------------- /img/rocky4.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/rocky4.jpeg -------------------------------------------------------------------------------- /img/rocky6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/rocky6.jpg -------------------------------------------------------------------------------- /img/rocky7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/rocky7.jpg -------------------------------------------------------------------------------- /img/rocky8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/rocky8.jpg -------------------------------------------------------------------------------- /img/rocky9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/rocky9.jpg -------------------------------------------------------------------------------- /img/student12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/student12.jpg -------------------------------------------------------------------------------- /img/student2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/student2.jpg -------------------------------------------------------------------------------- /img/student3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/student3.jpg -------------------------------------------------------------------------------- /img/student4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/student4.jpg -------------------------------------------------------------------------------- /img/student5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/student5.jpg -------------------------------------------------------------------------------- /img/student6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/student6.jpg -------------------------------------------------------------------------------- /img/swati.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/swati.jpg -------------------------------------------------------------------------------- /img/web.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/web.jpg -------------------------------------------------------------------------------- /img/web1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/img/web1.jpg -------------------------------------------------------------------------------- /js/main.js: -------------------------------------------------------------------------------- 1 | (function ($) { 2 | "use strict"; 3 | 4 | // Spinner 5 | var spinner = function () { 6 | setTimeout(function () { 7 | if ($('#spinner').length > 0) { 8 | $('#spinner').removeClass('show'); 9 | } 10 | }, 1); 11 | }; 12 | spinner(); 13 | 14 | 15 | // Initiate the wowjs 16 | new WOW().init(); 17 | 18 | 19 | // Sticky Navbar 20 | $(window).scroll(function () { 21 | if ($(this).scrollTop() > 300) { 22 | $('.sticky-top').css('top', '0px'); 23 | } else { 24 | $('.sticky-top').css('top', '-100px'); 25 | } 26 | }); 27 | 28 | 29 | // Dropdown on mouse hover 30 | const $dropdown = $(".dropdown"); 31 | const $dropdownToggle = $(".dropdown-toggle"); 32 | const $dropdownMenu = $(".dropdown-menu"); 33 | const showClass = "show"; 34 | 35 | $(window).on("load resize", function() { 36 | if (this.matchMedia("(min-width: 992px)").matches) { 37 | $dropdown.hover( 38 | function() { 39 | const $this = $(this); 40 | $this.addClass(showClass); 41 | $this.find($dropdownToggle).attr("aria-expanded", "true"); 42 | $this.find($dropdownMenu).addClass(showClass); 43 | }, 44 | function() { 45 | const $this = $(this); 46 | $this.removeClass(showClass); 47 | $this.find($dropdownToggle).attr("aria-expanded", "false"); 48 | $this.find($dropdownMenu).removeClass(showClass); 49 | } 50 | ); 51 | } else { 52 | $dropdown.off("mouseenter mouseleave"); 53 | } 54 | }); 55 | 56 | 57 | // Back to top button 58 | $(window).scroll(function () { 59 | if ($(this).scrollTop() > 300) { 60 | $('.back-to-top').fadeIn('slow'); 61 | } else { 62 | $('.back-to-top').fadeOut('slow'); 63 | } 64 | }); 65 | $('.back-to-top').click(function () { 66 | $('html, body').animate({scrollTop: 0}, 1500, 'easeInOutExpo'); 67 | return false; 68 | }); 69 | 70 | 71 | // Header carousel 72 | $(".header-carousel").owlCarousel({ 73 | autoplay: true, 74 | smartSpeed: 1500, 75 | items: 1, 76 | dots: false, 77 | loop: true, 78 | nav : true, 79 | navText : [ 80 | '', 81 | '' 82 | ] 83 | }); 84 | 85 | 86 | // Testimonials carousel 87 | $(".testimonial-carousel").owlCarousel({ 88 | autoplay: true, 89 | smartSpeed: 1000, 90 | center: true, 91 | margin: 24, 92 | dots: true, 93 | loop: true, 94 | nav : false, 95 | responsive: { 96 | 0:{ 97 | items:1 98 | }, 99 | 768:{ 100 | items:2 101 | }, 102 | 992:{ 103 | items:3 104 | } 105 | } 106 | }); 107 | 108 | })(jQuery); 109 | 110 | -------------------------------------------------------------------------------- /lib/easing/easing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery Easing v1.4.1 - http://gsgd.co.uk/sandbox/jquery/easing/ 3 | * Open source under the BSD License. 4 | * Copyright © 2008 George McGinley Smith 5 | * All rights reserved. 6 | * https://raw.github.com/gdsmith/jquery-easing/master/LICENSE 7 | */ 8 | 9 | (function (factory) { 10 | if (typeof define === "function" && define.amd) { 11 | define(['jquery'], function ($) { 12 | return factory($); 13 | }); 14 | } else if (typeof module === "object" && typeof module.exports === "object") { 15 | exports = factory(require('jquery')); 16 | } else { 17 | factory(jQuery); 18 | } 19 | })(function($){ 20 | 21 | // Preserve the original jQuery "swing" easing as "jswing" 22 | if (typeof $.easing !== 'undefined') { 23 | $.easing['jswing'] = $.easing['swing']; 24 | } 25 | 26 | var pow = Math.pow, 27 | sqrt = Math.sqrt, 28 | sin = Math.sin, 29 | cos = Math.cos, 30 | PI = Math.PI, 31 | c1 = 1.70158, 32 | c2 = c1 * 1.525, 33 | c3 = c1 + 1, 34 | c4 = ( 2 * PI ) / 3, 35 | c5 = ( 2 * PI ) / 4.5; 36 | 37 | // x is the fraction of animation progress, in the range 0..1 38 | function bounceOut(x) { 39 | var n1 = 7.5625, 40 | d1 = 2.75; 41 | if ( x < 1/d1 ) { 42 | return n1*x*x; 43 | } else if ( x < 2/d1 ) { 44 | return n1*(x-=(1.5/d1))*x + .75; 45 | } else if ( x < 2.5/d1 ) { 46 | return n1*(x-=(2.25/d1))*x + .9375; 47 | } else { 48 | return n1*(x-=(2.625/d1))*x + .984375; 49 | } 50 | } 51 | 52 | $.extend( $.easing, 53 | { 54 | def: 'easeOutQuad', 55 | swing: function (x) { 56 | return $.easing[$.easing.def](x); 57 | }, 58 | easeInQuad: function (x) { 59 | return x * x; 60 | }, 61 | easeOutQuad: function (x) { 62 | return 1 - ( 1 - x ) * ( 1 - x ); 63 | }, 64 | easeInOutQuad: function (x) { 65 | return x < 0.5 ? 66 | 2 * x * x : 67 | 1 - pow( -2 * x + 2, 2 ) / 2; 68 | }, 69 | easeInCubic: function (x) { 70 | return x * x * x; 71 | }, 72 | easeOutCubic: function (x) { 73 | return 1 - pow( 1 - x, 3 ); 74 | }, 75 | easeInOutCubic: function (x) { 76 | return x < 0.5 ? 77 | 4 * x * x * x : 78 | 1 - pow( -2 * x + 2, 3 ) / 2; 79 | }, 80 | easeInQuart: function (x) { 81 | return x * x * x * x; 82 | }, 83 | easeOutQuart: function (x) { 84 | return 1 - pow( 1 - x, 4 ); 85 | }, 86 | easeInOutQuart: function (x) { 87 | return x < 0.5 ? 88 | 8 * x * x * x * x : 89 | 1 - pow( -2 * x + 2, 4 ) / 2; 90 | }, 91 | easeInQuint: function (x) { 92 | return x * x * x * x * x; 93 | }, 94 | easeOutQuint: function (x) { 95 | return 1 - pow( 1 - x, 5 ); 96 | }, 97 | easeInOutQuint: function (x) { 98 | return x < 0.5 ? 99 | 16 * x * x * x * x * x : 100 | 1 - pow( -2 * x + 2, 5 ) / 2; 101 | }, 102 | easeInSine: function (x) { 103 | return 1 - cos( x * PI/2 ); 104 | }, 105 | easeOutSine: function (x) { 106 | return sin( x * PI/2 ); 107 | }, 108 | easeInOutSine: function (x) { 109 | return -( cos( PI * x ) - 1 ) / 2; 110 | }, 111 | easeInExpo: function (x) { 112 | return x === 0 ? 0 : pow( 2, 10 * x - 10 ); 113 | }, 114 | easeOutExpo: function (x) { 115 | return x === 1 ? 1 : 1 - pow( 2, -10 * x ); 116 | }, 117 | easeInOutExpo: function (x) { 118 | return x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? 119 | pow( 2, 20 * x - 10 ) / 2 : 120 | ( 2 - pow( 2, -20 * x + 10 ) ) / 2; 121 | }, 122 | easeInCirc: function (x) { 123 | return 1 - sqrt( 1 - pow( x, 2 ) ); 124 | }, 125 | easeOutCirc: function (x) { 126 | return sqrt( 1 - pow( x - 1, 2 ) ); 127 | }, 128 | easeInOutCirc: function (x) { 129 | return x < 0.5 ? 130 | ( 1 - sqrt( 1 - pow( 2 * x, 2 ) ) ) / 2 : 131 | ( sqrt( 1 - pow( -2 * x + 2, 2 ) ) + 1 ) / 2; 132 | }, 133 | easeInElastic: function (x) { 134 | return x === 0 ? 0 : x === 1 ? 1 : 135 | -pow( 2, 10 * x - 10 ) * sin( ( x * 10 - 10.75 ) * c4 ); 136 | }, 137 | easeOutElastic: function (x) { 138 | return x === 0 ? 0 : x === 1 ? 1 : 139 | pow( 2, -10 * x ) * sin( ( x * 10 - 0.75 ) * c4 ) + 1; 140 | }, 141 | easeInOutElastic: function (x) { 142 | return x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? 143 | -( pow( 2, 20 * x - 10 ) * sin( ( 20 * x - 11.125 ) * c5 )) / 2 : 144 | pow( 2, -20 * x + 10 ) * sin( ( 20 * x - 11.125 ) * c5 ) / 2 + 1; 145 | }, 146 | easeInBack: function (x) { 147 | return c3 * x * x * x - c1 * x * x; 148 | }, 149 | easeOutBack: function (x) { 150 | return 1 + c3 * pow( x - 1, 3 ) + c1 * pow( x - 1, 2 ); 151 | }, 152 | easeInOutBack: function (x) { 153 | return x < 0.5 ? 154 | ( pow( 2 * x, 2 ) * ( ( c2 + 1 ) * 2 * x - c2 ) ) / 2 : 155 | ( pow( 2 * x - 2, 2 ) *( ( c2 + 1 ) * ( x * 2 - 2 ) + c2 ) + 2 ) / 2; 156 | }, 157 | easeInBounce: function (x) { 158 | return 1 - bounceOut( 1 - x ); 159 | }, 160 | easeOutBounce: bounceOut, 161 | easeInOutBounce: function (x) { 162 | return x < 0.5 ? 163 | ( 1 - bounceOut( 1 - 2 * x ) ) / 2 : 164 | ( 1 + bounceOut( 2 * x - 1 ) ) / 2; 165 | } 166 | }); 167 | 168 | }); 169 | -------------------------------------------------------------------------------- /lib/easing/easing.min.js: -------------------------------------------------------------------------------- 1 | !function(n){"function"==typeof define&&define.amd?define(["jquery"],function(e){return n(e)}):"object"==typeof module&&"object"==typeof module.exports?exports=n(require("jquery")):n(jQuery)}(function(n){function e(n){var e=7.5625,t=2.75;return n<1/t?e*n*n:n<2/t?e*(n-=1.5/t)*n+.75:n<2.5/t?e*(n-=2.25/t)*n+.9375:e*(n-=2.625/t)*n+.984375}void 0!==n.easing&&(n.easing.jswing=n.easing.swing);var t=Math.pow,u=Math.sqrt,r=Math.sin,i=Math.cos,a=Math.PI,c=1.70158,o=1.525*c,s=2*a/3,f=2*a/4.5;n.extend(n.easing,{def:"easeOutQuad",swing:function(e){return n.easing[n.easing.def](e)},easeInQuad:function(n){return n*n},easeOutQuad:function(n){return 1-(1-n)*(1-n)},easeInOutQuad:function(n){return n<.5?2*n*n:1-t(-2*n+2,2)/2},easeInCubic:function(n){return n*n*n},easeOutCubic:function(n){return 1-t(1-n,3)},easeInOutCubic:function(n){return n<.5?4*n*n*n:1-t(-2*n+2,3)/2},easeInQuart:function(n){return n*n*n*n},easeOutQuart:function(n){return 1-t(1-n,4)},easeInOutQuart:function(n){return n<.5?8*n*n*n*n:1-t(-2*n+2,4)/2},easeInQuint:function(n){return n*n*n*n*n},easeOutQuint:function(n){return 1-t(1-n,5)},easeInOutQuint:function(n){return n<.5?16*n*n*n*n*n:1-t(-2*n+2,5)/2},easeInSine:function(n){return 1-i(n*a/2)},easeOutSine:function(n){return r(n*a/2)},easeInOutSine:function(n){return-(i(a*n)-1)/2},easeInExpo:function(n){return 0===n?0:t(2,10*n-10)},easeOutExpo:function(n){return 1===n?1:1-t(2,-10*n)},easeInOutExpo:function(n){return 0===n?0:1===n?1:n<.5?t(2,20*n-10)/2:(2-t(2,-20*n+10))/2},easeInCirc:function(n){return 1-u(1-t(n,2))},easeOutCirc:function(n){return u(1-t(n-1,2))},easeInOutCirc:function(n){return n<.5?(1-u(1-t(2*n,2)))/2:(u(1-t(-2*n+2,2))+1)/2},easeInElastic:function(n){return 0===n?0:1===n?1:-t(2,10*n-10)*r((10*n-10.75)*s)},easeOutElastic:function(n){return 0===n?0:1===n?1:t(2,-10*n)*r((10*n-.75)*s)+1},easeInOutElastic:function(n){return 0===n?0:1===n?1:n<.5?-(t(2,20*n-10)*r((20*n-11.125)*f))/2:t(2,-20*n+10)*r((20*n-11.125)*f)/2+1},easeInBack:function(n){return(c+1)*n*n*n-c*n*n},easeOutBack:function(n){return 1+(c+1)*t(n-1,3)+c*t(n-1,2)},easeInOutBack:function(n){return n<.5?t(2*n,2)*(7.189819*n-o)/2:(t(2*n-2,2)*((o+1)*(2*n-2)+o)+2)/2},easeInBounce:function(n){return 1-e(1-n)},easeOutBounce:e,easeInOutBounce:function(n){return n<.5?(1-e(1-2*n))/2:(1+e(2*n-1))/2}})}); 2 | -------------------------------------------------------------------------------- /lib/owlcarousel/assets/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/lib/owlcarousel/assets/ajax-loader.gif -------------------------------------------------------------------------------- /lib/owlcarousel/assets/owl.carousel.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.2.1 3 | * Copyright 2013-2017 David Deutsch 4 | * Licensed under () 5 | */ 6 | /* 7 | * Owl Carousel - Core 8 | */ 9 | .owl-carousel { 10 | display: none; 11 | width: 100%; 12 | -webkit-tap-highlight-color: transparent; 13 | /* position relative and z-index fix webkit rendering fonts issue */ 14 | position: relative; 15 | z-index: 1; } 16 | .owl-carousel .owl-stage { 17 | position: relative; 18 | -ms-touch-action: pan-Y; 19 | -moz-backface-visibility: hidden; 20 | /* fix firefox animation glitch */ } 21 | .owl-carousel .owl-stage:after { 22 | content: "."; 23 | display: block; 24 | clear: both; 25 | visibility: hidden; 26 | line-height: 0; 27 | height: 0; } 28 | .owl-carousel .owl-stage-outer { 29 | position: relative; 30 | overflow: hidden; 31 | /* fix for flashing background */ 32 | -webkit-transform: translate3d(0px, 0px, 0px); } 33 | .owl-carousel .owl-wrapper, 34 | .owl-carousel .owl-item { 35 | -webkit-backface-visibility: hidden; 36 | -moz-backface-visibility: hidden; 37 | -ms-backface-visibility: hidden; 38 | -webkit-transform: translate3d(0, 0, 0); 39 | -moz-transform: translate3d(0, 0, 0); 40 | -ms-transform: translate3d(0, 0, 0); } 41 | .owl-carousel .owl-item { 42 | position: relative; 43 | min-height: 1px; 44 | float: left; 45 | -webkit-backface-visibility: hidden; 46 | -webkit-tap-highlight-color: transparent; 47 | -webkit-touch-callout: none; } 48 | .owl-carousel .owl-item img { 49 | display: block; 50 | width: 100%; } 51 | .owl-carousel .owl-nav.disabled, 52 | .owl-carousel .owl-dots.disabled { 53 | display: none; } 54 | .owl-carousel .owl-nav .owl-prev, 55 | .owl-carousel .owl-nav .owl-next, 56 | .owl-carousel .owl-dot { 57 | cursor: pointer; 58 | cursor: hand; 59 | -webkit-user-select: none; 60 | -khtml-user-select: none; 61 | -moz-user-select: none; 62 | -ms-user-select: none; 63 | user-select: none; } 64 | .owl-carousel.owl-loaded { 65 | display: block; } 66 | .owl-carousel.owl-loading { 67 | opacity: 0; 68 | display: block; } 69 | .owl-carousel.owl-hidden { 70 | opacity: 0; } 71 | .owl-carousel.owl-refresh .owl-item { 72 | visibility: hidden; } 73 | .owl-carousel.owl-drag .owl-item { 74 | -webkit-user-select: none; 75 | -moz-user-select: none; 76 | -ms-user-select: none; 77 | user-select: none; } 78 | .owl-carousel.owl-grab { 79 | cursor: move; 80 | cursor: grab; } 81 | .owl-carousel.owl-rtl { 82 | direction: rtl; } 83 | .owl-carousel.owl-rtl .owl-item { 84 | float: right; } 85 | 86 | /* No Js */ 87 | .no-js .owl-carousel { 88 | display: block; } 89 | 90 | /* 91 | * Owl Carousel - Animate Plugin 92 | */ 93 | .owl-carousel .animated { 94 | animation-duration: 1000ms; 95 | animation-fill-mode: both; } 96 | 97 | .owl-carousel .owl-animated-in { 98 | z-index: 0; } 99 | 100 | .owl-carousel .owl-animated-out { 101 | z-index: 1; } 102 | 103 | .owl-carousel .fadeOut { 104 | animation-name: fadeOut; } 105 | 106 | @keyframes fadeOut { 107 | 0% { 108 | opacity: 1; } 109 | 100% { 110 | opacity: 0; } } 111 | 112 | /* 113 | * Owl Carousel - Auto Height Plugin 114 | */ 115 | .owl-height { 116 | transition: height 500ms ease-in-out; } 117 | 118 | /* 119 | * Owl Carousel - Lazy Load Plugin 120 | */ 121 | .owl-carousel .owl-item .owl-lazy { 122 | opacity: 0; 123 | transition: opacity 400ms ease; } 124 | 125 | .owl-carousel .owl-item img.owl-lazy { 126 | transform-style: preserve-3d; } 127 | 128 | /* 129 | * Owl Carousel - Video Plugin 130 | */ 131 | .owl-carousel .owl-video-wrapper { 132 | position: relative; 133 | height: 100%; 134 | background: #000; } 135 | 136 | .owl-carousel .owl-video-play-icon { 137 | position: absolute; 138 | height: 80px; 139 | width: 80px; 140 | left: 50%; 141 | top: 50%; 142 | margin-left: -40px; 143 | margin-top: -40px; 144 | background: url("owl.video.play.png") no-repeat; 145 | cursor: pointer; 146 | z-index: 1; 147 | -webkit-backface-visibility: hidden; 148 | transition: transform 100ms ease; } 149 | 150 | .owl-carousel .owl-video-play-icon:hover { 151 | -ms-transform: scale(1.3, 1.3); 152 | transform: scale(1.3, 1.3); } 153 | 154 | .owl-carousel .owl-video-playing .owl-video-tn, 155 | .owl-carousel .owl-video-playing .owl-video-play-icon { 156 | display: none; } 157 | 158 | .owl-carousel .owl-video-tn { 159 | opacity: 0; 160 | height: 100%; 161 | background-position: center center; 162 | background-repeat: no-repeat; 163 | background-size: contain; 164 | transition: opacity 400ms ease; } 165 | 166 | .owl-carousel .owl-video-frame { 167 | position: relative; 168 | z-index: 1; 169 | height: 100%; 170 | width: 100%; } 171 | -------------------------------------------------------------------------------- /lib/owlcarousel/assets/owl.carousel.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.2.1 3 | * Copyright 2013-2017 David Deutsch 4 | * Licensed under () 5 | */ 6 | .owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel{display:none;width:100%;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y;-moz-backface-visibility:hidden}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-item,.owl-carousel .owl-wrapper{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{display:block;width:100%}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;cursor:hand;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{animation-duration:1s;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{animation-name:fadeOut}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{opacity:0;transition:opacity .4s ease}.owl-carousel .owl-item img.owl-lazy{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;transition:transform .1s ease}.owl-carousel .owl-video-play-icon:hover{-ms-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;background-size:contain;transition:opacity .4s ease}.owl-carousel .owl-video-frame{position:relative;z-index:1;height:100%;width:100%} -------------------------------------------------------------------------------- /lib/owlcarousel/assets/owl.theme.default.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.2.1 3 | * Copyright 2013-2017 David Deutsch 4 | * Licensed under () 5 | */ 6 | /* 7 | * Default theme - Owl Carousel CSS File 8 | */ 9 | .owl-theme .owl-nav { 10 | margin-top: 10px; 11 | text-align: center; 12 | -webkit-tap-highlight-color: transparent; } 13 | .owl-theme .owl-nav [class*='owl-'] { 14 | color: #FFF; 15 | font-size: 14px; 16 | margin: 5px; 17 | padding: 4px 7px; 18 | background: #D6D6D6; 19 | display: inline-block; 20 | cursor: pointer; 21 | border-radius: 3px; } 22 | .owl-theme .owl-nav [class*='owl-']:hover { 23 | background: #869791; 24 | color: #FFF; 25 | text-decoration: none; } 26 | .owl-theme .owl-nav .disabled { 27 | opacity: 0.5; 28 | cursor: default; } 29 | 30 | .owl-theme .owl-nav.disabled + .owl-dots { 31 | margin-top: 10px; } 32 | 33 | .owl-theme .owl-dots { 34 | text-align: center; 35 | -webkit-tap-highlight-color: transparent; } 36 | .owl-theme .owl-dots .owl-dot { 37 | display: inline-block; 38 | zoom: 1; 39 | *display: inline; } 40 | .owl-theme .owl-dots .owl-dot span { 41 | width: 10px; 42 | height: 10px; 43 | margin: 5px 7px; 44 | background: #D6D6D6; 45 | display: block; 46 | -webkit-backface-visibility: visible; 47 | transition: opacity 200ms ease; 48 | border-radius: 30px; } 49 | .owl-theme .owl-dots .owl-dot.active span, .owl-theme .owl-dots .owl-dot:hover span { 50 | background: #869791; } 51 | -------------------------------------------------------------------------------- /lib/owlcarousel/assets/owl.theme.default.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.2.1 3 | * Copyright 2013-2017 David Deutsch 4 | * Licensed under () 5 | */ 6 | .owl-theme .owl-dots,.owl-theme .owl-nav{text-align:center;-webkit-tap-highlight-color:transparent}.owl-theme .owl-nav{margin-top:10px}.owl-theme .owl-nav [class*=owl-]{color:#FFF;font-size:14px;margin:5px;padding:4px 7px;background:#D6D6D6;display:inline-block;cursor:pointer;border-radius:3px}.owl-theme .owl-nav [class*=owl-]:hover{background:#869791;color:#FFF;text-decoration:none}.owl-theme .owl-nav .disabled{opacity:.5;cursor:default}.owl-theme .owl-nav.disabled+.owl-dots{margin-top:10px}.owl-theme .owl-dots .owl-dot{display:inline-block;zoom:1}.owl-theme .owl-dots .owl-dot span{width:10px;height:10px;margin:5px 7px;background:#D6D6D6;display:block;-webkit-backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}.owl-theme .owl-dots .owl-dot.active span,.owl-theme .owl-dots .owl-dot:hover span{background:#869791} -------------------------------------------------------------------------------- /lib/owlcarousel/assets/owl.theme.green.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.2.1 3 | * Copyright 2013-2017 David Deutsch 4 | * Licensed under () 5 | */ 6 | /* 7 | * Green theme - Owl Carousel CSS File 8 | */ 9 | .owl-theme .owl-nav { 10 | margin-top: 10px; 11 | text-align: center; 12 | -webkit-tap-highlight-color: transparent; } 13 | .owl-theme .owl-nav [class*='owl-'] { 14 | color: #FFF; 15 | font-size: 14px; 16 | margin: 5px; 17 | padding: 4px 7px; 18 | background: #D6D6D6; 19 | display: inline-block; 20 | cursor: pointer; 21 | border-radius: 3px; } 22 | .owl-theme .owl-nav [class*='owl-']:hover { 23 | background: #4DC7A0; 24 | color: #FFF; 25 | text-decoration: none; } 26 | .owl-theme .owl-nav .disabled { 27 | opacity: 0.5; 28 | cursor: default; } 29 | 30 | .owl-theme .owl-nav.disabled + .owl-dots { 31 | margin-top: 10px; } 32 | 33 | .owl-theme .owl-dots { 34 | text-align: center; 35 | -webkit-tap-highlight-color: transparent; } 36 | .owl-theme .owl-dots .owl-dot { 37 | display: inline-block; 38 | zoom: 1; 39 | *display: inline; } 40 | .owl-theme .owl-dots .owl-dot span { 41 | width: 10px; 42 | height: 10px; 43 | margin: 5px 7px; 44 | background: #D6D6D6; 45 | display: block; 46 | -webkit-backface-visibility: visible; 47 | transition: opacity 200ms ease; 48 | border-radius: 30px; } 49 | .owl-theme .owl-dots .owl-dot.active span, .owl-theme .owl-dots .owl-dot:hover span { 50 | background: #4DC7A0; } 51 | -------------------------------------------------------------------------------- /lib/owlcarousel/assets/owl.theme.green.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.2.1 3 | * Copyright 2013-2017 David Deutsch 4 | * Licensed under () 5 | */ 6 | .owl-theme .owl-dots,.owl-theme .owl-nav{text-align:center;-webkit-tap-highlight-color:transparent}.owl-theme .owl-nav{margin-top:10px}.owl-theme .owl-nav [class*=owl-]{color:#FFF;font-size:14px;margin:5px;padding:4px 7px;background:#D6D6D6;display:inline-block;cursor:pointer;border-radius:3px}.owl-theme .owl-nav [class*=owl-]:hover{background:#4DC7A0;color:#FFF;text-decoration:none}.owl-theme .owl-nav .disabled{opacity:.5;cursor:default}.owl-theme .owl-nav.disabled+.owl-dots{margin-top:10px}.owl-theme .owl-dots .owl-dot{display:inline-block;zoom:1}.owl-theme .owl-dots .owl-dot span{width:10px;height:10px;margin:5px 7px;background:#D6D6D6;display:block;-webkit-backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}.owl-theme .owl-dots .owl-dot.active span,.owl-theme .owl-dots .owl-dot:hover span{background:#4DC7A0} -------------------------------------------------------------------------------- /lib/owlcarousel/assets/owl.video.play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rpatel9675/GayanPath--E-Learning-website/b1a689fb4aef2c4904d5c4699d496b6735f76f80/lib/owlcarousel/assets/owl.video.play.png -------------------------------------------------------------------------------- /scss/bootstrap.scss: -------------------------------------------------------------------------------- 1 | /******* Customized Bootstrap ********/ 2 | 3 | $primary: #06BBCC; 4 | $light: #F0FBFC; 5 | $dark: #181d38; 6 | 7 | $font-family-base: 'Heebo', sans-serif; 8 | 9 | $headings-font-family: 'Nunito', sans-serif; 10 | 11 | $body-color: #52565b; 12 | 13 | $headings-color: $dark; 14 | 15 | $headings-font-weight: 700; 16 | 17 | $display-font-weight: 800; 18 | 19 | $enable-responsive-font-sizes: true; 20 | 21 | $border-radius: 0px; 22 | 23 | $link-decoration: none; 24 | 25 | $enable-negative-margins: true; 26 | 27 | @import "bootstrap/scss/bootstrap"; -------------------------------------------------------------------------------- /scss/bootstrap/scss/_accordion.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Base styles 3 | // 4 | 5 | .accordion-button { 6 | position: relative; 7 | display: flex; 8 | align-items: center; 9 | width: 100%; 10 | padding: $accordion-button-padding-y $accordion-button-padding-x; 11 | @include font-size($font-size-base); 12 | color: $accordion-button-color; 13 | text-align: left; // Reset button style 14 | background-color: $accordion-button-bg; 15 | border: 0; 16 | @include border-radius(0); 17 | overflow-anchor: none; 18 | @include transition($accordion-transition); 19 | 20 | &:not(.collapsed) { 21 | color: $accordion-button-active-color; 22 | background-color: $accordion-button-active-bg; 23 | box-shadow: inset 0 ($accordion-border-width * -1) 0 $accordion-border-color; 24 | 25 | &::after { 26 | background-image: escape-svg($accordion-button-active-icon); 27 | transform: $accordion-icon-transform; 28 | } 29 | } 30 | 31 | // Accordion icon 32 | &::after { 33 | flex-shrink: 0; 34 | width: $accordion-icon-width; 35 | height: $accordion-icon-width; 36 | margin-left: auto; 37 | content: ""; 38 | background-image: escape-svg($accordion-button-icon); 39 | background-repeat: no-repeat; 40 | background-size: $accordion-icon-width; 41 | @include transition($accordion-icon-transition); 42 | } 43 | 44 | &:hover { 45 | z-index: 2; 46 | } 47 | 48 | &:focus { 49 | z-index: 3; 50 | border-color: $accordion-button-focus-border-color; 51 | outline: 0; 52 | box-shadow: $accordion-button-focus-box-shadow; 53 | } 54 | } 55 | 56 | .accordion-header { 57 | margin-bottom: 0; 58 | } 59 | 60 | .accordion-item { 61 | background-color: $accordion-bg; 62 | border: $accordion-border-width solid $accordion-border-color; 63 | 64 | &:first-of-type { 65 | @include border-top-radius($accordion-border-radius); 66 | 67 | .accordion-button { 68 | @include border-top-radius($accordion-inner-border-radius); 69 | } 70 | } 71 | 72 | &:not(:first-of-type) { 73 | border-top: 0; 74 | } 75 | 76 | // Only set a border-radius on the last item if the accordion is collapsed 77 | &:last-of-type { 78 | @include border-bottom-radius($accordion-border-radius); 79 | 80 | .accordion-button { 81 | &.collapsed { 82 | @include border-bottom-radius($accordion-inner-border-radius); 83 | } 84 | } 85 | 86 | .accordion-collapse { 87 | @include border-bottom-radius($accordion-border-radius); 88 | } 89 | } 90 | } 91 | 92 | .accordion-body { 93 | padding: $accordion-body-padding-y $accordion-body-padding-x; 94 | } 95 | 96 | 97 | // Flush accordion items 98 | // 99 | // Remove borders and border-radius to keep accordion items edge-to-edge. 100 | 101 | .accordion-flush { 102 | .accordion-collapse { 103 | border-width: 0; 104 | } 105 | 106 | .accordion-item { 107 | border-right: 0; 108 | border-left: 0; 109 | @include border-radius(0); 110 | 111 | &:first-child { border-top: 0; } 112 | &:last-child { border-bottom: 0; } 113 | 114 | .accordion-button { 115 | @include border-radius(0); 116 | } 117 | } 118 | } 119 | -------------------------------------------------------------------------------- /scss/bootstrap/scss/_alert.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Base styles 3 | // 4 | 5 | .alert { 6 | position: relative; 7 | padding: $alert-padding-y $alert-padding-x; 8 | margin-bottom: $alert-margin-bottom; 9 | border: $alert-border-width solid transparent; 10 | @include border-radius($alert-border-radius); 11 | } 12 | 13 | // Headings for larger alerts 14 | .alert-heading { 15 | // Specified to prevent conflicts of changing $headings-color 16 | color: inherit; 17 | } 18 | 19 | // Provide class for links that match alerts 20 | .alert-link { 21 | font-weight: $alert-link-font-weight; 22 | } 23 | 24 | 25 | // Dismissible alerts 26 | // 27 | // Expand the right padding and account for the close button's positioning. 28 | 29 | .alert-dismissible { 30 | padding-right: $alert-dismissible-padding-r; 31 | 32 | // Adjust close link position 33 | .btn-close { 34 | position: absolute; 35 | top: 0; 36 | right: 0; 37 | z-index: $stretched-link-z-index + 1; 38 | padding: $alert-padding-y * 1.25 $alert-padding-x; 39 | } 40 | } 41 | 42 | 43 | // scss-docs-start alert-modifiers 44 | // Generate contextual modifier classes for colorizing the alert. 45 | 46 | @each $state, $value in $theme-colors { 47 | $alert-background: shift-color($value, $alert-bg-scale); 48 | $alert-border: shift-color($value, $alert-border-scale); 49 | $alert-color: shift-color($value, $alert-color-scale); 50 | @if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) { 51 | $alert-color: mix($value, color-contrast($alert-background), abs($alert-color-scale)); 52 | } 53 | .alert-#{$state} { 54 | @include alert-variant($alert-background, $alert-border, $alert-color); 55 | } 56 | } 57 | // scss-docs-end alert-modifiers 58 | -------------------------------------------------------------------------------- /scss/bootstrap/scss/_badge.scss: -------------------------------------------------------------------------------- 1 | // Base class 2 | // 3 | // Requires one of the contextual, color modifier classes for `color` and 4 | // `background-color`. 5 | 6 | .badge { 7 | display: inline-block; 8 | padding: $badge-padding-y $badge-padding-x; 9 | @include font-size($badge-font-size); 10 | font-weight: $badge-font-weight; 11 | line-height: 1; 12 | color: $badge-color; 13 | text-align: center; 14 | white-space: nowrap; 15 | vertical-align: baseline; 16 | @include border-radius($badge-border-radius); 17 | @include gradient-bg(); 18 | 19 | // Empty badges collapse automatically 20 | &:empty { 21 | display: none; 22 | } 23 | } 24 | 25 | // Quick fix for badges in buttons 26 | .btn .badge { 27 | position: relative; 28 | top: -1px; 29 | } 30 | -------------------------------------------------------------------------------- /scss/bootstrap/scss/_breadcrumb.scss: -------------------------------------------------------------------------------- 1 | .breadcrumb { 2 | display: flex; 3 | flex-wrap: wrap; 4 | padding: $breadcrumb-padding-y $breadcrumb-padding-x; 5 | margin-bottom: $breadcrumb-margin-bottom; 6 | @include font-size($breadcrumb-font-size); 7 | list-style: none; 8 | background-color: $breadcrumb-bg; 9 | @include border-radius($breadcrumb-border-radius); 10 | } 11 | 12 | .breadcrumb-item { 13 | // The separator between breadcrumbs (by default, a forward-slash: "/") 14 | + .breadcrumb-item { 15 | padding-left: $breadcrumb-item-padding-x; 16 | 17 | &::before { 18 | float: left; // Suppress inline spacings and underlining of the separator 19 | padding-right: $breadcrumb-item-padding-x; 20 | color: $breadcrumb-divider-color; 21 | content: var(--#{$variable-prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)) #{"/* rtl:"} var(--#{$variable-prefix}breadcrumb-divider, escape-svg($breadcrumb-divider-flipped)) #{"*/"}; 22 | } 23 | } 24 | 25 | &.active { 26 | color: $breadcrumb-active-color; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /scss/bootstrap/scss/_button-group.scss: -------------------------------------------------------------------------------- 1 | // Make the div behave like a button 2 | .btn-group, 3 | .btn-group-vertical { 4 | position: relative; 5 | display: inline-flex; 6 | vertical-align: middle; // match .btn alignment given font-size hack above 7 | 8 | > .btn { 9 | position: relative; 10 | flex: 1 1 auto; 11 | } 12 | 13 | // Bring the hover, focused, and "active" buttons to the front to overlay 14 | // the borders properly 15 | > .btn-check:checked + .btn, 16 | > .btn-check:focus + .btn, 17 | > .btn:hover, 18 | > .btn:focus, 19 | > .btn:active, 20 | > .btn.active { 21 | z-index: 1; 22 | } 23 | } 24 | 25 | // Optional: Group multiple button groups together for a toolbar 26 | .btn-toolbar { 27 | display: flex; 28 | flex-wrap: wrap; 29 | justify-content: flex-start; 30 | 31 | .input-group { 32 | width: auto; 33 | } 34 | } 35 | 36 | .btn-group { 37 | // Prevent double borders when buttons are next to each other 38 | > .btn:not(:first-child), 39 | > .btn-group:not(:first-child) { 40 | margin-left: -$btn-border-width; 41 | } 42 | 43 | // Reset rounded corners 44 | > .btn:not(:last-child):not(.dropdown-toggle), 45 | > .btn-group:not(:last-child) > .btn { 46 | @include border-end-radius(0); 47 | } 48 | 49 | // The left radius should be 0 if the button is: 50 | // - the "third or more" child 51 | // - the second child and the previous element isn't `.btn-check` (making it the first child visually) 52 | // - part of a btn-group which isn't the first child 53 | > .btn:nth-child(n + 3), 54 | > :not(.btn-check) + .btn, 55 | > .btn-group:not(:first-child) > .btn { 56 | @include border-start-radius(0); 57 | } 58 | } 59 | 60 | // Sizing 61 | // 62 | // Remix the default button sizing classes into new ones for easier manipulation. 63 | 64 | .btn-group-sm > .btn { @extend .btn-sm; } 65 | .btn-group-lg > .btn { @extend .btn-lg; } 66 | 67 | 68 | // 69 | // Split button dropdowns 70 | // 71 | 72 | .dropdown-toggle-split { 73 | padding-right: $btn-padding-x * .75; 74 | padding-left: $btn-padding-x * .75; 75 | 76 | &::after, 77 | .dropup &::after, 78 | .dropend &::after { 79 | margin-left: 0; 80 | } 81 | 82 | .dropstart &::before { 83 | margin-right: 0; 84 | } 85 | } 86 | 87 | .btn-sm + .dropdown-toggle-split { 88 | padding-right: $btn-padding-x-sm * .75; 89 | padding-left: $btn-padding-x-sm * .75; 90 | } 91 | 92 | .btn-lg + .dropdown-toggle-split { 93 | padding-right: $btn-padding-x-lg * .75; 94 | padding-left: $btn-padding-x-lg * .75; 95 | } 96 | 97 | 98 | // The clickable button for toggling the menu 99 | // Set the same inset shadow as the :active state 100 | .btn-group.show .dropdown-toggle { 101 | @include box-shadow($btn-active-box-shadow); 102 | 103 | // Show no shadow for `.btn-link` since it has no other button styles. 104 | &.btn-link { 105 | @include box-shadow(none); 106 | } 107 | } 108 | 109 | 110 | // 111 | // Vertical button groups 112 | // 113 | 114 | .btn-group-vertical { 115 | flex-direction: column; 116 | align-items: flex-start; 117 | justify-content: center; 118 | 119 | > .btn, 120 | > .btn-group { 121 | width: 100%; 122 | } 123 | 124 | > .btn:not(:first-child), 125 | > .btn-group:not(:first-child) { 126 | margin-top: -$btn-border-width; 127 | } 128 | 129 | // Reset rounded corners 130 | > .btn:not(:last-child):not(.dropdown-toggle), 131 | > .btn-group:not(:last-child) > .btn { 132 | @include border-bottom-radius(0); 133 | } 134 | 135 | > .btn ~ .btn, 136 | > .btn-group:not(:first-child) > .btn { 137 | @include border-top-radius(0); 138 | } 139 | } 140 | -------------------------------------------------------------------------------- /scss/bootstrap/scss/_buttons.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Base styles 3 | // 4 | 5 | .btn { 6 | display: inline-block; 7 | font-family: $btn-font-family; 8 | font-weight: $btn-font-weight; 9 | line-height: $btn-line-height; 10 | color: $body-color; 11 | text-align: center; 12 | text-decoration: if($link-decoration == none, null, none); 13 | white-space: $btn-white-space; 14 | vertical-align: middle; 15 | cursor: if($enable-button-pointers, pointer, null); 16 | user-select: none; 17 | background-color: transparent; 18 | border: $btn-border-width solid transparent; 19 | @include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-border-radius); 20 | @include transition($btn-transition); 21 | 22 | &:hover { 23 | color: $body-color; 24 | text-decoration: if($link-hover-decoration == underline, none, null); 25 | } 26 | 27 | .btn-check:focus + &, 28 | &:focus { 29 | outline: 0; 30 | box-shadow: $btn-focus-box-shadow; 31 | } 32 | 33 | .btn-check:checked + &, 34 | .btn-check:active + &, 35 | &:active, 36 | &.active { 37 | @include box-shadow($btn-active-box-shadow); 38 | 39 | &:focus { 40 | @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow); 41 | } 42 | } 43 | 44 | &:disabled, 45 | &.disabled, 46 | fieldset:disabled & { 47 | pointer-events: none; 48 | opacity: $btn-disabled-opacity; 49 | @include box-shadow(none); 50 | } 51 | } 52 | 53 | 54 | // 55 | // Alternate buttons 56 | // 57 | 58 | // scss-docs-start btn-variant-loops 59 | @each $color, $value in $theme-colors { 60 | .btn-#{$color} { 61 | @include button-variant($value, $value); 62 | } 63 | } 64 | 65 | @each $color, $value in $theme-colors { 66 | .btn-outline-#{$color} { 67 | @include button-outline-variant($value); 68 | } 69 | } 70 | // scss-docs-end btn-variant-loops 71 | 72 | 73 | // 74 | // Link buttons 75 | // 76 | 77 | // Make a button look and behave like a link 78 | .btn-link { 79 | font-weight: $font-weight-normal; 80 | color: $btn-link-color; 81 | text-decoration: $link-decoration; 82 | 83 | &:hover { 84 | color: $btn-link-hover-color; 85 | text-decoration: $link-hover-decoration; 86 | } 87 | 88 | &:focus { 89 | text-decoration: $link-hover-decoration; 90 | } 91 | 92 | &:disabled, 93 | &.disabled { 94 | color: $btn-link-disabled-color; 95 | } 96 | 97 | // No need for an active state here 98 | } 99 | 100 | 101 | // 102 | // Button Sizes 103 | // 104 | 105 | .btn-lg { 106 | @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-border-radius-lg); 107 | } 108 | 109 | .btn-sm { 110 | @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-border-radius-sm); 111 | } 112 | -------------------------------------------------------------------------------- /scss/bootstrap/scss/_card.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Base styles 3 | // 4 | 5 | .card { 6 | position: relative; 7 | display: flex; 8 | flex-direction: column; 9 | min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106 10 | height: $card-height; 11 | word-wrap: break-word; 12 | background-color: $card-bg; 13 | background-clip: border-box; 14 | border: $card-border-width solid $card-border-color; 15 | @include border-radius($card-border-radius); 16 | 17 | > hr { 18 | margin-right: 0; 19 | margin-left: 0; 20 | } 21 | 22 | > .list-group { 23 | border-top: inherit; 24 | border-bottom: inherit; 25 | 26 | &:first-child { 27 | border-top-width: 0; 28 | @include border-top-radius($card-inner-border-radius); 29 | } 30 | 31 | &:last-child { 32 | border-bottom-width: 0; 33 | @include border-bottom-radius($card-inner-border-radius); 34 | } 35 | } 36 | 37 | // Due to specificity of the above selector (`.card > .list-group`), we must 38 | // use a child selector here to prevent double borders. 39 | > .card-header + .list-group, 40 | > .list-group + .card-footer { 41 | border-top: 0; 42 | } 43 | } 44 | 45 | .card-body { 46 | // Enable `flex-grow: 1` for decks and groups so that card blocks take up 47 | // as much space as possible, ensuring footers are aligned to the bottom. 48 | flex: 1 1 auto; 49 | padding: $card-spacer-y $card-spacer-x; 50 | color: $card-color; 51 | } 52 | 53 | .card-title { 54 | margin-bottom: $card-title-spacer-y; 55 | } 56 | 57 | .card-subtitle { 58 | margin-top: -$card-title-spacer-y / 2; 59 | margin-bottom: 0; 60 | } 61 | 62 | .card-text:last-child { 63 | margin-bottom: 0; 64 | } 65 | 66 | .card-link { 67 | &:hover { 68 | text-decoration: none; 69 | } 70 | 71 | + .card-link { 72 | margin-left: $card-spacer-x; 73 | } 74 | } 75 | 76 | // 77 | // Optional textual caps 78 | // 79 | 80 | .card-header { 81 | padding: $card-cap-padding-y $card-cap-padding-x; 82 | margin-bottom: 0; // Removes the default margin-bottom of 83 | color: $card-cap-color; 84 | background-color: $card-cap-bg; 85 | border-bottom: $card-border-width solid $card-border-color; 86 | 87 | &:first-child { 88 | @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0); 89 | } 90 | } 91 | 92 | .card-footer { 93 | padding: $card-cap-padding-y $card-cap-padding-x; 94 | color: $card-cap-color; 95 | background-color: $card-cap-bg; 96 | border-top: $card-border-width solid $card-border-color; 97 | 98 | &:last-child { 99 | @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius); 100 | } 101 | } 102 | 103 | 104 | // 105 | // Header navs 106 | // 107 | 108 | .card-header-tabs { 109 | margin-right: -$card-cap-padding-x / 2; 110 | margin-bottom: -$card-cap-padding-y; 111 | margin-left: -$card-cap-padding-x / 2; 112 | border-bottom: 0; 113 | 114 | @if $nav-tabs-link-active-bg != $card-bg { 115 | .nav-link.active { 116 | background-color: $card-bg; 117 | border-bottom-color: $card-bg; 118 | } 119 | } 120 | } 121 | 122 | .card-header-pills { 123 | margin-right: -$card-cap-padding-x / 2; 124 | margin-left: -$card-cap-padding-x / 2; 125 | } 126 | 127 | // Card image 128 | .card-img-overlay { 129 | position: absolute; 130 | top: 0; 131 | right: 0; 132 | bottom: 0; 133 | left: 0; 134 | padding: $card-img-overlay-padding; 135 | @include border-radius($card-inner-border-radius); 136 | } 137 | 138 | .card-img, 139 | .card-img-top, 140 | .card-img-bottom { 141 | width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch 142 | } 143 | 144 | .card-img, 145 | .card-img-top { 146 | @include border-top-radius($card-inner-border-radius); 147 | } 148 | 149 | .card-img, 150 | .card-img-bottom { 151 | @include border-bottom-radius($card-inner-border-radius); 152 | } 153 | 154 | 155 | // 156 | // Card groups 157 | // 158 | 159 | .card-group { 160 | // The child selector allows nested `.card` within `.card-group` 161 | // to display properly. 162 | > .card { 163 | margin-bottom: $card-group-margin; 164 | } 165 | 166 | @include media-breakpoint-up(sm) { 167 | display: flex; 168 | flex-flow: row wrap; 169 | // The child selector allows nested `.card` within `.card-group` 170 | // to display properly. 171 | > .card { 172 | // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4 173 | flex: 1 0 0%; 174 | margin-bottom: 0; 175 | 176 | + .card { 177 | margin-left: 0; 178 | border-left: 0; 179 | } 180 | 181 | // Handle rounded corners 182 | @if $enable-rounded { 183 | &:not(:last-child) { 184 | @include border-end-radius(0); 185 | 186 | .card-img-top, 187 | .card-header { 188 | // stylelint-disable-next-line property-disallowed-list 189 | border-top-right-radius: 0; 190 | } 191 | .card-img-bottom, 192 | .card-footer { 193 | // stylelint-disable-next-line property-disallowed-list 194 | border-bottom-right-radius: 0; 195 | } 196 | } 197 | 198 | &:not(:first-child) { 199 | @include border-start-radius(0); 200 | 201 | .card-img-top, 202 | .card-header { 203 | // stylelint-disable-next-line property-disallowed-list 204 | border-top-left-radius: 0; 205 | } 206 | .card-img-bottom, 207 | .card-footer { 208 | // stylelint-disable-next-line property-disallowed-list 209 | border-bottom-left-radius: 0; 210 | } 211 | } 212 | } 213 | } 214 | } 215 | } 216 | -------------------------------------------------------------------------------- /scss/bootstrap/scss/_carousel.scss: -------------------------------------------------------------------------------- 1 | // Notes on the classes: 2 | // 3 | // 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically) 4 | // even when their scroll action started on a carousel, but for compatibility (with Firefox) 5 | // we're preventing all actions instead 6 | // 2. The .carousel-item-start and .carousel-item-end is used to indicate where 7 | // the active slide is heading. 8 | // 3. .active.carousel-item is the current slide. 9 | // 4. .active.carousel-item-start and .active.carousel-item-end is the current 10 | // slide in its in-transition state. Only one of these occurs at a time. 11 | // 5. .carousel-item-next.carousel-item-start and .carousel-item-prev.carousel-item-end 12 | // is the upcoming slide in transition. 13 | 14 | .carousel { 15 | position: relative; 16 | } 17 | 18 | .carousel.pointer-event { 19 | touch-action: pan-y; 20 | } 21 | 22 | .carousel-inner { 23 | position: relative; 24 | width: 100%; 25 | overflow: hidden; 26 | @include clearfix(); 27 | } 28 | 29 | .carousel-item { 30 | position: relative; 31 | display: none; 32 | float: left; 33 | width: 100%; 34 | margin-right: -100%; 35 | backface-visibility: hidden; 36 | @include transition($carousel-transition); 37 | } 38 | 39 | .carousel-item.active, 40 | .carousel-item-next, 41 | .carousel-item-prev { 42 | display: block; 43 | } 44 | 45 | /* rtl:begin:ignore */ 46 | .carousel-item-next:not(.carousel-item-start), 47 | .active.carousel-item-end { 48 | transform: translateX(100%); 49 | } 50 | 51 | .carousel-item-prev:not(.carousel-item-end), 52 | .active.carousel-item-start { 53 | transform: translateX(-100%); 54 | } 55 | 56 | /* rtl:end:ignore */ 57 | 58 | 59 | // 60 | // Alternate transitions 61 | // 62 | 63 | .carousel-fade { 64 | .carousel-item { 65 | opacity: 0; 66 | transition-property: opacity; 67 | transform: none; 68 | } 69 | 70 | .carousel-item.active, 71 | .carousel-item-next.carousel-item-start, 72 | .carousel-item-prev.carousel-item-end { 73 | z-index: 1; 74 | opacity: 1; 75 | } 76 | 77 | .active.carousel-item-start, 78 | .active.carousel-item-end { 79 | z-index: 0; 80 | opacity: 0; 81 | @include transition(opacity 0s $carousel-transition-duration); 82 | } 83 | } 84 | 85 | 86 | // 87 | // Left/right controls for nav 88 | // 89 | 90 | .carousel-control-prev, 91 | .carousel-control-next { 92 | position: absolute; 93 | top: 0; 94 | bottom: 0; 95 | z-index: 1; 96 | // Use flex for alignment (1-3) 97 | display: flex; // 1. allow flex styles 98 | align-items: center; // 2. vertically center contents 99 | justify-content: center; // 3. horizontally center contents 100 | width: $carousel-control-width; 101 | padding: 0; 102 | color: $carousel-control-color; 103 | text-align: center; 104 | background: none; 105 | border: 0; 106 | opacity: $carousel-control-opacity; 107 | @include transition($carousel-control-transition); 108 | 109 | // Hover/focus state 110 | &:hover, 111 | &:focus { 112 | color: $carousel-control-color; 113 | text-decoration: none; 114 | outline: 0; 115 | opacity: $carousel-control-hover-opacity; 116 | } 117 | } 118 | .carousel-control-prev { 119 | left: 0; 120 | background-image: if($enable-gradients, linear-gradient(90deg, rgba($black, .25), rgba($black, .001)), null); 121 | } 122 | .carousel-control-next { 123 | right: 0; 124 | background-image: if($enable-gradients, linear-gradient(270deg, rgba($black, .25), rgba($black, .001)), null); 125 | } 126 | 127 | // Icons for within 128 | .carousel-control-prev-icon, 129 | .carousel-control-next-icon { 130 | display: inline-block; 131 | width: $carousel-control-icon-width; 132 | height: $carousel-control-icon-width; 133 | background-repeat: no-repeat; 134 | background-position: 50%; 135 | background-size: 100% 100%; 136 | } 137 | 138 | /* rtl:options: { 139 | "autoRename": true, 140 | "stringMap":[ { 141 | "name" : "prev-next", 142 | "search" : "prev", 143 | "replace" : "next" 144 | } ] 145 | } */ 146 | .carousel-control-prev-icon { 147 | background-image: escape-svg($carousel-control-prev-icon-bg); 148 | } 149 | .carousel-control-next-icon { 150 | background-image: escape-svg($carousel-control-next-icon-bg); 151 | } 152 | 153 | // Optional indicator pips/controls 154 | // 155 | // Add a container (such as a list) with the following class and add an item (ideally a focusable control, 156 | // like a button) with data-bs-target for each slide your carousel holds. 157 | 158 | .carousel-indicators { 159 | position: absolute; 160 | right: 0; 161 | bottom: 0; 162 | left: 0; 163 | z-index: 2; 164 | display: flex; 165 | justify-content: center; 166 | padding: 0; 167 | // Use the .carousel-control's width as margin so we don't overlay those 168 | margin-right: $carousel-control-width; 169 | margin-bottom: 1rem; 170 | margin-left: $carousel-control-width; 171 | list-style: none; 172 | 173 | [data-bs-target] { 174 | box-sizing: content-box; 175 | flex: 0 1 auto; 176 | width: $carousel-indicator-width; 177 | height: $carousel-indicator-height; 178 | padding: 0; 179 | margin-right: $carousel-indicator-spacer; 180 | margin-left: $carousel-indicator-spacer; 181 | text-indent: -999px; 182 | cursor: pointer; 183 | background-color: $carousel-indicator-active-bg; 184 | background-clip: padding-box; 185 | border: 0; 186 | // Use transparent borders to increase the hit area by 10px on top and bottom. 187 | border-top: $carousel-indicator-hit-area-height solid transparent; 188 | border-bottom: $carousel-indicator-hit-area-height solid transparent; 189 | opacity: $carousel-indicator-opacity; 190 | @include transition($carousel-indicator-transition); 191 | } 192 | 193 | .active { 194 | opacity: $carousel-indicator-active-opacity; 195 | } 196 | } 197 | 198 | 199 | // Optional captions 200 | // 201 | // 202 | 203 | .carousel-caption { 204 | position: absolute; 205 | right: (100% - $carousel-caption-width) / 2; 206 | bottom: $carousel-caption-spacer; 207 | left: (100% - $carousel-caption-width) / 2; 208 | padding-top: $carousel-caption-padding-y; 209 | padding-bottom: $carousel-caption-padding-y; 210 | color: $carousel-caption-color; 211 | text-align: center; 212 | } 213 | 214 | // Dark mode carousel 215 | 216 | .carousel-dark { 217 | .carousel-control-prev-icon, 218 | .carousel-control-next-icon { 219 | filter: $carousel-dark-control-icon-filter; 220 | } 221 | 222 | .carousel-indicators [data-bs-target] { 223 | background-color: $carousel-dark-indicator-active-bg; 224 | } 225 | 226 | .carousel-caption { 227 | color: $carousel-dark-caption-color; 228 | } 229 | } 230 | -------------------------------------------------------------------------------- /scss/bootstrap/scss/_close.scss: -------------------------------------------------------------------------------- 1 | // transparent background and border properties included for button version. 2 | // iOS requires the button element instead of an anchor tag. 3 | // If you want the anchor version, it requires `href="#"`. 4 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile 5 | 6 | .btn-close { 7 | box-sizing: content-box; 8 | width: $btn-close-width; 9 | height: $btn-close-height; 10 | padding: $btn-close-padding-y $btn-close-padding-x; 11 | color: $btn-close-color; 12 | background: transparent escape-svg($btn-close-bg) center / $btn-close-width auto no-repeat; // include transparent for button elements 13 | border: 0; // for button elements 14 | @include border-radius(); 15 | opacity: $btn-close-opacity; 16 | 17 | // Override 's hover style 18 | &:hover { 19 | color: $btn-close-color; 20 | text-decoration: none; 21 | opacity: $btn-close-hover-opacity; 22 | } 23 | 24 | &:focus { 25 | outline: 0; 26 | box-shadow: $btn-close-focus-shadow; 27 | opacity: $btn-close-focus-opacity; 28 | } 29 | 30 | &:disabled, 31 | &.disabled { 32 | pointer-events: none; 33 | user-select: none; 34 | opacity: $btn-close-disabled-opacity; 35 | } 36 | } 37 | 38 | .btn-close-white { 39 | filter: $btn-close-white-filter; 40 | } 41 | -------------------------------------------------------------------------------- /scss/bootstrap/scss/_containers.scss: -------------------------------------------------------------------------------- 1 | // Container widths 2 | // 3 | // Set the container width, and override it for fixed navbars in media queries. 4 | 5 | @if $enable-grid-classes { 6 | // Single container class with breakpoint max-widths 7 | .container, 8 | // 100% wide container at all breakpoints 9 | .container-fluid { 10 | @include make-container(); 11 | } 12 | 13 | // Responsive containers that are 100% wide until a breakpoint 14 | @each $breakpoint, $container-max-width in $container-max-widths { 15 | .container-#{$breakpoint} { 16 | @extend .container-fluid; 17 | } 18 | 19 | @include media-breakpoint-up($breakpoint, $grid-breakpoints) { 20 | %responsive-container-#{$breakpoint} { 21 | max-width: $container-max-width; 22 | } 23 | 24 | // Extend each breakpoint which is smaller or equal to the current breakpoint 25 | $extend-breakpoint: true; 26 | 27 | @each $name, $width in $grid-breakpoints { 28 | @if ($extend-breakpoint) { 29 | .container#{breakpoint-infix($name, $grid-breakpoints)} { 30 | @extend %responsive-container-#{$breakpoint}; 31 | } 32 | 33 | // Once the current breakpoint is reached, stop extending 34 | @if ($breakpoint == $name) { 35 | $extend-breakpoint: false; 36 | } 37 | } 38 | } 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /scss/bootstrap/scss/_dropdown.scss: -------------------------------------------------------------------------------- 1 | // The dropdown wrapper (`
`) 2 | .dropup, 3 | .dropend, 4 | .dropdown, 5 | .dropstart { 6 | position: relative; 7 | } 8 | 9 | .dropdown-toggle { 10 | white-space: nowrap; 11 | 12 | // Generate the caret automatically 13 | @include caret(); 14 | } 15 | 16 | // The dropdown menu 17 | .dropdown-menu { 18 | position: absolute; 19 | z-index: $zindex-dropdown; 20 | display: none; // none by default, but block on "open" of the menu 21 | min-width: $dropdown-min-width; 22 | padding: $dropdown-padding-y $dropdown-padding-x; 23 | margin: 0; // Override default margin of ul 24 | @include font-size($dropdown-font-size); 25 | color: $dropdown-color; 26 | text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer) 27 | list-style: none; 28 | background-color: $dropdown-bg; 29 | background-clip: padding-box; 30 | border: $dropdown-border-width solid $dropdown-border-color; 31 | @include border-radius($dropdown-border-radius); 32 | @include box-shadow($dropdown-box-shadow); 33 | 34 | &[data-bs-popper] { 35 | top: 100%; 36 | left: 0; 37 | margin-top: $dropdown-spacer; 38 | } 39 | } 40 | 41 | // scss-docs-start responsive-breakpoints 42 | // We deliberately hardcode the `bs-` prefix because we check 43 | // this custom property in JS to determine Popper's positioning 44 | 45 | @each $breakpoint in map-keys($grid-breakpoints) { 46 | @include media-breakpoint-up($breakpoint) { 47 | $infix: breakpoint-infix($breakpoint, $grid-breakpoints); 48 | 49 | .dropdown-menu#{$infix}-start { 50 | --bs-position: start; 51 | 52 | &[data-bs-popper] { 53 | right: auto #{"/* rtl:ignore */"}; 54 | left: 0 #{"/* rtl:ignore */"}; 55 | } 56 | } 57 | 58 | .dropdown-menu#{$infix}-end { 59 | --bs-position: end; 60 | 61 | &[data-bs-popper] { 62 | right: 0 #{"/* rtl:ignore */"}; 63 | left: auto #{"/* rtl:ignore */"}; 64 | } 65 | } 66 | } 67 | } 68 | // scss-docs-end responsive-breakpoints 69 | 70 | // Allow for dropdowns to go bottom up (aka, dropup-menu) 71 | // Just add .dropup after the standard .dropdown class and you're set. 72 | .dropup { 73 | .dropdown-menu[data-bs-popper] { 74 | top: auto; 75 | bottom: 100%; 76 | margin-top: 0; 77 | margin-bottom: $dropdown-spacer; 78 | } 79 | 80 | .dropdown-toggle { 81 | @include caret(up); 82 | } 83 | } 84 | 85 | .dropend { 86 | .dropdown-menu[data-bs-popper] { 87 | top: 0; 88 | right: auto; 89 | left: 100%; 90 | margin-top: 0; 91 | margin-left: $dropdown-spacer; 92 | } 93 | 94 | .dropdown-toggle { 95 | @include caret(end); 96 | &::after { 97 | vertical-align: 0; 98 | } 99 | } 100 | } 101 | 102 | .dropstart { 103 | .dropdown-menu[data-bs-popper] { 104 | top: 0; 105 | right: 100%; 106 | left: auto; 107 | margin-top: 0; 108 | margin-right: $dropdown-spacer; 109 | } 110 | 111 | .dropdown-toggle { 112 | @include caret(start); 113 | &::before { 114 | vertical-align: 0; 115 | } 116 | } 117 | } 118 | 119 | 120 | // Dividers (basically an `
`) within the dropdown 121 | .dropdown-divider { 122 | height: 0; 123 | margin: $dropdown-divider-margin-y 0; 124 | overflow: hidden; 125 | border-top: 1px solid $dropdown-divider-bg; 126 | } 127 | 128 | // Links, buttons, and more within the dropdown menu 129 | // 130 | // `