Theme Controller
TsgcHTMLThemeController / TsgcHTMLThemeBuilder — 모든 페이지에서 라이트, 다크 및 시스템 테마를 관리하고, 사용자 정의 브랜드 색상을 위한 Bootstrap CSS 변수 블록을 생성합니다.
TsgcHTMLThemeController / TsgcHTMLThemeBuilder — 모든 페이지에서 라이트, 다크 및 시스템 테마를 관리하고, 사용자 정의 브랜드 색상을 위한 Bootstrap CSS 변수 블록을 생성합니다.
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();
가장 자주 사용하는 멤버.
사용자의 테마 설정(htLight / htDark / htSystem)을 저장하는 쿠키의 이름입니다.
쿠키 또는 쿼리 파라미터가 없을 때의 폴백 테마입니다.
요청에서 활성 테마를 읽고(쿠키 또는 ?theme= 파라미터) <head>에 삽입할 Bootstrap 테마 초기화 스크립트를 반환합니다.
Bootstrap의 --bs-primary CSS 변수를 브랜드 색상으로 재정의합니다.
모든 Bootstrap 또는 앱 수준 변수를 위해 생성된 <style> 블록에 추가되는 원시 CSS 사용자 정의 속성 선언입니다.
:root 재정의를 포함하는 <style> 블록을 반환하며, TsgcHTMLTemplate_Bootstrap.HeadContent에 할당합니다.