/** * Modul: Pinnwand / Notizen (Notes) * Zweck: Styles für Masonry-Grid, Sticky-Note-Karten, Modal * Abhängigkeiten: tokens.css, layout.css */ /* -------------------------------------------------------- * Seiten-Layout * -------------------------------------------------------- */ .notes-page { display: flex; flex-direction: column; height: calc(100dvh - var(--nav-height-mobile) - var(--safe-area-inset-bottom)); max-width: var(--content-max-width); margin: 0 auto; } @media (min-width: 1024px) { .notes-page { height: 100dvh; } } /* -------------------------------------------------------- * Header / Toolbar * -------------------------------------------------------- */ .notes-toolbar { display: flex; align-items: center; justify-content: space-between; padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--color-border); background-color: var(--color-surface); flex-shrink: 0; gap: var(--space-3); } .notes-toolbar__title { font-size: var(--text-lg); font-weight: var(--font-weight-bold); } /* -------------------------------------------------------- * Masonry-Grid * -------------------------------------------------------- */ .notes-grid { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: var(--space-4); columns: 2; column-gap: var(--space-3); } @media (min-width: 600px) { .notes-grid { columns: 3; } } @media (min-width: 900px) { .notes-grid { columns: 4; } } @media (min-width: 1200px) { .notes-grid { columns: 5; } } /* -------------------------------------------------------- * Notiz-Karte * -------------------------------------------------------- */ .note-card { break-inside: avoid; margin-bottom: var(--space-3); border-radius: var(--radius-md); padding: var(--space-3); cursor: pointer; position: relative; transition: transform var(--transition-fast), box-shadow var(--transition-fast); box-shadow: var(--shadow-sm); } .note-card:hover { transform: translateY(-1px); box-shadow: var(--shadow-md); } .note-card--pinned { box-shadow: var(--shadow-md); } .note-card__pin { position: absolute; top: var(--space-2); right: var(--space-2); width: 24px; height: 24px; border-radius: var(--radius-full); background: var(--color-overlay-light); border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; min-height: unset; opacity: 0; transition: opacity var(--transition-fast), background-color var(--transition-fast); color: var(--color-text-primary); } .note-card--pinned .note-card__pin { opacity: 1; background: var(--color-overlay-light); } .note-card:hover .note-card__pin { opacity: 1; } .note-card__pin:hover { background: var(--color-overlay); } .note-card__title { font-size: var(--text-sm); font-weight: var(--font-weight-semibold); margin-bottom: var(--space-1); color: var(--color-text-primary); padding-right: var(--space-6); } .note-card__content { font-size: var(--text-sm); line-height: var(--line-height-relaxed); color: var(--color-text-secondary); word-break: break-word; white-space: pre-wrap; } /* Markdown-light: fett, kursiv, Listen */ .note-card__content strong { font-weight: var(--font-weight-bold); } .note-card__content em { font-style: italic; } .note-card__footer { display: flex; align-items: center; justify-content: space-between; margin-top: var(--space-2); padding-top: var(--space-2); border-top: 1px solid var(--color-border-subtle); } .note-card__creator { display: flex; align-items: center; gap: var(--space-1); font-size: var(--text-xs); color: var(--color-text-tertiary); } .note-card__avatar { width: 16px; height: 16px; border-radius: var(--radius-full); display: inline-flex; align-items: center; justify-content: center; font-size: 9px; font-weight: var(--font-weight-bold); color: #ffffff; flex-shrink: 0; } .note-card__delete { width: 24px; height: 24px; border-radius: var(--radius-full); background: var(--color-overlay-light); border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; min-height: unset; color: var(--color-text-tertiary); opacity: 0; transition: opacity var(--transition-fast), background-color var(--transition-fast); } .note-card:hover .note-card__delete { opacity: 1; } .note-card__delete:hover { background: var(--color-danger-light); color: var(--color-danger); } /* -------------------------------------------------------- * Leer-Zustand * -------------------------------------------------------- */ .notes-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: var(--space-12) var(--space-6); text-align: center; color: var(--color-text-secondary); column-span: all; /* Multicolumn: volle Breite */ } .notes-empty__icon { width: 56px; height: 56px; color: var(--color-text-disabled); margin-bottom: var(--space-4); } /* -------------------------------------------------------- * Notes-Modal Content-Styles (Overlay/Panel via shared modal.js) * -------------------------------------------------------- */ /* Farb-Auswahl */ .note-color-picker { display: flex; flex-wrap: wrap; gap: var(--space-2); } .note-color-swatch { width: 28px; height: 28px; border-radius: var(--radius-full); border: 2px solid transparent; cursor: pointer; transition: transform var(--transition-fast), border-color var(--transition-fast); } .note-color-swatch:hover { transform: scale(1.15); } .note-color-swatch--active { border-color: var(--color-text-primary); transform: scale(1.1); }