chore: initialize public repository
CI / checks (push) Has been cancelled

This commit is contained in:
maddin
2026-03-22 12:57:09 +00:00
commit 6fbd1bb3c2
142 changed files with 19826 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
@import url("./tokens.css");
@import url("./base.css");
@import url("./layout.css");
@import url("./components.css");
@import url("./utilities.css");
+54
View File
@@ -0,0 +1,54 @@
* {
box-sizing: border-box;
}
html,
body {
margin: 0;
min-height: 100%;
}
body {
background: var(--color-bg);
color: var(--color-text);
font-family: var(--font-family-base);
font-size: var(--font-size-md);
font-weight: var(--font-weight-normal);
line-height: 1.4;
}
a {
color: var(--color-link);
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
img {
display: block;
height: auto;
max-width: 100%;
}
h1,
h2,
h3,
h4,
h5,
h6,
p {
margin: 0;
}
hr {
border: 0;
border-top: var(--border-width-1) solid var(--color-border);
margin: var(--space-5) 0;
}
:focus-visible {
outline: var(--border-width-1) solid var(--color-warning);
outline-offset: var(--space-1);
}
File diff suppressed because it is too large Load Diff
+183
View File
@@ -0,0 +1,183 @@
.container {
margin: 0 auto;
padding: 0 var(--gutter-desktop);
width: min(var(--container-max), 100%);
}
.page {
padding: var(--stack-2) 0 var(--space-7);
}
.dashboard-page,
.month-page,
.settings-page,
.register-page,
.legal-page,
.contact-page {
padding-top: var(--space-0);
}
.site-header {
background: var(--color-bg);
border-bottom: var(--border-width-1) solid var(--color-border);
position: sticky;
top: var(--space-0);
z-index: var(--z-header);
}
.site-header .container {
padding-top: var(--header-pad-y);
padding-bottom: var(--header-pad-y);
}
.app-topbar-inner {
align-items: center;
column-gap: var(--space-4);
display: grid;
grid-template-columns: auto 1fr;
min-height: calc(var(--control-h) + var(--space-1));
}
.site-header.is-auth-header .container {
padding-top: var(--header-pad-y-auth);
padding-bottom: var(--header-pad-y-auth);
}
.app-topbar-inner.is-guest {
grid-template-columns: auto 1fr;
}
.app-topbar-inner.is-guest .app-auth-nav {
justify-self: end;
}
.site-header.is-auth-header .app-topbar-inner.is-guest {
min-height: 2.25rem;
}
.app-topbar-inner.is-user .app-user-nav {
align-items: center;
display: inline-flex;
gap: var(--space-4);
justify-self: end;
}
.site-footer {
border-top: var(--border-width-1) solid var(--color-border);
margin-top: var(--space-6);
}
.site-footer-inner {
align-items: center;
display: flex;
gap: var(--space-4);
justify-content: space-between;
padding: var(--space-4) var(--page-content-inset) var(--space-5);
}
.admin-version-badge {
background: color-mix(in srgb, var(--color-surface-2) 94%, transparent);
border: var(--border-width-1) solid var(--color-border);
bottom: var(--space-3);
color: var(--color-text-muted);
font-size: var(--font-size-xs);
font-weight: var(--font-weight-semibold);
padding: var(--space-1) var(--space-2);
position: fixed;
right: var(--space-3);
z-index: var(--z-header);
}
.page-header {
display: grid;
gap: var(--space-2);
margin-bottom: var(--space-4);
padding-inline: var(--page-content-inset);
}
.page-header__title {
font-size: var(--font-size-2xl);
font-weight: var(--font-weight-bold);
}
.page-header__subtitle {
color: var(--color-text-muted);
}
.app-page-actions-wrap {
padding-bottom: var(--space-2);
}
.app-page-actions-wrap:empty {
display: none;
}
.top-row {
margin-bottom: var(--space-2);
padding-inline: var(--page-content-inset);
}
@media (max-width: 51.25em) {
.container {
padding: 0 var(--gutter-tablet);
}
.app-topbar-inner.is-user {
gap: var(--header-pad-y);
grid-template-columns: 1fr;
grid-template-rows: auto auto;
}
.app-topbar-inner.is-user .app-brand-wrap {
align-items: center;
display: flex;
grid-column: 1;
grid-row: 1;
justify-content: space-between;
width: 100%;
}
.app-topbar-inner.is-user .app-user-nav {
align-items: center;
display: grid;
gap: var(--space-2);
grid-column: 1;
grid-row: 2;
grid-template-columns: 1fr auto 1fr;
justify-self: stretch;
width: 100%;
}
.app-topbar-inner.is-user .app-user-nav .app-main-nav {
grid-column: 2;
justify-self: center;
}
.app-topbar-inner.is-user .app-user-nav .app-icon-nav {
grid-column: 3;
justify-self: end;
}
.app-topbar-inner.is-guest {
column-gap: var(--space-2);
grid-template-columns: auto 1fr;
}
.admin-version-badge {
bottom: var(--space-2);
left: 50%;
right: auto;
transform: translateX(-50%);
}
.site-footer-inner {
align-items: flex-start;
flex-direction: column;
}
}
@media (max-width: 32.5em) {
.container {
padding: 0 var(--gutter-mobile);
}
}
+101
View File
@@ -0,0 +1,101 @@
:root {
--color-bg: #2c2d2f;
--color-surface: #27282a;
--color-surface-2: #1f2022;
--color-surface-3: #232426;
--color-surface-4: #2a2b2e;
--color-border: #34363a;
--color-border-soft: #2f3135;
--color-text: #f5f5f5;
--color-text-muted: #8f9298;
--color-link: #f5f5f5;
--color-primary: #3a3c40;
--color-primary-hover: #46494e;
--color-button-primary: #355d3a;
--color-button-primary-hover: #3f6f45;
--color-button-primary-border: #4d7f53;
--color-danger: #bc5252;
--color-danger-strong: #ff3b3b;
--color-success: #9ed7a7;
--color-success-strong: #2cd600;
--color-success-bg: #243427;
--color-warning: #c98f13;
--color-warning-bg: #6d5500;
--color-chip-bg: #202124;
--color-weekend: #22252b;
--color-day-today: #1a3f4a;
--color-accent: #9e7700;
--color-badge-bg: #f3f3f3;
--color-badge-text: #222326;
--color-workhours: #7f53d9;
--color-header-badge-bg: #1d1d1f;
--color-header-badge-label: #f5f5f5;
--color-header-badge-text: #f5f5f5;
--font-family-base: "Atkinson Hyperlegible", "Segoe UI", sans-serif;
--font-size-xs: 0.75rem;
--font-size-sm: 0.875rem;
--font-size-md: 1rem;
--font-size-lg: 1.125rem;
--font-size-xl: 1.5rem;
--font-size-2xl: 2rem;
--font-weight-normal: 400;
--font-weight-medium: 500;
--font-weight-semibold: 600;
--font-weight-bold: 700;
--line-height-tight: 1.2;
--space-0: 0;
--space-1: 0.125rem;
--space-2: 0.25rem;
--space-3: 0.5rem;
--space-4: 0.75rem;
--space-5: 1rem;
--space-6: 1.25rem;
--space-7: 1.5rem;
--space-8: 2rem;
--stack-1: 0.5rem;
--stack-2: 0.75rem;
--stack-3: 1rem;
--radius-none: 0;
--radius-sm: 0.375rem;
--radius-md: 0.5rem;
--border-width-1: 1px;
--container-max: 100%;
--gutter-desktop: 1rem;
--gutter-tablet: 1rem;
--gutter-mobile: 0.875rem;
--page-content-inset: 1rem;
--surface-pad: 1rem;
--surface-pad-compact: 0.875rem;
--control-h-desktop: 2rem;
--control-h-mobile: 2rem;
--control-h: var(--control-h-desktop);
--list-icon-size: 2rem;
--icon-size-sm: var(--list-icon-size);
--icon-size: var(--list-icon-size);
--header-icon-size: var(--list-icon-size);
--logo-size: 1.375rem;
--header-pad-y: 0.625rem;
--header-pad-y-auth: 0.625rem;
--badge-height: 2rem;
--badge-pad-top: 0.2rem;
--badge-pad-bottom: 0.05rem;
--input-height: 2.5rem;
--chip-h: 2rem;
--row-height-compact: 2.625rem;
--kpi-height: 2.75rem;
--period-height: 3.25rem;
--day-col: 16rem;
--chip-col: 8.5rem;
--actions-col: 7.5rem;
--z-header: 20;
--z-modal: 40;
--bp-md: 51.25em;
--bp-sm: 32.5em;
}
+19
View File
@@ -0,0 +1,19 @@
.muted {
color: var(--color-text-muted);
}
.is-hidden,
.u-hidden,
[hidden] {
display: none !important;
}
.u-stack-sm {
display: grid;
gap: var(--space-3);
}
.u-stack-md {
display: grid;
gap: var(--space-4);
}