├── .gitignore ├── icon.png ├── images ├── ui-dark.png ├── ui-light.png └── theme-dark.png ├── .editorconfig ├── README.md ├── CHANGELOG.md ├── .vscode └── launch.json ├── package.json ├── .github └── workflows │ └── build.yml └── themes ├── Dark.json └── Light.json /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kube/vscode-kay-theme/HEAD/icon.png -------------------------------------------------------------------------------- /images/ui-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kube/vscode-kay-theme/HEAD/images/ui-dark.png -------------------------------------------------------------------------------- /images/ui-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kube/vscode-kay-theme/HEAD/images/ui-light.png -------------------------------------------------------------------------------- /images/theme-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kube/vscode-kay-theme/HEAD/images/theme-dark.png -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | trim_trailing_whitespace = true 7 | insert_final_newline = true 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Kay theme 2 | 3 | Focus on code. 4 | 5 | ![Dark theme](images/theme-dark.png) 6 | 7 | UI 8 | -- 9 | 10 | #### Dark 11 | ![Dark UI](images/ui-dark.png) 12 | 13 | #### Light 14 | ![Light UI](images/ui-light.png) 15 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 1.0.2 2 | 3 | * Add border on top of tabs 4 | 5 | ## 1.0.2 6 | 7 | * Dark Theme: Fixes 8 | 9 | ## 1.0.1 10 | 11 | * Dark Theme: Remove contrast between SideBar and TitleBar. 12 | 13 | ## 1.0.0 14 | 15 | * Use VSCode JSON theme description. 16 | * Remove Kay Contrast theme 17 | * Enhanced colors 18 | * UI theme 19 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | // A launch configuration that launches the extension inside a new window 2 | { 3 | "version": "0.1.0", 4 | "configurations": [ 5 | { 6 | "name": "Launch Extension", 7 | "type": "extensionHost", 8 | "request": "launch", 9 | "runtimeExecutable": "${execPath}", 10 | "args": [ 11 | "--extensionDevelopmentPath=${workspaceRoot}" 12 | ] 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "theme-kay", 3 | "displayName": "Kay theme", 4 | "description": "80's neon lights theme", 5 | "version": "1.0.3", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/kube/vscode-kay-theme" 9 | }, 10 | "icon": "icon.png", 11 | "publisher": "kube", 12 | "engines": { 13 | "vscode": "^1.12.0" 14 | }, 15 | "categories": [ 16 | "Themes" 17 | ], 18 | "contributes": { 19 | "themes": [ 20 | { 21 | "label": "Kay Light", 22 | "uiTheme": "vs", 23 | "path": "./themes/Light.json" 24 | }, 25 | { 26 | "label": "Kay Dark", 27 | "uiTheme": "vs-dark", 28 | "path": "./themes/Dark.json" 29 | } 30 | ] 31 | }, 32 | "scripts": { 33 | "build": "echo 'No build is defined'" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | 2 | #########. 3 | ########",#: 4 | #########',##". 5 | ##'##'## .##',##. 6 | ## ## ## # ##",#. 7 | ## ## ## ## ##' 8 | ## ## ## :## 9 | ## ## ##." 10 | 11 | name: Build 12 | 13 | on: [push] 14 | 15 | jobs: 16 | # 17 | # Install 18 | # 19 | install: 20 | name: Install 21 | runs-on: ubuntu-latest 22 | 23 | steps: 24 | - uses: actions/checkout@v2 25 | - name: Use Node.js 26 | uses: actions/setup-node@v1 27 | with: 28 | node-version: 12.x 29 | 30 | - name: Get yarn cache directory path 31 | id: yarn-cache-dir-path 32 | run: echo "::set-output name=dir::$(yarn cache dir)" 33 | 34 | - name: Cache node modules 35 | uses: actions/cache@v2 36 | id: yarn-cache 37 | with: 38 | path: '**/node_modules' 39 | key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }} 40 | 41 | - run: yarn install 42 | 43 | # 44 | # Build 45 | # 46 | build: 47 | name: Build 48 | needs: install 49 | runs-on: ubuntu-latest 50 | 51 | steps: 52 | - uses: actions/checkout@v2 53 | - name: Use Node.js ${{ matrix.node-version }} 54 | uses: actions/setup-node@v1 55 | with: 56 | node-version: ${{ matrix.node-version }} 57 | 58 | - name: Load node_modules 59 | uses: actions/cache@v2 60 | with: 61 | path: '**/node_modules' 62 | key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }} 63 | 64 | - run: yarn build 65 | 66 | # - name: Persist dist 67 | # uses: actions/upload-artifact@v2 68 | # with: 69 | # name: dist 70 | # path: dist 71 | 72 | # 73 | # Publish on VSCode Marketplace 74 | # 75 | publish-vscode: 76 | name: Publish to VSCode Marketplace 77 | runs-on: ubuntu-latest 78 | needs: build 79 | 80 | if: github.ref == 'refs/heads/master' 81 | 82 | steps: 83 | - name: Checkout repository 84 | uses: actions/checkout@v2 85 | 86 | - name: Get version in current branch 87 | id: branch-version 88 | run: echo "##[set-output name=value;]$(jq -r .version package.json)" 89 | 90 | - name: Check if version exists on VSCode Marketplace 91 | id: marketplace-version 92 | run: echo "##[set-output name=value;]$(npx vsce show --json kube.theme-kay | jq -r .versions[0].version)" 93 | 94 | - name: Version update detected 95 | if: steps.marketplace-version.outputs.value != steps.branch-version.outputs.value 96 | run: 'echo "Version update found:\n Current: ${{ steps.marketplace-version.outputs.value }}.\n New: ${{ steps.branch-version.outputs.value }}"' 97 | 98 | # - name: Load dist 99 | # if: steps.marketplace-version.outputs.value != steps.branch-version.outputs.value 100 | # uses: actions/download-artifact@v2 101 | # with: 102 | # name: dist 103 | 104 | - name: Publish package to VSCode Marketplace 105 | if: steps.marketplace-version.outputs.value != steps.branch-version.outputs.value 106 | env: 107 | VSCODE_AUTH_TOKEN: ${{ secrets.VSCODE_MARKETPLACE_TOKEN }} 108 | run: npx vsce publish --yarn -p $VSCODE_AUTH_TOKEN 109 | -------------------------------------------------------------------------------- /themes/Dark.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "vscode://schemas/color-theme", 3 | "type": "dark", 4 | "colors": { 5 | "tab.activeBorderTop": "#ffffff10", 6 | "tab.unfocusedActiveBorderTop": "#ffffff10", 7 | "focusBorder": "#3c7eeb42", 8 | "input.background": "#ffffff09", 9 | "input.border": "#b0b1d80f", 10 | "list.focusBackground": "#4c5ead58", 11 | "list.activeSelectionBackground": "#4c5ead58", 12 | "list.inactiveSelectionBackground": "#4c5ead58", 13 | "list.inactiveSelectionForeground": "#ffffff", 14 | "list.hoverBackground": "#b0b1d813", 15 | "scrollbar.shadow": "#00000067", 16 | "scrollbarSlider.background": "#ffffff09", 17 | "scrollbarSlider.hoverBackground": "#ffffff18", 18 | "scrollbarSlider.activeBackground": "#ffffff13", 19 | "editor.background": "#14161a", 20 | "editor.foreground": "#8599b3", 21 | "editor.selectionBackground": "#333470", 22 | "editor.lineHighlightBackground": "#ccccff07", 23 | "editorCursor.foreground": "#6a819e", 24 | "editorWhitespace.foreground": "#282f40", 25 | "editorLineNumber.foreground": "#ccccff31", 26 | "tab.activeBackground": "#15171b", 27 | "tab.inactiveBackground": "#0c0e12", 28 | "tab.border": "#ffffff10", 29 | "tab.inactiveForeground": "#ffffff42", 30 | "editorGroupHeader.tabsBackground": "#0c0e12", 31 | "editorGroupHeader.tabsBorder": "#14161a", 32 | "editorGroup.border": "#ffffff12", 33 | "activityBar.background": "#0c0e12", 34 | "activityBar.foreground": "#ffffff76", 35 | "sideBar.background": "#0c0e12", 36 | "sideBar.foreground": "#ffffffcc", 37 | "sideBar.border": "#ffffff13", 38 | "sideBarTitle.foreground": "#ffffff42", 39 | "sideBarSectionHeader.background": "#0c0e12", 40 | "sideBarSectionHeader.foreground": "#ffffff94", 41 | "titleBar.inactiveForeground": "#ffffff67", 42 | "titleBar.activeBackground": "#0c0e12", 43 | "titleBar.inactiveBackground": "#0c0e12" 44 | }, 45 | "tokenColors": [ 46 | { 47 | "settings": { 48 | "foreground": "#8599b3ff", 49 | "background": "#14161aff" 50 | } 51 | }, 52 | { 53 | "name": "Comment", 54 | "scope": "comment", 55 | "settings": { 56 | "foreground": "#465173" 57 | } 58 | }, 59 | { 60 | "name": "String", 61 | "scope": "string", 62 | "settings": { 63 | "foreground": "#0AFAFA" 64 | } 65 | }, 66 | { 67 | "name": "Number", 68 | "scope": "constant.numeric", 69 | "settings": { 70 | "foreground": "#0AFAFA" 71 | } 72 | }, 73 | { 74 | "name": "Built-in constant", 75 | "scope": "constant.language", 76 | "settings": { 77 | "foreground": "#0AFAFA" 78 | } 79 | }, 80 | { 81 | "name": "User-defined constant", 82 | "scope": "constant.character, constant.other", 83 | "settings": { 84 | "foreground": "#0AFAFA" 85 | } 86 | }, 87 | { 88 | "name": "Variable", 89 | "scope": "variable", 90 | "settings": { 91 | "fontStyle": "", 92 | "foreground": "#3A8CC7" 93 | } 94 | }, 95 | { 96 | "name": "Keyword", 97 | "scope": "keyword", 98 | "settings": { 99 | "foreground": "#7F83FF" 100 | } 101 | }, 102 | { 103 | "name": "Storage", 104 | "scope": "storage", 105 | "settings": { 106 | "fontStyle": "", 107 | "foreground": "#7F83FF" 108 | } 109 | }, 110 | { 111 | "name": "Storage type", 112 | "scope": "storage.type", 113 | "settings": { 114 | "fontStyle": "italic", 115 | "foreground": "#7F83FF" 116 | } 117 | }, 118 | { 119 | "name": "Class name", 120 | "scope": "entity.name.class", 121 | "settings": { 122 | "foreground": "#FF4A98", 123 | "fontStyle": " bold" 124 | } 125 | }, 126 | { 127 | "name": "Inherited class", 128 | "scope": "entity.other.inherited-class", 129 | "settings": { 130 | "fontStyle": "italic ", 131 | "foreground": "#FF4A98" 132 | } 133 | }, 134 | { 135 | "name": "Function name", 136 | "scope": "entity.name.function", 137 | "settings": { 138 | "foreground": "#FF4A98" 139 | } 140 | }, 141 | { 142 | "name": "Function argument", 143 | "scope": "variable.parameter", 144 | "settings": { 145 | "fontStyle": "italic", 146 | "foreground": "#45B8FF" 147 | } 148 | }, 149 | { 150 | "name": "Tag name", 151 | "scope": "entity.name.tag", 152 | "settings": { 153 | "fontStyle": "", 154 | "foreground": "#7F83FF" 155 | } 156 | }, 157 | { 158 | "name": "Tag attribute", 159 | "scope": "entity.other.attribute-name", 160 | "settings": { 161 | "foreground": "#FF4A98" 162 | } 163 | }, 164 | { 165 | "name": "Library function", 166 | "scope": "support.function", 167 | "settings": { 168 | "foreground": "#45B8FF" 169 | } 170 | }, 171 | { 172 | "name": "Library constant", 173 | "scope": "support.constant", 174 | "settings": { 175 | "fontStyle": "", 176 | "foreground": "#45B8FF" 177 | } 178 | }, 179 | { 180 | "name": "Library class/type", 181 | "scope": "support.type, support.class", 182 | "settings": { 183 | "fontStyle": "italic", 184 | "foreground": "#45B8FF" 185 | } 186 | }, 187 | { 188 | "name": "Library variable", 189 | "scope": "support.other.variable", 190 | "settings": { 191 | "fontStyle": "" 192 | } 193 | }, 194 | { 195 | "name": "Invalid", 196 | "scope": "invalid", 197 | "settings": { 198 | "background": "#FF3392", 199 | "fontStyle": "", 200 | "foreground": "#F1ADD2" 201 | } 202 | }, 203 | { 204 | "name": "Invalid deprecated", 205 | "scope": "invalid.deprecated", 206 | "settings": { 207 | "background": "#615FFF", 208 | "foreground": "#B2AFF0" 209 | } 210 | }, 211 | { 212 | "scope": "token.info-token", 213 | "settings": { 214 | "foreground": "#6796e6" 215 | } 216 | }, 217 | { 218 | "scope": "token.warn-token", 219 | "settings": { 220 | "foreground": "#cd9731" 221 | } 222 | }, 223 | { 224 | "scope": "token.error-token", 225 | "settings": { 226 | "foreground": "#f44747" 227 | } 228 | }, 229 | { 230 | "scope": "token.debug-token", 231 | "settings": { 232 | "foreground": "#b267e6" 233 | } 234 | } 235 | ] 236 | } 237 | -------------------------------------------------------------------------------- /themes/Light.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "vscode://schemas/color-theme", 3 | "type": "light", 4 | "colors": { 5 | "tab.activeBorderTop": "#0000001F", 6 | "tab.unfocusedActiveBorderTop": "#0000001F", 7 | "focusBorder": "#3c7eeb31", 8 | "input.background": "#ffffff22", 9 | "input.border": "#b0b1d82f", 10 | "list.focusBackground": "#4c5ead58", 11 | "list.activeSelectionBackground": "#4c5ead58", 12 | "list.inactiveSelectionBackground": "#4c5ead58", 13 | "list.inactiveSelectionForeground": "#ffffff", 14 | "list.hoverBackground": "#b0b1d813", 15 | "scrollbar.shadow": "#0000000A", 16 | "scrollbarSlider.background": "#00000009", 17 | "scrollbarSlider.hoverBackground": "#00000018", 18 | "scrollbarSlider.activeBackground": "#00000013", 19 | "editor.background": "#f7f5f4", 20 | "editor.foreground": "#768494", 21 | "editor.selectionBackground": "#dbd8ed", 22 | "editor.lineHighlightBackground": "#22220004", 23 | "editorCursor.foreground": "#6e7b8a", 24 | "editorWhitespace.foreground": "#dfe2e8", 25 | "editorLineNumber.foreground": "#22220031", 26 | "tab.inactiveBackground": "#ecebea", 27 | "tab.border": "#00000018", 28 | "tab.activeForeground": "#000000CC", 29 | "tab.inactiveForeground": "#00000058", 30 | "editorGroupHeader.tabsBackground": "#ecebea", 31 | "editorGroupHeader.tabsBorder": "#f7f5f4ff", 32 | "editorGroup.border": "#00000013", 33 | "activityBar.background": "#ecebea", 34 | "activityBar.foreground": "#00000076", 35 | "sideBar.background": "#ecebea", 36 | "sideBar.foreground": "#000000cc", 37 | "sideBar.border": "#0000000f", 38 | "sideBarTitle.foreground": "#00000042", 39 | "sideBarSectionHeader.background": "#00000000", 40 | "sideBarSectionHeader.foreground": "#00000085", 41 | "titleBar.inactiveForeground": "#00000067", 42 | "titleBar.activeBackground": "#ecebea", 43 | "titleBar.inactiveBackground": "#ecebea", 44 | "widget.shadow": "#00000013" 45 | }, 46 | "tokenColors": [ 47 | { 48 | "settings": { 49 | "foreground": "#768494ff", 50 | "background": "#f7f5f4ff" 51 | } 52 | }, 53 | { 54 | "name": "Comment", 55 | "scope": "comment", 56 | "settings": { 57 | "foreground": "#B3B1B8" 58 | } 59 | }, 60 | { 61 | "name": "String", 62 | "scope": "string", 63 | "settings": { 64 | "foreground": "#0EB3B3" 65 | } 66 | }, 67 | { 68 | "name": "Number", 69 | "scope": "constant.numeric", 70 | "settings": { 71 | "foreground": "#0EB3B3" 72 | } 73 | }, 74 | { 75 | "name": "Built-in constant", 76 | "scope": "constant.language", 77 | "settings": { 78 | "foreground": "#0EB3B3" 79 | } 80 | }, 81 | { 82 | "name": "User-defined constant", 83 | "scope": "constant.character, constant.other", 84 | "settings": { 85 | "foreground": "#0EB3B3" 86 | } 87 | }, 88 | { 89 | "name": "Variable", 90 | "scope": "variable", 91 | "settings": { 92 | "fontStyle": "", 93 | "foreground": "#3A8CC7" 94 | } 95 | }, 96 | { 97 | "name": "Keyword", 98 | "scope": "keyword", 99 | "settings": { 100 | "foreground": "#5A41BF" 101 | } 102 | }, 103 | { 104 | "name": "Storage", 105 | "scope": "storage", 106 | "settings": { 107 | "fontStyle": "", 108 | "foreground": "#5A41BF" 109 | } 110 | }, 111 | { 112 | "name": "Storage type", 113 | "scope": "storage.type", 114 | "settings": { 115 | "fontStyle": "italic", 116 | "foreground": "#5A41BF" 117 | } 118 | }, 119 | { 120 | "name": "Class name", 121 | "scope": "entity.name.class", 122 | "settings": { 123 | "foreground": "#E60C6A" 124 | } 125 | }, 126 | { 127 | "name": "Inherited class", 128 | "scope": "entity.other.inherited-class", 129 | "settings": { 130 | "fontStyle": "italic ", 131 | "foreground": "#E60C6A" 132 | } 133 | }, 134 | { 135 | "name": "Function name", 136 | "scope": "entity.name.function", 137 | "settings": { 138 | "fontStyle": "", 139 | "foreground": "#E60C6A" 140 | } 141 | }, 142 | { 143 | "name": "Function argument", 144 | "scope": "variable.parameter", 145 | "settings": { 146 | "fontStyle": "italic", 147 | "foreground": "#1F8DD1" 148 | } 149 | }, 150 | { 151 | "name": "Tag name", 152 | "scope": "entity.name.tag", 153 | "settings": { 154 | "fontStyle": "", 155 | "foreground": "#5A41BF" 156 | } 157 | }, 158 | { 159 | "name": "Tag attribute", 160 | "scope": "entity.other.attribute-name", 161 | "settings": { 162 | "fontStyle": "", 163 | "foreground": "#E60C6A" 164 | } 165 | }, 166 | { 167 | "name": "Library function", 168 | "scope": "support.function", 169 | "settings": { 170 | "fontStyle": "", 171 | "foreground": "#1F8DD1" 172 | } 173 | }, 174 | { 175 | "name": "Library constant", 176 | "scope": "support.constant", 177 | "settings": { 178 | "fontStyle": "", 179 | "foreground": "#1F8DD1" 180 | } 181 | }, 182 | { 183 | "name": "Library class/type", 184 | "scope": "support.type, support.class", 185 | "settings": { 186 | "fontStyle": "italic", 187 | "foreground": "#1F8DD1" 188 | } 189 | }, 190 | { 191 | "name": "Library variable", 192 | "scope": "support.other.variable", 193 | "settings": { 194 | "fontStyle": "" 195 | } 196 | }, 197 | { 198 | "name": "Invalid", 199 | "scope": "invalid", 200 | "settings": { 201 | "background": "#FF3392", 202 | "fontStyle": "", 203 | "foreground": "#F1ADD2" 204 | } 205 | }, 206 | { 207 | "name": "Invalid deprecated", 208 | "scope": "invalid.deprecated", 209 | "settings": { 210 | "background": "#615FFF", 211 | "foreground": "#B2AFF0" 212 | } 213 | }, 214 | { 215 | "scope": "token.info-token", 216 | "settings": { 217 | "foreground": "#316bcd" 218 | } 219 | }, 220 | { 221 | "scope": "token.warn-token", 222 | "settings": { 223 | "foreground": "#cd9731" 224 | } 225 | }, 226 | { 227 | "scope": "token.error-token", 228 | "settings": { 229 | "foreground": "#cd3131" 230 | } 231 | }, 232 | { 233 | "scope": "token.debug-token", 234 | "settings": { 235 | "foreground": "#800080" 236 | } 237 | } 238 | ] 239 | } 240 | --------------------------------------------------------------------------------