v6.8.0: light theme
The palette lived as ~620 hex literals in inline styles plus a few hundred more in
the stylesheets, so there was no single thing to change. It is now 113 custom
properties in src/styles/theme.css, in two blocks.
src/scripts/theme-boot.js decides the theme before first paint — blocking, in <head>,
above the stylesheet, because a deferred script paints dark first and corrects itself.
It stores the mode ('system' | 'light' | 'dark'), never the colour it resolved to, and
stamps data-theme so an explicit choice can beat the media query. The switcher in the
header is a view onto it.
A filled accent stays the brand colour in both themes — the ink on it is near-black
either way — while an accent used as text darkens to clear 4.5:1 on white. A colour
reaches a fill by four routes (a style property, a constant, a helper argument, an SVG
source string), and tests/theme-switching.test.mjs covers all four.
The dark theme is unchanged: every colour declaration the previous build produced comes
out of this one identically once the properties are resolved.
Also: the roadmap drops its status chips on mobile, and Roadmap.jsx no longer splits a
colour with parseInt at runtime, which a var() reference cannot survive.
This commit is contained in:
@@ -38,6 +38,10 @@
|
||||
"language.suggest.text": "هذه الصفحة متوفرة أيضًا بالعربية.",
|
||||
"language.suggest.cta": "اقرأ بالعربية",
|
||||
"language.suggest.dismiss": "إغلاق",
|
||||
"theme.label": "المظهر",
|
||||
"theme.system": "النظام",
|
||||
"theme.light": "فاتح",
|
||||
"theme.dark": "داكن",
|
||||
"community.title": "انضمّ إلى مستقبل الخصوصية",
|
||||
"community.description": "ينمو SecureBit بفضل مجتمعه. أفكاركم وملاحظاتكم هي ما يصوغ مستقبل التواصل الآمن - مبنيّ في العلن، مع تحقّق ASN.1 كامل من طرف إلى طرف.",
|
||||
"community.github": "مستودع GitHub",
|
||||
@@ -322,6 +326,8 @@
|
||||
"pwa.iosStep3Hint": "أكّد لتثبيت SecureBit.chat",
|
||||
"pwa.genericTitle": "تثبيت SecureBit",
|
||||
"pwa.genericDesc": "لكلّ متصفّح طريقته في التثبيت. اختر الخطوات التي تناسب متصفّحك.",
|
||||
"pwa.androidChromeHint": "اضغط على ⋮ في الزاوية العلوية، ثم «تثبيت التطبيق»",
|
||||
"pwa.androidOtherHint": "افتح القائمة، ثم «إضافة إلى الشاشة الرئيسية»",
|
||||
"pwa.gotIt": "فهمت",
|
||||
"pwa.installedTitle": "تمّ تثبيت التطبيق!",
|
||||
"pwa.installedIos": "تمّ تثبيت تطبيق iOS! افتحه من الشاشة الرئيسية.",
|
||||
|
||||
@@ -38,6 +38,10 @@
|
||||
"language.suggest.text": "Diese Seite gibt es auch auf Deutsch.",
|
||||
"language.suggest.cta": "Auf Deutsch lesen",
|
||||
"language.suggest.dismiss": "Schließen",
|
||||
"theme.label": "Design",
|
||||
"theme.system": "System",
|
||||
"theme.light": "Hell",
|
||||
"theme.dark": "Dunkel",
|
||||
"community.title": "Gestalten Sie die Zukunft der Privatsphäre mit",
|
||||
"community.description": "SecureBit wächst durch seine Community. Ihre Ideen und Ihr Feedback prägen die Zukunft sicherer Kommunikation - offen entwickelt, mit vollständiger ASN.1-Validierung von Ende zu Ende.",
|
||||
"community.github": "GitHub-Repository",
|
||||
@@ -322,6 +326,8 @@
|
||||
"pwa.iosStep3Hint": "Bestätigen, um SecureBit.chat zu installieren",
|
||||
"pwa.genericTitle": "SecureBit installieren",
|
||||
"pwa.genericDesc": "Jeder Browser installiert auf seine eigene Weise. Wählen Sie die Schritte, die zu Ihrem passen.",
|
||||
"pwa.androidChromeHint": "Tippe oben auf ⋮ und dann auf „App installieren“",
|
||||
"pwa.androidOtherHint": "Öffne das Menü und wähle „Zum Startbildschirm hinzufügen“",
|
||||
"pwa.gotIt": "Verstanden",
|
||||
"pwa.installedTitle": "App installiert!",
|
||||
"pwa.installedIos": "iOS-App installiert! Vom Home-Bildschirm öffnen.",
|
||||
|
||||
@@ -33,6 +33,10 @@
|
||||
"language.suggest.text": "This page is also available in English.",
|
||||
"language.suggest.cta": "Read in English",
|
||||
"language.suggest.dismiss": "Dismiss",
|
||||
"theme.label": "Theme",
|
||||
"theme.system": "System",
|
||||
"theme.light": "Light",
|
||||
"theme.dark": "Dark",
|
||||
"community.title": "Join the future of privacy",
|
||||
"community.description": "SecureBit grows thanks to its community. Your ideas and feedback shape the future of secure communication - built in the open, with complete ASN.1 validation end-to-end.",
|
||||
"community.github": "GitHub Repository",
|
||||
@@ -317,6 +321,8 @@
|
||||
"pwa.iosStep3Hint": "Confirm to install SecureBit.chat",
|
||||
"pwa.genericTitle": "Install SecureBit",
|
||||
"pwa.genericDesc": "Your browser handles installs its own way. Pick the steps that match yours.",
|
||||
"pwa.androidChromeHint": "Tap ⋮ in the top corner, then “Install app”",
|
||||
"pwa.androidOtherHint": "Tap the menu, then “Add to Home screen”",
|
||||
"pwa.gotIt": "Got it",
|
||||
"pwa.installedTitle": "App Installed!",
|
||||
"pwa.installedIos": "iOS App installed! Open from home screen.",
|
||||
|
||||
@@ -38,6 +38,10 @@
|
||||
"language.suggest.text": "Esta página también está disponible en español.",
|
||||
"language.suggest.cta": "Leer en español",
|
||||
"language.suggest.dismiss": "Cerrar",
|
||||
"theme.label": "Tema",
|
||||
"theme.system": "Sistema",
|
||||
"theme.light": "Claro",
|
||||
"theme.dark": "Oscuro",
|
||||
"community.title": "Construye el futuro de la privacidad",
|
||||
"community.description": "SecureBit crece gracias a su comunidad. Tus ideas y comentarios dan forma al futuro de la comunicación segura, desarrollada de forma abierta y con validación ASN.1 completa de extremo a extremo.",
|
||||
"community.github": "Repositorio en GitHub",
|
||||
@@ -322,6 +326,8 @@
|
||||
"pwa.iosStep3Hint": "Confirma para instalar SecureBit.chat",
|
||||
"pwa.genericTitle": "Instalar SecureBit",
|
||||
"pwa.genericDesc": "Cada navegador instala a su manera. Elige los pasos que coincidan con el tuyo.",
|
||||
"pwa.androidChromeHint": "Toca ⋮ en la esquina superior y elige «Instalar aplicación»",
|
||||
"pwa.androidOtherHint": "Abre el menú y elige «Añadir a la pantalla de inicio»",
|
||||
"pwa.gotIt": "Entendido",
|
||||
"pwa.installedTitle": "¡App instalada!",
|
||||
"pwa.installedIos": "¡App de iOS instalada! Ábrela desde la pantalla de inicio.",
|
||||
|
||||
@@ -38,6 +38,10 @@
|
||||
"language.suggest.text": "این صفحه به فارسی هم در دسترس است.",
|
||||
"language.suggest.cta": "خواندن به فارسی",
|
||||
"language.suggest.dismiss": "بستن",
|
||||
"theme.label": "پوسته",
|
||||
"theme.system": "سیستم",
|
||||
"theme.light": "روشن",
|
||||
"theme.dark": "تیره",
|
||||
"community.title": "به آیندهٔ حریم خصوصی بپیوندید",
|
||||
"community.description": "SecureBit بهلطف جامعهاش رشد میکند. ایدهها و بازخوردهای شما آیندهٔ ارتباط امن را شکل میدهد - ساختهشده در فضای باز، با اعتبارسنجی کامل ASN.1 از یک سر تا سر دیگر.",
|
||||
"community.github": "مخزن GitHub",
|
||||
@@ -322,6 +326,8 @@
|
||||
"pwa.iosStep3Hint": "برای نصب SecureBit.chat تأیید کنید",
|
||||
"pwa.genericTitle": "نصب SecureBit",
|
||||
"pwa.genericDesc": "هر مرورگر روش نصب خودش را دارد. گامهایی را برگزینید که با مرورگر شما میخواند.",
|
||||
"pwa.androidChromeHint": "روی ⋮ در گوشهٔ بالا بزنید و «نصب برنامه» را بزنید",
|
||||
"pwa.androidOtherHint": "منو را باز کنید و «افزودن به صفحهٔ اصلی» را بزنید",
|
||||
"pwa.gotIt": "متوجه شدم",
|
||||
"pwa.installedTitle": "برنامه نصب شد!",
|
||||
"pwa.installedIos": "برنامهٔ iOS نصب شد! از صفحهٔ اصلی بازش کنید.",
|
||||
|
||||
@@ -33,6 +33,10 @@
|
||||
"language.suggest.text": "Cette page est aussi disponible en français.",
|
||||
"language.suggest.cta": "Lire en français",
|
||||
"language.suggest.dismiss": "Fermer",
|
||||
"theme.label": "Thème",
|
||||
"theme.system": "Système",
|
||||
"theme.light": "Clair",
|
||||
"theme.dark": "Sombre",
|
||||
"community.title": "Construisez l'avenir de la vie privée",
|
||||
"community.description": "SecureBit grandit grâce à sa communauté. Vos idées et vos retours façonnent l'avenir des communications sécurisées, développées à ciel ouvert, avec une validation ASN.1 complète de bout en bout.",
|
||||
"community.github": "Dépôt GitHub",
|
||||
@@ -317,6 +321,8 @@
|
||||
"pwa.iosStep3Hint": "Confirmez pour installer SecureBit.chat",
|
||||
"pwa.genericTitle": "Installer SecureBit",
|
||||
"pwa.genericDesc": "Chaque navigateur installe à sa manière. Choisissez les étapes qui correspondent au vôtre.",
|
||||
"pwa.androidChromeHint": "Appuyez sur ⋮ en haut, puis sur « Installer l’application »",
|
||||
"pwa.androidOtherHint": "Ouvrez le menu, puis « Ajouter à l’écran d’accueil »",
|
||||
"pwa.gotIt": "Compris",
|
||||
"pwa.installedTitle": "Application installée !",
|
||||
"pwa.installedIos": "Application iOS installée ! Ouvrez-la depuis l'écran d'accueil.",
|
||||
|
||||
@@ -38,6 +38,10 @@
|
||||
"language.suggest.text": "הדף הזה זמין גם בעברית.",
|
||||
"language.suggest.cta": "לקריאה בעברית",
|
||||
"language.suggest.dismiss": "סגירה",
|
||||
"theme.label": "ערכת נושא",
|
||||
"theme.system": "מערכת",
|
||||
"theme.light": "בהיר",
|
||||
"theme.dark": "כהה",
|
||||
"community.title": "הצטרפו לעתיד של הפרטיות",
|
||||
"community.description": "SecureBit גדל בזכות הקהילה שלו. הרעיונות והמשוב שלכם מעצבים את עתיד התקשורת המאובטחת - נבנה בגלוי, עם אימות ASN.1 מלא מקצה לקצה.",
|
||||
"community.github": "מאגר GitHub",
|
||||
@@ -322,6 +326,8 @@
|
||||
"pwa.iosStep3Hint": "אשרו כדי להתקין את SecureBit.chat",
|
||||
"pwa.genericTitle": "התקנת SecureBit",
|
||||
"pwa.genericDesc": "לכל דפדפן דרך משלו להתקין. בחרו את השלבים שמתאימים לשלכם.",
|
||||
"pwa.androidChromeHint": "הקישו על ⋮ בפינה העליונה ובחרו ב־”התקנת אפליקציה”",
|
||||
"pwa.androidOtherHint": "פתחו את התפריט ובחרו ב־”הוספה למסך הבית”",
|
||||
"pwa.gotIt": "הבנתי",
|
||||
"pwa.installedTitle": "האפליקציה הותקנה!",
|
||||
"pwa.installedIos": "אפליקציית iOS הותקנה! פתחו ממסך הבית.",
|
||||
|
||||
@@ -33,6 +33,10 @@
|
||||
"language.suggest.text": "यह पृष्ठ हिन्दी में भी उपलब्ध है।",
|
||||
"language.suggest.cta": "हिन्दी में पढ़ें",
|
||||
"language.suggest.dismiss": "बंद करें",
|
||||
"theme.label": "थीम",
|
||||
"theme.system": "सिस्टम",
|
||||
"theme.light": "हल्की",
|
||||
"theme.dark": "गहरी",
|
||||
"community.title": "निजता के भविष्य में शामिल हों",
|
||||
"community.description": "SecureBit अपने समुदाय से बढ़ता है। आपके विचार और सुझाव सुरक्षित संवाद का भविष्य गढ़ते हैं - खुले में बना, और पूरे रास्ते पूरी ASN.1 जाँच के साथ।",
|
||||
"community.github": "GitHub रिपॉज़िटरी",
|
||||
@@ -317,6 +321,8 @@
|
||||
"pwa.iosStep3Hint": "पुष्टि कीजिए, SecureBit.chat इंस्टॉल हो जाएगा",
|
||||
"pwa.genericTitle": "SecureBit इंस्टॉल करें",
|
||||
"pwa.genericDesc": "हर ब्राउज़र अपने तरीक़े से इंस्टॉल करता है। अपने ब्राउज़र से मेल खाते चरण चुनिए।",
|
||||
"pwa.androidChromeHint": "ऊपर के कोने में ⋮ दबाएँ, फिर “ऐप इंस्टॉल करें” चुनें",
|
||||
"pwa.androidOtherHint": "मेनू खोलें और “होम स्क्रीन पर जोड़ें” चुनें",
|
||||
"pwa.gotIt": "समझ गया",
|
||||
"pwa.installedTitle": "ऐप इंस्टॉल हो गया!",
|
||||
"pwa.installedIos": "iOS ऐप इंस्टॉल हो गया! होम स्क्रीन से खोलिए।",
|
||||
|
||||
@@ -33,6 +33,10 @@
|
||||
"language.suggest.text": "이 페이지는 한국어로도 볼 수 있습니다.",
|
||||
"language.suggest.cta": "한국어로 보기",
|
||||
"language.suggest.dismiss": "닫기",
|
||||
"theme.label": "테마",
|
||||
"theme.system": "시스템",
|
||||
"theme.light": "밝게",
|
||||
"theme.dark": "어둡게",
|
||||
"community.title": "프라이버시의 미래를 함께 만듭니다",
|
||||
"community.description": "SecureBit은 커뮤니티 덕분에 자랍니다. 여러분의 아이디어와 의견이 안전한 소통의 미래를 만듭니다 - 모든 과정이 공개되어 있고, 전 구간에서 ASN.1 검증을 수행합니다.",
|
||||
"community.github": "GitHub 저장소",
|
||||
@@ -317,6 +321,8 @@
|
||||
"pwa.iosStep3Hint": "확인하면 SecureBit.chat이 설치됩니다",
|
||||
"pwa.genericTitle": "SecureBit 설치",
|
||||
"pwa.genericDesc": "브라우저마다 설치 방법이 다릅니다. 쓰시는 브라우저에 맞는 순서를 고르세요.",
|
||||
"pwa.androidChromeHint": "오른쪽 위 ⋮ 를 누른 뒤 “앱 설치”를 선택하세요",
|
||||
"pwa.androidOtherHint": "메뉴를 열고 “홈 화면에 추가”를 선택하세요",
|
||||
"pwa.gotIt": "알겠습니다",
|
||||
"pwa.installedTitle": "앱이 설치되었습니다",
|
||||
"pwa.installedIos": "iOS 앱이 설치되었습니다. 홈 화면에서 열어보세요.",
|
||||
|
||||
@@ -38,6 +38,10 @@
|
||||
"language.suggest.text": "Эта страница также доступна на русском.",
|
||||
"language.suggest.cta": "Читать по-русски",
|
||||
"language.suggest.dismiss": "Закрыть",
|
||||
"theme.label": "Тема",
|
||||
"theme.system": "Системная",
|
||||
"theme.light": "Светлая",
|
||||
"theme.dark": "Тёмная",
|
||||
"community.title": "Присоединяйтесь к будущему приватности",
|
||||
"community.description": "SecureBit растёт благодаря сообществу. Ваши идеи и отзывы формируют будущее защищённого общения - разработка ведётся открыто, с полной проверкой ASN.1 на всём пути.",
|
||||
"community.github": "Репозиторий на GitHub",
|
||||
@@ -322,6 +326,8 @@
|
||||
"pwa.iosStep3Hint": "Подтвердите, чтобы установить SecureBit.chat",
|
||||
"pwa.genericTitle": "Установить SecureBit",
|
||||
"pwa.genericDesc": "Каждый браузер устанавливает по-своему. Выберите шаги, подходящие вашему.",
|
||||
"pwa.androidChromeHint": "Нажмите ⋮ в верхнем углу и выберите «Установить приложение»",
|
||||
"pwa.androidOtherHint": "Откройте меню и выберите «Добавить на главный экран»",
|
||||
"pwa.gotIt": "Понятно",
|
||||
"pwa.installedTitle": "Приложение установлено!",
|
||||
"pwa.installedIos": "Приложение для iOS установлено! Откройте его с экрана «Домой».",
|
||||
|
||||
@@ -38,6 +38,10 @@
|
||||
"language.suggest.text": "Ця сторінка також доступна українською.",
|
||||
"language.suggest.cta": "Читати українською",
|
||||
"language.suggest.dismiss": "Закрити",
|
||||
"theme.label": "Тема",
|
||||
"theme.system": "Системна",
|
||||
"theme.light": "Світла",
|
||||
"theme.dark": "Темна",
|
||||
"community.title": "Долучайтеся до майбутнього приватності",
|
||||
"community.description": "SecureBit росте завдяки своїй спільноті. Ваші ідеї та відгуки формують майбутнє захищеного спілкування - розробка ведеться відкрито, з повною валідацією ASN.1 на всьому шляху.",
|
||||
"community.github": "Репозиторій на GitHub",
|
||||
@@ -322,6 +326,8 @@
|
||||
"pwa.iosStep3Hint": "Підтвердіть, щоб встановити SecureBit.chat",
|
||||
"pwa.genericTitle": "Встановити SecureBit",
|
||||
"pwa.genericDesc": "Кожен браузер встановлює по-своєму. Оберіть кроки, які відповідають вашому.",
|
||||
"pwa.androidChromeHint": "Натисніть ⋮ у верхньому кутку та оберіть «Встановити застосунок»",
|
||||
"pwa.androidOtherHint": "Відкрийте меню та оберіть «Додати на головний екран»",
|
||||
"pwa.gotIt": "Зрозуміло",
|
||||
"pwa.installedTitle": "Застосунок встановлено!",
|
||||
"pwa.installedIos": "Застосунок для iOS встановлено! Відкрийте його з екрана «Домів».",
|
||||
|
||||
@@ -38,6 +38,10 @@
|
||||
"language.suggest.text": "یہ صفحہ اردو میں بھی دستیاب ہے۔",
|
||||
"language.suggest.cta": "اردو میں پڑھیں",
|
||||
"language.suggest.dismiss": "بند کریں",
|
||||
"theme.label": "تھیم",
|
||||
"theme.system": "سسٹم",
|
||||
"theme.light": "روشن",
|
||||
"theme.dark": "گہرا",
|
||||
"community.title": "نجیت کے مستقبل میں شامل ہوں",
|
||||
"community.description": "SecureBit اپنی برادری کی بدولت بڑھتا ہے۔ آپ کے خیالات اور آراء محفوظ رابطے کا مستقبل تشکیل دیتے ہیں - کھلے عام بنایا گیا، سرے سے سرے تک مکمل ASN.1 توثیق کے ساتھ۔",
|
||||
"community.github": "GitHub مخزن",
|
||||
@@ -322,6 +326,8 @@
|
||||
"pwa.iosStep3Hint": "SecureBit.chat نصب کرنے کی تصدیق کریں",
|
||||
"pwa.genericTitle": "SecureBit نصب کریں",
|
||||
"pwa.genericDesc": "ہر براؤزر اپنے انداز میں نصب کرتا ہے۔ وہ مراحل چنیں جو آپ کے براؤزر سے میل کھاتے ہوں۔",
|
||||
"pwa.androidChromeHint": "اوپر کے کونے میں ⋮ دبائیں، پھر «ایپ انسٹال کریں»",
|
||||
"pwa.androidOtherHint": "مینیو کھولیں اور «ہوم اسکرین پر شامل کریں» منتخب کریں",
|
||||
"pwa.gotIt": "سمجھ گیا",
|
||||
"pwa.installedTitle": "ایپ نصب ہو گئی!",
|
||||
"pwa.installedIos": "iOS ایپ نصب ہو گئی! ہوم سکرین سے کھولیں۔",
|
||||
|
||||
@@ -33,6 +33,10 @@
|
||||
"language.suggest.text": "本页面也有简体中文版本。",
|
||||
"language.suggest.cta": "阅读简体中文",
|
||||
"language.suggest.dismiss": "关闭",
|
||||
"theme.label": "主题",
|
||||
"theme.system": "跟随系统",
|
||||
"theme.light": "浅色",
|
||||
"theme.dark": "深色",
|
||||
"community.title": "一起构筑隐私的未来",
|
||||
"community.description": "SecureBit 因社区而成长。你的想法与反馈塑造着安全通讯的未来 —— 开放开发,全程完整的 ASN.1 校验。",
|
||||
"community.github": "GitHub 仓库",
|
||||
@@ -317,6 +321,8 @@
|
||||
"pwa.iosStep3Hint": "确认以安装 SecureBit.chat",
|
||||
"pwa.genericTitle": "安装 SecureBit",
|
||||
"pwa.genericDesc": "每种浏览器的安装方式都不一样。请选择与你的浏览器相符的步骤。",
|
||||
"pwa.androidChromeHint": "点击右上角的 ⋮ ,选择“安装应用”",
|
||||
"pwa.androidOtherHint": "打开菜单,选择“添加到主屏幕”",
|
||||
"pwa.gotIt": "知道了",
|
||||
"pwa.installedTitle": "应用已安装!",
|
||||
"pwa.installedIos": "iOS 应用已安装!请从主屏幕打开。",
|
||||
|
||||
Reference in New Issue
Block a user