| |
|
| | <!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> |
| |
|