3 Commits

Author SHA1 Message Date
info 47e98b88ef Neues Icon 2026-05-03 16:29:07 +02:00
info 799d3dc2ba Slogan geendert 2026-05-03 16:28:28 +02:00
info 938fc9bfeb alte Webseite gelöscht 2026-05-03 16:23:44 +02:00
12 changed files with 2 additions and 1718 deletions
-290
View File
@@ -1,290 +0,0 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Datenschutzerklärung - DocuMentor</title>
<link rel="stylesheet" href="styles.css">
<style>
.legal-page {
padding: 8rem 0 4rem;
min-height: 100vh;
}
.legal-content {
max-width: 900px;
margin: 0 auto;
background: var(--surface);
padding: 3rem;
border-radius: 1rem;
border: 1px solid var(--surface-light);
}
.legal-content h1 {
font-size: 2.5rem;
margin-bottom: 1rem;
background: var(--gradient);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.legal-content h2 {
font-size: 1.75rem;
margin-top: 2.5rem;
margin-bottom: 1rem;
color: var(--primary-color);
}
.legal-content h3 {
font-size: 1.25rem;
margin-top: 1.5rem;
margin-bottom: 0.75rem;
color: var(--text-primary);
}
.legal-content p {
color: var(--text-secondary);
line-height: 1.8;
margin-bottom: 1rem;
}
.legal-content ul {
color: var(--text-secondary);
line-height: 1.8;
margin-left: 2rem;
margin-bottom: 1rem;
}
.legal-content ul li {
margin-bottom: 0.5rem;
}
.legal-content a {
color: var(--primary-color);
text-decoration: none;
border-bottom: 1px solid transparent;
transition: border-color 0.3s;
}
.legal-content a:hover {
border-bottom-color: var(--primary-color);
}
.back-link {
display: inline-block;
margin-bottom: 2rem;
color: var(--text-secondary);
text-decoration: none;
transition: color 0.3s;
}
.back-link:hover {
color: var(--primary-color);
}
.last-updated {
color: var(--text-muted);
font-size: 0.875rem;
margin-bottom: 2rem;
}
</style>
</head>
<body>
<!-- Navigation -->
<nav class="navbar">
<div class="container">
<div class="nav-brand">
<h1><a href="index.html" style="text-decoration: none; color: inherit;">DocuMentor</a></h1>
</div>
<ul class="nav-menu">
<li><a href="index.html#features">Features</a></li>
<li><a href="index.html#workflow">Workflow</a></li>
<li><a href="index.html#technologie">Technologie</a></li>
<li><a href="index.html#download">Download</a></li>
</ul>
</div>
</nav>
<!-- Datenschutz Content -->
<section class="legal-page">
<div class="container">
<div class="legal-content">
<a href="index.html" class="back-link">← Zurück zur Startseite</a>
<h1>Datenschutzerklärung</h1>
<p class="last-updated">Stand: Januar 2025</p>
<h2>1. Datenschutz auf einen Blick</h2>
<h3>Allgemeine Hinweise</h3>
<p>
Die folgenden Hinweise geben einen einfachen Überblick darüber, was mit Ihren personenbezogenen
Daten passiert, wenn Sie DocuMentor nutzen. Personenbezogene Daten sind alle Daten, mit denen
Sie persönlich identifiziert werden können.
</p>
<h3>DocuMentor als Desktop-Anwendung</h3>
<p>
DocuMentor ist eine Desktop-Anwendung, die lokal auf Ihrem Computer ausgeführt wird. Die
Anwendung sammelt, speichert oder überträgt keine personenbezogenen Daten an externe Server.
</p>
<h2>2. Datenerfassung durch die Anwendung</h2>
<h3>Welche Daten werden erfasst?</h3>
<p>
DocuMentor speichert ausschließlich lokal auf Ihrem Computer:
</p>
<ul>
<li>Anwendungskonfigurationen (Tool-Pfade, Einstellungen)</li>
<li>Projektdaten (XSL-Transformations-Workflows, XML-Dateien)</li>
<li>Datei-Hashwerte (Blake2b) zur Duplikatserkennung</li>
<li>Datenbankverbindungsinformationen (falls konfiguriert)</li>
</ul>
<h3>Wo werden diese Daten gespeichert?</h3>
<p>
Alle Daten werden lokal in folgenden Verzeichnissen gespeichert:
</p>
<ul>
<li><strong>Linux:</strong> ~/.config/DocuMentor/</li>
<li><strong>Windows:</strong> %APPDATA%\DocuMentor\</li>
<li><strong>macOS:</strong> ~/Library/Application Support/DocuMentor/</li>
</ul>
<p>
Zusätzlich werden projektspezifische Daten in dem von Ihnen gewählten Projektverzeichnis
als <code>project.yaml</code> gespeichert.
</p>
<h3>Keine Datenübertragung</h3>
<p>
DocuMentor überträgt keine Daten an externe Server oder Dritte. Die Anwendung funktioniert
vollständig offline. Eine Internetverbindung ist weder für die Installation noch für die
Nutzung erforderlich.
</p>
<h2>3. Datenerfassung auf dieser Webseite</h2>
<h3>Server-Log-Dateien</h3>
<p>
Der Provider dieser Webseite erhebt und speichert automatisch Informationen in sogenannten
Server-Log-Dateien, die Ihr Browser automatisch an uns übermittelt. Dies sind:
</p>
<ul>
<li>Browsertyp und Browserversion</li>
<li>Verwendetes Betriebssystem</li>
<li>Referrer URL</li>
<li>Hostname des zugreifenden Rechners</li>
<li>Uhrzeit der Serveranfrage</li>
<li>IP-Adresse</li>
</ul>
<p>
Eine Zusammenführung dieser Daten mit anderen Datenquellen wird nicht vorgenommen.
Die Erfassung dieser Daten erfolgt auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO.
Der Webseitenbetreiber hat ein berechtigtes Interesse an der technisch fehlerfreien
Darstellung und der Optimierung seiner Webseite.
</p>
<h3>Keine Cookies</h3>
<p>
Diese Webseite verwendet keine Cookies. Es werden keine Tracking- oder Analytics-Dienste
eingesetzt.
</p>
<h2>4. Datenbankverbindungen</h2>
<h3>PostgreSQL-Integration</h3>
<p>
DocuMentor bietet die Möglichkeit, sich mit PostgreSQL-Datenbanken zu verbinden. Die
Verbindungsinformationen (Server, Port, Benutzername, Passwort) werden ausschließlich
lokal in der Anwendungskonfiguration gespeichert.
</p>
<p>
Die Verbindung zur Datenbank erfolgt direkt von Ihrem Computer aus. DocuMentor fungiert
nicht als Vermittler und speichert keine Datenbankabfragen oder -ergebnisse außerhalb
Ihres lokalen Systems.
</p>
<h2>5. Ihre Rechte</h2>
<h3>Recht auf Auskunft, Löschung und Berichtigung</h3>
<p>
Da alle Daten ausschließlich lokal auf Ihrem Computer gespeichert werden, haben Sie
jederzeit volle Kontrolle über diese Daten:
</p>
<ul>
<li><strong>Auskunft:</strong> Sie können jederzeit in die Konfigurationsdateien einsehen</li>
<li><strong>Löschung:</strong> Sie können die Anwendung und alle Konfigurationsdateien jederzeit löschen</li>
<li><strong>Berichtigung:</strong> Sie können alle gespeicherten Einstellungen jederzeit ändern</li>
</ul>
<h3>Widerruf Ihrer Einwilligung zur Datenverarbeitung</h3>
<p>
Viele Datenverarbeitungsvorgänge sind nur mit Ihrer ausdrücklichen Einwilligung möglich.
Sie können eine bereits erteilte Einwilligung jederzeit widerrufen, indem Sie die
Anwendung deinstallieren und die Konfigurationsdateien löschen.
</p>
<h2>6. Open Source</h2>
<p>
DocuMentor ist eine Open-Source-Software. Der Quellcode ist öffentlich einsehbar, sodass
Sie jederzeit überprüfen können, wie Ihre Daten verarbeitet werden.
</p>
<h2>7. Kontakt</h2>
<p>
Bei Fragen zum Datenschutz oder zur Datenverarbeitung in DocuMentor können Sie sich
jederzeit an uns wenden. Die Kontaktdaten finden Sie im <a href="impressum.html">Impressum</a>.
</p>
<h2>8. Änderungen dieser Datenschutzerklärung</h2>
<p>
Wir behalten uns vor, diese Datenschutzerklärung anzupassen, damit sie stets den aktuellen
rechtlichen Anforderungen entspricht oder um Änderungen unserer Leistungen in der
Datenschutzerklärung umzusetzen. Für Ihren erneuten Besuch gilt dann die neue
Datenschutzerklärung.
</p>
<div style="margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--surface-light);">
<p style="color: var(--text-muted); font-size: 0.875rem;">
Diese Datenschutzerklärung wurde erstellt für die Desktop-Anwendung DocuMentor
und die zugehörige Webseite.
</p>
</div>
</div>
</div>
</section>
<!-- Footer -->
<footer class="footer">
<div class="container">
<div class="footer-content">
<div class="footer-section">
<h3>DocuMentor</h3>
<p>Professionelle XSL-Transformations-Verwaltung für anspruchsvolle Projekte.</p>
</div>
<div class="footer-section">
<h4>Rechtliches</h4>
<ul>
<li><a href="impressum.html">Impressum</a></li>
<li><a href="datenschutz.html">Datenschutz</a></li>
</ul>
</div>
<div class="footer-section">
<h4>Ressourcen</h4>
<ul>
<li><a href="index.html#features">Features</a></li>
<li><a href="index.html#download">Download</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<p>&copy; 2025 DocuMentor. Alle Rechte vorbehalten.</p>
</div>
</div>
</footer>
<script src="script.js"></script>
</body>
</html>
-299
View File
@@ -1,299 +0,0 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Impressum - DocuMentor</title>
<link rel="stylesheet" href="styles.css">
<style>
.legal-page {
padding: 8rem 0 4rem;
min-height: 100vh;
}
.legal-content {
max-width: 900px;
margin: 0 auto;
background: var(--surface);
padding: 3rem;
border-radius: 1rem;
border: 1px solid var(--surface-light);
}
.legal-content h1 {
font-size: 2.5rem;
margin-bottom: 1rem;
background: var(--gradient);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.legal-content h2 {
font-size: 1.75rem;
margin-top: 2.5rem;
margin-bottom: 1rem;
color: var(--primary-color);
}
.legal-content h3 {
font-size: 1.25rem;
margin-top: 1.5rem;
margin-bottom: 0.75rem;
color: var(--text-primary);
}
.legal-content p {
color: var(--text-secondary);
line-height: 1.8;
margin-bottom: 1rem;
}
.legal-content ul {
color: var(--text-secondary);
line-height: 1.8;
margin-left: 2rem;
margin-bottom: 1rem;
}
.legal-content ul li {
margin-bottom: 0.5rem;
}
.legal-content a {
color: var(--primary-color);
text-decoration: none;
border-bottom: 1px solid transparent;
transition: border-color 0.3s;
}
.legal-content a:hover {
border-bottom-color: var(--primary-color);
}
.back-link {
display: inline-block;
margin-bottom: 2rem;
color: var(--text-secondary);
text-decoration: none;
transition: color 0.3s;
}
.back-link:hover {
color: var(--primary-color);
}
.contact-box {
background: var(--background);
padding: 1.5rem;
border-radius: 0.5rem;
border-left: 4px solid var(--primary-color);
margin: 2rem 0;
}
.contact-box p {
margin-bottom: 0.5rem;
}
.placeholder-notice {
background: rgba(234, 179, 8, 0.1);
border: 1px solid var(--warning);
padding: 1rem;
border-radius: 0.5rem;
color: var(--warning);
margin: 2rem 0;
}
</style>
</head>
<body>
<!-- Navigation -->
<nav class="navbar">
<div class="container">
<div class="nav-brand">
<h1><a href="index.html" style="text-decoration: none; color: inherit;">DocuMentor</a></h1>
</div>
<ul class="nav-menu">
<li><a href="index.html#features">Features</a></li>
<li><a href="index.html#workflow">Workflow</a></li>
<li><a href="index.html#technologie">Technologie</a></li>
<li><a href="index.html#download">Download</a></li>
</ul>
</div>
</nav>
<!-- Impressum Content -->
<section class="legal-page">
<div class="container">
<div class="legal-content">
<a href="index.html" class="back-link">← Zurück zur Startseite</a>
<h1>Impressum</h1>
<div class="placeholder-notice">
<strong>Hinweis:</strong> Dies ist ein Platzhalter-Impressum. Bitte ersetzen Sie die folgenden
Informationen mit Ihren tatsächlichen Angaben gemäß den gesetzlichen Anforderungen.
</div>
<h2>Angaben gemäß § 5 TMG</h2>
<div class="contact-box">
<p><strong>[Ihr Name / Firmenname]</strong></p>
<p>[Straße und Hausnummer]</p>
<p>[PLZ] [Ort]</p>
<p>[Land]</p>
</div>
<h2>Kontakt</h2>
<div class="contact-box">
<p><strong>Telefon:</strong> [Ihre Telefonnummer]</p>
<p><strong>E-Mail:</strong> <a href="mailto:[ihre-email]">[Ihre E-Mail-Adresse]</a></p>
<p><strong>Webseite:</strong> <a href="[ihre-webseite]">[Ihre Webseite]</a></p>
</div>
<h2>Umsatzsteuer-ID</h2>
<p>
Umsatzsteuer-Identifikationsnummer gemäß § 27 a Umsatzsteuergesetz:<br>
<strong>[Ihre USt-IdNr.]</strong> (falls zutreffend)
</p>
<h2>Wirtschafts-ID</h2>
<p>
<strong>[Ihre Wirtschafts-ID]</strong> (falls zutreffend)
</p>
<h2>Verantwortlich für den Inhalt</h2>
<p>
Verantwortlich für den Inhalt nach § 55 Abs. 2 RStV:
</p>
<div class="contact-box">
<p><strong>[Name des Verantwortlichen]</strong></p>
<p>[Adresse]</p>
</div>
<h2>EU-Streitschlichtung</h2>
<p>
Die Europäische Kommission stellt eine Plattform zur Online-Streitbeilegung (OS) bereit:
<a href="https://ec.europa.eu/consumers/odr/" target="_blank" rel="noopener">
https://ec.europa.eu/consumers/odr/
</a>
</p>
<p>
Unsere E-Mail-Adresse finden Sie oben im Impressum.
</p>
<h2>Verbraucherstreitbeilegung / Universalschlichtungsstelle</h2>
<p>
Wir sind nicht bereit oder verpflichtet, an Streitbeilegungsverfahren vor einer
Verbraucherschlichtungsstelle teilzunehmen.
</p>
<h2>Haftung für Inhalte</h2>
<p>
Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach
den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter
jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen
oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen.
</p>
<p>
Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den
allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst
ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden
von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.
</p>
<h2>Haftung für Links</h2>
<p>
Unser Angebot enthält Links zu externen Websites Dritter, auf deren Inhalte wir keinen
Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen.
Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der
Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf
mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung
nicht erkennbar.
</p>
<p>
Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete
Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen
werden wir derartige Links umgehend entfernen.
</p>
<h2>Urheberrecht</h2>
<p>
Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen
dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art
der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen
Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind
nur für den privaten, nicht kommerziellen Gebrauch gestattet.
</p>
<p>
Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die
Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche
gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden,
bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen
werden wir derartige Inhalte umgehend entfernen.
</p>
<h2>Open Source Software</h2>
<p>
DocuMentor ist eine Open-Source-Software. Der Quellcode ist unter einer Open-Source-Lizenz
verfügbar. Details zur Lizenzierung finden Sie im GitHub-Repository der Anwendung.
</p>
<h2>Verwendete Technologien</h2>
<p>
DocuMentor verwendet folgende Technologien und Bibliotheken:
</p>
<ul>
<li>PySide6 (Qt für Python)</li>
<li>Pydantic (Datenvalidierung)</li>
<li>Saxon (XSLT-Prozessor)</li>
<li>Apache FOP (PDF-Generierung)</li>
<li>PostgreSQL (Datenbank, optional)</li>
<li>Polars (Datenverarbeitung)</li>
</ul>
<p>
Für diese Technologien gelten die jeweiligen Lizenzbedingungen der Urheber.
</p>
<div style="margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--surface-light);">
<p style="color: var(--text-muted); font-size: 0.875rem;">
Quelle: Erstellt für DocuMentor<br>
Stand: Januar 2025
</p>
</div>
</div>
</div>
</section>
<!-- Footer -->
<footer class="footer">
<div class="container">
<div class="footer-content">
<div class="footer-section">
<h3>DocuMentor</h3>
<p>Professionelle XSL-Transformations-Verwaltung für anspruchsvolle Projekte.</p>
</div>
<div class="footer-section">
<h4>Rechtliches</h4>
<ul>
<li><a href="impressum.html">Impressum</a></li>
<li><a href="datenschutz.html">Datenschutz</a></li>
</ul>
</div>
<div class="footer-section">
<h4>Ressourcen</h4>
<ul>
<li><a href="index.html#features">Features</a></li>
<li><a href="index.html#download">Download</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<p>&copy; 2025 DocuMentor. Alle Rechte vorbehalten.</p>
</div>
</div>
</footer>
<script src="script.js"></script>
</body>
</html>
-310
View File
@@ -1,310 +0,0 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>DocuMentor - Professionelle XSL-Transformations-Verwaltung</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<!-- Navigation -->
<nav class="navbar">
<div class="container">
<div class="nav-brand">
<h1>DocuMentor</h1>
</div>
<ul class="nav-menu">
<li><a href="#features">Features</a></li>
<li><a href="#workflow">Workflow</a></li>
<li><a href="#technologie">Technologie</a></li>
<li><a href="#download">Download</a></li>
</ul>
</div>
</nav>
<!-- Hero Section -->
<section class="hero">
<div class="container">
<div class="hero-content">
<h1 class="hero-title">Professionelle XSL-Transformations-Verwaltung</h1>
<p class="hero-subtitle">
DocuMentor ist Ihre leistungsstarke Desktop-Anwendung zur effizienten Verwaltung
und Validierung von XSL-Transformationen mit automatischer PDF-Generierung.
</p>
<div class="hero-buttons">
<a href="#download" class="btn btn-primary">Jetzt Herunterladen</a>
<a href="#features" class="btn btn-secondary">Mehr Erfahren</a>
</div>
</div>
<div class="hero-image">
<div class="screenshot-placeholder">
<svg viewBox="0 0 800 600" xmlns="http://www.w3.org/2000/svg">
<rect width="800" height="600" fill="#1e293b" rx="8"/>
<rect x="20" y="20" width="760" height="50" fill="#334155" rx="4"/>
<circle cx="40" cy="45" r="8" fill="#ef4444"/>
<circle cx="70" cy="45" r="8" fill="#eab308"/>
<circle cx="100" cy="45" r="8" fill="#22c55e"/>
<rect x="20" y="90" width="250" height="490" fill="#334155" rx="4"/>
<rect x="290" y="90" width="490" height="150" fill="#334155" rx="4"/>
<rect x="290" y="260" width="490" height="320" fill="#334155" rx="4"/>
</svg>
</div>
</div>
</div>
</section>
<!-- Features Section -->
<section id="features" class="features">
<div class="container">
<h2 class="section-title">Leistungsstarke Features</h2>
<p class="section-subtitle">Alles, was Sie für professionelle XSL-Transformationen benötigen</p>
<div class="features-grid">
<div class="feature-card">
<div class="feature-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"/>
</svg>
</div>
<h3>Hierarchische Projektverwaltung</h3>
<p>Organisieren Sie Ihre XSL-Transformationen in einer übersichtlichen Baumstruktur mit flexiblen Workflow-Definitionen.</p>
</div>
<div class="feature-card">
<div class="feature-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"/>
</svg>
</div>
<h3>Asynchrone Batch-Verarbeitung</h3>
<p>Verarbeiten Sie große Mengen von XML-Dateien im Hintergrund mit Fortschrittsanzeige und optimaler Performance.</p>
</div>
<div class="feature-card">
<div class="feature-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"/>
</svg>
</div>
<h3>Intelligente Duplikatserkennung</h3>
<p>Automatische Hash-basierte Erkennung von identischen XML-Dateien verhindert Redundanzen und spart Speicherplatz.</p>
</div>
<div class="feature-card">
<div class="feature-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<rect x="3" y="3" width="18" height="18" rx="2"/>
<path d="M9 3v18M15 3v18M3 9h18M3 15h18"/>
</svg>
</div>
<h3>PDF-Vergleichsansicht</h3>
<p>Drei-Panel-Ansicht mit Referenz-, Diff- und Neu-PDF inkl. Alpha-Blending für präzise visuelle Vergleiche.</p>
</div>
<div class="feature-card">
<div class="feature-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4"/>
</svg>
</div>
<h3>PostgreSQL-Integration</h3>
<p>Nahtlose Datenbankanbindung mit Polars und ConnectorX für performante SQL-Abfragen und Datenverarbeitung.</p>
</div>
<div class="feature-card">
<div class="feature-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4"/>
</svg>
</div>
<h3>Konfigurierbare Toolchains</h3>
<p>Flexible Verwaltung von Saxon, Apache FOP und diff-pdf mit Versionierung und plattformübergreifender Unterstützung.</p>
</div>
<div class="feature-card">
<div class="feature-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12"/>
</svg>
</div>
<h3>Drag & Drop-Unterstützung</h3>
<p>Intuitive Bedienung durch Drag-and-Drop für XML-Dateien mit automatischer Hash-Prüfung und Zuordnung.</p>
</div>
<div class="feature-card">
<div class="feature-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"/>
</svg>
</div>
<h3>Blake2b-Hash-Validierung</h3>
<p>Robuste Integritätsprüfung mit automatischer Hash-Berechnung für alle XML-Dateien im Hintergrund.</p>
</div>
</div>
</div>
</section>
<!-- Workflow Section -->
<section id="workflow" class="workflow">
<div class="container">
<h2 class="section-title">Ihr Workflow mit DocuMentor</h2>
<div class="workflow-steps">
<div class="workflow-step">
<div class="step-number">1</div>
<h3>Projekt erstellen</h3>
<p>Legen Sie ein neues Projekt an und konfigurieren Sie Ihre Transformations-Tools (Saxon, Apache FOP).</p>
</div>
<div class="workflow-arrow"></div>
<div class="workflow-step">
<div class="step-number">2</div>
<h3>Struktur aufbauen</h3>
<p>Organisieren Sie Ihre XSL-Stylesheets und XML-Dateien in der hierarchischen Baumstruktur.</p>
</div>
<div class="workflow-arrow"></div>
<div class="workflow-step">
<div class="step-number">3</div>
<h3>Transformationen ausführen</h3>
<p>Führen Sie Batch-Transformationen aus und profitieren Sie von der Worker-Pool-Performance.</p>
</div>
<div class="workflow-arrow"></div>
<div class="workflow-step">
<div class="step-number">4</div>
<h3>PDFs vergleichen</h3>
<p>Nutzen Sie die Drei-Panel-Ansicht für präzise Vergleiche zwischen Referenz und generierten PDFs.</p>
</div>
</div>
</div>
</section>
<!-- Technology Section -->
<section id="technologie" class="technology">
<div class="container">
<h2 class="section-title">Moderne Technologie</h2>
<div class="tech-grid">
<div class="tech-item">
<h3>PySide6</h3>
<p>Native Qt-basierte Benutzeroberfläche für beste Performance und plattformübergreifende Kompatibilität</p>
</div>
<div class="tech-item">
<h3>Pydantic</h3>
<p>Typsichere Konfigurationsverwaltung mit automatischer Validierung und Serialisierung</p>
</div>
<div class="tech-item">
<h3>Saxon</h3>
<p>Industrie-Standard XSLT-Prozessor für höchste Transformations-Qualität</p>
</div>
<div class="tech-item">
<h3>Apache FOP</h3>
<p>Professionelle PDF-Generierung aus XSL-FO mit umfangreichen Formatierungsoptionen</p>
</div>
<div class="tech-item">
<h3>PostgreSQL</h3>
<p>Enterprise-Datenbankintegration mit Polars für schnelle Datenverarbeitung</p>
</div>
<div class="tech-item">
<h3>Blake2b</h3>
<p>Kryptographische Hash-Funktion für sichere Integritätsprüfung und Duplikatserkennung</p>
</div>
</div>
</div>
</section>
<!-- Key Benefits Section -->
<section class="benefits">
<div class="container">
<h2 class="section-title">Ihre Vorteile</h2>
<div class="benefits-grid">
<div class="benefit-item">
<div class="benefit-number">4x</div>
<p>Schnellere XSLT-Transformationen durch Worker-Pool-Architektur</p>
</div>
<div class="benefit-item">
<div class="benefit-number">100%</div>
<p>Automatische Duplikatserkennung verhindert redundante Dateien</p>
</div>
<div class="benefit-item">
<div class="benefit-number"></div>
<p>Unbegrenzte Projektgröße durch effiziente Hash-basierte Verwaltung</p>
</div>
</div>
</div>
</section>
<!-- Download Section -->
<section id="download" class="download">
<div class="container">
<h2 class="section-title">Jetzt Starten</h2>
<p class="section-subtitle">DocuMentor ist verfügbar für Windows, macOS und Linux</p>
<div class="download-buttons">
<div class="download-card">
<h3>Linux</h3>
<p>Ubuntu, Debian, Fedora, Arch</p>
<a href="#" class="btn btn-download">Download für Linux</a>
</div>
<div class="download-card">
<h3>Windows</h3>
<p>Windows 10/11</p>
<a href="#" class="btn btn-download">Download für Windows</a>
</div>
<div class="download-card">
<h3>macOS</h3>
<p>macOS 10.15+</p>
<a href="#" class="btn btn-download">Download für macOS</a>
</div>
</div>
<div class="installation-note">
<h3>Installation</h3>
<div class="code-block">
<code>
# Installation mit uv Paketmanager<br>
uv sync<br>
<br>
# Anwendung starten<br>
uv run python src/main.py
</code>
</div>
</div>
</div>
</section>
<!-- Footer -->
<footer class="footer">
<div class="container">
<div class="footer-content">
<div class="footer-section">
<h3>DocuMentor</h3>
<p>Professionelle XSL-Transformations-Verwaltung für anspruchsvolle Projekte.</p>
</div>
<div class="footer-section">
<h4>Ressourcen</h4>
<ul>
<li><a href="#">Dokumentation</a></li>
<li><a href="#">GitHub Repository</a></li>
<li><a href="#">Issue Tracker</a></li>
</ul>
</div>
<div class="footer-section">
<h4>Community</h4>
<ul>
<li><a href="#">Forum</a></li>
<li><a href="#">Support</a></li>
<li><a href="#">Changelog</a></li>
</ul>
</div>
<div class="footer-section">
<h4>Rechtliches</h4>
<ul>
<li><a href="impressum.html">Impressum</a></li>
<li><a href="datenschutz.html">Datenschutz</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<p>&copy; 2025 DocuMentor. Alle Rechte vorbehalten.</p>
</div>
</div>
</footer>
<script src="script.js"></script>
</body>
</html>
-275
View File
@@ -1,275 +0,0 @@
// Smooth Scrolling für Navigation
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function (e) {
e.preventDefault();
const target = document.querySelector(this.getAttribute('href'));
if (target) {
const navHeight = document.querySelector('.navbar').offsetHeight;
const targetPosition = target.getBoundingClientRect().top + window.pageYOffset - navHeight;
window.scrollTo({
top: targetPosition,
behavior: 'smooth'
});
}
});
});
// Intersection Observer für Fade-In Animationen
const observerOptions = {
threshold: 0.1,
rootMargin: '0px 0px -50px 0px'
};
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
}
});
}, observerOptions);
// Füge Fade-In Klassen zu Elementen hinzu
document.addEventListener('DOMContentLoaded', () => {
const animatedElements = document.querySelectorAll(
'.feature-card, .workflow-step, .tech-item, .benefit-item, .download-card'
);
animatedElements.forEach((el, index) => {
el.classList.add('fade-in');
el.style.transitionDelay = `${index * 0.1}s`;
observer.observe(el);
});
});
// Navbar Scroll-Effekt
let lastScroll = 0;
const navbar = document.querySelector('.navbar');
window.addEventListener('scroll', () => {
const currentScroll = window.pageYOffset;
if (currentScroll <= 0) {
navbar.style.boxShadow = 'none';
} else {
navbar.style.boxShadow = '0 2px 10px rgba(0, 0, 0, 0.3)';
}
lastScroll = currentScroll;
});
// Feature-Card Parallax-Effekt
document.querySelectorAll('.feature-card').forEach(card => {
card.addEventListener('mousemove', (e) => {
const rect = card.getBoundingClientRect();
const x = e.clientX - rect.left;
const y = e.clientY - rect.top;
const centerX = rect.width / 2;
const centerY = rect.height / 2;
const deltaX = (x - centerX) / centerX;
const deltaY = (y - centerY) / centerY;
card.style.transform = `perspective(1000px) rotateY(${deltaX * 5}deg) rotateX(${-deltaY * 5}deg) translateY(-5px)`;
});
card.addEventListener('mouseleave', () => {
card.style.transform = 'perspective(1000px) rotateY(0deg) rotateX(0deg) translateY(0)';
});
});
// Download-Button Analytics (Placeholder)
document.querySelectorAll('.btn-download').forEach(button => {
button.addEventListener('click', (e) => {
e.preventDefault();
const platform = e.target.closest('.download-card').querySelector('h3').textContent;
console.log(`Download initiated for: ${platform}`);
// Hier könnte eine echte Download-Logik oder Analytics-Tracking erfolgen
alert(`Download für ${platform} würde hier starten.\nBitte konfigurieren Sie die Download-Links in der index.html.`);
});
});
// Mobile Navigation Toggle (für zukünftige Erweiterung)
const createMobileMenu = () => {
const navMenu = document.querySelector('.nav-menu');
const navbar = document.querySelector('.navbar .container');
// Erstelle Hamburger-Button nur auf mobilen Geräten
if (window.innerWidth <= 768) {
const existingToggle = document.querySelector('.nav-toggle');
if (existingToggle) return;
const toggle = document.createElement('button');
toggle.className = 'nav-toggle';
toggle.innerHTML = '☰';
toggle.style.cssText = `
background: none;
border: none;
color: var(--text-primary);
font-size: 1.5rem;
cursor: pointer;
padding: 0.5rem;
`;
toggle.addEventListener('click', () => {
navMenu.style.display = navMenu.style.display === 'flex' ? 'none' : 'flex';
if (navMenu.style.display === 'flex') {
navMenu.style.cssText = `
display: flex;
flex-direction: column;
position: absolute;
top: 100%;
left: 0;
right: 0;
background: var(--surface);
padding: 1rem;
border-top: 1px solid var(--surface-light);
`;
}
});
navbar.appendChild(toggle);
}
};
// Responsive Handling
window.addEventListener('resize', createMobileMenu);
createMobileMenu();
// Particle Background Animation (optional, dezent)
const createParticles = () => {
const hero = document.querySelector('.hero');
const particlesContainer = document.createElement('div');
particlesContainer.className = 'particles';
particlesContainer.style.cssText = `
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
overflow: hidden;
pointer-events: none;
opacity: 0.3;
`;
for (let i = 0; i < 20; i++) {
const particle = document.createElement('div');
particle.style.cssText = `
position: absolute;
width: 4px;
height: 4px;
background: var(--primary-color);
border-radius: 50%;
left: ${Math.random() * 100}%;
top: ${Math.random() * 100}%;
animation: float-particle ${5 + Math.random() * 10}s infinite ease-in-out;
animation-delay: ${Math.random() * 5}s;
`;
particlesContainer.appendChild(particle);
}
// Füge Animation hinzu
if (!document.querySelector('#particle-animation')) {
const style = document.createElement('style');
style.id = 'particle-animation';
style.textContent = `
@keyframes float-particle {
0%, 100% {
transform: translate(0, 0);
}
25% {
transform: translate(20px, -20px);
}
50% {
transform: translate(-20px, -40px);
}
75% {
transform: translate(20px, -60px);
}
}
`;
document.head.appendChild(style);
}
hero.style.position = 'relative';
hero.insertBefore(particlesContainer, hero.firstChild);
};
// Initialisiere Partikel nur auf Desktop
if (window.innerWidth > 768) {
createParticles();
}
// Counter Animation für Benefits
const animateCounters = () => {
const counters = document.querySelectorAll('.benefit-number');
counters.forEach(counter => {
const target = counter.textContent;
// Prüfe ob es eine Zahl ist
if (!isNaN(parseInt(target))) {
const targetNum = parseInt(target);
const duration = 2000;
const increment = targetNum / (duration / 16);
let current = 0;
const updateCounter = () => {
current += increment;
if (current < targetNum) {
counter.textContent = Math.floor(current) + 'x';
requestAnimationFrame(updateCounter);
} else {
counter.textContent = target;
}
};
// Starte Animation wenn Element sichtbar wird
const counterObserver = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
updateCounter();
counterObserver.unobserve(entry.target);
}
});
});
counterObserver.observe(counter);
}
});
};
animateCounters();
// Easter Egg: Konami Code
let konamiCode = [];
const konamiSequence = ['ArrowUp', 'ArrowUp', 'ArrowDown', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'ArrowLeft', 'ArrowRight', 'b', 'a'];
document.addEventListener('keydown', (e) => {
konamiCode.push(e.key);
konamiCode = konamiCode.slice(-10);
if (konamiCode.join(',') === konamiSequence.join(',')) {
document.body.style.animation = 'rainbow 2s infinite';
if (!document.querySelector('#rainbow-animation')) {
const style = document.createElement('style');
style.id = 'rainbow-animation';
style.textContent = `
@keyframes rainbow {
0% { filter: hue-rotate(0deg); }
100% { filter: hue-rotate(360deg); }
}
`;
document.head.appendChild(style);
}
setTimeout(() => {
document.body.style.animation = '';
}, 5000);
}
});
console.log('%c🚀 DocuMentor', 'font-size: 24px; font-weight: bold; background: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%); -webkit-background-clip: text; color: transparent;');
console.log('%cProfessionelle XSL-Transformations-Verwaltung', 'font-size: 14px; color: #94a3b8;');
-542
View File
@@ -1,542 +0,0 @@
/* Reset und Basis-Styles */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
:root {
--primary-color: #3b82f6;
--primary-dark: #2563eb;
--secondary-color: #8b5cf6;
--background: #0f172a;
--surface: #1e293b;
--surface-light: #334155;
--text-primary: #f1f5f9;
--text-secondary: #cbd5e1;
--text-muted: #94a3b8;
--accent: #06b6d4;
--success: #22c55e;
--warning: #eab308;
--error: #ef4444;
--gradient: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
}
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background-color: var(--background);
color: var(--text-primary);
line-height: 1.6;
overflow-x: hidden;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 2rem;
}
/* Navigation */
.navbar {
background-color: rgba(15, 23, 42, 0.95);
backdrop-filter: blur(10px);
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1000;
border-bottom: 1px solid var(--surface-light);
}
.navbar .container {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 2rem;
}
.nav-brand h1 {
font-size: 1.5rem;
background: var(--gradient);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.nav-menu {
display: flex;
list-style: none;
gap: 2rem;
}
.nav-menu a {
color: var(--text-secondary);
text-decoration: none;
font-weight: 500;
transition: color 0.3s;
}
.nav-menu a:hover {
color: var(--primary-color);
}
/* Hero Section */
.hero {
margin-top: 80px;
padding: 6rem 0;
background: linear-gradient(135deg, rgba(59, 130, 246, 0.1) 0%, rgba(139, 92, 246, 0.1) 100%);
}
.hero .container {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 4rem;
align-items: center;
}
.hero-title {
font-size: 3.5rem;
font-weight: 700;
line-height: 1.2;
margin-bottom: 1.5rem;
background: var(--gradient);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.hero-subtitle {
font-size: 1.25rem;
color: var(--text-secondary);
margin-bottom: 2rem;
line-height: 1.8;
}
.hero-buttons {
display: flex;
gap: 1rem;
}
.btn {
padding: 0.875rem 2rem;
border-radius: 0.5rem;
text-decoration: none;
font-weight: 600;
transition: all 0.3s;
display: inline-block;
cursor: pointer;
}
.btn-primary {
background: var(--gradient);
color: white;
border: none;
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 10px 25px rgba(59, 130, 246, 0.3);
}
.btn-secondary {
background: transparent;
color: var(--text-primary);
border: 2px solid var(--primary-color);
}
.btn-secondary:hover {
background: var(--primary-color);
transform: translateY(-2px);
}
.screenshot-placeholder {
width: 100%;
border-radius: 1rem;
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5);
overflow: hidden;
animation: float 6s ease-in-out infinite;
}
@keyframes float {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-20px); }
}
/* Features Section */
.features {
padding: 6rem 0;
background-color: var(--background);
}
.section-title {
font-size: 2.5rem;
text-align: center;
margin-bottom: 1rem;
background: var(--gradient);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.section-subtitle {
text-align: center;
color: var(--text-secondary);
font-size: 1.125rem;
margin-bottom: 4rem;
}
.features-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2rem;
}
.feature-card {
background: var(--surface);
padding: 2rem;
border-radius: 1rem;
border: 1px solid var(--surface-light);
transition: all 0.3s;
}
.feature-card:hover {
transform: translateY(-5px);
border-color: var(--primary-color);
box-shadow: 0 10px 30px rgba(59, 130, 246, 0.2);
}
.feature-icon {
width: 3rem;
height: 3rem;
margin-bottom: 1.5rem;
color: var(--primary-color);
}
.feature-icon svg {
width: 100%;
height: 100%;
}
.feature-card h3 {
font-size: 1.25rem;
margin-bottom: 1rem;
color: var(--text-primary);
}
.feature-card p {
color: var(--text-secondary);
line-height: 1.7;
}
/* Workflow Section */
.workflow {
padding: 6rem 0;
background: linear-gradient(135deg, rgba(59, 130, 246, 0.05) 0%, rgba(139, 92, 246, 0.05) 100%);
}
.workflow-steps {
display: flex;
justify-content: space-between;
align-items: center;
gap: 1rem;
margin-top: 3rem;
}
.workflow-step {
flex: 1;
background: var(--surface);
padding: 2rem;
border-radius: 1rem;
text-align: center;
border: 1px solid var(--surface-light);
transition: all 0.3s;
}
.workflow-step:hover {
transform: translateY(-5px);
border-color: var(--primary-color);
}
.step-number {
width: 3rem;
height: 3rem;
background: var(--gradient);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto 1.5rem;
font-size: 1.5rem;
font-weight: 700;
}
.workflow-arrow {
font-size: 2rem;
color: var(--primary-color);
flex-shrink: 0;
}
.workflow-step h3 {
margin-bottom: 1rem;
font-size: 1.25rem;
}
.workflow-step p {
color: var(--text-secondary);
}
/* Technology Section */
.technology {
padding: 6rem 0;
background-color: var(--background);
}
.tech-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 2rem;
}
.tech-item {
background: var(--surface);
padding: 2rem;
border-radius: 1rem;
border-left: 4px solid var(--primary-color);
transition: all 0.3s;
}
.tech-item:hover {
border-left-color: var(--secondary-color);
transform: translateX(5px);
}
.tech-item h3 {
color: var(--primary-color);
margin-bottom: 0.75rem;
font-size: 1.25rem;
}
.tech-item p {
color: var(--text-secondary);
}
/* Benefits Section */
.benefits {
padding: 6rem 0;
background: linear-gradient(135deg, rgba(59, 130, 246, 0.1) 0%, rgba(139, 92, 246, 0.1) 100%);
}
.benefits-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2rem;
margin-top: 3rem;
}
.benefit-item {
text-align: center;
padding: 2rem;
}
.benefit-number {
font-size: 4rem;
font-weight: 700;
background: var(--gradient);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
margin-bottom: 1rem;
}
.benefit-item p {
font-size: 1.125rem;
color: var(--text-secondary);
}
/* Download Section */
.download {
padding: 6rem 0;
background-color: var(--background);
}
.download-buttons {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 2rem;
margin: 3rem 0;
}
.download-card {
background: var(--surface);
padding: 2rem;
border-radius: 1rem;
text-align: center;
border: 1px solid var(--surface-light);
transition: all 0.3s;
}
.download-card:hover {
border-color: var(--primary-color);
transform: translateY(-5px);
}
.download-card h3 {
font-size: 1.5rem;
margin-bottom: 0.5rem;
}
.download-card p {
color: var(--text-muted);
margin-bottom: 1.5rem;
}
.btn-download {
background: var(--gradient);
color: white;
border: none;
width: 100%;
}
.btn-download:hover {
transform: translateY(-2px);
box-shadow: 0 10px 25px rgba(59, 130, 246, 0.3);
}
.installation-note {
background: var(--surface);
padding: 2rem;
border-radius: 1rem;
margin-top: 3rem;
border: 1px solid var(--surface-light);
}
.installation-note h3 {
margin-bottom: 1.5rem;
color: var(--primary-color);
}
.code-block {
background: var(--background);
padding: 1.5rem;
border-radius: 0.5rem;
border: 1px solid var(--surface-light);
overflow-x: auto;
}
.code-block code {
color: var(--accent);
font-family: 'Courier New', monospace;
font-size: 0.875rem;
line-height: 1.8;
}
/* Footer */
.footer {
background-color: var(--surface);
padding: 4rem 0 2rem;
border-top: 1px solid var(--surface-light);
}
.footer-content {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 3rem;
margin-bottom: 3rem;
}
.footer-section h3 {
margin-bottom: 1rem;
background: var(--gradient);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.footer-section h4 {
margin-bottom: 1rem;
color: var(--text-primary);
}
.footer-section p {
color: var(--text-secondary);
}
.footer-section ul {
list-style: none;
}
.footer-section ul li {
margin-bottom: 0.5rem;
}
.footer-section ul li a {
color: var(--text-secondary);
text-decoration: none;
transition: color 0.3s;
}
.footer-section ul li a:hover {
color: var(--primary-color);
}
.footer-bottom {
text-align: center;
padding-top: 2rem;
border-top: 1px solid var(--surface-light);
color: var(--text-muted);
}
/* Responsive Design */
@media (max-width: 768px) {
.hero .container {
grid-template-columns: 1fr;
gap: 2rem;
}
.hero-title {
font-size: 2.5rem;
}
.workflow-steps {
flex-direction: column;
}
.workflow-arrow {
transform: rotate(90deg);
}
.nav-menu {
display: none;
}
.features-grid {
grid-template-columns: 1fr;
}
.download-buttons {
grid-template-columns: 1fr;
}
}
/* Scroll Animations */
.fade-in {
opacity: 0;
transform: translateY(20px);
transition: opacity 0.6s, transform 0.6s;
}
.fade-in.visible {
opacity: 1;
transform: translateY(0);
}
/* Smooth Scrolling */
html {
scroll-behavior: smooth;
}
/* Selection */
::selection {
background-color: var(--primary-color);
color: white;
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 605 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

+2 -2
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>DocuMentor — Industrielle XSL-Transformationskontrolle</title>
<title>DocuMentor — XSL-Transformationen sicher im Griff</title>
<link rel="stylesheet" href="fonts/fonts.css">
<style>
/* ============================================================
@@ -1573,7 +1573,7 @@
SYSTEM AKTIV &mdash; XSL TRANSFORMATIONS-KONTROLLE v2.0
</div>
<h1 class="hero-title">Docu<span>Mentor</span></h1>
<p class="hero-tagline">Industrielle XSL-Transformationskontrolle</p>
<p class="hero-tagline">XSL-Transformationen sicher im Griff</p>
<p class="hero-desc">
Desktop-Anwendung zur Verwaltung und Validierung von XSL-Transformationen.
Erkennen Sie jede Auswirkung Ihrer XSL-Änderungen &mdash; bevor es zu spät ist.