tiennm99 f51306add1 v0.0.4.0 feat(module-2): tam giác đồng dạng (lớp 8, scale slider) (#4)
* feat(component): similarity-scale slider controller

Single-slider similarity demo for Module 2. Fixed △ABC, scaled △A'B'C' computed
each frame as `centroid_target + k · (vertex − centroid_ABC)` for k ∈ [0.5, 2].
The slider's input event is the only event listener — no Pointer Events here
(we're not dragging vertices in this MVP). AbortController teardown on
astro:before-swap as before.

The renderTicks helper is duplicated from congruence-sss.ts for now — when
Module 4 lands we'll factor it out into a shared module. Premature
abstraction would force a circular import structure for one helper.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(module-2): tam giác đồng dạng (lớp 8) with scale slider

Page at /lop-8/tam-giac-dong-dang/. △ABC fixed on the left at scalene scale-72.8 / 83.2 / 93.4 sides. △A'B'C' is the runtime scaled image, controlled by a
single range input k ∈ [0.5, 2] step 0.05.

Live readout table shows all six side lengths and all three ratios. The killer
moment: drag the slider, watch all 3 ratios stay numerically equal to each
other (= 1/k). That equality IS the definition of similarity, made visible.

Tick marks per Decision D3: 1/2/3 ticks color-paired (#D7263D / #1B998B /
#F46036). Triangle 1 ticks rendered once on mount; triangle 2 ticks redrawn
on every slider input.

Hub: lớp 8 card flips to live status. All 3 grade cards now active —
the autoplan 3-module hero set is complete.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore: VERSION 0.0.4.0 + CHANGELOG + TODOS update

v0.0.4.0 = scaffold + Module 3 (góc nội tiếp) + Module 1 (tam giác bằng nhau)
+ Module 2 (tam giác đồng dạng). All three MVP modules from autoplan now live.

Move 2 P1 items to Completed (scale slider, ratio readout) and reduce Module 2
remaining items to P2 (free-drag mode) + P3 (numeric angle readouts).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 00:25:08 +07:00
2026-04-29 21:33:27 +07:00

Hình Học Sống

Interactive Vietnamese THCS (lớp 79) geometry visualizer. Drag the points; watch the theorems hold. Aligned to the SGK curriculum.

Sandbox repo currently doubling as a gstack trial — see CLAUDE.md.

Status

Scaffold only (v0.0.1.0). Modules are placeholders — landing page lists three grades with "Sắp ra mắt" badges. See the design doc at ~/.gstack/projects/tiennm99-try-gstack/ for the full plan.

Develop

bun install
bun run dev          # http://localhost:4321/try-gstack/
bun run test         # Vitest (geom-engine unit tests)
bun run typecheck    # Astro check + TS strict
bun run build        # Static output to dist/

Deploy

Auto-deploys to GitHub Pages from main via actions/deploy-pages@v4. See RUNBOOK.md for rollback + domain-migration procedure.

Architecture (locked decisions, per autoplan review)

  • Static: Astro SSG, base: '/try-gstack/', output dist/
  • Typography: Be Vietnam Pro single family, weights 400/500/700, woff2 only, Vietnamese subset
  • Math engine: pure src/geom-engine/ module (no DOM imports), Vitest unit tests; property tests with fast-check to be added with first canvas module
  • Canvas: vanilla SVG + Pointer Events + setPointerCapture (no Konva) — to be added with first canvas module
  • Math rendering: KaTeX, bundled locally + SSR-rendered — to be added with first canvas module
  • Animation: Web Animations API + requestAnimationFrame (no GSAP / Motion One / Lottie)
  • Analytics: Cloudflare Web Analytics, deferred until 50+ daily sessions
  • i18n: every string via t() from src/i18n/vi.ts; English added by adding en.ts

License

TBD.

S
Description
Sandbox repo for trying out gstack — a collection of Claude Code slash-command skills for planning, review, deploys, design, and browser automation.
Readme Apache-2.0 210 KiB
Languages
TypeScript 64.8%
Astro 31.8%
CSS 1.7%
JavaScript 1.7%