Make great Windows Store apps
Windows Store apps are the focal point of the user experience on Windows 8, and great Windows Store apps share an important set of traits that provide a consistent, elegant, and compelling user experience. Here you learn about the 8 traits of great Windows Store apps.
This video explains how using Microsoft design style principles helps you create great apps. After watching the video, read on for a summary of what makes for a great Windows Store app.
Content is the heart of Windows Store apps, and putting content before chrome is fundamental to the design of Windows Store apps. Everything else is accessory—or chrome—that helps present and enable interaction with the content.
Design your app's UI to showcase the content, and make your UI accessible for users with disabilities.
Clean and open layout
- Minimize distraction and help people get immersed in the content by leaving only the most relevant elements on screen.
- Give content breathing room by removing lines, boxes, and unnecessary graphical effects like blurs and gradients. Use open space to frame the content.
- Limit navigational chrome that is persistently on screen, such as tabs. Let people focus on the current content, and avoid distracting them with way-finding chrome.
Clear information hierarchy The Microsoft design language is founded on clean, beautiful typography that helps users understand the hierarchy of the content. Use typography in place of lines and boxes to help establish structure and hierarchy.
- Use size, weight, and color in text consistently to convey information on a piece of content's importance. The set of variations should be small, so people can easily see how content fits together in the overall hierarchy. See Guidelines for text and typography.
- Use the default stylesheet to get the predefined type ramp for your text.
Windows silhouette When people focus on content, the composition of that content forms the identity of the application. A familiar silhouette helps people to instinctively recognize your app as a Windows Store app (as opposed to, for example, a webpage).
- Align with the Windows silhouette to provide a sense of familiarity and confidence.
Use interactions that keep the user in control and confident.
Direct interactions The most natural way for people to interact with content is directly, without intermediary chrome.
- Whenever possible, let people complete actions through direct manipulation of the content rather than indirect manipulation with controls.
For example, let people tap an item to see more of its details, cross-slide to select it, drag to move it around, zoom out to see the full context—instead of adding buttons on screen to perform these actions.
- Leverage Semantic Zoom as a fast, fluid, and content-first way of navigating a long list of content.
- Keep in mind how screen readers and users who depend on keyboards will interact with the content.
Leverage the edge Some actions can't be accomplished with direct manipulation. For those, show commands contextually, only as needed, to avoid cluttering your canvas. Leverage the screen or device edge so people can confidently find commands.
- Place commands in the app bar, which can be brought up on demand through a swipe from the top or bottom edge, and can be dismissed when users have completed their actions.
- Leverage the charms, which can be brought up on demand through a swipe from the right edge, for invoking the Search, Share, Devices, or Settings charms.
- Avoid placing commands persistently on screen, and avoid showing duplicate entry points for contracts that are accessed with charms.
- Design for comfort and put frequently used interaction surfaces near the edges.
See Commanding design for more info.
Respond to user actions quickly with matching energy.
Motion is a core part of the Microsoft design language. Well designed animations bring apps to life and make the experience feel crafted and polished.
- Use purposeful animations to visually tie experiences together and tell a story. Everything comes from somewhere and goes somewhere in a fluid interface.
- Leverage the Animation Library's set of scenario-specific animations, designed to convey information. Familiar motions reinforce concepts, help people know what to expect, and build a sense of confidence. See the guidelines for animations in the Animating your UI section.
- When using animation to communicate important information, be sure to also provide an alternative, accessible way to convey the information.
Designed for touch
Windows Store apps are designed to be touch first. They leverage the hands and fingers for what they are great at, with comfort and ergonomics in mind.
- Embrace the Windows 8 Touch Language and use the prescribed gesture set to let people naturally and consistently manipulate content. See Touch interaction design for more info.
- Let content directly follow your fingers. Think beyond tap and use sliding interactions, such as Semantic Zoom, to let people quickly and effortlessly navigate and interact with content.
- Provide immediate visual feedback on touch so people can confidently know if they have hit the intended target. Keep interactions reversible, and commit only when people let go to give room for errors and encourage explorations.
- Do not build separate touch and mouse interactions.
- For accessibility, ensure that all interactive elements are accessible programmatically. To learn more, see Making touch events accessible and Verify main app scenarios by using Narrator.
Leverage the built-in controls to get fluid, beautiful, consistent animations and touch-optimized behaviors baked in. To name a few examples:
- Selection through the swipe gesture (cross-slide) is built into the ListView control. It can be extended with Semantic Zoom to let people quickly and fluidly navigate within a long list. See the guidelines on the ListView control.
- The FlipView control lets users drag to move between items, and has transition animations built-in.
- The button, toggle, checkbox, radio button, rating, and slider controls all provide visual feedback on touch down, commit only on touch up, and allow users to reverse their action by dragging away to cancel. See the guidelines on button, toggle, checkbox, radio button, date and time pickers, rating, and slider controls.
Remember that built-in controls are accessible by default, which can lower the cost of developing an accessible app. See the list detailed user experience (UX) guidelines for built-in controls.
Create a great experience on every form factor and every viewing option open to your users.
Scaling to multiple form factors Your app has the opportunity to be used on hundreds of millions of PCs running Windows 8. These PCs will have a wide range of screen sizes and resolution, ranging from <10" tablets to >27" screens.
- Make the best use of on-screen real estate by using the fluid layout support built into platform controls. For example, the ListView will automatically reflow content based on available space.
- The platform provides automatic scaling based on device screen size and resolution. Provide 3 sizes of assets, or use Scalable Vector Graphics (SVG) to ensure your app always looks crisp and polished. See the Guidelines for scaling to screens and Guidelines for scaling to pixel density.
- Keep in mind that turning on Make everything on your screen bigger in Ease of Access effectively lowers the current resolution and you need to ensure that all UI is still visible and usable. To learn more, see Verify your app with "Make everything on your screen bigger".
- Use the simulator in Microsoft Visual Studio to see how your app will look on different form factors.
Designing for different window sizes People naturally multitask, and they can run multiple apps side by side. Users can resize apps continuously down to a minimum width. The default minimum width is 500 pixels. If your app works well at smaller sizes and you want to encourage users to keep your app on the screen, you can change the minimum width to 320 pixels. See the Guidelines for window sizes.
- Design your app to reflow content fluidly so that it looks great and is functional at any size, down to the minimum width. Preserve users' context when they resize the app.
- Make sure that your app controls, such as the app bar, nav bar, dialogs, and flyouts, scale down to the minimum size.
Contracts are the glue that binds Windows Store apps together and to the system UI. Two apps that have implemented the same contract can work together to complete a broad or complex scenario.
- For some of the most common contracts such as search, share, and file pickers, start with the corresponding Visual Studio item templates.
- Rely on charms for a consistent invocation model that users can confidently rely on. Avoid creating alternative UI on the app canvas to invoke the contracts; that could confuse users.
- See a complete list of app contracts.
Share The share contracts let people share data from one app with another app. A source app is one which provides something to share, and a target app receives the shared content, using a set of common data formats. See the See Guidelines for sharing content.
- Every app should be a sharing source and implement the broadest set of formats possible.
- Apps that publish, store, or transform the shared data are good candidates to be a sharing target. Examples include communication, social networking, and device-connected apps.
Search The search contractand the in-app SearchBox control let people search an app's content from anywhere in Windows. Results are provided by the app, and displayed within the app's own UI or in the global search pane. See Guidelines and checklist for search.
- If search is integral to your app, use the new SearchBox control. If search is valuable for your app but not central to its purpose, use the search charm and the contract.
- You can use the search contract with the SearchBox control to enable activation from global search.
- If users need search to get started using your app, add the standard search glyph to your app's canvas.
- Improve your app's search results page by letting users set filters and scopes to refine the set of search results.
- Indicate why a search result matches the query by using the new hit highlighting API.
File pickers The file picker contracts let people access an app's content from another app. When the file picker is invoked, users can browse and select files from either the local storage or another app that supports the file picker contract. See the Guidelines for file pickers.
- Leverage this contract if your app accesses or stores files that would be useful to users from another context.
- Leverage the ListView control to get the built-in fluid layout and selection behavior.
A tile is the front door into an app. Sitting on the Start screen, it is an extension of the app and can provide much more personal and engaging information than a traditional icon. Invest in designing a great tile to draw people into your app. See the Guidelines for tiles.
- Tailor the content displayed on the tile to the users, and keep it fresh by updating it as app content changes. There is a wide variety of pre-designed tile templates available—select the design that best suits your content type.
- Reference content that lives on your app's home page, so that users can find it easily after launching the app.
- Use secondary tiles to let people promote interesting, frequently updated sub-sections of content in your app on their Start screen. See Guidelines for secondary tiles.
Provide fresh content through live tiles and notifications to let people feel connected to your app. Both live tiles and notifications use the same infrastructure, and can be updated at any time using the Windows Push Notification Service, locally while the app is running, or at a pre-scheduled time.
Live tiles Draw people in continually with dynamic, relevant, personalized content on your app tile. Fresh tile content gives people a reason to place the tile in a prominent position on the Start screen, and to launch the app time and again.
- A live tile can cycle through up to 5 updates. For example, a news app's live tile can cycle through multiple stories each day.
- Content shown in live updates should be accessible from the home page of your app. Remove outdated notifications if they are no longer relevant or accessible from the home page
- Use badges to show simple numeric or glyph information.
Notifications Apps can use notifications to briefly show people time-sensitive messages that need to be interruptive from anywhere in Windows. See the Guidelines for toast notifications.
- Most apps should be silent—people should opt-in to enable notifications in an app.
- People have control over app's notification capability, so raise notifications only if they are truly time sensitive and relevant. Show missed notifications, if they are critical, on the app's tile.
- Combine notifications if there are multiple updates occurring within a short period of time.
- Do not use notifications to show errors or warnings. Errors should appear inline or in flyouts and message dialogs instead.
Roaming Create a continuous experience across devices by roaming data that lets people pick up a task right where they left off. Read the Guidelines for roaming app data.
- Leverage Microsoft accounts and the per-user cloud storage to store and roam settings, state, and a small amount of user content.
- Examples of app settings that are good to roam:
- Cities, and Celsius-versus-Fahrenheit preferences in a weather app
- RSS feeds that users subscribed to in a news app
- Favorite teams in a sports app
- Examples of app states that are good to roam:
- The furthest position read in a reading app
- The last checkpoint or move completed in a game
- The last track played in a music app
Process Lifetime Management (app lifecycle) Ensure a continuous experience by preserving state for your users without requiring an explicit save. Read the Guidelines for app suspend and resume.
- In general, resume the app as people left it rather than starting it fresh. People should be able to switch away to another app, and come back to a shopping cart, an unfinished email, or a paused game as they have left it.
- Start the app fresh if a long period of time has elapsed since the user last accessed it and the previous context is no longer relevant. For example, in a news app, bring people to the home page if it has been a long time since they last opened an article that has now become stale.
- Do not terminate the app when it is moved off screen. Leave the app lifecycle to the system to ensure that your users can return to your app as efficiently as possible. Do not offer users ways to terminate your app.
Use these principles to help guide your design.
Show pride in craftsmanship
- Devote time and energy to small things that are seen often by many.
- Engineer the experience to be complete and polished at every stage.
Do more with less
- Solve for distractions, not discoverability. Let people be immersed in what they love and they will explore the rest.
- Create a clean and purposeful experience by leaving only the most relevant elements on screen so people can be immersed in the content.
Be fast and fluid
- Let people interact directly with content, and respond to actions quickly with matching energy.
- Bring life to the experience, create a sense of continuity and tell a story through meaningful use of motion.
Be authentically digital
- Take full advantage of the digital medium. Remove physical boundaries to create experiences that are more efficient and effortless than reality.
- Embrace the fact that we are pixels on a screen. Design with bold, vibrant and crisp colors and images that go beyond the limits of real world material.
Win as one
- Leverage the ecosystem and work together with other apps, devices and the system to complete scenarios for people.
- Fit into the UI model to reduce redundancy. Take advantage of what people already know to provide a sense of familiarity, control, and confidence.