+
+
+ Internal visual QA page, grouped by product. Use the toolbar to force a theme or open a true side-by-side
+ split, the product nav to jump between groups, and each group's summary to collapse it. Items marked
+ Shared across products are global components used everywhere; heavy pages mount on
+ demand.
+
+
+
+ {tokenGroups.map((group) => (
+
+
+ {group.tokens.map(({ token, kind }) => (
+
+
+ {""}
+
+ {token}
+
+ {""}
+
+
+ ))}
+
+
+ ))}
+
+
+ Heading 1
+ Heading 2
+ Heading 3
+ Heading 4
+ Heading 5
+ Heading 6
+
+ Body copy with bold, italic, deleted,{" "}
+ a link, and inline code. A{" "}
+
+ linked code
+ {" "}
+ too.
+
+
+ - Unordered item one
+ -
+ Unordered item two with
code
+
+
+
+ - Ordered item one
+ - Ordered item two
+
+
+ A blockquote, which picks up the article's quote styling.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Callout note body with inline code.
+
+
+ Callout tip body.
+
+
+ Callout caution body.
+
+
+ Callout danger body.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | Network |
+ Status |
+ Rate limit |
+
+
+
+
+ | Ethereum |
+ Available |
+ 1,000 tokens/s |
+
+
+ | Base |
+ Available |
+ 500 tokens/s |
+
+
+ | Solana |
+ Unavailable |
+ — |
+
+
+
+
+
+
+
+ Accordion body content.
+
+
+ Hidden until expanded.
+
+
+
+
+
+
+ A short description of the first card.
+
+
+ A short description of the second card.
+
+
+ A short description of the third card.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Anchored accordion content.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UI method content.
+
+
+ API method content.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+ }
+
+
+
+
diff --git a/src/features/ccip/components/MintTokenButton.tsx b/src/features/ccip/components/MintTokenButton.tsx
index 03cbd0b0cd8..9af99adb70f 100644
--- a/src/features/ccip/components/MintTokenButton.tsx
+++ b/src/features/ccip/components/MintTokenButton.tsx
@@ -1,5 +1,5 @@
/** @jsxImportSource react */
-import button from "@chainlink/design-system/button.module.css"
+import button from "~/lib/designSystemButton.ts"
import walletStyles from "./WalletConnection.module.css"
import { useEffect, useMemo, useRef, useState } from "react"
diff --git a/src/features/ccip/components/NetworkDropdown.tsx b/src/features/ccip/components/NetworkDropdown.tsx
index a66df885b25..04b3c541d97 100644
--- a/src/features/ccip/components/NetworkDropdown.tsx
+++ b/src/features/ccip/components/NetworkDropdown.tsx
@@ -1,7 +1,7 @@
/** @jsxImportSource react */
import { useCallback, useEffect, useRef, useState, useMemo } from "react"
import styles from "./networkDropdown.module.css"
-import button from "@chainlink/design-system/button.module.css"
+import button from "~/lib/designSystemButton.ts"
import walletStyles from "./WalletConnection.module.css"
import { Contract, BrowserProvider, toQuantity } from "ethers"
import { burnMintAbi } from "@features/abi/index.ts"
diff --git a/src/features/ccip/components/WalletConnection.module.css b/src/features/ccip/components/WalletConnection.module.css
index 11b8182ded7..01eac66d891 100644
--- a/src/features/ccip/components/WalletConnection.module.css
+++ b/src/features/ccip/components/WalletConnection.module.css
@@ -217,8 +217,8 @@
.walletOptionButtonSelected {
/* Persist the same styling as design-system hover state */
border-color: var(--blue-800) !important;
- background-color: var(--blue-100) !important;
- color: var(--blue-800) !important;
+ background-color: var(--surface-accent-strong) !important;
+ color: var(--color-text-link-hover) !important;
font-weight: 600;
}
@@ -226,8 +226,8 @@
.walletOptionButtonSelected:focus,
.walletOptionButtonSelected:focus-visible {
border-color: var(--blue-800) !important;
- background-color: var(--blue-100) !important;
- color: var(--blue-800) !important;
+ background-color: var(--surface-accent-strong) !important;
+ color: var(--color-text-link-hover) !important;
}
.walletOptionIcon {
@@ -275,11 +275,11 @@
}
/* Dark theme support */
-[data-theme="dark"] .connectionMessage {
+:global(html.dark) .connectionMessage {
color: var(--color-text-primary);
}
-[data-theme="dark"] .walletSelectionLabel {
+:global(html.dark) .walletSelectionLabel {
color: var(--color-text-secondary);
}
@@ -475,13 +475,13 @@
}
/* Dark theme support */
-[data-theme="dark"] .connectionStatus {
- background-color: var(--color-success-background-dark, #064e3b);
- border-color: var(--color-success-border-dark, #059669);
+:global(html.dark) .connectionStatus {
+ background: var(--success);
+ border-color: var(--success-border);
}
-[data-theme="dark"] .successIcon {
- color: var(--color-success-dark, #34d399);
+:global(html.dark) .successIcon {
+ color: var(--success-foreground);
}
/* Reduced motion support - 100% consistent */
diff --git a/src/features/ccip/components/WalletSetupGate.module.css b/src/features/ccip/components/WalletSetupGate.module.css
index 8b8842b9648..fdc186dcee4 100644
--- a/src/features/ccip/components/WalletSetupGate.module.css
+++ b/src/features/ccip/components/WalletSetupGate.module.css
@@ -132,18 +132,23 @@
}
}
-/* Dark theme support */
-[data-theme="dark"] .warningContainer {
- background-color: var(--color-warning-background-dark, #451a03);
- border-color: var(--color-warning-border-dark, #92400e);
+/* Same neutral-surface + accent treatment as the tone asides. */
+:global(html.dark) .warningContainer {
+ background-color: var(--tone-surface);
+ border-color: var(--tone-border);
+ box-shadow: inset 3px 0 0 var(--tone-warning);
}
-[data-theme="dark"] .installLink {
- background: var(--color-background-primary);
- border-color: var(--color-border-primary);
+:global(html.dark) .warningIcon {
+ color: var(--tone-warning);
}
-[data-theme="dark"] .installLink:hover {
- background: var(--color-background-secondary);
- border-color: var(--color-border-secondary);
+:global(html.dark) .installLink {
+ background: var(--background);
+ border-color: var(--border);
+}
+
+:global(html.dark) .installLink:hover {
+ background: var(--muted);
+ border-color: var(--gray-600);
}
diff --git a/src/features/ccip/components/WalletSetupGate.tsx b/src/features/ccip/components/WalletSetupGate.tsx
index 5e431da7742..201fc038d40 100644
--- a/src/features/ccip/components/WalletSetupGate.tsx
+++ b/src/features/ccip/components/WalletSetupGate.tsx
@@ -1,6 +1,6 @@
/** @jsxImportSource react */
import React from "react"
-import button from "@chainlink/design-system/button.module.css"
+import button from "~/lib/designSystemButton.ts"
import styles from "./WalletSetupGate.module.css"
import "./container.css"
diff --git a/src/features/ccip/components/api-reference/Errors.astro b/src/features/ccip/components/api-reference/Errors.astro
index 51d3f8e4174..b2389b8555e 100644
--- a/src/features/ccip/components/api-reference/Errors.astro
+++ b/src/features/ccip/components/api-reference/Errors.astro
@@ -99,7 +99,7 @@ const renderMarkdown = (text: string): string => {
th,
td {
text-align: center;
- border: 1px solid #ddd;
+ border: 1px solid var(--color-border-secondary);
padding: 1em;
white-space: nowrap;
}
diff --git a/src/features/ccip/components/api-reference/Events.astro b/src/features/ccip/components/api-reference/Events.astro
index 9552c6ff069..2c450b5ff8a 100644
--- a/src/features/ccip/components/api-reference/Events.astro
+++ b/src/features/ccip/components/api-reference/Events.astro
@@ -96,7 +96,7 @@ const renderMarkdown = (text: string): string => {
th,
td {
text-align: center;
- border: 1px solid #ddd;
+ border: 1px solid var(--color-border-secondary);
padding: 1em;
white-space: nowrap;
}
diff --git a/src/features/ccip/components/billing/Billing.astro b/src/features/ccip/components/billing/Billing.astro
index 64af032f3c8..bfa562d6ff6 100644
--- a/src/features/ccip/components/billing/Billing.astro
+++ b/src/features/ccip/components/billing/Billing.astro
@@ -124,7 +124,7 @@ const messagingFeesFromNonEthereumToNonEthereum = calculateMessagingNetworkFeesD
th,
td {
text-align: center;
- border: 1px solid #ddd;
+ border: 1px solid var(--color-border-secondary);
padding: 1em;
white-space: nowrap;
}
diff --git a/src/features/ccip/components/billing/TokenCalculator.tsx b/src/features/ccip/components/billing/TokenCalculator.tsx
index 5c43622ccb8..03710874d68 100644
--- a/src/features/ccip/components/billing/TokenCalculator.tsx
+++ b/src/features/ccip/components/billing/TokenCalculator.tsx
@@ -10,7 +10,7 @@ import {
} from "@config/data/ccip/index.ts"
import { getTitle } from "@features/utils/index.ts"
import { SupportedChain } from "@config/index.ts"
-import button from "@chainlink/design-system/button.module.css"
+import button from "~/lib/designSystemButton.ts"
import { TokenCalculatorDropdown } from "./TokenCalculatorDropdown.tsx"
import {
FetchParams,
diff --git a/src/features/ccip/components/billing/TokenCalculatorDropdown.tsx b/src/features/ccip/components/billing/TokenCalculatorDropdown.tsx
index 6691c843230..6efb408d6ff 100644
--- a/src/features/ccip/components/billing/TokenCalculatorDropdown.tsx
+++ b/src/features/ccip/components/billing/TokenCalculatorDropdown.tsx
@@ -78,8 +78,8 @@ export const TokenCalculatorDropdown =