diff --git a/.babelrc b/.babelrc
new file mode 100644
index 0000000..8b0913b
--- /dev/null
+++ b/.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"
+ ]
+}
diff --git a/.eslintrc.json b/.eslintrc.json
new file mode 100644
index 0000000..220693c
--- /dev/null
+++ b/.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"
+ }
+}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..c3f6cf6
--- /dev/null
+++ b/.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/
diff --git a/components/ambassador/ambassador.html b/components/ambassador/ambassador.html
new file mode 100644
index 0000000..99a1c96
--- /dev/null
+++ b/components/ambassador/ambassador.html
@@ -0,0 +1,21 @@
+
+
+
+
Diventa nostro ambassador
+
+
+
+
In palio 2 borse di studio a copertura totale.
+
+ Compila la lettera di motivazione e rispondi alle nostre domande, puoi vincere un free-pass per la masterclass.
+
+
Compila
+
+
+
+
+
+
+
+
+
diff --git a/components/ambassador/ambassador.js b/components/ambassador/ambassador.js
new file mode 100644
index 0000000..b1e324c
--- /dev/null
+++ b/components/ambassador/ambassador.js
@@ -0,0 +1,5 @@
+
+$(document).ready( () => {
+ console.log('Load component - ambassador')
+
+})
\ No newline at end of file
diff --git a/components/ambassador/ambassador.scss b/components/ambassador/ambassador.scss
new file mode 100644
index 0000000..6133d99
--- /dev/null
+++ b/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%;
+ }
+}
diff --git a/components/footer/footer.html b/components/footer/footer.html
new file mode 100644
index 0000000..1739924
--- /dev/null
+++ b/components/footer/footer.html
@@ -0,0 +1,13 @@
+
diff --git a/components/footer/footer.js b/components/footer/footer.js
new file mode 100644
index 0000000..23dd2cf
--- /dev/null
+++ b/components/footer/footer.js
@@ -0,0 +1,5 @@
+
+$(document).ready( () => {
+ console.log('Load component - footer')
+
+})
\ No newline at end of file
diff --git a/components/footer/footer.scss b/components/footer/footer.scss
new file mode 100644
index 0000000..b1be5cd
--- /dev/null
+++ b/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;
+ }
+
+}
diff --git a/components/header/header.html b/components/header/header.html
new file mode 100644
index 0000000..d1dae4e
--- /dev/null
+++ b/components/header/header.html
@@ -0,0 +1,36 @@
+
diff --git a/components/header/header.js b/components/header/header.js
new file mode 100644
index 0000000..b8f6f54
--- /dev/null
+++ b/components/header/header.js
@@ -0,0 +1,5 @@
+
+$(document).ready( () => {
+ console.log('Load component - header')
+
+})
\ No newline at end of file
diff --git a/components/header/header.scss b/components/header/header.scss
new file mode 100644
index 0000000..e87106e
--- /dev/null
+++ b/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;
+ }
+ }
+ }
+}
diff --git a/components/info/info.html b/components/info/info.html
new file mode 100644
index 0000000..c44ef73
--- /dev/null
+++ b/components/info/info.html
@@ -0,0 +1,11 @@
+
+
+
+
Alcune domande a cui saprai rispondere
+
+ Scrivi a
+ informazioni@info.it
+
+
+
+
diff --git a/components/info/info.js b/components/info/info.js
new file mode 100644
index 0000000..3198696
--- /dev/null
+++ b/components/info/info.js
@@ -0,0 +1,5 @@
+
+$(document).ready( () => {
+ console.log('Load component - info')
+
+})
\ No newline at end of file
diff --git a/components/info/info.scss b/components/info/info.scss
new file mode 100644
index 0000000..32517cc
--- /dev/null
+++ b/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;
+ }
+}
diff --git a/components/questions/questions.html b/components/questions/questions.html
new file mode 100644
index 0000000..36d566a
--- /dev/null
+++ b/components/questions/questions.html
@@ -0,0 +1,22 @@
+
+
+
+
Alcune domande a cui saprai rispondere
+
+ Cos'è esattamente l'intelligenza artificiale?
E quali sono i suoi limiti attuali?
+
+
+ Cos'è il Machine Learning e che valore può consegnare alla mia azienda / startup?
+
+
+ Dove reperire la tecnologia necessaria per sviluppare un primo progetto di AI?
+
+
+ Quali sono le metodologie che consentono di prototipare rapidamente proof-of-concept con poco effort e poco budget?
+
+
+ Qual è il processo di adozione che dovrei seguire per gestire l'implementazione di un primo progetto di AI?
+
+
+
+
diff --git a/components/questions/questions.js b/components/questions/questions.js
new file mode 100644
index 0000000..9c151ab
--- /dev/null
+++ b/components/questions/questions.js
@@ -0,0 +1,5 @@
+
+$(document).ready( () => {
+ console.log('Load component - questions')
+
+})
\ No newline at end of file
diff --git a/components/questions/questions.scss b/components/questions/questions.scss
new file mode 100644
index 0000000..19e49b2
--- /dev/null
+++ b/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;
+ }
+}
diff --git a/components/register/register.html b/components/register/register.html
new file mode 100644
index 0000000..007e45d
--- /dev/null
+++ b/components/register/register.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+ Milano
+
+
+
+ 6-7 Giugno 2020
+
+
+
+ 14 ore di lezioni e workshop
+
+
+
+ EARLY BIRD 300 €
+ registrazioni fino al 15/3/2020
+ ADVANCED: 400€
+ registrazioni fino al 15/4/2020
+
+
+
Registrazione
+
+
+
A chi è rivolto
+
Il weekend full immersion è dedicato a:
+
+ Manager e decision maker che desiderano comprendere e sfruttare il nuovo trend tecnologico dell'Intelligenza Artificiale da un punto di vista business e organizzativo.
+
+
+ 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.
+
+
+ Chiunque voglia diventare una figura di riferimento all'interno della propria società/startup per tutte le tematiche inerenti all'A.I..
+
+
+
+
diff --git a/components/register/register.js b/components/register/register.js
new file mode 100644
index 0000000..3964250
--- /dev/null
+++ b/components/register/register.js
@@ -0,0 +1,5 @@
+
+$(document).ready( () => {
+ console.log('Load component - register')
+
+})
\ No newline at end of file
diff --git a/components/register/register.scss b/components/register/register.scss
new file mode 100644
index 0000000..f1c5375
--- /dev/null
+++ b/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;
+ }
+ }
+ }
+}
diff --git a/components/teacher/teacher.html b/components/teacher/teacher.html
new file mode 100644
index 0000000..c969e0f
--- /dev/null
+++ b/components/teacher/teacher.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
Docente
+
Fabio Foglia
+
+ È 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.
+
+
+ È 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.
+
+
+
+
diff --git a/components/teacher/teacher.js b/components/teacher/teacher.js
new file mode 100644
index 0000000..3a6d1cf
--- /dev/null
+++ b/components/teacher/teacher.js
@@ -0,0 +1,5 @@
+
+$(document).ready( () => {
+ console.log('Load component - teacher')
+
+})
\ No newline at end of file
diff --git a/components/teacher/teacher.scss b/components/teacher/teacher.scss
new file mode 100644
index 0000000..ac1cfe3
--- /dev/null
+++ b/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;
+ }
+}
diff --git a/components/test/test.html b/components/test/test.html
new file mode 100644
index 0000000..1c4c464
--- /dev/null
+++ b/components/test/test.html
@@ -0,0 +1,4 @@
+
\ No newline at end of file
diff --git a/components/test/test.js b/components/test/test.js
new file mode 100644
index 0000000..fa977c3
--- /dev/null
+++ b/components/test/test.js
@@ -0,0 +1,5 @@
+
+$(document).ready( () => {
+ console.log('Load component - test')
+
+})
\ No newline at end of file
diff --git a/components/test/test.scss b/components/test/test.scss
new file mode 100644
index 0000000..f013f1b
--- /dev/null
+++ b/components/test/test.scss
@@ -0,0 +1,6 @@
+@import "../../src/scss/variables.scss";
+@import "../../src/scss/mixins.scss";
+
+.component-test {
+
+}
\ No newline at end of file
diff --git a/comps.sh b/comps.sh
new file mode 100644
index 0000000..41b7b94
--- /dev/null
+++ b/comps.sh
@@ -0,0 +1,18 @@
+
+COMPDIR="components/$2"
+
+if [ ${1} = "add" ]
+then
+ mkdir $COMPDIR
+ printf "" > "$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
+
diff --git a/images/anes.svg b/images/anes.svg
new file mode 100644
index 0000000..ddbc23a
--- /dev/null
+++ b/images/anes.svg
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/images/b2bacademy.svg b/images/b2bacademy.svg
new file mode 100644
index 0000000..53b5ab6
--- /dev/null
+++ b/images/b2bacademy.svg
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/images/bgquestions.png b/images/bgquestions.png
new file mode 100644
index 0000000..23a2505
Binary files /dev/null and b/images/bgquestions.png differ
diff --git a/images/header.png b/images/header.png
new file mode 100644
index 0000000..c4c1e04
Binary files /dev/null and b/images/header.png differ
diff --git a/images/logoWP.png b/images/logoWP.png
new file mode 100644
index 0000000..2e621f0
Binary files /dev/null and b/images/logoWP.png differ
diff --git a/images/marketmind.svg b/images/marketmind.svg
new file mode 100644
index 0000000..29bad54
--- /dev/null
+++ b/images/marketmind.svg
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/images/people.png b/images/people.png
new file mode 100644
index 0000000..5037aa0
Binary files /dev/null and b/images/people.png differ
diff --git a/images/teacher.png b/images/teacher.png
new file mode 100644
index 0000000..dc9d113
Binary files /dev/null and b/images/teacher.png differ
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..0f20e38
--- /dev/null
+++ b/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"
+ }
+}
diff --git a/pages/index.ejs b/pages/index.ejs
new file mode 100644
index 0000000..502f404
--- /dev/null
+++ b/pages/index.ejs
@@ -0,0 +1,41 @@
+
+
+
+
+ Anes
+
+
+
+
+
+
+ ${require('../components/header/header.html')}
+
+
+
+
+ ${require('../components/register/register.html')}
+
+
+
+ ${require('../components/questions/questions.html')}
+
+
+
+ ${require('../components/teacher/teacher.html')}
+
+
+
+ ${require('../components/ambassador/ambassador.html')}
+
+
+
+ ${require('../components/info/info.html')}
+
+
+
+
+ ${require('../components/footer/footer.html')}
+
+
+
diff --git a/postcss.config.js b/postcss.config.js
new file mode 100644
index 0000000..02d7892
--- /dev/null
+++ b/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']
+ })
+ ]
+}
diff --git a/src/fonts/icomoon.eot b/src/fonts/icomoon.eot
new file mode 100644
index 0000000..4c53824
Binary files /dev/null and b/src/fonts/icomoon.eot differ
diff --git a/src/fonts/icomoon.svg b/src/fonts/icomoon.svg
new file mode 100644
index 0000000..19c3ad9
--- /dev/null
+++ b/src/fonts/icomoon.svg
@@ -0,0 +1,15 @@
+
+
+
+Generated by IcoMoon
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/fonts/icomoon.ttf b/src/fonts/icomoon.ttf
new file mode 100644
index 0000000..d47acc2
Binary files /dev/null and b/src/fonts/icomoon.ttf differ
diff --git a/src/fonts/icomoon.woff b/src/fonts/icomoon.woff
new file mode 100644
index 0000000..ccf66d4
Binary files /dev/null and b/src/fonts/icomoon.woff differ
diff --git a/src/fonts/selection.json b/src/fonts/selection.json
new file mode 100644
index 0000000..8ee8fe0
--- /dev/null
+++ b/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}}
\ No newline at end of file
diff --git a/src/js/index.js b/src/js/index.js
new file mode 100644
index 0000000..d7e3e5c
--- /dev/null
+++ b/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()
+ })
+ }
+ }
+};
+
diff --git a/src/scss/fonts.scss b/src/scss/fonts.scss
new file mode 100644
index 0000000..a4325e3
--- /dev/null
+++ b/src/scss/fonts.scss
@@ -0,0 +1 @@
+@import url('https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap');
diff --git a/src/scss/forms.scss b/src/scss/forms.scss
new file mode 100644
index 0000000..781bb5b
--- /dev/null
+++ b/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;
+ }
+ }
+ }
+}
diff --git a/src/scss/global.scss b/src/scss/global.scss
new file mode 100644
index 0000000..07904da
--- /dev/null
+++ b/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;
+}
diff --git a/src/scss/icons.scss b/src/scss/icons.scss
new file mode 100644
index 0000000..74926bc
--- /dev/null
+++ b/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";
+}
diff --git a/src/scss/main.scss b/src/scss/main.scss
new file mode 100644
index 0000000..6c17f68
--- /dev/null
+++ b/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";
diff --git a/src/scss/mixins.scss b/src/scss/mixins.scss
new file mode 100644
index 0000000..fc687a7
--- /dev/null
+++ b/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;
+}
diff --git a/src/scss/variables.scss b/src/scss/variables.scss
new file mode 100644
index 0000000..554ecb7
--- /dev/null
+++ b/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 */
diff --git a/webpack.config.js b/webpack.config.js
new file mode 100644
index 0000000..4e4c5c4
--- /dev/null
+++ b/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
+ }
+ }
+}