add README
34
Dockerfile
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
FROM node:11.1.0-alpine AS base
|
||||||
|
LABEL version="4.0.0"
|
||||||
|
LABEL description=""
|
||||||
|
|
||||||
|
WORKDIR /usr/src/app
|
||||||
|
COPY ["package.json", "./"]
|
||||||
|
COPY ["package-lock.json", "./"]
|
||||||
|
|
||||||
|
FROM base AS builder
|
||||||
|
# ENV PARCEL_WORKERS=2
|
||||||
|
RUN npm set progress=false && npm config set depth 0 && npm install
|
||||||
|
COPY ["src/", "./src"]
|
||||||
|
# ARG VERSION=Missing
|
||||||
|
# ENV VERSION=$VERSION
|
||||||
|
# ARG COMMIT=Missing
|
||||||
|
# ENV COMMIT=$COMMIT
|
||||||
|
RUN npm run Prod
|
||||||
|
|
||||||
|
FROM nginx:1.14.1-alpine as Web
|
||||||
|
LABEL maintainer="MrFlutters (https://github.com/MrFlutters)"
|
||||||
|
COPY docker/nginx.conf /etc/nginx/nginx.conf
|
||||||
|
COPY docker/web.conf /etc/nginx/conf.d/web.conf
|
||||||
|
|
||||||
|
LABEL traefik.backend=fluttershub_home
|
||||||
|
LABEL traefik.frontend.rule="Host:fluttershub.com"
|
||||||
|
LABEL traefik.docker.network=web
|
||||||
|
LABEL traefik.frontend.redirect.entryPoint=https
|
||||||
|
LABEL traefik.enable=true
|
||||||
|
LABEL traefik.port=80
|
||||||
|
|
||||||
|
EXPOSE 80
|
||||||
|
RUN rm -Rf /usr/share/nginx/html/ && rm /etc/nginx/conf.d/default.conf
|
||||||
|
COPY --from=builder /usr/src/app/build /usr/share/nginx/html/
|
||||||
|
CMD [ "nginx", "-g", "daemon off;" ]
|
||||||
1
build.txt
Executable file
@@ -0,0 +1 @@
|
|||||||
|
docker build --build-arg VERSION=1.0.0 --build-arg COMMIT=a569955 -t fluttershub:1.0.1 .
|
||||||
12
docker-compose.yml
Executable file
@@ -0,0 +1,12 @@
|
|||||||
|
version: "3"
|
||||||
|
|
||||||
|
services:
|
||||||
|
home:
|
||||||
|
image: mrflutters/home:1.0.0
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- web
|
||||||
|
container_name: Fluttershub_home
|
||||||
|
networks:
|
||||||
|
web:
|
||||||
|
external: true
|
||||||
29
docker/nginx.conf
Executable file
@@ -0,0 +1,29 @@
|
|||||||
|
user nginx;
|
||||||
|
worker_processes 1;
|
||||||
|
|
||||||
|
error_log /var/log/nginx/error.log warn;
|
||||||
|
pid /var/run/nginx.pid;
|
||||||
|
|
||||||
|
events {
|
||||||
|
worker_connections 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
include /etc/nginx/mime.types;
|
||||||
|
default_type application/octet-stream;
|
||||||
|
|
||||||
|
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
||||||
|
'$status $body_bytes_sent "$http_referer" '
|
||||||
|
'"$http_user_agent" "$http_x_forwarded_for"';
|
||||||
|
|
||||||
|
access_log /var/log/nginx/access.log main;
|
||||||
|
|
||||||
|
sendfile on;
|
||||||
|
#tcp_nopush on;
|
||||||
|
|
||||||
|
keepalive_timeout 65;
|
||||||
|
|
||||||
|
#gzip on;
|
||||||
|
|
||||||
|
include /etc/nginx/conf.d/*.conf;
|
||||||
|
}
|
||||||
12
docker/web.conf
Executable file
@@ -0,0 +1,12 @@
|
|||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
index index.html;
|
||||||
|
}
|
||||||
|
location /health {
|
||||||
|
return 200 'alive';
|
||||||
|
add_header Content-Type text/plain;
|
||||||
|
}
|
||||||
|
}
|
||||||
7626
package-lock.json
generated
Executable file
32
package.json
Executable file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"name": "fluttershub-com",
|
||||||
|
"version": "4.0.0",
|
||||||
|
"private": true,
|
||||||
|
"description": "Small description for fluttershub-com goes here",
|
||||||
|
"license": "MIT",
|
||||||
|
"author": "MrFlutters",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/MrFlutters/Fluttershub.com.git"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"Dev": "npm run Cleanup && npm run Init && parcel dev src/index.pug -d build",
|
||||||
|
"Cleanup": "rm -Rf build/ .cache/",
|
||||||
|
"Init": "mkdir build && cp -R src/assets/* build/",
|
||||||
|
"Prod": "npm run Cleanup && npm run Init && parcel build src/index.pug -d build"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"parcel-bundler": "^1.12.3",
|
||||||
|
"pug": "^2.0.3",
|
||||||
|
"sass": "^1.19.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "11.*"
|
||||||
|
},
|
||||||
|
"dependencies": {},
|
||||||
|
"main": "index.js",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/MrFlutters/Fluttershub.com/issues"
|
||||||
|
},
|
||||||
|
"homepage": "https://github.com/MrFlutters/Fluttershub.com#readme"
|
||||||
|
}
|
||||||
3
src/assets/robots.txt
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
# http://www.robotstxt.org
|
||||||
|
User-agent: *
|
||||||
|
Disallow:
|
||||||
BIN
src/icons/android-icon-144x144.png
Executable file
|
After Width: | Height: | Size: 35 KiB |
BIN
src/icons/android-icon-192x192.png
Executable file
|
After Width: | Height: | Size: 62 KiB |
BIN
src/icons/android-icon-36x36.png
Executable file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
src/icons/android-icon-48x48.png
Executable file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
src/icons/android-icon-72x72.png
Executable file
|
After Width: | Height: | Size: 10 KiB |
BIN
src/icons/android-icon-96x96.png
Executable file
|
After Width: | Height: | Size: 17 KiB |
BIN
src/icons/apple-icon-114x114.png
Executable file
|
After Width: | Height: | Size: 23 KiB |
BIN
src/icons/apple-icon-120x120.png
Executable file
|
After Width: | Height: | Size: 26 KiB |
BIN
src/icons/apple-icon-144x144.png
Executable file
|
After Width: | Height: | Size: 35 KiB |
BIN
src/icons/apple-icon-152x152.png
Executable file
|
After Width: | Height: | Size: 39 KiB |
BIN
src/icons/apple-icon-180x180.png
Executable file
|
After Width: | Height: | Size: 53 KiB |
BIN
src/icons/apple-icon-57x57.png
Executable file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
src/icons/apple-icon-60x60.png
Executable file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
src/icons/apple-icon-72x72.png
Executable file
|
After Width: | Height: | Size: 10 KiB |
BIN
src/icons/apple-icon-76x76.png
Executable file
|
After Width: | Height: | Size: 12 KiB |
BIN
src/icons/apple-icon-precomposed.png
Executable file
|
After Width: | Height: | Size: 62 KiB |
BIN
src/icons/apple-icon.png
Executable file
|
After Width: | Height: | Size: 62 KiB |
2
src/icons/browserconfig.xml
Executable 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/icons/favicon-16x16.png
Executable file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
src/icons/favicon-32x32.png
Executable file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
src/icons/favicon-96x96.png
Executable file
|
After Width: | Height: | Size: 17 KiB |
BIN
src/icons/favicon.ico
Executable file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/icons/ms-icon-144x144.png
Executable file
|
After Width: | Height: | Size: 35 KiB |
BIN
src/icons/ms-icon-150x150.png
Executable file
|
After Width: | Height: | Size: 38 KiB |
BIN
src/icons/ms-icon-310x310.png
Executable file
|
After Width: | Height: | Size: 129 KiB |
BIN
src/icons/ms-icon-70x70.png
Executable file
|
After Width: | Height: | Size: 10 KiB |
41
src/index.pug
Executable file
@@ -0,0 +1,41 @@
|
|||||||
|
doctype html
|
||||||
|
html(lang='en')
|
||||||
|
head
|
||||||
|
meta(charset='UTF-8')
|
||||||
|
meta(name='viewport', content='width=device-width, initial-scale=1.0')
|
||||||
|
meta(http-equiv='X-UA-Compatible', content='ie=edge')
|
||||||
|
meta(name='Description', content='Flutters Personal Website')
|
||||||
|
link(rel='stylesheet', type='text/css', href='scss/index.scss')
|
||||||
|
include links.pug
|
||||||
|
include ogp.pug
|
||||||
|
|
||||||
|
title Fluttershub.com
|
||||||
|
body
|
||||||
|
.container
|
||||||
|
.pod
|
||||||
|
.glow
|
||||||
|
img#profile_pic(src='https://storage.googleapis.com/api.fluttershub.com/images/public/profile_pic.png', alt='')
|
||||||
|
h1.welcome_text.text-flicker.text-flicker-1 MrFlutters
|
||||||
|
p.about_me.standard_text.text-box-glow
|
||||||
|
.pod
|
||||||
|
a.standard_text.text-flicker-2(href="https://steamcommunity.com/id/MrFlutters") Steam
|
||||||
|
a.standard_text.text-flicker-2(href="https://twitter.com/mrflutters") Twitter
|
||||||
|
a.standard_text.text-flicker-2(href="https://github.com/MrFlutters") Github
|
||||||
|
//- a.standard_text.text-flicker-2(href="https://github.com/MrFlutters/Fluttershub.com") Discord
|
||||||
|
footer.standard_text.footer-slide
|
||||||
|
.creator
|
||||||
|
a.build_text(href="https://img.fluttershub.com/EgOwhwrHyHWw.png") Cookie? 🍪
|
||||||
|
//- a.no_highlight(href="https://github.com/MrFlutters/Fluttershub.com") MrFlutters
|
||||||
|
//- .build
|
||||||
|
//- span.build_text Version
|
||||||
|
//- span.build_text v#{process.env.VERSION} |
|
||||||
|
//- span.build_text
|
||||||
|
//- | Commit:
|
||||||
|
//- a.no_highlight.build_text(href="https://github.com/MrFlutters/Fluttershub.com/commit/" + process.env.COMMIT) #{process.env.COMMIT}
|
||||||
|
//- .note
|
||||||
|
//- span.build_text
|
||||||
|
//- | built with 📦
|
||||||
|
//- a(href="https://parceljs.org/") Parceljs,
|
||||||
|
//- a.build_text(href="https://github.com/pugjs/pug") Pug
|
||||||
|
//- span.build_text and
|
||||||
|
//- span.cookiesncoco.build_text 🍪☕
|
||||||
17
src/links.pug
Executable file
@@ -0,0 +1,17 @@
|
|||||||
|
link(rel='apple-touch-icon', sizes='57x57', href='icons/apple-icon-57x57.png')
|
||||||
|
link(rel='apple-touch-icon', sizes='60x60', href='icons/apple-icon-60x60.png')
|
||||||
|
link(rel='apple-touch-icon', sizes='72x72', href='icons/apple-icon-72x72.png')
|
||||||
|
link(rel='apple-touch-icon', sizes='76x76', href='icons/apple-icon-76x76.png')
|
||||||
|
link(rel='apple-touch-icon', sizes='114x114', href='icons/apple-icon-114x114.png')
|
||||||
|
link(rel='apple-touch-icon', sizes='120x120', href='icons/apple-icon-120x120.png')
|
||||||
|
link(rel='apple-touch-icon', sizes='144x144', href='icons/apple-icon-144x144.png')
|
||||||
|
link(rel='apple-touch-icon', sizes='152x152', href='icons/apple-icon-152x152.png')
|
||||||
|
link(rel='apple-touch-icon', sizes='180x180', href='icons/apple-icon-180x180.png')
|
||||||
|
link(rel='icon', type='image/png', sizes='192x192', href='icons/android-icon-192x192.png')
|
||||||
|
link(rel='icon', type='image/png', sizes='32x32', href='icons/favicon-32x32.png')
|
||||||
|
link(rel='icon', type='image/png', sizes='96x96', href='icons/favicon-96x96.png')
|
||||||
|
link(rel='icon', type='image/png', sizes='16x16', href='icons/favicon-16x16.png')
|
||||||
|
//- link(rel='manifest', href='icons/manifest.webmanifest')
|
||||||
|
meta(name='msapplication-TileColor', content='#ffffff')
|
||||||
|
meta(name='msapplication-TileImage', content='icons/ms-icon-144x144.png')
|
||||||
|
meta(name='theme-color', content='#ffffff')
|
||||||
6
src/ogp.pug
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
meta(property='og:url', content='https://fluttershub.com')
|
||||||
|
meta(property='og:type', content='website')
|
||||||
|
meta(property='og:title', content='Flutters Personal Website')
|
||||||
|
meta(property='og:description', content='We got 🍪 and ☕')
|
||||||
|
meta(property='og:image', content='http://storage.googleapis.com/api.fluttershub.com/images/public/profile_pic.jpg')
|
||||||
|
meta(property='og:image:secure_url', content='https://storage.googleapis.com/api.fluttershub.com/images/public/profile_pic.jpg')
|
||||||
3
src/scss/components/animations.scss
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
@import "animations/bounce.scss";
|
||||||
|
@import "animations/flicker.scss";
|
||||||
|
@import "animations/slide.scss";
|
||||||
105
src/scss/components/animations/bounce.scss
Executable file
@@ -0,0 +1,105 @@
|
|||||||
|
@-webkit-keyframes bounce-in {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: scale(0);
|
||||||
|
transform: scale(0);
|
||||||
|
-webkit-animation-timing-function: ease-in;
|
||||||
|
animation-timing-function: ease-in;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
38% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
transform: scale(1);
|
||||||
|
-webkit-animation-timing-function: ease-out;
|
||||||
|
animation-timing-function: ease-out;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
55% {
|
||||||
|
-webkit-transform: scale(0.7);
|
||||||
|
transform: scale(0.7);
|
||||||
|
-webkit-animation-timing-function: ease-in;
|
||||||
|
animation-timing-function: ease-in;
|
||||||
|
}
|
||||||
|
72% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
transform: scale(1);
|
||||||
|
-webkit-animation-timing-function: ease-out;
|
||||||
|
animation-timing-function: ease-out;
|
||||||
|
}
|
||||||
|
81% {
|
||||||
|
-webkit-transform: scale(0.84);
|
||||||
|
transform: scale(0.84);
|
||||||
|
-webkit-animation-timing-function: ease-in;
|
||||||
|
animation-timing-function: ease-in;
|
||||||
|
}
|
||||||
|
89% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
transform: scale(1);
|
||||||
|
-webkit-animation-timing-function: ease-out;
|
||||||
|
animation-timing-function: ease-out;
|
||||||
|
}
|
||||||
|
95% {
|
||||||
|
-webkit-transform: scale(0.95);
|
||||||
|
transform: scale(0.95);
|
||||||
|
-webkit-animation-timing-function: ease-in;
|
||||||
|
animation-timing-function: ease-in;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
transform: scale(1);
|
||||||
|
-webkit-animation-timing-function: ease-out;
|
||||||
|
animation-timing-function: ease-out;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes bounce-in {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: scale(0);
|
||||||
|
transform: scale(0);
|
||||||
|
-webkit-animation-timing-function: ease-in;
|
||||||
|
animation-timing-function: ease-in;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
38% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
transform: scale(1);
|
||||||
|
-webkit-animation-timing-function: ease-out;
|
||||||
|
animation-timing-function: ease-out;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
55% {
|
||||||
|
-webkit-transform: scale(0.7);
|
||||||
|
transform: scale(0.7);
|
||||||
|
-webkit-animation-timing-function: ease-in;
|
||||||
|
animation-timing-function: ease-in;
|
||||||
|
}
|
||||||
|
72% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
transform: scale(1);
|
||||||
|
-webkit-animation-timing-function: ease-out;
|
||||||
|
animation-timing-function: ease-out;
|
||||||
|
}
|
||||||
|
81% {
|
||||||
|
-webkit-transform: scale(0.84);
|
||||||
|
transform: scale(0.84);
|
||||||
|
-webkit-animation-timing-function: ease-in;
|
||||||
|
animation-timing-function: ease-in;
|
||||||
|
}
|
||||||
|
89% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
transform: scale(1);
|
||||||
|
-webkit-animation-timing-function: ease-out;
|
||||||
|
animation-timing-function: ease-out;
|
||||||
|
}
|
||||||
|
95% {
|
||||||
|
-webkit-transform: scale(0.95);
|
||||||
|
transform: scale(0.95);
|
||||||
|
-webkit-animation-timing-function: ease-in;
|
||||||
|
animation-timing-function: ease-in;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
transform: scale(1);
|
||||||
|
-webkit-animation-timing-function: ease-out;
|
||||||
|
animation-timing-function: ease-out;
|
||||||
|
}
|
||||||
|
}
|
||||||
198
src/scss/components/animations/flicker.scss
Executable file
@@ -0,0 +1,198 @@
|
|||||||
|
@keyframes text-flicker {
|
||||||
|
0% {
|
||||||
|
opacity: 0
|
||||||
|
}
|
||||||
|
10% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
10.1% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
10.2% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
20% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
20.1% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
20.6% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
30% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
30.1% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
30.5% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
30.6% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
45% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
45.1% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
55% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
55.1% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
57% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
57.1% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
60% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
60.1% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
65% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
65.1% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
75% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
75.1% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
77% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
77.1% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
85% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
85.1% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
86% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
86.1% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-webkit-keyframes text-flicker {
|
||||||
|
0% {
|
||||||
|
opacity: 0
|
||||||
|
}
|
||||||
|
10% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
10.1% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
10.2% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
20% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
20.1% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
20.6% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
30% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
30.1% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
30.5% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
30.6% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
45% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
45.1% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
55% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
55.1% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
57% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
57.1% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
60% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
60.1% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
65% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
65.1% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
75% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
75.1% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
77% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
77.1% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
85% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
85.1% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
86% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
86.1% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-flicker{
|
||||||
|
animation: text-flicker 1.5s both;
|
||||||
|
}
|
||||||
|
.text-flicker-2{
|
||||||
|
animation: text-flicker 1.5s both;
|
||||||
|
animation-delay: 1.0s;
|
||||||
|
}
|
||||||
28
src/scss/components/animations/slide.scss
Executable file
@@ -0,0 +1,28 @@
|
|||||||
|
@-webkit-keyframes footer-slide {
|
||||||
|
0% {
|
||||||
|
// -webkit-transform: translateY(1000px);
|
||||||
|
// transform: translateY(1000px);
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
// -webkit-transform: translateY(0);
|
||||||
|
// transform: translateY(0);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@keyframes footer-slide {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: translateY(1000px);
|
||||||
|
transform: translateY(1000px);
|
||||||
|
opacity: 0;
|
||||||
|
// overflow: hidden;
|
||||||
|
// display: none;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
// -webkit-transform: translateY(0);
|
||||||
|
// transform: translateY(0);
|
||||||
|
opacity: 1;
|
||||||
|
// display: inherit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
75
src/scss/components/common.scss
Executable file
@@ -0,0 +1,75 @@
|
|||||||
|
@import url('https://fonts.googleapis.com/css?family=Average+Sans|Contrail+One');
|
||||||
|
|
||||||
|
$background_color: #1a1e23;
|
||||||
|
$Primany-font: 'Contrail One';
|
||||||
|
$Secondary-font: 'Average Sans';
|
||||||
|
|
||||||
|
body,html, .container {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
background-color: $background_color;
|
||||||
|
user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
overflow:hidden;
|
||||||
|
}
|
||||||
|
.welcome_text {
|
||||||
|
color:white;
|
||||||
|
font-family: $Primany-font;
|
||||||
|
user-select: text;
|
||||||
|
-moz-user-select: text;
|
||||||
|
}
|
||||||
|
.standard_text{
|
||||||
|
color:white;
|
||||||
|
font-family: $Secondary-font;
|
||||||
|
user-select: text;
|
||||||
|
-moz-user-select: text;
|
||||||
|
}
|
||||||
|
|
||||||
|
// #CSS GRID
|
||||||
|
.container {
|
||||||
|
position: relative;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.container::before {
|
||||||
|
content: "";
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
width: 0; height: 100%;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.pod {
|
||||||
|
display:grid;
|
||||||
|
// display: inline-grid;
|
||||||
|
// justify-content: center;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.pod a {
|
||||||
|
margin: 2px;
|
||||||
|
font-size: 120%
|
||||||
|
}
|
||||||
|
.build_text {
|
||||||
|
margin: 0.2rem;
|
||||||
|
color: white;
|
||||||
|
font-family: $Secondary-font;
|
||||||
|
user-select: text;
|
||||||
|
-moz-user-select: text;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.no_hightnight a:link, a{
|
||||||
|
color: inherit;
|
||||||
|
// text-decoration: none;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cookiesncoco {
|
||||||
|
font-size: 1.0rem;
|
||||||
|
}
|
||||||
|
.name-letters {
|
||||||
|
padding: 0
|
||||||
|
}
|
||||||
13
src/scss/components/footer.scss
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
footer {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
padding: 0.4rem;
|
||||||
|
// background-color: #efefef;
|
||||||
|
text-align: center;
|
||||||
|
background-color: #111417;
|
||||||
|
-webkit-animation: footer-slide 0.8s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
|
||||||
|
animation: footer-slide 0.8s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
|
||||||
|
animation-delay: 2.0s;
|
||||||
|
}
|
||||||
42
src/scss/components/img.scss
Executable file
@@ -0,0 +1,42 @@
|
|||||||
|
// @import "./bounce.scss";
|
||||||
|
|
||||||
|
#profile_pic {
|
||||||
|
width: 256px;
|
||||||
|
height: 256px;
|
||||||
|
/* Safari 3-4, iOS 1-3.2, Android 1.6- */
|
||||||
|
-webkit-border-radius: 50%;
|
||||||
|
|
||||||
|
/* Firefox 1-3.6 */
|
||||||
|
-moz-border-radius: 50%;
|
||||||
|
|
||||||
|
/* Opera 10.5, IE 9, Safari 5, Chrome, Firefox 4, iOS 4, Android 2.1+ */
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
.glow img{
|
||||||
|
@keyframes border-pulsate {
|
||||||
|
0%{
|
||||||
|
box-shadow:none;
|
||||||
|
}
|
||||||
|
60%{
|
||||||
|
box-shadow:
|
||||||
|
inset 0 0 50px #fff,
|
||||||
|
inset 20px 0 80px #f5f,
|
||||||
|
inset -20px 0 80px #0ff,
|
||||||
|
inset 20px 0 300px #f0f,
|
||||||
|
inset -20px 0 300px #0ff,
|
||||||
|
0 0 50px #fff,
|
||||||
|
-10px 0 80px #f0f,
|
||||||
|
10px 0 80px #0ff;
|
||||||
|
}
|
||||||
|
100%{
|
||||||
|
box-shadow:none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// -webkit-animation: bounce-in-fwd 1.1s cubic-bezier(0.645, 0.045, 0.355, 1.000) both;
|
||||||
|
// animation: bounce-in-fwd 1.1s cubic-bezier(0.645, 0.045, 0.355, 1.000) both;
|
||||||
|
animation: bounce-in 800ms cubic-bezier(0.645, 0.045, 0.355, 1.000) both, border-pulsate 10s infinite;
|
||||||
|
/* transition:all 4s ease-out;
|
||||||
|
/*animation-delay: 0s;
|
||||||
|
animation-play-state: running;
|
||||||
|
// animation-fill-mode: backwards; */
|
||||||
|
}
|
||||||
5
src/scss/components/links.scss
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
.links span{
|
||||||
|
padding: 0.5%;
|
||||||
|
background-color: #363f49;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
7
src/scss/index.scss
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
@import "components/common.scss";
|
||||||
|
// @import "components/animation.scss";
|
||||||
|
@import "components/img.scss";
|
||||||
|
@import "components/footer.scss";
|
||||||
|
@import "components/animations.scss";
|
||||||
|
// @import "components/slide.scss";
|
||||||
|
// @import "components/links.scss";
|
||||||