feat: custom themes logo size tuning

This commit is contained in:
3252a8
2026-05-15 13:54:47 +03:00
parent af7cee5014
commit a1725a6872
10 changed files with 175 additions and 20 deletions
+11
View File
@@ -38,6 +38,7 @@ class ThemeTokens(BaseModel):
font_sans: Optional[str] = None
font_logo: Optional[str] = None
font_mono: Optional[str] = None
home_logo_scale: Optional[int] = None
admin_bg: Optional[str] = None
admin_surface: Optional[str] = None
admin_surface_2: Optional[str] = None
@@ -64,6 +65,16 @@ class ThemeTokens(BaseModel):
hex_value = "".join(char * 2 for char in hex_value)
return f"#{hex_value}"
@field_validator("home_logo_scale")
@classmethod
def _normalize_home_logo_scale(cls, value: Optional[int]) -> Optional[int]:
if value is None:
return None
scale = int(value)
if scale < 50 or scale > 300:
raise ValueError("home_logo_scale must be between 50 and 300 percent")
return scale
class WebappTheme(BaseModel):
"""Single theme descriptor loaded from WEBAPP_THEMES_DIR/<key>/theme.json."""