Input and Submit
Add to favorites
Prototype a Login experience with a form, error messages and a success modal
Play video

Advanced Prototyping in ProtoPie
1
Advanced Prototyping with ProtoPie
11:48
2
Quick Prototyping
11:46
3
Start Animation and Sequence
12:36
4
Drag and Release
9:38
5
Toggle with Conditions
11:48
6
Screen Transition
12:53
7
Pull to Dismiss
6:59
8
Page Scroll Position
11:57
9
Input and Submit
13:41
10
Chain and Drag 3D
7:45
11
Formula and Detect
16:37
12
Range and Card Animation
15:32
13
Variable and Detect Mouse
12:02
14
Sensors and Receive
12:47
Getting Started
We're going to start off by creating a new Pie and importing the Login Artboard from Sketch @3x.
Scroll
The first thing is to create a scroll. Create a new container and set the width as well as the height to 100%. Then put everything except for the status bar and the home indicator inside it. The container is going to be called "Scroll".
Inputs
Right now, we have bitmaps so we're going to replace those with actual Inputs. Click on Text and insert an Input. The goal is to recreate exactly the same style as in the design. Change the fill, set the opacity to 0. The same for the border. Now, change the font to SF Pro Rounded with a size of 15 and then change the color to #5C749F.
Input Placeholder
Let's change the Placeholder text, navigate to PlaceHolder in the property panel on the right side, we're going to put "Your Email". The placeholder text can have a different color, so we can either use the same color #5C749F or a different color, and it's up to you. Now, we need to align the "input" container that we just created and replace the bitmap that you can delete now.
To fix the padding, scroll down to the bottom of the property panel and uncheck Padding. We can name the input Email and duplicate this for Password. Change the placeholder to Password.
Focus In
We have to scroll the content when the keyboard is visible. Select the Email field and then add a trigger for that called Focus. Focus In means that that the Input field is being focused on, and Focus Out is when you stop focusing on it.
Select the Scroll and add a response, and then give it a value of 300 for Scroll To.
Focus Out
We can do the same for Focus Out. Select Email first, add a trigger, Focus. Create a Scroll response and set the Scroll To to 0.
Success
When we click on Log In, we want to show a success modal with a Lottie animation. The first thing is to create a Rectangle, set the width to 315 and height to 380. Center it within the screen. Then set the radius to 20 with the Fill to #FFFFFF. Add a Shadow, 15% black, 20 Y, and then 20 Blur.
Text 15 black "Congrats, you should receive an email shortly!"
Text 20 red email@gmail.com
Lottie Video
We're going to head to **LottieFiles.com** and search for Success. We'll need an account, but you can use any of these animations. We'll select one according to out needs. If you click on the triple dots above the video preview, you can see that you can export it as GIF, MP4. These formats are supported by ProtoPie, and "Lottie JSON" is what we're implementing in code in a real app. In this case, we're going to export it as MP4.
Animation
We can drag and drop the video file right inside ProtoPie and it's going to play it. Navigate to Bottom options check Play Automatically and Looping and align it to the center.
Text
We're going to add text to the modal. Select text and Move it inside the modal we created. Resize, set the text to SF Pro Rounded and center it.
You can put any text right here. Duplicate this and put an email so that we can change it and show that the email has been submitted. Now, change the text to **email@gmail.com.** Set the color to #FA5252 and font-size to 20. Also, name the layer to "Success Email", group the 4 layers as "Success" and set opacity 0% by default.
Trigger
Using trigger we're going to make it appear after the Log In button. To do that, select the Log In button. Click on Tap and select Success, set opacity to 100%.
Error Messages
It's important to include error messages in our design and prototype. To do so, select Text and place it above the "Email" input field.
Size 120x40
Change text to "Email Invalid" and center it
Set the font to SF Pro Rounded and **the **Color to White
Error Background
Set the color to #FA5252 with a radius of 5.
Conditions
To create the interaction for the error message rename text layer as "Error"
add condition for Tap and Select the "Email" field for the condition
Text of Email ≠ "NONE"
Set opacity to 100% and default opacity to 0%
We need to add another condition, copy-paste the previous and set to "is not equal to nothing" and delete this. Move the tap (rectangle) below which will make the modal appear. Reset the "Error" which will reset the error message when the Submit is successful.
Tap Background
To have a background where we can tap on and exit the success modal. Create a rectangle sized 375x812, set color to Black and opacity to 0%. Name the layer as "Background" and move it below the Bars. Add a condition and set the opacity to 50%.
Trigger
Add Tap and Reset Background, Success and Error
Now, when we click on Log In, it goes to Success. Tap the background and it resets everything.
Confirmation
To show the email that we input in the success modal as a confirmation reset the Email field.
Now select "Success Email". Add a Text condition and set the content to Formula now ****enter the following text:
Email
.text
Conclusion
We've learned a bunch of new techniques, including how to work with inputs, how to validate the email, how to scroll the content, and then we've created a nice success modal. I hope you find this useful. In the next session, we're going to learn how to chain 3D animations with a Drag trigger.
Templates and source code
Download source files
Download the videos and assets to refer and learn offline without interuption.
Design template
Source code for all sections
Video files, ePub and subtitles
Videos
ePub
Assets
Subtitles
1
Advanced Prototyping with ProtoPie
Create high-fidelity prototypes with variables, formula, conditions and sensors
11:48
2
Quick Prototyping
Learn the basics of ProtoPie and create a prototype for your entire app in minutes
11:46
3
Start Animation and Sequence
Learn how to use the Start trigger, animation responses and timing
12:36
4
Drag and Release
Use Drag, Touch Up and Touch Down to create gestures with cards
9:38
5
Toggle with Conditions
Create multiple animation states and toggle back and forth between them
11:48
6
Screen Transition
Create a custom transition between screens and that jumps to another scene
12:53
7
Pull to Dismiss
Create a dismiss interaction that transitions back to a previous screen
6:59
8
Page Scroll Position
Prototype an onboarding experience with 3 screens and use the scroll position to set the page indicator
11:57
9
Input and Submit
Prototype a Login experience with a form, error messages and a success modal
13:41
10
Chain and Drag 3D
Use the drag position to move and animate with perspective
7:45
11
Formula and Detect
Use object properties, functions and type conversions to power your prototype
16:37
12
Range and Card Animation
Detect a range of values to trigger a response and create screen transitions
15:32
13
Variable and Detect Mouse
Store dynamic values from your mouse and create a parallax effect
12:02
14
Sensors and Receive
Use Tilt to detect the angle on your device and Send & Receive values
12:47
Meet the instructor
We all try to be consistent with our way of teaching step-by-step, providing source files and prioritizing design in our courses.
Meng To
I design, code and write
Meng To is the author of Design+Code. Meng started off his career as a self-taught designer from Montreal and eventually traveled around the world for 2 years as his US VISA was denied. During his travels, he wrote a book which now has 35,000 readers.
39 courses - 184 hours

