Merge pull request #4 from CS76/master

ETHPrize responsive website
This commit is contained in:
Andy Tudhope 2018-03-10 15:18:25 +07:00 committed by GitHub
commit d1060b942f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
60 changed files with 12714 additions and 5 deletions

16
.gitignore vendored Normal file
View File

@ -0,0 +1,16 @@
# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
# node modules #
######################
node_modules/*
dist/*
package-lock.json

View File

@ -1,7 +1,14 @@
# ETHPrize
A repositry for the upcoming ETHPrize website.
## Links
1. [Figma](https://www.figma.com/file/FCakALK84WSxZB5QhvaV213e/ETHPrize?node-id=1%3A2) - The latest design version of the website. If you switch to "Code" view on the upper right corner, you can see the some of the specs. "Learn more" on the first screen is an anchor link to the About section. Links at the very bottom: Fedor Shkliarau (http://fedor.design/), Scott Webb (https://unsplash.com/@scottwebb)
2. [Readymag](https://readymag.com/shkliarau/995140/) - Prototype with animation how the effect of the effect from Tympanus and overall behavior.
3. [Tympanus](https://tympanus.net/Tutorials/CSSMaskTransition/index2.html) - effect for the hero image and second image in About section.
#### Install instructions
###### Install all the project dependencies
```>$ npm install ```
###### To run a local development server
```>$ npm run dev```
###### To run a local development server with browser syn
```>$ npm run watch ```
###### Build the code - Production (Uglify and minimise)
```>$ npm run production ```

9691
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

41
package.json Normal file
View File

@ -0,0 +1,41 @@
{
"name": "ETHPrize-Website",
"version": "1.0.0",
"description": "Single page website for ETHPrize",
"main": "bundle.js",
"scripts": {
"dev": "webpack",
"production": "NODE_ENV=production webpack",
"watch": "npm run dev -- --watch",
"deploy": "npm run production&&gh-pages -d dist"
},
"keywords": [],
"author": "cs76",
"license": "MIT",
"devDependencies": {
"babel-core": "^6.25.0",
"babel-loader": "^7.1.0",
"babel-preset-es2015": "^6.24.1",
"browser-sync": "^2.18.12",
"browser-sync-webpack-plugin": "^1.1.4",
"clean-webpack-plugin": "^0.1.16",
"copy-webpack-plugin": "^4.0.1",
"css-loader": "^0.28.4",
"extract-text-webpack-plugin": "^2.1.2",
"file-loader": "^0.11.2",
"html-loader": "^0.4.5",
"html-webpack-plugin": "^2.28.0",
"img-loader": "^2.0.0",
"node-sass": "^4.5.3",
"sass-loader": "^6.0.6",
"style-loader": "^0.18.2",
"url-loader": "^0.5.9",
"webpack": "^3.0.0"
},
"dependencies": {
"bootstrap": "^4.0.0",
"gh-pages": "^1.1.0",
"jquery": "^3.2.1",
"popper.js": "^1.12.5"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

BIN
src/android-icon-36x36.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
src/android-icon-48x48.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
src/android-icon-72x72.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
src/android-icon-96x96.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
src/apple-icon-114x114.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

BIN
src/apple-icon-120x120.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
src/apple-icon-144x144.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

BIN
src/apple-icon-152x152.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

BIN
src/apple-icon-180x180.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

BIN
src/apple-icon-57x57.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
src/apple-icon-60x60.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
src/apple-icon-72x72.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
src/apple-icon-76x76.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
src/apple-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

2
src/browserconfig.xml Normal file
View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>

BIN
src/favicon-16x16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
src/favicon-32x32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
src/favicon-96x96.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
src/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
src/img/001.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 925 B

BIN
src/img/002.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
src/img/about-side.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 888 KiB

BIN
src/img/about.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
src/img/bg-image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 KiB

BIN
src/img/bounty.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
src/img/contact.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
src/img/email.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 484 B

BIN
src/img/headline.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

BIN
src/img/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

BIN
src/img/logo1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
src/img/logo2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
src/img/logo3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

41
src/img/menu.svg Normal file
View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px" viewBox="0 0 53 53" style="enable-background:new 0 0 53 53;" xml:space="preserve" width="512px" height="512px">
<g>
<g>
<path d="M2,13.5h49c1.104,0,2-0.896,2-2s-0.896-2-2-2H2c-1.104,0-2,0.896-2,2S0.896,13.5,2,13.5z" fill="#FFFFFF"/>
<path d="M2,28.5h49c1.104,0,2-0.896,2-2s-0.896-2-2-2H2c-1.104,0-2,0.896-2,2S0.896,28.5,2,28.5z" fill="#FFFFFF"/>
<path d="M2,43.5h49c1.104,0,2-0.896,2-2s-0.896-2-2-2H2c-1.104,0-2,0.896-2,2S0.896,43.5,2,43.5z" fill="#FFFFFF"/>
</g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 883 B

BIN
src/img/partners.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
src/img/slack.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 862 B

BIN
src/img/sprite-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 971 KiB

BIN
src/img/sprite.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 KiB

BIN
src/img/twitter.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 833 B

299
src/index.html Normal file
View File

@ -0,0 +1,299 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>ETH Prize</title>
<meta name="description" content="Community research project to help ethereum developers with the most critical issues">
<!-- CSS links are added dynamically - webpack script -->
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<!-- favicons -->
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<link rel="shortcut icon" href="/favicon.ico" />
<!-- Roboto font import -->
<link href="https://fonts.googleapis.com/css?family=Roboto+Mono" rel="stylesheet">
<!-- meta tags @ seo -->
<meta name="keywords" content="">
<meta name="description" content="">
<meta itemprop="name" content="">
<meta itemprop="description" content="">
<meta itemprop="image" content="">
<!-- Twitter card data -->
<meta name="twitter:card" content="">
<meta name="twitter:site" content="">
<meta name="twitter:title" content="">
<meta name="twitter:description" content="">
<meta name="twitter:creator" content="">
<meta name="twitter:image" content="">
<!-- Open Graph data -->
<meta property="fb:app_id" content="">
<meta property="og:title" content="" />
<meta property="og:type" content="" />
<meta property="og:url" content="" />
<meta property="og:image" content="" />
<meta property="og:description" content="" />
<meta property="og:site_name" content="" />
</head>
<body>
<!-- navbar starts -->
<nav class="navbar fixed-top navbar-expand-lg" color-on-scroll="200">
<div class="container">
<a class="navbar-brand animated fadeInLeft" href="#">
<img src="img/logo.png" alt="ETH Prize">
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon">
<img src="img/menu.svg" alt="" height="24">
</span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav ml-auto animated fadeInRight">
<li class="nav-item">
<a class="nav-link scroll" target="about">ABOUT</a>
</li>
<li class="nav-item">
<a class="nav-link scroll" target="bounties">BOUNTIES</a>
</li>
<li class="nav-item">
<a class="nav-link scroll" target="partners">PARTNERS</a>
</li>
<li class="nav-item">
<a class="nav-link scroll" target="contact">CONTACT US</a>
</li>
</ul>
</div>
</div>
</nav><!-- end navbar -->
<div class="overlay"></div>
<div class="wrapper hide"></div>
<header class="container mb50">
<div class="d-none d-sm-block">
<div class="row justify-content-center">
<div class="col-7">
<h1 class="headline text-center">
<img src="img/headline.png" class="img-fluid">
</h1>
</div>
<div class="col-3"></div>
</div>
<div class="row justify-content-end">
<div class="col-4">
<p class="content mt50 mb50">ETHPrize is a community research and bounty project that identifies the most critical issues facing the ethereum ecosystem and organizes bounties to solve them.</p>
<a class="btn btn-primary">
LEARN MORE
</a>
</div>
<div class="col-md-2">
&nbsp;
</div>
</div>
</div>
<div class="d-sm-none">
<div class="row justify-content-center">
<div class="col-11">
<h1 class="headline text-center">
<img src="img/headline.png" class="img-fluid">
</h1>
</div>
</div>
<div class="row justify-content-end">
<div class="col-7">
<p class="content mt50 mb50">ETHPrize is a community research and bounty project that identifies the most critical issues facing the ethereum ecosystem and organizes bounties to solve them.</p>
<a class="btn btn-primary">
LEARN MORE
</a>
</div>
<div class="col-1">
&nbsp;
</div>
</div>
</div>
</header>
<section id="about" class="container mb100 mtph">
<div class="row justify-content-center">
<div class="col-md-2 col-6 mb100">
<img src="img/about.png" class="img-fluid">
</div>
</div>
<div class="row justify-content-center">
<div class="col-10">
<div class="row no-gutters about-wrapper">
<div class="col-3">&nbsp;</div>
<div class="col-12 col-md-9">
<div class="row justify-content-end no-gutters">
<div class="col-11 col-md-8">
<div class="about-block mt50">
<p class="content">
There are many critical projects and tools for the ethereum ecosystem that need to be built.
</p>
</div>
</div>
</div>
<div class="row justify-content-end no-gutters bt bb">
<div class="col-11 col-md-8">
<div class="about-block">
<p class="content">
<strong>PHASE 1 - Research project.</strong><br/> Were interviewing 100+ dapp developers to identify the ecosystems biggest challenges
</p>
</div>
</div>
</div>
<div class="row justify-content-end no-gutters">
<div class="col-11 col-md-8">
<div class="about-block">
<p class="content">
<strong>PHASE 2 - Actively managed bounties.</strong><br/> We source significant funding for bounties to address those challenges. Every bounty has advisers, recruiters, project managers, and developers.
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="bounties" class="container">
<div class="row justify-content-center">
<div class="col-md-3 col-8 mb100">
<img src="img/bounty.png" class="img-fluid">
</div>
</div>
<div class="row justify-content-center">
<div class="col-md-5">
<div class="about-block block1 mb20">
<div class="block-content">
<h3>
ETHPM Package Manager
</h3>
<h5>
Bounty: $250,000 USD (in crypto)
</h5>
<p class="content mt50">
Details coming soon.
</p>
<a class="btn btn-primary mt100">
LEARN MORE
</a>
</div>
</div>
</div>
<div class="col-md-5">
<div class="about-block block2 mb20">
<div class="block-content">
<h3>
Open-source block explorer
</h3>
<h5>
Bounty: $250,000 USD (in crypto)
</h5>
<p class="content mt50">
Details coming soon.
</p>
<a class="btn btn-primary mt100">
LEARN MORE
</a>
</div>
</div>
</div>
</div>
<div class="row justify-content-center mt50">
<a class="btn btn-primary btn-custom btt">
SHOW MORE
</a>
</div>
</section>
<section id="partners" class="container mt50">
<div class="row justify-content-center">
<div class="col-md-3 col-8 mb100">
<img src="img/partners.png" class="img-fluid">
</div>
</div>
<div class="row justify-content-center">
<div class="col-md-4">
<div class="partner-block vc" style="cursor: pointer;" onclick="window.location='https://status.im';">
<div class="block-content">
<img src="img/logo1.png">
</div>
</div>
</div>
<div class="col-md-4">
<div class="partner-block vc" style="cursor: pointer;" onclick="window.location='https://truebit.io/';">
<div class="block-content">
<img src="img/logo2.png">
</div>
</div>
</div>
<div class="col-md-4">
<div class="partner-block vc" style="cursor: pointer;" onclick="window.location='https://l4.ventures/';">
<div class="block-content ">
<img src="img/logo3.png">
</div>
</div>
</div>
</div>
</section>
<section id="contact" class="container mt50">
<div class="row justify-content-center">
<div class="col-md-3 col-8 mb100">
<img src="img/contact.png" class="img-fluid">
</div>
</div>
<div class="row justify-content-center">
<div class="col-md-4">
<div class="social-block vc" style="cursor: pointer;" onclick="window.location='mailto:ethprize@l4v.io';">
<div class="block-content">
<img src="img/email.png">
<h6>EMAIL</h6>
</div>
</div>
</div>
<div class="col-md-4">
<div class="social-block vc" style="cursor: pointer;" onclick="window.location='https://twitter.com/ethprize';">
<div class="block-content">
<img src="img/twitter.png">
<h6>TWITTER</h6>
</div>
</div>
</div>
<div class="col-md-4">
<div class="social-block vc" style="cursor: pointer;" onclick="window.location='https://ethprize.slack.com/';">
<div class="block-content ">
<img src="img/slack.png">
<h6>SLACK</h6>
</div>
</div>
</div>
</div>
</section>
<div class="container mt50 mb100">
<div class="row justify-content-center">
<p class="content">
Design by <span class="underline">Fedor Shkliarau</span>.<br class="d-block d-sm-none"> Pictures by <span class="underline">Scott Webb</span>
</p>
</div>
</div>
</body>
</html>

3
src/js/imports.js Normal file
View File

@ -0,0 +1,3 @@
import 'bootstrap';
import "bootstrap/dist/css/bootstrap.css";
import "../scss/style.scss";

59
src/js/main.js Normal file
View File

@ -0,0 +1,59 @@
import "./imports";
var transparent = true;
var scroll_distance = 0;
$(document).ready(function(){
var $navbar = $('.navbar[color-on-scroll]');
scroll_distance = $navbar.attr('color-on-scroll') || 500;
if($('.navbar[color-on-scroll]').length != 0){
webApp.checkScrollForTransparentNavbar();
$(window).on('scroll', webApp.checkScrollForTransparentNavbar)
}
$('.scroll').click(function() {
var hash = $(this).attr('target');
$('html, body').animate({
scrollTop: $('#' + hash).offset().top - 50
}, 1300);
});
});
var webApp = {
misc:{
navbar_menu_visible: 0
},
checkScrollForTransparentNavbar: debounce(function() {
if($(document).scrollTop() > scroll_distance ) {
if(transparent) {
transparent = false;
$('header').addClass('op0');
$('.overlay').addClass('screen');
}
} else {
if( !transparent ) {
transparent = true;
$('.overlay').removeClass('screen');
$('header').removeClass('op0');
}
}
}, 17),
}
function debounce(func, wait, immediate) {
var timeout;
return function() {
var context = this, args = arguments;
clearTimeout(timeout);
timeout = setTimeout(function() {
timeout = null;
if (!immediate) func.apply(context, args);
}, wait);
if (immediate && !timeout) func.apply(context, args);
};
};

41
src/manifest.json Normal file
View File

@ -0,0 +1,41 @@
{
"name": "App",
"icons": [
{
"src": "\/android-icon-36x36.png",
"sizes": "36x36",
"type": "image\/png",
"density": "0.75"
},
{
"src": "\/android-icon-48x48.png",
"sizes": "48x48",
"type": "image\/png",
"density": "1.0"
},
{
"src": "\/android-icon-72x72.png",
"sizes": "72x72",
"type": "image\/png",
"density": "1.5"
},
{
"src": "\/android-icon-96x96.png",
"sizes": "96x96",
"type": "image\/png",
"density": "2.0"
},
{
"src": "\/android-icon-144x144.png",
"sizes": "144x144",
"type": "image\/png",
"density": "3.0"
},
{
"src": "\/android-icon-192x192.png",
"sizes": "192x192",
"type": "image\/png",
"density": "4.0"
}
]
}

BIN
src/ms-icon-144x144.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

BIN
src/ms-icon-150x150.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
src/ms-icon-310x310.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
src/ms-icon-70x70.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

5
src/robots.txt Normal file
View File

@ -0,0 +1,5 @@
# www.robotstxt.org/
# Allow crawling of all content
User-agent: *
Disallow:

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Binary file not shown.

440
src/scss/style.scss Normal file
View File

@ -0,0 +1,440 @@
// font face imports
@font-face {
font-family: 'Bebas Neue Regular';
src: url('./fonts/bebas-neue-regular.eot');
src: url('./fonts/bebas-neue-regular.eot?#iefix') format('embedded-opentype'),
url('./fonts/bebas-neue-regular.woff') format('woff'),
url('./fonts/bebas-neue-regular.ttf') format('truetype'),
url('./fonts/bebas-neue-regular.svg#bebas_neue_regularregular') format('svg');
font-weight: normal;
font-style: normal;
}
// Generic rules
body {
font-family: 'Bebas Neue Regular';
background-color: #0b133b;
color: #fff;
}
a { color: inherit; }
p.content{
font-family: 'Roboto Mono';
font-style: normal;
font-weight: normal;
line-height: 23px;
z-index: 100;
font-size: 15px;
letter-spacing: -0.03em;
color: rgba(255, 255, 255, 0.7);
}
section{
min-height: 60vh;
padding: 50px 0;
}
// helper classes
.bt{
border-top: 1px solid #D4434A;
}
.bb{
border-bottom: 1px solid #D4434A;
}
.mb20{
margin-bottom: 20px;
}
.mt50{
margin-top: 50px;
}
.mt100{
margin-top: 100px;
}
.mb50{
margin-bottom: 50px;
}
.mb100{
margin-bottom: 100px;
}
.mb150{
margin-bottom: 150px;
}
.mtph{
margin-top: 100vh;
}
.btn{
border-radius: 0;
letter-spacing: 0.1em;
}
.btt{
z-index: 10;
}
.vc{
display: flex;
align-items: center;
justify-content: center;
}
.btn-primary{
background-color: #3830CF;
border: none;
}
.btn-custom{
background: rgba(56, 48, 207, 0.15);
border: 1px solid rgba(56, 48, 207, 0.5);
box-sizing: border-box;
color: #fff;
}
// Navbar
.navbar{
padding-top: 30px;
}
.navbar-brand img{
width: 123px;
}
.navbar-nav .nav-link {
margin-left: 30px;
line-height: normal;
font-size: 17px;
cursor: pointer;
text-align: center;
letter-spacing: 0.08em;
color: #E5E5E5;
text-shadow: 0px 0px 11px rgba(0, 0, 0, 1);
}
// Landing section
header{
min-height: 100vh;
align-items: center;
justify-content: center;
position: fixed;
top: 0;
left: 50%;
transform: translate(-50%, 0);
display: flex;
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
transition: all 0.5s ease;
}
.wrapper{
background-image: url("../img/bg-image.png");
background-repeat: no-repeat;
background-position: top right;
background-attachment: fixed;
width: 100vw;
height: 100vh;
position: fixed;
top: 0;
left: 0;
z-index: -2;
}
.wrapper.hide {
-webkit-mask: url(../img/sprite.png);
mask: url(../img/sprite.png);
-webkit-mask-size: 7500% 100%;
mask-size: 7500% 100%;
-webkit-animation: mask-play 1.5s steps(74) forwards;
animation: mask-play 1.5s steps(74) forwards;
}
@-webkit-keyframes mask-play {
from {
-webkit-mask-position: 0% 0;
mask-position: 0% 0;
}
to {
-webkit-mask-position: 100% 0;
mask-position: 100% 0;
}
}
@keyframes mask-play {
from {
-webkit-mask-position: 0% 0;
mask-position: 0% 0;
}
to {
-webkit-mask-position: 100% 0;
mask-position: 100% 0;
}
}
.screen{
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
z-index: -1;
background-color: #0C143A;
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
transition: all 0.3s ease;
}
.overlay{
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
transition: all 0.3s ease;
z-index: -1;
}
.op0{
opacity: 0;
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
transition: all 0.5s ease;
}
.headline{
margin-top: 100px;
}
// About
.about-block{
padding: 60px 50px;
background-color: #1C2449;
}
.about-wrapper{
background-image: url("../img/about-side.png");
background-repeat: no-repeat;
background-position: top left;
background-size: 50% auto;
}
.block-content h3{
line-height: normal;
font-size: 40px;
letter-spacing: 0.1em;
}
.block-content h5{
line-height: normal;
font-size: 17px;
letter-spacing: 0.1em;
opacity: 0.6;
}
.block-content{
padding: 40px;
}
.side-image{
background-image: url("../img/about-side.png");
background-size: 100% auto;
background-repeat: no-repeat;
}
.block1{
background-image: url("../img/001.png");
background-position: 2em 2em;
background-repeat: no-repeat;
}
.block2{
background-image: url("../img/002.png");
background-position: 2em 2em;
background-repeat: no-repeat;
}
// partner block
.partner-block, .social-block{
background-color: #1C2449;
min-height: 330px;
margin-bottom: 20px;
}
.partner-block img{
width: auto;
height: 60px;
}
// social block
.social-block img{
width: 62px;
height: auto;
}
.social-block h6{
font-size: 17px;
text-align: center;
letter-spacing: 0.1em;
margin-top: 20px;
opacity: 0.4;
}
// footer
.underline {
text-decoration: none;
position: relative;
}
.underline:after {
position: absolute;
height: 5px;
margin: 0 auto;
content: '';
width: 100%;
background-color: #3830CF;
opacity: 0.7;
left: 0;
bottom: 1px;
z-index: 1;
}
// animated css
.animated {
-webkit-animation-duration: 1s;
animation-duration: 1s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}
@keyframes fadeInRight {
from {
opacity: 0;
transform: translate3d(20%, 0, 0);
}
to {
opacity: 1;
transform: translate3d(0, 0, 0);
}
}
.fadeInRight {
animation-name: fadeInRight;
}
@keyframes fadeInLeft {
from {
opacity: 0;
transform: translate3d(-30%, 0, 0);
}
to {
opacity: 1;
transform: translate3d(0, 0, 0);
}
}
.fadeInLeft {
animation-name: fadeInLeft;
}
// Media queries
// Extra small devices (portrait phones)
@media (max-width: 575px) {
.navbar-brand img{
width: 60px;
}
.partner-block, .social-block{
background-color: #1C2449;
min-height: 90px;
margin-bottom: 20px;
}
.social-block img{
width: auto;
height: 50px;
}
.mt100{
margin-top: 10px;
}
.mt50{
margin-top: 10px;
}
.mb100{
margin-bottom: 30px;
}
.screen{
height: 100vh;
}
.about-block{
padding: 20px 20px;
}
.about-wrapper{
background-size: auto 100%;
}
}
// Small devices (landscape phones)
@media (min-width: 576px){
.navbar-brand img{
width: 80px;
}
.block-content h3{
min-height: 200px;
}
.social-block img{
width: auto;
height: 50px;
}
}
// Medium devices (tablets)
@media (max-width: 768px){
.navbar-nav .nav-item{
background-color: rgba(13,21,57,0.85);
border-bottom: 4px solid #B43C4B;
padding-top: 5px;
padding-bottom: 5px;
}
.navbar-nav .nav-link {
margin-left: 0;
}
}
// Medium devices (tablets)
@media (min-width: 768px){
.navbar-brand img{
width: 80px;
}
}
// Large devices (desktops)
@media (min-width: 992px) {
}
// Extra large devices (large desktops)
@media (min-width: 1200px) {
.container {
max-width: 1185px;
}
}

139
webpack.config.js Normal file
View File

@ -0,0 +1,139 @@
var webpack = require('webpack');
var path = require('path');
var HtmlWebpackPlugin = require('html-webpack-plugin');
var CleanWebpackPlugin = require('clean-webpack-plugin');
var BrowserSyncPlugin = require('browser-sync-webpack-plugin');
var CopyWebpackPlugin = require('copy-webpack-plugin');
var ExtractTextPlugin = require("extract-text-webpack-plugin");
var inProduction = (process.env.NODE_ENV === 'production');
module.exports = {
context: path.resolve('./src'),
entry: {
app: [
'./js/main.js'
]
},
output: {
path: path.resolve(__dirname,'./dist'),
filename: 'js/bundle.js',
publicPath: '/'
},
module: {
loaders: [{
test: /\.js$/,
loader: 'babel-loader',
exclude: /node_modules/,
query: {
presets: ['es2015']
}
},{
test: /\.html$/,
loader: 'html-loader'
},{
test: /\.scss$/,
use: ExtractTextPlugin.extract({
use: ["css-loader", "sass-loader"],
fallback: "style-loader"
})
},{
test: /\.css$/,
use: ExtractTextPlugin.extract({
use: ["css-loader"],
fallback: "style-loader"
})
},{
test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
loader: "url-loader?limit=10000&mimetype=application/font-woff&name=./fonts/[name].[ext]"
},{
test: /\.(ttf|eot)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
loader: "file-loader?name=./fonts/[name].[ext]"
},{
test: /\.(jpe?g|png|gif|svg)$/i,
loaders: [
{
loader:'file-loader',
options: {
name: 'img/[name].[ext]'
}
},
'img-loader'
]
}]
},
plugins: [
new CleanWebpackPlugin(['dist']),
new HtmlWebpackPlugin({
template: './index.html'
}),
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
Tether: 'tether',
Popper: ['popper.js', 'default']
}),
new BrowserSyncPlugin({
server: {
baseDir: ['dist']
},
port: 3000,
host: 'localhost',
open: false
}),
new CopyWebpackPlugin([{
from: './robots.txt'
},{
from: './favicon.ico'
},{
from: './*.png'
},{
from: './*.xml'
},{
from: './manifest.json'
},{
from: './img/**/*',
to: './'
}]),
new ExtractTextPlugin("css/[name].css"),
new webpack.LoaderOptionsPlugin({
minimize : inProduction
})
]
};
if (process.env.NODE_ENV === 'production'){
module.exports.plugins.push(
new webpack.optimize.UglifyJsPlugin()
);
// module.exports.output.publicPath = "/ETHPrize/"; //To deploy to github pages - uncomment this
module.exports.output.filename = "js/bundle.[chunkhash].js";
}