This commit is contained in:
godot 2024-02-21 11:11:28 +01:00
commit f126272d75
29 changed files with 1720 additions and 0 deletions

BIN
0life-web-main.zip Normal file

Binary file not shown.

19
50x.html Normal file
View File

@ -0,0 +1,19 @@
<!DOCTYPE html>
<html>
<head>
<title>Error</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>An error occurred.</h1>
<p>Sorry, the page you are looking for is currently unavailable.<br/>
Please try again later.</p>
<p>If you are the system administrator of this resource then you should check
the error log for details.</p>
<p><em>Faithfully yours, nginx.</em></p>
</body>
</html>

1
README.md Normal file
View File

@ -0,0 +1 @@
# 0life-web

33
css/card.css Normal file
View File

@ -0,0 +1,33 @@
/*
.card {
width: 100%;
height: 100%;
display: flex;
overflow: hidden;
/* position: relative; *//*
z-index: 1;
background-image: url(../img/planeta.jpg);
left: 0px;
top: 0px;
background-size: 100%;
background-position: 0% 0%;
opacity: 0.6;
position: absolute;
/* animation: pan-image 15s linear infinite; *//*
}
*/
/*
.card > .card-content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-end;
gap: 4rem;
position: relative;
z-index: 10;
margin: 0rem;
padding-bottom: 6rem;
border-radius: 0.6rem;
flex-grow: 1;
}

15
css/doc.css Normal file
View File

@ -0,0 +1,15 @@
.nav > #doc {
background-color: rgb(var(--primary-rgb));
border-color: rgb(var(--secondary-rgb));
flex-grow: 4;
width: 90%;
border-right-width: 0px;
font-size: 140%;
}
.nav > #doc:hover {
flex-grow: 5;
width: 100%;
}

14
css/interview.css Normal file
View File

@ -0,0 +1,14 @@
.nav > #interview {
background-color: rgb(var(--primary-rgb));
border-color: rgb(var(--secondary-rgb));
flex-grow: 4;
width: 90%;
border-right-width: 0px;
font-size: 140%;
}
.nav > #interview:hover {
flex-grow: 5;
width: 100%;
}

147
css/life.css Normal file
View File

@ -0,0 +1,147 @@
/* NAV */
.nav > #life {
background-color: rgb(var(--primary-rgb));
border-color: rgb(var(--secondary-rgb));
flex-grow: 4;
width: 90%;
border-right-width: 0px;
font-size: 140%;
}
.nav > #life:hover {
flex-grow: 5;
width: 100%;
}
/* DOCS */
.content > #Doc{
background-color: rgb(var(--background-rgb));
background-image: url(../img/sky.jpeg);
background-size: cover;
height: 100vh;
}
.content > #Doc > .fade {
background-image: radial-gradient(rgba(0,0,0,0) 50%, black);
height: 100%;
width: 100%;
}
.content > #Doc > .fade > .star {
background-image: url(../img/star.png);
background-size: cover;
width: 100px; /* potřeba udělat relativni vůči stránce */
height: 100px;
position: absolute;
}
#Doc > .fade > #phrack{
margin-top: 10vh;
margin-left: 40vw;
}
#Doc > .fade > #Secrets{
margin-top: 30vh;
margin-left: 15vw;
}
#Doc > .fade > #HTB{
margin-top: 40vh;
margin-left: 65vw;
}
#Doc > .fade > #bin{
margin-top: 60vh;
margin-left: 20vw;
}
#Doc > .fade > #archive{
margin-top: 70vh;
margin-left: 25vw;
}
#Doc > .fade > #fingerprint{
margin-top: 80vh;
margin-left: 55vw;
}
/* TERMINAL */
.content > #terminal {
background-color: rgb(var(--background-rgb));
display: flex;
justify-content: center;
justify-items: center;
flex-wrap: wrap;
}
.content > #terminal > .block {
background-color: rgb(var(--secondary-background-rgb));
margin: 20px;
overflow: auto;
height: 100vh;
resize: both;
width: 100%;
overflow: auto;
border-style: solid;
border-width: 15px;
border-color: rgb(var(--secondary-rgb));
border-radius: 15px;
text-align: left;
justify-content: center;
}
.content > #terminal > .block > p {
color: rgb(var(--detail-rgb));
margin: 10px;
font-family: "Source Code Pro", monospace;
}
.content > #terminal > .block > p > b{
color: rgb(var(--primary-rgb));
}
.content > #terminal > .block > .neofetch {
display: flex;
flex-wrap: wrap;
}
.neofetch > .logo {
white-space: pre;
color: rgb(var(--primary-rgb));
margin: 10px;
font-family: "Source Code Pro", monospace;
font-weight: bold;
width: auto;
height: auto;
}
.neofetch > .text {
color: rgb(var(--detail-rgb));
margin: 10px;
font-family: "Source Code Pro", monospace;
width: auto;
height: auto;
}
.neofetch > .text > b {
color: rgb(var(--primary-rgb));
font-family: "Source Code Pro", monospace;
}
#terminal > .block > table {
color: rgb(var(--detail-rgb));
margin: 10px;
}

14
css/login.css Normal file
View File

@ -0,0 +1,14 @@
.nav > #login {
background-color: rgb(var(--primary-rgb));
border-color: rgb(var(--secondary-rgb));
flex-grow: 4;
width: 90%;
border-right-width: 0px;
font-size: 140%;
}
.nav > #login:hover {
flex-grow: 5;
width: 100%;
}

191
css/main.css Normal file
View File

