~/dlab.zone (main) $ cat projects/dlab-zone/README.md
dlab.zone
Ta strona — terminal, który można scrollować, prerenderowany do statycznego HTML.
kontekst
Portfolio powinno udowadniać umiejętności, które wymienia. Dlatego projektem jest sama strona: interfejs w stylu terminala, który obsłużysz klawiaturą, szybki i czytelny nawet bez JavaScriptu.
co zrobiłem
- a1c03f2init: prerenderowany React na TanStack Start i Vite+
- 5d7e912ui: pasek tmux, linia statusu vima i terminal w docku
- b84f0c6motion: animacje CSS sterowane scrollem i falująca siatka w canvasie
- e2a95d4a11y: klawiatura na pierwszym miejscu, ograniczony ruch, pięć palet w jasnej i ciemnej wersji
- 3f6b1e8tooling: Oxlint i Oxfmt zamiast ESLinta i Prettiera
architektura
┌───────────────┐ ┌───────────────┐ ┌──────────────────┐
│ src/content │ ─────▶ │ virtual fs │ ─────▶ │ terminal: cd, ls │
└───────┬───────┘ └───────┬───────┘ └──────────────────┘
│ │ routes
│ ┌───────▼───────┐ ┌──────────────────┐
└──────────────▶ │ prerender │ ─────▶ │ static HTML │
└───────────────┘ └──────────────────┘decyzje
- Najpierw statyczny HTML.Każda strona jest prerenderowana, więc treść jest dostępna, zanim uruchomi się JavaScript. JavaScript dokłada terminal, nie treść.
- CSS scroll timelines zamiast nasłuchiwania scrolla.Animacje działają poza głównym wątkiem i są płynne na iOS Safari; JavaScript steruje tylko tym, czego nie da się zrobić w CSS, jak falująca siatka.
- Jedno źródło treści.Strony, terminal i sitemapa czytają te same typowane pliki, po angielsku i po polsku, więc nic się nie rozjeżdża.
wyniki
statycznakażda strona to zwykły HTML na CDN
5 × 2palety × jasny/ciemny, przełączane z terminala