From cfba3145a4541e46a7b7e431628b5a4c40c0a90a Mon Sep 17 00:00:00 2001
From: Matthew Lipski
Date: Thu, 15 Oct 2026 19:01:52 +0200
Subject: [PATCH 1/8] Updated colors to hit contrast requirements
---
.../08-color-combinations/.bnexample.json | 8 +
.../08-color-combinations/README.md | 9 +
.../08-color-combinations/index.html | 17 +
.../04-theming/08-color-combinations/main.tsx | 11 +
.../08-color-combinations/package.json | 30 +
.../08-color-combinations/src/App.tsx | 77 +
.../08-color-combinations/tsconfig.json | 32 +
.../08-color-combinations/vite-env.d.ts | 1 +
.../08-color-combinations/vite.config.ts | 35 +
highlight-color-comparison.html | 3207 +++++++++++++++++
packages/core/src/editor/Block.css | 18 +-
packages/react/src/editor/styles.css | 52 +-
playground/src/examples.gen.tsx | 20 +
pnpm-lock.yaml | 43 +
14 files changed, 3529 insertions(+), 31 deletions(-)
create mode 100644 examples/04-theming/08-color-combinations/.bnexample.json
create mode 100644 examples/04-theming/08-color-combinations/README.md
create mode 100644 examples/04-theming/08-color-combinations/index.html
create mode 100644 examples/04-theming/08-color-combinations/main.tsx
create mode 100644 examples/04-theming/08-color-combinations/package.json
create mode 100644 examples/04-theming/08-color-combinations/src/App.tsx
create mode 100644 examples/04-theming/08-color-combinations/tsconfig.json
create mode 100644 examples/04-theming/08-color-combinations/vite-env.d.ts
create mode 100644 examples/04-theming/08-color-combinations/vite.config.ts
create mode 100644 highlight-color-comparison.html
diff --git a/examples/04-theming/08-color-combinations/.bnexample.json b/examples/04-theming/08-color-combinations/.bnexample.json
new file mode 100644
index 0000000000..0bd35957f7
--- /dev/null
+++ b/examples/04-theming/08-color-combinations/.bnexample.json
@@ -0,0 +1,8 @@
+{
+ "playground": true,
+ "docs": false,
+ "author": "",
+ "tags": ["Appearance & Styling"],
+ "dependencies": {},
+ "pro": false
+}
diff --git a/examples/04-theming/08-color-combinations/README.md b/examples/04-theming/08-color-combinations/README.md
new file mode 100644
index 0000000000..44381f8dc4
--- /dev/null
+++ b/examples/04-theming/08-color-combinations/README.md
@@ -0,0 +1,9 @@
+# Color combinations
+
+Inspect every combination of the default text and background colors, including the default color, applied to whole blocks and inline content. Switch between light and dark themes to compare their appearance.
+
+**Try me out!** Use the theme toggle above the editors.
+
+## Relevant docs
+
+- [Themes](https://www.blocknotejs.org/docs/react/styling-theming/themes)
diff --git a/examples/04-theming/08-color-combinations/index.html b/examples/04-theming/08-color-combinations/index.html
new file mode 100644
index 0000000000..c1dbc2ed42
--- /dev/null
+++ b/examples/04-theming/08-color-combinations/index.html
@@ -0,0 +1,17 @@
+
+
+
+
+ Color combinations
+
+
+
+
+
+
+
diff --git a/examples/04-theming/08-color-combinations/main.tsx b/examples/04-theming/08-color-combinations/main.tsx
new file mode 100644
index 0000000000..1260513388
--- /dev/null
+++ b/examples/04-theming/08-color-combinations/main.tsx
@@ -0,0 +1,11 @@
+// AUTO-GENERATED FILE, DO NOT EDIT DIRECTLY
+import React from "react";
+import { createRoot } from "react-dom/client";
+import App from "./src/App.jsx";
+
+const root = createRoot(document.getElementById("root")!);
+root.render(
+
+
+ ,
+);
diff --git a/examples/04-theming/08-color-combinations/package.json b/examples/04-theming/08-color-combinations/package.json
new file mode 100644
index 0000000000..1324705a58
--- /dev/null
+++ b/examples/04-theming/08-color-combinations/package.json
@@ -0,0 +1,30 @@
+{
+ "name": "@blocknote/example-theming-color-combinations",
+ "description": "AUTO-GENERATED FILE, DO NOT EDIT DIRECTLY",
+ "type": "module",
+ "private": true,
+ "version": "0.12.4",
+ "scripts": {
+ "start": "vite",
+ "dev": "vite",
+ "build:prod": "tsc && vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "@blocknote/ariakit": "latest",
+ "@blocknote/core": "latest",
+ "@blocknote/mantine": "latest",
+ "@blocknote/react": "latest",
+ "@blocknote/shadcn": "latest",
+ "@mantine/core": "^9.0.2",
+ "@mantine/hooks": "^9.0.2",
+ "react": "^19.2.3",
+ "react-dom": "^19.2.3"
+ },
+ "devDependencies": {
+ "@types/react": "^19.2.3",
+ "@types/react-dom": "^19.2.3",
+ "@vitejs/plugin-react": "^6.0.1",
+ "vite": "^8.0.0"
+ }
+}
diff --git a/examples/04-theming/08-color-combinations/src/App.tsx b/examples/04-theming/08-color-combinations/src/App.tsx
new file mode 100644
index 0000000000..0d3de8fa41
--- /dev/null
+++ b/examples/04-theming/08-color-combinations/src/App.tsx
@@ -0,0 +1,77 @@
+import { COLORS_DEFAULT, type PartialBlock } from "@blocknote/core";
+import "@blocknote/core/fonts/inter.css";
+import { BlockNoteView } from "@blocknote/mantine";
+import "@blocknote/mantine/style.css";
+import { useCreateBlockNote } from "@blocknote/react";
+import { useState } from "react";
+
+const colors = ["default", ...Object.keys(COLORS_DEFAULT)];
+const blockColors: PartialBlock[] = colors.flatMap((backgroundColor) => [
+ {
+ id: `block-heading-${backgroundColor}`,
+ type: "heading",
+ props: { level: 3 },
+ content: `${backgroundColor} background`,
+ },
+ ...colors.map((textColor) => ({
+ id: `block-${backgroundColor}-${textColor}`,
+ type: "paragraph" as const,
+ props: { textColor, backgroundColor },
+ content: `${textColor} text on ${backgroundColor} background`,
+ })),
+]);
+const inlineColors: PartialBlock[] = colors.flatMap((backgroundColor) => [
+ {
+ id: `inline-heading-${backgroundColor}`,
+ type: "heading",
+ props: { level: 3 },
+ content: `${backgroundColor} background`,
+ },
+ ...colors.map((textColor) => ({
+ id: `inline-${backgroundColor}-${textColor}`,
+ type: "paragraph" as const,
+ content: [
+ { type: "text" as const, text: "Inline: ", styles: {} },
+ {
+ type: "text" as const,
+ text: `${textColor} text on ${backgroundColor} background`,
+ styles: { textColor, backgroundColor },
+ },
+ ],
+ })),
+]);
+
+export default function App() {
+ const [theme, setTheme] = useState<"light" | "dark">("light");
+ const blocks = useCreateBlockNote({ initialContent: blockColors });
+ const inline = useCreateBlockNote({ initialContent: inlineColors });
+
+ return (
+
+
setTheme(theme === "light" ? "dark" : "light")}
+ >
+ Dark mode
+
+
+
+
+
+
+ );
+}
diff --git a/examples/04-theming/08-color-combinations/tsconfig.json b/examples/04-theming/08-color-combinations/tsconfig.json
new file mode 100644
index 0000000000..2aa62c56e6
--- /dev/null
+++ b/examples/04-theming/08-color-combinations/tsconfig.json
@@ -0,0 +1,32 @@
+{
+ "__comment": "AUTO-GENERATED FILE, DO NOT EDIT DIRECTLY",
+ "compilerOptions": {
+ "target": "ESNext",
+ "useDefineForClassFields": true,
+ "lib": ["DOM", "DOM.Iterable", "ESNext"],
+ "allowJs": false,
+ "skipLibCheck": true,
+ "allowSyntheticDefaultImports": true,
+ "strict": true,
+ "forceConsistentCasingInFileNames": true,
+ "module": "ESNext",
+ "moduleResolution": "bundler",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "noEmit": true,
+ "jsx": "react-jsx",
+ "composite": true,
+ "paths": {
+ "@shared/*": ["../../../shared/*"]
+ }
+ },
+ "include": ["."],
+ "__ADD_FOR_LOCAL_DEV_references": [
+ {
+ "path": "../../../packages/core/"
+ },
+ {
+ "path": "../../../packages/react/"
+ }
+ ]
+}
diff --git a/examples/04-theming/08-color-combinations/vite-env.d.ts b/examples/04-theming/08-color-combinations/vite-env.d.ts
new file mode 100644
index 0000000000..11f02fe2a0
--- /dev/null
+++ b/examples/04-theming/08-color-combinations/vite-env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/examples/04-theming/08-color-combinations/vite.config.ts b/examples/04-theming/08-color-combinations/vite.config.ts
new file mode 100644
index 0000000000..a96f1f04ff
--- /dev/null
+++ b/examples/04-theming/08-color-combinations/vite.config.ts
@@ -0,0 +1,35 @@
+// AUTO-GENERATED FILE, DO NOT EDIT DIRECTLY
+import react from "@vitejs/plugin-react";
+import * as fs from "fs";
+import * as path from "path";
+import { defineConfig } from "vite";
+// https://vitejs.dev/config/
+export default defineConfig(((conf: { command: string }) => ({
+ plugins: [react()],
+ optimizeDeps: {},
+ build: {
+ sourcemap: true,
+ },
+ resolve: {
+ alias:
+ conf.command === "build" ||
+ !fs.existsSync(path.resolve(__dirname, "../../packages/core/src"))
+ ? {}
+ : ({
+ // The repo-wide alias for the shared test-utils directory (private,
+ // so it only resolves inside the monorepo). Harmless for examples
+ // that don't use it.
+ "@shared": path.resolve(__dirname, "../../../shared/"),
+ // Comment out the lines below to load a built version of blocknote
+ // or, keep as is to load live from sources with live reload working
+ "@blocknote/core": path.resolve(
+ __dirname,
+ "../../packages/core/src/",
+ ),
+ "@blocknote/react": path.resolve(
+ __dirname,
+ "../../packages/react/src/",
+ ),
+ } as any),
+ },
+})) as Parameters[0]);
diff --git a/highlight-color-comparison.html b/highlight-color-comparison.html
new file mode 100644
index 0000000000..461fffbd31
--- /dev/null
+++ b/highlight-color-comparison.html
@@ -0,0 +1,3207 @@
+
+
+
+
+
+ BlockNote highlight palette comparison
+
+
+
+
+ Highlight palette: old vs new
+
+ Rows are text colors; columns are background colors. Each cell shows
+ sample text and its contrast ratio. An asterisk (*) marks ratios below
+ 4.5:1 for normal text.
+
+
+ Includes the default editor colors. Hex values appear in the row and
+ column headings. This is a standalone snapshot of the palettes,
+ including the new yellow-shifted green.
+
+
+ Light mode Dark mode
+
+
+
+ Light mode
+
+
+
+
41 of 100 combinations below 4.5:1.
+
+
+
+
0 of 100 combinations below 4.5:1.
+
+
+
+
+ Dark mode
+
+
+
+
94 of 100 combinations below 4.5:1.
+
+
+
+
0 of 100 combinations below 4.5:1.
+
+
+
+
+
+
diff --git a/packages/core/src/editor/Block.css b/packages/core/src/editor/Block.css
index d18a3ffb76..70bef7923b 100644
--- a/packages/core/src/editor/Block.css
+++ b/packages/core/src/editor/Block.css
@@ -219,11 +219,15 @@ NESTED BLOCKS
/* QUOTES */
[data-content-type="quote"] blockquote {
border-left: 2px solid rgb(125, 121, 122);
- color: rgb(125, 121, 122);
+ color: #646362;
margin: 0;
padding-left: 1em;
}
+[data-content-type="quote"] blockquote:where(.dark, .dark *) {
+ color: #bebdb8;
+}
+
/* DIVIDERS */
[data-content-type="divider"] hr {
border: none;
@@ -347,13 +351,17 @@ NESTED BLOCKS
.bn-toggle-add-block-button {
font-size: 16px;
- color: var(--bn-colors-side-menu);
+ color: #646362;
font-weight: normal;
margin-left: 22px;
padding-inline: 2px;
width: fit-content;
}
+.bn-toggle-add-block-button:where(.dark, .dark *) {
+ color: #bebdb8;
+}
+
.bn-toggle-button,
.bn-toggle-add-block-button {
background: none;
@@ -683,7 +691,7 @@ NESTED BLOCKS
.bn-preview-placeholder:where(.dark, .dark *) {
background-color: rgb(70, 70, 70);
- color: rgb(190, 190, 190);
+ color: #cfcfcf;
}
.bn-editor[contenteditable="true"]
@@ -782,7 +790,7 @@ NESTED BLOCKS
align-items: center;
background-color: rgb(242, 241, 238);
border-radius: 4px;
- color: rgb(125, 121, 122);
+ color: #646362;
display: flex;
gap: 10px;
padding: 12px;
@@ -790,7 +798,7 @@ NESTED BLOCKS
[data-file-block] .bn-add-file-button:where(.dark, .dark *) {
background-color: rgb(70, 70, 70);
- color: rgb(190, 190, 190);
+ color: #cfcfcf;
}
.bn-editor[contenteditable="true"] [data-file-block] .bn-add-file-button:hover,
diff --git a/packages/react/src/editor/styles.css b/packages/react/src/editor/styles.css
index f72b760521..9eac75bde7 100644
--- a/packages/react/src/editor/styles.css
+++ b/packages/react/src/editor/styles.css
@@ -19,23 +19,23 @@
--bn-colors-border: #efefef;
--bn-colors-side-menu: #cfcfcf;
- --bn-colors-highlights-gray-text: #9b9a97;
+ --bn-colors-highlights-gray-text: #686665;
--bn-colors-highlights-gray-background: #ebeced;
- --bn-colors-highlights-brown-text: #64473a;
+ --bn-colors-highlights-brown-text: #845d4c;
--bn-colors-highlights-brown-background: #e9e5e3;
- --bn-colors-highlights-red-text: #e03e3e;
+ --bn-colors-highlights-red-text: #bc3434;
--bn-colors-highlights-red-background: #fbe4e4;
- --bn-colors-highlights-orange-text: #d9730d;
+ --bn-colors-highlights-orange-text: #9d5309;
--bn-colors-highlights-orange-background: #f6e9d9;
- --bn-colors-highlights-yellow-text: #dfab01;
+ --bn-colors-highlights-yellow-text: #816201;
--bn-colors-highlights-yellow-background: #fbf3db;
- --bn-colors-highlights-green-text: #4d6461;
- --bn-colors-highlights-green-background: #ddedea;
- --bn-colors-highlights-blue-text: #0b6e99;
+ --bn-colors-highlights-green-text: #596c40;
+ --bn-colors-highlights-green-background: #e5edda;
+ --bn-colors-highlights-blue-text: #0b6d99;
--bn-colors-highlights-blue-background: #ddebf1;
- --bn-colors-highlights-purple-text: #6940a5;
+ --bn-colors-highlights-purple-text: #7b4fbb;
--bn-colors-highlights-purple-background: #eae4f2;
- --bn-colors-highlights-pink-text: #ad1a72;
+ --bn-colors-highlights-pink-text: #be1d7e;
--bn-colors-highlights-pink-background: #f4dfeb;
--bn-font-family:
@@ -72,23 +72,23 @@
--bn-colors-side-menu: #7f7f7f;
--bn-colors-highlights-gray-text: #bebdb8;
- --bn-colors-highlights-gray-background: #9b9a97;
- --bn-colors-highlights-brown-text: #8e6552;
- --bn-colors-highlights-brown-background: #64473a;
- --bn-colors-highlights-red-text: #ec4040;
- --bn-colors-highlights-red-background: #be3434;
- --bn-colors-highlights-orange-text: #e3790d;
- --bn-colors-highlights-orange-background: #b7600a;
+ --bn-colors-highlights-gray-background: #393838;
+ --bn-colors-highlights-brown-text: #b9a094;
+ --bn-colors-highlights-brown-background: #44352e;
+ --bn-colors-highlights-red-text: #f38585;
+ --bn-colors-highlights-red-background: #5e2727;
+ --bn-colors-highlights-orange-text: #e89036;
+ --bn-colors-highlights-orange-background: #4d3219;
--bn-colors-highlights-yellow-text: #dfab01;
- --bn-colors-highlights-yellow-background: #b58b00;
- --bn-colors-highlights-green-text: #6b8b87;
- --bn-colors-highlights-green-background: #4d6461;
- --bn-colors-highlights-blue-text: #0e87bc;
- --bn-colors-highlights-blue-background: #0b6e99;
- --bn-colors-highlights-purple-text: #8552d7;
- --bn-colors-highlights-purple-background: #6940a5;
- --bn-colors-highlights-pink-text: #da208f;
- --bn-colors-highlights-pink-background: #ad1a72;
+ --bn-colors-highlights-yellow-background: #413718;
+ --bn-colors-highlights-green-text: #a0aa82;
+ --bn-colors-highlights-green-background: #353a29;
+ --bn-colors-highlights-blue-text: #5eafd2;
+ --bn-colors-highlights-blue-background: #183c4d;
+ --bn-colors-highlights-purple-text: #b596e7;
+ --bn-colors-highlights-purple-background: #422f5e;
+ --bn-colors-highlights-pink-text: #ea83c1;
+ --bn-colors-highlights-pink-background: #631d47;
}
.bn-root {
diff --git a/playground/src/examples.gen.tsx b/playground/src/examples.gen.tsx
index 5b0aca0a61..9acd97ea37 100644
--- a/playground/src/examples.gen.tsx
+++ b/playground/src/examples.gen.tsx
@@ -1034,6 +1034,26 @@ export const examples = {
readme:
"To configure a code block highlighting theme and language, you can extend the editor's default schema with a new `codeBlock`, which you can pass options into when creating. You can then use a shiki highlighter to add custom syntax highlighting.\n\nFirst use the [shiki-codegen](https://shiki.style/packages/codegen) CLI to create a `shiki.bundle.ts` file. You can then pass this file into the `codeBlock` options when creating it.\n\n**Relevant Docs:**\n\n- [Code Blocks](/docs/features/blocks/code-blocks)\n- [shiki-codegen](https://shiki.style/packages/codegen)\n- [Custom Schema](/docs/features/custom-schemas)",
},
+ {
+ projectSlug: "color-combinations",
+ fullSlug: "theming/color-combinations",
+ pathFromRoot: "examples/04-theming/08-color-combinations",
+ config: {
+ playground: true,
+ docs: false,
+ author: "",
+ tags: ["Appearance & Styling"],
+ dependencies: {} as any,
+ pro: false,
+ },
+ title: "Color combinations",
+ group: {
+ pathFromRoot: "examples/04-theming",
+ slug: "theming",
+ },
+ readme:
+ "Inspect every combination of the default text and background colors, including the default color, applied to whole blocks and inline content. Switch between light and dark themes to compare their appearance.\n\n**Try me out!** Use the theme toggle above the editors.\n\n## Relevant docs\n\n- [Themes](https://www.blocknotejs.org/docs/react/styling-theming/themes)",
+ },
],
},
interoperability: {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 54a07ddd92..bf144c247d 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -2617,6 +2617,49 @@ importers:
specifier: ^8.0.0
version: 8.0.8(@types/node@25.9.5)(esbuild@0.27.5)(jiti@2.6.1)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.0)
+ examples/04-theming/08-color-combinations:
+ dependencies:
+ '@blocknote/ariakit':
+ specifier: latest
+ version: link:../../../packages/ariakit
+ '@blocknote/core':
+ specifier: latest
+ version: link:../../../packages/core
+ '@blocknote/mantine':
+ specifier: latest
+ version: link:../../../packages/mantine
+ '@blocknote/react':
+ specifier: latest
+ version: link:../../../packages/react
+ '@blocknote/shadcn':
+ specifier: latest
+ version: link:../../../packages/shadcn
+ '@mantine/core':
+ specifier: ^9.0.2
+ version: 9.1.1(@mantine/hooks@9.1.1(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
+ '@mantine/hooks':
+ specifier: ^9.0.2
+ version: 9.1.1(react@19.2.5)
+ react:
+ specifier: ^19.2.3
+ version: 19.2.5
+ react-dom:
+ specifier: ^19.2.3
+ version: 19.2.5(react@19.2.5)
+ devDependencies:
+ '@types/react':
+ specifier: ^19.2.3
+ version: 19.2.14
+ '@types/react-dom':
+ specifier: ^19.2.3
+ version: 19.2.3(@types/react@19.2.14)
+ '@vitejs/plugin-react':
+ specifier: ^6.0.1
+ version: 6.0.1(babel-plugin-react-compiler@1.0.0)(vite@8.0.8(@types/node@25.9.5)(esbuild@0.27.5)(jiti@2.6.1)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.0))
+ vite:
+ specifier: ^8.0.0
+ version: 8.0.8(@types/node@25.9.5)(esbuild@0.27.5)(jiti@2.6.1)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.0)
+
examples/05-interoperability/01-converting-blocks-to-html:
dependencies:
'@blocknote/ariakit':
From ce8024fc9b3e2fcd7adf3faa06a6fe298cf473fd Mon Sep 17 00:00:00 2001
From: Matthew Lipski
Date: Fri, 16 Oct 2026 19:00:04 +0200
Subject: [PATCH 2/8] Updated color CSS variables to OKLCH color space and
adjusted highlights to have consistent brightness & saturation across colors
---
highlight-color-comparison.html | 1951 +++++++++++------
packages/react/src/editor/styles.css | 140 +-
.../__snapshots__/nonEditableBlock.json | 4 +-
3 files changed, 1382 insertions(+), 713 deletions(-)
diff --git a/highlight-color-comparison.html b/highlight-color-comparison.html
index 461fffbd31..115ede75fd 100644
--- a/highlight-color-comparison.html
+++ b/highlight-color-comparison.html
@@ -136,9 +136,10 @@ Highlight palette: old vs new
4.5:1 for normal text.
- Includes the default editor colors. Hex values appear in the row and
- column headings. This is a standalone snapshot of the palettes,
- including the new yellow-shifted green.
+ Includes the default editor colors. Color values appear in the row and
+ column headings. The new highlight text and backgrounds each share OKLCH
+ lightness and chroma within each theme, with independently tuned neutral
+ gray text and muted brown.
Light mode Dark mode
@@ -923,747 +924,1081 @@ Light mode
Text ↓ Background →
- default#ffffff
- gray#ebeced
- brown#e9e5e3
- red#fbe4e4
- orange#f6e9d9
- yellow#fbf3db
- green#e5edda
- blue#ddebf1
- purple#eae4f2
- pink#f4dfeb
+
+ defaultoklch(100% 0 0)
+
+
+ grayoklch(93% 0 0)
+
+
+ brownoklch(93% 0.015 50)
+
+
+ redoklch(93% 0.025 25)
+
+
+ orangeoklch(93% 0.025 65)
+
+
+ yellowoklch(93% 0.025 95)
+
+
+ greenoklch(93% 0.025 135)
+
+
+ blueoklch(93% 0.025 235)
+
+
+ purpleoklch(93% 0.025 300)
+
+
+ pinkoklch(93% 0.025 345)
+
- default#3f3f3f
+
+ defaultoklch(37% 0 0)
+
Aa 10.53:1
+ >10.43:1
Aa 8.90:1
+ >8.49:1
Aa 8.42:1
+ >8.46:1
Aa 8.69:1
+ >8.42:1
Aa 8.81:1
+ >8.46:1
Aa 9.50:1
+ >8.50:1
Aa 8.75:1
+ >8.55:1
Aa 8.64:1
+ >8.53:1
Aa 8.46:1
+ >8.44:1
Aa 8.33:1
+ >8.41:1
- gray#686665
+
+ grayoklch(51.6% 0 0)
+
Aa 5.71:1
+ >5.60:1
Aa 4.83:1
+ >4.56:1
Aa 4.56:1
+ >4.54:1
Aa 4.71:1
+ >4.52:1
Aa 4.78:1
+ >4.54:1
Aa 5.15:1
+ >4.57:1
Aa 4.75:1
+ >4.59:1
Aa 4.69:1
+ >4.58:1
Aa 4.59:1
+ >4.53:1
Aa 4.51:1
+ >4.52:1
- brown#845d4c
+
+ brownoklch(48.5% 0.06 50)
+
Aa 5.75:1
+ >6.53:1
Aa 4.86:1
+ >5.32:1
Aa 4.60:1
+ >5.30:1
Aa 4.74:1
+ >5.27:1
Aa 4.81:1
+ >5.30:1
Aa 5.19:1
+ >5.33:1
Aa 4.78:1
+ >5.36:1
Aa 4.72:1
+ >5.34:1
Aa 4.62:1
+ >5.29:1
Aa 4.55:1
+ >5.27:1
- red#bc3434
+
+ redoklch(50.5% 0.1 25)
+
Aa 5.71:1
+ >6.17:1
Aa 4.83:1
+ >5.02:1
Aa 4.56:1
+ >5.01:1
Aa 4.71:1
+ >4.98:1
Aa 4.78:1
+ >5.01:1
Aa 5.15:1
+ >5.03:1
Aa 4.75:1
+ >5.06:1
Aa 4.68:1
+ >5.05:1
Aa 4.59:1
+ >4.99:1
Aa 4.51:1
+ >4.97:1
- orange#9d5309
+
+ orangeoklch(50.5% 0.1 65)
+
Aa 5.71:1
+ >6.03:1
Aa 4.83:1
+ >4.90:1
Aa 4.57:1
+ >4.89:1
Aa 4.71:1
+ >4.86:1
Aa 4.78:1
+ >4.89:1
Aa 5.16:1
+ >4.91:1
Aa 4.75:1
+ >4.94:1
Aa 4.69:1
+ >4.93:1
Aa 4.59:1
+ >4.88:1
Aa 4.52:1
+ >4.86:1
- yellow#816201
+
+ yellowoklch(50.5% 0.1 95)
+
Aa 5.71:1
+ >5.87:1
Aa 4.82:1
+ >4.77:1
Aa 4.56:1
+ >4.76:1
Aa 4.71:1
+ >4.73:1
Aa 4.77:1
+ >4.76:1
Aa 5.15:1
+ >4.78:1
Aa 4.74:1
+ >4.81:1
Aa 4.68:1
+ >4.79:1
Aa 4.59:1
+ >4.74:1
Aa 4.51:1
+ >4.73:1
- green#596c40
+
+ greenoklch(50.5% 0.1 135)
+
Aa 5.76:1
+ >5.66:1
Aa 4.87:1
+ >4.60:1
Aa 4.61:1
+ >4.59:1
Aa 4.75:1
+ >4.56:1
Aa 4.82:1
+ >4.59:1
Aa 5.20:1
+ >4.61:1
Aa 4.79:1
+ >4.64:1
Aa 4.73:1
+ >4.62:1
Aa 4.63:1
+ >4.58:1
Aa 4.56:1
- blue#0b6d99
+
+ blueoklch(50.5% 0.1 235)
+
Aa 5.74:1
+ >5.76:1
Aa 4.85:1
+ >4.69:1
Aa 4.58:1
+ >4.67:1
Aa 4.73:1
+ >4.65:1
Aa 4.80:1
+ >4.67:1
Aa 5.17:1
+ >4.70:1
Aa 4.77:1
+ >4.72:1
Aa 4.70:1
+ >4.71:1
Aa 4.61:1
+ >4.66:1
Aa 4.53:1
+ >4.64:1
- purple#7b4fbb
+
+ purpleoklch(50.5% 0.1 300)
+
Aa 5.71:1
+ >6.11:1
Aa 4.83:1
+ >4.97:1
Aa 4.56:1
+ >4.96:1
Aa 4.71:1
+ >4.93:1
Aa 4.78:1
+ >4.96:1
Aa 5.15:1
+ >4.98:1
Aa 4.75:1
+ >5.01:1
Aa 4.68:1
+ >5.00:1
Aa 4.59:1
+ >4.95:1
Aa 4.51:1
+ >4.93:1
- pink#be1d7e
+
+ pinkoklch(50.5% 0.1 345)
+
Aa 5.73:1
+ >6.21:1
Aa 4.84:1
+ >5.05:1
Aa 4.58:1
+ >5.03:1
Aa 4.72:1
+ >5.01:1
Aa 4.79:1
+ >5.03:1
Aa 5.17:1
+ >5.06:1
Aa 4.76:1
+ >5.09:1
Aa 4.70:1
+ >5.07:1
Aa 4.60:1
+ >5.02:1
Aa 4.53:1
+ >5.00:1
@@ -2452,747 +2787,1081 @@ Dark mode
Text ↓ Background →
- default#1f1f1f
- gray#393838
- brown#44352e
- red#5e2727
- orange#4d3219
- yellow#413718
- green#353a29
- blue#183c4d
- purple#422f5e
- pink#631d47
+
+ defaultoklch(24% 0 0)
+
+
+ grayoklch(34% 0 0)
+
+
+ brownoklch(34% 0.035 50)
+
+
+ redoklch(34% 0.065 25)
+
+
+ orangeoklch(34% 0.065 65)
+
+
+ yellowoklch(34% 0.065 95)
+
+
+ greenoklch(34% 0.065 135)
+
+
+ blueoklch(34% 0.065 235)
+
+
+ purpleoklch(34% 0.065 300)
+
+
+ pinkoklch(34% 0.065 345)
+
- default#cfcfcf
+
+ defaultoklch(85% 0 0)
+
Aa 10.58:1
+ >10.41:1
Aa 7.50:1
+ >7.44:1
Aa 7.51:1
+ >7.52:1
Aa 7.51:1
+ >7.66:1
Aa 7.55:1
Aa 7.55:1
+ >7.43:1
Aa 7.54:1
+ >7.27:1
Aa 7.52:1
+ >7.35:1
Aa 7.49:1
+ >7.61:1
Aa 7.50:1
+ >7.68:1
- gray#bebdb8
+
+ grayoklch(71.5% 0 0)
+
Aa 8.76:1
+ >6.51:1
Aa 6.21:1
+ >4.65:1
Aa 6.22:1
+ >4.70:1
Aa 6.22:1
+ >4.79:1
Aa 6.25:1
+ >4.72:1
Aa 6.25:1
+ >4.65:1
Aa 6.24:1
+ >4.55:1
Aa 6.23:1
+ >4.60:1
Aa 6.20:1
+ >4.76:1
Aa 6.21:1
+ >4.81:1
- brown#b9a094
+
+ brownoklch(73% 0.06 50)
+
Aa 6.69:1
+ >6.76:1
Aa 4.74:1
+ >4.83:1
Aa 4.75:1
+ >4.89:1
Aa 4.74:1
+ >4.98:1
Aa 4.77:1
+ >4.91:1
Aa 4.77:1
+ >4.83:1
Aa 4.76:1
+ >4.73:1
Aa 4.75:1
+ >4.78:1
Aa 4.73:1
+ >4.95:1
Aa 4.74:1
+ >4.99:1
- red#f38585
+
+ redoklch(75% 0.1 25)
+
Aa 6.68:1
+ >7.10:1
Aa 4.73:1
+ >5.07:1
Aa 4.74:1
+ >5.13:1
Aa 4.74:1
+ >5.22:1
Aa 4.76:1
+ >5.15:1
Aa 4.77:1
+ >5.07:1
Aa 4.75:1
+ >4.96:1
Aa 4.74:1
+ >5.01:1
Aa 4.73:1
+ >5.19:1
Aa 4.73:1
+ >5.24:1
- orange#e89036
+
+ orangeoklch(75% 0.1 65)
+
Aa 6.65:1
+ >7.25:1
Aa 4.72:1
+ >5.18:1
Aa 4.72:1
+ >5.24:1
Aa 4.72:1
+ >5.33:1
Aa 4.74:1
+ >5.26:1
Aa 4.75:1
+ >5.18:1
Aa 4.74:1
+ >5.07:1
Aa 4.73:1
+ >5.12:1
Aa 4.71:1
+ >5.30:1
Aa 4.71:1
+ >5.35:1
- yellow#dfab01
+
+ yellowoklch(75% 0.1 95)
+
Aa 7.82:1
+ >7.42:1
Aa 5.55:1
+ >5.30:1
Aa 5.55:1
+ >5.36:1
Aa 5.55:1
+ >5.46:1
Aa 5.58:1
+ >5.38:1
Aa 5.58:1
+ >5.30:1
Aa 5.57:1
+ >5.18:1
Aa 5.56:1
+ >5.24:1
Aa 5.54:1
+ >5.43:1
Aa 5.54:1
+ >5.48:1
- green#a0aa82
+
+ greenoklch(75% 0.1 135)
+
Aa 6.72:1
+ >7.64:1
Aa 4.77:1
+ >5.46:1
Aa 4.77:1
+ >5.52:1
Aa 4.77:1
+ >5.62:1
Aa 4.80:1
+ >5.54:1
Aa 4.80:1
+ >5.45:1
Aa 4.79:1
+ >5.34:1
Aa 4.78:1
+ >5.40:1
Aa 4.76:1
+ >5.59:1
Aa 4.77:1
+ >5.64:1
- blue#5eafd2
+
+ blueoklch(75% 0.1 235)
+
Aa 6.70:1
+ >7.53:1
Aa 4.75:1
+ >5.38:1
Aa 4.76:1
+ >5.44:1
Aa 4.76:1
+ >5.54:1
Aa 4.78:1
+ >5.46:1
Aa 4.79:1
+ >5.38:1
Aa 4.77:1
+ >5.26:1
Aa 4.76:1
+ >5.32:1
Aa 4.74:1
+ >5.51:1
Aa 4.75:1
+ >5.56:1
- purple#b596e7
+
+ purpleoklch(75% 0.1 300)
+
Aa 6.66:1
+ >7.17:1
Aa 4.72:1
+ >5.12:1
Aa 4.73:1
+ >5.18:1
Aa 4.72:1
+ >5.27:1
Aa 4.75:1
+ >5.20:1
Aa 4.75:1
+ >5.12:1
Aa 4.74:1
+ >5.01:1
Aa 4.73:1
+ >5.06:1
Aa 4.71:1
+ >5.24:1
Aa 4.72:1
+ >5.29:1
- pink#ea83c1
+
+ pinkoklch(75% 0.1 345)
+
Aa 6.68:1
+ >7.06:1
Aa 4.74:1
+ >5.05:1
Aa 4.75:1
+ >5.10:1
Aa 4.74:1
+ >5.19:1
Aa 4.77:1
+ >5.12:1
Aa 4.77:1
+ >5.04:1
Aa 4.76:1
+ >4.93:1
Aa 4.75:1
+ >4.99:1
Aa 4.73:1
+ >5.16:1
Aa 4.74:1
+ >5.21:1
diff --git a/packages/react/src/editor/styles.css b/packages/react/src/editor/styles.css
index 9eac75bde7..b0e907a449 100644
--- a/packages/react/src/editor/styles.css
+++ b/packages/react/src/editor/styles.css
@@ -2,41 +2,41 @@
/* Default theme params */
.bn-root {
- --bn-colors-editor-text: #3f3f3f;
- --bn-colors-editor-background: #ffffff;
- --bn-colors-menu-text: #3f3f3f;
- --bn-colors-menu-background: #ffffff;
- --bn-colors-tooltip-text: #3f3f3f;
- --bn-colors-tooltip-background: #efefef;
- --bn-colors-hovered-text: #3f3f3f;
- --bn-colors-hovered-background: #efefef;
- --bn-colors-selected-text: #ffffff;
- --bn-colors-selected-background: #3f3f3f;
- --bn-colors-disabled-text: #afafaf;
- --bn-colors-disabled-background: #efefef;
-
- --bn-colors-shadow: #cfcfcf;
- --bn-colors-border: #efefef;
- --bn-colors-side-menu: #cfcfcf;
-
- --bn-colors-highlights-gray-text: #686665;
- --bn-colors-highlights-gray-background: #ebeced;
- --bn-colors-highlights-brown-text: #845d4c;
- --bn-colors-highlights-brown-background: #e9e5e3;
- --bn-colors-highlights-red-text: #bc3434;
- --bn-colors-highlights-red-background: #fbe4e4;
- --bn-colors-highlights-orange-text: #9d5309;
- --bn-colors-highlights-orange-background: #f6e9d9;
- --bn-colors-highlights-yellow-text: #816201;
- --bn-colors-highlights-yellow-background: #fbf3db;
- --bn-colors-highlights-green-text: #596c40;
- --bn-colors-highlights-green-background: #e5edda;
- --bn-colors-highlights-blue-text: #0b6d99;
- --bn-colors-highlights-blue-background: #ddebf1;
- --bn-colors-highlights-purple-text: #7b4fbb;
- --bn-colors-highlights-purple-background: #eae4f2;
- --bn-colors-highlights-pink-text: #be1d7e;
- --bn-colors-highlights-pink-background: #f4dfeb;
+ --bn-colors-editor-text: oklch(37% 0 0);
+ --bn-colors-editor-background: oklch(100% 0 0);
+ --bn-colors-menu-text: oklch(37% 0 0);
+ --bn-colors-menu-background: oklch(100% 0 0);
+ --bn-colors-tooltip-text: oklch(37% 0 0);
+ --bn-colors-tooltip-background: oklch(95% 0 0);
+ --bn-colors-hovered-text: oklch(37% 0 0);
+ --bn-colors-hovered-background: oklch(95% 0 0);
+ --bn-colors-selected-text: oklch(100% 0 0);
+ --bn-colors-selected-background: oklch(37% 0 0);
+ --bn-colors-disabled-text: oklch(75% 0 0);
+ --bn-colors-disabled-background: oklch(95% 0 0);
+
+ --bn-colors-shadow: oklch(85% 0 0);
+ --bn-colors-border: oklch(95% 0 0);
+ --bn-colors-side-menu: oklch(85% 0 0);
+
+ --bn-colors-highlights-gray-text: oklch(51.6% 0 0);
+ --bn-colors-highlights-gray-background: oklch(93% 0 0);
+ --bn-colors-highlights-brown-text: oklch(48.5% 0.06 50);
+ --bn-colors-highlights-brown-background: oklch(93% 0.015 50);
+ --bn-colors-highlights-red-text: oklch(50.5% 0.1 25);
+ --bn-colors-highlights-red-background: oklch(93% 0.025 25);
+ --bn-colors-highlights-orange-text: oklch(50.5% 0.1 65);
+ --bn-colors-highlights-orange-background: oklch(93% 0.025 65);
+ --bn-colors-highlights-yellow-text: oklch(50.5% 0.1 95);
+ --bn-colors-highlights-yellow-background: oklch(93% 0.025 95);
+ --bn-colors-highlights-green-text: oklch(50.5% 0.1 135);
+ --bn-colors-highlights-green-background: oklch(93% 0.025 135);
+ --bn-colors-highlights-blue-text: oklch(50.5% 0.1 235);
+ --bn-colors-highlights-blue-background: oklch(93% 0.025 235);
+ --bn-colors-highlights-purple-text: oklch(50.5% 0.1 300);
+ --bn-colors-highlights-purple-background: oklch(93% 0.025 300);
+ --bn-colors-highlights-pink-text: oklch(50.5% 0.1 345);
+ --bn-colors-highlights-pink-background: oklch(93% 0.025 345);
--bn-font-family:
"Inter", "Inter fallback", "SF Pro Display", -apple-system,
@@ -54,41 +54,41 @@
}
.bn-root[data-color-scheme="dark"] {
- --bn-colors-editor-text: #cfcfcf;
- --bn-colors-editor-background: #1f1f1f;
- --bn-colors-menu-text: #cfcfcf;
- --bn-colors-menu-background: #1f1f1f;
- --bn-colors-tooltip-text: #cfcfcf;
- --bn-colors-tooltip-background: #161616;
- --bn-colors-hovered-text: #cfcfcf;
- --bn-colors-hovered-background: #161616;
- --bn-colors-selected-text: #cfcfcf;
- --bn-colors-selected-background: #0f0f0f;
- --bn-colors-disabled-text: #3f3f3f;
- --bn-colors-disabled-background: #161616;
-
- --bn-colors-shadow: #0f0f0f;
- --bn-colors-border: #161616;
- --bn-colors-side-menu: #7f7f7f;
-
- --bn-colors-highlights-gray-text: #bebdb8;
- --bn-colors-highlights-gray-background: #393838;
- --bn-colors-highlights-brown-text: #b9a094;
- --bn-colors-highlights-brown-background: #44352e;
- --bn-colors-highlights-red-text: #f38585;
- --bn-colors-highlights-red-background: #5e2727;
- --bn-colors-highlights-orange-text: #e89036;
- --bn-colors-highlights-orange-background: #4d3219;
- --bn-colors-highlights-yellow-text: #dfab01;
- --bn-colors-highlights-yellow-background: #413718;
- --bn-colors-highlights-green-text: #a0aa82;
- --bn-colors-highlights-green-background: #353a29;
- --bn-colors-highlights-blue-text: #5eafd2;
- --bn-colors-highlights-blue-background: #183c4d;
- --bn-colors-highlights-purple-text: #b596e7;
- --bn-colors-highlights-purple-background: #422f5e;
- --bn-colors-highlights-pink-text: #ea83c1;
- --bn-colors-highlights-pink-background: #631d47;
+ --bn-colors-editor-text: oklch(85% 0 0);
+ --bn-colors-editor-background: oklch(24% 0 0);
+ --bn-colors-menu-text: oklch(85% 0 0);
+ --bn-colors-menu-background: oklch(24% 0 0);
+ --bn-colors-tooltip-text: oklch(85% 0 0);
+ --bn-colors-tooltip-background: oklch(20% 0 0);
+ --bn-colors-hovered-text: oklch(85% 0 0);
+ --bn-colors-hovered-background: oklch(20% 0 0);
+ --bn-colors-selected-text: oklch(85% 0 0);
+ --bn-colors-selected-background: oklch(17% 0 0);
+ --bn-colors-disabled-text: oklch(37% 0 0);
+ --bn-colors-disabled-background: oklch(20% 0 0);
+
+ --bn-colors-shadow: oklch(17% 0 0);
+ --bn-colors-border: oklch(20% 0 0);
+ --bn-colors-side-menu: oklch(60% 0 0);
+
+ --bn-colors-highlights-gray-text: oklch(71.5% 0 0);
+ --bn-colors-highlights-gray-background: oklch(34% 0 0);
+ --bn-colors-highlights-brown-text: oklch(73% 0.06 50);
+ --bn-colors-highlights-brown-background: oklch(34% 0.035 50);
+ --bn-colors-highlights-red-text: oklch(75% 0.1 25);
+ --bn-colors-highlights-red-background: oklch(34% 0.065 25);
+ --bn-colors-highlights-orange-text: oklch(75% 0.1 65);
+ --bn-colors-highlights-orange-background: oklch(34% 0.065 65);
+ --bn-colors-highlights-yellow-text: oklch(75% 0.1 95);
+ --bn-colors-highlights-yellow-background: oklch(34% 0.065 95);
+ --bn-colors-highlights-green-text: oklch(75% 0.1 135);
+ --bn-colors-highlights-green-background: oklch(34% 0.065 135);
+ --bn-colors-highlights-blue-text: oklch(75% 0.1 235);
+ --bn-colors-highlights-blue-background: oklch(34% 0.065 235);
+ --bn-colors-highlights-purple-text: oklch(75% 0.1 300);
+ --bn-colors-highlights-purple-background: oklch(34% 0.065 300);
+ --bn-colors-highlights-pink-text: oklch(75% 0.1 345);
+ --bn-colors-highlights-pink-background: oklch(34% 0.065 345);
}
.bn-root {
diff --git a/tests/src/end-to-end/copypaste/__snapshots__/nonEditableBlock.json b/tests/src/end-to-end/copypaste/__snapshots__/nonEditableBlock.json
index 3a15b219b5..4d67396854 100644
--- a/tests/src/end-to-end/copypaste/__snapshots__/nonEditableBlock.json
+++ b/tests/src/end-to-end/copypaste/__snapshots__/nonEditableBlock.json
@@ -57,13 +57,13 @@
{
"type": "textColor",
"attrs": {
- "stringValue": "rgb(63, 63, 63)"
+ "stringValue": "oklch(0.37 0 0)"
}
},
{
"type": "backgroundColor",
"attrs": {
- "stringValue": "rgb(255, 255, 255)"
+ "stringValue": "oklch(1 0 0)"
}
}
],
From 73368ab05a0d21e2f5bdad83241f3b87e0e8b142 Mon Sep 17 00:00:00 2001
From: Matthew Lipski
Date: Thu, 22 Oct 2026 14:01:22 +0200
Subject: [PATCH 3/8] Untracked `highlight-color-comparison.html`
---
highlight-color-comparison.html | 3876 -------------------------------
1 file changed, 3876 deletions(-)
delete mode 100644 highlight-color-comparison.html
diff --git a/highlight-color-comparison.html b/highlight-color-comparison.html
deleted file mode 100644
index 115ede75fd..0000000000
--- a/highlight-color-comparison.html
+++ /dev/null
@@ -1,3876 +0,0 @@
-
-
-
-
-
- BlockNote highlight palette comparison
-
-
-
-
- Highlight palette: old vs new
-
- Rows are text colors; columns are background colors. Each cell shows
- sample text and its contrast ratio. An asterisk (*) marks ratios below
- 4.5:1 for normal text.
-
-
- Includes the default editor colors. Color values appear in the row and
- column headings. The new highlight text and backgrounds each share OKLCH
- lightness and chroma within each theme, with independently tuned neutral
- gray text and muted brown.
-
-
- Light mode Dark mode
-
-
-
- Light mode
-
-
-
-
41 of 100 combinations below 4.5:1.
-
-
-
-
0 of 100 combinations below 4.5:1.
-
-
-
-
- Dark mode
-
-
-
-
94 of 100 combinations below 4.5:1.
-
-
-
-
0 of 100 combinations below 4.5:1.
-
-
-
-
-
-
From cb759af3a434b4b1f276efe6bebd7c903860a145 Mon Sep 17 00:00:00 2001
From: Matthew Lipski
Date: Fri, 23 Oct 2026 15:38:01 +0200
Subject: [PATCH 4/8] Updated tests
---
...son-default-schema-dark-chromium-linux.png | Bin 1000212 -> 1001010 bytes
...on-default-schema-light-chromium-linux.png | Bin 978866 -> 981008 bytes
.../versioning/block-comparison.test.tsx | 20 +++++++++++-------
...-colored-block-to-empty-chromium-linux.png | Bin 8725 -> 8835 bytes
...d-colored-block-to-empty-firefox-linux.png | Bin 9432 -> 9525 bytes
...dd-colored-block-to-empty-webkit-linux.png | Bin 10020 -> 10138 bytes
6 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/tests/src/end-to-end/versioning/__screenshots__/block-comparison.test.tsx/comparison-default-schema-dark-chromium-linux.png b/tests/src/end-to-end/versioning/__screenshots__/block-comparison.test.tsx/comparison-default-schema-dark-chromium-linux.png
index 991fb526d90e9004ec080268a34a68fb9ae56727..74157c0b884cf32e09ae0dd650f2043cf57c8dd9 100644
GIT binary patch
literal 1001010
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 Y15`PGNh~L4GrnuV~&(Ot&JnKZb
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