@ -0,0 +1,191 @@
:root {
--background-rgb: 0 0 0;
--secondary-background-rgb: 60 60 60;
/*--primary-rgb: 0 158 0; /* green */
--primary-rgb: 33 150 243; /* blue */
/*--secondary-rgb: 0 85 102; /* petroley-blue */
/*--secondary-rgb: 59 83 102; /* dark-blue */
--secondary-rgb: 22 50 102; /* darker-blue */
--detail-rgb: 255 255 255; /* white */
}
body {
background-color: rgb(var(--background-rgb));
margin: 0;
}
/* Navigation */
.nav {
position: fixed;
left: auto;
right: 0px;
height: 50%;
width: 10%;
z-index: 7;
display: flex;
flex-direction: column;
justify-content: space-evenly;
align-items: flex-end;
}
.nav > .nav-gap {
flex-grow: 1;
background-color: none;
}
.nav > .nav-flag {
background-color: rgb(var(--detail-rgb));
border-color: rgb(var(--detail-rgb));
border-top-left-radius: 15px;
border-bottom-left-radius: 15px;
border-width: 5px;
border-style:solid;
flex-grow: 2;
display: flex;
justify-content: center;
align-items: center;
color: black;
text-decoration: none;
width: 70%;
font-family: "Source Code Pro", monospace;
font-size: fill;
transition:
border-color 0.3s,
border-width 0.3s,
border-right-width 0.3s,
flex-grow 0.3s,
font-size 0.3s,
width 0.3s;
}
.nav > .nav-flag:hover {
border-color: rgb(var(--secondary-rgb));
border-width: 10px;
border-right-width: 0px;
flex-grow: 5;
font-size: 140%;
width: 100%;
}
/* Content */
.content {
z-index: 1;
overflow: auto;
position: relative;
display: flex;
flex-direction: column;
justify-content: flex-start;
scroll-snap-align: x mandatory;
}
.content > .card {
display: flex;
position: relative;
flex-basis: 100vh;
scroll-snap-align: center;
}
.content:after,
.content:before {
content: "";
height: 5px;
position: absolute;
left: 50%;
translate: -50% 0%;
background-color: rgb(var(--primary-rgb));
z-index: 5;
}
.content::before {
width: 15%;
top: 0rem;
border-bottom-left-radius: 1rem;
border-bottom-right-radius: 1rem;
}
.content:after {
width: 25%;
bottom: 0rem;
border-top-left-radius: 1rem;
border-top-right-radius: 1rem;
}
/* Life */
.content > #life {
top: 0px;
left: 0px;
flex-direction: column;
align-items: center;
justify-content: center;
flex-grow: 1;
padding: 1rem;
z-index: 2;
background: linear-gradient(rgba(255, 0, 0, 0)40%, rgb(var(--primary-rgb)));
}
.content > #life > #planet {
position: absolute;
width: 100%;
height: 100%;
background-image: url(../img/planeta.png);
background-size: cover;
z-index: 1;
}
#life > .magic,
#life > .link {
font-family: "Source Code Pro", monospace;
color: rgb(var(--detail-rgb));
text-align: center;
text-transform: uppercase;
z-index: 7;
}
#life > .magic {
position: relative;
font-size: 4.25rem;
font-weight: 400;
}
#life > .magic:before,
#life > .magic:after {
content: "";
height: 4px;
width: 4px;
position: absolute;
border: 2px solid rgb(var(--detail-rgb));
border-radius: 2px;
}
#life > .magic:before {
top: 45%;
right: -1.5rem;
}
#life > .magic:after {
top: 45%;
left: -1.5rem;
}
#life > .link {
font-size: 1.5rem;
text-shadow: 0px 0px 0.5rem rgb(var(--detail-rgb));
font-weight: 400;
letter-spacing: 0.3rem;
text-decoration: none;
}

14
css/reborn.css Normal file
View File

@ -0,0 +1,14 @@
.nav > #reborn {
background-color: rgb(var(--primary-rgb));
border-color: rgb(var(--secondary-rgb));
flex-grow: 4;
width: 90%;
border-right-width: 0px;
font-size: 140%;
}
.nav > #reborn:hover {
flex-grow: 5;
width: 100%;
}

310
css/screen.css Normal file
View File

