When I'm crafting a heroine, I reach for words that carry both edge and empathy — they should tell a reader who she is before the first fight scene. For a broadly appealing, non-cliched choice I love 'tenacious' because it suggests grit without leaning into macho posturing. 'Resilient' works wonders when you want to emphasize recovery and emotional depth; it reads differently in a coming-of-age story than in a post-apocalyptic survival tale. If you're writing a noir or thriller, 'unyielding' or 'steely' gives that cold, investigative focus like a protagonist from 'The Girl with the Dragon Tattoo'.
Genre matters. In high fantasy, try 'indomitable' or 'formidable' — they sound epic and slightly archaic, which fits well with swords-and-kingdom stakes. For contemporary realistic fiction, softer tough-synonyms like 'pragmatic', 'resolved', or 'no-nonsense' often feel truer to life. In an action-heavy or pulpy setting, lean into punchier options: 'fierce', 'gritty', or even 'battle-hardened' convey immediate physical competence. Pair these with modifiers: 'quietly resolute', 'grimly determined', or 'compassionately fierce' to avoid one-note toughness.
I also think about how the word sits with the character's voice and the narrator's perspective. A teenager narrating might use 'badass' or 'tough-as-nails' for flavor, while a literary third-person will prefer 'steadfast' or 'ineluctable'. Play with contrasts: tough but tender, iron-willed yet doubtful. In my own drafts I often test three synonyms in the opening line and read them aloud — the one that makes the scene click is usually the right fit. It just feels right when the word both describes and deepens her. I like that kind of subtle power.