From prisons to protests, immigration to the environment, Peabody Award-winning Reveal goes deep into the pressing issues of our times. The show is hosted by Al Letson and partners with reporters and newsrooms around the world, including The Washington Post, ProPublica, APM and The Marshall Project. Reveal is a Pulitzer Prize finalist, and has won many broadcast journalism awards, including a duPont and three national Emmys.
The red line: Racial disparities in lending
It’s been 10 years since the great housing bust and lending is back for some Americans, but not for others. In dozens of cities across the country, lenders are more likely to deny loans to applicants of color than white ones. On this episode of Reveal, we dig into the new redlining.
Take No Prisoners
In the carnage that followed the Battle of the Bulge in 1944, there was one incident that top military commanders hoped would be concealed. It’s the story of an American war crime nearly forgotten to history.
Sins of the Fathers
Reveal.js is an open source HTML presentation framework. It's a tool that enables anyone with a web browser to create fully-featured and beautiful presentations for free. Presentations made with reveal.js are built on open web technologies. That means anything you. The OneTouch Reveal ® web app is a web-based diabetes management system that makes blood sugar management simple and easy, on your PC or Mac computer. The OneTouch Reveal ® mobile app makes it easy to view and track your results on your iOS or Android smartphone or tablet.
In Alaska and the Pacific Northwest, the Catholic church had a problem with Jesuit priests sexually abusing children. The church’s first solution was to send the priests to remote Native villages, but there they continued to abuse. So the church tried something else: hiding them in plain sight.
“Reveal is... a remarkably sharp radio program and podcast. Host Al Letson, part navigator, part passenger, leads listeners through topically themed episodes. CIR reporters have dropped illuminating stories on the American trapping boom, discrimination in the temporary jobs sector, and religious day care centers, among other topics.” — Columbia Journalism Review
Reveal Highlight is a lighting effect that highlights interactive elements, such as command bars, when the user moves the pointer near them.
Important APIs: RevealBrush class, RevealBackgroundBrush class, RevealBorderBrush class, RevealBrushHelper class, VisualState class
How it works
Reveal Highlight calls attention to interactive elements by revealing the element's container when the pointer is nearby, as shown in this illustration:
Reveal Math
By exposing the hidden borders around objects, Reveal gives users a better understanding of the space that they are interacting with, and helps them understand the actions available. This is especially important in list controls and groupings of buttons.
Examples
XAML Controls Gallery |
---|
If you have the XAML Controls Gallery app installed, click here to open the app and see Reveal in action. |
Video summary
How to use it
Reveal automatically works for some controls. For other controls, you can enable Reveal by assigning a special style to the control, as described in the Enabling Reveal on other controls and Enabling Reveal on custom controls sections of this article.
Controls that automatically use Reveal
Revealing
These illustrations show Reveal Highlight on several different controls:
Enabling Reveal on other controls
If you have a scenario where Reveal should be applied (these controls are main content and/or are used in a list or collection orientation), we've provided opt-in resource styles that allow you to enable Reveal for those types of situations.
These controls do not have Reveal by default as they are smaller controls that are usually helper controls to the main focal points of your application; but every app is different, and if these controls are used the most in your app, we've provided some styles to aid with that:
Control Name | Resource Name |
---|---|
Button | ButtonRevealStyle |
ToggleButton | ToggleButtonRevealStyle |
RepeatButton | RepeatButtonRevealStyle |
AppBarButton | AppBarButtonRevealStyle |
AppBarToggleButton | AppBarToggleButtonRevealStyle |
GridViewItem (Reveal overtop of content) | GridViewItemRevealBackgroundShowsAboveContentStyle |
To apply these styles, simply set the control's Style property:
Other Words For This Reveals
Reveal in themes
Reveal changes slightly depending on the requested theme of the control, app or user setting. In Dark theme Reveal's Border and Hover light is white, but in Light theme just the Borders darken to a light gray.
To enabled white borders while in light theme, simply set the requested theme on the control to Dark.
Or change the TargetTheme on the RevealBorderBrush to Dark. Remember! If the TargetTheme is set to Dark, then Reveal will be white, but if it's set to Light, Reveal's borders will be gray.
Enabling Reveal on custom controls
You can add Reveal to custom controls. Before you do, it's helpful to know a little more about how the Reveal effect works. Reveal is made up of two separate effects: Reveal border and Reveal hover.
- Border shows the borders of interactive elements when a pointer is nearby by. This effect shows you that those nearby objects can take actions similar to the one currently focused.
- Hover applies a gentle halo shape around the hovered or focused item and plays a press animation on click.
These effects are defined by two brushes:
- Border Reveal is defined by RevealBorderBrush
- Hover Reveal is defined by RevealBackgroundBrush
In most cases we handle the usage of both of them by turning Reveal on automatically for a certain controls. However, other controls will need to be enabled through applying a style, or changing their templates directly.
When to add Reveal
You can add Reveal to your custom controls--but before you do, consider the type of control and how it behaves.
- If your custom control is a single interactive element and doesn't have similar controls sharing it's space (such as menu items in a menu), it's likely that your custom control doesn't need Reveal.
- If you have a grouping of related interactive content or elements, then it's likely that that region of your app does need Reveal - this is commonly referred to as a Commanding surface.
For example, a button by itself shouldn't use reveal, but a set of buttons in a command bar should use Reveal.
Using the control template to add Reveal
To enable Reveal on custom controls or re-templated controls, you modify the control's control template. Most control templates have a grid at the root; update the VisualState of that root grid to use Reveal:
It's important to note that Reveal needs both the brush and the setters in it's Visual State to work correctly. Simply setting a control's brush to one of our Reveal brush resources alone won't enable Reveal for that control. Conversely, having only the targets or settings without the values being Reveal brushes will also not enable Reveal.
To learn more about modifying control templates, see the XAML control templates article.
Reveal Synonym
We've created a set of system Reveal brushes you can use to customize your template. For example, you can use the ButtonRevealBackground brush to create a custom button background, or the ListViewItemRevealBackground brush for custom lists, and so on. (To learn about how resources work in XAML, check out the Xaml Resource Dictionary article.)
Full template example
Here's an entire template for what a Reveal Button would look like:
Fine-tuning the Reveal effect on a custom control
When you enable Reveal on a custom or re-templated control or a custom commanding surface, these tips can help you optimize the effect:
- On adjacent items with sizes that do not align either in height or width (particularly in lists):Remove the border approach behavior and keep the borders shown on hover only.
- For commanding items that frequently go in and out of the disabled state:Place the border approach brush on the elements' backplates as well as their borders to emphasize their state.
- For adjacent commanding elements that are so close they touch: Add a 1px margin between the two elements.
Do's and don'ts
Do:
- Do use Reveal on elements where the user can take many actions (CommandBars, Navigation menus)
- Do use Reveal in groupings of interactive elements that do not have visual separators by default (lists, ribbons)
- Do use Reveal in areas with a high density of interactive elements (commanding scenarios)
- Do put 1px margin spaces between Reveal items
Don't
- Don’t use Reveal on static content (backgrounds, text)
- Don't use Reveal on popups, flyouts or dropdowns
- Don’t use Reveal in one-off, isolated situations
- Don’t use Reveal on very large items (greater than 500epx)
- Don’t use Reveal in security decisions, as it may draw attention away from the message you need todeliver to your user
Get the sample code
- XAML Controls Gallery sample - See all the XAML controls in an interactive format.
Reveal and the Fluent Design System
The Fluent Design System helps you create modern, bold UI that incorporates light, depth, motion, material, and scale. Reveal is a Fluent Design System component that adds light to your app. To learn more, see the Fluent Design overview.