Chemical Bonding

Orbitals from two or more atoms overlap and the electrons rearrange to minimize energy. Everything else — shape, polarity, boiling point, drug binding, the shape of water — is bookkeeping on that single idea.

Prereq: atomic structure, a touch of quantum mechanics Read time: ~35 min Interactive figures: 1 Code: NumPy / Plain Python

1. Why bonding matters

Atoms by themselves do almost nothing interesting. It's when they bond that chemistry begins. A bond is the energetically favorable sharing or transfer of electrons between two nuclei — it exists because the combined system (two nuclei plus the shared electrons) sits at a lower total energy than the two isolated atoms.

That's the whole story, physically. Everything else in this page is a practical consequence: which electrons get shared, what shape they prefer, how unequal the sharing is, how strong the resulting bond is, and how the molecules then interact with each other.

Why should you care?

THE PUNCHLINE

Every bond is atoms lowering their energy by sharing or transferring electrons. The three flavors — ionic, covalent, metallic — are three ways to do that, and most real bonds are a blend. Once you know the blend, you can predict shape (VSEPR), strength (bond enthalpy), polarity (electronegativity), and how the molecule will interact with its neighbors (intermolecular forces).

2. Vocabulary cheat sheet

SymbolRead asMeans
$\chi$"chi" (electronegativity)Pauling-scale measure of how strongly an atom pulls shared bonding electrons. F is 3.98, Cs is 0.79.
$\Delta\chi$"delta chi"Electronegativity difference between two bonded atoms. Rough rule: $< 0.4$ covalent, $0.4$–$1.7$ polar, $> 1.7$ ionic.
$\mu$"mu" (dipole moment)A vector measuring charge separation in a polar bond or molecule, in debyes (D). $1\ \text{D} \approx 3.336\times 10^{-30}$ C·m.
$D_e$"bond dissociation energy"Energy needed to break a bond homolytically (each atom keeps one electron). Reported in kJ/mol.
$r_e$"equilibrium bond length"Distance between nuclei at the energy minimum of the two-atom potential.
$\sigma, \pi$"sigma, pi"Two kinds of bond by symmetry. $\sigma$ is cylindrically symmetric along the bond axis; $\pi$ has a nodal plane through the axis.
$sp^n$"s-p-n hybrid"Mixed orbital formed from one $s$ and $n$ $p$ orbitals. $sp$ gives linear, $sp^2$ trigonal planar, $sp^3$ tetrahedral.
FC"formal charge"Bookkeeping charge assigned to each atom in a Lewis structure to pick the best resonance form.
IMF"intermolecular force"Forces between whole molecules, not inside them. Much weaker than real bonds but dominant for phase behavior.

3. The three kinds of bond

Historically, chemists carved bonding into three pictures. They are caricatures — real bonds almost always blend them — but each one is clean enough to reason with.

Ionic

One atom is much more electronegative than the other. The less electronegative atom hands its valence electron(s) over and becomes a cation. The more electronegative atom keeps them and becomes an anion. The two resulting ions then hold together by plain Coulomb attraction. Sodium chloride is the textbook case: Na (Pauling 0.93) gives its $3s^1$ electron to Cl (3.16), becoming Na$^+$ and Cl$^-$, and the two ions stack into a rock-salt crystal.

The energy of an ion pair at distance $r$ is well approximated by the Coulomb law:

$$U(r) = -\frac{1}{4\pi\epsilon_0}\frac{q_1 q_2}{r} + \frac{B}{r^n}.$$

Ion-pair potential

$U(r)$
Total potential energy of the two ions as a function of separation $r$.
$q_1, q_2$
The ionic charges (e.g. $+e$ and $-e$ for Na$^+$ Cl$^-$).
$\epsilon_0$
Vacuum permittivity, $8.854\times 10^{-12}$ F/m. Universal constant.
$-q_1 q_2/(4\pi\epsilon_0 r)$
The attractive Coulomb energy — negative because opposite charges pull in.
$B/r^n$
A short-range repulsion (Born repulsion). Electron clouds overlap at small $r$ and Pauli repulsion kicks in; $n \approx 8$–$12$ works empirically.

Why it matters. The minimum of $U(r)$ sits at the equilibrium bond length $r_e$ and its depth is roughly the bond enthalpy. For NaCl, $r_e \approx 236$ pm and the lattice energy is about 787 kJ/mol — which is a lot, and is why salt doesn't spontaneously fall apart at room temperature.

In a crystal, you don't just have one ion pair — you have a whole lattice. The total Coulomb energy per ion depends on the geometry through a dimensionless factor called the Madelung constant, typically $1.6$–$1.8$ for common ionic solids. The electromagnetism page covers the derivation.

Covalent

Two atoms of similar electronegativity share one or more pairs of electrons. The shared pair sits in a bonding molecular orbital, a new orbital formed by constructive interference between the two atomic orbitals. The competing antibonding combination sits at higher energy and stays empty in stable molecules.

For two hydrogen atoms forming H$_2$, the simplest MO picture writes the two-atom orbital as a linear combination of the individual $1s$ orbitals:

$$\psi_{\pm} = \frac{1}{\sqrt{2(1 \pm S)}}\left(\phi_A \pm \phi_B\right).$$

LCAO for H$_2$

$\phi_A, \phi_B$
The $1s$ atomic orbitals on each hydrogen.
$\psi_+$
The bonding combination — constructive interference between the two wavefunctions, maximum density between the nuclei.
$\psi_-$
The antibonding combination — destructive interference with a node between the nuclei, density pushed to the outside.
$S$
The overlap integral $S = \int \phi_A \phi_B \,dV$, a dimensionless number between 0 and 1 that measures how much the two atomic orbitals overlap.
$1/\sqrt{2(1\pm S)}$
Normalization — keeps the total probability equal to 1.

Analogy. Two waves in the same pool. When crests line up (constructive), the water piles up — that's the bonding orbital, and the extra density between the nuclei is what glues them together. When crest meets trough (destructive), you get a flat spot between the nuclei and the two atoms are pushed apart — that's antibonding.

For H$_2$, both electrons pair up in $\psi_+$ (spins opposite, Pauli-allowed) and the molecule is stable at $r_e = 74$ pm with a bond energy of $436$ kJ/mol. That's the smallest covalent-bond calculation you can do, and it already captures the key ideas: bonding orbitals lower the electrons' energy, antibonding raise it, and the bond order is $(n_{\text{bonding}} - n_{\text{antibonding}})/2$.

Metallic

In a metal, many atoms contribute their valence electrons to a common pool — a sea of electrons that belongs to the whole crystal rather than to any individual bond. The positive ion cores sit at regular lattice sites, and the delocalized electrons fill a continuous set of bands up to the Fermi level.

That picture explains metallic properties in one sentence each:

THE REAL WORLD IS A BLEND

Pure ionic and pure covalent almost never happen. NaCl is $\approx 90\%$ ionic by any reasonable scale, not 100\%. HCl is $\approx 20\%$ ionic. C-O is polar covalent. C-C is essentially pure covalent. What you want from this taxonomy is the dominant flavor, which tells you what the structure, reactivity, and solubility will look like. The quantum chemistry page does the full calculation.

4. Lewis structures and formal charge

A Lewis structure is a back-of-envelope diagram of where the valence electrons live: which pairs are bonding, which are lone pairs, and which atoms are connected. It's 100 years old, coarse, and still the fastest way to predict the geometry and reactivity of a molecule you haven't seen before.

The recipe, which works for most small molecules:

  1. Count valence electrons. Add up group numbers for each atom, subtract for positive charge, add for negative charge.
  2. Pick a skeleton. Usually the least electronegative atom (not H) goes in the center.
  3. Put single bonds between the central atom and each terminal atom.
  4. Distribute the remaining electrons as lone pairs, starting with the most electronegative terminals, until each has an octet (H gets 2).
  5. If the central atom is short, form double or triple bonds by moving a terminal lone pair into the bond.
  6. Check formal charges. If needed, reshape to minimize them.

The formal charge on an atom in a Lewis structure is

$$\text{FC} = V - L - \tfrac{1}{2} B.$$

Formal charge

$\text{FC}$
Formal charge on the atom. Zero is ideal; $\pm 1$ is fine; $\pm 2$ or worse signals a bad Lewis structure.
$V$
Valence electrons the neutral free atom would have (group number for main group).
$L$
Number of non-bonding (lone-pair) electrons on the atom in the structure.
$B$
Number of bonding electrons the atom shares (each single bond contributes 2, double bond 4, triple bond 6).
$\tfrac{1}{2} B$
Each shared pair is split 50/50 for counting, unlike oxidation state.

