---
title: VisualEffect
framework: swiftui
role: symbol
role_heading: Protocol
path: swiftui/visualeffect
---

# VisualEffect

Visual Effects change the visual appearance of a view without changing its ancestors or descendents.

## Declaration

```swift
protocol VisualEffect : Sendable, Animatable
```

## Overview

Overview Because effects do not impact layout, they are safe to use in situations where layout modification is not allowed. For example, effects may be applied as a function of position, accessed through a geometry proxy: var body: some View {     ContentRow()         .visualEffect { content, geometryProxy in             content.offset(x: geometryProxy.frame(in: .global).origin.y)         } } You don’t conform to this protocol yourself. Instead, visual effects are created by calling modifier functions (such as .offset(x:y:) on other effects, as seen in the example above.

## Topics

### Adjusting Color

- [brightness(_:)](swiftui/visualeffect/brightness(_:).md)
- [colorEffect(_:isEnabled:)](swiftui/visualeffect/coloreffect(_:isenabled:).md)
- [contrast(_:)](swiftui/visualeffect/contrast(_:).md)
- [grayscale(_:)](swiftui/visualeffect/grayscale(_:).md)
- [hueRotation(_:)](swiftui/visualeffect/huerotation(_:).md)
- [saturation(_:)](swiftui/visualeffect/saturation(_:).md)
- [opacity(_:)](swiftui/visualeffect/opacity(_:).md)

### Scaling

- [scaleEffect(_:anchor:)](swiftui/visualeffect/scaleeffect(_:anchor:).md)
- [scaleEffect(x:y:anchor:)](swiftui/visualeffect/scaleeffect(x:y:anchor:).md)
- [scaleEffect(x:y:z:anchor:)](swiftui/visualeffect/scaleeffect(x:y:z:anchor:).md)

### Rotating

- [rotationEffect(_:anchor:)](swiftui/visualeffect/rotationeffect(_:anchor:).md)
- [rotation3DEffect(_:axis:anchor:anchorZ:perspective:)](swiftui/visualeffect/rotation3deffect(_:axis:anchor:anchorz:perspective:).md)
- [perspectiveRotationEffect(_:axis:anchor:perspective:)](swiftui/visualeffect/perspectiverotationeffect(_:axis:anchor:perspective:).md)
- [rotation3DEffect(_:anchor:)](swiftui/visualeffect/rotation3deffect(_:anchor:).md)
- [rotation3DEffect(_:axis:anchor:)](swiftui/visualeffect/rotation3deffect(_:axis:anchor:).md)

### Translating

- [offset(_:)](swiftui/visualeffect/offset(_:).md)
- [offset(x:y:)](swiftui/visualeffect/offset(x:y:).md)
- [offset(z:)](swiftui/visualeffect/offset(z:).md)

### Applying a transform

- [transform3DEffect(_:)](swiftui/visualeffect/transform3deffect(_:).md)
- [transformEffect(_:)](swiftui/visualeffect/transformeffect(_:).md)

### Applying other effects

- [blur(radius:opaque:)](swiftui/visualeffect/blur(radius:opaque:).md)
- [distortionEffect(_:maxSampleOffset:isEnabled:)](swiftui/visualeffect/distortioneffect(_:maxsampleoffset:isenabled:).md)
- [layerEffect(_:maxSampleOffset:isEnabled:)](swiftui/visualeffect/layereffect(_:maxsampleoffset:isenabled:).md)

### Instance Methods

- [blendMode(_:)](swiftui/visualeffect/blendmode(_:).md)

## Relationships

### Inherits From

- [Animatable](swiftui/animatable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

### Conforming Types

- [EmptyVisualEffect](swiftui/emptyvisualeffect.md)
- [ModifiedContent](swiftui/modifiedcontent.md)

## See Also

### Applying effects based on geometry

- [visualEffect(_:)](swiftui/view/visualeffect(_:).md)
- [visualEffect3D(_:)](swiftui/view/visualeffect3d(_:).md)
- [EmptyVisualEffect](swiftui/emptyvisualeffect.md)
