feat(ui): dark theme redesign, fix image search and defaults
- Inline CSS in base.html (Inter, dark mode, sticky search, tabs, results) - Remove HTMX/JS from templates; pagination via GET links - Atmospheric side gradients + grid; wider column on large viewports - Parse ?category= for HTML tabs (fixes Images category routing) - Include bing_images, ddg_images, qwant_images in local_ported defaults - Default listen port 5355; update Docker, compose, flake, README - Favicon img uses /favicon/ proxy; preferences without inline JS Made-with: Cursor
This commit is contained in:
parent
bdc3dae4f5
commit
518215f62e
16 changed files with 1107 additions and 106 deletions
|
|
@ -9,7 +9,7 @@
|
|||
<h2 class="pref-section-title">Appearance</h2>
|
||||
<div class="pref-row">
|
||||
<label for="theme-select">Theme</label>
|
||||
<select name="theme" id="theme-select" onchange="this.form.submit()">
|
||||
<select name="theme" id="theme-select">
|
||||
<option value="light" {{if eq .Theme "light"}}selected{{end}}>Light</option>
|
||||
<option value="dark" {{if eq .Theme "dark"}}selected{{end}}>Dark</option>
|
||||
</select>
|
||||
|
|
@ -70,7 +70,7 @@
|
|||
</div>
|
||||
<div class="pref-row">
|
||||
<div class="pref-row-info">
|
||||
<label>Favicon Service</label>
|
||||
<label for="pref-favicon">Favicon Service</label>
|
||||
<p class="pref-desc">Fetch favicons for result URLs. "None" is most private.</p>
|
||||
</div>
|
||||
<select name="favicon" id="pref-favicon">
|
||||
|
|
@ -105,26 +105,4 @@
|
|||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
(function() {
|
||||
// Load saved engine preferences
|
||||
var savedEngines = JSON.parse(localStorage.getItem('samsa-engines') || 'null');
|
||||
if (savedEngines) {
|
||||
savedEngines.forEach(function(engine) {
|
||||
var checkbox = document.querySelector('input[name="engine"][value="' + engine.id + '"]');
|
||||
if (checkbox) checkbox.checked = engine.enabled;
|
||||
});
|
||||
}
|
||||
|
||||
// Save on submit
|
||||
document.querySelector('.preferences-form').addEventListener('submit', function() {
|
||||
var engines = [];
|
||||
document.querySelectorAll('input[name="engine"]').forEach(function(cb) {
|
||||
engines.push({ id: cb.value, enabled: cb.checked });
|
||||
});
|
||||
localStorage.setItem('samsa-engines', JSON.stringify(engines));
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
{{end}}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue