Is there a css snippet i can make to change my font when typing in different languages (specifically Chinese/Thai)

hello! i’m pretty new to obsidian, and i know it’s possible to change my fonts, but the default font for Chinese/Thai characters is not for me, so i want it to be able to change everytime i write in Chinese/Thai.

i have a few css snippets already to do various things, but i think it can also work to do this…? (or i guess im hoping), if anyone knows how to do this it would be awesome! thank you so much (:

Gemini did something similar for me with Cyrillic and Latin characters using a unicode-range. I suppose this could also be done for Chinese and Thai characters.

Here’s how it looks in my CSS:

/* ==========================================================================
   HYBRID TYPOGRAPHY - SET B: NUNITO (Soft & Rounded Style) + CODE
   ========================================================================== */

/* 1. ЦИФРЫ (0-9) -> JetBrains Mono Light */
@font-face {
  font-family: 'ObsidianNunitoHybrid';
  src: local('JetBrains Mono Light'), local('JetBrainsMono-Light');
  font-weight: 400;
  font-style: normal;
  unicode-range: U+0030-0039;
}

@font-face {
  font-family: 'ObsidianNunitoHybrid';
  src: local('JetBrains Mono Bold'), local('JetBrainsMono-Bold');
  font-weight: 700;
  font-style: normal;
  unicode-range: U+0030-0039;
}

/* 2. ЛАТИНИЦА -> Plus Jakarta Sans */
@font-face {
  font-family: 'ObsidianNunitoHybrid';
  src: local('Plus Jakarta Sans'), local('PlusJakartaSans-Regular');
  font-weight: 400;
  font-style: normal;
  unicode-range: U+0041-005A, U+0061-007A, U+00C0-00FF, U+0100-017F;
}

@font-face {
  font-family: 'ObsidianNunitoHybrid';
  src: local('Plus Jakarta Sans Bold'), local('PlusJakartaSans-Bold');
  font-weight: 700;
  font-style: normal;
  unicode-range: U+0041-005A, U+0061-007A, U+00C0-00FF, U+0100-017F;
}

/* 3.1. ИСКЛЮЧЕНИЕ ДЛЯ % И & -> Plus Jakarta Sans */
@font-face {
  font-family: 'ObsidianNunitoHybrid';
  src: local('Plus Jakarta Sans'), local('PlusJakartaSans-Regular'),
       local('Inter'), local('Inter-Regular');
  font-weight: 400;
  font-style: normal;
  unicode-range: U+0025, U+0026;
}

@font-face {
  font-family: 'ObsidianNunitoHybrid';
  src: local('Plus Jakarta Sans Bold'), local('PlusJakartaSans-Bold'),
       local('Inter Bold'), local('Inter-Bold');
  font-weight: 700;
  font-style: normal;
  unicode-range: U+0025, U+0026;
}

/* 3.2. ОСНОВНЫЕ СИМВОЛЫ И ПУНКТУАЦИЯ -> Fira Code (БЕЗ % и &) */
@font-face {
  font-family: 'ObsidianNunitoHybrid';
  src: local('Fira Code'), local('FiraCode-Regular');
  font-weight: 400;
  font-style: normal;
  unicode-range: 
    U+0020-0024,
    U+0027-002F,
    U+003A-0040,
    U+005B-0060,
    U+007B-007E,
    U+2000-206F, U+20A0-20CF, U+2200-22FF;
}

@font-face {
  font-family: 'ObsidianNunitoHybrid';
  src: local('Fira Code Bold'), local('FiraCode-Bold');
  font-weight: 700;
  font-style: normal;
  unicode-range: 
    U+0020-0024,
    U+0027-002F,
    U+003A-0040,
    U+005B-0060,
    U+007B-007E,
    U+2000-206F, U+20A0-20CF, U+2200-22FF;
}

/* 4. КИРИЛЛИЦА -> Nunito */
@font-face {
  font-family: 'ObsidianNunitoHybrid';
  src: local('Nunito'), local('Nunito-Regular');
  font-weight: 400;
  unicode-range: U+0400-04FF, U+0500-052F, U+1C80-1C88, U+2DE0-2DFF, U+A640-A69F;
}

@font-face {
  font-family: 'ObsidianNunitoHybrid';
  src: local('Nunito Bold'), local('Nunito-Bold');
  font-weight: 700;
  unicode-range: U+0400-04FF, U+0500-052F, U+1C80-1C88, U+2DE0-2DFF, U+A640-A69F;
}

/* --------------------------------------------------------------------------
   5. ПРИМЕНЕНИЕ К ОСНОВНОМУ ТЕКСТУ И РЕЖИМУ РЕДАКТИРОВАНИЯ
   -------------------------------------------------------------------------- */
body {
  --font-text: 'ObsidianNunitoHybrid', sans-serif !important;
  --font-editor: 'ObsidianNunitoHybrid', sans-serif !important;
  
  /* Задаем отдельный шрифт для кода (JetBrains Mono или Cascadia Code) */
  --font-monospace: 'JetBrains Mono', 'Cascadia Code', monospace !important;
}

.cm-s-obsidian .cm-line,
.markdown-rendered p, .markdown-rendered li {
  font-family: 'ObsidianNunitoHybrid', sans-serif !important;
  line-height: 1.6 !important;
}

/* --------------------------------------------------------------------------
   6. ПРИНУДИТЕЛЬНЫЕ СЕЛЕКТОРЫ ДЛЯ INLINE CODE И CODE BLOCKS (Live Preview + Reading)
   -------------------------------------------------------------------------- */
/* Инлайн-код `code` */
code,
.cm-inline-code,
.cm-s-obsidian span.cm-inline-code {
  font-family: var(--font-monospace) !important;
  font-size: 0.9em !important; /* Легкое уменьшение, чтобы инлайн-код красиво вписывался в строку */
}

/* Блоки кода ```codeblock``` */
pre code,
.cm-codeblock,
.HyperMD-codeblock,
.cm-embed-block.markdown-rendered pre {
  font-family: var(--font-monospace) !important;
}