fix(ui): lift the remaining explainer prose out of muted

Residual grey-on-content sweep after the page-description lift:
multi-sentence explainer paragraphs are content and read in the
regular foreground, matching the metric sub-page explainer that set
the pattern — the labs biomarker and custom-metric detail leads, the
recovery metric and resilience explainers, and the onboarding
carousel/done-screen body copy. Muted stays reserved for meta:
timestamps, units, captions under a stat, one-sentence description
slots.
This commit is contained in:
Marc-André Bombeck committed 2026-07-05 22:01:15 +02:00
1 parent eb730bf7f3
commit 72ad228f3e
6 files changed
+9 -15

No files matched your search

@@ -172,7 +172,7 @@ export function CustomMetricDetail({
<h1 className="text-2xl font-bold tracking-tight">
{metric?.name ?? t("customMetrics.detail.title")}
</h1>
<p className="text-muted-foreground text-sm leading-relaxed">
<p className="text-foreground text-sm leading-relaxed">
{description}
</p>
</header>
@@ -262,9 +262,7 @@ export function CustomMetricDetail({
</div>
</div>
<p className="text-muted-foreground text-sm leading-relaxed">
{description}
</p>
<p className="text-foreground text-sm leading-relaxed">{description}</p>
{isLoading ? (
<Card>
@@ -84,9 +84,7 @@ export function RecoveryMetricBlock({
with no skipped level. */}
<h2 className="text-base font-semibold">{title}</h2>
</div>
<p className="text-muted-foreground text-sm leading-relaxed">
{explainer}
</p>
<p className="text-foreground text-sm leading-relaxed">{explainer}</p>
</div>
<MetricStatStrip
@@ -113,7 +113,7 @@ export function ResilienceTile() {
) : null}
</CardHeader>
<CardContent className="space-y-3">
<p className="text-muted-foreground text-sm leading-relaxed">
<p className="text-foreground text-sm leading-relaxed">
{t("insights.resilience.explainer")}
</p>
{count < MIN_TREND_READINGS ? (
+2 -4
View File
@@ -245,7 +245,7 @@ export function LabBiomarkerDetail({ biomarkerId }: { biomarkerId: string }) {
<h1 className="text-2xl font-bold tracking-tight">
{marker?.name ?? t("labs.detail.title")}
</h1>
<p className="text-muted-foreground text-sm leading-relaxed">
<p className="text-foreground text-sm leading-relaxed">
{description}
</p>
</header>
@@ -340,9 +340,7 @@ export function LabBiomarkerDetail({ biomarkerId }: { biomarkerId: string }) {
heading, mirroring the metric sub-pages' explainer caption. Computed
once above (catalog desc → user `context` → generic fallback) so a
catalog-less marker still carries a description. */}
<p className="text-muted-foreground text-sm leading-relaxed">
{description}
</p>
<p className="text-foreground text-sm leading-relaxed">{description}</p>
{isLoading ? (
<Card>
+1 -1
View File
@@ -81,7 +81,7 @@ export function DoneScreen() {
<p className="text-foreground text-sm font-medium">
{t("onboarding.done.aiTitle")}
</p>
<p className="text-muted-foreground text-sm leading-relaxed">
<p className="text-foreground text-sm leading-relaxed">
{t("onboarding.done.aiBody")}
</p>
<Link
@@ -211,7 +211,7 @@ export function WelcomeCarousel() {
>
{t(slide.titleKey)}
</h2>
<p className="text-muted-foreground text-sm leading-relaxed">
<p className="text-foreground text-sm leading-relaxed">
{t(slide.bodyKey)}
</p>
</article>
@@ -302,7 +302,7 @@ export function WelcomeCarousel() {
/>
<label
htmlFor={disclaimerId}
className="text-muted-foreground text-sm leading-relaxed"
className="text-foreground text-sm leading-relaxed"
>
{t("onboarding.disclaimer.acknowledge")}{" "}
<Link