Homepage updates

This commit is contained in:
nsde 2023-09-11 14:05:12 +02:00
parent 16e1ae1bcb
commit feda964a6a
7 changed files with 36 additions and 22 deletions

View file

@ -13,7 +13,12 @@
"static/css/home.css": true, "static/css/home.css": true,
"static/css/navbar.css": true, "static/css/navbar.css": true,
"static/css/input.css": true, "static/css/input.css": true,
"static/css/footer.css": true "static/css/footer.css": true,
"web/static/css/base.css": true,
"web/static/css/footer.css": true,
"web/static/css/home.css": true,
"web/static/css/input.css": true,
"web/static/css/navbar.css": true
}, },
"hide-files.files": [ "hide-files.files": [
"static/css/base.css", "static/css/base.css",

View file

@ -20,12 +20,12 @@ div.featured-box {
transition: all 200ms; transition: all 200ms;
} }
div.featured-box:hover { div.featured-box:hover {
scale: 1.05; scale: 1.025;
filter: brightness(1.1) saturate(1.1); filter: brightness(1.1) saturate(1.1);
box-shadow: 0 0 30px rgba(244, 90, 136, 0.3803921569); box-shadow: 0 0 30px rgba(244, 90, 136, 0.3803921569);
} }
div.featured-box img { div.featured-box img {
height: 100px; height: 50px;
-o-object-fit: cover; -o-object-fit: cover;
object-fit: cover; object-fit: cover;
} }
@ -33,7 +33,7 @@ div.featured-box h2 {
vertical-align: middle; vertical-align: middle;
margin-block: auto; margin-block: auto;
margin-left: 1rem; margin-left: 1rem;
font-size: 2rem; font-size: 1.5rem;
} }
div.featured-box h2 span { div.featured-box h2 span {
color: #f45a88; color: #f45a88;
@ -52,7 +52,7 @@ div.user-quotes div.user-quote__field {
min-height: 200px; min-height: 200px;
} }
div.user-quotes div.user-quote__field:hover { div.user-quotes div.user-quote__field:hover {
scale: 1.05; scale: 1.025;
filter: brightness(1.1) saturate(1.1); filter: brightness(1.1) saturate(1.1);
box-shadow: 0 0 30px rgba(244, 90, 136, 0.3803921569); box-shadow: 0 0 30px rgba(244, 90, 136, 0.3803921569);
} }

File diff suppressed because one or more lines are too long

View file

@ -20,19 +20,19 @@ div.featured-box
transition: all 200ms transition: all 200ms
&:hover &:hover
scale: 1.05 scale: 1.025
filter: brightness(1.1) saturate(1.1) filter: brightness(1.1) saturate(1.1)
box-shadow: 0 0 30px $primary-glow box-shadow: 0 0 30px $primary-glow
img img
height: 100px height: 50px
object-fit: cover object-fit: cover
h2 h2
vertical-align: middle vertical-align: middle
margin-block: auto margin-block: auto
margin-left: 1rem margin-left: 1rem
font-size: 2rem font-size: 1.5rem
span span
color: $primary-light color: $primary-light
@ -55,7 +55,7 @@ div.user-quotes
min-height: 200px min-height: 200px
&:hover &:hover
scale: 1.05 scale: 1.025
filter: brightness(1.1) saturate(1.1) filter: brightness(1.1) saturate(1.1)
box-shadow: 0 0 30px $primary-glow box-shadow: 0 0 30px $primary-glow

View file

@ -11,8 +11,8 @@
<div id="links" class="link-menu"> <div id="links" class="link-menu">
<a href="/">Home</a> <a href="/">Home</a>
<a href="https://status.nova-oss.com" target="_blank">Status</a> <!-- <a href="https://status.nova-oss.com" target="_blank">Status</a> -->
<a href="https://code.nova-oss.com" target="_blank">Source Code</a> <a href="https://code.nova-oss.com" target="_blank">GitHub</a>
<a href="mailto:{{ contact_email }}">Contact</a> <a href="mailto:{{ contact_email }}">Contact</a>
</div> </div>

View file

@ -19,18 +19,26 @@
<a href="https://github.com/NovaOSS/nova-api" target="_blank"> <a href="https://github.com/NovaOSS/nova-api" target="_blank">
<button class="secondary"> <button class="secondary">
<i class="bi bi-github"></i> <i class="bi bi-github"></i>
Open Source GitHub
</button> </button>
</a> </a>
</header> </header>
<main> <main>
<h2>Look, mom, I'm famous!</h2> <h2>About Nova</h2>
<div class="featured-box">
<img src="https://icons.getbootstrap.com/assets/icons/cash-coin.svg" style="filter: invert(1);">
<h2>Free <span>forever</span> - no credit card required</h2>
</div>
<div class="featured-box" onclick="window.open('https://github.com/orgs/NovaOSS/repositories', '_blank')">
<img src="https://icons.getbootstrap.com/assets/icons/github.svg" style="filter: invert(1);">
<h2>Open source on <span>GitHub</span></h2>
</div>
<div class="featured-box" onclick="window.open('https://fmhy.pages.dev/ai', '_blank')"> <div class="featured-box" onclick="window.open('https://fmhy.pages.dev/ai', '_blank')">
<img src="https://fmhy.pages.dev/static/fmhy.ico"> <img src="https://fmhy.pages.dev/static/fmhy.ico">
<h2>Featured in <span>Free Media Heck Yeah</span></h2> <h2>Featured in <span>Free Media Heck Yeah</span></h2>
</div> </div>
<h2>Cherry-picked quotes</h2> <h2>What users say</h2>
<div class="user-quotes"> <div class="user-quotes">
<div class="user-quote__field" onclick="window.open('https://discord.com/channels/1120037287300976640/1120037729644855427/1144279505981153302', '_blank')"> <div class="user-quote__field" onclick="window.open('https://discord.com/channels/1120037287300976640/1120037729644855427/1144279505981153302', '_blank')">

View file

@ -1,10 +1,11 @@
import os import os
import json import ujson
import flask import flask
import random import random
import secrets import secrets
from dotenv import load_dotenv from dotenv import load_dotenv
from json.decoder import JSONDecodeError
load_dotenv() load_dotenv()
@ -21,12 +22,12 @@ def register(app):
open('data/tos.json', 'w', encoding='utf8').write('{}') open('data/tos.json', 'w', encoding='utf8').write('{}')
try: try:
data = json.load(open('data/tos.json', encoding='utf8')) data = ujson.load(open('data/tos.json', encoding='utf8'))
except json.decoder.JSONDecodeError: except JSONDecodeError:
data = {} data = {}
data[code] = emoji data[code] = emoji
json.dump(data, open('data/tos.json', 'w', encoding='utf8')) ujson.dump(data, open('data/tos.json', 'w', encoding='utf8'))
return { return {
'code': code, 'code': code,
@ -38,9 +39,9 @@ def register(app):
if not flask.request.headers.get('Authorization') == os.getenv('TOS_VERIFICATION_KEY'): if not flask.request.headers.get('Authorization') == os.getenv('TOS_VERIFICATION_KEY'):
return 'Unauthorized', 401 return 'Unauthorized', 401
data = json.load(open('data/tos.json', encoding='utf8')) data = ujson.load(open('data/tos.json', encoding='utf8'))
del data[code] del data[code]
json.dump(data, open('data/tos.json', 'w', encoding='utf8')) ujson.dump(data, open('data/tos.json', 'w', encoding='utf8'))
return 'Removed.', 204 return 'Removed.', 204
@ -48,7 +49,7 @@ def register(app):
def legal_site(subpath): def legal_site(subpath):
emoji = None emoji = None
if subpath == 'terms': if subpath == 'terms':
emoji = json.load(open('data/tos.json', encoding='utf8')).get(flask.request.args.get('verify')) emoji = ujson.load(open('data/tos.json', encoding='utf8')).get(flask.request.args.get('verify'))
if emoji: if emoji:
emoji = emoji.encode('utf8') emoji = emoji.encode('utf8')