Przejdź do głównej zawartości
docs
GitHub

Format motywu

Pola wersji 2 dla tokenów, układu, tła, składni edytora i kolorów terminala.

Pole Znaczenie
version Wymagane. Musi wynosić 2.
name Wymagana niepusta nazwa, do 160 znaków.
$schema Opcjonalne wskazanie schematu dla edytora.
author, description Opcjonalne metadane.
appearance Domyślnie adaptive, opcjonalnie stałe light / dark.
common, light, dark Wspólne wartości motywu kolorów i zmiany dla poszczególnych trybów.
resources Mapa lokalnych assets i uporządkowana lista stylesheets.
vscode Rozwiązane dane VS Code zachowane przez importer.
iconTheme { kind: 'file' lub 'product', path: 'icons.json' } dla pakietu ikon.

Pakiet ikon nie może jednocześnie definiować common, light, dark, resources ani vscode. Motywy ikon i kolorów są osobnymi wyborami.

Każda sekcja kolorów (common, light, dark) obsługuje poniższe elementy.

Mapa nazw zmiennych CSS na wartości tekstowe. Nazwa używa --, po których występują małe litery, cyfry i łączniki. Pierwszy znak po -- musi być literą.

Często używane tokeny Zastosowanie
--color-background, --color-background-text Główne tło i tekst.
--color-surface, --color-surface-text Tło powierzchni i jej tekst.
--color-surface-variant, --color-surface-variant-text Powierzchnie i tekst drugoplanowy.
--color-outline Obramowania.
--color-primary, --color-primary-text Akcent i tekst na akcencie.
--color-error, --color-warning, --color-info Kolory stanów.
--font-family, --font-family-mono, --font-size Podstawowa typografia.
--density, --border-width, --focus-width Skala odstępów i grubość linii.
--radius-control, --radius-tab, --radius-menu, --radius-modal Zaokrąglenia.
--terminal-padding, --pane-spacing, --sidebar-min-width, --sidebar-max-width Odstępy i wymiary paneli.

Katalog tokenów zawiera wszystkie 226 tokenów DeepMono z wartościami Light i Dark. W pierwszej kolejności używaj istniejących tokenów semantycznych, zanim sięgniesz po selektory aplikacji.

