test-theme / app.py
NeoPy's picture
Update app.py
8fb4365 verified
raw
history blame
3.68 kB
#from future import annotations
from typing import Iterable
import gradio as gr
#gr.themes.builder()
from gradio.themes.base import Base
from gradio.themes.utils import colors, fonts, sizes
class Modern(Base):
def __init__(
self,
*,
primary_hue: colors.Color | str = colors.neutral,
secondary_hue: colors.Color | str = colors.neutral,
neutral_hue: colors.Color | str = colors.neutral,
spacing_size: sizes.Size | str = sizes.spacing_md,
radius_size: sizes.Size | str = sizes.radius_md,
text_size: sizes.Size | str = sizes.text_lg,
font: fonts.Font | str | Iterable[fonts.Font | str] = (
"ui-sans-serif",
"system-ui",
"Segoe UI",
"Roboto",
),
font_mono: fonts.Font | str | Iterable[fonts.Font | str] = (
"ui-monospace",
"SFMono-Regular",
"Consolas",
),
):
super().__init__(
primary_hue=primary_hue,
secondary_hue=secondary_hue,
neutral_hue=neutral_hue,
spacing_size=spacing_size,
radius_size=radius_size,
text_size=text_size,
font=font,
font_mono=font_mono,
)
self.name = ("Modern",)
def set(self):
super().set(
# Base styles
background_fill_primary="#0F0F0F",
background_fill_primary_dark="#0F0F0F",
background_fill_secondary="#0F0F0F",
background_fill_secondary_dark="#0F0F0F",
body_text_color="white",
body_text_color_dark="white",
body_text_color_subdued="#999",
body_text_color_subdued_dark="#999",
border_color_primary="#333",
border_color_primary_dark="#333",
# Blocks
block_radius="0 0 0 0",
block_border_width="1px",
block_border_color="#333",
block_background_fill="#151515",
block_padding="*spacing_lg",
block_margin="*spacing_md 0",
# Buttons
button_primary_background_fill="#111",
button_primary_background_fill_hover="#222",
button_primary_text_color="white",
button_secondary_background_fill="transparent",
button_secondary_border_color="#666",
button_secondary_text_color="#fff",
button_secondary_border_width="1px",
button_radius="6px",
button_transition="0.2s",
# Inputs
input_background_fill="#181818",
input_border_color="#444",
input_text_color="white",
input_padding="*spacing_md",
input_radius="6px",
input_border_width="1px",
# Textarea
textarea_background_fill="#181818",
textarea_border_color="#444",
textarea_text_color="white",
textarea_padding="*spacing_md",
textarea_radius="6px",
textarea_border_width="1px",
# Layout
layout_gap="*spacing_lg",
block_label_padding="*spacing_sm *spacing_lg",
block_label_radius="6px",
block_label_border_width="1px",
block_label_border_color="#333",
block_label_background_fill="#151515",
)
def your_function(text):
print(text)
range = text
return range
# Assuming SimpleModern is your custom theme class
demo = gr.Interface(
fn=your_function,
inputs=gr.Textbox(),
outputs=gr.Textbox(),
theme=Modern(),
title="Test App",
)
demo.launch()