# Task Record Date: 2026-04-26 Related Module: web/frontend (CSS, HTML templates) Change Type: Fix ## Background In dark theme, when multi-selecting rows in the inbound client table, the traffic and expiry columns became invisible. The text appeared white/blank because the nested `` elements inside the traffic/expiry cells inherited a near-white background (`#fafafa`) from Ant Design's row-selection CSS while the dark theme text color (`rgba(255,255,255,0.75)`) was inherited from the table, resulting in white text on a white background with no contrast. The root cause was that the 3X-UI dark theme override rule `.dark .ant-table-row-selected>td` used the child combinator `>` which only targets direct `` children of the selected row. However, the traffic and expiry cells contain a nested `` with their own `
` elements (`.tr-table-rt`, `.tr-table-bar`, `.tr-table-lt`), which were matched by Ant Design's descendant selector `.ant-table-tbody>tr.ant-table-row-selected td` (setting `background:#fafafa; color:inherit`) but NOT by the 3X-UI override. Additionally, the batch edit bar's `margin-bottom` was only 8px, creating insufficient visual separation from the inner client table below it. ## Changes 1. `web/assets/css/custom.min.css`: Changed `.dark .ant-table-row-selected>td{...}` to `.dark .ant-table-row-selected td{background-color:rgba(0,135,113,.15)!important;color:var(--dark-color-text-primary)}` - Removed `>` child combinator → descendant selector to cover nested `` in traffic/expiry cells - Added explicit `color:var(--dark-color-text-primary)` to override Ant Design's `color:inherit` 2. `web/html/inbounds.html`: Changed batch edit bar `marginBottom` from `8px` to `15px` 3. `web/public/assets/css/custom.min.*.css`: Regenerated via `go run ./cmd/genassets` with new content hash `0b627998` 4. `web/public/assets-manifest.json`: Updated entry for `css/custom.min.css` to new hash ## Impact - **Affected columns in inner client table**: `traffic` and `expiryTime` (both contain nested `` in popover trigger slot) - **Not affected**: `info` column (popover content slot renders in portal, not in table cell DOM) - **Themes**: dark mode (`[data-theme]` classes `.dark`, `.ultra-dark`) - **Modes**: both debug and production builds, since both source and fingerprinted output were updated - No database, API, or configuration changes ## Verification - CSS fix confirmed present in both source (`web/assets/css/custom.min.css`) and fingerprinted output (`web/public/assets/css/custom.min.0b627998.css`) - `marginBottom: '15px'` confirmed in `web/html/inbounds.html` - `genassets` ran successfully, manifest updated correctly, old fingerprinted file removed - No Go code changes → `go vet ./...` and `gofmt -d .` are not expected to produce diff - **Not verified in browser** (requires running server with dark theme + multi-select to visually confirm) ## Risks And Follow-Up - Low risk: descendant selector `.dark .ant-table-row-selected td` applies to all `` descendants, which is intentional but broader than before. If any future nested tables within selected rows are expected to have different backgrounds, they would need explicit override rules. - The `!important` flag on background-color may conflict if other CSS frameworks are introduced.