Tokeny --color-*, kolory edytora, składni i terminala przyjmują zapis hex RGB/RGBA (#abc, #abcd, #aabbcc, #aabbccdd), transparent, var(--token) oraz color-mix(in srgb, var(--token) 70%, transparent) z procentem od 0 do 100. Inne wyrażenia umieść w opcjonalnym arkuszu CSS. Odwołanie var() w polu koloru nie może mieć argumentu wartości zapasowej.

Pole Wartości
tabs inline, above, below
statusbar top, bottom
settingsNavigation left, right, top, bottom

Wartości zmieniają sposób wyświetlania. Nie przepisują zapisanego układu obszaru roboczego.

Mapa selektorów CSS na mapy deklaracji. Nazwy właściwości używają zapisu kebab-case, a wartości są tekstem:

{
"common": {
"styles": {
".workspace-info": {
"padding": "20px",
"border-radius": "var(--radius-control)"
}
}
}
}

To fragment dokumentu. Silnik waliduje i serializuje deklaracje przez CSSOM. Selektory nie są izolowane od pozostałej części aplikacji.

Obsługiwane obszary to app, terminal, sidebar, titlebar, statusbar, settings i modal. Każdy przyjmuje:

Pole Wartość
image Względna ścieżka pliku wewnątrz pakietu.
opacity Liczba od 0 do 1. Dotyczy warstwy tła, nie tekstu.
blur Liczba od 0 do 100.
size, position Wartości CSS, np. cover i center.
repeat no-repeat, repeat, repeat-x, repeat-y, space, round.
overlay, blendMode Kolor nakładki i tryb mieszania CSS.

fontFamily jest tekstem, a fontSize przyjmuje wartości od 6 do 72. colors obsługuje background, foreground, gutterBackground, gutterForeground, activeLine, selection i cursor.

syntax obsługuje dokładnie te nazwy:

keyword, string, number, comment, type, function, variable, property,
operator, punctuation, heading, strong, emphasis, link, invalid

Każdy wpis składni przyjmuje color, fontStyle (normal lub italic), fontWeight (normal, bold albo od 100 do 900 co 100) oraz textDecoration (none lub underline). Wpisy odpowiadają stałym kategoriom edytora CodeMirror/Lezer.

Pole Wartość
preset Nazwa z dołączonej biblioteki palet xterm-theme. Dostępne nazwy sprawdzisz przez Load terminal presets w edytorze.
fontFamily Nazwa rodziny fontów.
fontSize Od 6 do 72.
lineHeight Od 1 do 3.
letterSpacing Od -2 do 20.
fontWeight, fontWeightBold normal, bold lub liczba od 1 do 1000.
cursorStyle bar, block, underline.
cursorInactiveStyle outline, bar, block, underline, none.
cursorBlink, drawBoldTextInBrightColors Wartość logiczna.
cursorWidth Od 1 do 10.
minimumContrastRatio Od 1 do 21.

colors przyjmuje wszystkie poniższe klucze:

background, foreground, cursor, cursorAccent,
selectionBackground, selectionForeground, selectionInactiveBackground,
black, red, green, yellow, blue, magenta, cyan, white,
brightBlack, brightRed, brightGreen, brightYellow,
brightBlue, brightMagenta, brightCyan, brightWhite,
searchMatchBackground, searchActiveMatchBackground,
searchMatchBorder, searchActiveMatchBorder

Jawnie ustawione kolory nadpisują preset. Wybory użytkownika w Settings > Terminal nadpisują wartości terminala pochodzące z motywu. Motyw kolorów nie konfiguruje zachowania powłoki ani wcięć edytora.

Mapa ID właścicieli pluginów na mapy nazw tokenów i wartości tekstowych. Tokeny stają się zmiennymi CSS z własną przestrzenią nazw. To pole nie nadpisuje właściwości rdzenia aplikacji. Przykład znajduje się na stronie Zasoby i CSS.

resources należy do głównego poziomu dokumentu, a nie sekcji wyglądu. assets mapuje aliasy zapisane małymi literami na pliki wewnątrz pakietu; stylesheets jest uporządkowaną tablicą unikatowych ścieżek .css. Oba pola są opcjonalne dla motywu kolorów. Pełne przykłady znajdziesz w zasobach i CSS.

Wartość Limit lub reguła
Dokument JSONC UTF-8, maksymalnie 256 KiB i 32 poziomy zagnieżdżenia
Nazwa Niepusta, maksymalnie 160 znaków
Zwykłe teksty metadanych Niepuste, maksymalnie 2000 znaków
Selektor CSS Niepusty, maksymalnie 1000 znaków; musi tworzyć regułę stylu
Wartość tokenu, tokenu pluginu lub deklaracji CSS Niepusty tekst, maksymalnie 4000 znaków
Ścieżka zasobu Maksymalnie 1024 znaki; bez ścieżek absolutnych, pustych segmentów, . i ..
Alias zasobu Najpierw mała litera, następnie małe litery, cyfry lub myślniki
ID właściciela pluginu Małe litery i przestrzeń nazw, np. example.workspace-info

Nieznane pola strukturalne są odrzucane. Pola liczbowe wymagają skończonych liczb JSON z odpowiedniego zakresu; nie ujmuj ich w cudzysłowy. Pomijaj opcjonalne pola zamiast przypisywać null. Powtórzone klucze są błędem również w obiektach zagnieżdżonych.

Schemat JSON pomaga w uzupełnianiu nazw i strukturze; podgląd sprawdza również obsługę CSS, nazwy presetów i ładowanie zasobów. Poprawny dokument JSON może nie przejść tych kontroli. Komunikaty błędów zawierają nazwę pliku, linię i kolumnę, gdy są dostępne.

vscode przechowuje rozwiązaną treść źródłową: zależności include i zewnętrzne pliki TextMate najpierw przetwórz importerem. Nie wpisuj nierozwiązanych ścieżek do tego pola. Natywne appearance nadal określa tryb wyglądu.

Katalog tokenów opisuje wszystkie wbudowane zmienne, edytor i terminal zawiera przepisy, a ikony mają osobny format dokumentu.

Kod źródłowy: format i limity, generowanie CSS, schemat wersji 2.