AmbiColor is a small, accessibility-first Windows desktop app that generates continuous ambient color transitions.
The focus is on:
- soft, non-aggressive color changes
- perceptually pleasing transitions
- full keyboard accessibility
- screen reader compatibility (NVDA tested)
- transparent control via sliders, switches, and presets
AmbiColor is not a screensaver and not a design tool. It is an ambient visual instrument.
This repository now includes an initial v0.1 implementation for:
- Preset 01 (Classic Color Cycle)
- keyboard-only operation
- screen-reader friendly labels and state text
- basic color naming tied to exact color values
- in-app preset descriptions (what each preset is intended to do)
- combined playback control (
Start/Pause/Resume) + explicitStopstate
Presets 02-04 are visible in the UI but intentionally not fully implemented yet.
Color naming in v0.1 is manual:
- you can assign your own name to the currently shown HEX color
- automatic naming is planned for future versions
Primary runtime target:
- Conda environment:
devenv - Python:
>=3.14,<3.15(validated against3.14.2indevenv)
Run the commands from the project root AmbiColor/ (the folder that contains requirements.txt).
conda activate devenv
pip install -r requirements.txt
python app/main.pyIf conda activate is unreliable in your WSL setup, use:
"/mnt/c/Users/wasch/anaconda3/Scripts/conda.exe" run -n devenv python -m pip install -r requirements.txt
"/mnt/c/Users/wasch/anaconda3/Scripts/conda.exe" run -n devenv python app/main.pyconda activate devenv
pytest -qAlternative (WSL + Windows conda.exe):
"/mnt/c/Users/wasch/anaconda3/Scripts/conda.exe" run -n devenv pytest -qManual NVDA acceptance is defined in docs/TEST_NVDA.md.
Accessibility is not an afterthought.
Design principles:
- All controls reachable via Tab / Shift+Tab
- All controls labeled for screen readers
- No mouse required
- No visual-only feedback
- Clear state reporting (running / paused / standstill)
This project is licensed under the MIT License.
See LICENSE for details.