staging
This commit is contained in:
@@ -15,17 +15,17 @@ const currentPath = Astro.url.pathname;
|
||||
<ul class="nav-links">
|
||||
<li>
|
||||
<a href="/" class={`nav-link ${currentPath === '/' ? 'active' : ''}`}>
|
||||
Home
|
||||
~/
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/status" class={`nav-link ${currentPath === '/status' ? 'active' : ''}`}>
|
||||
Status
|
||||
~/status
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/about" class={`nav-link ${currentPath === '/about' ? 'active' : ''}`}>
|
||||
About
|
||||
~/about
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
|
||||
@@ -31,7 +31,7 @@ const sortedTags = Object.entries(tagFrequency)
|
||||
<input
|
||||
type="text"
|
||||
id="search-input"
|
||||
placeholder="Search tools by name, description, or tags..."
|
||||
placeholder="Suchfeld: Name der Software, Beschreibung oder Tags..."
|
||||
style="width: 100%;"
|
||||
/>
|
||||
</div>
|
||||
@@ -41,10 +41,10 @@ const sortedTags = Object.entries(tagFrequency)
|
||||
<!-- Domain Selection -->
|
||||
<div class="domain-section">
|
||||
<label for="domain-select" style="display: block; margin-bottom: 0.5rem; font-weight: 500;">
|
||||
Forensic Domain
|
||||
Forensische Domäne
|
||||
</label>
|
||||
<select id="domain-select" style="max-width: 300px;">
|
||||
<option value="">All Domains</option>
|
||||
<option value="">Alle Domänen</option>
|
||||
{domains.map((domain: any) => (
|
||||
<option value={domain.id}>{domain.name}</option>
|
||||
))}
|
||||
@@ -54,7 +54,7 @@ const sortedTags = Object.entries(tagFrequency)
|
||||
<!-- Phase Selection Buttons -->
|
||||
<div class="phase-section">
|
||||
<label style="display: block; margin-bottom: 0.75rem; font-weight: 500;">
|
||||
Investigation Phase
|
||||
Untersuchungsphase
|
||||
</label>
|
||||
<div class="phase-buttons">
|
||||
{phases.map((phase: any) => (
|
||||
@@ -73,22 +73,22 @@ const sortedTags = Object.entries(tagFrequency)
|
||||
<!-- Additional Filters -->
|
||||
<div style="margin-bottom: 1.5rem;">
|
||||
<div class="checkbox-wrapper" style="margin-bottom: 1rem;">
|
||||
<input type="checkbox" id="include-proprietary" checked />
|
||||
<label for="include-proprietary">Include Proprietary Software</label>
|
||||
<input type="checkbox" id="include-proprietary" !checked />
|
||||
<label for="include-proprietary">Proprietäre Software mit einschließen</label>
|
||||
</div>
|
||||
|
||||
<!-- Tag Cloud -->
|
||||
<div style="margin-bottom: 1rem;">
|
||||
<div class="tag-header">
|
||||
<label style="font-weight: 500;">
|
||||
Filter by Tags
|
||||
Nach Tags filtern
|
||||
</label>
|
||||
<button
|
||||
id="tag-cloud-toggle"
|
||||
class="btn-tag-toggle"
|
||||
data-expanded="false"
|
||||
>
|
||||
Show More
|
||||
Mehr zeigen
|
||||
</button>
|
||||
</div>
|
||||
<div class="tag-cloud" id="tag-cloud">
|
||||
@@ -109,9 +109,8 @@ const sortedTags = Object.entries(tagFrequency)
|
||||
|
||||
<!-- View Toggle -->
|
||||
<div style="display: flex; gap: 1rem; margin-bottom: 1.5rem;">
|
||||
<button class="btn btn-secondary view-toggle active" data-view="grid">Grid View</button>
|
||||
<button class="btn btn-secondary view-toggle" data-view="matrix">Matrix View</button>
|
||||
<button class="btn btn-secondary view-toggle" data-view="hosted">Self-Hosted Only</button>
|
||||
<button class="btn btn-secondary view-toggle active" data-view="grid">Kachelansicht</button>
|
||||
<button class="btn btn-secondary view-toggle" data-view="matrix">Matrix-Ansicht</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -138,7 +137,7 @@ const sortedTags = Object.entries(tagFrequency)
|
||||
|
||||
// Initialize tag cloud state
|
||||
function initTagCloud() {
|
||||
const visibleCount = 12; // Show first 12 tags initially
|
||||
const visibleCount = 22; // Show first 12 tags initially
|
||||
tagCloudItems.forEach((item, index) => {
|
||||
if (index >= visibleCount) {
|
||||
item.style.display = 'none';
|
||||
@@ -149,11 +148,11 @@ const sortedTags = Object.entries(tagFrequency)
|
||||
// Toggle tag cloud expansion
|
||||
function toggleTagCloud() {
|
||||
isTagCloudExpanded = !isTagCloudExpanded;
|
||||
const visibleCount = 12;
|
||||
const visibleCount = 22;
|
||||
|
||||
if (isTagCloudExpanded) {
|
||||
tagCloud.classList.add('expanded');
|
||||
tagCloudToggle.textContent = 'Show Less';
|
||||
tagCloudToggle.textContent = 'Weniger zeigen';
|
||||
tagCloudToggle.setAttribute('data-expanded', 'true');
|
||||
|
||||
// Show all filtered tags
|
||||
@@ -164,7 +163,7 @@ const sortedTags = Object.entries(tagFrequency)
|
||||
});
|
||||
} else {
|
||||
tagCloud.classList.remove('expanded');
|
||||
tagCloudToggle.textContent = 'Show More';
|
||||
tagCloudToggle.textContent = 'Mehr zeigen';
|
||||
tagCloudToggle.setAttribute('data-expanded', 'false');
|
||||
|
||||
// Show only first visible tags
|
||||
@@ -186,7 +185,7 @@ const sortedTags = Object.entries(tagFrequency)
|
||||
function filterTagCloud() {
|
||||
const searchTerm = searchInput.value.toLowerCase();
|
||||
let visibleCount = 0;
|
||||
const maxVisibleWhenCollapsed = 12;
|
||||
const maxVisibleWhenCollapsed = 22;
|
||||
|
||||
tagCloudItems.forEach(item => {
|
||||
const tagName = item.getAttribute('data-tag').toLowerCase();
|
||||
|
||||
@@ -36,7 +36,7 @@ domains.forEach((domain: any) => {
|
||||
<div id="matrix-container" class="matrix-wrapper" style="display: none;">
|
||||
<!-- Collaboration Tools Section (compact horizontal layout for matrix view) -->
|
||||
<div id="collaboration-tools-section" style="margin-bottom: 1.5rem;">
|
||||
<h3 style="margin-bottom: 0.75rem; color: var(--color-text); font-size: 1.125rem;">General Tools for Collaboration</h3>
|
||||
<h3 style="margin-bottom: 0.75rem; color: var(--color-text); font-size: 1.125rem;">Übergreifend & Kollaboration</h3>
|
||||
<div class="collaboration-tools-compact" id="collaboration-tools-container">
|
||||
{collaborationTools.map((tool: any) => {
|
||||
const hasValidProjectUrl = tool.projectUrl !== undefined &&
|
||||
|
||||
@@ -9,8 +9,8 @@ tools:
|
||||
- "storage-file-system"
|
||||
- "application-code"
|
||||
phases:
|
||||
- "examination"
|
||||
- "analysis"
|
||||
- "Auswertung"
|
||||
- "Analyse"
|
||||
platforms: ["Windows", "Linux", "macOS"]
|
||||
skillLevel: "intermediate"
|
||||
accessType: "download"
|
||||
@@ -24,8 +24,8 @@ tools:
|
||||
domains:
|
||||
- "memory-runtime"
|
||||
phases:
|
||||
- "examination"
|
||||
- "analysis"
|
||||
- "Auswertung"
|
||||
- "Analyse"
|
||||
platforms: ["Windows", "Linux", "macOS"]
|
||||
skillLevel: "advanced"
|
||||
accessType: "download"
|
||||
@@ -42,9 +42,9 @@ tools:
|
||||
- "application-code"
|
||||
phases:
|
||||
- "data-collection"
|
||||
- "examination"
|
||||
- "analysis"
|
||||
- "reporting"
|
||||
- "Auswertung"
|
||||
- "Analyse"
|
||||
- "Bericht & Präsentation"
|
||||
platforms: ["Web"]
|
||||
skillLevel: "intermediate"
|
||||
accessType: "self-hosted"
|
||||
@@ -61,8 +61,8 @@ tools:
|
||||
- "application-code"
|
||||
phases:
|
||||
- "data-collection"
|
||||
- "analysis"
|
||||
- "reporting"
|
||||
- "Analyse"
|
||||
- "Bericht & Präsentation"
|
||||
platforms: ["Web"]
|
||||
skillLevel: "intermediate"
|
||||
accessType: "self-hosted"
|
||||
@@ -78,8 +78,8 @@ tools:
|
||||
- "storage-file-system"
|
||||
- "network-communication"
|
||||
phases:
|
||||
- "analysis"
|
||||
- "reporting"
|
||||
- "Analyse"
|
||||
- "Bericht & Präsentation"
|
||||
platforms: ["Web"]
|
||||
skillLevel: "intermediate"
|
||||
accessType: "self-hosted"
|
||||
@@ -95,8 +95,8 @@ tools:
|
||||
- "network-communication"
|
||||
phases:
|
||||
- "data-collection"
|
||||
- "examination"
|
||||
- "analysis"
|
||||
- "Auswertung"
|
||||
- "Analyse"
|
||||
platforms: ["Windows", "Linux", "macOS"]
|
||||
skillLevel: "intermediate"
|
||||
accessType: "download"
|
||||
@@ -112,9 +112,9 @@ tools:
|
||||
- "memory-runtime"
|
||||
phases:
|
||||
- "data-collection"
|
||||
- "examination"
|
||||
- "analysis"
|
||||
- "reporting"
|
||||
- "Auswertung"
|
||||
- "Analyse"
|
||||
- "Bericht & Präsentation"
|
||||
platforms: ["Windows"]
|
||||
skillLevel: "advanced"
|
||||
accessType: "commercial"
|
||||
@@ -129,15 +129,15 @@ tools:
|
||||
- "application-code"
|
||||
- "network-communication"
|
||||
phases:
|
||||
- "examination"
|
||||
- "analysis"
|
||||
- "Auswertung"
|
||||
- "Analyse"
|
||||
platforms: ["Linux"]
|
||||
skillLevel: "advanced"
|
||||
accessType: "self-hosted"
|
||||
url: "https://cuckoosandbox.org/"
|
||||
projectUrl: ""
|
||||
license: "GPL-3.0"
|
||||
tags: ["malware", "sandbox", "dynamic-analysis", "automation"]
|
||||
tags: ["malware", "sandbox", "dynamic-Analyse", "automation"]
|
||||
statusUrl: ""
|
||||
|
||||
- name: "FTK Imager"
|
||||
@@ -146,7 +146,7 @@ tools:
|
||||
- "storage-file-system"
|
||||
phases:
|
||||
- "data-collection"
|
||||
- "examination"
|
||||
- "Auswertung"
|
||||
platforms: ["Windows"]
|
||||
skillLevel: "intermediate"
|
||||
accessType: "download"
|
||||
@@ -162,7 +162,7 @@ tools:
|
||||
- "storage-file-system"
|
||||
phases:
|
||||
- "data-collection"
|
||||
- "examination"
|
||||
- "Auswertung"
|
||||
platforms: ["Linux", "Windows"]
|
||||
skillLevel: "advanced"
|
||||
accessType: "self-hosted"
|
||||
@@ -178,7 +178,7 @@ tools:
|
||||
- "storage-file-system"
|
||||
- "application-code"
|
||||
phases:
|
||||
- "analysis"
|
||||
- "Analyse"
|
||||
platforms: ["Linux", "Windows", "macOS"]
|
||||
skillLevel: "intermediate"
|
||||
accessType: "download"
|
||||
@@ -192,8 +192,8 @@ tools:
|
||||
domains:
|
||||
- "network-communication"
|
||||
phases:
|
||||
- "examination"
|
||||
- "analysis"
|
||||
- "Auswertung"
|
||||
- "Analyse"
|
||||
platforms: ["Windows", "Linux (Mono)"]
|
||||
skillLevel: "intermediate"
|
||||
accessType: "download"
|
||||
@@ -208,8 +208,8 @@ tools:
|
||||
- "memory-runtime"
|
||||
- "application-code"
|
||||
phases:
|
||||
- "examination"
|
||||
- "analysis"
|
||||
- "Auswertung"
|
||||
- "Analyse"
|
||||
platforms: ["Windows"]
|
||||
skillLevel: "intermediate"
|
||||
accessType: "download"
|
||||
@@ -225,7 +225,7 @@ tools:
|
||||
- "platform-infrastructure"
|
||||
phases:
|
||||
- "data-collection"
|
||||
- "analysis"
|
||||
- "Analyse"
|
||||
platforms: ["Windows"]
|
||||
skillLevel: "intermediate"
|
||||
accessType: "download"
|
||||
@@ -241,7 +241,7 @@ tools:
|
||||
- "storage-file-system"
|
||||
phases:
|
||||
- "data-collection"
|
||||
- "examination"
|
||||
- "Auswertung"
|
||||
platforms: ["Windows", "Linux", "macOS"]
|
||||
skillLevel: "advanced"
|
||||
accessType: "self-hosted"
|
||||
@@ -257,7 +257,7 @@ tools:
|
||||
- "network-communication"
|
||||
phases:
|
||||
- "data-collection"
|
||||
- "analysis"
|
||||
- "Analyse"
|
||||
platforms: ["Linux"]
|
||||
skillLevel: "advanced"
|
||||
accessType: "self-hosted"
|
||||
@@ -272,9 +272,9 @@ tools:
|
||||
domains:
|
||||
- "storage-file-system"
|
||||
phases:
|
||||
- "examination"
|
||||
- "analysis"
|
||||
- "reporting"
|
||||
- "Auswertung"
|
||||
- "Analyse"
|
||||
- "Bericht & Präsentation"
|
||||
platforms: ["Windows"]
|
||||
skillLevel: "advanced"
|
||||
accessType: "commercial"
|
||||
@@ -289,9 +289,9 @@ tools:
|
||||
domains:
|
||||
- "multimedia-content"
|
||||
phases:
|
||||
- "examination"
|
||||
- "analysis"
|
||||
- "reporting"
|
||||
- "Auswertung"
|
||||
- "Analyse"
|
||||
- "Bericht & Präsentation"
|
||||
platforms: ["Windows"]
|
||||
skillLevel: "intermediate"
|
||||
accessType: "commercial"
|
||||
@@ -305,16 +305,16 @@ tools:
|
||||
domains:
|
||||
- "multimedia-content"
|
||||
phases:
|
||||
- "examination"
|
||||
- "analysis"
|
||||
- "reporting"
|
||||
- "Auswertung"
|
||||
- "Analyse"
|
||||
- "Bericht & Präsentation"
|
||||
platforms: ["Windows"]
|
||||
skillLevel: "advanced"
|
||||
accessType: "commercial"
|
||||
url: "https://cognitech.com/"
|
||||
projectUrl: ""
|
||||
license: "Proprietary"
|
||||
tags: ["video", "3d-analysis", "photogrammetry", "measurement"]
|
||||
tags: ["video", "3d-Analyse", "photogrammetry", "measurement"]
|
||||
|
||||
- name: "ExifTool"
|
||||
description: "Plattformunabhängiges Tool zum Lesen, Schreiben und Bearbeiten von Metadaten in über 200 Dateiformaten"
|
||||
@@ -323,8 +323,8 @@ tools:
|
||||
- "storage-file-system"
|
||||
phases:
|
||||
- "data-collection"
|
||||
- "examination"
|
||||
- "analysis"
|
||||
- "Auswertung"
|
||||
- "Analyse"
|
||||
platforms: ["Windows", "Linux", "macOS"]
|
||||
skillLevel: "beginner"
|
||||
accessType: "download"
|
||||
@@ -338,8 +338,8 @@ tools:
|
||||
domains:
|
||||
- "multimedia-content"
|
||||
phases:
|
||||
- "examination"
|
||||
- "analysis"
|
||||
- "Auswertung"
|
||||
- "Analyse"
|
||||
platforms: ["Windows"]
|
||||
skillLevel: "advanced"
|
||||
accessType: "commercial"
|
||||
@@ -356,16 +356,16 @@ tools:
|
||||
- "storage-file-system"
|
||||
phases:
|
||||
- "data-collection"
|
||||
- "examination"
|
||||
- "analysis"
|
||||
- "reporting"
|
||||
- "Auswertung"
|
||||
- "Analyse"
|
||||
- "Bericht & Präsentation"
|
||||
platforms: ["Windows"]
|
||||
skillLevel: "intermediate"
|
||||
accessType: "commercial"
|
||||
url: "https://www.caseware.com/us/products/idea/"
|
||||
projectUrl: ""
|
||||
license: "Proprietary"
|
||||
tags: ["audit", "compliance", "data-analysis", "automation"]
|
||||
tags: ["audit", "compliance", "data-Analyse", "automation"]
|
||||
|
||||
- name: "Chainalysis"
|
||||
description: "Blockchain-Intelligence-Plattform für Kryptowährungs-Ermittlungen und Geldflussanalyse über verschiedene Chains"
|
||||
@@ -374,9 +374,9 @@ tools:
|
||||
- "network-communication"
|
||||
phases:
|
||||
- "data-collection"
|
||||
- "examination"
|
||||
- "analysis"
|
||||
- "reporting"
|
||||
- "Auswertung"
|
||||
- "Analyse"
|
||||
- "Bericht & Präsentation"
|
||||
platforms: ["Web"]
|
||||
skillLevel: "advanced"
|
||||
accessType: "commercial"
|
||||
@@ -390,25 +390,25 @@ tools:
|
||||
domains:
|
||||
- "transaction-financial"
|
||||
phases:
|
||||
- "examination"
|
||||
- "analysis"
|
||||
- "reporting"
|
||||
- "Auswertung"
|
||||
- "Analyse"
|
||||
- "Bericht & Präsentation"
|
||||
platforms: ["Web"]
|
||||
skillLevel: "intermediate"
|
||||
accessType: "commercial"
|
||||
url: "https://fraudfindr.com/"
|
||||
projectUrl: ""
|
||||
license: "Proprietary"
|
||||
tags: ["fraud-detection", "transaction", "reporting", "automation"]
|
||||
tags: ["fraud-detection", "transaction", "Bericht & Präsentation", "automation"]
|
||||
|
||||
- name: "Valid8 Financial"
|
||||
description: "Verifizierte Financial-Intelligence-Plattform für Transaktions-Tracing und forensische Buchhaltungsanalyse"
|
||||
domains:
|
||||
- "transaction-financial"
|
||||
phases:
|
||||
- "examination"
|
||||
- "analysis"
|
||||
- "reporting"
|
||||
- "Auswertung"
|
||||
- "Analyse"
|
||||
- "Bericht & Präsentation"
|
||||
platforms: ["Web"]
|
||||
skillLevel: "intermediate"
|
||||
accessType: "commercial"
|
||||
@@ -424,7 +424,7 @@ tools:
|
||||
- "storage-file-system"
|
||||
phases:
|
||||
- "data-collection"
|
||||
- "analysis"
|
||||
- "Analyse"
|
||||
platforms: ["Web"]
|
||||
skillLevel: "beginner"
|
||||
accessType: "commercial"
|
||||
@@ -433,7 +433,7 @@ tools:
|
||||
license: "Proprietary"
|
||||
tags: ["ocr", "bank-statements", "extraction", "ai"]
|
||||
|
||||
# Visualization and Analysis Tools
|
||||
# Visualization and Analyse Tools
|
||||
- name: "Neo4j"
|
||||
description: "Graph-Datenbank für Visualisierung komplexer Beziehungen und Netzwerkanalyse in forensischen Untersuchungen"
|
||||
domains:
|
||||
@@ -441,8 +441,8 @@ tools:
|
||||
- "application-code"
|
||||
- "transaction-financial"
|
||||
phases:
|
||||
- "analysis"
|
||||
- "reporting"
|
||||
- "Analyse"
|
||||
- "Bericht & Präsentation"
|
||||
platforms: ["Web", "Windows", "Linux", "macOS"]
|
||||
skillLevel: "intermediate"
|
||||
accessType: "self-hosted"
|
||||
@@ -501,12 +501,12 @@ domains:
|
||||
# Phase definitions for reference
|
||||
phases:
|
||||
- id: "data-collection"
|
||||
name: "Data Collection"
|
||||
- id: "examination"
|
||||
name: "Examination"
|
||||
- id: "analysis"
|
||||
name: "Analysis"
|
||||
- id: "reporting"
|
||||
name: "Reporting"
|
||||
name: "Datensammlung"
|
||||
- id: "Auswertung"
|
||||
name: "Auswertung"
|
||||
- id: "Analyse"
|
||||
name: "Analyse"
|
||||
- id: "Bericht & Präsentation"
|
||||
name: "Bericht & Präsentation"
|
||||
- id: "collaboration"
|
||||
name: "General Tools for Collaboration"
|
||||
name: "Übergreifend & Kollaboration"
|
||||
@@ -20,10 +20,10 @@ import BaseLayout from '../layouts/BaseLayout.astro';
|
||||
<h2>DFIR Methodology</h2>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit:</p>
|
||||
<ul style="margin-left: 1.5rem; margin-bottom: 1rem;">
|
||||
<li><strong>Data Collection:</strong> Lorem ipsum dolor sit amet</li>
|
||||
<li><strong>Examination:</strong> Consectetur adipiscing elit</li>
|
||||
<li><strong>Analysis:</strong> Sed do eiusmod tempor incididunt</li>
|
||||
<li><strong>Reporting:</strong> Ut labore et dolore magna aliqua</li>
|
||||
<li><strong>Datensammlung:</strong> Lorem ipsum dolor sit amet</li>
|
||||
<li><strong>Auswertung:</strong> Consectetur adipiscing elit</li>
|
||||
<li><strong>Analyse:</strong> Sed do eiusmod tempor incididunt</li>
|
||||
<li><strong>Bericht & Präsentation:</strong> Ut labore et dolore magna aliqua</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -14,17 +14,51 @@ const data = load(yamlContent) as any;
|
||||
const tools = data.tools;
|
||||
---
|
||||
|
||||
<BaseLayout title="Home">
|
||||
<!-- Hero Section -->
|
||||
<section style="text-align: center; padding: 3rem 0; border-bottom: 1px solid var(--color-border);">
|
||||
<h1 style="margin-bottom: 1rem;">DFIR Tools Hub</h1>
|
||||
<p class="text-muted" style="font-size: 1.125rem; max-width: 800px; margin: 0 auto;">
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation.
|
||||
<BaseLayout title="~/">
|
||||
<!-- Hero Section -->
|
||||
<section style="text-align: center; padding: 3rem 0; border-bottom: 1px solid var(--color-border);">
|
||||
<h1 style="margin-bottom: 1.5rem;">CC24 Incident Response Framework</h1>
|
||||
|
||||
<div style="max-width: 900px; margin: 0 auto;">
|
||||
<p style="font-size: 1.25rem; margin-bottom: 1.5rem; color: var(--color-text);">
|
||||
<strong>Das richtige Werkzeug zur richtigen Zeit</strong> – in der digitalen Forensik entscheidet oft die Wahl des passenden Tools über Erfolg oder Misserfolg einer Untersuchung.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<p class="text-muted" style="font-size: 1.125rem; margin-bottom: 1.5rem; line-height: 1.7;">
|
||||
Unser kuratiertes Verzeichnis bietet euch eine strukturierte Übersicht über bewährte DFIR-Tools,
|
||||
kategorisiert nach forensischen Domänen und Untersuchungsphasen nach Kent, Chevalier, Grance & Dang.
|
||||
</p>
|
||||
|
||||
<p class="text-muted" style="font-size: 1rem; margin-bottom: 2rem; line-height: 1.6;">
|
||||
<span style="color: var(--color-primary); font-weight: 500;">Besonders praktisch:</span>
|
||||
Viele Plattformen sind über das Single-Sign-On der CC24-Cloud direkt zugänglich.
|
||||
Teilnehmer der Seminargruppe CC24-w1 können die gehostete Infrastruktur
|
||||
kostenfrei für ihre Projekte nutzen.
|
||||
</p>
|
||||
|
||||
<div style="display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap;">
|
||||
<a href="/about" class="btn btn-primary" style="padding: 0.75rem 1.5rem;">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="margin-right: 0.5rem;">
|
||||
<circle cx="12" cy="12" r="10"></circle>
|
||||
<path d="M12 16v-4"></path>
|
||||
<path d="M12 8h.01"></path>
|
||||
</svg>
|
||||
SSO & Zugang erfahren
|
||||
</a>
|
||||
<a href="#filters-section" class="btn btn-secondary" style="padding: 0.75rem 1.5rem;">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="margin-right: 0.5rem;">
|
||||
<path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path>
|
||||
<polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline>
|
||||
<line x1="12" y1="22.08" x2="12" y2="12"></line>
|
||||
</svg>
|
||||
Tools entdecken
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Filters Section -->
|
||||
<section style="padding: 2rem 0;">
|
||||
<section id="filters-section" style="padding: 2rem 0;">
|
||||
<ToolFilters />
|
||||
</section>
|
||||
|
||||
|
||||
@@ -135,7 +135,7 @@ nav {
|
||||
.nav-links {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 2rem;
|
||||
gap: 5rem;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
@@ -143,6 +143,7 @@ nav {
|
||||
color: var(--color-text);
|
||||
font-weight: 500;
|
||||
transition: color 0.2s ease;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.nav-link:hover {
|
||||
|
||||
Reference in New Issue
Block a user