Design System
Design System
The public design system for KITAMAE BASE Kaga Hashitate. We share color, type, spacing, and key component styles to align with stakeholders and partners. The source of truth is the CSS tokens (tokens.css).
Color Tokens
Built on azumi cool navy (ink) and indigo-grey (surface); blue is used only for function.
- ink#00053A
- ink header#0A152F
- accent muted#3A4A6B
- surface#EFF4F6
- text secondary#585E6A
- success#2F6F6A
- error#B3322F
- warning#B06A2A
Typography
Serif for editorial headings / sans for function (nav, body, numerals).
Display Heading (Hero)
Heading 1
Heading 2
Heading 3
Body text. Readability first — generous line height and a constrained measure.
Type Role Duality (R029)
eyebrow = functional word (nav, label, section marker). heroTitle = emotional word (page face, editorial heading). Same Serif typeface, different role classes.
vds-eyebrow
Eyebrow — functional
vds-display-heading
A view only found here, where the sea meets dusk.
Spacing Scale
- 0.5rem
- 0.75rem
- 1rem
- 1.5rem
- 2.5rem
- 4rem
Layout Primitives
Compose Container / Section / Grid to build page blocks. Each owns one concern: width, vertical rhythm, or column layout.
Container — Horizontal width
Choose max-width in 3 steps + full via the size prop. Left/right gutter is always --vds-container-gutter (20px).
size="wide"≒ 1180px — 本文+写真の主要幅(既定)size="read"≒ 800px — 長文の読み幅size="measure"≒ 480px — キャプション・注記の最小可読幅size="full"FullBleed内で自前に幅制御するとき
Section — Vertical rhythm
Control chapter rhythm and surface with spacing and surface props. Use spacing="asym" for chapter blocks.
章ブロック標準(azumi推奨)
spacing="asym" surface="subtle"引用・補足など凹面
spacing="compact" surface="inset"CTA帯・フッタ直前の締め
spacing="default" surface="dark"
Grid — Column layout
Select grid config with cols prop. editorial is the azumi editorial grid (1.2fr:1fr, expands at 769px).
cols="2"均等2列(sm で展開)
12cols="3"均等3列(sm→lg で展開)
123cols="editorial"1.2fr:1fr 非対称(769px 展開・iPad mini 対策)
12cols="5fr-7fr"5:7 非対称(lg で展開)
12
Key Components
CanBusTimetableModal
CAN BUS timetable modal on the Access page. Supports route tab switching, ESC to close, and scroll lock.
PartyPickerDisclosure
Collapsible party-size picker intended for vacancy-calendar-aware contexts (active when NEXT_PUBLIC_AVAILABILITY_CALENDAR_ENABLED=true). Currently inactive — removed from /rooms and /rooms/[slug] until the vacancy calendar is implemented.
⚠ Currently inactive (requires vacancy calendar)
Footer Atoms (3-Zone)
Footer is composed of 3 zones + a bottom legal bar. Each molecule assumes a dark background (vds-color-surface-inverse).
FooterContactBlock
BrandLogo mark住所 + GoogleMapTel / EmailInstagramLeft zone. Brand mark + address + Google Maps link + Tel/Email + Instagram.FooterPrimaryNavCol
StoryRoomsCuisineExperienceAccessCenter left column. Large serif Mincho nav (Story / Rooms / Cuisine / Experience / Access).FooterUtilityLinks
AvailabilityStayStay GuideDinnerLunchFAQJournalCenter right column. Target-audience utility links (stay planning / booking / journal merged). Supports group labels.FooterPressBlock
For PressMedia KitDesign SystemRight zone. Press / media / business partners segment (Media Kit / Design System). Add further brands to the links array.FooterLegalBar
Privacy PolicySpecified Commercial Transactions Act© 2026 KITAMAE BASEBottom bar. Legal links inline (fine print) + copyright. Placed full-width outside the 3-zone grid.PreFooterCTA
BookingCTABlockStayConnectedBlock⚠ Newsletter UI のみGlobal CTA band directly above the Footer. Left: BookingCTABlock (availability pill + phone). Right: StayConnectedBlock (Instagram + Newsletter form). Newsletter is UI only — backend pending (BACKLOG P-01).
sections/ Components
Upper-layer blocks that compose page chapters. Five types: Hero / EditorialSpread / AtmosphericSection / SectionHeader / FinalCTA.
Hero — Page Hero
Choose height with variant. page adds parallax; compact is a thin banner. Composed of photo + serif h1 only.
KITAMAE BASE
variant="default"標準ヒーロー(≒692px)。トップや大判ページ向け。KITAMAE BASE
variant="page"下層ページ標準(≒346px)。scroll parallax 付き。KITAMAE BASE
variant="compact"細帯(≒187px)。FAQ やサブページ向け。
SectionHeader — Chapter Heading
Three-tier: eyebrow → h2 → body. Unified with vds-eyebrow / vds-heading-2 / vds-body tokens.
FACILITIES
Facilities
From hot spring baths to a lounge overlooking the Sea of Japan and dining with local ingredients.
<SectionHeader eyebrow="FACILITIES" title="Facilities" body="…" />
SectionHeaderWithAction — Heading + Trailing CTA
Left: eyebrow → serif display heading (section scale) → body. Right: a primary CTA. On lg, ends-aligned at the baseline. Type: vds-eyebrow (sea) / vds-heading-display × --vds-fs-section-heading / vds-body. Use for "heading + trailing booking CTA" (e.g. plans by purpose).
CHOOSE YOUR PURPOSE
Plan your stay by purpose.
Continue from the stay that fits best. Availability and final rates are confirmed on the official booking screen.
<SectionHeaderWithAction eyebrow title body action={<BookingCTA … />} />
EditorialSpread — Editorial Spread
feature = CTA chapter (home) / editorial = no-CTA flow (cuisine/story). Use photoSide/reverse to control composition.
ROOMS
Sea-view Rooms
Rooms overlooking the Sea of Japan. Experience the tranquility of Kaga Hashitate.
photovariant="feature" photoSide="right"Home editorial spread. Photo right, text left. Includes CTA link.- photo
ROOMS
Sea-view Rooms
Rooms overlooking the Sea of Japan. Experience the tranquility of Kaga Hashitate.
variant="feature" photoSide="left"Photo left, text right. Alternate to create visual rhythm. ROOMS
Sea-view Rooms
Rooms overlooking the Sea of Japan. Experience the tranquility of Kaga Hashitate.
photovariant="editorial" reverse={false}No-CTA editorial flow. Used in cuisine/story chapter blocks.
AtmosphericSection — Atmospheric Background Chapter
Chapter block with photo backdrop + SVG motion. surface="dark" → navy band; "paper"/"washi" → light face. FinalCTA wraps this.
Make a Reservation
surface="dark" motion="sea"FinalCTA / booking band. Navy + white text + SVG motion.Chapter content
surface="paper" motion="sea"Light chapters like access info. With bottom border.Chapter content
surface="washi" motion="none"No motion. Pass photo prop for a faint background image.
GuestVoicesSection — Guest Reviews
A social-proof chapter laid on AtmosphericSection (washi): rating chips + a review CardCarousel. Ratings are functional information, so the heading uses the system (sans) register. Data from content/socialProof.ts. R031: summaries of real posts only, with counts and verified date — no scarcity pressure or inflation.
Reviews
Guest reviews
- Google4.9
- Ikyu / Yahoo!4.95
- Rakuten4.83
- Jalan5.0
The Sea of Japan seen from the lounge was unforgettable.
Guest G, Toyama