

Usually this means atoms like fluorine, oxygen, and nitrogen, but this can also include atoms like carbon, chlorine, and sulfur. You also want these electronegative atoms to be small the that donor and acceptor can approach each other more closely adding to the strength of the hydrogen bond. Well for hydrogen bonding to occur you want the hydrogen atom bonded to an electronegative atom (acting as the hydrogen bond donor) interacting with another electronegative atom (acting as the hydrogen bond acceptor). So fundamentally it's the same interaction which occurs in dipole-dipole, but because of the atom's sizes this attraction is enhanced and is stronger than other conventional dipole-dipole interactions. Third, since these atoms all quite small, the hydrogen atom on one molecule can approach the small electronegative atom (again N, O, and F) on another molecule very closely. Second the electronegativity difference between hydrogen and small electronegative atoms is large enough to be considered polar covalent, but not so much that it becomes ionic.

First, it's simply a commonplace element in many crucial molecules like water. The reason we focus on hydrogen specifically is a result of several reasons. So we'll start having ionic interactions instead of dipole-dipole interactions which includes hydrogen bonding. And so pairing them with the electronegative atoms commonly associated with hydrogen bonding (nitrogen, oxygen, and fluorine) will have a large enough electronegativity difference that their bonding is no longer considered polar covalent, but rather ionic. Well atoms like cesium or francium have very small electronegativity values.
