テーマコントローラー — sgcHTML | eSeGeCe

テーマコントローラー

TsgcHTMLThemeController / TsgcHTMLThemeBuilder — すべてのページにわたるライト、ダーク、システムテーマを管理し、カスタムブランドカラー向けのBootstrap CSS変数ブロックを生成します。

TsgcHTMLThemeController & TsgcHTMLThemeBuilder

TsgcHTMLThemeController はページテーマ(ptDefaultptDark、または ptDarkPro)を選択し、ページのヘッドに注入する対応する CSS を生成します。TsgcHTMLThemeBuilder はBootstrap CSS変数をブランドカラーで上書きする <style> ブロックを生成します。

コンポーネントクラス

TsgcHTMLThemeControllerTsgcHTMLThemeBuilder

役割

ライト/ダークテーマ管理 & カスタムCSS

ファミリー

インフラ & エンジン

言語

Delphi、C++ Builder、.NET

テーマの切り替えとカスタムカラーの注入

TsgcHTMLThemeController を使用してページテーマを選択し、GetCSS でその CSS を出力します。TsgcHTMLThemeBuilder を使用してブランドカラー用のカスタムCSS変数ブロックを出力します。

uses
  sgcHTML_Component, sgcHTML_ThemeBuilder, sgcHTML_Template_Bootstrap;

// 1) Pick a page theme and inject its CSS into the head:
var
  oTheme: TsgcHTMLThemeController;
begin
  oTheme := TsgcHTMLThemeController.Create(nil);
  try
    oTheme.Theme     := ptDark;   // ptDefault / ptDark / ptDarkPro
    oTheme.CustomCSS := '.navbar{border-bottom:2px solid #7C3AED;}';
    // GetCSS = shared component CSS + theme CSS + your CustomCSS:
    oTemplate.ThemeCSS := oTheme.GetCSS;
  finally
    oTheme.Free;
  end;
end;

// 2) Override Bootstrap CSS variables with your brand colours:
var
  oBuilder: TsgcHTMLThemeBuilder;
begin
  oBuilder := TsgcHTMLThemeBuilder.Create(nil);
  try
    oBuilder.PrimaryColor   := '#7C3AED';
    oBuilder.SecondaryColor := '#1E293B';
    // GetHTML returns a <style> block (+ sync script for tmSystem):
    oTemplate.CustomHead := oTemplate.CustomHead + oBuilder.GetHTML;
  finally
    oBuilder.Free;
  end;
end;
TsgcHTMLThemeController *oTheme = new TsgcHTMLThemeController(NULL);
try
{
  oTheme->Theme    = ptDark;   // ptDefault / ptDark / ptDarkPro
  oTheme->CustomCSS = ".navbar{border-bottom:2px solid #7C3AED;}";
  oTemplate->ThemeCSS = oTheme->GetCSS();
}
__finally { delete oTheme; }

TsgcHTMLThemeBuilder *oBuilder = new TsgcHTMLThemeBuilder(NULL);
try
{
  oBuilder->PrimaryColor   = "#7C3AED";
  oBuilder->SecondaryColor = "#1E293B";
  oTemplate->CustomHead = oTemplate->CustomHead + oBuilder->GetHTML();
}
__finally { delete oBuilder; }
var themeCtrl = new TsgcHTMLThemeController();
themeCtrl.Theme     = TsgcHTMLPageTheme.ptDark;   // ptDefault / ptDark / ptDarkPro
themeCtrl.CustomCSS = ".navbar{border-bottom:2px solid #7C3AED;}";
template.ThemeCSS = themeCtrl.GetCSS();

var themeBuilder = new TsgcHTMLThemeBuilder();
themeBuilder.PrimaryColor   = "#7C3AED";
themeBuilder.SecondaryColor = "#1E293B";
template.CustomHead += themeBuilder.GetHTML();

主要なプロパティとメソッド

最もよく使うメンバーです。

TsgcHTMLThemeController.Theme

ページテーマを選択します:ptDefaultptDark、または ptDarkPro

TsgcHTMLThemeController.CustomCSS

アプリごとの微調整のために、生成されたテーマ CSS に追加される追加の CSS です。

GetCSS / GetSharedCSS

GetCSS は共有コンポーネント CSS に、選択されたテーマ CSS と CustomCSS を加えたものを返し、<head> にそのまま注入できます。クラスメソッド GetSharedCSS は共有コンポーネント CSS のみを返します。

TsgcHTMLThemeBuilder.PrimaryColor

Bootstrapの --bs-primary CSS変数をブランドカラーで上書きします。

TsgcHTMLThemeBuilder.Mode

パレットモード:tmLighttmDark、または tmSystemtmSystem はメディアクエリを介して OS の設定に従います)。

TsgcHTMLThemeBuilder.GetHTML

カラープロパティから構築された <style> ブロックを返します。ModetmSystem の場合は、OS 設定と同期するスクリプトも含まれます。

さらに探索する

オンラインヘルプこのコンポーネントの完全な API リファレンスと使用ガイドです。
すべての sgcHTML コンポーネント60以上のコンポーネントの完全な機能マトリックスをご覧ください。
無料トライアルをダウンロード30日間のトライアルには60.HTMLデモプロジェクトが含まれています。
価格完全なソースコード付きのシングル、チーム、サイトライセンス。

始める準備はできましたか?

無料トライアルをダウンロードして、Delphi、C++ Builder、.NETでWebUIの構築を開始しましょう。