アセットインスペクターAssetInspectorPanelExperimental
アセットのプレビュー、タグ、メタデータ、操作をまとめて確認・編集するインスペクターパネルです。
プレビュー
タイトル
campaign_hero_2026
メモ
キャンペーンのメインビジュアルです。
4.5 / 5
タグ
ヒーローWeb
メタデータ
- ファイル名
- campaign_hero_2026.jpg
- 画像サイズ
- 1920 x 1080
- 形式
- JPG
- 容量
- 1.4MB
- 作成日
- 2026-05-12
操作
状態とバリエーション
未選択
アセットが未選択の時に、詳細が表示されない理由を示します。
詳細
アセットを選択すると詳細が表示されます。
コンパクト
狭い詳細ペイン向けに、余白を抑えながらお気に入りとタグ編集を確認します。
タイトル
spring_banner_728x90
メモ
-
タグ
バナーWeb
メタデータ
- ファイル名
- spring_banner_728x90.png
- 画像サイズ
- 728 x 90
- 形式
- PNG
- 容量
- 418KB
- 作成日
- 2026-05-10
通常表示
プレビュー、メタデータ、タグ、評価、主要アクションをまとめて表示する標準の詳細ペインです。
タイトル
campaign_hero_2026
メモ
キャンペーンのメインビジュアルです。
4.5 / 5
タグ
ヒーローWeb
メタデータ
- ファイル名
- campaign_hero_2026.jpg
- 画像サイズ
- 1920 x 1080
- 形式
- JPG
- 容量
- 1.4MB
- 作成日
- 2026-05-12
操作
プロパティ
表は横にスクロールできます
| プロパティ | 型 | 初期値 | 説明 |
|---|---|---|---|
| asset | AssetCardAsset | null | - | 詳細を表示する選択中アセットです。 |
| title | string | - | アセット未選択時に使う任意のヘッダータイトルです。 |
| tags | string[] | - | 選択中アセットの現在のタグです。 |
| tagSuggestions | string[] | - | クイック追加として表示するタグ候補です。 |
| metadata | MetadataListItem[] | - | 標準のサイズ、形式、容量、作成日の行を差し替えます。 |
| note | string | - | メモフィールドに表示する編集可能な値です。 |
| labels | AssetInspectorPanelLabels | - | フィールドやアイコン操作に使うローカライズ済みラベルです。 |
| variant | "default" | "compact" | - | 余白とプレビュー角丸を切り替えます。 |
| onTitleChange | (title) => void | - | 表示タイトルの保存/キャンセル付き編集を表示して処理します。 |
| onNoteChange | (note) => void | - | メモの保存/キャンセル付き編集を表示して処理します。 |
| onPreview | (asset) => void | - | プレビュー画像クリック時に呼び出されます。 |
| onFavorite | (asset) => void | - | ヘッダーのお気に入り操作を表示して処理します。 |
| onShare | (asset) => void | - | ヘッダーの共有操作を表示して処理します。 |
| onDownload | (asset) => void | - | ヘッダーのダウンロード操作を表示して処理します。 |
| onDelete | (asset) => void | - | ヘッダーの削除操作を表示して処理します。 |
| onClose | () => void | - | ヘッダーの閉じる操作を表示して処理します。 |
| onRatingChange | (rating, asset) => void | - | 選択中アセットの 0-5 点評価を 0.5 刻みで表示して処理します。 |
| onAnalyze | (asset) => void | - | 解析アクションを表示して処理します。 |
| onCompress | (asset) => void | - | 圧縮アクションを表示して処理します。 |
使い方
import { AssetInspectorPanel } from "@gunjo/ui";
import * as React from "react";
const asset = {
id: "hero",
title: "campaign_hero_2026.jpg",
src: "https://images.unsplash.com/photo-1557683316-973673baf926?auto=format&fit=crop&w=640&q=80",
width: 1920,
height: 1080,
type: "JPG",
size: "1.4MB",
createdAt: "2026-05-12",
isFavorite: true,
rating: 4.5,
};
export function Example() {
const [tags, setTags] = React.useState(["ヒーロー", "Web"]);
const [note, setNote] = React.useState("キャンペーンのメインビジュアルです。");
return (
<AssetInspectorPanel
asset={asset}
note={note}
metadata={[
{ label: "ファイル名", value: asset.title },
{ label: "画像サイズ", value: "1920 x 1080" },
{ label: "形式", value: "JPG" },
{ label: "容量", value: "1.4MB" },
]}
onTitleChange={() => {}}
onNoteChange={setNote}
tags={tags}
onTagsChange={setTags}
onRatingChange={() => {}}
onFavorite={() => {}}
onShare={() => {}}
onDownload={() => {}}
onDelete={() => {}}
onClose={() => {}}
onAnalyze={() => {}}
onCompress={() => {}}
/>
);
}設計の判断
- 選んだものが無いときの姿を先に決めた。
assetが空のときは、アイコンと1行の案内だけを出します。資料は核を「選択状態との連動」に置いています。空のパネルを畳んで消すのではなく、場所を残して理由を書くことで、右側の幅が選択のたびに動かないようにしました。 - プロパティを意味でまとめた。題名と説明・評価・タグ・メタデータ・操作、の5つの
InspectorSectionに分けています。資料も「全プロパティをフラットに並べると視認性が下がる」と書いています。メタデータの中はMetadataListのcompactを使うので、名前と値の位置が節をまたいでそろいます。 - 評価は星とスライダーの両方から動かせる。星は0.5刻みのボタン、
Sliderは同じ値をキーボードの矢印キーで動かす入口です。資料は「数値は上下キーで動かせるようにする」を挙げています。星だけだと細かい値をキーボードで合わせられないので、両方を置き、現在値を「3.5 / 5」の形で数字でも出しました。
一般のインスペクターパネルの設計は UIXHERO の「インスペクターパネル」にあります。
使用コンポーネント
関連コンポーネント
いつ・なぜ使うか(UIXHERO)
「いつ・なぜ使うか」の判断は、姉妹サイト UIXHERO の記事で解説しています。