diff --git a/src/components/ui/tabs/index.stories.tsx b/src/components/ui/tabs/index.stories.tsx index ba87258..ff9e26e 100644 --- a/src/components/ui/tabs/index.stories.tsx +++ b/src/components/ui/tabs/index.stories.tsx @@ -75,6 +75,54 @@ export const Scrollable: TabsListVariantStory = { ), }; +/** + * コンテンツ切り替え fade-in と line インジケータースライドの確認用。 + * en: For verifying content fade-in and line indicator slide motion. + */ +export const MotionPreview: Story = { + parameters: { + docs: { + description: { + story: + "タブを切り替えてモーションを確認する。上段:solid / ghost(コンテンツ fade-in のみ)。下段:line(コンテンツ fade-in + インジケータースライド)。\n\n**コンテンツ**:opacity(0)+translateY(6px)→opacity(1)+translateY(0)、200ms ease-out。\n**line インジケーター**:アクティブタブの位置・幅に追従してスライド、250ms cubic-bezier(0.16,1,0.3,1)。\n\nen: Switch tabs to verify motion. Top: solid/ghost (content fade-in only). Bottom: line (content fade-in + indicator slide). Content: opacity(0)+translateY(6px)→(1)+0, 200ms ease-out. Line indicator: slides to active tab position/width, 250ms cubic-bezier(0.16,1,0.3,1).", + }, + }, + }, + render: () => ( +
+ {/* solid */} +
+

solid

+ + + アカウント + 通知 + セキュリティ + +

アカウント設定の内容がここに入ります。

+

通知設定の内容がここに入ります。

+

セキュリティ設定の内容がここに入ります。

+
+
+ + {/* line */} +
+

line — インジケータースライド確認

+ + + アカウント + 通知 + セキュリティ + +

アカウント設定の内容がここに入ります。

+

通知設定の内容がここに入ります。

+

セキュリティ設定の内容がここに入ります。

+
+
+
+ ), +}; + export const Solid: Story = { render: args => (