@ -0,0 +1,310 @@
/*
.screen {
width: 100vw;
height: 100vh;
display: flex;
border: 3px solid rgb(var(--primary-rgb) / 80%);
/*aspect-ratio: 10 / 16;*//*
border-radius: 1rem;
background-color: rgb(var(--primary-rgb) / 15%);
overflow: hidden;
position: relative;
z-index: 10;
}
*/9/*
.screen:after,
.screen:before {
content: "";
height: 5px;
position: absolute;
z-index: 4;
left: 50%;
translate: -50% 0%;
background-color: white;
}
.screen:before {
width: 15%;
top: 0rem;
border-bottom-left-radius: 1rem;
border-bottom-right-radius: 1rem;
}
.screen:after {
width: 25%;
bottom: 0rem;
border-top-left-radius: 1rem;
border-top-right-radius: 1rem;
}*/
@keyframes pan-overlay {
from {
background-position: 0% 0%;
}
to {
background-position: 0% -100%;
}
}
/*
.screen-overlay {
background: linear-gradient(
rgb(var(--primary-rgb) / 0.15),
rgb(var(--primary-rgb) / 0.15) 3px,
transparent 3px,
transparent 9px
);
background-size: 100% 9px;
height: 100%;
width: 100%;
animation: pan-overlay 22s infinite linear;
position: absolute;
z-index: 2;
left: 0px;
top: 0px;
}*/
@keyframes pan-image {
0% {
background-position: 36% 42%;
background-size: 200%;
}
20% {
background-position: 30% 35%;
background-size: 200%;
}
20.0001% { /* -- View 2 -- */
background-position: 60% 85%;
background-size: 500%;
}
40% {
background-position: 49% 81%;
background-size: 500%;
}
40.0001% { /* -- View 3 -- */
background-position: 80% 42%;
background-size: 300%;
}
60% {
background-position: 84% 33%;
background-size: 300%;
}
60.0001% { /* -- View 4 -- */
background-position: 0% 0%;
background-size: 300%;
}
80% {
background-position: 15% 4%;
background-size: 300%;
}
80.0001% { /* -- View 5 -- */
background-position: 80% 10%;
background-size: 300%;
}
100% {
background-position: 72% 14%;
background-size: 300%;
}
}
/*
.screen > .screen-image {
background-image: url("https://images.unsplash.com/photo-1515266591878-f93e32bc5937?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2574&q=80");
height: 100%;
width: 100%;
position: absolute;
z-index: 1;
left: 0px;
top: 0px;
background-size: 300%;
background-position: 0% 0%;
filter: sepia(100%) hue-rotate(160deg);
opacity: 0.6;
animation: pan-image 15s linear infinite;
}
*//*
.screen > .screen-content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-end;
flex-grow: 1;
gap: 4rem;
position: relative;
z-index: 3;
margin: 1rem;
padding-bottom: 6rem;
border: 1px solid rgb(var(--primary-rgb) / 50%);
border-radius: 0.6rem;
}*/
.screen > .screen-content > .screen-icon {
color: white;
font-size: 4rem;
text-shadow: 0px 0px 0.5rem white;
}
.screen > .screen-content > .screen-user{
display: flex;
flex-direction: column;
align-items: center;
gap: 1rem;
position: relative;
}
.screen > .screen-content > .screen-user:before,
.screen > .screen-content > .screen-user:after {
content: "";
position: absolute;
top: 0px;
background-color: rgb(var(--primary-rgb));
border-radius: 1rem;
box-shadow: 0px 0px 8px 3px rgb(var(--primary-rgb) / 60%);
}
.screen > .screen-content > .screen-user:before {
height: 2px;
width: 50px;
translate: -20px -1rem;
opacity: 0.75;
}
.screen > .screen-content > .screen-user:after {
height: 3px;
width: 30px;
translate: 26px calc(-1rem - 0.5px);
}
.screen > .screen-content > .screen-user > :is(.name, .link) {
font-family: "Source Code Pro", monospace;
color: white;
text-align: center;
text-transform: uppercase;
}
.screen > .screen-content > .screen-user > .name {
position: relative;
font-size: 4.25rem;
font-weight: 400;
}
.screen > .screen-content > .screen-user > .name:before,
.screen > .screen-content > .screen-user > .name:after {
content: "";
height: 4px;
width: 4px;
position: absolute;
border: 2px solid white;
border-radius: 2px;
}
.screen > .screen-content > .screen-user > .name:before {
top: 45%;
right: -1.5rem;
}
.screen > .screen-content > .screen-user > .name:after {
top: 45%;
left: -1.5rem;
}
.screen > .screen-content > .screen-user > .link {
opacity: 0.8;
font-size: 1.5rem;
text-shadow: 0px 0px 0.5rem white;
font-weight: 400;
letter-spacing: 0.3rem;
text-decoration: none;
}
.screen > .screen-content > .screen-user > .link:is(:hover, :focus) {
text-decoration: underline;
}
@media(max-width: 700px) {
.screen {
scale: 0.6;
margin-bottom: 0rem;
}
}
/* -- Blob effect --
@keyframes rotate {
from {
rotate: 0deg;
}
50% {
scale: 1 1.5;
}
to {
rotate: 360deg;
}
}
*//* -- Links --
#links {
display: flex;
flex-direction: column;
gap: 0.5rem;
position: absolute;
top: 0px;
left: 0px;
z-index: 10;
padding: 1rem;
}
.meta-link {
display: flex;
align-items: center;
gap: 0.5rem;
}
.meta-link > :is(span, a) {
font-family: "Rubik", sans-serif;
font-size: 0.9rem;
color: white;
}
.meta-link > .label {
width: 160px;
text-align: right;
}
.meta-link > a {
text-decoration: none;
outline: none;
}
.meta-link > a.source {
color: rgb(94, 106, 210);
}
.meta-link > a:is(:hover, :focus) > i {
color: white;
}
.meta-link > a.youtube {
color: rgb(239, 83, 80);
}
.meta-link > a.youtube > i {
padding-top: 0.2rem;
}
.meta-link > a > i {
height: 1rem;
line-height: 1rem;
}

131
css/style.css Normal file
View File

@ -0,0 +1,131 @@
body {
margin: 0;
padding: 15px 20px;
min-height: 99%;
width: 100%;
min-width: 550px;
color: #519975;
background: #211D1B;
font-family: cursor, monospace;
overflow-x: hidden;
}
::selection {
color: #211830;
background-color: #519975;
}
::-moz-selection {
color: #211830;
background-color: #519975;
}
textarea {
left: -1000px;
position: absolute;
}
b {
font-weight: bold;
text-decoration: underline;
}
/* Cursor Start */
.cursor {
font-size: 12px;
color: #73ABAD;
background-color: #73ABAD;
position: relative;
opacity: 1;
height: 1.5em;
width: 10px;
max-width: 10px;
transform: translateY(4px);
overflow: hidden;
text-indent: -5px;
display: inline-block;
text-decoration: blink;
animation: blinker 1s linear infinite;
}
@keyframes blinker {
50% {
opacity: 0;
}
}
#command {
cursor: text;
height: 50px;
color: #73ABAD;
}
#liner {
line-height: 1.3em;
margin-top: -2px;
animation: show 0.5s ease forwards;
animation-delay: 1.2s;
opacity: 0;
}
#liner::before {
color: #519975;
content: "visitor@fkcodes.com:~$";
}
#liner.password::before {
content: "Password:";
}
@keyframes show {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
/* Cursor End */
p {
display: block;
line-height: 1.3em;
margin: 0;
overflow: hidden;
white-space: nowrap;
margin: 0;
letter-spacing: 0.05em;
animation: typing 0.5s steps(30, end);
}
.no-animation {
animation: typing 0 steps(30, end);
}
.margin {
margin-left: 20px;
}
@keyframes typing {
from {
width: 0;
}
to {
width: 100%;
}
}
.index {
color: #DCDCCC;
}
.color2 {
color: #B89076;
}
.command {
color: #73ABAD;
text-shadow: 0 0 5px #73ABAD;
}
.error {
color: #B89076;
}
.white {
color: #fff;
}
.inherit,
a {
color: #9C8394;
}
a {
text-decoration: inherit;
}
a:hover {
background: #73ABAD;
color: #211830;
}
a:focus {
outline: 0;
}

14
css/terminal.css Normal file
View File

@ -0,0 +1,14 @@
.nav > #terminal {
background-color: rgb(var(--primary-rgb));
border-color: rgb(var(--secondary-rgb));
flex-grow: 4;
width: 90%;
border-right-width: 0px;
font-size: 140%;
}
.nav > #terminal:hover {
flex-grow: 5;
width: 100%;
}

