diff --git a/README.md b/README.md index 973d0bc..c200538 100644 --- a/README.md +++ b/README.md @@ -71,8 +71,15 @@ ocupa a tela inteira; menus e toolbar rolam horizontalmente com botões só de realce, mantendo as camadas alinhadas. - **Fonte** (DejaVu Sans Mono, Ubuntu Mono, Cascadia Code, Liberation Mono, Courier New ou monoespaçada do sistema) e **tamanho** (10–32 px). - - **Esquema de cores / tema**: Claro (Greybird), Escuro (Adwaita), Solarizado claro e - Solarizado escuro — aplicam-se a toda a interface, incluindo preview e diffs. + - **Esquema de cores / tema** (21 opções, em grupos no diálogo): nativos — Claro (Greybird), + Escuro (Adwaita), Solarizado claro/escuro; **iTerm2-Color-Schemes** (projeto + [mbadolato/iTerm2-Color-Schemes](https://github.com/mbadolato/iTerm2-Color-Schemes), MIT) — + escuros: Dracula, Nord, Atom One Dark, Monokai Pro, Gruvbox Dark, Tokyo Night, Catppuccin + Mocha, Tomorrow Night, Ayu Mirage, Kanagawa Wave; claros: Catppuccin Latte, Gruvbox Light, + Atom One Light, Nord Light, Carbon Paper, Tomorrow, Ayu Light. As cores de UI **e** dos + tokens de sintaxe são derivadas do Background/Foreground + ANSI 0–15 de cada arquivo + `.itermcolors`; cada tema também declara `color-scheme` (scrollbars/controles nativos + acompanham). Aplicam-se a toda a interface, incluindo preview e diffs. - **Colorização de sintaxe**: Markdown (títulos, negrito/itálico, código inline e blocos ` ``` `, listas, citações, links, tags `#tag`, URLs) e HTML (tags, atributos, strings, comentários, entidades) renderizados por overlay sobre o textarea; desligável. diff --git a/web/css/app.css b/web/css/app.css index f5bf6d6..a57c639 100644 --- a/web/css/app.css +++ b/web/css/app.css @@ -933,3 +933,740 @@ html[data-theme="solar-escuro"] #revisions-list li:hover { background: #0c4450; } .tab .tab-pres { color: var(--warn); font-size: 10px; flex: none; } #st-saved.pending { color: var(--accent); font-weight: 600; } + +/* ========================================================================= + Esquemas de cores do projeto iTerm2-Color-Schemes + (https://github.com/mbadolato/iTerm2-Color-Schemes, MIT). + UI e tokens derivados do Background/Foreground + ANSI 0–15 de cada + arquivo .itermcolors; nomes dos esquemas entre parênteses. */ + +/* Dracula — iTerm2-Color-Schemes (mbadolato, MIT) */ +html[data-theme="dracula"] { color-scheme: dark; + --bg: #1f212a; + --panel: #282a36; + --panel-2: #393a45; + --border: #66686e; + --border-soft: #4d4f58; + --fg: #f8f8f2; + --muted: #a1a1a3; + --accent: #d6acff; + --accent-dark: #bd93f9; + --danger: #ff6e6e; + --success: #69ff94; + --warn: #ffffa5; + --diff-add: #324c45; + --diff-del: #4a353f; + --diff-hunk: #47415a; + --tk-heading: #d6acff; + --tk-strong: #ffffa5; + --tk-em: #ff92df; + --tk-strike: #ffb78a; + --tk-code: #a4ffff; + --tk-code-bg: #37444e; + --tk-fence: #a1a1a3; + --tk-link: #d6acff; + --tk-url: #a1a1a3; + --tk-tag: #d6acff; + --tk-mark: #ffffa5; + --tk-quote: #a1a1a3; + --tk-html: #ff6e6e; + --tk-attr: #ffffa5; + --tk-str: #69ff94; + --tk-comment: #6272a4; + --tk-punc: #afb0b0; + --tk-ent: #ff92df; + --marker: #ffffa5; +} +html[data-theme="dracula"] #editor::selection { background: rgba(214,172,255, .30); } +html[data-theme="dracula"] #notes-list li.active, +html[data-theme="dracula"] #revisions-list li.active { background: #524966; } +html[data-theme="dracula"] #notes-list li:hover, +html[data-theme="dracula"] #revisions-list li:hover { background: #41434d; } + +/* Nord — iTerm2-Color-Schemes (mbadolato, MIT) */ +html[data-theme="nord"] { color-scheme: dark; + --bg: #242932; + --panel: #2e3440; + --panel-2: #3c424e; + --border: #616773; + --border-soft: #4d535e; + --fg: #d8dee9; + --muted: #9197a2; + --accent: #81a1c1; + --accent-dark: #81a1c1; + --danger: #bf616a; + --success: #a3be8c; + --warn: #ebcb8b; + --diff-add: #414a4c; + --diff-del: #453b47; + --diff-hunk: #3d4857; + --tk-heading: #81a1c1; + --tk-strong: #ebcb8b; + --tk-em: #b48ead; + --tk-strike: #d5967b; + --tk-code: #8fbcbb; + --tk-code-bg: #3a444f; + --tk-fence: #9197a2; + --tk-link: #81a1c1; + --tk-url: #9197a2; + --tk-tag: #81a1c1; + --tk-mark: #ebcb8b; + --tk-quote: #9197a2; + --tk-html: #bf616a; + --tk-attr: #ebcb8b; + --tk-str: #a3be8c; + --tk-comment: #4c566a; + --tk-punc: #9da3ae; + --tk-ent: #b48ead; + --marker: #ebcb8b; +} +html[data-theme="nord"] #editor::selection { background: rgba(129,161,193, .30); } +html[data-theme="nord"] #notes-list li.active, +html[data-theme="nord"] #revisions-list li.active { background: #424e5f; } +html[data-theme="nord"] #notes-list li:hover, +html[data-theme="nord"] #revisions-list li:hover { background: #424854; } + +/* Gruvbox Dark — iTerm2-Color-Schemes (mbadolato, MIT) */ +html[data-theme="gruvbox-dark"] { color-scheme: dark; + --bg: #1f1f1f; + --panel: #282828; + --panel-2: #383633; + --border: #635e51; + --border-soft: #4b4841; + --fg: #ebdbb2; + --muted: #999078; + --accent: #83a598; + --accent-dark: #458588; + --danger: #fb4934; + --success: #b8bb26; + --warn: #fabd2f; + --diff-add: #3f4028; + --diff-del: #4a2d2a; + --diff-hunk: #383f3c; + --tk-heading: #83a598; + --tk-strong: #fabd2f; + --tk-em: #d3869b; + --tk-strike: #fb8332; + --tk-code: #8ec07c; + --tk-code-bg: #343a32; + --tk-fence: #999078; + --tk-link: #83a598; + --tk-url: #999078; + --tk-tag: #83a598; + --tk-mark: #fabd2f; + --tk-quote: #999078; + --tk-html: #fb4934; + --tk-attr: #fabd2f; + --tk-str: #b8bb26; + --tk-comment: #928374; + --tk-punc: #a79c82; + --tk-ent: #d3869b; + --marker: #fabd2f; +} +html[data-theme="gruvbox-dark"] #editor::selection { background: rgba(131,165,152, .30); } +html[data-theme="gruvbox-dark"] #notes-list li.active, +html[data-theme="gruvbox-dark"] #revisions-list li.active { background: #3e4643; } +html[data-theme="gruvbox-dark"] #notes-list li:hover, +html[data-theme="gruvbox-dark"] #revisions-list li:hover { background: #3f3d39; } + +/* Catppuccin Mocha — iTerm2-Color-Schemes (mbadolato, MIT) */ +html[data-theme="catppuccin-mocha"] { color-scheme: dark; + --bg: #171724; + --panel: #1e1e2e; + --panel-2: #2c2d3e; + --border: #535569; + --border-soft: #3e3f52; + --fg: #cdd6f4; + --muted: #8489a1; + --accent: #aeccfc; + --accent-dark: #89b4fa; + --danger: #f7aec2; + --success: #c2ecbf; + --warn: #fcd682; + --diff-add: #383f45; + --diff-del: #413546; + --diff-hunk: #383d53; + --tk-heading: #aeccfc; + --tk-strong: #fcd682; + --tk-em: #f398da; + --tk-strike: #fac2a2; + --tk-code: #b1eae1; + --tk-code-bg: #303643; + --tk-fence: #8489a1; + --tk-link: #aeccfc; + --tk-url: #8489a1; + --tk-tag: #aeccfc; + --tk-mark: #fcd682; + --tk-quote: #8489a1; + --tk-html: #f7aec2; + --tk-attr: #fcd682; + --tk-str: #c2ecbf; + --tk-comment: #585b70; + --tk-punc: #9096af; + --tk-ent: #f398da; + --marker: #fcd682; +} +html[data-theme="catppuccin-mocha"] #editor::selection { background: rgba(174,204,252, .30); } +html[data-theme="catppuccin-mocha"] #notes-list li.active, +html[data-theme="catppuccin-mocha"] #revisions-list li.active { background: #41485f; } +html[data-theme="catppuccin-mocha"] #notes-list li:hover, +html[data-theme="catppuccin-mocha"] #revisions-list li:hover { background: #333446; } + +/* Tomorrow Night — iTerm2-Color-Schemes (mbadolato, MIT) */ +html[data-theme="tomorrow-night"] { color-scheme: dark; + --bg: #17181a; + --panel: #1d1f21; + --panel-2: #2a2d2e; + --border: #4f5253; + --border-soft: #3b3d3f; + --fg: #c5c8c6; + --muted: #7e8181; + --accent: #81a2be; + --accent-dark: #81a2be; + --danger: #cc6666; + --success: #b5bd68; + --warn: #f0c674; + --diff-add: #35382c; + --diff-del: #392a2c; + --diff-hunk: #2f373d; + --tk-heading: #81a2be; + --tk-strong: #f0c674; + --tk-em: #b294bb; + --tk-strike: #de966d; + --tk-code: #8abeb7; + --tk-code-bg: #2a3233; + --tk-fence: #7e8181; + --tk-link: #81a2be; + --tk-url: #7e8181; + --tk-tag: #81a2be; + --tk-mark: #f0c674; + --tk-quote: #7e8181; + --tk-html: #cc6666; + --tk-attr: #f0c674; + --tk-str: #b5bd68; + --tk-comment: #000000; + --tk-punc: #8a8d8c; + --tk-ent: #b294bb; + --marker: #f0c674; +} +html[data-theme="tomorrow-night"] #editor::selection { background: rgba(129,162,190, .30); } +html[data-theme="tomorrow-night"] #notes-list li.active, +html[data-theme="tomorrow-night"] #revisions-list li.active { background: #353e47; } +html[data-theme="tomorrow-night"] #notes-list li:hover, +html[data-theme="tomorrow-night"] #revisions-list li:hover { background: #313335; } + +/* Ayu Mirage — iTerm2-Color-Schemes (mbadolato, MIT) */ +html[data-theme="ayu-mirage"] { color-scheme: dark; + --bg: #181c25; + --panel: #1f2430; + --panel-2: #2d313c; + --border: #53565c; + --border-soft: #3e424a; + --fg: #cccac2; + --muted: #838485; + --accent: #73d0ff; + --accent-dark: #6dcbfa; + --danger: #f28779; + --success: #d5ff80; + --warn: #ffd173; + --diff-add: #3c473d; + --diff-del: #41343c; + --diff-hunk: #2e4355; + --tk-heading: #73d0ff; + --tk-strong: #ffd173; + --tk-em: #dfbfff; + --tk-strike: #f9ac76; + --tk-code: #95e6cb; + --tk-code-bg: #2d3b43; + --tk-fence: #838485; + --tk-link: #73d0ff; + --tk-url: #838485; + --tk-tag: #73d0ff; + --tk-mark: #ffd173; + --tk-quote: #838485; + --tk-html: #f28779; + --tk-attr: #ffd173; + --tk-str: #d5ff80; + --tk-comment: #686868; + --tk-punc: #8f908f; + --tk-ent: #dfbfff; + --marker: #ffd173; +} +html[data-theme="ayu-mirage"] #editor::selection { background: rgba(115,208,255, .30); } +html[data-theme="ayu-mirage"] #notes-list li.active, +html[data-theme="ayu-mirage"] #revisions-list li.active { background: #334d62; } +html[data-theme="ayu-mirage"] #notes-list li:hover, +html[data-theme="ayu-mirage"] #revisions-list li:hover { background: #343842; } + +/* Kanagawa Wave — iTerm2-Color-Schemes (mbadolato, MIT) */ +html[data-theme="kanagawa-wave"] { color-scheme: dark; + --bg: #18181f; + --panel: #1f1f28; + --panel-2: #2e2e34; + --border: #585654; + --border-soft: #414042; + --fg: #dcd7ba; + --muted: #8d8a7d; + --accent: #7fb4ca; + --accent-dark: #7e9cd8; + --danger: #e82424; + --success: #98bb6c; + --warn: #e6c384; + --diff-add: #323833; + --diff-del: #3f2027; + --diff-hunk: #303a45; + --tk-heading: #7fb4ca; + --tk-strong: #e6c384; + --tk-em: #938aa9; + --tk-strike: #e77454; + --tk-code: #7aa89f; + --tk-code-bg: #2a2f36; + --tk-fence: #8d8a7d; + --tk-link: #7fb4ca; + --tk-url: #8d8a7d; + --tk-tag: #7fb4ca; + --tk-mark: #e6c384; + --tk-quote: #8d8a7d; + --tk-html: #e82424; + --tk-attr: #e6c384; + --tk-str: #98bb6c; + --tk-comment: #727169; + --tk-punc: #9a9787; + --tk-ent: #938aa9; + --marker: #e6c384; +} +html[data-theme="kanagawa-wave"] #editor::selection { background: rgba(127,180,202, .30); } +html[data-theme="kanagawa-wave"] #notes-list li.active, +html[data-theme="kanagawa-wave"] #revisions-list li.active { background: #36434f; } +html[data-theme="kanagawa-wave"] #notes-list li:hover, +html[data-theme="kanagawa-wave"] #revisions-list li:hover { background: #36353a; } + +/* Catppuccin Latte — iTerm2-Color-Schemes (mbadolato, MIT) */ +html[data-theme="catppuccin-latte"] { color-scheme: light; + --bg: #e3e5e9; + --panel: #eff1f5; + --panel-2: #e5e7ed; + --border: #bec0cb; + --border-soft: #d2d4dc; + --fg: #4c4f69; + --muted: #9093a4; + --accent: #1e66f5; + --accent-dark: #1e66f5; + --danger: #d20f39; + --success: #40a02b; + --warn: #df8e1d; + --diff-add: #d3e4d5; + --diff-del: #eacdd7; + --diff-hunk: #c9d8f5; + --tk-heading: #1e66f5; + --tk-strong: #df8e1d; + --tk-em: #ea76cb; + --tk-strike: #d94f2b; + --tk-code: #179299; + --tk-code-bg: #d5e6ea; + --tk-fence: #9093a4; + --tk-link: #1e66f5; + --tk-url: #9093a4; + --tk-tag: #1e66f5; + --tk-mark: #d20f39; + --tk-quote: #9093a4; + --tk-html: #d20f39; + --tk-attr: #df8e1d; + --tk-str: #40a02b; + --tk-comment: #acb0be; + --tk-punc: #85889a; + --tk-ent: #ea76cb; + --marker: #df8e1d; +} +html[data-theme="catppuccin-latte"] #editor::selection { background: rgba(30,102,245, .30); } +html[data-theme="catppuccin-latte"] #notes-list li.active, +html[data-theme="catppuccin-latte"] #revisions-list li.active { background: #bdd0f5; } +html[data-theme="catppuccin-latte"] #notes-list li:hover, +html[data-theme="catppuccin-latte"] #revisions-list li:hover { background: #e2e4ea; } + +/* Gruvbox Light — iTerm2-Color-Schemes (mbadolato, MIT) */ +html[data-theme="gruvbox-light"] { color-scheme: light; + --bg: #eee5bd; + --panel: #fbf1c7; + --panel-2: #f0e6be; + --border: #c2ba9c; + --border-soft: #d9d0ad; + --fg: #3c3836; + --muted: #8c8673; + --accent: #458588; + --accent-dark: #458588; + --danger: #cc241d; + --success: #98971a; + --warn: #d79921; + --diff-add: #ebe3ab; + --diff-del: #f3d0ac; + --diff-hunk: #dadebc; + --tk-heading: #458588; + --tk-strong: #d79921; + --tk-em: #b16286; + --tk-strike: #d25f1f; + --tk-code: #689d6a; + --tk-code-bg: #e9e7bc; + --tk-fence: #8c8673; + --tk-link: #458588; + --tk-url: #8c8673; + --tk-tag: #458588; + --tk-mark: #cc241d; + --tk-quote: #8c8673; + --tk-html: #cc241d; + --tk-attr: #d79921; + --tk-str: #98971a; + --tk-comment: #928374; + --tk-punc: #7f7969; + --tk-ent: #b16286; + --marker: #d79921; +} +html[data-theme="gruvbox-light"] #editor::selection { background: rgba(69,133,136, .30); } +html[data-theme="gruvbox-light"] #notes-list li.active, +html[data-theme="gruvbox-light"] #revisions-list li.active { background: #cfd7b8; } +html[data-theme="gruvbox-light"] #notes-list li:hover, +html[data-theme="gruvbox-light"] #revisions-list li:hover { background: #ece2bb; } + +/* Nord Light — iTerm2-Color-Schemes (mbadolato, MIT) */ +html[data-theme="nord-light"] { color-scheme: light; + --bg: #dadde4; + --panel: #e5e9f0; + --panel-2: #dbdfe7; + --border: #b4b9c2; + --border-soft: #c7ccd5; + --fg: #414858; + --muted: #868c98; + --accent: #81a1c1; + --accent-dark: #81a1c1; + --danger: #bf616a; + --success: #a3be8c; + --warn: #ebcb8b; + --diff-add: #dae2e0; + --diff-del: #dfd3db; + --diff-hunk: #d3dce8; + --tk-heading: #81a1c1; + --tk-strong: #ebcb8b; + --tk-em: #b48ead; + --tk-strike: #d5967b; + --tk-code: #88c0d0; + --tk-code-bg: #dae4ec; + --tk-fence: #868c98; + --tk-link: #81a1c1; + --tk-url: #868c98; + --tk-tag: #81a1c1; + --tk-mark: #bf616a; + --tk-quote: #868c98; + --tk-html: #bf616a; + --tk-attr: #ebcb8b; + --tk-str: #a3be8c; + --tk-comment: #4c566a; + --tk-punc: #7a808d; + --tk-ent: #b48ead; + --marker: #ebcb8b; +} +html[data-theme="nord-light"] #editor::selection { background: rgba(129,161,193, .30); } +html[data-theme="nord-light"] #notes-list li.active, +html[data-theme="nord-light"] #revisions-list li.active { background: #cdd8e5; } +html[data-theme="nord-light"] #notes-list li:hover, +html[data-theme="nord-light"] #revisions-list li:hover { background: #d8dce4; } + +/* Tomorrow — iTerm2-Color-Schemes (mbadolato, MIT) */ +html[data-theme="tomorrow"] { color-scheme: light; + --bg: #f2f2f2; + --panel: #ffffff; + --panel-2: #f4f4f4; + --border: #cacac9; + --border-soft: #dfdfdf; + --fg: #4d4d4c; + --muted: #989897; + --accent: #4271ae; + --accent-dark: #4271ae; + --danger: #c82829; + --success: #718c00; + --warn: #eab700; + --diff-add: #e8edd6; + --diff-del: #f6dddd; + --diff-hunk: #dde5f0; + --tk-heading: #4271ae; + --tk-strong: #eab700; + --tk-em: #8959a8; + --tk-strike: #d97015; + --tk-code: #3e999f; + --tk-code-bg: #e8f3f3; + --tk-fence: #989897; + --tk-link: #4271ae; + --tk-url: #989897; + --tk-tag: #4271ae; + --tk-mark: #c82829; + --tk-quote: #989897; + --tk-html: #c82829; + --tk-attr: #eab700; + --tk-str: #718c00; + --tk-comment: #000000; + --tk-punc: #8b8b8b; + --tk-ent: #8959a8; + --marker: #eab700; +} +html[data-theme="tomorrow"] #editor::selection { background: rgba(66,113,174, .30); } +html[data-theme="tomorrow"] #notes-list li.active, +html[data-theme="tomorrow"] #revisions-list li.active { background: #d2ddec; } +html[data-theme="tomorrow"] #notes-list li:hover, +html[data-theme="tomorrow"] #revisions-list li:hover { background: #f1f1f1; } + +/* Ayu Light — iTerm2-Color-Schemes (mbadolato, MIT) */ +html[data-theme="ayu-light"] { color-scheme: light; + --bg: #ecedee; + --panel: #f8f9fa; + --panel-2: #eff0f1; + --border: #c9cbce; + --border-soft: #dcdedf; + --fg: #5c6166; + --muted: #9ea1a4; + --accent: #3199e1; + --accent-dark: #3199e1; + --danger: #ea6c6d; + --success: #6cbf43; + --warn: #eca944; + --diff-add: #e2f0dd; + --diff-del: #f6e2e3; + --diff-hunk: #d4e8f6; + --tk-heading: #3199e1; + --tk-strong: #eca944; + --tk-em: #9e75c7; + --tk-strike: #eb8b59; + --tk-code: #46ba94; + --tk-code-bg: #e3f1ee; + --tk-fence: #9ea1a4; + --tk-link: #3199e1; + --tk-url: #9ea1a4; + --tk-tag: #3199e1; + --tk-mark: #ea6c6d; + --tk-quote: #9ea1a4; + --tk-html: #ea6c6d; + --tk-attr: #eca944; + --tk-str: #6cbf43; + --tk-comment: #686868; + --tk-punc: #93969a; + --tk-ent: #9e75c7; + --marker: #eca944; +} +html[data-theme="ayu-light"] #editor::selection { background: rgba(49,153,225, .30); } +html[data-theme="ayu-light"] #notes-list li.active, +html[data-theme="ayu-light"] #revisions-list li.active { background: #c8e2f4; } +html[data-theme="ayu-light"] #notes-list li:hover, +html[data-theme="ayu-light"] #revisions-list li:hover { background: #ecedee; } + +/* Atom One Dark — iTerm2-Color-Schemes (mbadolato, MIT) */ +html[data-theme="one-dark"] { color-scheme: dark; + --bg: #1a1d22; + --panel: #21252b; + --panel-2: #2c3037; + --border: #4a4f57; + --border-soft: #3a3e46; + --fg: #abb2bf; + --muted: #717781; + --accent: #61afef; + --accent-dark: #61afef; + --danger: #e06c75; + --success: #98c379; + --warn: #e5c07b; + --diff-add: #343e37; + --diff-del: #403037; + --diff-hunk: #2d3e4e; + --tk-heading: #61afef; + --tk-strong: #e5c07b; + --tk-em: #c678dd; + --tk-strike: #e39678; + --tk-code: #56b6c2; + --tk-code-bg: #27363d; + --tk-fence: #747a84; + --tk-link: #61afef; + --tk-url: #717781; + --tk-tag: #61afef; + --tk-mark: #e5c07b; + --tk-quote: #717781; + --tk-html: #e06c75; + --tk-attr: #e5c07b; + --tk-str: #98c379; + --tk-comment: #767676; + --tk-punc: #7b818b; + --tk-ent: #c678dd; + --marker: #e5c07b; +} +html[data-theme="one-dark"] #editor::selection { background: rgba(97,175,239, .30); } +html[data-theme="one-dark"] #notes-list li.active, +html[data-theme="one-dark"] #revisions-list li.active { background: #30465a; } +html[data-theme="one-dark"] #notes-list li:hover, +html[data-theme="one-dark"] #revisions-list li:hover { background: #32363d; } + +/* Atom One Light — iTerm2-Color-Schemes (mbadolato, MIT) */ +html[data-theme="one-light"] { color-scheme: light; + --bg: #ededed; + --panel: #f9f9f9; + --panel-2: #ededed; + --border: #bbbcbe; + --border-soft: #d4d4d5; + --fg: #2a2c33; + --muted: #818286; + --accent: #2f5af3; + --accent-dark: #2648c2; + --danger: #de3e35; + --success: #3f953a; + --warn: #d2b67c; + --diff-add: #dbe9da; + --diff-del: #f5dbda; + --diff-hunk: #d5dcf8; + --tk-heading: #2f5af3; + --tk-strong: #d2b67c; + --tk-em: #950095; + --tk-strike: #d87a59; + --tk-code: #3f953a; + --tk-code-bg: #e3ede2; + --tk-fence: #7d7e82; + --tk-link: #2f5af3; + --tk-url: #818286; + --tk-tag: #2f5af3; + --tk-mark: #de3e35; + --tk-quote: #818286; + --tk-html: #de3e35; + --tk-attr: #d2b67c; + --tk-str: #3f953a; + --tk-comment: #000000; + --tk-punc: #727478; + --tk-ent: #950095; + --marker: #d2b67c; +} +html[data-theme="one-light"] #editor::selection { background: rgba(47,90,243, .30); } +html[data-theme="one-light"] #notes-list li.active, +html[data-theme="one-light"] #revisions-list li.active { background: #c9d3f8; } +html[data-theme="one-light"] #notes-list li:hover, +html[data-theme="one-light"] #revisions-list li:hover { background: #e8e9e9; } + +/* Monokai Pro — iTerm2-Color-Schemes (mbadolato, MIT) */ +html[data-theme="monokai"] { color-scheme: dark; + --bg: #232124; + --panel: #2d2a2e; + --panel-2: #3e3b3e; + --border: #6b696b; + --border-soft: #525053; + --fg: #fcfcfa; + --muted: #a5a4a4; + --accent: #fc9867; + --accent-dark: #fc9867; + --danger: #ff6188; + --success: #a9dc76; + --warn: #ffd866; + --diff-add: #41463a; + --diff-del: #4f333c; + --diff-hunk: #523e38; + --tk-heading: #fc9867; + --tk-strong: #ffd866; + --tk-em: #ab9df2; + --tk-strike: #ff9d77; + --tk-code: #78dce8; + --tk-code-bg: #363f44; + --tk-fence: #a9a8a8; + --tk-link: #fc9867; + --tk-url: #a5a4a4; + --tk-tag: #fc9867; + --tk-mark: #ffd866; + --tk-quote: #a5a4a4; + --tk-html: #ff6188; + --tk-attr: #ffd866; + --tk-str: #a9dc76; + --tk-comment: #727072; + --tk-punc: #b4b3b3; + --tk-ent: #ab9df2; + --marker: #ffd866; +} +html[data-theme="monokai"] #editor::selection { background: rgba(252,152,103, .30); } +html[data-theme="monokai"] #notes-list li.active, +html[data-theme="monokai"] #revisions-list li.active { background: #5f443c; } +html[data-theme="monokai"] #notes-list li:hover, +html[data-theme="monokai"] #revisions-list li:hover { background: #464346; } + +/* Tokyo Night — iTerm2-Color-Schemes (mbadolato, MIT) */ +html[data-theme="tokyo-night"] { color-scheme: dark; + --bg: #14151e; + --panel: #1a1b26; + --panel-2: #272937; + --border: #4c5064; + --border-soft: #383b4b; + --fg: #c0caf5; + --muted: #7a819e; + --accent: #7aa2f7; + --accent-dark: #7aa2f7; + --danger: #f7768e; + --success: #9ece6a; + --warn: #e0af68; + --diff-add: #2f3831; + --diff-del: #3d2a37; + --diff-hunk: #2b334c; + --tk-heading: #7aa2f7; + --tk-strong: #e0af68; + --tk-em: #bb9af7; + --tk-strike: #ec937b; + --tk-code: #7dcfff; + --tk-code-bg: #263140; + --tk-fence: #7e84a2; + --tk-link: #7aa2f7; + --tk-url: #7a819e; + --tk-tag: #7aa2f7; + --tk-mark: #e0af68; + --tk-quote: #7a819e; + --tk-html: #f7768e; + --tk-attr: #e0af68; + --tk-str: #9ece6a; + --tk-comment: #414868; + --tk-punc: #868dad; + --tk-ent: #bb9af7; + --marker: #e0af68; +} +html[data-theme="tokyo-night"] #editor::selection { background: rgba(122,162,247, .30); } +html[data-theme="tokyo-night"] #notes-list li.active, +html[data-theme="tokyo-night"] #revisions-list li.active { background: #313b58; } +html[data-theme="tokyo-night"] #notes-list li:hover, +html[data-theme="tokyo-night"] #revisions-list li:hover { background: #2e303f; } + +/* Carbon Paper — iTerm2-Color-Schemes (mbadolato, MIT) */ +html[data-theme="carbon-paper"] { color-scheme: light; + --bg: #eceae1; + --panel: #f8f6ed; + --panel-2: #ebe9e1; + --border: #b6b6b2; + --border-soft: #d1cfca; + --fg: #1d2028; + --muted: #797a7b; + --accent: #17458b; + --accent-dark: #12376f; + --danger: #842424; + --success: #145a37; + --warn: #654d00; + --diff-add: #d4ddd0; + --diff-del: #e5d4cd; + --diff-hunk: #d0d6db; + --tk-heading: #17458b; + --tk-strong: #654d00; + --tk-em: #603187; + --tk-strike: #753912; + --tk-code: #005866; + --tk-code-bg: #dae3dd; + --tk-fence: #757677; + --tk-link: #17458b; + --tk-url: #797a7b; + --tk-tag: #17458b; + --tk-mark: #842424; + --tk-quote: #797a7b; + --tk-html: #842424; + --tk-attr: #654d00; + --tk-str: #145a37; + --tk-comment: #474b53; + --tk-punc: #6a6b6d; + --tk-ent: #603187; + --marker: #654d00; +} +html[data-theme="carbon-paper"] #editor::selection { background: rgba(23,69,139, .30); } +html[data-theme="carbon-paper"] #notes-list li.active, +html[data-theme="carbon-paper"] #revisions-list li.active { background: #c2ccd5; } +html[data-theme="carbon-paper"] #notes-list li:hover, +html[data-theme="carbon-paper"] #revisions-list li:hover { background: #e6e5dd; } diff --git a/web/index.html b/web/index.html index 9668c4a..b5bb63a 100644 --- a/web/index.html +++ b/web/index.html @@ -59,10 +59,33 @@ diff --git a/web/js/app.js b/web/js/app.js index 5c489b6..179d4de 100644 --- a/web/js/app.js +++ b/web/js/app.js @@ -948,7 +948,12 @@ const PREFS_KEY = 'notas_prefs'; const PREFS_DEFAULT = { gutter: true, wrap: true, colmark: true, col: 80, hl: true, autosave: true, tabSpaces: true, tabSize: 4, font: 'mono', size: 14, theme: 'claro' }; - const THEMES = ['claro', 'escuro', 'solar-claro', 'solar-escuro']; + const THEMES = ['claro', 'escuro', 'solar-claro', 'solar-escuro', + // iTerm2-Color-Schemes (mbadolato, MIT) + 'dracula', 'nord', 'one-dark', 'monokai', 'gruvbox-dark', 'tokyo-night', + 'catppuccin-mocha', 'tomorrow-night', 'ayu-mirage', 'kanagawa-wave', + 'catppuccin-latte', 'gruvbox-light', 'one-light', 'nord-light', + 'carbon-paper', 'tomorrow', 'ayu-light']; const FONT_STACKS = { mono: '"DejaVu Sans Mono", "Ubuntu Mono", "Cascadia Code", Consolas, monospace', ubuntu: '"Ubuntu Mono", "DejaVu Sans Mono", monospace',