---
title: EnvironmentValues
framework: swiftui
role: symbol
role_heading: Structure
path: swiftui/environmentvalues
---

# EnvironmentValues

A collection of environment values propagated through a view hierarchy.

## Declaration

```swift
struct EnvironmentValues
```

## Overview

Overview SwiftUI exposes a collection of values to your app’s views in an EnvironmentValues structure. To read a value from the structure, declare a property using the Environment property wrapper and specify the value’s key path. For example, you can read the current locale: @Environment(\.locale) var locale: Locale Use the property you declare to dynamically control a view’s layout. SwiftUI automatically sets or updates many environment values, like pixelLength, scenePhase, or locale, based on device characteristics, system state, or user settings. For others, like lineLimit, SwiftUI provides a reasonable default value. You can set or override some values using the environment(_:_:) view modifier: MyView()     .environment(\.lineLimit, 2) The value that you set affects the environment for the view that you modify — including its descendants in the view hierarchy — but only up to the point where you apply a different environment modifier. SwiftUI provides dedicated view modifiers for setting some values, which typically makes your code easier to read. For example, rather than setting the lineLimit value directly, as in the previous example, you should instead use the lineLimit(_:) modifier: MyView()     .lineLimit(2) In some cases, using a dedicated view modifier provides additional functionality. For example, you must use the preferredColorScheme(_:) modifier rather than setting colorScheme directly to ensure that the new value propagates up to the presenting container when presenting a view like a popover: MyView()     .popover(isPresented: $isPopped) {         PopoverContent()             .preferredColorScheme(.dark)     } Create a custom environment value by declaring a new property in an extension to the environment values structure and applying the Entry() macro to the variable declaration: extension EnvironmentValues {     @Entry var myCustomValue: String = "Default value" }

extension View {     func myCustomValue(_ myCustomValue: String) -> some View {         environment(\.myCustomValue, myCustomValue)     } } Clients of your value then access the value in the usual way, reading it with the Environment property wrapper, and setting it with the myCustomValue view modifier.

## Topics

### Creating and accessing values

- [init()](swiftui/environmentvalues/init().md)
- [subscript(_:)](swiftui/environmentvalues/subscript(_:).md)
- [description](swiftui/environmentvalues/description.md)

### Accessibility

- [accessibilityAssistiveAccessEnabled](swiftui/environmentvalues/accessibilityassistiveaccessenabled.md)
- [accessibilityDimFlashingLights](swiftui/environmentvalues/accessibilitydimflashinglights.md)
- [accessibilityDifferentiateWithoutColor](swiftui/environmentvalues/accessibilitydifferentiatewithoutcolor.md)
- [accessibilityEnabled](swiftui/environmentvalues/accessibilityenabled.md)
- [accessibilityInvertColors](swiftui/environmentvalues/accessibilityinvertcolors.md)
- [accessibilityLargeContentViewerEnabled](swiftui/environmentvalues/accessibilitylargecontentviewerenabled.md)
- [accessibilityPlayAnimatedImages](swiftui/environmentvalues/accessibilityplayanimatedimages.md)
- [accessibilityPrefersHeadAnchorAlternative](swiftui/environmentvalues/accessibilityprefersheadanchoralternative.md)
- [accessibilityPrefersCrossFadeTransitions](swiftui/environmentvalues/accessibilitypreferscrossfadetransitions.md)
- [accessibilityQuickActionsEnabled](swiftui/environmentvalues/accessibilityquickactionsenabled.md)
- [accessibilityReduceMotion](swiftui/environmentvalues/accessibilityreducemotion.md)
- [accessibilityReduceTransparency](swiftui/environmentvalues/accessibilityreducetransparency.md)
- [accessibilityShowButtonShapes](swiftui/environmentvalues/accessibilityshowbuttonshapes.md)
- [accessibilitySwitchControlEnabled](swiftui/environmentvalues/accessibilityswitchcontrolenabled.md)
- [accessibilityVoiceOverEnabled](swiftui/environmentvalues/accessibilityvoiceoverenabled.md)
- [legibilityWeight](swiftui/environmentvalues/legibilityweight.md)

### Actions

