// HeroPills — 6 вариантов дизайна плашек под подзаголовком hero // Управляются через tweaks.state.pillsVariant: 'glass' | 'colored' | 'stats' | 'terminal' | 'badges' | 'banner' | 'cards' const PILLS_DATA = [ { id: 'no-code', icon: '⌘', text: ['без знаний', 'кода'], num: '0', numLabel: 'строк кода', accent: '#4ec92d' }, { id: 'time', icon: '◷', text: ['за 2 месяца'], num: '2', numLabel: 'месяца', accent: '#7C5CFF' }, { id: 'practice', icon: '◉', text: ['много', 'практики'], num: '∞', numLabel: 'практики', accent: '#FFB840' }, ]; function HeroPills({ variant = 'glass' }){ // ---------- 1. GLASS — текущий, "стеклянный" ---------- if (variant === 'glass') { return (
{PILLS_DATA.map((p, i) => ( {p.text.map((s, j) => {j > 0 &&
}{s}
)}
))}
); } // ---------- 2. COLORED — цветные пилюли с иконкой и tinted background ---------- if (variant === 'colored') { return (
{PILLS_DATA.map((p) => ( {p.icon} {p.text.map((s, j) => {j > 0 &&
}{s}
)}
))}
); } // ---------- 3. STATS — крупная цифра сверху, подпись снизу ---------- if (variant === 'stats') { return (
{PILLS_DATA.map((p) => (
{p.num} {p.numLabel} {p.text.join(' ')}
))}
); } // ---------- 4. TERMINAL — чекбоксы [✓] mono-стиль ---------- if (variant === 'terminal') { return (
{PILLS_DATA.map((p) => (
[✓] {p.text.join(' ')}
))}
); } // ---------- 5. BADGES — крупные фиолетовые бейджи ---------- if (variant === 'badges') { return (
{PILLS_DATA.map((p) => ( {p.text.map((s, j) => {j > 0 &&
}{s}
)}
))}
); } // ---------- 6. BANNER — одна строка с разделителями ---------- if (variant === 'banner') { return (
{PILLS_DATA.map((p, i) => ( {p.text.join(' ')} {i < PILLS_DATA.length - 1 && ( · )} ))}
); } // ---------- 7. CARDS — 3 равные карточки с акцентом сверху ---------- if (variant === 'cards') { return (
{PILLS_DATA.map((p) => (
{String(PILLS_DATA.indexOf(p) + 1).padStart(2, '0')}
{p.text.map((s, j) => {j > 0 &&
}{s}
)}
))}
); } return null; } window.HeroPills = HeroPills;