├── index.less ├── .gitignore ├── CHANGELOG.md ├── screenshot.png ├── README.md ├── package.json ├── styles ├── colors.less ├── syntax-variables.less └── base.less └── LICENSE.md /index.less: -------------------------------------------------------------------------------- 1 | @import "./styles/base.less"; 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | npm-debug.log 3 | node_modules 4 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 0.1.0 - First Release 2 | * Every feature added 3 | * Every bug fixed 4 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/josh-berry/des-dark-syntax/master/screenshot.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Des Dark Syntax Theme 2 | 3 | A dark syntax theme for partial red/green colorblind folks. 4 | 5 | There may eventually be a Light version. 6 | 7 | ![Screenshot](https://raw.githubusercontent.com/josh-berry/des-dark-syntax/master/screenshot.png) 8 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "des-dark-syntax", 3 | "theme": "syntax", 4 | "version": "0.2.0", 5 | "description": "A dark syntax theme for partial red/green colorblind folks.", 6 | "keywords": [ 7 | "syntax", 8 | "theme" 9 | ], 10 | "repository": "https://github.com/josh-berry/des-dark-syntax", 11 | "license": "MIT", 12 | "engines": { 13 | "atom": ">=1.13.0 <2.0.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /styles/colors.less: -------------------------------------------------------------------------------- 1 | // These colors are specific to the theme. Do not use in a package! 2 | 3 | @des-bg: #282837; 4 | @des-bg-dark: #20202d; 5 | @des-bg-light: #515165; 6 | @des-bg-gray: #404040; 7 | @des-bg-gray-light: #585858; 8 | 9 | @des-neutral: #e0e0e0; 10 | @des-neutral-light: #ffffff; 11 | @des-neutral-dark: #b0b0b0; 12 | 13 | @redpurple: #ec6ccb; 14 | @vermillion: #ff756f; 15 | @vermillion-dark: #803737; 16 | @orange: #c0a822; 17 | @yellow: #dfe223; 18 | @bluegreen: #2fe25c; 19 | @bluegreen-dark: #18712b; 20 | @cyan: #2cc9e5; 21 | @blue: #8080ff; 22 | @blue-dark: #404080; 23 | @skyblue: #3ec9ff; 24 | @skyblue-dark: #1c6480; 25 | @bluegray: #b3b3df; 26 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016 Joshua J. Berry 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /styles/syntax-variables.less: -------------------------------------------------------------------------------- 1 | @import "colors"; 2 | 3 | // This defines all syntax variables that syntax themes must implement when they 4 | // include a syntax-variables.less file. 5 | 6 | // 7 | // UI elements 8 | // 9 | 10 | // General colors 11 | @syntax-text-color: @des-neutral; 12 | @syntax-cursor-color: @des-neutral-light; 13 | @syntax-selection-color: @des-bg-light; 14 | @syntax-background-color: @des-bg; 15 | 16 | // Guide colors 17 | @syntax-wrap-guide-color: @des-bg-light; 18 | @syntax-indent-guide-color: @des-bg-light; 19 | @syntax-invisible-character-color: @des-bg-light; 20 | 21 | // For find and replace markers 22 | @syntax-result-marker-color: @des-neutral; 23 | @syntax-result-marker-color-selected: @bluegray; 24 | 25 | // Gutter colors 26 | @syntax-gutter-text-color: @des-neutral-dark; 27 | @syntax-gutter-text-color-selected: @des-neutral; 28 | @syntax-gutter-background-color: @des-bg-dark; 29 | @syntax-gutter-background-color-selected: @des-bg-dark; 30 | 31 | @syntax-fold-marker-after: @des-neutral-light; 32 | 33 | // 34 | // Text Elements 35 | // 36 | 37 | // For highlighting various things 38 | @syntax-hi-error-fg: @des-neutral-light; 39 | @syntax-hi-error-bg: @vermillion-dark; 40 | 41 | // For git diff info. i.e. in the gutter 42 | @syntax-color-renamed: @blue; 43 | @syntax-color-added: @bluegreen; 44 | @syntax-color-modified: @orange; 45 | @syntax-color-removed: @vermillion; 46 | 47 | // For markup 48 | @syntax-header: @redpurple; 49 | @syntax-bold: @yellow; 50 | @syntax-italic: @orange; 51 | @syntax-link: @blue; 52 | @syntax-block-element: @bluegray; 53 | @syntax-quote: @bluegray; 54 | @syntax-verbatim: @des-neutral-dark; 55 | 56 | // For code 57 | @syntax-keyword: @skyblue; 58 | @syntax-builtin: @blue; 59 | @syntax-comment: @bluegreen; 60 | 61 | @syntax-type: @blue; 62 | @syntax-type-inherited: @skyblue; 63 | @syntax-function: @vermillion; 64 | @syntax-variable: @orange; 65 | 66 | @syntax-constant: @bluegray; 67 | @syntax-constant-escape: @skyblue; 68 | @syntax-constant-interpolate: @cyan; 69 | 70 | @syntax-regexp: @skyblue; 71 | -------------------------------------------------------------------------------- /styles/base.less: -------------------------------------------------------------------------------- 1 | @import "syntax-variables"; 2 | 3 | atom-text-editor { 4 | background-color: @syntax-background-color; 5 | color: @syntax-text-color; 6 | 7 | .wrap-guide { 8 | background-color: @syntax-wrap-guide-color; 9 | } 10 | 11 | .indent-guide { 12 | color: @syntax-indent-guide-color; 13 | } 14 | 15 | .invisible-character { 16 | color: @syntax-invisible-character-color; 17 | } 18 | 19 | .gutter { 20 | background-color: @syntax-gutter-background-color; 21 | color: @syntax-gutter-text-color; 22 | 23 | .line-number { 24 | &.cursor-line { 25 | background-color: @syntax-gutter-background-color-selected; 26 | color: @syntax-gutter-text-color-selected; 27 | } 28 | 29 | &.cursor-line-no-selection { 30 | color: @syntax-gutter-text-color-selected; 31 | } 32 | } 33 | } 34 | 35 | .gutter .line-number.folded, 36 | .gutter .line-number:after, 37 | .fold-marker:after { 38 | color: @syntax-fold-marker-after; 39 | } 40 | 41 | .invisible { 42 | color: @syntax-text-color; 43 | } 44 | 45 | .cursor { 46 | color: @syntax-cursor-color; 47 | } 48 | 49 | .selection .region { 50 | background-color: @syntax-selection-color; 51 | } 52 | .find-result .region { 53 | border: none; 54 | border-bottom: 2px solid @syntax-result-marker-color; 55 | } 56 | 57 | .current-result .region { 58 | border: 1px solid @syntax-result-marker-color-selected; 59 | } 60 | } 61 | 62 | atom-text-editor[mini] .scroll-view { 63 | padding-left: 1px; 64 | } 65 | 66 | .syntax--comment { 67 | color: @syntax-comment; 68 | } 69 | 70 | .syntax--keyword { 71 | color: @syntax-keyword; 72 | 73 | &.syntax--control { 74 | color: @syntax-keyword; 75 | } 76 | 77 | &.syntax--operator { 78 | color: @syntax-builtin; 79 | } 80 | 81 | &.syntax--other.syntax--special-method { 82 | color: @syntax-builtin; 83 | } 84 | 85 | &.syntax--other.syntax--unit { 86 | color: @syntax-builtin; 87 | } 88 | } 89 | 90 | .syntax--storage { 91 | color: @syntax-keyword; 92 | } 93 | 94 | .syntax--constant { 95 | color: @syntax-constant; 96 | 97 | &.syntax--character.syntax--escape { 98 | color: @syntax-constant-escape; 99 | } 100 | 101 | &.syntax--numeric { 102 | color: @syntax-constant; 103 | } 104 | 105 | &.syntax--other.syntax--color { 106 | color: @syntax-constant; 107 | } 108 | 109 | &.syntax--other.syntax--symbol { 110 | color: @syntax-variable; 111 | } 112 | } 113 | 114 | .syntax--variable { 115 | color: @syntax-variable; 116 | 117 | &.syntax--interpolation { 118 | color: @syntax-constant-interpolate; 119 | } 120 | 121 | &.syntax--parameter.syntax--function { 122 | color: @syntax-variable; 123 | } 124 | } 125 | 126 | .syntax--invalid.syntax--illegal { 127 | background-color: @syntax-hi-error-bg; 128 | color: @syntax-hi-error-fg; 129 | } 130 | 131 | .syntax--string { 132 | color: @syntax-constant; 133 | 134 | 135 | &.syntax--regexp { 136 | color: @syntax-regexp; 137 | 138 | .syntax--source.syntax--ruby.syntax--embedded { 139 | color: @syntax-regexp; 140 | } 141 | } 142 | 143 | &.syntax--other.syntax--link { 144 | color: @syntax-link; 145 | } 146 | } 147 | 148 | .syntax--punctuation { 149 | &.syntax--definition { 150 | &.syntax--comment { 151 | color: @syntax-comment; 152 | } 153 | 154 | &.syntax--string, 155 | &.syntax--variable, 156 | &.syntax--parameters, 157 | &.syntax--array { 158 | color: @syntax-text-color; 159 | } 160 | 161 | &.syntax--heading, 162 | &.syntax--identity { 163 | color: @syntax-variable; 164 | } 165 | 166 | &.syntax--bold { 167 | color: @syntax-bold; 168 | font-weight: bold; 169 | } 170 | 171 | &.syntax--italic { 172 | color: @syntax-italic; 173 | font-style: italic; 174 | } 175 | } 176 | 177 | &.syntax--section.syntax--embedded { 178 | color: @syntax-header; 179 | } 180 | 181 | } 182 | 183 | .syntax--support { 184 | &.syntax--class { 185 | color: @syntax-type; 186 | } 187 | 188 | &.syntax--function { 189 | color: @syntax-function; 190 | 191 | &.syntax--any-method { 192 | color: @syntax-function; 193 | } 194 | } 195 | } 196 | 197 | .syntax--entity { 198 | &.syntax--name.syntax--function { 199 | color: @syntax-function; 200 | } 201 | &.syntax--name.syntax--type { 202 | color: @syntax-type; 203 | } 204 | 205 | &.syntax--other.syntax--inherited-class { 206 | color: @syntax-type-inherited; 207 | } 208 | &.syntax--name.syntax--class, &.syntax--name.syntax--type.syntax--class { 209 | color: @syntax-type; 210 | } 211 | 212 | &.syntax--name.syntax--section { 213 | color: @syntax-header; 214 | } 215 | 216 | &.syntax--name.syntax--tag { 217 | color: @syntax-function; 218 | } 219 | 220 | &.syntax--other.syntax--attribute-name { 221 | color: @syntax-variable; 222 | 223 | &.syntax--class { 224 | color: @syntax-function; 225 | } 226 | 227 | &.syntax--id { 228 | color: @syntax-constant; 229 | } 230 | } 231 | } 232 | 233 | .syntax--meta { 234 | &.syntax--class { 235 | color: @syntax-type; 236 | } 237 | 238 | &.syntax--link { 239 | color: @syntax-link; 240 | } 241 | 242 | &.syntax--require { 243 | color: @syntax-link; 244 | } 245 | 246 | &.syntax--selector { 247 | color: @syntax-regexp; 248 | } 249 | 250 | &.syntax--separator { 251 | background-color: @syntax-background-color; 252 | color: @syntax-header; 253 | } 254 | } 255 | 256 | .syntax--none { 257 | color: @syntax-text-color; 258 | } 259 | 260 | .syntax--markup { 261 | &.syntax--bold { 262 | color: @syntax-bold; 263 | font-weight: bold; 264 | } 265 | 266 | &.syntax--changed { 267 | color: @syntax-color-modified; 268 | } 269 | 270 | &.syntax--deleted { 271 | color: @syntax-color-renamed; 272 | } 273 | 274 | &.syntax--italic { 275 | color: @syntax-italic; 276 | font-style: italic; 277 | } 278 | 279 | &.syntax--heading .syntax--punctuation.syntax--definition.syntax--heading { 280 | color: @syntax-header; 281 | } 282 | 283 | &.syntax--inserted { 284 | color: @syntax-color-added; 285 | } 286 | 287 | &.syntax--list { 288 | color: @syntax-block-element; 289 | } 290 | 291 | &.syntax--quote { 292 | color: @syntax-quote; 293 | } 294 | 295 | &.syntax--raw.syntax--inline { 296 | color: @syntax-verbatim; 297 | } 298 | } 299 | 300 | .syntax--source.syntax--gfm .syntax--markup { 301 | -webkit-font-smoothing: auto; 302 | &.syntax--heading { 303 | color: @syntax-header; 304 | } 305 | } 306 | --------------------------------------------------------------------------------