Add secure password generator

This commit is contained in:
2026-08-04 11:07:55 +02:00
parent 25da7d49a9
commit 0c9bf6758c
14 changed files with 497 additions and 39 deletions
+47 -5
View File
@@ -195,17 +195,26 @@
position: relative;
width: 100%;
}
.password-field.has-toggle input {
.password-field.has-actions input {
padding-right: 42px;
}
.password-field.has-generator.has-reveal input {
padding-right: 74px;
}
.password-field.is-saved-empty input::placeholder {
color: var(--muted);
opacity: 1;
}
.password-field-toggle {
.password-field-actions {
position: absolute;
top: 50%;
right: 7px;
display: inline-flex;
align-items: center;
gap: 4px;
transform: translateY(-50%);
}
.password-field-action {
display: inline-flex;
align-items: center;
justify-content: center;
@@ -217,17 +226,50 @@
color: var(--muted);
cursor: pointer;
padding: 0;
transform: translateY(-50%);
}
.password-field-toggle:hover {
.password-field-action:hover {
background: var(--hover-tint-soft);
color: var(--text-strong);
}
.password-field-toggle:focus-visible {
.password-field-action:focus-visible {
outline: var(--focus-outline);
outline-offset: 1px;
}
.password-generator-dialog {
width: min(520px, calc(100vw - 32px));
}
.password-generator-body,
.password-generator-options {
display: grid;
gap: 14px;
}
.password-generator-character-sets {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px 16px;
}
.password-generator-result {
display: grid;
grid-template-columns: minmax(0, 1fr) auto auto;
gap: 6px;
align-items: center;
}
.password-generator-result input {
min-width: 0;
font-family: var(--font-mono, monospace);
}
.password-generator-note {
margin: 0;
color: var(--muted);
font-size: 0.875rem;
}
@media (max-width: 520px) {
.password-generator-character-sets {
grid-template-columns: 1fr;
}
}
.credential-panel {
display: grid;
gap: 12px;