Rule of thumb. Among candidate structures, pick the one with formal charges closest to zero and — if some are nonzero — the most negative formal charge on the most electronegative atom. That rule alone resolves most of the tricky cases you'll meet.

Worked example: CO$_2$

Carbon dioxide has $4 + 2(6) = 16$ valence electrons. Carbon goes in the middle. With two double bonds (O=C=O), the structure uses all 16 electrons: four shared in each double bond (8 total), plus two lone pairs on each oxygen (8 total).

Check formal charges:

All zeros — this is the right Lewis structure. Alternatives like O-C$\equiv$O (single and triple) give nonzero formal charges and are worse.

Resonance

Sometimes no single Lewis structure fits. Ozone (O$_3$), for example, has two equivalent structures with the double bond on either side. The real molecule is neither — it is a superposition (resonance hybrid) in which both O-O bonds have identical length and strength, intermediate between a single and double bond. You draw both structures with a double-headed arrow between them and understand that the truth is the average.

Resonance is not "the molecule flickers between these forms." It means the wavefunction is not well-described by any one of them and the best single-reference description is the linear combination. Same idea as the bonding MO for H$_2$, scaled up to multi-site delocalization.

5. VSEPR geometry

Once you have a Lewis structure, the shape of the molecule follows from one principle: electron pairs around a central atom repel each other and arrange themselves as far apart as possible. That's the valence shell electron pair repulsion (VSEPR) model. It's not a physical law, but it's a startlingly accurate pattern-match for most main-group compounds.

Count the "electron domains" on the central atom — each bond (single, double, or triple counts as one domain) and each lone pair — then look up the geometry:

DomainsShapeAngleExample
2Linear180°CO$_2$, BeCl$_2$
3Trigonal planar120°BF$_3$, SO$_3$
3 (1 lone)Bent$\approx 118°$SO$_2$, O$_3$
4Tetrahedral109.5°CH$_4$, NH$_4^+$
4 (1 lone)Trigonal pyramidal$\approx 107°$NH$_3$
4 (2 lone)Bent$\approx 104.5°$H$_2$O
5Trigonal bipyramidal90°/120°PCl$_5$
6Octahedral90°SF$_6$

Two refinements that come up constantly:

VSEPR predicts shape but not bond angles to better than a degree or two. For quantitative work you need an actual electronic-structure calculation; see quantum chemistry.

6. Interactive: molecular shape explorer

Pick a molecule and the figure below draws its VSEPR geometry with the central atom at the origin. Bonds are drawn as lines; lone pairs as small pink clouds. The numbers show the approximate angle between neighboring bonds. Hover the control to see what VSEPR predicts vs. what experiment measures.

Molecule: CH₄

Central atom in cyan, bonded atoms in white, lone pairs in pink. Angles shown next to bonds are the standard VSEPR values, adjusted for lone-pair repulsion where applicable.

7. Hybridization and sigma/pi bonds

Pure atomic orbitals almost never explain molecular geometry directly. Carbon's ground state is $1s^2\,2s^2\,2p^2$ — two unpaired $p$ electrons — but methane has four equivalent C-H bonds at the tetrahedral angle. That's not what two $p$ electrons should give you.

The fix is hybridization: mix the $2s$ and the three $2p$ orbitals on the carbon to make four equivalent $sp^3$ hybrid orbitals, each one a blend pointing at a tetrahedral corner. Then each hybrid overlaps with an H $1s$ to form a C-H bond. You get four equivalent bonds at 109.5° — exactly what methane has.

The three common hybridizations for main-group atoms:

When a hybrid orbital on atom $A$ points at and overlaps a hybrid on atom $B$, the bond is cylindrically symmetric around the line joining the nuclei. That's a $\sigma$ bond. It's the strong, "head-on" kind of overlap and you find one in every chemical bond.

When an unhybridized $p$ orbital on atom $A$ overlaps sideways with a $p$ orbital on atom $B$, the result has a nodal plane containing the bond axis. That's a $\pi$ bond. It's weaker than $\sigma$ because the overlap is smaller, and it locks the molecule against twisting around the $\sigma$ axis.

BOND INVENTORY

