Files
owlry/resources/base.css
vikingowl e680032d0e feat: add web search provider and fix calculator
Web Search Provider:
- Type "? query" or "web query" to search the web
- Configurable search engine (duckduckgo, google, bing, startpage, etc.)
- Custom URL templates with {query} placeholder supported
- Opens browser via xdg-open

Calculator Fixes:
- Support "=5+3" without space (previously required "= 5+3")
- :calc mode now evaluates raw expressions directly
- Added looks_like_expression() for better detection

New config options:
- providers.websearch = true
- providers.search_engine = "duckduckgo"

UI updates:
- Added :web and :search prefixes
- Web badge with teal styling
- Updated hints bar to show "? web" syntax

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 18:22:57 +01:00

246 lines
6.8 KiB
CSS

/*
* Owlry Base Styles
* Provides sensible defaults that work with GTK theme
* Colors can be overridden via theme or config
*/
/* Main window - transparent for layer shell */
.owlry-window {
background-color: transparent;
}
/* Main container - needs explicit background for overlay */
.owlry-main {
background-color: var(--owlry-bg, @theme_bg_color);
border-radius: var(--owlry-border-radius, 12px);
border: 1px solid var(--owlry-border, @borders);
padding: 16px;
}
/* Search entry */
.owlry-search {
background-color: var(--owlry-bg-secondary, @theme_base_color);
border: 2px solid var(--owlry-border, @borders);
border-radius: calc(var(--owlry-border-radius, 12px) - 4px);
padding: 12px 16px;
font-size: var(--owlry-font-size, 14px);
color: var(--owlry-text, @theme_fg_color);
min-height: 24px;
}
.owlry-search:focus {
border-color: var(--owlry-accent, @theme_selected_bg_color);
outline: none;
}
/* Results list */
.owlry-results {
background-color: transparent;
border-radius: calc(var(--owlry-border-radius, 12px) - 4px);
}
/* Individual result row */
.owlry-result-row {
background-color: transparent;
border-radius: calc(var(--owlry-border-radius, 12px) - 4px);
margin: 2px 0;
padding: 8px 12px;
}
.owlry-result-row:hover {
background-color: var(--owlry-bg-secondary, alpha(@theme_fg_color, 0.1));
}
.owlry-result-row:selected {
background-color: var(--owlry-accent, @theme_selected_bg_color);
color: var(--owlry-accent-bright, @theme_selected_fg_color);
}
/* Result icon */
.owlry-result-icon {
color: var(--owlry-text, @theme_fg_color);
opacity: 0.9;
}
.owlry-result-row:selected .owlry-result-icon {
color: var(--owlry-accent-bright, @theme_selected_fg_color);
opacity: 1;
}
/* Result name */
.owlry-result-name {
font-size: var(--owlry-font-size, 14px);
font-weight: 500;
color: var(--owlry-text, @theme_fg_color);
}
.owlry-result-row:selected .owlry-result-name {
color: var(--owlry-accent-bright, @theme_selected_fg_color);
}
/* Result description */
.owlry-result-description {
font-size: calc(var(--owlry-font-size, 14px) - 2px);
color: var(--owlry-text-secondary, alpha(@theme_fg_color, 0.7));
margin-top: 2px;
}
.owlry-result-row:selected .owlry-result-description {
color: var(--owlry-accent-bright, @theme_selected_fg_color);
}
/* Provider badges */
.owlry-result-badge {
font-size: calc(var(--owlry-font-size, 14px) - 4px);
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.5px;
padding: 3px 8px;
border-radius: 6px;
background-color: var(--owlry-bg-secondary, alpha(@theme_fg_color, 0.1));
color: var(--owlry-text-secondary, alpha(@theme_fg_color, 0.7));
}
.owlry-badge-app {
background-color: alpha(var(--owlry-badge-app, @blue_3), 0.2);
color: var(--owlry-badge-app, @blue_3);
}
.owlry-badge-calc {
background-color: alpha(var(--owlry-badge-calc, @yellow_3), 0.2);
color: var(--owlry-badge-calc, @yellow_3);
}
.owlry-badge-cmd {
background-color: alpha(var(--owlry-badge-cmd, @purple_3), 0.2);
color: var(--owlry-badge-cmd, @purple_3);
}
.owlry-badge-dmenu {
background-color: alpha(var(--owlry-badge-dmenu, @green_3), 0.2);
color: var(--owlry-badge-dmenu, @green_3);
}
.owlry-badge-uuctl {
background-color: alpha(var(--owlry-badge-uuctl, @orange_3), 0.2);
color: var(--owlry-badge-uuctl, @orange_3);
}
.owlry-badge-web {
background-color: alpha(var(--owlry-badge-web, @teal_3), 0.2);
color: var(--owlry-badge-web, @teal_3);
}
/* Header bar */
.owlry-header {
margin-bottom: 4px;
}
/* Mode indicator */
.owlry-mode-indicator {
font-size: calc(var(--owlry-font-size, 14px) - 2px);
font-weight: 600;
padding: 4px 12px;
border-radius: 6px;
background-color: alpha(var(--owlry-accent, @theme_selected_bg_color), 0.2);
color: var(--owlry-accent, @theme_selected_bg_color);
}
/* Filter buttons */
.owlry-filter-button {
font-size: calc(var(--owlry-font-size, 14px) - 3px);
font-weight: 500;
padding: 4px 10px;
border-radius: 6px;
background-color: alpha(var(--owlry-border, @borders), 0.3);
color: var(--owlry-text-secondary, alpha(@theme_fg_color, 0.7));
border: 1px solid transparent;
min-height: 20px;
}
.owlry-filter-button:hover {
background-color: alpha(var(--owlry-border, @borders), 0.5);
color: var(--owlry-text, @theme_fg_color);
}
.owlry-filter-button:checked {
background-color: alpha(var(--owlry-accent, @theme_selected_bg_color), 0.2);
color: var(--owlry-accent, @theme_selected_bg_color);
border-color: alpha(var(--owlry-accent, @theme_selected_bg_color), 0.4);
}
/* Provider-specific filter button colors */
.owlry-filter-app:checked {
background-color: alpha(var(--owlry-badge-app, @blue_3), 0.2);
color: var(--owlry-badge-app, @blue_3);
border-color: alpha(var(--owlry-badge-app, @blue_3), 0.4);
}
.owlry-filter-calc:checked {
background-color: alpha(var(--owlry-badge-calc, @yellow_3), 0.2);
color: var(--owlry-badge-calc, @yellow_3);
border-color: alpha(var(--owlry-badge-calc, @yellow_3), 0.4);
}
.owlry-filter-cmd:checked {
background-color: alpha(var(--owlry-badge-cmd, @purple_3), 0.2);
color: var(--owlry-badge-cmd, @purple_3);
border-color: alpha(var(--owlry-badge-cmd, @purple_3), 0.4);
}
.owlry-filter-uuctl:checked {
background-color: alpha(var(--owlry-badge-uuctl, @orange_3), 0.2);
color: var(--owlry-badge-uuctl, @orange_3);
border-color: alpha(var(--owlry-badge-uuctl, @orange_3), 0.4);
}
.owlry-filter-dmenu:checked {
background-color: alpha(var(--owlry-badge-dmenu, @green_3), 0.2);
color: var(--owlry-badge-dmenu, @green_3);
border-color: alpha(var(--owlry-badge-dmenu, @green_3), 0.4);
}
.owlry-filter-web:checked {
background-color: alpha(var(--owlry-badge-web, @teal_3), 0.2);
color: var(--owlry-badge-web, @teal_3);
border-color: alpha(var(--owlry-badge-web, @teal_3), 0.4);
}
/* Hints bar at bottom */
.owlry-hints {
padding-top: 8px;
border-top: 1px solid var(--owlry-border, @borders);
}
.owlry-hints-label {
font-size: calc(var(--owlry-font-size, 14px) - 4px);
color: var(--owlry-text-secondary, alpha(@theme_fg_color, 0.7));
letter-spacing: 0.5px;
}
/* Scrollbar styling */
scrollbar {
background-color: transparent;
}
scrollbar slider {
background-color: alpha(var(--owlry-border, @borders), 0.5);
border-radius: 4px;
min-width: 6px;
min-height: 40px;
}
scrollbar slider:hover {
background-color: alpha(var(--owlry-border, @borders), 0.7);
}
scrollbar slider:active {
background-color: var(--owlry-accent, @theme_selected_bg_color);
}
/* Text selection */
selection {
background-color: alpha(var(--owlry-accent, @theme_selected_bg_color), 0.3);
color: var(--owlry-text, @theme_fg_color);
}