Add dark mode support to Gitiles

Implement CSS custom properties across core UI, markdown docs, and
syntax highlighting stylesheets. Add a zero-FOUC theme initialization
script in <head> and an interactive toggle in the header that persists
preference across sessions via localStorage and cookies.

Tested:
- Added comprehensive unit tests in ThemeTest covering all HTML routes.
- Ran all Gitiles servlet unit tests and downstream Gerrit HTTP tests.

Change-Id: I2b8bf5dacd986710a62b61df87550d776ca20290
10 files changed
tree: 2b2f37ebf02fb120cfc183d8d793beae79e2b4bf
  1. .settings/
  2. Documentation/
  3. java/
  4. javatests/
  5. lib/
  6. modules/
  7. resources/
  8. tools/
  9. .bazelignore
  10. .bazelrc
  11. .bazelversion
  12. .gitignore
  13. .gitmodules
  14. .mailmap
  15. .zuul.yaml
  16. BUILD
  17. COPYING
  18. external_deps.lock.json
  19. fake_pom_deploy.xml
  20. MODULE.bazel
  21. MODULE.bazel.lock
  22. navbar.md
  23. README.md
  24. version.bzl
README.md

Gitiles - A simple JGit repository browser

Gitiles is a simple repository browser for Git repositories, built on JGit. Its guiding principle is simplicity: it has no formal access controls, no write access, no fancy Javascript, etc.

Gitiles automatically renders *.md Markdown files into HTML for simplified documentation. Refer to the Markdown documentation for details.

Configuration

Gitiles is configurable in a git-style configuration file named gitiles.config. Refer to the configuration documentation for details.

Bugs

Use gerrit's issue tracker to file bugs.

Contributing to Gitiles

Please refer to the Developer Guide.