How friendship works
Every villager tracks a hidden pool of heart points. Talking to someone once a day adds 7 points, and a gift adds between 0 and 20 depending on how they feel about it. Hearts appear as you cross fixed thresholds: 80 points for the first heart, then 180, 280, 390, 530, 705, 900, 1125, 1450 and 1850 for the tenth.
Because the thresholds widen, the last heart costs roughly five times as much as the first. Early on, daily conversation carries you; later, only loved gifts move the needle at a useful rate.
What a gift is worth
A loved gift gives 20 heart points, a liked gift 10, and anything neutral 3. Disliked and hated gifts give nothing at all — they do not subtract points, but they waste the gift and the villager reacts badly.
On a villager's birthday any gift is worth an extra 20 points on top. A loved gift on a birthday is therefore 40 points — the single most efficient thing you can do for a relationship all year.
Dislikes are driven by tags rather than by a list. Most villagers dislike anything tagged junk, bugs or "weird", so a whole category is unsafe at once. Each villager also has exactly one specific hated gift.
Using these pages
Open a villager to see their birthday, job and complete gift lists. If instead you are holding something and want to know who wants it, use the gift finder — it works backwards, from an item to the villagers who love, like or hate it.
Gift lists are full of foraged flowers, crops and cooked dishes, so it is usually worth checking what is in season before a gifting run.