Interaction Patterns and Micro-interactions
Interaction patterns are reusable ways for people to control an interface, such as opening a menu or submitting a form. Micro-interactions are the small state changes and feedback loops inside those patterns, such as a pressed button, progress indicator, validation message, or undo confirmation.
itWeb development | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic: Interaction Patterns and Micro-interactions
An interaction pattern is the reusable answer to a recurring interface problem: the familiar behavior behind a dialog, disclosure, menu, or search box. A screenshot cannot carry that answer by itself. It can look admirably finished while saying nothing about a key press, a slow request, or how someone gets out again. Without a pattern, each screen can quietly invent its own behavior, which is how an interface becomes a set of decorative disagreements.
The useful mental model is trigger, rule, state change, feedback, and next action. Someone clicks Save, presses a key, or touches a control. The interface checks whether that input is valid in its current state, changes state, and makes the result perceivable. Then it offers the next valid action. This is less mystical than it sounds, which is fortunate because the button does not care how elegant the mockup is.
The surprise is that state is often the hidden architecture. A control can be idle, focused, pressed, disabled, pending, successful, or failed. Each supported state needs an entry, feedback, and a way out. A Save button that accepts another click while pending, or an error that loses the person's input, is not a small visual omission. It is a missing part of the interaction.
Feedback should match consequence. A pressed state can acknowledge an immediate action. Progress can represent a delayed operation. A reversible change can offer undo, while an irreversible or unexpected loss calls for confirmation. Motion can explain where content came from or where it went, but it cannot be the only signal. Reduced motion still needs to preserve the status and meaning, even if the scenery declines to travel.
Accessibility is not a polish pass bolted to the side of the control with a hopeful label. Semantics describe role and state, but they do not create keyboard behavior or put focus in a useful place. Test the implemented interaction with keyboard input, assistive technology, reduced motion, slow responses, errors, long content, cancellation, and repeated activation. The awkward cases are where the contract earns its keep.
Read the Intro for the full map of control, composite, and flow patterns. Use the Cheatsheet when recording states, feedback, motion, and diagnostic signals. The Practice Reference turns one interaction into a reviewable contract. The Quiz checks the decisions, and Field Notes points at the costs that tend to arrive after everybody agrees the component looks done.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://www.w3.org/WAI/ARIA/apg/patterns/
Supports
- Common web interaction patterns and their expected keyboard behavior
- Roles, states, properties, and relationships for composite widgets
- https://www.w3.org/WAI/ARIA/apg/about/introduction/
Supports
- APG pattern structure and illustrative implementation scope
- Semantic roles and states accompanying, rather than creating, behavior
- https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/
Supports
- Keyboard operation, focus movement conventions, and visible focus
- Coordination of pointer and keyboard interaction
- https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/
Supports
- Modal dialog focus containment, initial focus, dismissal, and focus return
- https://www.w3.org/WAI/WCAG22/Understanding/animation-from-interactions
Supports
- Requirement to disable interaction-triggered motion unless essential
- https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum
Supports
- Level AA minimum target size of 24 by 24 CSS pixels and defined exceptions
- Target spacing as a means of satisfying the criterion in specified cases
- https://www.w3.org/WAI/WCAG22/Understanding/status-messages
Supports
- Programmatic determination of status messages without receiving focus
- https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/%40media/prefers-reduced-motion
Supports
- reduced and no-preference query values
- Replacing or reducing nonessential motion in response to user preference
- https://webkit.org/blog/7551/responsive-design-for-motion/
Supports
- WebKit support for prefers-reduced-motion on 15 May 2017
- CSS and JavaScript implementation paths and alternate-motion examples
- https://developer.apple.com/design/human-interface-guidelines/feedback
Supports
- Feedback communicating status, success, failure, warning, and correction
- Matching interruption and presentation to consequence
- Accessible feedback through multiple channels and nearby placement
- https://developer.apple.com/design/human-interface-guidelines/motion
Supports
- Purposeful, brief, precise, optional, and cancelable motion guidance
- Motion preserving spatial and gesture expectations
- https://developer.apple.com/design/human-interface-guidelines/navigation-and-search
Supports
- Navigation hierarchy and task context guidance
- https://m3.material.io/styles/motion/overview
Supports
- Motion as a system of transitions, spatial relationships, and timing
- https://www.nngroup.com/articles/ten-usability-heuristics/
Supports
- Visibility of system status, consistency, user control, error prevention, and recovery
- Recognition and feedback as interface review concerns
- https://www.oreilly.com/library/view/microinteractions/9781449342760/
Supports
- Microinteraction structure, examples, prototyping, documentation, and orchestration
- Publication and scope of Dan Saffer's Microinteractions
- https://github.com/sindresorhus/awesome
Supports
- Discovery of the Motion UI Design awesome list from the canonical awesome index
- https://github.com/fliptheweb/motion-ui-design
Supports
- Discovery of easings.net, cubic-bezier.com, GSAP, Anime.js, Origami Studio, and useAnimations
- Curated motion UI software, helpers, libraries, guidelines, and learning resources
- https://easings.net/
Supports
- Interactive comparison and copyable values for common easing functions
- https://cubic-bezier.com/
Supports
- Visual construction and preview of cubic Bezier timing curves
- https://gsap.com/docs/v3/
Supports
- GSAP timelines, animation control methods, and browser animation documentation
- https://animejs.com/documentation/
Supports
- Anime.js animation, timeline, event, easing, SVG, draggable, and WAAPI documentation
- https://origami.design/documentation/
Supports
- Origami Studio patches for interaction, animation, and prototype behavior
- https://useanimations.com/
Supports
- Reusable animated icons for interface controls
- https://help.figma.com/hc/en-us/articles/360039818874-Smart-animate-layers-between-frames
Supports
- Smart Animate matching layers, transitions, gestures, toggles, and loading sequences
- https://www.sketch.com/docs/prototyping/
Supports
- Sketch links, hotspots, overlays, hover, press, toggle, scrolling, and fixed elements
- https://www.framer.com/help/articles/how-animations-and-effects-work-in-framer/
Supports
- Framer layout animations, gestures, interactions, effects, and Motion integration
- https://www.protopie.io/features/interaction-logic
Supports
- ProtoPie triggers, responses, variables, formulas, and system events
- https://www.axure.com/axure-rp
Supports
- Axure events, conditions, variables, forms, repeaters, and multi-state panels
- https://www.uxpin.com/docs/editor/interactions/
Supports
- UXPin interactions, states, and animated prototypes
- https://rive.app/docs/editor/state-machine/state-machine
Supports
- Rive animation states, transitions, inputs, and runtime-ready interaction logic
- https://guidebookgallery.org/articles/designingthestaruserinterface/
Supports
- Xerox Star announcement in April 1981
- Consistent graphical interface principles and transfer of learning
- https://doi.org/10.1145/800276.810991
Supports
- Publication of Direct Manipulation A Step Beyond Programming Languages
- https://www.cs.umd.edu/~ben/about.html
Supports
- 1983 publication and properties of direct manipulation
- https://openlibrary.org/books/OL7406922M/Apple_Human_Interface_Guidelines
Supports
- November 1987 publication of Apple Human Interface Guidelines
- https://shop.elsevier.com/books/usability-engineering/nielsen/978-0-08-052029-2
Supports
- 1994 publication and practical usability evaluation methods
- https://www.apple.com/newsroom/2007/01/09Apple-Reinvents-the-Phone-with-iPhone/
Supports
- 9 January 2007 iPhone introduction and finger-driven multi-touch interface
- https://www.w3.org/press-releases/2008/wcag20/
Supports
- WCAG 2.0 publication as a W3C Recommendation on 11 December 2008
- Technology-neutral and testable web accessibility guidance
- https://openlibrary.org/books/OL25891170M/Microinteractions
Supports
- 2013 publication metadata for Microinteractions
- https://blog.google/products-and-platforms/platforms/android/google-io-2014-keynote/
Supports
- Material Design introduction on 25 June 2014 as a consistent design approach
- https://medium.com/airbnb-engineering/introducing-lottie-4ff4a0afac0e
Supports
- Lottie introduction on 1 February 2017 and After Effects export workflow
- https://airbnb.tech/opensource/lottie/
Supports
- Lottie rendering workflow and reduced manual animation recreation
- https://github.blog/engineering/user-experience/design-system-annotations-part-1-how-accessibility-gets-left-out-of-components/
Supports
- Accessible design-system components do not guarantee accessible designs in context
- Annotations make focus management, interaction, validation, and implementation intent explicit
- https://engineering.atspotify.com/2023/03/encore-x-accessibility-a-balancing-act
Supports
- Limits of enforcing accessibility at a modular component level
- Design-system accessibility challenges concentrate in interaction and feature context
- https://adrianroselli.com/2020/07/aria-grid-as-an-anti-pattern.html?replytocom=198327
Supports
- ARIA grid requires managed keyboard focus and changes navigation expectations
- Native lists, links, and controls can be more predictable for non-grid tasks
