List Density Toggle
Compact, Cozy, Comfortable — one click, every list view.
3-state row-spacing toggle · Remembered per user · Zero configuration · Every list view
Odoo 19 Free · LGPL-3 9 Languages For EveryoneOne row spacing for every user? Really?
Power users on inventory and accounting want tight rows so they can see 80 records at a glance. Casual users on small screens want airy rows that are easier to scan. Today, Odoo gives you one. This module gives you both — one click apart.
Without this module
Stock list spacing only. Either it fits 30 rows on your screen or it fits 50 — pick one and live with it. Changing it for everyone means a custom theme and a developer.
With this module
A single button on every list view. Click once: Comfortable. Click again: Compact. Click again: Cozy. Saved per user. Done.
What it does
Compact for the tightest rows, Comfortable for the airiest, and Cozy for the balanced middle. Cycles on every click.
Works on every list view in Odoo — sales, purchase, inventory, accounting, HR, custom models, anything.
Your choice is remembered in your own browser. Reload, open a new tab, log out and back in — the density sticks.
Each person's browser keeps its own preference. No shared admin setting, no configuration page — one colleague's dense list never forces itself on another.
An automated test suite covers the button, the cycle order, and that your density choice is remembered between visits.
A front-end-only tweak. No new data, no model changes, nothing stored on your server, and no dependencies beyond Odoo's own web module.
How it works
Open any list view — Contacts, Sales Orders, Products, Invoices, anything. A small Density button now sits in the top bar next to the options menu.
Click it to cycle the row spacing: Comfortable for airy, easy-to-scan rows, Compact to pack the most records on screen, or Cozy for the balanced middle.
Every list view instantly follows your choice, and it is remembered for next time — per person, in their own browser. No admin setup, no settings page.
See it in action
One button on the list-view header cycles through three row densities — here is each state and the toggle itself.
The Density toggle button, sitting in the list-view header right beside the cog menu.
Compact density — tight rows fit the most records on screen at once.
Cozy density — the balanced default spacing, the same list a little more open.
Comfortable density — airy rows that are easy to scan, the same list with room to breathe.
Available in 9 Languages
The button label ships fully translated. Each user sees it in their own Odoo language setting — no extra setup.
Honest scope
This adjusts the vertical spacing of list rows so you can fit more or fewer on screen. It does not add, hide, reorder or resize columns, and it does not change form, kanban or report views — it is a list-view row-height control.
Your density is saved in the browser you set it in, so it is per person and per device. Switch to a different computer or a private window and it starts from the balanced default until you pick again. Nothing is written to your database.
Technical Details
| Odoo Version | 19.0 Community + Enterprise |
| License | LGPL-3 (Free) |
| Version | 19.0.1.1.1 |
| Requires | Odoo Web (ships with every edition) |
| Applies To | Every list view in Odoo |
| Languages | EN, FR, ES, DE, NL, PT-BR, IT, ZH-CN, AR |
| Data footprint | Nothing stored on the server; your choice is remembered in your own browser |
| Runs On | Your own Odoo server — no external service or API |
Installation
1. Download from the Odoo App Store.
2. Extract to your Odoo addons directory.
3. Apps → Update Apps List → search "List Density Toggle" → Install.
4. Open any list view. Click the density button. Done.
Found a bug?
Reach out via the Odoo App Store contact form.
List Density Toggle — Free — Odoo 19
© Naim OUDAYET — oudayet.com — LGPL-3 license
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Lines of code | 86 |
| Technical Name |
no_list_density |
| License | LGPL-3 |
| Website | https://www.oudayet.com |
Please log in to comment on this module