diff --git a/docs/.vuepress/components/RoadmapProgress.vue b/docs/.vuepress/components/RoadmapProgress.vue index eaa5e57..63a9cec 100644 --- a/docs/.vuepress/components/RoadmapProgress.vue +++ b/docs/.vuepress/components/RoadmapProgress.vue @@ -31,7 +31,7 @@ :style="{ '--i': index }" > -
+
@@ -59,6 +59,16 @@
+ + +
+
+ + + +
+ {{ t.morePlanned }} +
@@ -227,11 +237,19 @@ const items = computed(() => { return [...done, ...inProgress, ...planned.slice(0, remaining)] }) +const hasMorePlanned = computed(() => { + const planned = allItems.filter(i => i.status === 'planned') + const done = allItems.filter(i => i.status === 'done').slice(-1) + const inProgress = allItems.filter(i => i.status === 'in-progress').slice(0, 1) + const remaining = MAX_VISIBLE - done.length - inProgress.length + return planned.length > remaining +}) + const i18n = { - de: { done: 'Erledigt', inProgress: 'In Arbeit', planned: 'Geplant', previouslyCompleted: 'Bereits umgesetzt …' }, - en: { done: 'Done', inProgress: 'In Progress', planned: 'Planned', previouslyCompleted: 'Previously completed …' }, - es: { done: 'Completado', inProgress: 'En curso', planned: 'Planificado', previouslyCompleted: 'Ya completado …' }, - fr: { done: 'Terminé', inProgress: 'En cours', planned: 'Planifié', previouslyCompleted: 'Déjà réalisé …' }, + de: { done: 'Erledigt', inProgress: 'In Arbeit', planned: 'Geplant', previouslyCompleted: 'Bereits umgesetzt …', morePlanned: '… und weitere geplant' }, + en: { done: 'Done', inProgress: 'In Progress', planned: 'Planned', previouslyCompleted: 'Previously completed …', morePlanned: '… and more planned' }, + es: { done: 'Completado', inProgress: 'En curso', planned: 'Planificado', previouslyCompleted: 'Ya completado …', morePlanned: '… y más planificado' }, + fr: { done: 'Terminé', inProgress: 'En cours', planned: 'Planifié', previouslyCompleted: 'Déjà réalisé …', morePlanned: '… et d\'autres prévus' }, } const t = i18n[locale] || i18n.de @@ -361,6 +379,49 @@ const connectorStyle = (index) => { z-index: 1; } +/* === Drei Punkte am Ende: weitere geplante Features === */ +.roadmap-future { + display: flex; + align-items: center; + gap: 16px; + margin-left: -12px; + padding-left: 12px; + padding-top: 20px; + position: relative; +} + + +.roadmap-future-dots { + display: flex; + flex-direction: column; + align-items: center; + gap: 6px; + width: 24px; +} + +.roadmap-future-dot { + width: 8px; + height: 8px; + border-radius: 50%; + background: #059669; + opacity: 0.9; +} + +.roadmap-future-dot:nth-child(2) { + opacity: 0.7; +} + +.roadmap-future-dot:nth-child(3) { + opacity: 0.5; +} + +.roadmap-future-label { + font-size: 0.85em; + color: var(--vp-c-text); + opacity: 0.6; + font-style: italic; +} + .roadmap-station { position: relative; display: grid; @@ -545,6 +606,15 @@ strong.roadmap-content-title { animation-delay: 0.1s; } +.roadmap-future { + opacity: 0; +} + +.roadmap--animated .roadmap-future { + animation: contentFadeIn 0.4s ease forwards; + animation-delay: calc(0.6s + 7 * 0.5s); +} + .roadmap-station .roadmap-marker, .roadmap-station .roadmap-content { opacity: 0;