Build SwiftUI apps for iOS 18 with Cursor and Xcode
In this course, we'll explore the exciting new features of SwiftUI 6 and Xcode 16 for building iOS 18 apps. From mesh gradients and text animations to ripple effects, you'll learn how to create polished, highly custom apps using the latest workflows. We'll also dive into using Cursor and Claude AI for AI-driven coding, helping you start strong and customize your apps.
5 hrs

Create your Dream Apps with Cursor and Claude AI
Learn to build your dream web apps from the ground up using Cursor, Claude AI, and a suite of powerful AI tools. This course covers everything you need, including React for frontend development, Firebase for backend integration, and Stripe for handling payments. You’ll also dive into advanced AI tools like Claude Artifacts, Galileo AI, v0.dev for UI, Ideogram for design generation, and Cursor Composer for full-scale development.
6 hrs

Build a React Site from Figma to Codux
In this course, you'll learn to build a website from scratch using Codux, starting with a Figma template. You’ll master responsive design, collaborate with developers on a real React project, export CSS from Figma using Locofy, set up breakpoints with media queries, add CSS animations, improve SEO, create multiple pages with React Router, and publish your site. By following best practices, you’ll bridge design and development, improve your web design skills.
2 hrs

Create 3D UI for iOS and visionOS in Spline
Comprehensive 3D Design Course: From Basics to Advanced Techniques for iOS and visionOS using SwiftUI
3 hrs