64
doc.html Normal file
View File

@ -0,0 +1,64 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width", initial-scale="1.0">
<title>Life Reborn</title>
<link rel="icon" type="image/x-icon" href="img/fav.png">
<link rel="stylesheet" type="text/css" href="css/main.css">
<link rel="stylesheet" type="text/css" href="css/doc.css">
</head>
<body>
<!-- NAV -->
<div class="nav">
<a class="nav-gap"></a>
<a href="index.html" class="nav-flag" id="life">0-LIFE</a>
<a class="nav-gap"></a>
<a href="reborn.html" class="nav-flag" id="reborn">Reborn</a>
<a class="nav-gap"></a>
<a href="doc.html" class="nav-flag" id="doc">Docs</a>
<a class="nav-gap"></a>
<a href="terminal.html" class="nav-flag" id="terminal">Terminal</a>
<a class="nav-gap"></a>
<a href="interview.html" class="nav-flag" id="interview">Interview</a>
<a class="nav-gap"></a>
<a href="login.html" class="nav-flag" id="login">Login</a>
</div>
<!-- CONTENT OF WEB -->
<div class="content">
<div class="card" id="life">
<div class="background" id="planet"></div>
<div class="magic" data-value="Documentation">Documentation</div>
<a class="link" href="https://youtu.be/dQw4w9WgXcQ">REBORN</a>
</div>
<div class="card" id="Doc">Doc</div>
<div class="card" id="terminal">WhoAmI</div>
<div class="card" id="inter">Interview</div>
<div class="card" id="login">Login</div>
</div>
<!-- SCRIPTS -->
<script src="js/magic.js"></script>
</div></body>
</html>

BIN
img/fav.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
img/planeta.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

BIN
img/planeta.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 MiB

BIN
img/sky.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

BIN
img/star.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
img/star.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 KiB

150
index.html Normal file
View File

