Frontend Project

SplitEasy

A clean whole-number division tool that combines a soft neumorphic interface with safe client-side validation and clear mathematical edge-case handling.

CategoryFrontend / Math Utility
StackHTML, CSS, Vanilla JavaScript
FocusSafe Division, Error Handling, Soft UI
Live Linkspliteasy-dseikou.netlify.app

A small division tool built with strong validation discipline.

SplitEasy is a whole-number division utility. It is not a complex bill-splitting platform; it is a focused frontend tool that takes two values, validates them safely, and returns a clean whole-number result.

SplitEasy whole number division interface visual

SplitEasy is a stylized frontend mathematical utility built for safe whole-number division. The project focuses on a small interaction: enter a dividend, enter a divider, submit the form, and receive a whole-number output.

The original visual direction uses neumorphism, also known as soft UI. The background, container, inputs, and button share a soft grey base, then use paired shadows to create raised and inset physical-feeling elements. For this portfolio page, the supporting visuals are adapted into the D’SEIKOU palette while the case study still explains the original soft UI intention.

The JavaScript logic is intentionally defensive. Instead of assuming valid numbers, it runs inputs through a clear error-handling pipeline before performing division. It checks for non-numeric input, empty fields, and division by zero before returning a result.

When the division is valid, the tool returns a whole number. If the answer divides evenly, it displays the exact value. If the result has decimals, the logic uses Math.floor() to round down to the nearest whole integer.

  • Core purpose: safely divide two numbers and return a whole-number result.
  • Frontend layer: HTML form structure, CSS neumorphism, and Vanilla JavaScript form logic.
  • Validation layer: non-numeric checks, empty-field checks, division-by-zero handling, and safe result rendering.
  • Interaction layer: raised containers, inset inputs, pressed button feedback, and clear result/error messaging.
HTML
CSS
JavaScript
FormData
Object.fromEntries
Math.floor
Validation
Soft UI

The tool is simple, but the states are intentional.

SplitEasy’s usefulness comes from how it handles the small details: form extraction, validation order, mathematical edge cases, and feedback.

SplitEasy neumorphic soft UI system visual
The original interface uses raised and inset neumorphic states to give the calculator a physical soft UI feel.
SplitEasy error handling pipeline visual
The validation pipeline catches non-numeric input, blank fields, and division by zero before any result is shown.
SplitEasy whole number rounding logic visual
Decimal results are rounded down using Math.floor so the final output always stays whole-number based.

A compact frontend project about safe input and clear output.

Whole-Number Division

The tool divides two submitted values and returns a clean whole-number result for straightforward interpretation.

Robust Error Handling

It checks for invalid text, empty fields, and division by zero before allowing the calculation to complete.

Neumorphic UI

Soft shadows, inset fields, and active button states make a simple calculator feel more tactile and designed.

FormData Extraction

The script uses FormData and Object.fromEntries to extract submitted values cleanly from the form instead of manually targeting each input.

Critical Error State

For non-numeric input, the tool triggers a full critical-error state that forces the user to reload, making the failure obvious.

Division Guardrails

Blank inputs and division by zero are caught before execution, preventing confusing or mathematically invalid output.

Whole Result Logic

The result check uses modulo logic to detect whole numbers, then Math.floor to round down when decimals appear.

A focused utility with stronger logic than it first appears.

SplitEasy shows how even a small math tool can demonstrate UI styling, form handling, validation thinking, and careful result rendering.

Live Demo