Add themes folder

This commit is contained in:
Markus 2025-06-07 23:02:15 +02:00
parent 78eab7dcac
commit 077da5b941
108 changed files with 6225 additions and 0 deletions

View file

@ -0,0 +1,14 @@
; https://editorconfig.org
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
trim_trailing_whitespace = true
insert_final_newline = true
[*.md]
trim_trailing_whitespace = false

View file

@ -0,0 +1,75 @@
# Sample workflow for building and deploying a Hugo site to GitHub Pages
name: Deploy Hugo site to Pages
on:
# Runs on pushes targeting the default branch
push:
branches: ["main"]
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# Environment variables available to all jobs and steps in this workflow
env:
HUGO_ENV: production
HUGO_VERSION: "0.115.1"
GO_VERSION: "1.20.5"
NODE_VERSION: "18.15.0"
TINA_CLIENT_ID: ${{ vars.TINA_CLIENT_ID }}
TINA_TOKEN: ${{ vars.TINA_TOKEN }}
jobs:
# Build job
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Install Hugo
run: |
curl -LO "https://github.com/gohugoio/hugo/releases/download/v${{ env.HUGO_VERSION }}/hugo_extended_${{ env.HUGO_VERSION }}_Linux-64bit.tar.gz"
tar -xvf hugo_extended_${{ env.HUGO_VERSION }}_Linux-64bit.tar.gz
sudo mv hugo /usr/local/bin/
rm hugo_extended_${{ env.HUGO_VERSION }}_Linux-64bit.tar.gz
hugo version
- name: Install Go
run: |
curl -LO "https://dl.google.com/go/go${{ env.GO_VERSION }}.linux-amd64.tar.gz"
sudo tar -C /usr/local -xzf go${{ env.GO_VERSION }}.linux-amd64.tar.gz
echo "export PATH=$PATH:/usr/local/go/bin" >> $GITHUB_ENV
rm go${{ env.GO_VERSION }}.linux-amd64.tar.gz
go version
- name: Setup Project
run: npm run project-setup
- name: Install npm dependencies
run: npm install
- name: Publish to GitHub Pages
run: npm run build
- name: Upload artifact
uses: actions/upload-pages-artifact@v1
with:
path: ./public
# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v2

17
themes/airspace-hugo/.gitignore vendored Normal file
View file

@ -0,0 +1,17 @@
Thumbs.db
.DS_Store
.dist
.tmp
.lock
.sass-cache
npm-debug.log
node_modules
builds
package-lock.json
public
resources
.hugo_build.lock
jsconfig.json
hugo_stats.json
go.sum
yarn.lock

View file

@ -0,0 +1,39 @@
stages:
- build
variables:
HUGO_ENV: production
HUGO_VERSION: "0.115.1"
GO_VERSION: "1.20.5"
NODE_VERSION: "18.16.1"
cache:
paths:
- node_modules/
default:
image: node:${NODE_VERSION}
before_script:
- echo "USING NODE ${NODE_VERSION}"
- apt-get update && apt-get install -y curl
- curl -LO "https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz"
- tar -xvf hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz
- mv hugo /usr/local/bin/
- rm hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz
- echo "HUGO ${HUGO_VERSION} INSTALLED"
- curl -LO "https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz"
- tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz
- export PATH=$PATH:/usr/local/go/bin
- rm go${GO_VERSION}.linux-amd64.tar.gz
- echo "GO ${GO_VERSION} INSTALLED"
- npm install
pages:
stage: build
script:
- npm run project-setup
- npm run build
- echo "SITE BUILT SUCCESSFULLY! LIVE AT https://$GITLAB_USER_LOGIN.gitlab.io/$CI_PROJECT_NAME/"
artifacts:
paths:
- public

View file

@ -0,0 +1,59 @@
{
"maxerr": 50,
"bitwise": true,
"camelcase": false,
"curly": true,
"eqeqeq": true,
"forin": true,
"freeze": true,
"immed": true,
"indent": 2,
"latedef": true,
"newcap": false,
"noarg": true,
"noempty": true,
"nonbsp": true,
"nonew": true,
"plusplus": false,
"undef": true,
"unused": false,
"strict": true,
"maxparams": false,
"maxdepth": 4,
"maxstatements": false,
"maxcomplexity": false,
"maxlen": 400,
"browser": true,
"devel": true,
"asi": false,
"boss": false,
"debug": false,
"eqnull": false,
"es3": false,
"es5": false,
"esversion": 12,
"moz": false,
"evil": true,
"expr": true,
"funcscope": false,
"globalstrict": false,
"iterator": false,
"lastsemic": false,
"laxbreak": false,
"laxcomma": false,
"loopfunc": true,
"multistr": true,
"noyield": false,
"notypeof": false,
"proto": false,
"scripturl": false,
"shadow": false,
"sub": false,
"supernew": false,
"validthis": false,
"globals": {
"jQuery": false,
"google": false,
"$": false
}
}

View file

@ -0,0 +1,5 @@
{
"MD033": false,
"MD034": false,
"MD013": false
}

View file

@ -0,0 +1,12 @@
{
"overrides": [
{
"files": ["*.html"],
"options": {
"parser": "go-template",
"goTemplateBracketSpacing": true,
"bracketSameLine": true
}
}
]
}

View file

@ -0,0 +1,6 @@
{
"recommendations": [
"budparr.language-hugo-vscode",
"tamasfe.even-better-toml"
]
}

View file

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2018 - Present, Themefisher
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View file

