feat: implement core application structure, UI components, internationalization, and database seeding.

This commit is contained in:
2026-03-04 13:50:37 +01:00
parent 85642b4672
commit 5101f39ba0
49 changed files with 2732 additions and 980 deletions

View File

@@ -451,6 +451,7 @@
--container-md: 28rem;
--container-lg: 32rem;
--container-2xl: 42rem;
--container-3xl: 48rem;
--container-4xl: 56rem;
--container-5xl: 64rem;
--container-6xl: 72rem;
@@ -459,6 +460,8 @@
--text-xs--line-height: calc(1 / .75);
--text-sm: .875rem;
--text-sm--line-height: calc(1.25 / .875);
--text-base: 1rem;
--text-base--line-height: calc(1.5 / 1);
--text-lg: 1.125rem;
--text-lg--line-height: calc(1.75 / 1.125);
--text-xl: 1.25rem;
@@ -874,6 +877,10 @@
inset-inline-start: var(--spacing);
}
.end {
inset-inline-end: var(--spacing);
}
.-top-2 {
top: calc(var(--spacing) * -2);
}
@@ -1088,6 +1095,10 @@
margin-block: calc(var(--spacing) * 4);
}
.-mt-20 {
margin-top: calc(var(--spacing) * -20);
}
.mt-0\.5 {
margin-top: calc(var(--spacing) * .5);
}
@@ -1250,6 +1261,10 @@
height: calc(var(--spacing) * 3);
}
.h-3\.5 {
height: calc(var(--spacing) * 3.5);
}
.h-4 {
height: calc(var(--spacing) * 4);
}
@@ -1414,6 +1429,10 @@
width: calc(var(--spacing) * 32);
}
.w-40 {
width: calc(var(--spacing) * 40);
}
.w-48 {
width: calc(var(--spacing) * 48);
}
@@ -1466,6 +1485,10 @@
max-width: var(--container-2xl);
}
.max-w-3xl {
max-width: var(--container-3xl);
}
.max-w-4xl {
max-width: var(--container-4xl);
}
@@ -1538,6 +1561,10 @@
scale: 1.01;
}
.rotate-180 {
rotate: 180deg;
}
.transform {
transform: var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, );
}
@@ -1732,6 +1759,10 @@
overflow: hidden;
}
.overflow-x-hidden {
overflow-x: hidden;
}
.overflow-y-auto {
overflow-y: auto;
}
@@ -1752,6 +1783,10 @@
border-radius: 2.5rem;
}
.rounded-\[2px\] {
border-radius: 2px;
}
.rounded-\[2rem\] {
border-radius: 2rem;
}
@@ -2075,6 +2110,16 @@
}
}
.bg-blue-500\/20 {
background-color: #3080ff33;
}
@supports (color: color-mix(in lab, red, red)) {
.bg-blue-500\/20 {
background-color: color-mix(in oklab, var(--color-blue-500) 20%, transparent);
}
}
.bg-blue-600 {
background-color: var(--color-blue-600);
}
@@ -2547,6 +2592,14 @@
padding-top: calc(var(--spacing) * 8);
}
.pt-12 {
padding-top: calc(var(--spacing) * 12);
}
.pt-20 {
padding-top: calc(var(--spacing) * 20);
}
.pt-32 {
padding-top: calc(var(--spacing) * 32);
}
@@ -2583,6 +2636,10 @@
padding-bottom: calc(var(--spacing) * 20);
}
.pb-32 {
padding-bottom: calc(var(--spacing) * 32);
}
.pl-2 {
padding-left: calc(var(--spacing) * 2);
}
@@ -2652,6 +2709,11 @@
line-height: var(--tw-leading, var(--text-6xl--line-height));
}
.text-base {
font-size: var(--text-base);
line-height: var(--tw-leading, var(--text-base--line-height));
}
.text-lg {
font-size: var(--text-lg);
line-height: var(--tw-leading, var(--text-lg--line-height));
@@ -2924,6 +2986,10 @@
color: var(--color-yellow-600);
}
.lowercase {
text-transform: lowercase;
}
.uppercase {
text-transform: uppercase;
}
@@ -3118,6 +3184,11 @@
filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
}
.blur-\[100px\] {
--tw-blur: blur(100px);
filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
}
.blur-\[120px\] {
--tw-blur: blur(120px);
filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
@@ -3745,6 +3816,12 @@
opacity: .5;
}
@media (min-width: 40rem) {
.sm\:inline {
display: inline;
}
}
@media (min-width: 40rem) {
.sm\:w-auto {
width: auto;
@@ -3757,6 +3834,12 @@
}
}
@media (min-width: 40rem) {
.sm\:p-12 {
padding: calc(var(--spacing) * 12);
}
}
@media (min-width: 48rem) {
.md\:flex {
display: flex;
@@ -3817,6 +3900,13 @@
}
}
@media (min-width: 48rem) {
.md\:text-5xl {
font-size: var(--text-5xl);
line-height: var(--tw-leading, var(--text-5xl--line-height));
}
}
@media (min-width: 48rem) {
.md\:text-7xl {
font-size: var(--text-7xl);
@@ -3853,6 +3943,58 @@
grid-template-columns: repeat(3, minmax(0, 1fr));
}
}
@media (prefers-color-scheme: dark) {
.dark\:border-slate-700 {
border-color: var(--color-slate-700);
}
}
@media (prefers-color-scheme: dark) {
.dark\:bg-blue-900\/20 {
background-color: #1c398e33;
}
@supports (color: color-mix(in lab, red, red)) {
.dark\:bg-blue-900\/20 {
background-color: color-mix(in oklab, var(--color-blue-900) 20%, transparent);
}
}
}
@media (prefers-color-scheme: dark) {
.dark\:bg-slate-800 {
background-color: var(--color-slate-800);
}
}
@media (prefers-color-scheme: dark) {
.dark\:text-blue-400 {
color: var(--color-blue-400);
}
}
@media (prefers-color-scheme: dark) {
.dark\:text-slate-300 {
color: var(--color-slate-300);
}
}
@media (prefers-color-scheme: dark) {
@media (hover: hover) {
.dark\:hover\:bg-slate-700:hover {
background-color: var(--color-slate-700);
}
}
}
@media (prefers-color-scheme: dark) {
@media (hover: hover) {
.dark\:hover\:bg-slate-800:hover {
background-color: var(--color-slate-800);
}
}
}
}
:root, .theme-light {