Add base index page
This commit is contained in:
parent
ebb1b01c3e
commit
fb64b9802f
10
.gitignore
vendored
Normal file
10
.gitignore
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
# Vim files
|
||||
*.swp
|
||||
*.swo
|
||||
*.swn
|
||||
|
||||
# Hugo
|
||||
/public
|
||||
/resources/_gen
|
||||
/resources/_gen/*
|
||||
|
@ -3,4 +3,7 @@ title: "Home"
|
||||
date: 2023-06-27
|
||||
---
|
||||
|
||||
Welcome to my site!
|
||||
|
||||
# Hi, I'm Tyler
|
||||
|
||||
I'm a software engineer that does a little bit of everything
|
||||
|
36
data/footer.json
Normal file
36
data/footer.json
Normal file
@ -0,0 +1,36 @@
|
||||
{
|
||||
"Contact": [
|
||||
{
|
||||
"name": "Email",
|
||||
"url": "mailto:hello@clortox.com"
|
||||
},
|
||||
{
|
||||
"name": "LinkedIn",
|
||||
"url": "https://www.linkedin.com/in/tyler-perkins-xyz/"
|
||||
},
|
||||
{
|
||||
"name": "Github",
|
||||
"url": "https://github.com/Clortox"
|
||||
}
|
||||
],
|
||||
"Services": [
|
||||
{
|
||||
"name": "Git",
|
||||
"url": "https://git.clortox.com/"
|
||||
},
|
||||
{
|
||||
"name": "Files",
|
||||
"url": "https://files.clortox.com/"
|
||||
},
|
||||
{
|
||||
"name": "Search",
|
||||
"url": "https://search.clortox.com/"
|
||||
},
|
||||
{
|
||||
"name": "Youtube Frontend",
|
||||
"url": "https://watch.clortox.com/"
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
}
|
27
data/header.json
Normal file
27
data/header.json
Normal file
@ -0,0 +1,27 @@
|
||||
{
|
||||
"LeftHandSide": [
|
||||
{
|
||||
"name": "Home",
|
||||
"url": "/"
|
||||
},
|
||||
{
|
||||
"name": "Resume",
|
||||
"url": "/resume/"
|
||||
},
|
||||
{
|
||||
"name": "Blog",
|
||||
"url": "/blog/"
|
||||
},
|
||||
{
|
||||
"name": "About",
|
||||
"url": "/about/"
|
||||
}
|
||||
],
|
||||
"RightHandSide": [
|
||||
{
|
||||
"name": "Login",
|
||||
"url": "https://auth.clortox.com/"
|
||||
}
|
||||
]
|
||||
|
||||
}
|
@ -1,16 +1,7 @@
|
||||
{{ define "main" }}
|
||||
<div class="centered top-fade dashed-bottom">
|
||||
<div class="centered top-fade">
|
||||
<div class="intro-content">
|
||||
{{ .Content }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="content-list">
|
||||
<ul>
|
||||
{{ range .Site.RegularPages }}
|
||||
<li><a href="{{ .Permalink }}">{{ .Title }}</a></li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{{ end }}
|
||||
|
Binary file not shown.
16
static/css/background.css
Normal file
16
static/css/background.css
Normal file
@ -0,0 +1,16 @@
|
||||
@keyframes animatedBackground {
|
||||
from { background-position: 0 0; }
|
||||
to { background-position: 0 100%; }
|
||||
}
|
||||
@keyframes rotateBackground {
|
||||
from { transform: rotate(0deg); }
|
||||
to { transform: rotate(360deg); }
|
||||
}
|
||||
|
||||
body {
|
||||
background-image: url("/img/webb-dark.png");
|
||||
|
||||
background-position: center;
|
||||
background-repeat: cover;
|
||||
background-attachment: fixed;
|
||||
}
|
57
static/css/footer.css
Normal file
57
static/css/footer.css
Normal file
@ -0,0 +1,57 @@
|
||||
/* Footer */
|
||||
|
||||
footer {
|
||||
background-color: rgba(11,11,11,0.9);
|
||||
color: white;
|
||||
padding: 15px;
|
||||
text-align: center;
|
||||
padding-top: 3vh;
|
||||
}
|
||||
|
||||
.footer-fade {
|
||||
background: linear-gradient(rgba(11,11,12,0.2) 0%, rgba(11,11,12,1) 35%);
|
||||
}
|
||||
|
||||
.footer-sections {
|
||||
display: grid;
|
||||
align-content: center;
|
||||
justify-content: center;
|
||||
align-items: start;
|
||||
justify-items: center;
|
||||
grid-template-columns: 1fr 1fr 1fr;
|
||||
}
|
||||
|
||||
.footer-list {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.footer-list a {
|
||||
width: calc(100% - 30px);
|
||||
background: rgba(22,22,24,1);
|
||||
border: grey;
|
||||
text-decoration: underline 0.1em rgba(255,255,255,0);
|
||||
transition: 300ms;
|
||||
margin: 1px 0px;
|
||||
padding: 15px;
|
||||
|
||||
}
|
||||
|
||||
.footer-list a:hover {
|
||||
text-decoration: underline 0.1em rgba(255,255,255,1);
|
||||
background: rgba(33,33,36,1);
|
||||
|
||||
}
|
||||
|
||||
.footer-header {
|
||||
margin-top: 5px;
|
||||
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 0.8em;
|
||||
color: rgba(255,255,255,0.5);
|
||||
}
|
39
static/css/header.css
Normal file
39
static/css/header.css
Normal file
@ -0,0 +1,39 @@
|
||||
/* Header */
|
||||
|
||||
.navbar {
|
||||
margin: 0;
|
||||
background: rgb(11,11,12);
|
||||
height: 3em;
|
||||
border-color: white;
|
||||
border-bottom: 5px;
|
||||
|
||||
overflow: hidden;
|
||||
|
||||
-ms-overflow-style: none;
|
||||
scrollbar-width: none;
|
||||
}
|
||||
|
||||
.sticky {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.navbar a {
|
||||
float: left;
|
||||
display: block;
|
||||
color: white;
|
||||
text-align: center;
|
||||
padding: 10px 10px;
|
||||
text-decoration: underline 0.1em rgba(255,255,255,0);
|
||||
transition: text-decoration 300ms;
|
||||
}
|
||||
|
||||
.navbar a:hover {
|
||||
text-decoration: underline 0.1em rgba(255,255,255,1);
|
||||
}
|
||||
|
||||
.navbar-right {
|
||||
float: right;
|
||||
margin-right 10px;
|
||||
}
|
@ -1,3 +1,43 @@
|
||||
/* General Formatting*/
|
||||
|
||||
@font-face {
|
||||
font-family: 'Hermit';
|
||||
src: url('fonts/Hermit-Regular.woff') format('woff');
|
||||
url('fonts/Hermit-Regular.woff2') format('woff2');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
body {
|
||||
overflow-x: hidden;
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
padding-bottom: 0px;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4 {
|
||||
font-family: 'Hermit', Helvetica, Arial, sans-serif;
|
||||
font-size: 56px;
|
||||
line-height: 80px;
|
||||
text-shadow: 1px 1px 1px grey;
|
||||
color: white;
|
||||
}
|
||||
|
||||
p, a, li, tr, td, span, noscript, figcaption {
|
||||
font-family: 'Hermit', Helvetica, Arial, sans-serif;
|
||||
font-size: 16px;
|
||||
line-height: 25px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
width: 100vw;
|
||||
-ms-overflow-style: none;
|
||||
scrollbar-width: none;
|
||||
}
|
||||
|
||||
.centered {
|
||||
width: 100vw;
|
||||
max-width: 100%;
|
||||
@ -11,16 +51,13 @@
|
||||
}
|
||||
|
||||
.top-fade {
|
||||
background: linear-gradient(rgba(11,11,12,1) 0%, rgba(11,11,12,0.9 20%), rgba(0,0,0,0.1), 100%)
|
||||
background: linear-gradient(rgba(11,11,12,1) 0%, rgba(11,11,12,0.9) 30%, rgba(0,0,0,0.1) 100%)
|
||||
}
|
||||
|
||||
.dashed-bottom {
|
||||
border-bottom: 5px dashed white;
|
||||
}
|
||||
|
||||
body {
|
||||
overflow-x: hidden;
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
padding-bottom: 0px;
|
||||
.intro-content {
|
||||
text-align: center;
|
||||
}
|
||||
|
BIN
static/fonts/Hermit-Regular.woff
Normal file
BIN
static/fonts/Hermit-Regular.woff
Normal file
Binary file not shown.
BIN
static/fonts/Hermit-Regular.woff2
Normal file
BIN
static/fonts/Hermit-Regular.woff2
Normal file
Binary file not shown.
BIN
static/img/prism.png
Normal file
BIN
static/img/prism.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.5 KiB |
BIN
static/img/webb-dark.png
Normal file
BIN
static/img/webb-dark.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
Binary file not shown.
@ -1,5 +1,22 @@
|
||||
<footer>
|
||||
<p>
|
||||
<footer class="footer-fade">
|
||||
<div class="footer-sections">
|
||||
<div class="footer-list" style="width: 85%">
|
||||
<h4 id="contact" class="footer-header" style="margin-bottom: 5px">Contact</h4>
|
||||
|
||||
{{ range .Site.Data.footer.Contact }}
|
||||
<a data-value="{{ .name }}" class="scramble" href="{{ .url }}">{{ .name }}</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="footer-list" style="width: 85%"></div>
|
||||
<div class="footer-list" style="width: 85%">
|
||||
<h4 class="footer-header" style="margin-bottom: 5px">Services</h4>
|
||||
|
||||
{{ range .Site.Data.footer.Services }}
|
||||
<a data-value="{{ .name }}" class="scramble" href="{{ .url }}">{{ .name }}</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
<p style="margin: 0px;">
|
||||
<small>Copyright © {{ now.Year }}. All rights Reserved</small>
|
||||
</p>
|
||||
</footer>
|
||||
|
@ -1,3 +1,8 @@
|
||||
<head>
|
||||
<link rel="stylesheet" href="{{ "css/clortox.css" | relURL }}">
|
||||
<link rel="stylesheet" href="{{ "css/styles.css" | relURL }}">
|
||||
<link rel="stylesheet" href="{{ "css/header.css" | relURL }}">
|
||||
<link rel="stylesheet" href="{{ "css/footer.css" | relURL }}">
|
||||
|
||||
<link rel="stylesheet" href="{{ "css/background.css" | relURL }}">
|
||||
<script src="{{ "js/scramble.js" | relURL }}"></script>
|
||||
</head>
|
||||
|
@ -1,4 +1,10 @@
|
||||
<header class="navbar sticky">
|
||||
<a href="{{ "/" | relURL }}">Home</a>
|
||||
<a href="{{ "/about/" | relURL }}">About</a>
|
||||
{{ range .Site.Data.header.LeftHandSide }}
|
||||
<a data-value="{{ .name }}" class="scramble header-item" href="{{ .url | relURL }}">{{ .name }}</a>
|
||||
{{ end }}
|
||||
<div class="navbar-right">
|
||||
{{ range .Site.Data.header.RightHandSide }}
|
||||
<a data-value="{{ .name }}" class="scramble header-item" href="{{ .url }}">{{ .name }}</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
</header>
|
||||
|
@ -1,14 +0,0 @@
|
||||
.navbar {
|
||||
margin: 0;
|
||||
background: rgb(11,11,12);
|
||||
height: 3em;
|
||||
border-color: white;
|
||||
border-bottom: 5px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.sticky {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
29
themes/clortox/static/js/scramble.js
Normal file
29
themes/clortox/static/js/scramble.js
Normal file
@ -0,0 +1,29 @@
|
||||
const letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
|
||||
|
||||
window.onload = function() {
|
||||
document.querySelectorAll(".scramble").forEach(item => {
|
||||
item.addEventListener("mouseover", scramble);
|
||||
});
|
||||
}
|
||||
|
||||
function scramble(event) {
|
||||
let iterations = 0;
|
||||
const originalValue = event.target.dataset.value;
|
||||
|
||||
let interval = setInterval(() => {
|
||||
event.target.innerText = event.target.innerText.split("")
|
||||
.map((letter, index) => {
|
||||
if(index < iterations){
|
||||
return originalValue[index];
|
||||
}
|
||||
return letters[Math.floor(Math.random() * letters.length)];
|
||||
}).join("")
|
||||
|
||||
iterations += 1 / 3;
|
||||
|
||||
if(iterations > originalValue.length){
|
||||
clearInterval(interval);
|
||||
event.target.innerText = originalValue;
|
||||
}
|
||||
}, 30);
|
||||
}
|
Loading…
Reference in New Issue
Block a user