@ -0,0 +1,150 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width", initial-scale="1.0">
<title>Life Reborn</title>
<link rel="icon" type="image/x-icon" href="img/fav.png">
<link rel="stylesheet" type="text/css" href="css/main.css">
<link rel="stylesheet" type="text/css" href="css/life.css">
</head>
<body>
<!-- NAV -->
<div class="nav">
<a class="nav-gap"></a>
<a href="index.html" class="nav-flag" id="life">0-LIFE</a>
<a class="nav-gap"></a>
<a href="reborn.html" class="nav-flag" id="reborn">Reborn</a>
<a class="nav-gap"></a>
<a href="terminal.html" class="nav-flag" id="terminal">Terminal</a>
<a class="nav-gap"></a>
<a href="doc.html" class="nav-flag" id="doc">Docs</a>
<a class="nav-gap"></a>
<a href="interview.html" class="nav-flag" id="interview">Interview</a>
<a class="nav-gap"></a>
<a href="login.html" class="nav-flag" id="login">Login</a>
</div>
<!-- CONTENT OF WEB -->
<div class="content">
<div class="card" id="life">
<div class="background" id="planet"></div>
<div class="magic" data-value="0-LIFE">0-LIFE</div>
<a class="link" href="https://youtu.be/dQw4w9WgXcQ">REBORN</a>
</div>
<!-- TERMINAL -->
<div class="card" id="terminal">
<div class="block">
<p><b>gest@web ~$</b> whoami</p>
<p>R4ND0M</p>
<p><b>gest@web ~$</b> neofetch</p>
<div class="neofetch">
<div class="logo">
-`
.o+`
`ooo/
`+oooo:
`+oooooo:
-+oooooo+:
`/:-:++oooo+:
`/++++/+++++++:
`/++++++++++++++:
`/+++ooooooooooooo/`
./ooosssso++osssssso+`
.oossssso-````/ossssss+`
-osssssso. :ssssssso.
:osssssss/ osssso+++.
/ossssssss/ +ssssooo/-
`/ossssso+/:- -:/+osssso+-
`+sso+:-` `.-/+oso:
`++:. `-/+/
.` `/
</div><div class="text">
<b>gest</b>@<b>web</b><br>
--------------- <br>
<b>OS</b>: Arch Linux x86_64 <br>
<b>Host</b>: HP Pav Gaming Laptop 16-a0900nc <br>
<b>Kernel</b>: 6.01.0-19-amd64 <br>
<b>Uptime</b>: 37 mins <br>
<b>Packages</b>: 1932 (pacman), 45 (nix-default) <br>
<b>Shell</b>: bash 5.2.15 <br>
<b>Resolution</b>: 1920x1080 <br>
<b>DE</b>: Xfce 4.18 <br>
<b>WM</b>: Xfwm4 <br>
<b>WM Theme</b>: Default <br>
<b>Theme</b>: Peppermint-10-Red-Dark [GTK2/3] <br>
<b>Icons</b>: Pepirus [GTK2], Adwaita [GTK3] <br>
<b>Terminal</b>: xfce4-terminal <br>
<b>Terminal Font</b>: Source Code Pro 10 <br>
<b>CPU</b>: Intel i5-10300H (8) @ 4.500GHz <br>
<b>GPU</b>: NVIDIA 01:00.0 NVIDIA Corporation TU117M <br>
<b>GPU</b>: Intel CometLake-H GT2 [UHD Graphics] <br>
<b>Memory</b>: 4677MiB / 15780MiB <br>
</div></div>
<p><b>gest@web ~$</b> cd Documents/</p>
<p><b>gest@web ~/Documents$</b> ls -la</p>
<table clas="table">
<tr><td>total 16720</td></tr>
<tr><td>drwxr-xr-x</td><td>12</td><td>R4ND0M</td><td>R4ND0M</td><td>4096</td><td>7.</td><td>kvě</td><td>08.24</td><td>.</td></tr>
<tr><td>drwxr-xr-x</td><td>30</td><td>R4ND0M</td><td>R4ND0M</td><td>4096</td><td>15.</td><td>kvě</td><td>19.31</td><td>..</td></tr>
<tr><td>drwxrwxrwx</td><td>8</td><td>R4ND0M</td><td>R4ND0M</td><td>4096</td><td>15.</td><td>kvě</td><td>00.05</td><td>0life</td></tr>
<tr><td>-rwxrwxrwx</td><td>1</td><td>B1t</td><td>R4ND0M</td><td>12067</td><td>10.</td><td>led</td><td>2022</td><td>bye.md</td></tr>
<tr><td>-rwxrwxrwx</td><td>1</td><td>R4ND0M</td><td>R4ND0M</td><td>18090</td><td>6.</td><td>kvě</td><td>2021</td><td>logs.xlsx</td></tr>
<tr><td>drwxr-xr-x</td><td>2</td><td>R4ND0M</td><td>R4ND0M</td><td>4096</td><td>7.</td><td>bře</td><td>15.46</td><td>Conti-fuck</td></tr>
<tr><td>drwxrwxrwx</td><td>3</td><td>R4ND0M</td><td>R4ND0M</td><td>4096</td><td>26.</td><td>úno</td><td>13.03</td><td>thx-bro</td></tr>
<tr><td>drwxr-xr-x</td><td>2</td><td>R4ND0M</td><td>R4ND0M</td><td>4096</td><td>5.</td><td>bře</td><td>10.22</td><td>Nix</td></tr>
<tr><td>-rwxr--r--</td><td>1</td><td>R4ND0M</td><td>R4ND0M</td><td>15844544</td><td>7.</td><td>kvě</td><td>08.24</td><td>nvim.appimage</td></tr>
<tr><td>-rwxrwxrwx</td><td>1</td><td>R4ND0M</td><td>R4ND0M</td><td>342</td><td>3.</td><td>pro</td><td>21.00</td><td>poznamky.txt.txt</td></tr>
<tr><td>-rwxrwxrwx</td><td>1</td><td>R4ND0M</td><td>R4ND0M</td><td>9900</td><td>15.</td><td>lis</td><td>22.24</td><td>'WaterZebraBakery(20).txt'</td></tr>
</table>
<p><b>gest@web ~/Documents$</b> cd 0life/</p>
<p>bash: cd: 0life. Permission denied. Type "help" for more information</p>
</div>
</div>
<!-- DOCS -->
<div class="card" id="Doc">
<div class="fade">
<a href="http://www.phrack.org/" class="star" id="phrack"></a>
<a href="https://ddosecrets.com/wiki/Distributed_Denial_of_Secrets" class="star" id="Secrets"></a>
<a href="https://academy.hackthebox.com/" class="star" id="HTB"></a>
<a href="https://pastebin.com" class="star" id="bin"></a>
<a href="https://archive.org/" class="star" id="archive"></a>
<a href="https://amiunique.org/fp" class="star" id="fingerprint"></a>
</div>
</div>
<!-- INTERVIEW -->
<div class="card" id="inter">Interview</div>
<div class="card" id="login">Login</div>
</div>
<!-- SCRIPTS -->
<script src="js/magic.js"></script>
</div></body>
</html>

64
interview.html Normal file
View File

