INSIGHT-MVP/packages/frontend/src/components/Drawer.module.css
Thomas Reitz ec9f3ea364 feat(crm): UI/UX Redesign – Kontakt Eingabemaske & Detailansicht
- Neue Drawer-Komponente (right-side slide-in, sticky footer, Portal)
- ContactFormModal: Modal → Drawer, Tab 1 Allgemein / Tab 2 Details & Adresse
- Checkbox "Adresse vom Unternehmen übernehmen" (blendet Adressfelder aus)
- Typ-Feld entfernt (Kontakte immer PERSON)
- ContactDetailPage: Subtitle "Position @ Unternehmen" im Header
- Kontaktdaten-Card: 2 Sub-Spalten, kein Firma-Duplikat, Mobil tel:-Link, LinkedIn-Icon
- Neue Card "Notizen & Tags" (Badges + Notizen-Text + Custom Fields)
- Aktivitäten-Spalte auf minmax(380px, 40%) verbreitert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-12 20:20:30 +01:00

97 lines
1.9 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* ============================================================
Drawer Right-side slide-in panel
============================================================ */
.overlay {
position: fixed;
inset: 0;
z-index: 1000;
background: rgba(0, 0, 0, 0.4);
animation: fadeIn 0.2s ease-out;
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
.panel {
position: fixed;
top: 0;
right: 0;
height: 100vh;
max-width: 100vw;
background: var(--color-bg-card, #fff);
box-shadow: -4px 0 32px rgba(0, 0, 0, 0.18);
display: flex;
flex-direction: column;
animation: slideIn 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
@keyframes slideIn {
from { transform: translateX(100%); }
to { transform: translateX(0); }
}
/* ---- Header ---- */
.header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 1.25rem 1.5rem;
border-bottom: 1px solid var(--color-border, #e5e7eb);
flex-shrink: 0;
background: var(--color-bg-card, #fff);
}
.title {
font-size: 1.125rem;
font-weight: 600;
margin: 0;
color: var(--color-text);
}
.closeButton {
display: flex;
align-items: center;
justify-content: center;
width: 32px;
height: 32px;
font-size: 1.5rem;
line-height: 1;
color: var(--color-text-muted, #9ca3af);
background: none;
border: none;
border-radius: var(--radius-sm, 4px);
cursor: pointer;
transition: all 0.15s;
flex-shrink: 0;
}
.closeButton:hover {
background: var(--color-bg, #f3f4f6);
color: var(--color-text, #111827);
}
/* ---- Body (scrollable) ---- */
.body {
flex: 1;
overflow-y: auto;
padding: 1.5rem;
overscroll-behavior: contain;
}
/* ---- Footer (sticky) ---- */
.footer {
padding: 1rem 1.5rem;
border-top: 1px solid var(--color-border, #e5e7eb);
flex-shrink: 0;
background: var(--color-bg-card, #fff);
}
/* ---- Responsive ---- */
@media (max-width: 600px) {
.panel {
width: 100% !important;
}
}