【Streamlit】CSSを適用して細かくデザインを調整

Streamlit
この記事は約5分で読めます。

こんにちは、JS2IIUです。
今回は、st.markdown と HTML/CSS を使ったカスタムスタイルの方法について紹介していきます。少しの工夫でお好みの見た目を実現できる方法です。今回もよろしくお願いします。

はじめに

Streamlit は、Python で手軽に Web アプリを作成できる便利なフレームワークです。グラフや入力フォームなどを簡単に配置できる反面、「デザインをもっと自由にカスタマイズしたい」と感じたことはありませんか?

本記事では、Streamlit に CSS(スタイルシート) を取り入れて、文字の色やサイズ、レイアウトなどをより細かく調整する方法を解説します。
特に st.markdown(..., unsafe_allow_html=True) を使って HTML/CSS を組み込む方法を、サンプルコードとともに丁寧に紹介します。

なぜ CSS を使うのか?

Streamlit の標準UIはシンプルでとても便利ですが、たとえば次のような要望を叶えるには CSS の力が必要です:

  • 文字の色やサイズを変えたい
  • 特定のボックスだけ背景色をつけたい
  • コンテンツ同士の間隔を広げたい
  • おしゃれな見出しや枠をつけたい

こうした細かいスタイリングは、HTMLとCSSの組み合わせで実現できます。

Streamlit で HTML/CSS を使う基本

ステップ1: st.markdown() を使う

Streamlit は st.markdown に HTML を渡すことで、見た目をある程度カスタマイズできます。ただし、そのままだと HTML タグは無視されてしまうため、オプション unsafe_allow_html=True を指定する必要があります。

サンプルコード(見出しを青色にする)

注)本記事のサンプルコードは全て画像になっています。コピペできなくて申し訳ないのですが、unsafe_allow_html=Trueがあることでコードブロックがブログ上に正しく表示できないため、やむをえず画像を貼っております。ご了承ください。

出力結果

これは青い見出しです(色付きで大きめの見出しになります)

よく使う CSS カスタマイズの例

1. テキストの色・サイズ・太さを変える

2. ボックスに枠線や背景色をつける

3. 複数行の HTML をわかりやすく書く(ヒアドキュメント形式)

複数の要素に共通の CSS を適用する

<style> タグを使えば、複数の HTML 要素に共通のスタイルを当てられるので便利です。

ステップ1: CSS クラスを定義

ステップ2: クラスを使用した HTML を表示

このようにすることで、同じデザインの要素を複数並べられます。

カスタム CSS を使ったレイアウトの工夫

Streamlit の columns を使って横並びにした要素にも、CSS を使えばもっと魅力的にデザインできます。

例:2列のカード風デザイン

カード風にスタイリングすることで、UI が一気にプロっぽくなります。

注意点とベストプラクティス

🔒 unsafe_allow_html=True は注意して使おう

このオプションを使うと、HTML がそのまま表示されるため、悪意あるコード(XSSなど)を防ぐために注意が必要です。信頼できるコードだけを使いましょう。

⚠ CSS が効かない場合もある

Streamlit は内部で HTML を生成しているため、特定のタグやスタイルが反映されない場合もあります。なるべく div, p, h1~h6 など基本的な要素を使いましょう。

✅ 使いすぎに注意

デザインに凝りすぎると、コードが複雑になります。スタイルは シンプルかつ効果的 に使うのがおすすめです。

まとめ

本記事では、Streamlit で HTML/CSS を使ってデザインを調整する方法を紹介しました。

🔸 st.markdown(..., unsafe_allow_html=True) を使って HTML を埋め込む
🔸 CSS を使えば、色・サイズ・レイアウトの細かい調整が可能
🔸 <style> タグで共通のデザインをまとめると管理が楽
🔸 過度な装飾やセキュリティには注意!

Streamlit アプリを自分好みにカスタマイズする第一歩として、CSS をぜひ取り入れてみてください!

参考リンク

最後に書籍のPRです。
24年9月に出版された「ハイパーモダンPython-信頼性の高いワークフローを構築するモダンテクニック」、Claudio Jolowicz著、嶋田、鈴木訳。開発環境の構築、プロジェクトの管理、テストに関して実践的な内容でとても参考になる一冊です。Poetryについても詳しく説明されています。ぜひ手に取ってみてください。

最後まで読んでいただきありがとうございます。

コメント

タイトルとURLをコピーしました