Browse Source

add products

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

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;

10
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">
@ -34,6 +36,8 @@
</div>
<?php
@include('components/sectionHeader/sectionHeader.php');
if(!$isHome) {
@include('components/sectionHeader/sectionHeader.php');
}
?>
</header>

9
components/header/header.scss

@ -107,6 +107,15 @@
}
}
}
&.is-home {
background: transparent;
.header-wrapper {
.logo {
display: none;
}
}
}
}

55
components/homeTemplate/homeTemplate.html

@ -0,0 +1,55 @@
<div class="component-homeTemplate">
<div class="banner">
<div class="container logo-container">
<img class="logo" src="/images/logo.png">
</div>
</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">
<img class="image" src="<?= '/images/products/'.$r['id'].'.png';?>">
<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>
<?php
}
?>
<div class="slide">
<img class="image" src="/images/products/2.png">
<div class="description">
<span class="title">Ottembrino</span>
<span class="subtitle">Lorem ipsum dolor sit amet</span>
</div>
</div>
<div class="slide">
<img class="image" src="/images/products/3.png">
<div class="description">
<span class="title">Non filtrato</span>
<span class="subtitle">Lorem ipsum dolor sit amet</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

15
components/homeTemplate/homeTemplate.js

@ -0,0 +1,15 @@
$(document).ready( () => {
console.log('Load component - homeTemplate')
const component = $('.component-homeTemplate')
if(component.length) {
const slider = component.find('.slider')
slider.slick({
//setting-name: setting-value
})
}
})

111
components/homeTemplate/homeTemplate.scss

@ -0,0 +1,111 @@
@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;
}
}
}
.products {
background: linear-gradient(0deg, $white 0%, $white 15%, $light-gray 15%, $light-gray 75%, $white 75%, $white 100%);
.main-image {
width: 100%;
margin: auto auto 5% auto;
border: 1px solid $light-gray;
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;
padding: 0 10px;
}
.description {
position: relative;
width: 45%;
padding: 50% 20px 10% 20px;
float: left;
.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: 4;
-webkit-box-orient: vertical;
}
}
.link {
position: absolute;
display: block;
bottom: 20%;
left: 0;
width: 100%;
text-align: center;
.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;
}
}
}
}
}

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)) {

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