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
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:
33
docs/DESIGN_SYSTEM.md
Normal file
33
docs/DESIGN_SYSTEM.md
Normal 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 |
|
||||
@@ -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`).
|
||||
|
||||
@@ -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
33
docs/design/website.md
Normal 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.
|
||||
Reference in New Issue
Block a user