update
This commit is contained in:
@@ -43,6 +43,9 @@ const emit = defineEmits(['progressChanged'])
|
|||||||
|
|
||||||
const isOnePager = computed(() => props.previewGuide?.format === 'OnePager')
|
const isOnePager = computed(() => props.previewGuide?.format === 'OnePager')
|
||||||
|
|
||||||
|
// Rotierende Kapitel-Akzentfarben (passend zum OnePager-Cheat-Sheet, ohne Rot)
|
||||||
|
const CH_COLORS = ['#3b82f6', '#8b5cf6', '#14b8a6', '#f59e0b', '#22c55e', '#6366f1']
|
||||||
|
|
||||||
// --- Inhalt laden ---
|
// --- Inhalt laden ---
|
||||||
const content = ref(null)
|
const content = ref(null)
|
||||||
const doneChapters = ref(new Set())
|
const doneChapters = ref(new Set())
|
||||||
@@ -204,12 +207,13 @@ async function send() {
|
|||||||
<span class="guide-format">{{ previewGuide.format }}</span>
|
<span class="guide-format">{{ previewGuide.format }}</span>
|
||||||
</header>
|
</header>
|
||||||
<section
|
<section
|
||||||
v-for="ch in content.chapters"
|
v-for="(ch, ci) in content.chapters"
|
||||||
:key="ch.title"
|
:key="ch.title"
|
||||||
class="chapter"
|
class="chapter"
|
||||||
:class="{ 'ch-complete': doneChapters.has(ch.title) }"
|
:class="{ 'ch-complete': doneChapters.has(ch.title) }"
|
||||||
|
:style="{ '--ch-accent': CH_COLORS[ci % CH_COLORS.length] }"
|
||||||
>
|
>
|
||||||
<h2 class="chapter-title">{{ ch.title }}</h2>
|
<h2 class="chapter-title"><span class="ch-num">{{ ci + 1 }}</span>{{ ch.title }}</h2>
|
||||||
<div class="sections">
|
<div class="sections">
|
||||||
<article
|
<article
|
||||||
v-for="s in ch.sections"
|
v-for="s in ch.sections"
|
||||||
@@ -324,7 +328,24 @@ async function send() {
|
|||||||
font-size: 1.25rem;
|
font-size: 1.25rem;
|
||||||
margin-bottom: 0.9rem;
|
margin-bottom: 0.9rem;
|
||||||
padding-bottom: 0.4rem;
|
padding-bottom: 0.4rem;
|
||||||
border-bottom: 2px solid var(--accent-border);
|
border-bottom: 2px solid color-mix(in srgb, var(--ch-accent, var(--accent)) 35%, transparent);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ch-num {
|
||||||
|
flex: 0 0 auto;
|
||||||
|
width: 28px;
|
||||||
|
height: 28px;
|
||||||
|
border-radius: 8px;
|
||||||
|
background: var(--ch-accent, var(--accent));
|
||||||
|
color: #fff;
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chapter.ch-complete .sections {
|
.chapter.ch-complete .sections {
|
||||||
@@ -337,6 +358,15 @@ async function send() {
|
|||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
padding: 1rem 1.25rem;
|
padding: 1rem 1.25rem;
|
||||||
margin-bottom: 0.75rem;
|
margin-bottom: 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Guides: Karten tragen die Kapitel-Akzentfarbe (OnePager hat eigene op-card-Farben) */
|
||||||
|
.guide-content:not(.onepager) .section-card {
|
||||||
|
border-top: 3px solid color-mix(in srgb, var(--ch-accent, var(--accent)) 65%, transparent);
|
||||||
|
background: color-mix(in srgb, var(--ch-accent, var(--accent)) 3%, var(--panel));
|
||||||
|
}
|
||||||
|
|
||||||
|
.section-card {
|
||||||
|
|
||||||
h3 {
|
h3 {
|
||||||
font-size: 1.02rem;
|
font-size: 1.02rem;
|
||||||
@@ -535,6 +565,15 @@ async function send() {
|
|||||||
margin: 0.6em 0 0.3em;
|
margin: 0.6em 0 0.3em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* „Beispiel"-Überschriften in Karten als dezentes Uppercase-Label */
|
||||||
|
.section-card .markdown :deep(h3) {
|
||||||
|
font-size: 0.74em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.05em;
|
||||||
|
color: var(--text-faint);
|
||||||
|
margin: 0.9em 0 0.35em;
|
||||||
|
}
|
||||||
|
|
||||||
.markdown :deep(a) {
|
.markdown :deep(a) {
|
||||||
color: var(--accent-hover);
|
color: var(--accent-hover);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user