Build and Push Docker Image / build-and-push (push) Successful in 5m7s
- Settings > Preferences: typeface, line spacing, verse numbers, highlight colour names, My Studies grid/list and sort, verse-of-the-day Bible and picture, commentary sources, study templates - Header uses one fixed width and reserves scrollbar space so the nav sits in the same place on every page Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
139 lines
3.5 KiB
CSS
139 lines
3.5 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;
|
|
}
|
|
|
|
/* iPhone and iPad: don't inflate text when the phone is turned sideways, no grey flash on tap, and no
|
|
double-tap-to-zoom delay on controls. */
|
|
html {
|
|
scrollbar-gutter: stable; /* pages with and without a scrollbar line up the same */
|
|
-webkit-text-size-adjust: 100%;
|
|
text-size-adjust: 100%;
|
|
-webkit-tap-highlight-color: transparent;
|
|
}
|
|
button,
|
|
a,
|
|
select,
|
|
summary,
|
|
label,
|
|
input,
|
|
[role='button'],
|
|
[role='tab'],
|
|
[role='option'],
|
|
[role='menuitem'] {
|
|
touch-action: manipulation;
|
|
}
|
|
|
|
/* iOS Safari zooms the whole page when a text field under 16px gets focus (and doesn't zoom back).
|
|
On touch screens, text fields are at least 16px. */
|
|
@media (pointer: coarse) {
|
|
input:not([type='checkbox']):not([type='radio']):not([type='range']):not([type='color']):not([type='file']):not([type='button']):not([type='submit']),
|
|
select:not([data-keep-size]),
|
|
textarea:not([data-keep-size]) {
|
|
font-size: max(16px, 1em);
|
|
}
|
|
|
|
/* Small text links and buttons (no padding of their own) get a finger-sized height. */
|
|
:is(button, a).text-xs:not([class^='p-'], [class^='py-'], [class*=' p-'], [class*=' py-']) {
|
|
padding-block: 0.55rem;
|
|
}
|
|
|
|
/* Small pill buttons (tags, chips) keep their look but get a bigger area to tap. */
|
|
:where(button.rounded-full) {
|
|
position: relative;
|
|
}
|
|
:where(button.rounded-full)::after {
|
|
content: '';
|
|
position: absolute;
|
|
inset: -7px -3px;
|
|
}
|
|
}
|
|
|
|
/* 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;
|
|
}
|