diff --git a/README.md b/README.md
index 736dc29fdf..016b00be78 100644
--- a/README.md
+++ b/README.md
@@ -106,6 +106,7 @@ MarkText is an open-source Markdown editor powered by the support of its communi
| [
](https://serpapi.com/?utm_source=marktext) | [Scrape Google and other search engines from our fast, easy, and complete API.](https://serpapi.com/?utm_source=marktext) |
| ------------- |:-------------|
+| [
](https://www.ukey.com) | [Secure hardware wallet made simple.](https://www.ukey.com) |
## Screenshot
diff --git a/docs/assets/sponsors/ukey.png b/docs/assets/sponsors/ukey.png
new file mode 100644
index 0000000000..8ffd2f90a3
Binary files /dev/null and b/docs/assets/sponsors/ukey.png differ
diff --git a/docs/i18n/README-ar.md b/docs/i18n/README-ar.md
index 9bbba821eb..ea2f0ccf84 100644
--- a/docs/i18n/README-ar.md
+++ b/docs/i18n/README-ar.md
@@ -110,6 +110,7 @@ MarkText هو محرر Markdown مفتوح المصدر يعتمد على دعم
| [
](https://serpapi.com/?utm_source=marktext) | [استخرج نتائج Google ومحركات البحث الأخرى من خلال واجهة برمجية سريعة وسهلة وشاملة.](https://serpapi.com/?utm_source=marktext) |
| ------------- |:-------------|
+| [
](https://www.ukey.com) | [Secure hardware wallet made simple.](https://www.ukey.com) |
## لقطة شاشة
diff --git a/docs/i18n/README-de.md b/docs/i18n/README-de.md
index c26aa9a2b7..0ca1d68fdd 100644
--- a/docs/i18n/README-de.md
+++ b/docs/i18n/README-de.md
@@ -110,6 +110,7 @@ MarkText ist ein Open-Source-Markdown-Editor, der von seiner Community unterstü
| [
](https://serpapi.com/?utm_source=marktext) | [Extrahieren Sie Daten von Google und anderen Suchmaschinen über unsere schnelle, einfache und vollständige API.](https://serpapi.com/?utm_source=marktext) |
| ------------- |:-------------|
+| [
](https://www.ukey.com) | [Secure hardware wallet made simple.](https://www.ukey.com) |
## Screenshot
diff --git a/docs/i18n/README-es.md b/docs/i18n/README-es.md
index f5a1097188..4c4f0b8afe 100644
--- a/docs/i18n/README-es.md
+++ b/docs/i18n/README-es.md
@@ -110,6 +110,7 @@ MarkText es un editor de Markdown de código abierto impulsado por el apoyo de s
| [
](https://serpapi.com/?utm_source=marktext) | [Extrae resultados de Google y otros motores de búsqueda con nuestra API rápida, sencilla y completa.](https://serpapi.com/?utm_source=marktext) |
| ------------- |:-------------|
+| [
](https://www.ukey.com) | [Secure hardware wallet made simple.](https://www.ukey.com) |
## Capturas de pantalla
diff --git a/docs/i18n/README-fr.md b/docs/i18n/README-fr.md
index c23186d9c5..27be6e8e80 100644
--- a/docs/i18n/README-fr.md
+++ b/docs/i18n/README-fr.md
@@ -110,6 +110,7 @@ MarkText est un éditeur Markdown open-source soutenu par sa communauté. Si Mar
| [
](https://serpapi.com/?utm_source=marktext) | [Extrayez les résultats de Google et d'autres moteurs de recherche grâce à notre API rapide, facile et complète.](https://serpapi.com/?utm_source=marktext) |
| ------------- |:-------------|
+| [
](https://www.ukey.com) | [Secure hardware wallet made simple.](https://www.ukey.com) |
## Captures d'écran
diff --git a/docs/i18n/README-jp.md b/docs/i18n/README-jp.md
index 7473b3be35..4394d0b26e 100644
--- a/docs/i18n/README-jp.md
+++ b/docs/i18n/README-jp.md
@@ -111,6 +111,7 @@ MarkText はコミュニティの支援によって成り立つオープンソ
| [
](https://serpapi.com/?utm_source=marktext) | [高速で使いやすく完全な API で Google や他の検索エンジンからデータを取得できます。](https://serpapi.com/?utm_source=marktext) |
| ------------- |:-------------|
+| [
](https://www.ukey.com) | [Secure hardware wallet made simple.](https://www.ukey.com) |
## スクリーンショット
diff --git a/docs/i18n/README-kr.md b/docs/i18n/README-kr.md
index 47cefb6d35..676c72e3c3 100644
--- a/docs/i18n/README-kr.md
+++ b/docs/i18n/README-kr.md
@@ -111,6 +111,7 @@ MarkText는 커뮤니티의 지원으로 운영되는 오픈소스 Markdown 편
| [
](https://serpapi.com/?utm_source=marktext) | [빠르고 쉬우며 완전한 API로 Google 및 기타 검색 엔진에서 데이터를 수집하세요.](https://serpapi.com/?utm_source=marktext) |
| ------------- |:-------------|
+| [
](https://www.ukey.com) | [Secure hardware wallet made simple.](https://www.ukey.com) |
## 스크린샷
diff --git a/docs/i18n/README-pt.md b/docs/i18n/README-pt.md
index 33ec1f338e..4f6af02f12 100644
--- a/docs/i18n/README-pt.md
+++ b/docs/i18n/README-pt.md
@@ -110,6 +110,7 @@ MarkText é um editor Markdown de código aberto impulsionado pelo apoio de sua
| [
](https://serpapi.com/?utm_source=marktext) | [Extraia dados do Google e de outros mecanismos de busca com nossa API rápida, fácil e completa.](https://serpapi.com/?utm_source=marktext) |
| ------------- |:-------------|
+| [
](https://www.ukey.com) | [Secure hardware wallet made simple.](https://www.ukey.com) |
## Capturas de tela
diff --git a/docs/i18n/README-tr.md b/docs/i18n/README-tr.md
index d115e7a456..3ed94b8782 100644
--- a/docs/i18n/README-tr.md
+++ b/docs/i18n/README-tr.md
@@ -111,6 +111,7 @@ MarkText, topluluğunun desteğiyle hayata geçirilmiş açık kaynaklı bir Mar
| [
](https://serpapi.com/?utm_source=marktext) | [Hızlı, kolay ve kapsamlı API'miz ile Google ve diğer arama motorlarından veri çekin.](https://serpapi.com/?utm_source=marktext) |
| ------------- |:-------------|
+| [
](https://www.ukey.com) | [Secure hardware wallet made simple.](https://www.ukey.com) |
## Ekran Görüntüsü
diff --git a/docs/i18n/README-zh_cn.md b/docs/i18n/README-zh_cn.md
index 849f7277fb..b8202f1157 100644
--- a/docs/i18n/README-zh_cn.md
+++ b/docs/i18n/README-zh_cn.md
@@ -111,6 +111,7 @@ MarkText 是一款由社区支持驱动的开源 Markdown 编辑器。如果 Mar
| [
](https://serpapi.com/?utm_source=marktext) | [通过我们快速、便捷且完整的 API 抓取 Google 及其他搜索引擎的数据。](https://serpapi.com/?utm_source=marktext) |
| ------------- |:-------------|
+| [
](https://www.ukey.com) | [Secure hardware wallet made simple.](https://www.ukey.com) |
## 截图
diff --git a/docs/i18n/README-zh_tw.md b/docs/i18n/README-zh_tw.md
index 80819539f4..2fdb91fb71 100644
--- a/docs/i18n/README-zh_tw.md
+++ b/docs/i18n/README-zh_tw.md
@@ -111,6 +111,7 @@ MarkText 是一款由社群支持驅動的開源 Markdown 編輯器。如果 Mar
| [
](https://serpapi.com/?utm_source=marktext) | [透過我們快速、便捷且完整的 API 抓取 Google 及其他搜尋引擎的資料。](https://serpapi.com/?utm_source=marktext) |
| ------------- |:-------------|
+| [
](https://www.ukey.com) | [Secure hardware wallet made simple.](https://www.ukey.com) |
## 截圖
diff --git a/packages/desktop/src/renderer/src/util/theme.ts b/packages/desktop/src/renderer/src/util/theme.ts
index fdba7d49d3..b940531723 100644
--- a/packages/desktop/src/renderer/src/util/theme.ts
+++ b/packages/desktop/src/renderer/src/util/theme.ts
@@ -201,8 +201,11 @@ export const setEditorWidth = (value: string): void => {
const EDITOR_WIDTH_STYLE_ID = 'editor-width'
let result = ''
if (value && /^[0-9]+(?:ch|px|%)$/.test(value)) {
- // Overwrite the theme value and add 100px for padding.
- result = `:root { --editorAreaWidth: calc(100px + ${value}); }`
+ // Add 100px for the container's horizontal padding. Set both the legacy
+ // camelCase var (source mode) and the kebab-case var the active
+ // @muyajs/core engine reads for `.mu-container` max-width (issue #4828).
+ const width = `calc(100px + ${value})`
+ result = `:root { --editorAreaWidth: ${width}; --editor-area-width: ${width}; }`
}
let styleEle = document.querySelector(`#${EDITOR_WIDTH_STYLE_ID}`) as HTMLStyleElement | null
if (!styleEle) {
diff --git a/packages/desktop/test/unit/specs/editor-theme-style.spec.ts b/packages/desktop/test/unit/specs/editor-theme-style.spec.ts
index f9edf72a23..28d8ffb07c 100644
--- a/packages/desktop/test/unit/specs/editor-theme-style.spec.ts
+++ b/packages/desktop/test/unit/specs/editor-theme-style.spec.ts
@@ -83,11 +83,21 @@ describe('theme.ts style injection helpers', () => {
setEditorWidth(value)
expect(styleHtml(WIDTH_STYLE_ID)).toBe(
- `:root { --editorAreaWidth: calc(100px + ${value}); }`
+ `:root { --editorAreaWidth: calc(100px + ${value}); --editor-area-width: calc(100px + ${value}); }`
)
}
)
+ it('overrides the active @muyajs/core width variable, not only the legacy one', () => {
+ // The WYSIWYG engine reads the kebab-case `--editor-area-width`
+ // (`.mu-container` max-width); the legacy camelCase `--editorAreaWidth`
+ // only reaches source mode. Both must be set or the preference is a no-op
+ // on the default theme (issue #4828).
+ setEditorWidth('60%')
+
+ expect(styleHtml(WIDTH_STYLE_ID)).toContain('--editor-area-width: calc(100px + 60%);')
+ })
+
it('clears the override (empty innerHTML) for an empty string', () => {
setEditorWidth('800px')
setEditorWidth('')
diff --git a/packages/website/public/assets/ukey.png b/packages/website/public/assets/ukey.png
new file mode 100644
index 0000000000..8ffd2f90a3
Binary files /dev/null and b/packages/website/public/assets/ukey.png differ
diff --git a/packages/website/public/docs/assets/sponsors/ukey.png b/packages/website/public/docs/assets/sponsors/ukey.png
new file mode 100644
index 0000000000..8ffd2f90a3
Binary files /dev/null and b/packages/website/public/docs/assets/sponsors/ukey.png differ
diff --git a/packages/website/src/app/globals.css b/packages/website/src/app/globals.css
index 29305df135..33e70e78b9 100644
--- a/packages/website/src/app/globals.css
+++ b/packages/website/src/app/globals.css
@@ -1058,6 +1058,12 @@ h2.sec-title {
text-transform: uppercase;
color: var(--muted);
}
+.sponsor-logos {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
+ gap: 22px;
+}
.sponsor-logo {
display: inline-flex;
align-items: center;
@@ -1081,7 +1087,9 @@ h2.sec-title {
width: auto;
display: block;
}
-[data-theme='dark'] .sponsor-logo img {
+/* Logos that carry their own background can't be recolored, so exclude them
+ from the dark-mode inversion that transparent single-color logos rely on. */
+[data-theme='dark'] .sponsor-logo img:not(.sponsor-logo-raw) {
filter: brightness(0) invert(1);
opacity: 0.9;
}
diff --git a/packages/website/src/components/Support.tsx b/packages/website/src/components/Support.tsx
index 0b70a813d2..f391b9dd57 100644
--- a/packages/website/src/components/Support.tsx
+++ b/packages/website/src/components/Support.tsx
@@ -24,9 +24,14 @@ export default function Support() {