DEV Community

Manthan Ankolekar
Manthan Ankolekar

Posted on

1

๐Ÿš— Build a Ride Cost Calculator App with Angular 20 and Tailwind CSS 4

Managing fuel expenses is essential whether you're a frequent commuter or a casual rider. In this blog, Iโ€™ll walk you through how I built a modern Ride Cost Calculator App using Angular 20, Tailwind CSS 4, and the latest signals API from Angular.

This sleek, mobile-responsive app helps you estimate ride costs, track history, and even export or print receipts.

๐Ÿ”— Source Code: GitHub โ€“ manthanank/ride-cost-calculator-app
๐Ÿš€ Live Demo: ride-cost-calculator-app.vercel.app


โœจ Features at a Glance

  • ๐Ÿš€ Real-time fuel cost calculation
  • ๐Ÿ“Š Persistent ride history (local storage)
  • ๐Ÿ“ Export ride history as CSV
  • ๐Ÿ–จ๏ธ Print ride receipts
  • ๐ŸŒ Choose currency (โ‚น/\$/โ‚ฌ) and unit (km/mi)
  • ๐ŸŒ“ Toggle light/dark mode
  • ๐Ÿ” Responsive design for all screen sizes

๐Ÿ”ง Tech Stack

  • Angular 20 โ€“ Standalone components & Signals
  • Tailwind CSS 4 โ€“ Utility-first styling
  • TypeScript โ€“ Strictly typed reactive app
  • PostCSS โ€“ Tailwind configuration

๐Ÿงฎ How the Calculator Works

The calculator uses this formula:

Total Cost = (Distance / Mileage) ร— Petrol Price
Enter fullscreen mode Exit fullscreen mode

Supports:

  • Distance in km or miles
  • Fuel prices in โ‚น, \$, โ‚ฌ
  • Mileage in km/l

The app auto-converts miles to kilometers before calculation and provides a cost breakdown with fuel efficiency tips.


๐Ÿ“Š Ride History with Export & Print

Every ride you calculate is saved locally and appears in a history list. From there, you can:

  • ๐Ÿงพ Print a ride receipt
  • ๐Ÿ“ฅ Export all records as a CSV
  • ๐Ÿงน Clear history with one click

CSV export is handled by dynamically generating a blob and creating a download link. Printing is done in a new browser window with minimal styling.


๐ŸŒ“ Dark Mode & Signals

The app uses Angular Signals to track and react to state changes like theme preference, ride input, and form reset. Theme mode is persisted in localStorage:

const newTheme = isDarkMode() ? 'light' : 'dark';
localStorage.setItem('theme-preference', newTheme);
Enter fullscreen mode Exit fullscreen mode

๐Ÿ—‚๏ธ Project Structure

ride-cost-calculator-app/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ app/
โ”‚   โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ”œโ”€โ”€ models/
โ”‚   โ”‚   โ””โ”€โ”€ services/
โ”‚   โ”œโ”€โ”€ environments/
โ”‚   โ””โ”€โ”€ styles.css  โ† Tailwind imported here
โ”œโ”€โ”€ public/
โ”œโ”€โ”€ angular.json
โ”œโ”€โ”€ package.json
โ””โ”€โ”€ .postcssrc.json
Enter fullscreen mode Exit fullscreen mode

โ–ถ๏ธ Get Started

Clone & Install

git clone https://github.com/manthanank/ride-cost-calculator-app.git
cd ride-cost-calculator-app
npm install
Enter fullscreen mode Exit fullscreen mode

Run Locally

ng serve
# Open http://localhost:4200
Enter fullscreen mode Exit fullscreen mode

Build for Production

ng build --configuration production
Enter fullscreen mode Exit fullscreen mode

๐Ÿ’ฌ Final Thoughts

This Ride Cost Calculator App is more than just a fuel estimator. It's a demonstration of modern Angular capabilities using signals, defer blocks, and standalone architecture, all styled elegantly with Tailwind CSS.

Whether you're tracking daily commutes or planning a road trip, this tool brings clarity to your fuel expenses โ€” with a delightful user experience.


๐Ÿ”— Check it out: ride-cost-calculator-app.vercel.app
๐Ÿ“ฆ View the Code: github.com/manthanank/ride-cost-calculator-app


Top comments (0)