Shaarli_bm_theme/shaarli-pro/css/custom_views.css

1291 lines
30 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.

/* =========================================
Special Views for Todos and Notes
========================================= */
/* Theme tokens for custom views */
:root {
--special-view-panel-bg: var(--tile-bg, var(--bg-card));
--special-view-panel-alt: color-mix(in srgb, var(--tile-bg, var(--bg-card)) 85%, var(--bg-body));
--special-view-border: var(--tile-border, var(--border));
--special-view-divider: var(--border-light);
--special-view-shadow: var(--tile-shadow, var(--shadow-md));
--special-view-muted: var(--text-secondary);
--special-view-strong: var(--text-main);
--special-view-chip-bg: color-mix(in srgb, var(--primary) 12%, transparent);
--special-view-chip-hover: color-mix(in srgb, var(--primary) 22%, transparent);
--special-view-chip-text: var(--text-main);
}
/* --- Layout Wrapper (injected by JS) --- */
.special-view-wrapper {
display: flex;
flex-direction: row;
width: 100%;
min-height: calc(100vh - 60px);
/* Adjust for header */
}
/* --- TODO VIEW --- */
body.view-todo .content-container {
padding: 2rem;
background-color: transparent;
min-height: 100vh;
/* Adjust for header */
}
body.view-todo #linklist {
display: block;
/* Show default list when wrapper is not active */
}
.create-task-btn:hover {
background-color: var(--primary-hover);
transform: translateY(-1px);
}
.todo-list-item {
padding: 0.75rem 1rem;
margin-bottom: 0.25rem;
border-radius: 0.5rem;
cursor: pointer;
color: var(--special-view-strong);
display: flex;
align-items: center;
gap: 0.75rem;
transition: background-color 0.2s;
}
.todo-list-item:hover {
background-color: color-mix(in srgb, var(--special-view-strong) 8%, transparent);
}
.todo-list-item.active {
background-color: color-mix(in srgb, var(--primary) 10%, transparent);
color: var(--primary);
font-weight: 600;
margin: 0;
}
/* Todo Item */
.todo-item {
padding: 1rem;
border-bottom: 1px solid var(--special-view-divider);
display: flex;
align-items: center;
gap: 1rem;
transition: background-color 0.2s;
}
.todo-item:hover {
background-color: color-mix(in srgb, var(--special-view-strong) 5%, transparent);
}
.todo-checkbox {
width: 20px;
height: 20px;
border: 2px solid var(--special-view-muted);
border-radius: 50%;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.todo-checkbox.checked {
background-color: var(--primary);
border-color: var(--primary);
color: white;
}
.todo-content {
flex: 1;
display: flex;
flex-direction: column;
gap: 0.25rem;
}
.todo-title {
font-size: 1rem;
color: var(--special-view-strong);
font-weight: 400;
}
.todo-item.completed .todo-title {
text-decoration: line-through;
color: var(--text-muted);
}
.todo-meta {
display: flex;
align-items: center;
gap: 0.5rem;
font-size: 0.75rem;
color: var(--special-view-muted);
}
.todo-badge {
padding: 0.125rem 0.5rem;
border-radius: 1rem;
background-color: var(--special-view-chip-bg);
font-size: 0.7rem;
}
.due-date {
display: flex;
align-items: center;
gap: 0.25rem;
}
/* --- NOTES VIEW --- */
/* Wrapper */
body.view-notes .content-container,
body.view-archive .content-container {
padding: 2rem;
background-color: transparent;
min-height: 100vh;
}
/* Tool Bar / Input Area */
.notes-top-bar {
display: flex;
justify-content: center;
align-items: flex-start;
margin-bottom: 2rem;
position: relative;
padding-right: 0;
}
.note-input-container {
width: 800px;
max-width: 100%;
background-color: var(--special-view-panel-bg);
border-radius: 12px;
border: 1px solid var(--special-view-border);
box-shadow: var(--special-view-shadow);
transition: box-shadow 0.2s;
overflow: hidden;
}
.note-input-container.is-editing {
max-height: 72vh;
}
.note-input-collapsed {
display: flex;
align-items: center;
padding: 12px 16px;
cursor: text;
color: var(--special-view-muted);
font-weight: 500;
font-size: 1rem;
}
.note-input-container.is-editing {
cursor: default;
}
.icon-btn:hover {
background-color: color-mix(in srgb, var(--text-muted) 10%, transparent);
}
.icon-btn.active {
color: var(--primary);
background-color: var(--special-view-chip-bg);
}
.notes-masonry {
column-count: 4;
column-gap: 16px;
width: 100%;
max-width: 1600px;
margin: 0 auto;
}
/* Responsive masonry columns based on viewport */
@media (max-width: 1400px) {
.notes-masonry { column-count: 3; }
}
@media (max-width: 1024px) {
.notes-masonry { column-count: 2; }
}
@media (max-width: 640px) {
.notes-masonry { column-count: 1; }
}
/* Collapse empty columns when only a few notes/todos exist
(prevents the large empty right-side area seen with 1 item) */
.notes-masonry:has(.note-card:first-child:last-child) { column-count: 1; }
.notes-masonry:has(.note-card:nth-child(2):last-child) { column-count: 2; }
.notes-masonry:has(.note-card:nth-child(3):last-child) { column-count: 3; }
.notes-masonry .note-card {
display: inline-block;
width: 100%;
margin: 0 0 16px;
break-inside: avoid;
-webkit-column-break-inside: avoid;
page-break-inside: avoid;
column-span: none;
border-radius: 14px;
overflow: hidden;
border: 1px solid var(--special-view-border);
background: var(--special-view-panel-bg);
box-shadow: var(--special-view-shadow);
}
.note-card {
border-radius: 14px;
overflow: hidden;
border: 1px solid var(--special-view-border);
background: var(--special-view-panel-bg);
}
.note-card .note-inner {
position: relative;
padding: 14px 16px 12px;
padding-right: 58px;
}
.note-modal-overlay {
display: none;
position: fixed;
inset: 0;
z-index: 1100;
align-items: center;
justify-content: center;
padding: 1rem;
background: rgba(0, 0, 0, 0.55);
backdrop-filter: blur(3px);
-webkit-backdrop-filter: blur(3px);
overflow-y: auto;
}
.note-modal-overlay.open {
display: flex;
}
.note-modal {
width: min(720px, 92vw);
max-height: 86vh;
overflow: hidden;
border-radius: 14px;
background: var(--special-view-panel-bg);
border: 1px solid var(--special-view-border);
box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);
color: inherit;
display: flex;
flex-direction: column;
}
.note-modal-header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 12px;
padding: 18px 20px 10px;
flex-shrink: 0;
}
.note-modal-tags.is-empty {
display: none;
}
.note-modal-tags .note-tag {
display: inline-flex;
align-items: center;
gap: 0.25rem;
background: var(--special-view-chip-bg);
color: var(--special-view-chip-text);
border-radius: 999px;
padding: 0.25rem 0.5rem;
font-size: 0.75rem;
font-weight: 500;
}
.note-modal-tags .note-tag-text {
line-height: 1.2;
}
.note-modal-tags .note-tag-remove-btn {
display: inline-flex;
align-items: center;
justify-content: center;
width: 1.1rem;
height: 1.1rem;
border: none;
border-radius: 999px;
background: var(--special-view-chip-hover);
color: currentColor;
cursor: pointer;
padding: 0;
line-height: 1;
font-size: 0.8rem;
}
.note-modal-actions {
display: flex;
align-items: center;
justify-content: space-between;
gap: 6px;
padding: 8px 16px 16px;
background: transparent;
flex-shrink: 0;
flex-wrap: wrap;
}
.note-modal-pin-toggle:hover,
.note-modal-pin-toggle.active {
background-color: color-mix(in srgb, var(--text-main) 14%, transparent);
}
.note-body {
font-size: 0.875rem;
line-height: 1.4;
color: var(--special-view-strong);
word-wrap: break-word;
display: block;
overflow: hidden;
max-height: 360px;
}
.note-body p,
.note-modal-content p {
margin: 0 0 0.5rem;
}
.bookmark-palette>button:hover {
background: var(--primary-light);
color: var(--primary);
}
.palette-popup {
display: none;
position: absolute;
left: 0;
bottom: calc(100% + 8px);
background: var(--special-view-panel-bg);
border: 1px solid var(--special-view-border);
border-radius: 12px;
padding: 12px;
box-shadow: 0 14px 34px rgba(0, 0, 0, 0.22);
z-index: 50;
width: max-content;
max-width: min(340px, calc(100vw - 32px));
max-height: min(320px, calc(100vh - 140px));
overflow: auto;
overscroll-behavior: contain;
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
}
.palette-popup.open {
display: block;
}
.note-card .note-hover-actions button,
.note-card .note-hover-actions a {
color: inherit;
}
.note-card[class*="note-color-"] {
color: var(--note-card-fg, var(--special-view-strong));
border: 1px solid var(--special-view-border);
}
/* Ensure archive view uses same background as notes view */
body.view-archive .content-container {
background-color: transparent !important;
}
/* Archive Title */
.archive-title-container {
text-align: center;
margin-bottom: 1rem;
}
.archive-title {
font-size: 1.75rem;
font-weight: 600;
color: var(--special-view-strong);
margin: 0;
display: flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
}
.archive-title i {
font-size: 1.5rem;
color: var(--primary);
}
.archive-subtitle {
font-size: 0.875rem;
color: var(--special-view-muted);
margin: 0.25rem 0 0 0;
}
/* Archive top bar adjustments */
.archive-top-bar {
flex-direction: column;
align-items: center;
padding-right: 0;
gap: 1rem;
position: relative;
}
.archive-top-bar .notes-tools {
position: absolute;
right: 1rem;
top: 50%;
transform: translateY(-50%);
}
body.view-todo .note-card.todo-card .note-body {
padding-top: 0.25rem;
}
body.view-todo .note-card.todo-card .todo-checklist-preview-wrap {
display: block;
-webkit-line-clamp: initial;
line-clamp: initial;
-webkit-box-orient: initial;
overflow: hidden;
max-height: 360px;
padding-top: 0.25rem;
}
.todo-checklist-preview {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
gap: 0.35rem;
}
.todo-checklist-preview-item {
display: flex;
align-items: flex-start;
gap: 0.6rem;
font-size: 0.95rem;
line-height: 1.35;
}
.todo-checklist-preview-box {
width: 16px;
height: 16px;
border-radius: 4px;
border: 2px solid currentColor;
display: inline-flex;
align-items: center;
justify-content: center;
flex: 0 0 auto;
opacity: 0.7;
margin-top: 2px;
}
.todo-checklist-preview-box i {
font-size: 14px;
opacity: 0;
}
.todo-checklist-preview-text {
flex: 1;
min-width: 0;
overflow-wrap: break-word;
word-wrap: break-word;
word-break: break-word;
}
.todo-checklist-preview-item.is-checked {
opacity: 0.7;
}
.todo-checklist-preview-item.is-checked .todo-checklist-preview-box i {
opacity: 1;
}
.todo-checklist-preview-item.is-checked .todo-checklist-preview-text {
text-decoration: line-through;
}
.todo-checklist-preview-more {
opacity: 0.7;
}
.todo-modal .note-modal-content {
padding-top: 6px;
}
.todo-checklist {
display: flex;
flex-direction: column;
gap: 6px;
padding-bottom: 6px;
}
.todo-checklist-row {
display: grid;
grid-template-columns: 26px 26px minmax(0, 1fr) 34px;
align-items: center;
gap: 8px;
padding: 6px 2px;
border-radius: 8px;
}
.todo-checklist-row.is-checked {
opacity: 0.75;
}
.todo-checklist-row.is-dragging {
opacity: 0.6;
}
.todo-drag-handle {
width: 26px;
height: 26px;
border: none;
background: none;
color: inherit;
opacity: 0.7;
cursor: grab;
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0;
}
.todo-drag-handle:active {
cursor: grabbing;
}
.todo-drag-handle i {
font-size: 18px;
}
.todo-checklist-box {
width: 26px;
height: 26px;
display: inline-flex;
align-items: center;
justify-content: center;
cursor: pointer;
}
.todo-checklist-box input {
position: absolute;
opacity: 0;
pointer-events: none;
}
.todo-checklist-box-ui {
width: 16px;
height: 16px;
border-radius: 4px;
border: 2px solid currentColor;
display: inline-block;
opacity: 0.75;
}
.todo-item-checkbox:checked+.todo-checklist-box-ui {
background: currentColor;
box-shadow: inset 0 0 0 3px rgba(0, 0, 0, 0.22);
}
[data-theme="dark"] .todo-item-checkbox:checked+.todo-checklist-box-ui {
box-shadow: inset 0 0 0 3px rgba(0, 0, 0, 0.35);
}
.todo-item-text {
width: 100%;
border: none;
background: transparent;
color: inherit;
font-size: 1rem;
line-height: 1.4;
padding: 6px 6px;
border-radius: 6px;
outline: none;
min-width: 0;
}
.todo-checklist-row.is-checked .todo-item-text {
text-decoration: line-through;
}
.todo-item-text:focus {
background: color-mix(in srgb, var(--text-main) 6%, transparent);
}
[data-theme="dark"] .todo-item-text:focus {
background: color-mix(in srgb, var(--text-main) 8%, transparent);
}
.todo-item-delete {
width: 34px;
height: 34px;
border: none;
background: none;
color: inherit;
opacity: 0.7;
cursor: pointer;
border-radius: 50%;
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0;
}
.todo-item-delete:hover {
opacity: 1;
background: color-mix(in srgb, var(--text-main) 8%, transparent);
}
[data-theme="dark"] .todo-item-delete:hover {
background: color-mix(in srgb, var(--text-main) 12%, transparent);
}
.todo-item-delete i {
font-size: 20px;
}
.todo-add-item-btn {
border: none;
background: none;
color: inherit;
opacity: 0.8;
cursor: pointer;
display: inline-flex;
align-items: center;
gap: 10px;
padding: 8px 0;
font-size: 1rem;
justify-content: flex-start;
width: 100%;
}
.todo-add-item-btn i {
font-size: 18px;
}
.todo-add-item-btn:hover {
opacity: 1;
}
/* =========================================================
Notes / Todos views — UX polish (professional layout)
========================================================= */
/* Content container for notes & todos: centered, sensible max */
body.view-notes .content-container,
body.view-todo .content-container,
body.view-archive .content-container {
padding: 1.75rem clamp(1rem, 3vw, 2.5rem);
}
/* Results filter banner ("N résultat(s) tagué(s) ...") */
body.view-notes .linklist-filters,
body.view-todo .linklist-filters,
body.view-archive .linklist-filters {
display: inline-flex;
align-items: center;
gap: 0.5rem;
max-width: max-content;
margin: 0 0 1.25rem;
padding: 0.45rem 0.85rem;
border-radius: 9999px;
background: var(--special-view-chip-bg);
color: var(--special-view-strong);
font-size: 0.85rem;
font-weight: 500;
border: 1px solid var(--special-view-border);
}
/* Notes/todos top bar: center input, keep view switch on the right */
.notes-top-bar {
position: relative;
gap: 1rem;
align-items: center;
max-width: 1600px;
margin-left: auto;
margin-right: auto;
}
.notes-top-bar .notes-tools {
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
}
/* Compact editor when collapsed */
.note-input-container {
width: min(760px, 100%);
transition: box-shadow 0.2s ease, border-color 0.2s ease;
}
.note-input-container:hover {
box-shadow: var(--tile-shadow-hover, var(--shadow-md));
}
.note-input-container.is-editing {
box-shadow: var(--tile-shadow-hover, var(--shadow-md));
border-color: color-mix(in srgb, var(--primary) 40%, var(--special-view-border));
}
/* Expanded editor inputs */
.note-input-container input[type="text"],
.note-input-container textarea {
width: 100%;
border: 0;
background: transparent;
color: var(--special-view-strong);
padding: 10px 14px;
font-size: 1rem;
font-family: inherit;
outline: none;
}
.note-input-container textarea {
resize: vertical;
min-height: 120px;
line-height: 1.45;
}
.note-input-container input[type="text"]::placeholder,
.note-input-container textarea::placeholder {
color: var(--special-view-muted);
}
/* Toolbar / action rows inside the note/todo create form */
.note-input-container .note-editor-toolbar,
.note-input-container .note-input-actions,
.note-input-container .todo-editor-toolbar {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 4px;
padding: 6px 10px;
border-top: 1px solid var(--special-view-divider);
background: color-mix(in srgb, var(--special-view-panel-bg) 88%, var(--bg-body));
}
.note-input-container .icon-btn,
.note-input-container button:not(.btn):not([class*="note-close"]):not([class*="submit"]) {
background: transparent;
border: 0;
color: var(--special-view-strong);
border-radius: 6px;
padding: 6px 8px;
font-size: 0.85rem;
cursor: pointer;
line-height: 1;
transition: background 0.15s ease;
}
.note-input-container .icon-btn:hover,
.note-input-container button:not(.btn):not([class*="note-close"]):not([class*="submit"]):hover {
background: color-mix(in srgb, var(--text-main) 10%, transparent);
}
/* "Fermer" footer button */
.note-input-container .note-close-btn,
.note-input-container [data-action="close"] {
background: var(--special-view-panel-alt);
color: var(--special-view-strong);
border: 1px solid var(--special-view-border);
border-radius: 8px;
padding: 6px 12px;
font-size: 0.85rem;
cursor: pointer;
}
.note-input-container .note-close-btn:hover,
.note-input-container [data-action="close"]:hover {
background: var(--tile-bg-hover, var(--bg-card-hover));
}
/* Todo checklist row inside creation form */
.note-input-container .todo-checklist-row {
padding: 4px 10px;
border-radius: 0;
border-bottom: 1px solid var(--special-view-divider);
}
.note-input-container .todo-checklist-row:last-of-type {
border-bottom: 0;
}
.note-input-container .todo-item-text {
padding: 8px 6px;
}
/* Note cards: padding & typography polish */
.note-card .note-title {
font-weight: 600;
font-size: 1rem;
line-height: 1.3;
margin: 0 0 6px;
color: inherit;
}
.note-card .note-body {
font-size: 0.9rem;
line-height: 1.5;
}
/* Tag chips inside note cards */
.note-card .note-tag,
.note-card .link-tag {
background: color-mix(in srgb, var(--primary) 14%, transparent);
color: var(--special-view-chip-text);
border-radius: 9999px;
padding: 2px 8px;
font-size: 0.72rem;
font-weight: 500;
border: 1px solid color-mix(in srgb, var(--primary) 22%, transparent);
}
/* Hover state for note cards */
.notes-masonry .note-card {
transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}
.notes-masonry .note-card:hover {
box-shadow: var(--tile-shadow-hover, var(--shadow-lg));
border-color: color-mix(in srgb, var(--primary) 35%, var(--special-view-border));
transform: translateY(-1px);
}
/* Ensure note cards respect theme colors even when no color tag present */
.note-card:not([class*="note-color-"]) {
color: var(--special-view-strong);
}
/* Todo view-specific: single-column empty-state nicety */
body.view-todo .notes-masonry:empty::after {
content: "Aucune tâche pour le moment.";
display: block;
padding: 3rem 1rem;
text-align: center;
color: var(--special-view-muted);
font-size: 0.95rem;
}
body.view-notes .notes-masonry:empty::after {
content: "Aucune note pour le moment.";
display: block;
padding: 3rem 1rem;
text-align: center;
color: var(--special-view-muted);
font-size: 0.95rem;
}
/* =========================================================
Icon buttons — base (view-switch + card action btns)
========================================================= */
.icon-btn {
display: inline-flex;
align-items: center;
justify-content: center;
width: 32px;
height: 32px;
border: none;
border-radius: 8px;
background: transparent;
color: var(--special-view-strong);
cursor: pointer;
padding: 0;
font-size: 1rem;
line-height: 1;
text-decoration: none;
transition: background 0.15s ease, color 0.15s ease;
}
.notes-tools {
display: flex;
align-items: center;
gap: 4px;
}
/* =========================================================
Note card — pin corner
========================================================= */
.note-pin-corner {
position: absolute;
top: 10px;
right: 12px;
width: 28px;
height: 28px;
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 50%;
background: transparent;
color: var(--special-view-muted);
opacity: 0;
transition: opacity 0.15s ease, background 0.15s ease, color 0.15s ease;
text-decoration: none;
font-size: 1rem;
}
.note-card:hover .note-pin-corner,
.note-pin-corner.active {
opacity: 1;
}
.note-pin-corner:hover {
background: color-mix(in srgb, var(--text-main) 12%, transparent);
color: var(--special-view-strong);
}
.note-pin-corner.active {
color: var(--primary);
}
/* =========================================================
Note card — tags row
========================================================= */
.note-tags {
display: flex;
flex-wrap: wrap;
gap: 4px;
padding: 4px 0 6px;
}
/* =========================================================
Note card — hover actions bar (bottom strip)
========================================================= */
.note-hover-actions {
display: flex;
align-items: center;
gap: 2px;
padding: 4px 8px 6px;
border-top: 1px solid var(--special-view-divider);
margin-top: 8px;
opacity: 0;
transition: opacity 0.15s ease;
}
.note-card:hover .note-hover-actions {
opacity: 1;
}
.note-hover-actions button,
.note-hover-actions > a {
display: inline-flex;
align-items: center;
justify-content: center;
width: 30px;
height: 30px;
border: none;
border-radius: 8px;
background: transparent;
color: inherit;
cursor: pointer;
padding: 0;
font-size: 0.95rem;
text-decoration: none;
line-height: 1;
transition: background 0.15s ease;
}
.note-hover-actions button:hover,
.note-hover-actions > a:hover {
background: color-mix(in srgb, var(--text-main) 12%, transparent);
}
.note-hover-actions .spacer {
flex: 1;
}
/* =========================================================
Collapsed input bar — layout fixes
========================================================= */
.note-input-placeholder {
flex: 1;
font-weight: 500;
font-size: 1rem;
color: var(--special-view-muted);
}
/* Override toolbar styling that bleeds into the collapsed bar's action zone */
.note-input-collapsed .note-input-actions {
padding: 0;
border-top: none;
background: transparent;
flex-shrink: 0;
}
/* =========================================================
Expanded draft editor — layout & component styles
========================================================= */
.note-input-expanded,
.todo-draft-expanded {
display: flex;
flex-direction: column;
overflow: hidden;
}
.todo-draft-list {
padding: 4px 0;
max-height: 220px;
overflow-y: auto;
flex-shrink: 0;
}
.note-input-expanded-actions {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
padding: 8px 10px;
border-top: 1px solid var(--special-view-divider);
background: color-mix(in srgb, var(--special-view-panel-bg) 88%, var(--bg-body));
flex-shrink: 0;
}
.note-input-actions-left {
display: flex;
align-items: center;
gap: 4px;
}
/* "+ Élément de liste" add-item button */
.todo-draft-add-btn {
display: flex;
align-items: center;
gap: 8px;
border: none;
background: transparent;
color: var(--special-view-muted);
cursor: pointer;
font-size: 0.9rem;
font-family: inherit;
padding: 8px 14px;
text-align: left;
width: 100%;
flex-shrink: 0;
transition: color 0.15s ease;
}
.todo-draft-add-btn:hover {
color: var(--special-view-strong);
}
.todo-draft-add-btn i {
font-size: 18px;
}
/* "Fermer" close button — pill style, override the transparent-btn rule */
.note-input-close-btn {
display: inline-flex !important;
align-items: center !important;
background: var(--special-view-panel-alt) !important;
color: var(--special-view-strong) !important;
border: 1px solid var(--special-view-border) !important;
border-radius: 8px !important;
padding: 6px 16px !important;
font-size: 0.9rem !important;
font-family: inherit;
cursor: pointer;
flex-shrink: 0;
width: auto !important;
height: auto !important;
transition: background 0.15s ease;
}
.note-input-close-btn:hover {
background: var(--tile-bg-hover, var(--bg-card-hover)) !important;
}
/* Palette button inside editor toolbar */
.note-input-palette-btn,
.note-input-format-btn {
display: inline-flex;
align-items: center;
justify-content: center;
width: 32px;
height: 32px;
border: none;
background: transparent;
color: var(--special-view-strong);
border-radius: 8px;
cursor: pointer;
padding: 0;
font-size: 1.1rem;
transition: background 0.15s ease;
}
.note-input-palette-btn:hover,
.note-input-format-btn:hover {
background: color-mix(in srgb, var(--text-main) 10%, transparent);
}
/* Draft title input — bolder heading style */
.note-input-container .todo-draft-title,
.note-input-container .note-input-title {
font-weight: 600;
font-size: 1.05rem;
padding: 12px 14px 4px;
}
/* =========================================================
Draft editor — checklist item row (3-col grid)
========================================================= */
.todo-draft-row {
display: grid;
grid-template-columns: 26px minmax(0, 1fr) 34px;
align-items: center;
gap: 6px;
padding: 2px 4px;
}
/* =========================================================
Note/todo card — tag pill inline layout + × button
========================================================= */
.note-card .note-tag {
display: inline-flex;
align-items: center;
gap: 3px;
}
.note-card .note-tag-remove-btn {
display: inline-flex;
align-items: center;
justify-content: center;
width: 14px;
height: 14px;
border: none;
border-radius: 999px;
background: color-mix(in srgb, var(--primary) 30%, transparent);
color: var(--special-view-chip-text);
cursor: pointer;
padding: 0;
line-height: 1;
font-size: 0.7rem;
flex-shrink: 0;
transition: background 0.15s ease;
}
.note-card .note-tag-remove-btn:hover {
background: color-mix(in srgb, var(--primary) 55%, transparent);
}
/* =========================================================
Modal — scrollable content area
========================================================= */
.note-modal-content {
flex: 1 1 auto;
overflow-y: auto;
padding: 0 20px 12px;
}
/* =========================================================
Modal — tags row
========================================================= */
.note-modal-tags {
display: flex;
flex-wrap: wrap;
gap: 6px;
padding: 6px 20px 10px;
flex-shrink: 0;
}
/* =========================================================
Modal — pin toggle button (top-right of header)
========================================================= */
.note-modal-pin-toggle {
display: inline-flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
width: 32px;
height: 32px;
border: none;
border-radius: 50%;
background: transparent;
color: var(--special-view-muted);
cursor: pointer;
padding: 0;
font-size: 1rem;
transition: background 0.15s ease, color 0.15s ease;
}
.note-modal-pin-toggle.active {
color: var(--primary);
}
/* =========================================================
Modal — actions row components
========================================================= */
.note-modal-actions-left {
display: flex;
align-items: center;
gap: 4px;
}
.note-modal-color-picker {
position: relative;
}
/* Icon buttons in modal actions (palette, edit, delete) */
.note-modal-actions button,
.note-modal-actions > div > button,
.note-modal-actions a {
display: inline-flex;
align-items: center;
justify-content: center;
width: 32px;
height: 32px;
border: none;
border-radius: 8px;
background: transparent;
color: var(--special-view-strong);
cursor: pointer;
padding: 0;
font-size: 1rem;
text-decoration: none;
transition: background 0.15s ease;
}
.note-modal-actions button:hover,
.note-modal-actions > div > button:hover,
.note-modal-actions a:hover {
background: color-mix(in srgb, var(--text-main) 10%, transparent);
}
/* "Fermer" close button in modal — pill style */
.note-modal-close-btn {
display: inline-flex !important;
align-items: center !important;
background: var(--special-view-panel-alt) !important;
color: var(--special-view-strong) !important;
border: 1px solid var(--special-view-border) !important;
border-radius: 8px !important;
padding: 6px 20px !important;
font-size: 0.9rem !important;
font-family: inherit;
cursor: pointer;
width: auto !important;
height: auto !important;
transition: background 0.15s ease;
}
.note-modal-close-btn:hover {
background: var(--tile-bg-hover, var(--bg-card-hover)) !important;
}
/* Modal title — editable appearance */
.note-modal-header .note-title {
flex: 1;
font-size: 1.15rem;
font-weight: 600;
line-height: 1.3;
margin: 0;
color: inherit;
word-break: break-word;
}