[No QA] Experiment: 16x16 table row checkbox with 1px border - #100516
[No QA] Experiment: 16x16 table row checkbox with 1px border#100516MelvinBot wants to merge 1 commit into
Conversation
Co-authored-by: Danny McClain <dannymcclain@users.noreply.github.com>
|
🚧 dannymcclain has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
🤖 Web test steps verification results: ✅ pass The Measurements come from pixel-edge analysis of the rendered screenshots at DPR 1 (screenshot px == CSS px), since the web session exposes no DOM evaluation. view run · no recording available |












Explanation of Change
Experimental / for visual testing only — not intended to merge as-is.
Requested by
dannymcclainto see how a smaller, thinner checkbox reads in the table rows of the Spend page (the Search tables).The checkbox rendered in those rows is
src/components/Checkbox.tsx, which draws its box withStyleUtils.getSelectionButtonContainerStyle(containerSize, borderRadius)—20x20with a2pxborder by default. Rather than change that default (it is shared with every checkbox and radio button in the app), this adds one style used only by the Search/Spend table checkboxes:src/styles/variables.ts— newcheckboxSizeTableRow: 16andcheckboxBorderWidthTableRow: 1.src/styles/index.ts— newcheckboxContainerTableRowstyle (16x16,borderWidth: 1, andmargin: 0, which these call sites already applied viastyles.m0).containerStyle={styles.m0}→containerStyle={styles.checkboxContainerTableRow}at the 10 Search table checkbox call sites: transaction rows (wide + narrow), expense report rows (wide + narrow), the group header rows (report / card / member / withdrawal ID / base), and the select-all checkbox in the table header (included so the column stays visually aligned with the rows below it).Every other checkbox in the app is untouched.
One thing worth a look when reviewing the result: the checkmark inside the box still renders at its default
caretSizeof14, and16pxminus two1pxborders leaves exactly14pxof interior — so the check now fills the box edge to edge. I left it alone because it wasn't part of the request, but say the word and I'll scale it down.Fixed Issues
$
PROPOSAL:
AI Tests
No local checks could be run in this environment:
Apprequires Node26.5.0/ npm11.17.0(seeenginesinpackage.json, withengine-strict=truein.npmrc) and the runner has Node22.20.0, sonpm cifailed and no dependencies were installed. That meansnpm run lint-changed,npm run typecheck,npm run prettier,npm test, andnpm run react-compiler-compliance-check check-changeddid NOT run locally — CI will be the first signal for all of them.Tests
// TODO: The human co-author must fill out the tests you ran before marking this PR as "ready for review".
// Please describe what tests you performed that validate your change worked.
Offline tests
QA Steps
// TODO: These must be filled out, or the issue title must include "[No QA]."
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari