Sie sind auf Seite 1von 9

Animations for Visual Studio

04/25/2017 • 9 minutes to read • +4

In this article
Animation fundamentals
Animation patterns

Animation fundamentals

Animation best practices in Visual Studio

Follow these rules to ensure consistent and user-friendly animation styles across the Visual Studio IDE.

Be selective. Limit animations to those that serve specific purposes.

Timing and speed are important to ensure that transitions feel quick and natural:

Complete animated transitions within one half-second (500 milliseconds).

Animations that would occur frequently need to be quick enough that they don't interrupt the user's workflow. Watch the animation in a loop and
adjust the timing until it feels right.

Animations shouldn't be so fast or jarring that it's difficult to understand, but not so slow that it makes one impatient for the transition to finish.

Use variable timing to emphasize importance. For example, when navigating through a sequence of items on a class diagram, speed through
transitions between items then slow down to focus on important items.

Use gradual non-linear easing from one state to another, giving a sense of calm and natural movement.

When possible, use a subtle animation on hover to indicate interactive elements under the mouse.

If you rely heavily on animations in your features, then provide a means to turn them off locally (for all your features) as an option in the Tools >
Options dialog.

Only one animation should occur at a time and convey just one piece of information. More than one object moving or attempting to convey
multiple things can be confusing.

Subtlety is important. In most cases, animation doesn't have to demand user attention to serve its purpose. Subtle changes in timing, sequencing,
and behavior might significantly impact perception, and can make the difference between an effective and ineffective animation.

When using animation to draw attention to something, make sure that it's worth interrupting the user's train of thought.

When showing progress or status through animation:

Stop showing progress movement when the underlying process isn't advancing.

Distinguish indeterminate processes from determinate processes.

Ensure that an animation has identifiable completion and failure states.

Minimize use of effect animations that show status and make sure that they have real value by providing additional information of actual use.
Examples include transient status changes and emergencies

Animation don'ts:

Don't use small movements (movement in a small footprint). Prefer fades and changes over moving objects.

Don't use animations that take place over a large area of screen real estate. Regardless of size, this style of animation is distracting to the user.

Don't use animations unrelated to the object the user is currently focused on or interacting with.

Don't use animations that require user interaction to reset the state, like forcing the user to respond to a flashing notification in order to make it
stop flashing. Interacting with them in any way should be sufficient to dismiss them.

For more information on applications for these best practices, see Animation patterns.
Animation metrics

The system should visibly react to user gestures in less than 10 milliseconds.

Animated transitions shouldn't take longer than 500 milliseconds to complete.

One way to compensate for transitions that require longer times is to separate it into two parts. For example, the first part of an animation could be
the empty content container (up to 500 milliseconds), followed by the content fading into the container (up to 500 milliseconds).

For load times that can be calculated, a determinant progress indicator (percent-done progress indicator) is preferred.

For load times that can't be calculated, a busy indicator like a cursor or embedded spinning animation (loading or working indicator) is appropriate.

Animation as communicator

In Visual Studio UI, animation functions only as a communication tool. It's used to communicate a variety of information, like structural changes in the UI
(for example, when a menu opens or closes). Animation can help visualize the time-dependent behavior of complex systems, like installation progress
visualization. Animations can also be used to attract attention with alerts and notifications.

UI animations typically function in four ways: visualize, attract attention, simulate, and response times/progress indicators.

Visualize

Animation can emphasize the three-dimensional nature of objects and make it easier for users to visualize their spatial structure. To achieve this, the
animation may need to spin the object in a full circle, slowly turn it back and forth, or bring the object closer and slightly increase its size to emphasize
rollover or focus.

Although three-dimensional objects may be moved with user control, the designer should determine in advance (programmatically or manually) how to
best animate a movement that provides optimal understanding of the object. This programmed animation can then be activated by the user by placing
the cursor over the object, whereas user-controlled movements require the user to understand how to manipulate the object. Limit the movement to a
single axis or orientation at a time; either scale, rotate, or translate, but don't do more than one simultaneously.

The Visualize category includes the aspects of data, relationships, state, structure, sequence, and time.

Data

Illustrate complex and variable information:

Moving through information visualizations like charts and graphs

Stepping through a sequence, guided tour, and paging

Calling out details, pointing, and highlighting specific information

Overlaying details and additional information on top of a focused element

Morphing from one structural or organizational representation to another

Representing changes over time using time sliders, jog-and-shuttle wheels, and transport controls (play, stop, and pause)

Relationships

Illustrate how items relate to one another or which items relate to a given item

Show hierarchies and parent-child or sibling relationships

One element spawns another

One element minimizes to another element

One element tethered to another

State

Content updates

User focus and selection

Progress
Errors

Structure

Pivoting the structure on one node

Reorienting

Minimize and maximize, or expand and collapse

Sequence

Slideshow sequence

Flipping through pictures

Time

Show change over time, time lapse, and screencast

Move to trash, undo, and redo

Restore historical state

Attract attention

If the goal is to draw the user's attention to a single element out of several or to alert the user to updated information, then an animation might be
appropriate. For example, your application start page might employ a Getting Started button that slides into place after the page loads.

As a rule, the last moving element on the screen attracts the user's attention. In a series of animated elements, the user's attention will follow the last
moving object.

