File size: 4,093 Bytes
fcb34bb
9c72146
fcb34bb
 
5a007ca
 
fcb34bb
 
 
2369fc5
 
5a007ca
fcb34bb
2369fc5
 
 
 
 
 
 
fcb34bb
 
 
2369fc5
 
 
 
fcb34bb
 
 
 
2369fc5
 
fcb34bb
 
 
 
2369fc5
 
 
 
 
 
 
 
 
 
 
 
fcb34bb
2369fc5
 
fcb34bb
 
 
 
 
 
 
2369fc5
fcb34bb
 
2369fc5
fcb34bb
 
 
2369fc5
fcb34bb
 
 
 
 
 
2369fc5
fcb34bb
 
 
 
 
 
2369fc5
fcb34bb
 
 
 
 
 
2369fc5
fcb34bb
 
 
 
 
 
 
 
2369fc5
fcb34bb
2369fc5
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
97
98
99
"""
theme.py

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 __future__ import annotations
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
            input_background_fill_dark='#262626',  
            error_background_fill='#EF4444',  
            error_background_fill_dark='#171717',  
            error_border_color='#B91C1C',  
            error_border_color_dark='#EF4444',  
            error_icon_color='#B91C1C',  
            error_icon_color_dark='#EF4444',  
            # Shadows
            input_shadow_focus='0 0 0 *shadow_spread #7C3AED80, *shadow_inset',  
            input_shadow_focus_dark='0 0 0 *shadow_spread #40404080, *shadow_inset',  
            # Button borders
            button_border_width='0px',
            input_border_width='1px',
            input_background_fill='#F9FAFB',  
            # Gradients
            stat_background_fill='linear-gradient(to right, #7C3AED, #D8B4FE)',
            stat_background_fill_dark='linear-gradient(to right, #7C3AED, #5B21B6)',
            checkbox_label_background_fill='#F3F4F6',
            checkbox_label_background_fill_dark='#1F2937',
            checkbox_label_background_fill_hover='#E5E7EB',
            checkbox_label_background_fill_hover_dark='#374151',
            # Primary Button
            button_primary_background_fill='#111111',  
            button_primary_background_fill_dark='#171717',  
            button_primary_background_fill_hover='#3F3F3F',
            button_primary_background_fill_hover_dark='#3F3F3F',  
            button_primary_text_color='#FFFFFF',  
            button_primary_text_color_dark='#FFFFFF',  
            # Secondary Button
            button_secondary_background_fill='#E5E7EB',  
            button_secondary_background_fill_dark='#4B5563',  
            button_secondary_background_fill_hover='#D1D5DB',  
            button_secondary_background_fill_hover_dark='#374151',  
            button_secondary_text_color='#111827',  
            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',  
        )