Skip to content

About

No description, website, or topics provided.

Resources

Stars

12 stars

Watchers

1 watching

Forks

Repository files navigation

VibePalette

VibePalette 2.0.1 is a Chrome/Edge extension for capturing the current tab and extracting polished, export-ready color palettes.

VibePalette logo

Features

  • 📸 Instant Capture: Takes a screenshot of your current tab instantly.
  • 🎨 Real-image palette extraction: Uses dominance-aware RGB bins, cell winners, corner sampling, and top-band sampling to avoid tiny saturated noise.
  • 🧭 Balanced palette selection: Preserves meaningful color diversity without forcing irrelevant hue families.
  • 🎬 Cinematic Export: Save palettes as framed image exports with balanced rows, readable labels, and optional color codes.
  • 💻 Dev-Friendly Exports:
    • Copy palette colors
    • Share as a Coolors URL
    • Export as PNG, CSS custom properties, or JSON
  • 🔧 Customizable:
    • Adjust color count (5-10)
    • Choose formats (HEX, RGB, HSL)
    • Auto, dark, and light themes
  • ⌨️ Keyboard Shortcuts:
    • Alt+R: Recapture
    • Alt+C: Copy all colors
    • Alt+E: Export
    • Alt+S: Settings

Installation

  1. Clone this repository.
  2. Open Chrome or Edge and navigate to chrome://extensions/ or edge://extensions/.
  3. Enable Developer mode (top right toggle).
  4. Click Load unpacked.
  5. Select the VibePalette folder.

Technologies

  • Vanilla JavaScript (No heavy frameworks)
  • Custom palette heuristics (candidate extraction and ranking)
  • HTML5 Canvas (for image processing)
  • Vitest & JSDOM (for automated testing)
  • ImageMagick (optional locally and required by CI for real-image regressions)

Project Structure

  • background.js: Extension background logic.
  • popup.*: Main extension interface and capture flow.
  • settings.js: Settings persistence and theme state.
  • export.js: PNG, CSS, JSON, and share export helpers.
  • fonts/: Bundled export/UI fonts.
  • icons/: Extension assets.
  • tests/: Automated unit, popup, manifest, simulation, and real-image tests.
  • docs/: Development logs and planning.

Development

To run tests:

npm install
npm run check

To create a validated unpacked-store ZIP in dist/:

npm run package:extension

The packaging command uses an explicit runtime allowlist and verifies the archive, manifest references, permissions, icons, and distribution notices. The full check also enforces measured statement/line, branch, and function coverage thresholds for the runtime modules.

Privacy

Screenshots are processed in the popup and are not stored or transmitted. VibePalette stores only preferences and a five-entry color history. See PRIVACY.md for the complete data and permission disclosure.

Release

Current release: 2.0.1.

See CHANGELOG.md for release notes.

MIT License.

About

No description, website, or topics provided.

Resources

Stars

12 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages