mirror of
https://github.com/vee1e/mitmproxy.git
synced 2026-09-03 19:27:14 +00:00
* feat(web): add semantic CSS custom-property color layer Introduce a :root set of semantic color tokens (surfaces, text, borders, accent, state) in global.less and route the recurring, directly-used colors across the LESS files through them. Light-mode values are byte-equal to the literals they replace, so this is a visual no-op; it exists to give a future dark theme a single place to override. Colors that LESS functions (lighten/darken/fadeout) consume, and one-off decorative colors, are intentionally left as literals because those functions cannot operate on var(). Part of #7789. * [autofix.ci] apply automated fixes * refactor(web): route remaining hardcoded colors through color tokens Route the remaining directly-used background, text, and border literals across the LESS files through the existing semantic tokens introduced in the color layer, reusing tokens rather than adding new ones. Light-mode colors stay visually unchanged; one-off decorative colors and LESS-function inputs are left as literals. * refactor(web): tokenize recurring colors and drop dead styles Add a --mitmweb-highlight token for the shared row-hover / suggestion-selection color (used in header.less and command.less) and a --mitmweb-gray token for the neutral gray reused across mode.less. Remove the unused .command-suggestion rule and the dead rgba() border fallback in dropdown.less, which was overriding the tokenized border and rendering as translucent black. * refactor(web): use the accent token for the first line and special tab Replace the near-accent literals #428bca (flow detail first line) and #396cad (special tab) with --mitmweb-accent so the accent lives in exactly one place. Both were within a few percent of the token, so this is a small deliberate light-theme shift rather than a visual no-op. The special tab derived its hover from lighten(@special-color, 10%); since LESS functions cannot operate on var(), it now uses --mitmweb-accent-active, the same hover shade .btn-primary already uses. * refactor(web): tokenize the mode green left border Add a --mitmweb-green token for the #77c77a left border in mode.less, mirroring the --mitmweb-gray token already used by the neighbouring .gray-left-border. * refactor(web): tokenize flow table row state colors Add --mitmweb-row-* tokens for the highlighted, selected, and selected+highlighted row shades and route flowtable.less through them. The base rows reuse the existing --mitmweb-bg / --mitmweb-bg-alt surfaces, whose values are byte-equal to the hsl() literals they replace. Values are unchanged, so this is a visual no-op; it gives the dark theme one place to override the row states. * docs: drop the changelog entry for the CSS color token layer The entry conflicts with the upstream CHANGELOG.md on the PR. Removing it for now; the entry will be re-added once the branch is rebased. * [autofix.ci] apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| gen | ||
| public/static | ||
| src | ||
| .editorconfig | ||
| .prettierignore | ||
| eslint.config.mjs | ||
| index.html | ||
| jest.config.js | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| setup-global-jest.js | ||
| setup-jest.js | ||
| tsconfig.json | ||
| vite.config.ts | ||
Quick Start
- Install mitmproxy as described in
../CONTRIBUTING.md - Run
node --versionto make sure that you have at least Node.js 24 or above. - Run
cd ./webto change to the directory with package.json. - Run
npm installto install dependencies. - Run
uv run mitmweb - Run
npm startin a separate window to start the Vite development server for the web interface.
Testing
- Run
npm testto run the test suite.
Code formatting
- Run
npm run prettierto format your code. You can also integrate prettier into your editor, see https://prettier.io/docs/en/editors.html
Architecture
There are two components:
-
Server:
mitmproxy/tools/web -
Client:
web
Contributing
We very much appreciate any (small) improvements to mitmweb. Please do not include the compiled assets in
mitmproxy/tools/web/static
in your pull request. Refreshing them on every commit would massively increase repository size. We will update these
files before every release.
Developer Tools
- You can debug application state using the React DevTools and Redux DevTools browser extensions.