@ -0,0 +1,64 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width", initial-scale="1.0">
<title>Life Reborn</title>
<link rel="icon" type="image/x-icon" href="img/fav.png">
<link rel="stylesheet" type="text/css" href="css/main.css">
<link rel="stylesheet" type="text/css" href="css/interview.css">
</head>
<body>
<!-- NAV -->
<div class="nav">
<a class="nav-gap"></a>
<a href="index.html" class="nav-flag" id="life">0-LIFE</a>
<a class="nav-gap"></a>
<a href="reborn.html" class="nav-flag" id="reborn">Reborn</a>
<a class="nav-gap"></a>
<a href="doc.html" class="nav-flag" id="doc">Docs</a>
<a class="nav-gap"></a>
<a href="terminal.html" class="nav-flag" id="terminal">Terminal</a>
<a class="nav-gap"></a>
<a href="interview.html" class="nav-flag" id="interview">Interview</a>
<a class="nav-gap"></a>
<a href="login.html" class="nav-flag" id="login">Login</a>
</div>
<!-- CONTENT OF WEB -->
<div class="content">
<div class="card" id="life">
<div class="background" id="planet"></div>
<div class="magic" data-value="Interview">Interview</div>
<a class="link" href="https://youtu.be/dQw4w9WgXcQ">REBORN</a>
</div>
<div class="card" id="Doc">Doc</div>
<div class="card" id="terminal">WhoAmI</div>
<div class="card" id="inter">Interview</div>
<div class="card" id="login">Login</div>
</div>
<!-- SCRIPTS -->
<script src="js/magic.js"></script>
</div></body>
</html>

38
js/caret.js Normal file
View File

@ -0,0 +1,38 @@
function $(elid) {
return document.getElementById(elid);
}
var cursor;
window.onload = init;
function init() {
cursor = $("cursor");
cursor.style.left = "0px";
}
function nl2br(txt) {
return txt.replace(/\n/g, '');
}
function typeIt(from, e) {
e = e || window.event;
var w = $("typer");
var tw = from.value;
if (!pw){
w.innerHTML = nl2br(tw);
}
}
function moveIt(count, e) {
e = e || window.event;
var keycode = e.keyCode || e.which;
if (keycode == 37 && parseInt(cursor.style.left) >= (0 - ((count - 1) * 10))) {
cursor.style.left = parseInt(cursor.style.left) - 10 + "px";
} else if (keycode == 39 && (parseInt(cursor.style.left) + 10) <= 0) {
cursor.style.left = parseInt(cursor.style.left) + 10 + "px";
}
}
function alert(txt) {
console.log(txt);
}

87
js/commands.js Normal file
View File

@ -0,0 +1,87 @@
var youtube = "https://www.youtube.com/fknight/";
var twitter = "https://www.twitter.com/forrestpknight/";
var password = "fkcodes";
var linkedin = "https://www.linkedin.com/in/forrestpknight/";
var instagram = "https://www.instagram.com/forrestpknight/";
var github = "https://github.com/forrestknight/";
var email = 'mailto:forrest@fkcodes.com';
whois = [
"<br>",
"Hey, I'm Forrest!👋",
"I'm a software developer and content creator, who builds engaging websites like this one",
"and makes YouTube videos about computer science & software engineering.",
"After graduating with a Bachelor's in Computer Science, I worked professionally",
"as a software engineer building enterprise web applications for Fortune 500 companies.",
"While doing all of that, I documentned my coding journey on YouTube - trying to enlighten",
"the next generation of developers and help them navigate the crazy world that is software", "development & computer science.",
"Before I knew it, that online presence took on a life of its own, to the point where I knew",
"I needed to make the jump from software engineering to full time content creator, and it's",
"the best decision I ever made.",
"Now, I make videos about creating cool shit like this terminal website, and hosting my",
"podcast 'Decoded w/ Forrest Knight.' What most people don't know, and will only know",
"because they're reading this right now, is that I also run a creative & media agency.",
"We partner with clients to drive their business outcomes using modern marketing strategies.",
"<br>"
];
whoami = [
"<br>",
"The paradox of “Who am I?” is: we never know, but, we constantly find out.",
"<br>"
];
social = [
"<br>",
'youtube <a href="' + youtube + '" target="_blank">youtube/fknight' + "</a>",
'twitter <a href="' + twitter + '" target="_blank">twitter/forrestpknight' + '</a>',
'linkedin <a href="' + linkedin + '" target="_blank">linkedin/forrestpknight' + "</a>",
'instagram <a href="' + instagram + '" target="_blank">instagram/forrestpknight' + '</a>',
'github <a href="' + github + '" target="_blank">github/forrestknight' + "</a>",
"<br>"
];
secret = [
"<br>",
'<span class="command">sudo</span> Only use if you\'re admin',
"<br>"
];
projects = [
"<br>",
"Still curating... most projects are offline, on GitHub, or confidential.",
"<br>"
];
help = [
"<br>",
'<span class="command">whois</span> Who is Forrest?',
'<span class="command">whoami</span> Who are you?',
'<span class="command">video</span> View YouTube videos',
'<span class="command">social</span> Display social networks',
'<span class="command">secret</span> Find the password',
'<span class="command">projects</span> View coding projects',
'<span class="command">history</span> View command history',
'<span class="command">help</span> You obviously already know what this does',
'<span class="command">email</span> Do not email me',
'<span class="command">clear</span> Clear terminal',
'<span class="command">banner</span> Display the header',
"<br>",
];
banner = [
'<span class="index">ForrestKnight (FK) Not A Corporation. All knights reserved.</span>',
" ___ ____",
" /' --;^/ ,-_\\ \\ | / ",
" / / --o\\ o-\\ \\\\ --(_)-- ",
" /-/-/|o|-|\\-\\\\|\\\\ / | \\ ______ __ __ __ _ __ __ ",
" '` ` |-| `` ' / ____/___ _____________ _____/ /_ / //_/____ (_)___ _/ /_ / /_ ",
" |-| / /_ / __ \\/ ___/ ___/ _ \\/ ___/ __/ / ,< / __ \\/ / __ `/ __ \\/ __/ ",
" |-|O / __/ / /_/ / / / / / __(__ ) /_ / /| |/ / / / / /_/ / / / / /_ ",
" |-(\\,__ /_/ \\____/_/ /_/ \\___/____/\\__/ /_/ |_/_/ /_/_/\\__, /_/ /_/\\__/ ",
" ...|-|\\--,\\_.... /____/ © 2022",
" ,;;;;;;;;;;;;;;;;;;;;;;;;,. ",
"~~,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~",
'<span class="color2">Welcome to my interactive web terminal.</span>',
"<span class=\"color2\">For a list of available commands, type</span> <span class=\"command\">'help'</span><span class=\"color2\">.</span>",
];

