{"id":19309646,"url":"https://github.com/roxma/modus-themes","last_synced_at":"2026-02-27T21:03:37.975Z","repository":{"id":82181145,"uuid":"472600781","full_name":"roxma/modus-themes","owner":"roxma","description":"Forked from https://gitlab.com/protesilaos/modus-themes","archived":false,"fork":false,"pushed_at":"2022-03-22T03:26:13.000Z","size":4318,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-24T03:24:02.148Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/roxma.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.org","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-22T03:25:34.000Z","updated_at":"2022-04-20T13:05:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"a95e8500-e366-4181-81d6-ad11ee20fe0f","html_url":"https://github.com/roxma/modus-themes","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/roxma/modus-themes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roxma%2Fmodus-themes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roxma%2Fmodus-themes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roxma%2Fmodus-themes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roxma%2Fmodus-themes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/roxma","download_url":"https://codeload.github.com/roxma/modus-themes/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roxma%2Fmodus-themes/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29913683,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T19:37:42.220Z","status":"ssl_error","status_checked_at":"2026-02-27T19:37:41.463Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T00:20:05.768Z","updated_at":"2026-02-27T21:03:37.946Z","avatar_url":"https://github.com/roxma.png","language":"Emacs Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Modus themes for GNU Emacs (Modus Operandi and Modus Vivendi)\n\nA pair of highly accessible themes that conform with the WCAG AAA\nstandard for colour contrast between background and foreground\ncombinations (a minimum contrast of 7:1---the highest standard of its\nkind).  The Modus themes also strive to empower users with red-green\ncolor deficiency: this is achieved through customisation options that\nreplace all relevant instances of green with blue, as well as the\noverall design of the themes which relies mostly on colours that cover\nthe blue-cyan-magenta side of the spectrum.\n\nThe themes are built into GNU Emacs 28 (development target).  They are\nalso distributed in several packages formats.\n\n+ `modus-operandi` is light.\n+ `modus-vivendi` is dark.\n\nFor some demo content, check:\n\n+ The screenshots of the themes \u003chttps://protesilaos.com/emacs/modus-themes-pictures/\u003e.\n+ My videos on Emacs \u003chttps://protesilaos.com/code-casts/\u003e.\n\n## Quick setup for the latest version\n\n### Built-in version\n\nFor the themes that are built into Emacs you cannot `require` the\npackage.  Use the following instead.\n\nWith `use-package`:\n\n```elisp\n(use-package emacs\n  :init\n  ;; Add all your customizations prior to loading the themes\n  (setq modus-themes-italic-constructs t\n        modus-themes-bold-constructs nil\n        modus-themes-region '(bg-only no-extend))\n  :config\n  ;; Load the theme of your choice:\n  (load-theme 'modus-operandi) ;; OR (load-theme 'modus-vivendi)\n  :bind (\"\u003cf5\u003e\" . modus-themes-toggle)\n```\n\nWithout `use-package`:\n\n```elisp\n;; Add all your customizations prior to loading the themes\n(setq modus-themes-italic-constructs t\n      modus-themes-bold-constructs nil\n      modus-themes-region '(bg-only no-extend))\n\n;; Load the theme of your choice:\n(load-theme 'modus-operandi) ;; OR (load-theme 'modus-vivendi)\n\n(define-key global-map (kbd \"\u003cf5\u003e\") #'modus-themes-toggle)\n```\n\n### Packaged version\n\nWith `use-package`:\n\n```elisp\n(use-package modus-themes\n  :ensure\n  :init\n  ;; Add all your customizations prior to loading the themes\n  (setq modus-themes-italic-constructs t\n        modus-themes-bold-constructs nil\n        modus-themes-region '(bg-only no-extend))\n\n  ;; Load the theme files before enabling a theme\n  (modus-themes-load-themes)\n  :config\n  ;; Load the theme of your choice:\n  (modus-themes-load-operandi) ;; OR (modus-themes-load-vivendi)\n  :bind (\"\u003cf5\u003e\" . modus-themes-toggle))\n```\n\nWithout `use-package`:\n\n```elisp\n(require 'modus-themes)\n\n;; Add all your customizations prior to loading the themes\n(setq modus-themes-italic-constructs t\n      modus-themes-bold-constructs nil\n      modus-themes-region '(bg-only no-extend))\n\n;; Load the theme files before enabling a theme\n(modus-themes-load-themes)\n\n;; Load the theme of your choice:\n(modus-themes-load-operandi) ;; OR (modus-themes-load-vivendi)\n\n(define-key global-map (kbd \"\u003cf5\u003e\") #'modus-themes-toggle)\n```\n\nNote: make sure that you **do not customise** `custom-theme-load-path`\nor `custom-theme-directory` _after_ the themes' package declaration.\nThat will lead to failures in loading the files.  If you must change\nthose variables, do it before the package declaration.\n\n## All customisations in short\n\nWhile you should read the manual for all the details (see next section),\nhere is a snippet with all current customisation options and their\npossible values.  Note that those settings are only for purposes of\ndemonstration:\n\n```elisp\n(setq modus-themes-italic-constructs t\n      modus-themes-bold-constructs nil\n      modus-themes-mixed-fonts nil\n      modus-themes-subtle-line-numbers nil\n      modus-themes-intense-mouseovers nil\n      modus-themes-deuteranopia t\n      modus-themes-tabs-accented t\n      modus-themes-variable-pitch-ui nil\n      modus-themes-inhibit-reload t ; only applies to `customize-set-variable' and related\n\n      modus-themes-fringes nil ; {nil,'subtle,'intense}\n\n      ;; Options for `modus-themes-lang-checkers' are either nil (the\n      ;; default), or a list of properties that may include any of those\n      ;; symbols: `straight-underline', `text-also', `background',\n      ;; `intense' OR `faint'.\n      modus-themes-lang-checkers nil\n\n      ;; Options for `modus-themes-mode-line' are either nil, or a list\n      ;; that can combine any of `3d' OR `moody', `borderless',\n      ;; `accented', a natural number for extra padding (or a cons cell\n      ;; of padding and NATNUM), and a floating point for the height of\n      ;; the text relative to the base font size (or a cons cell of\n      ;; height and FLOAT)\n      modus-themes-mode-line '(accented borderless (padding . 4) (height . 0.9))\n\n      ;; Same as above:\n      ;; modus-themes-mode-line '(accented borderless 4 0.9)\n\n      ;; Options for `modus-themes-markup' are either nil, or a list\n      ;; that can combine any of `bold', `italic', `background',\n      ;; `intense'.\n      modus-themes-markup '(background italic)\n\n      ;; Options for `modus-themes-syntax' are either nil (the default),\n      ;; or a list of properties that may include any of those symbols:\n      ;; `faint', `yellow-comments', `green-strings', `alt-syntax'\n      modus-themes-syntax nil\n\n      ;; Options for `modus-themes-hl-line' are either nil (the default),\n      ;; or a list of properties that may include any of those symbols:\n      ;; `accented', `underline', `intense'\n      modus-themes-hl-line '(underline accented)\n\n      ;; Options for `modus-themes-paren-match' are either nil (the\n      ;; default), or a list of properties that may include any of those\n      ;; symbols: `bold', `intense', `underline'\n      modus-themes-paren-match '(bold intense)\n\n      ;; Options for `modus-themes-links' are either nil (the default),\n      ;; or a list of properties that may include any of those symbols:\n      ;; `neutral-underline' OR `no-underline', `faint' OR `no-color',\n      ;; `bold', `italic', `background'\n      modus-themes-links '(neutral-underline background)\n\n      ;; Options for `modus-themes-box-buttons' are either nil (the\n      ;; default), or a list that can combine any of `flat', `accented',\n      ;; `faint', `variable-pitch', `underline', the symbol of any font\n      ;; weight as listed in `modus-themes-weights', and a floating\n      ;; point number (e.g. 0.9) for the height of the button's text.\n      modus-themes-box-buttons '(variable-pitch flat faint 0.9)\n\n      ;; Options for `modus-themes-prompts' are either nil (the\n      ;; default), or a list of properties that may include any of those\n      ;; symbols: `background', `bold', `gray', `intense', `italic'\n      modus-themes-prompts '(intense bold)\n\n      ;; The `modus-themes-completions' is an alist that reads three\n      ;; keys: `matches', `selection', `popup'.  Each accepts a nil\n      ;; value (or empty list) or a list of properties that can include\n      ;; any of the following (for WEIGHT read further below):\n      ;;\n      ;; `matches' - `background', `intense', `underline', `italic', WEIGHT\n      ;; `selection' - `accented', `intense', `underline', `italic', `text-also' WEIGHT\n      ;; `popup' - same as `selected'\n      ;; `t' - applies to any key not explicitly referenced (check docs)\n      ;;\n      ;; WEIGHT is a symbol such as `semibold', `light', or anything\n      ;; covered in `modus-themes-weights'.  Bold is used in the absence\n      ;; of an explicit WEIGHT.\n      modus-themes-completions '((matches . (extrabold))\n                                 (selection . (semibold accented))\n                                 (popup . (accented intense)))\n\n      modus-themes-mail-citations nil ; {nil,'intense,'faint,'monochrome}\n\n      ;; Options for `modus-themes-region' are either nil (the default),\n      ;; or a list of properties that may include any of those symbols:\n      ;; `no-extend', `bg-only', `accented'\n      modus-themes-region '(bg-only no-extend)\n\n      ;; Options for `modus-themes-diffs': nil, 'desaturated, 'bg-only\n      modus-themes-diffs 'desaturated\n\n      modus-themes-org-blocks 'gray-background ; {nil,'gray-background,'tinted-background}\n\n      modus-themes-org-agenda ; this is an alist: read the manual or its doc string\n      '((header-block . (variable-pitch 1.3))\n        (header-date . (grayscale workaholic bold-today 1.1))\n        (event . (accented varied))\n        (scheduled . uniform)\n        (habit . traffic-light))\n\n      modus-themes-headings ; this is an alist: read the manual or its doc string\n      '((1 . (overline background variable-pitch 1.3))\n        (2 . (rainbow overline 1.1))\n        (t . (semibold))))\n```\n\n## Further information\n\nRead the [Info manual HTML](https://protesilaos.com/emacs/modus-themes)\nversion for how to install, load, enable, and customise the themes.  If\nyou are using the latest version of the themes, you already have the\nmanual installed: evaluate `(info \"(modus-themes) Top\")` to start\nreading it.\n\nThe themes cover a broad range of packages and are highly customisable.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froxma%2Fmodus-themes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froxma%2Fmodus-themes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froxma%2Fmodus-themes/lists"}