-
Notifications
You must be signed in to change notification settings - Fork 0
feat: implement complete PixelLens Chrome extension #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| name: CI | ||
|
|
||
| on: | ||
| push: | ||
| branches: [main] | ||
| pull_request: | ||
| branches: [main] | ||
|
|
||
| jobs: | ||
| quality: | ||
| name: Quality checks | ||
| runs-on: ubuntu-latest | ||
|
|
||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: '20' | ||
| cache: 'npm' | ||
|
|
||
| - run: npm ci | ||
|
|
||
| - name: TypeScript | ||
| run: npm run typecheck | ||
|
|
||
| - name: Lint | ||
| run: npm run lint | ||
|
|
||
| - name: Tests | ||
| run: npm run test -- --run | ||
|
|
||
| - name: Build | ||
| run: npm run build | ||
|
|
||
| - name: Upload extension | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: pixellens-extension | ||
| path: dist/ | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1,2 @@ | ||
| node_modules | ||
| PRD_02_PixelLens.mddist/ |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,141 @@ | ||||||
| # 🔍 PixelLens | ||||||
|
|
||||||
| > *Inspect any website. Copy any design system.* | ||||||
|
|
||||||
| Extension Chrome pour designers et développeurs qui inspecte n'importe quel site web en un clic : extraction des couleurs, typographies, spacings, et génération automatique d'un mini design system exportable. | ||||||
|
|
||||||
| ## ✨ Features | ||||||
|
|
||||||
| ### 🎯 Mode Inspection | ||||||
| - Hover highlight avec box model visuel (padding vert, margin orange, content bleu) | ||||||
| - Clic sur un élément → panel avec toutes les infos CSS | ||||||
| - Copie en un clic de n'importe quelle valeur | ||||||
|
|
||||||
| ### 📊 Mode Scan | ||||||
| - Analyse la page entière automatiquement | ||||||
| - Extraction : couleurs, typographies, spacings, shadows, border-radius | ||||||
| - Clustering intelligent des couleurs (deltaE) | ||||||
| - Classification auto : Primary, Secondary, Neutrals, Background, Text | ||||||
|
|
||||||
| ### 🎨 Design System Generator | ||||||
| - Génération automatique d'un design system structuré | ||||||
| - Tokens éditables (renommer, supprimer) | ||||||
| - Export multi-format : | ||||||
| - **CSS Variables** — `:root { --color-primary: ... }` | ||||||
| - **Tailwind Config** — `theme.extend` prêt à coller | ||||||
| - **JSON Tokens** — Compatible Style Dictionary / Figma | ||||||
| - **PNG Palette** — Image partageable | ||||||
|
|
||||||
| ### 🛠️ Outils | ||||||
| - 📏 Mesure de distances entre éléments | ||||||
| - 📐 Grid overlay configurable (4/8/12/16px) | ||||||
| - 🎯 Floating toolbar draggable | ||||||
|
|
||||||
| ## 🏗️ Tech Stack | ||||||
|
|
||||||
| | Technologie | Usage | | ||||||
| |---|---| | ||||||
| | React 19 | UI Side Panel + Popup | | ||||||
| | TypeScript (strict) | Type safety partout | | ||||||
| | Tailwind CSS v4 | Styling avec design tokens | | ||||||
| | Vite + CRXJS | Build + HMR Chrome Extension | | ||||||
| | Zustand v5 | State management | | ||||||
| | Chroma.js | Color manipulation + clustering | | ||||||
| | Phosphor Icons | Iconographie | | ||||||
| | Chrome Extension MV3 | Manifest V3 + Side Panel API | | ||||||
|
|
||||||
| ## 📦 Installation | ||||||
|
|
||||||
| ### Prérequis | ||||||
| - Node.js 20+ | ||||||
|
||||||
| - Node.js 20+ | |
| - Node.js 20.19.0+ |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Several devDependencies in
package-lock.jsonrequire Node^20.19.0. Usingnode-version: '20'will usually pick the latest 20.x, but it’s safer/reproducible to pin to the minimum required minor (e.g.,20.19.0) or bump to Node 22+. Otherwise CI could break if it resolves to an older Node 20 minor in some environments.