Skip to content

About

The shared sidebar UI for the warden, curator, and lector apps — the grouped tab rows, resize-drag and density styling, written once as framework-free CSS + vanilla JS the apps embed at build time.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

chrome-core

The shared sidebar chrome for curator, warden, and lector — one component, three apps.

Platform Built with Embedded via License

curator (browser keeper-tabs), warden (terminals), and lector (local doc sites) are sibling macOS Tauri apps with the same sidebar. chrome-core is that sidebar: a framework-free CSS + vanilla-JS component (ChromeSidebar) plus a thin Rust crate that exposes the two asset files as string constants.

It provides two things:

  • The view: the window-name banner and its accent colour; grouped tab rows, each with a letter tile, a title and three status dots (needs attention, session present, loaded/unload); the end-session confirmation (⏻ suspend / ☠ destroy); an always-on search field; an optional pinned "Open" section of live tabs; collapsible project trees with a rescan button; pop-out and pop-in from the tile; a title strip naming the app beside the macOS traffic lights; comfortable/compact sizing; the sidebar resize drag; and the error bar.
  • Capabilities every app needs, notably self-update: the update check, the update bar, install and relaunch, and the periodic re-check.

Each app supplies a normalized tab DTO, a few callbacks, and its updater identity (endpoint/pubkey); its content area and backend commands stay in a thin per-app controller. The interface contract is in CLAUDE.md.

Status

In use. curator, warden, and lector all consume chrome-core, each pinned to a commit rev. There are no tags or releases.

How it's consumed

Each app takes chrome-core as a build-dependency pinned by rev:

[build-dependencies]
chrome-core = { git = "https://github.com/Lockyc/chrome-core", rev = "<commit>" }

and its build.rs writes the constants into the app's frontendDist before Tauri embeds it:

std::fs::write("../src/chrome-core.css", chrome_core::SIDEBAR_CSS)?;
std::fs::write("../src/chrome-core.js",  chrome_core::SIDEBAR_JS)?;

The generated files are git-ignored in each app; cargo build regenerates them, so a fresh clone builds as-is.

Build & test

cargo build     # compiles the include_str! constants (catches missing/renamed assets)
node --test     # unit-tests the component's pure logic (zero deps)

License

MIT.

About

The shared sidebar UI for the warden, curator, and lector apps — the grouped tab rows, resize-drag and density styling, written once as framework-free CSS + vanilla JS the apps embed at build time.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages