un2266 Claude Opus 4.8 commited on
Commit
bccc625
·
1 Parent(s): 4475e9e

修收合圖示被擠成8px、輸入框留白與可輸入、exec對齊標題、深色分界線

Browse files

收合導覽圖示看不見(真因是尺寸不是顏色):實測圖示在收合狀態只渲染成 8px。
60px 欄寬扣 nav 的 16px 左右內距剩 28px,再扣按鈕 .6rem 內距(19.2px),
留給圖示僅 ~9px,而 img 是 flex 子項預設可壓縮,就一路縮到 8px。修法三件:
收合時欄內距縮 8px(展開仍 16px)、按鈕內距 .6→.45rem、圖示 flex:none
不可壓縮;尺寸 20→22px、opacity .82→1。實測四類圖示皆 22px、清晰可辨。

對話輸入框(#15):
- 下方 61px 空縫:輸入框原本 flex:1 佔 1/7 欄高(153px)但內容只佔一小塊。
改 flex:0 0 auto 縮到內容高度、對話視窗改 flex:1 1 auto 吃掉剩餘,縫隙歸零
- 左右不對稱(左14/右18):Gradio 內層 full-container 12px + input-wrapper
右 4px。統一 full-container 對稱 10px 12px、input-wrapper 歸零 → 左右各 14
- 改 interactive=True:可打字(雖然目前不接任何作用),實測輸入正常

技術執行紀錄對齊標題(#16):.exec-log 水平 padding 歸零——canvas-result 已提供
1.25rem 讓內容與標題齊平,這裡再加 .75rem 會把文字推遠 12px。實測標題與
log 文字皆 256px 對齊

深色模式分界線看不清(#17):.app-header 底線在深色是 --c-border
rgba(14,165,233,.11),疊在深色底幾乎不可見。深色改 rgba(148,163,184,.28),
.dark class 與系統深色媒體查詢兩條路都覆蓋

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

Files changed (1) hide show
  1. app_agent.py +39 -14
app_agent.py CHANGED
@@ -2079,9 +2079,17 @@ footer {
2079
  position: relative;
2080
  margin: 0 0 1.25rem;
2081
  border: none;
 
 
 
 
2082
  border-bottom: 1px solid var(--c-border);
2083
  background: none;
2084
  }
 
 
 
 
2085
  /* 注意:這三個選擇器的漸層文字底色(background-image: linear-gradient(...var()...))
2086
  改在 launch(head=...) 注入的 <style> 裡設定(見 _DARK_MODE_HEAD_CSS)——
2087
  這裡只保留其餘不受影響的樣式(字型、間距等)。
@@ -2451,10 +2459,13 @@ div[role="log"][aria-label="chatbot conversation"],
2451
  本身也會捲動,兩個捲動容器疊在一起、捲軸位置又離得很近,看起來像「兩條
2452
  捲軸」造成混亂——拿掉內部捲動限制,讓內容自然撐開高度,只用頁面本身的
2453
  捲軸,維持單一捲動體驗 */
 
 
 
2454
  .exec-log {
2455
  background: transparent !important;
2456
  border: none !important;
2457
- padding: .55rem .75rem !important;
2458
  margin-top: 0 !important;
2459
  }
2460
  .exec-log p {
@@ -2549,7 +2560,7 @@ div[role="log"][aria-label="chatbot conversation"],
2549
  行為(.bubble-wrap 內部自己有捲軸),外層 wrapper 用 overflow:hidden
2550
  避免出現雙捲軸。 */
2551
  .main-chat {
2552
- flex: 6 1 0 !important;
2553
  min-height: 0 !important;
2554
  height: auto !important;
2555
  overflow: hidden !important;
@@ -2852,14 +2863,22 @@ img.button-icon { opacity: .82; }
2852
  .nav-col.collapsed .reset-btn,
2853
  .nav-col.collapsed #result_nav_col .result-nav-btn {
2854
  justify-content: center !important;
2855
- padding: .6rem !important;
2856
  font-size: 0 !important;
2857
  }
2858
- /* 收合成 icon bar 時只剩圖示、沒有文字陪襯,img.button-icon 預設的
2859
- opacity:.82 會讓圖示偏淡不好認(千卉回報「看不見 icon」)。收合狀態
2860
- 拉到 1 讓啟用項目清楚;disabled 項目的淡化來自按鈕本身的 opacity:.38
2861
- (父層),不受這條影響,仍維持「還不能點」的灰階。 */
2862
- .nav-col.collapsed .button-icon { width: 20px !important; height: 20px !important; opacity: 1 !important; }
 
 
 
 
 
 
 
 
2863
  .nav-col.collapsed .result-nav { padding-top: .8rem !important; }
2864
  }
2865
 
@@ -2982,16 +3001,21 @@ img.button-icon { opacity: .82; }
2982
  已經由 gap 統一處理,這裡不用再疊加 margin-top(舊註解提到的「技術
2983
  執行紀錄」分組已在 Phase 8-B 搬去 canvas-col,跟這裡無關,是過期
2984
  說明)。改成跟 .main-chat 同一套 5:1 flex-grow 比例分配高度。 */
 
 
 
 
2985
  #chat_upload_zone {
2986
- flex: 1 1 0 !important;
2987
  min-height: 0 !important;
2988
  display: flex !important;
2989
  flex-direction: column !important;
2990
  }
2991
- #chat_upload_zone .multimodal-textbox,
2992
- #chat_upload_zone textarea {
2993
- height: 100% !important;
2994
- }
 
2995
  /* 格式要求直接寫在上傳卡片裡,跟卡片本身有明顯區隔但仍在同一張卡片內,
2996
  使用者不用往上捲回對話視窗找 AI 說過的規則 */
2997
  /* 已經在 upload-zone 卡片裡了,卡片本身就有外框,這裡不再加第二層框線/底色。
@@ -4404,7 +4428,8 @@ def create_app():
4404
  placeholder="對話輸入框(功能開發中)",
4405
  show_label=False,
4406
  lines=3,
4407
- submit_btn=False, # 2026-07-24 千卉:拿掉送出鈕
 
4408
  )
4409
 
4410
  with gr.Column(scale=7, min_width=380, elem_classes=["canvas-col"]):
 
2079
  position: relative;
2080
  margin: 0 0 1.25rem;
2081
  border: none;
2082
+ /* 頂部標題與內容的分界線。--c-border 在深色是 rgba(14,165,233,.11),
2083
+ 疊在深色底上幾乎看不見(#17);深色模式改用較亮的中性灰讓分界清楚。
2084
+ 兩種深色觸發都要蓋:.dark class(切換鈕強制)與系統深色(媒體查詢,
2085
+ 且未被 .light 覆蓋)。 */
2086
  border-bottom: 1px solid var(--c-border);
2087
  background: none;
2088
  }
