"""Gradio theme: the same dark desk palette in light and dark mode.""" import gradio as gr FONTS_HEAD = ( '' '' '' ) _SAME = { "body_background_fill": "#0A0E13", "body_text_color": "#E8EEF4", "body_text_color_subdued": "#7F8FA0", "background_fill_primary": "#10171F", "background_fill_secondary": "#141D27", "block_background_fill": "#10171F", "block_border_color": "#1F2B37", "block_label_text_color": "#7F8FA0", "block_title_text_color": "#E8EEF4", "border_color_primary": "#1F2B37", "input_background_fill": "#0A0E13", "input_border_color": "#1F2B37", "slider_color": "#C8F53C", "checkbox_background_color_selected": "#C8F53C", "checkbox_border_color_selected": "#C8F53C", "color_accent": "#C8F53C", "color_accent_soft": "rgba(200,245,60,.14)", "link_text_color": "#C8F53C", } def build_theme() -> gr.themes.Base: theme = gr.themes.Base( font=[gr.themes.GoogleFont("IBM Plex Sans"), "system-ui", "sans-serif"], font_mono=[gr.themes.GoogleFont("IBM Plex Mono"), "ui-monospace", "monospace"], radius_size=gr.themes.sizes.radius_md, ) values = {} for key, val in _SAME.items(): values[key] = val if key != "color_accent": # the only variable without a _dark twin values[f"{key}_dark"] = val return theme.set(**values)