blob: a34f4c2b03016c1fba08d3ac5b9987e6ed5adea3 [file]
/* The default-connection selected wash rides the Item `selected` prop
(data-selected → --state-selected-bg), one selected-row implementation
across the app. */
.connectionRow[data-disabled="true"] {
opacity: var(--opacity-muted);
}
/* Logo plates match the enabled list (compact 32px) so the page reads as
* one column of provider rows top to bottom. */
.providerCatalogRow .providerLogo {
width: 32px;
height: 32px;
/* No radius here: --radius-plate is a ratio, so the size change alone
keeps this plate the same shape as the 44px one. Restating a fixed
px would re-introduce the size drift PR-UI-13 removed. */
}
/* Gated providers carry a real trailing state badge in ItemActions (not an
* absolute ::after), tinted by the gate reason. The row itself is a plain
* div Item with no render prop, so it is inert — the provider-surface gate
* never lets a gated provider read as clickable. The state badge is now the
* Astryx Badge; no bespoke state tint rules remain here. */
/* PR-UI-13 (@yuejing 2026-05-22): ProviderLogo size normalization.
*
* Audit §3.8 — "OnboardingHero (compact) 跟 ProvidersPanel (default)
* 大小不同,底图比例感觉不统一". Root cause: the compact override
* only resized width/height/border-radius, but inherited the default
* `0 8px 16px` drop shadow — at 32px the shadow extends ~25% beyond
* the icon, visually drifting from the default size. Border-radius
* ratios also drifted (29.5% default vs 31.25% compact vs 33% micro).
*
* Fix: pin a single ~27-28% border-radius ratio across all three
* sizes (md / sm / xs) and scale the drop shadow proportionally.
* Inner SVG keeps the existing 72% ratio so brand marks read the
* same at every size.
*
* 2026-07-27: that ratio is now carried by --radius-plate (27%), not
* by a per-size px value. The tier convergence had rewritten both
* sizes to --radius-surface, which silently reverted this fix —
* 8px reads 18.2% at 44px and 25% at 32px, the exact drift the audit
* above was raising. A percentage is scale-invariant, so the compact
* override no longer needs to restate the radius at all.
*/
/* Neutral, theme-aware plate. Provider identity now comes from the
official brand mark (provider-brand-marks.tsx), so the plate stays a
quiet foreground wash in both light and dark — no per-provider tints. */
.providerLogo {
width: 44px;
height: 44px;
display: grid;
place-items: center;
border-radius: var(--radius-plate);
background: var(--foreground-5);
color: var(--foreground);
box-shadow: inset 0 0 0 1px oklch(from var(--foreground) l c h / 0.06);
}
.providerLogo[data-compact="true"] {
width: 32px;
height: 32px;
}
/* Color marks keep their own fill. Inline monochrome SVGs inherit the plate
color; external monochrome assets use a mask because `<img>` documents do
not inherit `currentColor`. */
.providerLogo svg,
.providerLogo img,
.providerLogo .providerAssetMask {
width: 64%;
height: 64%;
display: block;
}
.providerAssetMask {
background: currentColor;
mask-position: center;
mask-repeat: no-repeat;
mask-size: contain;
}