small-cuts / src /small_cuts /theme.py
macayaven's picture
Upload folder using huggingface_hub
24e5b39 verified
Raw
History Blame Contribute Delete
3.01 kB
"""Off-Brand Gradio theme for Small Cuts."""
from __future__ import annotations
import gradio as gr
from .title_card import STYLE_CARDS
CANVAS = STYLE_CARDS["trailer"][0]
MARQUEE_GOLD = STYLE_CARDS["trailer"][1]
BONE_WHITE = STYLE_CARDS["noir"][1]
LIFTED_CANVAS = "#16161C"
BORDER = "#2A292F"
class OffBrand(gr.themes.Base):
"""Dark cinematic Gradio theme using the Small Cuts house palette."""
def __init__(self) -> None:
super().__init__(
font=[gr.themes.GoogleFont("Spectral"), "serif"],
font_mono=[gr.themes.GoogleFont("IBM Plex Mono"), "monospace"],
)
self.set(
body_background_fill=CANVAS,
body_background_fill_dark=CANVAS,
body_text_color=BONE_WHITE,
body_text_color_dark=BONE_WHITE,
background_fill_primary=CANVAS,
background_fill_primary_dark=CANVAS,
background_fill_secondary=LIFTED_CANVAS,
background_fill_secondary_dark=LIFTED_CANVAS,
block_background_fill=LIFTED_CANVAS,
block_background_fill_dark=LIFTED_CANVAS,
block_border_color=BORDER,
block_border_color_dark=BORDER,
block_title_text_color=MARQUEE_GOLD,
block_title_text_color_dark=MARQUEE_GOLD,
border_color_primary=BORDER,
border_color_primary_dark=BORDER,
input_background_fill=STYLE_CARDS["noir"][0],
input_background_fill_dark=STYLE_CARDS["noir"][0],
input_background_fill_focus=CANVAS,
input_background_fill_focus_dark=CANVAS,
input_border_color=BORDER,
input_border_color_dark=BORDER,
link_text_color=MARQUEE_GOLD,
link_text_color_dark=MARQUEE_GOLD,
button_primary_background_fill=MARQUEE_GOLD,
button_primary_background_fill_dark=MARQUEE_GOLD,
button_primary_border_color=MARQUEE_GOLD,
button_primary_border_color_dark=MARQUEE_GOLD,
button_primary_text_color=CANVAS,
button_primary_text_color_dark=CANVAS,
button_secondary_background_fill=LIFTED_CANVAS,
button_secondary_background_fill_dark=LIFTED_CANVAS,
button_secondary_text_color=BONE_WHITE,
button_secondary_text_color_dark=BONE_WHITE,
button_secondary_border_color=BORDER,
button_secondary_border_color_dark=BORDER,
# P0 contrast fixes (#28): code chips rendered near-white-on-white
# and the in-block labels were too dim on the charcoal canvas.
code_background_fill=STYLE_CARDS["noir"][0],
code_background_fill_dark=STYLE_CARDS["noir"][0],
block_label_text_color=MARQUEE_GOLD,
block_label_text_color_dark=MARQUEE_GOLD,
block_label_background_fill=LIFTED_CANVAS,
block_label_background_fill_dark=LIFTED_CANVAS,
)
def build_theme() -> gr.themes.Base:
return OffBrand()