Browse Source

Merge branch 'feature/homepage' into develop

feature/styles_review
Dslak 5 years ago
parent
commit
8fcf0ddda4
  1. 4
      components/content/content-recount-index.html
  2. 2
      components/footer/footer.scss
  3. 14
      components/header/header.html
  4. 13
      components/header/header.scss
  5. 74
      components/homeTemplate/homeTemplate.html
  6. 19
      components/homeTemplate/homeTemplate.js
  7. 194
      components/homeTemplate/homeTemplate.scss
  8. BIN
      images/ajax-loader.gif
  9. BIN
      images/homeDescription.png
  10. BIN
      images/homeProducts.png
  11. 1
      package.json
  12. 2
      pages/iolovolio.ejs
  13. BIN
      src/fonts/icomoon.eot
  14. 3
      src/fonts/icomoon.svg
  15. BIN
      src/fonts/icomoon.ttf
  16. BIN
      src/fonts/icomoon.woff
  17. 2
      src/fonts/selection.json
  18. 1
      src/js/index.js
  19. 6
      src/scss/forms.scss
  20. 4
      src/scss/global.scss
  21. 9
      src/scss/icons.scss
  22. 3
      src/scss/main.scss
  23. 17
      src/scss/variables.scss
  24. 2
      webpack.config.js

4
components/content/content-recount-index.html

@ -1,5 +1,7 @@
<?php
@include('components/breadcrumb/breadcrumb.php');
if(!$isHome) {
@include('components/breadcrumb/breadcrumb.php');
}
?>
<div class="component-content">

2
components/footer/footer.scss