2089
+ .dark .app-header { border-bottom-color: rgba(148, 163, 184, .28) !important; }
2090
+ @media (prefers-color-scheme: dark) {
2091
+ :root:not(.light) .app-header { border-bottom-color: rgba(148, 163, 184, .28) !important; }
2092
+ }
2093
  /* 注意:這三個選擇器的漸層文字底色(background-image: linear-gradient(...var()...))
2094
  改在 launch(head=...) 注入的 <style> 裡設定(見 _DARK_MODE_HEAD_CSS)——
2095
  這裡只保留其餘不受影響的樣式(字型、間距等)。
 
2459
  本身也會捲動,兩個捲動容器疊在一起、捲軸位置又離得很近,看起來像「兩條
2460
  捲軸」造成混亂——拿掉內部捲動限制,讓內容自然撐開高度,只用頁面本身的
2461
  捲軸,維持單一捲動體驗 */
2462
+ /* 2026-07-24(#16):水平 padding 歸零——canvas-result 已提供 1.25rem 左內距
2463
+ 讓內容跟標題(都在 96px)齊平,這裡原本再加 .75rem(12px) 會把 log 文字推到
2464
+ 108px、比標題與其他結果頁多縮 12px。只留上下間距。 */
2465
  .exec-log {
2466
  background: transparent !important;
2467
  border: none !important;
2468
+ padding: .55rem 0 !important;
2469
  margin-top: 0 !important;
2470
  }
