Komponen memungkinkan Anda dengan mudah menggunakan kembali bagian UI atau style secara konsisten.
Contohnya mungkin kartu tautan atau YouTube embed .
Starlight mendukung penggunaan komponen dalam file MDX dan menyediakan beberapa komponen umum yang dapat Anda gunakan.
Pelajari lebih lanjut tentang membuat komponen di Astro Docs .
Menggunakan Komponen
Anda dapat menggunakan komponen dengan mengimpornya ke dalam file MDX Anda dan kemudian merendernya sebagai tag JSX.
Tag-tag ini mirip dengan tag HTML tetapi dimulai dengan huruf kapital yang sesuai dengan nama dalam pernyataan import
Anda:
title : Selamat datang di website dokumentasi saya
import SomeComponent from ' ../../components/SomeComponent.astro ' ;
import AnotherComponent from ' ../../components/AnotherComponent.astro ' ;
< SomeComponent prop = " sesuatu " />
Komponen juga dapat berisi ** konten bertingkat ** .
Karena Starlight dibuat dengan Astro, Anda dapat menambahkan dukungan untuk komponen yang dibangun dengan berbagai UI framework yang didukung (React, Preact, Svelte, Vue, Solid, Lit, dan Alpine) dalam file MDX Anda.
Pelajari lebih lanjut tentang menggunakan komponen dalam MDX di website dokumentasi Astro.
Kompatibilitas dengan style Starlight
Starlight menerapkan style default pada konten Markdown Anda, misalnya menambahkan margin antara elemen-elemen.
Jika style ini tidak sesuai dengan tampilan komponen Anda, atur kelas not-content
pada komponen untuk menonaktifkannya.
< div class = " not-content " >
< p > Tidak terpengaruh oleh style konten default Starlight. </ p >
Komponen Bawaan
Starlight menyediakan beberapa komponen bawaan yang umum digunakan untuk keperluan dokumentasi.
Komponen ini tersedia di package @astrojs/starlight/components
.
Tabs
Anda dapat menampilkan interface berbasis tab menggunakan komponen <Tabs>
dan <TabItem>
.
Setiap <TabItem>
harus memiliki label
untuk ditampilkan kepada pengguna.
import { Tabs, TabItem } from ' @astrojs/starlight/components ' ;
< TabItem label = " Bintang " > Sirius, Vega, Betelgeuse </ TabItem >
< TabItem label = " Bulan " > Io, Europa, Ganymede </ TabItem >
Kode di atas akan menampilkan tab seperti berikut pada halaman:
Cards
Anda dapat menampilkan konten di dalam kotak yang sesuai dengan style Starlight menggunakan komponen <Card>
.
Bungkus beberapa card dalam komponen <CardGrid>
untuk menampilkan card-card secara berdampingan ketika ada cukup ruang.
<Card>
memerlukan title
dan secara opsional dapat ditambahkan atribut icon
yang di-set dengan nama salah satu icon bawaan Starlight .
import { Card, CardGrid } from ' @astrojs/starlight/components ' ;
< Card title = " Cek sekarang " > Konten menarik yang ingin Anda highlight. </ Card >
< Card title = " Bintang " icon = " star " >
< Card title = " Bulan " icon = " moon " >
Kode di atas akan menampilkan hasil sebagai berikut:
Cek sekarang
Konten menarik yang ingin Anda highlight.
Link Cards
Gunakan komponen <LinkCard>
untuk menautkan ke berbagai halaman secara menonjol.
<LinkCard>
memerlukan atribut title
dan href
. Anda juga dapat secara opsional menyertakan description
singkat atau atribut tautan lain seperti target
.
Gabungkan beberapa komponen <LinkCard>
dalam <CardGrid>
untuk menampilkan kartu secara berdampingan ketika terdapat cukup ruang.
import { LinkCard, CardGrid } from ' @astrojs/starlight/components ' ;
title = " Mengkustomisasi Starlight "
description = " Pelajari cara membuat situs Starlight Anda sendiri dengan style, font, dan lainnya. "
href = " /id/guides/customization/ "
< LinkCard title = " Menulis Markdown " href = " /id/guides/authoring-content/ " />
< LinkCard title = " Komponen " href = " /id/guides/components/ " />
Kode di atas akan menampilkan hasil sebagai berikut:
Icon
Starlight menyediakan sejumlah icon umum yang dapat Anda tampilkan dalam konten Anda menggunakan komponen <Icon>
.
Setiap <Icon>
membutuhkan atribut name
dan dapat secara opsional menyertakan atribut label
, size
, dan color
.
import { Icon } from ' @astrojs/starlight/components ' ;
< Icon name = " star " color = " goldenrod " size = " 2rem " />
Kode di atas menghasilkan tampilan berikut di halaman:
Semua Icon
List dari semua icon-icon yang tersedia dapat dilihat di bawah sesuai dengan nama-nya masing-masing. Klik icon untuk menyalin kode komponen tersebut.
up-caret down-caret right-caret right-arrow left-arrow bars translate pencil pen document add-document setting external moon sun laptop open-book information magnifier forward-slash close error warning approve-check-circle approve-check rocket star puzzle list-format random comment comment-alt heart github gitlab bitbucket codePen farcaster discord gitter twitter x.com mastodon codeberg youtube threads linkedin twitch microsoftTeams instagram stackOverflow telegram rss facebook email reddit patreon signal slack matrix hackerOne openCollective blueSky discourse astro alpine pnpm biome bun mdx apple linux homebrew nix starlight pkl node cloudflare vercel netlify deno seti:folder seti:bsl seti:mdo seti:salesforce seti:asm seti:bicep seti:bazel seti:c seti:c-sharp seti:html seti:cpp seti:clojure seti:coldfusion seti:config seti:crystal seti:crystal_embedded seti:json seti:css seti:csv seti:xls seti:cu seti:cake seti:cake_php seti:d seti:word seti:elixir seti:elixir_script seti:hex seti:elm seti:favicon seti:f-sharp seti:git seti:go seti:godot seti:gradle seti:grails seti:graphql seti:hacklang seti:haml seti:mustache seti:haskell seti:haxe seti:jade seti:java seti:javascript seti:jinja seti:julia seti:karma seti:kotlin seti:dart seti:liquid seti:livescript seti:lua seti:markdown seti:argdown seti:info seti:clock seti:maven seti:nim seti:github seti:notebook seti:nunjucks seti:npm seti:ocaml seti:odata seti:perl seti:php seti:pipeline seti:pddl seti:plan seti:happenings seti:powershell seti:prisma seti:pug seti:puppet seti:purescript seti:python seti:react seti:rescript seti:R seti:ruby seti:rust seti:sass seti:spring seti:slim seti:smarty seti:sbt seti:scala seti:ethereum seti:stylus seti:svelte seti:swift seti:db seti:terraform seti:tex seti:default seti:twig seti:typescript seti:tsconfig seti:vala seti:vue seti:wasm seti:wat seti:xml seti:yml seti:prolog seti:zig seti:zip seti:wgt seti:illustrator seti:photoshop seti:pdf seti:font seti:image seti:svg seti:sublime seti:code-search seti:shell seti:video seti:audio seti:windows seti:jenkins seti:babel seti:bower seti:docker seti:code-climate seti:eslint seti:firebase seti:firefox seti:gitlab seti:grunt seti:gulp seti:ionic seti:platformio seti:rollup seti:stylelint seti:yarn seti:webpack seti:lock seti:license seti:makefile seti:heroku seti:todo seti:ignored