diff --git a/src/app/ipfs2filecoin/components/ComparisonTable.tsx b/src/app/ipfs2filecoin/components/ComparisonTable.tsx
index 57d82f5b..042f28f2 100644
--- a/src/app/ipfs2filecoin/components/ComparisonTable.tsx
+++ b/src/app/ipfs2filecoin/components/ComparisonTable.tsx
@@ -27,7 +27,9 @@ function MobileComparisonCards() {
key={`${service} ${detail}`}
className={clsx(
'rounded-xl border border-(--color-border-muted) p-4',
- highlighted && 'bg-(--color-card-background-hover)',
+ highlighted
+ ? 'bg-(--color-surface-accent)'
+ : 'bg-(--color-card-background)',
)}
>
+
{/*
- `card-background-hover` is the only subtle-surface value the token
- set has: zinc-50 on light sections, a lift rather than a wash on
- dark ones. Named for hover, used here as a static header tint.
+ `surface-muted` is the local subtle-surface token, one step off the
+ card the table sits on in every section variant. Not
+ `card-background-hover`, which collapses to white inside a `gray`
+ section and painted the header lighter than the rows below it.
*/}
-
+
|
Where the data lives
|
@@ -82,14 +85,18 @@ function DesktopComparisonTable() {
{pricingComparison.map(
({ service, detail, storagePerTbMonth, egress, highlighted }) => (
- // Weight and colour sit on the row so the highlighted line reads
- // as one emphasised entry rather than two bold cells and a third
- // that quietly drops back to the body colour.
+ // Weight, colour and fill sit on the row so the highlighted line
+ // reads as one emphasised entry rather than two bold cells and a
+ // third that quietly drops back to the body colour. The fill is
+ // the brand tint rather than `surface-muted`: sharing the header's
+ // tint would merge the two, since the highlighted row is the first
+ // one under it.
{/*
diff --git a/src/app/ipfs2filecoin/components/CostEstimator.tsx b/src/app/ipfs2filecoin/components/CostEstimator.tsx
index 31ae58e6..81303c44 100644
--- a/src/app/ipfs2filecoin/components/CostEstimator.tsx
+++ b/src/app/ipfs2filecoin/components/CostEstimator.tsx
@@ -243,7 +243,10 @@ function EstimateBreakdown({ estimate }: { estimate: CostEstimate }) {
{rows.map(({ label, amount, note }) => (
@@ -253,7 +256,8 @@ function EstimateBreakdown({ estimate }: { estimate: CostEstimate }) {
>
-
{label}
-
+ {/* Keep the small notes above 4.5:1 contrast on the muted surface. */}
+
{note}
diff --git a/src/app/ipfs2filecoin/page.tsx b/src/app/ipfs2filecoin/page.tsx
index 39bfe07d..449be52c 100644
--- a/src/app/ipfs2filecoin/page.tsx
+++ b/src/app/ipfs2filecoin/page.tsx
@@ -183,7 +183,7 @@ export default function IpfsToFilecoin() {
Estimate your deposit
diff --git a/src/styles/globals.css b/src/styles/globals.css
index 318a2d5d..f3525023 100644
--- a/src/styles/globals.css
+++ b/src/styles/globals.css
@@ -12,3 +12,25 @@
--animate-slide-down: slideDown 300ms ease-out;
--animate-slide-up: slideUp 300ms ease-out;
}
+
+/*
+ Two surface tints the ui-filecoin token set has no value for.
+ `--color-card-background-hover` looks like the subtle-surface token but is not
+ one: inside a `gray` section it collapses to white, so using it as a header
+ tint or a highlight painted the emphasised part lighter than the card around
+ it. These resolve one step off the card surface in every section variant.
+*/
+:root,
+.light-section {
+ --color-surface-muted: var(--color-zinc-50);
+ --color-surface-accent: var(--color-brand-50);
+}
+
+.gray-section {
+ --color-surface-muted: var(--color-zinc-100);
+}
+
+.dark-section {
+ --color-surface-muted: var(--color-zinc-800);
+ --color-surface-accent: var(--color-brand-950);
+}