Spaces:
Sleeping
Sleeping
Mohammed AL Sarraj commited on
Commit ·
2741f14
1
Parent(s): 30e2e2f
restore light theme tools + light landing pages + height fix
Browse files- app/home/templates/home/index.html +35 -65
- app/templates/base.html +91 -170
app/home/templates/home/index.html
CHANGED
|
@@ -5,48 +5,45 @@
|
|
| 5 |
<link href="https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600&display=swap" rel="stylesheet">
|
| 6 |
<style>
|
| 7 |
*{box-sizing:border-box;margin:0;padding:0}
|
| 8 |
-
.dk{background:#
|
| 9 |
.dk a{color:inherit;text-decoration:none}
|
| 10 |
-
.dk-nav{position:sticky;top:0;z-index:50;height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 2rem;background:rgba(
|
| 11 |
.dk-logo{display:flex;align-items:center;gap:10px}
|
| 12 |
-
.dk-logo-icon{width:26px;height:26px;border-radius:6px;background:#00d97e;display:flex;align-items:center;justify-content:center;font-family:'Space Mono',monospace;font-weight:700;font-size:11px;color:#
|
| 13 |
-
.dk-logo-name{font-family:'Space Mono',monospace;font-weight:700;font-size:14px;letter-spacing:-.02em}
|
| 14 |
-
.dk-badge{font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:3px 10px;border-radius:100px;color:#
|
| 15 |
-
.dk-hero{flex:0 0 auto;padding:
|
| 16 |
-
.dk-eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#
|
| 17 |
-
.dk-eyebrow span{width:28px;height:1px;background:rgba(0,
|
| 18 |
-
.dk-h1{font-family:'Space Mono',monospace;font-size:clamp(
|
| 19 |
-
.dk-h1 em{color:#
|
| 20 |
-
.cursor{display:inline-block;width:3px;height:.85em;background:#
|
| 21 |
@keyframes blink{50%{opacity:0}}
|
| 22 |
-
.dk-sub{font-size:1rem;line-height:1.75;color:#
|
| 23 |
-
.dk-meta{display:flex;align-items:center;justify-content:center;gap:1.5rem;font-family:'Space Mono',monospace;font-size:11px;color:#
|
| 24 |
.dk-meta span{display:flex;align-items:center;gap:6px}
|
| 25 |
-
.dk-meta span::before{content:'';width:4px;height:4px;border-radius:50%;background:#
|
| 26 |
-
.dk-section{flex:1;background:#
|
| 27 |
-
.dk-section-label{text-align:center;font-family:'Space Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#
|
| 28 |
-
.dk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1px;max-width:1060px;margin:0 auto;background:rgba(
|
| 29 |
-
.dk-card{background:#
|
| 30 |
-
.dk-card:hover{background:
|
| 31 |
-
.dk-card:hover .dk-arr{color:#
|
| 32 |
.dk-card-top{display:flex;align-items:flex-start;justify-content:space-between}
|
| 33 |
-
.dk-icon{width:34px;height:34px;border-radius:7px;background:rgba(0,217,126,.1);border:1px solid rgba(0,217,126,.
|
| 34 |
-
.dk-arr{color:#
|
| 35 |
-
.dk-card-name{font-size:.9rem;font-weight:600;color:#
|
| 36 |
-
.dk-card-desc{font-size:.8rem;line-height:1.65;color:#
|
| 37 |
-
.dk-footer{border-top:1px solid rgba(
|
| 38 |
-
.dk-status{display:flex;align-items:center;gap:8px;font-family:'Space Mono',monospace;font-size:11px;color:#
|
| 39 |
-
.dot{width:6px;height:6px;border-radius:50%;background:#
|
| 40 |
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
|
| 41 |
.dk-hero>*{animation:fadeUp .45s ease both}
|
| 42 |
.dk-eyebrow{animation-delay:.04s}.dk-h1{animation-delay:.1s}.dk-sub{animation-delay:.18s}.dk-meta{animation-delay:.26s}
|
| 43 |
</style>
|
| 44 |
<div class="dk">
|
| 45 |
<nav class="dk-nav">
|
| 46 |
-
<div class="dk-logo">
|
| 47 |
-
<div class="dk-logo-icon">>_</div>
|
| 48 |
-
<span class="dk-logo-name">DevKit</span>
|
| 49 |
-
</div>
|
| 50 |
<span class="dk-badge">6 tools</span>
|
| 51 |
</nav>
|
| 52 |
<div class="dk-hero">
|
|
@@ -58,41 +55,14 @@
|
|
| 58 |
<div class="dk-section">
|
| 59 |
<div class="dk-section-label">// pick a tool</div>
|
| 60 |
<div class="dk-grid">
|
| 61 |
-
<a class="dk-card" href="/schema-detective/">
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
</a>
|
| 66 |
-
<a class="dk-card" href="/
|
| 67 |
-
<div class="dk-card-top"><div class="dk-icon"><span class="material-symbols-outlined" style="font-size:16px;font-variation-settings:'FILL' 1">science</span></div><span class="dk-arr material-symbols-outlined">arrow_outward</span></div>
|
| 68 |
-
<div class="dk-card-name">Test Forge</div>
|
| 69 |
-
<div class="dk-card-desc">Generate complete, runnable test suites across 8 frameworks from any source code.</div>
|
| 70 |
-
</a>
|
| 71 |
-
<a class="dk-card" href="/sql-whisperer/">
|
| 72 |
-
<div class="dk-card-top"><div class="dk-icon"><span class="material-symbols-outlined" style="font-size:16px;font-variation-settings:'FILL' 1">data_object</span></div><span class="dk-arr material-symbols-outlined">arrow_outward</span></div>
|
| 73 |
-
<div class="dk-card-name">SQL Whisperer</div>
|
| 74 |
-
<div class="dk-card-desc">Convert plain-English questions to SQL for PostgreSQL, MySQL, SQLite, and more.</div>
|
| 75 |
-
</a>
|
| 76 |
-
<a class="dk-card" href="/doc-forge/">
|
| 77 |
-
<div class="dk-card-top"><div class="dk-icon"><span class="material-symbols-outlined" style="font-size:16px;font-variation-settings:'FILL' 1">article</span></div><span class="dk-arr material-symbols-outlined">arrow_outward</span></div>
|
| 78 |
-
<div class="dk-card-name">Doc Forge</div>
|
| 79 |
-
<div class="dk-card-desc">Generate README, architecture overviews, and API docs from any GitHub repo.</div>
|
| 80 |
-
</a>
|
| 81 |
-
<a class="dk-card" href="/changelog-ai/">
|
| 82 |
-
<div class="dk-card-top"><div class="dk-icon"><span class="material-symbols-outlined" style="font-size:16px;font-variation-settings:'FILL' 1">update</span></div><span class="dk-arr material-symbols-outlined">arrow_outward</span></div>
|
| 83 |
-
<div class="dk-card-name">Changelog AI</div>
|
| 84 |
-
<div class="dk-card-desc">Turn commit history into changelogs for developers, users, or executives.</div>
|
| 85 |
-
</a>
|
| 86 |
-
<a class="dk-card" href="/git-narrator/">
|
| 87 |
-
<div class="dk-card-top"><div class="dk-icon"><span class="material-symbols-outlined" style="font-size:16px;font-variation-settings:'FILL' 1">history</span></div><span class="dk-arr material-symbols-outlined">arrow_outward</span></div>
|
| 88 |
-
<div class="dk-card-name">Git Narrator</div>
|
| 89 |
-
<div class="dk-card-desc">Transform raw git logs into readable project narratives and milestone timelines.</div>
|
| 90 |
-
</a>
|
| 91 |
</div>
|
| 92 |
</div>
|
| 93 |
-
<footer class="dk-footer">
|
| 94 |
-
<div class="dk-status"><div class="dot"></div>All systems operational</div>
|
| 95 |
-
<span style="font-family:'Space Mono',monospace;font-size:11px;color:#374151">Free · No login</span>
|
| 96 |
-
</footer>
|
| 97 |
</div>
|
| 98 |
{% endblock %}
|
|
|
|
| 5 |
<link href="https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600&display=swap" rel="stylesheet">
|
| 6 |
<style>
|
| 7 |
*{box-sizing:border-box;margin:0;padding:0}
|
| 8 |
+
.dk{background:#f5f5f7;color:#1d1d1f;min-height:100vh;font-family:'DM Sans',sans-serif;display:flex;flex-direction:column}
|
| 9 |
.dk a{color:inherit;text-decoration:none}
|
| 10 |
+
.dk-nav{position:sticky;top:0;z-index:50;height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 2rem;background:rgba(245,245,247,.88);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid rgba(0,0,0,.08)}
|
| 11 |
.dk-logo{display:flex;align-items:center;gap:10px}
|
| 12 |
+
.dk-logo-icon{width:26px;height:26px;border-radius:6px;background:#00d97e;display:flex;align-items:center;justify-content:center;font-family:'Space Mono',monospace;font-weight:700;font-size:11px;color:#001a0d}
|
| 13 |
+
.dk-logo-name{font-family:'Space Mono',monospace;font-weight:700;font-size:14px;letter-spacing:-.02em;color:#1d1d1f}
|
| 14 |
+
.dk-badge{font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:3px 10px;border-radius:100px;color:#00a85e;border:1px solid rgba(0,168,94,.3);background:rgba(0,217,126,.07)}
|
| 15 |
+
.dk-hero{flex:0 0 auto;padding:5.5rem 2rem 4.5rem;max-width:860px;margin:0 auto;width:100%;text-align:center}
|
| 16 |
+
.dk-eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#00a85e;margin-bottom:1.5rem}
|
| 17 |
+
.dk-eyebrow span{width:28px;height:1px;background:rgba(0,168,94,.4)}
|
| 18 |
+
.dk-h1{font-family:'Space Mono',monospace;font-size:clamp(2rem,5vw,3.5rem);font-weight:700;line-height:1.1;letter-spacing:-.04em;color:#1d1d1f;margin-bottom:1.1rem}
|
| 19 |
+
.dk-h1 em{color:#00a85e;font-style:normal}
|
| 20 |
+
.cursor{display:inline-block;width:3px;height:.85em;background:#00a85e;vertical-align:middle;margin-left:2px;animation:blink 1s step-end infinite}
|
| 21 |
@keyframes blink{50%{opacity:0}}
|
| 22 |
+
.dk-sub{font-size:1rem;line-height:1.75;color:#6e6e73;max-width:480px;margin:0 auto 2.25rem}
|
| 23 |
+
.dk-meta{display:flex;align-items:center;justify-content:center;gap:1.5rem;font-family:'Space Mono',monospace;font-size:11px;color:#86868b}
|
| 24 |
.dk-meta span{display:flex;align-items:center;gap:6px}
|
| 25 |
+
.dk-meta span::before{content:'';width:4px;height:4px;border-radius:50%;background:#00a85e}
|
| 26 |
+
.dk-section{flex:1;background:#fff;border-top:1px solid rgba(0,0,0,.07);padding:3.5rem 2rem 5rem}
|
| 27 |
+
.dk-section-label{text-align:center;font-family:'Space Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#86868b;margin-bottom:2rem}
|
| 28 |
+
.dk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1px;max-width:1060px;margin:0 auto;background:rgba(0,0,0,.06);border:1px solid rgba(0,0,0,.06);border-radius:14px;overflow:hidden}
|
| 29 |
+
.dk-card{background:#fff;padding:1.6rem;display:flex;flex-direction:column;gap:14px;transition:background .12s}
|
| 30 |
+
.dk-card:hover{background:#f0fdf8}
|
| 31 |
+
.dk-card:hover .dk-arr{color:#00a85e;transform:translate(2px,-2px)}
|
| 32 |
.dk-card-top{display:flex;align-items:flex-start;justify-content:space-between}
|
| 33 |
+
.dk-icon{width:34px;height:34px;border-radius:7px;background:rgba(0,217,126,.1);border:1px solid rgba(0,217,126,.2);display:flex;align-items:center;justify-content:center;color:#00a85e}
|
| 34 |
+
.dk-arr{color:#c7c7cc;font-size:18px;transition:all .12s}
|
| 35 |
+
.dk-card-name{font-size:.9rem;font-weight:600;color:#1d1d1f;letter-spacing:-.01em}
|
| 36 |
+
.dk-card-desc{font-size:.8rem;line-height:1.65;color:#6e6e73}
|
| 37 |
+
.dk-footer{border-top:1px solid rgba(0,0,0,.07);padding:1rem 2rem;display:flex;align-items:center;justify-content:space-between;background:#f5f5f7;flex-shrink:0}
|
| 38 |
+
.dk-status{display:flex;align-items:center;gap:8px;font-family:'Space Mono',monospace;font-size:11px;color:#86868b}
|
| 39 |
+
.dot{width:6px;height:6px;border-radius:50%;background:#00a85e}
|
| 40 |
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
|
| 41 |
.dk-hero>*{animation:fadeUp .45s ease both}
|
| 42 |
.dk-eyebrow{animation-delay:.04s}.dk-h1{animation-delay:.1s}.dk-sub{animation-delay:.18s}.dk-meta{animation-delay:.26s}
|
| 43 |
</style>
|
| 44 |
<div class="dk">
|
| 45 |
<nav class="dk-nav">
|
| 46 |
+
<div class="dk-logo"><div class="dk-logo-icon">>_</div><span class="dk-logo-name">DevKit</span></div>
|
|
|
|
|
|
|
|
|
|
| 47 |
<span class="dk-badge">6 tools</span>
|
| 48 |
</nav>
|
| 49 |
<div class="dk-hero">
|
|
|
|
| 55 |
<div class="dk-section">
|
| 56 |
<div class="dk-section-label">// pick a tool</div>
|
| 57 |
<div class="dk-grid">
|
| 58 |
+
<a class="dk-card" href="/schema-detective/"><div class="dk-card-top"><div class="dk-icon"><span class="material-symbols-outlined" style="font-size:16px;font-variation-settings:'FILL' 1">table_view</span></div><span class="dk-arr material-symbols-outlined">arrow_outward</span></div><div class="dk-card-name">Schema Detective</div><div class="dk-card-desc">Audit database schemas for vulnerabilities, missing indexes, and design flaws.</div></a>
|
| 59 |
+
<a class="dk-card" href="/test-forge/"><div class="dk-card-top"><div class="dk-icon"><span class="material-symbols-outlined" style="font-size:16px;font-variation-settings:'FILL' 1">science</span></div><span class="dk-arr material-symbols-outlined">arrow_outward</span></div><div class="dk-card-name">Test Forge</div><div class="dk-card-desc">Generate complete, runnable test suites across 8 frameworks from any source code.</div></a>
|
| 60 |
+
<a class="dk-card" href="/sql-whisperer/"><div class="dk-card-top"><div class="dk-icon"><span class="material-symbols-outlined" style="font-size:16px;font-variation-settings:'FILL' 1">data_object</span></div><span class="dk-arr material-symbols-outlined">arrow_outward</span></div><div class="dk-card-name">SQL Whisperer</div><div class="dk-card-desc">Convert plain-English questions to SQL for PostgreSQL, MySQL, SQLite, and more.</div></a>
|
| 61 |
+
<a class="dk-card" href="/doc-forge/"><div class="dk-card-top"><div class="dk-icon"><span class="material-symbols-outlined" style="font-size:16px;font-variation-settings:'FILL' 1">article</span></div><span class="dk-arr material-symbols-outlined">arrow_outward</span></div><div class="dk-card-name">Doc Forge</div><div class="dk-card-desc">Generate README, architecture overviews, and API docs from any GitHub repo.</div></a>
|
| 62 |
+
<a class="dk-card" href="/changelog-ai/"><div class="dk-card-top"><div class="dk-icon"><span class="material-symbols-outlined" style="font-size:16px;font-variation-settings:'FILL' 1">update</span></div><span class="dk-arr material-symbols-outlined">arrow_outward</span></div><div class="dk-card-name">Changelog AI</div><div class="dk-card-desc">Turn commit history into changelogs for developers, users, or executives.</div></a>
|
| 63 |
+
<a class="dk-card" href="/git-narrator/"><div class="dk-card-top"><div class="dk-icon"><span class="material-symbols-outlined" style="font-size:16px;font-variation-settings:'FILL' 1">history</span></div><span class="dk-arr material-symbols-outlined">arrow_outward</span></div><div class="dk-card-name">Git Narrator</div><div class="dk-card-desc">Transform raw git logs into readable project narratives and milestone timelines.</div></a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 64 |
</div>
|
| 65 |
</div>
|
| 66 |
+
<footer class="dk-footer"><div class="dk-status"><div class="dot"></div>All systems operational</div><span style="font-family:'Space Mono',monospace;font-size:11px;color:#86868b">Free · No login</span></footer>
|
|
|
|
|
|
|
|
|
|
| 67 |
</div>
|
| 68 |
{% endblock %}
|
app/templates/base.html
CHANGED
|
@@ -13,211 +13,132 @@ tailwind.config = {
|
|
| 13 |
theme: {
|
| 14 |
extend: {
|
| 15 |
colors: {
|
| 16 |
-
"
|
| 17 |
-
"
|
| 18 |
-
"
|
| 19 |
-
"surface-
|
| 20 |
-
"surface
|
| 21 |
-
"surface-
|
| 22 |
-
"
|
| 23 |
-
"surface-
|
| 24 |
-
"
|
| 25 |
-
"
|
| 26 |
-
"on-
|
| 27 |
-
"
|
| 28 |
-
"
|
| 29 |
-
"on-
|
| 30 |
-
"
|
| 31 |
-
"
|
| 32 |
-
"
|
| 33 |
-
"on-
|
| 34 |
-
"secondary-container":
|
| 35 |
-
"
|
| 36 |
-
"
|
| 37 |
-
"
|
| 38 |
-
"surface-
|
| 39 |
-
"
|
| 40 |
-
"
|
| 41 |
-
"inverse-primary":
|
| 42 |
-
"
|
| 43 |
-
"
|
| 44 |
-
"
|
| 45 |
-
"
|
| 46 |
-
"
|
| 47 |
-
"
|
| 48 |
-
"
|
| 49 |
-
"
|
| 50 |
-
"
|
| 51 |
-
"
|
| 52 |
-
"
|
| 53 |
-
"on-
|
| 54 |
-
"on-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 55 |
},
|
| 56 |
borderRadius: {"DEFAULT":"0.25rem","lg":"0.5rem","xl":"0.75rem","full":"9999px"},
|
| 57 |
fontFamily: {
|
| 58 |
-
"headline": ["DM Sans",
|
| 59 |
-
"body": ["DM Sans",
|
| 60 |
-
"label": ["DM Sans",
|
| 61 |
}
|
| 62 |
}
|
| 63 |
}
|
| 64 |
}
|
| 65 |
</script>
|
| 66 |
<style>
|
| 67 |
-
:root {
|
| 68 |
-
--accent: #00d97e;
|
| 69 |
-
--accent-rgb: 0,217,126;
|
| 70 |
-
--on-primary: #001a0d;
|
| 71 |
-
--surface: #0e0e10;
|
| 72 |
-
--text: #e8e8ea;
|
| 73 |
-
--text-dim: #8b9198;
|
| 74 |
-
--border: #2a2e30;
|
| 75 |
-
}
|
| 76 |
*, *::before, *::after { box-sizing: border-box; }
|
| 77 |
-
html, body { height: 100%;
|
| 78 |
-
|
| 79 |
-
color: #e8e8ea;
|
| 80 |
-
font-family: DM Sans, sans-serif;
|
| 81 |
-
}
|
| 82 |
.material-symbols-outlined {
|
| 83 |
font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
|
| 84 |
vertical-align: middle;
|
| 85 |
}
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
.bg-white { background: #131315 !important; }
|
| 89 |
-
.bg-slate-50 { background: #18181a !important; }
|
| 90 |
-
.bg-slate-100 { background: #1e1e20 !important; }
|
| 91 |
-
.bg-slate-200 { background: #252527 !important; }
|
| 92 |
-
.border-slate-200,
|
| 93 |
-
.border-slate-300 { border-color: #2a2e30 !important; }
|
| 94 |
-
.divide-slate-200 > * + * { border-color: #2a2e30 !important; }
|
| 95 |
-
.text-slate-400, .text-slate-500 { color: #8b9198 !important; }
|
| 96 |
-
.text-slate-600, .text-slate-700,
|
| 97 |
-
.text-slate-800, .text-slate-900 { color: #e8e8ea !important; }
|
| 98 |
-
.text-gray-400, .text-gray-500 { color: #8b9198 !important; }
|
| 99 |
-
.text-gray-600, .text-gray-700 { color: #e8e8ea !important; }
|
| 100 |
-
.hover\:bg-slate-200\/60:hover { background: rgba(255,255,255,.06) !important; }
|
| 101 |
-
.shadow-sm { box-shadow: 0 1px 3px rgba(0,0,0,.5) !important; }
|
| 102 |
-
.shadow-md { box-shadow: 0 4px 12px rgba(0,0,0,.6) !important; }
|
| 103 |
-
.glass-effect { background: rgba(0,0,0,.5) !important; backdrop-filter: blur(12px); }
|
| 104 |
-
|
| 105 |
-
/* Forms dark */
|
| 106 |
-
input:not([type=checkbox]):not([type=radio]):not([type=range]),
|
| 107 |
-
textarea, select {
|
| 108 |
-
background: #18181a !important;
|
| 109 |
-
color: #e8e8ea !important;
|
| 110 |
-
border-color: #2a2e30 !important;
|
| 111 |
-
}
|
| 112 |
-
input::placeholder, textarea::placeholder { color: #8b9198 !important; opacity: 1; }
|
| 113 |
-
input:focus, textarea:focus, select:focus {
|
| 114 |
-
border-color: #00d97e !important;
|
| 115 |
-
box-shadow: 0 0 0 2px rgba(0,217,126,.2) !important;
|
| 116 |
-
}
|
| 117 |
-
label { color: #8b9198; }
|
| 118 |
-
|
| 119 |
-
/* Scrollbar */
|
| 120 |
::-webkit-scrollbar { width: 6px; }
|
| 121 |
::-webkit-scrollbar-track { background: transparent; }
|
| 122 |
-
::-webkit-scrollbar-thumb { background: #
|
| 123 |
.no-scrollbar::-webkit-scrollbar { display: none; }
|
| 124 |
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
|
| 125 |
.custom-scrollbar::-webkit-scrollbar { width: 6px; }
|
| 126 |
-
.custom-scrollbar::-webkit-scrollbar-thumb { background: #
|
| 127 |
-
|
| 128 |
-
|
| 129 |
-
.
|
| 130 |
-
.
|
| 131 |
-
.arabic-text { font-family: 'Segoe UI', Tahoma, Arial, sans-serif; }
|
| 132 |
-
|
| 133 |
-
/* Prompt-bench scoped overrides */
|
| 134 |
-
.toolbar-blur { background: rgba(20,20,28,.88); backdrop-filter: blur(20px); }
|
| 135 |
.btn-primary { display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:#00d97e;color:#001a0d;border-radius:8px;font-size:13px;font-weight:600;border:none;cursor:pointer; }
|
| 136 |
-
.btn-secondary { display:inline-flex;align-items:center;gap:4px;padding:5px 10px;background:rgba(
|
| 137 |
-
.section-label { font-size:11px;font-weight:600;color:#
|
| 138 |
-
.sys-label, .text-sys-label { color: #
|
| 139 |
-
|
| 140 |
-
/* Mobile: collapse fixed sidebars on small screens */
|
| 141 |
@media (max-width: 768px) {
|
| 142 |
-
.shrink-0.w-64, aside.w-64 {
|
| 143 |
-
|
| 144 |
-
}
|
| 145 |
-
.flex-1.overflow-hidden {
|
| 146 |
-
flex: 1 1 auto;
|
| 147 |
-
min-width: 0;
|
| 148 |
-
}
|
| 149 |
}
|
| 150 |
-
|
| 151 |
-
/* Back-to-hub button */
|
| 152 |
.hub-back-btn {
|
| 153 |
-
position: fixed;
|
| 154 |
-
|
| 155 |
-
|
| 156 |
-
|
| 157 |
-
display: flex;
|
| 158 |
-
align-items: center;
|
| 159 |
-
gap: 5px;
|
| 160 |
-
padding: 4px 10px 4px 7px;
|
| 161 |
-
border-radius: 100px;
|
| 162 |
-
background: rgba(0,217,126, .12);
|
| 163 |
border: 1px solid rgba(0,217,126, .28);
|
| 164 |
-
color: #00d97e;
|
| 165 |
-
|
| 166 |
-
font-weight: 500;
|
| 167 |
-
text-decoration: none;
|
| 168 |
-
backdrop-filter: blur(10px);
|
| 169 |
-
-webkit-backdrop-filter: blur(10px);
|
| 170 |
transition: background .15s, transform .12s;
|
| 171 |
-
font-family: DM Sans, sans-serif;
|
| 172 |
-
white-space: nowrap;
|
| 173 |
-
}
|
| 174 |
-
.hub-back-btn:hover {
|
| 175 |
-
background: rgba(0,217,126, .22);
|
| 176 |
-
transform: translateY(-1px);
|
| 177 |
-
}
|
| 178 |
-
.hub-back-btn-icon {
|
| 179 |
-
font-size: 15px !important;
|
| 180 |
-
color: #00d97e;
|
| 181 |
-
line-height: 1;
|
| 182 |
-
vertical-align: middle;
|
| 183 |
}
|
|
|
|
|
|
|
| 184 |
</style>
|
| 185 |
{% block extra_head %}{% endblock %}
|
| 186 |
<meta name="csrf-token" content="{{ csrf_token() }}"/>
|
| 187 |
</head>
|
| 188 |
-
<body class="bg-surface text-on-surface">
|
| 189 |
{% block content %}{% endblock %}
|
| 190 |
{% block extra_scripts %}{% endblock %}
|
| 191 |
<script>
|
| 192 |
(function() {
|
| 193 |
-
var toolAlphas = {"schema-detective":
|
| 194 |
-
var path = window.location.pathname.replace(/\/+$/,
|
| 195 |
-
|
| 196 |
-
|
| 197 |
-
|
| 198 |
-
|
| 199 |
-
var
|
| 200 |
-
|
| 201 |
-
|
| 202 |
-
|
| 203 |
-
|
| 204 |
-
}
|
| 205 |
-
|
| 206 |
-
// Back-to-hub button on all tool pages (not home)
|
| 207 |
-
if (path !== '') {
|
| 208 |
-
var btn = document.createElement('a');
|
| 209 |
-
btn.href = '/';
|
| 210 |
-
btn.className = 'hub-back-btn';
|
| 211 |
-
|
| 212 |
-
var icon = document.createElement('span');
|
| 213 |
-
icon.className = 'material-symbols-outlined hub-back-btn-icon';
|
| 214 |
-
icon.textContent = 'arrow_back_ios_new';
|
| 215 |
-
|
| 216 |
-
var label = document.createElement('span');
|
| 217 |
-
label.textContent = 'DevKit';
|
| 218 |
-
|
| 219 |
btn.appendChild(icon);
|
| 220 |
-
btn.appendChild(
|
| 221 |
document.body.appendChild(btn);
|
| 222 |
}
|
| 223 |
})();
|
|
|
|
| 13 |
theme: {
|
| 14 |
extend: {
|
| 15 |
colors: {
|
| 16 |
+
"error-container": "#fe8983",
|
| 17 |
+
"on-primary-fixed-variant": "#005bb0",
|
| 18 |
+
"on-secondary-fixed-variant": "#505d68",
|
| 19 |
+
"surface-bright": "#f8f9fa",
|
| 20 |
+
"surface": "#f8f9fa",
|
| 21 |
+
"surface-tint": "#00d97e",
|
| 22 |
+
"primary": "#00d97e",
|
| 23 |
+
"on-surface-variant": "#586064",
|
| 24 |
+
"primary-fixed-dim": "#bfd5ff",
|
| 25 |
+
"inverse-surface": "#0c0f10",
|
| 26 |
+
"on-tertiary": "#fbf7ff",
|
| 27 |
+
"background": "#f8f9fa",
|
| 28 |
+
"secondary": "#54616b",
|
| 29 |
+
"on-secondary-fixed": "#34414b",
|
| 30 |
+
"on-background": "#2b3437",
|
| 31 |
+
"surface-container": "#eaeff1",
|
| 32 |
+
"tertiary-dim": "#51516c",
|
| 33 |
+
"on-primary": "#001a0d",
|
| 34 |
+
"secondary-container": "#d7e4f1",
|
| 35 |
+
"tertiary": "#5d5c78",
|
| 36 |
+
"primary-dim": "#0052a0",
|
| 37 |
+
"on-error": "#fff7f6",
|
| 38 |
+
"surface-container-lowest": "#ffffff",
|
| 39 |
+
"outline-variant": "#abb3b7",
|
| 40 |
+
"on-secondary": "#f5f9ff",
|
| 41 |
+
"inverse-primary": "#5f9efb",
|
| 42 |
+
"tertiary-fixed-dim": "#cbc9e9",
|
| 43 |
+
"outline": "#737c7f",
|
| 44 |
+
"on-secondary-container": "#46535e",
|
| 45 |
+
"primary-container": "#d6e3ff",
|
| 46 |
+
"error-dim": "#4e0309",
|
| 47 |
+
"error": "#9f403d",
|
| 48 |
+
"secondary-fixed": "#d7e4f1",
|
| 49 |
+
"primary-fixed": "#d6e3ff",
|
| 50 |
+
"inverse-on-surface": "#9b9d9e",
|
| 51 |
+
"on-tertiary-container": "#4a4a65",
|
| 52 |
+
"tertiary-fixed": "#d9d7f8",
|
| 53 |
+
"on-tertiary-fixed-variant": "#54546f",
|
| 54 |
+
"on-surface": "#2b3437",
|
| 55 |
+
"on-primary-fixed": "#003f7d",
|
| 56 |
+
"on-primary-container": "#00519e",
|
| 57 |
+
"on-tertiary-fixed": "#383751",
|
| 58 |
+
"surface-container-low": "#f1f4f6",
|
| 59 |
+
"surface-dim": "#d1dce0",
|
| 60 |
+
"secondary-fixed-dim": "#c9d6e3",
|
| 61 |
+
"on-error-container": "#752121",
|
| 62 |
+
"surface-container-high": "#e3e9ec",
|
| 63 |
+
"surface-variant": "#dbe4e7",
|
| 64 |
+
"tertiary-container": "#d9d7f8",
|
| 65 |
+
"surface-container-highest": "#dbe4e7",
|
| 66 |
+
"secondary-dim": "#48555f"
|
| 67 |
},
|
| 68 |
borderRadius: {"DEFAULT":"0.25rem","lg":"0.5rem","xl":"0.75rem","full":"9999px"},
|
| 69 |
fontFamily: {
|
| 70 |
+
"headline": ["DM Sans","sans-serif"],
|
| 71 |
+
"body": ["DM Sans","sans-serif"],
|
| 72 |
+
"label": ["DM Sans","sans-serif"]
|
| 73 |
}
|
| 74 |
}
|
| 75 |
}
|
| 76 |
}
|
| 77 |
</script>
|
| 78 |
<style>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 79 |
*, *::before, *::after { box-sizing: border-box; }
|
| 80 |
+
html, body { height: 100%; }
|
| 81 |
+
body { font-family: DM Sans, sans-serif; }
|
|
|
|
|
|
|
|
|
|
| 82 |
.material-symbols-outlined {
|
| 83 |
font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
|
| 84 |
vertical-align: middle;
|
| 85 |
}
|
| 86 |
+
.glass-effect { background: rgba(248,249,250,0.8); backdrop-filter: blur(12px); }
|
| 87 |
+
.ghost-border { outline: 1px solid rgba(171,179,183,0.15); }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 88 |
::-webkit-scrollbar { width: 6px; }
|
| 89 |
::-webkit-scrollbar-track { background: transparent; }
|
| 90 |
+
::-webkit-scrollbar-thumb { background: #abb3b7; border-radius: 10px; }
|
| 91 |
.no-scrollbar::-webkit-scrollbar { display: none; }
|
| 92 |
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
|
| 93 |
.custom-scrollbar::-webkit-scrollbar { width: 6px; }
|
| 94 |
+
.custom-scrollbar::-webkit-scrollbar-thumb { background: #abb3b7; border-radius: 10px; }
|
| 95 |
+
.code-editor { font-family: 'JetBrains Mono','Fira Code','Cascadia Code','Consolas',monospace; }
|
| 96 |
+
.editor-bg { background: #1e1e2e; color: #cdd6f4; }
|
| 97 |
+
.arabic-text { font-family: 'Segoe UI',Tahoma,Arial,sans-serif; }
|
| 98 |
+
.toolbar-blur { background: rgba(242,242,247,0.85); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); }
|
|
|
|
|
|
|
|
|
|
|
|
|
| 99 |
.btn-primary { display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:#00d97e;color:#001a0d;border-radius:8px;font-size:13px;font-weight:600;border:none;cursor:pointer; }
|
| 100 |
+
.btn-secondary { display:inline-flex;align-items:center;gap:4px;padding:5px 10px;background:rgba(0,0,0,0.06);color:#3C3C43;border-radius:7px;font-size:12px;font-weight:500;border:none;cursor:pointer; }
|
| 101 |
+
.section-label { font-size:11px;font-weight:600;color:#636366;text-transform:uppercase;letter-spacing:.06em; }
|
| 102 |
+
.sys-label, .text-sys-label { color: #1C1C1E; }
|
|
|
|
|
|
|
| 103 |
@media (max-width: 768px) {
|
| 104 |
+
.shrink-0.w-64, aside.w-64 { display: none !important; }
|
| 105 |
+
.flex-1.overflow-hidden { flex: 1 1 auto; min-width: 0; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 106 |
}
|
|
|
|
|
|
|
| 107 |
.hub-back-btn {
|
| 108 |
+
position: fixed; top: 0.9rem; left: 1rem; z-index: 9999;
|
| 109 |
+
display: flex; align-items: center; gap: 5px;
|
| 110 |
+
padding: 4px 10px 4px 7px; border-radius: 100px;
|
| 111 |
+
background: rgba(0,217,126, .1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 112 |
border: 1px solid rgba(0,217,126, .28);
|
| 113 |
+
color: #00d97e; font-size: 11px; font-weight: 600;
|
| 114 |
+
text-decoration: none; backdrop-filter: blur(8px);
|
|
|
|
|
|
|
|
|
|
|
|
|
| 115 |
transition: background .15s, transform .12s;
|
| 116 |
+
font-family: DM Sans, sans-serif; white-space: nowrap;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 117 |
}
|
| 118 |
+
.hub-back-btn:hover { background: rgba(0,217,126, .18); transform: translateY(-1px); }
|
| 119 |
+
.hub-back-btn-icon { font-size: 14px !important; color: #00d97e; line-height: 1; vertical-align: middle; }
|
| 120 |
</style>
|
| 121 |
{% block extra_head %}{% endblock %}
|
| 122 |
<meta name="csrf-token" content="{{ csrf_token() }}"/>
|
| 123 |
</head>
|
| 124 |
+
<body class="bg-surface text-on-surface selection:bg-primary-container selection:text-on-primary-container">
|
| 125 |
{% block content %}{% endblock %}
|
| 126 |
{% block extra_scripts %}{% endblock %}
|
| 127 |
<script>
|
| 128 |
(function() {
|
| 129 |
+
var toolAlphas = {"schema-detective":"0.10","test-forge":"0.13","sql-whisperer":"0.08","doc-forge":"0.11","changelog-ai":"0.09","git-narrator":"0.12"};
|
| 130 |
+
var path = window.location.pathname.replace(/\/+$/, "").split("/").filter(Boolean)[0] || "";
|
| 131 |
+
if (path !== "") {
|
| 132 |
+
var btn = document.createElement("a");
|
| 133 |
+
btn.href = "/";
|
| 134 |
+
btn.className = "hub-back-btn";
|
| 135 |
+
var icon = document.createElement("span");
|
| 136 |
+
icon.className = "material-symbols-outlined hub-back-btn-icon";
|
| 137 |
+
icon.textContent = "arrow_back_ios_new";
|
| 138 |
+
var lbl = document.createElement("span");
|
| 139 |
+
lbl.textContent = "DevKit";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 140 |
btn.appendChild(icon);
|
| 141 |
+
btn.appendChild(lbl);
|
| 142 |
document.body.appendChild(btn);
|
| 143 |
}
|
| 144 |
})();
|