--- name: layout/feature-list title: Feature List with Animated Checkmarks description: Clean feature lists with animated checkmarks, icons, and hover states. tags: [layout, feature-list, checkmark, hover, clean, conversion] source: resend.com, linear.app, raycast.com, stripe.com --- # Feature List with Animated Checkmarks ## Что это Чистый, структурированный список фич с анимированными чекмарками иконками. Один из самых конверсионных паттернов — используется на Resend, Linear, Raycast. ## Где используется - Pricing-страницы - Сравнение планов - Feature comparison - Onboarding-экраны - "Why choose us" секции ## Pattern 1: Standard Feature List ```html
✓

Анализ 99+ звонков

Загрузите аудио — получите детальный отчёт по 10 пунктам скрипта.

✓

Рейтинг операторов

ИИ автоматически оценивает каждого оператора и формирует рейтинг.

✓

Конкретные рекомендации

Не просто "плохо", а "замените фразу X на Y для роста конверсии на 15%".

✓

Еженедельные отчёты

Автоматический мониторинг качества звонков с динамикой улучшений.

``` ```css .feature-list-section { padding: 128px 0; } .feature-list-container { max-width: 800px; margin: 0 auto; padding: 0 var(--space-6); } .feature-list { display: flex; flex-direction: column; gap: 0; } .feature-item { display: flex; gap: var(--space-5); padding: 32px 0; border-bottom: 1px solid var(--color-border); transition: all 0.3s ease; align-items: flex-start; } .feature-item:first-child { padding-top: 0; } .feature-item:last-child { border-bottom: none; } .feature-item:hover { transform: translateX(8px); } .feature-icon { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; flex-shrink: 0; font-size: 16px; font-weight: 700; margin-top: 2px; } .feature-icon.check { background: rgba(16, 185, 129, 0.1); color: #10b981; border: 1px solid rgba(16, 185, 129, 0.3); } .feature-icon.cross { background: rgba(239, 68, 68, 0.1); color: #ef4444; border: 1px solid rgba(239, 68, 68, 0.3); } .feature-content h3 { font-size: 1.125rem; font-weight: 600; margin-bottom: 8px; } .feature-content p { font-size: 0.95rem; color: var(--color-text-secondary); line-height: 1.6; } ``` ## Pattern 2: Two-Column Comparison ```html

calls24

✓ AI-анализ по 10 пунктам
✓ Рейтинг операторов
✓ Рекомендации по скрипту

Другие

× Только базовые метрики
× Нет рейтинга операторов
× Общие рекомендации
``` ```css .comparison-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; max-width: 800px; margin: 0 auto; } .comparison-col { padding: 48px; border-radius: 20px; border: 1px solid var(--color-border); background: var(--color-surface); } .comparison-col h3 { font-size: 1.5rem; font-weight: 700; margin-bottom: 32px; padding-bottom: 16px; border-bottom: 1px solid var(--color-border); } .feature-check, .feature-cross { display: flex; gap: 12px; align-items: center; padding: 12px 0; } .check-icon { display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: rgba(16, 185, 129, 0.1); color: #10b981; font-size: 14px; font-weight: 700; flex-shrink: 0; } .cross-icon { display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: rgba(239, 68, 68, 0.1); color: #ef4444; font-size: 14px; font-weight: 700; flex-shrink: 0; } .feature-check span:last-child, .feature-cross span:last-child { color: var(--color-text-secondary); font-size: 0.95rem; } @media (max-width: 768px) { .comparison-grid { grid-template-columns: 1fr; } } ``` ## Pattern 3: Animated Checkmark ```html

Фича с анимацией

Описание фичи

``` ```css .feature-item-animated { display: flex; gap: 16px; padding: 24px 0; align-items: flex-start; } .check-circle { position: relative; width: 32px; height: 32px; border-radius: 50%; background: rgba(16, 185, 129, 0.1); display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .check-path { stroke-dasharray: 30; stroke-dashoffset: 30; animation: draw-check 0.5s ease forwards; animation-delay: 0.3s; } @keyframes draw-check { to { stroke-dashoffset: 0; } } .feature-item-animated:hover .check-circle { transform: scale(1.1); transition: transform 0.2s ease; } ``` ## Pattern 4: Pricing Table with Checkmarks ```html

Бесплатно

0 ₽

``` ```css .pricing-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 20px; padding: 48px; text-align: center; } .pricing-card.featured { border-color: var(--color-accent); } .pricing-features { list-style: none; margin: 32px 0; text-align: left; } .pricing-features li { display: flex; align-items: center; gap: 12px; padding: 12px 0; color: var(--color-text-secondary); } .pricing-features li.disabled { opacity: 0.4; } .btn-primary { display: block; width: 100%; padding: 14px; background: var(--gradient-accent); color: white; border: none; border-radius: 12px; font-weight: 600; cursor: pointer; } .btn-secondary { display: block; width: 100%; padding: 14px; background: transparent; color: var(--color-text-primary); border: 1px solid var(--color-border); border-radius: 12px; font-weight: 600; cursor: pointer; } ``` ## Anti-patterns | ❌ Плохо | ✅ Хорошо | |----------|-----------| | Без визуального разделения строк | `border-bottom: 1px solid` | | Маленькие чекмарки | `32x32px` круги | | Без hover | `translateX(8px)` на hover | | Без контраста | `✓` зелёный, `×` красный | | Без `flex-shrink: 0` | Иконка не сжимается | ## CV Service Validation ```bash # Проверить visual hierarchy feature list curl -s -X POST http://localhost:8001/design/analyze-dom \ -H "Content-Type: application/json" \ -d '{"html": "..."}' | python3 -c " import sys, json d = json.load(sys.stdin) ux = d['analyzers'].get('ux_heuristics', {}) print(f\"UX Heuristics: {ux.get('score', 'N/A')}/10\") print(f\" Clarity: {ux.get('clarity', 'N/A')}\") " ``` Ожидается: `ux_heuristics` > 7 (feature list — один из самых понятных паттернов).