Conversation
Co-authored-by: shiks2 <115677500+shiks2@users.noreply.github.com>
index.html into a dark-first single-file ShellScope landing page
There was a problem hiding this comment.
Pull request overview
This PR redesigns the repository’s root index.html into a single-file Tailwind (CDN) landing page for ShellScope, presenting the tool’s narrative, features, stack, setup, and roadmap in a dark-first layout.
Changes:
- Replaces the existing landing page markup with a new dark-first, sectioned Tailwind layout (hero, about, features, tech stack, installation/usage, roadmap, footer).
- Introduces a fixed “glass” navbar and a consistent section rhythm with reusable card styling.
- Adds a small Tailwind theme extension (custom
shadow-glow) used across the page.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| <meta | ||
| name="description" | ||
| content="ShellScope captures transient Windows processes and terminal activity under 100ms with WMI and local SQLite logging." | ||
| /> |
There was a problem hiding this comment.
The PR description says the page preserves the exact product messaging including “zero cloud dependency”, but the updated meta description no longer mentions that. Consider updating the meta description to include the same key claims (WMI-based <100ms capture, local SQLite logging, and zero cloud/no uploads) so the page metadata matches the required messaging.
| <script> | ||
| tailwind = { | ||
| config: { | ||
| darkMode: "class", | ||
| theme: { | ||
| extend: { | ||
| boxShadow: { | ||
| glow: "0 0 0 1px rgba(148,163,184,0.15), 0 10px 30px rgba(2,6,23,0.45)", | ||
| }, | ||
| }, | ||
| }, | ||
| }, | ||
| }; |
There was a problem hiding this comment.
The Tailwind configuration script assigns to tailwind without declaring it, creating an implicit global. To avoid accidental global leakage/collisions, assign via window.tailwind = { config: ... } (if configuring before loading the CDN script) or use tailwind.config = ... after the CDN script has loaded.
| <section id="about" class="px-6 py-20"> | ||
| <div class="mx-auto grid w-full max-w-7xl gap-6 md:grid-cols-2"> | ||
| <article class="cursor-pointer rounded-2xl border border-gray-200 bg-white/80 p-6 backdrop-blur-sm transition-colors duration-200 hover:border-indigo-400 dark:border-slate-700 dark:bg-slate-800/80"> | ||
| <h2 class="text-2xl font-semibold text-slate-900 dark:text-slate-100">About ShellScope</h2> | ||
| <p class="mt-4 leading-relaxed text-slate-700 dark:text-slate-300"> | ||
| ShellScope uses Windows Management Instrumentation (WMI) to capture process creation events, including short-lived "flash" processes (<100ms). Provides audit trail without external dependencies. | ||
| </p> | ||
| </article> | ||
| <article class="cursor-pointer rounded-2xl border border-gray-200/60 bg-white/80 p-6 backdrop-blur-sm transition-colors duration-200 hover:border-slate-400 dark:border-slate-700 dark:bg-slate-800/80 dark:hover:border-slate-500"> | ||
| <svg class="h-6 w-6 text-slate-700 dark:text-slate-300" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><ellipse cx="12" cy="5" rx="9" ry="3"/><path d="M3 5v14c0 1.7 4 3 9 3s9-1.3 9-3V5"/><path d="M3 12c0 1.7 4 3 9 3s9-1.3 9-3"/></svg> | ||
| <h3 class="mt-4 text-lg font-semibold text-slate-900 dark:text-slate-100">Local-First Architecture</h3> | ||
| <p class="mt-2 text-sm text-slate-700 dark:text-slate-300">All data is stored locally in SQLite with no cloud uploads.</p> | ||
| </article> | ||
| <article class="cursor-pointer rounded-2xl border border-gray-200/60 bg-white/80 p-6 backdrop-blur-sm transition-colors duration-200 hover:border-slate-400 dark:border-slate-700 dark:bg-slate-800/80 dark:hover:border-slate-500"> | ||
| <svg class="h-6 w-6 text-slate-700 dark:text-slate-300" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/></svg> | ||
| <h3 class="mt-4 text-lg font-semibold text-slate-900 dark:text-slate-100">Low Resource Usage</h3> | ||
| <p class="mt-2 text-sm text-slate-700 dark:text-slate-300">Efficient Python WMI backend combined with a performant Flutter UI.</p> | ||
| <article class="cursor-pointer rounded-2xl border border-gray-200 bg-white/80 p-6 backdrop-blur-sm transition-colors duration-200 hover:border-indigo-400 dark:border-slate-700 dark:bg-slate-800/80"> |
There was a problem hiding this comment.
These cards are styled with cursor-pointer and hover states but are not actually interactive (no link/button/onclick). This is confusing for keyboard and screen-reader users. Either remove the pointer/hover affordances or make the card a real interactive element (e.g., wrap content in an <a>/button) and add visible focus styles.
| <section id="stack" class="px-6 py-20"> | ||
| <div class="mx-auto w-full max-w-7xl"> | ||
| <h2 class="text-3xl font-bold text-slate-900 dark:text-slate-100">Tech Stack</h2> | ||
| <div class="mt-8 grid gap-4 sm:grid-cols-2 lg:grid-cols-4"> | ||
| <div class="cursor-pointer flex items-center gap-3 rounded-xl border border-gray-200 bg-white/80 p-4 backdrop-blur-sm transition-colors duration-200 hover:border-indigo-400 dark:border-slate-700 dark:bg-slate-800/80"> | ||
| <svg class="h-6 w-6" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"> | ||
| <path d="M11.981 0C9.626.011 7.611.251 6.75.45c-2.587.575-3.054 1.782-3.054 4.02v2.95h6.11v.983H1.408C.062 8.403 0 9.585 0 11.072v2.855c0 2.218.487 3.533 3.054 4.02 1.018.196 2.173.29 3.295.29h2.117v-2.98c0-2.154 1.86-4.052 4.058-4.052h6.098c1.699 0 3.055-1.398 3.055-3.106V4.47c0-2.066-1.743-3.618-3.055-3.836C16.642.185 14.335-.01 11.98 0Zm-3.306 2.202c.783 0 1.416.65 1.416 1.452 0 .8-.633 1.45-1.416 1.45-.782 0-1.416-.65-1.416-1.45 0-.802.634-1.452 1.416-1.452Z" /> | ||
| <path d="M12.019 24c2.355-.011 4.37-.251 5.231-.45 2.587-.575 3.054-1.782 3.054-4.02v-2.95h-6.11v-.983h8.398c1.346 0 1.408-1.182 1.408-2.67V10.07c0-2.218-.487-3.533-3.054-4.02-1.018-.196-2.173-.29-3.295-.29h-2.117v2.98c0 2.154-1.86 4.052-4.058 4.052H5.378c-1.699 0-3.055 1.398-3.055 3.106v3.63c0 2.066 1.743 3.618 3.055 3.836 1.98.449 4.287.644 6.642.634Zm3.306-2.202c-.783 0-1.416-.65-1.416-1.452 0-.8.633-1.45 1.416-1.45.782 0 1.416.65 1.416 1.45 0 .802-.634 1.452-1.416 1.452Z" /> | ||
| </svg> | ||
| <span class="font-medium">Python</span> | ||
| </div> | ||
| </div> | ||
| <div class="cursor-pointer rounded-xl border border-gray-200/60 bg-white/80 p-4 backdrop-blur-sm transition-colors duration-200 hover:border-slate-400 dark:border-slate-700 dark:bg-slate-800/80 dark:hover:border-slate-500"> | ||
| <div class="flex items-center gap-3"> | ||
| <svg class="h-6 w-6" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2C7 2 3 3.34 3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5c0-1.66-4-3-9-3Zm0 2c4.42 0 7 .99 7 1s-2.58 1-7 1-7-.99-7-1 2.58-1 7-1Zm0 16c-4.42 0-7-.99-7-1v-2c1.7.8 4.4 1 7 1s5.3-.2 7-1v2c0 .01-2.58 1-7 1Zm0-4c-4.42 0-7-.99-7-1v-2c1.7.8 4.4 1 7 1s5.3-.2 7-1v2c0 .01-2.58 1-7 1Zm0-4c-4.42 0-7-.99-7-1V9c1.7.8 4.4 1 7 1s5.3-.2 7-1v2c0 .01-2.58 1-7 1Z"/></svg> | ||
| <span class="text-sm font-medium text-slate-900 dark:text-slate-100">SQLite</span> | ||
| <div class="cursor-pointer flex items-center gap-3 rounded-xl border border-gray-200 bg-white/80 p-4 backdrop-blur-sm transition-colors duration-200 hover:border-indigo-400 dark:border-slate-700 dark:bg-slate-800/80"> | ||
| <svg class="h-6 w-6" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"> | ||
| <path d="M14.314 0 2.142 12.172l3.62 3.617L21.555 0h-7.24ZM5.76 15.79 0 21.556h7.24l2.14-2.14-3.62-3.626Zm9.14-4.307 3.62 3.625L24 9.69h-7.24l-1.86 1.792Zm-2.268 2.268-2.14 2.14 3.62 3.625h7.24l-5.48-5.765h-3.24Z" /> | ||
| </svg> | ||
| <span class="font-medium">Flutter</span> | ||
| </div> | ||
| </div> | ||
| <div class="cursor-pointer rounded-xl border border-gray-200/60 bg-white/80 p-4 backdrop-blur-sm transition-colors duration-200 hover:border-slate-400 dark:border-slate-700 dark:bg-slate-800/80 dark:hover:border-slate-500"> | ||
| <div class="flex items-center gap-3"> | ||
| <svg class="h-6 w-6" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M0 1.418 9.833 0v9.552H0V1.418Zm11.02-1.595L24 0v9.46H11.02V-.177ZM0 10.448h9.833V24L0 22.583V10.448Zm11.02 0H24v13.73l-12.98-1.823V10.448Z"/></svg> | ||
| <span class="text-sm font-medium text-slate-900 dark:text-slate-100">Windows</span> | ||
| <div class="cursor-pointer flex items-center gap-3 rounded-xl border border-gray-200 bg-white/80 p-4 backdrop-blur-sm transition-colors duration-200 hover:border-indigo-400 dark:border-slate-700 dark:bg-slate-800/80"> | ||
| <svg class="h-6 w-6" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"> |
There was a problem hiding this comment.
The stack items use cursor-pointer/hover styling but are plain <div>s with no action. This can mislead users into thinking the items are clickable. Consider removing the interactive styling or converting them to semantic interactive elements (and include focus-visible styles).
| <svg class="h-6 w-6" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M11.95.03c-1.97.01-3.84.16-5.47.47C1.7 1.35 0 2.72 0 4.65v14.7c0 1.93 1.7 3.3 6.48 4.15 3.28.59 7.77.59 11.04 0C22.3 22.65 24 21.28 24 19.35V4.65c0-1.93-1.7-3.3-6.48-4.15A33.7 33.7 0 0 0 11.95.03Zm-.2 2.07c1.17 0 2.13.96 2.13 2.14a2.14 2.14 0 0 1-2.13 2.14 2.14 2.14 0 0 1-2.13-2.14c0-1.18.96-2.14 2.13-2.14Zm-4.2 6.1h8.4a1.2 1.2 0 0 1 1.2 1.2v8.4a1.2 1.2 0 0 1-1.2 1.2h-8.4a1.2 1.2 0 0 1-1.2-1.2V9.4a1.2 1.2 0 0 1 1.2-1.2Z"/></svg> | ||
| <span class="text-sm font-medium text-slate-900 dark:text-slate-100">Python</span> | ||
| </div> | ||
| <section id="features" class="px-6 py-20"> |
There was a problem hiding this comment.
Because the navbar is fixed, jumping to #features/#installation can land with the section header partially hidden under the nav. Consider adding an appropriate scroll-mt-* (scroll-margin-top) class to sections (at least those linked from the nav) to offset for the fixed header height.
| <section id="features" class="px-6 py-20"> | |
| <section id="features" class="px-6 py-20 scroll-mt-24"> |
| <article class="cursor-pointer rounded-2xl border border-gray-200 bg-white/80 p-6 backdrop-blur-sm transition-colors duration-200 hover:border-indigo-400 dark:border-slate-700 dark:bg-slate-800/80"> | ||
| <p class="text-sm font-semibold uppercase tracking-wide text-indigo-500">Next</p> | ||
| <h3 class="mt-2 text-xl font-semibold text-slate-900 dark:text-slate-100">Linux Support</h3> | ||
| <p class="mt-3 text-slate-700 dark:text-slate-300">via Netlink.</p> | ||
| </article> | ||
| <article class="cursor-pointer rounded-2xl border border-gray-200 bg-white/80 p-6 backdrop-blur-sm transition-colors duration-200 hover:border-indigo-400 dark:border-slate-700 dark:bg-slate-800/80"> | ||
| <p class="text-sm font-semibold uppercase tracking-wide text-indigo-500">Planned</p> | ||
| <h3 class="mt-2 text-xl font-semibold text-slate-900 dark:text-slate-100">macOS Support</h3> | ||
| <p class="mt-3 text-slate-700 dark:text-slate-300">via Endpoint Security/psutil.</p> | ||
| </article> | ||
| <article class="cursor-pointer rounded-2xl border border-gray-200 bg-white/80 p-6 backdrop-blur-sm transition-colors duration-200 hover:border-indigo-400 dark:border-slate-700 dark:bg-slate-800/80"> |
There was a problem hiding this comment.
These roadmap cards are styled as clickable (cursor-pointer + hover border) but have no interactive behavior. Either remove the clickable affordances or make them actual links/buttons (with keyboard focus styles) to avoid accessibility/UX confusion.
| <article class="cursor-pointer rounded-2xl border border-gray-200 bg-white/80 p-6 backdrop-blur-sm transition-colors duration-200 hover:border-indigo-400 dark:border-slate-700 dark:bg-slate-800/80"> | |
| <p class="text-sm font-semibold uppercase tracking-wide text-indigo-500">Next</p> | |
| <h3 class="mt-2 text-xl font-semibold text-slate-900 dark:text-slate-100">Linux Support</h3> | |
| <p class="mt-3 text-slate-700 dark:text-slate-300">via Netlink.</p> | |
| </article> | |
| <article class="cursor-pointer rounded-2xl border border-gray-200 bg-white/80 p-6 backdrop-blur-sm transition-colors duration-200 hover:border-indigo-400 dark:border-slate-700 dark:bg-slate-800/80"> | |
| <p class="text-sm font-semibold uppercase tracking-wide text-indigo-500">Planned</p> | |
| <h3 class="mt-2 text-xl font-semibold text-slate-900 dark:text-slate-100">macOS Support</h3> | |
| <p class="mt-3 text-slate-700 dark:text-slate-300">via Endpoint Security/psutil.</p> | |
| </article> | |
| <article class="cursor-pointer rounded-2xl border border-gray-200 bg-white/80 p-6 backdrop-blur-sm transition-colors duration-200 hover:border-indigo-400 dark:border-slate-700 dark:bg-slate-800/80"> | |
| <article class="rounded-2xl border border-gray-200 bg-white/80 p-6 backdrop-blur-sm transition-colors duration-200 dark:border-slate-700 dark:bg-slate-800/80"> | |
| <p class="text-sm font-semibold uppercase tracking-wide text-indigo-500">Next</p> | |
| <h3 class="mt-2 text-xl font-semibold text-slate-900 dark:text-slate-100">Linux Support</h3> | |
| <p class="mt-3 text-slate-700 dark:text-slate-300">via Netlink.</p> | |
| </article> | |
| <article class="rounded-2xl border border-gray-200 bg-white/80 p-6 backdrop-blur-sm transition-colors duration-200 dark:border-slate-700 dark:bg-slate-800/80"> | |
| <p class="text-sm font-semibold uppercase tracking-wide text-indigo-500">Planned</p> | |
| <h3 class="mt-2 text-xl font-semibold text-slate-900 dark:text-slate-100">macOS Support</h3> | |
| <p class="mt-3 text-slate-700 dark:text-slate-300">via Endpoint Security/psutil.</p> | |
| </article> | |
| <article class="rounded-2xl border border-gray-200 bg-white/80 p-6 backdrop-blur-sm transition-colors duration-200 dark:border-slate-700 dark:bg-slate-800/80"> |
Reworks the root landing page into a sleek, single-file Tailwind implementation for ShellScope, aligning with the required developer-tool aesthetic and content parity with the README. The page now presents the product narrative, capabilities, stack, setup flow, and roadmap in a scan-friendly structure.
What this PR changes
index.htmlcontent (no new files) with a responsive, dark-mode-first Tailwind CDN page.<100msprocess capture, local SQLite logging, zero cloud dependency).UI architecture and interaction model
fixed top-4 left-4 right-4 z-50,backdrop-blur-sm, translucent surfaces).py-20section rhythm for consistent visual hierarchy.cursor-pointer,transition-colors duration-200, and color-only hover states across actionable links/cards/buttons.nav,main,section,footer) and dark-mode viaclassstrategy.Iconography and visual system
aria-hidden="true"on decorative icons).Content additions included
Example snippet (representative)
screenshot
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.