# Drawer Table Readability Implementation Plan > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. **Goal:** Make all ERP drawers easier to read by eliminating ugly horizontal scrolling, vertical table headers, random wrapping, and overloaded drawer tables. **Architecture:** First add global drawer/table readability guardrails so existing drawers immediately stop collapsing columns. Then introduce a reusable `DrawerDataTable` component for drawer tables with fixed layout, compact labels, ellipsis cells, optional expanded detail rows, and consistent column types. Finally migrate the highest-impact warehouse product overview and inventory ledger drawer tables, leaving the component ready for the rest of the ERP. **Tech Stack:** Vue 3 single-file components, existing `FormDrawer`, existing `TableControls`, existing `PaginationBar`, global CSS in `frontend/src/styles/main.css`, Vite build. --- ## File Structure - Modify: `frontend/src/components/FormDrawer.vue` - Add a `size` prop while keeping the old `wide` prop working. - Supported sizes: `normal`, `wide`, `xl`, `fullscreen`. - Create: `frontend/src/components/DrawerDataTable.vue` - Reusable drawer table renderer. - Accepts rows, columns, row key, empty text, and optional expandable row details. - Provides named cell slots like `cell-lot_no` and `cell-status`. - Modify: `frontend/src/styles/main.css` - Add drawer width classes. - Add drawer table readability CSS. - Prevent vertical Chinese headers. - Add cell helpers for ellipsis, numeric alignment, chip-like long codes, and detail grids. - Modify: `frontend/src/views/InventoryLedgerView.vue` - Use `size="fullscreen"` or `size="xl"` for complex inventory detail drawers. - Convert the product overview lot table, inventory batch detail table, and inventory transaction table to `DrawerDataTable`. - Reduce visible columns to the core fields and move secondary fields to expandable detail. - Test: `frontend/scripts/test-drawer-data-table.mjs` - Static test that confirms the new component exists and includes required slot/column/detail behavior. - Test: existing `frontend/scripts/test-inventory-ledger-options.mjs` - Must still pass. --- ### Task 1: Add Drawer Size Levels **Files:** - Modify: `frontend/src/components/FormDrawer.vue` - Modify: `frontend/src/styles/main.css` - [ ] **Step 1: Update `FormDrawer.vue` props and class binding** Replace the current aside class binding: ```vue