Skip to content

feat(ui): overhaul POS Keypad for precision inputs and ergonomics #27

Description

@0dillon

Summary

The POS Keypad is the most critical interactive element of the app. The current implementation is rudimentary: it only supports whole numbers, which completely breaks support for standard fiat currencies (like USD or EUR). Additionally, the touch targets are too small for rapid use on smaller mobile screens, leading to mis-taps.

We must completely refactor the Keypad component. It needs a decimal button with state logic to prevent multiple decimal points, formatting the output to exactly two decimal places. The CSS grid layout must be reworked using responsive viewport units to guarantee massive, ergonomic touch targets on any screen size, complete with high-contrast active states.

Acceptance Criteria

  • Add a functional decimal . button with strict input validation.
  • Enforce a maximum of two decimal places in the state logic.
  • Rework the layout to maximize touch target size (min-h-[80px]).
  • Ensure seamless layout adaptation between portrait and landscape orientations.

Tech Stack

Next.js 14, React, Tailwind CSS.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions