tfrere's picture
tfrere HF Staff
feat(frontend): editor refresh (embed studio, comment popover, shiki, top bar, hooks, styles)
76fc93a
/* ============================================================================ */
/* Editor panels & forms */
/* */
/* Image upload card, footnote tooltip, citation panel overlay. */
/* ============================================================================ */
/* ---- Image upload card ---- */
.image-upload-card {
border: 2px dashed var(--border-color);
border-radius: 12px;
padding: 2.5rem 1.5rem;
margin: 1em 0;
display: flex;
flex-direction: column;
align-items: center;
gap: 1rem;
transition: border-color 0.2s, background 0.2s;
user-select: none;
}
.image-upload-card:hover {
border-color: var(--muted-color);
background: var(--bg-hover);
}
.image-upload-card.dragging {
border-color: var(--accent-light);
background: var(--accent-bg);
}
.image-upload-card-icon { color: var(--text-faint); }
.image-upload-card-actions {
display: flex;
gap: 0.5rem;
}
.image-upload-btn {
border: none;
border-radius: 6px;
padding: 0.45rem 1rem;
font-size: 0.8125rem;
font-family: inherit;
font-weight: 500;
cursor: pointer;
transition: background 0.15s, color 0.15s;
}
.image-upload-btn.primary {
background: var(--accent-bg);
color: var(--accent-text);
}
.image-upload-btn.primary:hover { background: var(--accent-bg-hover); }
.image-upload-btn.secondary {
background: var(--code-bg);
color: var(--muted-color);
}
.image-upload-btn.secondary:hover {
background: var(--code-bg);
color: var(--text-color);
}
.image-upload-card-hint {
font-size: 0.75rem;
color: var(--text-faint);
margin: 0;
}
.image-upload-card-url {
display: flex;
flex-direction: column;
align-items: center;
gap: 0.75rem;
width: 100%;
max-width: 400px;
}
.image-upload-url-input {
width: 100%;
padding: 0.5rem 0.75rem;
border: 1px solid var(--border-color);
border-radius: 6px;
background: var(--code-bg);
color: var(--text-color);
font-size: 0.8125rem;
font-family: inherit;
outline: none;
transition: border-color 0.15s;
}
.image-upload-url-input:focus { border-color: var(--border-focus); }
.image-upload-url-input::placeholder { color: var(--text-faint); }
/* ---- Footnote tooltip ---- */
.footnote-tooltip-input {
width: 100%;
background: var(--code-bg);
border: 1px solid var(--border-color);
border-radius: 4px;
color: var(--text-color);
font-size: 12px;
padding: 6px 8px;
resize: vertical;
outline: none;
font-family: inherit;
line-height: 1.5;
}
.footnote-tooltip-input:focus { border-color: var(--border-focus); }
.footnote-tooltip-actions {
display: flex;
gap: 8px;
margin-top: 8px;
}
.footnote-tooltip-btn {
background: none;
border: none;
font-size: 11px;
cursor: pointer;
padding: 0;
color: rgba(149, 141, 241, 0.8);
}
.footnote-tooltip-btn:hover { color: var(--accent-light); }
.footnote-tooltip-remove {
color: var(--danger) !important;
opacity: 0.8;
}
.footnote-tooltip-remove:hover { opacity: 1 !important; }
/* ---- Citation panel overlay ---- */
.citation-panel-overlay {
position: fixed;
inset: 0;
background: var(--bg-overlay);
display: flex;
align-items: center;
justify-content: center;
z-index: var(--z-overlay);
}
.citation-panel {
background: var(--bg-surface);
border: 1px solid var(--border-color);
border-radius: 12px;
width: 480px;
max-height: 80vh;
overflow: hidden;
display: flex;
flex-direction: column;
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
}
.citation-panel-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 1rem 1.25rem;
border-bottom: 1px solid var(--border-light);
}
.citation-panel-header h3 {
margin: 0;
font-size: 1rem;
font-weight: 600;
color: var(--text-heading-secondary);
}
.citation-panel-close {
background: none;
border: none;
color: var(--muted-color);
font-size: 1.4rem;
cursor: pointer;
padding: 0;
line-height: 1;
}
.citation-panel-close:hover { color: var(--text-color); }
.citation-panel-body {
padding: 1.25rem;
display: flex;
flex-direction: column;
gap: 0.75rem;
overflow-y: auto;
}
.citation-input {
width: 100%;
padding: 0.55rem 0.75rem;
border: 1px solid var(--border-color);
border-radius: 6px;
background: var(--code-bg);
color: var(--text-color);
font-size: 0.8125rem;
font-family: inherit;
outline: none;
transition: border-color 0.15s;
box-sizing: border-box;
}
.citation-input:focus { border-color: var(--border-focus); }
.citation-input::placeholder { color: var(--text-faint); }
.citation-smart-input {
resize: vertical;
line-height: 1.5;
}
.citation-error {
color: var(--danger);
font-size: 0.75rem;
margin: 0;
}
.citation-resolve-btn {
align-self: flex-end;
padding: 0.5rem 1.25rem;
border: none;
border-radius: 6px;
background: var(--accent-bg);
color: var(--accent-text);
font-size: 0.8125rem;
font-family: inherit;
font-weight: 500;
cursor: pointer;
transition: background 0.15s;
}
.citation-resolve-btn:hover:not(:disabled) { background: var(--accent-bg-hover); }
.citation-resolve-btn:disabled {
opacity: 0.4;
cursor: default;
}
.citation-library-divider {
display: flex;
align-items: center;
gap: 0.75rem;
color: var(--text-faint);
font-size: 0.75rem;
margin-top: 0.25rem;
}
.citation-library-divider::after {
content: "";
flex: 1;
height: 1px;
background: var(--border-light);
}
.citation-library-list {
display: flex;
flex-direction: column;
gap: 0.15rem;
}
.citation-library-item {
display: flex;
align-items: center;
gap: 0.5rem;
padding: 0.5rem 0.65rem;
border-radius: 6px;
transition: background 0.1s;
}
.citation-library-item:hover { background: var(--code-bg); }
.citation-library-info {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
gap: 0.1rem;
}
.citation-library-meta {
color: var(--muted-color);
font-size: 0.75rem;
font-weight: 500;
}
.citation-library-title {
color: var(--muted-color);
font-size: 0.75rem;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.citation-library-insert {
flex-shrink: 0;
width: 26px;
height: 26px;
display: flex;
align-items: center;
justify-content: center;
border: none;
border-radius: 6px;
background: var(--accent-bg);
color: var(--accent-light);
font-size: 1rem;
font-weight: 500;
cursor: pointer;
transition: background 0.15s;
opacity: 0;
}
.citation-library-item:hover .citation-library-insert { opacity: 1; }
.citation-library-insert:hover { background: var(--accent-bg-hover); }