2471
  .exec-log p {
 
2560
  行為(.bubble-wrap 內部自己有捲軸),外層 wrapper 用 overflow:hidden
2561
  避免出現雙捲軸。 */
2562
  .main-chat {
2563
+ flex: 1 1 auto !important; /* 2026-07-24:吃掉輸入框以外的全部高度(見 #chat_upload_zone) */
2564
  min-height: 0 !important;
2565
  height: auto !important;
2566
  overflow: hidden !important;
 
2863
  .nav-col.collapsed .reset-btn,
2864
  .nav-col.collapsed #result_nav_col .result-nav-btn {
2865
  justify-content: center !important;
2866
+ padding: .45rem !important; /* 2026-07-24 收窄:原本 .6rem 把圖示擠到 8px(見下方註解) */
2867
  font-size: 0 !important;
2868
  }
2869
+ /* 千卉回報「收合後看不見 icon」的真因(2026-07-24 量出來才發現):不是顏色
2870
+ 太淡,是圖示被擠成 8px。60px 欄寬扣掉 nav 的 16px 左右內距只剩 28px,再扣
2871
+ 按鈕自己的 .6rem 左右內距(19.2px),留給圖示的空間只剩 ~9px,而 img 是
2872
+ flex 子項、預設可被壓縮,就一路縮到 8px。
2873
+ 修法三件:①收合時欄內距縮到 8px(展開仍維持 16px)②按鈕內距縮到 .45rem
2874
+ ③圖示 flex:none 明確不可壓縮。可用寬 = 60-16-14.4 ≈ 29.6px > 22px。
2875
+ 另外 opacity 拉到 1(預設 .82 沒有文字陪襯時偏淡);disabled 的淡化來自
2876
+ 按鈕本身 opacity:.38(父層),不受影響。 */
2877
+ .nav-col.collapsed { padding-left: 8px !important; padding-right: 8px !important; }
2878
+ .nav-col.collapsed .button-icon {
2879
+ width: 22px !important; height: 22px !important;
2880
+ flex: none !important; opacity: 1 !important;
2881
+ }
2882
  .nav-col.collapsed .result-nav { padding-top: .8rem !important; }
2883
  }
2884
 
 
3001
  已經由 gap 統一處理,這裡不用再疊加 margin-top(舊註解提到的「技術
3002
  執行紀錄」分組已在 Phase 8-B 搬去 canvas-col,跟這裡無關,是過期
3003
  說明)。改成跟 .main-chat 同一套 5:1 flex-grow 比例分配高度。 */
3004
+ /* 2026-07-24(#15):輸入框改「自然高度、貼齊底部」,不再用 flex:1 佔 1/7
3005
+ 欄高——原本被撐成 153px 但內容只佔一小塊,底下留 61px 空縫(千卉標的
3006
+ 下方縫隙)。對話視窗改 flex:1 1 auto 吃掉剩餘全部高度,輸入框 flex:0 0 auto
3007
+ 縮到內容高度。 */
3008
  #chat_upload_zone {
3009
+ flex: 0 0 auto !important;
3010
  min-height: 0 !important;
3011
  display: flex !important;
3012
  flex-direction: column !important;
3013
  }
3014
+ /* Gradio MultimodalTextbox 的內層 padding 左右不對稱(full-container 12px、
3015
+ input-wrapper 右 4px、textarea 0)造成左 14/右 18 不一致(#15)。統一:
3016
+ full-container 對稱 12px、input-wrapper 歸零,textarea 左右緣一致。 */
3017
+ #chat_upload_zone .full-container { padding: 10px 12px !important; }
3018
+ #chat_upload_zone .input-wrapper { padding: 0 !important; }
3019
  /* 格式要求直接寫在上傳卡片裡,跟卡片本身有明顯區隔但仍在同一張卡片內,
3020
  使用者不用往上捲回對話視窗找 AI 說過的規則 */
3021
  /* 已經在 upload-zone 卡片裡了,卡片本身就有外框,這裡不再加第二層框線/底色。
 
4428
  placeholder="對話輸入框(功能開發中)",
4429
  show_label=False,
4430
  lines=3,
4431
+ submit_btn=False, # 2026-07-24 千卉:拿掉送出鈕
4432
+ interactive=True, # 2026-07-24 千卉:要可打字(雖然目前不接任何作用)
4433
  )
4434
 
4435
  with gr.Column(scale=7, min_width=380, elem_classes=["canvas-col"]):