- [dismiss](swiftui/environmentvalues/dismiss.md)
- [dismissSearch](swiftui/environmentvalues/dismisssearch.md)
- [dismissWindow](swiftui/environmentvalues/dismisswindow.md)
- [openImmersiveSpace](swiftui/environmentvalues/openimmersivespace.md)
- [dismissImmersiveSpace](swiftui/environmentvalues/dismissimmersivespace.md)
- [newDocument](swiftui/environmentvalues/newdocument.md)
- [openDocument](swiftui/environmentvalues/opendocument.md)
- [openURL](swiftui/environmentvalues/openurl.md)
- [openWindow](swiftui/environmentvalues/openwindow.md)
- [pushWindow](swiftui/environmentvalues/pushwindow.md)
- [purchase](swiftui/environmentvalues/purchase.md)
- [refresh](swiftui/environmentvalues/refresh.md)
- [rename](swiftui/environmentvalues/rename.md)
- [resetFocus](swiftui/environmentvalues/resetfocus.md)
- [openSettings](swiftui/environmentvalues/opensettings.md)

### Authentication

- [authorizationController](swiftui/environmentvalues/authorizationcontroller.md)
- [webAuthenticationSession](swiftui/environmentvalues/webauthenticationsession.md)

### Controls and input

- [buttonRepeatBehavior](swiftui/environmentvalues/buttonrepeatbehavior.md)
- [controlSize](swiftui/environmentvalues/controlsize.md)
- [defaultWheelPickerItemHeight](swiftui/environmentvalues/defaultwheelpickeritemheight.md)
- [keyboardShortcut](swiftui/environmentvalues/keyboardshortcut.md)
- [menuIndicatorVisibility](swiftui/environmentvalues/menuindicatorvisibility.md)
- [menuOrder](swiftui/environmentvalues/menuorder.md)
- [searchSuggestionsPlacement](swiftui/environmentvalues/searchsuggestionsplacement.md)
- [preferredPencilDoubleTapAction](swiftui/environmentvalues/preferredpencildoubletapaction.md)
- [preferredPencilSqueezeAction](swiftui/environmentvalues/preferredpencilsqueezeaction.md)

### Display characteristics

- [appearsActive](swiftui/environmentvalues/appearsactive.md)
- [colorScheme](swiftui/environmentvalues/colorscheme.md)
- [colorSchemeContrast](swiftui/environmentvalues/colorschemecontrast.md)
- [displayScale](swiftui/environmentvalues/displayscale.md)
- [horizontalSizeClass](swiftui/environmentvalues/horizontalsizeclass.md)
- [imageScale](swiftui/environmentvalues/imagescale.md)
- [pixelLength](swiftui/environmentvalues/pixellength.md)
- [sidebarRowSize](swiftui/environmentvalues/sidebarrowsize.md)
- [verticalSizeClass](swiftui/environmentvalues/verticalsizeclass.md)
- [immersiveSpaceDisplacement](swiftui/environmentvalues/immersivespacedisplacement.md)
- [labelsVisibility](swiftui/environmentvalues/labelsvisibility.md)
- [materialActiveAppearance](swiftui/environmentvalues/materialactiveappearance.md)
- [TabBarPlacement](swiftui/tabbarplacement.md)
- [toolbarLabelStyle](swiftui/environmentvalues/toolbarlabelstyle.md)

### Global objects

- [calendar](swiftui/environmentvalues/calendar.md)
- [documentConfiguration](swiftui/environmentvalues/documentconfiguration.md)
- [locale](swiftui/environmentvalues/locale.md)
- [managedObjectContext](swiftui/environmentvalues/managedobjectcontext.md)
- [modelContext](swiftui/environmentvalues/modelcontext.md)
- [timeZone](swiftui/environmentvalues/timezone.md)
- [undoManager](swiftui/environmentvalues/undomanager.md)

### Scrolling

- [isScrollEnabled](swiftui/environmentvalues/isscrollenabled.md)
- [horizontalScrollIndicatorVisibility](swiftui/environmentvalues/horizontalscrollindicatorvisibility.md)
- [verticalScrollIndicatorVisibility](swiftui/environmentvalues/verticalscrollindicatorvisibility.md)
- [scrollDismissesKeyboardMode](swiftui/environmentvalues/scrolldismisseskeyboardmode.md)
- [horizontalScrollBounceBehavior](swiftui/environmentvalues/horizontalscrollbouncebehavior.md)
- [verticalScrollBounceBehavior](swiftui/environmentvalues/verticalscrollbouncebehavior.md)

### State

