- Add lazy loading for result lists (load more on scroll/selection) - Add non-blocking bookmark loading with JSON cache - Add Firefox favicon extraction and caching - Fix dynamic provider filtering (files/calc/websearch in All mode) - Fix clippy warnings across core and plugins - Add apex-neon theme - Add aur/ to gitignore 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
345 lines
9.9 KiB
CSS
345 lines
9.9 KiB
CSS
/*
|
|
* Owlry - Apex Neon Theme
|
|
* "State over Decoration."
|
|
*
|
|
* A high-contrast dark theme built for focus and clinical clarity.
|
|
* Color exists to signal STATE, not to decorate space.
|
|
*
|
|
* Author: S0wlz (Owlibou)
|
|
*
|
|
* ─────────────────────────────────────────────────────────────────
|
|
* APEX DNA - Semantic Color Roles:
|
|
*
|
|
* RED is the Predator: Active intent, cursor, current location, critical errors
|
|
* CYAN is Informational: Technical data, links, neutral highlights
|
|
* PURPLE is Sacred: Root access, special modes, exceptional states
|
|
* GREEN is Success: Completion, OK states, positive feedback
|
|
* YELLOW is Warning: Caution, load states, attention needed
|
|
*
|
|
* Rule: If a UI element is not important, it does not glow.
|
|
* ─────────────────────────────────────────────────────────────────
|
|
*
|
|
* Core Palette:
|
|
* - Void Black: #050505 (absolute background)
|
|
* - Dark Surface: #141414 (inputs, inactive elements)
|
|
* - Light Surface: #262626 (separators, borders)
|
|
* - Stark White: #ededed (primary text)
|
|
* - Muted: #737373 (secondary text)
|
|
* - Razor Red: #ff0044 (THE accent - focus, cursor, selection)
|
|
* - Electric Cyan: #00eaff (info, links, technical)
|
|
* - Sacred Purple: #9d00ff (special, root, elevated)
|
|
* - Neon Green: #00ff99 (success, OK)
|
|
* - Warning Yellow: #ffb700 (warning, caution)
|
|
*
|
|
* Bright Escalations:
|
|
* - Alert Red: #ff8899 (distinguishable from cursor)
|
|
* - Active Cyan: #5af3ff (active info)
|
|
* - Active Green: #2bffb2 (active success)
|
|
* - Urgent Yellow: #ffd24d (urgent warning)
|
|
* - Elevated Purple:#c84dff (elevated special)
|
|
*
|
|
* Usage: Set theme = "apex-neon" in config.toml
|
|
*/
|
|
|
|
:root {
|
|
/* Core surfaces */
|
|
--owlry-bg: #050505;
|
|
--owlry-bg-secondary: #141414;
|
|
--owlry-border: #262626;
|
|
--owlry-text: #ededed;
|
|
--owlry-text-secondary: #737373;
|
|
|
|
/* The Predator - primary accent */
|
|
--owlry-accent: #ff0044;
|
|
--owlry-accent-bright: #ff8899;
|
|
|
|
/* Provider badges - mapped to Apex semantics */
|
|
--owlry-badge-app: #00eaff; /* Cyan: apps are informational */
|
|
--owlry-badge-bookmark: #ffb700; /* Yellow: bookmarks need attention */
|
|
--owlry-badge-calc: #ffd24d; /* Bright Yellow: calculator results */
|
|
--owlry-badge-clip: #9d00ff; /* Purple: clipboard is special */
|
|
--owlry-badge-cmd: #9d00ff; /* Purple: commands are elevated */
|
|
--owlry-badge-dmenu: #00ff99; /* Green: dmenu is success/pipe */
|
|
--owlry-badge-emoji: #c84dff; /* Bright Purple: emoji is special */
|
|
--owlry-badge-file: #5af3ff; /* Bright Cyan: file search is active info */
|
|
--owlry-badge-script: #2bffb2; /* Bright Green: scripts execute successfully */
|
|
--owlry-badge-ssh: #00eaff; /* Cyan: SSH is technical/info */
|
|
--owlry-badge-sys: #ff0044; /* Red: system actions are critical */
|
|
--owlry-badge-uuctl: #ffb700; /* Yellow: uuctl requires attention */
|
|
--owlry-badge-web: #00eaff; /* Cyan: web is informational */
|
|
|
|
/* Widget badges */
|
|
--owlry-badge-media: #c84dff; /* Bright Purple: media is special */
|
|
--owlry-badge-weather: #5af3ff; /* Bright Cyan: weather is active info */
|
|
--owlry-badge-pomo: #ff8899; /* Alert Red: pomodoro demands attention */
|
|
}
|
|
|
|
.owlry-main {
|
|
background-color: rgba(5, 5, 5, 0.98);
|
|
border: 1px solid rgba(38, 38, 38, 0.8);
|
|
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.8),
|
|
0 0 0 1px rgba(255, 0, 68, 0.1);
|
|
}
|
|
|
|
.owlry-search {
|
|
background-color: rgba(20, 20, 20, 0.9);
|
|
border: 2px solid rgba(38, 38, 38, 0.8);
|
|
color: var(--owlry-text);
|
|
caret-color: var(--owlry-accent);
|
|
}
|
|
|
|
.owlry-search:focus {
|
|
border-color: var(--owlry-accent);
|
|
box-shadow: 0 0 0 2px rgba(255, 0, 68, 0.3);
|
|
}
|
|
|
|
.owlry-result-row:hover {
|
|
background-color: rgba(20, 20, 20, 0.8);
|
|
}
|
|
|
|
.owlry-result-row:selected {
|
|
background-color: rgba(255, 0, 68, 0.15);
|
|
border-left: 3px solid var(--owlry-accent);
|
|
}
|
|
|
|
.owlry-result-row:selected .owlry-result-name {
|
|
color: var(--owlry-accent-bright);
|
|
}
|
|
|
|
.owlry-result-row:selected .owlry-result-icon {
|
|
color: var(--owlry-accent);
|
|
}
|
|
|
|
/* Provider badges - styled per Apex semantics */
|
|
.owlry-badge-app {
|
|
background-color: rgba(0, 234, 255, 0.15);
|
|
color: var(--owlry-badge-app);
|
|
}
|
|
|
|
.owlry-badge-bookmark {
|
|
background-color: rgba(255, 183, 0, 0.15);
|
|
color: var(--owlry-badge-bookmark);
|
|
}
|
|
|
|
.owlry-badge-calc {
|
|
background-color: rgba(255, 210, 77, 0.15);
|
|
color: var(--owlry-badge-calc);
|
|
}
|
|
|
|
.owlry-badge-clip {
|
|
background-color: rgba(157, 0, 255, 0.15);
|
|
color: var(--owlry-badge-clip);
|
|
}
|
|
|
|
.owlry-badge-cmd {
|
|
background-color: rgba(157, 0, 255, 0.15);
|
|
color: var(--owlry-badge-cmd);
|
|
}
|
|
|
|
.owlry-badge-dmenu {
|
|
background-color: rgba(0, 255, 153, 0.15);
|
|
color: var(--owlry-badge-dmenu);
|
|
}
|
|
|
|
.owlry-badge-emoji {
|
|
background-color: rgba(200, 77, 255, 0.15);
|
|
color: var(--owlry-badge-emoji);
|
|
}
|
|
|
|
.owlry-badge-file {
|
|
background-color: rgba(90, 243, 255, 0.15);
|
|
color: var(--owlry-badge-file);
|
|
}
|
|
|
|
.owlry-badge-script {
|
|
background-color: rgba(43, 255, 178, 0.15);
|
|
color: var(--owlry-badge-script);
|
|
}
|
|
|
|
.owlry-badge-ssh {
|
|
background-color: rgba(0, 234, 255, 0.15);
|
|
color: var(--owlry-badge-ssh);
|
|
}
|
|
|
|
.owlry-badge-sys {
|
|
background-color: rgba(255, 0, 68, 0.15);
|
|
color: var(--owlry-badge-sys);
|
|
}
|
|
|
|
.owlry-badge-uuctl {
|
|
background-color: rgba(255, 183, 0, 0.15);
|
|
color: var(--owlry-badge-uuctl);
|
|
}
|
|
|
|
.owlry-badge-web {
|
|
background-color: rgba(0, 234, 255, 0.15);
|
|
color: var(--owlry-badge-web);
|
|
}
|
|
|
|
/* Widget badges */
|
|
.owlry-badge-media {
|
|
background-color: rgba(200, 77, 255, 0.15);
|
|
color: var(--owlry-badge-media);
|
|
}
|
|
|
|
.owlry-badge-weather {
|
|
background-color: rgba(90, 243, 255, 0.15);
|
|
color: var(--owlry-badge-weather);
|
|
}
|
|
|
|
.owlry-badge-pomo {
|
|
background-color: rgba(255, 136, 153, 0.15);
|
|
color: var(--owlry-badge-pomo);
|
|
}
|
|
|
|
/* Filter button - default uses The Predator */
|
|
.owlry-filter-button:checked {
|
|
background-color: rgba(255, 0, 68, 0.2);
|
|
color: var(--owlry-accent);
|
|
border-color: rgba(255, 0, 68, 0.5);
|
|
}
|
|
|
|
/* Provider-specific filter buttons - follow Apex semantics */
|
|
.owlry-filter-app:checked {
|
|
background-color: rgba(0, 234, 255, 0.15);
|
|
color: var(--owlry-badge-app);
|
|
border-color: rgba(0, 234, 255, 0.5);
|
|
}
|
|
|
|
.owlry-filter-bookmark:checked {
|
|
background-color: rgba(255, 183, 0, 0.15);
|
|
color: var(--owlry-badge-bookmark);
|
|
border-color: rgba(255, 183, 0, 0.5);
|
|
}
|
|
|
|
.owlry-filter-calc:checked {
|
|
background-color: rgba(255, 210, 77, 0.15);
|
|
color: var(--owlry-badge-calc);
|
|
border-color: rgba(255, 210, 77, 0.5);
|
|
}
|
|
|
|
.owlry-filter-clip:checked {
|
|
background-color: rgba(157, 0, 255, 0.15);
|
|
color: var(--owlry-badge-clip);
|
|
border-color: rgba(157, 0, 255, 0.5);
|
|
}
|
|
|
|
.owlry-filter-cmd:checked {
|
|
background-color: rgba(157, 0, 255, 0.15);
|
|
color: var(--owlry-badge-cmd);
|
|
border-color: rgba(157, 0, 255, 0.5);
|
|
}
|
|
|
|
.owlry-filter-dmenu:checked {
|
|
background-color: rgba(0, 255, 153, 0.15);
|
|
color: var(--owlry-badge-dmenu);
|
|
border-color: rgba(0, 255, 153, 0.5);
|
|
}
|
|
|
|
.owlry-filter-emoji:checked {
|
|
background-color: rgba(200, 77, 255, 0.15);
|
|
color: var(--owlry-badge-emoji);
|
|
border-color: rgba(200, 77, 255, 0.5);
|
|
}
|
|
|
|
.owlry-filter-file:checked {
|
|
background-color: rgba(90, 243, 255, 0.15);
|
|
color: var(--owlry-badge-file);
|
|
border-color: rgba(90, 243, 255, 0.5);
|
|
}
|
|
|
|
.owlry-filter-script:checked {
|
|
background-color: rgba(43, 255, 178, 0.15);
|
|
color: var(--owlry-badge-script);
|
|
border-color: rgba(43, 255, 178, 0.5);
|
|
}
|
|
|
|
.owlry-filter-ssh:checked {
|
|
background-color: rgba(0, 234, 255, 0.15);
|
|
color: var(--owlry-badge-ssh);
|
|
border-color: rgba(0, 234, 255, 0.5);
|
|
}
|
|
|
|
.owlry-filter-sys:checked {
|
|
background-color: rgba(255, 0, 68, 0.15);
|
|
color: var(--owlry-badge-sys);
|
|
border-color: rgba(255, 0, 68, 0.5);
|
|
}
|
|
|
|
.owlry-filter-uuctl:checked {
|
|
background-color: rgba(255, 183, 0, 0.15);
|
|
color: var(--owlry-badge-uuctl);
|
|
border-color: rgba(255, 183, 0, 0.5);
|
|
}
|
|
|
|
.owlry-filter-web:checked {
|
|
background-color: rgba(0, 234, 255, 0.15);
|
|
color: var(--owlry-badge-web);
|
|
border-color: rgba(0, 234, 255, 0.5);
|
|
}
|
|
|
|
/* Widget filter buttons */
|
|
.owlry-filter-media:checked {
|
|
background-color: rgba(200, 77, 255, 0.15);
|
|
color: var(--owlry-badge-media);
|
|
border-color: rgba(200, 77, 255, 0.5);
|
|
}
|
|
|
|
.owlry-filter-weather:checked {
|
|
background-color: rgba(90, 243, 255, 0.15);
|
|
color: var(--owlry-badge-weather);
|
|
border-color: rgba(90, 243, 255, 0.5);
|
|
}
|
|
|
|
.owlry-filter-pomodoro:checked {
|
|
background-color: rgba(255, 136, 153, 0.15);
|
|
color: var(--owlry-badge-pomo);
|
|
border-color: rgba(255, 136, 153, 0.5);
|
|
}
|
|
|
|
/* Scrollbar - subtle in Void, The Predator on active */
|
|
scrollbar slider {
|
|
background-color: rgba(38, 38, 38, 0.8);
|
|
}
|
|
|
|
scrollbar slider:hover {
|
|
background-color: rgba(64, 64, 64, 0.9);
|
|
}
|
|
|
|
scrollbar slider:active {
|
|
background-color: var(--owlry-accent);
|
|
}
|
|
|
|
/* Text selection - Apex Hard Rule: black text on red (target locked) */
|
|
selection {
|
|
background-color: var(--owlry-accent);
|
|
color: #050505;
|
|
}
|
|
|
|
/* Mode indicator - The Predator marks current mode */
|
|
.owlry-mode-indicator {
|
|
background-color: rgba(255, 0, 68, 0.2);
|
|
color: var(--owlry-accent);
|
|
border: 1px solid rgba(255, 0, 68, 0.3);
|
|
}
|
|
|
|
/* Hints bar */
|
|
.owlry-hints {
|
|
border-top: 1px solid rgba(38, 38, 38, 0.8);
|
|
}
|
|
|
|
.owlry-hints-label {
|
|
color: var(--owlry-text-secondary);
|
|
}
|
|
|
|
/* Tag badges in results */
|
|
.owlry-tag-badge {
|
|
background-color: rgba(38, 38, 38, 0.6);
|
|
color: var(--owlry-text-secondary);
|
|
}
|
|
|
|
.owlry-result-row:selected .owlry-tag-badge {
|
|
background-color: rgba(255, 136, 153, 0.25);
|
|
color: var(--owlry-accent-bright);
|
|
}
|