Master No-Code Web Design with Framer
In this free Framer course, you'll learn to create modern, user-friendly interfaces. Start with dark mode and glass designs, then move from Figma to Framer, using vectors and auto layout for responsive websites. Add animations, interactive buttons, and custom components with code. Finally, you'll craft a design system suitable for teamwork or solo projects, all in a straightforward and practical approach.
4 hrs

Build SwiftUI Apps for iOS 17
In this course, we’ll be exploring the fresh and exciting features of SwiftUI 5! As we craft a variety of iOS apps from the ground up, we'll delve deep into the treasure trove that is SwiftUI's user interface, interactions, and animations.
4 hrs

Build Beautiful Apps with GPT-4 and Midjourney
Design and develop apps using GPT-4 and Midjourney with prompts for SwiftUI, React, CSS, app concepts, icons, and copywriting
4 hrs

Build SwiftUI apps for iOS 16
Create animated and interactive apps using new iOS 16 techniques using SwiftUI 4 and Xcode 14
5 hrs

Build a 3D Site Without Code with Framer
Design and publish a responsive site with 3D animation without writing a single line of code
3 hrs

Create 3D Site with Spline and React
Design and code a landing page with an interactive 3D asset using Spline and CodeSandbox
1 hrs

Build an Animated App with Rive and SwiftUI
Design and code an iOS app with Rive animated assets, icon animations, custom layouts and interactions
3 hrs

Build a SwiftUI app for iOS 15 Part 3
Design and code a SwiftUI 3 app with custom layouts, animations and gestures using Xcode 13, SF Symbols 3, Canvas, Concurrency, Searchable and a whole lot more
4 hrs

Build a SwiftUI app for iOS 15 Part 2
Design and code a SwiftUI 3 app with custom layouts, animations and gestures using Xcode 13, SF Symbols 3, Canvas, Concurrency, Searchable and a whole lot more
3 hrs

Build a SwiftUI app for iOS 15
Design and code a SwiftUI 3 app with custom layouts, animations and gestures using Xcode 13, SF Symbols 3, Canvas, Concurrency, Searchable and a whole lot more
4 hrs

React Livestreams
Learn how we can use React Hooks to build web apps using libraries, tools, apis and frameworks
4 hrs

Design Founder Livestreams
A journey on how we built DesignCode covering product design, management, analytics, revenue and a good dose of learning from our successes and failures
2 hrs

SwiftUI Advanced Handbook
An extensive series of tutorials covering advanced topics related to SwiftUI, with a main focus on backend and logic to take your SwiftUI skills to the next level
4 hrs

iOS Design Handbook
A complete guide to designing for iOS 14 with videos, examples and design files
2 hrs

SwiftUI Handbook
A comprehensive series of tutorials covering Xcode, SwiftUI and all the layout and development techniques
7 hrs

Build a web app with React Hooks
Learn how we built the new Design+Code site with React Hooks using Gatsby, Netlify, and advanced CSS techniques with Styled Components.
4 hrs

UI Design Handbook
A comprehensive guide to the best tips and tricks for UI design. Free tutorials for learning user interface design.
2 hrs

Figma Handbook
A comprehensive guide to the best tips and tricks in Figma
6 hrs

SwiftUI for iOS 14
Build a multi-platform app from scratch using the new techniques in iOS 14. We'll use the Sidebar and Lazy Grids to make the layout adaptive for iOS, iPadOS, macOS Big Sur and we'll learn the new Matched Geometry Effect to create beautiful transitions between screens without the complexity. This course is beginner-friendly and is taught step-by-step in a video format.
3 hrs

