Middle Name Generator
You have the first name β now find the middle name that makes the whole name sing. Every suggestion shows the full name together, so you can hear the flow.
β€οΈ Your Favourite Names
See the Full Name
Every card shows first + middle + last together, because a middle name only works if the whole name flows.
Built for Flow
Short, classic and modern pools let you balance a long first name with a short middle, or the other way around.
Shortlist & Share
Heart the combinations you love and download the list to discuss with your partner and family.
How to Choose a Middle Name That Flows
The middle name is the bridge of the full name β small, but it decides how the whole name sounds.
Balance the syllables
The oldest trick in naming: mix lengths. A long first name loves a short middle (Alexander James, Saanvi Rose), while a short first name can carry a grander middle (Diya Katherine, Leo Alexander). If first and last names are both long, keep the middle short so the full name never feels heavy.
Watch the joining sounds
Say the full name out loud. If the first name ends with the same sound the middle begins with (Aarav Vihaan is fine, but Anna Anaya tangles), the names blur together. A middle name that starts with a different sound keeps each name clear and musical.
Check the initials
Write the three initials down before you fall in love. Aarav Dev Khan gives A.D.K. β safe. But some combinations spell words you would rather avoid on a school bag. Ten seconds of checking saves a lifetime of teasing.
Use the middle name to honour someone
The middle spot is the classic place to carry a grandparent’s name, a family name, or a word with meaning β it keeps the connection alive without deciding what your child is called every day.
Timeless middle names that work with almost anything
| Middle name | For | Meaning | Style |
|---|---|---|---|
| James | Boy | Supplanter | Classic |
| Rose | Girl | The flower | Classic |
| Noor | Any | Light | Short & sweet |
| Alexander | Boy | Defender of men | Classic |
| Grace | Girl | Elegance, kindness | Classic |
| Kai | Any | Sea | Modern |
| Dev | Boy | Divine | Short & sweet |
| Mae | Girl | Pearl | Short & sweet |
More Name Tools You’ll Love
Every tool is free and works the same simple way β pick, generate, save your favourites.
Baby Name Generator
Beautiful baby names with real meanings.
Name Combiner
Blend two names into one unique name.
Wedding Hashtag Generator
Catchy hashtags from the couple’s names.
Sibling Name Generator
Names that match your first child’s name.
Couple Nickname Generator
Cute nicknames for you and your partner.
Couple Name Combiner
Merge two names into one couple name.
Love Nickname Generator
Sweet pet names for someone you love.
Baby Boy Name Generator
Strong and sweet names for baby boys.
Baby Girl Name Generator
Beautiful names for baby girls.
Gender Neutral Baby Name Generator
Modern names that suit any baby.
Twin Baby Name Generator
Matching name pairs for twins.
Baby Name Poster Generator
Turn your baby’s name into a poster.
Frequently Asked Questions
Everything parents ask about middle names.
const favs = new Set(); const $ = s => document.querySelector(s); function toast(msg){ const t=$("#toast"); t.textContent=msg; t.classList.add("show"); setTimeout(()=>t.classList.remove("show"),1600); } function copyText(txt,msg){ if(navigator.clipboard && navigator.clipboard.writeText){ navigator.clipboard.writeText(txt).then(()=>toast(msg||("Copied: "+txt))).catch(()=>toast(txt)); } else { const ta=document.createElement("textarea"); ta.value=txt; document.body.appendChild(ta); ta.select(); try{document.execCommand("copy"); toast(msg||("Copied: "+txt));}catch(e){toast(txt);} document.body.removeChild(ta); } } function renderFavs(){ $("#favCount").textContent = favs.size; const list=$("#favList"); list.innerHTML=""; if(!favs.size){ list.innerHTML='No favourites yet β tap π€ on any name card.'; return; } favs.forEach(n=>{ const it=document.createElement("span"); it.className="fav-item"; it.innerHTML = n + ' '; list.appendChild(it); }); } function cardHTML(name, sub, tags){ return '
' + '
' + (sub ? '
' : '') + (tags || ''); } document.addEventListener("click", e=>{ const c=e.target.closest("[data-copy]"); if(c){ copyText(c.getAttribute("data-copy")); return; } const f=e.target.closest("[data-fav]"); if(f){ const n=f.getAttribute("data-fav"); if(favs.has(n)){ favs.delete(n); f.classList.remove("faved"); f.textContent="π€"; } else { favs.add(n); f.classList.add("faved"); f.textContent="β€οΈ"; toast("Saved: "+n); } renderFavs(); return; } const u=e.target.closest("[data-unfav]"); if(u){ favs.delete(u.getAttribute("data-unfav")); renderFavs(); if(window.refreshResults) refreshResults(); return; } }); $("#favToggle").addEventListener("click", ()=>{ const p=$("#favPanel"); p.classList.toggle("open"); p.hidden = !p.classList.contains("open"); }); $("#copyFavs").addEventListener("click", ()=>{ if(favs.size) copyText([...favs].join(", "), "Favourites list copied!"); else toast("No favourites yet"); }); $("#clearFavs").addEventListener("click", ()=>{ favs.clear(); renderFavs(); if(window.refreshResults) refreshResults(); }); $("#dlFavs").addEventListener("click", ()=>{ if(!favs.size){ toast("No favourites yet"); return; } const blob=new Blob(["My Favourite Names\n\n"+[...favs].join("\n")],{type:"text/plain"}); const a=document.createElement("a"); a.href=URL.createObjectURL(blob); a.download="my-favourite-names.txt"; a.click(); URL.revokeObjectURL(a.href); toast("List downloaded!"); }); document.querySelectorAll(".faq-q").forEach(q=> q.addEventListener("click", ()=>{ const it=q.parentElement; it.classList.toggle("open"); const an=it.querySelector(".faq-a"); if(an) an.hidden = !it.classList.contains("open"); })); renderFavs();
const POOL = [ {n:"James",m:"Supplanter",o:"Hebrew",g:"boy",t:"classic"},{n:"Alexander",m:"Defender of men",o:"Greek",g:"boy",t:"classic"}, {n:"William",m:"Resolute protector",o:"German",g:"boy",t:"classic"},{n:"Henry",m:"Home ruler",o:"German",g:"boy",t:"classic"}, {n:"Theodore",m:"Gift of God",o:"Greek",g:"boy",t:"classic"},{n:"Kai",m:"Sea",o:"Hawaiian",g:"boy",t:"modern"}, {n:"Dev",m:"Divine",o:"Sanskrit",g:"boy",t:"modern"},{n:"Rey",m:"King",o:"Spanish",g:"boy",t:"modern"}, {n:"Cole",m:"Victory of the people",o:"English",g:"boy",t:"modern"},{n:"Jude",m:"Praised",o:"Hebrew",g:"boy",t:"classic"}, {n:"Elias",m:"The Lord is my God",o:"Greek",g:"boy",t:"classic"},{n:"Neil",m:"Champion",o:"Irish",g:"boy",t:"classic"}, {n:"Zain",m:"Beauty, grace",o:"Arabic",g:"boy",t:"modern"},{n:"Ravi",m:"Sun",o:"Sanskrit",g:"boy",t:"classic"}, {n:"Kian",m:"King, grace of God",o:"Persian",g:"boy",t:"modern"},{n:"Felix",m:"Lucky",o:"Latin",g:"boy",t:"classic"}, {n:"Hugo",m:"Mind, spirit",o:"German",g:"boy",t:"modern"},{n:"Arlo",m:"Fortified hill",o:"English",g:"boy",t:"modern"}, {n:"Milo",m:"Soldier, merciful",o:"German",g:"boy",t:"modern"},{n:"Cyrus",m:"Sun",o:"Persian",g:"boy",t:"classic"}, {n:"Anand",m:"Joy, bliss",o:"Sanskrit",g:"boy",t:"classic"},{n:"Vikram",m:"Stride of valour",o:"Sanskrit",g:"boy",t:"classic"}, {n:"Armaan",m:"Desire, wish",o:"Persian",g:"boy",t:"modern"},{n:"Leo",m:"Lion",o:"Latin",g:"boy",t:"modern"}, {n:"Rose",m:"The flower",o:"Latin",g:"girl",t:"classic"},{n:"Grace",m:"Elegance, kindness",o:"Latin",g:"girl",t:"classic"}, {n:"Mae",m:"Pearl",o:"English",g:"girl",t:"classic"},{n:"Marie",m:"Beloved",o:"French",g:"girl",t:"classic"}, {n:"Katherine",m:"Pure",o:"Greek",g:"girl",t:"classic"},{n:"Jane",m:"God is gracious",o:"Hebrew",g:"girl",t:"classic"}, {n:"Elise",m:"Pledged to God",o:"French",g:"girl",t:"classic"},{n:"Diya",m:"Lamp, light",o:"Sanskrit",g:"girl",t:"modern"}, {n:"Rani",m:"Queen",o:"Sanskrit",g:"girl",t:"classic"},{n:"Priya",m:"Beloved",o:"Sanskrit",g:"girl",t:"classic"}, {n:"Ira",m:"Earth, goddess Saraswati",o:"Sanskrit",g:"girl",t:"modern"},{n:"Tara",m:"Star",o:"Sanskrit",g:"girl",t:"classic"}, {n:"Sana",m:"Radiance",o:"Arabic",g:"girl",t:"modern"},{n:"Hazel",m:"Hazelnut tree",o:"English",g:"girl",t:"modern"}, {n:"Ivy",m:"Faithfulness",o:"English",g:"girl",t:"modern"},{n:"Clara",m:"Bright, clear",o:"Latin",g:"girl",t:"classic"}, {n:"Faye",m:"Fairy",o:"English",g:"girl",t:"modern"},{n:"Inaya",m:"Care, concern",o:"Arabic",g:"girl",t:"modern"}, {n:"Zara",m:"Blooming flower",o:"Arabic",g:"girl",t:"modern"},{n:"Meera",m:"Devotee of Krishna",o:"Sanskrit",g:"girl",t:"classic"}, {n:"Belle",m:"Beautiful",o:"French",g:"girl",t:"modern"},{n:"Sophia",m:"Wisdom",o:"Greek",g:"girl",t:"classic"}, {n:"Noor",m:"Light",o:"Arabic",g:"neutral",t:"modern"},{n:"Kiran",m:"Ray of light",o:"Sanskrit",g:"neutral",t:"classic"}, {n:"Sage",m:"Wise one",o:"Latin",g:"neutral",t:"modern"},{n:"River",m:"Flowing water",o:"English",g:"neutral",t:"modern"}, {n:"Arya",m:"Noble",o:"Sanskrit",g:"neutral",t:"modern"},{n:"Jai",m:"Victory",o:"Sanskrit",g:"neutral",t:"classic"}, {n:"Remy",m:"Oarsman",o:"French",g:"neutral",t:"modern"},{n:"Quinn",m:"Chief, wisdom",o:"Irish",g:"neutral",t:"modern"}, {n:"Avery",m:"Ruler of the elves",o:"English",g:"neutral",t:"modern"},{n:"Robin",m:"Bright fame",o:"German",g:"neutral",t:"classic"}, {n:"Shaan",m:"Pride, glory",o:"Persian",g:"neutral",t:"modern"},{n:"Samar",m:"Evening conversations",o:"Arabic",g:"neutral",t:"modern"}, {n:"Wren",m:"Small bird",o:"English",g:"neutral",t:"modern"},{n:"Devon",m:"Poet, divine",o:"Irish",g:"neutral",t:"classic"} ]; let curG = "all", curS = "all"; function tidy(v){ return v.trim().replace(/\s+/g," "); } function fullName(mid){ const f = tidy($("#firstName").value) || "Your Baby"; const l = tidy($("#lastName").value); return f + " " + mid + (l ? " " + l : ""); } function updatePreview(){ $("#preview").textContent = fullName("β’β’β’"); } function pool(){ return POOL.filter(x => (curG==="all" || x.g===curG || x.g==="neutral") && (curS==="all" || (curS==="short" ? x.n.length<=4 : x.t===curS)) ); } function shuffle(a){ for(let i=a.length-1;i>0;i--){ const j=Math.floor(Math.random()*(i+1)); [a[i],a[j]]=[a[j],a[i]]; } return a; } function generate(){ const box = $("#results"); box.innerHTML = ""; const list = shuffle(pool().slice()); if(!list.length){ box.innerHTML = '
'; return; } list.slice(0,12).forEach((x,i)=>{ const card = document.createElement("div"); card.className = "name-card"; card.style.animationDelay = (i*0.04)+"s"; const full = fullName(x.n); card.innerHTML = cardHTML(x.n, "β" + full + "β", '' + x.m + " Β· " + x.o + ''); box.appendChild(card); }); updatePreview(); } window.refreshResults = generate; $("#genBtn").addEventListener("click", generate); $("#firstName").addEventListener("input", ()=>{ updatePreview(); }); $("#lastName").addEventListener("input", ()=>{ updatePreview(); }); $("#genderChips").addEventListener("click", e=>{ const b=e.target.closest("[data-g]"); if(!b) return; document.querySelectorAll("#genderChips .chip").forEach(x=>x.classList.remove("on")); b.classList.add("on"); curG=b.getAttribute("data-g"); generate(); }); $("#styleChips").addEventListener("click", e=>{ const b=e.target.closest("[data-s]"); if(!b) return; document.querySelectorAll("#styleChips .chip").forEach(x=>x.classList.remove("on")); b.classList.add("on"); curS=b.getAttribute("data-s"); generate(); }); updatePreview(); generate();