Zum Inhalt springen
A beautiful cover image with the text "Dropdown and List?"

Mit dem Starlight Sidebar Topics Plugin zusammen mit der Starlight Sidebar Topics Dropdown Komponente können Sie eine Website erstellen, die eine Themenliste auf dem Desktop und ein Dropdown-Menü auf mobilen Geräten bietet.

Voraussetzungen

Sie benötigen eine bestehende Starlight-Website.

Pakete installieren

Zuerst installieren Sie das starlight-sidebar-topics Plugin sowie die starlight-sidebar-topics-dropdown Komponente:

Terminal-Fenster
npm install starlight-sidebar-topics starlight-sidebar-topics-dropdown

Anschließend folgen Sie den Einrichtungsanleitungen von Starlight Sidebar Topics und Starlight Sidebar Topics Dropdown.

Die Sidebar-Komponente anpassen

In der Einrichtungsanleitung der Dropdown-Komponente haben Sie eine Sidebar-Komponente erstellt, die nur das Dropdown-Menü rendert. Nun müssen Sie diese Komponente anpassen, sodass sie auch die Standard-Sidebar rendert, wenn der Benutzer am Desktop ist.

src/components/Sidebar.astro
---
import Default from '@astrojs/starlight/components/Sidebar.astro';
import Topics from 'starlight-sidebar-topics/components/Sidebar.astro';
import TopicsDropdown from 'starlight-sidebar-topics-dropdown/TopicsDropdown.astro';
---
<div class="topics">
<Topics/>
</div>
<div class="topics-dropdown">
<TopicsDropdown/>
</div>
<Default><slot /></Default>
<style>
/* Hide topics by default and show them on medium screens and larger */
.topics {
display: none;
}
@media (min-width: 800px) {
.topics {
display: block;
}
}
/* Show topics dropdown on small screens and hide it on medium screens and larger */
.topics-dropdown {
display: block;
}
@media (min-width: 800px) {
.topics-dropdown {
display: none;
}
}
</style>

Ergebnis

Wenn Sie diese Schritte befolgen, sieht Ihre Sidebar folgendermaßen aus:

Endergebnis mit Desktop-Ansicht auf der linken und mobiler Ansicht auf der rechten Seite

Den vollständigen Quellcode dieser Anleitung finden Sie in diesem StackBlitz-Beispiel.

Unbegrenzte Möglichkeiten

Sie könnten es auch umgekehrt machen (Liste auf mobilen Geräten, Dropdown auf dem Desktop), indem Sie die CSS-Eigenschaften display: block und display: none tauschen.

Darüber hinaus könnten Sie auch eine eigene Anzeige-Komponente erstellen, die die Routendaten aus dem Starlight Sidebar Topics Plugin verwendet und die Themen auf eine benutzerdefinierte Weise rendert. Das ist etwas anspruchsvoller, aber Sie finden weitere Informationen dazu in der “Custom Topics List”-Dokumentation.