Files
Ransom-s-wake/Design-Proposal/confirmation_abandon_v4_1080p_ransom_s_wake/code.html
T

250 lines
13 KiB
HTML

<!DOCTYPE html>
<html class="dark" lang="fr"><head>
<meta charset="utf-8"/>
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
<title>DIVE_OS - Abort Sequence</title>
<script src="https://cdn.tailwindcss.com?plugins=forms,container-queries"></script>
<link href="https://fonts.googleapis.com" rel="preconnect"/>
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&amp;family=JetBrains+Mono:wght@400;500&amp;display=swap" rel="stylesheet"/>
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&amp;display=swap" rel="stylesheet"/>
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&amp;display=swap" rel="stylesheet"/>
<style>
.material-symbols-outlined {
font-family: 'Material Symbols Outlined';
font-weight: normal;
font-style: normal;
font-size: 24px;
line-height: 1;
letter-spacing: normal;
text-transform: none;
display: inline-block;
white-space: nowrap;
word-wrap: normal;
direction: ltr;
-webkit-font-feature-settings: 'liga';
-webkit-font-smoothing: antialiased;
}
.hazard-stripes {
background-image: repeating-linear-gradient(
-45deg,
#93000a,
#93000a 20px,
#09141e 20px,
#09141e 40px
);
}
.crt-scanline {
background: linear-gradient(
to bottom,
rgba(255,255,255,0),
rgba(255,255,255,0) 50%,
rgba(0,0,0,0.1) 50%,
rgba(0,0,0,0.1)
);
background-size: 100% 4px;
}
@keyframes emergency-pulse {
0% { box-shadow: inset 0 0 0px rgba(167, 25, 28, 0); }
50% { box-shadow: inset 0 0 150px rgba(167, 25, 28, 0.15); }
100% { box-shadow: inset 0 0 0px rgba(167, 25, 28, 0); }
}
.bg-emergency {
animation: emergency-pulse 4s infinite;
}
</style>
<script id="tailwind-config">
tailwind.config = {
darkMode: "class",
theme: {
extend: {
colors: {
"tertiary-container": "#ffb9b2",
"outline-variant": "#3c4a47",
"on-secondary-fixed-variant": "#5c4300",
"on-tertiary-fixed-variant": "#92030f",
"error": "#ffb4ab",
"on-tertiary": "#690007",
"inverse-on-surface": "#26313d",
"secondary-container": "#ffbf00",
"tertiary-fixed": "#ffdad6",
"on-primary-container": "#006058",
"on-surface": "#d8e4f2",
"surface-dim": "#09141e",
"on-tertiary-container": "#a7191c",
"on-background": "#d8e4f2",
"error-container": "#93000a",
"tertiary-fixed-dim": "#ffb4ac",
"on-primary": "#003732",
"inverse-primary": "#006a62",
"inverse-surface": "#d8e4f2",
"on-error-container": "#ffdad6",
"primary-container": "#40e0d0",
"secondary-fixed": "#ffdfa0",
"surface-container-highest": "#2b3641",
"secondary-fixed-dim": "#fbbc00",
"surface": "#09141e",
"background": "#09141e",
"surface-container-lowest": "#040f19",
"outline": "#859491",
"on-error": "#690005",
"on-tertiary-fixed": "#410003",
"surface-container": "#15212b",
"on-secondary": "#402d00",
"on-primary-fixed": "#00201d",
"tertiary": "#ffdfdc",
"surface-variant": "#2b3641",
"on-secondary-fixed": "#261a00",
"on-secondary-container": "#6d5000",
"on-primary-fixed-variant": "#005049",
"surface-container-high": "#202b36",
"primary-fixed-dim": "#3adccc",
"on-surface-variant": "#bacac6",
"primary": "#66fdec",
"primary-fixed": "#61f9e9",
"surface-bright": "#2f3a46",
"surface-tint": "#3adccc",
"secondary": "#ffe2ab",
"surface-container-low": "#111d27"
},
fontFamily: {
"data-lg": ["JetBrains Mono", "monospace"],
"label-caps": ["Inter", "sans-serif"],
"body-sm": ["Inter", "sans-serif"],
"headline-lg": ["Inter", "sans-serif"],
"headline-md": ["Inter", "sans-serif"],
"data-md": ["JetBrains Mono", "monospace"],
"body-lg": ["Inter", "sans-serif"]
},
fontSize: {
"data-lg": ["18px", { "lineHeight": "1", "fontWeight": "500" }],
"label-caps": ["12px", { "lineHeight": "1", "letterSpacing": "0.1em", "fontWeight": "700" }],
"body-sm": ["14px", { "lineHeight": "1.5", "fontWeight": "400" }],
"headline-lg": ["32px", { "lineHeight": "1.2", "letterSpacing": "-0.02em", "fontWeight": "700" }],
"headline-md": ["24px", { "lineHeight": "1.2", "fontWeight": "600" }],
"data-md": ["14px", { "lineHeight": "1", "fontWeight": "400" }],
"body-lg": ["16px", { "lineHeight": "1.6", "fontWeight": "400" }]
}
}
}
}
</script>
</head>
<body class="bg-background text-on-surface h-screen w-screen overflow-hidden flex font-body-lg crt-scanline">
<!-- SideNavBar (Semantic Shell - Active Tab: ABORT DIVE) -->
<aside class="flex flex-col h-full border-r-2 border-outline-variant bg-surface-container dark:bg-surface-container w-64 flex-shrink-0 z-20">
<!-- Header -->
<div class="p-6 border-b-2 border-outline-variant bg-surface-container-high">
<h1 class="font-headline-md text-headline-md text-secondary tracking-tighter">DIVE_OS v2.4</h1>
<p class="font-label-caps text-label-caps text-on-surface-variant mt-2 mb-6">SUBMERSIBLE STATUS: NOMINAL</p>
<div class="w-full aspect-square border-2 border-outline-variant bg-surface-dim flex items-center justify-center relative overflow-hidden" data-alt="Technical schematic wireframe of a deep sea submersible vehicle, monochrome cyan on dark blue, tactical UI style, highly detailed grid lines.">
<!-- Fallback icon if image fails to load in this environment, though instructions say don't use data-alt without placeholder, wait, I will use a simple CSS shape or icon here to represent the avatar to avoid unnecessary image loading as per prompt context preferring UI patterns -->
<span class="material-symbols-outlined text-outline-variant" style="font-size: 64px;">sailing</span>
<div class="absolute inset-0 border border-primary/20 m-2"></div>
</div>
</div>
<!-- Navigation -->
<nav class="flex-1 overflow-y-auto py-4">
<ul class="space-y-1">
<li>
<a class="flex items-center space-x-4 text-on-surface-variant hover:bg-surface-bright px-4 py-3 transition-all" href="#">
<span class="material-symbols-outlined">play_arrow</span>
<span class="font-label-caps text-label-caps">RESUME</span>
</a>
</li>
<li>
<a class="flex items-center space-x-4 text-on-surface-variant hover:bg-surface-bright px-4 py-3 transition-all" href="#">
<span class="material-symbols-outlined">keyboard</span>
<span class="font-label-caps text-label-caps">CONTROLS</span>
</a>
</li>
<li>
<a class="flex items-center space-x-4 text-on-surface-variant hover:bg-surface-bright px-4 py-3 transition-all" href="#">
<span class="material-symbols-outlined">volume_up</span>
<span class="font-label-caps text-label-caps">AUDIO</span>
</a>
</li>
<li>
<a class="flex items-center space-x-4 text-on-surface-variant hover:bg-surface-bright px-4 py-3 transition-all" href="#">
<span class="material-symbols-outlined">monitor</span>
<span class="font-label-caps text-label-caps">DISPLAY</span>
</a>
</li>
<!-- ACTIVE TAB -->
<li>
<a class="flex items-center space-x-4 bg-secondary/10 text-secondary border-l-4 border-secondary px-4 py-3 scale-95 transition-transform" href="#">
<span class="material-symbols-outlined" style="font-variation-settings: 'FILL' 1;">warning</span>
<span class="font-label-caps text-label-caps text-secondary">ABORT DIVE</span>
</a>
</li>
</ul>
</nav>
<!-- Footer Actions -->
<div class="border-t-2 border-outline-variant p-4 space-y-2 bg-surface-container-high">
<button class="w-full flex items-center justify-start space-x-4 text-on-surface-variant hover:bg-surface-bright px-4 py-3 transition-all">
<span class="material-symbols-outlined">home</span>
<span class="font-label-caps text-label-caps">MAIN MENU</span>
</button>
<button class="w-full flex items-center justify-start space-x-4 text-on-surface-variant hover:bg-surface-bright px-4 py-3 transition-all">
<span class="material-symbols-outlined">power_settings_new</span>
<span class="font-label-caps text-label-caps">QUIT</span>
</button>
<button class="w-full mt-4 bg-primary text-on-primary py-3 font-label-caps text-label-caps border-2 border-primary hover:bg-transparent hover:text-primary transition-colors">
CONTINUE MISSION
</button>
</div>
</aside>
<!-- Main Content Area -->
<main class="flex-1 relative bg-emergency flex items-center justify-center p-8 z-10">
<!-- Background Grid decoration -->
<div class="absolute inset-0 opacity-10 pointer-events-none" style="background-image: linear-gradient(#3c4a47 1px, transparent 1px), linear-gradient(90deg, #3c4a47 1px, transparent 1px); background-size: 40px 40px;"></div>
<!-- Confirmation Modal Panel -->
<div class="relative w-full max-w-3xl bg-surface-container-high border-2 border-error shadow-[0_0_60px_rgba(167,25,28,0.2)] flex flex-col">
<!-- Top Hazard Stripe -->
<div class="h-3 w-full hazard-stripes border-b-2 border-error"></div>
<div class="p-10 flex flex-col items-center text-center space-y-8">
<!-- Warning Icon -->
<div class="w-24 h-24 rounded-full border-4 border-error flex items-center justify-center bg-error-container/20 text-error shadow-[0_0_30px_rgba(255,180,171,0.3)]">
<span class="material-symbols-outlined" style="font-size: 48px; font-variation-settings: 'FILL' 1;">warning</span>
</div>
<!-- Titles and Text -->
<div class="space-y-4 max-w-xl">
<h2 class="font-headline-lg text-headline-lg text-error uppercase tracking-wider">
Abandonner la plongée ?
</h2>
<p class="font-body-lg text-body-lg text-on-surface-variant">
Vous serez éjecté puis évacué. Le sous-marin et sa cargaison non sécurisée resteront au fond. Une franchise sera appliquée.
</p>
</div>
<!-- Actions -->
<div class="w-full grid grid-cols-2 gap-6 pt-6 mt-4 border-t border-outline-variant">
<!-- Destructive Action -->
<button class="group flex flex-col items-center justify-center py-6 border-2 border-outline-variant bg-surface-container hover:border-error hover:bg-error-container/30 transition-all focus:outline-none">
<span class="material-symbols-outlined text-error mb-2 group-hover:scale-110 transition-transform">eject</span>
<span class="font-label-caps text-label-caps text-error">S'éjecter et abandonner</span>
</button>
<!-- Primary Action (Focus Initial) -->
<button autofocus="" class="relative flex flex-col items-center justify-center py-6 border-2 border-primary bg-primary text-on-primary hover:bg-primary-fixed-dim transition-all focus:outline-none focus:ring-4 focus:ring-primary/50 shadow-[0_0_20px_rgba(64,224,208,0.4)]">
<span class="material-symbols-outlined mb-2 text-on-primary">anchor</span>
<span class="font-label-caps text-label-caps">Rester en plongée</span>
<!-- Corner accents -->
<div class="absolute top-1 left-1 w-2 h-2 border-t-2 border-l-2 border-on-primary"></div>
<div class="absolute bottom-1 right-1 w-2 h-2 border-b-2 border-r-2 border-on-primary"></div>
</button>
</div>
</div>
<!-- Bottom Hazard Stripe -->
<div class="h-3 w-full hazard-stripes border-t-2 border-error"></div>
<!-- Screw heads decoration -->
<div class="absolute top-4 left-4 w-2 h-2 rounded-full bg-outline-variant"></div>
<div class="absolute top-4 right-4 w-2 h-2 rounded-full bg-outline-variant"></div>
<div class="absolute bottom-4 left-4 w-2 h-2 rounded-full bg-outline-variant"></div>
<div class="absolute bottom-4 right-4 w-2 h-2 rounded-full bg-outline-variant"></div>
</div>
</main>
</body></html>