first landingpage release

This commit is contained in:
kevin 2020-06-01 13:09:23 +02:00
parent f2d7a9a732
commit c809c91c25
36 changed files with 7929 additions and 0 deletions

2
landing_page/.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
/node_modules/
/dist/

45
landing_page/README.md Normal file
View file

@ -0,0 +1,45 @@
Basic Webpack config for simple website.
Install all packages:
```
$ npm install
```
Run webpack
```
$ npm run build
```
Done! Open index.html in browser for a cat image.
----
### Notice about production mode and postcss.config.js
In *postcss.config.js* there is a check for **process.env.NODE_ENV** variable. The thing is even if you set Webpack mode to production it *won't* automatically change Node environment variable.
The simplest way to configure this is to install *cross-env* package:
```
$ npm install --save-dev cross-env
```
Then just add another npm script in *package.json* for production mode:
```javascript
"scripts": {
"build": "webpack --config webpack.config.js",
"build-production": "cross-env NODE_ENV=production webpack --config webpack.config.js"
}
```
Now when you run `npm run build-production` the *process.env.NODE_ENV* variable will be production and postcss.config.js check is going to work:
```javascript
if(process.env.NODE_ENV === 'production') {
module.exports = {
plugins: [
require('autoprefixer'),
require('cssnano')
]
}
}
```
[From Webpack documentation](https://webpack.js.org/guides/production/):
Technically, *NODE_ENV* is a system environment variable that Node.js exposes into running scripts. It is used by convention to determine dev-vs-prod behavior by server tools, build scripts, and client-side libraries. Contrary to expectations, *process.env.NODE_ENV* **is not set to "production"** within the build script webpack.config.js. Thus, conditionals like `process.env.NODE_ENV === 'production' ? '[name].[hash].bundle.js' : '[name].bundle.js'` within webpack configurations do not work as expected.

104
landing_page/index.html Normal file
View file

@ -0,0 +1,104 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<title>WorkAdventu.re</title>
<link rel="stylesheet" href="dist/main.css">
<script src="dist/bundle.js"></script>
</head>
<body>
<header>
<div class="container-fluid container-lg section">
<div class="over-image">
<div class="logo">
<img src="src/images/logo.png">
</div>
<div class="title text-center">
<h1>Discover a pixelated new world !</h1>
<h2>Start a casual conversation</h2>
</div>
<div>
<a class="custom-link start" href="#" title="START !">
</a>
</div>
</div>
</div>
</header>
<div class="container-fluid container-lg section bg-white how-to">
<div class="row justify-content-md-center">
<div class="col-12 col-md-3 text-center my-3 my-md-0">
<div class="image-item">
<img src="src/images/bitmap.png">
<h2>Choose your map</h2>
</div>
</div>
<div class="col-12 col-md-3 text-center my-3 my-md-0">
<div class="image-item">
<img src="src/images/bitmap.png">
<h2>Select your character</h2>
</div>
</div>
<div class="col-12 col-md-3 text-center my-3 my-md-0">
<div class="image-item">
<img src="src/images/bitmap.png">
<h2>Let's go explore and talk&nbsp;!</h2>
</div>
</div>
</div>
<div class="row justify-content-md-center pt-5">
<div class="col col-lg-3">
<a class="custom-link light demo" href="#" title="DEMO !">
</a>
</div>
<div class="col col-lg-3">
<a class="custom-link start" href="#" title="START !">
</a>
</div>
</div>
</div>
<div class="container-fluid container-lg bg-gray section used-by">
<h2 class="text-center pb-4">Used by millions of people worldwilde and companies such as :</h2>
<div class="row justify-content-md-center align-items-center">
<div class="col col-md-auto">
<img src="src/images/atari.png">
</div>
<div class="col col-md-auto">
<img src="src/images/super-nintendo.png">
</div>
<div class="col col-md-auto">
<img src="src/images/amstrad.png">
</div>
<div class="col col-md-auto">
<img src="src/images/sinclair-2.png">
</div>
</div>
</div>
<div class="container-fluid container-lg section quotes">
<h2 class="text-center">People love WorkAdventure</h2>
<div class="row justify-content-center">
<div class="col-12 col-md-9">
<div class="quote-item">
<p class="quote">&laquo;&nbsp;Good job boys! You've made 32bit great again&nbsp;&raquo;</p>
<p class="author">Donald T. Whashington DC</p>
</div>
<div class="quote-item">
<p class="quote">&laquo;&nbsp;Your characters are so well dressed, who is the creator?&nbsp;&raquo;</p>
<p class="author">Anna W. New York City</p>
</div>
<div class="quote-item">
<p class="quote">&laquo;&nbsp;I hate you! This rocket app is more powerfull then my missiles&nbsp;&raquo;</p>
<p class="author">Kim J-U. Pyongyang</p>
</div>
</div>
</div>
</div>
</body>
</html>

7528
landing_page/package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

28
landing_page/package.json Normal file
View file

@ -0,0 +1,28 @@
{
"scripts": {
"build": "webpack --config webpack.config.js",
"watch": "webpack --config webpack.config.js --watch"
},
"devDependencies": {
"@babel/core": "^7.3.4",
"@babel/preset-env": "^7.3.4",
"autoprefixer": "^9.4.10",
"babel-loader": "^8.0.5",
"css-loader": "^2.1.1",
"cssnano": "^4.1.10",
"file-loader": "^3.0.1",
"mini-css-extract-plugin": "^0.5.0",
"postcss-loader": "^3.0.0",
"sass": "^1.17.2",
"sass-loader": "^7.1.0",
"webpack": "^4.29.6",
"webpack-cli": "^3.2.3"
},
"dependencies": {
"bootstrap": "^4.5.0",
"jquery": "^3.5.1",
"node-sass": "^4.14.1",
"popper.js": "^1.16.1",
"style-loader": "^1.2.1"
}
}

View file

@ -0,0 +1,6 @@
module.exports = {
plugins: [
require('autoprefixer'),
require('cssnano')
]
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 945 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

View file

@ -0,0 +1,4 @@
import '../sass/styles.scss';
console.log('Webpack Boilerplate');

View file

@ -0,0 +1,4 @@
$body-bg: #000;
$body-color: #fff;
$font-family-sans-serif: "04b03", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
$h2-font-size: 1.5rem;

View file

@ -0,0 +1,131 @@
@import "custom";
@import "~bootstrap/scss/bootstrap";
@font-face {
font-family: OpenSans;
src: url('../fonts/OpenSans-Regular.ttf');
}
@font-face {
font-family: '04b03';
font-style: normal;
font-weight: normal;
src: local('04b03'), url('../fonts/04B_03.woff') format('woff');
}
header {
background: url("../images/header.png") no-repeat;
background-size: 100%;
height: 28rem;
position: relative;
.over-image {
bottom: 0;
position: absolute;
top: 0;
left: 0;
right: 0;
.logo{
margin: 1rem 0 0 5rem
}
.title {
padding: 5rem 0;
}
}
}
.custom-link{
display: block;
margin: 0 auto;
width: 250px;
height: 80px;
background-image: url('../images/btn-bg.png');
background-repeat: no-repeat;
background-size: 100%;
position: relative;
&.light{
background-image: url('../images/btn-bg-light.png');
}
&::after{
content: "";
position: absolute;
background-size: 60%;
width: 100%;
height: 100%;
}
&.start::after{
background: url("../images/start.png") no-repeat center center;
}
&.demo::after{
background: url("../images/demo.png") no-repeat center center;
}
}
img{
max-width: 100%;
}
.bg-white{
color: #000000;
}
.bg-gray{
background-color: #3b3b3b !important;
}
.section{
padding-top: 2rem;
padding-bottom: 5rem;
&.used-by{
img{
padding: 0 1rem;
}
}
&.how-to{
.image-item{
height: 100%;
max-width: 300px;
margin: 0 auto;
background-color: #f9dcb0;
padding: 1rem;
h2{
padding: 1rem 0;
margin: 0;
}
}
}
&.used-by{
img{
}
}
&.quotes{
h2{
font-size: 2rem;
}
.quote-item{
padding: 1rem 0;
text-align: right;
.quote{
font-size: 1.5rem;
margin-right: 3rem;
margin-bottom: 0.5rem;
letter-spacing: 2px;
}
.author{
}
}
}
}

View file

@ -0,0 +1,77 @@
const path = require('path');
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
module.exports = {
entry: './src/javascript/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
},
mode: 'development',
module: {
rules: [
{
test: /\.js$/,
exclude: /(node_modules)/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
},
{
// Apply rule for .sass, .scss or .css files
test: /\.scss$/,
// Set loaders to transform files.
// Loaders are applying from right to left(!)
// The first loader will be applied after others
use: [
{
loader: MiniCssExtractPlugin.loader
},
'css-loader',
{
// Then we apply postCSS fixes like autoprefixer and minifying
loader: "postcss-loader"
},
{
// First we transform SASS to standard CSS
loader: "sass-loader",
options: {
implementation: require("sass")
}
}
]
},
{
test: /\.(png|jpe?g|gif|svg)$/,
use: [
{
loader: "file-loader",
options: {
outputPath: 'images'
}
}
]
},
{
test: /\.(woff|woff2|ttf|otf|eot)$/,
use: [
{
loader: "file-loader",
options: {
outputPath: 'fonts'
}
}
]
}
]
},
plugins: [
new MiniCssExtractPlugin()
]
};