From f903c8afaa29406a3441764f47271295b5b9ad3d Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Tue, 17 Jul 2018 16:58:48 -0400 Subject: [PATCH 1/4] JS themes and convert themes --- packages/insomnia-app/app/plugins/index.js | 19 +- packages/insomnia-app/app/plugins/misc.js | 256 ++++++++ packages/insomnia-app/app/templating/index.js | 5 +- .../ui/components/base/dropdown/dropdown.js | 2 +- .../app/ui/components/base/link.js | 2 +- .../app/ui/components/base/modal-body.js | 2 +- .../app/ui/components/base/modal-footer.js | 8 +- .../app/ui/components/base/modal-header.js | 6 +- .../app/ui/components/base/modal.js | 3 +- .../ui/components/modals/settings-modal.js | 3 +- .../app/ui/components/request-pane.js | 16 +- .../app/ui/components/response-pane.js | 22 +- .../app/ui/components/response-timer.js | 2 +- .../app/ui/components/settings/account.js | 2 +- .../app/ui/components/settings/plugins.js | 8 +- .../app/ui/components/settings/theme.js | 206 ++++-- .../ui/components/sidebar/sidebar-children.js | 2 +- .../ui/components/sidebar/sidebar-filter.js | 2 +- .../app/ui/components/sidebar/sidebar.js | 4 +- .../insomnia-app/app/ui/components/tooltip.js | 2 +- .../insomnia-app/app/ui/containers/app.js | 3 + .../app/ui/css/components/sidebar.less | 38 +- .../app/ui/css/components/themes.less | 94 ++- .../app/ui/css/constants/colors.less | 621 +----------------- packages/insomnia-app/app/ui/images/dark.png | Bin 9318 -> 0 bytes .../insomnia-app/app/ui/images/default.png | Bin 8266 -> 0 bytes packages/insomnia-app/app/ui/images/light.png | Bin 9626 -> 0 bytes .../insomnia-app/app/ui/images/material.png | Bin 9114 -> 0 bytes .../insomnia-app/app/ui/images/purple.png | Bin 8880 -> 0 bytes .../insomnia-app/app/ui/images/railscasts.png | Bin 9132 -> 0 bytes .../app/ui/images/solarized-dark.png | Bin 8286 -> 0 bytes .../app/ui/images/solarized-light.png | Bin 9218 -> 0 bytes .../insomnia-app/app/ui/images/solarized.png | Bin 8727 -> 0 bytes packages/insomnia-app/app/ui/index.js | 2 + packages/insomnia-app/package.json | 1 + plugins/insomnia-plugin-core-themes/README.md | 5 + .../__tests__/index.test.js | 36 + plugins/insomnia-plugin-core-themes/index.js | 13 + .../insomnia-plugin-core-themes/package.json | 19 + .../themes/default.js | 92 +++ .../themes/material.js | 89 +++ .../themes/one-dark.js | 60 ++ .../themes/one-light.js | 61 ++ .../themes/purple.js | 52 ++ .../themes/railscasts.js | 44 ++ .../themes/simple-dark.js | 35 + .../themes/simple-light.js | 7 + .../themes/solarized-dark.js | 27 + .../themes/solarized-light.js | 27 + .../themes/solarized.js | 37 ++ 50 files changed, 1203 insertions(+), 732 deletions(-) create mode 100644 packages/insomnia-app/app/plugins/misc.js delete mode 100644 packages/insomnia-app/app/ui/images/dark.png delete mode 100644 packages/insomnia-app/app/ui/images/default.png delete mode 100644 packages/insomnia-app/app/ui/images/light.png delete mode 100644 packages/insomnia-app/app/ui/images/material.png delete mode 100644 packages/insomnia-app/app/ui/images/purple.png delete mode 100644 packages/insomnia-app/app/ui/images/railscasts.png delete mode 100644 packages/insomnia-app/app/ui/images/solarized-dark.png delete mode 100644 packages/insomnia-app/app/ui/images/solarized-light.png delete mode 100644 packages/insomnia-app/app/ui/images/solarized.png create mode 100644 plugins/insomnia-plugin-core-themes/README.md create mode 100644 plugins/insomnia-plugin-core-themes/__tests__/index.test.js create mode 100644 plugins/insomnia-plugin-core-themes/index.js create mode 100644 plugins/insomnia-plugin-core-themes/package.json create mode 100644 plugins/insomnia-plugin-core-themes/themes/default.js create mode 100644 plugins/insomnia-plugin-core-themes/themes/material.js create mode 100644 plugins/insomnia-plugin-core-themes/themes/one-dark.js create mode 100644 plugins/insomnia-plugin-core-themes/themes/one-light.js create mode 100644 plugins/insomnia-plugin-core-themes/themes/purple.js create mode 100644 plugins/insomnia-plugin-core-themes/themes/railscasts.js create mode 100644 plugins/insomnia-plugin-core-themes/themes/simple-dark.js create mode 100644 plugins/insomnia-plugin-core-themes/themes/simple-light.js create mode 100644 plugins/insomnia-plugin-core-themes/themes/solarized-dark.js create mode 100644 plugins/insomnia-plugin-core-themes/themes/solarized-light.js create mode 100644 plugins/insomnia-plugin-core-themes/themes/solarized.js diff --git a/packages/insomnia-app/app/plugins/index.js b/packages/insomnia-app/app/plugins/index.js index 9d3ff6e4b77..9fd3e012460 100644 --- a/packages/insomnia-app/app/plugins/index.js +++ b/packages/insomnia-app/app/plugins/index.js @@ -7,6 +7,7 @@ import { PLUGIN_PATH } from '../common/constants'; import { resolveHomePath } from '../common/misc'; import { showError } from '../ui/components/modals/index'; import type { PluginTemplateTag } from '../templating/extensions/index'; +import type { PluginTheme } from './misc'; export type Plugin = { name: string, @@ -31,6 +32,11 @@ export type ResponseHook = { hook: Function }; +export type Theme = { + plugin: Plugin, + theme: PluginTheme +}; + const CORE_PLUGINS = [ 'insomnia-plugin-base64', 'insomnia-plugin-hash', @@ -40,7 +46,8 @@ const CORE_PLUGINS = [ 'insomnia-plugin-prompt', 'insomnia-plugin-request', 'insomnia-plugin-response', - 'insomnia-plugin-jsonpath' + 'insomnia-plugin-jsonpath', + 'insomnia-plugin-core-themes' ]; let plugins: ?Array = null; @@ -193,6 +200,16 @@ export async function getResponseHooks(): Promise> { return functions; } +export async function getThemes(): Promise> { + let extensions = []; + for (const plugin of await getPlugins()) { + const themes = plugin.module.themes || []; + extensions = [...extensions, ...themes.map(theme => ({ plugin, theme }))]; + } + + return extensions; +} + function _initPlugin(packageJSON: Object, module: any, path: ?string): Plugin { const meta = packageJSON.insomnia || {}; return { diff --git a/packages/insomnia-app/app/plugins/misc.js b/packages/insomnia-app/app/plugins/misc.js new file mode 100644 index 00000000000..0d3e89ebd74 --- /dev/null +++ b/packages/insomnia-app/app/plugins/misc.js @@ -0,0 +1,256 @@ +// @flow +import { render, THROW_ON_ERROR } from '../common/render'; +import { getThemes } from './index'; + +type ThemeBlock = { + background?: { + default: string, + success?: string, + notice?: string, + warning?: string, + danger?: string, + surprise?: string, + info?: string + }, + foreground?: { + default: string, + success?: string, + notice?: string, + warning?: string, + danger?: string, + surprise?: string, + info?: string + }, + highlight?: { + default: string, + xxs?: string, + xs?: string, + sm?: string, + md?: string, + lg?: string, + xl?: string + } +}; + +type ThemeInner = { + ...ThemeBlock, + styles: ?{ + overlay?: ThemeBlock, + dropdown?: ThemeBlock, + tooltip?: ThemeBlock, + sidebar?: ThemeBlock, + sidebarHeader?: ThemeBlock, + sidebarList?: ThemeBlock, + sidebarActions?: ThemeBlock, + pane?: ThemeBlock, + paneHeader?: ThemeBlock, + dialog?: ThemeBlock, + dialogHeader?: ThemeBlock, + dialogFooter?: ThemeBlock, + transparentOverlay?: ThemeBlock, + link?: ThemeBlock + } +}; + +export type PluginTheme = { + name: string, + displayName: string, + theme: ThemeInner +}; + +export async function generateThemeCSS(theme: PluginTheme): Promise { + const renderedTheme: ThemeInner = await render( + theme.theme, + theme.theme, + null, + THROW_ON_ERROR, + theme.name + ); + const n = theme.name; + + let css = ''; + css += wrapStyles(n, '', getThemeBlockCSS(renderedTheme)); + + if (renderedTheme.styles) { + const styles = renderedTheme.styles; + + // Dropdown Menus + css += wrapStyles( + n, + '.theme--dropdown__menu', + getThemeBlockCSS(styles.dialog) + ); + css += wrapStyles( + n, + '.theme--dropdown__menu', + getThemeBlockCSS(styles.dropdown) + ); + + // Tooltips + css += wrapStyles(n, '.theme--tooltip', getThemeBlockCSS(styles.dialog)); + css += wrapStyles(n, '.theme--tooltip', getThemeBlockCSS(styles.tooltip)); + + // Overlay + css += wrapStyles( + n, + '.theme--transparent-overlay', + getThemeBlockCSS(styles.transparentOverlay) + ); + + // Dialogs + css += wrapStyles(n, '.theme--dialog', getThemeBlockCSS(styles.dialog)); + css += wrapStyles( + n, + '.theme--dialog__header', + getThemeBlockCSS(styles.dialogHeader) + ); + css += wrapStyles( + n, + '.theme--dialog__footer', + getThemeBlockCSS(styles.dialogFooter) + ); + + // Panes + css += wrapStyles(n, '.theme--pane', getThemeBlockCSS(styles.pane)); + css += wrapStyles( + n, + '.theme--pane__header', + getThemeBlockCSS(styles.paneHeader) + ); + + // Sidebar Styles + css += wrapStyles(n, '.theme--sidebar', getThemeBlockCSS(styles.sidebar)); + css += wrapStyles( + n, + '.theme--sidebar__list', + getThemeBlockCSS(styles.sidebarList) + ); + css += wrapStyles( + n, + '.theme--sidebar__actions', + getThemeBlockCSS(styles.sidebarActions) + ); + css += wrapStyles( + n, + '.theme--sidebar__header', + getThemeBlockCSS(styles.sidebarHeader) + ); + + // Link + css += wrapStyles(n, '.theme--link', getThemeBlockCSS(styles.link)); + + // HACK: Dialog styles for CodeMirror dialogs too + css += wrapStyles(n, '.CodeMirror-info', getThemeBlockCSS(styles.dialog)); + } + + return css; +} + +function getThemeBlockCSS(block?: ThemeBlock): string { + if (!block) { + return ''; + } + + const indent = '\t'; + + let css = ''; + + const addVar = (variable?: string, value?: string) => { + if (variable && value) { + css += `${indent}--${variable}: ${value};\n`; + } + }; + + const addComment = comment => { + css += `${indent}/* ${comment} */\n`; + }; + + const addNewLine = () => { + css += `\n`; + }; + + if (block.background) { + const { background } = block; + addComment('Background'); + addVar('color-bg', background.default); + addVar('color-success', background.success); + addVar('color-notice', background.notice); + addVar('color-warning', background.warning); + addVar('color-danger', background.danger); + addVar('color-surprise', background.surprise); + addVar('color-info', background.info); + addNewLine(); + } + + if (block.foreground) { + const { foreground } = block; + addComment('Foreground'); + addVar('color-font', foreground.default); + addVar('color-font-success', foreground.success); + addVar('color-font-notice', foreground.notice); + addVar('color-font-warning', foreground.warning); + addVar('color-font-danger', foreground.danger); + addVar('color-font-surprise', foreground.surprise); + addVar('color-font-info', foreground.info); + addNewLine(); + } + + if (block.highlight) { + const { highlight } = block; + addComment('Highlight'); + addVar('hl', highlight.default); + addVar('hl-xxs', highlight.xxs); + addVar('hl-xs', highlight.xs); + addVar('hl-sm', highlight.sm); + addVar('hl-md', highlight.md); + addVar('hl-lg', highlight.lg); + addVar('hl-xl', highlight.xl); + addNewLine(); + } + + return css.replace(/\s+$/, ''); +} + +function wrapStyles(theme: string, selector: string, styles: string) { + if (!styles) { + return ''; + } + + return [ + `[theme="${theme}"] ${selector}, `, + `[subtheme="${theme}"] ${selector ? selector + '--sub' : ''} {`, + styles, + '}', + '', + '' + ].join('\n'); +} + +export async function setThemes() { + if (!document) { + return; + } + + const head = document.head; + + if (!head) { + return; + } + + const themes = await getThemes(); + + for (const theme of themes) { + const themeCSS = (await generateThemeCSS(theme.theme)) + '\n'; + + let s = document.querySelector( + `style[data-theme-name="${theme.theme.name}"]` + ); + if (!s) { + s = document.createElement('style'); + s.setAttribute('data-theme-name', theme.theme.name); + head.appendChild(s); + } + + s.innerHTML = themeCSS; + } +} diff --git a/packages/insomnia-app/app/templating/index.js b/packages/insomnia-app/app/templating/index.js index 8b8bf01156f..ade6c6fb93a 100644 --- a/packages/insomnia-app/app/templating/index.js +++ b/packages/insomnia-app/app/templating/index.js @@ -30,7 +30,10 @@ let nunjucksAll = null; * @param {Object} [config.path] - Path to include in the error message * @param {Object} [config.renderMode] - Only render variables (not tags) */ -export function render(text: string, config: Object = {}): Promise { +export function render( + text: string, + config: { context?: Object, path?: string, renderMode?: string } = {} +): Promise { const context = config.context || {}; const path = config.path || null; const renderMode = config.renderMode || RENDER_ALL; diff --git a/packages/insomnia-app/app/ui/components/base/dropdown/dropdown.js b/packages/insomnia-app/app/ui/components/base/dropdown/dropdown.js index e3491434711..84e7d58883c 100644 --- a/packages/insomnia-app/app/ui/components/base/dropdown/dropdown.js +++ b/packages/insomnia-app/app/ui/components/base/dropdown/dropdown.js @@ -382,7 +382,7 @@ class Dropdown extends PureComponent { finalChildren = [ dropdownButtons[0],
-
+
{ {children} diff --git a/packages/insomnia-app/app/ui/components/base/modal-body.js b/packages/insomnia-app/app/ui/components/base/modal-body.js index 55b94284b20..859cbbaa1d7 100644 --- a/packages/insomnia-app/app/ui/components/base/modal-body.js +++ b/packages/insomnia-app/app/ui/components/base/modal-body.js @@ -5,7 +5,7 @@ import classnames from 'classnames'; class ModalBody extends PureComponent { render() { const { className, children, noScroll, ...props } = this.props; - const classes = classnames(className, 'modal__body', { + const classes = classnames(className, 'modal__body theme--dialog__body', { 'modal__body--no-scroll': noScroll }); diff --git a/packages/insomnia-app/app/ui/components/base/modal-footer.js b/packages/insomnia-app/app/ui/components/base/modal-footer.js index 7728dc895f9..ccc6c44e194 100644 --- a/packages/insomnia-app/app/ui/components/base/modal-footer.js +++ b/packages/insomnia-app/app/ui/components/base/modal-footer.js @@ -6,7 +6,13 @@ class ModalFooter extends PureComponent { render() { const { children, className } = this.props; return ( -
{children}
+
+ {children} +
); } } diff --git a/packages/insomnia-app/app/ui/components/base/modal-header.js b/packages/insomnia-app/app/ui/components/base/modal-header.js index 4b99ba5d796..1ef310ca42f 100644 --- a/packages/insomnia-app/app/ui/components/base/modal-header.js +++ b/packages/insomnia-app/app/ui/components/base/modal-header.js @@ -19,7 +19,11 @@ class ModalHeader extends PureComponent { } return ( -
+
{children}
{closeButton}
diff --git a/packages/insomnia-app/app/ui/components/base/modal.js b/packages/insomnia-app/app/ui/components/base/modal.js index 42c203418bc..f3cbb25d9b2 100644 --- a/packages/insomnia-app/app/ui/components/base/modal.js +++ b/packages/insomnia-app/app/ui/components/base/modal.js @@ -121,6 +121,7 @@ class Modal extends PureComponent { const classes = classnames( 'modal', + 'theme--dialog', className, { 'modal--fixed-height': tall }, { 'modal--noescape': noEscape }, @@ -141,7 +142,7 @@ class Modal extends PureComponent { style={styles} onClick={this._handleClick}>
diff --git a/packages/insomnia-app/app/ui/components/modals/settings-modal.js b/packages/insomnia-app/app/ui/components/modals/settings-modal.js index dbe27fb66bd..7fb165e3131 100644 --- a/packages/insomnia-app/app/ui/components/modals/settings-modal.js +++ b/packages/insomnia-app/app/ui/components/modals/settings-modal.js @@ -18,6 +18,7 @@ import { Curl } from 'insomnia-libcurl'; import { getAppName, getAppVersion } from '../../../common/constants'; import * as session from '../../../sync/session'; import Tooltip from '../tooltip'; +import { generateThemeCSS } from '../../../plugins/misc'; export const TAB_INDEX_EXPORT = 1; export const TAB_INDEX_SHORTCUTS = 3; @@ -57,7 +58,7 @@ class SettingsModal extends PureComponent { this.modal.hide(); } - _handleChangeTheme(theme, persist = true) { + async _handleChangeTheme(theme, persist = true) { document.body.setAttribute('theme', theme); if (persist) { diff --git a/packages/insomnia-app/app/ui/components/request-pane.js b/packages/insomnia-app/app/ui/components/request-pane.js index 4dae5de2a67..775acfd6c45 100644 --- a/packages/insomnia-app/app/ui/components/request-pane.js +++ b/packages/insomnia-app/app/ui/components/request-pane.js @@ -174,11 +174,15 @@ class RequestPane extends React.PureComponent { updateSettingsShowPasswords } = this.props; + const paneClasses = 'request-pane theme--pane pane'; + const paneHeaderClasses = 'pane__header theme--pane__header'; + const paneBodyClasses = 'pane__body theme--pane__body'; + if (!request) { return ( -
-
-
+
+
+
@@ -239,8 +243,8 @@ class RequestPane extends React.PureComponent { const uniqueKey = `${forceRefreshCounter}::${request._id}`; return ( -
-
+
+
{ />
- + { showCookiesModal } = this.props; + const paneClasses = 'response-pane theme--pane pane'; + const paneHeaderClasses = 'pane__header theme--pane__header'; + const paneBodyClasses = 'pane__body theme--pane__body'; + if (!request) { return ( -
-
-
+
+
+
); } if (!response) { return ( -
-
-
+
+
+
@@ -223,9 +227,9 @@ class ResponsePane extends React.PureComponent { const cookieHeaders = getSetCookieHeaders(response.headers); return ( -
+
{!response ? null : ( -
+
{ />
)} - + {elapsedTime >= REQUEST_TIME_TO_SHOW_COUNTER ? ( diff --git a/packages/insomnia-app/app/ui/components/settings/account.js b/packages/insomnia-app/app/ui/components/settings/account.js index 0c52cc70c95..19c02d7a5c5 100644 --- a/packages/insomnia-app/app/ui/components/settings/account.js +++ b/packages/insomnia-app/app/ui/components/settings/account.js @@ -48,7 +48,7 @@ class Account extends PureComponent {

Or{' '} - + Login

diff --git a/packages/insomnia-app/app/ui/components/settings/plugins.js b/packages/insomnia-app/app/ui/components/settings/plugins.js index f258a236dd9..f8b94673e8c 100644 --- a/packages/insomnia-app/app/ui/components/settings/plugins.js +++ b/packages/insomnia-app/app/ui/components/settings/plugins.js @@ -62,7 +62,7 @@ class Plugins extends React.PureComponent { this.setState(newState); } - _handleOpenDirectory(directory: string): void { + static _handleOpenDirectory(directory: string): void { electron.remote.shell.showItemInFolder(directory); } @@ -88,7 +88,7 @@ class Plugins extends React.PureComponent { await this._handleRefreshPlugins(); } - _handleClickShowPluginsFolder() { + static _handleClickShowPluginsFolder() { electron.remote.shell.showItemInFolder(PLUGIN_PATH); } @@ -152,7 +152,7 @@ class Plugins extends React.PureComponent { {' '} @@ -204,7 +204,7 @@ class Plugins extends React.PureComponent { ); } - renderThemeRows(themes) { + renderThemeRows() { + const { themes } = this.state; + const rows = []; let row = []; - for (const theme of themes) { row.push(theme); if (row.length === THEMES_PER_ROW) { @@ -77,13 +196,8 @@ class Theme extends PureComponent { } render() { - return
{this.renderThemeRows(THEMES)}
; + return
{this.renderThemeRows()}
; } } -Theme.propTypes = { - handleChangeTheme: PropTypes.func.isRequired, - activeTheme: PropTypes.string.isRequired -}; - export default Theme; diff --git a/packages/insomnia-app/app/ui/components/sidebar/sidebar-children.js b/packages/insomnia-app/app/ui/components/sidebar/sidebar-children.js index fff4cb85b21..2520ca3040d 100644 --- a/packages/insomnia-app/app/ui/components/sidebar/sidebar-children.js +++ b/packages/insomnia-app/app/ui/components/sidebar/sidebar-children.js @@ -123,7 +123,7 @@ class SidebarChildren extends React.PureComponent { const { childObjects } = this.props; return ( -
    +
      {this._renderChildren(childObjects)}
    ); diff --git a/packages/insomnia-app/app/ui/components/sidebar/sidebar-filter.js b/packages/insomnia-app/app/ui/components/sidebar/sidebar-filter.js index 2f676f870c5..612fa881316 100644 --- a/packages/insomnia-app/app/ui/components/sidebar/sidebar-filter.js +++ b/packages/insomnia-app/app/ui/components/sidebar/sidebar-filter.js @@ -62,7 +62,7 @@ class SidebarFilter extends React.PureComponent { const { filter } = this.props; return ( -
    +
    { const { visible } = this.state; const tooltipClasses = classnames(className, 'tooltip'); - const bubbleClasses = classnames('tooltip__bubble', { + const bubbleClasses = classnames('tooltip__bubble theme--tooltip', { 'tooltip__bubble--visible': visible }); diff --git a/packages/insomnia-app/app/ui/containers/app.js b/packages/insomnia-app/app/ui/containers/app.js index baeb5e06c99..d89a6a2ff93 100644 --- a/packages/insomnia-app/app/ui/containers/app.js +++ b/packages/insomnia-app/app/ui/containers/app.js @@ -68,6 +68,8 @@ import * as templating from '../../templating/index'; import AskModal from '../components/modals/ask-modal'; import { updateMimeType } from '../../models/request'; import MoveRequestGroupModal from '../components/modals/move-request-group-modal'; +import { generateThemeCSS } from '../../plugins/misc'; +import * as themes from '../../plugins/misc'; @autobind class App extends PureComponent { @@ -840,6 +842,7 @@ class App extends PureComponent { ipcRenderer.on('reload-plugins', async () => { await plugins.getPlugins(true); templating.reload(); + themes.setThemes(); console.log('[plugins] reloaded'); }); diff --git a/packages/insomnia-app/app/ui/css/components/sidebar.less b/packages/insomnia-app/app/ui/css/components/sidebar.less index 380477afa18..a6ec199cd08 100644 --- a/packages/insomnia-app/app/ui/css/components/sidebar.less +++ b/packages/insomnia-app/app/ui/css/components/sidebar.less @@ -44,7 +44,8 @@ h1 { margin: 0; } - h1, h1 * { + h1, + h1 * { font-size: @font-size-xl; } } @@ -167,7 +168,6 @@ .sidebar__list-root { // Add some space above so it's not so squished - border-top: 1px solid @hl-sm; padding-top: @padding-xxs; padding-bottom: @padding-md; box-shadow: inset 0 2rem 2rem -2rem rgba(0, 0, 0, 0.03); @@ -208,8 +208,8 @@ right: 0; left: 0; border-bottom: 2px dotted var(--color-surprise); - content: " "; - display: block + content: ' '; + display: block; } } @@ -299,19 +299,41 @@ padding-left: @padding-sm + @padding-md * 2; } - .sidebar__list .sidebar__list .sidebar__list .sidebar__list .sidebar__clickable { + .sidebar__list + .sidebar__list + .sidebar__list + .sidebar__list + .sidebar__clickable { padding-left: @padding-sm + @padding-md * 3; } - .sidebar__list .sidebar__list .sidebar__list .sidebar__list .sidebar__list .sidebar__clickable { + .sidebar__list + .sidebar__list + .sidebar__list + .sidebar__list + .sidebar__list + .sidebar__clickable { padding-left: @padding-sm + @padding-md * 4; } - .sidebar__list .sidebar__list .sidebar__list .sidebar__list .sidebar__list .sidebar__list .sidebar__clickable { + .sidebar__list + .sidebar__list + .sidebar__list + .sidebar__list + .sidebar__list + .sidebar__list + .sidebar__clickable { padding-left: @padding-sm + @padding-md * 5; } - .sidebar__list .sidebar__list .sidebar__list .sidebar__list .sidebar__list .sidebar__list .sidebar__list .sidebar__clickable { + .sidebar__list + .sidebar__list + .sidebar__list + .sidebar__list + .sidebar__list + .sidebar__list + .sidebar__list + .sidebar__clickable { padding-left: @padding-sm + @padding-md * 6; } diff --git a/packages/insomnia-app/app/ui/css/components/themes.less b/packages/insomnia-app/app/ui/css/components/themes.less index db709a9d869..7a18700b123 100644 --- a/packages/insomnia-app/app/ui/css/components/themes.less +++ b/packages/insomnia-app/app/ui/css/components/themes.less @@ -2,10 +2,12 @@ @import '../constants/colors'; .themes { + padding-top: @padding-lg; + .themes__row { display: flex; flex-direction: row; - margin-bottom: @padding-lg; + margin-bottom: @padding-md; } .themes__theme { @@ -13,21 +15,70 @@ h2 { margin-top: 0; + margin-bottom: @padding-xs; + font-size: @font-size-md !important; + } + + svg { + .bg-fill { + fill: var(--color-bg); + } + + .success-fill { + fill: var(--color-success); + } + + .notice-fill { + fill: var(--color-notice); + } + + .warning-fill { + fill: var(--color-warning); + } + + .danger-fill { + fill: var(--color-danger); + } + + .surprise-fill { + fill: var(--color-surprise); + } + + .info-fill { + fill: var(--color-info); + } + + .fg-fill { + fill: var(--color-fg); + } + + .hl-stroke { + stroke: var(--hl-md); + } } } button { position: relative; margin: 0 @padding-md; + opacity: 0.9; + font-size: 0; + border-radius: @radius-md; + overflow: hidden; + border: 1px solid rgba(0, 0, 0, 0.1); - img { - border: 1px solid @hl-md; - box-shadow: 0 0 1rem rgba(0, 0, 0, 0.1); - border-radius: @radius-md; + &.active { + border: @padding-xs solid var(--color-surprise); } - &.themes__theme--locked { + &:hover { opacity: 1; + transform: scale(1.05); + } + + &:active { + transform: scale(1.1); + transition: all 50ms ease-out; } &::after { @@ -47,28 +98,13 @@ visibility: hidden; } - &.themes__theme--locked::after { - content: '\01f512'; - font-size: 2rem; - opacity: 0.5; - visibility: visible; - } - - &:not(.themes__theme--locked):hover::after { - content: 'Activate'; - visibility: visible; - transform: rotate(-15deg); - mix-blend-mode: exclusion; - opacity: 1; - } - - &.themes__theme--locked:hover::after { - content: 'Upgrade to Plus'; - visibility: visible; - font-size: @font-size-md; - transform: rotate(-15deg); - mix-blend-mode: exclusion; - opacity: 1; - } + //&.themes__theme--locked:hover::after { + // content: 'Upgrade to Plus'; + // visibility: visible; + // font-size: @font-size-md; + // transform: rotate(-15deg); + // mix-blend-mode: exclusion; + // opacity: 1; + //} } } diff --git a/packages/insomnia-app/app/ui/css/constants/colors.less b/packages/insomnia-app/app/ui/css/constants/colors.less index d8f5debff12..34de66a1a99 100644 --- a/packages/insomnia-app/app/ui/css/constants/colors.less +++ b/packages/insomnia-app/app/ui/css/constants/colors.less @@ -1,14 +1,15 @@ -body { - // Default Pretty Background Colors +*[theme], +*[subtheme] { + --color-bg: #fff; + --color-font: #555; + --color-success: #59a210; --color-notice: #ae9602; --color-warning: #d07502; --color-danger: #d04444; --color-surprise: #7d69cb; --color-info: #1c90b4; - --color-boring: #333; - // Default Pretty Foreground Colors --color-font-success: #fff; --color-font-notice: #fff; --color-font-warning: #fff; @@ -16,25 +17,6 @@ body { --color-font-surprise: #fff; --color-font-info: #fff; - --hl-xxs: rgba(140, 140, 140, 0.05); - --hl-xs: rgba(140, 140, 140, 0.1); - --hl-sm: rgba(140, 140, 140, 0.2); - --hl-md: rgba(140, 140, 140, 0.3); - --hl-lg: rgba(140, 140, 140, 0.5); - --hl-xl: rgba(140, 140, 140, 0.8); - --hl: rgba(140, 140, 140, 1); - - // Default Colors - --color-bg: #fff; - --color-font: #555; - - .theme--overlay { - --color-bg: rgba(30, 30, 30, 0.8); - --color-font: #ddd; - } -} - -*[theme='default'] { --hl-xxs: rgba(130, 130, 130, 0.05); --hl-xs: rgba(130, 130, 130, 0.1); --hl-sm: rgba(130, 130, 130, 0.2); @@ -43,598 +25,9 @@ body { --hl-xl: rgba(130, 130, 130, 0.8); --hl: rgba(130, 130, 130, 1); - --color-success: #59a210; - --color-notice: #ae9602; - --color-warning: #d07502; - --color-danger: #d04444; - --color-surprise: #7461bd; - --color-info: #1c90b4; - - .sidebar, - .pane__body { - --color-success: #8ccf3b; - --color-notice: #ead950; - --color-warning: #ff9a1f; - --color-danger: #ff5d4b; - --color-surprise: #a896ff; - --color-info: #46c1e6; - } - - // Make the tags a little lighter - .pane__header .tag { - --color-font: #666; - --color-success: #75ba24; - --color-notice: #d8c84d; - --color-warning: #ec8702; - --color-danger: #ee5655; - --color-surprise: #a590ff; - --color-info: #22c1ee; - } - - .sidebar__header { - --color-bg: #695eb8; - --color-font: #fff; - } - - .pane__header, - .theme--dropdown__menu, - .CodeMirror-info, - .modal { - --color-bg: #fff; - --color-font: #555; - } - - .modal__header { - --color-bg: #eff0ed; - --color-font: #444; - } - - .sidebar { - --color-bg: #2e2f2b; - --color-font: #e0e0e0; - --hl: #999; - } - - .request-pane, - .response-pane { - --color-bg: #282925; - --color-font: #ddd; - } -} - -*[theme='one-dark'] { - --hl-xxs: rgba(114, 121, 133, 0.05); - --hl-xs: rgba(114, 121, 133, 0.1); - --hl-sm: rgba(114, 121, 133, 0.2); - --hl-md: rgba(114, 121, 133, 0.3); - --hl-lg: rgba(114, 121, 133, 0.5); - --hl-xl: rgba(114, 121, 133, 0.8); - --hl: rgba(114, 121, 133, 1); - - --color-success: #98c379; - --color-notice: #d19a66; - --color-warning: #d19a66; - --color-danger: #e06c75; - --color-surprise: #c678dd; - --color-info: #56b6c2; - - .sidebar, - .pane__body { - --color-success: #98c379; - --color-notice: #d19a66; - --color-warning: #d19a66; - --color-danger: #e06c75; - --color-surprise: #c678dd; - --color-info: #56b6c2; - } - - // Make the tags a little lighter - .pane__header .tag { - --color-font: #bbbbbb; - --color-success: #98c379; - --color-notice: #d19a66; - --color-warning: #d19a66; - --color-danger: #e06c75; - --color-surprise: #c678dd; - --color-info: #56b6c2; - } - - .sidebar__header { - --color-bg: #20252c; - --color-font: #bbbbbb; - } - - .pane__header, - .theme--dropdown__menu, - .CodeMirror-info { - --color-bg: #272c35; - --color-font: #bbbbbb; - } - - .modal { - --color-bg: #272c35; - --color-font: #bbbbbb; - } - - .modal__header { - --color-bg: #272c35; - --color-font: #bbbbbb; - } - - .sidebar { - --color-bg: #20252c; - --color-font: #bbbbbb; - --hl: #bbbbbb; - } - - .request-pane, - .response-pane { - --color-bg: #272c35; - --color-font: #bbbbbb; - } -} - -*[theme='one-light'] { - --hl-xxs: rgba(130, 130, 130, 0.05); - --hl-xs: rgba(130, 130, 130, 0.1); - --hl-sm: rgba(130, 130, 130, 0.2); - --hl-md: rgba(130, 130, 130, 0.3); - --hl-lg: rgba(130, 130, 130, 0.5); - --hl-xl: rgba(130, 130, 130, 0.8); - --hl: rgba(130, 130, 130, 1); - - --color-success: #50a14f; - --color-notice: #c18401; - --color-warning: #c18401; - --color-danger: #e45649; - --color-surprise: #a626a4; - --color-info: #0184bc; - - .sidebar, - .pane__body { - --color-success: #50a14f; - --color-notice: #c18401; - --color-warning: #c18401; - --color-danger: #e45649; - --color-surprise: #a626a4; - --color-info: #0184bc; - } - - // Make the tags a little lighter - .pane__header .tag { - --color-font: #777777; - --color-success: #50a14f; - --color-notice: #c18401; - --color-warning: #c18401; - --color-danger: #e45649; - --color-surprise: #a626a4; - --color-info: #0184bc; - } - - .sidebar__header { - --color-bg: #eaeaeb; - --color-font: #777777; - } - - .pane__header, - .theme--dropdown__menu, - .CodeMirror-info { - --color-bg: #fafafa; - --color-font: #777777; - } - - .modal { - --color-bg: #fafafa; - --color-font: #777777; - } - - .modal__header { - --color-bg: #fafafa; - --color-font: #777777; - } - - .sidebar { - --color-bg: #eaeaeb; - --color-font: #777777; - --hl: #777777; - } - - .request-pane, - .response-pane { - --color-bg: #fafafa; - --color-font: #777777; - } -} - -*[theme='purple'] { - --color-bg: #fff; - --color-font: #555; - - --color-success: #50a500; - --color-notice: #b59e00; - --color-warning: #da7c02; - --color-danger: #d04845; - --color-surprise: #8570d2; - --color-info: #0092bf; - - // Light Parts - .request-pane, - .response-pane, - .theme--dropdown__menu, - .CodeMirror-info, - .modal { - --hl-xxs: rgba(130, 130, 130, 0.05); - --hl-xs: rgba(130, 130, 130, 0.1); - --hl-sm: rgba(130, 130, 130, 0.2); - --hl-md: rgba(130, 130, 130, 0.3); - --hl-lg: rgba(130, 130, 130, 0.5); - --hl-xl: rgba(130, 130, 130, 0.8); - --hl: rgba(130, 130, 130, 1); - } - - .request-pane .pane__body, - .request-pane .pane__header { - border-left: 0; - } - - .sidebar { - --color-success: #a9ea6e; - --color-notice: #ffdb02; - --color-warning: #ffac49; - --color-danger: #ff7472; - --color-surprise: #c5bbff; - --color-info: #75ddff; - - --color-bg: #695eb8; - --color-font: #fff; - - --hl-xxs: rgba(207, 190, 255, 0.05); - --hl-xs: rgba(207, 190, 255, 0.1); - --hl-sm: rgba(207, 190, 255, 0.2); - --hl-md: rgba(207, 190, 255, 0.3); - --hl-lg: rgba(207, 190, 255, 0.5); - --hl-xl: rgba(207, 190, 255, 0.8); - --hl: rgb(217, 204, 255); - } - - .tag { - --hl: rgb(102, 99, 112); - --hl-sm: rgba(240, 235, 255, 0.3); - } - - .sidebar__header { - --color-font: #eee; - } - - .pane { - --color-bg: #fafaff; - } - - .CodeMirror-info, - .theme--dropdown__menu { - --color-bg: #fff; - --color-font: #666; - } - - .theme--overlay { - --color-bg: rgba(243, 242, 250, 0.8); - --color-font: #555; - } -} - -*[theme='dark'] { - --color-success: #83c438; - --color-notice: #d8c84d; - --color-warning: #f48d02; - --color-danger: #ff5b5a; - --color-surprise: #9886ff; - --color-info: #22c1ee; - - --color-bg: #232421; - --color-font: #ddd; - - --hl-xxs: rgba(130, 130, 130, 0.05); - --hl-xs: rgba(130, 130, 130, 0.1); - --hl-sm: rgba(130, 130, 130, 0.2); - --hl-md: rgba(130, 130, 130, 0.3); - --hl-lg: rgba(130, 130, 130, 0.5); - --hl-xl: rgba(130, 130, 130, 0.8); - --hl: rgba(140, 140, 140, 1); - - .tag { - --color-success: #6ea932; - --color-notice: #d0c14a; - --color-warning: #d77802; - --color-danger: #dc5251; - --color-surprise: #8f7cdf; - --color-info: #329fbf; - } - - .theme--overlay { - --color-bg: rgba(20, 20, 20, 0.8); - --color-font: #ddd; - } - - .theme--dropdown__menu, - .CodeMirror-info, - .modal { - --color-bg: #282925; - } - - .sidebar__header { - --color-font: #ccc; - } - - .CodeMirror-info, - .theme--dropdown__menu { - --color-font: #aaa; - } -} - -*[theme='light'] { - --color-success: #59a210; - --color-notice: #ae9602; - --color-warning: #d07502; - --color-danger: #d04444; - --color-surprise: #7d69cb; - --color-info: #1c90b4; - - &, - .dropdown { - --color-bg: #fff; - --color-font: #333; - } - - --hl-xxs: rgba(130, 130, 130, 0.05); - --hl-xs: rgba(130, 130, 130, 0.1); - --hl-sm: rgba(130, 130, 130, 0.2); - --hl-md: rgba(130, 130, 130, 0.3); - --hl-lg: rgba(130, 130, 130, 0.5); - --hl-xl: rgba(130, 130, 130, 0.8); - --hl: rgba(130, 130, 130, 1); - - .theme--overlay { - --color-bg: rgba(255, 255, 255, 0.8); - --color-font: #333; - } -} - -*[theme='solarized-light'] { - --color-success: #859900; - --color-notice: #b58900; - --color-warning: #cb4b16; - --color-danger: #dc322f; - --color-surprise: #6c71c4; - --color-info: #2aa198; - - --color-bg: #fdf6e3; - --color-font: #657b83; - - --hl-xxs: rgba(159, 167, 164, 0.05); - --hl-xs: rgba(159, 167, 164, 0.1); - --hl-sm: rgba(159, 167, 164, 0.2); - --hl-md: rgba(142, 149, 146, 0.3); - --hl-lg: rgba(142, 149, 146, 0.6); - --hl-xl: rgba(142, 149, 146, 0.8); - --hl: rgb(142, 149, 146); - - .theme--overlay { - --color-bg: rgba(238, 231, 213, 0.8); - --color-font: #657b83; - } - - .CodeMirror-info, - .theme--dropdown__menu, - .modal { - --color-bg: #fff8e5; - } -} - -*[theme='solarized-dark'] { - --color-success: #859900; - --color-notice: #b58900; - --color-warning: #cb4b16; - --color-danger: #dc322f; - --color-surprise: #6c71c4; - --color-info: #2aa198; - - --color-bg: #002b36; - --color-font: #8ea0a2; - - --hl-xxs: rgba(91, 118, 133, 0.05); - --hl-xs: rgba(91, 118, 133, 0.1); - --hl-sm: rgba(91, 118, 133, 0.2); - --hl-md: rgba(91, 118, 133, 0.3); - --hl-lg: rgba(91, 118, 133, 0.6); - --hl-xl: rgba(91, 118, 133, 0.8); - --hl: rgb(91, 118, 133); - - .theme--overlay { - --color-bg: rgba(0, 31, 41, 0.8); - --color-font: #8ea0a2; - } - - .CodeMirror-info, - .theme--dropdown__menu, - .modal { - --color-bg: #073642; - } -} - -*[theme='material'] { - --color-bg: #263238; - --color-font: #dde1e1; - - --color-success: #80cbc4; - --color-notice: #ffcb6b; - --color-warning: #f77669; - --color-danger: #ff5370; - --color-surprise: #c792ea; - --color-info: #82b1ff; - - --hl-xxs: rgba(114, 145, 143, 0.05); - --hl-xs: rgba(114, 145, 143, 0.1); - --hl-sm: rgba(114, 145, 143, 0.2); - --hl-md: rgba(114, 145, 143, 0.3); - --hl-lg: rgba(114, 145, 143, 0.6); - --hl-xl: rgba(114, 145, 143, 0.8); - --hl: rgb(114, 145, 143); - - .tag { - --color-success: #68a9a2; - --color-notice: #e6b564; - --color-warning: #e27164; - --color-danger: #d64b66; - --color-surprise: #b482d6; - --color-info: #6c93d8; - } - - a { - --color-surprise: #68a9a2; - } - - .modal > *, - .CodeMirror-info, - .theme--dropdown__menu { - --color-bg: #303c43; - --color-font: #dde1e1; - } - - .ReactTabs > *, - .pane > *, - .modal, - .sidebar { - --hl-xxs: rgba(114, 145, 143, 0); - --hl-xs: rgba(114, 145, 143, 0); - --hl-sm: rgba(114, 145, 143, 0); - --hl-md: rgba(114, 145, 143, 0); - --hl-lg: rgba(114, 145, 143, 0.1); - --hl-xl: rgba(114, 145, 143, 0.1); - --hl: rgb(125, 153, 151); - } - - .sidebar { - --color-bg: #1f2b31; - } - - input, - textarea, - table, - .sidebar__item, - .btn, - .tag, - .theme--dropdown__menu, - .CodeMirror-info, - .CodeMirror, - .pane__body, - .modal__header, - .sidebar__header, - .form-control { - --hl-xxs: rgba(114, 145, 143, 0.05); - --hl-xs: rgba(114, 145, 143, 0.08); - --hl-sm: rgba(114, 145, 143, 0.1); - --hl-md: rgba(114, 145, 143, 0.2); - --hl-lg: rgba(114, 145, 143, 0.4); - --hl-xl: rgba(114, 145, 143, 0.5); - } - - .pane__body, - .pane__header, - ::-webkit-scrollbar-track, - ::-webkit-scrollbar-thumb { - --hl-xxs: rgba(114, 145, 143, 0.05); - --hl-xs: rgba(114, 145, 143, 0.08); - --hl-sm: rgba(114, 145, 143, 0.1); - --hl-md: rgba(114, 145, 143, 0.15); - --hl-lg: rgba(114, 145, 143, 0.2); - --hl-xl: rgba(114, 145, 143, 0.2); - } - - .theme--overlay { - --color-bg: rgba(29, 39, 44, 0.8); - } -} - -*[theme='solarized'] { - --color-success: #859900; - --color-notice: #b58900; - --color-warning: #cb4b16; - --color-danger: #dc322f; - --color-surprise: #6c71c4; - --color-info: #2aa198; - - --color-bg: #fdf6e3; - --color-font: #657b83; - - --hl-xxs: rgba(159, 167, 164, 0.05); - --hl-xs: rgba(159, 167, 164, 0.1); - --hl-sm: rgba(159, 167, 164, 0.2); - --hl-md: rgba(142, 149, 146, 0.3); - --hl-lg: rgba(142, 149, 146, 0.6); - --hl-xl: rgba(142, 149, 146, 0.8); - --hl: rgb(142, 149, 146); - - .theme--overlay { - --color-bg: rgba(238, 231, 213, 0.8); - } - - .theme--dropdown__menu, - .CodeMirror-info, - .modal { - --color-bg: #fff8e5; - --color-font: #657b83; - } - - .pane__header { - --color-bg: #faf4e0; - } - - .sidebar__header { - --color-bg: #073440; - } - - .sidebar { - --color-bg: #073642; - --color-font: #8ea0a2; - - --hl-xxs: rgba(91, 127, 143, 0.05); - --hl-xs: rgba(91, 127, 143, 0.1); - --hl-sm: rgba(91, 127, 143, 0.2); - --hl-md: rgba(91, 127, 143, 0.3); - --hl-lg: rgba(91, 127, 143, 0.6); - --hl-xl: rgba(91, 127, 143, 0.8); - --hl: rgb(98, 127, 143); - } -} - -*[theme='railscasts'] { - --color-success: #a5c261; - --color-notice: #ffc66d; - --color-warning: #cc7833; - --color-danger: #da4939; - --color-surprise: #b6b3eb; - --color-info: #6d9cbe; - - --color-bg: #2b2b2b; - --color-font: #e1deda; - - --hl-xxs: rgba(120, 120, 120, 0.05); - --hl-xs: rgba(120, 120, 120, 0.09); - --hl-sm: rgba(120, 120, 120, 0.15); - --hl-md: rgba(120, 120, 120, 0.25); - --hl-lg: rgba(120, 120, 120, 0.4); - --hl-xl: rgba(120, 120, 120, 0.7); - --hl: rgba(130, 130, 130, 1); - - .theme--overlay { + .theme--transparent-overlay { --color-bg: rgba(30, 30, 30, 0.8); - --color-font: #e1deda; - } - - .theme--dropdown__menu, - .CodeMirror-info, - .modal { - --color-bg: #323232; + --color-font: #ddd; } } diff --git a/packages/insomnia-app/app/ui/images/dark.png b/packages/insomnia-app/app/ui/images/dark.png deleted file mode 100644 index 31765ba46255ad1851ced8badc913dd4fc883427..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9318 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 diff --git a/packages/insomnia-app/app/ui/images/light.png b/packages/insomnia-app/app/ui/images/light.png deleted file mode 100644 index dd10b48a49452e26be6b7c4946c85e966e8c9800..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9626 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ʕS?(^{E4JLOAtC^V=4bMDAEivP(*a5yiRkI5(8=V9%T z`u;#Zd9p0GDMLFy-Jqf~ay?ceqbWeU5~y2bVOzexb|`sy;$(0Z>r&DazjxOhK=t(X zL~NP_%ogCqB@q^qpWV9=`4rL)J>9rISm>%x-d6Ts`dTp`zZVvgm*`4?p{^2$dGD++ zeW=<4!vB6DtVy`vyoMC&YeE1M{fzp*qWll`CmZmm2TatMvyFcf7;!0?YKy(>?HwXi zz3t`f+0`K^Q_4zs$Q6udE`U*EB_fhreD>hgzFbqy)tmeWSgrBiyMlc{6$!Y3a!vjh z!GXCKt2eod`z%G7_I|L>b-9y}3R^s9TC}ovk;O6FnNXN=i`?;gdO!?r52mJSifxE3 z;kpDFd_kqe7;lIj^(g@A?!wh({S$1eS7w(D1DfsAn*!}kSQjM=|A?-l!9>Wq)gJ<= z9AJW!#0=3?6QkH=w@iwHnBs|$|Aoo_;n$UM+icy%*OzwRxz3mg>-m|q>EEtG%YSwO zl98W${#X>ypGrvuPbX>4%p_?>FK5#@*5_H(q<8GmIx=J2AODi`^Y0~`dA!Tszn~D{ zW;?V2jbt5^c|!!kLe#QDULH9l+6C-Ap|oq4lK1)hAqXqpuph*W(Nu>ILd$tO?aX_u|@E)@r1@j9na5qWoBo4(E$ z4NNSpghYq@Ut#(}Js{mDgNTlQZjruequH7vG*ob6%MqC6X)=xRD2e__uBRwq$N*A= z)@OzE->LL}33!Qrty#R^u*i@6WMkC_U3@z6&YYPlO|{jaUEp!aw{@B{{6Ty1c*`F- zY3ix|CS-B(Qo8TkQsm;|6IXt5^TPKU!?J-0)|Z@xe+^L?`>DMj!^1rKl3?%=rUzd;%9Q?{#_?I#zrWKPX-OPsshFE(j@LmyjN5%eHv& z(J;P3$Tst`VrPGA=<4|@m#Y^#!>O{mF68H_UQrxY^{_?D`LJcorg18FTE8DEQ<4@U z?h9$|YMwGABUIm=jv!N_jRyV36is?h+?8TDfBCi#a&~BOvOrBhaw=CC9rtLQ16Ys`w4~( zKC4XA*VyOqjofo8#T~l&Pe-dz5m=5cLrXDRfM)q3kXdax1z4FGY5u-0)t^2xc#7^v z*{HjHcEKL~j03y2Y#CMT%7KdTWp3%z2fjHwo4d)aE7!e8*}~YK;s!&l9L?YIuFZ{O zwYU^dn7z7m!t1Hv{`rmC739QSWpLXF+g_4SKay0}~a->x)k}rM* zxps)F7YrJvY0%TQz|&H|&L>AW;@D@meco|?>y4|Y&6qHzK^k9QW5~_iWDUck#y)Fs zXbEiVIM{RIY1DWn6dEA)D0buee81bWzX1X7y&Ok(wnP+pn7LAp!f!qH#FA)>*mVf(HNGb{%^7XPGzx*HOC{*VF diff --git a/packages/insomnia-app/app/ui/images/material.png b/packages/insomnia-app/app/ui/images/material.png deleted file mode 100644 index d60733de93f3844c9ed64b640bc6037381c39d17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9114 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 b4MV0v;2Sv+s-k}>6BJEVJr$6WUCjRgB?Xkn diff --git a/packages/insomnia-app/app/ui/images/railscasts.png b/packages/insomnia-app/app/ui/images/railscasts.png deleted file mode 100644 index cc71934ea25599622219b7d21fc0201ab527d1b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9132 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 Zc+Lb#;ZEY<--Zo>!e>>PIw|wu{{T)V4TS&z diff --git a/packages/insomnia-app/app/ui/images/solarized-dark.png b/packages/insomnia-app/app/ui/images/solarized-dark.png deleted file mode 100644 index ffd02ac51f51a53d046a1effa6f3c873d236f08b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8286 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 Z6xgS5`GVm3|NaC3G*onz8x-xL{|8WSa!LRI diff --git a/packages/insomnia-app/app/ui/images/solarized-light.png b/packages/insomnia-app/app/ui/images/solarized-light.png deleted file mode 100644 index 667bf22ffd00009ee4272adb9c6be0d617735f43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9218 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 diff --git a/packages/insomnia-app/app/ui/images/solarized.png b/packages/insomnia-app/app/ui/images/solarized.png deleted file mode 100644 index ca55a9be5806c77de6404bac928aff745b201d0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8727 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 diff --git a/packages/insomnia-app/app/ui/index.js b/packages/insomnia-app/app/ui/index.js index 8e0d84ad72d..7adda7e632d 100644 --- a/packages/insomnia-app/app/ui/index.js +++ b/packages/insomnia-app/app/ui/index.js @@ -12,11 +12,13 @@ import { init as initPlugins } from '../plugins'; import DNDBackend from './dnd-backend'; import './css/index.less'; import { isDevelopment } from '../common/constants'; +import { setThemes } from '../plugins/misc'; // Handy little helper document.body.setAttribute('data-platform', process.platform); (async function() { + await setThemes(); await db.initClient(); // Create Redux store diff --git a/packages/insomnia-app/package.json b/packages/insomnia-app/package.json index 78373cc67eb..7e9f7769c20 100644 --- a/packages/insomnia-app/package.json +++ b/packages/insomnia-app/package.json @@ -110,6 +110,7 @@ "insomnia-importers": "^2.0.6", "insomnia-libcurl": "^0.0.10", "insomnia-plugin-base64": "^1.0.4", + "insomnia-plugin-core-themes": "^1.0.0", "insomnia-plugin-file": "^1.0.4", "insomnia-plugin-hash": "^1.0.4", "insomnia-plugin-jsonpath": "^1.0.4", diff --git a/plugins/insomnia-plugin-core-themes/README.md b/plugins/insomnia-plugin-core-themes/README.md new file mode 100644 index 00000000000..6b6b9843013 --- /dev/null +++ b/plugins/insomnia-plugin-core-themes/README.md @@ -0,0 +1,5 @@ +# Insomnia Core Themes + +[![Npm Version](https://img.shields.io/npm/v/insomnia-plugin-core-themes.svg)](https://www.npmjs.com/package/insomnia-plugin-core-themes) + +This is a core Insomnia plugin. diff --git a/plugins/insomnia-plugin-core-themes/__tests__/index.test.js b/plugins/insomnia-plugin-core-themes/__tests__/index.test.js new file mode 100644 index 00000000000..653c8742997 --- /dev/null +++ b/plugins/insomnia-plugin-core-themes/__tests__/index.test.js @@ -0,0 +1,36 @@ +const tag = require('..').templateTags[0]; + +function assertTemplate(args, expected) { + return async function() { + const result = await tag.run(null, ...args); + if (expected instanceof RegExp) { + expect(result).toMatch(expected); + } else { + expect(result).toBe(expected); + } + }; +} + +function assertTemplateFails(args, expected) { + return async function() { + try { + await tag.run(null, ...args); + fail(`Render should have thrown ${expected}`); + } catch (err) { + expect(err.message).toContain(expected); + } + }; +} + +const UUID_RE = /[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}/; + +describe('UuidExtension', () => { + it('renders default v4', assertTemplate([], UUID_RE)); + it('renders 4', assertTemplate(['4'], UUID_RE)); + it('renders 4 num', assertTemplate([4], UUID_RE)); + it('renders v4', assertTemplate(['v4'], UUID_RE)); + it('renders 1', assertTemplate(['1'], UUID_RE)); + it('renders 1 num', assertTemplate([1], UUID_RE)); + it('renders v1', assertTemplate(['v1'], UUID_RE)); + it('fails on other', assertTemplateFails(['foo'], 'Invalid UUID type "foo"')); +}); diff --git a/plugins/insomnia-plugin-core-themes/index.js b/plugins/insomnia-plugin-core-themes/index.js new file mode 100644 index 00000000000..d349ce77356 --- /dev/null +++ b/plugins/insomnia-plugin-core-themes/index.js @@ -0,0 +1,13 @@ +module.exports.themes = [ + require('./themes/default'), + require('./themes/material'), + require('./themes/simple-light'), + require('./themes/simple-dark'), + require('./themes/one-light'), + require('./themes/one-dark'), + require('./themes/purple'), + require('./themes/railscasts'), + require('./themes/solarized-light'), + require('./themes/solarized'), + require('./themes/solarized-dark') +]; diff --git a/plugins/insomnia-plugin-core-themes/package.json b/plugins/insomnia-plugin-core-themes/package.json new file mode 100644 index 00000000000..4da39b6f2d1 --- /dev/null +++ b/plugins/insomnia-plugin-core-themes/package.json @@ -0,0 +1,19 @@ +{ + "name": "insomnia-plugin-core-themes", + "version": "1.0.0", + "author": "Gregory Schier ", + "description": "Insomnia core themes", + "license": "MIT", + "repository": "https://github.com/getinsomnia/insomnia/tree/master/plugins/insomnia-plugin-core-themes", + "bugs": { + "url": "https://github.com/getinsomnia/insomnia" + }, + "main": "index.js", + "insomnia": { + "name": "core-themes" + }, + "scripts": { + "test": "jest --silent" + }, + "dependencies": {} +} diff --git a/plugins/insomnia-plugin-core-themes/themes/default.js b/plugins/insomnia-plugin-core-themes/themes/default.js new file mode 100644 index 00000000000..fe0404d9b88 --- /dev/null +++ b/plugins/insomnia-plugin-core-themes/themes/default.js @@ -0,0 +1,92 @@ +module.exports = { + name: 'default', + displayName: 'Default', + theme: { + background: { + default: '#555', + success: '#59a210', + notice: '#ae9602', + warning: '#d07502', + danger: '#d04444', + surprise: '#7d69cb', + info: '#1c90b4' + }, + foreground: { + default: '#eee' + }, + styles: { + transparentOverlay: { + background: { + default: 'rgba(30, 30, 30, 0.8)' + }, + foreground: { + default: '#ddd' + } + }, + dialog: { + background: { + default: '#fff' + }, + foreground: { + default: '#333' + } + }, + sidebar: { + background: { + default: '#2e2f2b', + success: '#7ecf2b', + notice: '#f0e137', + warning: '#ff9a1f', + danger: '#ff5631', + surprise: '#a896ff', + info: '#46c1e6' + }, + foreground: { + default: 'e0e0e0' + }, + highlight: { + default: '#999' + } + }, + sidebarHeader: { + background: { + default: '#695eb8' + }, + foreground: { + default: '#fff' + } + }, + paneHeader: { + foreground: { + default: '#666' + }, + background: { + default: '#fff', + success: '#75ba24', + notice: '#d8c84d', + warning: '#ec8702', + danger: '#ee5655', + surprise: '#a590ff', + info: '#22c1ee' + } + }, + pane: { + background: { + default: '#282925', + success: '{{ styles.sidebar.background.success }}', + notice: '{{ styles.sidebar.background.notice }}', + warning: '{{ styles.sidebar.background.warning }}', + danger: '{{ styles.sidebar.background.danger }}', + surprise: '{{ styles.sidebar.background.surprise }}', + info: '{{ styles.sidebar.background.info }}' + }, + foreground: { + default: 'e0e0e0' + }, + highlight: { + default: '#999' + } + } + } + } +}; diff --git a/plugins/insomnia-plugin-core-themes/themes/material.js b/plugins/insomnia-plugin-core-themes/themes/material.js new file mode 100644 index 00000000000..145252e3bbc --- /dev/null +++ b/plugins/insomnia-plugin-core-themes/themes/material.js @@ -0,0 +1,89 @@ +module.exports = { + name: 'material', + displayName: 'Material', + theme: { + background: { + default: '#263238', + success: '#80cbc4', + notice: '#ffcb6b', + warning: '#f77669', + danger: '#ff5370', + surprise: '#c792ea', + info: '#82b1ff' + }, + foreground: { + default: '#dde1e1', + success: '#fff', + notice: '#fff', + warning: '#fff', + danger: '#fff', + surprise: '#fff', + info: '#fff' + }, + highlight: { + default: 'rgba(114, 145, 143, 1)', + xxs: 'rgba(114, 145, 143, 0.05)', + xs: 'rgba(114, 145, 143, 0.1)', + sm: 'rgba(114, 145, 143, 0.15)', + md: 'rgba(114, 145, 143, 0.2)', + lg: 'rgba(114, 145, 143, 0.6)', + xl: 'rgba(114, 145, 143, 0.8)' + }, + styles: { + link: { + foreground: { + default: '#68a9a2' + } + }, + dialog: { + background: { + default: '#303c43' + }, + foreground: { + default: '#dde1e1' + } + }, + paneHeader: { + background: { + success: '#68a9a2', + notice: '#e6b564', + warning: '#e27164', + danger: '#d64b66', + surprise: '#b482d6', + info: '#6c93d8' + } + }, + sidebar: { + highlight: { + default: 'rgb(125, 153, 151)', + xxs: 'rgba(114, 145, 143, 0)', + xs: 'rgba(114, 145, 143, 0)', + sm: 'rgba(114, 145, 143, 0)', + md: 'rgba(114, 145, 143, 0)', + lg: 'rgba(114, 145, 143, 0.1)', + xl: 'rgba(114, 145, 143, 0.1)' + } + }, + sidebarHeader: { + highlight: { + xxs: 'rgba(114, 145, 143, 0.05)', + xs: 'rgba(114, 145, 143, 0.08)', + sm: 'rgba(114, 145, 143, 0.1)', + md: 'rgba(114, 145, 143, 0.2)', + lg: 'rgba(114, 145, 143, 0.4)', + xl: 'rgba(114, 145, 143, 0.5)' + } + }, + sidebarActions: { + highlight: { + xxs: 'rgba(114, 145, 143, 0.05)', + xs: 'rgba(114, 145, 143, 0.08)', + sm: 'rgba(114, 145, 143, 0.1)', + md: 'rgba(114, 145, 143, 0.2)', + lg: 'rgba(114, 145, 143, 0.5)', + xl: 'rgba(114, 145, 143, 0.7)' + } + } + } + } +}; diff --git a/plugins/insomnia-plugin-core-themes/themes/one-dark.js b/plugins/insomnia-plugin-core-themes/themes/one-dark.js new file mode 100644 index 00000000000..aefe1263974 --- /dev/null +++ b/plugins/insomnia-plugin-core-themes/themes/one-dark.js @@ -0,0 +1,60 @@ +module.exports = { + name: 'one-dark', + displayName: 'One Dark', + theme: { + background: { + default: '#272c35', + success: '#98c379', + notice: '#d19a66', + warning: '#d19a66', + danger: '#e06c75', + surprise: '#c678dd', + info: '#56b6c2' + }, + foreground: { + default: '#bbb', + success: '#fff', + notice: '#fff', + warning: '#fff', + danger: '#fff', + surprise: '#fff', + info: '#fff' + }, + highlight: { + default: 'rgba(114, 121, 133, 1)', + xxs: 'rgba(114, 121, 133, 0.05)', + xs: 'rgba(114, 121, 133, 0.1)', + sm: 'rgba(114, 121, 133, 0.2)', + md: 'rgba(114, 121, 133, 0.3)', + lg: 'rgba(114, 121, 133, 0.5)', + xl: 'rgba(114, 121, 133, 0.8)' + }, + styles: { + sidebar: { + background: { + default: '#20252c' + } + }, + dialog: { + background: { + default: '#2b303a' + } + }, + paneHeader: { + background: { + success: '#8ab46d', + notice: '#d19a66', + warning: '#d19a66', + danger: '#d86a6f', + surprise: '#c678dd', + info: '#51acb7' + } + }, + transparentOverlay: { + background: { + default: 'rgba(30, 33, 40, 0.8)' + } + } + } + } +}; diff --git a/plugins/insomnia-plugin-core-themes/themes/one-light.js b/plugins/insomnia-plugin-core-themes/themes/one-light.js new file mode 100644 index 00000000000..2501953ce87 --- /dev/null +++ b/plugins/insomnia-plugin-core-themes/themes/one-light.js @@ -0,0 +1,61 @@ +module.exports = { + name: 'one-light', + displayName: 'One Light', + theme: { + background: { + default: '#fafafa', + success: '#50a14f', + notice: '#c18401', + warning: '#c18401', + danger: '#e45649', + surprise: '#a626a4', + info: '#0184bc' + }, + foreground: { + default: '#777' + }, + highlight: { + default: 'rgba(114, 121, 133, 1)', + xxs: 'rgba(114, 121, 133, 0.05)', + xs: 'rgba(114, 121, 133, 0.1)', + sm: 'rgba(114, 121, 133, 0.2)', + md: 'rgba(114, 121, 133, 0.3)', + lg: 'rgba(114, 121, 133, 0.5)', + xl: 'rgba(114, 121, 133, 0.8)' + }, + styles: { + sidebar: { + background: { + default: '#eaeaeb', + success: '#50a14f', + notice: '#c18401', + warning: '#c18401', + danger: '#e45649', + surprise: '#a626a4', + info: '#0184bc' + }, + foreground: { + default: '#444' + }, + highlight: { + default: '#888' + } + }, + paneHeader: { + background: { + success: '{{ styles.sidebar.background.success }}', + notice: '{{ styles.sidebar.background.notice }}', + warning: '{{ styles.sidebar.background.warning }}', + danger: '{{ styles.sidebar.background.danger }}', + surprise: '{{ styles.sidebar.background.surprise }}', + info: '{{ styles.sidebar.background.info }}' + } + }, + transparentOverlay: { + background: { + default: 'rgba(30, 33, 40, 0.8)' + } + } + } + } +}; diff --git a/plugins/insomnia-plugin-core-themes/themes/purple.js b/plugins/insomnia-plugin-core-themes/themes/purple.js new file mode 100644 index 00000000000..3ed75429e6f --- /dev/null +++ b/plugins/insomnia-plugin-core-themes/themes/purple.js @@ -0,0 +1,52 @@ +module.exports = { + name: 'purple', + displayName: 'Purple', + theme: { + foreground: { + default: '#555' + }, + styles: { + link: { + foreground: { + default: '#68a9a2' + } + }, + sidebar: { + background: { + default: '#695eb8', + success: '#a9ea6e', + notice: '#ffdb02', + warning: '#ffac49', + danger: '#ff7472', + surprise: '#c5bbff', + info: '#75ddff' + }, + foreground: { + default: '#fff' + }, + highlight: { + default: 'rgb(217, 204, 255)', + xxs: 'rgba(207, 190, 255, 0.05)', + xs: 'rgba(207, 190, 255, 0.1)', + sm: 'rgba(207, 190, 255, 0.2)', + md: 'rgba(207, 190, 255, 0.3)', + lg: 'rgba(207, 190, 255, 0.5)', + xl: 'rgba(207, 190, 255, 0.8)' + } + }, + sidebarHeader: { + foreground: { + default: '#eee' + } + }, + transparentOverlay: { + background: { + default: 'rgba(243, 242, 250, 0.8)' + }, + foreground: { + default: '#555' + } + } + } + } +}; diff --git a/plugins/insomnia-plugin-core-themes/themes/railscasts.js b/plugins/insomnia-plugin-core-themes/themes/railscasts.js new file mode 100644 index 00000000000..b1f1197a475 --- /dev/null +++ b/plugins/insomnia-plugin-core-themes/themes/railscasts.js @@ -0,0 +1,44 @@ +module.exports = { + name: 'railscasts', + displayName: 'Railscasts', + theme: { + foreground: { + default: '#ddd' + }, + background: { + default: '#2b2b2b', + success: '#a5c261', + notice: '#ffc66d', + warning: '#e48a37', + danger: '#dc4939', + surprise: '#b6b3eb', + info: '#6d9cbe' + }, + styles: { + paneHeader: { + background: { + default: '#2b2b2b', + success: '#97b159', + notice: '#efba66', + warning: '#e48a37', + danger: '#dc4939', + surprise: '#a3a1d3', + info: '#6d9cbe' + } + }, + dialog: { + background: { + default: '#323232' + } + }, + transparentOverlay: { + background: { + default: 'rgba(30, 30, 30, 0.8)' + }, + foreground: { + default: '#e1deda' + } + } + } + } +}; diff --git a/plugins/insomnia-plugin-core-themes/themes/simple-dark.js b/plugins/insomnia-plugin-core-themes/themes/simple-dark.js new file mode 100644 index 00000000000..d1919420fe4 --- /dev/null +++ b/plugins/insomnia-plugin-core-themes/themes/simple-dark.js @@ -0,0 +1,35 @@ +module.exports = { + name: 'dark', + displayName: 'Simple Dark', + theme: { + foreground: { + default: '#ddd' + }, + background: { + default: '#222', + success: '#8fc860', + notice: '#e5ca1e', + warning: '#f9a230', + danger: '#f06d6b', + surprise: '#aca0f2', + info: '#6eccec' + }, + styles: { + paneHeader: { + background: { + success: '#77a855', + notice: '#d1b81c', + warning: '#d9892c', + danger: '#d35855', + surprise: '#8e84cb', + info: '#62a6c3' + } + }, + dialog: { + background: { + default: '#282828' + } + } + } + } +}; diff --git a/plugins/insomnia-plugin-core-themes/themes/simple-light.js b/plugins/insomnia-plugin-core-themes/themes/simple-light.js new file mode 100644 index 00000000000..a2979ae6051 --- /dev/null +++ b/plugins/insomnia-plugin-core-themes/themes/simple-light.js @@ -0,0 +1,7 @@ +module.exports = { + name: 'light', + displayName: 'Simple Light', + theme: { + styles: {} + } +}; diff --git a/plugins/insomnia-plugin-core-themes/themes/solarized-dark.js b/plugins/insomnia-plugin-core-themes/themes/solarized-dark.js new file mode 100644 index 00000000000..2605b723fcb --- /dev/null +++ b/plugins/insomnia-plugin-core-themes/themes/solarized-dark.js @@ -0,0 +1,27 @@ +module.exports = { + name: 'solarized-dark', + displayName: 'Solarized Dark', + theme: { + background: { + default: '#073642', + success: '#859900', + notice: '#b58900', + warning: '#cb4b16', + danger: '#dc322f', + surprise: '#6c71c4', + info: '#2aa198' + }, + foreground: { + default: '#8ea0a2' + }, + highlight: { + default: 'rgb(142, 149, 146)', + xxs: 'rgba(159, 167, 164, 0.05)', + xs: 'rgba(159, 167, 164, 0.1)', + sm: 'rgba(159, 167, 164, 0.2)', + md: 'rgba(142, 149, 146, 0.3)', + lg: 'rgba(142, 149, 146, 0.6)', + xl: 'rgba(142, 149, 146, 0.8)' + } + } +}; diff --git a/plugins/insomnia-plugin-core-themes/themes/solarized-light.js b/plugins/insomnia-plugin-core-themes/themes/solarized-light.js new file mode 100644 index 00000000000..8baeb89f4a4 --- /dev/null +++ b/plugins/insomnia-plugin-core-themes/themes/solarized-light.js @@ -0,0 +1,27 @@ +module.exports = { + name: 'solarized-light', + displayName: 'Solarized Light', + theme: { + background: { + default: '#fdf6e3', + success: '#859900', + notice: '#b58900', + warning: '#cb4b16', + danger: '#dc322f', + surprise: '#6c71c4', + info: '#2aa198' + }, + foreground: { + default: '#657b83' + }, + highlight: { + default: 'rgb(142, 149, 146)', + xxs: 'rgba(159, 167, 164, 0.05)', + xs: 'rgba(159, 167, 164, 0.1)', + sm: 'rgba(159, 167, 164, 0.2)', + md: 'rgba(142, 149, 146, 0.3)', + lg: 'rgba(142, 149, 146, 0.6)', + xl: 'rgba(142, 149, 146, 0.8)' + } + } +}; diff --git a/plugins/insomnia-plugin-core-themes/themes/solarized.js b/plugins/insomnia-plugin-core-themes/themes/solarized.js new file mode 100644 index 00000000000..4f7ee4f0b99 --- /dev/null +++ b/plugins/insomnia-plugin-core-themes/themes/solarized.js @@ -0,0 +1,37 @@ +module.exports = { + name: 'solarized', + displayName: 'Solarized', + theme: { + background: { + default: '#fdf6e3', + success: '#859900', + notice: '#b58900', + warning: '#cb4b16', + danger: '#dc322f', + surprise: '#6c71c4', + info: '#2aa198' + }, + foreground: { + default: '#657b83' + }, + highlight: { + default: 'rgb(142, 149, 146)', + xxs: 'rgba(159, 167, 164, 0.05)', + xs: 'rgba(159, 167, 164, 0.1)', + sm: 'rgba(159, 167, 164, 0.2)', + md: 'rgba(142, 149, 146, 0.3)', + lg: 'rgba(142, 149, 146, 0.6)', + xl: 'rgba(142, 149, 146, 0.8)' + }, + styles: { + sidebar: { + background: { + default: '#073642' + }, + foreground: { + default: '#8ea0a2' + } + } + } + } +}; From 3dee032da8510e85c1b6f6b231781da55d4bfb8b Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Tue, 17 Jul 2018 17:04:59 -0400 Subject: [PATCH 2/4] Publish - insomnia-plugin-core-themes@1.0.1 - insomnia-app@1.0.28 --- .../ui/components/base/dropdown/dropdown.js | 2 + .../ui/components/modals/settings-modal.js | 1 - .../app/ui/components/settings/theme.js | 2 +- .../insomnia-app/app/ui/components/tooltip.js | 2 + .../insomnia-app/app/ui/containers/app.js | 1 - .../app/ui/css/components/dropdown.less | 4 +- .../app/ui/css/components/themes.less | 11 ----- .../app/ui/css/constants/colors.less | 14 +++---- .../app/ui/css/editor/nunjucks-tag.less | 11 +++-- packages/insomnia-app/package.json | 4 +- .../__tests__/index.test.js | 36 ---------------- plugins/insomnia-plugin-core-themes/index.js | 1 + .../insomnia-plugin-core-themes/package.json | 7 ++-- .../themes/hyper.js | 41 +++++++++++++++++++ .../themes/simple-dark.js | 2 +- .../themes/simple-light.js | 11 ++++- 16 files changed, 79 insertions(+), 71 deletions(-) delete mode 100644 plugins/insomnia-plugin-core-themes/__tests__/index.test.js create mode 100644 plugins/insomnia-plugin-core-themes/themes/hyper.js diff --git a/packages/insomnia-app/app/ui/components/base/dropdown/dropdown.js b/packages/insomnia-app/app/ui/components/base/dropdown/dropdown.js index 84e7d58883c..056c3960179 100644 --- a/packages/insomnia-app/app/ui/components/base/dropdown/dropdown.js +++ b/packages/insomnia-app/app/ui/components/base/dropdown/dropdown.js @@ -242,6 +242,8 @@ class Dropdown extends PureComponent { if (!container) { container = document.createElement('div'); container.id = 'dropdowns-container'; + container.style.zIndex = '1000000'; + container.style.position = 'relative'; document.body.appendChild(container); } diff --git a/packages/insomnia-app/app/ui/components/modals/settings-modal.js b/packages/insomnia-app/app/ui/components/modals/settings-modal.js index 7fb165e3131..f3c82be77b0 100644 --- a/packages/insomnia-app/app/ui/components/modals/settings-modal.js +++ b/packages/insomnia-app/app/ui/components/modals/settings-modal.js @@ -18,7 +18,6 @@ import { Curl } from 'insomnia-libcurl'; import { getAppName, getAppVersion } from '../../../common/constants'; import * as session from '../../../sync/session'; import Tooltip from '../tooltip'; -import { generateThemeCSS } from '../../../plugins/misc'; export const TAB_INDEX_EXPORT = 1; export const TAB_INDEX_SHORTCUTS = 3; diff --git a/packages/insomnia-app/app/ui/components/settings/theme.js b/packages/insomnia-app/app/ui/components/settings/theme.js index eb08354038a..ed8ab9bce75 100644 --- a/packages/insomnia-app/app/ui/components/settings/theme.js +++ b/packages/insomnia-app/app/ui/components/settings/theme.js @@ -5,7 +5,7 @@ import Button from '../base/button'; import type { Theme as ThemeType } from '../../../plugins'; import { getThemes } from '../../../plugins'; -const THEMES_PER_ROW = 5; +const THEMES_PER_ROW = 4; type Props = { handleChangeTheme: string => void, diff --git a/packages/insomnia-app/app/ui/components/tooltip.js b/packages/insomnia-app/app/ui/components/tooltip.js index a4782a07894..2396a6d452c 100644 --- a/packages/insomnia-app/app/ui/components/tooltip.js +++ b/packages/insomnia-app/app/ui/components/tooltip.js @@ -126,6 +126,8 @@ class Tooltip extends React.PureComponent { if (!container) { container = document.createElement('div'); container.id = 'tooltips-container'; + container.style.zIndex = '1000000'; + container.style.position = 'relative'; document.body && document.body.appendChild(container); } diff --git a/packages/insomnia-app/app/ui/containers/app.js b/packages/insomnia-app/app/ui/containers/app.js index d89a6a2ff93..1b01f2258c8 100644 --- a/packages/insomnia-app/app/ui/containers/app.js +++ b/packages/insomnia-app/app/ui/containers/app.js @@ -68,7 +68,6 @@ import * as templating from '../../templating/index'; import AskModal from '../components/modals/ask-modal'; import { updateMimeType } from '../../models/request'; import MoveRequestGroupModal from '../components/modals/move-request-group-modal'; -import { generateThemeCSS } from '../../plugins/misc'; import * as themes from '../../plugins/misc'; @autobind diff --git a/packages/insomnia-app/app/ui/css/components/dropdown.less b/packages/insomnia-app/app/ui/css/components/dropdown.less index 6eb45b368ff..62fe5f716d5 100644 --- a/packages/insomnia-app/app/ui/css/components/dropdown.less +++ b/packages/insomnia-app/app/ui/css/components/dropdown.less @@ -11,7 +11,6 @@ &:focus { outline: none; } - } .dropdown__backdrop { @@ -26,6 +25,8 @@ } .dropdown__menu { + opacity: 0.96; + &.dropdown__menu--open .dropdown__backdrop { display: block; } @@ -165,4 +166,3 @@ animation: fadeIn 200ms ease-out; } } - diff --git a/packages/insomnia-app/app/ui/css/components/themes.less b/packages/insomnia-app/app/ui/css/components/themes.less index 7a18700b123..658565d4c13 100644 --- a/packages/insomnia-app/app/ui/css/components/themes.less +++ b/packages/insomnia-app/app/ui/css/components/themes.less @@ -61,7 +61,6 @@ button { position: relative; margin: 0 @padding-md; - opacity: 0.9; font-size: 0; border-radius: @radius-md; overflow: hidden; @@ -72,7 +71,6 @@ } &:hover { - opacity: 1; transform: scale(1.05); } @@ -97,14 +95,5 @@ bottom: 0; visibility: hidden; } - - //&.themes__theme--locked:hover::after { - // content: 'Upgrade to Plus'; - // visibility: visible; - // font-size: @font-size-md; - // transform: rotate(-15deg); - // mix-blend-mode: exclusion; - // opacity: 1; - //} } } diff --git a/packages/insomnia-app/app/ui/css/constants/colors.less b/packages/insomnia-app/app/ui/css/constants/colors.less index 34de66a1a99..e3c0eb2cb30 100644 --- a/packages/insomnia-app/app/ui/css/constants/colors.less +++ b/packages/insomnia-app/app/ui/css/constants/colors.less @@ -3,12 +3,12 @@ --color-bg: #fff; --color-font: #555; - --color-success: #59a210; - --color-notice: #ae9602; - --color-warning: #d07502; - --color-danger: #d04444; - --color-surprise: #7d69cb; - --color-info: #1c90b4; + --color-success: #50a500; + --color-notice: #b59e00; + --color-warning: #da7c02; + --color-danger: #d04845; + --color-surprise: #8570d2; + --color-info: #0092bf; --color-font-success: #fff; --color-font-notice: #fff; @@ -26,7 +26,7 @@ --hl: rgba(130, 130, 130, 1); .theme--transparent-overlay { - --color-bg: rgba(30, 30, 30, 0.8); + --color-bg: rgba(5, 5, 5, 0.7); --color-font: #ddd; } } diff --git a/packages/insomnia-app/app/ui/css/editor/nunjucks-tag.less b/packages/insomnia-app/app/ui/css/editor/nunjucks-tag.less index 02ecb563d72..e05a4cfd109 100644 --- a/packages/insomnia-app/app/ui/css/editor/nunjucks-tag.less +++ b/packages/insomnia-app/app/ui/css/editor/nunjucks-tag.less @@ -19,13 +19,16 @@ left: 0; height: 100%; width: 100%; - opacity: 0.7; // not so bright! - content: " "; + content: ' '; z-index: -1; border-radius: 0.2em; box-sizing: border-box; box-shadow: inset 0 0 0.1em rgba(0, 0, 0, 0.4); transition: background-color 300ms; + + // not so bright! + opacity: 0.8; + filter: grayscale(20%); } label { @@ -61,14 +64,14 @@ background: rgba(255, 255, 255, 0.1); } - &[data-error="on"] { + &[data-error='on'] { color: var(--color-font-danger); &::after { background: var(--color-danger); } } - &[data-ignore="on"]::after { + &[data-ignore='on']::after { background: var(--hl-xl); color: bar(--color-font); } diff --git a/packages/insomnia-app/package.json b/packages/insomnia-app/package.json index 7e9f7769c20..f6b7c5d6299 100644 --- a/packages/insomnia-app/package.json +++ b/packages/insomnia-app/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "1.0.27", + "version": "1.0.28", "name": "insomnia-app", "app": { "name": "insomnia", @@ -110,7 +110,7 @@ "insomnia-importers": "^2.0.6", "insomnia-libcurl": "^0.0.10", "insomnia-plugin-base64": "^1.0.4", - "insomnia-plugin-core-themes": "^1.0.0", + "insomnia-plugin-core-themes": "^1.0.1", "insomnia-plugin-file": "^1.0.4", "insomnia-plugin-hash": "^1.0.4", "insomnia-plugin-jsonpath": "^1.0.4", diff --git a/plugins/insomnia-plugin-core-themes/__tests__/index.test.js b/plugins/insomnia-plugin-core-themes/__tests__/index.test.js deleted file mode 100644 index 653c8742997..00000000000 --- a/plugins/insomnia-plugin-core-themes/__tests__/index.test.js +++ /dev/null @@ -1,36 +0,0 @@ -const tag = require('..').templateTags[0]; - -function assertTemplate(args, expected) { - return async function() { - const result = await tag.run(null, ...args); - if (expected instanceof RegExp) { - expect(result).toMatch(expected); - } else { - expect(result).toBe(expected); - } - }; -} - -function assertTemplateFails(args, expected) { - return async function() { - try { - await tag.run(null, ...args); - fail(`Render should have thrown ${expected}`); - } catch (err) { - expect(err.message).toContain(expected); - } - }; -} - -const UUID_RE = /[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}/; - -describe('UuidExtension', () => { - it('renders default v4', assertTemplate([], UUID_RE)); - it('renders 4', assertTemplate(['4'], UUID_RE)); - it('renders 4 num', assertTemplate([4], UUID_RE)); - it('renders v4', assertTemplate(['v4'], UUID_RE)); - it('renders 1', assertTemplate(['1'], UUID_RE)); - it('renders 1 num', assertTemplate([1], UUID_RE)); - it('renders v1', assertTemplate(['v1'], UUID_RE)); - it('fails on other', assertTemplateFails(['foo'], 'Invalid UUID type "foo"')); -}); diff --git a/plugins/insomnia-plugin-core-themes/index.js b/plugins/insomnia-plugin-core-themes/index.js index d349ce77356..beb5f16955e 100644 --- a/plugins/insomnia-plugin-core-themes/index.js +++ b/plugins/insomnia-plugin-core-themes/index.js @@ -6,6 +6,7 @@ module.exports.themes = [ require('./themes/one-light'), require('./themes/one-dark'), require('./themes/purple'), + require('./themes/hyper'), require('./themes/railscasts'), require('./themes/solarized-light'), require('./themes/solarized'), diff --git a/plugins/insomnia-plugin-core-themes/package.json b/plugins/insomnia-plugin-core-themes/package.json index 4da39b6f2d1..2e8ab7a9f5b 100644 --- a/plugins/insomnia-plugin-core-themes/package.json +++ b/plugins/insomnia-plugin-core-themes/package.json @@ -1,6 +1,6 @@ { "name": "insomnia-plugin-core-themes", - "version": "1.0.0", + "version": "1.0.1", "author": "Gregory Schier ", "description": "Insomnia core themes", "license": "MIT", @@ -13,7 +13,6 @@ "name": "core-themes" }, "scripts": { - "test": "jest --silent" - }, - "dependencies": {} + "test": "node --version" + } } diff --git a/plugins/insomnia-plugin-core-themes/themes/hyper.js b/plugins/insomnia-plugin-core-themes/themes/hyper.js new file mode 100644 index 00000000000..dfea4fed843 --- /dev/null +++ b/plugins/insomnia-plugin-core-themes/themes/hyper.js @@ -0,0 +1,41 @@ +module.exports = { + name: 'hyper', + displayName: 'Hyper', + theme: { + foreground: { + default: '#ccc' + }, + background: { + default: '#000', + success: '#87ee59', + notice: '#f8d245', + warning: '#f9ac2a', + danger: '#ff505c', + surprise: '#ec48f9', + info: '#23dce8' + }, + styles: { + dialog: { + background: { + default: '#111' + } + }, + transparentOverlay: { + background: { + default: 'rgba(0, 0, 0, 0.5)' + } + }, + paneHeader: { + background: { + default: '#000', + success: '#6ac04b', + notice: '#ebc742', + warning: '#ea9f29', + danger: '#df4b56', + surprise: '#d945e5', + info: '#20bec9' + } + } + } + } +}; diff --git a/plugins/insomnia-plugin-core-themes/themes/simple-dark.js b/plugins/insomnia-plugin-core-themes/themes/simple-dark.js index d1919420fe4..974f81e95ba 100644 --- a/plugins/insomnia-plugin-core-themes/themes/simple-dark.js +++ b/plugins/insomnia-plugin-core-themes/themes/simple-dark.js @@ -27,7 +27,7 @@ module.exports = { }, dialog: { background: { - default: '#282828' + default: '#2a2a2a' } } } diff --git a/plugins/insomnia-plugin-core-themes/themes/simple-light.js b/plugins/insomnia-plugin-core-themes/themes/simple-light.js index a2979ae6051..31dddeb562c 100644 --- a/plugins/insomnia-plugin-core-themes/themes/simple-light.js +++ b/plugins/insomnia-plugin-core-themes/themes/simple-light.js @@ -2,6 +2,15 @@ module.exports = { name: 'light', displayName: 'Simple Light', theme: { - styles: {} + styles: { + transparentOverlay: { + background: { + default: 'rgba(240, 240, 240, 0.8)' + }, + foreground: { + default: '#555' + } + } + } } }; From d5195b87a0fd90e383a474e4417a01c97984a323 Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Tue, 17 Jul 2018 18:14:38 -0400 Subject: [PATCH 3/4] Publish - insomnia-plugin-core-themes@1.0.2 - insomnia-app@1.0.29 --- packages/insomnia-app/package.json | 4 ++-- plugins/insomnia-plugin-core-themes/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/insomnia-app/package.json b/packages/insomnia-app/package.json index f6b7c5d6299..d265c86de3e 100644 --- a/packages/insomnia-app/package.json +++ b/packages/insomnia-app/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "1.0.28", + "version": "1.0.29", "name": "insomnia-app", "app": { "name": "insomnia", @@ -110,7 +110,7 @@ "insomnia-importers": "^2.0.6", "insomnia-libcurl": "^0.0.10", "insomnia-plugin-base64": "^1.0.4", - "insomnia-plugin-core-themes": "^1.0.1", + "insomnia-plugin-core-themes": "^1.0.2", "insomnia-plugin-file": "^1.0.4", "insomnia-plugin-hash": "^1.0.4", "insomnia-plugin-jsonpath": "^1.0.4", diff --git a/plugins/insomnia-plugin-core-themes/package.json b/plugins/insomnia-plugin-core-themes/package.json index 2e8ab7a9f5b..59b7ac10cbf 100644 --- a/plugins/insomnia-plugin-core-themes/package.json +++ b/plugins/insomnia-plugin-core-themes/package.json @@ -1,6 +1,6 @@ { "name": "insomnia-plugin-core-themes", - "version": "1.0.1", + "version": "1.0.2", "author": "Gregory Schier ", "description": "Insomnia core themes", "license": "MIT", From ef0a20fa58c9e76550fd9d05f487705f379b89ac Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Tue, 17 Jul 2018 18:23:36 -0400 Subject: [PATCH 4/4] Publish - insomnia-plugin-core-themes@1.0.3 - insomnia-app@1.0.30 --- packages/insomnia-app/package.json | 4 ++-- plugins/insomnia-plugin-core-themes/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/insomnia-app/package.json b/packages/insomnia-app/package.json index d265c86de3e..8b75ca01a85 100644 --- a/packages/insomnia-app/package.json +++ b/packages/insomnia-app/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "1.0.29", + "version": "1.0.30", "name": "insomnia-app", "app": { "name": "insomnia", @@ -110,7 +110,7 @@ "insomnia-importers": "^2.0.6", "insomnia-libcurl": "^0.0.10", "insomnia-plugin-base64": "^1.0.4", - "insomnia-plugin-core-themes": "^1.0.2", + "insomnia-plugin-core-themes": "^1.0.3", "insomnia-plugin-file": "^1.0.4", "insomnia-plugin-hash": "^1.0.4", "insomnia-plugin-jsonpath": "^1.0.4", diff --git a/plugins/insomnia-plugin-core-themes/package.json b/plugins/insomnia-plugin-core-themes/package.json index 59b7ac10cbf..c047712bce5 100644 --- a/plugins/insomnia-plugin-core-themes/package.json +++ b/plugins/insomnia-plugin-core-themes/package.json @@ -1,6 +1,6 @@ { "name": "insomnia-plugin-core-themes", - "version": "1.0.2", + "version": "1.0.3", "author": "Gregory Schier ", "description": "Insomnia core themes", "license": "MIT",