from gradio.themes.base import Base from gradio.themes.utils import colors, fonts, sizes from typing import Iterable class EnhancedSeafoam(Base): def __init__( self, *, primary_hue: colors.Color | str = colors.teal, secondary_hue: colors.Color | str = colors.blue, neutral_hue: colors.Color | str = colors.gray, spacing_size: sizes.Size | str = sizes.spacing_md, radius_size: sizes.Size | str = sizes.radius_md, text_size: sizes.Size | str = sizes.text_md, font: fonts.Font | str | Iterable[fonts.Font | str] = ( fonts.GoogleFont("Roboto"), "ui-sans-serif", "sans-serif", ), font_mono: fonts.Font | str | Iterable[fonts.Font | str] = ( fonts.GoogleFont("Roboto Mono"), "ui-monospace", "monospace", ), ): 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, ) super().set( # 背景 body_background_fill="*neutral_50", body_background_fill_dark="*neutral_900", # 主要元素 block_background_fill="white", block_background_fill_dark="*neutral_800", block_border_color="*primary_200", block_border_color_dark="*primary_700", block_border_width="2px", block_shadow="0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)", block_title_text_color="*primary_800", block_title_text_color_dark="*primary_200", block_title_text_weight="600", # 交互元素 button_primary_background_fill="*primary_600", button_primary_background_fill_hover="*primary_700", button_primary_text_color="gray", button_primary_background_fill_dark="*primary_700", button_primary_background_fill_hover_dark="*primary_600", button_secondary_background_fill="*secondary_500", button_secondary_background_fill_hover="*secondary_600", button_secondary_text_color="white", button_secondary_background_fill_dark="*secondary_600", button_secondary_background_fill_hover_dark="*secondary_500", button_border_width="0px", button_large_padding="16px 24px", # 输入框和滑块 input_background_fill="*neutral_100", input_background_fill_dark="*neutral_700", input_border_color="*primary_200", input_border_color_dark="*primary_600", input_border_color_focus="*primary_500", input_border_color_focus_dark="*primary_400", input_border_width="2px", slider_color="*primary_500", slider_color_dark="*primary_400", # 文本 body_text_color="*neutral_800", body_text_color_dark="*neutral_300", )