File size: 3,727 Bytes
fcb34bb
9c72146
fcb34bb
bc5091e
5a007ca
 
fcb34bb
 
 
2369fc5
5a007ca
fcb34bb
2369fc5
 
 
d1ed6b1
2369fc5
 
 
 
d1ed6b1
 
 
2369fc5
 
 
 
d1ed6b1
 
 
 
2369fc5
 
d1ed6b1
 
 
 
2369fc5
 
 
 
 
 
 
 
 
 
 
 
d1ed6b1
2369fc5
e431b2b
d1ed6b1
e431b2b
d1ed6b1
e431b2b
d1ed6b1
e431b2b
d1ed6b1
e431b2b
 
d1ed6b1
e431b2b
 
d1ed6b1
e431b2b
 
d1ed6b1
 
e431b2b
d1ed6b1
e431b2b
d1ed6b1
e431b2b
d1ed6b1
e431b2b
 
d1ed6b1
e431b2b
d1ed6b1
e431b2b
d1ed6b1
e431b2b
 
d1ed6b1
e431b2b
d1ed6b1
e431b2b
d1ed6b1
e431b2b
d1ed6b1
e431b2b
 
d1ed6b1
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
"""
theme.py

This module defines a custom Gradio theme.
- For more information on Gradio themes see: https://www.gradio.app/docs/gradio/themes
- For manual styling with css, see /src/assets/styles.css
"""

# Standard Library Imports
from collections.abc import Iterable

# Third-Party Library Imports
from gradio.themes.base import Base
from gradio.themes.utils import colors, fonts, sizes


class CustomTheme(Base):
    def __init__(
        self,
        *,
        primary_hue: colors.Color | str = colors.purple,
        secondary_hue: colors.Color | str = colors.stone,
        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_md,
        font: fonts.Font | str | Iterable[fonts.Font | str] = (
            fonts.GoogleFont("Source Sans Pro"),
            "ui-sans-serif",
            "system-ui",
            "sans-serif",
        ),
        font_mono: fonts.Font | str | Iterable[fonts.Font | str] = (
            fonts.GoogleFont("IBM Plex Mono"),
            "ui-monospace",
            "Consolas",
            "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,
        )
        self.name = "custom_theme"
        super().set(
            # --- Colors ---
            error_background_fill="#EF4444",
            # error_background_fill_dark='',
            error_border_color="#B91C1C",
            # error_border_color_dark='',
            error_icon_color="#B91C1C",
            # error_icon_color_dark='',
            input_background_fill="#F9FAFB",
            # input_background_fill_dark='',
            # --- Shadows ---
            input_shadow_focus="0 0 0 *shadow_spread #7C3AED80, *shadow_inset",
            # input_shadow_focus_dark='',
            # --- Gradients ---
            stat_background_fill="linear-gradient(to right, #7C3AED, #D8B4FE)",
            # stat_background_fill_dark='',
            # --- Button borders ---
            button_border_width="0px",
            input_border_width="1px",
            # --- Primary Button ---
            button_primary_background_fill="#7E22CE",
            # button_primary_background_fill_dark='',
            button_primary_background_fill_hover="#9333EA",
            # button_primary_background_fill_hover_dark='',
            button_primary_text_color="#FFFFFF",
            # button_primary_text_color_dark='',
            # --- Secondary Button ---
            button_secondary_background_fill="#222222",
            # button_secondary_background_fill_dark='#4B5563',
            button_secondary_background_fill_hover="#3F3F3F",
            # button_secondary_background_fill_hover_dark='#374151',
            button_secondary_text_color="#FFFFFF",
            # button_secondary_text_color_dark='#FFFFFF',
            # --- Cancel Button ---
            button_cancel_background_fill="#EF4444",
            # button_cancel_background_fill_dark='#B91C1C',
            button_cancel_background_fill_hover="#DC2626",
            # button_cancel_background_fill_hover_dark='#991B1B',
            button_cancel_text_color="#FFFFFF",
            # button_cancel_text_color_dark='#FFFFFF',
            button_cancel_text_color_hover="#FFFFFF",
            # button_cancel_text_color_hover_dark='#FFFFFF',
            # --- Other ---
            border_color_accent_subdued="#A78BFA",
        )