Browse Source

page init

develop
Carmine De Rosa 5 years ago
parent
commit
58c6457f16
  1. 17
      .babelrc
  2. 34
      .eslintrc.json
  3. 313
      .gitignore
  4. 21
      components/ambassador/ambassador.html
  5. 5
      components/ambassador/ambassador.js
  6. 35
      components/ambassador/ambassador.scss
  7. 13
      components/footer/footer.html
  8. 5
      components/footer/footer.js
  9. 18
      components/footer/footer.scss
  10. 36
      components/header/header.html
  11. 5
      components/header/header.js
  12. 75
      components/header/header.scss
  13. 11
      components/info/info.html
  14. 5
      components/info/info.js
  15. 20
      components/info/info.scss
  16. 22
      components/questions/questions.html
  17. 5
      components/questions/questions.js
  18. 26
      components/questions/questions.scss
  19. 40
      components/register/register.html
  20. 5
      components/register/register.js
  21. 85
      components/register/register.scss
  22. 17
      components/teacher/teacher.html
  23. 5
      components/teacher/teacher.js
  24. 34
      components/teacher/teacher.scss
  25. 4
      components/test/test.html
  26. 5
      components/test/test.js
  27. 6
      components/test/test.scss
  28. 18
      comps.sh
  29. 9
      images/anes.svg
  30. 9
      images/b2bacademy.svg
  31. BIN
      images/bgquestions.png
  32. BIN
      images/header.png
  33. BIN
      images/logoWP.png
  34. 9
      images/marketmind.svg
  35. BIN
      images/people.png
  36. BIN
      images/teacher.png
  37. 53
      package.json
  38. 41
      pages/index.ejs
  39. 13
      postcss.config.js
  40. BIN
      src/fonts/icomoon.eot
  41. 15
      src/fonts/icomoon.svg
  42. BIN
      src/fonts/icomoon.ttf
  43. BIN
      src/fonts/icomoon.woff
  44. 1
      src/fonts/selection.json
  45. 20
      src/js/index.js
  46. 1
      src/scss/fonts.scss
  47. 230
      src/scss/forms.scss
  48. 125
      src/scss/global.scss
  49. 42
      src/scss/icons.scss
  50. 20
      src/scss/main.scss
  51. 69
      src/scss/mixins.scss
  52. 95
      src/scss/variables.scss
  53. 132
      webpack.config.js

17
.babelrc

@ -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"
]
}

34
.eslintrc.json

@ -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"
}
}

313
.gitignore

