File size: 2,486 Bytes
c813369
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from __future__ import annotations
from collections.abc import Iterable
from gradio.themes.base import Base
from gradio.themes.utils import colors, fonts, sizes

custom_primary = colors.Color(
    c50="#FCE8E0",
    c100="#F9D0C1",
    c200="#F5B8A3",
    c300="#F0A184",
    c400="#EB8965",
    c500="#E65F2B",
    c600="#C94F24",
    c700="#A03F1D",
    c800="#782F16",
    c900="#4F1F0F",
    c950="#2A1208",
)

class Claude(Base):
    def __init__(
        self,
        *,
        primary_hue=custom_primary,
        secondary_hue=colors.amber,
        neutral_hue=colors.zinc,
        spacing_size=sizes.spacing_md,
        radius_size=sizes.radius_xxl,
        text_size=sizes.text_md,
        font=(
            fonts.GoogleFont("Inter"),
            "ui-sans-serif",
            "system-ui",
            "sans-serif",
        ),
        font_mono=(
            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 = "claude"

        super().set(
            # Global background
            body_background_fill="#F8F5F2",
            block_background_fill="#FFFFFF",
            block_border_width="0px",
            block_shadow="none",
            block_title_text_color="black",
            block_label_border_width="0px",

            # Inputs
            input_background_fill="white",
            input_border_color="#D8D6D2",
            input_border_width="1px",
            input_shadow="none",
            input_shadow_focus="0 0 0 2px rgba(230,95,43,0.25)",

            # Buttons
            button_border_width="0px",
            button_transform_hover="scale(1.02)",
            button_transition="all 0.15s ease-in-out",

            # Primary button (Claude orange)
            button_primary_background_fill="#E65F2B",
            button_primary_background_fill_hover="#D75423",
            button_primary_text_color="white",

            # Secondary (light minimal)
            button_secondary_background_fill="#EFECEA",
            button_secondary_background_fill_hover="#E8E6E4",
            button_secondary_text_color="#2A2A2A",

        )