repo: remove cross-project DockDeck Stitch input
GeoIntel release gates / Compile, test, contracts and builds (push) Canceled after 4s
GeoIntel release gates / Python and npm vulnerability policy (push) Canceled after 0s
GeoIntel release gates / GIS image, SBOM and container scan (push) Canceled after 0s
GeoIntel release gates / AI image, SBOM and container scan (push) Canceled after 0s

This commit is contained in:
2026-08-26 22:37:16 +02:00
parent 488660260c
commit fc12e5de85
@@ -1,438 +0,0 @@
<!DOCTYPE html>
<html class="dark" lang="nl"><head>
<meta charset="utf-8"/>
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
<title>DockDeck - Instellingen Weergave</title>
<script src="https://cdn.tailwindcss.com?plugins=forms,container-queries"></script>
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=swap" rel="stylesheet"/>
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=swap" rel="stylesheet"/>
<link href="https://fonts.googleapis.com/css2?family=Geist:wght@100..900&display=swap" rel="stylesheet"/>
<style>
@font-face {
font-family: 'Geist';
src: url('https://cdn.jsdelivr.net/npm/geist-font@1.1.0/fonts/geist-sans/Geist-Regular.woff2') format('woff2');
font-weight: 400;
}
@font-face {
font-family: 'Geist';
src: url('https://cdn.jsdelivr.net/npm/geist-font@1.1.0/fonts/geist-sans/Geist-Medium.woff2') format('woff2');
font-weight: 500;
}
@font-face {
font-family: 'Geist';
src: url('https://cdn.jsdelivr.net/npm/geist-font@1.1.0/fonts/geist-sans/Geist-SemiBold.woff2') format('woff2');
font-weight: 600;
}
body {
font-family: 'Geist', sans-serif;
-webkit-font-smoothing: antialiased;
}
.custom-scrollbar::-webkit-scrollbar {
width: 4px;
}
.custom-scrollbar::-webkit-scrollbar-track {
background: #0b1326;
}
.custom-scrollbar::-webkit-scrollbar-thumb {
background: #2d3748;
border-radius: 10px;
}
.glass-card {
background: rgba(22, 31, 53, 0.6);
backdrop-filter: blur(12px);
border: 1px solid rgba(255, 255, 255, 0.05);
}
.theme-preview {
aspect-ratio: 16/10;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.theme-preview:hover {
transform: translateY(-2px);
border-color: #818cf8;
}
.toggle-switch {
width: 44px;
height: 24px;
background: #2d3449;
border-radius: 99px;
position: relative;
cursor: pointer;
transition: background 0.3s;
}
.toggle-switch::after {
content: '';
position: absolute;
left: 2px;
top: 2px;
width: 20px;
height: 20px;
background: #bdc2ff;
border-radius: 50%;
transition: transform 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}
.toggle-active {
background: #818cf8 !important;
}
.toggle-active::after {
transform: translateX(20px);
background: #0b1326 !important;
}
</style>
<script id="tailwind-config">
tailwind.config = {
darkMode: "class",
theme: {
extend: {
"colors": {
"background": "#0b1326",
"on-tertiary-fixed": "#07006c",
"inverse-on-surface": "#283044",
"error-container": "#93000a",
"on-surface-variant": "#c6c5d5",
"secondary-container": "#00a572",
"inverse-surface": "#dbe2fd",
"on-secondary-container": "#00311f",
"on-error-container": "#ffdad6",
"secondary-fixed": "#6ffbbe",
"primary-fixed": "#e0e0ff",
"on-secondary": "#003824",
"tertiary-container": "#8689ff",
"surface-container-lowest": "#060d20",
"surface-container-high": "#222a3e",
"tertiary": "#c0c1ff",
"primary-fixed-dim": "#bdc2ff",
"on-tertiary": "#1000a9",
"surface-container": "#171f33",
"on-primary-fixed": "#000767",
"on-surface": "#dbe2fd",
"on-error": "#690005",
"surface-container-highest": "#2d3449",
"on-tertiary-container": "#0f00a2",
"on-background": "#dbe2fd",
"secondary-fixed-dim": "#4edea3",
"on-primary-container": "#101b8a",
"inverse-primary": "#4953bc",
"surface": "#0b1326",
"on-secondary-fixed": "#002113",
"tertiary-fixed-dim": "#c0c1ff",
"on-tertiary-fixed-variant": "#2f2ebe",
"primary-container": "#818cf8",
"outline": "#908f9e",
"on-secondary-fixed-variant": "#005236",
"surface-dim": "#0b1326",
"surface-bright": "#31394e",
"outline-variant": "#454653",
"surface-container-low": "#131b2e",
"surface-variant": "#2d3449",
"secondary": "#4edea3",
"primary": "#bdc2ff",
"on-primary": "#131e8c",
"error": "#ffb4ab",
"tertiary-fixed": "#e1e0ff",
"surface-tint": "#bdc2ff",
"on-primary-fixed-variant": "#2f3aa3"
},
"borderRadius": {
"DEFAULT": "0.25rem",
"lg": "0.5rem",
"xl": "0.75rem",
"full": "9999px"
},
"spacing": {
"stack-md": "1rem",
"margin-mobile": "1rem",
"gutter": "1.5rem",
"stack-sm": "0.5rem",
"container-max": "1280px",
"stack-lg": "2rem"
},
"fontFamily": {
"headline-lg": ["Geist"],
"label-caps": ["Geist"],
"body-md": ["Geist"],
"headline-lg-mobile": ["Geist"],
"status-label": ["Geist"],
"headline-md": ["Geist"],
"body-sm": ["Geist"]
},
"fontSize": {
"headline-lg": ["32px", { "lineHeight": "40px", "letterSpacing": "-0.02em", "fontWeight": "600" }],
"label-caps": ["12px", { "lineHeight": "16px", "letterSpacing": "0.05em", "fontWeight": "600" }],
"body-md": ["16px", { "lineHeight": "24px", "fontWeight": "400" }],
"headline-lg-mobile": ["24px", { "lineHeight": "32px", "letterSpacing": "-0.01em", "fontWeight": "600" }],
"status-label": ["13px", { "lineHeight": "18px", "fontWeight": "500" }],
"headline-md": ["20px", { "lineHeight": "28px", "fontWeight": "500" }],
"body-sm": ["14px", { "lineHeight": "20px", "fontWeight": "400" }]
}
},
},
}
</script>
</head>
<body class="bg-background text-on-background min-h-screen flex flex-col overflow-hidden">
<!-- TopAppBar -->
<header class="flex justify-between items-center px-gutter w-full h-16 bg-background border-b border-outline-variant fixed top-0 z-50">
<div class="flex items-center gap-4">
<span class="font-headline-md text-headline-md font-bold text-primary">DockDeck</span>
<div class="hidden md:flex h-8 w-px bg-outline-variant mx-2"></div>
<div class="hidden md:flex items-center gap-6">
<a class="font-body-sm text-body-sm text-on-surface-variant hover:text-primary transition-colors cursor-pointer" href="#">Dashboard</a>
<a class="font-body-sm text-body-sm text-primary border-b-2 border-primary cursor-pointer h-full flex items-center" href="#">Instellingen</a>
</div>
</div>
<div class="flex items-center gap-4">
<div class="relative group">
<span class="material-symbols-outlined text-on-surface-variant group-hover:text-primary cursor-pointer transition-colors" data-icon="settings">settings</span>
</div>
</div>
</header>
<div class="flex pt-16 h-screen overflow-hidden">
<!-- SideNavBar -->
<nav class="flex flex-col p-stack-md h-full bg-surface-container border-r border-outline-variant w-64 flex-shrink-0">
<div class="mb-stack-lg px-2">
<h1 class="font-headline-md text-headline-md text-primary">Instellingen</h1>
<p class="font-body-sm text-body-sm text-on-surface-variant">Beheer jouw omgeving</p>
</div>
<div class="flex-grow space-y-1 custom-scrollbar overflow-y-auto pr-2">
<div class="flex items-center gap-stack-md p-stack-sm mb-1 cursor-pointer text-on-surface-variant hover:bg-surface-variant rounded-lg transition-all duration-200">
<span class="material-symbols-outlined" data-icon="settings">settings</span>
<span class="font-body-md text-body-md">Algemeen</span>
</div>
<div class="flex items-center gap-stack-md p-stack-sm mb-1 cursor-pointer text-on-surface-variant hover:bg-surface-variant rounded-lg transition-all duration-200">
<span class="material-symbols-outlined" data-icon="apps">apps</span>
<span class="font-body-md text-body-md">Apps</span>
</div>
<div class="flex items-center gap-stack-md p-stack-sm mb-1 cursor-pointer text-on-surface-variant hover:bg-surface-variant rounded-lg transition-all duration-200">
<span class="material-symbols-outlined" data-icon="star">star</span>
<span class="font-body-md text-body-md">Favorieten</span>
</div>
<div class="flex items-center gap-stack-md p-stack-sm mb-1 cursor-pointer text-on-surface-variant hover:bg-surface-variant rounded-lg transition-all duration-200">
<span class="material-symbols-outlined" data-icon="category">category</span>
<span class="font-body-md text-body-md">Categorieën</span>
</div>
<!-- Active Item: Uiterlijk -->
<div class="flex items-center gap-stack-md p-stack-sm mb-1 cursor-pointer bg-primary-container text-on-primary-container font-medium rounded-lg transition-all duration-200">
<span class="material-symbols-outlined" data-icon="palette">palette</span>
<span class="font-body-md text-body-md">Uiterlijk</span>
</div>
<div class="flex items-center gap-stack-md p-stack-sm mb-1 cursor-pointer text-on-surface-variant hover:bg-surface-variant rounded-lg transition-all duration-200">
<span class="material-symbols-outlined" data-icon="extension">extension</span>
<span class="font-body-md text-body-md">Integraties</span>
</div>
<div class="flex items-center gap-stack-md p-stack-sm mb-1 cursor-pointer text-on-surface-variant hover:bg-surface-variant rounded-lg transition-all duration-200">
<span class="material-symbols-outlined" data-icon="backup">backup</span>
<span class="font-body-md text-body-md">Back-up & Herstel</span>
</div>
</div>
</nav>
<!-- Main Content Area -->
<main class="flex-grow overflow-y-auto custom-scrollbar bg-background relative px-gutter py-stack-lg lg:px-12">
<div class="max-w-4xl mx-auto space-y-stack-lg">
<!-- Section: Thema -->
<section class="space-y-stack-md">
<div>
<h2 class="font-headline-md text-headline-md text-on-background mb-1">Thema</h2>
<p class="font-body-sm text-body-sm text-on-surface-variant">Kies de visuele stijl die het beste bij je workflow past.</p>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-6">
<!-- Dark Theme -->
<div class="space-y-3">
<div class="theme-preview bg-[#0b1326] border-2 border-primary p-3 rounded-xl flex flex-col gap-2 cursor-pointer ring-offset-2 ring-offset-background group">
<div class="h-2 w-1/2 bg-primary/20 rounded-full"></div>
<div class="flex gap-2 h-full">
<div class="w-8 h-full bg-surface-container rounded-lg"></div>
<div class="flex-grow grid grid-cols-2 gap-2 h-full">
<div class="glass-card rounded-lg border-primary/20"></div>
<div class="glass-card rounded-lg"></div>
</div>
</div>
</div>
<div class="flex items-center justify-between px-1">
<span class="font-body-md text-body-md text-on-background">Donker</span>
<span class="material-symbols-outlined text-primary text-sm" data-icon="check_circle" style="font-variation-settings: 'FILL' 1;">check_circle</span>
</div>
</div>
<!-- Light Theme -->
<div class="space-y-3 opacity-60 hover:opacity-100 transition-opacity">
<div class="theme-preview bg-slate-100 border border-outline-variant p-3 rounded-xl flex flex-col gap-2 cursor-pointer group">
<div class="h-2 w-1/2 bg-slate-300 rounded-full"></div>
<div class="flex gap-2 h-full">
<div class="w-8 h-full bg-slate-200 rounded-lg"></div>
<div class="flex-grow grid grid-cols-2 gap-2 h-full">
<div class="bg-white rounded-lg border border-slate-200"></div>
<div class="bg-white rounded-lg border border-slate-200"></div>
</div>
</div>
</div>
<div class="flex items-center justify-between px-1">
<span class="font-body-md text-body-md text-on-surface-variant">Licht</span>
</div>
</div>
<!-- Neon Theme -->
<div class="space-y-3 opacity-60 hover:opacity-100 transition-opacity">
<div class="theme-preview bg-black border border-[#00ff9d]/30 p-3 rounded-xl flex flex-col gap-2 cursor-pointer group relative overflow-hidden">
<div class="absolute inset-0 bg-gradient-to-br from-[#00ff9d]/5 to-purple-500/5"></div>
<div class="h-2 w-1/2 bg-[#00ff9d]/40 rounded-full relative z-10"></div>
<div class="flex gap-2 h-full relative z-10">
<div class="w-8 h-full bg-[#111] border border-[#00ff9d]/20 rounded-lg"></div>
<div class="flex-grow grid grid-cols-2 gap-2 h-full">
<div class="bg-black border border-purple-500/20 rounded-lg"></div>
<div class="bg-black border border-purple-500/20 rounded-lg"></div>
</div>
</div>
</div>
<div class="flex items-center justify-between px-1">
<span class="font-body-md text-body-md text-on-surface-variant">Neon</span>
</div>
</div>
</div>
</section>
<div class="h-px bg-outline-variant w-full"></div>
<!-- Section: Dashboardmodus & Grid -->
<section class="grid grid-cols-1 md:grid-cols-2 gap-stack-lg">
<div class="space-y-stack-md">
<div class="flex items-center gap-3">
<span class="material-symbols-outlined text-primary" data-icon="dashboard">dashboard</span>
<h3 class="font-headline-md text-headline-md text-on-background">Dashboardmodus</h3>
</div>
<div class="space-y-3">
<label class="flex items-center gap-4 p-4 rounded-xl border-2 border-primary-container bg-primary-container/5 cursor-pointer group">
<input checked="" class="hidden" name="dashboard-mode" type="radio"/>
<div class="w-5 h-5 rounded-full border-2 border-primary flex items-center justify-center">
<div class="w-2.5 h-2.5 rounded-full bg-primary"></div>
</div>
<div class="flex-grow">
<p class="font-body-md text-body-md font-medium text-on-background">Overzicht</p>
<p class="font-body-sm text-body-sm text-on-surface-variant">Toon alle services in één doorlopend grid.</p>
</div>
</label>
<label class="flex items-center gap-4 p-4 rounded-xl border border-outline-variant hover:bg-surface-variant/30 cursor-pointer group">
<input class="hidden" name="dashboard-mode" type="radio"/>
<div class="w-5 h-5 rounded-full border-2 border-outline-variant flex items-center justify-center"></div>
<div class="flex-grow">
<p class="font-body-md text-body-md font-medium text-on-background">Categorie</p>
<p class="font-body-sm text-body-sm text-on-surface-variant">Groepeer services per type of project.</p>
</div>
</label>
</div>
</div>
<div class="space-y-stack-md">
<div class="flex items-center gap-3">
<span class="material-symbols-outlined text-primary" data-icon="grid_view">grid_view</span>
<h3 class="font-headline-md text-headline-md text-on-background">Grid-dichtheid</h3>
</div>
<div class="space-y-3">
<label class="flex items-center gap-4 p-4 rounded-xl border border-outline-variant hover:bg-surface-variant/30 cursor-pointer group">
<input class="hidden" name="grid-density" type="radio"/>
<div class="w-5 h-5 rounded-full border-2 border-outline-variant flex items-center justify-center"></div>
<div class="flex-grow">
<p class="font-body-md text-body-md font-medium text-on-background">Compact</p>
<p class="font-body-sm text-body-sm text-on-surface-variant">Maximaliseer zichtbare items per scherm.</p>
</div>
</label>
<label class="flex items-center gap-4 p-4 rounded-xl border-2 border-primary-container bg-primary-container/5 cursor-pointer group">
<input checked="" class="hidden" name="grid-density" type="radio"/>
<div class="w-5 h-5 rounded-full border-2 border-primary flex items-center justify-center">
<div class="w-2.5 h-2.5 rounded-full bg-primary"></div>
</div>
<div class="flex-grow">
<p class="font-body-md text-body-md font-medium text-on-background">Comfortabel</p>
<p class="font-body-sm text-body-sm text-on-surface-variant">Meer ademruimte en grotere interactiegebieden.</p>
</div>
</label>
</div>
</div>
</section>
<div class="h-px bg-outline-variant w-full"></div>
<!-- Section: Toegankelijkheid -->
<section class="p-6 glass-card rounded-2xl flex items-center justify-between">
<div class="flex gap-4">
<div class="w-12 h-12 rounded-full bg-secondary-container/10 flex items-center justify-center text-secondary">
<span class="material-symbols-outlined" data-icon="motion_photos_off">motion_photos_off</span>
</div>
<div>
<h3 class="font-headline-md text-headline-md text-on-background mb-1">Reduced Motion</h3>
<p class="font-body-sm text-body-sm text-on-surface-variant max-w-md">Beperk animaties en overgangen voor een rustigere interface ervaring.</p>
</div>
</div>
<div class="toggle-switch" id="motion-toggle" onclick="this.classList.toggle('toggle-active')"></div>
</section>
<!-- Action Footer -->
<div class="flex items-center justify-end gap-4 py-8">
<button class="px-6 py-2 rounded-lg border border-primary text-primary font-medium hover:bg-primary/5 transition-all">
Annuleren
</button>
<button class="px-8 py-2 rounded-lg bg-primary-container text-on-primary-container font-semibold hover:opacity-90 transition-all shadow-lg shadow-primary-container/20">
Wijzigingen Opslaan
</button>
</div>
</div>
<!-- Atmosphere micro-animation -->
<div class="fixed bottom-0 right-0 p-8 opacity-20 pointer-events-none">
<div class="w-64 h-64 bg-primary/20 blur-[100px] rounded-full animate-pulse"></div>
</div>
</main>
</div>
<script>
// Micro-interaction logic
document.querySelectorAll('input[type="radio"]').forEach(radio => {
radio.addEventListener('change', function() {
const name = this.getAttribute('name');
const labels = document.querySelectorAll(`input[name="${name}"]`);
labels.forEach(input => {
const parent = input.closest('label');
const indicator = parent.querySelector('.rounded-full.border-2');
if (input.checked) {
parent.classList.add('border-primary-container', 'bg-primary-container/5');
parent.classList.remove('border-outline-variant');
indicator.classList.add('border-primary');
indicator.classList.remove('border-outline-variant');
indicator.innerHTML = '<div class="w-2.5 h-2.5 rounded-full bg-primary"></div>';
} else {
parent.classList.remove('border-primary-container', 'bg-primary-container/5');
parent.classList.add('border-outline-variant');
indicator.classList.remove('border-primary');
indicator.classList.add('border-outline-variant');
indicator.innerHTML = '';
}
});
});
});
// Theme selection visual feedback
document.querySelectorAll('.theme-preview').forEach(preview => {
preview.addEventListener('click', function() {
document.querySelectorAll('.theme-preview').forEach(p => {
p.classList.remove('border-primary');
p.classList.add('border-outline-variant');
p.parentElement.classList.add('opacity-60');
const status = p.parentElement.querySelector('.material-symbols-outlined');
if(status) status.remove();
});
this.classList.add('border-primary');
this.classList.remove('border-outline-variant');
this.parentElement.classList.remove('opacity-60');
const footer = this.parentElement.querySelector('div');
const check = document.createElement('span');
check.className = 'material-symbols-outlined text-primary text-sm';
check.style.fontVariationSettings = "'FILL' 1";
check.innerText = 'check_circle';
footer.appendChild(check);
});
});
</script>
</body></html>