Commit 28236aed authored by Davyd Dobryakov's avatar Davyd Dobryakov

Add stylelint for scss-linting, fix scss-files by scss-linting standards

parent 54ab80c6
Pipeline #6259 passed with stage
in 1 minute 20 seconds
{
"extends": "stylelint-config-sass-guidelines",
"rules": {
"selector-class-pattern": null,
"scss/selector-no-redundant-nesting-selector": null,
"scss/dollar-variable-pattern": null,
"property-no-vendor-prefix": null
},
"ignoreFiles": ["builds/**", "**/reset.scss"]
}
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
</ul> </ul>
</nav> </nav>
</header> </header>
<menu id="menu"> <menu id="menu" class="menu">
<a href="#about"><span>О компании</span></a> <a href="#about"><span>О компании</span></a>
<a href="#products"><span>Продукты</span></a> <a href="#products"><span>Продукты</span></a>
<a href="#services"><span>Услуги</span></a> <a href="#services"><span>Услуги</span></a>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
"scripts": { "scripts": {
"dev": "webpack-dev-server --open --host 91.232.225.11 --port 17001 --mode development", "dev": "webpack-dev-server --open --host 91.232.225.11 --port 17001 --mode development",
"lint": "npx eslint src/js/*.js", "lint": "npx eslint src/js/*.js",
"stylelint": "stylelint 'src/**/*.scss'",
"build": "webpack --mode production" "build": "webpack --mode production"
}, },
"browserslist": [ "browserslist": [
...@@ -31,8 +32,13 @@ ...@@ -31,8 +32,13 @@
"postcss-loader": "^3.0.0", "postcss-loader": "^3.0.0",
"sass-loader": "^8.0.2", "sass-loader": "^8.0.2",
"style-loader": "^1.1.3", "style-loader": "^1.1.3",
"stylelint": "^13.2.0",
"stylelint-webpack-plugin": "^1.2.3",
"webpack": "^4.41.5", "webpack": "^4.41.5",
"webpack-cli": "^3.3.10", "webpack-cli": "^3.3.10",
"webpack-dev-server": "^3.10.2" "webpack-dev-server": "^3.10.2"
},
"dependencies": {
"stylelint-config-sass-guidelines": "^7.0.0"
} }
} }
/* This stylesheet generated by Transfonter (https://transfonter.org) on October 5, 2017 10:21 PM */ /* This stylesheet generated by Transfonter (https://transfonter.org) on October 5, 2017 10:21 PM */
@font-face { @font-face {
font-family: 'FuturaDemiC'; font-family: 'FuturaDemiC';
src: url('./fonts/FuturaDemiC.eot'); font-style: normal;
src: local('Futura Demi Cyrillic'), local('FuturaDemiC'), font-weight: normal;
url('./fonts/FuturaDemiC.eot?#iefix') format('embedded-opentype'), src: url('./fonts/FuturaDemiC.eot');
url('./fonts/FuturaDemiC.woff') format('woff'), src: local('Futura Demi Cyrillic'), local('FuturaDemiC'),
url('./fonts/FuturaDemiC.ttf') format('truetype'); url('./fonts/FuturaDemiC.eot?#iefix') format('embedded-opentype'),
font-weight: normal; url('./fonts/FuturaDemiC.woff') format('woff'),
font-style: normal; url('./fonts/FuturaDemiC.ttf') format('truetype');
} }
@font-face { @font-face {
font-family: 'FuturaMediumC'; font-family: 'FuturaMediumC';
src: url('./fonts/FuturaMediumC.eot'); font-style: normal;
src: local('Futura Medium Cyrillic'), local('FuturaMediumC'), font-weight: 500;
url('./fonts/FuturaMediumC.eot?#iefix') format('embedded-opentype'), src: url('./fonts/FuturaMediumC.eot');
url('./fonts/FuturaMediumC.woff') format('woff'), src: local('Futura Medium Cyrillic'), local('FuturaMediumC'),
url('./fonts/FuturaMediumC.ttf') format('truetype'); url('./fonts/FuturaMediumC.eot?#iefix') format('embedded-opentype'),
font-weight: 500; url('./fonts/FuturaMediumC.woff') format('woff'),
font-style: normal; url('./fonts/FuturaMediumC.ttf') format('truetype');
} }
@font-face { @font-face {
font-family: 'FuturaLightC'; font-family: 'FuturaLightC';
src: url('./fonts/FuturaLightC-Italic.eot'); font-style: italic;
src: local('Futura Light Italic Cyrillic'), local('FuturaLightC-Italic'), font-weight: 300;
url('./fonts/FuturaLightC-Italic.eot?#iefix') format('embedded-opentype'), src: url('./fonts/FuturaLightC-Italic.eot');
url('./fonts/FuturaLightC-Italic.woff') format('woff'), src: local('Futura Light Italic Cyrillic'), local('FuturaLightC-Italic'),
url('./fonts/FuturaLightC-Italic.ttf') format('truetype'); url('./fonts/FuturaLightC-Italic.eot?#iefix') format('embedded-opentype'),
font-weight: 300; url('./fonts/FuturaLightC-Italic.woff') format('woff'),
font-style: italic; url('./fonts/FuturaLightC-Italic.ttf') format('truetype');
} }
@font-face { @font-face {
font-family: 'FuturaMediumC'; font-family: 'FuturaMediumC';
src: url('./fonts/FuturaMediumC-Italic.eot'); font-style: italic;
src: local('Futura Medium Italic Cyrillic'), local('FuturaMediumC-Italic'), font-weight: 500;
url('./fonts/FuturaMediumC-Italic.eot?#iefix') format('embedded-opentype'), src: url('./fonts/FuturaMediumC-Italic.eot');
url('./fonts/FuturaMediumC-Italic.woff') format('woff'), src: local('Futura Medium Italic Cyrillic'), local('FuturaMediumC-Italic'),
url('./fonts/FuturaMediumC-Italic.ttf') format('truetype'); url('./fonts/FuturaMediumC-Italic.eot?#iefix') format('embedded-opentype'),
font-weight: 500; url('./fonts/FuturaMediumC-Italic.woff') format('woff'),
font-style: italic; url('./fonts/FuturaMediumC-Italic.ttf') format('truetype');
} }
@font-face { @font-face {
font-family: 'FuturaLightC'; font-family: 'FuturaLightC';
src: url('./fonts/FuturaLightC.eot'); font-style: normal;
src: local('Futura Light Cyrillic'), local('FuturaLightC'), font-weight: 300;
url('./fonts/FuturaLightC.eot?#iefix') format('embedded-opentype'), src: url('./fonts/FuturaLightC.eot');
url('./fonts/FuturaLightC.woff') format('woff'), src: local('Futura Light Cyrillic'), local('FuturaLightC'),
url('./fonts/FuturaLightC.ttf') format('truetype'); url('./fonts/FuturaLightC.eot?#iefix') format('embedded-opentype'),
font-weight: 300; url('./fonts/FuturaLightC.woff') format('woff'),
font-style: normal; url('./fonts/FuturaLightC.ttf') format('truetype');
} }
@font-face { @font-face {
font-family: 'FuturaDemiC'; font-family: 'FuturaDemiC';
src: url('./fonts/FuturaDemiC-Italic.eot'); font-style: italic;
src: local('Futura Demi Italic Cyrillic'), local('FuturaDemiC-Italic'), font-weight: normal;
url('./fonts/FuturaDemiC-Italic.eot?#iefix') format('embedded-opentype'), src: url('./fonts/FuturaDemiC-Italic.eot');
url('./fonts/FuturaDemiC-Italic.woff') format('woff'), src: local('Futura Demi Italic Cyrillic'), local('FuturaDemiC-Italic'),
url('./fonts/FuturaDemiC-Italic.ttf') format('truetype'); url('./fonts/FuturaDemiC-Italic.eot?#iefix') format('embedded-opentype'),
font-weight: normal; url('./fonts/FuturaDemiC-Italic.woff') format('woff'),
font-style: italic; url('./fonts/FuturaDemiC-Italic.ttf') format('truetype');
} }
@font-face { @font-face {
font-family: 'FuturaBookC'; font-family: 'FuturaBookC';
src: url('./fonts/FuturaBookC-Italic.eot'); font-style: italic;
src: local('Futura Book Italic Cyrillic'), local('FuturaBookC-Italic'), font-weight: normal;
url('./fonts/FuturaBookC-Italic.eot?#iefix') format('embedded-opentype'), src: url('./fonts/FuturaBookC-Italic.eot');
url('./fonts/FuturaBookC-Italic.woff') format('woff'), src: local('Futura Book Italic Cyrillic'), local('FuturaBookC-Italic'),
url('./fonts/FuturaBookC-Italic.ttf') format('truetype'); url('./fonts/FuturaBookC-Italic.eot?#iefix') format('embedded-opentype'),
font-weight: normal; url('./fonts/FuturaBookC-Italic.woff') format('woff'),
font-style: italic; url('./fonts/FuturaBookC-Italic.ttf') format('truetype');
} }
@font-face { @font-face {
font-family: 'FuturaBookC'; font-family: 'FuturaBookC';
src: url('./fonts/FuturaBookC.eot'); font-style: normal;
src: local('Futura Book Cyrillic'), local('FuturaBookC'), font-weight: normal;
url('./fonts/FuturaBookC.eot?#iefix') format('embedded-opentype'), src: url('./fonts/FuturaBookC.eot');
url('./fonts/FuturaBookC.woff') format('woff'), src: local('Futura Book Cyrillic'), local('FuturaBookC'),
url('./fonts/FuturaBookC.ttf') format('truetype'); url('./fonts/FuturaBookC.eot?#iefix') format('embedded-opentype'),
font-weight: normal; url('./fonts/FuturaBookC.woff') format('woff'),
font-style: normal; url('./fonts/FuturaBookC.ttf') format('truetype');
} }
@import "utils/reset"; @import 'utils/reset';
@import "utils/mixins"; @import 'utils/mixins';
@import "utils/vars"; @import 'utils/vars';
@import "utils/common"; @import 'utils/common';
@import "utils/columns"; @import 'utils/columns';
@import "utils/buttons"; @import 'utils/buttons';
@import "utils/hello-banner"; @import 'utils/hello-banner';
@import "utils/slider"; @import 'utils/slider';
@import "utils/card"; @import 'utils/card';
.btn { .btn {
padding: 0.5rem 1rem; border-radius: 5px;
border-radius: 5px; padding: 0.5rem 1rem;
} }
.btn-default { .btn-default {
color: $default-color; background-color: $neutral-primary;
background-color: $neutral-primary; color: $default-color;
} }
.btn-default:hover { .btn-default:hover {
color: $neutral-primary; background-color: $default-color;
background-color: $default-color; border: 1px solid $neutral-primary;
border: 1px solid $neutral-primary; color: $neutral-primary;
} }
.btn-primary { .btn-primary {
color: $default-color; background-color: $primary-color;
background-color: $primary-color; color: $default-color;
} }
.btn-primary:hover { .btn-primary:hover {
color: $primary-color; background-color: $default-color;
background-color: $default-color; border: 1px solid $primary-color;
border: 1px solid $primary-color; color: $primary-color;
} }
.btn-success { .btn-success {
color: $default-color; background-color: $success-color;
background-color: $success-color; color: $default-color;
} }
.btn-success:hover { .btn-success:hover {
color: $success-color; background-color: $default-color;
background-color: $default-color; border: 1px solid $success-color;
border: 1px solid $success-color; color: $success-color;
} }
.btn-danger { .btn-danger {
color: $default-color; background-color: $danger-color;
background-color: $danger-color; color: $default-color;
} }
.btn-danger:hover { .btn-danger:hover {
color: $danger-color; background-color: $default-color;
background-color: $default-color; border: 1px solid $danger-color;
border: 1px solid $danger-color; color: $danger-color;
} }
.btn-warning { .btn-warning {
color: $default-color; background-color: $warning-color;
background-color: $warning-color; color: $default-color;
} }
.btn-warning:hover { .btn-warning:hover {
color: $warning-color; background-color: $default-color;
background-color: $default-color; border: 1px solid $warning-color;
border: 1px solid $warning-color; color: $warning-color;
} }
\ No newline at end of file
.card { .card {
display: flex; background: #fff;
flex-direction: column; border: 1px solid #d7d7d7;
justify-content: flex-end; border-radius: 5px;
padding: 0; box-sizing: border-box;
width: 300px; color: #fff;
height: 300px; display: flex;
text-align: center; flex-direction: column;
background: #fff; height: 300px;
color: #fff; justify-content: flex-end;
border: 1px solid #d7d7d7; margin: 0.1rem;
border-radius: 5px; padding: 0;
position: relative; position: relative;
box-sizing: border-box; text-align: center;
margin: 0.1rem; width: 300px;
} }
.card__image, .card__image,
.card__image img { .card__image img {
width: 300px; height: 300px;
height: 300px; width: 300px;
} }
.card__image, .card__image,
.card__image img { .card__image img {
z-index: 1; border-radius: 5px;
position: absolute; box-sizing: border-box;
top: 0; left: 0;
left: 0; position: absolute;
box-sizing: border-box; top: 0;
border-radius: 5px; z-index: 1;
} }
.card__overlay { .card__overlay {
background: #000; background: #000;
opacity: 0.7; border-radius: 5px;
width: 300px; box-sizing: border-box;
height: 300px; height: 300px;
position: absolute; left: 0;
top: 0; opacity: 0.7;
left: 0; position: absolute;
z-index: 2; top: 0;
box-sizing: border-box; width: 300px;
border-radius: 5px; z-index: 2;
} }
.card__body { .card__body {
padding: 0.5rem 1rem; display: flex;
display: flex; flex-direction: column;
flex-direction: column; padding: 0.5rem 1rem;
} }
.card__heading, .card__heading,
.card__text { .card__text {
z-index: 3; z-index: 3;
} }
.card__text { .card__text {
text-align: center; text-align: center;
} }
.card__heading--animated, .card__heading--animated,
.card__text--animated { .card__text--animated {
z-index: 3; z-index: 3;
} }
.card__text--animated { .card__text--animated {
font-size: rem(18); font-size: rem(18);
transform: translateY(10%); position: absolute;
position: absolute; transform: translateY(10%);
visibility: hidden; visibility: hidden;
} }
.card:hover .card__heading--animated { .card:hover .card__heading--animated {
transition: 0.3s ease; transition: 0.3s ease;
} }
.card:hover .card__text--animated { .card:hover .card__text--animated {
transition: 0.3s ease; margin-top: 0.75rem;
transform: translateY(-10%); position: static;
position: static; transform: translateY(-10%);
margin-top: 0.75rem; transition: 0.3s ease;
visibility: visible; visibility: visible;
} }
.card-deck { .card-deck {
display: grid; display: grid;
grid-template-columns: repeat(3, auto); grid-template-columns: repeat(3, auto);
margin: auto; margin: auto;
padding: 1rem 0.5rem; padding: 1rem 0.5rem;
} }
@media screen and (max-width: 1281px) { @media screen and (max-width: 1281px) {
.card-deck { .card-deck {
grid-template-columns: repeat(2, auto); grid-template-columns: repeat(2, auto);
} }
.card-deck .card, .card-deck .card,
.card-deck .card__overlay, .card-deck .card__overlay,
.card-deck .card__image, .card-deck .card__image,
.card-deck .card__image img { .card-deck .card__image img {
width: 350px; height: 350px;
height: 350px; width: 350px;
} }
} }
@media screen and (max-width: $smDesktopWidth) { @media screen and (max-width: $smDesktopWidth) {
.flex-column { .flex-column {
margin: 0; margin: 0;
} }
} }
@media screen and (max-width: $smTableWidth) { @media screen and (max-width: $smTableWidth) {
.card-deck .card, .card-deck .card,
.card-deck .card__overlay, .card-deck .card__overlay,
.card-deck .card__image, .card-deck .card__image,
.card-deck .card__image img { .card-deck .card__image img {
width: 280px; height: 280px;
height: 280px; width: 280px;
} }
} }
@media screen and (max-width: $phoneWidth) { @media screen and (max-width: $phoneWidth) {
.card-deck { .card-deck {
grid-template-columns: repeat(1, auto); grid-template-columns: repeat(1, auto);
margin: auto; margin: auto;
} }
} }
section { section {
margin: 0 20%; background: $default-color;
display: grid; border-bottom: 1px solid;
grid-template-columns: repeat(2, 1fr); border-color: $border-base;
background: $default-color; box-sizing: border-box;
border-bottom: 1px solid; display: grid;
border-right: 1px solid; grid-template-columns: repeat(2, 1fr);
border-left: 1px solid; margin: 0 20%;
border-color: $border-base;
box-sizing: border-box;
} }
section .left-column { section .left-column {
width: 100%; height: 100%;
height: 100%; padding: 1rem 0.5rem;
padding: 1rem 0.5rem; width: 100%;
} }
section .right-column { section .right-column {
width: 100%; height: 100%;
height: 100%; width: 100%;
} }
.flex-column { .flex-column {
display: flex; display: flex;
flex-flow: column wrap; flex-flow: column wrap;
margin: 0 20%; margin: 0 20%;
padding: 1rem 0; padding: 1rem 0;
} }
.flex-column h2 { .flex-column h2 {
padding: 0 0.5rem; padding: 0 0.5rem;
} }
.right-column .banner { .right-column .banner {
display: flex; align-items: center;
align-items: center; display: flex;
justify-content: center; height: 100%;
width: 100%; justify-content: center;
height: 100%; width: 100%;
} }
.description { .description {
padding: 0.5rem 0; padding: 0.5rem 0;
text-align: justify; text-align: justify;
} }
@media (min-width: $smDesktopWidth) and (max-width: $desktopWidth) { @media (min-width: $smDesktopWidth) and (max-width: $desktopWidth) {
section, section,
section.flex-column { .flex-column {
margin: 0 10%; margin: 0 10%;
} }
nav { nav {
padding: 0.5rem 10%; padding: 0.5rem 10%;
} }
.hello-banner__text { .hello-banner__text {
padding: 3rem 10%; padding: 3rem 10%;
} }
} }
@media screen and (max-width: $smDesktopWidth) { @media screen and (max-width: $smDesktopWidth) {
section { section {
display: flex; display: flex;
flex-flow: column wrap; flex-flow: column wrap;
margin: 0; margin: 0;
} }
section .left-column {
order: 1; section .left-column {
} order: 1;
.right-column, }
.banner {
max-height: min-content; .right-column,
} .banner {
nav { max-height: min-content;
padding: 0.5rem; }
}
nav {
section.flex-column { padding: 0.5rem;
margin: 0; }
}
.flex-column {
section.card-deck { margin: 0;
margin: 0; }
}
.card-deck {
margin: 0 auto;
}
} }
@media screen and (max-width: $smTableWidth) { @media screen and (max-width: $smTableWidth) {
section.card-deck { .card-deck {
margin: 0; margin: 0 auto;
} }
section.card-deck .card-group { .card-deck .card-group {
flex-flow: column wrap; flex-flow: column wrap;
} }
} }
@import "./fonts/fonts"; @import './fonts/fonts';
html { html {
line-height: $mainLineHeight; color: $mainFontColor;
font-size: $mainFontSize; font-size: $mainFontSize;
color: $mainFontColor; height: 100%;
height: 100%; line-height: $mainLineHeight;
scroll-behavior: smooth; scroll-behavior: smooth;
@media screen and (max-width: $desktopWidth) { @media screen and (max-width: $desktopWidth) {
font-size: 16px; font-size: 16px;
} }
@media screen and (max-width: $tableWidth) { @media screen and (max-width: $tableWidth) {
font-size: 15px; font-size: 15px;
} }
@media screen and (max-width: $phoneWidth) { @media screen and (max-width: $phoneWidth) {
font-size: 14px; font-size: 14px;
} }
} }
body { body {
margin: 0; background: $default-color;
padding: 0; background: rgba(84.7, 91, 100, 0.1);
font-family: 'FuturaMediumC'; font-family: 'FuturaMediumC';
font-size: $mainFontSize; font-size: $mainFontSize;
font-weight: $mainFontWeight; font-weight: $mainFontWeight;
-webkit-font-smoothing: antialiased; margin: 0;
-moz-osx-font-smoothing: grayscale; padding: 0;
background: $default-color;
background: rgba(84.7, 91, 100, 0.1);
// background: #f7f7f7;
} }
*, *,
*:before, *::before,
*:after { *::after {
box-sizing: border-box; box-sizing: border-box;
} }
h1, h1,
...@@ -44,231 +41,232 @@ h3, ...@@ -44,231 +41,232 @@ h3,
h4, h4,
h5, h5,
h6 { h6 {
margin: 0; margin: 0;
} }
a { a {
text-decoration: none; text-decoration: none;
} }
ul, ul,
li { li {
margin: 0; list-style-type: none;
padding: 0; margin: 0;
list-style-type: none; padding: 0;
} }
.wrapper { .wrapper {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
margin: 0 auto; margin: 0 auto;
min-height: 100vh; min-height: 100vh;
min-width: 100vh; min-width: 100vh;
} }
.content-wrapper { .content-wrapper {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
min-height: 100vh; min-height: 100vh;
} }
.container { .container {
width: 100%; flex: 0 0 auto;
flex: 0 0 auto; margin: 0 auto;
position: relative; max-width: $desktopWidth;
margin: 0 auto; position: relative;
max-width: $desktopWidth; width: 100%;
@media screen and (max-width: $smDesktopWidth) { @media screen and (max-width: $smDesktopWidth) {
max-width: $tableWidth; max-width: $tableWidth;
} }
@media screen and (max-width: $tableWidth) { @media screen and (max-width: $tableWidth) {
max-width: $phoneWidth; max-width: $phoneWidth;
} }
@media screen and (max-width: $phoneWidth) { @media screen and (max-width: $phoneWidth) {
max-width: $smPhoneWidth; max-width: $smPhoneWidth;
} }
} }
h1 { h1 {
font-size: rem(24); font-size: rem(24);
font-weight: 600; font-weight: 600;
} }
h2 { h2 {
font-size: rem(22); font-size: rem(22);
font-weight: 600; font-weight: 600;
} }
header { header {
z-index: 4; background: $default-color;
position: sticky; display: block;
display: block; position: sticky;
background: $default-color; transition: top 1s ease-out 0.5s;
transition: top 1s ease-out 0.5s; z-index: 4;
} }
.top-0 { .top-0 {
top: 0; top: 0;
} }
nav { nav {
display: flex; box-shadow: 3px 0 3px rgba(0, 0, 0, 0.3);
flex-direction: row; display: flex;
flex-wrap: nowrap; flex-direction: row;
padding: 0.5rem 1rem; flex-wrap: nowrap;
box-shadow: 3px 0 3px rgba(0, 0, 0, 0.3); padding: 0.5rem 20%;
padding: 0.5rem 20%;
} }
nav a { nav a {
padding: 0 0.5rem; padding: 0 0.5rem;
} }
ul.menu-right { .menu-right {
margin-top: auto; display: flex;
margin-bottom: auto; flex-flow: row wrap;
display: flex; margin-bottom: auto;
margin-left: auto; margin-left: auto;
order: 2; margin-top: auto;
flex-flow: row wrap; order: 2;
} }
ul.menu-right > * { .menu-right > * {
margin: auto 0; margin: auto 0;
margin-left: 0.25rem; margin-left: 0.25rem;
} }
footer { footer {
background: $default-color; background: $default-color;
padding: 1rem 0.5rem; border: 1px solid $border-base;
text-align: center; padding: 1rem 0.5rem;
border: 1px solid $border-base; text-align: center;
} }
.logo img { .logo img {
@include size(60px); @include size(60px);
} }
a { a {
font-size: rem(18); color: $neutral-primary;
color: $neutral-primary; font-size: rem(18);
} }
a:hover { a:hover {
color: $light-color; color: $light-color;
} }
.menu-button { .menu-button {
display: inline-block; background-color: #fafafa;
padding: 0.5em; border: 1px solid #ccc;
background-color: #fafafa; cursor: pointer;
border: 1px solid #ccc; display: inline-block;
cursor: pointer; padding: 0.5em;
} }
.burger-icon { .burger-icon {
@include burger(25px, 3px, 5px, #444); @include burger(25px, 3px, 5px, #444);
} }
.menu-button.is-active .burger-icon { .menu-button.is-active .burger-icon {
@include burger-to-cross; @include burger-to-cross;
} }
.visually-hidden { .visually-hidden {
display: none; display: none;
visibility: hidden; visibility: hidden;
} }
.visually-visible { .visually-visible {
visibility: visible !important; display: inherit !important;
display: inherit !important; visibility: visible !important;
} }
@media screen and (min-width: $smDesktopWidth) { @media screen and (min-width: $smDesktopWidth) {
.menu-button { .menu-button {
display: none; display: none;
visibility: hidden; visibility: hidden;
} }
menu#menu { .menu {
display: none; display: none;
visibility: hidden; visibility: hidden;
} }
} }
@media screen and (max-width: $smDesktopWidth) { @media screen and (max-width: $smDesktopWidth) {
.menu-right > li { .menu-right > li {
display: none; display: none;
visibility: hidden; visibility: hidden;
} }
menu#menu { .menu {
border-top: 1px solid $border-base; background: $default-color;
border-bottom: 1px solid $border-base; border-bottom: 1px solid $border-base;
display: none; border-top: 1px solid $border-base;
visibility: hidden; display: none;
flex-flow: column wrap; flex-flow: column wrap;
width: 100%; position: sticky;
text-align: center; text-align: center;
z-index: 4; top: 76px;
position: sticky; visibility: hidden;
background: $default-color; width: 100%;
top: 76px; z-index: 4;
} }
menu#menu > a { .menu > a {
display: flex; border: inherit;
width: 100%; display: flex;
border: inherit; height: 40px;
height: 40px; width: 100%;
} }
menu#menu > a > span { .menu > a > span {
width: inherit; line-height: rem(40);
text-align: center; text-align: center;
line-height: rem(40); width: inherit;
} }
} }
ol.default-list { .default-list {
display: block; display: block;
list-style-type: decimal; list-style-type: decimal;
margin-top: 1em; margin-bottom: 1em;
margin-bottom: 1 em; margin-left: 0;
margin-left: 0; margin-right: 0;
margin-right: 0; margin-top: 1em;
padding-left: 40px; padding-left: 40px;
} }
ol.default-list > li { .default-list > li {
display: list-item; display: list-item;
list-style-type: inherit !important; list-style-type: inherit !important;
} }
select { select {
padding: 0.25rem; background: $default-color;
border: 1px solid $border-base; border: 1px solid $border-base;
border-radius: 5px; border-radius: 5px;
background: $default-color; padding: 0.25rem;
} }
.pt-2 { .pt-2 {
padding-top: 2rem !important; padding-top: 2rem !important;
} }
.mt-2 { .mt-2 {
margin-top: 0.5rem !important; margin-top: 0.5rem !important;
} }
.mb-3 { .mb-3 {
margin-bottom: 1.5rem !important; margin-bottom: 1.5rem !important;
} }
.map-iframe { .map-iframe {
width: 100%; height: 300px;
height: 300px; margin: 0 auto;
margin: 0 auto; width: 100%;
} }
.hello-banner { .hello-banner {
width: 100%; margin: 0 auto;
min-height: 500px; max-height: 500px;
max-height: 500px; min-height: 500px;
position: relative; position: relative;
margin: 0 auto; width: 100%;
} }
.hello-banner__text { .hello-banner__text {
color: #fff; color: #fff;
padding: 3rem 2rem; height: 100%;
position: relative; padding: 3rem 20%;
width: 100%; position: relative;
padding: 3rem 20%; width: 100%;
z-index: 3; z-index: 3;
height: 100%;
} }
.hello-banner__text h1 { .hello-banner__text h1 {
font-size: rem(48); font-size: rem(48);
font-weight: bold; font-weight: bold;
} }
.hello-banner__text p { .hello-banner__text p {
font-size: rem(24); font-size: rem(24);
} }
.hello-banner__gradient { .hello-banner__gradient {
background: #000; background: #000;
opacity: 0.8; height: 100%;
width: 100%; opacity: 0.8;
height: 100%; position: absolute;
position: absolute; width: 100%;
z-index: 2; z-index: 2;
} }
.hello-banner__img { .hello-banner__img {
filter: blur(2px); background-image: url('../images/banner.jpg');
width: 100%; background-size: cover;
height: 100%; filter: blur(2px);
position: absolute; height: 100%;
z-index: 1; position: absolute;
background-image: url("../images/banner.jpg"); width: 100%;
background-size: cover; z-index: 1;
} }
@media (min-width: $desktopWidth) and (max-width: $lgDesktopWidth) { @media (min-width: $desktopWidth) and (max-width: $lgDesktopWidth) {
.hello-banner__text { .hello-banner__text {
padding: 3rem 5%; padding: 3rem 5%;
} }
} }
@media screen and (max-width: $smDesktopWidth) { @media screen and (max-width: $smDesktopWidth) {
.hello-banner__text { .hello-banner__text {
padding: 3rem 1rem; padding: 3rem 1rem;
} }
} }
@media screen and (min-width: $lgDesktopWidth) { @media screen and (min-width: $lgDesktopWidth) {
.hello-banner__text h1 { .hello-banner__text h1 {
font-size: rem(47); font-size: rem(47);
} }
.hello-banner__text p { .hello-banner__text p {
font-size: rem(22); font-size: rem(22);
} }
} }
@media (min-width: $tableWidth) and (max-width: $smDesktopWidth) { @media (min-width: $tableWidth) and (max-width: $smDesktopWidth) {
.hello-banner__text h1 { .hello-banner__text h1 {
font-size: rem(42); font-size: rem(42);
} }
.hello-banner__text p { .hello-banner__text p {
font-size: rem(21); font-size: rem(21);
} }
} }
@media (min-width: $phoneWidth) and (max-width: $smTableWidth) { @media (min-width: $phoneWidth) and (max-width: $smTableWidth) {
.hello-banner__text h1 { .hello-banner__text h1 {
font-size: rem(40); font-size: rem(40);
} }
.hello-banner__text p { .hello-banner__text p {
font-size: rem(20); font-size: rem(20);
} }
} }
@media (min-width: $smPhoneWidth) and (max-width: $phoneWidth) { @media (min-width: $smPhoneWidth) and (max-width: $phoneWidth) {
.hello-banner__text h1 { .hello-banner__text h1 {
font-size: rem(32); font-size: rem(32);
} }
.hello-banner__text p { .hello-banner__text p {
font-size: rem(18); font-size: rem(18);
} }
} }
@media screen and (max-width: $smPhoneWidth) { @media screen and (max-width: $smPhoneWidth) {
.hello-banner__text h1 { .hello-banner__text h1 {
font-size: rem(26); font-size: rem(26);
} }
.hello-banner__text p { .hello-banner__text p {
font-size: rem(14); font-size: rem(14);
} }
} }
@function rem($pixels, $context: $mainFontSize) { @function rem($pixels, $context: $mainFontSize) {
@if (unitless($pixels)) { @if (unitless($pixels)) {
$pixels: $pixels * 1px; $pixels: $pixels * 1px;
} }
@if (unitless($context)) {
$context: $context * 1px;
}
@return $pixels / $context * 1rem;
}
@mixin size($width, $height: $width) { @if (unitless($context)) {
width: $width; $context: $context * 1px;
height: $height; }
@return $pixels / $context * 1rem;
} }
@mixin placeholder { @mixin size($width, $height: $width) {
::-webkit-input-placeholder {@content} height: $height;
:-moz-placeholder {@content} width: $width;
::-moz-placeholder {@content}
:-ms-input-placeholder {@content}
} }
// Burger parts // Burger parts
// //
// (---) top -> &:before // (---) top -> &:before
// [---] middle -> & // [---] middle -> &
// (---) bottom -> &:after // (---) bottom -> &:after
...@@ -33,107 +26,118 @@ ...@@ -33,107 +26,118 @@
$sass-burger-add-vendor-prefixes: true !default; $sass-burger-add-vendor-prefixes: true !default;
// Burger // Burger
@mixin burger($width: 30px, $height: 5px, $gutter: 3px, $color: #000, $border-radius: 0, $transition-duration: .3s) { @mixin burger($width: 30px, $height: 5px, $gutter: 3px, $color: #000, $border-radius: 0, $transition-duration: 0.3s) {
$burger-height: $height !global; $burger-height: $height !global;
$burger-gutter: $gutter !global; $burger-gutter: $gutter !global;
position: relative; margin-bottom: $height + $gutter;
margin-top: $height + $gutter; margin-top: $height + $gutter;
margin-bottom: $height + $gutter; position: relative;
@if $sass-burger-add-vendor-prefixes {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
}
user-select: none;
&,
&::before,
&::after {
background-color: $color;
display: block;
height: $height;
transition-duration: $transition-duration;
transition-property: background-color, transform;
width: $width;
@if $border-radius != 0 {
border-radius: $border-radius;
}
@if $sass-burger-add-vendor-prefixes { @if $sass-burger-add-vendor-prefixes {
-webkit-user-select: none; -webkit-transition-property: background-color, -webkit-transform;
-moz-user-select: none; -moz-transition-property: background-color, -moz-transform;
-ms-user-select: none; -o-transition-property: background-color, -o-transform;
}
user-select: none;
&, &:before, &:after {
display: block;
width: $width;
height: $height;
background-color: $color;
@if $border-radius != 0 {
border-radius: $border-radius;
}
@if $sass-burger-add-vendor-prefixes {
-webkit-transition-property: background-color, -webkit-transform;
-moz-transition-property: background-color, -moz-transform;
-o-transition-property: background-color, -o-transform;
}
transition-property: background-color, transform;
@if $sass-burger-add-vendor-prefixes {
-webkit-transition-duration: $transition-duration;
-moz-transition-duration: $transition-duration;
-o-transition-duration: $transition-duration;
}
transition-duration: $transition-duration;
} }
&:before, &:after { @if $sass-burger-add-vendor-prefixes {
position: absolute; -webkit-transition-duration: $transition-duration;
content: ""; -moz-transition-duration: $transition-duration;
-o-transition-duration: $transition-duration;
} }
}
&:before { &::before,
top: -($height + $gutter); &::after {
} content: '';
position: absolute;
}
&:after { &::before {
top: $height + $gutter; top: -($height + $gutter);
} }
&::after {
top: $height + $gutter;
}
} }
// Select parts of the burger // Select parts of the burger
@mixin burger-parts { @mixin burger-parts {
&, &:before, &:after { &,
@content; &::before,
} &::after {
@content;
}
} }
@mixin burger-top { @mixin burger-top {
&:before { &::before {
@content; @content;
} }
} }
@mixin burger-middle { @mixin burger-middle {
& { & {
@content; @content;
} }
} }
@mixin burger-bottom { @mixin burger-bottom {
&:after { &::after {
@content; @content;
} }
} }
// Burger animations // Burger animations
@mixin burger-to-cross { @mixin burger-to-cross {
& { & {
background-color: transparent; background-color: transparent;
} }
&:before {
@if $sass-burger-add-vendor-prefixes { &::before {
-webkit-transform: translateY($burger-gutter + $burger-height) rotate(45deg); transform: translateY($burger-gutter + $burger-height) rotate(45deg);
-moz-transform: translateY($burger-gutter + $burger-height) rotate(45deg);
-ms-transform: translateY($burger-gutter + $burger-height) rotate(45deg); @if $sass-burger-add-vendor-prefixes {
-o-transform: translateY($burger-gutter + $burger-height) rotate(45deg); -webkit-transform: translateY($burger-gutter + $burger-height) rotate(45deg);
} -moz-transform: translateY($burger-gutter + $burger-height) rotate(45deg);
transform: translateY($burger-gutter + $burger-height) rotate(45deg); -ms-transform: translateY($burger-gutter + $burger-height) rotate(45deg);
-o-transform: translateY($burger-gutter + $burger-height) rotate(45deg);
} }
&:after { }
@if $sass-burger-add-vendor-prefixes {
-webkit-transform: translateY(-($burger-gutter + $burger-height)) rotate(-45deg); &::after {
-moz-transform: translateY(-($burger-gutter + $burger-height)) rotate(-45deg); transform: translateY(-($burger-gutter + $burger-height)) rotate(-45deg);
-ms-transform: translateY(-($burger-gutter + $burger-height)) rotate(-45deg);
-o-transform: translateY(-($burger-gutter + $burger-height)) rotate(-45deg); @if $sass-burger-add-vendor-prefixes {
} -webkit-transform: translateY(-($burger-gutter + $burger-height)) rotate(-45deg);
transform: translateY(-($burger-gutter + $burger-height)) rotate(-45deg); -moz-transform: translateY(-($burger-gutter + $burger-height)) rotate(-45deg);
-ms-transform: translateY(-($burger-gutter + $burger-height)) rotate(-45deg);
-o-transform: translateY(-($burger-gutter + $burger-height)) rotate(-45deg);
} }
} }
\ No newline at end of file }
.slider { .slider {
position: relative; overflow: hidden;
overflow: hidden; position: relative;
} }
.slider__wrapper { .slider__wrapper {
display: flex; display: flex;
transition: transform 0.6s ease; transition: transform 0.6s ease;
} }
.slider__item { .slider__item {
flex: 0 0 25%; flex: 0 0 25%;
max-width: 25%; max-width: 25%;
} }
.slider__control { .slider__control {
position: absolute; align-items: center;
top: 50%; background: rgba(0, 0, 0, 0.5);
display: flex; color: #fff;
align-items: center; display: flex;
justify-content: center; height: 50px;
width: 40px; justify-content: center;
color: #fff; opacity: 0.5;
text-align: center; position: absolute;
opacity: 0.5; text-align: center;
height: 50px; top: 50%;
transform: translateY(-50%); transform: translateY(-50%);
background: rgba(0, 0, 0, 0.5); width: 40px;
z-index: 10; z-index: 10;
} }
.slider__control:hover, .slider__control:hover,
.slider__control:focus { .slider__control:focus {
color: #fff; color: #fff;
text-decoration: none; opacity: 0.9;
outline: 0; outline: 0;
opacity: 0.9; text-decoration: none;
} }
.slider__control_left { .slider__control_left {
left: 0; left: 0;
} }
.slider__control_right { .slider__control_right {
right: 0; right: 0;
} }
.slider__control::before { .slider__control::before {
content: ""; background: transparent no-repeat center center;
display: inline-block; background-size: 100% 100%;
width: 20px; content: '';
height: 20px; display: inline-block;
background: transparent no-repeat center center; height: 20px;
background-size: 100% 100%; width: 20px;
} }
.slider__control_left::before { .slider__control_left::before {
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E"); background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E");
} }
.slider__control_right::before { .slider__control_right::before {
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E"); background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E");
} }
.slider__item .card { .slider__item .card {
display: flex; background: #fff;
flex-direction: column; border: 1px solid #d7d7d7;
justify-content: flex-end; border-radius: 5px;
padding: 0; box-sizing: border-box;
width: 100%; color: #fff;
height: 300px; display: flex;
text-align: center; flex-direction: column;
background: #fff; height: 300px;
color: #fff; justify-content: flex-end;
border: 1px solid #d7d7d7; padding: 0;
border-radius: 5px; position: relative;
position: relative; text-align: center;
box-sizing: border-box; width: 100%;
} }
.slider__item .card .card__body .card__image img,
.slider__item .card .card__body .card__image { .slider__item .card__image img,
z-index: 1; .slider__item .card__image {
position: absolute; border-radius: 5px;
top: 0; height: 100%;
left: 0; left: 0;
width: 100%; position: absolute;
height: 100%; top: 0;
border-radius: 5px; width: 100%;
} z-index: 1;
}
.slider__item .card .card__body .card__overlay {
background: #000; .slider__item .card__overlay {
opacity: 0.5; background: #000;
width: 100%; border-radius: 5px;
height: 100%; height: 100%;
position: absolute; left: 0;
top: 0; opacity: 0.5;
left: 0; position: absolute;
z-index: 2; top: 0;
border-radius: 5px; width: 100%;
} z-index: 2;
}
.slider__item .card .card__body {
padding: 0.5rem 1rem; .slider__item .card__body {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} padding: 0.5rem 1rem;
}
.slider__item .card .card__body .card__heading,
.slider__item .card .card__body .card__text { .slider__item .card__heading,
z-index: 3; .slider__item .card__text {
z-index: 3;
} }
a:focus, a:focus,
.slider:focus, .slider:focus,
.slider__control:focus { .slider__control:focus {
outline: 3px solid #529dec; outline: 3px solid #529dec;
} }
@media (min-width: $tableWidth) and (max-width: $smDesktopWidth) { @media (min-width: $tableWidth) and (max-width: $smDesktopWidth) {
.slider { .slider {
width: 100%; max-width: $smDesktopWidth;
max-width: $smDesktopWidth; width: 100%;
} }
.slider__item { .slider__item {
width: calc(100% / 3); flex: 0 0 calc(100% / 3);
max-width: calc(#{$smDesktopWidth} / 3); max-width: calc(#{$smDesktopWidth} / 3);
flex: 0 0 calc(100% / 3); width: calc(100% / 3);
} }
} }
@media (min-width: $phoneWidth) and (max-width: $tableWidth) { @media (min-width: $phoneWidth) and (max-width: $tableWidth) {
.slider { .slider {
width: 100%; max-width: $tableWidth;
max-width: $tableWidth; width: 100%;
} }
.slider__item { .slider__item {
width: calc(100% / 2); flex: 0 0 calc(100% / 2);
max-width: calc(#{$tableWidth}/ 2); max-width: calc(#{$tableWidth}/ 2);
flex: 0 0 calc(100% / 2); width: calc(100% / 2);
} }
} }
@media screen and (max-width: $phoneWidth) { @media screen and (max-width: $phoneWidth) {
.slider { .slider {
width: 100%; max-width: $phoneWidth;
max-width: $phoneWidth; width: 100%;
} }
.slider__item { .slider__item {
width: 100%; flex: 0 0 100%;
max-width: $phoneWidth; max-width: $phoneWidth;
flex: 0 0 100%; width: 100%;
} }
} }
// Font // Font
$mainFont : 'Montserrat', Helvetica, Arial, sans-serif; $mainFont: 'Montserrat', Helvetica, Arial, sans-serif;
// Size // Size
$mainFontColor : #101010; $mainFontColor: #101010;
$mainFontSize : 18px; $mainFontSize: 18px;
$mainFontWeight : 400; $mainFontWeight: 400;
$mainLineHeight : 1.4; $mainLineHeight: 1.4;
$lgDesktopWidth : 1537px; $lgDesktopWidth: 1537px;
$desktopWidth : 1281px; $desktopWidth: 1281px;
$smDesktopWidth : 1025px; $smDesktopWidth: 1025px;
$tableWidth : 769px; $tableWidth: 769px;
$smTableWidth : 641px; $smTableWidth: 641px;
$phoneWidth : 481px; $phoneWidth: 481px;
$smPhoneWidth : 321px; $smPhoneWidth: 321px;
$desktopWidthNumber : 1280; $desktopWidthNumber: 1280;
$smDesktopWidthNumber : 1024; $smDesktopWidthNumber: 1024;
$tableWidthNumber : 768; $tableWidthNumber: 768;
$smTableWidthNumber : 640; $smTableWidthNumber: 640;
$phoneWidthNumber : 480; $phoneWidthNumber: 480;
$smPhoneWidthNumber : 320; $smPhoneWidthNumber: 320;
// Main color // Main color
$default-color : #ffffff; $default-color: #fff;
$primary-color : #444ce0; $primary-color: #444ce0;
$success-color : #26de81; $success-color: #26de81;
$danger-color : #fc5c65; $danger-color: #fc5c65;
$warning-color : #fed330; $warning-color: #fed330;
$light-color : #999999; $light-color: #999;
$purple-color : #8854d0; $purple-color: #8854d0;
// Neutral Color // Neutral Color
$neutral-primary : #303133; $neutral-primary: #303133;
$neutral-regular : #606266; $neutral-regular: #606266;
$neutral-secondary : #909399; $neutral-secondary: #909399;
$neutral-placeholder : #C0C4CC; $neutral-placeholder: #c0c4cc;
// Border Color // Border Color
$border-base : #DCDFE6; $border-base: #dcdfe6;
$border-light : #E4E7ED; $border-light: #e4e7ed;
$border-lighter : #EBEEF5; $border-lighter: #ebeef5;
$border-lightex : #F2F6FC; $border-lightex: #f2f6fc;
const path = require('path') const path = require('path')
const MiniCssExtractPlugin = require('mini-css-extract-plugin') const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const StylelintPlugin = require('stylelint-webpack-plugin')
module.exports = { module.exports = {
entry: { entry: {
...@@ -101,6 +102,7 @@ module.exports = { ...@@ -101,6 +102,7 @@ module.exports = {
plugins: [ plugins: [
new MiniCssExtractPlugin({ new MiniCssExtractPlugin({
filename: '[name].css' filename: '[name].css'
}) }),
new StylelintPlugin()
] ]
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment