Timescale

Ruler-style timeline for plotting milestones along a horizontal or vertical axis.

0

2000

Born in Can Tho, Viet Nam.

1

2001

2

2002

3

2003

4

2004

5

2005

6

2006

Started at Thuan Hung Primary School.

7

2007

8

2008

9

2009

10

2010

11

2011

Started at Thuan Hung Secondary School.

12

2012

13

2013

14

2014

Started learning to code and built my first website.

Won awards:

  • 1st Prize — Can Tho City Young Informatics Contest 2014
  • Consolation Prize — National Young Informatics Contest 2014

Visited Ha Noi, the capital, for the first time.

15

2015

Won awards:

  • 3rd Prize — Can Tho City Young Informatics Contest 2015
  • Consolation Prize — National Young Informatics Contest 2015
  • Outstanding Student — Most Outstanding Student of the District
  • 2nd Prize — Can Tho City Youth and Children’s Creativity Contest 2015
  • 3rd Prize — Can Tho City Science and Engineering Fair 2015

Visited Thu Dau Mot, Binh Duong for the first time.

Admitted to the specialized Computer Science class at Ly Tu Trong High School for the Gifted.

16

2016

Won awards:

  • Consolation Prize — Can Tho City Young Informatics Contest 2016
  • 1st Prize — Can Tho City Youth and Children’s Creativity Contest 2016
  • 3rd Prize — National Young Informatics Contest 2016
  • Consolation Prize — National Youth and Children’s Creativity Contest 2016

Visited Quy Nhon, Binh Dinh for the first time, and returned to Ha Noi.

17

2017

Won awards:

  • 2nd Prize — Can Tho City Outstanding Student Selection Exam 2016-2017
  • Consolation Prize — Can Tho City Young Informatics Contest 2017
  • 3rd Prize — Can Tho City Young Informatics Contest 2017
  • 2nd Prize — Can Tho City Youth and Children’s Creativity Contest 2017
  • Creative Award — Binh Duong Hackathon 2017

18

2018

Won awards:

  • 1st Prize — Can Tho City Science and Engineering Fair 2018
  • 3rd Prize — Can Tho City Outstanding Student Selection Exam 2017-2018
  • 3rd Prize — National Science and Engineering Fair 2018 (ViSEF)
  • 3rd Prize — Can Tho City Young Informatics Contest 2018
  • 2nd Prize — Can Tho City Youth and Children’s Creativity Contest 2018
  • 3rd Prize — National Young Informatics Contest 2018

Earned direct admission to University of Science — VNUHCM, majoring in Information Systems.

Began freelancing and joined Tung Tung as a UI/UX Designer.

Visited Da Lat, Lam Dong and Ba Ria - Vung Tau for the first time.

19

2019

Became a Mobile Developer at Tung Tung.

Won 2nd Prize — Business Startup Competition 2019.

20

2020

Became a Web Developer at Tung Tung.

21

2021

22

2022

Joined Simplamo as a Senior Frontend Developer and UI Lead.

Launched ZaDark — 80k+ downloads, 30k+ active users.

Won Bronze Medal — 10th Design, Manufacturing, and Application Award 2022.

23

2023

24

2024

Founded Quaric.

25

2025

Open-sourced chanhdai.com — 2k+ stars on GitHub.

Released React Wheel Picker — 50k+ weekly downloads, selected for the Vercel OSS Program.

Followed by shadcn on X.

26

2026

Joined shadcncraft as a Design Engineer.

Selected for the Claude for Open Source Program.

Installation

pnpm dlx shadcn-svelte@latest add http://sveltekit-prerender/r/timescale.json

Usage

usage.svelte

Features

  • Ruler-style timeline for plotting milestones along a horizontal or vertical axis
  • Composable subcomponents for header, track, ticks, and content
  • TimescaleIntroScroll auto-scrolls a horizontal timeline to its latest item on mount, respecting prefers-reduced-motion

Props

Timescale

Root layout that sets the timeline orientation for its primitives.

NameTypeDefaultDescription
childrenSnippetrequiredTimescale primitives rendered inside the root.
orientation'horizontal' | 'vertical''horizontal'Direction used to lay out the timeline.
classstringundefinedAdditional classes applied to the root element.
refHTMLDivElement | nullnullBindable reference to the root element.

TimescaleIntroScroll

Wrapper that performs the initial horizontal scroll animation.

NameTypeDefaultDescription
childrenSnippetrequiredTimescale content containing a viewport.

Timescale layout primitives

Shared API for Age, Content, Header, Item, Rail, Tick, Track, Viewport, and Year.

NameTypeDefaultDescription
childrenSnippetundefinedContent rendered inside the selected timescale primitive.
classstringundefinedAdditional classes applied to the primitive element.
refHTMLElement | nullnullBindable reference to the primitive's underlying element.