diff --git a/client/components/codeEditor/codeEditor.jsx b/client/components/codeEditor/codeEditor.jsx index ebd9b9210..d488102ed 100644 --- a/client/components/codeEditor/codeEditor.jsx +++ b/client/components/codeEditor/codeEditor.jsx @@ -103,6 +103,7 @@ const CodeEditor = forwardRef( onChange = ()=>{}, onCursorChange = ()=>{}, onViewChange = ()=>{}, + onThemeChange = ()=>{}, editorTheme = 'default', style, renderer, @@ -327,6 +328,9 @@ const CodeEditor = forwardRef( view.dispatch({ effects : themeCompartment.reconfigure(themeExtension), }); + + const isDark = view.state.facet(EditorView.darkTheme); + onThemeChange(isDark); }, [editorTheme, tab]); useEffect(()=>{ diff --git a/client/components/combobox.jsx b/client/components/combobox.jsx index 7c015d3d6..d769e5e58 100644 --- a/client/components/combobox.jsx +++ b/client/components/combobox.jsx @@ -7,6 +7,7 @@ const Combobox = createReactClass({ displayName : 'Combobox', getDefaultProps : function() { return { + id : '', className : '', trigger : 'hover', default : '', @@ -75,6 +76,7 @@ const Combobox = createReactClass({ onClick= {this.props.trigger == 'click' ? ()=>{this.handleDropdown(true);} : undefined} {...(this.props.tooltip ? { 'data-tooltip-right': this.props.tooltip } : {})}> this.handleInput(e)} value={this.state.value || ''} diff --git a/client/components/combobox.less b/client/components/combobox.less index a3c7527f2..920723b48 100644 --- a/client/components/combobox.less +++ b/client/components/combobox.less @@ -4,7 +4,7 @@ .item i { position : absolute; right : 10px; - color : black; + color : inherit; } .dropdown-options { position : absolute; @@ -32,14 +32,13 @@ font-size : 11px; cursor : default; &:hover { - background-color : rgb(163, 163, 163); - filter : brightness(120%); + background-color : #ddd; } .detail { width : 100%; font-size : 9px; font-style : italic; - color : rgb(124, 124, 124); + color : #7c7c7c; text-align : left; } } diff --git a/client/components/dropdown/dropdown.less b/client/components/dropdown/dropdown.less index 8148a7c85..7c4a33838 100644 --- a/client/components/dropdown/dropdown.less +++ b/client/components/dropdown/dropdown.less @@ -7,7 +7,7 @@ @property --activeTriggerColor { syntax: ''; inherits: true; - initial-value: #DDD; + initial-value: #999; } :root{ @@ -30,4 +30,8 @@ } .menu-wrapper:has(:popover-open) > button { // if menu is open... background-color: var(--activeTriggerColor, hsl(from var(--menuColor) h s calc(l * .85))); // tint menu triggers based on menu color +} + +.darkMode .menu-wrapper:has(:popover-open) > button { // if menu is open... + --activeTriggerColor : #444; // tint menu triggers based on menu color } \ No newline at end of file diff --git a/client/homebrew/editor/editor.jsx b/client/homebrew/editor/editor.jsx index 777f7bcf1..2ff35b0e6 100644 --- a/client/homebrew/editor/editor.jsx +++ b/client/homebrew/editor/editor.jsx @@ -2,6 +2,7 @@ import './editor.less'; import React, { useState, useRef, useEffect, forwardRef, useImperativeHandle } from 'react'; import dedent from 'dedent'; +import { EditorView } from '@codemirror/view'; import CodeEditor from '@components/codeEditor/codeEditor.jsx'; import SnippetBar from './snippetbar/snippetbar.jsx'; @@ -86,6 +87,7 @@ const Editor = forwardRef( )=>{ const [view, setView] = useState('text'); // 'text', 'style', 'meta', 'snippet' const [snippetBarHeight, setSnippetBarHeight] = useState(26); + const [isDark, setIsDark] = useState(false); const [editorSettings, setEditorSettings] = useState({ autoCloseBrackets : true, showImagePreviews : true, @@ -261,6 +263,7 @@ const Editor = forwardRef( onCursorChange={(page)=>updateCurrentCursorPage(page)} onViewChange={(page)=>updateCurrentViewPage(page)} editorTheme={editorSettings.editorTheme} + onThemeChange={setIsDark} renderer={brew.renderer} style={{ height: `calc(100% - ${snippetBarHeight}px)` }} settings={editorSettings} @@ -280,6 +283,7 @@ const Editor = forwardRef( value={brew.style ?? DEFAULT_STYLE_TEXT} onChange={onBrewChange('style')} editorTheme={editorSettings.editorTheme} + onThemeChange={setIsDark} renderer={brew.renderer} style={{ height: `calc(100% - ${snippetBarHeight}px)` }} settings={editorSettings} @@ -303,6 +307,7 @@ const Editor = forwardRef( onChange={onBrewChange('snippets')} enableFolding={true} editorTheme={editorSettings.editorTheme} + onThemeChange={setIsDark} renderer={brew.renderer} style={{ height: `calc(100% - 25px)` }} settings={editorSettings} @@ -313,7 +318,7 @@ const Editor = forwardRef( if(isMeta()) { return ( <> - + +
this.handlePublish(false)}> + return