32
js/magic.js Normal file
View File

@ -0,0 +1,32 @@
const letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
let interval = null;
const screen = document.querySelector(".magic"),
name = document.querySelector(".magic");
screen.onmouseenter = event => {
let iteration = 0;
clearInterval(interval);
interval = setInterval(() => {
name.innerText = name.innerText
.split("")
.map((letter, index) => {
if(index < iteration) {
return name.dataset.value[index];
}
return letters[Math.floor(Math.random() * 26)]
})
.join("");
if(iteration >= name.dataset.value.length){
clearInterval(interval);
}
iteration += 1 / 3;
}, 30);
}

190
js/main.js Normal file
View File

@ -0,0 +1,190 @@
var before = document.getElementById("before");
var liner = document.getElementById("liner");
var command = document.getElementById("typer");
var textarea = document.getElementById("texter");
var terminal = document.getElementById("terminal");
var git = 0;
var pw = false;
let pwd = false;
var commands = [];
setTimeout(function() {
loopLines(banner, "", 80);
textarea.focus();
}, 100);
window.addEventListener("keyup", enterKey);
console.log(
"%cYou hacked my password!😠",
"color: #04ff00; font-weight: bold; font-size: 24px;"
);
console.log("%cPassword: '" + password + "' - I wonder what it does?🤔", "color: grey");
//init
textarea.value = "";
command.innerHTML = textarea.value;
function enterKey(e) {
if (e.keyCode == 181) {
document.location.reload(true);
}
if (pw) {
let et = "*";
let w = textarea.value.length;
command.innerHTML = et.repeat(w);
if (textarea.value === password) {
pwd = true;
}
if (pwd && e.keyCode == 13) {
loopLines(secret, "color2 margin", 120);
command.innerHTML = "";
textarea.value = "";
pwd = false;
pw = false;
liner.classList.remove("password");
} else if (e.keyCode == 13) {
addLine("Wrong password", "error", 0);
command.innerHTML = "";
textarea.value = "";
pw = false;
liner.classList.remove("password");
}
} else {
if (e.keyCode == 13) {
commands.push(command.innerHTML);
git = commands.length;
addLine("visitor@fkcodes.com:~$ " + command.innerHTML, "no-animation", 0);
commander(command.innerHTML.toLowerCase());
command.innerHTML = "";
textarea.value = "";
}
if (e.keyCode == 38 && git != 0) {
git -= 1;
textarea.value = commands[git];
command.innerHTML = textarea.value;
}
if (e.keyCode == 40 && git != commands.length) {
git += 1;
if (commands[git] === undefined) {
textarea.value = "";
} else {
textarea.value = commands[git];
}
command.innerHTML = textarea.value;
}
}
}
function commander(cmd) {
switch (cmd.toLowerCase()) {
case "help":
loopLines(help, "color2 margin", 80);
break;
case "whois":
loopLines(whois, "color2 margin", 80);
break;
case "whoami":
loopLines(whoami, "color2 margin", 80);
break;
case "video":
addLine("Opening YouTube...", "color2", 80);
newTab(youtube);
break;
case "sudo":
addLine("Oh no, you're not admin...", "color2", 80);
setTimeout(function() {
window.open('https://www.youtube.com/watch?v=dQw4w9WgXcQ');
}, 1000);
break;
case "social":
loopLines(social, "color2 margin", 80);
break;
case "secret":
liner.classList.add("password");
pw = true;
break;
case "projects":
loopLines(projects, "color2 margin", 80);
break;
case "password":
addLine("<span class=\"inherit\"> Lol! You're joking, right? You\'re gonna have to try harder than that!😂</span>", "error", 100);
break;
case "history":
addLine("<br>", "", 0);
loopLines(commands, "color2", 80);
addLine("<br>", "command", 80 * commands.length + 50);
break;
case "email":
addLine('Opening mailto:<a href="mailto:forrest@fkcodes.com">forrest@fkcodes.com</a>...', "color2", 80);
newTab(email);
break;
case "clear":
setTimeout(function() {
terminal.innerHTML = '<a id="before"></a>';
before = document.getElementById("before");
}, 1);
break;
case "banner":
loopLines(banner, "", 80);
break;
// socials
case "youtube":
addLine("Opening YouTube...", "color2", 80);
newTab(youtube);
break;
case "twitter":
addLine("Opening Twitter...", "color2", 0);
newTab(twitter);
break;
case "linkedin":
addLine("Opening LinkedIn...", "color2", 0);
newTab(linkedin);
break;
case "instagram":
addLine("Opening Instagram...", "color2", 0);
newTab(instagram);
break;
case "github":
addLine("Opening GitHub...", "color2", 0);
newTab(github);
break;
default:
addLine("<span class=\"inherit\">Command not found. For a list of commands, type <span class=\"command\">'help'</span>.</span>", "error", 100);
break;
}
}
function newTab(link) {
setTimeout(function() {
window.open(link, "_blank");
}, 500);
}
function addLine(text, style, time) {
var t = "";
for (let i = 0; i < text.length; i++) {
if (text.charAt(i) == " " && text.charAt(i + 1) == " ") {
t += "&nbsp;&nbsp;";
i++;
} else {
t += text.charAt(i);
}
}
setTimeout(function() {
var next = document.createElement("p");
next.innerHTML = t;
next.className = style;
before.parentNode.insertBefore(next, before);
window.scrollTo(0, document.body.offsetHeight);
}, time);
}
function loopLines(name, style, time) {
name.forEach(function(item, index) {
addLine(item, style, index * time);
});
}

