Components general

AnimatedCounter

An animated number counter that smoothly counts from a start value to an end value when scrolled into view. Ideal for showcasing statistics, metrics, and impressive numbers on any site.

Actualizado Mar 6, 2026

AnimatedCounter

An animated number counter that smoothly counts from a start value to an end value when scrolled into view. Ideal for showcasing statistics, metrics, and impressive numbers on any site.

Use Cases

  • Business statistics such as revenue, customers, or projects completed.
  • Social proof numbers like users, downloads, ratings, or reviews.
  • Achievement metrics including awards won, years of experience, or team size.
  • Product metrics such as items sold, deliveries made, or satisfaction rate.
  • Performance stats like uptime percentage, response time, or success rate.
  • Community numbers covering members, posts, contributions, or events.
  • Financial displays such as savings, raised funds, or ROI percentages.
  • Milestone celebrations like days since launch or version number.
  • Impact metrics such as trees planted, carbon saved, or meals donated.
  • Service statistics including locations, languages, or countries served.

Properties

end

The final number to count up to. This is the impressive statistic you want to display. Type: number. Required.

Recommendations: Use numbers that showcase scale and success (e.g., 10,000+ not 47); use real, verifiable numbers; consider rounding large numbers (1.2M instead of 1,234,567 for clarity).

start

Starting number for the animation. Usually 0 but can be set higher for dramatic effect. Type: number. Default: 0.

Recommendations: Use 0 for most cases (clean start); use a higher start value to show growth (e.g., 5000 to 10000).

duration

Animation duration in seconds. How long the count‑up animation takes. Type: number. Default: 2.5.

Recommendations: 1.5‑2 seconds for numbers under 100; 2‑2.5 seconds for numbers 100‑10,000 (default); 2.5‑3 seconds for numbers over 10,000; 3‑4 seconds for millions/billions (builds anticipation).

prefix

Text to display before the number. Commonly used for currency symbols. Type: string.

Recommendations: Use $ for dollar amounts (e.g., $1,000,000); limit to 1‑2 characters for visual balance.

suffix

Text to display after the number. Used for units, scales, and emphasis. Type: string.

Recommendations: Use + to indicate “or more” (10,000+); use % for rates and percentages (99.9%); use K/M/B for large numbers (1.2M instead of 1,200,000); use units when relevant (24hrs, 500kg).

decimals

Number of decimal places to display. Use for precision metrics like percentages. Type: number. Options: 0, 1, 2. Default: 0.

Visual Impact: 0 – Whole numbers only (10,000). Clean, bold. Use for counts, quantities.
1 – One decimal place (99.9%). Use for percentages, ratings.
2 – Two decimal places (98.67%). Use for precise metrics, financial data.

Recommendations: Use 0 for customer counts, downloads, items (10,000 customers); use 1 for uptime, satisfaction (99.9% uptime); use 2 for conversion rates, precise metrics (3.47% conversion).

separator

Whether to add thousand separators (commas). Dramatically improves readability for large numbers. Type: boolean. Default: true.

Visual Impact: true – Shows 10,000 with comma. Much easier to read at a glance.
false – Shows 10000 without comma. Harder to parse, looks unprofessional.

Recommendations: Use true for all numbers over 999. Essential for readability.; Only disable for small numbers under 1000 or when culturally appropriate.

label

Descriptive text displayed below the number. Provides context about what the number represents. Type: string.

Recommendations: Make it clear what the number represents; keep to 2‑4 words maximum; use Title Case for professional appearance; focus on the benefit/achievement, not just the metric.

fontSize

Size of the counter number. Label scales proportionally. Type: string. Options: small, medium, large, xlarge. Default: large.

Visual Impact: small – Number: 32px. Compact, suitable for multiple counters in tight spaces.
medium – Number: 48px. Balanced size, good for secondary stats.
large – Number: 64px. Bold, prominent (default). Best for hero sections.
xlarge – Number: 80px. Maximum impact, use sparingly for primary stat.

Recommendations: Use ‘xlarge’ or ‘large’ for main stats on landing pages; use ‘large’ or ‘medium’ when displaying 3‑4 counters together; use ‘small’ or ‘medium’ for compact spaces.

customCss

Custom CSS styles for advanced styling. Parsed as CSS property‑value pairs. Applies to outermost Section container. Type: string.

