streamlit-shadcn-ui: Streamlitにshadcn系コンポーネントを組み込む
ObservedObserver/streamlit-shadcn-uiは実運用向けに使える実用的なオープンソース実装で、再利用可能な導入ルートを持つプロジェクトです。
ひと目でわかる
- これは何?
- Streamlit Components V2で入力、選択、日付、ナビゲーション、表示部品を提供するMITライセンスのPythonパッケージ。
- 誰に向いている?
- streamlit-shadcn-uiはStreamlitの画面にshadcn系の入力と表示部品を揃えたいPython開発者向けです。READMEはPython 3.10以上とStreamlit 1.60以上を要求するため、まず仮想環境で各部品の戻り値、keyの安定性、再実行時の状態を確認し、見た目だけで採用を決めないでください。
- 商用利用できる?
- できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されています。最後のコミットは 8 日前です。
- 何の言語で書かれている?
- 主に TypeScript です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月14日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
Components V2で部品をまとめる
streamlit-shadcn-uiは、shadcn-uiの部品をStreamlit Components V2として実装するプロジェクトです。READMEのカタログにはcheckbox、input、textarea、inputotp、slider、switch、select、dropdownmenu、radiogroup、buttonなどがあります。日付と移動ではcalendar、datepicker、tabs、accordion、表示ではprogress、scrollarea、separator、skeleton、tableなどを挙げています。
これはStreamlitアプリの状態管理や業務ロジックを置き換えるものではありません。部品の見た目とPython側の値の受け渡しを用意する層です。カタログに名前があることと、アプリのアクセシビリティや全ブラウザでの動作を確認済みであることは分けて考えます。
採用前の記録ではobservedobserver-streamlit-shadcn-ui-deep-analysisのリリース、実行環境、入力、出力を固定します。画面やREADMEの印象ではなく、コマンドの終了コード、生成されたファイル、ネットワーク接続、エラー時の復帰を確認します。正常系だけでなく、設定値を欠かせた場合、権限を持たない場合、途中でプロセスを止めた場合も試します。観察結果は人が読めるメモと機械的なログの両方に残し、次の更新で同じ手順を再実行できる形にします。
導入を決める前に、observedobserver-streamlit-shadcn-ui-deep-analysisが触れる範囲を一覧化します。読み取りだけか、ファイル変更や外部接続も行うかを分け、許可した範囲を越えた記録がないかを確認します。依存するランタイムと補助サービスの版を保存し、更新前後で差分を比較します。失敗したときに残るログの場所、利用者が元の状態へ戻す方法、削除や無効化の手順が説明できなければ、本番の対象には広げません。
この確認では、observedobserver-streamlit-shadcn-ui-deep-analysisにない機能を推測で補いません。READMEに記載された入口から小さな入力を与え、期待する応答と実際の応答を比べます。未記載の挙動は未確認として残し、数値や互換性を一般化しません。
Python 3.10とStreamlit 1.60
Installationの前提はPython 3.10以上とStreamlit 1.60以上です。導入コマンドは`pip install streamlit-shadcn-ui`と記載されています。まず仮想環境へインストールし、`streamlit run`で小さな検証アプリを起動して依存解決とブラウザ表示を確認します。
READMEの資料だけでは、対応するPythonの上限、各部品の細かなAPI、リリースごとの破壊的変更を一覧できません。環境の`pip freeze`、Streamlitの版、パッケージのリリースを保存し、サンプルのHome.pyを読んでから既存アプリへ組み込みます。
Choiceは表示ラベルを返さない
Choice系コンポーネントは、表示用ラベルではなく元のPython値を返します。READMEは`formatfunc`、`Choice`、`MenuItem`を使って表示を変えても返却値は変わらないと説明しています。人間に見える文字列と、データベースへ保存する識別子を分けたい画面では、この仕様が重要です。
検証では、表示名が日本語の選択肢と、値が数値や辞書の選択肢を用意します。選択後のPython変数を表示し、再実行、未選択、選択肢変更の三状態を記録します。ラベルをそのまま保存する前提のコードを移行する場合は、戻り値の型を先に合わせます。
keyは動的な部品の身元になる
Quick Startは、通常の呼び出しではkeyが任意でも、ループから部品を作る場合、並べ替える場合、他の引数が変わっても同一性を保ちたい場合は安定したkeyを追加するよう説明しています。これはStreamlitの再実行モデルで入力状態を追跡するための指定です。
リストのインデックスだけをkeyにすると、並べ替え時に別項目へ状態が移る可能性があります。項目IDを使ったkeyを設定し、追加、削除、順序変更を行って入力値が意図した行に残るか確認します。部品側のkey処理とアプリ側の状態保存を混同しないよう、両方のログを分けます。
Home.pyを実行可能な資料にする
READMEは、ドキュメントアプリのHome.pyがカタログ全体の実行可能なドキュメントだと説明しています。各部品の名前だけを一覧で読むより、入力を与えたときの戻り値、イベント、レイアウトを実際に見る入口になります。
サンプルを本番データで起動せず、仮想環境とローカルポートで確認します。checkboxやinputから始め、Choice、datepicker、tabs、tableへ順に広げます。ブラウザの開発者ツールでエラーを確認し、Streamlitの再実行で値が失われないかを部品ごとに記録します。
用途と未確定の範囲
入力フォームや管理画面をStreamlitで作り、部品の見た目を統一したい開発者には使い道があります。既存のStreamlit版が古い場合、対応していないPython版を使う場合、デザイン互換を厳密に要求する場合は、READMEだけでは採用を決められません。MITライセンスは利用条件を示しますが、サポートや性能保証ではありません。
最初の判断は、`pip install streamlit-shadcn-ui`後にPython 3.10以上とStreamlit 1.60以上を確認し、Home.pyの部品を一つずつ再実行テストすることです。戻り値の型、安定key、キーボード操作、狭い画面での崩れを保存し、issueとリリース履歴に照らして更新計画を作ります。
検証アプリでは、同じ値を表示ラベルと返却値に分けたChoiceを作り、選択結果のPython型を表示します。ループの項目を並べ替えた後も安定keyが入力状態を正しい項目へ保つか、datepickerとtabsを切り替えても値が消えないかを記録します。狭いブラウザ幅とキーボードだけの操作も、Home.pyの例とは別に確認します。
編集部の結論
streamlit-shadcn-uiはStreamlitの画面にshadcn系の入力と表示部品を揃えたいPython開発者向けです。READMEはPython 3.10以上とStreamlit 1.60以上を要求するため、まず仮想環境で各部品の戻り値、keyの安定性、再実行時の状態を確認し、見た目だけで採用を決めないでください。
コミュニティノート