Initialize client project from skeleton

Client: TeleNetSystems
Generated: 2026-02-03T15:33:56.941Z
This commit is contained in:
Prototype Generator
2026-02-03 16:35:20 +01:00
parent 6c7ae06e58
commit 1cc779e89c
7 changed files with 1515 additions and 572 deletions
+246 -116
View File
@@ -1,164 +1,294 @@
/*
* Stylesheet
*
* Typography & structural rules only.
* NO component styles. NO layout sections.
* This file is imported by globals.css.
*
* Structure:
* 1. Typography
* 2. Structural Rules
* 3. Utility Classes
* 4. Animations
*/
/* ═══════════════════════════════════════════════════════════ */
/* stylesheet.css Structural framework */
/* Uses variables from globals.css (Single Source of Truth) */
/* Generated by website-prototype-generator */
/* */
/* REGELN: */
/* - Jede Section MUSS .section nutzen */
/* - Content MUSS in .container eingebettet sein */
/* - Buttons NUR über .btn + Variante */
/* - Typografie NUR über definierte Klassen/Heading-Tags */
/* - KEINE Inline-Styles, KEINE harten Pixelwerte */
/* ═══════════════════════════════════════════════════════════ */
/* ==========================================================================
1. Typography
========================================================================== */
@import "tailwindcss";
h1,
h2,
h3,
h4,
h5,
h6 {
font-weight: var(--font-weight-bold);
line-height: var(--line-height-tight);
letter-spacing: var(--letter-spacing-tight);
margin-top: 0;
margin-bottom: var(--spacing-md);
/* ── Base Resets ───────────────────────────────────── */
*, *::before, *::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
h1 {
font-size: var(--font-size-4xl);
html {
scroll-behavior: smooth;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
h2 {
font-size: var(--font-size-3xl);
body {
font-family: var(--font-body);
font-weight: var(--font-body-weight);
color: var(--color-foreground);
background-color: var(--color-background);
line-height: var(--text-base-line-height);
font-size: var(--text-base);
}
h3 {
font-size: var(--font-size-2xl);
/* ── Section & Container (PFLICHT-Bausteine) ────── */
/* Jede Seite MUSS aus <section class="section"> bestehen. */
/* Innerhalb jeder Section MUSS ein <div class="container"> */
/* den Content umschließen. */
.section {
position: relative;
width: 100%;
padding-block: var(--spacing-section);
}
h4 {
font-size: var(--font-size-xl);
.section--sm {
padding-block: var(--spacing-2xl);
}
h5 {
font-size: var(--font-size-lg);
.section--lg {
padding-block: var(--spacing-5xl);
}
h6 {
font-size: var(--font-size-base);
font-weight: var(--font-weight-semibold);
.section--hero {
padding-block: var(--spacing-5xl) var(--spacing-section);
min-height: 80vh;
display: flex;
align-items: center;
}
p {
margin-top: 0;
margin-bottom: var(--spacing-md);
line-height: var(--line-height-normal);
.section--flush {
padding-block: 0;
}
small {
font-size: var(--font-size-sm);
.container {
width: 100%;
max-width: var(--spacing-container);
margin-inline: auto;
padding-inline: var(--spacing-container-padding);
}
strong,
b {
font-weight: var(--font-weight-bold);
.container--narrow {
max-width: 48rem;
}
/* Prevent orphans and widows in text blocks */
p,
li,
dd {
orphans: 2;
widows: 2;
.container--wide {
max-width: 90rem;
}
/* Lists */
ul,
ol {
margin-top: 0;
margin-bottom: var(--spacing-md);
padding-left: var(--spacing-lg);
/* ── Headings (Typography System) ─────────────────── */
/* Headlines MÜSSEN über HTML-Tags (h1h6) oder */
/* .heading-* Klassen gestylt werden. */
/* VERBOTEN: style={{ fontSize: ... }} oder harte px */
h1, h2, h3, h4, h5, h6 {
font-family: var(--font-heading);
font-weight: var(--font-heading-weight);
color: var(--color-foreground);
}
li {
margin-bottom: var(--spacing-xs);
h1, .heading-1 {
font-size: var(--text-5xl);
line-height: var(--text-5xl-line-height);
letter-spacing: var(--text-5xl-letter-spacing);
}
/* Blockquote */
blockquote {
margin: 0 0 var(--spacing-md);
padding-left: var(--spacing-lg);
border-left: 3px solid var(--color-border);
font-style: italic;
h2, .heading-2 {
font-size: var(--text-4xl);
line-height: var(--text-4xl-line-height);
letter-spacing: var(--text-4xl-letter-spacing);
}
/* Code */
code {
font-family: var(--font-mono);
font-size: var(--font-size-sm);
h3, .heading-3 {
font-size: var(--text-3xl);
line-height: var(--text-3xl-line-height);
letter-spacing: var(--text-3xl-letter-spacing);
}
pre {
margin-top: 0;
margin-bottom: var(--spacing-md);
overflow-x: auto;
h4, .heading-4 {
font-size: var(--text-2xl);
line-height: var(--text-2xl-line-height);
letter-spacing: var(--text-2xl-letter-spacing);
}
pre code {
font-size: var(--font-size-sm);
h5, .heading-5 {
font-size: var(--text-xl);
line-height: var(--text-xl-line-height);
letter-spacing: var(--text-xl-letter-spacing);
}
/* ==========================================================================
2. Structural Rules
========================================================================== */
h6, .heading-6 {
font-size: var(--text-lg);
line-height: var(--text-lg-line-height);
letter-spacing: var(--text-lg-letter-spacing);
}
/* ── Body Text Utilities ───────────────────────────── */
.text-xs { font-size: var(--text-xs); line-height: var(--text-xs-line-height); }
.text-sm { font-size: var(--text-sm); line-height: var(--text-sm-line-height); }
.text-base { font-size: var(--text-base); line-height: var(--text-base-line-height); }
.text-lg { font-size: var(--text-lg); line-height: var(--text-lg-line-height); }
.text-xl { font-size: var(--text-xl); line-height: var(--text-xl-line-height); }
.text-muted {
color: var(--color-muted-foreground);
}
.lead {
font-size: var(--text-xl);
line-height: var(--text-xl-line-height);
color: var(--color-muted-foreground);
}
/* ── Button System (EINZIGER erlaubter Weg) ──────── */
/* Buttons MÜSSEN eine der folgenden Klassen nutzen: */
/* .btn-primary Hauptaktion (CTA) */
/* .btn-secondary Sekundäraktion */
/* .btn-outline Umrandeter Button */
/* .btn-ghost Textartig, minimal */
/* VERBOTEN: Eigene bg/text-Kombinationen auf <button> */
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: var(--spacing-sm);
padding: var(--spacing-sm) var(--spacing-lg);
font-family: var(--font-body);
font-size: var(--text-base);
font-weight: 500;
line-height: var(--text-base-line-height);
border-radius: var(--radius-md);
border: 2px solid transparent;
cursor: pointer;
transition: all 0.2s ease;
text-decoration: none;
white-space: nowrap;
}
.btn:focus-visible {
outline: 2px solid var(--color-primary);
outline-offset: 2px;
}
.btn:disabled {
opacity: 0.5;
cursor: not-allowed;
}
.btn-primary {
background-color: var(--color-primary);
color: var(--color-background);
border-color: var(--color-primary);
}
.btn-primary:hover {
filter: brightness(0.9);
}
.btn-secondary {
background-color: var(--color-secondary);
color: var(--color-background);
border-color: var(--color-secondary);
}
.btn-secondary:hover {
filter: brightness(0.9);
}
.btn-outline {
background-color: transparent;
color: var(--color-primary);
border-color: var(--color-primary);
}
.btn-outline:hover {
background-color: var(--color-primary);
color: var(--color-background);
}
.btn-ghost {
background-color: transparent;
color: var(--color-foreground);
border-color: transparent;
}
.btn-ghost:hover {
background-color: var(--color-muted);
}
.btn-sm {
padding: var(--spacing-xs) var(--spacing-md);
font-size: var(--text-sm);
}
.btn-lg {
padding: var(--spacing-md) var(--spacing-xl);
font-size: var(--text-lg);
}
/* ── Card Component ─────────────────────────────── */
.card {
background-color: var(--color-background);
border: 1px solid var(--color-border);
border-radius: var(--radius-lg);
padding: var(--spacing-xl);
box-shadow: var(--shadow-sm);
}
/* ── Links ───────────────────────────────────────── */
a {
color: var(--color-primary);
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
/* ── Images ──────────────────────────────────────── */
img, video, svg {
display: block;
max-width: 100%;
height: auto;
}
/* ── Focus ───────────────────────────────────────── */
/* Focus styles for keyboard navigation */
:focus-visible {
outline: 2px solid var(--color-primary);
outline-offset: 2px;
}
/* Selection */
/* ── Selection ──────────────────────────────────── */
::selection {
background-color: var(--color-primary);
color: var(--color-background);
}
/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
/* ── Spacing Utilities ──────────────────────────── */
.stack-xs > * + * { margin-top: var(--spacing-xs); }
.stack-sm > * + * { margin-top: var(--spacing-sm); }
.stack-md > * + * { margin-top: var(--spacing-md); }
.stack-lg > * + * { margin-top: var(--spacing-lg); }
.stack-xl > * + * { margin-top: var(--spacing-xl); }
.stack-2xl > * + * { margin-top: var(--spacing-2xl); }
/* ── Divider ───────────────────────────────────── */
.divider {
border: none;
border-top: 1px solid var(--color-border);
margin-block: var(--spacing-2xl);
}
/* ==========================================================================
3. Utility Classes
========================================================================== */
.visually-hidden {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
/* ==========================================================================
4. Animations
========================================================================== */
/* Animations are added per project */