컴포넌트를 사용하면 쉽고 일관되게 UI 조각이나 스타일을 재사용할 수 있습니다.
링크 카드나 YouTube 삽입 등을 예로 들 수 있습니다.
Starlight는 MDX 파일에서 컴포넌트 사용을 지원하며 사용할 수 있는 몇 가지 공통 컴포넌트를 제공합니다.
Astro 문서에서 컴포넌트 구축에 대해 자세히 알아보세요.
컴포넌트 사용
MDX 파일에서 컴포넌트를 가져온 다음 JSX 태그로 렌더링하여 사용할 수 있습니다.
이는 HTML 태그처럼 보이지만 import
문에 있는 이름과 일치하는 대문자로 시작합니다.
Starlight는 Astro로 구동되므로 지원되는 UI 프레임워크(React, Preact, Svelte, Vue, Solid, Lit 및 Alpine)로 빌드된 컴포넌트를 MDX 파일에 추가할 수 있습니다.
Astro 문서에서 MDX에서 컴포넌트 사용에 대해 자세히 알아보세요.
Starlight 스타일과의 호환성
Starlight는 요소 사이에 여백을 추가하는 등 Markdown 콘텐츠에 기본 스타일을 적용합니다.
이러한 스타일이 컴포넌트의 모양과 충돌하는 경우 컴포넌트에 not-content
클래스를 추가하여 비활성화하세요.
내장된 컴포넌트
Starlight는 일반적인 문서 사용 사례를 위한 몇 가지 내장 컴포넌트를 제공합니다.
이러한 컴포넌트는 @astrojs/starlight/components
패키지를 통해 사용할 수 있습니다.
탭
<Tabs>
및 <TabItem>
컴포넌트를 사용하여 탭 인터페이스를 표시할 수 있습니다.
각 <TabItem>
은 사용자에게 보여줄 label
을 반드시 포함해야합니다.
위 코드는 페이지에 아래와 같은 탭을 생성합니다.
카드
<Card>
컴포넌트를 사용하면 Starlight 스타일의 상자에 콘텐츠를 표시할 수 있습니다.
공간이 충분할 때 카드를 나란히 표시하려면 <CardGrid>
컴포넌트로 여러 카드를 감싸세요.
<Card>
컴포넌트에는 title
속성이 반드시 필요하며 선택적으로 Starlight 내장 아이콘 중 하나의 이름으로 설정된 icon
속성을 포함할 수 있습니다.
위 코드는 페이지에 아래와 같은 요소들을 생성합니다.
확인
강조하고 싶은 흥미로운 콘텐츠.
링크 카드
다른 페이지로 이동하는 눈에 띄는 링크를 만들기 위해 <LinkCard>
컴포넌트를 사용하세요.
<LinkCard>
컴포넌트에는 title
과 href
속성이 필요합니다. 짧은 description
이나 target
과 같은 기타 링크 속성을 선택적으로 포함할 수 있습니다.
공간이 충분할 때, 카드를 나란히 표시하기 위해 여러 <LinkCard>
컴포넌트를 <CardGrid>
에 그룹화하세요.
위 코드는 페이지에 아래와 같은 요소들을 생성합니다.
아이콘
Starlight는 <Icon>
컴포넌트를 사용하여 콘텐츠에 표시할 수 있는 공통 아이콘 세트를 제공합니다.
각 <Icon>
컴포넌트에는 name
속성이 필요하며 선택적으로 label
, size
및 color
속성을 포함할 수 있습니다.
위 코드는 페이지에 아래와 같은 아이콘을 생성합니다.
모든 아이콘
사용 가능한 모든 아이콘 목록이 관련 이름과 함께 아래에 표시됩니다. 아이콘을 클릭하면 해당 아이콘 컴포넌트의 코드를 복사할 수 있습니다.
코드
예를 들어 파일, 데이터베이스 또는 API와 같은 외부 소스에서 오는 데이터를 렌더링하기 위해 Markdown 코드 블록을 사용할 수 없는 경우 <Code>
컴포넌트를 사용하여 구문 강조 코드를 렌더링합니다.
<Code>
가 지원하는 props에 대한 자세한 내용은 Expressive Code “Code Component” 문서를 참조하세요.
위 코드는 페이지에 다음을 생성합니다.
가져온 코드
Vite의 ?raw
가져오기 접미사를 사용하여 코드 파일을 문자열로 가져옵니다. 그런 다음 가져온 문자열을 <Code>
컴포넌트에 전달하여 페이지에 포함할 수 있습니다.
위 코드는 페이지에 다음을 생성합니다.