New theme: Basic rules

- json-focused
This commit is contained in:
Candifloss 2026-07-23 00:35:13 +05:30
parent a1503291c7
commit 37163d5cd7
3 changed files with 308 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
scratchpad/

112
themes/candy_json/README.md Normal file
View File

@ -0,0 +1,112 @@
# candy_json
A json-focused `bat` theme with json logs and other json files in mind.
### Global
| Setting | Color | Note |
| ------------ | --------- | ------------------------------- |
| Background | | Omitted to use terminal default |
| Foreground | `#BBBBBB` | High readability |
| Selection | `#343942` | Visible without overwhelming |
| Current line | `#24272B` | Subtle |
| Invisibles | `#4B5057` | Low contrast |
| Guides | `#31353A` | Structural only |
### Basic
| No. | Rule | Color | Style |
| --- | ---------------- | ---------------------- | -------- |
| 1. | JSON Keys | **`#6FCFFF`** | **bold** |
| 2. | String Values | `#FFD866` | normal |
| 3. | Generic Strings | `#FFD866` | normal |
| 4. | String Quotes | `#8A8F98` | normal |
| 5. | Escape Sequences | `#FF9E64` | bold |
| 6. | Invalid Escapes | `#FFFFFF` on `#D7263D` | bold |
| 7. | Unclosed Strings | `#FFFFFF` on `#D7263D` | bold |
### Numbers
| No. | Rule | Color | Style |
| --- | -------------- | --------- | ------ |
| 8. | Integer | `#C792EA` | normal |
| 9. | Float | `#C792EA` | normal |
| 10. | Numeric Digits | `#C792EA` | normal |
| 11. | Decimal Point | `#D7B8F3` | normal |
| 12. | Minus Sign | `#D08AE8` | bold |
### Literals
| No. | Rule | Color | Style |
| --- | ----- | --------- | ------ |
| 13. | true | `#A9DC76` | bold |
| 14. | false | `#A9DC76` | bold |
| 15. | null | `#FF6188` | italic |
### Structure
| No. | Rule | Color | Style |
| --- | -------------- | --------- | ----------- |
| 16. | Object Scope | *(none)* | *(inherit)* |
| 17. | Object Braces | `#7E848D` | normal |
| 18. | Array Scope | *(none)* | *(inherit)* |
| 19. | Array Brackets | `#7E848D` | normal |
| 20. | Colon | `#BFC5CE` | normal |
| 21. | Comma | `#666C75` | normal |
### Comments
| No. | Rule | Color | Style |
| --- | ------------------ | --------- | ------ |
| 22. | Line Comment | `#6C7A89` | italic |
| 23. | Block Comment | `#6C7A89` | italic |
| 24. | Documentation | `#8C9AA7` | italic |
| 25. | Empty Block | `#8C9AA7` | italic |
| 26. | Comment Delimiters | `#59636D` | normal |
### Invalid JSON
| No. | Rule | Color | Style |
| --- | --------------------------- | ---------------------- | ----- |
| 27. | Expected Key | `#FFFFFF` on `#D7263D` | bold |
| 28. | Expected Value | `#FFFFFF` on `#D7263D` | bold |
| 29. | Expected Separator | `#FFFFFF` on `#D7263D` | bold |
| 30. | Expected Sequence Separator | `#FFFFFF` on `#D7263D` | bold |
### Merge Conflicts
| No. | Rule | Color | Style |
| --- | ------------------ | --------- | ----- |
| 31. | Conflict Begin | `#FF6188` | bold |
| 32. | Conflict Separator | `#FFD866` | bold |
| 33. | Conflict End | `#A9DC76` | bold |
| 34. | Branch Name | `#78DCE8` | bold |
---
### Palette Summary
| Purpose | Color |
| -------- | ---------------------- |
| Keys | `#6FCFFF` |
| Strings | `#FFD866` |
| Numbers | `#C792EA` |
| Booleans | `#A9DC76` |
| Null | `#FF6188` |
| Escapes | `#FF9E64` |
| Quotes | `#8A8F98` |
| Braces | `#7E848D` |
| Colon | `#BFC5CE` |
| Comma | `#666C75` |
| Comments | `#6C7A89` |
| Errors | `#FFFFFF` on `#D7263D` |

View File

@ -0,0 +1,195 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>name</key>
<string>Candy JSON</string>
<key>author</key>
<string>Candifloss</string>
<key>colorSpaceName</key>
<string>sRGB</string>
<key>semanticClass</key>
<string>theme.dark.candy_json</string>
<key>uuid</key>
<string>6B7F1F6D-8C42-47F4-96F4-C4E6A2A4B001</string>
<key>settings</key>
<array>
<!-- --- Global ---------------------------------------------- -->
<dict>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#BBBBBB</string>
<key>caret</key>
<string>#FFFFFF</string>
<key>selection</key>
<string>#343942</string>
<key>lineHighlight</key>
<string>#24272B</string>
<key>invisibles</key>
<string>#4B5057</string>
<key>guide</key>
<string>#31353A</string>
<key>activeGuide</key>
<string>#4A4F57</string>
<key>stackGuide</key>
<string>#5B6068</string>
</dict>
</dict>
<!-- --- Rule 1: JSON Keys ----------------------------------- -->
<dict>
<key>name</key>
<string>JSON Keys</string>
<key>scope</key>
<string>meta.mapping.key.json</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#6FCFFF</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<!-- --- Rule 2: String Values ------------------------------- -->
<dict>
<key>name</key>
<string>String Values</string>
<key>scope</key>
<string>meta.mapping.value.json string.quoted.double.json</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#FFD866</string>
</dict>
</dict>
<!-- --- Rule 3: Generic Strings ----------------------------- -->
<dict>
<key>name</key>
<string>Generic Strings</string>
<key>scope</key>
<string>meta.string.json string.quoted.double.json</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#FFD866</string>
</dict>
</dict>
<!-- --- Rule 4: String Quotes ------------------------------- -->
<dict>
<key>name</key>
<string>String Quotes</string>
<key>scope</key>
<string>
punctuation.definition.string.begin.json,
punctuation.definition.string.end.json
</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8A8F98</string>
</dict>
</dict>
<!-- --- Rule 5: Escape Sequences ---------------------------- -->
<dict>
<key>name</key>
<string>Escape Sequences</string>
<key>scope</key>
<string>constant.character.escape.json</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#FF9E64</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<!-- --- Rule 6: Invalid Escapes ----------------------------- -->
<dict>
<key>name</key>
<string>Invalid Escapes</string>
<key>scope</key>
<string>invalid.illegal.unrecognized-string-escape.json</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#FFFFFF</string>
<key>background</key>
<string>#D7263D</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<!-- --- Rule 7: Unclosed Strings ---------------------------- -->
<dict>
<key>name</key>
<string>Unclosed Strings</string>
<key>scope</key>
<string>invalid.illegal.unclosed-string.json</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#FFFFFF</string>
<key>background</key>
<string>#D7263D</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
</array>
</dict>
</plist>