A rune page for Leona reasoned from its class, range and damage type — with the thinking shown rather than a win-rate table.
Rune pages get copied far more often than they get understood, which is why they stop working the moment the matchup changes. Leona is a tank whose job is to start the fight on your terms and be the most costly thing to ignore.
At 125 attack range Leona has to walk into damage to deal it, so every trade begins with a decision about whether you can afford the walk.

Resolve — Tanks want to be in range repeatedly and come out ahead on health. A keystone that converts that into permanent health does more than a damage one.
Every 4s your next attack on a champion deals bonus magic damage, heals you, and permanently increases your health.
Your third attack against turrets deals bonus damage.
After 12 min gain +8 Armor and +8 Magic Resist and increase your Armor and Magic Resist by 3%.
Gain permanent max health when minions or monsters die near you.
A starting point reasoned from class and range, not a win-rate ranking. Matchups change it.
Take Solar Flare at levels 6, 11 and 16 — the ultimate is always worth the point it costs.
For the basic abilities, Zenith Blade (E) gains the most from being ranked: its cooldown falls by 6 seconds between rank 1 and max, which is the largest improvement in the kit. That is the usual argument for maxing it first.
This is reasoning from the cooldown data, not a win-rate ranking — a matchup that punishes you can invert it.
The page above assumes an even matchup. Against a lane that beats you up early, survivability runes buy you the levels you need; against one you outrange, damage runes compound the advantage.
Leona is mana-gated, which is the real limit on how often you can contest a wave early.
These are the designers' words, not ours — the tips shipped in the client for Leona.