Files
parenthese/frontend/src/components/InlinePersonForm.css
T
IliesAllaliandClaude Opus 5.5 5b5636e1be Refonte de la direction artistique : accent terracotta, landing, app et démo
- Landing refaite : nouvelle palette claire, Newsreader et DM Sans, logo validé,
  sections (garanties, trois gestes, démo, pour qui, engagements, guides, bloc final).
  Illustration du hero conservée et recolorée, portraits alignés sur les âges.
- App : couleurs et typographie passées à la nouvelle DA, structure et fonctionnalités inchangées.
  Composants communs dans src/styles/pz.css.
- Refaits de zéro : fiche d'une personne (souvenirs, infos, liens, panneau mobile),
  connexion, création de compte, liste des arbres, accès par mot de passe, recherche,
  barre d'actions, menu du compte, zoom, et toutes les fenêtres (compte, création d'arbre,
  contributions, envoi, sortie d'édition, brouillon, ajout de personne, souvenirs, visionneuse,
  paramètres de l'arbre).
- Arbre : chaque personne garde sa forme de cadre tirée au hasard, cadre vertical pour une photo carrée.
- Démo : photos d'époque libres de droits hébergées dans public/demo (sources et licences
  dans sources.json et CREDITS.md), famille Dupont crédible, Isabelle née à Fort-de-France.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 11:21:04 +02:00

263 lines
4.9 KiB
CSS

/* ============================================================
Inline Person Form - Mini-formulaire après drop
============================================================ */
.inline-person-form-overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(42, 38, 34, 0.4);
backdrop-filter: blur(4px);
z-index: 1200;
animation: overlayFadeIn 0.2s ease;
}
@keyframes overlayFadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.inline-person-form {
position: fixed;
padding: 24px;
background: rgba(242, 239, 234, 0.98);
backdrop-filter: blur(32px);
-webkit-backdrop-filter: blur(32px);
border-radius: 16px;
border: 1px solid rgba(42, 38, 34, 0.12);
box-shadow:
0 12px 48px rgba(42, 38, 34, 0.3),
0 4px 16px rgba(42, 38, 34, 0.15);
min-width: 320px;
max-width: 400px;
z-index: 1201;
animation: formPopIn 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes formPopIn {
from {
opacity: 0;
transform: translate(-50%, -45%) scale(0.9);
}
to {
opacity: 1;
transform: translate(-50%, -50%) scale(1);
}
}
/* Header */
.inline-person-form-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 20px;
padding-bottom: 16px;
border-bottom: 1px solid rgba(42, 38, 34, 0.1);
}
.inline-person-form-title {
font-family: 'DM Sans', system-ui, sans-serif;
font-size: 18px;
font-weight: 700;
color: #2A2622;
display: flex;
align-items: center;
gap: 10px;
}
.inline-person-form-icon {
font-size: 24px;
}
.inline-person-form-close {
width: 32px;
height: 32px;
border-radius: 50%;
border: none;
background: transparent;
color: #6B645D;
font-size: 20px;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
transition: all 0.2s ease;
}
.inline-person-form-close:hover {
background: rgba(42, 38, 34, 0.1);
color: #2A2622;
transform: scale(1.1);
}
/* Badge lien créé */
.inline-person-form-badge {
display: inline-block;
padding: 6px 12px;
border-radius: 12px;
font-size: 14px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.5px;
margin-bottom: 16px;
}
.inline-person-form-badge.child {
background: rgba(76, 217, 100, 0.15);
color: #4CD964;
}
.inline-person-form-badge.spouse {
background: rgba(255, 59, 48, 0.15);
color: #FF3B30;
}
.inline-person-form-badge.sibling {
background: rgba(210, 105, 74, 0.15);
color: #93402A;
}
/* Fields */
.inline-person-form-fields {
display: flex;
flex-direction: column;
gap: 14px;
margin-bottom: 20px;
}
.inline-person-form-field {
display: flex;
flex-direction: column;
gap: 6px;
}
.inline-person-form-label {
font-size: 14px;
font-weight: 450;
color: #2A2622;
letter-spacing: 0.2px;
}
.inline-person-form-label .required {
color: #FF3B30;
margin-left: 2px;
}
.inline-person-form-input {
padding: 10px 14px;
border-radius: 10px;
border: 1.5px solid rgba(42, 38, 34, 0.15);
background: rgba(255, 255, 255, 0.6);
font-family: 'DM Sans', system-ui, sans-serif;
font-size: 16px; /* ≥16px prevents iOS Safari from auto-zooming on focus */
color: #2A2622;
transition: all 0.2s ease;
}
.inline-person-form-input:focus {
outline: none;
border-color: #93402A;
background: rgba(255, 255, 255, 0.9);
box-shadow: 0 0 0 3px rgba(147, 64, 42, 0.1);
}
.inline-person-form-input::placeholder {
color: #6B645D;
opacity: 0.6;
}
/* Row (2 champs côte-à-côte) */
.inline-person-form-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
}
/* Actions */
.inline-person-form-actions {
display: flex;
gap: 10px;
justify-content: flex-end;
}
.inline-person-form-button {
padding: 10px 20px;
border-radius: 10px;
border: none;
font-family: 'DM Sans', system-ui, sans-serif;
font-size: 14px;
font-weight: 450;
cursor: pointer;
transition: all 0.2s ease;
}
.inline-person-form-button.cancel {
background: transparent;
color: #6B645D;
}
.inline-person-form-button.cancel:hover {
background: rgba(42, 38, 34, 0.08);
color: #2A2622;
}
.inline-person-form-button.submit {
background: #2a2622;
color: #FFFFFF;
box-shadow: 0 4px 12px rgba(147, 64, 42, 0.3);
}
.inline-person-form-button.submit:hover {
transform: translateY(-2px);
box-shadow: 0 6px 16px rgba(147, 64, 42, 0.4);
}
.inline-person-form-button.submit:active {
transform: translateY(0);
}
.inline-person-form-button.submit:disabled {
opacity: 0.5;
cursor: not-allowed;
transform: none;
}
/* Loading state */
.inline-person-form.loading {
pointer-events: none;
opacity: 0.7;
}
/* Responsive mobile */
@media (max-width: 768px) {
.inline-person-form {
left: 12px;
right: 12px;
top: 50%;
transform: translateY(-50%);
min-width: auto;
max-width: none;
}
@keyframes formPopIn {
from {
opacity: 0;
transform: translateY(-45%) scale(0.9);
}
to {
opacity: 1;
transform: translateY(-50%) scale(1);
}
}
}