PokerGameDesigner / styles.py
Estazz's picture
Upload folder using huggingface_hub
711cab1 verified
"""
样式文件 - 集中管理 CSS 样式 (强制深色主题)
"""
POKER_THEME_CSS = """
html, body{ background-color:#0b1220 !important; color-scheme: dark !important; }
/* ===== 仅添加强制深色主题的关键代码 ===== */
:root {
color-scheme: dark !important;
}
@media (prefers-color-scheme: light) {
:root {
color-scheme: dark !important;
}
}
/* 修复HuggingFace可能添加的滤镜效果 */
.gradio-container {
filter: none !important;
-webkit-filter: none !important;
}
/* 保留原有设计的完整CSS */
:root{
/* 桌面与通用色,不变 */
--felt:#0e6b3d; /* 绿色绒面 */
--felt-2:#0b5a34;
--wood:#72451d;
--wood-2:#5e3717;
--ink:#f3f4f6;
--muted:#cbd5e1;
/* ===== HERO 渐变预设(左深 → 右浅)===== */
/* 预设 A:Emerald → Soft Rouge(推荐,赌场绿+柔和红,左侧白字对比最佳) */
--hero-left:#081813; /* 深黑绿 */
--hero-mid:#0e6b3d; /* 翡翠绿 */
--hero-right:#ff8a80; /* 浅柔红 */
/* 预设 B:Rouge Noir(更偏红黑风) */
/* --hero-left:#0b0b0b; --hero-mid:#7a0c0c; --hero-right:#ff6b6b; */
/* 预设 C:Emerald Noir(绿黑→薄荷) */
/* --hero-left:#071510; --hero-mid:#075e3a; --hero-right:#5bd1a8; */
}
body, .gradio-container{
background: radial-gradient(1200px 800px at 20% -10%, #1b4731 0%, #0b2b1d 35%, #081f16 100%) !important;
}
/* 顶部 HERO:左深右浅的线性渐变,白字清晰 */
.hero{
position:relative;
background: linear-gradient(90deg, var(--hero-left) 0%, var(--hero-mid) 48%, var(--hero-right) 100%);
color:#fff; /* 固定白字 */
text-shadow: 0 2px 6px rgba(0,0,0,.35);
border-radius:20px;
padding:18px 16px;
box-shadow: 0 10px 28px rgba(0,0,0,.25), inset 0 -3px 0 rgba(255,255,255,.25);
margin-bottom: 10px;
}
/* 花色水印略深一点但更透明,避免抢左侧文字注意力 */
.hero:after{
color:#fff;
content:"♠ ♣ ♥ ♦";
position:absolute; right:16px; top:10px; font-weight:700; font-size:28px; letter-spacing:6px;
}
/* 左侧设置卡片(半透明) */
.side-card{
background: rgba(255,255,255,.06);
border: 1px solid rgba(255,255,255,.12);
border-radius:16px; padding:14px;
box-shadow: 0 4px 14px rgba(0,0,0,.18);
backdrop-filter: blur(3px);
color:var(--ink);
}
.side-card h3{ margin:0 0 8px 0; }
/* 扑克桌容器:木框 + 绿色绒面 + 暗纹 */
.table{
position:relative;
background: radial-gradient(1200px 800px at 35% 10%, var(--felt) 0%, var(--felt-2) 55%, #083c25 100%);
border-radius:22px;
border: 12px solid transparent;
background-clip: padding-box;
box-shadow:
inset 0 0 50px rgba(0,0,0,.35),
0 20px 60px rgba(0,0,0,.35);
}
.table:before{ /* 木质外框 */
content:"";
position:absolute; inset:-14px;
border-radius:28px;
background: linear-gradient(90deg, var(--wood), var(--wood-2));
z-index:-1;
box-shadow: 0 8px 28px rgba(0,0,0,.45), inset 0 0 8px rgba(255,255,255,.1);
}
.table:after{ /* 低透水印:花色散点 */
content:"";
position:absolute; inset:0;
background-image:
radial-gradient(12px 12px at 12% 16%, rgba(255,255,255,.06) 0 40%, transparent 45%),
radial-gradient(10px 10px at 78% 24%, rgba(255,255,255,.05) 0 40%, transparent 45%),
radial-gradient(12px 12px at 30% 70%, rgba(0,0,0,.10) 0 40%, transparent 45%),
radial-gradient(8px 8px at 64% 82%, rgba(0,0,0,.09) 0 40%, transparent 45%);
pointer-events:none;
}
/* 聊天组件细节:头像更小、气泡更易读 */
.custom-chatbot .message{ font-size:16px; line-height:1.6; color:var(--ink); word-break:break-word; }
.custom-chatbot .message.user{ background: rgba(255,255,255,.08) !important; }
.custom-chatbot .message.bot{ background: rgba(0,0,0,.20) !important; }
/* 按钮:筹码风格 - 完全保留原有样式 */
.gradio-container button.gr-button{
border:none; color:#fff; font-weight:700; letter-spacing:.3px;
background: radial-gradient(circle at 50% 38%, #ff6b6b 0%, #e53935 60%, #b71c1c 100%);
border-radius:999px;
box-shadow: 0 8px 0 #7f1010, inset 0 0 0 5px #fff, inset 0 0 0 10px rgba(255,255,255,.35);
padding:10px 18px;
transition: transform .08s ease, box-shadow .08s ease;
}
.gradio-container button.gr-button:hover{ transform: translateY(-1px); }
.gradio-container button.gr-button:active{
transform: translateY(2px);
box-shadow: 0 4px 0 #7f1010, inset 0 0 0 5px #fff, inset 0 0 0 10px rgba(255,255,255,.35);
}
/* 输入框在桌面里更融洽 */
.table .gr-textbox textarea{
background: rgba(0,0,0,.20) !important; color:#e5e7eb !important;
border-radius:12px !important;
border:1px solid rgba(255,255,255,.18) !important;
}
/* 小提示文字颜色 */
.hint{ color:var(--muted); font-size:12px; }
@media (max-width: 820px){
.custom-chatbot .avatar-image{ width:40px !important; height:40px !important; }
}
/* === 修复 ChatInterface 内嵌发送/停止按钮在深色主题下不可见的问题 === */
:where(.gradio-container) button[aria-label="submit"],
:where(.gradio-container) button[aria-label="stop"]{
display: inline-flex !important;
align-items: center;
justify-content: center;
opacity: 1 !important;
visibility: visible !important;
pointer-events: auto !important;
border: 1px solid rgba(255,255,255,.22) !important;
background: rgba(255,255,255,.09) !important;
color: #fff !important;
border-radius: 10px !important;
height: 36px !important;
width: 36px !important;
cursor: pointer !important;
}
/* 保证输入框容器能正确容纳右侧内嵌按钮 */
:where(.gradio-container) .gr-chat-interface .gr-textbox{
position: relative;
}
:where(.gradio-container) .gr-chat-interface .gr-textbox textarea{
padding-right: 48px !important;
}
/* === Chatbot 头像尺寸 & 对齐(稳定版)=== */
/* 放大 Chatbot 头像(统一设置) */
.custom-chatbot .avatar,
.custom-chatbot .message .avatar{
width: 88px !important;
height: 88px !important;
min-width: 88px !important;
min-height: 88px !important;
border-radius: 9999px !important;
overflow: hidden !important;
border: 2px solid #ffffffcc !important;
box-shadow: 0 2px 6px rgba(0,0,0,.25) !important;
flex-shrink: 0 !important;
align-self: flex-start !important;
}
/* 控制头像尺寸(命中 gradio v4/5 的 DOM 结构) */
.custom-chatbot .avatar-image {
width: 60px !important; /* 改成你要的大小 */
height: 60px !important;
border-radius: 50% !important; /* 保持圆形 */
object-fit: cover !important;
}
/* 可选:调整气泡和头像的间距 */
.custom-chatbot .message {
gap: 12px !important; /* 改成更大/更小 */
}
/* 头像图片填充容器,不变形 */
.custom-chatbot .avatar > img,
.custom-chatbot .avatar-image{
width: 100% !important;
height: 100% !important;
object-fit: cover !important;
object-position: 50% 50% !important;
display: block !important;
border: 0 !important;
background: transparent !important;
}
/* 头像与气泡的间距与对齐(可选) */
.custom-chatbot .message{ gap: 12px !important; align-items: flex-start !important; }
.custom-chatbot .message .message-content{ margin-top: 2px !important; }
"""