diff --git a/.github/release-please-manifest.json b/.github/release-please-manifest.json index 8d7e5f1..0db4c77 100644 --- a/.github/release-please-manifest.json +++ b/.github/release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "1.0.1" + ".": "1.0.3" } diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6127227..21caa3c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,11 +11,11 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - uses: pnpm/action-setup@v4 - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v6 with: - node-version: 22 + node-version: 24 cache: pnpm - run: pnpm install --frozen-lockfile - run: pnpm build diff --git a/.github/workflows/github-pages.yml b/.github/workflows/github-pages.yml index eb998b3..e658bb4 100644 --- a/.github/workflows/github-pages.yml +++ b/.github/workflows/github-pages.yml @@ -14,16 +14,16 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - uses: pnpm/action-setup@v4 - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v6 with: - node-version: 22 + node-version: 24 cache: pnpm - run: pnpm install --frozen-lockfile - run: pnpm build - run: cp dist/index.js demo - - uses: actions/upload-pages-artifact@v3 + - uses: actions/upload-pages-artifact@v4 with: path: "demo/" diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 4859a10..447cb57 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -29,11 +29,11 @@ jobs: needs: release-please if: ${{ needs.release-please.outputs.release_created }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - uses: pnpm/action-setup@v4 - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v6 with: - node-version: 22 + node-version: 24 cache: pnpm registry-url: https://registry.npmjs.org - run: pnpm install --frozen-lockfile diff --git a/CHANGELOG.md b/CHANGELOG.md index 0ac8246..1badd4d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## [1.0.3](https://github.com/catppuccin/codemirror/compare/v1.0.2...v1.0.3) (2026-02-21) + + +### Bug Fixes + +* ci & update deps ([#32](https://github.com/catppuccin/codemirror/issues/32)) ([a63db60](https://github.com/catppuccin/codemirror/commit/a63db6008de5dacc71ba593384898930ab90aefd)) + +## [1.0.2](https://github.com/catppuccin/codemirror/compare/v1.0.1...v1.0.2) (2026-02-21) + + +### Bug Fixes + +* correct selection background color ([#30](https://github.com/catppuccin/codemirror/issues/30)) ([1df1d60](https://github.com/catppuccin/codemirror/commit/1df1d603f0703c500cdb0fb968d620340a2ab145)) +* set placeholder text to `overlay1` ([#29](https://github.com/catppuccin/codemirror/issues/29)) ([94361a4](https://github.com/catppuccin/codemirror/commit/94361a46415f70e32fa12edcd4e428bdce844b5d)) + ## [1.0.1](https://github.com/catppuccin/codemirror/compare/v1.0.0...v1.0.1) (2025-04-30) diff --git a/README.md b/README.md index 5321536..6c92dc5 100644 --- a/README.md +++ b/README.md @@ -57,12 +57,56 @@ }) ``` -Check out the [demo](https://codemirror.catppuccin.com) for reference. +## Userstyles Usage + +1. Import the base Catppuccin library first and foremost. + +2. Write your `@-moz-document` specifier, write up your `:root` with dark/light + theme specifiers. + +3. Open the `#catppuccin(@flavor)` macro, and import `#lib.palette()` and + `#lib.defaults()`. + +4. Import the CM5/6 library with + `@import "https://codemirror.catppuccin.com/lib/cm<5/6>.less"`. + +5. Final code should look something like: + + ```less + /* ==UserStyle== + @name ... + ==/UserStyle== */ + + @import "https://userstyles.catppuccin.com/lib/lib.less"; + + @-moz-document domain("...") { + :root { + &[data-ui-theme="light"] { + #catppuccin(@lightFlavor); + } + &[data-ui-theme="dark"] { + #catppuccin(@darkFlavor); + } + } + + #catppuccin(@flavor) { + #lib.palette(); + #lib.defaults(); + + @import "https://codemirror.catppuccin.com/lib/cm<5/6>.less"; + + // Rest of theme here + } + } + ``` + +> Check out the [demo](https://codemirror.catppuccin.com) for reference. ## πŸ™‹ FAQ - Q: **_Is this compatible with CodeMirror5?_**\ - A: No, see the [v0.0.1](https://github.com/catppuccin/codemirror/tree/v0.0.1) tag for CodeMirror5 support. + A: No, see the [v0.0.1](https://github.com/catppuccin/codemirror/tree/v0.0.1) + tag for CodeMirror5 support. ## πŸ’ Thanks to @@ -76,8 +120,10 @@ This repository currently has no maintainers. **Inspiration and Contribution** -- [marijnh](https://github.com/marijnh) for [CodeMirror](https://github.com/codemirror/codemirror5) -- [ghostx31](https://github.com/ghostx31/) for [catppuccin/joplin](https://github.com/catppuccin/joplin) +- [marijnh](https://github.com/marijnh) for + [CodeMirror](https://github.com/codemirror/codemirror5) +- [ghostx31](https://github.com/ghostx31/) for + [catppuccin/joplin](https://github.com/catppuccin/joplin) - [BuonOmo](https://github.com/BuonOmo) for CodeMirror v6 support   diff --git a/lib/cm5.less b/lib/cm5.less new file mode 100644 index 0000000..2fd39c7 --- /dev/null +++ b/lib/cm5.less @@ -0,0 +1,243 @@ +// CM5 Lib +// N.B. Import this at the top of your #catppuccin macro. + +@import "https://userstyles.catppuccin.com/lib/lib.less"; + +#lib.palette(); + +.CodeMirror { + color: @base; +} + +.CodeMirror-line span { + color: @text; +} + +.CodeMirror-gutter-filler, +.CodeMirror-scrollbar-filler { + background-color: fade(@overlay2, 30%); +} + +.CodeMirror-gutters { + background-color: @mantle; + border-right-color: @overlay0; +} + +.CodeMirror-linenumber { + color: @overlay1; +} + +.CodeMirror-activeline .CodeMirror-linenumber { + color: @lavender; +} + +.CodeMirror-activeline-background { + background-color: @surface0; +} + +.CodeMirror-line .CodeMirror-guttermarker { + color: @overlay1; +} + +.CodeMirror-guttermarker-subtle { + color: @overlay0; +} + +.CodeMirror-cursor { + border-left-color: @accent; +} + +.CodeMirror div.CodeMirror-secondarycursor { + border-left-color: @accent; +} + +.cm-fat-cursor .CodeMirror-cursor { + background-color: @accent; +} + +.cm-s-default .cm-header { + color: @accent; +} + +.cm-s-default .cm-quote { + color: @subtext1; +} + +.cm-negative { + color: @red; +} + +.cm-positive { + color: @green; +} + +.cm-s-default .cm-keyword { + color: @mauve; +} + +.cm-s-default .cm-atom { + color: @red; +} + +.cm-s-default .cm-number { + color: @peach; +} + +.cm-s-default .cm-def { + color: @mauve; +} + +.cm-s-default .cm-property { + color: @blue; +} + +.cm-s-default .cm-variable { + color: @blue; +} + +.cm-s-default .cm-variable-2 { + color: @blue; +} + +.cm-s-default .cm-type, +.cm-s-default .cm-variable-3 { + color: @teal; +} + +.cm-s-default .cm-comment { + color: @subtext0; +} + +.cm-s-default .cm-string { + color: @green; +} + +.cm-s-default .cm-string-2 { + color: red; +} + +.cm-s-default .cm-meta, +.cm-s-default .cm-qualifier { + color: @yellow; +} + +.cm-s-default .cm-builtin { + color: @red; +} + +.cm-s-default .cm-bracket { + color: @subtext1; +} + +.cm-s-default .cm-tag { + color: @blue; +} + +.cm-s-default .cm-attribute { + color: @yellow; +} + +.cm-s-default .cm-hr { + color: @accent; +} + +.cm-s-default .cm-link { + color: @blue; +} + +.cm-invalidchar, +.cm-s-default .cm-error { + color: @red; +} + +div.CodeMirror span.CodeMirror-matchingbracket { + color: @green; +} + +div.CodeMirror span.CodeMirror-nonmatchingbracket { + color: @red; +} + +.CodeMirror-matchingtag { + background-color: @sky; +} + +.CodeMirror-selected { + background-color: fade(@accent, 20%); +} + +.CodeMirror-focused .CodeMirror-selected { + background-color: fade(darken(@accent, 10%), 20%); +} + +body.find-open .cm-searching { + color: @accent; + background-color: fade(@accent, 20%); +} + +body.find-open .cm-searching.search-target-match { + color: @accent; + background-color: fade(darken(@accent, 10%), 20%); +} + +.CodeMirror-dialog-top { + border-bottom-color: @overlay0; +} + +.CodeMirror-dialog-bottom { + border-top-color: @overlay0; +} + +.CodeMirror-foldmarker { + color: @subtext1; +} + +.CodeMirror-hints { + background-color: @surface0; +} + +.CodeMirror-hint { + color: @subtext1; +} + +.CodeMirror-hint:hover { + background-color: fade(@surface1, 30%); +} + +li.CodeMirror-hint-active { + background-color: fade(@surface2, 30%); +} + +.CodeMirror-lint-tooltip { + color: @teal; + background-color: fade(@teal, 30%); +} + +.CodeMirror-lint-line-error { + color: @red; + background-color: fade(@red, 30%); +} + +.CodeMirror-lint-line-warning { + color: @peach; + background-color: fade(@peach, 30%); +} + +.CodeMirror-search-match { + background-color: fade(@accent, 30%); + border-color: @accent; +} + +.CodeMirror-activeline .applies-to:before { + background-color: transparent; +} + +.CodeMirror-selection-highlight-scrollbar, +.cm-matchhighlight { + background-color: fade(@overlay2, 30%); +} + +.gutter-bookmark { + color: darken(@accent, 10%); + background-color: fade(darken(@accent, 10%), 30%); +} diff --git a/lib/cm6.less b/lib/cm6.less new file mode 100644 index 0000000..9fb03ec --- /dev/null +++ b/lib/cm6.less @@ -0,0 +1,191 @@ +// CM6 Lib +// N.B. Import this at the top of your #catppuccin macro. + +// Generic Classes + +@import "https://userstyles.catppuccin.com/lib/lib.less"; + +#lib.palette(); + +.cm-editor { + color: @text; + background-color: @base; +} + +.cm-scroller { + background-color: @base; +} + +.cm-content { + color: @text; +} + +.cm-gutters { + background-color: @mantle; + border-right-color: @overlay0; +} + +.cm-gutter { + background-color: @mantle; +} + +.cm-gutterElement { + color: @overlay1; +} + +.cm-lineNumbers .cm-gutterElement { + color: @overlay1; +} + +.cm-activeLineGutter { + color: @lavender; + background-color: fade(@surface0, 30%); +} + +.cm-activeLine { + background-color: fade(@surface0, 30%); +} + +.cm-cursor, +.cm-dropCursor { + border-left-color: @accent; +} + +.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor { + border-left-color: @accent; +} + +.cm-selectionBackground { + background-color: fade(@accent, 20%); +} + +.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground { + background-color: fade(@accent, 20%); +} + +.cm-matchingBracket { + background-color: fade(@green, 30%); +} + +.cm-nonmatchingBracket { + background-color: fade(@red, 30%); +} + +.cm-searchMatch { + background-color: fade(@yellow, 30%); +} + +.cm-panels { + background-color: @surface0; + border-color: @overlay0; +} + +.cm-panels-top { + border-bottom-color: @overlay0; +} + +.cm-panels-bottom { + border-top-color: @overlay0; +} + +.cm-tooltip { + background-color: @surface1; + border-color: @overlay0; + color: @text; +} + +.cm-tooltip-autocomplete ul li[aria-selected] { + background-color: fade(@surface2, 30%); +} + +.cm-tooltip-autocomplete ul li:hover { + background-color: fade(@surface1, 30%); +} + +.cm-foldPlaceholder { + background-color: fade(@surface1, 30%); + border-color: @overlay0; + color: @subtext1; +} + +.cm-foldGutter span { + color: @overlay1; +} + +.cm-highlightSpace::before { + color: fade(@overlay1, 30%); +} + +.cm-trailingSpace { + background-color: fade(@red, 30%); +} + +// Syntax Highlighting + +.ΝΌ5 { + color: @rosewater; // Macros +} + +.ΝΌb { + color: @mauve; // Keywords +} + +.ΝΌc { + color: @peach; // Booleans, Language Directives +} + +.ΝΌd { + color: @peach; // Constants, Numbers +} + +.ΝΌe { + color: @green; // Strings +} + +.ΝΌf { + color: @pink; // Escape Sequences, RegEx +} + +.ΝΌg { + color: @blue; // Methods, Functions, Variables +} + +.ΝΌi { + color: @yellow; // Classes, Interfaces, Annotations, Metadata, Enums, Types +} + +.ΝΌj { + color: @yellow; // Constructors +} + +.ΝΌl { + color: @peach; // Member Attributes +} + +.ΝΌk { + color: red; // TODO: unknown! +} + +.ΝΌm { + color: @overlay2; // comments +} + +.ΝΌn { + color: blue; // TODO: unknown! +} + +.ΝΌ6 { + color: @blue; // link + + &.ΝΌc { + color: @green; + } +} + +// .ΝΌ1: editor +// .ΝΌ2: content +// .ΝΌ3: something content/selection related +// .ΝΌ4: selection +// .ΝΌ7: underline +// .ΝΌ8: italic +// .ΝΌ9: bold diff --git a/package.json b/package.json index c55577c..3ecb1eb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@catppuccin/codemirror", - "version": "1.0.1", + "version": "1.0.3", "type": "module", "license": "MIT", "description": "Soothing pastel theme for CodeMirror", @@ -45,14 +45,14 @@ "module": "dist/index.js", "dependencies": { "@catppuccin/palette": "^1.7.1", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/highlight": "^1.0.0" + "@codemirror/language": "^6.12.2", + "@codemirror/state": "^6.5.4", + "@codemirror/view": "^6.39.15", + "@lezer/highlight": "^1.2.3" }, "devDependencies": { "@codemirror/buildhelper": "^1.0.0", - "nodemon": "^3.1.10" + "nodemon": "^3.1.14" }, - "packageManager": "pnpm@10.10.0" + "packageManager": "pnpm@10.30.1" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 31d75a2..be9e0e3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,24 +12,24 @@ importers: specifier: ^1.7.1 version: 1.7.1 '@codemirror/language': - specifier: ^6.0.0 - version: 6.11.0 + specifier: ^6.12.1 + version: 6.12.1 '@codemirror/state': - specifier: ^6.0.0 - version: 6.5.2 + specifier: ^6.5.4 + version: 6.5.4 '@codemirror/view': - specifier: ^6.0.0 - version: 6.36.6 + specifier: ^6.39.15 + version: 6.39.15 '@lezer/highlight': - specifier: ^1.0.0 - version: 1.2.1 + specifier: ^1.2.3 + version: 1.2.3 devDependencies: '@codemirror/buildhelper': specifier: ^1.0.0 version: 1.0.2 nodemon: - specifier: ^3.1.10 - version: 3.1.10 + specifier: ^3.1.14 + version: 3.1.14 packages: @@ -51,14 +51,14 @@ packages: resolution: {integrity: sha512-aVewtDPZptq9dTvYqIjpu9HTEmMaKAE4VL22z5E1ycgY5e1LdAiRd5YYjqzQeqLjxpWsHy+emO3n5UUcxpUmSg==} hasBin: true - '@codemirror/language@6.11.0': - resolution: {integrity: sha512-A7+f++LodNNc1wGgoRDTt78cOwWm9KVezApgjOMp1W4hM0898nsqBXwF+sbePE7ZRcjN7Sa1Z5m2oN27XkmEjQ==} + '@codemirror/language@6.12.1': + resolution: {integrity: sha512-Fa6xkSiuGKc8XC8Cn96T+TQHYj4ZZ7RdFmXA3i9xe/3hLHfwPZdM+dqfX0Cp0zQklBKhVD8Yzc8LS45rkqcwpQ==} - '@codemirror/state@6.5.2': - resolution: {integrity: sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==} + '@codemirror/state@6.5.4': + resolution: {integrity: sha512-8y7xqG/hpB53l25CIoit9/ngxdfoG+fx+V3SHBrinnhOtLvKHRyAJJuHzkWrR4YXXLX8eXBsejgAAxHUOdW1yw==} - '@codemirror/view@6.36.6': - resolution: {integrity: sha512-uxugGLet+Nzp0Jcit8Hn3LypM8ioMLKTsdf8FRoT3HWvZtb9GhaWMe0Cc15rz90Ljab4YFJiAulmIVB74OY0IQ==} + '@codemirror/view@6.39.15': + resolution: {integrity: sha512-aCWjgweIIXLBHh7bY6cACvXuyrZ0xGafjQ2VInjp4RM4gMfscK5uESiNdrH0pE+e1lZr2B4ONGsjchl2KsKZzg==} '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} @@ -66,12 +66,15 @@ packages: '@lezer/common@1.2.3': resolution: {integrity: sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==} + '@lezer/common@1.5.1': + resolution: {integrity: sha512-6YRVG9vBkaY7p1IVxL4s44n5nUnaNnGM2/AckNgYOnxTG2kWh1vR8BMxPseWPjRNpb5VtXnMpeYAEAADoRV1Iw==} + '@lezer/generator@1.7.3': resolution: {integrity: sha512-vAI2O1tPF8QMMgp+bdUeeJCneJNkOZvqsrtyb4ohnFVFdboSqPwBEacnt0HH4E+5h+qsIwTHUSAhffU4hzKl1A==} hasBin: true - '@lezer/highlight@1.2.1': - resolution: {integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==} + '@lezer/highlight@1.2.3': + resolution: {integrity: sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g==} '@lezer/lr@1.4.2': resolution: {integrity: sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==} @@ -120,56 +123,67 @@ packages: resolution: {integrity: sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.40.0': resolution: {integrity: sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.40.0': resolution: {integrity: sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.40.0': resolution: {integrity: sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-loongarch64-gnu@4.40.0': resolution: {integrity: sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==} cpu: [loong64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-powerpc64le-gnu@4.40.0': resolution: {integrity: sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.40.0': resolution: {integrity: sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.40.0': resolution: {integrity: sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==} cpu: [riscv64] os: [linux] + libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.40.0': resolution: {integrity: sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.40.0': resolution: {integrity: sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-musl@4.40.0': resolution: {integrity: sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-win32-arm64-msvc@4.40.0': resolution: {integrity: sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==} @@ -223,16 +237,21 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + balanced-match@4.0.3: + resolution: {integrity: sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==} + engines: {node: 20 || >=22} + binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@5.0.2: + resolution: {integrity: sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==} + engines: {node: 20 || >=22} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -262,12 +281,12 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + crelt@1.0.6: + resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} + debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -474,8 +493,9 @@ packages: engines: {node: '>=4'} hasBin: true - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@10.2.2: + resolution: {integrity: sha512-+G4CpNBxa5MprY+04MbgOw1v7So6n5JY166pFi9KfYwT78fxScCeSNQSNzp6dpPSW2rONOps6Ocam1wFhCgoVw==} + engines: {node: 18 || 20 || >=22} minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} @@ -492,8 +512,8 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - nodemon@3.1.10: - resolution: {integrity: sha512-WDjw3pJ0/0jMFmyNDp3gvY2YizjLmmOUQo6DEBY+JgdvW/yQ9mEeSw6H5ythl5Ny2ytb7f9C2nIbjSxMNzbJXw==} + nodemon@3.1.14: + resolution: {integrity: sha512-jakjZi93UtB3jHMWsXL68FXSAosbLfY0In5gtKq3niLSkrWznrVBzXFNOEMJUfc9+Ke7SHWoAZsiMkNP3vq6Jw==} engines: {node: '>=10'} hasBin: true @@ -750,22 +770,23 @@ snapshots: - supports-color - utf-8-validate - '@codemirror/language@6.11.0': + '@codemirror/language@6.12.1': dependencies: - '@codemirror/state': 6.5.2 - '@codemirror/view': 6.36.6 - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 + '@codemirror/state': 6.5.4 + '@codemirror/view': 6.39.15 + '@lezer/common': 1.5.1 + '@lezer/highlight': 1.2.3 '@lezer/lr': 1.4.2 style-mod: 4.1.2 - '@codemirror/state@6.5.2': + '@codemirror/state@6.5.4': dependencies: '@marijn/find-cluster-break': 1.0.2 - '@codemirror/view@6.36.6': + '@codemirror/view@6.39.15': dependencies: - '@codemirror/state': 6.5.2 + '@codemirror/state': 6.5.4 + crelt: 1.0.6 style-mod: 4.1.2 w3c-keyname: 2.2.8 @@ -773,14 +794,16 @@ snapshots: '@lezer/common@1.2.3': {} + '@lezer/common@1.5.1': {} + '@lezer/generator@1.7.3': dependencies: '@lezer/common': 1.2.3 '@lezer/lr': 1.4.2 - '@lezer/highlight@1.2.1': + '@lezer/highlight@1.2.3': dependencies: - '@lezer/common': 1.2.3 + '@lezer/common': 1.5.1 '@lezer/lr@1.4.2': dependencies: @@ -896,16 +919,17 @@ snapshots: balanced-match@1.0.2: {} + balanced-match@4.0.3: {} + binary-extensions@2.3.0: {} - brace-expansion@1.1.11: + brace-expansion@2.0.1: dependencies: balanced-match: 1.0.2 - concat-map: 0.0.1 - brace-expansion@2.0.1: + brace-expansion@5.0.2: dependencies: - balanced-match: 1.0.2 + balanced-match: 4.0.3 braces@3.0.3: dependencies: @@ -944,10 +968,10 @@ snapshots: color-name@1.1.4: {} - concat-map@0.0.1: {} - core-util-is@1.0.3: {} + crelt@1.0.6: {} + debug@2.6.9: dependencies: ms: 2.0.0 @@ -1119,9 +1143,9 @@ snapshots: mime@1.6.0: {} - minimatch@3.1.2: + minimatch@10.2.2: dependencies: - brace-expansion: 1.1.11 + brace-expansion: 5.0.2 minimatch@5.1.6: dependencies: @@ -1154,12 +1178,12 @@ snapshots: ms@2.1.3: {} - nodemon@3.1.10: + nodemon@3.1.14: dependencies: chokidar: 3.6.0 debug: 4.4.0(supports-color@5.5.0) ignore-by-default: 1.0.1 - minimatch: 3.1.2 + minimatch: 10.2.2 pstree.remy: 1.1.8 semver: 7.7.1 simple-update-notifier: 2.0.0 diff --git a/src/catppuccin.ts b/src/catppuccin.ts index 9ede5c6..70b0057 100644 --- a/src/catppuccin.ts +++ b/src/catppuccin.ts @@ -25,7 +25,7 @@ function createCatppuccinTheme(flavor: CatppuccinFlavor) { "&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection": { - backgroundColor: colors.surface2.hex, + backgroundColor: `${colors.overlay2.hex}40`, }, ".cm-panels": { @@ -69,6 +69,10 @@ function createCatppuccinTheme(flavor: CatppuccinFlavor) { color: colors.overlay0.hex, }, + ".cm-placeholder": { + color: colors.overlay1.hex, + }, + ".cm-tooltip": { border: "none", backgroundColor: colors.surface0.hex, @@ -88,7 +92,7 @@ function createCatppuccinTheme(flavor: CatppuccinFlavor) { }, }, }, - { dark: isDark } + { dark: isDark }, ); const highlightStyle = HighlightStyle.define([ @@ -151,9 +155,9 @@ function createCatppuccinTheme(flavor: CatppuccinFlavor) { // Create extensions for all variants export const catppuccinLatte: Extension = createCatppuccinTheme(flavors.latte); export const catppuccinFrappe: Extension = createCatppuccinTheme( - flavors.frappe + flavors.frappe, ); export const catppuccinMacchiato: Extension = createCatppuccinTheme( - flavors.macchiato + flavors.macchiato, ); export const catppuccinMocha: Extension = createCatppuccinTheme(flavors.mocha);