Initial Commit
This commit is contained in:
164
templates/base.html
Normal file
164
templates/base.html
Normal file
@@ -0,0 +1,164 @@
|
||||
<!doctype html>
|
||||
<html lang="en" data-theme="">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>{% block title %}Superior Finance{% endblock %}</title>
|
||||
<style>
|
||||
:root {
|
||||
color-scheme: light;
|
||||
--surface-1: #fcfcfb;
|
||||
--page-plane: #f9f9f7;
|
||||
--text-primary: #0b0b0b;
|
||||
--text-secondary: #52514e;
|
||||
--text-muted: #898781;
|
||||
--gridline: #e1e0d9;
|
||||
--border: rgba(11,11,11,0.10);
|
||||
--series-1: #2a78d6;
|
||||
--status-good: #0ca30c;
|
||||
}
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root:where(:not([data-theme="light"])) {
|
||||
color-scheme: dark;
|
||||
--surface-1: #1a1a19;
|
||||
--page-plane: #0d0d0d;
|
||||
--text-primary: #ffffff;
|
||||
--text-secondary: #c3c2b7;
|
||||
--text-muted: #898781;
|
||||
--gridline: #2c2c2a;
|
||||
--border: rgba(255,255,255,0.10);
|
||||
--series-1: #3987e5;
|
||||
--status-good: #0ca30c;
|
||||
}
|
||||
}
|
||||
* { box-sizing: border-box; }
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
|
||||
background: var(--page-plane);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
nav {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 1.25rem;
|
||||
padding: 0.9rem 1.5rem;
|
||||
background: var(--surface-1);
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
nav a {
|
||||
color: var(--text-secondary);
|
||||
text-decoration: none;
|
||||
font-size: 0.92rem;
|
||||
}
|
||||
nav a:hover { color: var(--text-primary); }
|
||||
nav a.brand { color: var(--text-primary); font-weight: 600; margin-right: auto; }
|
||||
main {
|
||||
max-width: 880px;
|
||||
margin: 0 auto;
|
||||
padding: 1.5rem;
|
||||
}
|
||||
.card {
|
||||
background: var(--surface-1);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 10px;
|
||||
padding: 1.25rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
.card h2 { margin-top: 0; }
|
||||
.card h2 a { color: inherit; text-decoration: none; }
|
||||
.card h2 a:hover { text-decoration: underline; }
|
||||
.muted { color: var(--text-muted); font-size: 0.88rem; }
|
||||
.flash {
|
||||
background: var(--surface-1);
|
||||
border: 1px solid var(--border);
|
||||
border-left: 3px solid var(--series-1);
|
||||
border-radius: 6px;
|
||||
padding: 0.6rem 0.9rem;
|
||||
margin-bottom: 1rem;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
.meter {
|
||||
height: 8px;
|
||||
border-radius: 4px;
|
||||
background: var(--gridline);
|
||||
overflow: hidden;
|
||||
margin: 0.5rem 0;
|
||||
}
|
||||
.meter-fill {
|
||||
height: 100%;
|
||||
background: var(--series-1);
|
||||
border-radius: 4px;
|
||||
}
|
||||
.meter-fill.complete { background: var(--status-good); }
|
||||
.meter-label {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
font-size: 0.82rem;
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
form {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.9rem;
|
||||
max-width: 480px;
|
||||
}
|
||||
label {
|
||||
font-size: 0.85rem;
|
||||
color: var(--text-secondary);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.3rem;
|
||||
}
|
||||
input[type="text"], input[type="number"], input[type="file"], select, textarea {
|
||||
font: inherit;
|
||||
padding: 0.5rem 0.6rem;
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 6px;
|
||||
background: var(--surface-1);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
.checkbox-row {
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
button {
|
||||
font: inherit;
|
||||
padding: 0.55rem 1.1rem;
|
||||
border: none;
|
||||
border-radius: 6px;
|
||||
background: var(--series-1);
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
align-self: flex-start;
|
||||
}
|
||||
button:hover { opacity: 0.92; }
|
||||
.empty { color: var(--text-muted); font-size: 0.9rem; }
|
||||
ul.plain { list-style: none; padding: 0; margin: 0; }
|
||||
ul.plain li { padding: 0.5rem 0; border-bottom: 1px solid var(--gridline); }
|
||||
ul.plain li:last-child { border-bottom: none; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<nav>
|
||||
<a class="brand" href="{{ url_for('index') }}">Superior Finance</a>
|
||||
<a href="{{ url_for('view_goals') }}">Goals</a>
|
||||
<a href="{{ url_for('view_babysteps') }}">Babysteps</a>
|
||||
<a href="{{ url_for('view_payments') }}">Payments</a>
|
||||
<a href="{{ url_for('new_goal') }}">+ Goal</a>
|
||||
<a href="{{ url_for('new_babystep') }}">+ Babystep</a>
|
||||
<a href="{{ url_for('new_payment') }}">+ Payment</a>
|
||||
</nav>
|
||||
<main>
|
||||
{% with messages = get_flashed_messages() %}
|
||||
{% if messages %}
|
||||
{% for message in messages %}
|
||||
<div class="flash">{{ message }}</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
{% block content %}{% endblock %}
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user