diff --git a/modules/server/containers/apps/favicon.nix b/modules/server/containers/apps/favicon.nix index 8276675..77afc4a 100644 --- a/modules/server/containers/apps/favicon.nix +++ b/modules/server/containers/apps/favicon.nix @@ -7,7 +7,7 @@ let priority = toString (containerCfg.extra.priority or 2147482647); logoSvgFileName = builtins.baseNameOf (toString mediaCfg.logo.svg); logoSvgMount = "/assets/${logoSvgFileName}"; - borderRadius = toString (containerCfg.extra.borderRadius or 16); + borderRadius = toString (containerCfg.extra.borderRadius or 32); hostMappings = lib.mapAttrs' (mapping: profile: lib.nameValuePair (if lib.hasInfix "." mapping then mapping else "${mapping}.${serverCfg.domain}") @@ -72,11 +72,6 @@ let return value if isinstance(value, str) and value else fallback - def _badge_text(profile): - badge = profile.get("icon") or profile.get("label") or profile.get("text") or "" - return str(badge).strip() - - def _tinted_logo_data_uri(color): svg = LOGO_BYTES.decode("utf-8") svg = re.sub( @@ -103,6 +98,18 @@ let svg, flags=re.IGNORECASE, ) + svg = re.sub( + r'fill\s*:\s*(?!none\b)[^;"\']+', + f"fill:{color}", + svg, + flags=re.IGNORECASE, + ) + svg = re.sub( + r'stroke\s*:\s*(?!none\b)[^;"\']+', + f"stroke:{color}", + svg, + flags=re.IGNORECASE, + ) return "data:image/svg+xml;base64," + base64.b64encode(svg.encode("utf-8")).decode("ascii") @@ -118,21 +125,13 @@ let bg = _color(profile.get("background"), "#111827") fg = _color(profile.get("foreground"), "#f8fafc") accent = _color(profile.get("accent"), "#38bdf8") - badge = _badge_text(profile) border_radius = _border_radius() logo_data_uri = _tinted_logo_data_uri(fg) canvas = 256 - badge_svg = "" - if badge: - badge_svg = f""" - {badge} - """ + badge_svg = f""" + + """ return f"""