- [editMode](swiftui/environmentvalues/editmode.md)
- [isActivityFullscreen](swiftui/environmentvalues/isactivityfullscreen.md)
- [isEnabled](swiftui/environmentvalues/isenabled.md)
- [isFocused](swiftui/environmentvalues/isfocused.md)
- [isFocusEffectEnabled](swiftui/environmentvalues/isfocuseffectenabled.md)
- [isHoverEffectEnabled](swiftui/environmentvalues/ishovereffectenabled.md)
- [isLuminanceReduced](swiftui/environmentvalues/isluminancereduced.md)
- [isPresented](swiftui/environmentvalues/ispresented.md)
- [isSceneCaptured](swiftui/environmentvalues/isscenecaptured.md)
- [isSearching](swiftui/environmentvalues/issearching.md)
- [isTabBarShowingSections](swiftui/environmentvalues/istabbarshowingsections.md)
- [scenePhase](swiftui/environmentvalues/scenephase.md)
- [supportsMultipleWindows](swiftui/environmentvalues/supportsmultiplewindows.md)

### StoreKit configuration

- [displayStoreKitMessage](swiftui/environmentvalues/displaystorekitmessage.md)
- [requestReview](swiftui/environmentvalues/requestreview.md)

### Text styles

- [allowsTightening](swiftui/environmentvalues/allowstightening.md)
- [autocorrectionDisabled](swiftui/environmentvalues/autocorrectiondisabled.md)
- [dynamicTypeSize](swiftui/environmentvalues/dynamictypesize.md)
- [font](swiftui/environmentvalues/font.md)
- [layoutDirection](swiftui/environmentvalues/layoutdirection.md)
- [lineLimit](swiftui/environmentvalues/linelimit.md)
- [lineSpacing](swiftui/environmentvalues/linespacing.md)
- [minimumScaleFactor](swiftui/environmentvalues/minimumscalefactor.md)
- [multilineTextAlignment](swiftui/environmentvalues/multilinetextalignment.md)
- [textCase](swiftui/environmentvalues/textcase.md)
- [truncationMode](swiftui/environmentvalues/truncationmode.md)
- [textSelectionAffinity](swiftui/environmentvalues/textselectionaffinity.md)

### View attributes

- [allowedDynamicRange](swiftui/environmentvalues/alloweddynamicrange.md)
- [backgroundMaterial](swiftui/environmentvalues/backgroundmaterial.md)
- [backgroundProminence](swiftui/environmentvalues/backgroundprominence.md)
- [backgroundStyle](swiftui/environmentvalues/backgroundstyle.md)
- [badgeProminence](swiftui/environmentvalues/badgeprominence.md)
- [contentTransition](swiftui/environmentvalues/contenttransition.md)
- [contentTransitionAddsDrawingGroup](swiftui/environmentvalues/contenttransitionaddsdrawinggroup.md)
- [defaultMinListHeaderHeight](swiftui/environmentvalues/defaultminlistheaderheight.md)
- [defaultMinListRowHeight](swiftui/environmentvalues/defaultminlistrowheight.md)
- [headerProminence](swiftui/environmentvalues/headerprominence.md)
- [physicalMetrics](swiftui/environmentvalues/physicalmetrics.md)
- [realityKitScene](swiftui/environmentvalues/realitykitscene.md)
- [realityViewCameraControls](swiftui/environmentvalues/realityviewcameracontrols.md)
- [redactionReasons](swiftui/environmentvalues/redactionreasons.md)
- [springLoadingBehavior](swiftui/environmentvalues/springloadingbehavior.md)
- [symbolRenderingMode](swiftui/environmentvalues/symbolrenderingmode.md)
- [symbolVariants](swiftui/environmentvalues/symbolvariants.md)
- [worldTrackingLimitations](swiftui/environmentvalues/worldtrackinglimitations.md)

### Widgets

- [showsWidgetContainerBackground](swiftui/environmentvalues/showswidgetcontainerbackground.md)
- [showsWidgetLabel](swiftui/environmentvalues/showswidgetlabel.md)
- [widgetFamily](swiftui/environmentvalues/widgetfamily.md)
- [widgetRenderingMode](swiftui/environmentvalues/widgetrenderingmode.md)
- [widgetContentMargins](swiftui/environmentvalues/widgetcontentmargins.md)

### Deprecated environment values

