From a6f6c64b6ec37782d871b7cda2f2fd0d9202d85c Mon Sep 17 00:00:00 2001 From: yuneng-jiang Date: Wed, 30 Sep 2026 14:51:06 -0700 Subject: [PATCH] feat(ui): adopt the new LiteLLM logo and monogram (#43913) * feat(ui): adopt the new LiteLLM logo and monogram Swap the bundled admin UI logos for the new brand assets: the primary logo in blue for light mode and white for dark mode, and the monogram for the collapsed sidebar, favicons, and the built-in guardrail cards. /get_image gains a variant=monogram query parameter so the collapsed sidebar can request the monogram while admin-configured UI_LOGO_PATH / UI_LOGO_PATH_DARK logos still take precedence. The bundled light logo moves from JPEG to a transparent PNG. * test(ui): query collapsed sidebar logos by role to stay within the lint budget * fix: point remaining logo consumers at the new bundled assets The Rust gateway UI served /get_image from the removed litellm_logo.jpg, the non-root get_image tests pinned logo.jpg, and a cookbook script read litellm/proxy/logo.jpg. Point them at the monogram and logo.png. * fix(mcp): serve the BYOK OAuth page logo from /get_image The page pointed at /ui/assets/logos/litellm_logo.jpg, which the rebrand removes from the dashboard sources, so the next UI build would drop it. /get_image?variant=monogram is always served by the proxy and follows any admin-configured logo. * fix(ui): invert the LiteLLM monogram on dark guardrail cards The blue monogram has a transparent train cut-out, so on a dark card it read as a muddy blue block. Inverting it yields the brand's white mark, which the logo guidelines prescribe for dark backgrounds. * fix(gateway-ui): serve theme and variant aware logos from the dashboard export The Rust gateway served one monogram for every /get_image request, and the committed export lacked it, so /get_image returned 404 until the next UI release build. Pick the full or monogram logo in light or dark from the query, ship those assets in the dashboard's public dir and the committed export, and drop two comments that restated asserted paths. --- cookbook/misc/test_responses_api.py | 4 +- docker/Dockerfile.non_root | 2 +- litellm-rust/crates/gateway-ui/Cargo.toml | 3 +- .../crates/gateway-ui/src/dashboard.rs | 45 +++++++++++++-- .../crates/gateway-ui/tests/assets.rs | 35 +++++++++++- .../mcp_server/byok_oauth_endpoints.py | 2 +- .../out/assets/logos/litellm_logo.png | Bin 0 -> 25327 bytes .../out/assets/logos/litellm_logo_dark.png | Bin 0 -> 17599 bytes .../out/assets/logos/litellm_monogram.svg | 17 ++++++ .../assets/logos/litellm_monogram_dark.svg | 17 ++++++ litellm/proxy/_experimental/out/favicon.ico | Bin 6387 -> 4495 bytes litellm/proxy/logo.jpg | Bin 24694 -> 0 bytes litellm/proxy/logo.png | Bin 0 -> 25327 bytes litellm/proxy/logo_dark.png | Bin 35771 -> 17599 bytes litellm/proxy/logo_monogram.png | Bin 0 -> 14624 bytes litellm/proxy/logo_monogram_dark.png | Bin 0 -> 9566 bytes litellm/proxy/proxy_server.py | 12 ++-- litellm/proxy/swagger/favicon.ico | Bin 6387 -> 4495 bytes litellm/proxy/swagger/favicon.png | Bin 21723 -> 8916 bytes .../mcp_server/test_byok_oauth_endpoints.py | 24 ++++++++ .../proxy/proxy_server/test_routes_misc.py | 54 +++++++++++++----- tests/test_litellm/proxy/test_proxy_server.py | 10 ++-- .../public/assets/logos/litellm_logo.jpg | Bin 9222 -> 0 bytes .../public/assets/logos/litellm_logo.png | Bin 0 -> 25327 bytes .../public/assets/logos/litellm_logo_dark.png | Bin 0 -> 17599 bytes .../public/assets/logos/litellm_monogram.svg | 17 ++++++ .../assets/logos/litellm_monogram_dark.svg | 17 ++++++ .../_components/guardrail_garden_data.test.ts | 2 +- .../_components/guardrail_info_helpers.tsx | 2 +- ui/litellm-dashboard/src/app/favicon.ico | Bin 6387 -> 4495 bytes .../src/components/leftnav.test.tsx | 33 ++++++++++- .../src/components/leftnav.tsx | 9 ++- ui/litellm-dashboard/src/lib/http/schema.d.ts | 1 + .../src/lib/logoTreatments.test.ts | 6 ++ .../src/lib/logoTreatments.ts | 1 + 35 files changed, 273 insertions(+), 40 deletions(-) create mode 100644 litellm/proxy/_experimental/out/assets/logos/litellm_logo.png create mode 100644 litellm/proxy/_experimental/out/assets/logos/litellm_logo_dark.png create mode 100644 litellm/proxy/_experimental/out/assets/logos/litellm_monogram.svg create mode 100644 litellm/proxy/_experimental/out/assets/logos/litellm_monogram_dark.svg delete mode 100644 litellm/proxy/logo.jpg create mode 100644 litellm/proxy/logo.png create mode 100644 litellm/proxy/logo_monogram.png create mode 100644 litellm/proxy/logo_monogram_dark.png delete mode 100644 ui/litellm-dashboard/public/assets/logos/litellm_logo.jpg create mode 100644 ui/litellm-dashboard/public/assets/logos/litellm_logo.png create mode 100644 ui/litellm-dashboard/public/assets/logos/litellm_logo_dark.png create mode 100644 ui/litellm-dashboard/public/assets/logos/litellm_monogram.svg create mode 100644 ui/litellm-dashboard/public/assets/logos/litellm_monogram_dark.svg diff --git a/cookbook/misc/test_responses_api.py b/cookbook/misc/test_responses_api.py index 0011db4664d..68da5fb6cd0 100644 --- a/cookbook/misc/test_responses_api.py +++ b/cookbook/misc/test_responses_api.py @@ -12,7 +12,7 @@ def encode_image(image_path): # Path to your image -image_path = "litellm/proxy/logo.jpg" +image_path = "litellm/proxy/logo.png" # Getting the Base64 string base64_image = encode_image(image_path) @@ -27,7 +27,7 @@ response = client.responses.create( {"type": "input_text", "text": "what color is the image"}, { "type": "input_image", - "image_url": f"data:image/jpeg;base64,{base64_image}", + "image_url": f"data:image/png;base64,{base64_image}", }, ], } diff --git a/docker/Dockerfile.non_root b/docker/Dockerfile.non_root index d4c07d56d90..eca12855afa 100644 --- a/docker/Dockerfile.non_root +++ b/docker/Dockerfile.non_root @@ -103,7 +103,7 @@ ENV LITELLM_NON_ROOT=true RUN mkdir -p /var/lib/litellm/ui /var/lib/litellm/assets && \ cp -r /app/litellm/proxy/_experimental/out/. /var/lib/litellm/ui/ && \ - cp /app/litellm/proxy/logo.jpg /var/lib/litellm/assets/logo.jpg && \ + cp /app/litellm/proxy/logo.png /var/lib/litellm/assets/logo.png && \ touch /var/lib/litellm/ui/.litellm_ui_ready RUN --mount=type=cache,target=/app/.cache/uv,id=litellm-uv-cache \ diff --git a/litellm-rust/crates/gateway-ui/Cargo.toml b/litellm-rust/crates/gateway-ui/Cargo.toml index 0e0d76fbdbf..94546ef9118 100644 --- a/litellm-rust/crates/gateway-ui/Cargo.toml +++ b/litellm-rust/crates/gateway-ui/Cargo.toml @@ -6,7 +6,7 @@ license.workspace = true repository.workspace = true [dependencies] -axum = { workspace = true, features = ["json", "original-uri"] } +axum = { workspace = true, features = ["json", "original-uri", "query"] } axum-login.workspace = true base64.workspace = true governor = { version = "0.10.4", default-features = false, features = ["std"] } @@ -16,6 +16,7 @@ rand.workspace = true serde.workspace = true thiserror.workspace = true time.workspace = true +tower = { version = "0.5", features = ["util"] } tower-cookies = "0.11.0" tower-http = { version = "0.6.11", features = ["fs", "set-header"] } tower-sessions.workspace = true diff --git a/litellm-rust/crates/gateway-ui/src/dashboard.rs b/litellm-rust/crates/gateway-ui/src/dashboard.rs index 96588db9883..2642506fde6 100644 --- a/litellm-rust/crates/gateway-ui/src/dashboard.rs +++ b/litellm-rust/crates/gateway-ui/src/dashboard.rs @@ -1,7 +1,12 @@ use std::path::Path; -use axum::{Router, routing::get}; -use serde::Serialize; +use axum::{ + Router, + extract::{Query, Request}, + routing::get, +}; +use serde::{Deserialize, Serialize}; +use tower::ServiceExt; use tower_http::services::{ServeDir, ServeFile}; #[derive(Serialize)] @@ -9,9 +14,39 @@ struct Logo { logo_url: &'static str, } +#[derive(Clone, Copy, Deserialize)] +#[serde(rename_all = "lowercase")] +enum Theme { + Light, + Dark, +} + +#[derive(Clone, Copy, Deserialize)] +#[serde(rename_all = "lowercase")] +enum Variant { + Full, + Monogram, +} + +#[derive(Deserialize)] +struct LogoQuery { + theme: Option, + variant: Option, +} + +fn logo_file(query: &LogoQuery) -> &'static str { + match (query.variant, query.theme) { + (Some(Variant::Monogram), Some(Theme::Dark)) => "assets/logos/litellm_monogram_dark.svg", + (Some(Variant::Monogram), _) => "assets/logos/litellm_monogram.svg", + (_, Some(Theme::Dark)) => "assets/logos/litellm_logo_dark.png", + _ => "assets/logos/litellm_logo.png", + } +} + pub fn dashboard_assets(directory: impl AsRef) -> Router { let directory = directory.as_ref(); let assets = ServeDir::new(directory.join("_next")).append_index_html_on_directories(false); + let logos = directory.to_path_buf(); crate::static_assets(directory) .route( @@ -22,9 +57,11 @@ pub fn dashboard_assets(directory: impl AsRef) -> Router { }) }), ) - .route_service( + .route( "/get_image", - ServeFile::new(directory.join("assets/logos/litellm_logo.jpg")), + get(move |Query(query): Query, request: Request| { + ServeFile::new(logos.join(logo_file(&query))).oneshot(request) + }), ) .route_service( "/get_favicon", diff --git a/litellm-rust/crates/gateway-ui/tests/assets.rs b/litellm-rust/crates/gateway-ui/tests/assets.rs index d77763319b6..ba741fbf2ec 100644 --- a/litellm-rust/crates/gateway-ui/tests/assets.rs +++ b/litellm-rust/crates/gateway-ui/tests/assets.rs @@ -40,7 +40,14 @@ fn dashboard(directory: TempDir) -> App { let export = directory.path().join("public"); std::fs::create_dir_all(export.join("_next/static")).unwrap(); std::fs::create_dir_all(export.join("assets/logos")).unwrap(); - std::fs::write(export.join("assets/logos/litellm_logo.jpg"), "logo bytes").unwrap(); + for (file, bytes) in [ + ("litellm_logo.png", "logo bytes"), + ("litellm_logo_dark.png", "dark logo bytes"), + ("litellm_monogram.svg", "monogram bytes"), + ("litellm_monogram_dark.svg", "dark monogram bytes"), + ] { + std::fs::write(export.join("assets/logos").join(file), bytes).unwrap(); + } std::fs::write(export.join("favicon.ico"), "icon bytes").unwrap(); std::fs::write(export.join("_next/static/app.js"), "window.app = true;").unwrap(); App { @@ -130,7 +137,15 @@ async fn missing_paths_never_fall_back_to_dashboard(app: App, #[case] path: &str )] #[case::root_assets("/_next/static/app.js", "window.app = true;", "text/javascript")] #[case::nested_assets("/ui/_next/static/app.js", "window.app = true;", "text/javascript")] -#[case::logo("/get_image", "logo bytes", "image/jpeg")] +#[case::logo("/get_image", "logo bytes", "image/png")] +#[case::logo_light("/get_image?theme=light", "logo bytes", "image/png")] +#[case::logo_dark("/get_image?theme=dark", "dark logo bytes", "image/png")] +#[case::monogram("/get_image?variant=monogram", "monogram bytes", "image/svg+xml")] +#[case::monogram_dark( + "/get_image?theme=dark&variant=monogram", + "dark monogram bytes", + "image/svg+xml" +)] #[case::favicon("/get_favicon", "icon bytes", "image/x-icon")] #[tokio::test] async fn dashboard_adapter_preserves_existing_urls( @@ -184,3 +199,19 @@ async fn logo_discovery_points_to_served_image(dashboard: App) { "logo bytes" ); } + +#[rstest] +#[case::logo("/get_image")] +#[case::logo_dark("/get_image?theme=dark")] +#[case::monogram("/get_image?variant=monogram")] +#[case::monogram_dark("/get_image?theme=dark&variant=monogram")] +#[tokio::test] +async fn committed_dashboard_export_serves_every_logo(#[case] path: &str) { + let export = std::path::Path::new(env!("CARGO_MANIFEST_DIR")) + .join("../../../litellm/proxy/_experimental/out"); + let response = litellm_gateway_ui::dashboard_assets(export) + .oneshot(Request::get(path).body(Body::empty()).unwrap()) + .await + .unwrap(); + assert_eq!(response.status(), StatusCode::OK); +} diff --git a/litellm/proxy/_experimental/mcp_server/byok_oauth_endpoints.py b/litellm/proxy/_experimental/mcp_server/byok_oauth_endpoints.py index 87b6d36529a..b51da626a60 100644 --- a/litellm/proxy/_experimental/mcp_server/byok_oauth_endpoints.py +++ b/litellm/proxy/_experimental/mcp_server/byok_oauth_endpoints.py @@ -506,7 +506,7 @@ def _build_authorize_html(
- LiteLLM + LiteLLM →
diff --git a/litellm/proxy/_experimental/out/assets/logos/litellm_logo.png b/litellm/proxy/_experimental/out/assets/logos/litellm_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4e47364ce693fb1eff2e709f2f202783b0b2c9cf GIT binary patch literal 25327 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 literal 0 HcmV?d00001 diff --git a/litellm/proxy/_experimental/out/assets/logos/litellm_logo_dark.png b/litellm/proxy/_experimental/out/assets/logos/litellm_logo_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..c7f45c18f19f99522fc787fb6e14ab6ef43c8125 GIT binary patch literal 17599 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 literal 0 HcmV?d00001 diff --git a/litellm/proxy/_experimental/out/assets/logos/litellm_monogram.svg b/litellm/proxy/_experimental/out/assets/logos/litellm_monogram.svg new file mode 100644 index 00000000000..82cbe3eeb03 --- /dev/null +++ b/litellm/proxy/_experimental/out/assets/logos/litellm_monogram.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/assets/logos/litellm_monogram_dark.svg b/litellm/proxy/_experimental/out/assets/logos/litellm_monogram_dark.svg new file mode 100644 index 00000000000..bc3771b7330 --- /dev/null +++ b/litellm/proxy/_experimental/out/assets/logos/litellm_monogram_dark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/litellm/proxy/_experimental/out/favicon.ico b/litellm/proxy/_experimental/out/favicon.ico index 7c45601d5c311b44348e70790527de8a3c5ed655..657ee1e24e82bd6cd7b67e929ae6e0e5ab1bad72 100644 GIT binary patch delta 4419 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�R2V*J6MXq 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 F{u}R=q(uM# diff --git a/litellm/proxy/logo.png b/litellm/proxy/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4e47364ce693fb1eff2e709f2f202783b0b2c9cf GIT binary patch literal 25327 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 literal 0 HcmV?d00001 diff --git a/litellm/proxy/logo_dark.png b/litellm/proxy/logo_dark.png index f92fbefdd22801d359d0c48900482c1776184ab8..c7f45c18f19f99522fc787fb6e14ab6ef43c8125 100644 GIT binary patch literal 17599 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 literal 35771 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 DkCY8a literal 0 HcmV?d00001 diff --git a/litellm/proxy/proxy_server.py b/litellm/proxy/proxy_server.py index 57a94dd7387..f89dde04e06 100644 --- a/litellm/proxy/proxy_server.py +++ b/litellm/proxy/proxy_server.py @@ -17540,13 +17540,17 @@ def _serve_custom_ui_logo(candidate: str) -> Response | None: @app.get("/get_image", include_in_schema=False) -async def get_image(theme: Literal["light", "dark"] | None = None): +async def get_image( + theme: Literal["light", "dark"] | None = None, + variant: Literal["full", "monogram"] = "full", +): """Get logo to show on admin UI""" # get current_dir current_dir: Final = os.path.dirname(os.path.abspath(__file__)) - bundled_light_logo: Final = os.path.join(current_dir, "logo.jpg") - bundled_dark_logo: Final = os.path.join(current_dir, "logo_dark.png") + bundled_logo_stem: Final = "logo_monogram" if variant == "monogram" else "logo" + bundled_light_logo: Final = os.path.join(current_dir, f"{bundled_logo_stem}.png") + bundled_dark_logo: Final = os.path.join(current_dir, f"{bundled_logo_stem}_dark.png") default_site_logo: Final = ( bundled_dark_logo if theme == "dark" and os.path.isfile(bundled_dark_logo) else bundled_light_logo ) @@ -17607,7 +17611,7 @@ async def get_image(theme: Literal["light", "dark"] | None = None): if safe_logo is not None: safe_logo_path, media_type = safe_logo return FileResponse(safe_logo_path, media_type=media_type) - return FileResponse(bundled_light_logo, media_type="image/jpeg") + return FileResponse(bundled_light_logo, media_type="image/png") @app.get("/get_favicon", include_in_schema=False) diff --git a/litellm/proxy/swagger/favicon.ico b/litellm/proxy/swagger/favicon.ico index 7c45601d5c311b44348e70790527de8a3c5ed655..657ee1e24e82bd6cd7b67e929ae6e0e5ab1bad72 100644 GIT binary patch delta 4419 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 diff --git a/tests/test_litellm/proxy/_experimental/mcp_server/test_byok_oauth_endpoints.py b/tests/test_litellm/proxy/_experimental/mcp_server/test_byok_oauth_endpoints.py index 6d2ea2ff301..d7205a3095e 100644 --- a/tests/test_litellm/proxy/_experimental/mcp_server/test_byok_oauth_endpoints.py +++ b/tests/test_litellm/proxy/_experimental/mcp_server/test_byok_oauth_endpoints.py @@ -13,6 +13,7 @@ Covers: import base64 import hashlib import json +import re import time import uuid from typing import Any, Optional @@ -218,6 +219,29 @@ def test_authorize_get_returns_html(client): assert "abc123" in resp.text +def test_authorize_page_logo_is_served_by_the_proxy(client): + from litellm.proxy.proxy_server import app + + page = client.get( + "/v1/mcp/oauth/authorize", + params={ + "client_id": "test-client", + "redirect_uri": "http://127.0.0.1:3000/callback", + "response_type": "code", + "code_challenge": "abc123", + "code_challenge_method": "S256", + "state": "xyz", + "server_id": "my-server", + }, + follow_redirects=False, + ) + logo_src = re.search(r'KQ)dWT38si7l+ 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 literal 0 HcmV?d00001 diff --git a/ui/litellm-dashboard/public/assets/logos/litellm_logo_dark.png b/ui/litellm-dashboard/public/assets/logos/litellm_logo_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..c7f45c18f19f99522fc787fb6e14ab6ef43c8125 GIT binary patch literal 17599 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 literal 0 HcmV?d00001 diff --git a/ui/litellm-dashboard/public/assets/logos/litellm_monogram.svg b/ui/litellm-dashboard/public/assets/logos/litellm_monogram.svg new file mode 100644 index 00000000000..82cbe3eeb03 --- /dev/null +++ b/ui/litellm-dashboard/public/assets/logos/litellm_monogram.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/ui/litellm-dashboard/public/assets/logos/litellm_monogram_dark.svg b/ui/litellm-dashboard/public/assets/logos/litellm_monogram_dark.svg new file mode 100644 index 00000000000..bc3771b7330 --- /dev/null +++ b/ui/litellm-dashboard/public/assets/logos/litellm_monogram_dark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/ui/litellm-dashboard/src/app/(dashboard)/guardrails/_components/guardrail_garden_data.test.ts b/ui/litellm-dashboard/src/app/(dashboard)/guardrails/_components/guardrail_garden_data.test.ts index eb5d47d7891..a27dd344c95 100644 --- a/ui/litellm-dashboard/src/app/(dashboard)/guardrails/_components/guardrail_garden_data.test.ts +++ b/ui/litellm-dashboard/src/app/(dashboard)/guardrails/_components/guardrail_garden_data.test.ts @@ -44,7 +44,7 @@ describe("guardrail_garden_data logos", () => { it("uses the LiteLLM logo for every content filter card", () => { for (const card of LITELLM_CONTENT_FILTER_CARDS) { - expect(card.logo, `card ${card.id}`).toContain("litellm_logo.jpg"); + expect(card.logo, `card ${card.id}`).toContain("litellm_monogram.svg"); } }); diff --git a/ui/litellm-dashboard/src/app/(dashboard)/guardrails/_components/guardrail_info_helpers.tsx b/ui/litellm-dashboard/src/app/(dashboard)/guardrails/_components/guardrail_info_helpers.tsx index 476bcd3a8ae..8df7dfb1403 100644 --- a/ui/litellm-dashboard/src/app/(dashboard)/guardrails/_components/guardrail_info_helpers.tsx +++ b/ui/litellm-dashboard/src/app/(dashboard)/guardrails/_components/guardrail_info_helpers.tsx @@ -13,7 +13,7 @@ import guardrailsAiLogo from "../../../../../public/assets/logos/guardrails_ai.j import javelinLogo from "../../../../../public/assets/logos/javelin.png"; import lakeraAiLogo from "../../../../../public/assets/logos/lakeraai.jpeg"; import lassoLogo from "../../../../../public/assets/logos/lasso.png"; -import litellmLogo from "../../../../../public/assets/logos/litellm_logo.jpg"; +import litellmLogo from "../../../../../public/assets/logos/litellm_monogram.svg"; import microsoftAzureLogo from "../../../../../public/assets/logos/microsoft_azure.svg"; import nomaSecurityLogo from "../../../../../public/assets/logos/noma_security.png"; import openaiSmallLogo from "../../../../../public/assets/logos/openai_small.svg"; diff --git a/ui/litellm-dashboard/src/app/favicon.ico b/ui/litellm-dashboard/src/app/favicon.ico index 7c45601d5c311b44348e70790527de8a3c5ed655..657ee1e24e82bd6cd7b67e929ae6e0e5ab1bad72 100644 GIT binary patch delta 4419 zcmV-J5xnm6F^?lO000310{{>Z00000AOK+k001@s001B$00000AONKW005T)001yB z00000AOKSd002A)ku)ZMC`m*?RCt_ylf7#cQ5400=e?Q9u4@eW*zBr>h@??aD?v~s zBsPkFgN3cwTdAc4Ec`!gEG>3}3PvkiL(nFQiD0pj&3?_h@@5vyChCRDFx>mjJMW%z zrABKFvimSh!Bpn|LRNmWAvSm}HP#Ir5P(<<28ursC>H(^#hH+QV4;ulLD_E=l%|mR z0?_(J6DSrBF^hL#3AmR)A3_iLc*3y$46uZ833seo0_73t2qS5+wSz3fG=-Fv(0&)` z6Q-|VbqH6GpTqj&rxlE1zp>n=pF5U^?rzrL`u z+GhUkH0Dl_b!W)^9CGtupMm3Y$wNr*U|pn>AEIny34Jkn3;nC?E^kasYi{ENmEJkb zFBHn*Zp+*~snH$-jHOWxtha4`aG7tbKTE-tPk=RF*Ja^<2^MCh#rFFH8XF1&s8z-O zi!iS|_-XYZ`cOCK@i4wO7l|qn-NMds+ z9h;Vd^_PF zL3ze${)W>NPbgGtKliZaacmLDSe*!nn2Iy;Zl ztX9O0=4%e6;Ozoc4+!_3!SO$V>zf6cPwOe+JLv@g-gC37hJm-h8}WPA0hdel4ant6 z@wunmypD7RG>=v<7A^8ns_0O7cWjtuk% z4;2r-4%ZMc*m)q#xck3R_#0XK6E@ubIj7$qq2znzb|3hCq}L45uFp93q?D}3?I$QH zc1+tPHpdipaSAVeh=21BQd-#37L2`0N+aHCK20fX zk|oa(%C~k*+RMgD09-6K9v?)F?_uf9$hYB?aQ=hy0rkb>Fi})kQ1z|D$bSJzz!xGL zX$OF}q_Nt2_;QV+>*IfN!XTc_9;SZR%kW|u4rGPPoc zsK)8Nb$_bIb_qRC7~GAWi4`@@Z_?OXe(9oC(F^j|SLPu=v9- zpXH~)U%+jHD1ZM6h2dC;qE=U^Ue=E3=GnPlQor*t zsHMFcUx*irc@6+a#m>>d$5VEG?4~z2lku2BWzKE(B~f}RGGGucW5(_+cho0ux5k+s zpX@BQjP}dMt9`J)LG{RkO27LD+9yA8w_is$&f|V520T9<3mT$vl=$!c+IRMFa?euX zhkp*$+g|PC?7#$yrU`-I3Fbx;OShfnv`yyYy;dQc%22pbw4X~|r9&M@hGm*so+mi1 z^B(afNBw;?oBQD4D{#;|x*symtQl5f&*EM|?F=U%H#`Yo|Mcs*o6ponlZHYdTU;Xa z4W+`qk0OBHtO{}Mm@0;P{SkYY%n9kuK7V}23I3;;6~G~w9{;by)^2(g+W7^Ry8ej0 zXAsHye(c=IuhC*fBQB3AhXW2TEt_{V{*L3@jOoYHx<|?8{^+vjSFsT-V&m}<+-|@c z+a-TQj2%0WpN4safVY#c`r&e6LU{vmiHIJK2T?MNvstojz;43YP51)R*tjf3N}#8QJ;gP z%MGjeY8DZk2~Kz%4G5(xe9`FY`hQ$11=KHh9q#a6t^G_Y{}gYH6b0#O^e}u`PjKa( zJ4)K9H0{>>E%iHo_XPw+XrneWWC2H$=?X7@2^vX6K~#90)tPII9c3BEf6qH}&YrWE zURb(kcUxP;wm=I~1PzqZ8wek~fW{JHViaP;5Frr~FCU~3AjAu(d_?)CMvEb$^#;oJ zvQVmA43*kgti;fEmoCs{yL)!enRy@c%*^SY-L|{iZI$gmolZMv-kInB+}~#eHafU} z*Hh~Lg1~JMUjT6fGZM}t;a*k!0lil}X0l6iz0~!PxaK?25zs0#7YdRCDWH1fJM^sk zx=`AFi@4%r_;+Ja0ddS|s0UG`IZ!R%BvRV42f`&V!ps-G2K7im@YTPB;FmzfLF!Fs z21L-RAbP%O{0!0h7)TNiN_Zv;KL#Ox;M4FnXm&mZ7Tno63G^A`Zy}O*2@eS}Z>pC~ zM-PnwOH@&MPA^zqGg9uoA{C;Qy=b%_;UFq~NHicC3?=3eUj%6ZX$9Ir=L7SR{4Ats zj6o|T^@G?58UC+iLZ$IKM3uOjCkXOrP7*(I5}}o02nXTZL3%p}6NNASX9EL&Z+GGc zF2d=RqOuD35N>uM`Q01$D9$XIlKdY+q_pK7@Uv1^viH@LXEc0TnN^1n4ujhd?lpm3 z-pPwp3%lsMw3kJ%&thc%N-`+~BM~CoRplpyxu>Y=S>oa^q5g}wrUv}GH6p=jB+z9Y zTp2V#U4SGhDVM$@({?Q;lf)C%GLeyrQ87QW=LxtRVsW20t(PJArMmEcNBHX7BJT63 zza3XB;QMWXDJVE)0(9pxZ z%^NWzRWWiNHHKy>8gMPCA$?`Ly4=IWx=$p&4Ut--k`dO<+U^-~+?j$FRA-+&l zR{$4*o`>Y;Che|SDrwDsBkRo-SI8%1b!3NX@BqGYSe*M7u6SJ%=vp<>;q(ZUy1tRR zdtFzd>QJfR+%U)>;`<@)!{vIY#s@gG?#MCETkzajRP>TGwMJJWvI25#DIp^>Y#pS7 zyjki=#ov$Wxq>{5E6&FsHX%-;BR(1fTOUFsEkb5^)jXm(R2vb0*90_!pAA7XXdz1? zrnVkb_bT!V0WWc|X%}2Jx*O_vp^><&sEsx;l^6K zFb-WIo&E#F;R=C|fcqfg+tMn|tLl9hPM@Y{^`YeUj{S{9udg78J0Vv zFZ+9*-OH;<2AkJ?tvG!IS3D2je}dRB0$LV2wy&Brjj0IU=hIjT1y?@6!F79%PBfAh z`yPSi0`mmc+P*b=afXgxH=?bVp?#$iGzOX(IgtZ>>5o=Kh77=gP>O`;p+b zwDwfS6+jbzS*s%LTNQHSx`;8-XE!GcvTWrCHL6}k-`bb6R@xtrb-HMaJFb=HcP$`p zSTCv{MdTcC2UPXUy+=qGNjS6f?Cj}EPuOl?hLap5`1ah^w;FG|AQjk6BK?@v zZb;h^n@l)YBVc)LDg^4_Bix)2Kk%sbuDdk}V%C{uLZy5oJ!>DI9*IfFwC%hCr#A~+psJhc zz2e({%=`1j5)^)grzcY(y!t!q36o~Wc%gg#KTEFSJFVcN7DphF7)go zRK6x6*Q!Q$QaQLy8akeU!unIOK-!*4bAT^z(Kpwu&l20P}nptQD%f}!sT*S{bv=L-Z$_VqVReWO1oRzA{i)3>vbxG!&oxlm@}l{RN=^D8z%}R4@}R1}<-MA5o+yW&$O6`(UMyk5%lP5LxL}i3`|lx`)f#et=?gi^ z`z9xn>g978C!qtYveQskn@!vEv$08!Gz};yS@E zNV1%Xl}rSax)6(WJU_{P;B;Ys8qe2kK07*0v;SBtZgG*c(;xLy65KEI&9lX~Z00000AOP(G001@s001B$00000AOO+_001Kc001yB z00000AOQXi008w0ku)ZMv`IukRCt`FQcY-7R~S9tz4!gj8*9Q;4W(!o3PCFrk!V*g zie0%gPqeEpS_E+`T4*NPB1I4}n~Esdf|QDprp9QRi8GmG-c07* z_rC9Tk+uuzCiJY&FC5^1f;K{S&M5#iJw3f49qRRU;l>&`M~z8;sB|0xBIhZ<^6V)3 zJlgKs9qpdo;<$|e)1c94=rm0k02F{rlecy+w_9hc0i6h=SRHtKJNA#hfh-%qyt;8> zVghNJvUASAGCh^{FiAGg_StN!fHlku*LuntI5)VUFUkm^mA8)9XQhxH}-kwL#dS5*1lt&J} z6=GM-@avl^h@(hV;z$`kTp#6na00MXpnAQoE}TCvKi&E9bdp3DhlaPtNmSu#r9#lY zD%rs~M%J^qa_vtnHCu?iF5);uyR{-@H1Pfhm%l!DYV72HJG)0vipL_X^L&7^$YHHT z5(8JSFX6kXm+)L0kPLnhAnUZn9Qp9uuX<8DX$vWv&F8w)S=GV?#5u5YFxuhauQ{$w z&BH4#ia`e?Jx~#X^DfNOKW0u9JcFMf47=sI0h^Tk2Szw%CbUVPJga{-;WK0QW zX9xh^JO1U)v7JkYYeT$4n72OsZS~liWi8AA7yzKiQ4-|J+5)+?U=|le{w)1{Hu>id zdk&ud+0P*%*^B2p^NG z0uX-(nMp)JRCt{2ms^ZpRTam7YwvT;cb)09Gt-M82-X5^z^EY@d2oi1nD}4`TqNA3w2r&*Hhx9c$|?R9nu7 z;1#KrUX?F=Eam1Ku9aSvV~pUO`}Z_(<;3DQ#+#o0!-;$6&$k~u-^%VRY$YjNz(@$S zQX)wlOB6*|8qLcsFq{OrG$T-?;N6D zOWv4(s>;mFjGdgEbg_XK|2lvF;TM-4S?t+e{oFB9iQT4HZAEg4G^Y}I>Lp>cUSe!> zg^_xNTD3}&Bt((L+6ZGT0ELGT6z|>Zi}28)Lv}-8PE~I`{M^ZJ{@}NZA6aguY^~yU zZjSA>LoV7jY#AS^GEyI-TCIPO#0kbms8~V}KtKc)ORt|&6g@-))j+jUBPrEhE5aj3 zjzp7_lTKBKmzG}o+L?t{_n%rRDyymZcWzsNeMKs41Irxk0*gl4;Cj_P0?$c>! z0|KflBBGHMo}WGT74IA00B6eOVK+21Vv|x;lB7bCl!&8Cu~fYGI9K3(f%gvQJV~sa zUP$@sx0mRpp5VLqybFKDDnpw_Q1zftpz z?$EfjJq*={qjI@M94CkfAvpT|6zB2{U{44hRlVdzG{BR;SSHVNMrwf~_Y~p@5-2Bv z_kxHL2@I73!r*?DAO7->pMCCRe`4R%b?(9YZnK3;B#tAzcNBj`pQ7mFoZA2l129zv z*a7F2dPVr%3oX9;(`Bkuj3X zv}L>)9orTg5!#(~T#*u7fe)S#0-%Ht2+CCi0wDy9fp#l!=1P|vom`_@hNAFj7@W2!QbKwH~O}9jZbIN|adoqcKsdu^2kdWr-r|v&@;*)ttq%ExK7ix*6U?h;s-YG*CFD zaq$8{K!Xy3634>a$rT!_fhe+T9>>CA~xn#tqKHSkVZuW6V?cR5c?1Yf~-~Hy|)Nx*l35$RcSq;*V{~~ z6eC6uz=*~9c#x_lr@sEcg|qXIuCJ}^c>nGSx9m*l4-z)UNU+w5h=}t6S2%o7f+`vU zgFf@hHT7-hU5-UN$I}ZemgbgAA+3-YS`wS&*RaGg9f-LKkW|?~D zMT~#ZA}_>R)4cnxJHB+K7^%vKCmyj!j~)yRf_~XPboc)0m4>;GICjQ}4K646VxVvo z4SoPFf)R9UX}%b#W#u&UPod^#%|_!>BHZh}&ou-J@1r7ji>DXPUVo(=i|A2s11`wE zeV>VT?AYOd^L*p;Yu(Dnld>ZzmtuopO$mP^8#0qY07M3EkKHN8YQe6q74z$@g?-15 zuXI0f^Ubrt%AMQBwrm3>>-Sl2cOO$dVBV-B5`dd-fA}XhsorjlS7VH^){sOoaU2mx zcB8&4AmWR5C%y3NSCZH*WO?$f+1c5J-Me=ub8~a~u3fusC>i!!W45Jv|Cv*No1Zei zEQdF<-BVKuCr$vcXU|}6V+g=prJ|&%FgI85kB^c|SLF2`D+1`>0X4pnk7Lo+50fwm zFMkciNklLhZz~NT5)ug&(LDC_-&P@dPT`1T`e7E#c7CK%9r2q_H!0Y-jA5xpVKG zJNI$U*?X_mALraVGjSnOU_1Xhmkt=dVuE-U+BLB}sL`X!G zi0H$I4;zugCcldoIi!mUTdrX01;6`fUk5fy&8aCt{ggaNFO+Gz`yjlh)e*O z>2@2}0N9bH*)+4=?!BK9;i~t(%FH3NQ?HoaH`h}Qh$0XP4TF*Z5EAQfRj`6Tdhacm zn4CeHrcjC?lH0*K`{P$YMAU)#d73YRQ$*@VpE>uQGmFjJFSNS9ux?GMJ%4aW(iDLv zM1et|6_ip?L_>-|04SxWpxu7`BhOv@ ztu37D+NRkwhalRG@n5kA(7#IqShS3^pl4a=i2k3Nq=&bj!*6E|u>w}$xvl-s8r-ZlMIElnEv{GQ^AB{pH zqK6h2N#5|UkDdAW@pJ88zp&1w_IeN1Fz}PLSWVQ*G+r%ZtWrWL3V$IY=nqmf+v{ko zHnG-fqPy0D9rPhCL!f{#2vIJ@sFWj=q5x48U}ikRPrYFrpqz65YXw9^5kUYF5vl*j zGp9d#?DXn~PB(3>)#+iP68mivRW&(Qp=v1x0Z5VrowaqeT5a^!*C2L)S_Dkj47SxH zOxDYotk+PhmQgO{o_{e$L#d5!ff;a|2QU$V`4wg%5uqbTj_6x&z13*~7FU+;{MO?y z{^=8o{p%N-9n{OQpQ=|>97ZJGgOeU4?EtoqN<^5cN7z1I#`dWirpBwNRZ0kg0Hibk z1r`CbfEf_sJdmkSf(VMJ$U=E>^Il%Q0$b@KKX>Zf;%ENlseg;_{I^rfP^5gV9IH?h zg<>&oQp}VEJ10V1JyXNfcn!5`3C0)z1jm496hH`yG_=lv4lh8#7!B`zkv0V)xnjly z&|1S<_rn#Ko10U2-E|j;h(%d!a4Y0%vY*)9Y+RNjmMa-ml1{$yeO~`fC6j~ z!04@jiKw^$0d2|u#V-ReXf@BHS{+9aRss0pIk3LoLVvkb`k(8-;lqaw5xHKkx3k}0 z`OAw-&%N*5`2~o;?|J=hRjXEYU<|YgA!NYNuwoDdAz~B27z3p?XfXs0P|=(L%nX7c z%~CvnegNwj-dTuvh!DDK=Wx}I8N_i6W}n9e1KoaxBn3p=<#izM5&?ju*}Qn$+FIia zt=5H|D}O7?esXdLjg3txU0BqZ5GDu_1`&cF*kt7mON&TxZFG{%`Q^Mvpaq}3=R6)g z-bY{rSvr7l3K0SiUcl7!B%(L~!~@K59$;2jX|#~0eya!a^hj)s!sAaq`)6m)JbSRy zSwa|=-0t0b%n)P{ln_NFgkcD+O#yZod;~yXt$&604&GZh=fLcWMvRMA0H~G;k9?<% zM~@Fst7r&&7&7oK1;Hap0p|shDu`zY6d-_Bf5qS}r_|#wh^WWb4 zk4JxX|Jx^dYU*l~%Qd65MiiA1$7KY;2Jm6~#q3~h3g;}GvxSv;1b8#QMF2&>Qp4fU zgMTfA#=}|8`x~Fa+kC&Z7T#F^rs#q4)Fnp4S`X*4T!G@%=0yyp^lmjR?9-i~MpR)wM|%zxb6oGQTY{Lm-<;lb}be(8pwc9q+H^^A$4 z65?_VQ51qmK}3+I39Lgmh_M%5!icp zn?fKE_TV6Zvk5Yrz=#O_?nl4$<);?XH`S-MxoU09B-Vi0Vy)f4YI^|YET;$iO&KKz z#LN%~AOhY*^$qTCR8a2))w05oe}C`d*yGEnRe+=~Ie0FVV1f4ugc;WMkR@T>Uib_U zf%hp4hwv_gw*#0@eCqFi`{Y9RSEA~KE0qG{Y!97g7pp6brDct7-vQvfi0BZ`10p^z zLNerfZehc8Vc9G?Muw~0c-z-3g*0nVK5pcZ#AT{m!!0eEOCic~=nVSzxS-B2)LiXe=N zLI#Ks;*!F2Jw}=iU^@MEHGdwJvEE9_y9@+@O&$7ui)OQdBy-RTSRXLLg(KLz%Rux5 zwALWD5YE70Xy3;17q3Q3?}Kt(2xydvm<3uBE?w&5#M5o;n2K|dIU*>vHPwm;v?3Vi zQK>4F%DDlCb;JZ2(o~S88b)jrgemtBc zfX!QgykHmA7C-L8(s(kgR^HZV&TjHp5uZp8wmhg6kvGo&|hB#sinM& zC4nLZW{*;N3~2@o`s*;;cE0Yf7tj9Z{^rsP%9y|hVWcxBSZj}CX<3jrQ8|!&hEavJ z2r{a>f;^7bMmRPG?|%&%RjV=f?<I@W$(>)!S~FAflaYQi@2ay!|DDViq{(;l0mue35Zvb50#qW)z0F9Qbg`+N>}@NYiYS0XB9J zk%)*80L;$L>iPM3FCxMF|M0%|y?Flg9lPo)Z~K`&x~2`Fl!x~`x`r0cvJ6R*Am?BjHU%_|=tFe*xy>+oWMoo;F{2s5ixluh zbfGy|B>yTh@>01Rtp`ESdCB{QW@qQs{QLnyUcD|8B7Y5LM<4sxU%c!4CtmpaQp=Zu zAS7k-5zBeW51zz>zy+|}Yec!#iHh$aRLnYRVH?hI(SCc_EJL?9fO8g^b;Taa*Q|3& zk*SZ5efq0k{ruf8naD`y=kv6apKb1?lP6CS0PNlSw9L-~^Yioazyn{YKk@9+-<)3w zE2K5E1b+mt^5)Jt2skftQrwsU8QLQUt`s5E15~-;V6-BD;xPDT5L6y=p6fPU{{2v! z$xwSD0vThF3=$;B5CjH;Znk{WO~2Iqfg|ORPMc+Rc2+9|{_?#~-M!e<*OGz@B4dU} zfus~f8Ho6zN)NLJfuM&jM1C^P61x{MR)qtpxPP_Qdi>aTPrQ4`|C?{TfsLX+A0Mly zgCq$^grYF!@v%C!);id+bNZ1}3uozNpN$R!{oTLzk$umc?tCE0C<{WP0PP6`5`tC% zw9bbWMY-GalZGN|6+G5PD`aPAGGc^rExveZ#RsAJ6A@AS_U#M1-L9XRnfct=)2D8W z(tqqN<6~n*LJ-|pZNYhb^5~<-o+Kju3J$jB6mU>(eDen%RMGUi6j_i~(8_>{x}dc} zU<`~>P+H~lF%6S&o?f+5=y#XVUVLb+6gkC0Pl(XL?|tv7hXE+$u}1)8c6PS@c_pdqhNGLDK7-IxO zy6F6<#QVHy^WG!WO1t#ZQos4_r?lRoj~)B&g+jw2_@RuF=$&`o8J{?DqWakJ { expect(classesOf(dark).has("dark:block")).toBe(true); }); + const collapsedLogos = () => { + const home = within(screen.getByRole("link", { name: /litellm home/i })); + return { + light: home.getByRole("img", { name: "LiteLLM" }), + dark: home.getByRole("presentation", { hidden: true }), + }; + }; + + it("requests the bundled monogram for both themes when collapsed", () => { + renderWithProviders(); + + const { light, dark } = collapsedLogos(); + + expect(light).toHaveAttribute("src", expect.stringMatching(/\/get_image\?variant=monogram$/)); + expect(dark).toHaveAttribute("src", expect.stringMatching(/\/get_image\?theme=dark&variant=monogram$/)); + }); + + it("keeps a configured custom logo when collapsed instead of the LiteLLM monogram", () => { + mockUseThemeImpl = () => ({ + ...unbrandedTheme(), + logoUrl: "https://cdn.example.com/logo.png", + logoUrlDark: "https://cdn.example.com/logo-dark.png", + }); + renderWithProviders(); + + const { light, dark } = collapsedLogos(); + + expect(light).toHaveAttribute("src", "https://cdn.example.com/logo.png"); + expect(dark).toHaveAttribute("src", "https://cdn.example.com/logo-dark.png"); + }); + it("prefers a configured dark logo over the light one in dark mode", () => { mockUseThemeImpl = () => ({ ...unbrandedTheme(), diff --git a/ui/litellm-dashboard/src/components/leftnav.tsx b/ui/litellm-dashboard/src/components/leftnav.tsx index 1af6095413a..2fab3d9b111 100644 --- a/ui/litellm-dashboard/src/components/leftnav.tsx +++ b/ui/litellm-dashboard/src/components/leftnav.tsx @@ -84,6 +84,11 @@ const ICON = { strokeWidth: 1.75 } as const; const LOGO_CLASS_NAME = "h-7 w-auto max-w-[150px] object-contain group-data-[collapsed=true]/sidebar:w-7"; +function bundledLogoSrc(baseUrl: string, { dark, monogram }: { dark: boolean; monogram: boolean }): string { + const query = [dark && "theme=dark", monogram && "variant=monogram"].filter(Boolean).join("&"); + return `${baseUrl}/get_image${query ? `?${query}` : ""}`; +} + interface SidebarProps { collapsed?: boolean; onToggleCollapsed?: () => void; @@ -617,9 +622,9 @@ const Sidebar_: React.FC = ({ ); }; - const logoSrc = logoUrl || `${baseUrl}/get_image`; + const logoSrc = logoUrl || bundledLogoSrc(baseUrl, { dark: false, monogram: collapsed }); const reachableDarkLogo = logoUrlDark === erroredDarkLogo ? null : logoUrlDark; - const darkLogoSrc = reachableDarkLogo || logoUrl || `${baseUrl}/get_image?theme=dark`; + const darkLogoSrc = reachableDarkLogo || logoUrl || bundledLogoSrc(baseUrl, { dark: true, monogram: collapsed }); return ( diff --git a/ui/litellm-dashboard/src/lib/http/schema.d.ts b/ui/litellm-dashboard/src/lib/http/schema.d.ts index c9b17d6fc0c..e9ecd3492f7 100644 --- a/ui/litellm-dashboard/src/lib/http/schema.d.ts +++ b/ui/litellm-dashboard/src/lib/http/schema.d.ts @@ -55907,6 +55907,7 @@ export interface operations { parameters: { query?: { theme?: ("light" | "dark") | null; + variant?: "full" | "monogram"; }; header?: never; path?: never; diff --git a/ui/litellm-dashboard/src/lib/logoTreatments.test.ts b/ui/litellm-dashboard/src/lib/logoTreatments.test.ts index 08ea283a7a3..828ea72a57f 100644 --- a/ui/litellm-dashboard/src/lib/logoTreatments.test.ts +++ b/ui/litellm-dashboard/src/lib/logoTreatments.test.ts @@ -6,6 +6,12 @@ describe("logoTreatmentFor", () => { expect(logoTreatmentFor("/ui/assets/logos/github.svg")).toBe("invert"); }); + it("inverts the bundled LiteLLM monogram into the white brand mark on dark", () => { + expect(logoTreatmentFor("/litellm-asset-prefix/_next/static/media/litellm_monogram.16r2_rdj4dq8r.svg")).toBe( + "invert", + ); + }); + it("marks a multicolor dark mark for a plate instead of inversion", () => { expect(logoTreatmentFor("/ui/assets/logos/fireworks.svg")).toBe("plate"); }); diff --git a/ui/litellm-dashboard/src/lib/logoTreatments.ts b/ui/litellm-dashboard/src/lib/logoTreatments.ts index 1448dfa686d..fc19c5c364d 100644 --- a/ui/litellm-dashboard/src/lib/logoTreatments.ts +++ b/ui/litellm-dashboard/src/lib/logoTreatments.ts @@ -15,6 +15,7 @@ const TREATMENT_BY_ASSET: Readonly> = { "lago.svg": "invert", "lambda.svg": "invert", "langflow.svg": "invert", + "litellm_monogram.svg": "invert", "lmstudio.svg": "invert", "moonshot.svg": "invert", "nebius.svg": "invert",