Files
study-bible-project/src/index.css
T
nmemmertandClaude Sonnet 5.5 a0971eab29
Build and Push Docker Image / build-and-push (push) Failing after 19s
Reader: visible text selection in every theme; highlights follow across translations
Selection
- Selected text uses a per-theme colour (it was nearly invisible on Dark)
- The colour picker also appears on touch screens after dragging the selection
  handles, and sits below the selection there so the system menu doesn't cover it

Highlights
- Each highlight remembers its translation and whether it covers the whole verse
- In another translation the same words are found again (ignoring case and
  punctuation); whole-verse highlights cover the whole verse; when the wording
  differs, the verse gets a small colour dot instead of marking the wrong words
- Older highlights are checked against their saved words instead of trusted
- Server keeps the new fields

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 09:55:09 -04:00

93 lines
2.2 KiB
CSS

@tailwind base;
@tailwind components;
@tailwind utilities;
:root {
color-scheme: light;
}
html,
body,
#root {
min-height: 100%;
}
body {
margin: 0;
font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
background: #faf7f0; /* the default (paper) theme; replaced by the chosen theme at runtime */
color: #0f172a;
}
/* Selected text follows the reading theme, so it stays visible on dark as well as light pages. */
::selection {
background: var(--r-sel, rgba(15, 23, 42, 0.18));
}
button,
input,
textarea,
select {
font: inherit;
}
/* Top bars leave room for the status bar / notch when the app is installed or full-screen
(env() is 0 in an ordinary browser tab). */
.safe-top {
padding-top: env(safe-area-inset-top, 0px);
}
.scrollbar-thin::-webkit-scrollbar {
width: 9px;
height: 9px;
}
.scrollbar-thin::-webkit-scrollbar-thumb {
background: rgba(148, 163, 184, 0.7);
border-radius: 9999px;
}
.scrollbar-thin::-webkit-scrollbar-track {
background: rgba(148, 163, 184, 0.12);
}
/* A clear ring wherever keyboard focus lands (mouse clicks don't show it). */
:where(button, a, summary, [role='button'], [role='tab'], [role='option'], input, select, textarea):focus-visible {
outline: 2px solid var(--r-accent, #a84e27);
outline-offset: 2px;
}
/* "Skip to content" appears only when it's tabbed to. */
.skip-link {
position: absolute;
left: 0.75rem;
top: -4rem;
z-index: 100;
padding: 0.5rem 0.9rem;
border-radius: 9999px;
background: var(--r-text, #2b2620);
color: var(--r-bg, #faf7f0);
font-size: 0.875rem;
}
.skip-link:focus {
top: 0.75rem;
}
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
scroll-behavior: auto !important;
transition-duration: 0.01ms !important;
}
}
/* Words that differ between two translations (Reader → read beside another Bible) */
.diff-hl {
background: color-mix(in srgb, var(--r-accent, #a84e27) 20%, transparent);
border-bottom: 2px solid color-mix(in srgb, var(--r-accent, #a84e27) 55%, transparent);
border-radius: 2px;
}