Spaces:
Running
Running
Update index.html
Browse files- index.html +105 -141
index.html
CHANGED
|
@@ -54,164 +54,128 @@ tailwind.config = {
|
|
| 54 |
}
|
| 55 |
}
|
| 56 |
</script>
|
|
|
|
| 57 |
<style>
|
| 58 |
* { box-sizing: border-box; }
|
| 59 |
-
body {
|
| 60 |
-
|
| 61 |
body {
|
| 62 |
-
--
|
| 63 |
-
--
|
| 64 |
-
--
|
| 65 |
-
--
|
| 66 |
-
--
|
| 67 |
-
--
|
| 68 |
-
--
|
| 69 |
-
--
|
| 70 |
-
--
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 71 |
}
|
| 72 |
body.light {
|
| 73 |
-
--
|
| 74 |
-
--
|
| 75 |
-
--
|
| 76 |
-
--
|
| 77 |
-
--
|
| 78 |
-
--
|
| 79 |
-
--
|
| 80 |
-
--
|
| 81 |
-
--
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 82 |
}
|
| 83 |
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
:
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
|
| 92 |
-
.
|
| 93 |
-
.
|
| 94 |
-
.
|
| 95 |
-
.
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
}
|
| 103 |
-
.
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
|
| 108 |
-
|
| 109 |
-
|
| 110 |
-
}
|
| 111 |
-
.
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
|
|
|
|
|
|
|
|
|
| 116 |
}
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
|
| 122 |
-
}
|
| 123 |
-
.prose-msg
|
| 124 |
-
.prose-msg
|
| 125 |
-
.prose-msg
|
|
|
|
|
|
|
| 126 |
.prose-msg ul, .prose-msg ol { padding-left: 1.25em; margin: 0.4em 0 0.6em; }
|
|
|
|
| 127 |
.prose-msg li { margin: 0.2em 0; }
|
| 128 |
-
.prose-msg blockquote {
|
| 129 |
-
|
| 130 |
-
|
| 131 |
-
color: #9898a8;
|
| 132 |
-
margin: 0.5em 0;
|
| 133 |
-
font-style: italic;
|
| 134 |
-
}
|
| 135 |
-
.prose-msg a { color: #d4a853; text-decoration: underline; }
|
| 136 |
-
.prose-msg strong { color: #e8e4dc; font-weight: 500; }
|
| 137 |
.prose-msg table { border-collapse: collapse; width: 100%; margin: 0.5em 0; font-size: 0.85em; }
|
| 138 |
-
.prose-msg th { background:
|
| 139 |
-
.prose-msg td { border
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
.prose-user {
|
| 143 |
-
.prose-user
|
| 144 |
-
.prose-user
|
| 145 |
-
.prose-user code { background: rgba(0,0,0,0.12); padding: 0.1em 0.3em; border-radius: 3px; font-size: 0.875em; }
|
| 146 |
-
.prose-user pre { background: rgba(0,0,0,0.15); border-radius: 5px; padding: 10px 12px; overflow-x: auto; margin: 0.5em 0; }
|
| 147 |
-
.prose-user strong { font-weight: 500; }
|
| 148 |
-
|
| 149 |
-
/* Textarea auto-resize trick */
|
| 150 |
-
textarea { resize: none; overflow: hidden; }
|
| 151 |
|
| 152 |
-
|
| 153 |
#sidebar { transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1); }
|
| 154 |
#overlay { transition: opacity 0.3s ease; }
|
| 155 |
-
|
| 156 |
-
|
| 157 |
-
.dot-
|
| 158 |
-
.dot-2 { animation: blink 1.2s 0.2s infinite; }
|
| 159 |
-
.dot-3 { animation: blink 1.2s 0.4s infinite; }
|
| 160 |
-
|
| 161 |
-
.msg-anim { opacity: 0; animation: fadeUp 0.35s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
|
| 162 |
-
|
| 163 |
-
/* Model select */
|
| 164 |
select { -webkit-appearance: none; appearance: none; }
|
| 165 |
-
|
| 166 |
-
|
| 167 |
-
textarea:focus, input:focus, select:focus { outline: none; box-shadow: 0 0 0 1.5px #d4a853; }
|
| 168 |
-
|
| 169 |
-
/* Apply variables to all the fixed-color elements */
|
| 170 |
-
body { background: var(--c-bg); }
|
| 171 |
-
#sidebar { background: var(--c-surface); border-color: var(--c-border); }
|
| 172 |
-
header { background: var(--c-surface); border-color: var(--c-border); }
|
| 173 |
-
.border-ash { border-color: var(--c-border) !important; }
|
| 174 |
-
.bg-smoke { background: var(--c-surface) !important; }
|
| 175 |
-
.bg-ash { background: var(--c-mist) !important; }
|
| 176 |
-
.bg-mist { background: var(--c-mist) !important; }
|
| 177 |
-
.text-fog { color: var(--c-fog) !important; }
|
| 178 |
-
.text-ghost { color: var(--c-ghost) !important; }
|
| 179 |
-
.text-pearl { color: var(--c-pearl) !important; }
|
| 180 |
-
.text-cream { color: var(--c-cream) !important; }
|
| 181 |
-
.border-mist { border-color: var(--c-mist) !important; }
|
| 182 |
-
|
| 183 |
-
/* Prose text in light mode */
|
| 184 |
-
body.light .prose-msg { color: var(--c-text); }
|
| 185 |
-
body.light .prose-msg code { background: rgba(0,0,0,0.08); color: #b06000; }
|
| 186 |
-
body.light .prose-msg pre { background: #e8e0d4; border-color: var(--c-border); }
|
| 187 |
-
body.light .prose-msg pre code { color: var(--c-text); }
|
| 188 |
-
body.light .prose-msg strong { color: var(--c-cream); }
|
| 189 |
-
body.light .prose-msg blockquote { color: var(--c-ghost); }
|
| 190 |
-
|
| 191 |
-
/* Input/select backgrounds */
|
| 192 |
-
body.light textarea,
|
| 193 |
-
body.light input[type="text"],
|
| 194 |
-
body.light input[type="password"],
|
| 195 |
-
body.light input[type="number"],
|
| 196 |
-
body.light select { background: var(--c-surface); color: var(--c-cream); }
|
| 197 |
-
|
| 198 |
-
/* Conversation list hover */
|
| 199 |
-
body.light #conv-list [class*="hover:bg-ash"]:hover { background: var(--c-border) !important; }
|
| 200 |
-
body.light #conv-list [class*="bg-mist"] { background: var(--c-mist) !important; }
|
| 201 |
-
|
| 202 |
-
/* Message container */
|
| 203 |
-
body.light #messages { background: var(--c-bg); }
|
| 204 |
-
|
| 205 |
-
/* Scrollbar in light mode */
|
| 206 |
-
body.light ::-webkit-scrollbar-thumb { background: var(--c-mist); }
|
| 207 |
-
|
| 208 |
-
|
| 209 |
-
|
| 210 |
-
|
| 211 |
</style>
|
| 212 |
</head>
|
| 213 |
-
<body class="h-screen flex overflow-hidden
|
| 214 |
-
|
| 215 |
<!-- Privacy notice -->
|
| 216 |
<div id="privacy-modal" class="fixed inset-0 z-50 flex items-center justify-center bg-black/70 backdrop-blur-sm">
|
| 217 |
<div class="bg-smoke border border-ash rounded-xl p-6 max-w-sm w-full mx-4 shadow-2xl">
|
|
|
|
| 54 |
}
|
| 55 |
}
|
| 56 |
</script>
|
| 57 |
+
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;700&family=Share+Tech+Mono&display=swap" rel="stylesheet">
|
| 58 |
<style>
|
| 59 |
* { box-sizing: border-box; }
|
| 60 |
+
body { font-family: 'JetBrains Mono', monospace; }
|
| 61 |
+
|
| 62 |
body {
|
| 63 |
+
--bg: #020a02;
|
| 64 |
+
--surface: #050f05;
|
| 65 |
+
--border: #0f2a0f;
|
| 66 |
+
--mist: #0a1f0a;
|
| 67 |
+
--fog: #2a5a2a;
|
| 68 |
+
--ghost: #4a8a4a;
|
| 69 |
+
--pearl: #70d870;
|
| 70 |
+
--cream: #a0ffa0;
|
| 71 |
+
--accent: #00ff41;
|
| 72 |
+
--accent2: #00cc33;
|
| 73 |
+
--ink: #020a02;
|
| 74 |
+
--user-bg: #00ff41;
|
| 75 |
+
--user-text: #020a02;
|
| 76 |
+
--danger: #ff4444;
|
| 77 |
+
--safe: #44ff88;
|
| 78 |
+
--prose: #70d870;
|
| 79 |
+
--code-bg: rgba(0,255,65,0.08);
|
| 80 |
+
--code-col: #00ff41;
|
| 81 |
+
--pre-bg: #020702;
|
| 82 |
}
|
| 83 |
body.light {
|
| 84 |
+
--bg: #f0fff0;
|
| 85 |
+
--surface: #e4f5e4;
|
| 86 |
+
--border: #b0d8b0;
|
| 87 |
+
--mist: #c8e8c8;
|
| 88 |
+
--fog: #5a8a5a;
|
| 89 |
+
--ghost: #3a6a3a;
|
| 90 |
+
--pearl: #1a3a1a;
|
| 91 |
+
--cream: #0a1f0a;
|
| 92 |
+
--accent: #1a6a1a;
|
| 93 |
+
--accent2: #0f4f0f;
|
| 94 |
+
--ink: #f0fff0;
|
| 95 |
+
--user-bg: #1a6a1a;
|
| 96 |
+
--user-text: #f0fff0;
|
| 97 |
+
--danger: #cc2222;
|
| 98 |
+
--safe: #227722;
|
| 99 |
+
--prose: #1a3a1a;
|
| 100 |
+
--code-bg: rgba(0,100,0,0.08);
|
| 101 |
+
--code-col: #0f5f0f;
|
| 102 |
+
--pre-bg: #dff0df;
|
| 103 |
}
|
| 104 |
|
| 105 |
+
body { background: var(--bg); color: var(--pearl); }
|
| 106 |
+
#sidebar { background: var(--surface); border-color: var(--border); }
|
| 107 |
+
header { background: var(--surface); border-color: var(--border); }
|
| 108 |
+
.bg-smoke { background: var(--surface) !important; }
|
| 109 |
+
.bg-ash { background: var(--mist) !important; }
|
| 110 |
+
.bg-mist { background: var(--mist) !important; }
|
| 111 |
+
.hover\:bg-ash:hover { background: var(--border) !important; }
|
| 112 |
+
.hover\:bg-mist:hover { background: var(--mist) !important; }
|
| 113 |
+
.border-ash { border-color: var(--border) !important; }
|
| 114 |
+
.border-mist { border-color: var(--mist) !important; }
|
| 115 |
+
.text-fog { color: var(--fog) !important; }
|
| 116 |
+
.text-ghost { color: var(--ghost) !important; }
|
| 117 |
+
.text-pearl { color: var(--pearl) !important; }
|
| 118 |
+
.text-cream { color: var(--cream) !important; }
|
| 119 |
+
.text-amber { color: var(--accent) !important; }
|
| 120 |
+
.text-ink { color: var(--user-text) !important; }
|
| 121 |
+
.text-rose { color: var(--danger) !important; }
|
| 122 |
+
.text-sage { color: var(--safe) !important; }
|
| 123 |
+
.bg-amber { background: var(--user-bg) !important; }
|
| 124 |
+
.hover\:bg-ember:hover { background: var(--accent2) !important; }
|
| 125 |
+
.bg-amber\/10 { background: color-mix(in srgb, var(--accent) 10%, transparent) !important; }
|
| 126 |
+
.bg-amber\/20 { background: color-mix(in srgb, var(--accent) 20%, transparent) !important; }
|
| 127 |
+
.border-amber\/25 { border-color: color-mix(in srgb, var(--accent) 25%, transparent) !important; }
|
| 128 |
+
.from-amber { --tw-gradient-from: var(--accent) !important; }
|
| 129 |
+
.to-ember { --tw-gradient-to: var(--accent2) !important; }
|
| 130 |
+
.bg-rose { background: var(--danger) !important; }
|
| 131 |
+
.hover\:text-rose:hover { color: var(--danger) !important; }
|
| 132 |
+
.hover\:text-sage:hover { color: var(--safe) !important; }
|
| 133 |
+
.hover\:text-pearl:hover { color: var(--pearl) !important; }
|
| 134 |
+
textarea, input, select { background: var(--mist); color: var(--cream); }
|
| 135 |
+
|
| 136 |
+
/* Scanline overlay (dark mode only) */
|
| 137 |
+
body:not(.light)::after {
|
| 138 |
+
content: ''; position: fixed; inset: 0; pointer-events: none; z-index: 9999;
|
| 139 |
+
background: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.04) 2px, rgba(0,0,0,0.04) 4px);
|
| 140 |
}
|
| 141 |
+
|
| 142 |
+
/* Square corners everywhere */
|
| 143 |
+
.rounded-xl,.rounded-lg,.rounded-md,.rounded-2xl,.rounded,.rounded-tr-sm { border-radius: 2px !important; }
|
| 144 |
+
|
| 145 |
+
.prose-msg { line-height: 1.7; color: var(--prose); font-family: 'JetBrains Mono', monospace; }
|
| 146 |
+
.prose-msg p { margin: 0 0 0.6em; } .prose-msg p:last-child { margin-bottom: 0; }
|
| 147 |
+
.prose-msg code { font-family: 'JetBrains Mono', monospace; background: var(--code-bg); padding: 0.1em 0.35em; border-radius: 2px; font-size: 0.875em; color: var(--code-col); border: 1px solid color-mix(in srgb, var(--accent) 20%, transparent); }
|
| 148 |
+
.prose-msg pre { background: var(--pre-bg); border: 1px solid var(--border); border-radius: 2px; padding: 12px 14px; overflow-x: auto; margin: 0.6em 0; }
|
| 149 |
+
.prose-msg pre code { background: transparent; border: none; padding: 0; color: var(--prose); font-size: 0.82em; }
|
| 150 |
+
.prose-msg h1,.prose-msg h2,.prose-msg h3 { font-family: 'Share Tech Mono', monospace; color: var(--accent); margin: 0.8em 0 0.3em; font-weight: 400; text-transform: uppercase; letter-spacing: 0.1em; }
|
| 151 |
+
.prose-msg h1 { font-size: 1.1em; } .prose-msg h2 { font-size: 1em; } .prose-msg h3 { font-size: 0.95em; }
|
| 152 |
.prose-msg ul, .prose-msg ol { padding-left: 1.25em; margin: 0.4em 0 0.6em; }
|
| 153 |
+
.prose-msg li::marker { color: var(--accent); }
|
| 154 |
.prose-msg li { margin: 0.2em 0; }
|
| 155 |
+
.prose-msg blockquote { border-left: 2px solid var(--accent); padding-left: 0.75em; color: var(--ghost); margin: 0.5em 0; }
|
| 156 |
+
.prose-msg a { color: var(--accent); }
|
| 157 |
+
.prose-msg strong { color: var(--cream); }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 158 |
.prose-msg table { border-collapse: collapse; width: 100%; margin: 0.5em 0; font-size: 0.85em; }
|
| 159 |
+
.prose-msg th { background: var(--mist); color: var(--accent); padding: 5px 8px; text-align: left; border: 1px solid var(--border); }
|
| 160 |
+
.prose-msg td { border: 1px solid var(--border); padding: 5px 8px; }
|
| 161 |
+
|
| 162 |
+
.prose-user { line-height: 1.65; color: var(--user-text); }
|
| 163 |
+
.prose-user p { margin: 0 0 0.5em; } .prose-user p:last-child { margin-bottom: 0; }
|
| 164 |
+
.prose-user code { background: rgba(0,0,0,0.15); padding: 0.1em 0.3em; border-radius: 2px; font-size: 0.875em; }
|
| 165 |
+
.prose-user strong { font-weight: 600; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 166 |
|
| 167 |
+
textarea { resize: none; overflow: hidden; }
|
| 168 |
#sidebar { transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1); }
|
| 169 |
#overlay { transition: opacity 0.3s ease; }
|
| 170 |
+
.dot-1 { animation: blink 1.2s 0s infinite; color: var(--accent); }
|
| 171 |
+
.dot-2 { animation: blink 1.2s 0.2s infinite; color: var(--accent); }
|
| 172 |
+
.dot-3 { animation: blink 1.2s 0.4s infinite; color: var(--accent); }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 173 |
select { -webkit-appearance: none; appearance: none; }
|
| 174 |
+
textarea:focus, input:focus, select:focus { outline: none; box-shadow: 0 0 0 1px var(--accent), 0 0 8px color-mix(in srgb, var(--accent) 30%, transparent); }
|
| 175 |
+
#input-footer { padding-bottom: max(12px, env(safe-area-inset-bottom)); }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 176 |
</style>
|
| 177 |
</head>
|
| 178 |
+
<body class="h-screen flex overflow-hidden">
|
|
|
|
| 179 |
<!-- Privacy notice -->
|
| 180 |
<div id="privacy-modal" class="fixed inset-0 z-50 flex items-center justify-center bg-black/70 backdrop-blur-sm">
|
| 181 |
<div class="bg-smoke border border-ash rounded-xl p-6 max-w-sm w-full mx-4 shadow-2xl">
|