Papure/src/app.css
agent 4acb3a614c Replace page glow with a flat outline and add a canvas grid
Pages now get a crisp 1 screen-px outline instead of a blurred shadow,
and the canvas background shows faint world-anchored grid lines that
pan and zoom with the pages (spacing steps up ×4 when zoomed out).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 17:27:39 +00:00

205 lines
3.9 KiB
CSS

@font-face {
font-family: 'Inter';
font-weight: 400;
font-style: normal;
font-display: swap;
src: url('/fonts/Inter_400Regular.ttf') format('truetype');
}
@font-face {
font-family: 'Inter';
font-weight: 400;
font-style: italic;
font-display: swap;
src: url('/fonts/Inter_400Regular_Italic.ttf') format('truetype');
}
@font-face {
font-family: 'Inter';
font-weight: 600;
font-style: normal;
font-display: swap;
src: url('/fonts/Inter_600SemiBold.ttf') format('truetype');
}
@font-face {
font-family: 'Inter';
font-weight: 700;
font-style: normal;
font-display: swap;
src: url('/fonts/Inter_700Bold.ttf') format('truetype');
}
@font-face {
font-family: 'Inter';
font-weight: 700;
font-style: italic;
font-display: swap;
src: url('/fonts/Inter_700Bold_Italic.ttf') format('truetype');
}
@font-face {
font-family: 'JetBrains Mono';
font-weight: 400;
font-style: normal;
font-display: swap;
src: url('/fonts/JetBrainsMono_400Regular.ttf') format('truetype');
}
/* Obsidian-like palette. */
:root {
--bg: #ffffff;
--bg-2: #f6f6f6;
--bg-3: #ececec;
--bg-canvas: #efefef;
--border: #e3e3e3;
--hover: #e9e9e9;
--text: #222222;
--muted: #6b6b6b;
--faint: #a6a6a6;
--accent: #705dcf;
--accent-soft: rgba(112, 93, 207, 0.14);
--accent-text: #ffffff;
--danger: #e03e3e;
--success: #2f9e5c;
--warn: #d9901b;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.06), 0 4px 16px rgba(0, 0, 0, 0.08);
--page-line: rgba(0, 0, 0, 0.18);
--grid-line: rgba(0, 0, 0, 0.05);
--ghost: rgba(0, 0, 0, 0.045);
--ghost-border: rgba(0, 0, 0, 0.12);
--radius: 6px;
--ui-font: 'Inter', -apple-system, 'Segoe UI', system-ui, sans-serif;
--mono-font: 'JetBrains Mono', ui-monospace, monospace;
color-scheme: light;
}
:root[data-theme='dark'] {
--bg: #1e1e1e;
--bg-2: #262626;
--bg-3: #303030;
--bg-canvas: #161616;
--border: #363636;
--hover: #333333;
--text: #dadada;
--muted: #a3a3a3;
--faint: #666666;
--accent: #8a7cf0;
--accent-soft: rgba(138, 124, 240, 0.18);
--accent-text: #ffffff;
--danger: #fb464c;
--success: #44cf6e;
--warn: #e9973f;
--shadow: 0 1px 2px rgba(0, 0, 0, 0.3), 0 6px 20px rgba(0, 0, 0, 0.35);
--page-line: rgba(255, 255, 255, 0.16);
--grid-line: rgba(255, 255, 255, 0.04);
--ghost: rgba(255, 255, 255, 0.04);
--ghost-border: rgba(255, 255, 255, 0.14);
color-scheme: dark;
}
* {
box-sizing: border-box;
}
html,
body {
height: 100%;
margin: 0;
overflow: hidden;
overscroll-behavior: none;
}
body {
background: var(--bg);
color: var(--text);
font: 13px/1.4 var(--ui-font);
-webkit-font-smoothing: antialiased;
}
button {
font: inherit;
color: inherit;
}
input,
select {
font: inherit;
color: var(--text);
background: var(--bg);
border: 1px solid var(--border);
border-radius: 4px;
padding: 5px 8px;
outline: none;
}
input:focus,
select:focus {
border-color: var(--accent);
box-shadow: 0 0 0 2px var(--accent-soft);
}
/* Small square icon button, the Obsidian ribbon/toolbar look. */
.icon-btn {
display: inline-grid;
place-items: center;
width: 30px;
height: 30px;
padding: 0;
border: 0;
border-radius: 4px;
background: transparent;
color: var(--muted);
cursor: pointer;
flex: none;
}
.icon-btn:hover {
background: var(--hover);
color: var(--text);
}
.icon-btn.active {
color: var(--accent);
background: var(--accent-soft);
}
.icon-btn:disabled {
opacity: 0.35;
cursor: default;
background: transparent;
}
.btn {
display: inline-flex;
align-items: center;
gap: 6px;
border: 1px solid var(--border);
background: var(--bg-2);
border-radius: 4px;
padding: 6px 12px;
cursor: pointer;
}
.btn:hover {
background: var(--hover);
}
.btn.primary {
background: var(--accent);
border-color: var(--accent);
color: var(--accent-text);
}
.btn.primary:hover {
filter: brightness(1.08);
}
::-webkit-scrollbar {
width: 10px;
height: 10px;
}
::-webkit-scrollbar-thumb {
background: var(--bg-3);
border-radius: 10px;
border: 3px solid transparent;
background-clip: padding-box;
}
::-webkit-scrollbar-track {
background: transparent;
}