From 2f74da830b3f7eb05a8bf63ce12267a809dc969b Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Tue, 6 Oct 2026 03:31:13 +0800 Subject: [PATCH] =?UTF-8?q?iter16ui=20T5=EF=BC=9AP4=E4=B9=99panel=E5=88=87?= =?UTF-8?q?=E7=89=878=E2=86=9216=EF=BC=88PANEL=5FSLICE=E5=8D=95=E7=82=B9?= =?UTF-8?q?=EF=BC=8Cbutton=208/=E4=BB=AA=E5=BC=8F=E6=A1=8612=E7=BB=B4?= =?UTF-8?q?=E6=8C=81=EF=BC=89+Q1=E4=B8=99panel=5Fskinned=E5=B7=A5=E5=8E=82?= =?UTF-8?q?content=20margin=20clamp=EF=BC=88=E4=BD=8E=E4=BA=8E=E5=88=87?= =?UTF-8?q?=E7=89=87=E8=87=AA=E5=8A=A8=E6=8A=AC=E5=B9=B3=EF=BC=8C9?= =?UTF-8?q?=E6=B6=88=E8=B4=B9=E9=9D=A27=E5=A4=84=E5=8F=97=E7=9B=8A?= =?UTF-8?q?=E8=B0=83=E7=94=A8=E7=82=B9=E9=9B=B6=E6=94=B9=EF=BC=89+P5?= =?UTF-8?q?=E7=94=B2=E5=9C=86=E8=A7=92=E6=94=B6=E6=95=9BRADIUS=5FOBJECT=3D?= =?UTF-8?q?5=E5=8D=95=E7=82=B9=EF=BC=8826=E5=A4=842/3/4/5/6/8=E6=A1=A3?= =?UTF-8?q?=E5=BD=92=E4=B8=80=EF=BC=9B=E4=BE=8B=E5=A4=9617=E5=BA=95?= =?UTF-8?q?=E5=BA=A7/200=E9=87=91=E5=8D=B0/100=E8=84=89=E5=86=B2=E7=8E=AF?= =?UTF-8?q?=E4=BF=9D=E7=95=99=EF=BC=89+bcard=E9=80=89=E4=B8=AD=E5=BA=95?= =?UTF-8?q?=E5=AD=97=E9=9D=A2=E9=87=8F=E9=80=80=E5=BD=B9=E5=BD=92PANEL=5FD?= =?UTF-8?q?ATA+art-bible=20=C2=A77.1=E5=9C=86=E8=A7=92=E5=8D=95=E7=82=B9?= =?UTF-8?q?=E4=B8=8E=E4=B9=9D=E5=AE=AB=E6=A0=BC=E5=88=87=E7=89=87=E4=B8=A4?= =?UTF-8?q?=E6=9D=A1=E6=B3=A8=E8=AE=B0=E5=8F=8C=E4=BE=A7=E8=90=BD=E6=96=87?= =?UTF-8?q?=EF=BC=9B=E8=BD=BB=E9=97=B8=E5=86=92=E7=83=9F782/0+probe=5Fgate?= =?UTF-8?q?=20--click=E5=85=A8=E7=BB=BF=EF=BC=88click=20done=3Dtrue=20?= =?UTF-8?q?=E9=97=AE=E9=A2=98=3D0=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- design/art/art-bible.md | 2 + game/presentation/views/board_view.gd | 4 +- game/presentation/views/camp_overlay_view.gd | 14 +++---- game/presentation/views/settlement_fx_view.gd | 4 +- game/presentation/views/shop_overlay_view.gd | 4 +- game/presentation/views/status_slot_row.gd | 4 +- game/presentation/views/toast_stack.gd | 2 +- game/presentation/views/ui_kit.gd | 39 ++++++++++++------- 8 files changed, 42 insertions(+), 31 deletions(-) diff --git a/design/art/art-bible.md b/design/art/art-bible.md index 369609f7..07e07fa8 100644 --- a/design/art/art-bible.md +++ b/design/art/art-bible.md @@ -397,6 +397,8 @@ **半拟物:容器穿戏服,数据素面。**面板=石板圆角矩形(与地砖同圆角率,全 UI 恒定),按钮=凸圆角的"可按的砖"(按压态=下沉一档,运动手段 §2),仪式性确认(胜利等)=圆形蜡封(呼应 §2.4);数字框、准线、进度条一律直角细线、无纹理;**数字色牌 = 直角小素牌**(2026-09-29 v3.0 后备件)——宽随数字位、无纹理无装饰,仅复杂格底兜底时垫于数字正下方一层(色值 §4.1),属"须精确的信息"侧、走直角律。判据:圆角=可触摸的物件,直角=须精确的信息。与参考分界:取 ITB 的信息分层,弃其冷硬斜切 HUD;取 Moonlighter 的木石亲和,不做全拟物。 - **极性强调冗余**(§4.5⑦):UI 红/金强调对必须补图标+文案冗余;破坏性确认与常规确认不得同位(位置通道)。 +- **圆角率单点注记(2026-10-06 UI 设计对齐批 P5 甲)**:容器/按钮圆角值收敛为全站唯一 `RADIUS_OBJECT = 5`(ui_kit 单点;与主/危按钮原 5px 同值,面板与按钮同圆角率即满足本节「全 UI 恒定圆角率」);数据框/数字牌/AP 点阵/准线/血条维持 0 直角;**例外三件保留**=标题屏底座椭圆 17/结算金印 200(圆形蜡封)/状态脉冲环 100(圆形)。收敛前实测 0/2/3/4/5/6/8/17/100/200 十档并存。 +- **九宫格切片注记(2026-10-06 UI 设计对齐批 P4 乙+Q1 丙)**:panel 石皮 `PANEL_SLICE = 16`(原 8→16,与原型 .plate9 slice16 对齐;button 维持 8、仪式框维持 12——素材 panel_stone/button_stone 均 48×48 不动);`panel_skinned` 工厂内 **content margin clamp**=低于切片的分量自动抬到切片(石框纹理不吃内容;工厂单点,调用点零改)。本节原无切片条款,此为新增注记。 - **资产渠道**:♻ 九宫格面板/按钮改色过复用闸优先(清单 §0),⚙ 兜底;样式终稿随 §1.4 样张闸后定稿。 - **占位收口条款(2026-09-29 v3.0 新增,病根 8)**:程序化占位 = **临时态**,任何屏的终稿闸 = §1.4 整屏样张过闸;占位态不得跨里程碑。 - **实现侧边界**:样式收敛 ui_kit;ui_kit 的工程契约归《HUD框架》,本节不重述。 diff --git a/game/presentation/views/board_view.gd b/game/presentation/views/board_view.gd index f3d6a41c..da2e1393 100644 --- a/game/presentation/views/board_view.gd +++ b/game/presentation/views/board_view.gd @@ -739,10 +739,10 @@ func _paint_cell(c: Vector2i, hero: Vector2i) -> void: tile = _floor_tile_for(c) if revealed else _wall_tile_for(c) else: # 素材整批缺位回退 = 现行程序化平色路径(fresh checkout 冒烟不炸——任务书 §2.2) - sb = UiKit.panel_flat(bg, bg.darkened(0.15), 3) + sb = UiKit.panel_flat(bg, bg.darkened(0.15),UiKit.RADIUS_OBJECT) if is_hero: if sb == null: - sb = UiKit.panel_flat(Color.TRANSPARENT, Color.TRANSPARENT, 3, 0) + sb = UiKit.panel_flat(Color.TRANSPARENT, Color.TRANSPARENT,UiKit.RADIUS_OBJECT, 0) sb.set_border_width_all(3) sb.border_color = COL_HERO if glyph == "" and _hero_tex_idle == null: diff --git a/game/presentation/views/camp_overlay_view.gd b/game/presentation/views/camp_overlay_view.gd index decd511e..07659967 100644 --- a/game/presentation/views/camp_overlay_view.gd +++ b/game/presentation/views/camp_overlay_view.gd @@ -67,7 +67,7 @@ func _init() -> void: col.add_child(top) var plaque := PanelContainer.new() plaque.add_theme_stylebox_override("panel", - UiKit.panel_flat(UiKit.PANEL_DATA, UiKit.PANEL_BORDER, 2, 1, Vector4(14, 8, 14, 8))) + UiKit.panel_flat(UiKit.PANEL_DATA, UiKit.PANEL_BORDER,UiKit.RADIUS_OBJECT, 1, Vector4(14, 8, 14, 8))) top.add_child(plaque) var plaque_col := VBoxContainer.new() plaque.add_child(plaque_col) @@ -82,7 +82,7 @@ func _init() -> void: # M3(UI 落码批 2026-10-04):钥石徽章烛光黄底+深墨字(demo ②——旧暗底 CAMP_BADGE_PANEL 退役; # BADGE_PANEL_COL 常量保留他用不动) badge.add_theme_stylebox_override("panel", - UiKit.panel_flat(UiKit.CANDLE, UiKit.CAMP_HEADER_BAND, 2, 1, Vector4(14, 8, 14, 8))) + UiKit.panel_flat(UiKit.CANDLE, UiKit.CAMP_HEADER_BAND,UiKit.RADIUS_OBJECT, 1, Vector4(14, 8, 14, 8))) top.add_child(badge) var bal_row := HBoxContainer.new() bal_row.add_theme_constant_override("separation", 6) @@ -151,12 +151,12 @@ func _counter_panel(title_text: String, icon_path: String, holder: Control, min_ var panel := PanelContainer.new() panel.custom_minimum_size = Vector2(min_w, 0) panel.add_theme_stylebox_override("panel", - UiKit.panel_flat(UiKit.PANEL_DATA, UiKit.PANEL_BORDER, 3, 1, Vector4(10, 10, 10, 10))) + UiKit.panel_flat(UiKit.PANEL_DATA, UiKit.PANEL_BORDER,UiKit.RADIUS_OBJECT, 1, Vector4(10, 10, 10, 10))) var vbox := VBoxContainer.new() vbox.add_theme_constant_override("separation", 8) panel.add_child(vbox) var band := PanelContainer.new() - band.add_theme_stylebox_override("panel", UiKit.panel_flat(HEADER_BAND_COL, UiKit.PANEL_BORDER, 2, 1, Vector4(10, 5, 10, 5))) + band.add_theme_stylebox_override("panel", UiKit.panel_flat(HEADER_BAND_COL, UiKit.PANEL_BORDER,UiKit.RADIUS_OBJECT, 1, Vector4(10, 5, 10, 5))) vbox.add_child(band) var head := HBoxContainer.new() head.add_theme_constant_override("separation", 6) @@ -307,7 +307,7 @@ func _rebuild_forge(data: Dictionary) -> void: func _build_forge_row(holder: VBoxContainer, row: Dictionary) -> Dictionary: var card := PanelContainer.new() - card.add_theme_stylebox_override("panel", UiKit.panel_flat(ROW_PLATE_COL, UiKit.PANEL_BORDER, 2, 1, Vector4(10, 4, 10, 4))) + card.add_theme_stylebox_override("panel", UiKit.panel_flat(ROW_PLATE_COL, UiKit.PANEL_BORDER,UiKit.RADIUS_OBJECT, 1, Vector4(10, 4, 10, 4))) var line := HBoxContainer.new() line.add_theme_constant_override("separation", 12) card.add_child(line) @@ -332,7 +332,7 @@ func _build_forge_row(holder: VBoxContainer, row: Dictionary) -> Dictionary: line.add_child(name_l) var level_l := UiKit.label("", 13, true, UiKit.INK_ON_DEEP) # M3:Lv 章化(木底小章——demo lvtag;Label normal 槽挂样式盒) - level_l.add_theme_stylebox_override("normal", UiKit.panel_flat(UiKit.CAMP_HEADER_BAND, Color(0, 0, 0, 0), 2, 0, Vector4(6, 0, 6, 0))) + level_l.add_theme_stylebox_override("normal", UiKit.panel_flat(UiKit.CAMP_HEADER_BAND, Color(0, 0, 0, 0),UiKit.RADIUS_OBJECT, 0, Vector4(6, 0, 6, 0))) level_l.custom_minimum_size = Vector2(44, 0) line.add_child(level_l) var price_l := UiKit.label("", 14, false, UiKit.STONE) @@ -351,7 +351,7 @@ func _rebuild_workshop(data: Dictionary) -> void: child.queue_free() for row in data.get("workshop", []): var card := PanelContainer.new() - card.add_theme_stylebox_override("panel", UiKit.panel_flat(ROW_PLATE_COL, UiKit.PANEL_BORDER, 2, 1, Vector4(10, 4, 10, 4))) + card.add_theme_stylebox_override("panel", UiKit.panel_flat(ROW_PLATE_COL, UiKit.PANEL_BORDER,UiKit.RADIUS_OBJECT, 1, Vector4(10, 4, 10, 4))) var line := HBoxContainer.new() line.add_theme_constant_override("separation", 12) card.add_child(line) diff --git a/game/presentation/views/settlement_fx_view.gd b/game/presentation/views/settlement_fx_view.gd index 067d3a01..1d6a0c5a 100644 --- a/game/presentation/views/settlement_fx_view.gd +++ b/game/presentation/views/settlement_fx_view.gd @@ -127,7 +127,7 @@ func play_round_banner(ri: int) -> void: _fx_banners += 1 var banner := Panel.new() banner.mouse_filter = Control.MOUSE_FILTER_IGNORE - banner.add_theme_stylebox_override("panel", UiKit.panel_flat(Color(UiKit.BG_OVERLAY, 0.88), UiKit.GOLD_DEEP, 8, 2)) + banner.add_theme_stylebox_override("panel", UiKit.panel_flat(Color(UiKit.BG_OVERLAY, 0.88), UiKit.GOLD_DEEP,UiKit.RADIUS_OBJECT, 2)) var lab := UiKit.label("第 %d 轮" % ri, 22, true, UiKit.GOLD) lab.set_anchors_and_offsets_preset(Control.PRESET_FULL_RECT) lab.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER @@ -156,7 +156,7 @@ func play_board_variant_banner(text: String) -> void: _fx_banners += 1 var banner := Panel.new() banner.mouse_filter = Control.MOUSE_FILTER_IGNORE - banner.add_theme_stylebox_override("panel", UiKit.panel_flat(Color(UiKit.BG_OVERLAY, 0.88), UiKit.GOLD_DEEP, 8, 2)) + banner.add_theme_stylebox_override("panel", UiKit.panel_flat(Color(UiKit.BG_OVERLAY, 0.88), UiKit.GOLD_DEEP,UiKit.RADIUS_OBJECT, 2)) var lab := UiKit.label(text, 22, true, UiKit.GOLD) lab.set_anchors_and_offsets_preset(Control.PRESET_FULL_RECT) lab.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER diff --git a/game/presentation/views/shop_overlay_view.gd b/game/presentation/views/shop_overlay_view.gd index c60429fb..6af46e71 100644 --- a/game/presentation/views/shop_overlay_view.gd +++ b/game/presentation/views/shop_overlay_view.gd @@ -52,7 +52,7 @@ func _init() -> void: _refresh_btn.add_child(stock_badge) var gp_chip := PanelContainer.new() gp_chip.add_theme_stylebox_override("panel", - UiKit.panel_flat(UiKit.CANDLE, UiKit.CAMP_HEADER_BAND, 2, 1, Vector4(12, 4, 12, 4))) + UiKit.panel_flat(UiKit.CANDLE, UiKit.CAMP_HEADER_BAND,UiKit.RADIUS_OBJECT, 1, Vector4(12, 4, 12, 4))) top.add_child(gp_chip) _gp_label = UiKit.label("金币 0", 16, true, UiKit.INK_ON_GOLD) gp_chip.add_child(_gp_label) @@ -94,7 +94,7 @@ func refresh_state(products: Array, gp: int) -> void: # 商品卡(显示名 + 档位文案 | 现价 | 已购档数 | 购买按钮) func _build_card(p: Dictionary) -> Dictionary: var card := PanelContainer.new() - card.add_theme_stylebox_override("panel", UiKit.panel_flat(UiKit.BG_OVERLAY, UiKit.GOLD_DIM, 4, 1, Vector4(12, 6, 12, 6))) + card.add_theme_stylebox_override("panel", UiKit.panel_flat(UiKit.BG_OVERLAY, UiKit.GOLD_DIM,UiKit.RADIUS_OBJECT, 1, Vector4(12, 6, 12, 6))) var row := HBoxContainer.new() row.add_theme_constant_override("separation", 14) card.add_child(row) diff --git a/game/presentation/views/status_slot_row.gd b/game/presentation/views/status_slot_row.gd index 4ec168f6..ac8143a5 100644 --- a/game/presentation/views/status_slot_row.gd +++ b/game/presentation/views/status_slot_row.gd @@ -62,7 +62,7 @@ func _init() -> void: _tip.z_index = 10 _tip.mouse_filter = Control.MOUSE_FILTER_IGNORE _tip.visible = false - var sb := UiKit.panel_flat(UiKit.TIP_BG, UiKit.GOLD, 2, 1, Vector4(6, 3, 6, 3)) + var sb := UiKit.panel_flat(UiKit.TIP_BG, UiKit.GOLD,UiKit.RADIUS_OBJECT, 1, Vector4(6, 3, 6, 3)) _tip.add_theme_stylebox_override("panel", sb) _tip_label = UiKit.label("", 13, false, UiKit.WARM) _tip_label.autowrap_mode = TextServer.AUTOWRAP_WORD_SMART @@ -107,7 +107,7 @@ func _make_slot() -> PanelContainer: # 槽底不透明(2026-09-26 用户反馈:图标显示不清晰——半透明底叠 B 区米色面板吃掉白图标对比度; # 改深墨棕实底 = 白色纹样图标对比承载,槽界同时可辨) slot.add_theme_stylebox_override("panel", - UiKit.panel_flat(UiKit.SLOT_BACKDROP, UiKit.PANEL_BORDER, 2, 1, Vector4(2, 1, 2, 1))) + UiKit.panel_flat(UiKit.SLOT_BACKDROP, UiKit.PANEL_BORDER,UiKit.RADIUS_OBJECT, 1, Vector4(2, 1, 2, 1))) else: slot.custom_minimum_size = Vector2(50, 46) slot.add_theme_stylebox_override("panel", UiKit.panel_flat(UiKit.PANEL_DATA, UiKit.PANEL_BORDER)) diff --git a/game/presentation/views/toast_stack.gd b/game/presentation/views/toast_stack.gd index 755a9798..5d30f69f 100644 --- a/game/presentation/views/toast_stack.gd +++ b/game/presentation/views/toast_stack.gd @@ -35,7 +35,7 @@ func show_toast(text: String, tone: String = "info") -> void: row.mouse_filter = Control.MOUSE_FILTER_IGNORE row.clip_contents = true # 缺陷①约束:固定槽高裁剪,不回流布局 row.custom_minimum_size = Vector2(0, 24) - var sb := UiKit.panel_flat(UiKit.TOAST_BG, COL_INFO, 2, 1, Vector4(8, 2, 8, 2)) + var sb := UiKit.panel_flat(UiKit.TOAST_BG, COL_INFO,UiKit.RADIUS_OBJECT, 1, Vector4(8, 2, 8, 2)) var col := COL_INFO if tone == "warn": col = COL_WARN diff --git a/game/presentation/views/ui_kit.gd b/game/presentation/views/ui_kit.gd index 083532b5..5439aaa8 100644 --- a/game/presentation/views/ui_kit.gd +++ b/game/presentation/views/ui_kit.gd @@ -228,6 +228,11 @@ static func load_font(path: String) -> Font: # ── StyleBox 工厂 ── # margin = (左, 上, 右, 下);border_w = 0 即无边框(根底/遮罩用) +# 圆角率单点(UI 设计对齐批 P5 甲 2026-10-06——容器/按钮全站唯一圆角值;数据框/数字牌/AP 点阵/准线/血条 +# =0 直角不变;底座椭圆 17/结算金印 200/状态脉冲环 100 圆形 = §7.1 明示例外保留。取值=代拍板 5,可推翻) +const RADIUS_OBJECT := 5 +# 九宫格切片(P4 乙 2026-10-06——panel 石皮 8→16 与 demo .plate9 slice16 对齐;button 维持 8、仪式框维持 12) +const PANEL_SLICE := 16.0 static func panel_flat(bg: Color, border: Color, corner: int = 0, border_w: int = 1, margin: Vector4 = Vector4.ZERO) -> StyleBoxFlat: var sb := StyleBoxFlat.new() sb.bg_color = bg @@ -320,15 +325,19 @@ static func _tex_sb(tex: Texture2D, margin: float, tint := Color.WHITE) -> Style # 石板亮面板(B 区舞台/C 区主面板/图例——容器穿戏服;数据框仍 panel_flat 素面 §7.1) +# Q1 丙(2026-10-06):content margin 低于切片的分量自动抬到切片——切片加大到 16 后石框纹理不吃内容 +# (T0 实查 9 消费面 7 处 margin<16;工厂单点 clamp,调用点零改) static func panel_skinned(margin: Vector4 = Vector4.ZERO, tint := Color.WHITE) -> StyleBox: + var m := Vector4(maxf(margin.x, PANEL_SLICE), maxf(margin.y, PANEL_SLICE), + maxf(margin.z, PANEL_SLICE), maxf(margin.w, PANEL_SLICE)) var tex := load_tex(TEX_PANEL_STONE) if tex == null: - return panel_flat(PANEL_DATA, PANEL_BORDER, 4, 1, margin) - var sb := _tex_sb(tex, 8.0, tint) - sb.content_margin_left = margin.x - sb.content_margin_top = margin.y - sb.content_margin_right = margin.z - sb.content_margin_bottom = margin.w + return panel_flat(PANEL_DATA, PANEL_BORDER, RADIUS_OBJECT, 1, m) + var sb := _tex_sb(tex, PANEL_SLICE, tint) + sb.content_margin_left = m.x + sb.content_margin_top = m.y + sb.content_margin_right = m.z + sb.content_margin_bottom = m.w return sb @@ -336,7 +345,7 @@ static func panel_skinned(margin: Vector4 = Vector4.ZERO, tint := Color.WHITE) - static func frame_skinned(margin: Vector4 = Vector4.ZERO) -> StyleBox: var tex := load_tex(TEX_BORDER_STONE) if tex == null: - return panel_flat(BG_OVERLAY, PANEL_BORDER, 6, 1, margin) + return panel_flat(BG_OVERLAY, PANEL_BORDER,RADIUS_OBJECT, 1, margin) var sb := _tex_sb(tex, 12.0) sb.content_margin_left = margin.x sb.content_margin_top = margin.y @@ -396,10 +405,10 @@ static func verb_button(text: String, icon_path: String, tip := "") -> Button: # 主操作钮(烛光黄平涂+木描边——非奖励金;配色总纲「主按钮禁亮金」;缺 panel_stone 依赖=纯色可靠) static func primary_button(text: String, tip := "") -> Button: var b := button(text) - var sb := panel_flat(CANDLE, Color8(110, 69, 52), 5, 2, Vector4(10, 2, 10, 2)) + var sb := panel_flat(CANDLE, Color8(110, 69, 52),RADIUS_OBJECT, 2, Vector4(10, 2, 10, 2)) b.add_theme_stylebox_override("normal", sb) - b.add_theme_stylebox_override("hover", panel_flat(CANDLE.lightened(0.06), Color8(110, 69, 52), 5, 2, Vector4(10, 2, 10, 2))) - b.add_theme_stylebox_override("pressed", panel_flat(Color8(214, 172, 88), Color8(110, 69, 52), 5, 2, Vector4(10, 2, 10, 2))) + b.add_theme_stylebox_override("hover", panel_flat(CANDLE.lightened(0.06), Color8(110, 69, 52),RADIUS_OBJECT, 2, Vector4(10, 2, 10, 2))) + b.add_theme_stylebox_override("pressed", panel_flat(Color8(214, 172, 88), Color8(110, 69, 52),RADIUS_OBJECT, 2, Vector4(10, 2, 10, 2))) b.add_theme_color_override("font_color", Color8(58, 42, 8)) b.add_theme_color_override("font_hover_color", Color8(58, 42, 8)) b.add_theme_color_override("font_pressed_color", Color8(58, 42, 8)) @@ -412,9 +421,9 @@ static func primary_button(text: String, tip := "") -> Button: # 危险钮(深红平涂——放弃/删除类;破坏性确认位置纪律=不得与常规确认同位) static func danger_button(text: String, tip := "") -> Button: var b := button(text) - var sb := panel_flat(Color8(180, 78, 54), Color8(110, 42, 28), 5, 2, Vector4(10, 2, 10, 2)) + var sb := panel_flat(Color8(180, 78, 54), Color8(110, 42, 28),RADIUS_OBJECT, 2, Vector4(10, 2, 10, 2)) b.add_theme_stylebox_override("normal", sb) - b.add_theme_stylebox_override("hover", panel_flat(Color8(196, 90, 62), Color8(110, 42, 28), 5, 2, Vector4(10, 2, 10, 2))) + b.add_theme_stylebox_override("hover", panel_flat(Color8(196, 90, 62), Color8(110, 42, 28),RADIUS_OBJECT, 2, Vector4(10, 2, 10, 2))) b.add_theme_color_override("font_color", Color8(255, 244, 224)) b.add_theme_color_override("font_hover_color", Color8(255, 244, 224)) b.add_theme_color_override("font_pressed_color", Color8(255, 244, 224)) @@ -439,8 +448,8 @@ class BCard: func _init(title: String, desc: String, band: Color, icon_path: String, price := "", footnote := "") -> void: var tex := UiKit.load_tex(UiKit.TEX_PANEL_STONE) - _sb_normal = UiKit.panel_skinned(Vector4(12, 10, 12, 10)) if tex != null else UiKit.panel_flat(PANEL_DATA, PANEL_BORDER, 5, 1, Vector4(12, 10, 12, 10)) # 回退=数据板单点(P7 乙后同值,字面量退役) - _sb_sel = UiKit.panel_flat(Color8(233, 217, 184), Color8(138, 90, 52), 5, 2, Vector4(12, 10, 12, 10)) + _sb_normal = UiKit.panel_skinned(Vector4(12, 10, 12, 10)) if tex != null else UiKit.panel_flat(PANEL_DATA, PANEL_BORDER,RADIUS_OBJECT, 1, Vector4(12, 10, 12, 10)) # 回退=数据板单点(P7 乙后同值,字面量退役) + _sb_sel = UiKit.panel_flat(PANEL_DATA, Color8(138, 90, 52), RADIUS_OBJECT, 2, Vector4(12, 10, 12, 10)) # 选中底=数据板单点(P7 乙后同值) add_theme_stylebox_override("panel", _sb_normal) custom_minimum_size = Vector2(216, 300) var box := VBoxContainer.new() @@ -506,7 +515,7 @@ class SwitchToggle: toggle_mode = true button_pressed = initial custom_minimum_size = Vector2(46, 22) - var track := UiKit.panel_flat(Color8(184, 165, 130), Color8(120, 110, 88), 3, 2) + var track := UiKit.panel_flat(Color8(184, 165, 130), Color8(120, 110, 88),RADIUS_OBJECT, 2) add_theme_stylebox_override("normal", track) add_theme_stylebox_override("hover", track) add_theme_stylebox_override("pressed", track)