Single bond = one $\sigma$. Double bond = one $\sigma$ + one $\pi$. Triple bond = one $\sigma$ + two $\pi$. A C=C bond is not twice as strong as a C-C bond (you'd expect $\approx 700$ kJ/mol); it's about $614$ kJ/mol vs. $348$, because the $\pi$ contribution is smaller than the $\sigma$. This same inventory explains why benzene is flat (every carbon is $sp^2$, the six $\pi$ electrons delocalize over the ring) and why rotating around a C=C bond costs real energy (you'd have to break the $\pi$).

Hybridization vs. domain count

Quick map from VSEPR domains to hybridization:

8. Bond polarity and dipole moments

If the two atoms in a bond have different electronegativities, the shared electrons spend more time near the more electronegative one. That atom picks up a partial negative charge ($\delta^-$) and the other picks up a partial positive charge ($\delta^+$). The bond is polar covalent, and the separation of charge over the bond length creates a dipole moment.

$$\vec\mu = q\, \vec r.$$

Bond dipole moment

$\vec\mu$
The dipole moment vector, pointing from the partial-positive end to the partial-negative end. Units: debyes (D), $1$ D $\approx 3.336\times 10^{-30}$ C·m.
$q$
Magnitude of the partial charge on each atom (a small fraction of $e$).
$\vec r$
The vector from positive to negative end. Its length is the bond length.

Convention wars. Physicists often take $\vec\mu$ from $-$ to $+$; chemists almost always take it from $+$ to $-$. Both give the same magnitude; signs differ. This page uses the chemistry convention.

For a polyatomic molecule, the total dipole moment is the vector sum of the individual bond dipoles. This is where geometry matters:

Worked example: the polarity of HCl

HCl has a bond length of $127.5$ pm and an experimental dipole moment of $1.08$ D. What fraction of an elementary charge is transferred?

  1. $1.08$ D $= 1.08 \times 3.336\times 10^{-30}$ C·m $= 3.60\times 10^{-30}$ C·m.
  2. $q = \mu / r = 3.60\times 10^{-30} / 1.275\times 10^{-10} = 2.83\times 10^{-20}$ C.
  3. In units of $e$: $q/e = 2.83\times 10^{-20} / 1.602\times 10^{-19} \approx 0.177$.

So about 18% of a full charge is transferred — the bond is 18% ionic, 82% covalent in character. That single-digit percentage is the full story behind "polar covalent" and maps cleanly onto the Pauling $\Delta\chi = 3.16 - 2.20 = 0.96$ rule of thumb.

9. Intermolecular forces

So far everything has been about what holds a single molecule together. Equally important: what holds a collection of molecules together. These are called intermolecular forces (IMFs), and they set the phase behavior of matter — whether something is a gas, liquid, or solid at a given temperature.

IMFs are a whole order of magnitude weaker than real bonds (think $1$–$40$ kJ/mol, compared to $200$–$1000$ for a covalent bond), but they're what makes water boil at 100°C instead of $-80$, what makes oil refuse to mix with water, and what makes a drug lodge in its target protein. In order of increasing strength:

London dispersion (van der Waals)

Every atom, even a noble gas, has an electron cloud that instantaneously fluctuates. Those instantaneous fluctuations induce correlated fluctuations in a nearby atom, and the two transient dipoles attract each other. The energy of this dispersion attraction falls off as $1/r^6$:

$$U_{\text{disp}}(r) = -\frac{C_6}{r^6}.$$

London dispersion energy

$U_\text{disp}$
Attractive energy between two neutral, non-polar particles separated by distance $r$.
$C_6$
A positive constant depending on the polarizability of each particle. Bigger atoms with more electrons have larger $C_6$, meaning stronger dispersion.
$r^{-6}$
Very short range — doubling the distance drops the energy by a factor of 64. Only nearest neighbors matter.

Why it matters. Dispersion is why liquid nitrogen exists at all, why geckos stick to walls (billions of tiny contacts), and why long alkanes boil at higher temperatures than short ones. Pentane is a liquid; methane is a gas; the only difference is more dispersion contacts in the bigger molecule.

Dipole-dipole

Two polar molecules orient their $\delta^+$ and $\delta^-$ ends toward each other. This dipole-dipole attraction is stronger than dispersion for molecules of similar size and falls off as $1/r^3$ between fixed dipoles. For freely rotating molecules, thermal averaging gives an effective $1/r^6$ dependence — still dispersion-like in range, but with a prefactor proportional to $\mu_1^2\mu_2^2$.

Hydrogen bonding

A special, extra-strong case of dipole-dipole. When hydrogen is bonded to a very electronegative atom (F, O, or N), the H bears a large $\delta^+$ and is small enough to get very close to the lone pairs of a neighboring F, O, or N. The result is a hydrogen bond: about $5$–$40$ kJ/mol, with a strong directionality preference (the H$\cdots$A angle likes to be near 180°).

Hydrogen bonds are why:

Ion-dipole

When an ion sits next to a polar molecule, the ion attracts the appropriately oriented end of the dipole. Ion-dipole interactions are what dissolve salt in water: each Na$^+$ gets surrounded by water molecules pointed $\delta^-$ (oxygen) end toward it; each Cl$^-$ gets surrounded by water molecules pointed $\delta^+$ (hydrogen) end toward it. That "hydration shell" is strong enough to overcome the lattice energy of NaCl, and the entropy gain of dispersing the ions seals the deal.

THE IMF HIERARCHY

Ion-ion (covalent bond $\approx$ ion-ion crystal, hundreds of kJ/mol). Then ion-dipole ($\sim 40$ kJ/mol). Then hydrogen bonds ($5$–$40$). Then dipole-dipole ($\sim 5$–$25$). Then dispersion ($0.1$–$10$, but scales with molecule size). Boiling points, melting points, solubility, viscosity, and drug binding are all determined by which of these dominate.

10. Bonding in code

Three small calculations. The first computes formal charges from a Lewis-style inventory. The second computes a total dipole moment by adding bond-dipole vectors. The third compares boiling points of a family of compounds to their dispersion-force proxy (molecular mass or polarizability).

bonding primitives
import numpy as np

# ---------- 1. Formal charge from (V, L, B) ----------
def formal_charge(valence, lone, bonding):
    # FC = V - L - B/2
    return valence - lone - bonding // 2

# CO2: central C with two double bonds, no lone pairs
#   V=4, L=0, B=8 (four pairs, each double bond = 4 shared e-)
print(f"FC(C in CO2)  = {formal_charge(4, 0, 8)}")   # 0
# Each O: V=6, L=4 (two lone pairs), B=4
print(f"FC(O in CO2)  = {formal_charge(6, 4, 4)}")   # 0

# NH4+: central N with four single bonds, no lone pairs
#   V=5, L=0, B=8
print(f"FC(N in NH4+) = {formal_charge(5, 0, 8)}")   # +1

# ---------- 2. Total molecular dipole ----------
def total_dipole(bond_vectors_A, mu_per_bond_D):
    # bond_vectors_A: (n, 3) unit vectors from central atom toward each bonded atom
    # mu_per_bond_D : scalar dipole magnitude of each bond in debyes
    v = np.asarray(bond_vectors_A, dtype=float)
    v = v / np.linalg.norm(v, axis=1, keepdims=True)
    total = (mu_per_bond_D * v).sum(axis=0)
    return np.linalg.norm(total)

# CO2: two C=O bonds pointing exactly opposite; should cancel.
co2 = [[1,0,0], [-1,0,0]]
print(f"CO2 dipole  = {total_dipole(co2, 2.3):.2f} D")   # 0.00

# H2O: two O-H bonds at 104.5 degrees
a = np.deg2rad(104.5 / 2)
oh = [[np.sin(a),  np.cos(a), 0],
      [-np.sin(a), np.cos(a), 0]]
print(f"H2O dipole  = {total_dipole(oh, 1.5):.2f} D")   # ~1.83

# ---------- 3. Boiling point vs. dispersion proxy ----------
# Noble gases: higher molar mass -> more polarizability -> higher bp
gases   = ["He", "Ne", "Ar", "Kr", "Xe"]
mmass   = [4.0, 20.2, 39.9, 83.8, 131.3]      # g/mol
bp_K    = [4.2, 27.1, 87.3, 119.8, 165.0]     # boiling point, K
# A crude log fit: bp ~ a * log(M) + b
coeffs = np.polyfit(np.log(mmass), bp_K, 1)
print(f"fit slope = {coeffs[0]:.1f} K per log(M)")
import math

# Formal charge without NumPy.
def formal_charge(V, L, B):
    return V - L - B // 2

# Ozone center O in O=O-O Lewis form: V=6, L=2, B=6 -> FC = +1
print(f"center O in O3 = {formal_charge(6, 2, 6):+d}")
# Terminal single-bonded O: V=6, L=6, B=2 -> FC = -1
print(f"term   O in O3 = {formal_charge(6, 6, 2):+d}")

# Bond angle from dot product of unit vectors
def angle_deg(u, v):
    d = sum(a * b for a, b in zip(u, v))
    return math.degrees(math.acos(max(-1.0, min(1.0, d))))

# Tetrahedral H-C-H angle from methane coordinates:
# pick two of the four corners of a cube at (1,1,1),(1,-1,-1),(-1,1,-1),(-1,-1,1)
def norm(v):
    m = math.sqrt(sum(x * x for x in v))
    return [x / m for x in v]

a = norm([ 1,  1,  1])
b = norm([ 1, -1, -1])
print(f"tetrahedral angle = {angle_deg(a, b):.2f} deg")  # 109.47

# Convert a dipole moment in debye to partial charge in units of e
def partial_charge(mu_D, bond_length_pm):
    mu_SI = mu_D * 3.336e-30               # C*m
    r_m   = bond_length_pm * 1e-12
    q_C   = mu_SI / r_m
    return q_C / 1.602e-19              # in units of e

print(f"HCl partial q = {partial_charge(1.08, 127.5):.3f} e")  # ~0.177
print(f"HF  partial q = {partial_charge(1.83, 91.7):.3f} e")   # ~0.415

Three observations:

11. Cheat sheet

Formal charge

$\text{FC} = V - L - \tfrac{1}{2} B$.

Pick the Lewis structure with FCs closest to 0.

VSEPR shapes

2→linear, 3→planar, 4→tetrahedral, 5→TBP, 6→octahedral.

Lone pairs take extra space.

Hybridization

$sp$ (linear), $sp^2$ (planar), $sp^3$ (tetrahedral).

Count domains on the central atom.

Sigma vs. pi

Single = 1$\sigma$. Double = 1$\sigma$+1$\pi$. Triple = 1$\sigma$+2$\pi$.

$\pi$ bonds lock rotation.

Polarity rule

$\Delta\chi < 0.4$: covalent. $0.4$–$1.7$: polar. $> 1.7$: ionic.

Rough and useful.

Dipole sum

Net $\vec\mu$ = vector sum of bond dipoles.

Symmetry can cancel polar bonds (CO₂, CCl₄).

IMF hierarchy

Ion-dipole > H-bond > dipole-dipole > dispersion.

Sets boiling points and solubility.

Dispersion scaling

$U \sim -C_6/r^6$; $C_6$ grows with polarizability.

Bigger atom → stronger dispersion.

H-bond donors

O-H, N-H, F-H only.

H needs a small electronegative partner.

Bond strength

Typical covalent: 150–1000 kJ/mol. IMFs: 1–40.

Two orders of magnitude separate them.

See also

Atomic Structure

The orbitals that bond to form molecules come from here. Periodic trends in electronegativity drive everything about polarity.

Thermochemistry

Bond enthalpies feed directly into reaction enthalpies via Hess's law. Breaking bonds costs energy; making them releases it.

Physics: Quantum Mechanics

The molecular orbital picture is variational quantum mechanics applied to electrons in a two-center (or many-center) Coulomb potential.

Quantum Chemistry

Where the Lewis/VSEPR cartoons stop working and you need Hartree-Fock, DFT, or coupled-cluster methods to get right answers for polar, strained, or hypervalent molecules.

Math: Linear Algebra

LCAO is a linear-combination problem. Hybridization is a change of basis. Molecular orbitals are eigenvectors of a matrix Hamiltonian.

Equilibrium

Acid strengths come straight from bond polarities and stabilization of conjugate bases — the same bonding ideas, viewed through free energy.

Further reading

  • Linus Pauling — The Nature of the Chemical Bond (1939, 1960). The book that built the modern language of bonding, electronegativity, and hybridization. Still the best informal discussion even after 80 years.
  • Peter Atkins and Julio de Paula — Physical Chemistry. Rigorous MO theory, VSEPR, and IMFs with quantitative derivations.
  • Ronald Gillespie and Istvan Hargittai — The VSEPR Model of Molecular Geometry (1991). The definitive treatment of VSEPR and its edge cases.
  • NIST Computational Chemistry Comparison and Benchmark Database — cccbdb.nist.gov. Computed and experimental bond lengths, angles, and vibrational frequencies for thousands of small molecules.
  • Wikipedia — VSEPR theory and Hydrogen bond. Solid, well-referenced overviews.
NEXT UP
→ Thermochemistry

You now know what bonds are and why they have the shapes and strengths they do. The next question is how much energy is released when they break and reform in a reaction — that's thermochemistry, built on bond enthalpies you can look up and Hess's law you can calculate with.