S shadcn · 01

사이트 머리

Site header

흰 바탕에 얇은 아래 선 하나. 메뉴 글자는 옅은 회색이고 지금 보는 주제만 검게 보여요.

쓰는 규칙메뉴는 스크립트 없이 열리고 닫히고, 지금 보고 있는 주제는 화면 읽기 프로그램에도 「현재 페이지」로 알린다.

다른 이름: SiteHeaderNavigationMenuTabs
···
usage (Astro)
---
// src/layouts/Base.astro
import { SiteHeader } from '../components/registry';
---
<SiteHeader site={site} nav={nav} />
site.json
// sites/<사이트>/site.json — 적지 않으면 사이트 이름으로 자동으로 고른다
{
  "variants": { "SiteHeader": "bar" }
}
props (TypeScript)
export interface SiteHeaderProps {
  site: SiteConfig;
  /** 주제(카테고리) + 소개. 허브는 소개만 */
  nav: NavLink[];
  variant?: VariantOf<'SiteHeader'>;
}

세 변형 모두 상자나 색 띠 없이 흰 바탕과 가는 선만 써요. bar 는 왼쪽에 검은 둥근 표식과 이름, 오른쪽에 메뉴 글자가 한 줄로 놓여요. stacked 는 이름 옆에 옅은 회색 한 줄 소개가 붙고, 아래 줄에 주제가 연회색 알약 안의 탭으로 나와요. 지금 주제는 흰 알약이 위로 떠 보여요. compact 는 왼쪽에 이름만 두고, 오른쪽 끝에 테두리 있는 「전체 메뉴」 버튼 하나만 놓아요. 펼치면 주제마다 이름과 설명이 나와요.

주제가 적고 이름이 짧으면 bar 가 가장 조용해요. 주제 탭을 늘 눈에 보이게 하고 싶으면 stacked, 주제가 많으면 compact 가 맞아요. 흰 바탕과 가는 선뿐이라 색이 많은 사이트보다 글 중심 사이트에 어울려요.

원본의 메뉴 글자 크기와 굵기를 따르고, 떠 있는 펼침 판에도 그림자를 쓰지 않고 테두리만 둬요. 그림자는 카드에만 쓰는 약속이에요.

이럴 때 — 변형 3

  1. bar한 줄 주제가 3~5개라 이름 옆 한 줄에 다 들어갈 때. 폰에서는 메뉴를 펼쳐서 본다.쓰는 사이트 3곳: babyplay, babysick, feeding
  2. stacked두 줄 주제 탭을 늘 보여 주고 싶을 때 — 폰에서도 접지 않고 옆으로 밀어 본다.쓰는 사이트 4곳: babyfood, toddlerfood, vaccination, 허브
  3. compact전체 메뉴 주제가 많거나 주제마다 한 줄 설명·글 수를 보여 주고 싶을 때.쓰는 사이트 4곳: babysleep, birthprep, milestone, newborn
페이지로 열기 ↗

항목 추가 요청

빠진 컴포넌트·변형이나 팩에서 고칠 점을 알려 주세요. 하나씩 보고 원본 팩에 반영합니다.