diff --git a/internal/views/static/css/kafka.css b/internal/views/static/css/kafka.css index ad094e9..40f0f25 100644 --- a/internal/views/static/css/kafka.css +++ b/internal/views/static/css/kafka.css @@ -235,11 +235,22 @@ main { padding-top: 1.5rem; } +/* 3-column layout: empty left buffer | center results | right column + max-width 1400px, centered on page */ .results-layout { display: grid; - grid-template-columns: 1fr 220px; + grid-template-columns: 1fr min(768px, 100%) 300px; gap: 2rem; align-items: start; + max-width: 1400px; + margin: 0 auto; +} + +@media (max-width: 1000px) { + .results-layout { + grid-template-columns: 1fr 260px; + gap: 1.5rem; + } } @media (max-width: 700px) { @@ -249,7 +260,7 @@ main { } } -/* Compact search bar on results page */ +/* Compact search bar spans all columns */ .search-compact { grid-column: 1 / -1; } @@ -380,12 +391,15 @@ main { } /* ============================================================ - Sidebar + Right Column (formerly sidebar) ============================================================ */ -.sidebar { +.right-column { position: sticky; top: calc(var(--header-height) + 1.5rem); + display: flex; + flex-direction: column; + gap: 1rem; } .sidebar-card { @@ -393,18 +407,65 @@ main { border: 1px solid var(--border); border-radius: var(--radius-md); padding: 1rem; - margin-bottom: 1rem; } -.sidebar-title { - font-size: 0.75rem; +.sidebar-card-title { + font-size: 0.7rem; font-weight: 600; text-transform: uppercase; - letter-spacing: 0.05em; + letter-spacing: 0.06em; color: var(--text-muted); margin-bottom: 0.75rem; } +/* Knowledge Panel card */ +.knowledge-panel { + background: var(--bg-secondary); + border: 1px solid var(--border); + border-radius: var(--radius-md); + padding: 1rem; +} + +.knowledge-panel-title { + font-size: 1rem; + font-weight: 600; + color: var(--text-primary); + margin-bottom: 0.5rem; +} + +.knowledge-panel-content { + font-size: 0.875rem; + color: var(--text-secondary); + line-height: 1.55; +} + +.knowledge-panel-thumb { + width: 100%; + border-radius: var(--radius-sm); + margin-bottom: 0.75rem; +} + +/* Related searches */ +.related-searches { + display: flex; + flex-direction: column; + gap: 0.35rem; +} + +.related-search-link { + font-size: 0.85rem; + color: var(--accent); + text-decoration: none; + padding: 0.25rem 0; + border-radius: var(--radius-sm); + transition: color 0.15s; +} + +.related-search-link:hover { + color: var(--accent-hover); + text-decoration: underline; +} + /* Suggestions in sidebar */ .suggestion-list { display: flex; diff --git a/internal/views/templates/results.html b/internal/views/templates/results.html index 1e02fb9..74d5f93 100644 --- a/internal/views/templates/results.html +++ b/internal/views/templates/results.html @@ -1,94 +1,53 @@ {{define "title"}}{{if .Query}}{{.Query}} — {{end}}{{end}} {{define "content"}}
- - - - -
- -
- + +
+ +
- -
- All - {{range .Categories}} - {{.}} - {{end}} -
- - + +
{{template "results_inner" .}}
- -
-{{end}} \ No newline at end of file +{{end}} diff --git a/internal/views/templates/results_inner.html b/internal/views/templates/results_inner.html index 0f9450a..cca51d1 100644 --- a/internal/views/templates/results_inner.html +++ b/internal/views/templates/results_inner.html @@ -8,13 +8,6 @@ {{range .Answers}}
{{.}}
{{end}} - {{range .Infoboxes}} -
- {{if .title}}
{{.title}}
{{end}} - {{if .content}}
{{.content}}
{{end}} - {{if .img_src}}{{.title}}{{end}} -
- {{end}}
{{end}} diff --git a/internal/views/views.go b/internal/views/views.go index 2dec5a7..6f23937 100644 --- a/internal/views/views.go +++ b/internal/views/views.go @@ -110,7 +110,7 @@ func init() { "base.html", "index.html", )) tmplFragment = template.Must(template.New("").Funcs(funcMap).ParseFS(tmplFS, - "results_inner.html", "result_item.html", "video_item.html", + "results.html", "results_inner.html", "result_item.html", "video_item.html", )) tmplPreferences = template.Must(template.New("").Funcs(funcMap).ParseFS(tmplFS, "base.html", "preferences.html",