feat(ui): close the last gaps against the audit design (31/31)
check_design_parity.py reads its checklist from the audit page's own
proposals; it now reports every one of the 31 as implemented, with no
deliberate divergences left.
* Schedule: the Kanban/Calendar drop-list became a pair of tabs, and the
Running lane is outlined while it holds anything — dropping a card there
starts the task for real, so it should not look like the other six.
* Cowork: agent / routing / usage / folder moved out of the typing box into
their own status strip beneath it, styled as status rather than a second
toolbar. All of them stay interactive; the design's read-only strip would
have cost features.
* Folder: the path is written as the screen's title instead of sitting in a
read-only text box that looked editable and cost a row.
* GraphRAG: the second toolbar row is gone (Export joined the first), and
the one button that relabelled itself became Đồ thị | Tin nhắn tabs, so
the view you are NOT in is named too.
* Settings gained the theme picker, so language / provider / theme are all
reachable there as well as on the rail's account row.
* Task editor: the five group boxes are grouped into three step tabs
(Nội dung → Lịch chạy → Liên kết). All 22 fields verified present after
the move; only the old section index is gone, replaced by the tabs.
* The assistant dot now clears a screen's own bottom bar (Cowork's
composer), measured from the composer's top edge in window coordinates.
Also adds .gitattributes: without it a Windows checkout records CRLF and
every file reads as fully rewritten to a Linux CI runner.
Verification: 7 check_*.py suites green, no screen clipped at 1920/1366/1280,
and no dialog scrolls sideways at 9/11/14pt.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -384,6 +384,27 @@ QListWidget#sectionIndex::item:hover { background: $hover; }
|
||||
QListWidget#sectionIndex::item:selected {
|
||||
background: $nav_selected; color: $text; font-weight: 600;
|
||||
}
|
||||
/* The strip under the typing box: agent · routing · usage · folder. Reads as
|
||||
status, not as a second toolbar, so the eye lands on the input first. */
|
||||
QWidget#composerStatus { border-top: 1px solid $border; background: transparent; }
|
||||
QWidget#composerStatus QLabel { color: $text_faint; font-size: 11px; }
|
||||
QWidget#composerStatus QPushButton, QWidget#composerStatus QComboBox {
|
||||
background: transparent; border: none; color: $text_muted; font-size: 11px;
|
||||
padding: 2px 6px; border-radius: ${radius_sm}px;
|
||||
}
|
||||
QWidget#composerStatus QPushButton:hover, QWidget#composerStatus QComboBox:hover {
|
||||
background: $hover; color: $text;
|
||||
}
|
||||
/* Folder: the current path, written as the screen's title. */
|
||||
QLabel#folderTitle { color: $text; font-size: 14px; font-weight: 600; background: transparent; }
|
||||
/* A pair of view tabs inside a page header (Schedule, GraphRAG) — flatter and
|
||||
quieter than the app's main tab bars, since they switch a view, not a page. */
|
||||
QTabBar#viewTabs::tab {
|
||||
background: transparent; color: $text_muted; border: none;
|
||||
padding: 4px 12px; margin: 0 2px; border-radius: ${radius}px;
|
||||
}
|
||||
QTabBar#viewTabs::tab:hover { background: $hover; color: $text; }
|
||||
QTabBar#viewTabs::tab:selected { background: $active; color: $text; font-weight: 600; }
|
||||
/* Co4E sidebar section headings — same quiet caps as the rail's RECENTS, so
|
||||
"which list am I looking at" is answered on screen, not in a tooltip. */
|
||||
QPushButton#co4eSectionHdr {
|
||||
|
||||
Reference in New Issue
Block a user