circa-input

A UI primitive for entering a value and its ambiguity at the same time

Traditional UIs force users to enter a single precise value, but what people really mean is "around 2pm" or "about $500".
circa-input captures that ambiguity as data.

Basic (Symmetric Mode)

Click to set a value, then drag up/down to adjust the margin (tolerance).
The margin expands symmetrically.

CircaValue
Not yet operated
  1. Click on the track to set a value
  2. Drag the handle up/down to adjust the margin

Asymmetric Mode

With the asymmetric attribute, you can adjust the lower and upper margins independently.
Example: "30 minutes before 2pm is OK, but up to 2 hours after is fine."

CircaValue
Not yet operated
  1. Click to set a value, drag up/down to create margins
  2. Drag left/right handles independently to adjust each side

Gradient

The gradient attribute adds a visual confidence gradient to the margin area.
relative fades from center outward, absolute maps opacity to the full range.

relative

CircaValue
Not yet operated

absolute

CircaValue
Not yet operated
1.5

Range Only

The range-only attribute hides the center value handle and shows only the range bar.
Useful when the user wants to specify a range rather than a point with tolerance.

Normal Mode

CircaValue
Not yet operated

Range Only Mode

CircaValue
Not yet operated

Use Cases

circa-input can be used in various scenarios to input approximate values.

Delivery Time

Specify your preferred delivery time window

14:00 ± 1h

Budget

Enter an approximate budget

¥50,000 ± ¥10,000

Temperature

Comfortable temperature range

25°C ± 3°C

Age Range

Specify the target age group

25 – 40 years

Meeting Duration

Estimate how long the meeting will take

50min – 1h 30min

Commute Distance

Your commute distance range

20km ± 5km

Playground

Dynamically change attributes to experiment with circa-input behavior.

CircaValue
Not yet operated

Attribute Controls

Event Log

Events will appear here

Form Integration

With a name attribute, CircaValue is included as a JSON string in the <form>'s FormData.
The required attribute enables validation.

Submission Result (FormData)
Submit the form to see results