Explore the art and science of app design. Discuss user interface (UI) design principles, user experience (UX) best practices, and share design resources and inspiration.

All subtopics
Posts under Design topic

Post

Replies

Boosts

Views

Activity

iOS 26 Modal View Controller with Transparent Background
Prior to iOS 26, this successfully gave me a modal view with a transparent background: let settingsVC = MySettingsViewController() settingsVC.modalPresentationStyle = .automatic //settingsVC.modalPresentationStyle = .overCurrentContext self.present(settingsVC, animated: true, completion: { } MySettingsViewController: self.view.backgroundColor = UIColor(white: 0, alpha: 0.5) Now in iOS 26, modal view is presented in a opaque grey background.
Topic: Design SubTopic: General Tags:
0
0
662
Oct ’25
Custom Button Image Sizing Issue
Hello, Im new to Xcode, ive been taking some classes and watching YouTube videos as well as using AI. Im having an issue I cannot find a video on, and AI just keeps screwing up my layout and sizing. Here is the issue, I have a Custom Made Image for my Sign In button, for my log in page on Xcode. The issue being that I can barely see the button and when I go to adjust the size the whole layout gets screwed up. My Logo Image (supposed to take up the top 50% of the screen) takes over the whole Botton of the screen and I loose my username and password Text threads and images. I guess my question is, is this an issue with the size of image ive uploaded or is this an issue with my code? I changed the size of the Image I created in Canva to 900pixles for the width and 300pixals for the height and that did absolutely nothing to my image in Xcode. Below is the Button and Create Account section in my code that seems to be having issues. Ppppplease help me. var body: some View { NavigationStack(path: $navigationPath) { ZStack { // Background image Image("Background1") .resizable() .scaledToFill() .ignoresSafeArea() .clipped() // Main content ScrollView { VStack(spacing: 20) { // Logo Image("DynastyStatDropLogo") .resizable() .scaledToFit() .padding(.top, -160) .padding(.bottom, -30) // Form elements // Username field ZStack { Image("UsernameBar") .resizable() .aspectRatio(contentMode: .fill) .padding() TextField("UserName:", text: $textInput) .padding(.horizontal, 75) .background(Color.clear) .foregroundColor(.red) .focused($focus, equals: .username) .submitLabel(.next) .onSubmit { focus = .password } } .frame(height: 50) .clipShape(RoundedRectangle(cornerRadius: 10)) .padding(.horizontal) // Password field and Forgot Password link VStack(spacing: 20) { ZStack { Image("PasswordBar") .resizable() .aspectRatio(contentMode: .fill) .padding() SecureField("Password:", text: $textInput2) .padding(.horizontal, 75) .background(Color.clear) .foregroundColor(.red) .focused($focus, equals: .password) .submitLabel(.go) .onSubmit { submitForm() } } .frame(height: 50) .clipShape(RoundedRectangle(cornerRadius: 10)) .padding(.horizontal) // Forgot Password link (right-aligned) HStack { Spacer() Text("Forgot Password?") .foregroundColor(.blue) .onTapGesture { navigationPath.append("passwordRecovery") } } .padding(.horizontal, 90) } Spacer(minLength: -110) // SignIn Button - Explicitly showing it HStack { Spacer() Button { submitForm() } label: { Image("signinButton") .resizable() .frame(width: 500, height: 400) } Spacer() } Spacer(minLength: -300) // Create Account (centered) HStack { Spacer() Text("Create Account") .foregroundColor(.blue) .onTapGesture { navigationPath.append("accountCreation") } Spacer() } .padding(.bottom, -10) } } } .onAppear { focus = .username } .navigationDestination(for: String.self) { destination in switch destination { case "dashboard": DSDDashboard() case "passwordRecovery": PasswordRecoveryView() case "accountCreation": AccountCreationView() default: EmptyView() } } .alert(isPresented: $showAlert) { Alert( title: Text("Missing Information"), message: Text("Enter UserName and Password to continue to DSD"), dismissButton: .default(Text("OK")) ) } } } // Function to handle form submission func submitForm() { focus = nil if textInput.isEmpty || textInput2.isEmpty { showAlert = true } else { print("Login with username: \(textInput), password: \(textInput2)") navigationPath.append("dashboard") } } // Enum to manage focus states enum FormFieldFocus: Hashable { case username, password } }
Topic: Design SubTopic: General
1
0
105
Mar ’25
CPContactTemplate does not display buttons iOS26
I'm trying to display CPButtons (CPContactCallButton, CPContactMessageButton) in CPContactTemplate. They are displayed using device with iOS16, but with iOS26 device CPContactTemplate only displays contact image and contact name. No buttons. Is it a bug? I don't have iOS17/18 devices to try.
Topic: Design SubTopic: General Tags:
3
0
333
3w
WebView some of fonts became too small on ios 18.4 and on latest safari
Below is the sample css code where I render a web page in my webview screens fonts became too small after 18.4 and its so hard to read when I launch my app . Any workarounds to address this issue .sg-labels-canvas { font-size: 15px; display: flex; flex-direction: column; font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Roboto, sans-serif; font-style: normal; }
Topic: Design SubTopic: General
1
0
106
Apr ’25
HotKey support for sandboxed apps
App design: macos, Xcode 16.4, Sequioa 15.5, it is sandboxed Uses: Pods->HotKey for a global hotkey which xcode says "binary compatibility can't be guaranteed" This app is on the Apple Store and supposedly apps on the Apple Store can't use global hotkeys. Someone internally, installed it from the store and the global hotkey works just fine. I'm concerned for two potential problems; I need to find a hotkey library or code that is known to work with a sandbox'd Apple Store app. Why is it working now when everything I have read says it shouldn't.
0
0
155
Jun ’25
A Summary of the WWDC25 Group Lab - Design
At WWDC25 we launched a new type of Lab event for the developer community - Group Labs. A Group Lab is a panel Q&A designed for a large audience of developers. Group Labs are a unique opportunity for the community to submit questions directly to a panel of Apple engineers and designers. Here are the highlights from the WWDC25 Group Lab for Design. Can you expand on how Liquid Glass helps with navigation and focus in the UI? Liquid Glass clarifies the navigation layer by introducing a single, floating pane that acts as the primary navigation area. Buttons within this pane seamlessly morph as you move between sections, and controls can temporarily lift into the glass surface. While avoiding excessive use of glass (like layering glass on glass), this approach simplifies navigation and strengthens the connection between menus, alerts, and the elements that trigger them. What should I do with customized bars that I might have in my app? Reconsider the content and behavior of customized bars. Evaluate whether you need all the buttons and whether a menu might be a better solution. Instead of relying on background colors or styling, express hierarchy through layout and grouping. This is a good opportunity to adopt the new design language and simplify your interface. What are scroll edge effects, and what options do we have for them? Scroll edge effects enhance legibility in controls by lifting interactive elements and separating them from the background. There are two types: a soft edge effect (a subtle blur) and a hard edge effect (a more defined boundary for high-legibility areas like column sorting). Scroll edge effects are designed to work seamlessly with Liquid Glass, allowing content to feel expansive while ensuring controls and titles remain legible. How can we ensure or improve accessibility using Liquid Glass? Legibility is a priority, and refinements are ongoing throughout the betas. Liquid Glass adapts well to accessibility settings like Reduce Transparency, Increase Contrast, and Reduce Motion. There are two variants of glass: regular glass, designed to be legible by default, and clear glass, used in places like AVKit, which requires more care to ensure legibility. Use color contrast tools to ensure contrast ratios are met. The Human Interface Guidelines (HIG) are a living document offering best practices. The colors and materials pages are key resources. Do you have any recommendations for convincing designers concerned with consistency across Android and Web to use Liquid Glass? Start small and focus on high-utility controls that don't significantly impact brand experience. Native controls offer familiarity and predictability to users. Using the native controls makes sure your app feels at home on the device. Using native frameworks provides built-in accessibility support (dynamic type, reduce transparency, increase contrast). Native controls come with built-in behaviors and interactions. Can ScrollViews include Liquid Glass within them? You can technically put a glass layer inside a scroll view, but it can feel heavy and doesn't align with the system's intention for Liquid Glass to serve as a fixed layer. Think of the content layer as the scrolling layer, and the navigational layer as the one using Liquid Glass. If there is glass on the content layer it will collide into the navigational layer. What core design philosophy guided the direction of iOS 26, beyond the goal of unification? The core design philosophy involved blurring the line between hardware and software, separating UI and navigation elements from content, making apps adaptable across window sizes, and combining playfulness with sophistication. It was about making the UI feel at home on rounded screens. Can we layer Liquid Glass elements on top of each other? Avoid layering Liquid Glass elements directly on top of each other, as it creates unnecessary visual complexity. The system will automatically convert nested glass elements to a vibrant fill style. Use vibrant fills and labels to show control shapes and ensure legibility. Opaque grays should be avoided in favor of vibrant colors, which will multiply with the backgrounds correctly. What will happen to apps that use custom components? Should they be adapted to the new design within the next year? The more native components you use, the more things happen for free. Standard components will be upgraded automatically. Look out for any customizations that might clash. Think about what is the minimum viable change, where your app still feels and looks very similar to what it did. Prioritize changes in core workflows and navigational areas. There are a number of benefits to using native components including user familiarity, built-in accessibility support, and built-in behaviors and interactions. Will Apple be releasing Figma design templates? Sketch kits were published on Monday and can be referenced. The goal is to ensure the resources are well-organized, well-named, and easy to use. It's a high priority.
Topic: Design SubTopic: General
0
0
1.6k
Jun ’25
New IOS APP Help
Hello, I am looking to develop a relationship with a developer that has experience running through the IOS build approval process. To elaborate, my team and I have designed and built a software application which is working through the Apple Developer review process to have the app approved and released to the App Store. Unfortunately, there has been some challenges, simple challenges in my eyes with our interface preventing Apple from approving our application. Happy to elaborate further. A primary problem and solution I have seen is the software build was testing solely on the iPhone but as recently directed it seem the application must be accessible on iPad as well. With this the case, I have experience some software platforms where on the ipad the interface is not displayed on the whole screen. I am looking for direction on how to implement this setup for the 1st IOS build. Another concern from Apples Developer Review team is the App Tracking Transparency kit may need to be implemented.
0
0
823
Sep ’25
Complex Swift Data Relationships...
I am struggling with exactly how to set up SwiftData relationships, beyond the single relationship model... Let's say I have a school. Each school offers a set of classes. Each class is taught by one teacher and attended by several students. Teachers may teach more than one class, but only at one school. Similarly students may attend more than one class, but only at one school. Classes themselves may be offered at more than one school. Can someone create a class for School, SchoolClass, Teacher, and Student with id, name, and relationships... I have tried it unsuccessfully about 10 different ways at this point. My most recent is below... I am struggling getting beyond a school listing in the app, and I'll cross that bridge next. I am just wondering if all the trouble I am having is because I am not smart with the class definitions. And wondering if this is to complex for SwiftData and CoreData is the requirement. This is not a real app, just my way of really trying to get a handle on Swift Data models and Navigation. I am very new to Swift, and will take any and all suggestions with enthusiasm! Thanks for taking the time. import Foundation import SwiftData @Model class School: Identifiable { var id: UUID = UUID() var name: String var mascot: String var teachers: [Teacher] var schoolClasses: [SchoolClass] init (name: String, mascot: String = "", teachers: [Teacher] = [], schoolClasses: [SchoolClass] = []) { self.name = name self.mascot = mascot self.teachers = teachers } class SchoolClass: Identifiable { var id: UUID = UUID() var name: String var teacher: Teacher? var students: [Student] = [] init (name: String, teacher: Teacher? = nil, students: [Student] = []) { self.name = name self.teacher = teacher self.students = students } } class Teacher: Identifiable { var id: UUID = UUID() var name: String var tenured: Bool var school: School? var students: [Student] = [] init (name: String, tenured: Bool = false, students: [Student] = []) { self.name = name self.tenured = tenured self.students = students } } class Student: Identifiable { var id: UUID = UUID() var name: String var grade: Int? var teacher: Teacher? init (name: String, grade: Int? = nil, teacher: Teacher? = nil) { self.name = name self.grade = grade self.teacher = teacher } } }
Topic: Design SubTopic: General Tags:
6
0
786
Jul ’25
How to make web shortcut icons mode-adaptive like native app icons?
Hello everyone, I'm very impressed with the Liquid Glass design introduced in iOS 26, especially how native app icons automatically adapt to the system's display mode (dark or light). This brings me to a question: Is it possible to make a website shortcut icon created via Safari's "Add to Home Screen" feature adapt to Dark Mode in the same way? For native apps, we can use tools like Icon Composer and asset catalogs (Assets.xcassets) to provide different icons for each mode. It would be a huge improvement for web clips if we could achieve the same with existing web technologies like apple-touch-icon or the Web App Manifest. If anyone has figured out a way to do this, I would greatly appreciate it if you could share your knowledge. Thanks in advance! 日本語の原文: iOS 26から導入されたLiquid Glassデザインについて。 ネイティブアプリのアイコンがシステムの表示モード(ダークモード/ライトモード)に合わせて自動で最適化されるようになりました。 そこで疑問に思ったのですが、Safariから「ホーム画面に追加」機能を使って作成するWebサイトのショートカットアイコンは、ネイティブアプリと同じようにダークモードに対応できないのでしょうか? ネイティブアプリの場合は、Icon Composerなどのツールでアセットカタログ(Assets.xcassets)を使い、モードごとのアイコンを用意できますよね。 Web側でも、apple-touch-iconやWeb App Manifestといった既存の仕組みを使って、アイコンを動的に切り替えられるようになると、Webクリップの使い勝手がさらに向上すると思うのですが もし、すでに何らかの方法で対応されている方がいらっしゃれば、ぜひその知見を共有していただけると嬉しいです。
0
0
625
Sep ’25
Design Challenges with persistent toast message
I have an ongoing activity in progress. Think of: a delivery in progress house internet reboot in progress some water / electricity / internet / tv outage. (food) order processing I want to show a persistent toast message above the tab bar, across all tabs and screens across the app. It could take 15 minutes until the activity is finished. Obviously there's a challenge of: accessibility content overlaying with each other extra engineering effort. What we've thought of doing is: Option1: show a toast message, but when a modal is presented then it presents on top of the toast message. The toast message no longer updates itself. Once the modal is finished, then the toast message re-appears and continues to update. Option2: keep the toast message across all tabs and modals and work through the challenges mentioned Question: What are some other design approaches that could be taken to persist an ongoing activity (much like 'Live Activity', but just across the app when it's in foreground) or what are some design reasons that the two options considered are bad?
0
0
213
May ’25
Macos26 Tahoé is Hell with "Relocated Items"
I just discover that feature (a folder lost in the middle of others desktop folder ). so with each updates: -/usr/local is emptied -somes apps in the Application folder, are deleted, even paid apps .. -i lost : Docker, python 3.13, latexlive2025, Apache NetBeans, java install, Affinity Publisher 2, all my 3D slicers ... github desktop, Epic Games Launcher, ........ 296go of apps Franckly : c'est la merde !!! I am using a MacBook Pro 16" 2019 any way to stop this behavior ? thank you !!!
Topic: Design SubTopic: General
0
0
680
Sep ’25
Avoid using a segmented control in a toolbar
Hi, in the Human Interface Guidelines, Apple writes: Avoid using a segmented control in a toolbar. Toolbar items act on the current screen — they don’t let people switch contexts like segmented controls do. Along with this image: Source I'm confused by this example. The screenshot seems to be showing a segmented control in a toolbar. Is this saying that the Phone app's All/Missed toggle is different from a segmented control? Under iOS 26 it seems to take a different style compared to a regular segmented control. If so, which component is used to create this filter? Could you please clarify the guidelines? Thank you.
1
0
380
Sep ’25
Sketch templates for watchOS 11 / Series 10?
Hi, I'm getting started with designing and coding a watchOS app. I wanted to use Sketch to plan the UI before I dive into coding, but it seems like the official Sketch templates on the Design Resources page only have templates for the Series 8 and SE 2 on watchOS 10. I want to use the Series 10's screen size for my layouts since it's the model I have, but I can't find a template for it. Will the official templates be updated for the new models? If not, does anyone know of a third-party template I can use? Thanks in advance!
Topic: Design SubTopic: General
0
0
102
Mar ’25
Search Function
Dear Developer, Is there a way to create a function to search with inside a text without having to be outside all of the messages? In other words, could I go into one of my contact’s texts and then search specifically inside that message as can be done on Android? This would be such an amazing function And make life so much easier. Thank you.
Topic: Design SubTopic: General
0
0
81
Apr ’25
Animating items between a VStack and a ZStack?
Hey there! I'd love to know if theres a way where you can animate items between ZStack and VStacks? Just like the native iOS notifications on the Lockscreen stack at the bottom and if tapped, they convert from a Stack to a List - I have a list with items, displayed in a VStack, and I make the list collapsable when swiping down, where the items stack behind eachother with a progresisve reduction in opacity & scale, but I havent figured out a way to animate the items between the list and the stack - where you can visually see items starting to overlap and stack ontop of eachother when collapsing the list.
0
0
150
May ’25
Effect liquid glass on app icon
Why my app icon doesn't have effect liquid glass on ios26. My team dev still not upgrade to xcode26, so I have to export icon for them. And I don't see the effect like stroke of the detail.
Topic: Design SubTopic: General
1
0
744
Oct ’25
How to get a truly clear glass effect for a circle
I'm using .glassEffect(.clear) on a transparent circle over a gradient background. While it's closer to clear than the plain glass effect, it't not really clear, like clear glass. Here is the code. Is there a glass effect that really looks like clear glass? Circle() .fill(.clear) .frame(width: 180, height: 180) .glassEffect(.clear)
Topic: Design SubTopic: General
1
0
858
Oct ’25