adding dashboard, changing front page
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
:root {
|
||||
--tan: #E6D7AA;
|
||||
--tan: #FFDFB4;
|
||||
--accent: black;
|
||||
--purple: #251D44;
|
||||
--green: #0B5538;
|
||||
|
||||
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 20 KiB |
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 20 KiB |
3
ui/_/images/divider.svg
Normal file
3
ui/_/images/divider.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="4004" height="80" viewBox="0 0 4004 80" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1978.59 16.9981C1958.34 34.6594 1926.21 39.7642 1911.05 27.2249C1905.12 22.3182 1901.18 22.3387 1895.3 27.3069C1889.42 32.2751 1668.94 35.0689 943.815 38.8441C319.093 42.0967 0.1788 45.4029 0.198794 49.2432C0.218788 53.0834 319.151 53.0688 943.873 49.8162C1617.81 46.3074 1889.5 46.5388 1894.77 50.9003C1900.04 55.2618 1905.95 55.231 1915.11 50.7944C1938.02 40.2513 1957.73 43.9891 1980.14 61.9768L2001.88 79.4194L2023.45 61.7513C2046.32 42.9792 2077.13 37.8812 2092.29 50.4205C2098.22 55.3272 2102.16 55.3067 2108.04 50.3385C2113.92 45.3703 2334.4 42.5766 3059.53 38.8013C3684.25 35.5487 4003.16 32.2425 4003.14 28.4023C4003.12 24.562 3684.19 24.5767 3059.47 27.8292C2334.35 31.6045 2113.85 31.1066 2107.92 26.2C2101.98 21.2933 2098.05 21.3138 2092.17 26.282C2077.14 38.9784 2044.96 34.2084 2024.53 16.759C2013.98 7.48739 2003.44 0.410206 2001.47 0.420455C1999.5 0.430705 1989.04 7.61722 1978.59 16.9981Z" fill="#FFDFB4"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
BIN
ui/_/images/the_return.webp
Normal file
BIN
ui/_/images/the_return.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 MiB |
22
ui/map.html
Normal file
22
ui/map.html
Normal file
@@ -0,0 +1,22 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Satellite Map with Custom Interactive Elements</title>
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<link rel="stylesheet" href="styles.css">
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<div id="map"></div>
|
||||
<div id="custom-controls" class="bg-white rounded-lg shadow-md m-2 p-4">
|
||||
<h2 class="text-lg font-bold mb-2">Points of Interest</h2>
|
||||
<button id="pan-to-poi" class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">Show Half Dome</button>
|
||||
</div>
|
||||
|
||||
<script>(g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({
|
||||
key: "YOUR_API_KEY",
|
||||
v: "weekly"
|
||||
});</script>
|
||||
<script src="script.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -48,6 +48,12 @@
|
||||
</span>
|
||||
<img class="main-image">
|
||||
<div class="links" style="z-index: 1; cursor: default; position: fixed; top: 5.5vh; right: 4.5vw">
|
||||
<!-- <a href="about">about</a>
|
||||
<span>|</span>
|
||||
<a href="services">services</a>
|
||||
<span>|</span>
|
||||
<a href="events">events</a>
|
||||
<span>|</span> -->
|
||||
<a href="join">join</a>
|
||||
<span>|</span>
|
||||
<a href="signin">sign in</a>
|
||||
@@ -57,9 +63,9 @@
|
||||
|
||||
<!-- INTRO SECTION -->
|
||||
<div style="display: flex; flex-direction: column; align-items: flex-start; max-width: 50vw;">
|
||||
<h1 style="font-family: Canterbury; font-size: 3.5rem; margin-left: auto;">A Classical Christian Community</h1>
|
||||
<h1 style="font-family: Canterbury; font-size: 3.5rem; margin-left: auto;">A Classical Christian Society</h1>
|
||||
|
||||
<p>Hyperia is a private society for people who are a part of the Christian church and the European tradition.</p>
|
||||
<p>Hyperia is a private membership association to promote the Christian and European traditions.</p>
|
||||
<p>Inspired by the Classical Christian schooling movement that began in the 1990s, Hyperia aims to create a similar space for adults.</p>
|
||||
|
||||
<div style="height: 3vh;"></div>
|
||||
@@ -68,41 +74,6 @@
|
||||
<!-- GOALS SECTION -->
|
||||
<div style="display: flex; flex-direction: column; align-items: flex-start; width: 55vw; margin-top: 2vh;">
|
||||
|
||||
<h2 style="margin-left: 2.5vw; font-size: 2rem; font-family: Canterbury">5 Main Goals:</h2>
|
||||
|
||||
<ol style="line-height: 1.3;">
|
||||
<li style="margin-bottom: 3.5rem;">
|
||||
<strong>Restore Romance and Heroism in Western Life</strong><br>
|
||||
When men are separated from ancestry, God, and land, men no longer have anything to fight for. Therefore, men will not fight.<br><br>
|
||||
When men do not fight, women are unprotected. They hate the men for being weak, and the men hate them too.<br><br>
|
||||
This is the cycle we are in, and this is the cycle we must break.<br><br>
|
||||
Hyperia Security allows men to be protectors of God and tradition. It allows them to fight for a society which is directly linked to our past and our future. We believe that, given this opportunity, men will rise to the occasion.<br><br>
|
||||
Single women may join Hyperia for free.
|
||||
</li>
|
||||
|
||||
<li style="margin-bottom: 3.5rem;">
|
||||
<strong>Reunite the Mind and Body of the West</strong><br>
|
||||
Since 1945, Western intellectuals and their people have been polarized against each other. This became obvious in 2016, with Trump's divide between urban and rural voters.<br><br>
|
||||
This polarization has terrible consequences, such as the classism of the opioid epidemic and the outsourcing of American jobs overseas. Now, finally, there is a chance to reunite.<br><br>
|
||||
We seek a society in which both groups can live in the communities they desire, and in which both groups work together for the common good.
|
||||
</li>
|
||||
|
||||
<li style="margin-bottom: 3.5rem;">
|
||||
<strong>Create a Market of Our Own Goods</strong><br>
|
||||
Outsourcing has been a disaster for the West. America's economy is almost all service-based, and foreign schemes like H1-B and Chinese factories have taken vast amounts of jobs.<br><br>
|
||||
Hyperia will have a job board and marketplace that is exclusive to members. The marketplace will highlight goods which are made by other members, and also which are American-made.
|
||||
</li>
|
||||
|
||||
<li style="margin-bottom: 3.5rem;">
|
||||
<strong>Create a Network of Classical Christian Schools</strong><br>
|
||||
We want to connect these schools and provide resources to them.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<strong>Resettle America</strong><br>
|
||||
There are many towns and cities in America which have fallen prey to negligence and disrepair. Hyperia will focus on restoring these places, and not allow them to be overrun or abandoned.
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<div style="height: 10vh;"></div>
|
||||
</div>
|
||||
|
||||
86
ui/public/pages/about.html
Normal file
86
ui/public/pages/about.html
Normal file
@@ -0,0 +1,86 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Hyperia</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="icon" href="_/icons/logo.svg">
|
||||
<link rel="stylesheet" href="_/code/shared.css">
|
||||
<style>
|
||||
#items {
|
||||
position: absolute;
|
||||
top: 50vh;
|
||||
left: 50vw;
|
||||
transform: translate(-50%, -50%);
|
||||
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center; /* centers children horizontally */
|
||||
text-align: center; /* ensures text inside spans is centered */
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
input {
|
||||
width: 50vw
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script src="_/code/util.js"></script>
|
||||
<script type="module">
|
||||
import PageFooter from "./components/Footer.js"
|
||||
import NavBar from "./components/NavBar.js"
|
||||
import SideBar from "./components/SideBar.js"
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<span id="title" onclick='console.log("hey"); window.location.href="/"'>hyperia</span>
|
||||
<div class="links" style="z-index: 1; cursor: default; position: fixed; top: 5.5vh; right: 4.5vw">
|
||||
<a href="join">join</a>
|
||||
<span>|</span>
|
||||
<a href="signin">sign in</a>
|
||||
</div>
|
||||
|
||||
<div id="items">
|
||||
|
||||
<form id="signup-form">
|
||||
<input name="email" id="email" placeholder="email" required style="margin-bottom: 15px;">
|
||||
<br>
|
||||
<p id="applicant-message" style="color: green; font-size: 1em; margin: 0.5em 0; margin-bottom: 1em"></p>
|
||||
<button type="submit" style="background-color: rgb(193, 135, 29)">Sign Up</button>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
document.getElementById('signup-form').addEventListener('submit', async (e) => {
|
||||
e.preventDefault(); // prevent page reload
|
||||
|
||||
const email = document.getElementById('email').value;
|
||||
const messageEl = document.getElementById('applicant-message');
|
||||
|
||||
try {
|
||||
const res = await fetch('/api/signup', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
},
|
||||
body: new URLSearchParams({ email }),
|
||||
});
|
||||
|
||||
if (res.ok) {
|
||||
const data = await res.json();
|
||||
messageEl.style.color = 'green';
|
||||
messageEl.textContent = data.message;
|
||||
} else {
|
||||
const error = await res.text();
|
||||
messageEl.style.color = 'red';
|
||||
messageEl.textContent = 'Error: ' + error;
|
||||
}
|
||||
} catch (err) {
|
||||
messageEl.style.color = 'red';
|
||||
messageEl.textContent = 'Error submitting form.';
|
||||
console.error(err);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -11,4 +11,10 @@ See https://github.com/return-to-the-land/go-backend for instructions.
|
||||
Fix Redirect Issues:
|
||||
|
||||
Have the go server determine redirect, generate a random URL from it
|
||||
When random url is accessed by frontend -> redirect to home
|
||||
When random url is accessed by frontend -> redirect to home
|
||||
|
||||
|
||||
# Resources
|
||||
|
||||
Convert image to webp (so it's smaller)
|
||||
https://www.freeconvert.com/jpg-to-webp/download
|
||||
@@ -1,23 +1,79 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Hyperia</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="icon" href="_/icons/logo.svg">
|
||||
<link rel="stylesheet" href="_/code/shared.css">
|
||||
<script src="_/code/util.js"></script>
|
||||
<script type="module">
|
||||
import "./components/ProfileButton.js"
|
||||
import "./components/InputBox.js"
|
||||
import "./components/Sidebar.js"
|
||||
<head>
|
||||
<title>Hyperia</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="icon" href="_/icons/logo.svg">
|
||||
<link rel="stylesheet" href="_/code/shared.css">
|
||||
<style>
|
||||
body {
|
||||
margin: 0px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
import ConnectionHandler from "./ws/ConnectionHandler.js"
|
||||
window.ConnectionHandler = new ConnectionHandler()
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<profile-button style="z-index: 1; cursor: default; position: fixed; top: 5.5vh; right: 4.5vw"></profile-button>
|
||||
<input-box></input-box>
|
||||
<side-bar></side-bar>
|
||||
</body>
|
||||
#painting {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
margin: 0px;
|
||||
background-image:url('_/images/the_return.webp');
|
||||
background-size: cover;
|
||||
background-position: 48% 65%;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
#menu-bar {
|
||||
color: var(--tan)
|
||||
}
|
||||
|
||||
.app {
|
||||
cursor: default;
|
||||
transition: transform .3s, text-decoration .3s;
|
||||
padding: 0.5em;
|
||||
border-radius: 5px;
|
||||
text-underline-offset: 5px;
|
||||
}
|
||||
.app:hover {
|
||||
text-decoration: underline;
|
||||
transform: translateY(-5%)
|
||||
}
|
||||
</style>
|
||||
<script src="_/code/util.js"></script>
|
||||
<script type="module">
|
||||
import "./components/ProfileButton.js"
|
||||
import "./components/InputBox.js"
|
||||
import "./components/Sidebar.js"
|
||||
|
||||
import ConnectionHandler from "./ws/ConnectionHandler.js"
|
||||
window.ConnectionHandler = new ConnectionHandler()
|
||||
</script>
|
||||
<script>
|
||||
const img = new Image();
|
||||
img.src = "_/images/the_return.webp";
|
||||
|
||||
img.onload = () => {
|
||||
document.getElementById('loading-wrapper').style.display = 'block';
|
||||
};
|
||||
|
||||
// Optional: fallback if image fails
|
||||
img.onerror = () => {
|
||||
console.error("Background image failed to load.");
|
||||
document.getElementById('loading-wrapper').style.display = 'block';
|
||||
};
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="loading-wrapper" style="display: none;">
|
||||
<div id="painting"></div>
|
||||
<profile-button style="z-index: 1; cursor: default; position: fixed; top: 5.5vh; right: 4.5vw"></profile-button>
|
||||
<img src="_/icons/logo.svg" style="width: 3.5em; position: fixed; left: 3em; top: 2em;"/>
|
||||
<img src="_/images/divider.svg" style="width: 40vw; position: fixed; bottom: 2em; left: 50vw; transform: translateX(-50%)"/>
|
||||
<div id="menu-bar" style="display: flex; gap: 2em; position: fixed; left: 50vw; bottom: 2.3em; transform: translateX(-50%)">
|
||||
<p class="app">Forum</p>
|
||||
<p class="app">Messages</p>
|
||||
<p class="app">Market</p>
|
||||
<p class="app">Security</p>
|
||||
<p class="app">Jobs</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
23
ui/site/pages/messages.html
Normal file
23
ui/site/pages/messages.html
Normal file
@@ -0,0 +1,23 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Hyperia</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="icon" href="_/icons/logo.svg">
|
||||
<link rel="stylesheet" href="_/code/shared.css">
|
||||
<script src="_/code/util.js"></script>
|
||||
<script type="module">
|
||||
import "./components/ProfileButton.js"
|
||||
import "./components/InputBox.js"
|
||||
import "./components/Sidebar.js"
|
||||
|
||||
import ConnectionHandler from "./ws/ConnectionHandler.js"
|
||||
window.ConnectionHandler = new ConnectionHandler()
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<profile-button style="z-index: 1; cursor: default; position: fixed; top: 5.5vh; right: 4.5vw"></profile-button>
|
||||
<input-box></input-box>
|
||||
<side-bar></side-bar>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user