Компоненты позволяют вам легко повторно использовать фрагменты UI или стилизации.
Примерами могут служить ссылочные карточки или встроенные видео YouTube.
Starlight поддерживает использование компонентов в файлах MDX и предоставляет некоторые общие компоненты для вашего использования.
Узнайте больше о создании компонентов в документации Astro .
Использование компонент
Вы можете использовать компонент, импортировав его в ваш файл MDX, а затем отобразив его как тег JSX.
Они выглядят как HTML-теги, но начинаются с заглавной буквы, соответствующей имени в вашем операторе import
:
title : Добро пожаловать на мою документацию
import SomeComponent from ' ../../components/SomeComponent.astro ' ;
import AnotherComponent from ' ../../components/AnotherComponent.astro ' ;
< SomeComponent prop = " something " />
Компоненты могут содержать ** вложенный контент ** .
Поскольку Starlight работает на базе Astro, вы можете использовать компоненты,
созданные на любом поддерживаемом UI-фреймворке (React, Preact, Svelte, Vue, Solid, Lit и Alpine)
в ваших файлах MDX.
Узнайте больше о использовании компонентов в MDX в документации Astro.
Совместимость со стилями Starlight
Starlight применяет стандартные стили к вашему содержимому в формате Markdown, например, добавляет отступ между элементами.
Если эти стили конфликтуют с внешним видом вашего компонента, установите класс not-content
для вашего компонента, чтобы отключить их.
< div class = " not-content " >
< p > Стандартные стили Starlight не применены. </ p >
Встроенные компоненты
Starlight предоставляет встроенные компоненты для частых случаев, нужных в документации.
Эти компоненты доступны из пакета @astrojs/starlight/components
.
Вкладки
Вы можете отобразить интерфейс с вкладками, используя компоненты <Tabs>
и <TabItem>
.
Каждый компонент <TabItem>
должен иметь label
для отображения пользователям.
import { Tabs, TabItem } from ' @astrojs/starlight/components ' ;
< TabItem label = " Звезды " > Сириус, Вега, Бетельгейзе </ TabItem >
< TabItem label = " Луны " > Ио, Европа, Ганимед </ TabItem >
Вышеуказанный код генерирует следующие вкладки на странице:
Сириус, Вега, Бетельгейзе
Карточки
Вы можете отображать контент в блоке, со стилями Starlight, используя компонент <Card>
.
Оберните несколько карточек в компонент <CardGrid>
, чтобы отображать карточки рядом, когда есть достаточно места.
<Card>
требует title
и может дополнительно включать атрибут icon
, установленный как название одного из встроенных иконок Starlight .
import { Card, CardGrid } from ' @astrojs/starlight/components ' ;
< Card title = " Зацени " > Интересный контент, который вы хотите подсветить. </ Card >
< Card title = " Звезды " icon = " star " >
Сириус, Вега, Бетельгейзе
< Card title = " Луны " icon = " moon " >
Вышеуказанный код генерирует следующее на странице:
Зацени
Интересный контент, который вы хотите подсветить.
Звезды
Сириус, Вега, Бетельгейзе
Луны
Ссылочные карточки
Используйте компонент <LinkCard>
для создания заметных ссылок на разные страницы.
<LinkCard>
требует атрибута title
и атрибута href
.
По желанию вы можете добавить краткое description
или другие атрибуты ссылки, такие как target
.
Группируйте несколько компонентов <LinkCard>
в <CardGrid>
, чтобы отображать карточки рядом, когда есть достаточно места.
import { LinkCard, CardGrid } from ' @astrojs/starlight/components ' ;
title = " Кастомизация Starlight "
description = " Узнайте, как сделать ваш сайт на Starlight уникальным с вашим логотипом, шрифтами, дизайном главной страницы и многим другим "
href = " /ru/guides/customization/ "
title = " Создание контента в Markdown "
href = " /ru/guides/authoring-content/ "
< LinkCard title = " Компоненты " href = " /ru/guides/components/ " />
Вышеуказанный код генерирует следующее на странице:
Кастомизация Starlight Узнайте, как сделать ваш сайт на Starlight уникальным с вашим логотипом, шрифтами, дизайном главной страницы и многим другим
Иконки
Starlight предоставляет набор общих иконок, которые вы можете отображать в своем контенте, используя компонент <Icon>
.
Каждый <Icon>
требует атрибут name
и по желанию может включать атрибуты label
, size
и color
.
import { Icon } from ' @astrojs/starlight/components ' ;
< Icon name = " star " color = " goldenrod " size = " 2rem " />
Вышеуказанный код генерирует следующее на странице:
Все иконки
Список всех доступных иконок показан ниже с их соответствующими именами. Кликните по значку, чтобы скопировать код компонента для него.
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 github gitlab bitbucket codePen discord gitter twitter x.com mastodon codeberg youtube threads linkedin twitch microsoftTeams instagram stackOverflow telegram rss facebook email reddit patreon slack matrix openCollective astro pnpm biome bun mdx 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