34 changed files with 977 additions and 0 deletions
@ -0,0 +1,17 @@ |
|||
{ |
|||
"presets": [ |
|||
["@babel/preset-env", { |
|||
"targets": { |
|||
"browsers": [ |
|||
"last 2 versions", |
|||
"ie >= 10" |
|||
] |
|||
}, |
|||
"useBuiltIns": "entry" |
|||
}] |
|||
], |
|||
"plugins": [ |
|||
["transform-class-properties", { "spec": true }], |
|||
"transform-object-assign" |
|||
] |
|||
} |
@ -0,0 +1,34 @@ |
|||
{ |
|||
"extends": [ |
|||
"google", |
|||
"prettier" |
|||
], |
|||
"plugins": [ |
|||
"prettier" |
|||
], |
|||
"parser": "babel-eslint", |
|||
"parserOptions": { |
|||
"sourceType": "module" |
|||
}, |
|||
"env": { |
|||
"es6": true, |
|||
"node": true |
|||
}, |
|||
"rules": { |
|||
"comma-dangle": [2,"never"], |
|||
"no-invalid-this": 0, |
|||
"require-jsdoc": 0, |
|||
"max-len": ["error", { "code": 120 }], |
|||
|
|||
"object-curly-spacing": ["error", "never"], |
|||
"array-bracket-spacing": ["error", "never"], |
|||
"computed-property-spacing": ["error", "never"], |
|||
|
|||
"semi": ["error", "always"], |
|||
"arrow-parens": ["error", "always"], |
|||
|
|||
"no-mixed-spaces-and-tabs": "error", |
|||
"indent": ["error", 2], |
|||
"no-trailing-spaces": "error" |
|||
} |
|||
} |
@ -0,0 +1,10 @@ |
|||
# Cache, temp and personal files |
|||
|
|||
/.htaccess |
|||
*.log |
|||
.sass-cache/ |
|||
|
|||
node_modules/ |
|||
public/ |
|||
package-lock.json |
|||
|
@ -0,0 +1,3 @@ |
|||
<div class="component-footer"> |
|||
footer |
|||
</div> |
@ -0,0 +1,5 @@ |
|||
|
|||
$(document).ready( () => { |
|||
console.log('Load component - footer') |
|||
|
|||
}) |
@ -0,0 +1,9 @@ |
|||
@import "../../src/scss/variables.scss"; |
|||
@import "../../src/scss/mixins.scss"; |
|||
|
|||
.component-footer { |
|||
height: $footer-height; |
|||
width: 100%; |
|||
background: $gray; |
|||
color: $white; |
|||
} |
@ -0,0 +1,3 @@ |
|||
<header class="component-header"> |
|||
|
|||
</header> |
@ -0,0 +1,5 @@ |
|||
|
|||
$(document).ready( () => { |
|||
console.log('Load component - header') |
|||
|
|||
}) |
@ -0,0 +1,9 @@ |
|||
@import "../../src/scss/variables.scss"; |
|||
@import "../../src/scss/mixins.scss"; |
|||
|
|||
.component-header { |
|||
height: $header-height; |
|||
width: 100%; |
|||
background: $olive; |
|||
color: $white; |
|||
} |
@ -0,0 +1,18 @@ |
|||
|
|||
COMPDIR="components/$2" |
|||
|
|||
if [ ${1} = "add" ] |
|||
then |
|||
mkdir $COMPDIR |
|||
printf "<div class=\"component-$2\">\n <div class=\"row no-gutters\">\n </div>\n</div>" > "$COMPDIR/$2.html" |
|||
printf "@import \"../../src/scss/variables.scss\";\n@import \"../../src/scss/mixins.scss\";\n \n.component-$2 {\n\n}" > "$COMPDIR/$2.scss" |
|||
printf "\n\$(document).ready( () => {\n console.log('Load component - $2')\n\n})" > "$COMPDIR/$2.js" |
|||
echo "@import \"./components/$2/$2.scss\";" >> src/scss/main.scss |
|||
fi |
|||
|
|||
if [ ${1} = "del" ] |
|||
then |
|||
rm -rf $COMPDIR |
|||
sed -i "\/$2\/$2.scss/d" src/scss/main.scss |
|||
fi |
|||
|
@ -0,0 +1,17 @@ |
|||
#!/bin/bash |
|||
|
|||
BASE="http://www.anesacademy.com/" |
|||
|
|||
BASE_PARSED=$(echo $BASE | sed 's/\//\\\//g') |
|||
|
|||
cd public |
|||
for f in *.html |
|||
do |
|||
sed -i "s/href\=\"\//href\=\"$BASE_PARSED/g" "$f" |
|||
sed -i "s/src\=\"\//src\=\"$BASE_PARSED/g" "$f" |
|||
sed -i "s/src\=\"\.\//src\=\"$BASE_PARSED/g" "$f" |
|||
done |
|||
cd .. |
|||
|
|||
#scp -r -i ./auth/marketmind.pem ./public/* ubuntu@18.194.83.82:/var/www/anesacademy.com/ |
|||
rsync -avz --delete -e "ssh -i ./auth/marketmind.pem" ./public/* ubuntu@18.194.83.82:/var/www/anesacademy.com/ |
After Width: | Height: | Size: 95 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 839 KiB |
@ -0,0 +1,56 @@ |
|||
{ |
|||
"name": "anes", |
|||
"version": "1.0.0", |
|||
"description": "IoLoVolio", |
|||
"main": "index.js", |
|||
"repository": "http://git.dslak.it:3000/dslak/iolovolio.git", |
|||
"scripts": { |
|||
"dev": "nodemon --watch webpack.config.js --exec \"webpack --config webpack.config.js --watch --progress --mode development\"", |
|||
"prod": "webpack --config webpack.config.js --mode none --env.prod", |
|||
"deploy": "sh deploy.sh", |
|||
"add-comp": "sh ./comps.sh add", |
|||
"del-comp": "sh ./comps.sh del", |
|||
"preview": "http-server", |
|||
"clean": "rm -rf ./node_modules ./public ./package-lock.json" |
|||
}, |
|||
"author": "Dslak", |
|||
"license": "MIT", |
|||
"dependencies": { |
|||
"@babel/core": "^7.9.0", |
|||
"@babel/preset-env": "^7.9.0", |
|||
"autoprefixer": "^9.7.6", |
|||
"babel-eslint": "^10.1.0", |
|||
"babel-loader": "^8.1.0", |
|||
"babel-plugin-transform-class-properties": "^6.24.1", |
|||
"babel-plugin-transform-object-assign": "^6.22.0", |
|||
"babel-preset-env": "^1.7.0", |
|||
"base-href-webpack-plugin": "^2.0.0", |
|||
"bootstrap": "^4.3.1", |
|||
"copy-webpack-plugin": "^5.0.3", |
|||
"css-loader": "^3.5.1", |
|||
"es6-promise-promise": "^1.0.0", |
|||
"eslint": "^6.0.1", |
|||
"eslint-config-google": "^0.13.0", |
|||
"eslint-config-prettier": "^6.10.1", |
|||
"eslint-plugin-prettier": "^3.1.0", |
|||
"extract-loader": "^3.1.0", |
|||
"file-loader": "^4.0.0", |
|||
"glob": "^7.1.4", |
|||
"html-loader": "^0.5.5", |
|||
"html-webpack-plugin": "^3.2.0", |
|||
"http-server": "^0.12.1", |
|||
"jquery": "^3.4.1", |
|||
"mini-css-extract-plugin": "^0.7.0", |
|||
"minimist": "^1.2.5", |
|||
"node-sass": "^4.12.0", |
|||
"nodemon": "^1.19.1", |
|||
"popper.js": "^1.15.0", |
|||
"postcss-loader": "^3.0.0", |
|||
"prettier": "^1.18.2", |
|||
"sass-loader": "^7.1.0", |
|||
"url-loader": "^2.0.1", |
|||
"webpack": "^4.42.1", |
|||
"webpack-cli": "^3.3.9", |
|||
"webpack-notifier": "^1.8.0" |
|||
} |
|||
} |
@ -0,0 +1,26 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="it"> |
|||
<head> |
|||
<meta charset="UTF-8"> |
|||
<title>IoLovOlio</title> |
|||
<meta name="viewport" content="width=device-width, user-scalable=no,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"> |
|||
<meta name="description" content="."> |
|||
<link rel="stylesheet" href="/assets/css/styles.css"> |
|||
</head> |
|||
<body> |
|||
|
|||
${require('../components/header/header.html')} |
|||
|
|||
<main class="main-content"> |
|||
|
|||
<section class="container"> |
|||
section |
|||
</section> |
|||
|
|||
|
|||
</main> |
|||
|
|||
${require('../components/footer/footer.html')} |
|||
|
|||
</body> |
|||
</html> |
@ -0,0 +1,13 @@ |
|||
const autoprefixer = require('autoprefixer') |
|||
|
|||
module.exports = { |
|||
plugins: [ |
|||
autoprefixer({ |
|||
overrideBrowserslist: [ |
|||
'last 2 versions', |
|||
'> 1%', |
|||
'maintained node versions', |
|||
'not dead', 'ie >= 10'] |
|||
}) |
|||
] |
|||
} |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 4.5 KiB |
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
@ -0,0 +1,22 @@ |
|||
|
|||
window.readyResize = (callback, orientation = false) => { |
|||
if ($.isFunction(callback)) { |
|||
$(document).ready(()=>{ |
|||
callback() |
|||
}) |
|||
$(window).resize(()=>{ |
|||
console.log('Window resize ') |
|||
callback() |
|||
}) |
|||
if(orientation) { |
|||
window.addEventListener("orientationchange", () => { |
|||
const WCO = ($(window).width() > $(window).height()) ? "landscape" : "portrait" |
|||
console.log('Change orientation: ' + WCO) |
|||
callback() |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
|
|||
|
|||
|
@ -0,0 +1,8 @@ |
|||
@font-face {font-family: "Acumin Variable Concept"; |
|||
src: url("/fonts/066ce24dae3730ed6c648b09efaea93a.eot"); /* IE9*/ |
|||
src: url("/fonts/066ce24dae3730ed6c648b09efaea93a.eot?#iefix") format("embedded-opentype"), /* IE6-IE8 */ |
|||
url("/fonts/066ce24dae3730ed6c648b09efaea93a.woff2") format("woff2"), /* chrome、firefox */ |
|||
url("/fonts/066ce24dae3730ed6c648b09efaea93a.woff") format("woff"), /* chrome、firefox */ |
|||
url("/fonts/066ce24dae3730ed6c648b09efaea93a.ttf") format("truetype"), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/ |
|||
url("/fonts/066ce24dae3730ed6c648b09efaea93a.svg#Acumin Variable Concept") format("svg"); /* iOS 4.1- */ |
|||
} |
@ -0,0 +1,230 @@ |
|||
|
|||
input, |
|||
button { |
|||
border: 1px solid $black; |
|||
background: $white; |
|||
border-radius: 0; |
|||
height: 28px; |
|||
} |
|||
|
|||
button { |
|||
border: none; |
|||
cursor: pointer; |
|||
} |
|||
|
|||
input, |
|||
select, |
|||
textarea { |
|||
font-size: $font-12; |
|||
border-radius: 0; |
|||
background: $white; |
|||
width: 100%; |
|||
outline: none !important; |
|||
|
|||
&:active, |
|||
&:focus{ |
|||
outline: none !important; |
|||
} |
|||
|
|||
&:-moz-focusring { |
|||
//color: transparent; |
|||
text-shadow: 0 0 0 $black; |
|||
} |
|||
|
|||
&:-webkit-autofill { |
|||
-webkit-text-fill-color: $black; |
|||
box-shadow: 0 0 0px 1000px $white inset !important; |
|||
&:focus, |
|||
&:hover { |
|||
-webkit-text-fill-color: $black; |
|||
box-shadow: 0 0 0px 1000px $white inset !important; |
|||
} |
|||
} |
|||
|
|||
} |
|||
|
|||
|
|||
select, |
|||
input[type=text], |
|||
input[type=password], |
|||
input[type=email], |
|||
input[type=tel], |
|||
input[type=date] { |
|||
border: none; |
|||
border-bottom: 1px solid $black; |
|||
height: 30px; |
|||
box-shadow: unset; |
|||
text-transform: initial !important; |
|||
|
|||
& + .label-text, |
|||
& + label { |
|||
color: $gray; |
|||
top: -1*$font-10; |
|||
position: absolute; |
|||
display: block; |
|||
@include font-style($font-sans, 'regular', $font-10); |
|||
text-transform: uppercase; |
|||
} |
|||
|
|||
&:required { |
|||
& + .label-text, |
|||
& + label { |
|||
&::after { |
|||
content: ' *'; |
|||
} |
|||
|
|||
& ~ .error-message { |
|||
display: none; |
|||
color: $red; |
|||
@include font-style($font-sans, 'regular', $font-10); |
|||
} |
|||
} |
|||
} |
|||
|
|||
&.has-error { |
|||
border-bottom: 1px solid $red; |
|||
& + .label-text, |
|||
& + label { |
|||
color: $red; |
|||
text-transform: uppercase; |
|||
& ~ .error-message { |
|||
display: block; |
|||
color: $red; |
|||
text-transform: uppercase; |
|||
} |
|||
} |
|||
} |
|||
|
|||
&.transparent { |
|||
background: transparent; |
|||
} |
|||
|
|||
&:disabled { |
|||
border-bottom: 1px solid $gray; |
|||
& + .label-text, |
|||
& + label { |
|||
color: $gray; |
|||
} |
|||
} |
|||
} |
|||
|
|||
fieldset, |
|||
.fieldset { |
|||
position: relative; |
|||
padding-bottom: 35px; |
|||
.label-text { |
|||
color: $gray; |
|||
|
|||
&.required { |
|||
&:after { |
|||
content: '*'; |
|||
} |
|||
} |
|||
} |
|||
|
|||
&.has-error { |
|||
.label-text { |
|||
color: $red; |
|||
text-transform: uppercase; |
|||
font-size: $font-10; |
|||
} |
|||
.error-message { |
|||
color: $red; |
|||
display: block !important; |
|||
text-transform: uppercase; |
|||
font-size: $font-10; |
|||
} |
|||
input { |
|||
border-bottom: 1px solid $red; |
|||
} |
|||
} |
|||
} |
|||
|
|||
select { |
|||
appearance: none; |
|||
background-image: url(/images/arrow-down.svg); |
|||
background-size: auto 40%; |
|||
background-repeat: no-repeat; |
|||
background-position: right 3px center; |
|||
|
|||
&:disabled { |
|||
background-image: url(/images/arrow-down-gray.svg); |
|||
} |
|||
&:focus { |
|||
//background-image: url(/images/arrow-up.svg); |
|||
} |
|||
} |
|||
|
|||
|
|||
.button { |
|||
border: none; |
|||
color: $black; |
|||
background: transparent; |
|||
border-radius: 0; |
|||
height: auto; |
|||
display: block; |
|||
padding: 10px 20px; |
|||
text-align: center; |
|||
@include font-style( $font-sans, 'regular', $font-18); |
|||
text-transform: uppercase; |
|||
|
|||
&.button-blue { |
|||
background: $blue; |
|||
color: $white; |
|||
} |
|||
|
|||
&.button-small { |
|||
height: 18px; |
|||
line-height: $font-6; |
|||
padding: 5px; |
|||
} |
|||
|
|||
&:disabled { |
|||
opacity: 0.5; |
|||
} |
|||
} |
|||
|
|||
.checkbox { |
|||
display: inline-block; |
|||
position: relative; |
|||
padding-left: 25px; |
|||
margin-bottom: 12px; |
|||
cursor: pointer; |
|||
user-select: none; |
|||
width: 100%; |
|||
float: left; |
|||
line-height: 12px; |
|||
|
|||
.checkmark { |
|||
position: absolute; |
|||
top: 0; |
|||
left: 0; |
|||
height: 15px; |
|||
width: 15px; |
|||
background: none; |
|||
border: 1px solid $black; |
|||
&:disabled { |
|||
border-bottom: 1px solid $gray; |
|||
} |
|||
|
|||
&:after { |
|||
content: ''; |
|||
position: absolute; |
|||
display: none; |
|||
} |
|||
} |
|||
|
|||
input { |
|||
position: absolute; |
|||
opacity: 0; |
|||
cursor: pointer; |
|||
height: 0; |
|||
width: 0; |
|||
&:checked ~ .checkmark { |
|||
background: $black; |
|||
&:after { |
|||
display: block; |
|||
} |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,125 @@ |
|||
|
|||
body { |
|||
font-family: $font-sans; |
|||
font-weight: 400; |
|||
margin: 0; |
|||
color: $black; |
|||
overflow-x: hidden; |
|||
} |
|||
|
|||
|
|||
ul { |
|||
list-style: none; |
|||
padding: 0; |
|||
margin: 0; |
|||
} |
|||
|
|||
a, |
|||
input, |
|||
button { |
|||
text-decoration: none; |
|||
outline: none; |
|||
&:active, |
|||
&:visited, |
|||
&:hover, |
|||
&:focus{ |
|||
outline: none; |
|||
text-decoration: none; |
|||
} |
|||
} |
|||
|
|||
.font-serif { |
|||
font-family: $font-serif; |
|||
} |
|||
|
|||
.font-sans { |
|||
font-family: $font-sans; |
|||
} |
|||
|
|||
.text-right { |
|||
text-align: right; |
|||
} |
|||
|
|||
.text-left { |
|||
text-align: left; |
|||
} |
|||
|
|||
.text-center { |
|||
text-align: center; |
|||
} |
|||
|
|||
@each $bp in $grid-breakpoints { |
|||
$key: nth($bp, 1); |
|||
$value: nth($bp, 2); |
|||
|
|||
@media (min-width: $value) { |
|||
.text-#{$key}-center{ |
|||
text-align: center; |
|||
} |
|||
.text-#{$key}-left { |
|||
text-align: left; |
|||
} |
|||
.text-#{$key}-right { |
|||
text-align: right; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.text-white { |
|||
color: $white; |
|||
} |
|||
|
|||
.text-black { |
|||
color: $black; |
|||
} |
|||
|
|||
.text-gray { |
|||
color: $gray; |
|||
} |
|||
|
|||
.text-bold { |
|||
font-weight: bold !important; |
|||
} |
|||
|
|||
.text-uppercase { |
|||
text-transform: uppercase; |
|||
} |
|||
|
|||
.middle { |
|||
@include middle(); |
|||
} |
|||
|
|||
.full-middle { |
|||
@include full-middle(); |
|||
} |
|||
|
|||
// Font size |
|||
@each $size in 10, 12, 13, 14, 15, 16, 18, 20, 22, 24, 25, 26, 28, 30, 32, 34, 36, 38, 40, 42, 46, 48, 50, 52, 54, 60, 72 { |
|||
.font-#{$size} {font-size: #{$size/16}rem !important;} |
|||
} |
|||
|
|||
.main-content { |
|||
|
|||
min-height: calc(100vh - #{$header-height} - #{$footer-height} - 50px); |
|||
|
|||
&.container-fluid { |
|||
&.full-width { |
|||
padding-left: 0; |
|||
padding-right: 0; |
|||
overflow-x: hidden; |
|||
} |
|||
} |
|||
|
|||
section { |
|||
margin: 50px auto; |
|||
&.container-full { |
|||
padding: 0; |
|||
max-width: initial; |
|||
} |
|||
} |
|||
} |
|||
|
|||
|
|||
.debug-border { |
|||
border: 1px solid red; |
|||
} |
@ -0,0 +1,42 @@ |
|||
@font-face { |
|||
font-family: 'icomoon'; |
|||
src: url('../fonts/icomoon.eot'); |
|||
src: url('../fonts/icomoon.eot#iefix') format('embedded-opentype'), |
|||
url('../fonts/icomoon.ttf') format('truetype'), |
|||
url('../fonts/icomoon.woff') format('woff'), |
|||
url('../fonts/icomoon.svg#icomoon') format('svg'); |
|||
font-weight: normal; |
|||
font-style: normal; |
|||
} |
|||
|
|||
[class^="icon-"], [class*=" icon-"] { |
|||
/* use !important to prevent issues with browser extensions that change fonts */ |
|||
font-family: 'icomoon' !important; |
|||
speak: none; |
|||
font-style: normal; |
|||
font-weight: normal; |
|||
font-variant: normal; |
|||
text-transform: none; |
|||
line-height: 1; |
|||
|
|||
/* Better Font Rendering =========== */ |
|||
-webkit-font-smoothing: antialiased; |
|||
-moz-osx-font-smoothing: grayscale; |
|||
} |
|||
|
|||
|
|||
.icon-arrow-down:before { |
|||
content: "\e900"; |
|||
} |
|||
.icon-arrow-right:before { |
|||
content: "\e901"; |
|||
} |
|||
.icon-cart:before { |
|||
content: "\e902"; |
|||
} |
|||
.icon-drop:before { |
|||
content: "\e903"; |
|||
} |
|||
.icon-user:before { |
|||
content: "\e904"; |
|||
} |
@ -0,0 +1,14 @@ |
|||
@import "../scss/variables.scss"; |
|||
@import "../scss/mixins.scss"; |
|||
|
|||
/* Libraries */ |
|||
@import "./node_modules/bootstrap/scss/bootstrap-grid"; |
|||
|
|||
/* Global setup */ |
|||
@import "../scss/fonts.scss"; |
|||
@import "../scss/icons.scss"; |
|||
@import "../scss/global.scss"; |
|||
@import "../scss/forms.scss"; |
|||
|
|||
@import "./components/header/header.scss"; |
|||
@import "./components/footer/footer.scss"; |
@ -0,0 +1,69 @@ |
|||
@import "../../src/scss/variables.scss"; |
|||
|
|||
@mixin font-style ( $font: $font-serif, $style: 'regular', $size: $font-12 , $ls: normal ) { |
|||
font-family: $font; |
|||
font-size: $size; |
|||
letter-spacing: $ls; |
|||
|
|||
@if $style == 'regular' { |
|||
font-weight: 400; |
|||
} @else if $style == 'light' { |
|||
font-weight: 200; |
|||
} @else if $style == 'medium' { |
|||
font-weight: 500; |
|||
} @else if $style == 'semibold' { |
|||
font-weight: 600; |
|||
} @else if $style == 'bold' { |
|||
font-weight: 700; |
|||
} @else if $style == 'regular-italic' { |
|||
font-weight: 400; |
|||
font-style: italic; |
|||
} @else if $style == 'light-italic' { |
|||
font-weight: 200; |
|||
font-style: italic; |
|||
} @else if $style == 'semibold-italic' { |
|||
font-weight: 600; |
|||
font-style: italic; |
|||
} @else if $style == 'bold-italic' { |
|||
font-weight: 700; |
|||
font-style: italic; |
|||
} @else { |
|||
font-weight: $style; |
|||
} |
|||
} |
|||
|
|||
@mixin middle() { |
|||
position: absolute; |
|||
top: 50%; |
|||
transform: translateY(-50%); |
|||
} |
|||
|
|||
@mixin full-middle() { |
|||
position: absolute; |
|||
left: 50%; |
|||
top: 50%; |
|||
transform: translate(-50%, -50%); |
|||
} |
|||
|
|||
@mixin middle-right() { |
|||
position: absolute; |
|||
right: 0; |
|||
top: 50%; |
|||
transform: translateY(-50%); |
|||
} |
|||
|
|||
@mixin middle-left() { |
|||
position: absolute; |
|||
left: 0; |
|||
top: 50%; |
|||
transform: translateY(-50%); |
|||
} |
|||
|
|||
@mixin reset() { |
|||
margin: 20px auto; |
|||
width: 100%; |
|||
max-width: $max-width; |
|||
padding: 60px $grid-gutter-width; |
|||
font-size: 16px; |
|||
letter-spacing: .08em; |
|||
} |
@ -0,0 +1,85 @@ |
|||
// Bootstrap Settings |
|||
|
|||
$spacer: 20px; |
|||
$spacers: ( |
|||
0: 0, |
|||
1: ($spacer * .25), // 5px |
|||
2: ($spacer * .5), // 10px |
|||
3: $spacer, // 20px |
|||
4: ($spacer * 1.5), // 30px |
|||
5: ($spacer * 3), // 60px |
|||
6: ($spacer * 6), // 120px |
|||
); |
|||
|
|||
$grid-columns: 12; |
|||
$grid-gutter-width: 20px; |
|||
$grid-gutter-width-mobile: 5px; |
|||
|
|||
$grid-breakpoints: ( |
|||
xs: 0, // Mobile Portrait |
|||
sm: 768px, // Tablet Portrait |
|||
md: 1024px, // Tablet landscape/Small desktop |
|||
lg: 1280px, // Desktop |
|||
xl: 1600px, // Large desktop |
|||
); |
|||
|
|||
$container-max-widths: ( |
|||
sm: 708px, |
|||
md: 984px, |
|||
lg: 1200px, |
|||
xl: 1560px |
|||
); |
|||
|
|||
|
|||
$font-serif: 'Acumin Variable Concept'; |
|||
$font-sans: 'Acumin Variable Concept'; |
|||
$icon: 'icomoon'; |
|||
|
|||
$black: #000; |
|||
$white: #fff; |
|||
$gray: #686868; |
|||
$light-gray: #f0efec; |
|||
$dark-gray: #393939; |
|||
|
|||
$olive: #86876f; |
|||
$orange: #ddb279; |
|||
|
|||
$white-alpha: rgba(255, 255, 255, 0.8); |
|||
$black-alpha: rgba(0, 0, 0, 0.8); |
|||
|
|||
$header-height: 120px; |
|||
$header-height-mobile: 100px; |
|||
$footer-height: 30px; |
|||
|
|||
/* Font-size variables */ |
|||
$font-6: 0.375rem; /* 6px */ |
|||
$font-8: 0.5rem; /* 8px */ |
|||
$font-10: 0.625rem; /* 10px */ |
|||
$font-11: 0.687rem; /* 11px */ |
|||
$font-12: 0.75rem; /* 12px */ |
|||
$font-13: 0.812rem; /* 13px */ |
|||
$font-14: 0.875rem; /* 14px */ |
|||
$font-15: 0.937rem; /* 15px */ |
|||
$font-16: 1rem; /* 16px */ |
|||
$font-18: 1.125rem; /* 18px */ |
|||
$font-20: 1.25rem; /* 20px */ |
|||
$font-22: 1.375rem; /* 22px */ |
|||
$font-24: 1.5rem; /* 24px */ |
|||
$font-25: 1.56rem; /* 24px */ |
|||
$font-26: 1.625rem; /* 26px */ |
|||
$font-28: 1.75rem; /* 28px */ |
|||
$font-30: 1.875rem; /* 30px */ |
|||
$font-32: 2rem; /* 32px */ |
|||
$font-34: 2.125rem; /* 34px */ |
|||
$font-36: 2.25rem; /* 36px */ |
|||
$font-38: 2.375rem; /* 38px */ |
|||
$font-40: 2.5rem; /* 40px */ |
|||
$font-42: 2.625rem; /* 42px */ |
|||
$font-44: 2.75rem; /* 44px */ |
|||
$font-46: 2.875rem; /* 46px */ |
|||
$font-48: 3rem; /* 48px */ |
|||
$font-50: 3.125rem; /* 50px */ |
|||
$font-52: 3.25rem; /* 52px */ |
|||
$font-54: 3.375rem; /* 54px */ |
|||
$font-60: 3.75rem; /* 60px */ |
|||
$font-72: 4.5rem; /* 72px */ |
@ -0,0 +1,141 @@ |
|||
|
|||
const webpack = require('webpack') |
|||
const path = require('path') |
|||
const fs = require('fs') |
|||
|
|||
const WebpackNotifierPlugin = require('webpack-notifier') |
|||
const HtmlWebpackPlugin = require('html-webpack-plugin') |
|||
const CopyWebpackPlugin = require('copy-webpack-plugin') |
|||
|
|||
const basePath = './' |
|||
const pagesPath = path.join(__dirname, './pages') |
|||
const distPath = path.join(__dirname, './public') |
|||
const componentPath = path.join(__dirname, './components') |
|||
const imagesPath = path.join(__dirname, './images') |
|||
const assetsPath = path.join(__dirname, './assets') |
|||
const docsPath = path.join(__dirname, './docs') |
|||
const srcPath = './src' |
|||
|
|||
let components = [] |
|||
let entries = [] |
|||
let plugins = [] |
|||
|
|||
module.exports = (env) => { |
|||
|
|||
const isProd = env && env.prod || false |
|||
|
|||
entries.push(srcPath + '/js/index.js') |
|||
entries.push(srcPath + '/scss/main.scss') |
|||
|
|||
fs.readdirSync(componentPath).forEach( (comp) => { |
|||
entries.push(componentPath + '/' + comp + '/' + comp + '.js') |
|||
}) |
|||
|
|||
plugins = [ |
|||
new HtmlWebpackPlugin(), |
|||
new WebpackNotifierPlugin({ |
|||
title: 'IoLovOlio', |
|||
contentImage: path.join(__dirname, basePath + '/images/logoWP.png'), |
|||
alwaysNotify: true |
|||
}), |
|||
new webpack.ProvidePlugin({ |
|||
$: 'jquery', |
|||
jQuery: 'jquery' |
|||
}), |
|||
new CopyWebpackPlugin([ |
|||
{ |
|||
context: componentPath, |
|||
from: '**/*.html', |
|||
to: distPath + '/components', |
|||
}, |
|||
]), |
|||
new CopyWebpackPlugin([ |
|||
{ |
|||
context: imagesPath, |
|||
from: '*.*', |
|||
to: distPath + '/images', |
|||
}, |
|||
]), |
|||
new CopyWebpackPlugin([ |
|||
{ |
|||
context: docsPath, |
|||
from: '*.*', |
|||
to: distPath + '/docs', |
|||
}, |
|||
]) |
|||
] |
|||
|
|||
fs.readdirSync(pagesPath).forEach( (page) => { |
|||
plugins.push( |
|||
new HtmlWebpackPlugin({ |
|||
template: path.resolve(pagesPath, page), |
|||
filename: path.resolve(distPath, page.substr(0, page.lastIndexOf(".")) + ".html") |
|||
}) |
|||
) |
|||
}) |
|||
|
|||
|
|||
|
|||
return { |
|||
devtool: isProd ? '' : 'eval', |
|||
entry: entries, |
|||
output: { |
|||
path: path.join(distPath, '/assets/js'), |
|||
publicPath: './assets/js', |
|||
filename: 'bundle.js' |
|||
}, |
|||
module: { |
|||
rules: [ |
|||
// JS
|
|||
{ |
|||
test: /\.js$/, |
|||
exclude: /(node_modules|bower_components|vendor)/, |
|||
use: { |
|||
loader: 'babel-loader', |
|||
options: { |
|||
minified: false, |
|||
babelrc: true |
|||
} |
|||
}, |
|||
}, |
|||
// SCSS
|
|||
{ |
|||
test: /\.scss$/, |
|||
use: [ |
|||
{loader: 'file-loader', |
|||
options: { name: '../../assets/css/styles.css'} |
|||
}, |
|||
{loader: 'extract-loader'}, |
|||
{loader: 'css-loader'}, |
|||
{loader: 'postcss-loader'}, |
|||
{loader: 'sass-loader'} |
|||
] |
|||
}, |
|||
|
|||
// FONTS
|
|||
{ |
|||
test: /\.(woff|woff2|eot|ttf|svg)$/, |
|||
use: ['url-loader?limit=100000'] |
|||
}, |
|||
|
|||
// HTML
|
|||
{ |
|||
test: /.*\.html?$/, |
|||
use: { |
|||
loader: 'html-loader', |
|||
options: { |
|||
attrs: ['link:href', 'script:src', 'img:src'], |
|||
interpolate: true, |
|||
}, |
|||
}, |
|||
} |
|||
] |
|||
}, |
|||
plugins: plugins, |
|||
devtool: false, |
|||
performance: { |
|||
maxEntrypointSize: 512000, |
|||
maxAssetSize: 512000 |
|||
} |
|||
} |
|||
} |
Loading…
Reference in new issue