Security Note: Parsed by cssParser utility. Tenants only affect their own pages (multi‑tenant isolation enforced).

Best Practices

  • ALWAYS set fontSize explicitly – use ‘large’ for hero stats, ‘xlarge’ for featured, ‘medium’ for grouped.
  • Use meaningful numbers that tell a story (10,000+ customers, 99.9% uptime).
  • Keep animation duration between 2‑3 seconds for best effect.
  • Add context with descriptive labels (not just “$10,000”, but “$10,000+ Happy Customers”).
  • Use separators for large numbers (10,000 not 10000 – easier to read).
  • Add appropriate suffixes (+, %, K, M) to convey scale.
  • Group multiple counters together for maximum impact (use Grid component).
  • Place counters where they provide credibility (near CTAs, testimonials).
  • Use IntersectionObserver trigger (built‑in) – animates when scrolled into view.

Common Mistakes

Not setting fontSize property explicitly

Why it's a problem: Without fontSize, the counter displays tiny text. The default only applies in the editor, not when generating via JSON.

Fix: ALWAYS include fontSize in props. Use ‘large’ for most cases, ‘xlarge’ for featured stats, ‘medium’ for grouped counters.

Using unimpressive numbers (12 customers, 3 projects)

Why it's a problem: Small numbers don’t build credibility. They make business look new/unsuccessful.

Fix: Use numbers that showcase scale: 1,000+ customers, 500+ projects. Or use different metrics (years experience, 5‑star ratings).

Not using thousand separators for large numbers

Why it's a problem: 10000 is hard to read at a glance. Users can’t quickly gauge magnitude.

Fix: Always use separator: true for numbers over 999. Show 10,000 not 10000.

Missing or generic labels

Why it's a problem: Number without context is meaningless. “$10,000” tells no story. “$10,000 Happy Customers” builds trust.

Fix: Always include descriptive labels that explain what the number represents.

Animation duration too fast (<1.5s) or too slow (>4s)

Why it's a problem: Too fast looks jarring, users miss the animation. Too slow feels sluggish and tests patience.

Fix: Use 2‑2.5 seconds for most counters. Adjust slightly for very large/small numbers.

Using decimals for whole number counts

Why it's a problem: 10,000.00 customers looks odd. Decimals imply precision where none exists.

Fix: Use decimals: 0 for counts (customers, downloads, projects). Use 1‑2 for percentages/rates only.

Not grouping multiple counters together

Why it's a problem: Single counter lacks impact. Multiple stats together tell a compelling story.

Fix: Use Grid component to display 3‑4 counters side‑by‑side for maximum credibility.

Placing counters at bottom of page where they won’t be seen

Why it's a problem: Animation triggers on scroll into view. If users don’t scroll that far, stats are wasted.

Fix: Place counters prominently: below hero section, near CTAs, in about section.

Etiquetas

animatedcounter statistics-display business statistics social proof achievement metrics

Componentes relacionados

¿Listo para crear?

Comienza a crear tu aplicación de forma gratuita con Qödiak.

Comenzar gratis

Artículos relacionados

AnimatedGradient

Smooth animated gradient background for modern, premium aesthetics. Supports linear and radial gradients with configurable colors, animation speed, and intensity. GPU‑accelerated for smooth 60fps performance.

Button

Interactive button component that supports link navigation, page data source operations (record navigation, new record, mode switching), form submission, and custom JavaScript execution. Save/Delete actions must use a custom‑script with navigation. Two visual variants are available, and the button can be enabled or disabled dynamically based on data context.

Calendar

A full‑featured calendar component built with react‑big‑calendar. It can display events in month, week, day, or agenda views and includes navigation and view‑switching capabilities, making it suitable for any site that needs scheduling, event management, or date visualization.

Card

Feature card component with an icon, title, description, and entrance animations. Ideal for showcasing features, services, or benefits in grid layouts with animation support.

Checkbox

A checkbox group component that lets users select multiple options from a predefined list. It renders a set of checkboxes with individual labels and can be arranged vertically or horizontally.

CountdownTimer

Real-time countdown timer component that displays the time remaining until a target date/time. It updates every second, offers customizable formatting, and shows a completion message when the countdown ends. Suitable for any site type.