Uses crypto.getRandomValues with rejection sampling — nothing leaves your tab.
Entropy is reported as
bits = length × log2(charsetSize)
— the theoretical maximum for a uniformly-random password drawn from the
chosen charset. It does not account for human-memorable
patterns, breach-list overlap, or attacker knowledge of the charset rules.
Qualitative labels follow common rules of thumb:
Pronounceable mode alternates consonants and vowels, so each character carries less entropy than the full charset would — the meter reflects this.
Random characters use crypto.getRandomValues(Uint32Array)
with rejection sampling, so the distribution is unbiased even when the
charset size does not divide 232. Math.random is
never used for password material.
No "secure" claims — strength depends entirely on how and where you use the password. Treat this as a generator, not a vault.