|
|
|
|
|
<!DOCTYPE html> |
|
|
<html lang="en" class="light"> |
|
|
<head> |
|
|
<meta charset="UTF-8"> |
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
|
<meta name="theme-color" content="#0078d4"> |
|
|
<title>AI Chat - The Colorless Wonder</title> |
|
|
<link rel="stylesheet" href="style.css"> |
|
|
<link rel="stylesheet" href="windows11.css"> |
|
|
<script src="https://cdn.tailwindcss.com"></script> |
|
|
<script src="https://unpkg.com/feather-icons"></script> |
|
|
<style> |
|
|
:root { |
|
|
--win11-bg: rgba(243, 243, 243, 0.85); |
|
|
--win11-bg-dark: rgba(32, 32, 32, 0.85); |
|
|
--win11-acrylic: rgba(243, 243, 243, 0.75); |
|
|
--win11-acrylic-dark: rgba(32, 32, 32, 0.75); |
|
|
--win11-border: rgba(0, 0, 0, 0.08); |
|
|
--win11-border-dark: rgba(255, 255, 255, 0.08); |
|
|
--win11-shadow: 0 8px 32px rgba(0, 0, 0, 0.12); |
|
|
--win11-shadow-dark: 0 8px 32px rgba(0, 0, 0, 0.3); |
|
|
--win11-radius: 8px; |
|
|
--win11-radius-lg: 12px; |
|
|
--win11-text: #1b1b1b; |
|
|
--win11-text-secondary: #6b6b6b; |
|
|
--win11-primary: #0078d4; |
|
|
--win11-primary-hover: #1a86d9; |
|
|
--win11-primary-dark: #60cdff; |
|
|
} |
|
|
|
|
|
.dark { |
|
|
--win11-bg: rgba(32, 32, 32, 0.85); |
|
|
--win11-acrylic: rgba(32, 32, 32, 0.75); |
|
|
--win11-border: rgba(255, 255, 255, 0.08); |
|
|
--win11-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); |
|
|
--win11-text: #ffffff; |
|
|
--win11-text-secondary: #a0a0a0; |
|
|
--win11-primary: #60cdff; |
|
|
--win11-primary-hover: #8ad4ff; |
|
|
} |
|
|
|
|
|
body { |
|
|
font-family: 'Segoe UI', 'Segoe UI Variable', -apple-system, BlinkMacSystemFont, sans-serif; |
|
|
background: linear-gradient(135deg, |
|
|
rgba(0, 120, 212, 0.08) 0%, |
|
|
rgba(0, 120, 212, 0.04) 50%, |
|
|
rgba(0, 120, 212, 0.08) 100%); |
|
|
min-height: 100vh; |
|
|
backdrop-filter: blur(30px) saturate(125%); |
|
|
-webkit-backdrop-filter: blur(30px) saturate(125%); |
|
|
} |
|
|
|
|
|
.dark body { |
|
|
background: linear-gradient(135deg, |
|
|
rgba(0, 120, 212, 0.12) 0%, |
|
|
rgba(0, 120, 212, 0.06) 50%, |
|
|
rgba(0, 120, 212, 0.12) 100%); |
|
|
} |
|
|
|
|
|
.win11-window { |
|
|
background: var(--win11-acrylic); |
|
|
backdrop-filter: blur(40px) saturate(150%); |
|
|
-webkit-backdrop-filter: blur(40px) saturate(150%); |
|
|
border: 1px solid var(--win11-border); |
|
|
box-shadow: var(--win11-shadow); |
|
|
border-radius: var(--win11-radius-lg); |
|
|
} |
|
|
|
|
|
.win11-button { |
|
|
background: rgba(0, 0, 0, 0.04); |
|
|
border: 1px solid var(--win11-border); |
|
|
border-radius: var(--win11-radius); |
|
|
transition: all 0.15s ease; |
|
|
} |
|
|
|
|
|
.win11-button:hover { |
|
|
background: rgba(0, 0, 0, 0.08); |
|
|
} |
|
|
|
|
|
.dark .win11-button { |
|
|
background: rgba(255, 255, 255, 0.04); |
|
|
} |
|
|
|
|
|
.dark .win11-button:hover { |
|
|
background: rgba(255, 255, 255, 0.08); |
|
|
} |
|
|
|
|
|
.win11-input { |
|
|
background: rgba(0, 0, 0, 0.04); |
|
|
border: 1px solid var(--win11-border); |
|
|
border-radius: var(--win11-radius); |
|
|
transition: all 0.2s ease; |
|
|
} |
|
|
|
|
|
.win11-input:focus { |
|
|
background: rgba(0, 0, 0, 0.06); |
|
|
border-color: var(--win11-primary); |
|
|
box-shadow: 0 0 0 2px rgba(0, 120, 212, 0.2); |
|
|
outline: none; |
|
|
} |
|
|
|
|
|
.dark .win11-input { |
|
|
background: rgba(255, 255, 255, 0.04); |
|
|
} |
|
|
|
|
|
.dark .win11-input:focus { |
|
|
background: rgba(255, 255, 255, 0.06); |
|
|
} |
|
|
|
|
|
.win11-link { |
|
|
color: var(--win11-primary); |
|
|
text-decoration: none; |
|
|
border-radius: 4px; |
|
|
padding: 2px 4px; |
|
|
margin: -2px -4px; |
|
|
transition: background 0.15s ease; |
|
|
} |
|
|
|
|
|
.win11-link:hover { |
|
|
background: rgba(0, 120, 212, 0.1); |
|
|
text-decoration: underline; |
|
|
} |
|
|
|
|
|
.win11-card { |
|
|
background: var(--win11-acrylic); |
|
|
backdrop-filter: blur(30px) saturate(125%); |
|
|
-webkit-backdrop-filter: blur(30px) saturate(125%); |
|
|
border: 1px solid var(--win11-border); |
|
|
border-radius: var(--win11-radius-lg); |
|
|
} |
|
|
|
|
|
|
|
|
.win11-titlebar { |
|
|
height: 32px; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
padding: 0 12px; |
|
|
border-bottom: 1px solid var(--win11-border); |
|
|
user-select: none; |
|
|
} |
|
|
|
|
|
.win11-titlebar-drag { |
|
|
flex: 1; |
|
|
height: 100%; |
|
|
-webkit-app-region: drag; |
|
|
} |
|
|
|
|
|
|
|
|
* { |
|
|
transition-property: background-color, border-color, color, fill, stroke; |
|
|
transition-timing-function: ease; |
|
|
transition-duration: 150ms; |
|
|
} |
|
|
|
|
|
|
|
|
::-webkit-scrollbar { |
|
|
width: 8px; |
|
|
height: 8px; |
|
|
} |
|
|
|
|
|
::-webkit-scrollbar-track { |
|
|
background: transparent; |
|
|
} |
|
|
|
|
|
::-webkit-scrollbar-thumb { |
|
|
background: rgba(0, 0, 0, 0.2); |
|
|
border-radius: 4px; |
|
|
} |
|
|
|
|
|
::-webkit-scrollbar-thumb:hover { |
|
|
background: rgba(0, 0, 0, 0.3); |
|
|
} |
|
|
|
|
|
.dark ::-webkit-scrollbar-thumb { |
|
|
background: rgba(255, 255, 255, 0.2); |
|
|
} |
|
|
|
|
|
.dark ::-webkit-scrollbar-thumb:hover { |
|
|
background: rgba(255, 255, 255, 0.3); |
|
|
} |
|
|
|
|
|
|
|
|
.theme-toggle { |
|
|
position: fixed; |
|
|
top: 16px; |
|
|
right: 16px; |
|
|
z-index: 1000; |
|
|
} |
|
|
|
|
|
@media (max-width: 640px) { |
|
|
.theme-toggle { |
|
|
top: 8px; |
|
|
right: 8px; |
|
|
} |
|
|
} |
|
|
</style> |
|
|
</head> |
|
|
<body class="light"> |
|
|
|
|
|
<button class="theme-toggle win11-button p-2" onclick="toggleTheme()" title="Toggle Theme"> |
|
|
<i data-feather="sun" class="w-5 h-5 text-yellow-500 dark:hidden"></i> |
|
|
<i data-feather="moon" class="w-5 h-5 text-yellow-300 hidden dark:block"></i> |
|
|
</button> |
|
|
|
|
|
<ai-chat></ai-chat> |
|
|
|
|
|
<div class="win11-card mx-auto mt-6 p-4 text-center max-w-md" style="margin-left: auto; margin-right: auto; margin-top: 24px;"> |
|
|
<a href="tools.html" class="win11-link">Explore Development Tools & SDKs</a> |
|
|
<div class="mt-3"> |
|
|
<a href="index.html" class="win11-link"> |
|
|
<i data-feather="arrow-left" class="w-4 h-4 inline mr-1"></i> |
|
|
Back to Home |
|
|
</a> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<script src="components/ai-chat.js"></script> |
|
|
<script> |
|
|
|
|
|
document.addEventListener('DOMContentLoaded', function() { |
|
|
if (typeof feather !== 'undefined') { |
|
|
feather.replace(); |
|
|
} |
|
|
}); |
|
|
|
|
|
|
|
|
function toggleTheme() { |
|
|
const html = document.documentElement; |
|
|
const isDark = html.classList.contains('dark'); |
|
|
|
|
|
if (isDark) { |
|
|
html.classList.remove('dark'); |
|
|
html.classList.add('light'); |
|
|
localStorage.setItem('theme', 'light'); |
|
|
} else { |
|
|
html.classList.remove('light'); |
|
|
html.classList.add('dark'); |
|
|
localStorage.setItem('theme', 'dark'); |
|
|
} |
|
|
|
|
|
|
|
|
if (typeof feather !== 'undefined') { |
|
|
feather.replace(); |
|
|
} |
|
|
|
|
|
|
|
|
window.dispatchEvent(new CustomEvent('themechange', { |
|
|
detail: { theme: isDark ? 'light' : 'dark' } |
|
|
})); |
|
|
} |
|
|
|
|
|
|
|
|
function initTheme() { |
|
|
const saved = localStorage.getItem('theme'); |
|
|
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches; |
|
|
|
|
|
if (saved) { |
|
|
document.documentElement.classList.remove('light', 'dark'); |
|
|
document.documentElement.classList.add(saved); |
|
|
} else if (prefersDark) { |
|
|
document.documentElement.classList.remove('light', 'dark'); |
|
|
document.documentElement.classList.add('dark'); |
|
|
} |
|
|
|
|
|
if (typeof feather !== 'undefined') { |
|
|
feather.replace(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
initTheme(); |
|
|
|
|
|
|
|
|
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function(e) { |
|
|
if (!localStorage.getItem('theme')) { |
|
|
document.documentElement.classList.remove('light', 'dark'); |
|
|
document.documentElement.classList.add(e.matches ? 'dark' : 'light'); |
|
|
} |
|
|
}); |
|
|
</script> |
|
|
</body> |
|
|
</html> |
|
|
|