Alert

Alert the user, get attention, show progress

Show that something is being done correctly or incorrectly or show progress or progress changes

Prompt users during a task, like finding more information online or learning about the current task

Notifications

Alert the user about an error condition

Interrupt the user to see if they would like to attend to something else

Gently inform the user that a process has completed or changed, like when a download is complete.

Simulate

This category covers physicality and dimensionality.

Illustrate where objects come from or where they go to

Expand and collapse or open and close

Panning, scrolling, and page turns

Stacking and z-ordering

Carousel and accordion

Flipping and rotating UI

Response and progress indicators

Progress indicators have a couple of notable advantages:


Both determinate and indeterminate progress indicators reassure the user that the system has not crashed and is working on the problem.

Determinate indicators give the user a sense of how far along the action is progressing, as well as a feeling of getting closer to the finish.

Animation patterns

Overview

Animations in Visual Studio are meant to serve a specific function without hindering user productivity. Generally, animations in Visual Studio should be:

Small and unobtrusive

Natural and realistic

Subtle and subdued

Fast and efficient

Relaxed, not hurried

This illustration shows the animation styles we recommend for Visual Studio. No animation or subtle animations like fade in/fade out are the most
frequently used. There is limited application of movement animations like expand and contract, X and Y position change, and rotation.

Recommended animation styles for Visual Studio

Appear and disappear

With this pattern, an element switches from visible to out-of-view and back without a transition animation.

Appear and disappear animation

Correct usage

Fresh UI elements that need to instantly appear or disappear so that the user is neither distracted nor obstructed. In addition, slow-moving animations
might be perceived as a performance drag, which won't occur with the appear-and-disappear style.

Incorrect usage

Cases in which UI appears so abruptly the user has no idea what happened, and adding an animation would help with contextual understanding.

Animation properties

The time delay is generally zero seconds.

Examples

Auto-hide tool windows

Keyboard-activated editor UI, like IntelliSense and Parameter Help


Expand-and-collapse code regions

Fade-in and fade-out

With this pattern, a UI element transitions from not visible (0% opacity) to visible (100% opacity) or vice versa.

Fade-in and fade-out animation

Correct usage

This is the most commonly recommended UI animation. It's a subtle effect that adds interest without interrupting flow. In some cases, the user might not
even realize that there's an animation, perceiving a smooth and flowing UI system.

Animation properties

Starting opacity: 0% for fade-in, 100% for fade-out

Ending opacity: 100% for fade-in, 0% for fade-out

Duration: 200 milliseconds standalone, 100 milliseconds when used as part of a combination animation sequence

Easing style: Sine InOut

Examples

Auto-hide tool windows

Menu open and close

Background and foreground tab transitions

Color blend from A to B

With this pattern, a UI element changes from color A to color B.

Color blend animation

Correct usage

As an animated transition when a UI element changes color from one context or state to another.

Animation properties

Starting color: UI-specific

Ending color: UI-specific

Duration: 200 milliseconds standalone, 100 milliseconds when used as part of a combination animation sequence

Easing style: Sine InOut

Examples

Document window state transitions (active, last active, and inactive)

Tool window state transitions (focused and unfocused)

Expand and contract


With this pattern, a UI element expands in the X, Y, or both directions.

Expand and contract animation

Correct usage

As an animated transition when a UI element changes size from one context to another.

Animation properties

X scale: % or specific dimension (in pixels)

Y scale: % or specific dimension (in pixels)

Anchor position: generally upper-left (for left-to-right languages) or upper-right (for right-to-left languages)

Duration: 200 milliseconds standalone, 100 milliseconds when used as part of a combination animation sequence

Examples

Architecture Explorer panel expand and collapse

Visual Studio 2017 Start Page item expand and collapse

X-Y position change

With this pattern, a UI element changes its X or Y position or both.

X-Y position change animation

Correct usage

As an animated transition when a UI element changes position from one context to another.

Animation properties

Starting X and Y position: UI-specific

Ending X and Y position: UI-specific

Motion path: none

Duration: 200 milliseconds standalone, 100 milliseconds when used as part of a combination animation sequence

Easing style: Sine InOut

Example

Tab reordering

Rotate

With this pattern, the UI element rotates.

UI element rotation animation


Correct usage

Only for the indeterminate spinning progress indicator.

Animation properties

Degree of rotation: 360

Rotation center: middle of the object

Duration: continuous

Example

Indeterminate progress indicator (spinning)

Common shell UI actions and recommended animations

Tab open

Tab open animation

Style: appear

Duration: zero seconds

Tab close

Tab close animation

Style: X position change

Duration: 200 milliseconds

Tab reorder
Tab reorder animation

Style: X position change

Duration: 200 milliseconds

Close floating document

Close floating document animation

Style: appear

Duration: 200 milliseconds

Window state transition

Window state transition animation

Style: to be consistent with other windows, let the current operating system define the document close animation.

Duration: 200 milliseconds

Menu open
Menu open animation

Style: fade-in

Duration: 200 milliseconds

Menu close

Menu close animation

Style: fade-out

Duration: 200 milliseconds

Auto-hide tool window reveal

Auto-hide tool window reveal animation

Style: appear

Duration: zero seconds

Das könnte Ihnen auch gefallen