SwiftUI Livestreams
This is a compilation of the SwiftUI live streams hosted by Meng. Over there he talks and teaches how to use design systems, typography, navigation, iOS 14 Design, prototyping, animation and Developer Handoff.
19 hrs

UI Design Livestreams
This is a compilation of the UI live streams hosted by Meng. Over there he talks and teaches how to use design systems, typography, navigation, iOS 14 Design, prototyping, animation and Developer Handoff.
26 hrs

UI Design for Developers
In this course we'll learn how to use design systems, set up break points, typography, spacing, navigation, size rules for adapting to the iPad, mobile and web versions, and different techniques that translate well from design to code.
3 hrs

Build an app with SwiftUI Part 3
This course was written for designers and developers who are passionate about design and about building real apps for iOS, iPadOS, macOS, tvOS and watchOS. SwiftUI works across all of those platforms. While the code is not a one-size-fits-all, the controls and techniques involved can apply to all platforms. It is beginner-friendly, but it is also packed with design tricks and cool workflows about building the best UIs and interactions.
4 hrs

Build an app with SwiftUI Part 2
This course was written for designers and developers who are passionate about design and about building real apps for iOS, iPadOS, macOS, tvOS and watchOS. SwiftUI works across all of those platforms. While the code is not a one-size-fits-all, the controls and techniques involved can apply to all platforms. It is beginner-friendly, but it is also packed with design tricks and cool workflows about building the best UIs and interactions.
4 hrs

Build a full site in Webflow
Webflow is a design tool that can build production-ready experiences without code. You can implement CSS-driven adaptive layouts, build complex interactions and deploy all in one tool. Webflow also comes with a built-in content management system (CMS) and Ecommerce for creating a purchase experience without the need of third-party tools.
3 hrs

Advanced Prototyping in ProtoPie
ProtoPie is a cross-platform prototyping tool that creates prototypes nearly as powerful as those made with code, with half of the efforts, and zero code. It's perfect for designers who want to quickly experiment with advanced interactions using variables, conditions, sensors and more.
3 hrs

Build an app with SwiftUI Part 1
This course was written for designers and developers who are passionate about design and about building real apps for iOS, iPadOS, macOS, tvOS and watchOS. SwiftUI works across all of those platforms. While the code is not a one-size-fits-all, the controls and techniques involved can apply to all platforms. It is beginner-friendly, but it is also packed with design tricks and cool workflows about building the best UIs and interactions.
4 hrs

React Native for Designers Part 2
React Native is a popular Javascript framework that builds on top of React by using native components to create a real mobile app indistinguishable from one made using Xcode or Android Studio. The main difference with native development is that you get to use CSS, hot-reload, Javascript and other familiar techniques that the Web has grown over the past decades. Most importantly, you're building for both iOS and Android using the same codebase.
3 hrs

React Native for Designers
React Native is a popular Javascript framework that builds on top of React by using native components to create a real mobile app indistinguishable from one made using Xcode or Android Studio. The main difference with native development is that you get to use CSS, hot-reload, Javascript and other familiar techniques that the Web has grown over the past decades. Most importantly, you're building for both iOS and Android using the same codebase.
5 hrs

Design System in Figma
Learn how to use and design a collaborative and powerful design system in Figma. Design Systems provide a shared library of reusable components and guidelines and that will let you build products much faster
3 hrs

React for Designers
Learn how to build a modern site using React and the most efficient libraries to get your site/product online. Get familiar with Grid CSS, animations, interactions, dynamic data with Contentful and deploying your site with Netlify.
3 hrs

Swift Advanced
Learn Swift a robust and intuitive programming language created by Apple for building apps for iOS, Mac, Apple TV and Apple Watch
9 hrs

Learn Swift
Learn Swift a robust and intuitive programming language created by Apple for building apps for iOS, Mac, Apple TV and Apple Watch
4 hrs

Learn Sketch
Learn Sketch a design tool entirely vector-based and focused on user interface design
5 hrs

Learn iOS 11 Design
Learn colors, typography and layout for iOS 8
1 hrs