// 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;