Files
vega/src/index.css
Jure 1d5d43ae78 V4V: keysend payments, recipient breakdown, and episode nudge
- Add payKeysendViaNWC for node pubkey recipients with TLV records
- Route V4V payments to keysend or LNURL-pay based on recipient type
- Show recipient split breakdown in V4V panel (name + percentage)
- Add V4V nudge: brief tooltip when V4V episode starts (once per session)
- Highlight V4V button in amber when episode has recipients but streaming off
- Enhanced V4V badge in episode list with lightning icon and pill style
2026-04-04 17:58:14 +02:00

146 lines
5.5 KiB
CSS

@import "tailwindcss";
@theme {
--color-bg: #0a0a0a;
--color-bg-raised: #111111;
--color-bg-hover: #1a1a1a;
--color-border: #222222;
--color-border-subtle: #1a1a1a;
--color-text: #e0e0e0;
--color-text-muted: #7c7c7c;
--color-text-dim: #797979;
--color-accent: #8b5cf6;
--color-accent-hover: #7c3aed;
--color-accent-text: #ffffff;
--color-zap: #f59e0b;
--color-zap-text: #000000;
--color-danger: #ef4444;
--color-warning: #f59e0b;
--color-success: #22c55e;
--font-mono: "JetBrains Mono", "Fira Code", "SF Mono", monospace;
--font-reading: Georgia, "Times New Roman", "Noto Serif", serif;
}
* {
-webkit-user-select: none;
user-select: none;
}
/* Allow text selection in note content */
.note-content {
-webkit-user-select: text;
user-select: text;
}
body {
background: var(--color-bg);
color: var(--color-text);
font-family: var(--font-mono);
font-size: 13px;
line-height: 1.5;
margin: 0;
overflow: hidden;
}
/* Allow text selection in article editor */
.article-editor textarea,
.article-editor input {
-webkit-user-select: text;
user-select: text;
}
/* Article preview prose styles */
.article-preview {
-webkit-user-select: text;
user-select: text;
font-family: var(--font-reading);
font-size: 15px;
}
.article-preview h1 { font-size: 1.6em; font-weight: bold; margin: 1.2em 0 0.5em; }
.article-preview h2 { font-size: 1.3em; font-weight: bold; margin: 1.2em 0 0.5em; }
.article-preview h3 { font-size: 1.1em; font-weight: bold; margin: 1em 0 0.4em; }
.article-preview p { margin: 0.8em 0; line-height: 1.75; }
.article-preview ul { list-style: disc; padding-left: 1.5em; margin: 0.8em 0; }
.article-preview ol { list-style: decimal; padding-left: 1.5em; margin: 0.8em 0; }
.article-preview li { margin: 0.3em 0; line-height: 1.7; }
.article-preview blockquote { border-left: 3px solid var(--color-accent); padding-left: 1em; color: var(--color-text-muted); margin: 1em 0; }
.article-preview code { font-family: var(--font-mono); background: var(--color-bg-raised); padding: 0.1em 0.4em; font-size: 0.9em; border-radius: 2px; }
.article-preview pre { background: var(--color-bg-raised); border: 1px solid var(--color-border); padding: 1em; overflow-x: auto; margin: 1em 0; }
.article-preview pre code { background: none; padding: 0; }
.article-preview a { color: var(--color-accent); text-decoration: underline; text-underline-offset: 2px; }
.article-preview hr { border: none; border-top: 1px solid var(--color-border); margin: 1.5em 0; }
.article-preview strong { color: var(--color-text); font-weight: 600; }
.article-preview img { max-width: 100%; border-radius: 2px; margin: 0.5em 0; }
/* Article reader — slightly larger type than the editor preview */
.prose-article { -webkit-user-select: text; user-select: text; color: var(--color-text); font-family: var(--font-reading); font-size: 17px; line-height: 1.8; }
.prose-article h1 { font-size: 1.7em; font-weight: bold; margin: 1.4em 0 0.5em; }
.prose-article h2 { font-size: 1.35em; font-weight: bold; margin: 1.4em 0 0.5em; border-bottom: 1px solid var(--color-border); padding-bottom: 0.3em; }
.prose-article h3 { font-size: 1.15em; font-weight: bold; margin: 1.2em 0 0.4em; }
.prose-article p { margin: 0.9em 0; }
.prose-article ul { list-style: disc; padding-left: 1.6em; margin: 0.9em 0; }
.prose-article ol { list-style: decimal; padding-left: 1.6em; margin: 0.9em 0; }
.prose-article li { margin: 0.35em 0; }
.prose-article blockquote { border-left: 3px solid var(--color-accent); padding-left: 1.1em; color: var(--color-text-muted); margin: 1.2em 0; font-style: italic; }
.prose-article code { font-family: var(--font-mono); background: var(--color-bg-raised); padding: 0.15em 0.4em; font-size: 0.88em; border-radius: 2px; }
.prose-article pre { background: var(--color-bg-raised); border: 1px solid var(--color-border); padding: 1.1em; overflow-x: auto; margin: 1.2em 0; border-radius: 2px; }
.prose-article pre code { background: none; padding: 0; }
.prose-article a { color: var(--color-accent); text-decoration: underline; text-underline-offset: 3px; }
.prose-article hr { border: none; border-top: 1px solid var(--color-border); margin: 2em 0; }
.prose-article strong { color: var(--color-text); font-weight: 600; }
.prose-article img { max-width: 100%; border-radius: 2px; margin: 1em 0; }
/* View transition fade-in */
@keyframes fade-in {
from { opacity: 0; transform: translateY(4px); }
to { opacity: 1; transform: translateY(0); }
}
.view-fade-in {
animation: fade-in 150ms ease-out;
}
/* V4V nudge — slides in, holds, then fades out */
@keyframes nudge-in {
0% { opacity: 0; transform: translateY(4px); }
10% { opacity: 1; transform: translateY(0); }
80% { opacity: 1; }
100% { opacity: 0; }
}
.animate-fade-in {
animation: nudge-in 5s ease-out forwards;
}
/* Toast slide-in */
@keyframes toast-in {
from { opacity: 0; transform: translateX(16px); }
to { opacity: 1; transform: translateX(0); }
}
.toast-enter {
animation: toast-in 200ms ease-out;
}
/* Reduced motion: collapse all animations/transitions */
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}
/* Scrollbar */
::-webkit-scrollbar {
width: 12px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: var(--color-border);
border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover {
background: var(--color-text-dim);
}