commit 123e8492a60b25e90867b639d03facc98ec34f88 Author: imnyang Date: Wed Sep 9 12:12:31 2026 +0900 wow diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..1625c17 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,121 @@ +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. \ No newline at end of file diff --git a/changelog.md b/changelog.md new file mode 100644 index 0000000..b0b6c36 --- /dev/null +++ b/changelog.md @@ -0,0 +1,11 @@ +# Change Log + +## [1.0.1] - 2026-09-09 + +- Restored the Kawa theme source from the published extension. +- Updated the metadata and README for the next Marketplace release. +- Added generated dark and light themes with broader VS Code UI coverage. + +## [1.0.0] + +- Initial release. diff --git a/package.json b/package.json new file mode 100644 index 0000000..3a93555 --- /dev/null +++ b/package.json @@ -0,0 +1,31 @@ +{ + "name": "kawa", + "displayName": "Kawa", + "description": "A soft pink VS Code theme based on the Kawa color palette.", + "repository": "https://github.com/imnyang/kawa", + "publisher": "imnyang", + "version": "1.0.1", + "engines": { + "vscode": "^1.96.0" + }, + "categories": [ + "Themes" + ], + "scripts": { + "build:themes": "node scripts/build-themes.js" + }, + "contributes": { + "themes": [ + { + "label": "Kawa Dark", + "uiTheme": "vs-dark", + "path": "./themes/kawa-color-theme.json" + }, + { + "label": "Kawa Light", + "uiTheme": "vs", + "path": "./themes/kawa-light-color-theme.json" + } + ] + } +} diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..3d14c41 --- /dev/null +++ b/readme.md @@ -0,0 +1,26 @@ +# Kawa + +A soft pink VS Code color theme based on the Kawa palette. + +## Install + +Search for **Kawa** in the Extensions view, then select either: + +`Preferences: Color Theme` → `Kawa Dark` or `Kawa Light` + +The theme uses the same semantic palette in both modes: plum/pink in dark mode and soft rose/off-white in light mode. + +## Palette + +- Dark background: `hsl(315 21% 8%)` +- Light background: `hsl(340 40% 98%)` +- Foreground: `hsl(315 21% 8%)` / `hsl(0 0% 98%)` +- Accent: soft pink + +Theme JSON files are generated from the compact source palette: + +```sh +npm run build:themes +``` + +Repository: https://github.com/imnyang/kawa diff --git a/scripts/build-themes.js b/scripts/build-themes.js new file mode 100644 index 0000000..065b989 --- /dev/null +++ b/scripts/build-themes.js @@ -0,0 +1,94 @@ +const fs = require('fs'); +const path = require('path'); + +const themesDir = path.join(__dirname, '..', 'themes'); + +const palettes = { + dark: { + name: 'Kawa Dark', uiTheme: 'vs-dark', background: '#191017', foreground: '#fafafa', surface: '#2c1f2d', + primary: '#fafafa', primaryForeground: '#18181b', accent: '#f9b1dc', muted: '#2c1f2d', mutedForeground: '#a9a9b1', + border: '#2c1f2d', hover: '#432b40', selection: '#5a3150', error: '#b42318', warning: '#d69a5d', info: '#a9a9b1', + success: '#7da889', keyword: '#f9b1dc', type: '#c9b0d9', constant: '#c9b0d9', variable: '#d9c5ce', + function: '#f4ba9f', string: '#d6a6b8', number: '#e1b68f', comment: '#a9a9b1', operator: '#d9c5ce' + }, + light: { + name: 'Kawa Light', uiTheme: 'vs', background: '#fcf8f9', foreground: '#191017', surface: '#f5eff1', + primary: '#301d27', primaryForeground: '#fafafa', accent: '#9d426f', muted: '#f5eff1', mutedForeground: '#a38f96', + border: '#ecdfe3', hover: '#f1e4e9', selection: '#ead1dc', error: '#b42318', warning: '#9a5b16', info: '#6f6370', + success: '#3f7a54', keyword: '#9d426f', type: '#76517d', constant: '#76517d', variable: '#4d3942', + function: '#a34f35', string: '#8e536c', number: '#8b5e34', comment: '#8d7d84', operator: '#5f4b55' + } +}; + +const groups = { + background: ['activityBar.background', 'editor.background', 'editorGutter.background', 'editorPane.background', 'panel.background', 'sideBar.background', 'statusBar.background', 'tab.activeBackground', 'tab.inactiveBackground', 'titleBar.activeBackground', 'titleBar.inactiveBackground', 'editorGroupHeader.tabsBackground', 'editorGroupHeader.noTabsBackground', 'quickInput.background', 'notifications.background', 'notificationCenterHeader.background', 'terminal.background'], + surface: ['editorSuggestWidget.background', 'editorHoverWidget.background', 'input.background', 'dropdown.background', 'menu.background', 'quickInputTitle.background', 'welcomePage.tileBackground', 'peekViewEditor.background', 'peekViewResult.background', 'peekViewTitle.background', 'panelSectionHeader.background', 'debugToolBar.background'], + foreground: ['activityBar.foreground', 'editor.foreground', 'editorGroupHeader.tabsForeground', 'editorLineNumber.activeForeground', 'input.foreground', 'list.foreground', 'menu.foreground', 'panelTitle.activeForeground', 'sideBar.foreground', 'statusBar.foreground', 'tab.activeForeground', 'tab.inactiveForeground', 'terminal.foreground', 'titleBar.activeForeground', 'titleBar.inactiveForeground', 'quickInput.foreground', 'notifications.foreground', 'editorSuggestWidget.foreground', 'editorHoverWidget.foreground', 'welcomePage.progress.foreground'], + mutedForeground: ['activityBar.inactiveForeground', 'editorLineNumber.foreground', 'editorCodeLens.foreground', 'editorWhitespace.foreground', 'input.placeholderForeground', 'list.deemphasizedForeground', 'panelTitle.inactiveForeground', 'sideBarSectionHeader.foreground', 'tab.unfocusedInactiveForeground', 'terminal.ansiBrightBlack', 'descriptionForeground'], + border: ['editorGroup.border', 'editorGroupHeader.border', 'editorGroupHeader.tabsBorder', 'editorHoverWidget.border', 'editorOverviewRuler.border', 'input.border', 'menu.border', 'notificationCenter.border', 'notificationToast.border', 'notifications.border', 'panel.border', 'panelInput.border', 'sideBar.border', 'tab.border', 'dropdown.border', 'commandCenter.border', 'focusBorder'], + hover: ['list.hoverBackground', 'menu.selectionBackground', 'quickInputList.focusBackground', 'toolbar.hoverBackground', 'button.hoverBackground', 'welcomePage.tileHoverBackground', 'editorSuggestWidget.selectedBackground', 'editorBracketMatch.background', 'editor.selectionBackground', 'editor.lineHighlightBackground', 'editorGroup.dropBackground'], + accent: ['activityBarBadge.background', 'button.background', 'editor.findMatchBackground', 'editorGutter.modifiedBackground', 'editorOverviewRuler.modifiedForeground', 'welcomePage.progress.background', 'textLink.foreground', 'textLink.activeForeground', 'notificationLink.foreground', 'editorCursor.foreground', 'inputOption.activeBorder', 'editorSuggestWidget.highlightForeground', 'editorOverviewRuler.bracketMatchForeground', 'list.activeSelectionIconForeground'], + accentForeground: ['activityBarBadge.foreground', 'button.foreground', 'welcomePage.progress.foreground'], + error: ['editorError.foreground', 'editorError.border', 'editorOverviewRuler.errorForeground', 'editorMarkerNavigationError.background', 'inputValidation.errorBackground', 'inputValidation.errorBorder'], + warning: ['editorWarning.foreground', 'editorWarning.border', 'editorOverviewRuler.warningForeground', 'editorMarkerNavigationWarning.background', 'inputValidation.warningBackground', 'inputValidation.warningBorder'], + info: ['editorInfo.foreground', 'editorInfo.border', 'editorOverviewRuler.infoForeground', 'editorMarkerNavigationInfo.background', 'inputValidation.infoBackground', 'inputValidation.infoBorder'] +}; + +function colors(p) { + const result = {}; + for (const [group, keys] of Object.entries(groups)) for (const key of keys) result[key] = p[group]; + Object.assign(result, { + 'button.secondaryBackground': p.muted, 'button.secondaryForeground': p.foreground, 'button.secondaryHoverBackground': p.hover, + 'menu.selectionForeground': p.foreground, 'inputOption.hoverBackground': p.hover, 'statusBarItem.hoverBackground': p.hover, + 'extensionButton.prominentHoverBackground': p.hover, 'editorBracketMatch.border': p.accent, + 'editorOverviewRuler.addedForeground': p.success, 'editorOverviewRuler.deletedForeground': p.error, + 'editorGutter.addedBackground': p.success, 'editorGutter.deletedBackground': p.error, + 'terminal.ansiBlack': p.background, 'terminal.ansiRed': p.error, 'terminal.ansiYellow': p.warning, 'terminal.ansiBlue': p.info, + 'terminal.ansiMagenta': p.accent, 'terminal.ansiWhite': p.foreground, 'terminal.ansiBrightRed': p.error, + 'terminal.ansiBrightYellow': p.warning, 'terminal.ansiBrightBlue': p.info, 'terminal.ansiBrightMagenta': p.accent, + 'terminal.ansiBrightWhite': p.foreground, 'editorRuler.foreground': p.border, 'editorMarkerNavigation.background': p.surface, + 'editorStickyScroll.background': p.surface, 'editorStickyScrollHover.background': p.hover, 'editorWidget.background': p.surface, + 'editorWidget.foreground': p.foreground, 'editorWidget.border': p.border, 'peekView.border': p.border, + 'peekViewEditor.matchHighlightBackground': p.hover, 'gitDecoration.addedResourceForeground': p.success, + 'gitDecoration.modifiedResourceForeground': p.warning, 'gitDecoration.deletedResourceForeground': p.error, + 'gitDecoration.untrackedResourceForeground': p.accent, 'badge.background': p.accent, 'badge.foreground': p.primaryForeground, + 'progressBar.background': p.accent, 'list.activeSelectionBackground': p.selection, 'list.inactiveSelectionBackground': p.hover, + 'list.activeSelectionForeground': p.foreground, 'list.inactiveSelectionForeground': p.foreground, + 'editor.wordHighlightBackground': p.hover, 'editor.wordHighlightStrongBackground': p.selection, + 'editorIndentGuide.background1': p.border, 'editorIndentGuide.activeBackground1': p.accent, + 'editorBracketHighlight.foreground1': p.accent, 'editorBracketHighlight.foreground2': p.function, + 'editorBracketHighlight.foreground3': p.type, 'editorBracketHighlight.foreground4': p.warning, + 'editorBracketHighlight.foreground5': p.success, 'editorBracketHighlight.foreground6': p.info, + 'editorOverviewRuler.commonContentForeground': p.foreground, 'editorOverviewRuler.currentContentForeground': p.foreground, + 'editorOverviewRuler.incomingContentForeground': p.foreground + }); + return result; +} + +function tokenColors(p) { + return [ + { name: 'Comments', scope: ['comment', 'punctuation.definition.comment'], settings: { foreground: p.comment, fontStyle: 'italic' } }, + { name: 'Keywords', scope: ['keyword', 'storage', 'storage.type', 'storage.modifier'], settings: { foreground: p.keyword } }, + { name: 'Operators', scope: 'keyword.operator', settings: { foreground: p.operator } }, + { name: 'Types', scope: ['entity.name.type', 'support.type', 'storage.type.class'], settings: { foreground: p.type } }, + { name: 'Constants', scope: ['constant', 'constant.language', 'support.constant'], settings: { foreground: p.constant } }, + { name: 'Variables', scope: ['variable', 'variable.parameter', 'meta.definition.variable'], settings: { foreground: p.variable } }, + { name: 'Functions', scope: ['entity.name.function', 'support.function', 'meta.function-call'], settings: { foreground: p.function } }, + { name: 'Strings', scope: ['string', 'string.quoted'], settings: { foreground: p.string } }, + { name: 'Numbers', scope: ['constant.numeric', 'constant.character'], settings: { foreground: p.number } }, + { name: 'Tags', scope: ['entity.name.tag', 'support.class.component'], settings: { foreground: p.keyword } }, + { name: 'Attributes', scope: 'entity.other.attribute-name', settings: { foreground: p.type } }, + { name: 'Links', scope: ['markup.underline.link', 'string.other.link'], settings: { foreground: p.accent } }, + { name: 'Invalid', scope: ['invalid', 'invalid.illegal'], settings: { foreground: p.error } }, + { name: 'Diff added', scope: 'markup.inserted', settings: { foreground: p.success } }, + { name: 'Diff deleted', scope: 'markup.deleted', settings: { foreground: p.error } } + ]; +} + +for (const [mode, palette] of Object.entries(palettes)) { + const theme = { name: palette.name, type: mode === 'dark' ? 'dark' : 'light', colors: colors(palette), tokenColors: tokenColors(palette) }; + const filename = mode === 'dark' ? 'kawa-color-theme.json' : 'kawa-light-color-theme.json'; + fs.writeFileSync(path.join(themesDir, filename), `${JSON.stringify(theme, null, 2)}\n`); +} + +if (require.main === module) console.log('Built Kawa dark and light themes.'); diff --git a/themes/kawa-color-theme.json b/themes/kawa-color-theme.json new file mode 100644 index 0000000..c5c0da9 --- /dev/null +++ b/themes/kawa-color-theme.json @@ -0,0 +1,328 @@ +{ + "name": "Kawa Dark", + "type": "dark", + "colors": { + "activityBar.background": "#191017", + "editor.background": "#191017", + "editorGutter.background": "#191017", + "editorPane.background": "#191017", + "panel.background": "#191017", + "sideBar.background": "#191017", + "statusBar.background": "#191017", + "tab.activeBackground": "#191017", + "tab.inactiveBackground": "#191017", + "titleBar.activeBackground": "#191017", + "titleBar.inactiveBackground": "#191017", + "editorGroupHeader.tabsBackground": "#191017", + "editorGroupHeader.noTabsBackground": "#191017", + "quickInput.background": "#191017", + "notifications.background": "#191017", + "notificationCenterHeader.background": "#191017", + "terminal.background": "#191017", + "editorSuggestWidget.background": "#2c1f2d", + "editorHoverWidget.background": "#2c1f2d", + "input.background": "#2c1f2d", + "dropdown.background": "#2c1f2d", + "menu.background": "#2c1f2d", + "quickInputTitle.background": "#2c1f2d", + "welcomePage.tileBackground": "#2c1f2d", + "peekViewEditor.background": "#2c1f2d", + "peekViewResult.background": "#2c1f2d", + "peekViewTitle.background": "#2c1f2d", + "panelSectionHeader.background": "#2c1f2d", + "debugToolBar.background": "#2c1f2d", + "activityBar.foreground": "#fafafa", + "editor.foreground": "#fafafa", + "editorGroupHeader.tabsForeground": "#fafafa", + "editorLineNumber.activeForeground": "#fafafa", + "input.foreground": "#fafafa", + "list.foreground": "#fafafa", + "menu.foreground": "#fafafa", + "panelTitle.activeForeground": "#fafafa", + "sideBar.foreground": "#fafafa", + "statusBar.foreground": "#fafafa", + "tab.activeForeground": "#fafafa", + "tab.inactiveForeground": "#fafafa", + "terminal.foreground": "#fafafa", + "titleBar.activeForeground": "#fafafa", + "titleBar.inactiveForeground": "#fafafa", + "quickInput.foreground": "#fafafa", + "notifications.foreground": "#fafafa", + "editorSuggestWidget.foreground": "#fafafa", + "editorHoverWidget.foreground": "#fafafa", + "activityBar.inactiveForeground": "#a9a9b1", + "editorLineNumber.foreground": "#a9a9b1", + "editorCodeLens.foreground": "#a9a9b1", + "editorWhitespace.foreground": "#a9a9b1", + "input.placeholderForeground": "#a9a9b1", + "list.deemphasizedForeground": "#a9a9b1", + "panelTitle.inactiveForeground": "#a9a9b1", + "sideBarSectionHeader.foreground": "#a9a9b1", + "tab.unfocusedInactiveForeground": "#a9a9b1", + "terminal.ansiBrightBlack": "#a9a9b1", + "descriptionForeground": "#a9a9b1", + "editorGroup.border": "#2c1f2d", + "editorGroupHeader.border": "#2c1f2d", + "editorGroupHeader.tabsBorder": "#2c1f2d", + "editorHoverWidget.border": "#2c1f2d", + "editorOverviewRuler.border": "#2c1f2d", + "input.border": "#2c1f2d", + "menu.border": "#2c1f2d", + "notificationCenter.border": "#2c1f2d", + "notificationToast.border": "#2c1f2d", + "notifications.border": "#2c1f2d", + "panel.border": "#2c1f2d", + "panelInput.border": "#2c1f2d", + "sideBar.border": "#2c1f2d", + "tab.border": "#2c1f2d", + "dropdown.border": "#2c1f2d", + "commandCenter.border": "#2c1f2d", + "focusBorder": "#2c1f2d", + "list.hoverBackground": "#432b40", + "menu.selectionBackground": "#432b40", + "quickInputList.focusBackground": "#432b40", + "toolbar.hoverBackground": "#432b40", + "button.hoverBackground": "#432b40", + "welcomePage.tileHoverBackground": "#432b40", + "editorSuggestWidget.selectedBackground": "#432b40", + "editorBracketMatch.background": "#432b40", + "editor.selectionBackground": "#432b40", + "editor.lineHighlightBackground": "#432b40", + "editorGroup.dropBackground": "#432b40", + "activityBarBadge.background": "#f9b1dc", + "button.background": "#f9b1dc", + "editor.findMatchBackground": "#f9b1dc", + "editorGutter.modifiedBackground": "#f9b1dc", + "editorOverviewRuler.modifiedForeground": "#f9b1dc", + "welcomePage.progress.background": "#f9b1dc", + "textLink.foreground": "#f9b1dc", + "textLink.activeForeground": "#f9b1dc", + "notificationLink.foreground": "#f9b1dc", + "editorCursor.foreground": "#f9b1dc", + "inputOption.activeBorder": "#f9b1dc", + "editorSuggestWidget.highlightForeground": "#f9b1dc", + "editorOverviewRuler.bracketMatchForeground": "#f9b1dc", + "list.activeSelectionIconForeground": "#f9b1dc", + "editorError.foreground": "#b42318", + "editorError.border": "#b42318", + "editorOverviewRuler.errorForeground": "#b42318", + "editorMarkerNavigationError.background": "#b42318", + "inputValidation.errorBackground": "#b42318", + "inputValidation.errorBorder": "#b42318", + "editorWarning.foreground": "#d69a5d", + "editorWarning.border": "#d69a5d", + "editorOverviewRuler.warningForeground": "#d69a5d", + "editorMarkerNavigationWarning.background": "#d69a5d", + "inputValidation.warningBackground": "#d69a5d", + "inputValidation.warningBorder": "#d69a5d", + "editorInfo.foreground": "#a9a9b1", + "editorInfo.border": "#a9a9b1", + "editorOverviewRuler.infoForeground": "#a9a9b1", + "editorMarkerNavigationInfo.background": "#a9a9b1", + "inputValidation.infoBackground": "#a9a9b1", + "inputValidation.infoBorder": "#a9a9b1", + "button.secondaryBackground": "#2c1f2d", + "button.secondaryForeground": "#fafafa", + "button.secondaryHoverBackground": "#432b40", + "menu.selectionForeground": "#fafafa", + "inputOption.hoverBackground": "#432b40", + "statusBarItem.hoverBackground": "#432b40", + "extensionButton.prominentHoverBackground": "#432b40", + "editorBracketMatch.border": "#f9b1dc", + "editorOverviewRuler.addedForeground": "#7da889", + "editorOverviewRuler.deletedForeground": "#b42318", + "editorGutter.addedBackground": "#7da889", + "editorGutter.deletedBackground": "#b42318", + "terminal.ansiBlack": "#191017", + "terminal.ansiRed": "#b42318", + "terminal.ansiYellow": "#d69a5d", + "terminal.ansiBlue": "#a9a9b1", + "terminal.ansiMagenta": "#f9b1dc", + "terminal.ansiWhite": "#fafafa", + "terminal.ansiBrightRed": "#b42318", + "terminal.ansiBrightYellow": "#d69a5d", + "terminal.ansiBrightBlue": "#a9a9b1", + "terminal.ansiBrightMagenta": "#f9b1dc", + "terminal.ansiBrightWhite": "#fafafa", + "editorRuler.foreground": "#2c1f2d", + "editorMarkerNavigation.background": "#2c1f2d", + "editorStickyScroll.background": "#2c1f2d", + "editorStickyScrollHover.background": "#432b40", + "editorWidget.background": "#2c1f2d", + "editorWidget.foreground": "#fafafa", + "editorWidget.border": "#2c1f2d", + "peekView.border": "#2c1f2d", + "peekViewEditor.matchHighlightBackground": "#432b40", + "gitDecoration.addedResourceForeground": "#7da889", + "gitDecoration.modifiedResourceForeground": "#d69a5d", + "gitDecoration.deletedResourceForeground": "#b42318", + "gitDecoration.untrackedResourceForeground": "#f9b1dc", + "badge.background": "#f9b1dc", + "badge.foreground": "#18181b", + "progressBar.background": "#f9b1dc", + "list.activeSelectionBackground": "#5a3150", + "list.inactiveSelectionBackground": "#432b40", + "list.activeSelectionForeground": "#fafafa", + "list.inactiveSelectionForeground": "#fafafa", + "editor.wordHighlightBackground": "#432b40", + "editor.wordHighlightStrongBackground": "#5a3150", + "editorIndentGuide.background1": "#2c1f2d", + "editorIndentGuide.activeBackground1": "#f9b1dc", + "editorBracketHighlight.foreground1": "#f9b1dc", + "editorBracketHighlight.foreground2": "#f4ba9f", + "editorBracketHighlight.foreground3": "#c9b0d9", + "editorBracketHighlight.foreground4": "#d69a5d", + "editorBracketHighlight.foreground5": "#7da889", + "editorBracketHighlight.foreground6": "#a9a9b1", + "editorOverviewRuler.commonContentForeground": "#fafafa", + "editorOverviewRuler.currentContentForeground": "#fafafa", + "editorOverviewRuler.incomingContentForeground": "#fafafa" + }, + "tokenColors": [ + { + "name": "Comments", + "scope": [ + "comment", + "punctuation.definition.comment" + ], + "settings": { + "foreground": "#a9a9b1", + "fontStyle": "italic" + } + }, + { + "name": "Keywords", + "scope": [ + "keyword", + "storage", + "storage.type", + "storage.modifier" + ], + "settings": { + "foreground": "#f9b1dc" + } + }, + { + "name": "Operators", + "scope": "keyword.operator", + "settings": { + "foreground": "#d9c5ce" + } + }, + { + "name": "Types", + "scope": [ + "entity.name.type", + "support.type", + "storage.type.class" + ], + "settings": { + "foreground": "#c9b0d9" + } + }, + { + "name": "Constants", + "scope": [ + "constant", + "constant.language", + "support.constant" + ], + "settings": { + "foreground": "#c9b0d9" + } + }, + { + "name": "Variables", + "scope": [ + "variable", + "variable.parameter", + "meta.definition.variable" + ], + "settings": { + "foreground": "#d9c5ce" + } + }, + { + "name": "Functions", + "scope": [ + "entity.name.function", + "support.function", + "meta.function-call" + ], + "settings": { + "foreground": "#f4ba9f" + } + }, + { + "name": "Strings", + "scope": [ + "string", + "string.quoted" + ], + "settings": { + "foreground": "#d6a6b8" + } + }, + { + "name": "Numbers", + "scope": [ + "constant.numeric", + "constant.character" + ], + "settings": { + "foreground": "#e1b68f" + } + }, + { + "name": "Tags", + "scope": [ + "entity.name.tag", + "support.class.component" + ], + "settings": { + "foreground": "#f9b1dc" + } + }, + { + "name": "Attributes", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#c9b0d9" + } + }, + { + "name": "Links", + "scope": [ + "markup.underline.link", + "string.other.link" + ], + "settings": { + "foreground": "#f9b1dc" + } + }, + { + "name": "Invalid", + "scope": [ + "invalid", + "invalid.illegal" + ], + "settings": { + "foreground": "#b42318" + } + }, + { + "name": "Diff added", + "scope": "markup.inserted", + "settings": { + "foreground": "#7da889" + } + }, + { + "name": "Diff deleted", + "scope": "markup.deleted", + "settings": { + "foreground": "#b42318" + } + } + ] +} diff --git a/themes/kawa-light-color-theme.json b/themes/kawa-light-color-theme.json new file mode 100644 index 0000000..ae8f075 --- /dev/null +++ b/themes/kawa-light-color-theme.json @@ -0,0 +1,328 @@ +{ + "name": "Kawa Light", + "type": "light", + "colors": { + "activityBar.background": "#fcf8f9", + "editor.background": "#fcf8f9", + "editorGutter.background": "#fcf8f9", + "editorPane.background": "#fcf8f9", + "panel.background": "#fcf8f9", + "sideBar.background": "#fcf8f9", + "statusBar.background": "#fcf8f9", + "tab.activeBackground": "#fcf8f9", + "tab.inactiveBackground": "#fcf8f9", + "titleBar.activeBackground": "#fcf8f9", + "titleBar.inactiveBackground": "#fcf8f9", + "editorGroupHeader.tabsBackground": "#fcf8f9", + "editorGroupHeader.noTabsBackground": "#fcf8f9", + "quickInput.background": "#fcf8f9", + "notifications.background": "#fcf8f9", + "notificationCenterHeader.background": "#fcf8f9", + "terminal.background": "#fcf8f9", + "editorSuggestWidget.background": "#f5eff1", + "editorHoverWidget.background": "#f5eff1", + "input.background": "#f5eff1", + "dropdown.background": "#f5eff1", + "menu.background": "#f5eff1", + "quickInputTitle.background": "#f5eff1", + "welcomePage.tileBackground": "#f5eff1", + "peekViewEditor.background": "#f5eff1", + "peekViewResult.background": "#f5eff1", + "peekViewTitle.background": "#f5eff1", + "panelSectionHeader.background": "#f5eff1", + "debugToolBar.background": "#f5eff1", + "activityBar.foreground": "#191017", + "editor.foreground": "#191017", + "editorGroupHeader.tabsForeground": "#191017", + "editorLineNumber.activeForeground": "#191017", + "input.foreground": "#191017", + "list.foreground": "#191017", + "menu.foreground": "#191017", + "panelTitle.activeForeground": "#191017", + "sideBar.foreground": "#191017", + "statusBar.foreground": "#191017", + "tab.activeForeground": "#191017", + "tab.inactiveForeground": "#191017", + "terminal.foreground": "#191017", + "titleBar.activeForeground": "#191017", + "titleBar.inactiveForeground": "#191017", + "quickInput.foreground": "#191017", + "notifications.foreground": "#191017", + "editorSuggestWidget.foreground": "#191017", + "editorHoverWidget.foreground": "#191017", + "activityBar.inactiveForeground": "#a38f96", + "editorLineNumber.foreground": "#a38f96", + "editorCodeLens.foreground": "#a38f96", + "editorWhitespace.foreground": "#a38f96", + "input.placeholderForeground": "#a38f96", + "list.deemphasizedForeground": "#a38f96", + "panelTitle.inactiveForeground": "#a38f96", + "sideBarSectionHeader.foreground": "#a38f96", + "tab.unfocusedInactiveForeground": "#a38f96", + "terminal.ansiBrightBlack": "#a38f96", + "descriptionForeground": "#a38f96", + "editorGroup.border": "#ecdfe3", + "editorGroupHeader.border": "#ecdfe3", + "editorGroupHeader.tabsBorder": "#ecdfe3", + "editorHoverWidget.border": "#ecdfe3", + "editorOverviewRuler.border": "#ecdfe3", + "input.border": "#ecdfe3", + "menu.border": "#ecdfe3", + "notificationCenter.border": "#ecdfe3", + "notificationToast.border": "#ecdfe3", + "notifications.border": "#ecdfe3", + "panel.border": "#ecdfe3", + "panelInput.border": "#ecdfe3", + "sideBar.border": "#ecdfe3", + "tab.border": "#ecdfe3", + "dropdown.border": "#ecdfe3", + "commandCenter.border": "#ecdfe3", + "focusBorder": "#ecdfe3", + "list.hoverBackground": "#f1e4e9", + "menu.selectionBackground": "#f1e4e9", + "quickInputList.focusBackground": "#f1e4e9", + "toolbar.hoverBackground": "#f1e4e9", + "button.hoverBackground": "#f1e4e9", + "welcomePage.tileHoverBackground": "#f1e4e9", + "editorSuggestWidget.selectedBackground": "#f1e4e9", + "editorBracketMatch.background": "#f1e4e9", + "editor.selectionBackground": "#f1e4e9", + "editor.lineHighlightBackground": "#f1e4e9", + "editorGroup.dropBackground": "#f1e4e9", + "activityBarBadge.background": "#9d426f", + "button.background": "#9d426f", + "editor.findMatchBackground": "#9d426f", + "editorGutter.modifiedBackground": "#9d426f", + "editorOverviewRuler.modifiedForeground": "#9d426f", + "welcomePage.progress.background": "#9d426f", + "textLink.foreground": "#9d426f", + "textLink.activeForeground": "#9d426f", + "notificationLink.foreground": "#9d426f", + "editorCursor.foreground": "#9d426f", + "inputOption.activeBorder": "#9d426f", + "editorSuggestWidget.highlightForeground": "#9d426f", + "editorOverviewRuler.bracketMatchForeground": "#9d426f", + "list.activeSelectionIconForeground": "#9d426f", + "editorError.foreground": "#b42318", + "editorError.border": "#b42318", + "editorOverviewRuler.errorForeground": "#b42318", + "editorMarkerNavigationError.background": "#b42318", + "inputValidation.errorBackground": "#b42318", + "inputValidation.errorBorder": "#b42318", + "editorWarning.foreground": "#9a5b16", + "editorWarning.border": "#9a5b16", + "editorOverviewRuler.warningForeground": "#9a5b16", + "editorMarkerNavigationWarning.background": "#9a5b16", + "inputValidation.warningBackground": "#9a5b16", + "inputValidation.warningBorder": "#9a5b16", + "editorInfo.foreground": "#6f6370", + "editorInfo.border": "#6f6370", + "editorOverviewRuler.infoForeground": "#6f6370", + "editorMarkerNavigationInfo.background": "#6f6370", + "inputValidation.infoBackground": "#6f6370", + "inputValidation.infoBorder": "#6f6370", + "button.secondaryBackground": "#f5eff1", + "button.secondaryForeground": "#191017", + "button.secondaryHoverBackground": "#f1e4e9", + "menu.selectionForeground": "#191017", + "inputOption.hoverBackground": "#f1e4e9", + "statusBarItem.hoverBackground": "#f1e4e9", + "extensionButton.prominentHoverBackground": "#f1e4e9", + "editorBracketMatch.border": "#9d426f", + "editorOverviewRuler.addedForeground": "#3f7a54", + "editorOverviewRuler.deletedForeground": "#b42318", + "editorGutter.addedBackground": "#3f7a54", + "editorGutter.deletedBackground": "#b42318", + "terminal.ansiBlack": "#fcf8f9", + "terminal.ansiRed": "#b42318", + "terminal.ansiYellow": "#9a5b16", + "terminal.ansiBlue": "#6f6370", + "terminal.ansiMagenta": "#9d426f", + "terminal.ansiWhite": "#191017", + "terminal.ansiBrightRed": "#b42318", + "terminal.ansiBrightYellow": "#9a5b16", + "terminal.ansiBrightBlue": "#6f6370", + "terminal.ansiBrightMagenta": "#9d426f", + "terminal.ansiBrightWhite": "#191017", + "editorRuler.foreground": "#ecdfe3", + "editorMarkerNavigation.background": "#f5eff1", + "editorStickyScroll.background": "#f5eff1", + "editorStickyScrollHover.background": "#f1e4e9", + "editorWidget.background": "#f5eff1", + "editorWidget.foreground": "#191017", + "editorWidget.border": "#ecdfe3", + "peekView.border": "#ecdfe3", + "peekViewEditor.matchHighlightBackground": "#f1e4e9", + "gitDecoration.addedResourceForeground": "#3f7a54", + "gitDecoration.modifiedResourceForeground": "#9a5b16", + "gitDecoration.deletedResourceForeground": "#b42318", + "gitDecoration.untrackedResourceForeground": "#9d426f", + "badge.background": "#9d426f", + "badge.foreground": "#fafafa", + "progressBar.background": "#9d426f", + "list.activeSelectionBackground": "#ead1dc", + "list.inactiveSelectionBackground": "#f1e4e9", + "list.activeSelectionForeground": "#191017", + "list.inactiveSelectionForeground": "#191017", + "editor.wordHighlightBackground": "#f1e4e9", + "editor.wordHighlightStrongBackground": "#ead1dc", + "editorIndentGuide.background1": "#ecdfe3", + "editorIndentGuide.activeBackground1": "#9d426f", + "editorBracketHighlight.foreground1": "#9d426f", + "editorBracketHighlight.foreground2": "#a34f35", + "editorBracketHighlight.foreground3": "#76517d", + "editorBracketHighlight.foreground4": "#9a5b16", + "editorBracketHighlight.foreground5": "#3f7a54", + "editorBracketHighlight.foreground6": "#6f6370", + "editorOverviewRuler.commonContentForeground": "#191017", + "editorOverviewRuler.currentContentForeground": "#191017", + "editorOverviewRuler.incomingContentForeground": "#191017" + }, + "tokenColors": [ + { + "name": "Comments", + "scope": [ + "comment", + "punctuation.definition.comment" + ], + "settings": { + "foreground": "#8d7d84", + "fontStyle": "italic" + } + }, + { + "name": "Keywords", + "scope": [ + "keyword", + "storage", + "storage.type", + "storage.modifier" + ], + "settings": { + "foreground": "#9d426f" + } + }, + { + "name": "Operators", + "scope": "keyword.operator", + "settings": { + "foreground": "#5f4b55" + } + }, + { + "name": "Types", + "scope": [ + "entity.name.type", + "support.type", + "storage.type.class" + ], + "settings": { + "foreground": "#76517d" + } + }, + { + "name": "Constants", + "scope": [ + "constant", + "constant.language", + "support.constant" + ], + "settings": { + "foreground": "#76517d" + } + }, + { + "name": "Variables", + "scope": [ + "variable", + "variable.parameter", + "meta.definition.variable" + ], + "settings": { + "foreground": "#4d3942" + } + }, + { + "name": "Functions", + "scope": [ + "entity.name.function", + "support.function", + "meta.function-call" + ], + "settings": { + "foreground": "#a34f35" + } + }, + { + "name": "Strings", + "scope": [ + "string", + "string.quoted" + ], + "settings": { + "foreground": "#8e536c" + } + }, + { + "name": "Numbers", + "scope": [ + "constant.numeric", + "constant.character" + ], + "settings": { + "foreground": "#8b5e34" + } + }, + { + "name": "Tags", + "scope": [ + "entity.name.tag", + "support.class.component" + ], + "settings": { + "foreground": "#9d426f" + } + }, + { + "name": "Attributes", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#76517d" + } + }, + { + "name": "Links", + "scope": [ + "markup.underline.link", + "string.other.link" + ], + "settings": { + "foreground": "#9d426f" + } + }, + { + "name": "Invalid", + "scope": [ + "invalid", + "invalid.illegal" + ], + "settings": { + "foreground": "#b42318" + } + }, + { + "name": "Diff added", + "scope": "markup.inserted", + "settings": { + "foreground": "#3f7a54" + } + }, + { + "name": "Diff deleted", + "scope": "markup.deleted", + "settings": { + "foreground": "#b42318" + } + } + ] +}