- [disableAutocorrection](swiftui/environmentvalues/disableautocorrection.md)
- [sizeCategory](swiftui/environmentvalues/sizecategory.md)
- [presentationMode](swiftui/environmentvalues/presentationmode.md)
- [PresentationMode](swiftui/presentationmode.md)
- [complicationRenderingMode](swiftui/environmentvalues/complicationrenderingmode.md)
- [controlActiveState](swiftui/environmentvalues/controlactivestate.md)

### Instance Properties

- [accessibilityReduceHighlightingEffects](swiftui/environmentvalues/accessibilityreducehighlightingeffects.md)
- [accessibilityShowBorders](swiftui/environmentvalues/accessibilityshowborders.md)
- [activityFamily](swiftui/environmentvalues/activityfamily.md)
- [askPermission](swiftui/environmentvalues/askpermission.md)
- [buttonSizing](swiftui/environmentvalues/buttonsizing.md)
- [credentialDataManager](swiftui/environmentvalues/credentialdatamanager.md)
- [credentialExportManager](swiftui/environmentvalues/credentialexportmanager.md)
- [credentialImportManager](swiftui/environmentvalues/credentialimportmanager.md)
- [deliveredVerificationCodesManager](swiftui/environmentvalues/deliveredverificationcodesmanager.md)
- [devicePickerSupports](swiftui/environmentvalues/devicepickersupports.md)
- [findContext](swiftui/environmentvalues/findcontext.md)
- [fontResolutionContext](swiftui/environmentvalues/fontresolutioncontext.md)
- [imagePlaygroundAllowedGenerationStyles](swiftui/environmentvalues/imageplaygroundallowedgenerationstyles.md)
- [imagePlaygroundOptions](swiftui/environmentvalues/imageplaygroundoptions.md)
- [imagePlaygroundPersonalizationPolicy](swiftui/environmentvalues/imageplaygroundpersonalizationpolicy.md)
- [imagePlaygroundSelectedGenerationStyle](swiftui/environmentvalues/imageplaygroundselectedgenerationstyle.md)
- [isActivityUpdateReduced](swiftui/environmentvalues/isactivityupdatereduced.md)
- [isDynamicIslandLimitedInWidth](swiftui/environmentvalues/isdynamicislandlimitedinwidth.md)
- [isTabViewSidebarAvailable](swiftui/environmentvalues/istabviewsidebaravailable.md)
- [isUserAuthenticationEnabled](swiftui/environmentvalues/isuserauthenticationenabled.md)
- [labelIconToTitleSpacing](swiftui/environmentvalues/labelicontotitlespacing.md)
- [labelReservedIconWidth](swiftui/environmentvalues/labelreservediconwidth.md)
- [levelOfDetail](swiftui/environmentvalues/levelofdetail.md)
- [lineHeight](swiftui/environmentvalues/lineheight.md)
- [navigationLinkIndicatorVisibility](swiftui/environmentvalues/navigationlinkindicatorvisibility.md)
- [remoteDeviceIdentifier](swiftui/environmentvalues/remotedeviceidentifier.md)
- [requestAgeRange](swiftui/environmentvalues/requestagerange.md)
- [requestAppDeletion](swiftui/environmentvalues/requestappdeletion.md)
- [showSignificantUpdateAcknowledgment](swiftui/environmentvalues/showsignificantupdateacknowledgment.md)
- [supportedActivityFamilies](swiftui/environmentvalues/supportedactivityfamilies.md)
- [supportsImagePlayground](swiftui/environmentvalues/supportsimageplayground.md)
- [supportsRemoteScenes](swiftui/environmentvalues/supportsremotescenes.md)
- [surfaceSnappingInfo](swiftui/environmentvalues/surfacesnappinginfo.md)
- [symbolColorRenderingMode](swiftui/environmentvalues/symbolcolorrenderingmode.md)
- [symbolVariableValueMode](swiftui/environmentvalues/symbolvariablevaluemode.md)
- [tabBarPlacement](swiftui/environmentvalues/tabbarplacement.md)
- [tabViewBottomAccessoryPlacement](swiftui/environmentvalues/tabviewbottomaccessoryplacement.md)
- [windowClippingMargins](swiftui/environmentvalues/windowclippingmargins.md)
- [writingToolsBehavior](swiftui/environmentvalues/writingtoolsbehavior.md)

## Relationships

### Conforms To

- [CustomStringConvertible](swift/customstringconvertible.md)

## See Also

### Accessing environment values

- [Environment](swiftui/environment.md)
