feat: split logo scale by viewport
This commit is contained in:
@@ -559,10 +559,14 @@ class WebAppAssetTests(unittest.IsolatedAsyncioTestCase):
|
||||
|
||||
def test_home_logo_scale_rules_beat_late_loaded_admin_brand_styles(self):
|
||||
css = Path("frontend/src/styles/webapp.css").read_text(encoding="utf-8")
|
||||
base_css = Path("frontend/src/styles/base.css").read_text(encoding="utf-8")
|
||||
|
||||
self.assertIn(".app-shell .home-brand .brand-mark.brand-mark-xl", css)
|
||||
self.assertIn(".app-shell .login-brand-auth .brand-mark.brand-mark-xl", css)
|
||||
self.assertIn(".app-shell .loader .brand-mark.brand-mark-lg", css)
|
||||
self.assertIn("--home-logo-scale-effective", css)
|
||||
self.assertIn("--home-logo-scale-mobile", base_css)
|
||||
self.assertIn("--home-logo-scale-desktop", base_css)
|
||||
|
||||
def test_prune_unused_appearance_assets_keeps_only_referenced_logo_and_favicons(self):
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
@@ -647,6 +651,8 @@ class WebAppAssetTests(unittest.IsolatedAsyncioTestCase):
|
||||
cfg = builtin_webapp_themes_config("#123456")
|
||||
theme = cfg.theme_by_key("light")
|
||||
theme.tokens.home_logo_scale = 135
|
||||
theme.tokens.home_logo_scale_desktop = 150
|
||||
theme.tokens.home_logo_scale_mobile = 85
|
||||
request = SimpleNamespace(get=lambda key, default="": "nonce-value")
|
||||
|
||||
markup = subscription_webapp._initial_theme_head_markup(request, theme, "#123456")
|
||||
@@ -655,6 +661,8 @@ class WebAppAssetTests(unittest.IsolatedAsyncioTestCase):
|
||||
self.assertIn('nonce="nonce-value"', markup)
|
||||
self.assertIn("--accent:#123456", markup)
|
||||
self.assertIn("--home-logo-scale:1.35", markup)
|
||||
self.assertIn("--home-logo-scale-desktop:1.5", markup)
|
||||
self.assertIn("--home-logo-scale-mobile:0.85", markup)
|
||||
self.assertIn("color-scheme:light", markup)
|
||||
|
||||
def test_theme_asset_version_bumps_for_saved_default_css_theme(self):
|
||||
|
||||
@@ -296,7 +296,7 @@ class WebappThemesConfigTests(unittest.TestCase):
|
||||
|
||||
self.assertEqual(cfg.theme_by_key("custom").tokens.accent, "#00ff88")
|
||||
|
||||
def test_theme_home_logo_scale_is_public_token(self):
|
||||
def test_theme_home_logo_scales_are_public_tokens(self):
|
||||
cfg = WebappThemesConfig(
|
||||
default_theme="custom",
|
||||
themes=[
|
||||
@@ -304,7 +304,12 @@ class WebappThemesConfigTests(unittest.TestCase):
|
||||
"key": "custom",
|
||||
"enabled": True,
|
||||
"default": True,
|
||||
"tokens": {"color_scheme": "dark", "home_logo_scale": 135},
|
||||
"tokens": {
|
||||
"color_scheme": "dark",
|
||||
"home_logo_scale": 135,
|
||||
"home_logo_scale_desktop": 150,
|
||||
"home_logo_scale_mobile": 85,
|
||||
},
|
||||
}
|
||||
],
|
||||
)
|
||||
@@ -313,7 +318,11 @@ class WebappThemesConfigTests(unittest.TestCase):
|
||||
custom = payload["themes"][0]
|
||||
|
||||
self.assertEqual(cfg.theme_by_key("custom").tokens.home_logo_scale, 135)
|
||||
self.assertEqual(cfg.theme_by_key("custom").tokens.home_logo_scale_desktop, 150)
|
||||
self.assertEqual(cfg.theme_by_key("custom").tokens.home_logo_scale_mobile, 85)
|
||||
self.assertEqual(custom["tokens"]["home_logo_scale"], 135)
|
||||
self.assertEqual(custom["tokens"]["home_logo_scale_desktop"], 150)
|
||||
self.assertEqual(custom["tokens"]["home_logo_scale_mobile"], 85)
|
||||
|
||||
def test_theme_accent_rejects_non_hex_values(self):
|
||||
with self.assertRaises(ValueError):
|
||||
|
||||
Reference in New Issue
Block a user