64
login.html Normal file
View File

@ -0,0 +1,64 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width", initial-scale="1.0">
<title>Life Reborn</title>
<link rel="icon" type="image/x-icon" href="img/fav.png">
<link rel="stylesheet" type="text/css" href="css/main.css">
<link rel="stylesheet" type="text/css" href="css/login.css">
</head>
<body>
<!-- NAV -->
<div class="nav">
<a class="nav-gap"></a>
<a href="index.html" class="nav-flag" id="life">0-LIFE</a>
<a class="nav-gap"></a>
<a href="reborn.html" class="nav-flag" id="reborn">Reborn</a>
<a class="nav-gap"></a>
<a href="doc.html" class="nav-flag" id="doc">Docs</a>
<a class="nav-gap"></a>
<a href="terminal.html" class="nav-flag" id="terminal">Terminal</a>
<a class="nav-gap"></a>
<a href="interview.html" class="nav-flag" id="interview">Interview</a>
<a class="nav-gap"></a>
<a href="login.html" class="nav-flag" id="login">Login</a>
</div>
<!-- CONTENT OF WEB -->
<div class="content">
<div class="card" id="life">
<div class="background" id="planet"></div>
<div class="magic" data-value="Login">Login</div>
<a class="link" href="https://youtu.be/dQw4w9WgXcQ">REBORN</a>
</div>
<div class="card" id="Doc">Doc</div>
<div class="card" id="terminal">WhoAmI</div>
<div class="card" id="inter">Interview</div>
<div class="card" id="login">Login</div>
</div>
<!-- SCRIPTS -->
<script src="js/magic.js"></script>
</div></body>
</html>

64
reborn.html Normal file
View File

@ -0,0 +1,64 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width", initial-scale="1.0">
<title>Life Reborn</title>
<link rel="icon" type="image/x-icon" href="img/fav.png">
<link rel="stylesheet" type="text/css" href="css/main.css">
<link rel="stylesheet" type="text/css" href="css/reborn.css">
</head>
<body>
<!-- NAV -->
<div class="nav">
<a class="nav-gap"></a>
<a href="index.html" class="nav-flag" id="life">0-LIFE</a>
<a class="nav-gap"></a>
<a href="reborn.html" class="nav-flag" id="reborn">Reborn</a>
<a class="nav-gap"></a>
<a href="doc.html" class="nav-flag" id="doc">Docs</a>
<a class="nav-gap"></a>
<a href="terminal.html" class="nav-flag" id="terminal">Terminal</a>
<a class="nav-gap"></a>
<a href="interview.html" class="nav-flag" id="interview">Interview</a>
<a class="nav-gap"></a>
<a href="login.html" class="nav-flag" id="login">Login</a>
</div>
<!-- CONTENT OF WEB -->
<div class="content">
<div class="card" id="life">
<div class="background" id="planet"></div>
<div class="magic" data-value="Reborn">Reborn</div>
<a class="link" href="https://youtu.be/dQw4w9WgXcQ">REBORN</a>
</div>
<div class="card" id="Doc">Doc</div>
<div class="card" id="terminal">WhoAmI</div>
<div class="card" id="inter">Interview</div>
<div class="card" id="login">Login</div>
</div>
<!-- SCRIPTS -->
<script src="js/magic.js"></script>
</div></body>
</html>

64
terminal.html Normal file
View File

@ -0,0 +1,64 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width", initial-scale="1.0">
<title>Life Reborn</title>
<link rel="icon" type="image/x-icon" href="img/fav.png">
<link rel="stylesheet" type="text/css" href="css/main.css">
<link rel="stylesheet" type="text/css" href="css/terminal.css">
</head>
<body>
<!-- NAV -->
<div class="nav">
<a class="nav-gap"></a>
<a href="index.html" class="nav-flag" id="life">0-LIFE</a>
<a class="nav-gap"></a>
<a href="reborn.html" class="nav-flag" id="reborn">Reborn</a>
<a class="nav-gap"></a>
<a href="doc.html" class="nav-flag" id="doc">Docs</a>
<a class="nav-gap"></a>
<a href="terminal.html" class="nav-flag" id="terminal">Terminal</a>
<a class="nav-gap"></a>
<a href="interview.html" class="nav-flag" id="interview">Interview</a>
<a class="nav-gap"></a>
<a href="login.html" class="nav-flag" id="login">Login</a>
</div>
<!-- CONTENT OF WEB -->
<div class="content">
<div class="card" id="life">
<div class="background" id="planet"></div>
<div class="magic" data-value="Terminal">Terminal</div>
<a class="link" href="https://youtu.be/dQw4w9WgXcQ">REBORN</a>
</div>
<div class="card" id="Doc">Doc</div>
<div class="card" id="terminal">WhoAmI</div>
<div class="card" id="inter">Interview</div>
<div class="card" id="login">Login</div>
</div>
<!-- SCRIPTS -->
<script src="js/magic.js"></script>
</div></body>
</html>