Hanzi Design
Concept stop

stop · halt

Foot Stopped

Stopping is not failure but necessary conclusion. Every process must stop or consume all resources. The loop that never exits. The animation that never completes. The service that never shuts down cleanly. All represent stop-failure. Design systems require intentional stopping points: user flows that conclude, sessions that end, processes that terminate. The stop should be clean—leaving no corrupt state, no orphaned resources, no ambiguous status. Stopping well is as important as starting well. The graceful exit enables the next entrance.

Completion vs. Interruption

Stopping comes in two forms: completion (process finished) and interruption (process halted). Completion is planned—the task concludes naturally. Interruption is external—something forces early stopping. Design must handle both.

Completed processes should clearly signal completion. The progress bar reaches 100%. The form submits and confirms. The animation plays through and stops. The user knows the process is done, not stalled mid-execution. Clear completion reduces uncertainty and enables the user to move to next task.

Interrupted processes need recovery mechanisms. The user who closes browser mid-form shouldn't lose all data. The app that crashes mid-upload should resume, not restart. The system that loses power should recover to consistent state. Handling interruption well requires save points, checkpoints, and idempotent operations.

The Stop Signal

Processes need mechanisms to receive stop signals. The long-running task should check periodically whether it should continue. The infinite loop should have break conditions. The recursive function should have base cases. Stop signals prevent runaway processes.

Interface interactions need stop affordances. The cancel button. The close button. The back button. Each provides explicit stopping mechanism. Without stop affordances, users are trapped in processes they cannot exit cleanly.

The stop signal should be honored promptly. The cancel button that takes thirty seconds to cancel isn't truly a stop control. The escape key that's ignored doesn't provide the promised escape route. Stop mechanisms must actually stop in reasonable time.

Resource Release

Stopping well requires releasing claimed resources. Open files should close. Locked records should unlock. Allocated memory should free. Network connections should terminate. Failure to release creates resource leaks that accumulate until system failure.

Session management demonstrates this. User sessions should timeout after inactivity, releasing server resources. But timeout too quickly and users lose work. Timeout too slowly and resources stay claimed unnecessarily. The stopping time must balance user convenience with resource efficiency.

The principle applies to user attention as well. Notifications that don't stop demanding attention exhaust users. Auto-playing media that doesn't stop is hostile. The design should release user attention as readily as it captured it.

Clean State Transitions

Stopping should leave clean state. No half-written files. No partial database updates. No ambiguous flags indicating neither clearly stopped nor clearly running. The post-stop state should be determinate and valid.

Transactions demonstrate clean stopping through atomicity: either all changes commit or all roll back. Partial commit is prevented. The database is in consistent state whether transaction completes or stops.

Interface states need similar atomicity. The multi-step process that can be stopped should either complete the current step or roll it back cleanly. Leaving the system in partially-updated state creates data inconsistency and user confusion.

The Stop-Restart Cycle

Most stops are temporary. The application stops but will restart. The session ends but another begins. The build process completes but will run again. Stop is not finale but pause before next start.

This cyclical nature means stops should enable clean restarts. The saved state that allows resumption. The cleanup that leaves the environment ready for next run. The logout that protects account but allows easy login later. Stop and start are coupled; designing for one requires considering the other.

Continuous systems that theoretically never stop still need stop capability for maintenance, updates, and recovery. The "zero downtime deployment" still includes stopping processes, just incrementally rather than all-at-once. The stop-restart cycle continues even in always-on systems.

Knowing When to Stop

Processes need stop conditions: iteration counts, time limits, goal achievement, error thresholds. Without stop conditions, processes continue indefinitely or until resource exhaustion forces stop.

Design iterations face similar questions. When is the design done? The temptation is endless refinement. But perfection is asymptotic—infinite effort for diminishing returns. The design must stop at "good enough," which requires defining "enough."

Feature development needs stop discipline. Feature sets expand to fill available time and resources. Without deliberate stopping, features proliferate beyond usefulness. The product becomes bloated. Stopping feature addition in favor of quality improvement or simplification requires intentional choice against the default of continued expansion.

Emergency Stops

Systems need emergency stops for critical situations. The power button. The force quit. The circuit breaker. These are last-resort stops that prioritize halting over clean shutdown.

Emergency stops sacrifice cleanliness for speed. They may leave corrupt state, lose data, or crash related systems. But they're necessary when the alternative is worse—runaway processes consuming all resources, infinite loops blocking all work, dangerous conditions requiring immediate halt.

The existence of emergency stops doesn't excuse lack of clean stops. Systems should prefer clean shutdown but provide emergency alternatives. The emergency stop is for emergencies, not routine use.

Gradual Stopping

Complex systems can't stop instantaneously. Graceful shutdown requires draining queues, completing in-flight requests, saving state, releasing resources. The stopping process itself takes time.

Users need awareness of stopping progress. The shutdown that appears frozen but is actually draining connections creates anxiety. Progress indication during stopping—"logging out," "saving changes," "closing connections"—communicates that stopping is proceeding, not stalled.

The gradual stop should also be interruptible. If shutdown takes minutes, users should be able to abort shutdown and resume normal operation. The stop-in-progress state should itself have stop and resume capabilities.

Permanent Stops

Some stops are final. Account deletion. Application uninstallation. Project archival. These permanent stops should be clearly distinguished from temporary stops and should require strong confirmation.

Permanent stops should be truly permanent or clearly not. The "deleted" item that's actually in a recoverable trash is paused, not stopped. The "uninstalled" app that leaves configuration files is incomplete stop. Either stop completely or communicate that the stop is reversible.

The finality should match user expectation. If users think they're permanently deleting, the deletion should be permanent. If the system keeps deleted data for recovery, it should communicate that explicitly. Mismatch between perceived permanence and actual permanence creates trust problems.

The Stop-as-Start

Sometimes stopping one thing starts another. Closing a modal reopens the underlying page. Ending a session triggers cleanup processes. Stopping editing starts rendering. The stop is transition, not termination.

These coupled stops need coordination. The stop should complete before the start begins, or the transition should be carefully managed. Starting before stop completes can create conflicts and race conditions.

In user experience, the stop-start transition should be perceivable but smooth. The user should notice the mode changed but not feel jarred by abrupt transition. Animation, timing, and state management all contribute to smooth stop-start transitions that feel like natural flow rather than mechanical switching.