style(profile): 멤버십 등급 칩을 저자극 프리미엄 톤으로 개선
맥락: - 프로필 왼쪽 등급 칩의 글자가 작아 위계가 약했고, 유료 멤버 대우가 직관적으로 전달되지 않았다. 변경사항: - MembershipTierBadge의 타이포를 text-xs 이상으로 상향하고 칩 높이/패딩을 키워 가독성을 개선했다. - PRO는 PRO MEMBER 라벨과 조용한 그라데이션/내부 하이라이트/부드러운 그림자를 적용해 프리미엄 톤을 강화했다. - NORMAL/TEAM도 등급별 표면 톤과 점 마커를 분리해 차분한 위계를 유지했다. - docs/session_brief.md, docs/90_current_state.md에 이번 변경 내역과 리스크를 반영했다. 검증: - npx tsc --noEmit 세션-상태: 멤버십 배지의 크기와 재질감을 상향해 대우받는 인상을 강화했다. 세션-다음: RoomSheet 인원수 기반 UI의 큐레이션형 치환 범위를 확정해야 한다. 세션-리스크: PRO MEMBER 라벨이 작은 폭에서 프로필과 밀집해 보일 수 있어 실제 기기 간격 점검이 필요하다.
This commit is contained in:
@@ -4,18 +4,39 @@ interface MembershipTierBadgeProps {
|
||||
tier: MembershipTier;
|
||||
}
|
||||
|
||||
const TIER_STYLES: Record<MembershipTier, string> = {
|
||||
pro: 'border-brand-primary/28 bg-brand-primary/12 text-brand-primary/82',
|
||||
normal: 'border-brand-dark/18 bg-white/68 text-brand-dark/66',
|
||||
team: 'border-emerald-600/28 bg-emerald-500/10 text-emerald-700',
|
||||
const TIER_META: Record<
|
||||
MembershipTier,
|
||||
{ label: string; surfaceClass: string; dotClass: string }
|
||||
> = {
|
||||
pro: {
|
||||
label: 'PRO MEMBER',
|
||||
surfaceClass:
|
||||
'border-amber-700/34 bg-[linear-gradient(120deg,rgba(254,243,199,0.88)_0%,rgba(250,230,170,0.7)_55%,rgba(244,216,125,0.6)_100%)] text-amber-900 shadow-[inset_0_1px_0_rgba(255,255,255,0.62),0_8px_20px_rgba(120,82,20,0.14)]',
|
||||
dotClass: 'bg-amber-700/72',
|
||||
},
|
||||
normal: {
|
||||
label: 'NORMAL',
|
||||
surfaceClass:
|
||||
'border-brand-dark/16 bg-white/76 text-brand-dark/68 shadow-[inset_0_1px_0_rgba(255,255,255,0.55),0_6px_16px_rgba(15,23,42,0.08)]',
|
||||
dotClass: 'bg-brand-dark/34',
|
||||
},
|
||||
team: {
|
||||
label: 'TEAM',
|
||||
surfaceClass:
|
||||
'border-cyan-900/24 bg-[linear-gradient(120deg,rgba(224,242,254,0.86)_0%,rgba(209,250,229,0.68)_56%,rgba(186,230,253,0.64)_100%)] text-cyan-900 shadow-[inset_0_1px_0_rgba(255,255,255,0.58),0_8px_18px_rgba(8,78,99,0.12)]',
|
||||
dotClass: 'bg-cyan-900/52',
|
||||
},
|
||||
};
|
||||
|
||||
export const MembershipTierBadge = ({ tier }: MembershipTierBadgeProps) => {
|
||||
const tierMeta = TIER_META[tier];
|
||||
|
||||
return (
|
||||
<span
|
||||
className={`inline-flex items-center rounded-full border px-2.5 py-1 text-[10px] font-semibold tracking-[0.1em] ${TIER_STYLES[tier]}`}
|
||||
className={`inline-flex h-8 items-center gap-1.5 rounded-full border px-3 text-xs font-semibold tracking-[0.08em] backdrop-blur-sm ${tierMeta.surfaceClass}`}
|
||||
>
|
||||
{tier.toUpperCase()}
|
||||
<span aria-hidden className={`h-1.5 w-1.5 rounded-full ${tierMeta.dotClass}`} />
|
||||
{tierMeta.label}
|
||||
</span>
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user