Creates professional, interactive multi-page websites from project documentation using React 18 + TypeScript + Tailwind CSS. Features landing page with hero and KPI cards, dark sidebar navigation, hash-based routing, full trilingual i18n (EN/PT-BR/ES), Microsoft+GitHub logo branding, and end-to-end storytelling. Develops with Vite (hot reload), bundles to single portable HTML via Parcel. USE FOR: create interactive site, project portal, documentation site, interactive dashboard, transform .md deliverables into website, create landing page, build project visualization, interactive architecture site, client-facing web portal. DO NOT USE FOR: FigJam/Mermaid diagrams (use figjam-diagrams), presentations (use pptx-creator), Word documents (use docx-creator), Excel (use xlsx-creator), PDF (use pdf-creator).
التثبيت
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
Creates professional, interactive multi-page websites from project documentation using React 18 + TypeScript + Tailwind CSS. Features landing page with hero and KPI cards, dark sidebar navigation, hash-based routing, full trilingual i18n (EN/PT-BR/ES), Microsoft+GitHub logo branding, and end-to-end storytelling. Develops with Vite (hot reload), bundles to single portable HTML via Parcel. USE FOR: create interactive site, project portal, documentation site, interactive dashboard, transform .md deliverables into website, create landing page, build project visualization, interactive architecture site, client-facing web portal. DO NOT USE FOR: FigJam/Mermaid diagrams (use figjam-diagrams), presentations (use pptx-creator), Word documents (use docx-creator), Excel (use xlsx-creator), PDF (use pdf-creator).
Interactive Sites
Create professional, interactive multi-page websites from project documentation. Uses Vite + React 18 + TypeScript + Tailwind CSS for development, bundles to a single portable HTML file via Parcel + html-inline. Every site features Microsoft+GitHub branding, trilingual i18n, dark sidebar navigation, and end-to-end storytelling.
Architecture
Development Mode
npm install && npm run dev
Vite dev server with hot module replacement at localhost:5173. Full React 18 + TypeScript + Tailwind CSS development experience with path aliases (@/).
Production Bundle
bash scripts/bundle.sh
Produces a single self-contained .html file with all JS, CSS, and images inlined. Opens in any browser — no server, no build step, no Node.js needed by the viewer.
Stack
Layer
Technology
Purpose
Framework
React 18
Component-based UI
Language
TypeScript (strict)
Type safety, i18n enforcement
Styling
Tailwind CSS 3.4
Utility-first CSS with Microsoft tokens
Dev server
Vite 6
Fast HMR, path aliases
Bundler
Parcel + html-inline
Single-file HTML output
Routing
useHash() hook
Hash-based, no react-router, works in single HTML
i18n
React Context + tx()
Full trilingual support (EN/PT-BR/ES)
Components
Custom lightweight
No shadcn/ui — under 200KB bundle
Key Decisions
No shadcn/ui — Custom lightweight components keep bundle under 200KB. shadcn/ui adds 40+ unneeded components and 500KB.
No react-router — Hash-based routing via useHash() hook works in single HTML file without a server.
Base64 logos — Images embedded as data URIs by default for full portability. --no-inline-images flag for workspace-local relative paths.
Project Structure
The template lives at .github/skills/interactive-sites/template/. The agent clones it to output/html/{project-slug}/ per project.
template/
├── package.json # Dependencies: React 18, Vite, Tailwind, Parcel
├── tsconfig.json # TypeScript strict, @/ path alias
├── vite.config.ts # Vite config with @/ alias, ./ base
├── tailwind.config.ts # Microsoft palette as Tailwind tokens
├── postcss.config.js # Tailwind processing
├── index.html # Entry HTML
├── public/
│ └── logos/ # Copy MS+GH and client logos here
├── scripts/
│ └── bundle.sh # Parcel → html-inline → single HTML
└── src/
├── main.tsx # React 18 createRoot
├── App.tsx # Shell: Header + Sidebar + Router + Footer
├── i18n.tsx # tx() helper + LangContext + T translations
├── types.ts # Shared TypeScript interfaces
├── hooks/
│ └── useHash.ts # Hash-based routing hook
├── components/
│ ├── Header.tsx # MS+GH logo left, client center, lang selector right
│ ├── Sidebar.tsx # Dark sidebar, collapsible, section icons
│ ├── Footer.tsx # Logos + version + confidential
│ ├── LangSelector.tsx # EN / PT-BR / ES dropdown
│ ├── Card.tsx # Content card with hover lift
│ ├── Table.tsx # Sortable table with sticky header
│ ├── Annotation.tsx # Info / Success / Warning / Critical boxes
│ ├── KpiCard.tsx # Metric card (value + label + trend)
│ ├── ExpandableSection.tsx # Click-to-expand panel
│ ├── FlowDiagram.tsx # SVG flow with nodes + arrows
│ ├── Badge.tsx # Status badges (PRODUCTIVE, IN DEV, DRAFT)
│ ├── CodeBlock.tsx # Dark-themed code display with copy
│ ├── Modal.tsx # Overlay for detail views
│ ├── Timeline.tsx # Gantt-like CSS grid
│ └── TabGroup.tsx # Horizontal tabs within a page
├── pages/
│ ├── Landing.tsx # Hero + KPIs + navigation grid
│ └── (project pages) # One component per content section
└── styles/
└── globals.css # Tailwind directives + custom utilities
Left: Microsoft+GitHub combined logo + project name + metadata
Center: Client logo (optional, hidden if not provided)
Right: Language selector dropdown
Logo Embedding
Default (portable): Logos converted to base64 data URIs by bundle.shWorkspace-local: Use --no-inline-images flag for relative paths: ./logos/logo-msft-github-color.png
Inline SVG Fallback
The Header component includes inline SVG Microsoft 4-window + GitHub Octocat as fallback when no image file is provided. This ensures the header always renders branded logos.
i18n System
tx() Helper Function
exportfunctiontx(obj: I18nString, lang: Lang): string {
if (typeof obj === 'string') return obj; // Technical term — pass throughreturn obj[lang] || obj.en; // Localized — resolve by lang
}