Files
backnotprop__plannotator/index.css
T
Michael Ramos 92d4f73b66 Initial commit: Plannotator - Plan review UI for Claude Code
A React-based annotation tool that intercepts Claude Code's ExitPlanMode
to provide visual plan review with collaborative features.

Features:
- Markdown plan rendering with syntax highlighting
- Text selection annotations (delete, replace, insert, comment)
- Redline mode for quick deletion marking
- URL-based sharing via compressed hash (no server storage)
- Tater identity system for anonymous collaboration
- Export to diff format
- Dark/light theme support
- Tater sprite easter egg

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 18:14:10 -08:00

214 lines
5.6 KiB
CSS

@import "tailwindcss";
:root {
--background: oklch(0.13 0.02 260);
--foreground: oklch(0.95 0.01 260);
--card: oklch(0.16 0.02 260);
--card-foreground: oklch(0.95 0.01 260);
--popover: oklch(0.18 0.025 260);
--popover-foreground: oklch(0.95 0.01 260);
--primary: oklch(0.75 0.18 280);
--primary-foreground: oklch(0.13 0.02 260);
--secondary: oklch(0.65 0.15 180);
--secondary-foreground: oklch(0.13 0.02 260);
--muted: oklch(0.22 0.02 260);
--muted-foreground: oklch(0.65 0.02 260);
--accent: oklch(0.70 0.20 60);
--accent-foreground: oklch(0.13 0.02 260);
--destructive: oklch(0.65 0.22 25);
--destructive-foreground: oklch(0.98 0 0);
--border: oklch(0.28 0.02 260);
--input: oklch(0.22 0.02 260);
--ring: oklch(0.75 0.18 280);
--font-sans: 'Inter', system-ui, sans-serif;
--font-mono: 'JetBrains Mono', 'Fira Code', monospace;
--radius: 0.75rem;
}
.light {
--background: oklch(0.97 0.005 260);
--foreground: oklch(0.18 0.02 260);
--card: oklch(1 0 0);
--card-foreground: oklch(0.18 0.02 260);
--popover: oklch(1 0 0);
--popover-foreground: oklch(0.18 0.02 260);
--primary: oklch(0.50 0.25 280);
--primary-foreground: oklch(1 0 0);
--secondary: oklch(0.50 0.18 180);
--secondary-foreground: oklch(1 0 0);
--muted: oklch(0.92 0.01 260);
--muted-foreground: oklch(0.40 0.02 260);
--accent: oklch(0.60 0.22 50);
--accent-foreground: oklch(0.18 0.02 260);
--destructive: oklch(0.50 0.25 25);
--destructive-foreground: oklch(1 0 0);
--border: oklch(0.88 0.01 260);
--input: oklch(0.92 0.01 260);
--ring: oklch(0.50 0.25 280);
}
@theme inline {
--color-background: var(--background);
--color-foreground: var(--foreground);
--color-card: var(--card);
--color-card-foreground: var(--card-foreground);
--color-popover: var(--popover);
--color-popover-foreground: var(--popover-foreground);
--color-primary: var(--primary);
--color-primary-foreground: var(--primary-foreground);
--color-secondary: var(--secondary);
--color-secondary-foreground: var(--secondary-foreground);
--color-muted: var(--muted);
--color-muted-foreground: var(--muted-foreground);
--color-accent: var(--accent);
--color-accent-foreground: var(--accent-foreground);
--color-destructive: var(--destructive);
--color-destructive-foreground: var(--destructive-foreground);
--color-border: var(--border);
--color-input: var(--input);
--color-ring: var(--ring);
--font-sans: var(--font-sans);
--font-mono: var(--font-mono);
--radius-sm: calc(var(--radius) - 4px);
--radius-md: calc(var(--radius) - 2px);
--radius-lg: var(--radius);
--radius-xl: calc(var(--radius) + 4px);
}
* {
border-color: var(--border);
}
body {
font-family: var(--font-sans);
background: var(--background);
color: var(--foreground);
font-feature-settings: "ss01", "ss02", "cv01";
}
/* Subtle grid background */
.bg-grid {
background-image:
linear-gradient(to right, oklch(0.25 0.02 260 / 0.5) 1px, transparent 1px),
linear-gradient(to bottom, oklch(0.25 0.02 260 / 0.5) 1px, transparent 1px);
background-size: 24px 24px;
}
.light .bg-grid {
background-image:
linear-gradient(to right, oklch(0.90 0.01 260 / 0.6) 1px, transparent 1px),
linear-gradient(to bottom, oklch(0.90 0.01 260 / 0.6) 1px, transparent 1px);
}
/* Glow effects */
.glow-primary {
box-shadow: 0 0 20px oklch(0.75 0.18 280 / 0.15), 0 0 40px oklch(0.75 0.18 280 / 0.05);
}
.glow-sm {
box-shadow: 0 0 10px oklch(0.75 0.18 280 / 0.1);
}
/* Custom scrollbar */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--muted-foreground); }
/* Code blocks */
pre code.hljs {
display: block;
padding: 1rem;
border-radius: var(--radius);
background: var(--muted) !important;
font-size: 0.8125rem;
line-height: 1.6;
}
/* Light mode code - override hljs dark theme */
.light pre code.hljs {
color: oklch(0.25 0.02 260) !important;
}
.light .hljs-keyword,
.light .hljs-selector-tag,
.light .hljs-built_in,
.light .hljs-name,
.light .hljs-tag {
color: oklch(0.45 0.25 280) !important;
}
.light .hljs-string,
.light .hljs-title,
.light .hljs-section,
.light .hljs-attribute,
.light .hljs-literal,
.light .hljs-template-tag,
.light .hljs-template-variable,
.light .hljs-type {
color: oklch(0.45 0.18 150) !important;
}
.light .hljs-comment,
.light .hljs-quote {
color: oklch(0.55 0.02 260) !important;
font-style: italic;
}
.light .hljs-number,
.light .hljs-symbol,
.light .hljs-bullet {
color: oklch(0.50 0.20 50) !important;
}
.light .hljs-attr,
.light .hljs-variable,
.light .hljs-template-variable,
.light .hljs-class .hljs-title,
.light .hljs-function {
color: oklch(0.45 0.20 280) !important;
}
/* Selection */
::selection {
background: oklch(0.75 0.18 280 / 0.3);
}
/* Smooth transitions */
* {
transition-property: color, background-color, border-color, box-shadow, opacity, transform;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
}
/* Focus states */
:focus-visible {
outline: 2px solid var(--ring);
outline-offset: 2px;
}
/* Annotation highlights */
.annotation-highlight {
border-radius: 2px;
padding: 0 2px;
margin: 0 -2px;
}
.annotation-highlight.deletion {
background: oklch(0.65 0.22 25 / 0.25);
text-decoration: line-through;
text-decoration-color: var(--destructive);
text-decoration-thickness: 2px;
}
.annotation-highlight.comment {
background: oklch(0.70 0.20 60 / 0.2);
border-bottom: 2px solid var(--accent);
}
.annotation-highlight:hover {
filter: brightness(1.2);
cursor: pointer;
}