Transferring and gifting .eth names is currently quite a complex process. The ENS team is well aware of this inconvenience and is working on implementing a redesign to simplify it
For context, the registrant is known as the owner of the ENS domain and also has the ability to change the controller. The controller is the admin of the records belonging to the ENS name. The controller does not own the name. They can only update the records.
If you do not want to wait until the redesign to gift an ENS domain, follow these steps after registering the name on app.ens.domains :
Step 1: update the ETH address to their address (and any other records if you’d like such as avatar, links, etc. in one go to save gas)
Step 2: set the controller to their address
Step 3: transfer the registrant to their address
If the receiver would like the domain set as their Primary Name, they will have to pay the gas themselves. That’s something you cannot do for them unfortunately. If you only change the registrant, the records currently in place will continue to be yours. Although the recipient can update the records, they'll have to pay the gas fee to do so.
It is best to follow these three steps when gifting in order to have the name completely set up for the person receiving the domain. Note that you will have to pay for gas three separate times since you are initiating three changes. Make sure you have enough ether in your wallet to cover the fees! Happy gifting :)