@ -0,0 +1,127 @@
<h1 align=center>Airspace Hugo</h1>
<p align=center>This theme is suitable for a wide variety of businesses, including marketing, photography, and development enterprises.</p>
<h2 align=center> <a target="_blank" href="https://demo.gethugothemes.com/airspace" rel="nofollow">👀Demo</a> | <a target="_blank" href="https://pagespeed.web.dev/report?url=https%3A%2F%2Fdemo.gethugothemes.com%2Fairspace%2Fsite%2F&form_factor=desktop">Page Speed (95%)🚀</a></h2>
<p align=center>
<a href="https://github.com/gohugoio/hugo/releases/tag/v0.115.1" alt="Contributors">
<img src="https://img.shields.io/static/v1?label=min-HUGO-version&message=0.115.1&color=f00&logo=hugo" />
</a>
<a href="https://github.com/themefisher/airspace-hugo/blob/master/LICENSE">
<img src="https://img.shields.io/github/license/themefisher/airspace-hugo" alt="license"></a>
<img src="https://img.shields.io/github/languages/code-size/themefisher/airspace-hugo" alt="code size">
<a href="https://github.com/themefisher/airspace-hugo/graphs/contributors">
<img src="https://img.shields.io/github/contributors/themefisher/airspace-hugo" alt="contributors"></a>
<a href="https://twitter.com/intent/follow?screen_name=gethugothemes">
<img src="https://img.shields.io/twitter/follow/gethugothemes?style=social&logo=twitter"
alt="follow on Twitter"></a>
</p>
---
<p align="center">
<img src="https://demo.gethugothemes.com/thumbnails/airspace.png" alt="screenshot" width="100%">
</p>
---
## 🔑Key Features
- 📄 9+ Pre-Designed Pages
- 🌐 Multiple language support (Fr, En)
- 📊 Google Analytics support
- 🎨 CSS and JS bundle with Hugo Pipe
- 🎨 Bootstrap Based
- ⚙️ Netlify settings predefine
- 👥 Multiple authors available
- ✉️ Contact form support
- 🔄 GDPR consent support
- 🗺️ Google Maps support
- 🎉 Fun factors counter
- 🚀 Google Page Speed optimized
- 🌐 Open Graph meta tag
- 🐦 Twitter Card meta tag
## 📄 9+ Pre-Designed Pages
- 🏠 Home Page
- 📚 Blog Page
- 📝 Blog Single Page
- 📄 Project Page
- 🛠️ Services
- 💰 Pricing
- ❓ FAQ
- About Page
- 📞 Contact Page
## 🖥Local development
```bash
# clone the repository
git clone git@github.com:themefisher/airspace-hugo.git
# setup project
$ npm run project-setup
# Start local dev server
$ npm run dev
```
Or Check out [Full Documentation](https://docs.gethugothemes.com/airspace/?ref=github).
## ⚙Deployment and hosting
[![Deploy to
Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/themefisher/airspace-hugo)
Follow the steps.
<!-- reporting issue -->
## 🐞Reporting Issues
We use GitHub Issues as the official bug tracker for the Airspace Template. Please Search [existing
issues](https://github.com/themefisher/airspace-hugo/issues). Someone may have already reported the same problem.
If your problem or idea has not been addressed yet, feel free to [open a new
issue](https://github.com/themefisher/airspace-hugo/issues).
## 📱Submit Your Website To Our Showcase
Are you using Airspace Hugo theme? Submit it to our [showcase](https://gethugothemes.com/showcase).
Our showcase aims to demonstrate to the world what amazing websites people like you have created utilizing our Hugo themes and to show that Hugo has tremendous capabilities as a Static Site Generator.
View all the websites powered by Airspace Hugo from [here](https://gethugothemes.com/showcase?theme=airspace).
[Submit](https://gethugothemes.com/showcase?submit=show) your Airspace Hugo powered website.
<!-- licence -->
## 📄License
Copyright &copy; Designed by [Themefisher](https://themefisher.com) & Developed by
[Gethugothemes](https://gethugothemes.com)
**Code License:** Released under the [MIT](https://github.com/themefisher/airspace-hugo/blob/master/LICENSE) license.
**Image license:** The images are only for demonstration purposes. They have their licenses. We don't have permission to
share those images.
<!-- resources -->
## 👨💻Hire Us
Besides developing unique, blazing-fast Hugo themes, we also provide customized services. We specialize in creating affordable, high-quality static websites based on Hugo.
If you need to customize the theme or complete website development from scratch, you can hire us. **Check Our
[Services](https://gethugothemes.com/services/?utm_source=airspace_github&utm_medium=referral&utm_campaign=github_theme_readme)**
<!-- premium themes -->
## 💎Premium Themes By Us
| [![Mega-Bundle-HUGO](https://demo.gethugothemes.com/thumbnails/bundle.png?)](https://gethugothemes.com/bundle/?utm_source=airspace_github&utm_medium=referral&utm_campaign=github_theme_readme) | [![Bigspring](https://demo.gethugothemes.com/thumbnails/bigspring.png)](https://gethugothemes.com/products/reader/) | [![Navigator](https://demo.gethugothemes.com/thumbnails/navigator.png)](https://gethugothemes.com/products/navigator/) |
|:---:|:---:|:---:|
| **Get 55+ Premium Hugo Themes Bundle** | **Bigspring** | **Navigator** |

View file

@ -0,0 +1,7 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
# description
description: "This is meta description"
---

View file

@ -0,0 +1,113 @@
// Passive event listeners
jQuery.event.special.touchstart = {
setup: function (_, ns, handle) {
'use strict';
this.addEventListener('touchstart', handle, {
passive: !ns.includes('noPreventDefault')
});
}
};
jQuery.event.special.touchmove = {
setup: function (_, ns, handle) {
'use strict';
this.addEventListener('touchmove', handle, {
passive: !ns.includes('noPreventDefault')
});
}
};
// Preloader js
$(window).on('load', function () {
'use strict';
$('.preloader').fadeOut(0);
});
$(document).ready(function () {
'use strict';
// Shuffle js filter and masonry
var containerEl = document.querySelector('.shuffle-wrapper');
if (containerEl) {
var Shuffle = window.Shuffle;
var myShuffle = new Shuffle(document.querySelector('.shuffle-wrapper'), {
itemSelector: '.shuffle-item',
buffer: 1
});
jQuery('input[name="shuffle-filter"]').on('change', function (evt) {
var input = evt.currentTarget;
if (input.checked) {
myShuffle.filter(input.value);
}
});
}
$('.portfolio-single-slider').slick({
infinite: true,
arrows: false,
autoplay: true,
autoplaySpeed: 2000
});
$('.clients-logo').slick({
infinite: true,
arrows: false,
autoplay: true,
autoplaySpeed: 2000
});
$('.testimonial-slider').slick({
slidesToShow: 1,
infinite: true,
arrows: false,
autoplay: true,
autoplaySpeed: 2000
});
// Count Up
function counter() {
var oTop;
if ($('.count').length !== 0) {
oTop = $('.count').offset().top - window.innerHeight;
}
if ($(window).scrollTop() > oTop) {
$('.count').each(function () {
var $this = $(this),
countTo = $this.attr('data-count');
$({
countNum: $this.text()
}).animate({
countNum: countTo
}, {
duration: 1000,
easing: 'swing',
step: function () {
$this.text(Math.floor(this.countNum));
},
complete: function () {
$this.text(this.countNum);
}
});
});
}
}
$(window).on('scroll', function () {
counter();
});
// Turn cloaked e-mail addresses into clickable mailto links
let emailSpans = document.getElementsByClassName("cloaked-e-mail");
for (let emailSpan of emailSpans) {
let emailLink = document.createElement("a");
let emailAddress = emailSpan.attributes.getNamedItem("data-user").value.split('').reverse().join('') + "@" + emailSpan.attributes.getNamedItem("data-domain").value.split('').reverse().join('');
emailLink.href = "mailto:" + emailAddress;
emailLink.innerText = emailAddress;
emailSpan.parentElement.insertBefore(emailLink, emailSpan);
emailSpan.parentElement.removeChild(emailSpan)
}
// map initialize
$(map);
});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,120 @@
function map() {
window.marker = null;
function initialize() {
var map;
var latitude = $('#map').attr('data-latitude');
var longitude = $('#map').attr('data-longitude');
var mapMarker = $('#map').attr('data-marker');
var mapMarkerName = $('#map').attr('data-marker-name');
var style = [{
"featureType": "administrative",
"elementType": "all",
"stylers": [{
"saturation": "-100"
}]
},
{
"featureType": "administrative.province",
"elementType": "all",
"stylers": [{
"visibility": "off"
}]
},
{
"featureType": "landscape",
"elementType": "all",
"stylers": [{
"saturation": -100
},
{
"lightness": 65
},
{
"visibility": "on"
}
]
},
{
"featureType": "poi",
"elementType": "all",
"stylers": [{
"saturation": -100
},
{
"lightness": "50"
},
{
"visibility": "simplified"
}
]
},
{
"featureType": "road",
"elementType": "all",
"stylers": [{
"saturation": "-100"
}]
},
{
"featureType": "road.highway",
"elementType": "all",
"stylers": [{
"visibility": "simplified"
}]
},
{
"featureType": "road.arterial",
"elementType": "all",
"stylers": [{
"lightness": "30"
}]
},
{
"featureType": "road.local",
"elementType": "all",
"stylers": [{
"lightness": "40"
}]
},
{
"featureType": "transit",
"elementType": "all",
"stylers": [{
"saturation": -100
},
{
"visibility": "simplified"
}
]
},
{
"featureType": "water",
"elementType": "geometry",
"stylers": [{
"hue": "#ffff00"
},
{
"lightness": -25
},
{
"saturation": -97
}
]
},
{
"featureType": "water",
"elementType": "labels",
"stylers": [{
"lightness": -25
},
{
"saturation": -100
}
]
}
];
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,119 @@
/* Slider */
.slick-slider
{
position: relative;
display: block;
box-sizing: border-box;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-touch-callout: none;
-khtml-user-select: none;
-ms-touch-action: pan-y;
touch-action: pan-y;
-webkit-tap-highlight-color: transparent;
}
.slick-list
{
position: relative;
display: block;
overflow: hidden;
margin: 0;
padding: 0;
}
.slick-list:focus
{
outline: none;
}
.slick-list.dragging
{
cursor: pointer;
cursor: hand;
}
.slick-slider .slick-track,
.slick-slider .slick-list
{
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.slick-track
{
position: relative;
top: 0;
left: 0;
display: block;
margin-left: auto;
margin-right: auto;
}
.slick-track:before,
.slick-track:after
{
display: table;
content: '';
}
.slick-track:after
{
clear: both;
}
.slick-loading .slick-track
{
visibility: hidden;
}
.slick-slide
{
display: none;
float: left;
height: 100%;
min-height: 1px;
}
[dir='rtl'] .slick-slide
{
float: right;
}
.slick-slide img
{
display: block;
}
.slick-slide.slick-loading img
{
display: none;
}
.slick-slide.dragging img
{
pointer-events: none;
}
.slick-initialized .slick-slide
{
display: block;
}
.slick-loading .slick-slide
{
visibility: hidden;
}
.slick-vertical .slick-slide
{
display: block;
height: auto;
border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
display: none;
}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,17 @@
/* Web Font Loader v1.6.28 - (c) Adobe Systems, Google. License: Apache 2.0 */(function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}function p(a,b,c){p=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?aa:ba;return p.apply(null,arguments)}var q=Date.now||function(){return+new Date};function ca(a,b){this.a=a;this.s=b||a;this.c=this.s.document}var da=!!window.FontFace;function t(a,b,c,d){b=a.c.createElement(b);if(c)for(var e in c)c.hasOwnProperty(e)&&("style"==e?b.style.cssText=c[e]:b.setAttribute(e,c[e]));d&&b.appendChild(a.c.createTextNode(d));return b}function u(a,b,c){a=a.c.getElementsByTagName(b)[0];a||(a=document.documentElement);a.insertBefore(c,a.lastChild)}function v(a){a.parentNode&&a.parentNode.removeChild(a)}
function w(a,b,c){b=b||[];c=c||[];for(var d=a.className.split(/\s+/),e=0;e<b.length;e+=1){for(var f=!1,g=0;g<d.length;g+=1)if(b[e]===d[g]){f=!0;break}f||d.push(b[e])}b=[];for(e=0;e<d.length;e+=1){f=!1;for(g=0;g<c.length;g+=1)if(d[e]===c[g]){f=!0;break}f||b.push(d[e])}a.className=b.join(" ").replace(/\s+/g," ").replace(/^\s+|\s+$/,"")}function y(a,b){for(var c=a.className.split(/\s+/),d=0,e=c.length;d<e;d++)if(c[d]==b)return!0;return!1}
function ea(a){return a.s.location.hostname||a.a.location.hostname}function z(a,b,c){function d(){m&&e&&f&&(m(g),m=null)}b=t(a,"link",{rel:"stylesheet",href:b,media:"all"});var e=!1,f=!0,g=null,m=c||null;da?(b.onload=function(){e=!0;d()},b.onerror=function(){e=!0;g=Error("Stylesheet failed to load");d()}):setTimeout(function(){e=!0;d()},0);u(a,"head",b)}
function A(a,b,c,d){var e=a.c.getElementsByTagName("head")[0];if(e){var f=t(a,"script",{src:b}),g=!1;f.onload=f.onreadystatechange=function(){g||this.readyState&&"loaded"!=this.readyState&&"complete"!=this.readyState||(g=!0,c&&c(null),f.onload=f.onreadystatechange=null,"HEAD"==f.parentNode.tagName&&e.removeChild(f))};e.appendChild(f);setTimeout(function(){g||(g=!0,c&&c(Error("Script load timeout")))},d||5E3);return f}return null};function B(){this.a=0;this.c=null}function C(a){a.a++;return function(){a.a--;D(a)}}function E(a,b){a.c=b;D(a)}function D(a){0==a.a&&a.c&&(a.c(),a.c=null)};function F(a){this.a=a||"-"}F.prototype.c=function(a){for(var b=[],c=0;c<arguments.length;c++)b.push(arguments[c].replace(/[\W_]+/g,"").toLowerCase());return b.join(this.a)};function G(a,b){this.c=a;this.f=4;this.a="n";var c=(b||"n4").match(/^([nio])([1-9])$/i);c&&(this.a=c[1],this.f=parseInt(c[2],10))}function fa(a){return H(a)+" "+(a.f+"00")+" 300px "+I(a.c)}function I(a){var b=[];a=a.split(/,\s*/);for(var c=0;c<a.length;c++){var d=a[c].replace(/['"]/g,"");-1!=d.indexOf(" ")||/^\d/.test(d)?b.push("'"+d+"'"):b.push(d)}return b.join(",")}function J(a){return a.a+a.f}function H(a){var b="normal";"o"===a.a?b="oblique":"i"===a.a&&(b="italic");return b}
function ga(a){var b=4,c="n",d=null;a&&((d=a.match(/(normal|oblique|italic)/i))&&d[1]&&(c=d[1].substr(0,1).toLowerCase()),(d=a.match(/([1-9]00|normal|bold)/i))&&d[1]&&(/bold/i.test(d[1])?b=7:/[1-9]00/.test(d[1])&&(b=parseInt(d[1].substr(0,1),10))));return c+b};function ha(a,b){this.c=a;this.f=a.s.document.documentElement;this.h=b;this.a=new F("-");this.j=!1!==b.events;this.g=!1!==b.classes}function ia(a){a.g&&w(a.f,[a.a.c("wf","loading")]);K(a,"loading")}function L(a){if(a.g){var b=y(a.f,a.a.c("wf","active")),c=[],d=[a.a.c("wf","loading")];b||c.push(a.a.c("wf","inactive"));w(a.f,c,d)}K(a,"inactive")}function K(a,b,c){if(a.j&&a.h[b])if(c)a.h[b](c.c,J(c));else a.h[b]()};function ja(){this.c={}}function ka(a,b,c){var d=[],e;for(e in b)if(b.hasOwnProperty(e)){var f=a.c[e];f&&d.push(f(b[e],c))}return d};function M(a,b){this.c=a;this.f=b;this.a=t(this.c,"span",{"aria-hidden":"true"},this.f)}function N(a){u(a.c,"body",a.a)}function O(a){return"display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:"+I(a.c)+";"+("font-style:"+H(a)+";font-weight:"+(a.f+"00")+";")};function P(a,b,c,d,e,f){this.g=a;this.j=b;this.a=d;this.c=c;this.f=e||3E3;this.h=f||void 0}P.prototype.start=function(){var a=this.c.s.document,b=this,c=q(),d=new Promise(function(d,e){function f(){q()-c>=b.f?e():a.fonts.load(fa(b.a),b.h).then(function(a){1<=a.length?d():setTimeout(f,25)},function(){e()})}f()}),e=null,f=new Promise(function(a,d){e=setTimeout(d,b.f)});Promise.race([f,d]).then(function(){e&&(clearTimeout(e),e=null);b.g(b.a)},function(){b.j(b.a)})};function Q(a,b,c,d,e,f,g){this.v=a;this.B=b;this.c=c;this.a=d;this.o=g||"BESbswy";this.f={};this.w=e||3E3;this.u=f||null;this.m=this.j=this.h=this.g=null;this.g=new M(this.c,this.o);this.h=new M(this.c,this.o);this.j=new M(this.c,this.o);this.m=new M(this.c,this.o);a=new G(this.a.c+",serif",J(this.a));a=O(a);this.g.a.style.cssText=a;a=new G(this.a.c+",sans-serif",J(this.a));a=O(a);this.h.a.style.cssText=a;a=new G("serif",J(this.a));a=O(a);this.j.a.style.cssText=a;a=new G("sans-serif",J(this.a));a=
O(a);this.m.a.style.cssText=a;N(this.g);N(this.h);N(this.j);N(this.m)}var R={D:"serif",C:"sans-serif"},S=null;function T(){if(null===S){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgentData);S=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return S}Q.prototype.start=function(){this.f.serif=this.j.a.offsetWidth;this.f["sans-serif"]=this.m.a.offsetWidth;this.A=q();U(this)};
function la(a,b,c){for(var d in R)if(R.hasOwnProperty(d)&&b===a.f[R[d]]&&c===a.f[R[d]])return!0;return!1}function U(a){var b=a.g.a.offsetWidth,c=a.h.a.offsetWidth,d;(d=b===a.f.serif&&c===a.f["sans-serif"])||(d=T()&&la(a,b,c));d?q()-a.A>=a.w?T()&&la(a,b,c)&&(null===a.u||a.u.hasOwnProperty(a.a.c))?V(a,a.v):V(a,a.B):ma(a):V(a,a.v)}function ma(a){setTimeout(p(function(){U(this)},a),50)}function V(a,b){setTimeout(p(function(){v(this.g.a);v(this.h.a);v(this.j.a);v(this.m.a);b(this.a)},a),0)};function W(a,b,c){this.c=a;this.a=b;this.f=0;this.m=this.j=!1;this.o=c}var X=null;W.prototype.g=function(a){var b=this.a;b.g&&w(b.f,[b.a.c("wf",a.c,J(a).toString(),"active")],[b.a.c("wf",a.c,J(a).toString(),"loading"),b.a.c("wf",a.c,J(a).toString(),"inactive")]);K(b,"fontactive",a);this.m=!0;na(this)};
W.prototype.h=function(a){var b=this.a;if(b.g){var c=y(b.f,b.a.c("wf",a.c,J(a).toString(),"active")),d=[],e=[b.a.c("wf",a.c,J(a).toString(),"loading")];c||d.push(b.a.c("wf",a.c,J(a).toString(),"inactive"));w(b.f,d,e)}K(b,"fontinactive",a);na(this)};function na(a){0==--a.f&&a.j&&(a.m?(a=a.a,a.g&&w(a.f,[a.a.c("wf","active")],[a.a.c("wf","loading"),a.a.c("wf","inactive")]),K(a,"active")):L(a.a))};function oa(a){this.j=a;this.a=new ja;this.h=0;this.f=this.g=!0}oa.prototype.load=function(a){this.c=new ca(this.j,a.context||this.j);this.g=!1!==a.events;this.f=!1!==a.classes;pa(this,new ha(this.c,a),a)};
function qa(a,b,c,d,e){var f=0==--a.h;(a.f||a.g)&&setTimeout(function(){var a=e||null,m=d||null||{};if(0===c.length&&f)L(b.a);else{b.f+=c.length;f&&(b.j=f);var h,l=[];for(h=0;h<c.length;h++){var k=c[h],n=m[k.c],r=b.a,x=k;r.g&&w(r.f,[r.a.c("wf",x.c,J(x).toString(),"loading")]);K(r,"fontloading",x);r=null;if(null===X)if(window.FontFace){var x=/Gecko.*Firefox\/(\d+)/.exec(window.navigator.userAgentData),xa=/OS X.*Version\/10\..*Safari/.exec(window.navigator.userAgentData)&&/Apple/.exec(window.navigator.vendor);
X=x?42<parseInt(x[1],10):xa?!1:!0}else X=!1;X?r=new P(p(b.g,b),p(b.h,b),b.c,k,b.o,n):r=new Q(p(b.g,b),p(b.h,b),b.c,k,b.o,a,n);l.push(r)}for(h=0;h<l.length;h++)l[h].start()}},0)}function pa(a,b,c){var d=[],e=c.timeout;ia(b);var d=ka(a.a,c,a.c),f=new W(a.c,b,e);a.h=d.length;b=0;for(c=d.length;b<c;b++)d[b].load(function(b,d,c){qa(a,f,b,d,c)})};function ra(a,b){this.c=a;this.a=b}
ra.prototype.load=function(a){function b(){if(f["__mti_fntLst"+d]){var c=f["__mti_fntLst"+d](),e=[],h;if(c)for(var l=0;l<c.length;l++){var k=c[l].fontfamily;void 0!=c[l].fontStyle&&void 0!=c[l].fontWeight?(h=c[l].fontStyle+c[l].fontWeight,e.push(new G(k,h))):e.push(new G(k))}a(e)}else setTimeout(function(){b()},50)}var c=this,d=c.a.projectId,e=c.a.version;if(d){var f=c.c.s;A(this.c,(c.a.api||"https://fast.fonts.net/jsapi")+"/"+d+".js"+(e?"?v="+e:""),function(e){e?a([]):(f["__MonotypeConfiguration__"+
d]=function(){return c.a},b())}).id="__MonotypeAPIScript__"+d}else a([])};function sa(a,b){this.c=a;this.a=b}sa.prototype.load=function(a){var b,c,d=this.a.urls||[],e=this.a.families||[],f=this.a.testStrings||{},g=new B;b=0;for(c=d.length;b<c;b++)z(this.c,d[b],C(g));var m=[];b=0;for(c=e.length;b<c;b++)if(d=e[b].split(":"),d[1])for(var h=d[1].split(","),l=0;l<h.length;l+=1)m.push(new G(d[0],h[l]));else m.push(new G(d[0]));E(g,function(){a(m,f)})};function ta(a,b,c,d,e){this.o=2===e?2:1;e=ua[this.o-1];a?this.c=a:this.c=e[0];this.m=e[1];this.a=[];this.f=[];this.j=b||"";this.g=c||"";this.h=d||""}var ua=[["https://fonts.googleapis.com/css","%7C"],["https://fonts.googleapis.com/css2","&family="]];function va(a,b){for(var c=b.length,d=0;d<c;d++){var e=b[d].split(":");3==e.length&&a.f.push(e.pop());var f="";2==e.length&&""!=e[1]&&(f=":");a.a.push(e.join(f))}}
function wa(a){if(0==a.a.length)throw Error("No fonts to load!");if(-1!=a.c.indexOf("kit="))return a.c;for(var b=a.a.length,c=[],d=0;d<b;d++)c.push(a.a[d].replace(/ /g,"+"));b=a.c+"?family="+c.join(a.m);0<a.f.length&&(b+="&subset="+a.f.join(","));0<a.j.length&&(b+="&text="+encodeURIComponent(a.j));0<a.g.length&&(b+="&display="+encodeURIComponent(a.g));0<a.h.length&&(b+="&effect="+encodeURIComponent(a.h));return b};function ya(a){this.f=a;this.a=[];this.c={}}
var za={latin:"BESbswy","latin-ext":"\u00e7\u00f6\u00fc\u011f\u015f",cyrillic:"\u0439\u044f\u0416",greek:"\u03b1\u03b2\u03a3",khmer:"\u1780\u1781\u1782",Hanuman:"\u1780\u1781\u1782"},Aa={thin:"1",extralight:"2","extra-light":"2",ultralight:"2","ultra-light":"2",light:"3",regular:"4",book:"4",medium:"5","semi-bold":"6",semibold:"6","demi-bold":"6",demibold:"6",bold:"7","extra-bold":"8",extrabold:"8","ultra-bold":"8",ultrabold:"8",black:"9",heavy:"9",l:"3",r:"4",b:"7"},Ba={i:"i",italic:"i",n:"n",normal:"n"},
Ca=/^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/;
function Da(a){for(var b=a.f.length,c=0;c<b;c++){var d=a.f[c].split(":"),e=d[0].replace(/\+/g," "),f=["n4"];if(2<=d.length){var g;var m=d[1];g=[];if(m)for(var m=m.split(","),h=m.length,l=0;l<h;l++){var k;k=m[l];if(k.match(/^[\w-]+$/)){var n=Ca.exec(k.toLowerCase());if(null==n)k="";else{k=n[2];k=null==k||""==k?"n":Ba[k];n=n[1];if(null==n||""==n)n="4";else var r=Aa[n],n=r?r:isNaN(n)?"4":n.substr(0,1);k=[k,n].join("")}}else k="";k&&g.push(k)}0<g.length&&(f=g);3==d.length&&(d=d[2],g=[],d=d?d.split(","):
g,0<d.length&&(d=za[d[0]])&&(a.c[e]=d))}a.c[e]||(d=za[e])&&(a.c[e]=d);for(d=0;d<f.length;d+=1)a.a.push(new G(e,f[d]))}};function Ea(a,b){this.c=a;this.a=b}var Fa={Arimo:!0,Cousine:!0,Tinos:!0};Ea.prototype.load=function(a){var b=new B,c=this.c,d=new ta(this.a.api,this.a.text,this.a.display,this.a.effect,this.a.version),e=this.a.families;va(d,e);var f=new ya(e);Da(f);z(c,wa(d),C(b));E(b,function(){a(f.a,f.c,Fa)})};function Ga(a,b){this.c=a;this.a=b}Ga.prototype.load=function(a){var b=this.a.id,c=this.c.s;b?A(this.c,(this.a.api||"https://use.typekit.net")+"/"+b+".js",function(b){if(b)a([]);else if(c.Typekit&&c.Typekit.config&&c.Typekit.config.fn){b=c.Typekit.config.fn;for(var e=[],f=0;f<b.length;f+=2)for(var g=b[f],m=b[f+1],h=0;h<m.length;h++)e.push(new G(g,m[h]));try{c.Typekit.load({events:!1,classes:!1,async:!0})}catch(l){}a(e)}},2E3):a([])};function Ha(a,b){this.c=a;this.f=b;this.a=[]}Ha.prototype.load=function(a){var b=this.f.id,c=this.c.s,d=this;b?(c.__webfontfontdeckmodule__||(c.__webfontfontdeckmodule__={}),c.__webfontfontdeckmodule__[b]=function(b,c){for(var g=0,m=c.fonts.length;g<m;++g){var h=c.fonts[g];d.a.push(new G(h.name,ga("font-weight:"+h.weight+";font-style:"+h.style)))}a(d.a)},A(this.c,(this.f.api||"https://f.fontdeck.com/s/css/js/")+ea(this.c)+"/"+b+".js",function(b){b&&a([])})):a([])};var Y=new oa(window);Y.a.c.custom=function(a,b){return new sa(b,a)};Y.a.c.fontdeck=function(a,b){return new Ha(b,a)};Y.a.c.monotype=function(a,b){return new ra(b,a)};Y.a.c.typekit=function(a,b){return new Ga(b,a)};Y.a.c.google=function(a,b){return new Ea(b,a)};var Z={load:p(Y.load,Y)};"function"===typeof define&&define.amd?define(function(){return Z}):"undefined"!==typeof module&&module.exports?module.exports=Z:(window.WebFont=Z,window.WebFontConfig&&Y.load(window.WebFontConfig));}());

View file

@ -0,0 +1,654 @@
ul {
margin: 0;
padding-left: 0;
list-style-type: none;
}
iframe {
border: 0;
}
img{
max-width: 100%;
height: auto;
}
a,
a:focus,
a:hover {
text-decoration: none;
outline: 0;
color: $color-primary;
}
blockquote {
font-size: 18px;
border-color: $color-primary;
padding: 20px 40px;
text-align: left;
color: darken( $light, 50.98);
}
.navbar-toggle .icon-bar {
background: $color-primary;
}
input[type="email"],
input[type="password"],
input[type="text"],
input[type="tel"] {
box-shadow: none;
height: 45px;
outline: none;
font-size: 14px;
&:focus {
box-shadow: none;
border: 1px solid $color-primary;
}
}
.form-control {
box-shadow: none;
border-radius: 0;
&:focus {
box-shadow: none;
border: 1px solid $color-primary;
}
}
.slick-slide {
outline: 0
}
// Button Style
.btn-main {
background: $color-primary;
color: $white;
display: inline-block;
font-size: 14px;
letter-spacing: 1px;
padding: 14px 35px;
text-transform: uppercase;
border-radius: 0;
@include transition (all, 0.2s, ease);
&.btn-icon {
i {
font-size: 16px;
vertical-align: middle;
margin-right: 5px;
}
}
&:hover {
background: darken($color-primary, 20%);
color: $white;
}
}
.btn-solid-border {
border: 1px solid $white;
background: transparent;
color: $white;
&:hover {
border: 1px solid $color-primary;
background: $color-primary;
}
}
.btn-transparent {
@extend .btn-main;
background: transparent;
padding: 0;
color: $color-primary;
&:hover {
background: transparent;
color: $color-primary;
}
}
.btn-large {
padding: 20px 45px;
&.btn-icon {
i {
font-size: 16px;
vertical-align: middle;
margin-right: 5px;
}
}
}
.btn-small {
@extend .btn-main;
padding: 10px 25px;
font-size: 12px;
}
.btn-round {
border-radius: 4px;
}
.btn-round-full {
border-radius: 50px;
}
.btn.active:focus,
.btn:active:focus,
.btn:focus {
outline: 0;
}
.mt-10 {
margin-top: 20px;
}
.mt-20 {
margin-top: 20px;
}
.mt-30 {
margin-top: 30px;
}
.mt-40 {
margin-top: 40px;
}
.mt-50 {
margin-top: 50px;
}
.btn:focus {
color: darken( $light, 10.9);
}
.w-100 {
width: 100%;
}
.margin-0 {
margin: 0 !important;
}
/* preloader */
.preloader {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: $white;
z-index: 9999;
display: flex;
align-items: center;
justify-content: center;
}
.bg-shadow {
background-color: $white;
box-shadow: 0 16px 24px rgba(0, 0, 0, .08);
padding: 20px;
}
.bg-gray {
background: $light;
}
.bg-primary {
background: $color-primary;
}
.bg-primary-dark {
background: darken($color-primary, 10%);
}
.bg-primary-darker {
background: darken($color-primary, 20%);
}
.bg-dark {
background: #202122;
}
.section {
padding: 100px 0;
@include tablet {
padding-top: 20px;
padding-bottom: 20px;
}
}
.section-sm {
padding: 70px 0;
}
.title {
padding: 20px 0 30px;
h2 {
font-size: 18px;
text-align: center;
text-transform: uppercase;
letter-spacing: 2px;
}
}
.section-title {
margin-bottom: 70px;
@include tablet {
margin-bottom: 20px;
}
h2 {
text-transform: uppercase;
font-weight: 600;
margin: 0px;
padding: 30px 0px;
}
p {
font-style: italic;
color: darken( $light, 57.64);
font-family: $font-secondary;
}
}
.section-subtitle {
font-size: 28px;
font-weight: 600;
margin-bottom: 30px;
@include mobile-xs {
font-size: 26px;
}
@include mobile {
font-size: 24px;
}
}
.page-title {
padding: 100px 0;
@extend .overly;
.block {
text-align: center;
h1 {
color: $white;
font-weight: 200;
letter-spacing: 0.15em;
margin-top: 0;
text-transform: capitalize;
}
p {
color: $white;
}
}
}
.heading {
padding-bottom: 60px;
text-align: center;
h2 {
color: $black;
font-size: 30px;
line-height: 40px;
font-weight: 400;
}
p {
font-size: 18px;
line-height: 40px;
color: lighten( $black, 16.078);
font-weight: 300;
}
}
.page-wrapper {
padding: 70px 0;
@include tablet {
padding-top: 20px;
padding-bottom: 20px;
}
}
// Social Media Icons
.social-media-icons {
ul {
li {
display: inline-block;
a {
font-size: 18px;
color: lighten( $black, 20 );
display: inline-block;
padding: 7px 12px;
color: $white;
}
.twitter {
background: #00aced;
}
.facebook {
background: #3b5998;
padding: 7px 18px;
}
.googleplus {
background: #dd4b39;
}
.dribbble {
background: #ea4c89;
}
.instagram {
background: #bc2a8d;
}
}
}
}
.dropdown-slide {
position: static;
.open>a,
.open>a:focus,
.open>a:hover {
background: transparent;
}
&.full-width {
.dropdown-menu {
left: 0 !important;
right: 0 !important;
}
}
&:hover .dropdown-menu {
display: none;
opacity: 1;
display: block;
transform: translate(0px, 0px);
opacity: 1;
visibility: visible;
color: darken( $light, 50.98);
transform: translateY(0px);
}
.dropdown-menu {
border-radius: 0;
opacity: 1;
visibility: visible;
position: absolute;
padding: 15px;
border: 1px solid #ebebeb;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
position: absolute;
display: block;
visibility: hidden;
opacity: 0;
transform: translateY(30px);
transition: visibility 0.2s, opacity 0.2s, transform 500ms cubic-bezier(0.43, 0.26, 0.11, 0.99);
@include mobile {
transform: none;
}
}
}
.commonSelect {
margin-left: 10px;
padding-right: 6px;
position: relative;
&:before {
content: '\f3d0';
font-family: $font-icon;
position: absolute;
right: -4px;
top: 4px;
font-size: 10px;
}
select {
-webkit-appearance: none;
-moz-appearance: none;
cursor: pointer;
border: none;
padding: 0;
height: auto;
color: lighten( $black, 33.3 );
&:focus {
box-shadow: none;
border: none;
}
}
}
.tabCommon {
.nav-tabs {
border-bottom: 0;
margin-bottom: 10px;
li {
margin-right: 5px;
}
li.active a {
background-color: $color-primary;
border: 1px solid $color-primary;
color: $white;
}
a {
border-radius: 0;
background: $light;
&:hover {
border: 1px solid transparent;
background: $color-primary;
color: $white;
}
}
}
.tab-content {
padding: 20px;
border: 1px solid $border-color;
}
}
.commonAccordion {
.panel {
border-radius: 0;
box-shadow: none;
.panel-heading {
background: transparent;
padding: 0;
}
.panel-title {
position: relative;
a {
display: block;
font-size: 14px;
text-transform: uppercase;
padding: 10px 10px;
}
a:before {
color: lighten( $black, 33.3 );
content: "\f209";
position: absolute;
right: 25px;
font-family: $font-icon;
}
a.collapsed:before {
content: "\f217";
}
}
}
}
.commonAccordion-2 {
@extend .commonAccordion;
}
.list-circle {
padding-left: 20px;
li {
list-style-type: circle;
}
}
.play-icon {
border: 1px solid $border-color;
display: inline-block;
width: 60px;
height: 60px;
border-radius: 50px;
font-size: 30px;
i {
line-height: 60px;
}
}
.alert-common {
border-radius: 0;
border-width: 2px;
i {
margin: 0 5px;
font-size: 16px;
}
}
.alert-solid {
background: transparent;
color: $color-primary;
}
.buttonPart {
li {
@include mobile {
margin-bottom: 8px;
}
@include tablet {
margin-bottom: 8px;
}
}
}
.overly {
position: relative;
&:before {
content: "";
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
width: 100%;
height: 100%;
background: darken($color-primary, 25);
opacity: 0.8;
}
}
.owl-dots .owl-dot.active span,
.owl-theme .owl-dots .owl-dot:hover span {
background: $color-primary !important;
}
#success,
#error {
display: none;
}
.sticky-top {
position: sticky;
top: 0;
@include desktop {
position: static;
}
}
span.cloaked-e-mail:before {
content: attr(data-domain) "\0040" attr(data-user);
unicode-bidi: bidi-override;
direction: rtl;
}
@media (min-width: 1200px) {
.row .no-float {
display: table-cell;
float: none;
}
}

View file

@ -0,0 +1,76 @@
#wrapper-work {
overflow: hidden;
padding-top: 100px;
ul {
li {
width: 50%;
float: left;
position: relative;
img {
width: 100%;
height: 100%;
}
.items-text {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
width: 100%;
height: 100%;
color: $white;
background: rgba(0, 0, 0, 0.60);
padding-left: 44px;
padding-top: 140px;
h2 {
padding-bottom: 28px;
padding-top: 75px;
position: relative;
&:before {
content: "";
position: absolute;
left: 0;
bottom: 0;
width: 75px;
height: 3px;
background: $white;
}
}
p {
padding-top: 30px;
font-size: 16px;
line-height: 27px;
font-weight: 300;
padding-right: 80px;
}
}
}
}
}
/*--
features-work Start
--*/
#features-work {
padding-top: 50px;
padding-bottom: 75px;
.block {
ul {
li {
width: 19%;
text-align: center;
display: inline-block;
padding: 40px 0px;
}
}
}
}

View file

@ -0,0 +1,26 @@
/*=== MEDIA QUERY ===*/
@mixin mobile-xs {
@media(max-width: 400px) {
@content;
}
}
@mixin mobile {
@media(max-width: 480px) {
@content;
}
}
@mixin tablet {
@media(max-width: 768px) {
@content;
}
}
@mixin desktop {
@media(max-width: 992px) {
@content;
}
}
@mixin large-desktop {
@media(max-width: 1200px) {
@content;
}
}

View file

@ -0,0 +1,54 @@
// Transition
@mixin transition($what: all, $time: 0.2s, $how: ease-in-out) {
-webkit-transition: $what $time $how;
-moz-transition: $what $time $how;
-ms-transition: $what $time $how;
-o-transition: $what $time $how;
transition: $what $time $how;
}
@mixin transition-multi($x...){
-webkit-transition: $x;
-moz-transition: $x;
-ms-transition: $x;
-o-transition: $x;
transition: $x;
}
// Transform
@mixin transform($transforms) {
-moz-transform: $transforms;
-o-transform: $transforms;
-ms-transform: $transforms;
-webkit-transform: $transforms;
transform: $transforms;
}
// rotate
@mixin rotate ($deg) {
@include transform(rotate(#{$deg}deg));
}
// scale
@mixin scale($scale) {
@include transform(scale($scale));
}
// translate
@mixin translate ($x, $y) {
@include transform(translate($x, $y));
}
// skew
@mixin skew ($x, $y) {
@include transform(skew(#{$x}deg, #{$y}deg));
}
//transform origin
@mixin transform-origin ($origin) {
moz-transform-origin: $origin;
-o-transform-origin: $origin;
-ms-transform-origin: $origin;
-webkit-transform-origin: $origin;
transform-origin: $origin;
}

View file

@ -0,0 +1,74 @@
// Fonts
@font-face {
font-family: 'Open Sans';
src: local('Open Sans'), local('OpenSans'), url('\static\fonts\OpenSans-Light.woff2') format('woff2');
font-weight: normal;
font-style: normal;
}
body {
line-height: 1.5;
font-family: $font-primary;
-webkit-font-smoothing: antialiased;
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: $font-primary;
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-weight: 400;
}
h1 {
font-size: $h1;
@include tablet {
font-size: $h1-md;
}
@include mobile {
font-size: $h2;
}
@include mobile-xs {
font-size: $h2-md;
}
}
h2 {
font-size: $h2;
@include mobile {
font-size: $h2-sm;
}
}
h3 {
font-size: $h3;
}
h4 {
font-size: $h4;
}
p {
color: darken( $light, 49.41);
font-size: $font-size;
font-family: $font-primary;
}

View file

@ -0,0 +1 @@
// Add your custom code

View file

@ -0,0 +1,96 @@
// Color Variables
{{ with site.Params.variables }}
$color-primary: {{.color_primary | default "#777"}};
$color-secondary: {{.color_secondary | default "#0AA8A7"}};
$text-color: {{.text_color | default "#777"}};
$text-dark: {{.text_dark | default "#222"}};
$text-light: {{.text_light | default "#999"}};
$body-bg: {{.body_color | default "#fff"}};
$border-color: {{.border_color | default "#ECECEC"}};
$black: {{.black | default "#777"}};
$white: {{.white | default "#fff"}};
$light: {{.light | default "#EDF6F5"}};
// Font Variables
$font-size: {{.font_size | default "16px"}};
$font-scale: {{.font_scale | default "1.25"}};
$font-primary: '{{replace (replaceRE ":[ital,]*[ital@]*[wght@]*[0-9,;]+" "" .font_primary | default "Lato") "+" " "}}', {{.font_primary_type | default "sans-serif"}};
$font-secondary: '{{replace (replaceRE ":[ital,]*[ital@]*[wght@]*[0-9,;]+" "" .font_secondary | default "Lato") "+" " "}}', {{.font_secondary_type | default "sans-serif"}};
$font-icon: '{{.font_icon | default "Font Awesome 5 Free"}}';
{{ end }}
$h1: 80px;
$h1-md: 34px;
$h2: 28px;
$h2-md: 26px;
$h2-sm: 22px;
$h3: 20px;
$h4: 16px;
@import 'mixins.scss';
@import 'media-query.scss';
@import 'typography.scss';
@import 'common.scss';
@import 'main.scss';
@import 'templates/_header.scss';
@import 'templates/_navigation.scss';
@import 'templates/_slider.scss';
@import 'templates/_call-to-action.scss';
@import 'templates/_service.scss';
@import 'templates/_feature.scss';
@import 'templates/_portfolio.scss';
@import 'templates/_testimonial.scss';
@import 'templates/_contact.scss';
@import 'templates/_pricing.scss';
@import 'templates/_products.scss';
@import 'templates/_single-product.scss';
@import 'templates/_clients.scss';
@import 'templates/_about.scss';
@import 'templates/_instagram.scss';
@import 'templates/_user-dashboard.scss';
@import 'templates/_single-post.scss';
@import 'templates/_backgrounds.scss';
@import 'templates/_blog-sidebar.scss';
@import 'templates/_blog.scss';
@import 'templates/_coming-soon.scss';
@import 'templates/_shopping.scss';
@import 'templates/_404.scss';
@import 'templates/_message-sent.scss';
@import 'templates/_footer.scss';
@import 'custom.scss';
html {
scroll-behavior: smooth;
}

View file

@ -0,0 +1,33 @@
.page-404 {
display: flex;
align-items: center;
min-height: calc(100vh - (100px + 205px));
@include desktop {
min-height: calc(100vh - (90px + 205px));
}
text-align: center;
h1 {
font-size: 300px;
font-weight: bold;
@include tablet {
font-size: 150px;
}
@include mobile {
font-size: 130px;
}
@include mobile-xs {
font-size: 90px;
}
}
h2 {
text-transform:uppercase;
font-size: 20px;
letter-spacing: 4px;
font-weight: bold;
margin-top: 30px;
}
.btn-main {
margin-top: 40px;
margin-bottom: 50px;
}
}

View file

@ -0,0 +1,41 @@
.about{
.block{
h2 {
padding-top: 30px;
padding-bottom: 30px;
margin:0;
}
h3 {
padding-top: 30px;
padding-bottom: 30px;
margin:0;
}
p {
padding-top: 0px;
line-height:28px;
}
img {
width: 100%;
}
}
.about-img {
overflow:hidden;
&:hover img {
transform: scale3D(1.1,1.1,1);
}
img {
opacity: .6;
@include transition (all, 0.5s, ease-out);
}
}
.section-title {
margin-bottom: 0px;
}
}

View file

@ -0,0 +1,20 @@
.bg-1 {
background-size: cover;
background-position: center center;
background-repeat: no-repeat;
background-attachment: fixed;
@include large-desktop {
background-attachment: unset;
}
}
.bg-2 {
background-size: cover;
background-position: center center;
background-attachment: fixed;
@include large-desktop {
background-attachment: unset;
}
}

View file

@ -0,0 +1,130 @@
.widget {
margin-bottom: 65px;
@include tablet {
margin-bottom: 35px;
}
.widget-title {
margin-top: 0px;
margin-bottom: 15px;
font-size: 16px;
color: lighten( $black, 20 );
font-weight: 500;
border-bottom: 1px solid $border-color;
}
// Latest Posts
&.widget-latest-post {
.media {
.media-object {
width: 100px;
height: auto;
}
.media-heading {
a {
color: $black;
font-size: 16px;
}
}
p {
font-size: 12px;
color: darken( $light, 47.45);
}
}
@include desktop {
padding-top: 20px;
}
}
//end Latest Posts
// Categories
&.widget-category {
ul {
li {
padding-top: 10px;
padding-bottom: 10px;
a {
color: lighten( $black, 50.3 );
padding: 10px;
padding-left: 20px;
padding-right: 20px;
@include transition-multi (padding 0.3s ease, border 0.3s ease);
&:before {
padding-right: 10px;
}
&:hover {
color: $color-primary;
padding-left: 25px;
}
&:active {
padding-left: 24px;
border: 1px solid $color-primary;
border-radius: 30px;
@include transition (padding, 0s);
}
}
a.current {
color: $white;
background: $color-primary;
border: 1px solid $color-primary;
border-radius: 30px;
pointer-events: none;
cursor: default;
}
}
}
}
// end Categories
// Tags
&.widget-tag {
ul {
li {
margin-bottom: 10px;
display: inline-block;
margin-right: 5px;
a {
color: lighten( $black, 50.3 );
display: inline-block;
padding: 8px 15px;
border: 1px solid $border-color;
border-radius: 30px;
font-size: 14px;
@include transition-multi (background-color 0.3s ease, border 0.3s ease, color 0.1s ease);
&:hover {
color: $color-primary;
background: rgba($color-primary, 0.3);
border: 1px solid rgba($color-primary, 0.3);
}
&:active {
color: $color-primary;
border: 1px solid $color-primary;
background: $white;
@include transition (background-color, 0.1s, ease);
}
}
a.current {
color: $white;
background: $color-primary;
border: 1px solid $color-primary;
pointer-events: none;
cursor: default;
}
}
}
}
// end Tags
}

View file

@ -0,0 +1,145 @@
/*=================================================================
Latest Posts
==================================================================*/
.blog {
background: darken( $light, 1.17);
}
.post {
background: $white;
margin-bottom: 55px;
@include tablet {
margin-bottom: 20px;
}
.post-media {
&.post-thumb {
img {
width: 100%;
height: auto;
}
}
&.post-media-audio {
iframe {
width: 100%;
}
}
}
.post-title {
margin-top: 25px;
text-transform: uppercase;
a {
color: $color-primary;
&:hover {
color: $color-primary;
}
}
}
.post-meta {
font-size: 13px;
margin-top: 10px;
ul {
li {
display: inline-block;
color: lighten( $black, 56.47 );
margin-right: 20px;
font-size: 12px;
letter-spacing: .5px;
a {
color: lighten( $black, 56.47 );
&:hover {
color: $color-primary;
}
}
}
}
.post-author {
color: $black;
}
}
.post-content {
margin-top: 20px;
p {
line-height: 26px;
}
ul {
font-size: 15px;
padding: 10px 20px;
font-family: $font-primary;
list-style: circle;
}
ol {
font-size: 15px;
padding: 10px 20px;
font-family: $font-primary;
}
blockquote {
margin-top: 20px;
font-size: 18px;
border-color: $color-primary;
padding: 10px 20px;
text-align: left;
color: darken( $light, 50.98);
}
.btn-main {
padding: 10px 20px;
margin: 15px 0;
font-size: 12px;
}
}
}
.post-pagination {
margin: 0px;
@include desktop {
margin-bottom: 60px;
}
@include tablet {
margin-bottom: 25px;
}
>li {
margin: 0 2px;
display: inline-block;
font-size: 14px;
>a {
color: $black;
@include transition (all, 0.3s, ease);
&:hover {
color: $white;
background: $color-primary;
border: 1px solid $color-primary;
}
}
&.active>a {
background: $color-primary !important;
border: 1px solid $color-primary !important;
}
}
>li:first-child>a,
>li:last-child>a {
border-radius: 0;
}
}

View file

@ -0,0 +1,26 @@
.call-to-action {
text-align: center;
padding: 70px 0px;
@include tablet {
padding-top: 20px;
padding-bottom: 20px;
}
h2 {
color: $white;
margin: 0px;
padding: 30px 0px;
}
p {
color: $white;
}
.btn-main {
padding: 15px 35px;
font-size: 14px;
margin-top: 30px;
margin-bottom: 30px;
}
}

View file

@ -0,0 +1,14 @@
.clients-logo-section{
padding-top: 30px;
padding-bottom: 75px;
.clients-logo-img{
padding: 0px 50px;
}
}
.clients-logo {
img {
width: auto!important;
padding:20px;
}
}

View file

@ -0,0 +1,130 @@
.coming-soon {
background: url("../images/backgrounds/coming-soon.jpg");
background-repeat: no-repeat;
background-size: cover;
color: $white;
display: flex;
align-items: center;
@include mobile-xs {
padding: 50px 0;
}
@include mobile {
padding: 50px 0;
}
height:100vh;
.block {
h1 {
line-height: 65px;
font-size: 55px;
font-weight: 600;
text-transform: uppercase;
margin-bottom: 0;
@include mobile-xs {
font-size: 40px;
line-height: 50px;
}
@include mobile {
font-size: 40px;
line-height: 50px;
}
}
p {
color: $white;
margin-top: 10px;
font-size: 16px;
}
.count-down {
margin-top: 50px;
.syotimer-cell {
width: 25%;
padding: 15px;
display: inline-block;
@include mobile-xs {
width: 50%;
margin-bottom: 10px;
}
@include mobile {
width: 50%;
}
background:rgba(101, 94, 122, 0.48);
.syotimer-cell__value {
font-size: 80px;
line-height: 80px;
text-align: center;
position: relative;
font-weight: bold;
@include mobile-xs {
font-size: 50px;
}
}
.syotimer-cell__unit {
font-weight: normal;
}
}
ul {
li {
@include tablet {
font-size: 50px;
}
@include mobile {
font-size: 50px;
}
@include mobile-xs {
font-size: 40px;
}
&:before {
content: ":";
font-size: 20pt;
opacity: 0.7;
position: absolute;
right: 0px;
top: 0px;
}
&:last-child {
&:before {
content: '';
}
}
}
}
div:after {
content: " "attr(data-interval-text);
font-size: 20px;
font-weight: normal;
text-transform: capitalize;
display: block;
}
}
.copyright-text {
font-size: 12px;
a {
color: $white;
font-weight: 600;
}
}
}
}

View file

@ -0,0 +1,113 @@
.contact-form {
padding-top: 70px;
padding-bottom: 35px;
.block {
.form-group {
padding-bottom: 15px;
margin: 0px;
.form-control {
background: darken( $light, 0.392);
height: 60px;
border: 1px solid #EEF2F6;
box-shadow: none;
width: 100%;
}
}
.form-group-2 {
margin-bottom: 13px;
textarea {
background: darken( $light, 0.392);
height: 135px;
border: 1px solid #EEF2F6;
box-shadow: none;
width: 100%;
}
}
.form-group-h {
display: none;
}
button {
width: 100%;
height: 60px;
background: lighten( $black, 27.84);
border: none;
color: $white;
font-size: 18px;
}
}
}
.address-block {
margin-bottom: 40px;
li {
position: relative;
padding-left: 30px;
margin-bottom: 10px;
i {
position: absolute;
left: 0;
font-size: 20px;
line-height: 20px;
}
div {
display: inline-block;
vertical-align: top;
}
}
}
.social-icons {
margin-top: 40px;
li {
display: inline-block;
margin: 0 6px;
}
a {
display: inline-block;
}
i {
color: #2C2C2C;
margin-right: 25px;
font-size: 25px;
}
}
.contact-box {
padding-top: 35px;
padding-bottom: 58px;
.block {
img {
width: 100%;
}
h2 {
font-weight: 300;
color: #000;
font-size: 28px;
padding-bottom: 30px;
}
p {
color: lighten( $black, 36.07);
display: block;
}
}
}

View file

@ -0,0 +1,66 @@
/*=================================================================
Item counter section
==================================================================*/
.counter {
padding: 100px 0;
.counter-title {
margin-bottom: 50px;
h2 {
color: $black;
margin-bottom: 20px;
font-size: 42px;
font-weight: 600;
line-height: 35px;
}
p {
color: lighten( $black, 33.3 );
font-size: 16px;
}
}
}
.counters-item {
padding-bottom: 30px;
color: lighten( $black, 26.6 );
position: relative;
&.kill-border:before {
background: none;
}
&:before {
background: darken( $light, 7.843137254901947);
content: "";
margin-top: -27.5px;
height: 55px;
width: 1px;
position: absolute;
right: -15px;
top: 50%;
}
>div {
margin: 6px 0;
}
span {
display: inline;
font-size: 35px;
line-height: 50px;
}
i {
font-size: 40px;
display: inline-block;
color: $color-primary;
}
h3 {
font-size: 17px;
margin: 0;
}
}

View file

@ -0,0 +1,35 @@
.feature {
background: url("../img/feature-bg.jpg");
background-position: 50% 94px;
display: block;
position: relative;
background-attachment: fixed;
background-repeat: no-repeat;
background-position: center center;
background-size: cover;
padding: 100px 0;
@include large-desktop {
padding-top: 20px;
padding-bottom: 20px;
background-attachment: unset;
}
h2 {
margin: 0px;
padding-top: 30px;
padding-bottom: 30px;
}
p {
color: darken( $light, 41.37);
margin-bottom: 20px;
}
.btn-view-works {
background: lighten( $black, 42.35 );
color: $white;
padding: 10px 20px;
margin-bottom: 30px;
}
}

View file

@ -0,0 +1,37 @@
.footer {
background: darken( $light, 1.5);
min-height: 205px;
text-align: center;
padding-top: 67px;
p {
font-size: 13px;
line-height: 25px;
color: lighten( $black, 56.86274509803921 );
}
a {
color: lighten( $black, 34.9 );
}
.footer-menu {
padding-bottom: 25px;
ul {
margin: 0px;
padding: 0px;
li {
display: inline-block;
padding: 0px 20px;
a {
display: inline-block;
color: lighten( $black, 28.6 );
&:hover {
color: $black;
}
}
}
}
}
.copyright {
a {
font-weight: 600;
}
}
}

View file

@ -0,0 +1,37 @@
/*--
Header Start
--*/
header {
min-height: 100px;
@include desktop {
min-height: 90px;
}
background: $white;
padding: 20px 0;
.navbar {
margin-bottom: 0px;
border: 0px;
}
.navbar-brand {
padding-top: 5px;
}
.navbar-default {
background: none;
border: 0px;
.navbar-nav {
padding-top: 10px;
li {
a {
color: lighten( $black, 20 );
padding: 10px 26px;
font-size: 15px;
font
&:hover {
color: $black;
}
}
}
}
}
}

View file

@ -0,0 +1,24 @@
.instagram-feed {
a {
margin:6px;
margin-right: 10px;
display: inline-block;
margin-bottom: 10px;
width: 23.5%;
@include tablet {
width: 49%;
margin:3px;
}
@include mobile {
width: 100%;
margin:3px;
}
&:hover img {
filter: grayscale(10);
}
img {
width: 100%;
}
}
}

View file

@ -0,0 +1,36 @@
.page-message-sent {
display: flex;
align-items: center;
min-height: calc(100vh - (100px + 205px));
@include desktop {
min-height: calc(100vh - (90px + 205px));
}
text-align: center;
h1 {
font-size: 50px;
font-weight: bold;
@include mobile {
font-size: 40px;
}
@include mobile-xs {
font-size: 30px;
}
}
h2 {
text-transform:uppercase;
font-size: 20px;
font-weight: bold;
letter-spacing: 1px;
margin-top: 30px;
}
.btn-main {
margin-top: 40px;
margin-bottom: 50px;
}
img {
width: 50%;
max-height: 200px;
margin-top: 40px;
margin-bottom: 40px;
}
}

View file

@ -0,0 +1,142 @@
.navigation {
background: $white;
padding: 20px 0;
.navbar {
margin-bottom: 0px;
border: 0px;
}
.navbar-brand {
padding-top: 5px;
}
.navbar {
background: none;
border: 0px;
.navbar-nav {
padding-top: 5px;
padding-bottom: 5px;
a {
color: #7b7b7b;
padding: 10px 15px;
font : {
weight: 500;
size: 14px;
}
text-transform:uppercase;
&:hover,
&:focus {
color: $black;
background: transparent;
}
}
a.current {
color: $black;
pointer-events: none;
cursor: default;
}
a.current-parent {
color: $black;
}
select {
margin: 10px 15px;
}
}
.current > .dropdown-toggle {
color: $black;
}
.dropdown-menu {
border-radius: 0;
border: none;
left: -5px;
box-shadow: 0 0 25px 0 rgba(0, 0, 0, 0.08);
a {
text-transform: none;
font-weight: normal;
color: darken( $light, 47.45);
padding: 10px 20px;
@include transition-multi (color 0.1s ease, padding 0.3s ease);
&:hover {
background: $color-primary;
color: $white;
padding-left: 25px;
}
}
a.current {
padding-left: 25px;
color: $white;
background: $color-primary;
}
}
}
}
.nav .open>a {
background: transparent;
}
// Change Bootstrap's default navbar collapse breakpoint of 768px to 992px (=desktop); source: https://silvawebdesigns.com/how-to-change-the-bootstrap-navbar-breakpoint/
@include desktop {
.navbar-header {
float: none;
}
.navbar-left,
.navbar-right {
float: none !important;
}
.navbar-toggle {
display: block;
}
.navbar-collapse {
border-top: 1px solid transparent;
box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
}
.navbar-fixed-top {
top: 0;
border-width: 0 0 1px;
}
.navbar-collapse.collapse {
display: none!important;
}
.navbar-nav {
float: none!important;
margin-top: 7.5px;
}
.navbar-nav > li {
float: none;
}
.navbar-nav > li > a {
padding-top: 10px;
padding-bottom: 10px;
}
.collapse {
clear: both;
}
.collapse.in {
display: block !important;
}
}

View file

@ -0,0 +1,121 @@
.portfolio-work {
padding: 80px 0;
.block {
.portfolio-menu {
text-align: center;
.btn-group {
margin-bottom: 40px;
label {
display: inline-block;
border: 1px solid $border-color;
padding: 8px 25px;
cursor: pointer;
font-size: 15px;
color: lighten( $black, 20 );
outline: 0;
background: $white;
margin: 2px;
border-radius: 0;
@include transition (all, 0.3s, ease);
}
}
}
}
}
.portfolio {
&-item {
position: relative;
padding: 0;
img {
width: 100%;
height: auto;
}
&:hover {
.portfolio-hover {
visibility: visible;
opacity: 1;
}
.portfolio-content {
transform: translateY(-50%);
}
}
}
&-hover {
position: absolute;
height: 100%;
width: 100%;
top: 0;
left: 0;
background: rgba(60, 55, 55, 0.5);
visibility: hidden;
opacity: 0;
transition: .3s ease;
}
&-content {
position: absolute;
left: 0;
right: 0;
top: 50%;
transform: translateY(-40%);
text-align: center;
padding: 20px;
transition: inherit;
* {
color: $white;
}
a {
display: block;
transition: .2s ease;
i {
font-size: 30px;
}
&.h3 {
margin-top: 0;
}
}
}
}
// Portfolio Single Page
.portfolio-single-page {
.project-details {
h4 {
margin-bottom: 20px;
padding-bottom: 10px;
border-bottom: 2px dashed $border-color;
}
span {
color: lighten( $black, 51.3 );
width: 180px;
display: inline-block;
}
strong {
color: lighten( $black, 19.2 );
font-weight: normal;
}
ul {
li {
margin-bottom: 10px;
}
}
}
}

View file

@ -0,0 +1,51 @@
/*=================================================================
Pricing section
==================================================================*/
.pricing-table {
.pricing-item {
padding: 40px 20px;
background: $white;
box-shadow: 0 8px 15px 0 rgba(5, 57, 106, .06);
a.btn-main {
text-transform: uppercase;
margin-top: 20px;
}
li {
font-weight: 400;
padding: 6px 0;
color: darken( $light, 57.64);
i {
margin-right: 6px;
color: $color-primary;
}
}
}
.price-title {
padding: 30px 0 20px;
>h3 {
font-weight: 700;
margin: 0 0 5px;
font-size: 15px;
text-transform: uppercase;
}
>p {
font-size: 14px;
font-weight: 400;
line-height: 18px;
margin-top: 5px;
}
.value {
color: $color-primary;
font-size: 50px;
padding: 10px 0;
}
}
}

View file

@ -0,0 +1,223 @@
// Products
.product-item {
margin-bottom: 30px;
.product-thumb {
position: relative;
img {
width: 100%;
height: auto;
}
.bage {
position: absolute;
top: 12px;
right: 12px;
background: $black;
color: $white;
font-size: 12px;
padding: 4px 12px;
font-weight: 300;
display: inline-block;
}
&:before {
transition: .3s all;
opacity: 0;
background: rgba(0, 0, 0, 0.6);
content: '';
position: absolute;
top: 0;
right: 0;
left: 0;
bottom: 0;
}
.preview-meta {
position: absolute;
text-align: center;
bottom: 0;
left: 0;
width: 100%;
justify-content: center;
opacity: 0;
transition: 0.2s;
transform: translateY(10px);
li {
display: inline-block;
a,
span {
background: $white;
padding: 10px 16px;
cursor: pointer;
display: inline-block;
font-size: 18px;
&:hover {
background: $color-primary;
color: $white;
}
}
}
}
}
&:hover .product-thumb {
&:before {
opacity: 1;
}
}
&:hover .preview-meta {
opacity: 1;
transform: translateY(-20px);
}
.product-content {
text-align: center;
h4 {
font-size: 14px;
font-weight: 400;
margin-top: 15px;
margin-bottom: 6px;
a {
color: $black;
}
}
}
}
.product-modal {
background: rgba(255, 255, 255, 0.9);
text-align: center;
padding: 0 !important;
&:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
margin-right: -4px;
}
&.fade .modal-dialog {
transform: translate(0, 0);
}
.close {
width: 50px;
float: none;
position: absolute;
right: 20px;
z-index: 9;
top: 20px;
font-size: 30px;
outline: none;
}
.modal-dialog {
width: 900px;
display: inline-block;
text-align: left;
vertical-align: middle;
@include mobile {
width: 100%;
}
@include tablet {
width: 100%;
}
}
.modal-content {
border-radius: 0;
box-shadow: none;
border: none;
.modal-body {
padding: 30px;
.modal-image {
img {
width: 100%;
height: auto;
}
}
.product-short-details {
h2 {
margin-top: 0;
font-size: 22px;
font-weight: 400;
a {
color: $black;
}
@include mobile {
margin-top: 15px;
}
@include tablet {
margin-top: 15px;
}
}
.product-price {
font-size: 30px;
margin: 20px 0;
@include mobile {
margin: 10px 0;
}
}
.btn-main {
margin-top: 20px;
}
.btn-transparent {
color: lighten( $black, 26.6 );
border-bottom: 1px solid $border-color;
}
}
}
}
}
.product-shorting {
margin-bottom: 30px;
span {
margin-right: 15px;
}
}
// sidebar scss
.product-category {
ul {
padding-left: 15px;
li {
margin-bottom: 4px;
a {
color: darken( $light, 57.64);
&:hover {
color: $black;
}
}
}
}
}

View file

@ -0,0 +1,97 @@
.service {
text-align: center;
padding: 90px 0;
@include tablet {
padding-top: 20px;
padding-bottom: 20px;
}
.service-item {
padding-bottom: 30px;
i {
font-size: 50px;
color: $color-primary;
}
h4 {
padding-top: 15px;
margin: 0;
margin-top: 10px;
font-weight: 500;
text-transform: uppercase;
}
p {
padding-top: 10px;
margin: 0;
}
}
}
.dark-service {
.title {
color: $white;
}
.service-item {
padding-bottom: 30px;
text-align: center;
i {
color: $white;
font-size: 40px;
margin-bottom: 10px;
}
h4 {
color: $white;
padding-top: 15px;
margin: 0;
margin-top: 10px;
font-weight: 500;
text-transform: uppercase;
}
p {
padding-top: 10px;
margin: 0;
}
}
}
.service-about {
p {
line-height: 28px;
}
}
.service-arrow {
.block {
padding: 70px 30px;
i {
font-size: 40px;
}
p {
color: $white;
}
}
}
.service-list {
.block {
padding: 30px;
margin-bottom: 20px;
background: $white;
}
}

View file

@ -0,0 +1,236 @@
.shopping {
.widget-title {
font-weight: 400;
border-bottom: 1px solid $border-color;
padding-bottom: 15px;
margin-bottom: 15px;
text-transform: uppercase;
letter-spacing: 1px;
font-size: 16px;
}
}
.checkout {
.block {
padding: 15px;
margin-bottom: 10px;
}
}
// Checkout Page
.checkout-form {
.form-group {
position: relative;
margin-bottom: 8px;
label {
position: absolute;
top: 18px;
left: 15px;
right: auto;
bottom: auto;
color: #888;
font-size: 10px;
font-weight: 400;
text-transform: uppercase;
opacity: 1 !important;
width: 85px;
}
input {
border-radius: 0;
display: block;
padding: 6px 10px 5px 100px;
-moz-appearance: none;
-webkit-appearance: none;
height: 50px;
}
}
.checkout-country-code {
.form-group {
float: left;
}
.form-group:first-child {
width: calc(45% - 2px);
margin-right: 4px;
}
.form-group:last-child {
width: calc(55% - 2px);
}
}
}
.shopping.cart {
.product-list {
.table {
.cart-amount {
th {
background: $light;
padding: 10px;
text-transform: uppercase;
}
}
>tbody>tr>td {
vertical-align: middle;
}
}
.product-info {
a {
margin-left: 10px;
color: $black;
font-weight: 600;
}
}
.product-remove {
color: #c7254e;
}
}
.account-details {
margin-top: 30px;
legend {
font-weight: 600;
font-size: 16px;
text-transform: uppercase;
}
.btn-pay {
margin: 20px 0;
}
}
}
.product-checkout-details {
.product-card {
>a {
padding-right: 20px;
}
.price {
margin-top: 15px;
}
.media-object {
width: 80px;
}
h4 {
font-weight: 400;
font-size: 14px;
color: lighten( $black, 33.3 );
}
.remove {
font-size: 12px;
cursor: pointer;
}
}
.discount-code {
border-top: 1px solid $border-color;
border-bottom: 1px solid $border-color;
margin: 20px 0 10px;
padding: 10px 0;
p {
margin: 0;
a {
font-weight: 400;
color: lighten( $black, 33.3 );
}
}
}
.summary-prices {
border-style: solid;
border-color: $border-color;
border-width: 0px 0 1px 0;
padding-bottom: 10px;
li {
padding: 5px 0;
span+span {
float: right;
}
}
}
.summary-total {
margin-top: 5px;
>span {
font-weight: 500;
font-size: 18px;
}
span+span {
float: right;
}
}
.verified-icon {
margin-top: 25px;
img {
width: 100%;
}
}
}
// End Checkout Page
// purchase confirmation page
.purchase-confirmation {
.purchase-confirmation-details {
padding: 20px;
border: 1px solid $border-color;
.table {
margin: 0;
color: lighten( $black, 26.6 );
b,
strong {
font-weight: 400;
}
}
}
}
// Empty Cart
.empty-cart {
.block {
i {
font-size: 50px;
}
}
}
.success-msg {
.block {
i {
font-size: 40px;
background: $color-secondary;
color: $white;
width: 60px;
height: 60px;
border-radius: 100px;
display: inline-block;
line-height: 60px;
}
}
}

View file

@ -0,0 +1,249 @@
/*=================================================================
Single Blog Page
==================================================================*/
.post.post-single {
border: none;
margin-bottom: 0px;
.post-title {
margin-top: 0px;
@include tablet {
margin-top: 20px;
}
}
.post-thumb {
margin-top: 30px;
}
}
.post-sub-heading {
border-bottom: 1px solid $border-color;
padding-bottom: 20px;
letter-spacing: 2px;
text-transform: uppercase;
font-size: 16px;
margin-bottom: 20px;
}
.post-social-share {
margin-bottom: 50px;
}
.post-comments {
margin: 30px 0;
.media {
margin-top: 20px;
>.pull-left {
padding-right: 20px;
}
}
.comment-author {
margin-top: 0;
margin-bottom: 0px;
font-weight: 500;
a {
color: $color-primary;
font-size: 14px;
text-transform: uppercase;
}
}
time {
margin: 0 0 5px;
display: inline-block;
color: darken( $light, 47.45);
font-size: 12px;
}
.comment-button {
color: $color-primary;
display: inline-block;
margin-left: 5px;
font-size: 12px;
i {
margin-right: 5px;
display: inline-block;
}
&:hover {
color: $color-primary;
}
}
}
.post-excerpt {
h3 {
a {
color: $black;
}
}
p {
margin: 0 0 30px;
}
blockquote.quote-post {
margin: 20px 0;
p {
line-height: 30px;
font-size: 20px;
color: $color-primary;
}
}
}
.single-blog {
background-color: #fff;
margin-bottom: 50px;
padding: 20px;
}
.blog-subtitle {
font-size: 15px;
padding-bottom: 10px;
border-bottom: 1px solid $border-color;
margin-bottom: 25px;
text-transform: uppercase;
}
.next-prev {
border-bottom: 1px solid $border-color;
border-top: 1px solid $border-color;
margin: 20px 0;
padding: 25px 0;
a {
color: $black;
&:hover {
color: $color-primary;
}
}
.prev-post i {
margin-right: 10px;
}
.next-post i {
margin-left: 10px;
}
}
.social-profile {
ul {
li {
margin: 0 10px 0 0;
display: inline-block;
a {
color: lighten( $black, 33.92 );
display: block;
font-size: 16px;
i {
&:hover {
color: $color-primary;
}
}
}
}
}
}
.comments-section {
margin-top: 35px;
}
.author-about {
margin-top: 40px;
}
.post-author {
margin-right: 20px;
}
.post-author>img {
border: 1px solid $border-color;
max-width: 120px;
padding: 5px;
width: 100%;
}
.comment-list {
ul {
margin-top: 20px;
li {
margin-bottom: 20px;
}
}
}
.comment-wrap {
border: 1px solid $border-color;
border-radius: 1px;
margin-left: 20px;
padding: 10px;
position: relative;
.author-avatar {
margin-right: 10px;
}
.media {
.media-heading {
font-size: 14px;
margin-bottom: 8px;
a {
color: $color-primary;
font-size: 13px;
}
}
.comment-meta {
font-size: 12px;
color: #888;
}
p {
margin-top: 15px;
}
}
}
.comment-reply-form {
margin-top: 80px;
input,
textarea {
height: 35px;
border-radius: 0;
box-shadow: none;
&:focus {
box-shadow: none;
border: 1px solid $color-primary;
}
}
textarea,
.btn-main {
height: auto;
}
}

View file

@ -0,0 +1,308 @@
.single-product {
padding: 60px 0 40px;
.breadcrumb {
background: transparent;
li {
color: $black;
font-weight: 200;
a {
color: $black;
font-weight: 200;
}
}
}
.product-pagination {
li {
display: inline-block;
margin: 0 8px;
&+li:before {
padding: 0 8px 0 0;
color: #ccc;
content: "/\00a0";
}
a {
color: $black;
font-weight: 200;
i {
vertical-align: middle;
}
}
}
}
}
.single-product-slider {
.carousel {
.carousel-inner {
.carousel-caption {
text-shadow: none;
text-align: left;
top: 20%;
bottom: auto;
h1 {
font-size: 50px;
font-weight: 100;
color: $black;
}
p {
width: 50%;
font-weight: 200;
}
.btn-main {
margin-top: 20px;
}
}
}
.carousel-control {
bottom: auto;
background: $white;
width: 6%;
padding: 10px 0;
i {
font-size: 40px;
text-shadow: none;
color: lighten( $black, 33.3 );
}
}
.carousel-indicators li {
img {
height: auto;
width: 60px;
}
}
.carousel-control.right,
.carousel-control.left {
background-image: none;
top: 40%;
}
}
}
.single-product-slider .carousel-indicators {
margin: 10px 0 0;
overflow: auto;
position: static;
text-align: left;
white-space: nowrap;
width: 100%;
overflow: hidden;
li {
background-color: transparent;
-webkit-border-radius: 0;
border-radius: 0;
display: inline-block;
height: auto;
margin: 0 !important;
width: auto;
&.active img {
opacity: 1;
}
&:hover img {
opacity: 0.75;
}
img {
display: block;
opacity: 0.5;
}
}
}
.single-product-details {
.color-swatches {
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
align-items: center;
span {
width: 100px;
color: $black;
font-size: 13px;
font-weight: 600;
}
a {
display: inline-block;
width: 36px;
height: 36px;
margin-right: 5px;
}
li {
display: inline-block;
}
.swatch-violet {
background-color: #8da1cd;
}
.swatch-black {
background-color: $black;
}
.swatch-cream {
background-color: #e6e2d6;
}
}
.product-size {
margin-top: 20px;
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
align-items: center;
span {
width: 100px;
color: $black;
font-size: 13px;
font-weight: 600;
display: inline-block;
}
.form-control {
display: inline-block;
width: 130px;
letter-spacing: 2px;
text-transform: uppercase;
color: $black;
font-size: 12px;
border: 1px solid darken( $light, 7.843137254901947);
border-radius: 0px;
box-shadow: none;
}
}
.product-category {
margin-top: 20px;
>span {
width: 100px;
color: $black;
font-size: 13px;
font-weight: 600;
display: inline-block;
}
ul {
width: 140px;
display: inline-block;
li {
display: inline-block;
margin: 5px;
}
}
}
.product-quantity {
margin-top: 20px;
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
align-items: center;
>span {
width: 100px;
color: $black;
font-size: 13px;
font-weight: 600;
display: inline-block;
}
.product-quantity-slider {
width: 140px;
display: inline-block;
input {
height: 34px;
}
.input-group-btn:first-child>.btn,
.p-quantity .input-group-btn:first-child>.btn-group {
margin-right: -2px;
}
button {
border-radius: 0;
}
}
}
}
.bootstrap-touchspin .input-group-btn-vertical {
position: relative;
white-space: nowrap;
width: 1%;
vertical-align: middle;
display: table-cell;
}
.bootstrap-touchspin .input-group-btn-vertical>.btn {
display: block;
float: none;
width: 100%;
max-width: 100%;
padding: 8px 10px;
margin-left: -1px;
position: relative;
}
.bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-up {
border-radius: 0;
border-top-right-radius: 4px;
}
.bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-down {
margin-top: -2px;
border-radius: 0;
border-bottom-right-radius: 4px;
}
.bootstrap-touchspin .input-group-btn-vertical i {
position: absolute;
top: 3px;
left: 5px;
font-size: 9px;
font-weight: normal;
}

View file

@ -0,0 +1,57 @@
.slider {
background-repeat: no-repeat;
background-size: cover;
background-attachment: fixed;
background-position: center center;
padding: 170px 0 200px;
position: relative;
min-height: 1000px; /* Adjust based on your design needs */
@include large-desktop {
background-attachment: unset;
padding: 150px 0;
}
.block {
color: darken( $light, 8.4);
text-align: center;
h1 {
font-weight: 100;
font-size: 45px;
line-height: 1.33em;
letter-spacing: 0.2em;
padding-bottom: 15px;
text-transform: uppercase;
@include tablet {
font-size: 35px;
}
@include mobile {
font-size: 28px;
}
@include mobile-xs {
font-size: 26px;
}
}
p {
margin-bottom: 30px;
color: darken( $light, 25.09803921568627);
font-size: 18px;
line-height: 1.5em;
font-weight: 300;
@include mobile {
font-size: 14px;
}
}
@include mobile {
.btn {
font-size: 12px;
}
}
}
}

View file

@ -0,0 +1,92 @@
.testimonial {
padding: 100px 0;
@include tablet {
padding-top: 20px;
padding-bottom: 20px;
}
.counter-box {
li {
width: 50%;
float: left;
text-align: center;
margin: 30px 0 30px;
@include tablet {
margin-top: 0px;
}
}
}
.testimonial-carousel {
border: 1px solid $border-color;
padding: 24px;
i {
font-size: 35px;
margin-bottom: 20px;
}
p {
font-family: $font-secondary;
line-height: 28px;
padding-bottom: 20px;
}
.user {
img {
padding-bottom: 0px;
border-radius: 500px;
width: 80px;
display: inline-block;
}
p {
font-family: $font-quaternary;
padding-bottom: 0;
margin-top: 6px;
font-size: 12px;
line-height: 20px;
span {
display: block;
color: lighten( $black, 22.54 );
font-weight: 600;
}
}
}
.owl-carousel .owl-pagination div {
border: 1px solid #1D1D1D;
border-radius: 500px;
display: inline-block;
height: 10px;
margin-right: 15px;
width: 10px;
}
.owl-carousel .owl-pagination div.active {
background: lighten( $black, 36.07);
font-size: 30px;
display: inline-block;
border: 0px;
}
}
}
.counter-box {
i {
font-size: 35px;
margin-bottom: 15px;
}
h4 {
font-size: 30px;
font-weight: bold;
}
span {
color: lighten( $black, 33.3 );
}
}

View file

@ -0,0 +1,71 @@
.dashboard-menu {
.active {
background: $color-primary;
color: $white;
border: 1px solid $color-primary;
}
li {
padding: 0;
margin: 0 3px;
a {
padding: 10px 20px;
border: 1px solid $border-color;
@include tablet {
padding: 10px 15px;
}
@include mobile {
padding: 10px 5px;
}
@include mobile-xs {
padding: 10px 5px;
font-size: 12px;
}
}
}
}
.dashboard-wrapper {
border: 1px solid $border-color;
margin-top: 30px;
padding: 20px;
h2 {
font-size: 18px;
}
h4 {
font-size: 16px;
}
.user-img {
width: 120px;
border-radius: 100px;
}
}
.dashboard-user-profile {
.user-img {
width: 180px;
}
.user-profile-list {
margin-top: 30px;
padding-left: 30px;
li {
margin-bottom: 8px;
}
span {
font-weight: bold;
margin-right: 5px;
width: 100px;
display: inline-block;
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 754 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 357 KiB

View file

@ -0,0 +1,15 @@
{{ define "main" }}
<section class="page-404">
<div class="container">
<div class="row">
<div class="col-md-12">
<h1>404</h1>
<h2 class="text-muted">{{ i18n "404_message" | markdownify }}</h2>
<a href="{{site.BaseURL | relLangURL}}" class="btn btn-main">{{ i18n "go_home" | markdownify }}</a>
</div>
</div>
</div>
</section>
{{ end }}

View file

@ -0,0 +1,125 @@
{{ define "main" }}
{{ partial "page-title.html" . }}
{{ with .Params.about }}
{{ if .enable }}
<section class="about section">
<div class="container">
<div class="row">
<div class="col-md-6">
<div class="about-img">
<img class="img-responsive" src="{{ .image | relURL }}">
</div>
</div>
<div class="col-md-6">
{{ with .title }}<h2 class="mt-40">{{ . | markdownify }}</h2>{{ end }}
{{ with .content }}{{ . | $.Page.RenderString (dict "display" "block") }}{{ end }}
{{ with .button }}
{{ if .enable }}
<a href="{{ .link | relURL }}" class="btn btn-small mt-20">{{ .label }}</a>
{{ end }}
{{ end }}
</div>
</div>
<div class="row counter-box text-center mt-50">
{{ range .funfacts }}
<div class="col-md-2">
<div class="counter-item">
{{ with .icon }}<i class="{{ . }}"></i>{{ end }}
{{ with .count }}<h4 class="count" data-count="{{ . }}">0</h4>{{ end }}
{{ with .name }}<span>{{ . }}</span>{{ end }}
</div>
</div>
{{ end }}
</div>
</div>
</section>
{{ end }}
{{ end }}
{{ with .Params.features }}
{{ if .enable }}
<section class="about-feature bg-dark section dark-service">
<div class="container">
{{ with .title }}
<div class="row">
<div class="col-md-12">
<div class="title">
<h2>{{ . | markdownify }}</h2>
</div>
</div>
</div>
{{ end }}
<div class="row">
{{ range .feature_item }}
<div class="col-md-4">
<div class="service-item">
{{ with .icon }}<i class="{{ . }}"></i>{{ end }}
{{ with .name }}<h4>{{ . | markdownify }}</h4>{{ end }}
{{ with .content }}{{ . | $.Page.RenderString (dict "display" "block") }}{{ end }}
</div>
</div>
{{ end }}
</div>
</div>
</section>
{{ end }}
{{ end }}
<section class="testimonial section-sm">
<div class="container">
<div class="row">
{{ if .Params.testimonial.enable }}
{{ with .GetPage "/" }}
<div class="col-md-6">
<div class="testimonial-carousel text-center">
<div class="testimonial-slider owl-carousel">
{{ range .Params.funfacts.testimonial_slider }}
<div>
<i class="fas fa-quote-left"></i>
{{ with .content }}<p>"{{ . | markdownify }}"</p>{{ end }}
<div class="user">
{{ with .image }}<img src="{{ . | relURL }}" alt="client">{{ end }}
<p><span>{{ .name | markdownify }}</span> {{ .designation | markdownify }}</p>
</div>
</div>
{{ end }}
</div>
</div>
</div>
{{ end }}
{{ end }}
{{ with .Params.mission_vision }}
{{ if .enable }}
<div class="col-md-6">
<div class="tabCommon">
<ul class="nav nav-tabs">
{{ range $index, $elements := .tabs }}
<li {{ if eq $index 0 }} class="active" {{ end }}><a href="#{{ .name | urlize }}"
data-toggle="tab">{{ .name }}</a></li>
{{ end }}
</ul>
<div class="tab-content">
{{ range $index, $elements := .tabs }}
<div id="{{ .name | urlize }}" class="tab-pane fade {{ if eq $index 0 }} active in {{ end }}">
{{ .content | $.Page.RenderString (dict "display" "block") }}
</div>
{{ end }}
</div>
</div>
</div>
{{ end }}
{{ end }}
</div>
</div>
</section>
<!-- Call to action -->
{{ if .Params.cta.enable }}
{{ partial "cta.html" . }}
{{ end }}
<!-- /Call to action -->
{{ end }}

View file

@ -0,0 +1,22 @@
{{ define "main" }}
{{ partial "page-title.html" . }}
<section class="page-wrapper">
<div class="container">
<div class="row">
<div class="col-md-4 sticky-top">
<h2>{{ .Title }}</h2>
{{ with .Params.subtitle }}{{ . | $.Page.RenderString (dict "display" "block") }}{{ end }}
<p>{{ i18n "last_update" }}: {{ time.Format ":date_long" .Lastmod }}</p>
<h3>{{ i18n "faq_toc_title" }}</h3>
{{ .TableOfContents }}
</div>
<div class="col-md-8">
{{ .Content }}
</div>
</div>
</div>
</section>
{{ end }}

View file

@ -0,0 +1,52 @@
<!--
PROJECT: Startup Hugo
VERSION: 1.0.0
AUTHOR: Gethugothemes
AUTHOR WEBSITE: https://gethugothemes.com
-->
<!DOCTYPE html>
<html lang="{{ site.LanguageCode | default `en-US` }}" itemscope itemtype="http://schema.org/WebPage">
<head>
{{ partial "head.html" . }}
<!-- cache partial only in production -->
{{ if hugo.IsProduction }}
{{ partialCached "style.html" . }}
{{ else }}
{{ partial "style.html" . }}
{{ end }}
</head>
<body>
<!-- cache partial only in production -->
{{ partial "header.html" . }}
{{ if hugo.IsProduction }}
{{ partialCached "preloader.html" . }}
{{ else }}
{{ partial "preloader.html" . }}
{{ end }}
<!-- Google Tag Manager (noscript) -->
{{ with site.Params.google_tag_manager }}
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id={{ . }}" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
{{ end }}
<main>
{{ block "main" . }}{{ end }}
</main>
<!-- cache partial only in production -->
{{ if hugo.IsProduction }}
{{ partialCached "footer.html" . }}
{{ partialCached "script.html" . }}
{{ else }}
{{ partial "footer.html" . }}
{{ partial "script.html" . }}
{{ end }}
</body>
</html>

View file

@ -0,0 +1,80 @@
{{ define "main" }}
{{ partial "page-title.html" . }}
<section class="contact-form">
<div class="container">
{{ with site.Params.contact.form }}{{ if .enable -}}
<div class="row">
<form method="POST" {{ if .use_netlify }}name="{{ printf "contact_%s" $.Language.Lang }}" action="{{ "/message_sent" | relLangURL }}" netlify netlify-honeypot="nhp"{{ else }}name="contact" action="{{ .action | safeURL }}"{{ end }}>
<div class="col-md-6 col-sm-12">
<div class="block">
<div class="form-group">
<label for="name" hidden>{{ i18n "contact_form_name" }}</label>
<input id="name" name="name" type="text" class="form-control" placeholder="{{ i18n "contact_form_name" }}" required>
</div>
<div class="form-group">
<label for="email" hidden>{{ i18n "contact_form_email" }}</label>
<input id="email" name="email" type="email" autocomplete="email" class="form-control" placeholder="{{ i18n "contact_form_email" }}" required>
</div>
<div class="form-group">
<label for="subject" hidden>{{ i18n "contact_form_subject" }}</label>
<input id="subject" name="subject" type="text" class="form-control" placeholder="{{ i18n "contact_form_subject" }}" required>
</div>
{{ if .use_netlify -}}
<div class="form-group-h">
<input name="nhp" type="text" class="form-control" placeholder="Are you made of flesh and bone?">
</div>
{{- end }}
{{ if .use_recaptcha -}}
<div class="form-group-h">
<input type="hidden" id="captchaResponse" name="g-recaptcha-response">
</div>
{{- end }}
</div>
</div>
<div class="col-md-6 col-sm-12">
<div class="block">
<div class="form-group-2">
<label for="message" hidden>{{ i18n "contact_form_message" }}</label>
<textarea id="message" name="message" class="form-control" rows="4" placeholder="{{ i18n "contact_form_message" }}" required></textarea>
</div>
<button class="btn btn-default" type="submit">{{ i18n "submit" }}</button>
</div>
</div>
</form>
</div>
{{- end }}{{ end }}
<div class="contact-box row">
{{ with site.Params.contact -}}
<div class="col-md-6 col-sm-12">
<div class="block">
<h2>{{ i18n "address_title" }}</h2>
<ul class="address-block">
{{ $add_address_descriptors := .address_descriptors }}
{{ with site.Params.location }}<li><i class="fas fa-map-marker-alt"></i>{{ if $add_address_descriptors }}{{ i18n "location" | printf "%s: " }}{{ end }}<div>{{ . | markdownify }}</div></li>{{ end }}
{{ with site.Params.email }}<li><i class="fas fa-envelope"></i>{{ if $add_address_descriptors }}{{ i18n "email" | printf "%s: " }}{{ end }}{{ partial "cloak_email" . }}</li>{{ end }}
{{ with site.Params.phone }}<li><i class="fas fa-tty"></i>{{ if $add_address_descriptors }}{{ i18n "phone" | printf "%s: " }}{{ end }}{{ . }}</li>{{ end }}
</ul>
<ul class="social-icons">
{{ range site.Params.social -}}
<li><a href="{{ .link | safeURL }}"><i class="{{ .icon }}"></i></a></li>
{{- end }}
</ul>
</div>
</div>
{{- end }}
{{ if site.Params.gmap.enable -}}
<div class="col-md-6 col-sm-12">
<div class="block">
<div class="google-map">
<div class="map" id="map" data-latitude="{{ site.Params.gmap.map_latitude }}" data-longitude="{{ site.Params.gmap.map_longitude }}" data-marker="{{ site.Params.gmap.map_marker | relURL }}" data-marker-name="{{ site.Title }}"></div>
</div>
</div>
</div>
{{- end }}
</div>
</div>
</section>
{{ end }}

View file

@ -0,0 +1,22 @@
{{ define "main" }}
{{ partial "page-title.html" . }}
<section class="page-wrapper">
<div class="container">
<div class="row">
<div class="col-md-4 sticky-top">
<h2>{{ .Title }}</h2>
{{ with .Params.subtitle }}{{ . | $.Page.RenderString (dict "display" "block") }}{{ end }}
<p>{{ i18n "last_update" }}: {{ time.Format ":date_long" .Lastmod }}</p>
<h3>{{ i18n "faq_toc_title" }}</h3>
{{ .TableOfContents }}
</div>
<div class="col-md-8">
{{ .Content }}
</div>
</div>
</div>
</section>
{{ end }}

View file

@ -0,0 +1,54 @@
{
"name": "{{site.Title}}",
"short_name": "{{site.Title}}",
"lang": "{{ site.LanguageCode | default `en-us` }}",
{{ with site.Params.variables.color_primary }}"theme_color": "{{.}}",{{ end }}
{{ with site.Params.variables.body_color }}"background_color": "{{.}}",{{ end }}
{{ $icon:= site.Params.favicon }}
{{ if $icon }}
{{ if fileExists (add `assets/` $icon) }}
{{ $icon:= resources.Get $icon }}
{{ $icon_48:= $icon.Resize "48x48 png" }}
{{ $icon_72:= $icon.Resize "72x72 png" }}
{{ $icon_96:= $icon.Resize "96x96 png" }}
{{ $icon_144:= $icon.Resize "144x144 png" }}
{{ $icon_192:= $icon.Resize "192x192 png" }}
{{ $icon_512:= $icon.Resize "512x512 png" }}
"icons": [
{
"src": "{{$icon_48.RelPermalink}}",
"sizes": "48x48",
"type": "image/png"
},
{
"src": "{{$icon_72.RelPermalink}}",
"sizes": "72x72",
"type": "image/png"
},
{
"src": "{{$icon_96.RelPermalink}}",
"sizes": "96x96",
"type": "image/png"
},
{
"src": "{{$icon_144.RelPermalink}}",
"sizes": "144x144",
"type": "image/png"
},
{
"src": "{{$icon_192.RelPermalink}}",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "{{$icon_512.RelPermalink}}",
"sizes": "512x512",
"type": "image/png"
}
],
{{ end }}
{{ end }}
"display": "standalone",
"start_url": "{{ site.BaseURL | relLangURL }}?utm_source=web_app_manifest"
}

View file

@ -0,0 +1,119 @@
{{ define "main" }}
{{ partial "page-title.html" . }}
<!-- checking blog -->
{{ if or (eq .Section "post") (eq .Section "posts") (eq .Section "blog") (eq .Section "blogs") (eq .Section "news") (eq .Section "categories") (eq .Section "tags") }}
<div class="page-wrapper">
<div class="container">
<div class="row">
<div class="col-md-8">
{{ $paginator := .Paginate .Data.Pages -}}
{{ range $paginator.Pages -}}
<div class="post">
<div class="post-media post-thumb">
{{ if isset .Params "image" -}}
<a href="{{ .RelPermalink }}">
<img src="{{ .Params.image | relURL }}" alt="{{ .Title }}">
</a>
{{- end }}
</div>
<h3 class="post-title"><a href="{{ .RelPermalink }}">{{ .Title }}</a></h3>
<div class="post-meta">
<ul>
<li><i class="fas fa-calendar-week"></i> {{ time.Format ":date_long" .PublishDate }}</li>
<li><i class="fas fa-user"></i>
{{ i18n "posted_by" }}
{{ $authors := slice }}{{ if reflect.IsSlice .Params.author }}{{ $authors = .Params.author }}{{ else }}{{ $authors = (slice .Params.author) }}{{ end -}}
{{ range $index, $elements := $authors }}{{ if ne $index 0 }}, {{ end }}<a class="text-primary" href="{{ `author/` | relLangURL }}{{ . | urlize }}">{{ . }}</a>{{ end }}
</li>
<li><i class="fas fa-tags"></i>
{{ range $index, $elements:= .Params.tags }}{{ if ne $index 0 }}, {{ end }}<a href="{{ `tags/` | relLangURL }}{{ . | urlize }}">{{ . }}</a>{{ end }}
</li>
</ul>
</div>
<div class="post-content">
<p>{{ .Summary }}</p>
<a href="{{ .RelPermalink }}" class="btn btn-main">{{ i18n "read_more" }}</a>
</div>
</div>
{{- end }}
<!-- pagination -->
{{ $paginator := .Paginator -}}
{{ $adjacent_links := 2 -}}
{{ $max_links := (add (mul $adjacent_links 2) 1) -}}
{{ $lower_limit := (add $adjacent_links 1) -}}
{{ $upper_limit := (sub $paginator.TotalPages $adjacent_links) -}}
{{ if gt $paginator.TotalPages 1 -}}
<nav class="text-center">
<ul class="pagination post-pagination">
<!-- Previous page. -->
{{ if $paginator.HasPrev -}}
<li>
<a href="{{ $paginator.Prev.URL }}" class="page-link">{{ i18n "page_prev" }}</a>
</li>
{{- end }}
<!-- Page numbers. -->
{{ range $paginator.Pagers -}}
{{ $page_number_flag := false -}}
<!-- Advanced page numbers. -->
{{ if gt $paginator.TotalPages $max_links -}}
<!-- Lower limit pages. -->
<!-- If the user is on a page which is in the lower limit. -->
{{ if le $paginator.PageNumber $lower_limit -}}
<!-- If the current loop page is less than max_links. -->
{{ if le .PageNumber $max_links -}}
{{ $page_number_flag = true -}}
{{ end -}}
<!-- Upper limit pages. -->
<!-- If the user is on a page which is in the upper limit. -->
{{ else if ge $paginator.PageNumber $upper_limit -}}
<!-- If the current loop page is greater than total pages minus $max_links -->
{{ if gt .PageNumber (sub $paginator.TotalPages $max_links) -}}
{{ $page_number_flag = true -}}
{{ end -}}
<!-- Middle pages. -->
{{ else -}}
{{ if and (ge .PageNumber (sub $paginator.PageNumber $adjacent_links)) (le .PageNumber (add $paginator.PageNumber $adjacent_links)) -}}
{{ $page_number_flag = true -}}
{{ end -}}
{{ end -}}
<!-- Simple page numbers. -->
{{ else -}}
{{ $page_number_flag = true -}}
{{ end -}}
<!-- Output page numbers. -->
{{ if eq $page_number_flag true -}}
<li class="{{ if eq . $paginator }} active {{ end }}">
<a href="{{ .URL }}">
{{ .PageNumber }}
</a>
</li>
{{- end }}
{{- end }}
<!-- Next page. -->
{{ if $paginator.HasNext -}}
<li>
<a href="{{ $paginator.Next.URL }}">{{ i18n "page_next" }}</a>
</li>
{{- end }}
</ul>
</nav>
{{- end }}
</div>
<div class="col-md-4">
{{ partial "blog-sidebar.html" . }}
</div>
</div>
</div>
</div>
<!-- regular page -->
{{ else -}}
{{ .Render "default" }}
{{- end }}
<!-- /regular page -->
{{ end }}

View file

@ -0,0 +1,16 @@
{{ define "main" }}
<section class="page-message-sent">
<div class="container">
<div class="row">
<div class="col-md-12">
<img src="{{ site.Params.contact.form.success_image | relURL }}" alt="Paper plane">
<h1>{{ i18n "form_submitted" | markdownify }}</h1>
<h2 class="text-muted">{{ i18n "form_respond" | markdownify }}</h2>
<a href="{{ "/" | relLangURL }}" class="btn btn-main"><i class="tf-ion-android-arrow-back"></i> {{ i18n "go_home" | markdownify }}</a>
</div>
</div>
</div>
</section>
{{ end }}

View file

@ -0,0 +1,41 @@
{{ define "main" }}
{{ partial "page-title.html" . }}
{{ with .Params.pricing }}
{{ if .enable }}
<section class="pricing-table section bg-gray">
<div class="container">
<div class="row">
<!-- single pricing table -->
{{ range .pricing_table }}
<div class="col-md-4 col-sm-6 col-xs-12">
<div class="pricing-item text-center">
<div class="price-title">
{{ with .name }}<h3>{{ . | markdownify }}</h3>{{ end }}
{{ with .price }}<strong class="value">{{ . }}</strong>{{ end }}
{{ with .content }}{{ . | $.Page.RenderString (dict "display" "block") }}{{ end }}
</div>
<ul>
{{ range .services }}
<li>{{ . | markdownify }}</li>
{{ end }}
</ul>
<a class="btn btn-small" href="{{ .link | safeURL }}">{{ i18n "buy_now" }}</a>
</div>
</div>
{{ end }}
<!-- end single pricing table -->
</div>
</div>
</section>
{{ end }}
{{ end }}
<!-- Call to action -->
{{ if .Params.cta.enable }}
{{ partial "cta.html" . }}
{{ end }}
<!-- /Call to action -->
{{ end }}

View file

@ -0,0 +1,57 @@
{{ define "main" }}
{{ partial "page-title.html" . }}
{{ with .Params.about }}
{{ if .enable }}
<section class="service-about section">
<div class="container">
<div class="row">
<div class="col-md-6">
{{ with .title }}<h2>{{ . | markdownify }}</h2>{{ end }}
{{ with .content }}<div class="mt-30">{{ . | $.Page.RenderString (dict "display" "block") }}</div>{{ end }}
</div>
{{ with .image -}}
<div class="col-md-6">
<img class="img-responsive" src="{{ . | relURL }}">
</div>
{{- end }}
</div>
</div>
</section>
{{ end }}
{{ end }}
{{ with .Params.featured_service }}
{{ if .enable }}
<section class="service-arrow">
<div class="container-fluid">
<div class="row">
{{ range .service_item }}
<div class="col-md-4 bg-primary bg-{{ .color }} no-float">
<div class="block">
<i class="{{ .icon }}"></i>
{{ with .name }}<h3>{{ . | markdownify }}</h3>{{ end }}
{{ with .content }}{{ . | $.Page.RenderString (dict "display" "block") }}{{ end }}
</div>
</div>
{{ end }}
</div>
</div>
</section>
{{ end }}
{{ end }}
<!-- Service -->
{{ if .Params.service.enable }}
{{ partial "service.html" . }}
{{ end }}
<!-- /service -->
<!-- Call to action -->
{{ if .Params.cta.enable }}
{{ partial "cta.html" . }}
{{ end }}
<!-- /Call to action -->
{{ end }}

View file

@ -0,0 +1,55 @@
{{ define "main" }}
{{ partial "page-title.html" . }}
<!-- checking blog -->
{{ if or (eq .Section "post") (eq .Section "posts") (eq .Section "blog") (eq .Section "blogs") (eq .Section "news") (eq .Section "categories") (eq .Section "tags") }}
<section class="page-wrapper">
<div class="container">
<div class="row">
<div class="col-md-8">
<div class="post post-single">
<h2 class="post-title">{{ .Title }}</h2>
<div class="post-meta">
<ul>
<li><i class="ion-calendar"></i> {{ time.Format ":date_long" .PublishDate }}</li>
<li><i class="ion-android-people"></i>
{{ i18n "posted_by" }}
{{ $authors := slice }}{{ if reflect.IsSlice .Params.author }}{{ $authors = .Params.author }}{{ else }}{{ $authors = (slice .Params.author) }}{{ end -}}
{{ range $index, $elements := $authors }}{{ if ne $index 0 }}, {{ end }}<a class="text-primary" href="{{ `author/` | relLangURL }}{{ . | urlize }}">{{ . }}</a>{{ end }}
</li>
<li><i class="ion-pricetags"></i>
{{ range $index, $elements:= .Params.tags }}{{ if ne $index 0 }}, {{ end }}<a href="{{ `tags/` | relLangURL }}{{ . | urlize }}">{{ . }}</a>{{ end }}
</li>
</ul>
</div>
<div class="post-thumb">
{{ with .Params.image -}}
<img class="img-responsive" src="{{ . | relURL }}" alt="{{ $.Title }}">
{{- end }}
</div>
<div class="post-content post-excerpt">
{{ .Content }}
</div>
{{ with site.Params.DisqusShortname -}}
<div class="post-comments">
{{ template "_internal/disqus.html" . }}
</div>
{{- end }}
</div>
</div>
<div class="col-md-4">
{{ partial "blog-sidebar.html" . }}
</div>
</div>
</div>
</section>
<!-- regular page -->
{{ else -}}
{{ .Render "default" }}
{{- end }}
<!-- /regular page -->
{{ end }}

View file

@ -0,0 +1,2 @@
<!-- Redirect to homepage -->
<script>window.location.replace("{{ site.BaseURL | relLangURL }}");</script>

View file

@ -0,0 +1,80 @@
{{ define "main" }}
{{ partial "page-title.html" . }}
<section class="section" style="background: #f5f5f5;">
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="text-center">
<figure>
{{ if .Params.photo -}}
<img style="border-radius: 50%;" class="img-fluid" src="{{ .Params.photo }}">
{{ else if .Params.email -}}
<img style="border-radius: 50%;" class="img-fluid"
src="https://www.gravatar.com/avatar/{{ md5 .Params.email }}?s=128&pg&d=identicon">
{{- end }}
<figcaption>
<h5 class="font-weight-bold">
{{ .Params.name }}
</h5>
</figcaption>
</figure>
<hr>
{{ .Content }}
<hr>
<ul class="list-inline">
{{ range .Params.social -}}
<li class="list-inline-item"><a class="share-icon bg-secondary" href="{{ .link | safeURL }}"><i class="{{ .icon }}"></i></a></li>
{{- end }}
</ul>
</div>
</div>
</div>
</div>
</section>
<section class="section">
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="section-title text-center">
<h2>{{ i18n "posted_by" }} {{ .Title }}</h2>
</div>
</div>
{{ range (union (where site.RegularPages "Params.author" "intersect" (slice .Title)) (where site.RegularPages "Params.author" .Title)) -}}
<div class="col-md-6">
<div class="post">
<div class="post-thumb">
{{ if isset .Params "image" -}}
<a href="{{ .RelPermalink }}">
<img class="img-responsive" src="{{ .Params.image | relURL }}" alt="{{ .Title }}">
</a>
{{- end }}
</div>
<h3 class="post-title"><a href="{{ .RelPermalink }}">{{ .Title }}</a></h3>
<div class="post-meta">
<ul>
<li><i class="fas fa-calendar-week"></i> {{ time.Format ":date_long" .PublishDate }}</li>
<li><i class="fas fa-user"></i>
{{ i18n "posted_by" }}
{{ $authors := slice }}{{ if reflect.IsSlice .Params.author }}{{ $authors = .Params.author }}{{ else }}{{ $authors = (slice .Params.author) }}{{ end -}}
{{ range $index, $elements := $authors }}{{ if ne $index 0 }}, {{ end }}<a class="text-primary" href="{{ `author/` | relLangURL }}{{ . | urlize }}">{{ . }}</a>{{ end }}
</li>
<li><i class="fas fa-tags"></i>
{{ range $index, $elements:= .Params.tags }}{{ if ne $index 0 }}, {{ end }}<a href="{{ `tags/` | relLangURL }}{{ . | urlize }}">{{ . }}</a>{{ end }}
</li>
</ul>
</div>
<div class="post-content">
<p>{{ .Summary }}</p>
<a href="{{ .RelPermalink }}" class="btn btn-main">{{ i18n "read_more" }}</a>
</div>
</div>
</div>
{{- end }}
</div>
</div>
</section>
{{ end }}

View file

@ -0,0 +1,136 @@
{{ define "main" }}
<!-- banner -->
{{ with .Params.banner }}
{{ if .enable }}
<section class="slider {{ if .bg_overlay }}overly{{ end }}" style="background-image: url('{{ .bg_image | relURL }}');">
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="block">
{{ with .title }}<h1>{{ . | markdownify }}</h1>{{ end }}
{{ with .content }}{{ . | $.Page.RenderString (dict "display" "block") }}{{ end }}
{{ with .button }}
{{ if .enable }}
<a href="{{ .link | relLangURL }}" class="btn btn-main animated fadeInUp">{{ .label }}</a>
{{ end }}
{{ end }}
</div>
</div>
</div>
</div>
</section>
{{ end }}
{{ end }}
<!-- /banner -->
<!-- about -->
{{ with .Params.about }}
{{ if .enable }}
<section class="about section">
<div class="container">
<div class="row">
<div class="col-md-7 col-sm-12">
<div class="block">
<div class="section-title">
{{ with .title }}<h2>{{ . | markdownify }}</h2>{{ end }}
{{ with .description }}{{ . | $.Page.RenderString (dict "display" "block") }}{{ end }}
</div>
{{ with .content }}{{ . | $.Page.RenderString (dict "display" "block") }}{{ end }}
</div>
</div>
<div class="col-md-5 col-sm-12">
<div class="block">
<img src="{{ .image | relURL }}" class="img-responsive" alt="Img">
</div>
</div>
</div>
</div>
</section>
{{ end }}
{{ end }}
<!-- /about -->
<!-- portfolio -->
{{ with .Params.portfolio }}
{{ if .enable }}
<section class="feature bg-2" style="background-image: url('{{ .bg_image | relURL }}')">
<div class="container">
<div class="row">
<div class="col-md-6 col-md-offset-6">
{{ with .title }}<h2 class="section-subtitle">{{ . | markdownify }}</h2>{{ end }}
{{ with .content }}{{ . | $.Page.RenderString (dict "display" "block") }}{{ end }}
{{ with .button }}
{{ if .enable }}
<a href="{{ .link | relLangURL }}" class="btn btn-view-works">{{ .label }}</a>
{{ end }}
{{ end }}
</div>
</div>
</div>
</section>
{{ end }}
{{ end }}
<!-- /portfolio -->
<!-- service -->
{{ if .Params.service.enable }}
{{ partial "service.html" . }}
{{ end }}
<!-- /service -->
<!-- call to action -->
{{ if .Params.cta.enable }}
{{ partial "cta.html" . }}
{{ end }}
<!-- /call to action -->
<!-- funfacts -->
{{ with .Params.funfacts }}
{{ if .enable }}
<section class="testimonial">
<div class="container">
<div class="row">
<div class="section-title text-center">
{{ with .title }}<h2>{{ . | markdownify }}</h2>{{ end }}
{{ with .description }}{{ . | $.Page.RenderString (dict "display" "block") }}{{ end }}
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="block">
<ul class="counter-box clearfix">
{{ range .funfact_item }}
<li class="counter-item">
<i class="{{ .icon }}"></i>
<h4 class="count" data-count="{{ .count }}">0</h4>
<span>{{ .name | markdownify }}</span>
</li>
{{ end }}
</ul>
</div>
</div>
<div class="col-md-5 col-md-offset-1">
<div class="testimonial-carousel text-center">
<div class="testimonial-slider owl-carousel">
{{ range .testimonial_slider }}
<div>
<i class="fas fa-quote-left"></i>
{{ with .content }}{{ . | $.Page.RenderString (dict "display" "block") }}{{ end }}
<div class="user">
<img src="{{ .image | relURL }}" alt="client">
<p><span>{{ .name | markdownify }}</span> {{ .designation | markdownify }}</p>
</div>
</div>
{{ end }}
</div>
</div>
</div>
</div>
</div>
</section>
{{ end }}
{{ end }}
<!-- /funfacts -->
{{ end }}

View file

@ -0,0 +1,4 @@
{{- $sidebarWidgets := site.Params.widgets.sidebar -}}
<aside class="sidebar">
{{- partial "widgets/widget_area" ( dict "Widgets" $sidebarWidgets "Scope" . ) -}}
</aside>

View file

@ -0,0 +1,10 @@
{{/* Cloak an e-mail address (first argument) */ -}}
{{- $address_parts := split . "@" -}}
{{- if (eq (len $address_parts) 2) -}}
{{- $user := index $address_parts 0 -}}
{{- $domain := index $address_parts 1 -}}
<span class="cloaked-e-mail" data-user="{{ range $index := seq (sub (len $user) 1) 0 }}{{ substr $user $index 1 }}{{ end }}" data-domain="{{ range $index := seq (sub (len $domain) 1) 0 }}{{ substr $domain $index 1 }}{{ end }}"></span>
{{- else -}}
<span>INVALID E-MAIL ADDRESS</span>
{{- end -}}
{{- /* Dummy comment to strip trailing newline */ -}}

View file

@ -0,0 +1,21 @@
{{ with site.GetPage "/" }}
{{ with .Params.cta }}
<section class="call-to-action bg-1 section-sm overly" style="background-image: url('{{ .bg_image | relURL }}');">
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="block">
{{ with .title }}<h2>{{ . | markdownify }}</h2>{{ end }}
{{ with .content }}<p>{{ . | markdownify }}</p>{{ end }}
{{ with .button }}
{{ if .enable }}
<a class="btn btn-main btn-solid-border" href="{{ .link | relLangURL }}">{{ .label }}</a>
{{ end }}
{{ end }}
</div>
</div>
</div>
</div>
</section>
{{ end }}
{{ end }}

View file

@ -0,0 +1,16 @@
<footer class="footer">
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="footer-menu">
<ul>
{{ range site.Menus.footer }}
<li><a href="{{ .URL | relLangURL }}">{{ .Name }}</a></li>
{{ end }}
</ul>
</div>
<p class="copyright">{{ site.Params.copyright | markdownify }}</p>
</div>
</div>
</div>
</footer>

View file

@ -0,0 +1,194 @@
<meta charset="utf-8">
<title>{{.Title | default site.Title}}</title>
<!-- base url -->
{{ if or (eq site.BaseURL "/") (eq site.BaseURL "http://localhost:1313/") (eq site.BaseURL "http://examplesite.org/") (eq site.BaseURL "https://examplesite.org/") (eq site.BaseURL "http://examplesite.com/") (eq site.BaseURL "https://examplesite.com/")}}{{else}}
<base href="{{ .Permalink }}">
{{ end }}
<!-- multilingual SEO optimizations -->
{{ if .IsTranslated }}
{{ range .AllTranslations }}
<link rel="alternate" hreflang="{{.Lang}}" href="{{ .RelPermalink | absLangURL }}">
{{ end }}
<link rel="alternate" hreflang="x-default" href="{{ .RelPermalink | absLangURL }}">
{{ end }}
<!-- mobile responsive meta -->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5">
<meta name="description" content="{{ .Params.Description | default site.Params.description }}">
{{ with site.Params.author }}
<meta name="author" content="{{ . }}">{{ end }}
{{ hugo.Generator }}
<!-- theme meta -->
<meta name="theme-name" content="airspace-hugo" />
<!-- theme meta -->
<meta name="theme-name" content="airspace-hugo" />
<!-- google site verification -->
{{ with site.Params.site_verification.google }}
<meta name="google-site-verification" content="{{ . }}" />
{{ end }}
<!-- bing site verification -->
{{ with site.Params.site_verification.bing }}
<meta name="msvalidate.01" content="{{ . }}" />
{{ end }}
<!-- baidu site verification -->
{{ with site.Params.site_verification.baidu }}
<meta name="baidu-site-verification" content="{{ . }}" />
{{ end }}
<!-- favicon -->
{{ $favicon:= site.Params.favicon }}
{{ if $favicon }}
{{ if fileExists (add `assets/` $favicon) }}
{{ $favicon:= resources.Get $favicon }}
{{ $favicon_16:= $favicon.Resize "16x png"}}
{{ $favicon_32:= $favicon.Resize "32x png"}}
{{ $favicon_180:= $favicon.Resize "180x png"}}
<link rel="shortcut icon" href="{{$favicon_32.RelPermalink}}" type="image/x-icon">
<link rel="icon" href="{{$favicon_32.RelPermalink}}" type="image/x-icon">
<link rel="icon" type="image/png" sizes="16x16" href="{{$favicon_16.RelPermalink}}">
<link rel="icon" type="image/png" sizes="32x32" href="{{$favicon_32.RelPermalink}}">
<link rel="apple-touch-icon" sizes="180x180" href="{{$favicon_180.RelPermalink}}">
{{ end }}
{{ end }}
<link rel="manifest" href="{{`manifest.webmanifest` | relLangURL }}">
<meta name="msapplication-TileColor" content="{{site.Params.variables.color_primary | default `#da532c`}}">
<meta name="theme-color" content="{{site.Params.variables.body_color | default `#ffffff` }}">
<!-- Open Graph image and Twitter Card meta-data -->
{{ $image_path := .Params.image | default site.Params.image }}
{{ $image_path_local := printf "assets/%s" $image_path }}
{{ $image_ext := trim (path.Ext $image_path | lower) "." }}
{{ if fileExists $image_path_local }}
<meta property="og:image" content="{{ $image_path | absURL }}" />
<!-- If not SVG, read image aspect ratio and define Twitter Card and Open Graph width and height -->
{{ if ne $image_ext "svg" }}
{{ with (imageConfig $image_path_local) }}
{{ if (and (gt .Width 144) (gt .Height 144)) }}
<meta name="twitter:image" content="{{ $image_path | absURL }}" />
<meta name="twitter:card"
content="summary{{ if (and (gt .Width 300) (gt .Height 157) (not (eq .Width .Height))) }}_large_image{{ end }}">
{{ end }}
<meta property="og:image:width" content="{{ .Width }}">
<meta property="og:image:height" content="{{ .Height }}">
{{ end }}
{{ end }}
<meta property="og:image:type"
content="image/{{ if eq $image_ext `svg` }}svg+xml{{ else }}{{ replaceRE `^jpg$` `jpeg` $image_ext }}{{ end }}">
{{ end }}
<meta name="twitter:title" content="{{ with .Title }}{{ . }}{{ else }}{{ site.Title }}{{ end }}" />
<meta name="twitter:description"
content="{{ with .Description }}{{ . }}{{ else }}{{ if .IsPage }}{{ .Summary }}{{ else }}{{ with site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end }}" />
{{ with Site.Params.Social.twitter }}
<meta name="twitter:site" content="@{{ . }}" />{{ end }}
{{ range Site.Params.Author }}
{{ with .twitter }}
<meta name="twitter:creator" content="@{{ . }}" />{{ end }}
{{ end }}
{{ template "_internal/opengraph.html" . }}
<!-- google analytics -->
{{ template "_internal/google_analytics.html" . }}
<!-- google tag manager -->
{{ with site.Params.google_tag_manager }}
<script>
var dataLayer = window.dataLayer = window.dataLayer || [];
dataLayer.push({
page: '{{ .Title }}',
categories: 'only examples about your dataLayer'
});
</script>
<script>
(function (w, d, s, l, i) {
w[l] = w[l] || [];
w[l].push({
'gtm.start': new Date().getTime(),
event: 'gtm.js'
});
var f = d.getElementsByTagName(s)[0],
j = d.createElement(s),
dl = l != 'dataLayer' ? '&l=' + l : '';
j.async = true;
j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', '{{ . }}');
</script>
{{ end }}
<!-- matomo analytics -->
{{ with site.Params.matomo }}
{{ if .enable }}
<script type="text/javascript">
var _paq = window._paq = window._paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function () {
var u = "{{.url|safeURL}}";
_paq.push(['setTrackerUrl', u + 'matomo.php']);
_paq.push(['setSiteId', '{{.id}}']);
var d = document,
g = d.createElement('script'),
s = d.getElementsByTagName('script')[0];
g.type = 'text/javascript';
g.async = true;
g.src = u + 'matomo.js';
s.parentNode.insertBefore(g, s);
})();
</script>
{{ end }}
{{ end }}
<!-- Baidu analytics -->
{{ if site.Params.baidu.enable }}
{{ with site.Params.baidu.analytics_id }}
<script>
var _hmt = _hmt || [];
(function () {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?{{ . }}";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
{{ end }}
{{ end }}
<!-- Plausible Analytics -->
{{ with site.Params.plausible }}
{{ if .enable }}
{{ with .domain }}
<script defer data-domain="{{ . }}" src="https://plausible.io/js/plausible.js"></script>
{{ end }}
{{ end }}
{{ end }}
<!-- Counter Analytics -->
{{ with site.Params.counter }}
{{ if .enable }}
{{ with .id }}
<script src="https://cdn.counter.dev/script.js" data-id="{{ . }}" data-utcoffset="{{ site.Params.counter.utc_offset | default "0" }}"></script>
{{ end }}
{{ end }}
{{ end }}
<!-- Google reCaptcha -->
{{ if site.Params.contact.form.use_recaptcha }}
<script src="https://www.google.com/recaptcha/api.js?render={{ site.Params.recaptcha_site_key }}"></script>
<script>
grecaptcha.ready(function() {
grecaptcha.execute('{{ site.Params.recaptcha_site_key }}', {action: 'homepage'})
.then(function(token) {
document.getElementById('captchaResponse').value = token;
});
});
</script>
{{ end }}

View file

@ -0,0 +1,83 @@
<!-- navigation -->
<header class="{{if site.Params.navbar_fixed}}sticky-top{{end}} navigation">
<div class="container-fluid">
<!-- navbar -->
<nav class="navbar">
<div class="navbar-header">
<!-- navbar toggler -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navigation" aria-expanded="true">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<!-- navbar brand/logo -->
<a class="navbar-brand" href="{{ site.BaseURL | relLangURL }}">
{{ partial "logo.html" . }}
</a>
</div>
<div class="collapse navbar-collapse" id="navigation">
<ul class="nav navbar-nav navbar-right">
<!-- menu active -->
{{ $currentPage := . }}
{{ range site.Menus.main }}
{{ $menuURL := .URL | absLangURL }}
{{ $pageURL:= $currentPage.Permalink | absLangURL }}
{{ $active := eq $menuURL $pageURL }}
{{ if .HasChildren }}
<li class="nav-item dropdown
{{ range .Children }}
{{ $childURL := .URL | absLangURL }}
{{ $active := eq $childURL $pageURL }}
{{ if $active }}current{{ end }}
{{ end }}">
<a class="dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true"
aria-expanded="false">
{{ .Name }} <span class="fas fa-angle-down"></span>
</a>
<ul class="dropdown-menu">
{{ range .Children }}
{{ $childURL := .URL | absLangURL }}
{{ $active := eq $childURL $pageURL }}
<li><a class="dropdown-item {{ if $active }}current{{ end }}" {{if findRE `^http` .URL}}target="_blank" rel="noopener" {{end}}
href="{{if findRE `^#` .URL}}{{if not $.IsHome}}{{site.BaseURL | relLangURL}}{{end}}{{.URL}}{{else}}{{.URL | relLangURL}}{{end}}">{{ .Name }}</a></li>
{{ end }}
</ul>
</li>
{{ else }}
<li class="nav-item">
<a class="nav-link {{ if $active }}current{{ end }}" {{if findRE `^http` .URL}}target="_blank" rel="noopener" {{end}}
href="{{if findRE `^#` .URL}}{{if not $.IsHome}}{{site.BaseURL | relLangURL}}{{end}}{{.URL}}{{else}}{{.URL | relLangURL}}{{end}}">{{.Name}}</a>
</li>
{{ end }}
{{ end }}
<li>
<!-- Language List -->
{{ if .IsTranslated }}
<select class="m-2 border-0" id="select-language" onchange="location = this.value;">
{{ $siteLanguages := site.Languages}}
{{ $pageLang := .Page.Lang}}
{{ range .Page.AllTranslations }}
{{ $translation := .}}
{{ range $siteLanguages }}
{{ if eq $translation.Lang .Lang }}
{{ $selected := false }}
{{ if eq $pageLang .Lang}}
<option id="{{ $translation.Language }}" value="{{ $translation.RelPermalink }}" selected>{{ .LanguageName }}
</option>
{{ else }}
<option id="{{ $translation.Language }}" value="{{ $translation.RelPermalink }}">{{ .LanguageName }}</option>
{{ end }}
{{ end }}
{{ end }}
{{ end }}
</select>
{{ end }}
</li>
</ul>
</div>
</nav>
</div>
</header>
<!-- /navigation -->

View file

@ -0,0 +1,50 @@
{{ $logoPath:= site.Params.logo }}
{{ $logoWidth:= replace site.Params.logo_width "px" "x" }}
<!-- checking logo existance -->
{{ if $logoPath }}
{{ if fileExists (add `assets/` $logoPath) }}
{{ $logo:= resources.Get $logoPath }}
<!-- logo extention -->
{{ $logoExt := path.Ext $logo }}
<!-- logo height, width (if not svg) -->
{{ if eq $logoExt `.svg` }}
{{ .Scratch.Set "logo-width" "" }}
{{ .Scratch.Set "logo-height" "" }}
{{ else }}
{{ .Scratch.Set "logo-width" $logo.Width }}
{{ .Scratch.Set "logo-height" $logo.Height }}
{{ end }}
{{ $logoDefaultWidth:= .Scratch.Get "logo-width" }}
{{ $logoDefaultHeight:= .Scratch.Get "logo-height" }}
<!-- checking gif -->
{{ if eq $logoExt ".gif" }}
{{ .Scratch.Set "logo" ($logo.Resize $logoWidth).RelPermalink }}
<!-- checking svg -->
{{ else if eq $logoExt ".svg"}}
{{ .Scratch.Set "logo" $logo.RelPermalink }}
<!-- logo processing to webp -->
{{ else }}
{{ $logoDefaultWidth:= add (string $logoDefaultWidth) "x"}}
{{ $logoWidth:= $logoWidth | default $logoDefaultWidth }}
{{ $options := add (string $logoWidth) " webp" }}
{{ .Scratch.Set "logo" ($logo.Resize $options).RelPermalink }}
<!-- logo fallback -->
{{ .Scratch.Set "logo_fallback" ($logo.Resize $logoWidth).RelPermalink }}
{{ end }}
<img loading="prelaod" decoding="async" class="img-fluid" width="{{replace $logoWidth `x` `` | default $logoDefaultWidth}}" height="{{$logoDefaultHeight}}" src="{{.Scratch.Get `logo`}}" alt="{{ site.Title }}" onerror="this.onerror=null;this.src='{{.Scratch.Get `logo_fallback`}}'">
{{ else }}
<strong class="text-danger">`{{$logoPath}}` doesn't exist</strong>
{{ end }}
<!-- / checking logo existance -->
<!-- logo text -->
{{ else if site.Params.logo_text }}
{{ site.Params.logo_text | markdownify }}
<!-- logo title -->
{{ else }}
{{ site.Title | markdownify }}
{{ end }}

View file

@ -0,0 +1,12 @@
<section class="page-title bg-2" style="background-image: url('{{ .Params.bg_image | relURL }}');">
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="block">
<h1>{{ .Title }}</h1>
<p>{{ .Params.description }}</p>
</div>
</div>
</div>
</div>
</section>

View file

@ -0,0 +1,38 @@
{{ if site.Params.preloader.enable }}
<div class="preloader">
<!-- get image path -->
{{ $preloaderPath:= site.Params.preloader.preloader }}
{{ if $preloaderPath }}
<!-- check image existence -->
{{ if fileExists (add `assets/` $preloaderPath) }}
{{ $preloader:= resources.Get $preloaderPath }}
<!-- image extension -->
{{ $preloader_ext := path.Ext $preloader }}
<!-- image width -->
{{ $preloader_width := $preloader.Width }}
<!-- not gif -->
{{ if ne $preloader_ext ".gif" }}
<!-- webp image -->
{{ $option_webp := add (add (string $preloader_width) "x") " webp" }}
{{ .Scratch.Set "preloader" ($preloader.Resize $option_webp).RelPermalink }}
<!-- fallback image -->
{{ $option := add (string $preloader_width) "x" }}
{{ .Scratch.Set "preloader_fallback" ($preloader.Resize $option).RelPermalink }}
<!-- gif image -->
{{ else }}
{{ .Scratch.Set "preloader" $preloader.RelPermalink }}
{{ end }}
<img class="img-fluid" loading="preload" decoding="async" src="{{.Scratch.Get `preloader`}}" aria-label="preloader" title="preloader"
onerror="this.onerror=null;this.src='{{.Scratch.Get `preloader_fallback`}}'" alt="preloader">
{{ end }}
{{ end }}
<!-- /check image existence -->
</div>
{{ end }}

View file

@ -0,0 +1,15 @@
<!-- JS Plugins + Main script -->
{{ $scripts := slice }}
{{ range site.Params.plugins.js}}
{{ if findRE "^http" .link }}
<script src="{{ .link | relURL }}" type="application/javascript" {{.attributes | safeHTMLAttr}}></script>
{{ else }}
{{ $scripts = $scripts | append (resources.Get .link) }}
{{ end }}
{{ end }}
{{ $scripts := $scripts | append (resources.Get "js/script.js" | minify) }}
{{ $scripts := $scripts | resources.Concat "js/script.js" | minify | fingerprint "sha512" }}
<script crossorigin="anonymous" defer="defer" integrity="{{ $scripts.Data.Integrity }}" type="application/javascript">{{$scripts.Content | safeJS}}</script>

View file

@ -0,0 +1,25 @@
{{ with site.GetPage "/service" }}
{{ with .Params.service }}
<section class="service">
<div class="container">
<div class="row">
<div class="section-title">
{{ with .title }}<h2>{{ . | markdownify }}</h2>{{ end }}
{{ with .description }}<p>{{ . | markdownify }}</p>{{ end }}
</div>
</div>
<div class="row">
{{ range .service_item }}
<div class="col-sm-6 col-md-3">
<div class="service-item">
<i class="{{ .icon }}"></i>
<h4>{{ .name | markdownify }}</h4>
<p>{{ .content | markdownify }}</p>
</div>
</div>
{{ end }}
</div>
</div>
</section>
{{ end }}
{{ end }}

View file

@ -0,0 +1,31 @@
<!-- DNS preconnect -->
<meta http-equiv="x-dns-prefetch-control" content="on">
<link rel="preconnect" href="//ajax.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous">
<link rel="preconnect" href="https://use.fontawesome.com" crossorigin>
<link rel="preconnect" href="//cdnjs.cloudflare.com">
<link rel="preconnect" href="//www.googletagmanager.com">
<link rel="preconnect" href="//www.google-analytics.com">
<link rel="dns-prefetch" href="https://fonts.gstatic.com">
<link rel="dns-prefetch" href="https://use.fontawesome.com">
<link rel="dns-prefetch" href="//ajax.googleapis.com">
<link rel="dns-prefetch" href="//cdnjs.cloudflare.com">
<link rel="dns-prefetch" href="//www.googletagmanager.com">
<link rel="dns-prefetch" href="//www.google-analytics.com">
<link rel="dns-prefetch" href="//fonts.googleapis.com">
<link rel="dns-prefetch" href="//connect.facebook.net">
<link rel="dns-prefetch" href="//platform.linkedin.com">
<link rel="dns-prefetch" href="//platform.twitter.com">
<!-- plugins + stylesheet -->
{{ $styles := slice }}
{{ range site.Params.plugins.css }}
{{ if findRE "^http" .link }}
<link crossorigin="anonymous" media="all" rel="stylesheet" href="{{ .link | relURL }}" {{.attributes | safeHTMLAttr}} >
{{ else }}
{{ $styles = $styles | append (resources.Get .link) }}
{{ end }}
{{ end }}
{{ $styles := $styles | append (resources.Get "scss/style.scss" | resources.ExecuteAsTemplate "style.scss" . | toCSS) }}
{{ $styles := $styles | resources.Concat "/css/style.css" | minify | fingerprint "sha512"}}
<style type="text/css">{{$styles.Content | safeCSS}}</style>

View file

@ -0,0 +1,16 @@
<div class="widget widget-latest-post">
<h4 class="widget-title">{{ i18n "latest_posts" }}</h4>
{{ range first 4 (where site.Pages "Type" "post") }}
<div class="media">
<a class="pull-left" href="{{ .RelPermalink }}">
{{ if isset .Params "image" }}
<img class="media-object" src="{{ .Params.image | relURL }}" alt="{{ .Title }}">
{{ end }}
</a>
<div class="media-body">
<h4 class="media-heading"><a href="{{ .RelPermalink }}">{{ .Title }}</a></h4>
<p>{{ .Summary | truncate 50 }}</p>
</div>
</div>
{{ end }}
</div>

View file

@ -0,0 +1,12 @@
<div class="widget widget-category">
<h4 class="widget-title">{{ i18n "categories" }}</h4>
{{- if isset site.Taxonomies "categories" }}
{{- if not (eq (len site.Taxonomies.categories) 0) }}
<ul class="widget-category-list">
{{- range site.Taxonomies.categories }}
<li><a href="{{ .Page.RelPermalink }}"{{ if (and (eq $.Page.Kind "term") (eq $.Page.Type "categories") (eq $.Page.Title .Page.Title)) }} class="current"{{ end }}>{{ .Page.Title }}</a></li>
{{- end }}
</ul>
{{- end }}
{{- end }}
</div>

View file

@ -0,0 +1,12 @@
<div class="widget widget-tag">
<h4 class="widget-title">{{ i18n "tags" }}</h4>
{{- if isset site.Taxonomies "tags" }}
{{- if not (eq (len site.Taxonomies.tags) 0) }}
<ul class="widget-tag-list">
{{- range site.Taxonomies.tags }}
<li><a href="{{ .Page.RelPermalink }}"{{ if (and (eq $.Page.Kind "term") (eq $.Page.Type "tags") (eq $.Page.Title .Page.Title)) }} class="current"{{ end }}>{{ .Page.Title }}</a></li>
{{- end }}
</ul>
{{- end }}
{{- end }}
</div>

View file

@ -0,0 +1,3 @@
{{- range .Widgets -}}
{{- partial ( print "widgets/" . ) $.Scope -}}
{{- end -}}

View file

@ -0,0 +1,53 @@
{{ define "main" }}
{{ partial "page-title.html" . }}
{{ $data := index site.Data site.Language.Lang }}
<!-- Portfolio Start -->
<section class="portfolio-work">
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="block">
<div class="portfolio-menu">
<div class="btn-group btn-group-toggle justify-content-center" data-toggle="buttons">
<label class="btn btn-sm btn-primary active">
<input type="radio" name="shuffle-filter" value="all" checked="checked">{{ i18n "all" }}
</label>
{{ $categories := slice -}}
{{ range .Data.Pages -}}
{{ $categories = $categories | append .Params.category -}}
{{ end -}}
{{ range ( $categories | uniq ) -}}
<label class="btn btn-sm btn-primary">
<input type="radio" name="shuffle-filter" value="{{ . | urlize }}">{{ . }}
</label>
{{- end }}
</div>
</div>
<div class="row shuffle-wrapper">
{{ range .Data.Pages -}}
{{ $cats := .Params.category -}}
{{ if not (reflect.IsSlice $cats) }}{{ $cats = slice ($cats) }}{{ end -}}
{{ $cats = apply $cats "urlize" "." | jsonify -}}
<div class="col-md-4 portfolio-item shuffle-item" data-groups="{{ $cats }}">
{{ if isset .Params "image" -}}
<img src="{{ .Params.image | relURL }}" alt="{{ .Title }}">
{{- end }}
<div class="portfolio-hover">
<div class="portfolio-content">
<a class="h3" href="{{ .RelPermalink }}">{{ .Title }}</a>
<p>{{ .Params.description }}</p>
</div>
</div>
</div>
{{- end }}
</div>
</div>
</div>
</div>
</div>
</section>
{{ end }}

View file

@ -0,0 +1,36 @@
{{ define "main" }}
{{ partial "page-title.html" . }}
{{ $data := index site.Data site.Language.Lang }}
<section class="portfolio-single-page section-sm">
<div class="container">
<div class="row">
<div class="col-md-8">
{{ with .Params.image }}
<img class="img-responsive w-100" src="{{ . | relURL }}" alt="">
{{ end }}
</div>
<div class="col-md-4">
<div class="project-details">
<h4>Project Details</h4>
<ul>
{{ range .Params.information }}
<li><span>{{ .label }} :</span> <strong>{{ .info | markdownify }}</strong></li>
{{ end }}
</ul>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="project-content mt-50">
{{ .Content }}
</div>
</div>
</div>
</div>
</section>
{{ end }}

View file

@ -0,0 +1 @@
<a href="{{.Get 1 | absLangURL}}" class="btn btn-primary text-white" {{ if strings.HasPrefix (.Get 1) `http` }} target="_blank" rel="noopener"{{ end }} >{{.Get 0}}</a>

View file

@ -0,0 +1,10 @@
<!-- {{/*
Cloak an e-mail address
Usage: {{< cloak_email EMAIL >}}
*/}} -->
{{- $address_parts := split (.Get 0) "@" -}}
{{- $user := index $address_parts 0 -}}
{{- $domain := index $address_parts 1 -}}
<span class="cloaked-e-mail" data-user="{{ range $index := seq (sub (len $user) 1) 0 }}{{ substr $user $index 1 }}{{ end }}" data-domain="{{ range $index := seq (sub (len $domain) 1) 0 }}{{ substr $domain $index 1 }}{{ end }}"></span>
{{- /* Dummy comment to strip trailing newline */ -}}

View file

@ -0,0 +1,8 @@
<div class="codepen" data-height="400" data-theme-id="light" data-default-tab="html,result" data-user="codepen" data-slug-hash="{{.Get 0}}"></div>
<!-- codepen plugin, use it in config.toml -->
<!--
[[params.plugins.js]]
link = "https://cpwebassets.codepen.io/assets/embed/ei.js"
attributes = "async"
-->

View file

@ -0,0 +1,12 @@
<div class="accordion accordion-flush border">
<div class="accordion-item">
<h2 class="accordion-header my-0" id="title-{{.Get 0 | urlize}}">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#{{ .Get 0 | urlize}}" aria-expanded="false" aria-controls="{{ .Get 0 | urlize}}">
{{ .Get 0 | markdownify }}
</button>
</h2>
<div id="{{.Get 0 | urlize}}" class="accordion-collapse collapse" aria-labelledby="title-{{.Get 0 | urlize}}">
<div class="accordion-body">{{ .Inner | markdownify }}</div>
</div>
</div>
</div>

View file

@ -0,0 +1,9 @@
<!-- {{/*
Localize a date string like "2006-01-02" based on the current language; returns e.g. "January 2, 2006" if current language is English
Usage: {{< date_l10n INPUT [LAYOUT] >}}
*/}} -->
{{ $layout := ":date_long" -}}
{{ with .Get 1 }}{{ $layout = . }}{{ end -}}
{{ time.Format $layout (.Get 0) -}}
{{/* Dummy comment to strip trailing newline */ -}}

View file

@ -0,0 +1,116 @@
<!-- get value from params -->
{{ $imagePath:= .Get "src" }}
{{ $caption:= .Get "caption" }}
{{ $position:= .Get "position" }}
{{ $class:= .Get "class" }}
{{ $height:= replace (replace (.Get "height") "px" "") "x" "" }}
{{ $width:= replace (replace (.Get "width") "px" "") "x" "" }}
{{ $alt:= .Get "alt" }}
{{ $title:= .Get "title" }}
{{ $command:= .Get "command" | humanize }}
{{ $option:= .Get "option" }}
<!-- image position -->
{{ if eq $position `center` }}
{{ .Scratch.Set "position" "img-center" }}
{{ else if eq $position `left` }}
{{ .Scratch.Set "position" "img-left" }}
{{ else if eq $position `right` }}
{{ .Scratch.Set "position" "img-right" }}
{{ else if eq $position `float-left` }}
{{ .Scratch.Set "position" "img-float-left" }}
{{ else if eq $position `float-right` }}
{{ .Scratch.Set "position" "img-float-right" }}
{{ end }}
<!-- check cdn image -->
{{ if or (hasPrefix $imagePath "http") (fileExists (add `static/` $imagePath)) }}
<!-- cdn image figure -->
{{ if $caption }}
<figure class="{{.Scratch.Get `position`}}" role="group" aria-describedby="caption-{{ $caption | markdownify }}">
<img title="{{$title}}" loading="lazy" decoding="async" src="{{ $imagePath | absURL }}" alt="{{ $alt }}" class="{{$class}}" width="{{$width}}" height="{{$height}}">
<figcaption id="caption-{{ $caption | markdownify }}">{{$caption | markdownify}}</figcaption>
</figure>
{{ else }}
<!-- cdn image tag -->
<img title="{{$title}}" loading="lazy" decoding="async" src="{{ $imagePath | absURL }}" alt="{{ $alt }}" class="{{$class}} {{.Scratch.Get `position`}}" width="{{$width}}" height="{{$height}}">
{{ end }}
<!-- /cdn image -->
{{ else }}
<!-- content and assets image path variable -->
{{ $contentImage:= .Page.Resources.GetMatch (printf "*%s*" $imagePath) }}
{{ $assetImage:= fileExists (add `assets/` $imagePath) }}
<!-- check image existence -->
{{ if or $contentImage $assetImage }}
<!-- content or assets folder detection -->
{{ if $contentImage }}
{{ .Scratch.Set "image-exists" $contentImage }}
{{ else if $assetImage }}
{{ .Scratch.Set "image-exists" (resources.Get $imagePath) }}
{{ end }}
{{ $image:= .Scratch.Get "image-exists" }}
<!-- image extension -->
{{ $imageExt := path.Ext $image }}
<!-- image height, width (if not svg) -->
{{ if eq $imageExt `.svg` }}
{{ .Scratch.Set "image-height" "" }}
{{ .Scratch.Set "image-width" "" }}
{{ else }}
{{ .Scratch.Set "image-height" $image.Height }}
{{ .Scratch.Set "image-width" $image.Width }}
{{ end }}
{{ $imageHeight:= .Scratch.Get "image-height" }}
{{ $imageWidth:= .Scratch.Get "image-width" }}
<!-- checking gif/svg image -->
{{ if or (eq $imageExt `.gif`) (eq $imageExt `.svg`) }}
{{ .Scratch.Set `image` $image.RelPermalink }}
{{ else }}
<!-- image processing -->
{{ $options:= add (add (add (add (string ($width | default $imageWidth)) "x") (string ($height | default $imageHeight))) " webp ") (string $option) }}
<!-- image Fit -->
{{ if eq $command `Fit` }}
{{ .Scratch.Set `image` ($image.Fit $options).RelPermalink }}
{{ .Scratch.Set `fallback` ($image.Fit (replace $options `webp` ``)).RelPermalink }}
<!-- image Fill -->
{{ else if eq $command `Fill` }}
{{ .Scratch.Set `image` ($image.Fill $options).RelPermalink }}
{{ .Scratch.Set `fallback` ($image.Fill (replace $options `webp` ``)).RelPermalink }}
<!-- image Resize -->
{{ else }}
{{ .Scratch.Set `image` ($image.Resize $options).RelPermalink }}
{{ .Scratch.Set `fallback` ($image.Resize (replace $options `webp` ``)).RelPermalink }}
{{ end }}
{{ end }}
<!-- /checking gif/svg image -->
<!-- image figure -->
{{ if $caption }}
<figure class="{{.Scratch.Get `position`}}" role="group" aria-describedby="caption-{{ $caption | markdownify }}">
<img title="{{$title}}" loading="lazy" decoding="async" class="{{$class}}" width="{{$width | default $imageWidth }}" height="{{$height | default $imageHeight}}" src="{{.Scratch.Get `image`}}" alt="{{$alt}}" onerror="this.onerror='null';this.src='{{.Scratch.Get `fallback`}}'">
<figcaption id="caption-{{ $caption | markdownify }}">{{$caption | markdownify}}</figcaption>
</figure>
{{ else }}
<!-- image tag -->
<img title="{{$title}}" loading="lazy" decoding="async" class="{{$class}} {{.Scratch.Get `position`}}" width="{{$width | default $imageWidth }}" height="{{$height | default $imageHeight}}" src="{{.Scratch.Get `image`}}" alt="{{$alt}}" onerror="this.onerror='null';this.src='{{.Scratch.Get `fallback`}}'">
{{ end }}
{{ else }}
<!-- image not found -->
<strong class="text-danger mb-3 d-inline-block">{{site.BaseURL}}{{$imagePath}} does not exist</strong>
{{ end }}
<!-- /check image existance -->
{{ end }}
<!-- /check cdn image -->

View file

@ -0,0 +1,3 @@
<div class="tab-pane" title="{{ .Get 0 }}">
{{ .Inner | markdownify}}
</div>

View file

@ -0,0 +1,4 @@
<div class="code-tabs">
<ul class="nav nav-tabs"></ul>
<div class="tab-content">{{ .Inner }}</div>
</div>

View file

@ -0,0 +1,8 @@
[build]
publish = "public"
command = "yarn project-setup && yarn build"
[build.environment]
HUGO_VERSION = "0.115.1"
GO_VERSION = "1.20.5"
HUGO_BASEURL = "/"

Some files were not shown because too many files have changed in this diff Show more