@ -4,7 +4,7 @@
.component-footer {
position: relative;
display: flex;
height: 250px;
height: $footer-height;
background: $olive-dark;
padding: 40px 0;

14
components/header/header.html

@ -1,8 +1,10 @@
<header class="component-header">
<header class="component-header <?= $isHome ? 'is-home' : '';?>">
<div class="container header-wrapper">
<img class="logo" src="/images/logoHeader.png">
<a href="/">
<img class="logo" src="/images/logoHeader.png">
</a>
<button class="hamburger hamburger--spring my-auto">
<span class="hamburger-box">
@ -19,10 +21,10 @@
<ul class="menu">
<li class="item <?php if($getQ[0] == 'conoscere') { echo "active";}?>">
<a href="/conoscere" class="label">conoscere</a>
</li>
</li><!--
<li class="item <?php if($getQ[0] == 'produrre') { echo "active";}?>">
<a href="/produrre" class="label">produrre</a>
</li>
</li>-->
<li class="item <?php if($getQ[0] == 'acquistare') { echo "active";}?>">
<a href="/acquistare" class="label">acquistare</a>
</li>
@ -34,6 +36,8 @@
</div>
<?php
@include('components/sectionHeader/sectionHeader.php');
if(!$isHome) {
@include('components/sectionHeader/sectionHeader.php');
}
?>
</header>

13
components/header/header.scss

@ -21,7 +21,7 @@
top: 50%;
left: 50%;
height: 100%;
max-height: 70px;
max-height: 50px;
margin: auto 0;
transition: max-height .4s;
transform: translate(-50%, -50%);
@ -107,6 +107,15 @@
}
}
}
&.is-home {
background: transparent;
.header-wrapper {
.logo {
display: none;
}
}
}
}
@ -117,7 +126,7 @@
.header-wrapper {
min-height: $header-height;
.logo {
//max-height: $header-height;
max-height: 70px;
}
.menu-container {
.menu-label {

74
components/homeTemplate/homeTemplate.html

@ -0,0 +1,74 @@
<div class="component-homeTemplate">
<div class="banner">
<div class="container logo-container">
<img class="logo" src="/images/logo.png">
</div>
<button class="scroll icon-angle-down"></button>
</div>
<div class="products">
<div class="container">
<div class="row py-4">
<div class="col-5 d-none d-md-flex">
<img class="main-image" src="/images/homeProducts.png">
</div>
<div class="col-12 col-md-7">
<div class="slider">
<?php
$q = mysqli_query($conn, "SELECT * FROM products");
while($r = mysqli_fetch_array($q)){
?>
<div class="slide">
<div class="row">
<div class="col-12 col-md-7">
<img class="image" src="<?= '/images/products/'.$r['id'].'.png';?>">
</div>
<div class="col-12 col-md-5">
<div class="description">
<span class="title"><?= $r['name'];?></span>
<span class="subtitle"><?= $r['description'];?></span>
<a class="link" href="/acquistare/<?= $r['id'];?>/<?= $r['name'];?>">
<span class="icon icon-buy"></span>
<span class="label">acquista</span>
</a>
</div>
</div>
</div>
</div>
<?php
}
?>
</div>
</div>
</div>
</div>
</div>
<div class="bio">
<div class="container">
<div class="row no-gutters py-4">
<div class="col-12 col-md-5 d-flex">
<img class="main-image" src="/images/homeDescription.png">
</div>
<div class="col-12 col-sm-8 col-md-7 mx-auto d-flex">
<div class="description">
<img class="logo" src="/images/logoHeader.png">
<span class="d-block text-left">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla lobortis diam turpis, in pulvinar augue cursus ut. Donec in felis et metus semper condimentum vel id sem. Duis vestibulum purus ut dui suscipit, sit amet sodales lacus auctor. Praesent et bibendum massa.
<br><br>
Duis bibendum rutrum augue, et sollicitudin risus tempor at. Fusce eget varius diam. Suspendisse molestie odio est, vel egestas diam aliquet et. Quisque blandit turpis magna, id cursus nisi luctus ac.
</span>
<a class="goto button button-transparent" href="/conoscere">Leggi di più</a>
</div>
</div>
</div>
</div>
<?php
@include('components/content/content-recount-index.php');
?>
<a class="goto button button-transparent" href="/raccontare">Leggi di più</a>
</div>

19
components/homeTemplate/homeTemplate.js

@ -0,0 +1,19 @@
$(document).ready( () => {
console.log('Load component - homeTemplate')
const component = $('.component-homeTemplate')
if(component.length) {
const slider = component.find('.slider')
const scroll = component.find('.scroll')
slider.slick()
scroll.on('click', () => {
const body = $('html, body');
body.stop().animate({scrollTop: window.innerHeight}, 500, 'swing')
})
}
})

194
components/homeTemplate/homeTemplate.scss

@ -0,0 +1,194 @@
@import "../../src/scss/variables.scss";
@import "../../src/scss/mixins.scss";
.component-homeTemplate {
background: $white;
.banner {
position: relative;
background: $light-gray;
height: 100vh;
.logo-container {
position: relative;
height: 100vh;
.logo {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 50%;
height: 80%;
object-fit: contain;
}
}
.scroll {
position: absolute;
bottom: 10px;
left: 50%;
transform: translateX(-50%);
color: $brown;
font-size: $font-30;
background: none;
border: none;
outline: none;
padding: 0;
}
}
.products {
background: linear-gradient(0deg, $white 0%, $white 35%, $light-gray 35%, $light-gray 75%, $white 75%, $white 100%);
.main-image {
width: 100%;
margin: auto auto 5% auto;
border: 1px solid $black-alpha;
padding: 10px;
background: $white;
}
.slider {
display: block;
width: calc(100% - 80px);
height: 100%;
margin: auto;
.slide {
position: relative;
//display: flex !important;
padding: 0 5%;
.image {
//width: 55%;
//float: left;
width: 100%;
padding: 0 10px;
}
.description {
position: relative;
height: 100%;
padding: 20px;
text-align: center;
.title {
display: block;
@include font-style($font-serif, 'regular-italic', $font-24);
color: $brown;
}
.subtitle {
display: block;
display: -webkit-box;
@include font-style($font-serif, 'regular-italic', $font-18);
color: $olive-dark;
overflow: hidden;
max-width: 100%;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
}
}
.link {
display: block;
bottom: 20%;
left: 0;
width: 100%;
text-align: center;
padding-top: 30px;
.icon {
display: block;
color: $brown;
font-size: $font-30;
}
.label {
display: block;
@include font-style($font-serif, 'regular-italic', $font-22);
color: $olive-dark;
}
}
}
.slick-arrow {
&:before {
font-size: $font-30;
}
}
.slick-prev,
.slick-next {
height: 30px;
width: 30px;
}
}
}
.bio {
background: $light-gray;
margin: 100px 0;
.main-image {
width: 100%;
margin: auto;
border: 1px solid $black-alpha;
padding: 10px;
}
.description {
display: block;
background: $white;
@include font-style($font-sans, 'regular', $font-18);
text-align: center;
color: $gray;
padding: 50px 12%;
margin: auto;
.logo {
max-height: 60px;
margin: 20px auto 40px auto;
}
.goto {
margin: 50px auto 20px auto;
width: 200px;
}
}
}
.goto {
margin: 50px auto 20px auto;
width: 200px;
}
}
@media (min-width: map-get($grid-breakpoints, 'md')) {
.component-homeTemplate {
.products {
background: linear-gradient(0deg, $white 0%, $white 15%, $light-gray 15%, $light-gray 75%, $white 75%, $white 100%);
.slider {
.slide {
.description {
padding: 120% 20px 10% 20px;
text-align: left;
.subtitle {
-webkit-line-clamp: 4;
}
}
.link {
position: absolute;
}
}
}
}
}
}

BIN
images/ajax-loader.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

BIN
images/homeDescription.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

BIN
images/homeProducts.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

1
package.json

@ -49,6 +49,7 @@
"postcss-loader": "^4.1.0",
"prettier": "^2.2.1",
"sass-loader": "^10.1.0",
"slick-slider": "^1.8.2",
"url-loader": "^4.1.1",
"webpack": "^4.44.2",
"webpack-cli": "^4.2.0",

2
pages/iolovolio.ejs

@ -0,0 +1,2 @@
${require('../components/homeTemplate/homeTemplate.html')}

BIN
src/fonts/icomoon.eot

Binary file not shown.

3
src/fonts/icomoon.svg

@ -11,4 +11,7 @@
<glyph unicode="&#xe901;" glyph-name="minus" d="M976.53 489.004v-81.976h-929.060v81.976z" />
<glyph unicode="&#xe902;" glyph-name="plus" d="M471.011 912.53h81.976v-929.060h-81.976zM976.53 489.004v-81.976h-929.060v81.976z" />
<glyph unicode="&#xe903;" glyph-name="angle-down" d="M90.513 706.035l-47.292-47.292 468.778-468.778 468.778 468.778-47.292 47.292-421.487-421.487z" />
<glyph unicode="&#xe904;" glyph-name="angle-top" d="M933.487 189.965l47.292 47.292-468.778 468.778-468.778-468.778 47.292-47.292 421.487 421.487z" />
<glyph unicode="&#xe905;" glyph-name="angle-right" d="M253.965 26.513l47.292-47.292 468.778 468.778-468.778 468.778-47.292-47.292 421.487-421.487z" />
<glyph unicode="&#xe906;" glyph-name="angle-left" d="M770.035 869.487l-47.292 47.292-468.778-468.778 468.778-468.778 47.292 47.292-421.487 421.487z" />
</font></defs></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
src/fonts/icomoon.ttf

Binary file not shown.

BIN
src/fonts/icomoon.woff

Binary file not shown.

2
src/fonts/selection.json

@ -1 +1 @@
{"IcoMoonType":"selection","icons":[{"icon":{"paths":["M498.102 56.824c-115.187 0-211.767 96.565-211.767 215.468h-167.207v78.016h0.363v538.852h-0.363v78.016h784.003v-7.693h1.742v-687.408h-78.016v0.218h-113.213c0-118.903-100.353-215.468-215.541-215.468zM498.102 131.139c78.030 0 141.226 63.124 141.226 141.154h-278.679c0-78.030 59.422-141.154 137.453-141.154zM197.579 350.308h88.756v55.736h74.314v-55.736h278.679v55.736h74.314v-55.736h113.213v538.852h-629.278z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["buy"]},"attrs":[{}],"properties":{"order":117,"id":3,"name":"buy","prevSize":32,"code":59648},"setIdx":0,"setId":2,"iconIdx":0},{"icon":{"paths":["M976.53 470.996v81.976h-929.060v-81.976z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["minus"]},"attrs":[{}],"properties":{"order":118,"id":2,"name":"minus","prevSize":32,"code":59649},"setIdx":0,"setId":2,"iconIdx":1},{"icon":{"paths":["M471.011 47.47h81.976v929.060h-81.976z","M976.53 470.996v81.976h-929.060v-81.976z"],"attrs":[{},{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["plus"]},"attrs":[{},{}],"properties":{"order":119,"id":1,"name":"plus","prevSize":32,"code":59650},"setIdx":0,"setId":2,"iconIdx":2},{"icon":{"paths":["M90.513 253.965l-47.292 47.292 468.778 468.778 468.778-468.778-47.292-47.292-421.487 421.487z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["angle-down"]},"attrs":[{}],"properties":{"order":120,"id":0,"name":"angle-down","prevSize":32,"code":59651},"setIdx":0,"setId":2,"iconIdx":3}],"height":1024,"metadata":{"name":"icomoon"},"preferences":{"showGlyphs":true,"showQuickUse":false,"showQuickUse2":true,"showSVGs":true,"fontPref":{"prefix":"icon-","metadata":{"fontFamily":"icomoon"},"metrics":{"emSize":1024,"baseline":6.25,"whitespace":50},"embed":false,"autoHost":true},"imagePref":{"prefix":"icon-","png":true,"useClassSelector":true,"color":0,"bgColor":16777215,"classSelector":".icon"},"historySize":50,"showCodes":true,"gridSize":16,"quickUsageToken":{"UntitledProject":"ZjQ5ODNjZDkzZGRhNGRlZDg3YmQ2Njc5YTQyNWU2Y2QjMSMxNTY0MDUxMDkxIyMj"},"showGrid":false}}
{"IcoMoonType":"selection","icons":[{"icon":{"paths":["M498.102 56.824c-115.187 0-211.767 96.565-211.767 215.468h-167.207v78.016h0.363v538.852h-0.363v78.016h784.003v-7.693h1.742v-687.408h-78.016v0.218h-113.213c0-118.903-100.353-215.468-215.541-215.468zM498.102 131.139c78.030 0 141.226 63.124 141.226 141.154h-278.679c0-78.030 59.422-141.154 137.453-141.154zM197.579 350.308h88.756v55.736h74.314v-55.736h278.679v55.736h74.314v-55.736h113.213v538.852h-629.278z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["buy"],"grid":0},"attrs":[{}],"properties":{"order":117,"id":0,"name":"buy","prevSize":32,"code":59648},"setIdx":0,"setId":0,"iconIdx":0},{"icon":{"paths":["M976.53 470.996v81.976h-929.060v-81.976z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["minus"],"grid":0},"attrs":[{}],"properties":{"order":118,"id":1,"name":"minus","prevSize":32,"code":59649},"setIdx":0,"setId":0,"iconIdx":1},{"icon":{"paths":["M471.011 47.47h81.976v929.060h-81.976z","M976.53 470.996v81.976h-929.060v-81.976z"],"attrs":[{},{}],"isMulticolor":false,"isMulticolor2":false,"tags":["plus"],"grid":0},"attrs":[{},{}],"properties":{"order":119,"id":2,"name":"plus","prevSize":32,"code":59650},"setIdx":0,"setId":0,"iconIdx":2},{"icon":{"paths":["M90.513 253.965l-47.292 47.292 468.778 468.778 468.778-468.778-47.292-47.292-421.487 421.487z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["angle-down"],"grid":0},"attrs":[{}],"properties":{"order":119,"id":3,"name":"angle-down","prevSize":32,"code":59651},"setIdx":0,"setId":0,"iconIdx":3},{"icon":{"paths":["M933.487 770.035l47.292-47.292-468.778-468.778-468.778 468.778 47.292 47.292 421.487-421.487z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["angle-top"],"grid":0},"attrs":[{}],"properties":{"order":122,"id":6,"prevSize":32,"code":59652,"name":"angle-top"},"setIdx":0,"setId":0,"iconIdx":4},{"icon":{"paths":["M253.965 933.487l47.292 47.292 468.778-468.778-468.778-468.778-47.292 47.292 421.487 421.487z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["angle-right"],"grid":0},"attrs":[{}],"properties":{"order":120,"id":4,"prevSize":32,"code":59653,"name":"angle-right"},"setIdx":0,"setId":0,"iconIdx":5},{"icon":{"paths":["M770.035 90.513l-47.292-47.292-468.778 468.778 468.778 468.778 47.292-47.292-421.487-421.487z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["angle-left"],"grid":0},"attrs":[{}],"properties":{"order":121,"id":5,"prevSize":32,"code":59654,"name":"angle-left"},"setIdx":0,"setId":0,"iconIdx":6}],"height":1024,"metadata":{"name":"icomoon"},"preferences":{"showGlyphs":true,"showQuickUse":false,"showQuickUse2":true,"showSVGs":true,"fontPref":{"prefix":"icon-","metadata":{"fontFamily":"icomoon"},"metrics":{"emSize":1024,"baseline":6.25,"whitespace":50},"embed":false,"autoHost":true},"imagePref":{"prefix":"icon-","png":true,"useClassSelector":true,"color":0,"bgColor":16777215,"classSelector":".icon"},"historySize":50,"showCodes":true,"gridSize":16,"quickUsageToken":{"UntitledProject":"ZjQ5ODNjZDkzZGRhNGRlZDg3YmQ2Njc5YTQyNWU2Y2QjMSMxNTY0MDUxMDkxIyMj"},"showGrid":false}}

1
src/js/index.js

@ -1,3 +1,4 @@
import 'slick-slider/slick/slick.min'
window.readyResize = (callback, orientation = false) => {
if ($.isFunction(callback)) {

6
src/scss/forms.scss

@ -170,6 +170,12 @@ select {
color: $white;
}
&.button-transparent {
background: transparent;
border: 1px solid $brown;
color: $brown;
}
&.button-big {
padding: 10px 20px;
font-size: $font-18;

4
src/scss/global.scss

@ -121,10 +121,10 @@ button {
.main-content {
min-height: calc(100vh - #{$header-height-mobile});
min-height: calc(100vh - #{$header-height-mobile} - #{$footer-height});
@media (min-width: map-get($grid-breakpoints, 'md')) {
min-height: 150vh;//calc(100vh - #{$header-height});
min-height: calc(100vh - #{$header-height} - #{$footer-height});
}

9
src/scss/icons.scss

@ -37,3 +37,12 @@
.icon-angle-down:before {
content: "\e903";
}
.icon-angle-top:before {
content: "\e904";
}
.icon-angle-right:before {
content: "\e905";
}
.icon-angle-left:before {
content: "\e906";
}

3
src/scss/main.scss

@ -4,6 +4,8 @@
/* Libraries */
@import "./node_modules/bootstrap/scss/bootstrap-grid";
@import "./node_modules/hamburgers/_sass/hamburgers/hamburgers";
@import "./node_modules/slick-slider/slick/slick.scss";
@import "./node_modules/slick-slider/slick/slick-theme.scss";
/* Global setup */
@import "../scss/fonts.scss";
@ -17,3 +19,4 @@
@import "./components/footer/footer.scss";
@import "./components/buy/buy.scss";
@import "./components/breadcrumb/breadcrumb.scss";
@import "./components/homeTemplate/homeTemplate.scss";

17
src/scss/variables.scss

@ -61,12 +61,27 @@ $hamburger-hover-opacity : 1;
$hamburger-active-layer-color : $olive-dark;
$hamburger-active-hover-opacity: $olive-dark;
// Slick settings
$slick-font-path: "../fonts/";
$slick-font-family: $icon;
$slick-loader-path: "/images/";
$slick-arrow-color: $brown;
$slick-dot-color: $brown;
$slick-dot-color-active: $slick-dot-color;
$slick-prev-character: "\e906";
$slick-next-character: "\e905";
$slick-dot-character: " ";
$slick-dot-size: 6px;
$slick-opacity-default: 0.75;
$slick-opacity-on-hover: 1;
$slick-opacity-not-active: 0.25;
$header-height: 200px;
$header-height-mobile: 110px;
$header-height-sticky: 60px;
$header-height-mobile-sticky: 60px;
$footer-height: 40px;
$footer-height: 250px;
/* Font-size variables */
$font-6: 0.375rem; /* 6px */

2
webpack.config.js

@ -140,7 +140,7 @@ module.exports = (env) => {
// IMAGES
{
test: /\.(jpg|jpeg|png)$/,
test: /\.(jpg|jpeg|gif|png)$/,
use: ['url-loader?limit=100000']
},

Loading…
Cancel
Save