Skip to main content
Designkufu

smarthr-ui-side-nav

SideNavは、同一画面内のビューを縦方向に並べて切り替えるためのナビゲーションコンポーネントです。「コレクションとシングルの2カラム」ページレイアウトのコレクション領域で一覧から選んだオブジェクトの詳細を切り替えるとき、設定画面などで1つの画面内に並ぶビューを切り替えるときに使います。

Stars
30
Source
kufu/smarthr-design-system
Updated
2026-05-29
Slug
kufu--smarthr-design-system--smarthr-ui-side-nav
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/kufu/smarthr-design-system/HEAD/plugins/smarthr-design-system/skills/smarthr-ui-side-nav/SKILL.md -o .claude/skills/smarthr-ui-side-nav.md

Drops the SKILL.md into .claude/skills/smarthr-ui-side-nav.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

同一画面内のビューを縦方向に並べて切り替えるためのナビゲーションコンポーネントです。「コレクションとシングルの2カラム」ページレイアウトのコレクション領域で一覧から選んだオブジェクトの詳細を切り替えるとき、設定画面などで1つの画面内に並ぶビューを切り替えるときに使います。

import

import { SideNavItemButton, SideNavItemAnchor, SideNav } from 'smarthr-ui'

Props

SideNavItemButton

Props 名 デフォルト値 必須 説明
title ReactNode - - アイテムのタイトル @deprecated SideNav で items を使う時の props です。children を使ってください。
size "S" | "M" - - アイテムの大きさ
prefix ReactNode - - タイトルのプレフィックスの内容。通常、StatusLabelやIconの配置に用います。
current boolean - - 選択されているアイテムかどうか
suffix ReactNode - - タイトルのサフィックスの内容。通常、Prefixを使用済みの場合にStatusLabelやChipの配置に用います。
onClick (e: MouseEvent<HTMLButtonElement, MouseEvent>) => void - - -

SideNavItemAnchor

Props 名 デフォルト値 必須 説明
title ReactNode - - アイテムのタイトル @deprecated SideNav で items を使う時の props です。children を使ってください。
size "S" | "M" - - アイテムの大きさ
prefix ReactNode - - タイトルのプレフィックスの内容。通常、StatusLabelやIconの配置に用います。
current boolean - - 選択されているアイテムかどうか
suffix ReactNode - - タイトルのサフィックスの内容。通常、Prefixを使用済みの場合にStatusLabelやChipの配置に用います。
onClick (e: MouseEvent<HTMLAnchorElement, MouseEvent>) => void - - -
href string - -
elementAs ElementType - - next/link などのカスタムコンポーネントを指定します。指定がない場合はデフォルトで a タグが使用されます。

SideNav

Props 名 デフォルト値 必須 説明
items SideNavItemButtonProps[] - - 各アイテムのデータの配列 @deprecated SideNavItemButton を使ってください
size "S" | "M" M - 各アイテムの大きさ
onClick (e: MouseEvent<HTMLAnchorElement | HTMLButtonElement, MouseEvent>, id: string) => void - - アイテムを押下したときに発火するコールバック関数
className string - - コンポーネントに適用するクラス名
rounded boolean | "all" | "top" | "bottom" | "left" | "right" - - -

実装ルール

SideNav に直接関連する eslint-plugin-smarthr のルールは現時点ではありません。

使い方チェックリスト

使用上の注意 > TabBarで代用できないか検討する

  • [should] スタックするアイテムが多くなくナビゲーション機能が不要な場合は TabBar の使用を検討する

使用上の注意 > 入れ子で使用しない

  • [avoid] SideNav の影響範囲内のビューで SideNav を使わない
    • SideNav 内のビューを分割したい場合は TabBar を使う
    • TabBar 内でビューを分割したい場合は SideNav を使う

モバイル

  • [must] SideNav を使った 2 カラムのレイアウトはモバイルに適さないため、ページを分割するか SideNav をドロワーで表示する