@ -0,0 +1,313 @@
# Cache, temp and personal files
/.htaccess
*.log
npm-debug.log.*
.sass-cache/
# Cache
/cache/*
!/cache/.htaccess
!/cache/cachefs/index.php
!/cache/deprecated.txt
!/cache/index.php
!/cache/purifier/index.php
!/cache/push/activity
!/cache/push/index.php
!/cache/push/trends
!/cache/sandbox/index.php
!/cache/smarty/cache/index.php
!/cache/smarty/compile/index.php
!/cache/smarty/index.php
!/cache/tcpdf/index.php
# Download
/download/*
!/download/.htaccess
!/download/index.php
# Images
/img/*
!/img/.htaccess
!/img/index.php
!/img/404.gif
!/img/bg_500.png
!/img/bg_loader.png
!/img/favicon.ico
!/img/loader.gif
!/img/loadingAnimation.gif
!/img/logo.jpg
!/img/logo.png
!/img/logo_invoice.jpg
!/img/logo_stores.png
!/img/macFFBgHack.png
!/img/prestashop-avatar.png
!/img/prestashop@2x.png
!/img/preston-login-wink@2x.png
!/img/preston-login@2x.png
!/img/questionmark.png
!/img/genders/index.php
!/img/admin/index.php
!/img/c/index.php
!/img/cms/index.php
!/img/co/index.php
!/img/jquery-ui
!/img/l/index.php
!/img/m/index.php
!/img/os/index.php
!/img/p/index.php
!/img/s/index.php
!/img/scenes
!/img/st/index.php
!/img/su/index.php
!/img/t/index.php
!/img/tmp/index.php
# Upload
/upload/*
!/upload/.htaccess
/vendor/*
/docs/phpdoc-sf/
/composer.lock
/tests/Selenium/errorShots/
!/tests/Selenium/errorShots/.gitkeep
/tests/Selenium/errorDumps/
!/tests/Selenium/errorDumps/.gitkeep
*.hot-update.js
*.hot-update.json
tests-legacy/resources/modules/followup/
tests-legacy/resources/modules/ps_emailalerts/
tests-legacy/resources/modules/ps_emailsubscription/mails/
tests-legacy/resources/modules/referralprogram/
/admin-dev/autoupgrade/*
!/admin-dev/autoupgrade/index.php
!/admin-dev/autoupgrade/backup/index.php
/admin-dev/backups/*
!/admin-dev/backups/.htaccess
/admin-dev/import/*
!/admin-dev/import/.htaccess
!/admin-dev/import/index.php
/admin-dev/export/*
!/admin-dev/export/.htaccess
!/admin-dev/export/index.php
themes/*/cache/*
# Config
config/settings.inc.php
config/settings.old.php
config/xml/*
config/themes/*
!config/xml/themes/default.xml
tests/Selenium/settings.js
themes/*/config/settings_*.json
app/config/parameters.old.yml
app/config/config.php
# Themes, modules and overrides
modules/*
!modules/hos*
!modules/creativeelements
!modules/amazzingfilter
!modules/addtofavoritesmywishlist
!override/*
!override/controllers/front/*
!override/classes/ObjectModel.php
themes/*/
!themes/classic
!themes/classic-fork
!themes/_core
!themes/_libraries
# Vendors and dependencies
bower_components/
node_modules/
composer.phar
php-cs-fixer
.grunt/*
# Translations and emails templates
translations/*
mails/*
!mails/en/
!mails/themes/
themes/default-bootstrap/lang/*
themes/default-bootstrap/modules/*/translations/*.php
themes/default-bootstrap/mails/*
!themes/default-bootstrap/mails/en/
themes/default-bootstrap/modules/*/mails/*
!themes/default-bootstrap/modules/*/mails/en
# MISC
*sitemap.xml
/robots.txt
# Symfony
/bin/
/.web-server-pid
/app/Resources/geoip/GeoLite2-City.mmdb
/app/Resources/translations/*
!/app/Resources/translations/default
/app/config/parameters.yml
/app/config/parameters.php
/build/
/phpunit.xml
/var/*
!/var/cache
/var/cache/*
!var/cache/.gitkeep
!/var/logs
/var/logs/*
!var/logs/.gitkeep
!/var/sessions
/var/sessions/*
!var/sessions/.gitkeep
!var/SymfonyRequirements.php
/vendor/
/web/bundles/
# Created by https://www.gitignore.io/api/linux,osx,windows,sublimetext,phpstorm
### Linux ###
*~
# KDE directory preferences
.directory
# Linux trash folder which might appear on any partition or disk
.Trash-*
### OSX ###
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
### Windows ###
# Windows image file caches
Thumbs.db
ehthumbs.db
# Folder config file
Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msm
*.msp
# Windows shortcuts
*.lnk
### SublimeText ###
# cache files for sublime text
*.tmlanguage.cache
*.tmPreferences.cache
*.stTheme.cache
# workspace files are user-specific
*.sublime-workspace
# project files should be checked into the repository, unless a significant
# proportion of contributors will probably not be using SublimeText
# *.sublime-project
# sftp configuration file
sftp-config.json
### PhpStorm ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio
*.iml
## Directory-based project format:
.idea/
## File-based project format:
*.ipr
*.iws
## Plugin-specific files:
# IntelliJ
/out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
### NetBeans ###
nbproject/private/
/build/
nbbuild/
dist/
nbdist/
nbactions.xml
nb-configuration.xml
.nb-gradle/
### Eclipse ###
.buildpath
.project
.settings/
.externalToolBuilders/
### Release creation ###
tools/build/releases/*
!tools/build/releases/.gitkeep
node_modules/
public/
package-lock.json
img/

21
components/ambassador/ambassador.html

@ -0,0 +1,21 @@
<div class="component-ambassador">
<div class="row container mx-auto">
<div class="col-6 ml-auto">
<h3 class="title">Diventa nostro ambassador</h3>
<div class="row">
<div class="col-8">
<span class="subtitle">In palio 2 borse di studio a copertura totale.</span>
<p class="text">
Compila la lettera di motivazione e rispondi alle nostre domande, puoi vincere un free-pass per la masterclass.
</p>
<button class="button button-blue mt-4">Compila</button>
</div>
</div>
</div>
<div class="col-5">
<img class="image" src="/images/people.png">
</div>
</div>
</div>

5
components/ambassador/ambassador.js

@ -0,0 +1,5 @@
$(document).ready( () => {
console.log('Load component - ambassador')
})

35
components/ambassador/ambassador.scss

@ -0,0 +1,35 @@
@import "../../src/scss/variables.scss";
@import "../../src/scss/mixins.scss";
.component-ambassador {
background: $light-grey;
.title {
display: block;
font-size: $font-48;
font-weight: normal;
color: $blue;
padding: 40px 0 30px 0;
}
.subtitle {
display: block;
font-size: $font-18;
font-weight: bold;
color: $dark-grey;
padding-bottom: 10px;
}
.text {
display: block;
font-size: $font-18;
font-weight: normal;
color: $dark-grey;
padding-bottom: 10px;
margin: 0;
}
.image {
width: 100%;
}
}

13
components/footer/footer.html

@ -0,0 +1,13 @@
<div class="component-footer">
<div class="row container mx-auto">
<div class="col-2 ml-auto d-flex">
<img class="image ml-auto" src="/images/anes.svg">
</div>
<div class="col-2 mr-auto d-flex">
<img class="image mr-auto" src="/images/marketmind.svg">
</div>
<div class="col-12 text">
Copyright – ANES, MarketMind Research. Per info: informazioni@info.com
</div>
</div>
</div>

5
components/footer/footer.js

@ -0,0 +1,5 @@
$(document).ready( () => {
console.log('Load component - footer')
})

18
components/footer/footer.scss

@ -0,0 +1,18 @@
@import "../../src/scss/variables.scss";
@import "../../src/scss/mixins.scss";
.component-footer {
background: $light-grey;
padding: 30px 0;
.text {
display: block;
font-size: $font-14;
font-weight: normal;
color: $dark-grey;
text-align: center;
padding: 30px 0 10px 0;
}
}

36
components/header/header.html

@ -0,0 +1,36 @@
<header class="component-header">
<div class="row container mx-auto">
<div class="col-5 ml-auto">
<div class="row">
<div class="col-5 p-3 text-center">
<img class="image" src="/images/b2bacademy.svg">
</div>
<div class="col-3 mx-auto p-3 text-center">
<p class="font-11 m-0">PARTNER</p>
<img class="image my-2" src="/images/anes.svg">
<img class="image my-2" src="/images/marketmind.svg">
</div>
<div class="col-12">
<h1 class="title">
Intelligenza Artificiale per il business
</h1>
<p class="subtitle">Master class</p>
<p class="text">
La Masterclass in Intelligenza Artificiale per il business è un weekend full-immersion di formazione in cui imparerai a comprendere e utilizzare le nuove tecnologie di A.I. per creare incredibili prodotti e servizi.
</p>
</div>
</div>
</div>
<div class="col-6">
<img class="image" src="/images/header.png">
</div>
</div>
<div class="line">
<div class="container mx-auto">
<span class="line-text pr-2">Codice Early Bird -20% </span>
<span class="code">XPR3877</span>
</div>
</div>
</header>

5
components/header/header.js

@ -0,0 +1,5 @@
$(document).ready( () => {
console.log('Load component - header')
})

75
components/header/header.scss

@ -0,0 +1,75 @@
@import "../../src/scss/variables.scss";
@import "../../src/scss/mixins.scss";
.component-header {
width: 100%;
background: $light-grey;
.image {
width: 100%;
}
.title {
display: block;
font-size: $font-50;
font-weight: 300;
line-height: 60px;
color: $blue;
padding: 40px 0 5px 0;
margin: 0;
&:after {
display: block;
content: '';
height: 2px;
margin-top: 20px;
width: 100%;
background: linear-gradient(to right, $blue, $light-grey);
}
}
.subtitle {
font-size: $font-18;
font-weight: bold;
line-height: 20px;
color: $dark-grey;
padding: 25px 0;
margin: 0;
text-transform: uppercase;
}
.text {
font-size: $font-18;
font-weight: normal;
line-height: 22px;
padding-bottom: 50px;
margin: 0;
color: $dark-grey;
}
.line {
background: $yellow;
height: 70px;
text-align: center;
.container {
height: 70px;
line-height: 70px;
.line-text {
display: inline-block;
color: $black;
font-size: $font-18;
text-transform: uppercase;
font-weight: normal;
}
.code {
display: inline-block;
color: $black;
font-size: $font-32;
font-weight: bold;
}
}
}
}

11
components/info/info.html

@ -0,0 +1,11 @@
<div class="component-info">
<div class="row container mx-auto">
<div class="col-6 mx-auto text-center">
<h3 class="title">Alcune domande a cui saprai rispondere</h3>
<p class="text">
Scrivi a<br>
informazioni@info.it
</p>
</div>
</div>
</div>

5
components/info/info.js

@ -0,0 +1,5 @@
$(document).ready( () => {
console.log('Load component - info')
})

20
components/info/info.scss

@ -0,0 +1,20 @@
@import "../../src/scss/variables.scss";
@import "../../src/scss/mixins.scss";
.component-info {
.title {
display: block;
font-size: $font-32;
font-weight: bold;
color: $blue;
padding: 30px 0;
}
.text {
display: block;
font-size: $font-20;
font-weight: normal;
color: $dark-grey;
padding-bottom: 20px;
}
}

22
components/questions/questions.html

@ -0,0 +1,22 @@
<div class="component-questions">
<div class="row container mx-auto">
<div class="col-6 mx-auto text-center">
<h3 class="title">Alcune domande a cui saprai rispondere</h3>
<p class="item">
Cos'è esattamente l'intelligenza artificiale?<br>
E quali sono i suoi limiti attuali?
</p>
<p class="item">
Cos'è il Machine Learning e che valore può consegnare alla mia azienda / startup?
</p>
<p class="item">
Dove reperire la tecnologia necessaria per sviluppare un primo progetto di AI?
</p>
<p class="item">
Quali sono le metodologie che consentono di prototipare rapidamente proof-of-concept con poco effort e poco budget?
</p>
<p class="item">
Qual è il processo di adozione che dovrei seguire per gestire l'implementazione di un primo progetto di AI?
</p>
</div>
</div>
</div>

5
components/questions/questions.js

@ -0,0 +1,5 @@
$(document).ready( () => {
console.log('Load component - questions')
})

26
components/questions/questions.scss

@ -0,0 +1,26 @@
@import "../../src/scss/variables.scss";
@import "../../src/scss/mixins.scss";
.component-questions {
background-image: url(/images/bgquestions.png);
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
padding: 40px 0;
.title {
display: block;
font-size: $font-32;
font-weight: bold;
color: $blue;
padding: 40px 0;
}
.item {
display: block;
font-size: $font-20;
font-weight: normal;
color: $dark-grey;
padding-bottom: 20px;
}
}

40
components/register/register.html

@ -0,0 +1,40 @@
<div class="component-register">
<div class="row mx-auto">
<div class="col-5 pt-5 ml-auto">
<div class="item">
<span class="icon icon-marker"></span>
<span class="title">Milano</span>
</div>
<div class="item">
<span class="icon icon-calendar"></span>
<span class="title">6-7 Giugno 2020</span>
</div>
<div class="item">
<span class="icon icon-hourglass"></span>
<span class="title">14 ore di lezioni e workshop</span>
</div>
<div class="item">
<span class="icon icon-tag"></span>
<span class="title">EARLY BIRD 300 €</span>
<span class="subtitle">registrazioni fino al 15/3/2020</span>
<span class="title mt-2">ADVANCED: 400€ </span>
<span class="subtitle">registrazioni fino al 15/4/2020</span>
</div>
<button class="button button-blue mt-4">Registrazione</button>
</div>
<div class="list col-4 mx-auto">
<h3 class="title">A chi è rivolto</h3>
<p class="subtitle">Il weekend full immersion è dedicato a:</p>
<span class="list-item">
Manager e decision maker che desiderano comprendere e sfruttare il nuovo trend tecnologico dell'Intelligenza Artificiale da un punto di vista business e organizzativo.
</span>
<span class="list-item">
Professionisti del settore IT che desiderano comprendere le metodologie di adozione e come analizzare e valutare i business case abilitati da tecnologie di Intelligenza Artificiale.
</span>
<span class="list-item">
Chiunque voglia diventare una figura di riferimento all'interno della propria società/startup per tutte le tematiche inerenti all'A.I..
</span>
</div>
</div>
</div>

5
components/register/register.js

@ -0,0 +1,5 @@
$(document).ready( () => {
console.log('Load component - register')
})

85
components/register/register.scss

@ -0,0 +1,85 @@
@import "../../src/scss/variables.scss";
@import "../../src/scss/mixins.scss";
.component-register {
.item {
position: relative;
display: block;
padding: 15px 0;
border-bottom: 1px solid $light-grey;
&:last-of-type {
border-bottom: none;
}
.icon {
position: absolute;
display: block;
color: $blue;
font-size: $font-20;
line-height: 25px;
}
.title {
display: block;
font-size: $font-18;
font-weight: normal;
color: $dark-grey;
text-transform: uppercase;
padding-left: 40px;
}
.subtitle {
display: block;
font-size: $font-14;
font-weight: normal;
color: $dark-grey;
text-transform: uppercase;
padding-left: 40px;
}
}
.list {
.title {
display: block;
font-size: $font-32;
font-weight: bold;
color: $blue;
&:after {
display: block;
content: '';
height: 2px;
margin-top: 20px;
width: 100%;
background: linear-gradient(to right, $blue, $light-grey);
}
}
.subtitle {
display: block;
font-size: $font-16;
font-weight: bold;
color: $dark-grey;
padding-top: 20px;
}
.list-item {
position: relative;
display: block;
font-size: $font-18;
font-weight: normal;
color: $dark-grey;
padding: 0 20px 20px 40px;
&:before {
content: '\e901';
position: absolute;
left: 0;
font-family: $icon;
font-size: $font-20;
color: $blue;
}
}
}
}

17
components/teacher/teacher.html

@ -0,0 +1,17 @@
<div class="component-teacher">
<div class="row">
<div class="col-4 ml-auto d-flex">
<img class="image mx-auto my-auto" src="/images/teacher.png">
</div>
<div class="col-5 mr-auto">
<h3 class="title">Docente</h3>
<span class="subtitle">Fabio Foglia</span>
<p class="text">
È un co-founder e partner di MarketMind Research e nella sua carriera ha aiutato numerose organizzazioni (tra cui banche, società di assicurazioni, ospedali e università) a implementare progetti di Intelligenza Artificiale e predictive analytics.
</p>
<p class="text">
È attualmente docente a contratto presso l'Università Luigi Bocconi e presso la scuola d'innovazione Talent Garden dove si occupa di Intelligenza Artificiale applicata.Ha lavorato come consulente in numerose multinazionali, in particolare all'interno del settore IT Governance.
</p>
</div>
</div>
</div>

5
components/teacher/teacher.js

@ -0,0 +1,5 @@
$(document).ready( () => {
console.log('Load component - teacher')
})

34
components/teacher/teacher.scss

@ -0,0 +1,34 @@
@import "../../src/scss/variables.scss";
@import "../../src/scss/mixins.scss";
.component-teacher {
.image {
width: 60%
}
.title {
display: block;
font-size: $font-48;
font-weight: normal;
color: $blue;
padding: 40px 0 20px 0;
}
.subtitle {
display: block;
font-size: $font-22;
font-weight: bold;
color: $dark-grey;
padding-bottom: 20px;
}
.text {
display: block;
font-size: $font-18;
font-weight: normal;
color: $dark-grey;
padding-bottom: 20px;
margin: 0;
}
}

4
components/test/test.html

@ -0,0 +1,4 @@
<div class="component-test">
<div class="row no-gutters">
</div>
</div>

5
components/test/test.js

@ -0,0 +1,5 @@
$(document).ready( () => {
console.log('Load component - test')
})

6
components/test/test.scss

@ -0,0 +1,6 @@
@import "../../src/scss/variables.scss";
@import "../../src/scss/mixins.scss";
.component-test {
}

18
comps.sh

@ -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

9
images/anes.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.2 KiB

9
images/b2bacademy.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 46 KiB

BIN
images/bgquestions.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 KiB

BIN
images/header.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 KiB

BIN
images/logoWP.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

9
images/marketmind.svg

@ -0,0 +1,9 @@
<svg width="104" height="38" viewBox="0 0 104 38" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<rect width="104" height="38" fill="url(#pattern0)"/>
<defs>
<pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#image0" transform="translate(-0.00052687) scale(0.00500527 0.0136986)"/>
</pattern>
<image id="image0" width="200" height="73" xlink:href="data:image/png;base64,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"/>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
images/people.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 317 KiB

BIN
images/teacher.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

53
package.json

@ -0,0 +1,53 @@
{
"name": "anes",
"version": "1.0.0",
"description": "ANES",
"main": "index.js",
"repository": "git@2.238.194.8:2222/git/anes.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",
"add-comp": "sh ./comps.sh add",
"del-comp": "sh ./comps.sh del",
"preview": "yarn prod && http-server",
"clean": "rm -rf ./node_modules ./public ./package-lock.json"
},
"author": "Dslak",
"license": "MIT",
"dependencies": {
"@babel/core": "^7.5.4",
"@babel/preset-env": "^7.6.3",
"autoprefixer": "^9.6.0",
"babel-eslint": "^10.0.2",
"babel-loader": "^8.0.6",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-plugin-transform-object-assign": "^6.22.0",
"babel-preset-env": "^1.7.0",
"bootstrap": "^4.3.1",
"copy-webpack-plugin": "^5.0.3",
"css-loader": "^3.0.0",
"es6-promise-promise": "^1.0.0",
"eslint": "^6.0.1",
"eslint-config-google": "^0.13.0",
"eslint-config-prettier": "^6.0.0",
"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",
"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.41.1",
"webpack-cli": "^3.3.9",
"webpack-notifier": "^1.8.0"
}
}

41
pages/index.ejs

@ -0,0 +1,41 @@
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<title>Anes</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<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">
${require('../components/register/register.html')}
</section>
<section class="container container-full">
${require('../components/questions/questions.html')}
</section>
<section class="container">
${require('../components/teacher/teacher.html')}
</section>
<section class="container container-full">
${require('../components/ambassador/ambassador.html')}
</section>
<section class="container">
${require('../components/info/info.html')}
</section>
</main>
${require('../components/footer/footer.html')}
</body>
</html>

13
postcss.config.js

@ -0,0 +1,13 @@
const autoprefixer = require('autoprefixer')
module.exports = {
plugins: [
autoprefixer({
overrideBrowserslist: [
'last 2 versions',
'> 1%',
'maintained node versions',
'not dead', 'ie >= 10']
})
]
}

BIN
src/fonts/icomoon.eot

Binary file not shown.

15
src/fonts/icomoon.svg

@ -0,0 +1,15 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Generated by IcoMoon</metadata>
<defs>
<font id="icomoon" horiz-adv-x="1024">
<font-face units-per-em="1024" ascent="960" descent="-64" />
<missing-glyph horiz-adv-x="1024" />
<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
<glyph unicode="&#xe900;" glyph-name="calendar" horiz-adv-x="896" d="M872 640h-848c-13.254 0-24 10.746-24 24v72c0 53.020 42.98 96 96 96h96v104c0 13.254 10.746 24 24 24h80c13.254 0 24-10.746 24-24v-104h256v104c0 13.254 10.746 24 24 24h80c13.254 0 24-10.746 24-24v-104h96c53.020 0 96-42.98 96-96v-72c0-13.254-10.746-24-24-24zM24 576h848c13.254 0 24-10.746 24-24v-520c0-53.020-42.98-96-96-96h-704c-53.020 0-96 42.98-96 96v520c0 13.254 10.746 24 24 24zM690.592 384.106l-56.338 56.796c-9.334 9.41-24.53 9.472-33.94 0.136l-212.074-210.368-91.96 92.704c-9.334 9.41-24.532 9.472-33.942 0.136l-56.794-56.34c-9.41-9.334-9.472-24.53-0.136-33.94l165.202-166.538c9.334-9.41 24.53-9.472 33.94-0.136l285.906 283.61c9.41 9.334 9.472 24.53 0.136 33.94z" />
<glyph unicode="&#xe901;" glyph-name="check" d="M512 944c-273.934 0-496-222.066-496-496s222.066-496 496-496 496 222.066 496 496-222.066 496-496 496zM512 848c221.064 0 400-178.902 400-400 0-221.064-178.902-400-400-400-221.064 0-400 178.902-400 400 0 221.064 178.902 400 400 400zM792.408 587.466l-45.072 45.436c-9.334 9.41-24.53 9.472-33.94 0.136l-282.704-280.432-119.584 120.554c-9.334 9.41-24.53 9.472-33.94 0.138l-45.438-45.072c-9.41-9.334-9.472-24.53-0.136-33.942l181.562-183.032c9.334-9.41 24.53-9.472 33.94-0.136l345.178 342.408c9.408 9.336 9.468 24.532 0.134 33.942z" />
<glyph unicode="&#xe902;" glyph-name="hourglass" horiz-adv-x="768" d="M720 960h-672c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48 0-181.93 102.032-335.468 241.684-384-139.652-48.532-241.684-202.070-241.684-384-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h672c26.51 0 48 21.49 48 48v32c0 26.51-21.49 48-48 48 0 181.93-102.032 335.468-241.684 384 139.652 48.532 241.684 202.070 241.684 384 26.51 0 48 21.49 48 48v32c0 26.51-21.49 48-48 48zM569.844 192h-371.684c34.118 93.594 104.192 160 185.84 160 81.642 0 151.724-66.392 185.844-160zM569.882 704h-371.726c-14.18 38.904-22.156 82.504-22.156 128h416c0-45.61-7.974-89.174-22.118-128z" />
<glyph unicode="&#xe903;" glyph-name="marker" horiz-adv-x="768" d="M344.536-43.34c-290.596 421.278-344.536 464.514-344.536 619.34 0 212.078 171.922 384 384 384s384-171.922 384-384c0-154.826-53.94-198.062-344.536-619.34-19.070-27.548-59.86-27.546-78.928 0zM384 416c88.366 0 160 71.634 160 160s-71.634 160-160 160-160-71.634-160-160 71.634-160 160-160z" />
<glyph unicode="&#xe904;" glyph-name="tag" d="M0 455.764v408.236c0 53.020 42.98 96 96 96h408.236c26.51 0 50.509-10.745 67.882-28.118l423.764-423.764c37.49-37.49 37.49-98.274 0-135.764l-408.236-408.236c-37.49-37.49-98.274-37.49-135.764 0l-423.764 423.764c-17.373 17.373-28.118 41.372-28.118 67.882v0zM224 832c-53.020 0-96-42.98-96-96s42.98-96 96-96 96 42.98 96 96-42.98 96-96 96z" />
</font></defs></svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
src/fonts/icomoon.ttf

Binary file not shown.

BIN
src/fonts/icomoon.woff

Binary file not shown.

1
src/fonts/selection.json

@ -0,0 +1 @@
{"IcoMoonType":"selection","icons":[{"icon":{"paths":["M872 320h-848c-13.254 0-24-10.746-24-24v-72c0-53.020 42.98-96 96-96h96v-104c0-13.254 10.746-24 24-24h80c13.254 0 24 10.746 24 24v104h256v-104c0-13.254 10.746-24 24-24h80c13.254 0 24 10.746 24 24v104h96c53.020 0 96 42.98 96 96v72c0 13.254-10.746 24-24 24zM24 384h848c13.254 0 24 10.746 24 24v520c0 53.020-42.98 96-96 96h-704c-53.020 0-96-42.98-96-96v-520c0-13.254 10.746-24 24-24zM690.592 575.894l-56.338-56.796c-9.334-9.41-24.53-9.472-33.94-0.136l-212.074 210.368-91.96-92.704c-9.334-9.41-24.532-9.472-33.942-0.136l-56.794 56.34c-9.41 9.334-9.472 24.53-0.136 33.94l165.202 166.538c9.334 9.41 24.53 9.472 33.94 0.136l285.906-283.61c9.41-9.334 9.472-24.53 0.136-33.94z"],"attrs":[{}],"width":896,"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["calendar"]},"attrs":[{}],"properties":{"order":78,"id":4,"name":"calendar","prevSize":32,"code":59648},"setIdx":0,"setId":0,"iconIdx":0},{"icon":{"paths":["M512 16c-273.934 0-496 222.066-496 496s222.066 496 496 496 496-222.066 496-496-222.066-496-496-496zM512 112c221.064 0 400 178.902 400 400 0 221.064-178.902 400-400 400-221.064 0-400-178.902-400-400 0-221.064 178.902-400 400-400zM792.408 372.534l-45.072-45.436c-9.334-9.41-24.53-9.472-33.94-0.136l-282.704 280.432-119.584-120.554c-9.334-9.41-24.53-9.472-33.94-0.138l-45.438 45.072c-9.41 9.334-9.472 24.53-0.136 33.942l181.562 183.032c9.334 9.41 24.53 9.472 33.94 0.136l345.178-342.408c9.408-9.336 9.468-24.532 0.134-33.942z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["check"]},"attrs":[{}],"properties":{"order":79,"id":3,"name":"check","prevSize":32,"code":59649},"setIdx":0,"setId":0,"iconIdx":1},{"icon":{"paths":["M720 0h-672c-26.51 0-48 21.49-48 48v32c0 26.51 21.49 48 48 48 0 181.93 102.032 335.468 241.684 384-139.652 48.532-241.684 202.070-241.684 384-26.51 0-48 21.49-48 48v32c0 26.51 21.49 48 48 48h672c26.51 0 48-21.49 48-48v-32c0-26.51-21.49-48-48-48 0-181.93-102.032-335.468-241.684-384 139.652-48.532 241.684-202.070 241.684-384 26.51 0 48-21.49 48-48v-32c0-26.51-21.49-48-48-48zM569.844 768h-371.684c34.118-93.594 104.192-160 185.84-160 81.642 0 151.724 66.392 185.844 160zM569.882 256h-371.726c-14.18-38.904-22.156-82.504-22.156-128h416c0 45.61-7.974 89.174-22.118 128z"],"attrs":[{}],"width":768,"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["hourglass"]},"attrs":[{}],"properties":{"order":80,"id":2,"name":"hourglass","prevSize":32,"code":59650},"setIdx":0,"setId":0,"iconIdx":2},{"icon":{"paths":["M344.536 1003.34c-290.596-421.278-344.536-464.514-344.536-619.34 0-212.078 171.922-384 384-384s384 171.922 384 384c0 154.826-53.94 198.062-344.536 619.34-19.070 27.548-59.86 27.546-78.928 0zM384 544c88.366 0 160-71.634 160-160s-71.634-160-160-160-160 71.634-160 160 71.634 160 160 160z"],"attrs":[{}],"width":768,"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["marker"]},"attrs":[{}],"properties":{"order":81,"id":1,"name":"marker","prevSize":32,"code":59651},"setIdx":0,"setId":0,"iconIdx":3},{"icon":{"paths":["M0 504.236v-408.236c0-53.020 42.98-96 96-96h408.236c26.51 0 50.509 10.745 67.882 28.118l423.764 423.764c37.49 37.49 37.49 98.274 0 135.764l-408.236 408.236c-37.49 37.49-98.274 37.49-135.764 0l-423.764-423.764c-17.373-17.373-28.118-41.372-28.118-67.882l-0-0zM224 128c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["tag"]},"attrs":[{}],"properties":{"order":82,"id":0,"name":"tag","prevSize":32,"code":59652},"setIdx":0,"setId":0,"iconIdx":4}],"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}}

20
src/js/index.js

@ -0,0 +1,20 @@
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()
})
}
}
};

1
src/scss/fonts.scss

@ -0,0 +1 @@
@import url('https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap');

230
src/scss/forms.scss

@ -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: $grey;
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 $grey;
& + .label-text,
& + label {
color: $grey;
}
}
}
fieldset,
.fieldset {
position: relative;
padding-bottom: 35px;
.label-text {
color: $grey;
&.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-grey.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 $grey;
}
&:after {
content: '';
position: absolute;
display: none;
}
}
input {
position: absolute;
opacity: 0;
cursor: pointer;
height: 0;
width: 0;
&:checked ~ .checkmark {
background: $black;
&:after {
display: block;
}
}
}
}

125
src/scss/global.scss

@ -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-grey {
color: $grey;
}
.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});
&.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;
}

42
src/scss/icons.scss

@ -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-calendar:before {
content: "\e900";
}
.icon-check:before {
content: "\e901";
}
.icon-hourglass:before {
content: "\e902";
}
.icon-marker:before {
content: "\e903";
}
.icon-tag:before {
content: "\e904";
}

20
src/scss/main.scss

@ -0,0 +1,20 @@
@import "../scss/variables.scss";
@import "../scss/mixins.scss";
/* Libraries */
@import "./node_modules/bootstrap/scss/bootstrap";
/* Global setup */
@import "../scss/fonts.scss";
@import "../scss/icons.scss";
@import "../scss/global.scss";
@import "../scss/forms.scss";
@import "./components/test/test.scss";
@import "./components/header/header.scss";
@import "./components/register/register.scss";
@import "./components/questions/questions.scss";
@import "./components/teacher/teacher.scss";
@import "./components/ambassador/ambassador.scss";
@import "./components/info/info.scss";
@import "./components/footer/footer.scss";

69
src/scss/mixins.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;
}

95
src/scss/variables.scss

@ -0,0 +1,95 @@
// 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: 1440px,
xl: 1560px
);
$container-max-widths: (
sm: 768px,
md: 984px,
lg: 1440px,
xl: 1560px
);
$font-serif: 'Roboto';
$font-sans: 'Roboto';
$icon: 'icomoon';
$black: #000;
$white: #fff;
$grey: #c2c0bd;
$light-grey: #E4E9ED;
$dark-grey: #5A6B73;
$red: #ea0032;
$light-green: #8cd69b;
$blue: #16ACBB;
$yellow: #FFD600;
$white-alpha: rgba(255, 255, 255, 0.8);
$black-alpha: rgba(0, 0, 0, 0.8);
$grey-alpha: rgba(180, 180, 180, 0.6);
$header-height: 130px;
$header-height-mobile: 50px;
$footer-height: 65px;
/* 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 */

132
webpack.config.js

@ -0,0 +1,132 @@
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 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 WebpackNotifierPlugin({
title: 'Anes',
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',
},
])
]
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…
Cancel
Save