Lighten LHN row hover colors - #98578
Conversation
|
🚧 shawnborton has triggered a test Expensify/App build. You can view the workflow run here. |
|
cc @dannymcclain @dubielzyk-expensify another one to take for a spin! This just lightens the LHN rows a bit like we talked about. I kept the scope quite small so we don't get too many weird edge cases with things like MenuItems inside of cardBGs. I also undid the pressed BG color that some of the LHN rows had (everything but Spend), which felt unnecessarily heavy. Now it just uses the app-wide default pressable dimming. |
…av-row style entries
This comment has been minimized.
This comment has been minimized.
|
Looks great!
Do you think we'll plan on going through and updating these at some point as well? (Not a concern for this PR, I'm mostly just curious to hear your thinking about those) |
|
I think that would be ideal, yup! I think it might get tricky to separate the logic for when a MenuItem is in a card or not, which dictates the rowHover color we need. I guess thinking more on this - I almost wonder if we should try a rowHover color that just uses 50% opacity or something? This way we get the same hover effect but a lighter version no matter where we are... |
|
Ooo that's an interesting idea! Let's save that for when we tackle the menu items though. I think this can proceed as is and then if we do something like that when updating the menu items, we can just change it everywhere. (Unless you really want to mess with it here haha) |
|
I will try it locally and report back! It might simplify things! |
|
Tried it out but I think it makes the hover on top of cards a bit too subtle: CleanShot.2026-08-13.at.11.23.12.mp4Thoughts? Might not be easy to see in the video... |
|
Though it would be a MUCH simpler implementation... |
|
I mean... I kinda think it's lovely 🤷 Can we run a build with it so I can test it out for realsies, or are you pretty convinced it's not a good idea? Let's see what @dubielzyk-expensify thinks too! |
|
Sure! Lemme push and build |
|
🚧 shawnborton has triggered a test Expensify/App build. You can view the workflow run here. |
|
No big opinion here. Agree with Shawn that its very subtle on highlightbg stuff but it's not terrible. I guess this is where that opacity for hover colors comes in clutch. Happy to roll either way 👍 |
|
🚧 shawnborton has triggered a test Expensify/App build. You can view the workflow run here. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Take it for a spin! |
|
I don't see heaps of difference in the latest one? |
|
Hard refresh? I will run the build again though. |
|
🚧 shawnborton 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! 🧪🧪
|
|
What should I look at? Haha. I dunno if I know what's changed in the last few |
|
Basically all row hovers get this new alpha treatment. Whether that's a LHN row, a MenuItem, a table row, etc. The result: rows that use the lightest/darkest BG color (product100) have a more pronounced hover effect than say rows that use product200 (where they are baked within a card wrapper). I don't necessarily mind it, as it's the cleanest way to solve this. It would make it so that we still only ever manage one row hover color in Figma and don't need to worry about managing multiple (depending on the surface color of what is being hovered...) |
|
LOL I'm having a hard time knowing if the build worked for sure - which I think is a good thing?? I think I like this though. |
|
Another idea here might be to just use product300 (the same color as our current row-hover) for selected items in the LHN. Or a green shade for selected items like we discussed at one point? Anyways I'm not entirely convinced we should do this one. I guess the main thing that bothers me is the selected item in the LHN feels heavier than it needs to be. |
Explanation of Change
Facelift of the hover / selected / pressed background colors for the left-hand navigation rows and the horizontal tab component. Introduces two dedicated theme tokens —
navItemHoverBG(product200) andnavItemSelectedBG(product300) — and applies them only to navigation surfaces:MenuItem, gated onrole=tab)SearchTypeMenuItem+ saved searches)TabSelector, e.g. Workspaces page)Behavior:
MenuItemusages (Home widgets, etc.), generic option rows, and selection lists are intentionally unchanged.Fixed Issues
$ #98581
PROPOSAL:
Tests
Offline tests
No network-dependent behavior changed; hover/selected/pressed colors render identically offline.
QA Steps
Same as tests.
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