Structure

Material

A background material type.

Declaration 宣言

struct Material

Overview 概要

You can apply a blur effect to a view that appears behind another view by adding a material with the background(_:ignoresSafeAreaEdges:) modifier:


ZStack {
    Color.teal
    Label("Flag", systemImage: "flag.fill")
        .padding()
        .background(.regularMaterial)
}

In the example above, the ZStack layers a Label on top of the color teal. The background modifier inserts the regular material below the label, blurring the part of the background that the label — including its padding — covers:

A screenshot of a label on a teal background, where the area behind

A material isn’t a view, but adding a material is like inserting a translucent layer between the modified view and its background:

An illustration that shows a background layer below a material layer,

The blurring effect provided by the material isn’t simple opacity. Instead, it uses a platform-specific blending that produces an effect that resembles heavily frosted glass. You can see this more easily with a complex background, like an image:


ZStack {
    Image("chili_peppers")
        .resizable()
        .aspectRatio(contentMode: .fit)
    Label("Flag", systemImage: "flag.fill")
        .padding()
        .background(.regularMaterial)
}

A screenshot of a label on an image background, where the area behind

For physical materials, the degree to which the background colors pass through depends on the thickness. The effect also varies with light and dark appearance:

An array of labels on a teal background. The first column, labeled light

If you need a material to have a particular shape, you can use the background(_:in:fillStyle:) modifier. For example, you can create a material with rounded corners:


ZStack {
    Color.teal
    Label("Flag", systemImage: "flag.fill")
        .padding()
        .background(.regularMaterial, in: RoundedRectangle(cornerRadius: 8))
}

A screenshot of a label on a teal background, where the area behind

When you add a material, foreground elements exhibit vibrancy, a context-specific blend of the foreground and background colors that improves contrast. However using foregroundStyle(_:) to set a custom foreground style — excluding the hierarchical styles, like secondary — disables vibrancy.

Topics 話題

Getting Material Types

Default Implementations 省略時実装

Relationships 関係

Conforms To 次に準拠

See Also 参照

Supporting Shape Style Types