# Gridfinity Calculator A fast, lightweight web tool for planning [Gridfinity](https://gridfinity.xyz/) modular storage layouts. Calculate exactly how many grids fit in your drawer, determine the maximum bin height, and identify remaining gaps for a perfect fit. ## Features - **Unit Conversion**: Seamlessly switch between Millimeters and Inches with automatic value conversion. - **Precision Calculation**: Accurate grid counts (including fractional totals) based on standard 42mm Gridfinity specifications. - **Height Planning**: Calculates maximum bin units (U) based on drawer depth and baseplate thickness. - **Spec Overrides**: Customize grid size, unit height, and base thickness for specialized requirements. - **Responsive Design**: Clean, modern interface built with Tailwind CSS. ## Getting Started ### Prerequisites - [Node.js](https://nodejs.org/) (Latest LTS recommended) - [pnpm](https://pnpm.io/) (Recommended package manager) ### Installation ```bash # Install dependencies pnpm install ``` ### Development Start the development server with Hot Module Replacement (HMR): ```bash pnpm run dev ``` ### Testing Run unit tests for the calculation engine and utility functions: ```bash # Run tests once pnpm run test ``` ### Building Build the project for production. The output will be in the `dist/` directory: ```bash pnpm run build ``` ### Deployment This project is configured for deployment to **Firebase Hosting**: ```bash # Deploy to Firebase (requires Firebase login) pnpm run deploy ``` ## Tech Stack - **Build Tool**: [Vite](https://vitejs.dev/) - **Language**: [TypeScript](https://www.typescriptlang.org/) - **Styling**: [Tailwind CSS](https://tailwindcss.com/) - **Testing**: [Vitest](https://vitest.dev/) - **Hosting**: [Firebase](https://firebase.google.com/) --- *Based on the Gridfinity modular storage system by Zach Freedman.*