Theme Controller

TsgcHTMLThemeController / TsgcHTMLThemeBuilder — 모든 페이지에서 라이트, 다크 및 시스템 테마를 관리하고, 사용자 정의 브랜드 색상을 위한 Bootstrap CSS 변수 블록을 생성합니다.

TsgcHTMLThemeController & TsgcHTMLThemeBuilder

TsgcHTMLThemeController는 쿠키 또는 쿼리 파라미터를 읽어 활성화할 Bootstrap 테마를 결정하고 필요한 초기화 스크립트를 삽입합니다. TsgcHTMLThemeBuilder는 브랜드 색상으로 Bootstrap CSS 변수를 재정의하는 <style> 블록을 생성합니다.

컴포넌트 클래스

TsgcHTMLThemeController, TsgcHTMLThemeBuilder

역할

라이트/다크 테마 적용 & 사용자 정의 CSS

제품군

인프라 & 엔진

언어

Delphi, C++ Builder, .NET

테마 전환 및 사용자 정의 색상 삽입

TsgcHTMLThemeController를 사용하여 쿠키 또는 쿼리 파라미터를 읽고 올바른 Bootstrap 테마 속성을 적용합니다. TsgcHTMLThemeBuilder를 사용하여 브랜드 색상을 위한 사용자 정의 CSS 변수 블록을 출력합니다.

uses
  sgcHTML_ThemeController;

// Detect theme from request cookie:
var
  oTheme: TsgcHTMLThemeController;
begin
  oTheme := TsgcHTMLThemeController.Create(nil);
  try
    oTheme.CookieName    := 'app_theme';
    oTheme.DefaultTheme  := htSystem;
    // Inject into the Bootstrap template:
    oTemplate.HeadContent :=
      oTemplate.HeadContent + oTheme.GetThemeScript(ARequest);
  finally
    oTheme.Free;
  end;
end;

// Generate brand CSS variables:
var
  oBuilder: TsgcHTMLThemeBuilder;
begin
  oBuilder := TsgcHTMLThemeBuilder.Create(nil);
  try
    oBuilder.PrimaryColor   := '#7C3AED';
    oBuilder.SecondaryColor := '#1E293B';
    oTemplate.HeadContent :=
      oTemplate.HeadContent + oBuilder.Build;
  finally
    oBuilder.Free;
  end;
end;
TsgcHTMLThemeController *oTheme = new TsgcHTMLThemeController(NULL);
try
{
  oTheme->CookieName   = "app_theme";
  oTheme->DefaultTheme = htSystem;
  oTemplate->HeadContent += oTheme->GetThemeScript(ARequest);
}
__finally { delete oTheme; }

TsgcHTMLThemeBuilder *oBuilder = new TsgcHTMLThemeBuilder(NULL);
try
{
  oBuilder->PrimaryColor = "#7C3AED";
  oTemplate->HeadContent += oBuilder->Build();
}
__finally { delete oBuilder; }
var themeCtrl = new TsgcHTMLThemeController();
themeCtrl.CookieName   = "app_theme";
themeCtrl.DefaultTheme = TsgcHTMLTheme.htSystem;
template.HeadContent += themeCtrl.GetThemeScript(request);

var themeBuilder = new TsgcHTMLThemeBuilder();
themeBuilder.PrimaryColor = "#7C3AED";
template.HeadContent += themeBuilder.Build();

주요 속성 및 메서드

가장 자주 사용하는 멤버.

TsgcHTMLThemeController.CookieName

사용자의 테마 설정(htLight / htDark / htSystem)을 저장하는 쿠키의 이름입니다.

TsgcHTMLThemeController.DefaultTheme

쿠키 또는 쿼리 파라미터가 없을 때의 폴백 테마입니다.

GetThemeScript

요청에서 활성 테마를 읽고(쿠키 또는 ?theme= 파라미터) <head>에 삽입할 Bootstrap 테마 초기화 스크립트를 반환합니다.

TsgcHTMLThemeBuilder.PrimaryColor

Bootstrap의 --bs-primary CSS 변수를 브랜드 색상으로 재정의합니다.

TsgcHTMLThemeBuilder.CustomVars

모든 Bootstrap 또는 앱 수준 변수를 위해 생성된 <style> 블록에 추가되는 원시 CSS 사용자 정의 속성 선언입니다.

TsgcHTMLThemeBuilder.Build

:root 재정의를 포함하는 <style> 블록을 반환하며, TsgcHTMLTemplate_Bootstrap.HeadContent에 할당합니다.

계속 탐색하기

온라인 도움말이 컴포넌트의 전체 API 참조 및 사용 가이드입니다.
모든 sgcHTML 컴포넌트60개 이상의 컴포넌트 전체 기능 매트릭스를 살펴보세요.
무료 체험판 다운로드30일 체험판에는 60.HTML 데모 프로젝트가 포함되어 있습니다.
가격전체 소스 코드가 포함된 단일, 팀 및 사이트 라이선스.

시작할 준비가 되셨나요?

무료 체험판을 다운로드하고 Delphi, C++ Builder 및 .NET에서 웹 UI 빌드를 시작하세요.