<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/have-you-ever-broken-theming-by-choosing-zstack-over-background--ey8jwiyir" -->

---
title: Have you ever broken theming by choosing ZStack over...
description: Using ZStack as a structural wrapper for theme colors in SwiftUI can cause performance issues with dynamic theme switching. When themes are applied at the...
canonical: https://daily.dev/posts/have-you-ever-broken-theming-by-choosing-zstack-over-background--ey8jwiyir
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Have you ever broken theming by choosing ZStack over .background? | daily.dev
og:description: Using ZStack as a structural wrapper for theme colors in SwiftUI can cause performance issues with dynamic theme switching. When themes are applied at the...
og:url: https://daily.dev/posts/have-you-ever-broken-theming-by-choosing-zstack-over-background--ey8jwiyir
og:image: https://api.daily.dev/og/posts/ey8jwiYir.png
og:image:alt: Have you ever broken theming by choosing ZStack over .background?
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Have you ever broken theming by choosing ZStack over .background?

**[Rebeloper](https://daily.dev/sources/rebeloper)** · 1 min read · 0 upvotes · 0 comments

## Summary

Using ZStack as a structural wrapper for theme colors in SwiftUI can cause performance issues with dynamic theme switching. When themes are applied at the container level, it forces full view rebuilds on environment changes. Moving theme application to view modifiers like .background instead of ZStack containers scopes the changes tighter and makes theme transitions smoother by reducing rebuild surfaces.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.youtube.com/watch?v=GThPOQkX07w>

---

Tags: [#performance](https://daily.dev/tags/performance), [#ios](https://daily.dev/tags/ios), [#swiftui](https://daily.dev/tags/swiftui)

[View this post on daily.dev](https://daily.dev/posts/have-you-ever-broken-theming-by-choosing-zstack-over-background--ey8jwiyir)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Have you ever broken theming by choosing ZStack over .background?","url":"https://daily.dev/posts/have-you-ever-broken-theming-by-choosing-zstack-over-background--ey8jwiyir","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/have-you-ever-broken-theming-by-choosing-zstack-over-background--ey8jwiyir"},"datePublished":"2026-02-15T07:22:22.056Z","dateModified":"2026-02-15T07:22:39.145Z","description":"Using ZStack as a structural wrapper for theme colors in SwiftUI can cause performance issues with dynamic theme switching. When themes are applied at the...","image":"https://i.ytimg.com/vi/GThPOQkX07w/sddefault.jpg","thumbnailUrl":"https://i.ytimg.com/vi/GThPOQkX07w/sddefault.jpg","isAccessibleForFree":true,"articleSection":"Rebeloper","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Rebeloper","logo":"https://media.daily.dev/image/upload/s--W0sZL8K4--/f_auto/v1726990075/logos/rebeloper","url":"https://daily.dev/sources/rebeloper"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/have-you-ever-broken-theming-by-choosing-zstack-over-background--ey8jwiyir","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"performance,ios,swiftui","timeRequired":"PT1M","video":{"@type":"VideoObject","name":"Have you ever broken theming by choosing ZStack over .background?","description":"Using ZStack as a structural wrapper for theme colors in SwiftUI can cause performance issues with dynamic theme switching. When themes are applied at the...","thumbnailUrl":"https://i.ytimg.com/vi/GThPOQkX07w/sddefault.jpg","uploadDate":"2026-02-15T07:22:22.056Z","duration":"PT1M","url":"https://api.daily.dev/r/ey8jwiYir","embedUrl":"https://www.youtube.com/embed/GThPOQkX07w"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Rebeloper","item":"https://daily.dev/sources/rebeloper"},{"@type":"ListItem","position":3,"name":"Have you ever broken theming by choosing ZStack over .background?"}]}
```

