feat(v8.2): UX — Guide-Tabs, Begriffe oben, Mobile, Download-Links
- GuidesPanel: "Begriffe kurz erklärt" jetzt ganz oben (vor Guide-Karten) - GuidesPanel: Tab-Navigation mit Kategorie-Chips + Active-Highlighting; Klick scrollt zur jeweiligen Guide-Gruppe - ConnectPanel: Download-Links für Zed (zed.dev) und Cline (VS Code + JetBrains Marketplace) ergänzt - base.css: Mobile-Breakpoint ≤520px — Sidebar wird zur Bottom-Nav, Content-Padding reduziert, Touch-freundliche Button-Höhen (min 40px), Topbar kompaktiert, Guide-Tabs horizontal scrollbar Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -270,6 +270,7 @@
|
||||
</div>
|
||||
<p style="margin-top:12px"><b>API-Key:</b> Öffne den Agent-Panel → Anbieter <b>bosgame</b> → trag irgendeinen Wert ein (z.B. <code>local</code>).</p>
|
||||
<div class="hint">Danach im Agent-Panel das Modell <b>bosgame / {firstModel}</b> auswählen.</div>
|
||||
<div class="hint" style="margin-top:4px">Zed herunterladen: <a href="https://zed.dev" target="_blank" rel="noopener">zed.dev</a> — kostenlos, native Performance, Windows/macOS/Linux.</div>
|
||||
{:else if selectedTool === 'opencode'}
|
||||
{@const block = openCodeBlock(url, activeIds)}
|
||||
<p>Datei anlegen oder öffnen (OpenCode Desktop nutzt <b>.jsonc</b> — JSON mit Kommentaren):</p>
|
||||
@@ -294,6 +295,7 @@
|
||||
<button class="ghost" onclick={e => copyVal((e.currentTarget as HTMLElement).previousElementSibling as HTMLInputElement)}>Kopieren</button>
|
||||
</div>
|
||||
<div class="hint">API-Key: ein beliebiger Wert (z.B. <code>local</code>).</div>
|
||||
<div class="hint" style="margin-top:4px">Cline für VS Code: <a href="https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev" target="_blank" rel="noopener">VS Code Marketplace</a> · für JetBrains: <a href="https://plugins.jetbrains.com/plugin/24604-cline" target="_blank" rel="noopener">JetBrains Marketplace</a></div>
|
||||
{:else if selectedTool === 'openwebui'}
|
||||
<p>Settings → Admin Panel → Connections → neue OpenAI-Verbindung:</p>
|
||||
<label>Basis-URL</label>
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
<script lang="ts">
|
||||
import { GUIDE_GROUPS, CONCEPTS } from './guides-data.js'
|
||||
|
||||
let activeGroup = $state(0)
|
||||
|
||||
function scrollTo(gi: number) {
|
||||
activeGroup = gi
|
||||
document.getElementById(`guide-group-${gi}`)?.scrollIntoView({ behavior: 'smooth', block: 'start' })
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="pagehead">
|
||||
@@ -9,8 +16,33 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Begriffe oben -->
|
||||
<div class="card">
|
||||
<div class="card-h"><h3>Begriffe kurz erklärt</h3></div>
|
||||
<div class="concept-grid" style="margin-top:8px">
|
||||
{#each CONCEPTS as [term, text]}
|
||||
<div class="concept">
|
||||
<h4>{term}</h4>
|
||||
<p>{text}</p>
|
||||
</div>
|
||||
{/each}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Tab-Navigation -->
|
||||
<div class="guide-tabs">
|
||||
{#each GUIDE_GROUPS as group, gi}
|
||||
<button
|
||||
class="guide-tab{activeGroup === gi ? ' active' : ''}"
|
||||
onclick={() => scrollTo(gi)}>
|
||||
{group.label}
|
||||
</button>
|
||||
{/each}
|
||||
</div>
|
||||
|
||||
<!-- Guide-Karten -->
|
||||
{#each GUIDE_GROUPS as group, gi}
|
||||
<div class="card guide-card">
|
||||
<div class="card guide-card" id="guide-group-{gi}">
|
||||
<div class="guide-group-hd">{group.label}</div>
|
||||
{#each group.tutorials as [title, body], i}
|
||||
<details class="guide-acc" open={gi === 0 && i === 0}>
|
||||
@@ -21,21 +53,36 @@
|
||||
</div>
|
||||
{/each}
|
||||
|
||||
<div class="card-h" style="margin-top:8px"><h3>Begriffe kurz erklärt</h3></div>
|
||||
<div class="concept-grid">
|
||||
{#each CONCEPTS as [term, text]}
|
||||
<div class="concept">
|
||||
<h4>{term}</h4>
|
||||
<p>{text}</p>
|
||||
</div>
|
||||
{/each}
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.guide-tabs {
|
||||
display: flex;
|
||||
gap: 6px;
|
||||
flex-wrap: wrap;
|
||||
margin: -6px 0 2px;
|
||||
}
|
||||
|
||||
.guide-tab {
|
||||
font-size: 12px;
|
||||
padding: 5px 13px;
|
||||
border-radius: 999px;
|
||||
background: var(--tile);
|
||||
border: 1px solid var(--line);
|
||||
color: var(--mut);
|
||||
cursor: pointer;
|
||||
transition: .13s;
|
||||
font-family: var(--sans);
|
||||
}
|
||||
.guide-tab:hover { color: var(--tx); border-color: var(--line2); }
|
||||
.guide-tab.active {
|
||||
background: rgba(45,212,191,.12);
|
||||
border-color: rgba(45,212,191,.30);
|
||||
color: var(--accent);
|
||||
}
|
||||
|
||||
.guide-card {
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
margin-bottom: 8px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.guide-group-hd {
|
||||
|
||||
Reference in New Issue
Block a user