feat: add website components and pages for LexAI
Some checks failed
CI — Chrome / Chrome — typecheck, test, build (pull_request) Has been cancelled
CI — CLI / CLI — typecheck, build, smoke (pull_request) Has been cancelled
CI — Website / Website — typecheck, build (pull_request) Has been cancelled
CI — VS Code / VS Code — typecheck, build (pull_request) Has been cancelled

- Implemented SiteHeader and SiteFooter components for consistent navigation and footer across the website.
- Created CommunityPage and ContributePage to provide information on community involvement and contribution guidelines.
- Developed DocsPage to serve as the main documentation hub, detailing features and installation instructions.
- Added HomePage to introduce LexAI and its functionalities, highlighting key features and privacy aspects.
- Established links.ts for centralized management of external links used throughout the website.
- Configured main.tsx for application entry point with React Router for navigation.
- Introduced styles.css for consistent styling across the website.
- Set up TypeScript configuration files for improved type checking and development experience.
- Configured Vite for building and serving the website.
This commit is contained in:
john kevin asprec
2026-08-13 20:27:55 +08:00
parent f5e24d8921
commit 5a79f1a2eb
31 changed files with 3541 additions and 19 deletions

33
docs/DESIGN_SYSTEM.md Normal file
View File

@@ -0,0 +1,33 @@
# Design system (LexAI website)
## Principles
- Quiet, professional, minimal. Typography and space do the work.
- Fewest clicks to install or docs.
- Privacy (BYO-key, no LexAI servers) is a first-class message.
## Foundations
| Token | Value |
| --- | --- |
| `--bg` | `#f7f7f5` |
| `--surface` | `#ffffff` |
| `--ink` | `#171717` |
| `--muted` | `#5c5c57` |
| `--line` | `#e6e6e2` |
| `--indigo` | `#4f46e5` (logo tile) |
| `--bolt` | `#f5c14a` (logo bolt) |
| Mark | Flat rounded square + bolt (`LogoMark`) |
| Type | Inter |
Tap targets ≥ 40px; body text contrast AA.
## Components
| Component | Use |
| --- | --- |
| SiteHeader | Wordmark + Docs / Contribute / Community / Star on Gitea |
| Hero | One kicker, one H1, one line, CTAs |
| Feature list | Two-column hairline rows |
| PackageCard | Chrome / VS Code / CLI |
| DocsSection | Package docs blocks |

View File

@@ -4,8 +4,8 @@
## Current state
- **Outcome:** Open-source monorepo laid out — Chrome moved to `packages/chrome`; OSS docs + Gitea templates added.
- **Verified:** `chrome:typecheck` OK; `chrome:test` 64/64; `chrome:build``packages/chrome/.output/chrome-mv3/`.
- **Artifacts:** root `LICENSE`, `README.md`, `CONTRIBUTING.md`, `CODE_OF_CONDUCT.md`; `.gitea/ISSUE_TEMPLATE/bug_report.md`; `.gitea/PULL_REQUEST_TEMPLATE.md`; package READMEs for chrome/vscode/cli.
- **CI:** per-package workflows `ci-chrome.yml`, `ci-vscode.yml`, `ci-cli.yml` only; deploy/preview/release removed for later.
- **Next smallest action:** Commit when ready.
- **Outcome:** `packages/website` now uses the four-page structure: Home, Docs, Contribute, Community.
- **Home:** hero + features + Getting started (Chrome / VS Code / CLI) + privacy.
- **Routes:** `/` `/docs` `/contribute` `/community` (HashRouter).
- **Verified:** `website:typecheck` + `website:build` passed.
- **Next smallest action:** Deploy `packages/website` on Coolify (base `/packages/website`, static, publish `/dist`).

View File

@@ -4,11 +4,11 @@
## Verified facts
- LexAI monorepo: `packages/chrome` (WXT), `packages/vscode`, `packages/cli`; shared `src/lib`.
- LexAI monorepo: `packages/{chrome,vscode,cli,website}`; shared `src/lib`.
- Portable core: `providers.ts`, `actions.ts`, `types.ts`. Chrome-only: `crypto.ts`, `messaging.ts`.
- Providers: OpenAI, Anthropic, Groq, OpenRouter — `callProvider` / `PROVIDER_SPECS`.
- VS Code: Secret Storage; Code Assist; prefs `lexai.*`.
- CLI: `lexai prompt`; `LEXAI_API_KEY`; optional `~/.lexai/config.json` (no apiKey).
- CLI: `lexai prompt`; `LEXAI_API_KEY` required; optional `LEXAI_PROVIDER` / `LEXAI_MODEL`; `~/.lexai/config.json` never holds apiKey.
- Chrome entrypoints: `packages/chrome/entrypoints/`; build → `packages/chrome/.output/chrome-mv3/`.
- Selection minimum: `MIN_SELECTION_LENGTH` (10). Chrome `onMessage` must `return true`; snapshot before `await`.
@@ -32,9 +32,10 @@
| Shared lib | `src/lib/` |
| VS Code | `packages/vscode/` |
| CLI | `packages/cli/` |
| Website | `packages/website/` (Vite React; Home, Docs, Contribute, Community) |
| OSS meta | root `README.md`, `LICENSE`, `CONTRIBUTING.md`, `CODE_OF_CONDUCT.md` |
| Issue/PR templates | `.gitea/ISSUE_TEMPLATE/`, `.gitea/PULL_REQUEST_TEMPLATE.md` |
| CI workflows | `.gitea/workflows/ci-{chrome,vscode,cli}.yml` (no deploy/release yet) |
| CI workflows | `.gitea/workflows/ci-{chrome,vscode,cli,website}.yml` (no deploy/release yet) |
## Expiring notes

33
docs/design/website.md Normal file
View File

@@ -0,0 +1,33 @@
# Design spec — LexAI website
## User + job
Open-source visitors evaluating LexAI. Success: understand BYO-key privacy, pick Chrome / VS Code / CLI, reach install or docs in ≤ 2 clicks from the hero.
## Flow
Landing → Features → Packages → Docs (deep) or Chrome Web Store / Git. Secondary: Docs nav anchors per package.
## Screens
| Route | Purpose |
| --- | --- |
| `/` | Brand hero, feature highlights, package cards, privacy, CTAs |
| `/docs` | All packages + features, install pointers, shared core |
States: static marketing (no loading/error beyond 404 → home link).
## Visual
- Brand **LexAI** is the hero signal; bolt mark from product icon.
- Atmosphere: deep slate field + amber bolt accent (from icon gold), not purple-on-white.
- Type: Syne (display) + Source Sans 3 (body).
- No card grid in hero; package cards only where choosing a product is the interaction.
## Acceptance
1. First viewport: LexAI brand, one headline, one support line, CTA group, dominant visual.
2. Features of writing + Code Assist + Prompt Builder called out.
3. Docs lists Chrome, VS Code, CLI with feature bullets and links to store/repo READMEs.
4. Works desktop + mobile.
5. `npm run website:build` succeeds.