"Let’s just do it in a modal" is a sentence I’ve learned to be suspicious of, mostly because it gets said so casually, usually about something that feels small. And small things go in modals, right?
Then everyone nods and it ships, and nobody stops to ask what the user needs to remember while they’re in it.
At Scaler, analysts would set up a big emissions table with the filters exactly how they wanted them and then scan through it row by row. In some modules, clicking anywhere on a row opened a full detail page. One slightly wrong click while scanning and you were on another page, and when you went back, your scroll position and your filters were gone. I’d have sworn at my screen too.
We ended up with two levels. Clicking a row opens the record inline, right there in the table, and nobody goes anywhere. If you want the full record, there’s an explicit "View full record" button, and the detail page always has a breadcrumb that takes you back to the same scroll position with the same filters.
A click opens the row in place
Illustrative data
A click on the row opens a new page
Gdańsk plant
Illustrative data
Before anyone says modal now, I ask whether the person needs to see what’s behind it while they work, and whether it’s one quick decision or a whole chain of them. If they need the context and it’s one decision, a modal is fine. If it’s a chain of decisions, or something they’ll do every day, it deserves a page with its own URL.
Choose the surface from the task, before anyone argues about it
The decision filter, condition by condition
Modals also have a habit of growing. They start with one field. Then someone adds a dropdown, then a second step, and eventually there’s a modal inside the modal and you’re designing a small website in a box. If your modal has a scroll bar and a back button, it was always a page and everyone just pretended it wasn’t.
And sometimes neither is right. A side panel keeps the table visible and gives you more room than a modal ever will. Honestly, that’s what half my modal-or-page arguments should have been about.
Each surface suits a different kind of task
Modal, page and panel, and what each one keeps
A side panel keeps the table in view
Illustrative data
A modal covers what you need
Illustrative data
References