玻璃卡片
点击试试 hover 效果
♡
状态:未收藏
点击数 · 0
card · glass-apple · 灵感来源:visionOS / Linear 浮动卡片
点击试试 hover 效果
状态:未收藏
点击数 · 0
Liquid Glass Card · 液态玻璃卡片 · 卡片 / Glass
做一个 Liquid Glass Card(液态玻璃卡片):
- 玻璃面 + 边缘光学(内高光 + 顶部定向光)
- 内容面板仍用不透明白底——玻璃只做悬浮层
- hover 提亮底色 + 阴影加深,不做位移
用这些 CSS 变量:--color-accent --color-text-muted --dur-fast --fw-semibold --glass-bg --glass-border --glass-highlight --glass-inset --shadow-md
灵感参考:visionOS / Linear 浮动卡片--color-accent --color-text-muted --dur-fast --fw-semibold --glass-bg --glass-border --glass-highlight --glass-inset --shadow-md
(无必缺状态)
(尚未接进整页场景)
/r/card--glass-apple.json
免外壳的 markdown 版:/llms/components/card--glass-apple.md变量:--glass-bg(surface 28%)/ --glass-border(ink 7%)/ --glass-highlight(surface 85%)——都从 base 层派生,改一处全站跟着变。
import { type ReactNode } from 'react';
interface Props {
title?: string;
subtitle?: string;
children?: ReactNode;
onClick?: () => void;
className?: string;
}
export function GlassAppleCard({
title,
subtitle,
children,
onClick,
className = '',
}: Props) {
const hasHeader = title || subtitle;
return (
<article
onClick={onClick}
role={onClick ? 'button' : undefined}
tabIndex={onClick ? 0 : undefined}
onKeyDown={onClick ? (event) => {
if (event.key === 'Enter' || event.key === ' ') {
event.preventDefault();
onClick();
}
} : undefined}
className={`
relative
rounded-2xl
bg-[var(--glass-bg)] border border-[var(--glass-border)] backdrop-blur-xl
shadow-[var(--shadow-md),var(--glass-inset)]
transition-[transform,background-color,border-color] duration-[var(--dur-fast)]
${onClick ? 'hover:bg-[var(--glass-highlight)] hover:border-[rgba(29,31,38,0.14)] hover:-translate-y-0.5 cursor-pointer' : ''}
p-6
${className}
`}
>
{hasHeader && (
<div className="mb-4">
{title && (
<h3
className="text-base"
style={{ fontWeight: 'var(--fw-semibold)' }}
>
{title}
</h3>
)}
{subtitle && (
<p className="text-sm text-[var(--color-text-muted)] mt-1">{subtitle}</p>
)}
</div>
)}
{children}
</article>
);
}
src/components/card/glass-apple/