In this tutorial, I'm going to show you how to create an Elementor Pro form with large icons checkboxes and radios, as well as a step reveal animation.
Here is what we will be creating. You will also find the template file in your download zip bundle that came with the course.
Features:
- Attractive: Woah your visitors and clients with a great looking form
- CSS only: No extra plugins needed! Just Elementor Pro, to have the form element
- Customizable: Make it your own by swapping to your icons and design
- Responsive: Works and looks great on smartphones as well
Let's get started!
Get the full CSS course now to unlock this chapter, and 50+ others.
2 Responses
Hi, love this! I just have one issue. I'm left with a lot of blank space at the bottom of the form if the user doesn't click an option. Any way to fix this?
Greetings Alistair!
Replace this CSS:
#fancyForm .elementor-field-group:nth-child(1):has(input) ~ .elementor-field-group { opacity:0; pointer-events:none; transform: translateY(20px); display: none; transition: opacity 0.6s, transform 0.6s; } #fancyForm .elementor-field-group:nth-child(1):has(input:checked) + .elementor-field-group { opacity:1; transform:translateY(0); pointer-events:all; display: flex; } #fancyForm .elementor-field-group:nth-child(2):has(input:checked), #fancyForm .elementor-field-group:nth-child(2):has(input:checked) ~ .elementor-field-group { opacity:1; transform:translateY(0); pointer-events:all; }With this:
#fancyForm .elementor-field-group:nth-child(1):has(input)~.elementor-field-group { display: none; } #fancyForm .elementor-field-group:nth-child(1):has(input:checked)+.elementor-field-group { display: flex; animation: formFieldReveal 0.6s ease-in-out; } #fancyForm .elementor-field-group:nth-child(2):has(input:checked), #fancyForm .elementor-field-group:nth-child(2):has(input:checked)~.elementor-field-group { display: flex; animation: formFieldReveal 0.6s ease-in-out; } @keyframes formFieldReveal { 0% { opacity: 0; transform: translateY(20px); } 100% { opacity: 1; transform: translateY(0); } }Having an animation instead of a transition allows us to animate elements that go from display:none to display:flex. However as you will see, in that case, they won't animate in reverse (when going from display:flex to display:none).
Still that should be a satisfactory solution!
Cheers!