# Complete List of BiomeJS Supported Languages: JavaScript, TypeScript, CSS, GraphQL, and More

> Explore BiomeJS supported languages including JavaScript, TypeScript, CSS, GraphQL, and more. Optimize your codebase with Biome's powerful tooling.

- Repository: [Biome/biome](https://github.com/biomejs/biome)
- Tags: api-reference
- Published: 2026-06-19

---

**BiomeJS supports JavaScript, TypeScript, JSX, JSON, JSONC, CSS, GraphQL, Markdown, YAML, and HTML/Vue/Svelte files, with each language implemented as a dedicated Rust crate for parsing, formatting, and linting.**

BiomeJS is a unified toolchain that provides a fast formatter, linter, and parser for modern web development. Understanding the full list of **BiomeJS supported languages** helps developers leverage its Rust-based core across their entire codebase. According to the `biomejs/biome` repository, each language is handled by a dedicated crate, as documented in `packages/@biomejs/biome/README.md` [L39-L41] and the internal language-support page referenced at [L80-L82].

## Core Web Development Languages

### JavaScript, TypeScript, and JSX Support

The [`crates/biome_js_parser/src/lib.rs`](https://github.com/biomejs/biome/blob/main/crates/biome_js_parser/src/lib.rs) crate powers Biome's handling of **JavaScript** (`.js`), **TypeScript** (`.ts`, `.tsx`), and **JSX** (`.jsx`). This single crate implements the parser, formatter, and analyzer for the entire JavaScript ecosystem. It forms the foundation of Biome's language support, handling the majority of parsing and formatting workloads.

## Data Serialization and Configuration

### JSON and JSONC

For **JSON** (`.json`) and **JSON with Comments** (`.jsonc`), Biome uses [`crates/biome_json_parser/src/lib.rs`](https://github.com/biomejs/biome/blob/main/crates/biome_json_parser/src/lib.rs). This crate distinguishes between strict JSON and comment-enabled JSONC formats, allowing Biome to format configuration files without stripping comments.

### YAML Configuration Files

**YAML** files (`.yaml`, `.yml`) are parsed via [`crates/biome_yaml_syntax/src/lib.rs`](https://github.com/biomejs/biome/blob/main/crates/biome_yaml_syntax/src/lib.rs). This support enables Biome to format CI/CD pipelines, GitHub Actions workflows, and package manifests consistently with other web assets.

## Style Languages and API Schemas

### CSS Formatting and Linting

The [`crates/biome_css_parser/src/lib.rs`](https://github.com/biomejs/biome/blob/main/crates/biome_css_parser/src/lib.rs) implements complete **CSS** (`.css`) support. This dedicated crate enables Biome to parse modern CSS syntax, format stylesheets, and apply linting rules specific to cascading style sheets.

### GraphQL Schema Support

**GraphQL** files (`.graphql`, `.gql`) are handled by [`crates/biome_graphql_parser/src/lib.rs`](https://github.com/biomejs/biome/blob/main/crates/biome_graphql_parser/src/lib.rs). This allows Biome to format schema definitions and query documents, ensuring consistency across your API layer.

## Documentation and Template Files

### Markdown Processing

**Markdown** documents (`.md`, `.markdown`) receive support through [`crates/biome_markdown_parser/src/lib.rs`](https://github.com/biomejs/biome/blob/main/crates/biome_markdown_parser/src/lib.rs). This enables formatting of documentation files, READMEs, and content repositories while preserving the document structure.

### HTML, Vue, and Svelte Files

Biome handles **HTML**-ish files—including `.html`, `.vue`, and `.svelte`—through `crates/biome_html_parser`, which is embedded within the JavaScript/TypeScript parser. This architecture allows Biome to extract and process embedded JavaScript and CSS snippets within these template files.

## Embedded Language Snippets

Biome supports **embedded snippets** such as GraphQL template tags inside JavaScript or CSS within JSX blocks. This functionality is handled by the JavaScript/TypeScript parser with the experimental configuration flag `javascript.experimentalEmbeddedSnippetsEnabled`. When enabled, Biome can format code inside tagged template literals and style attributes.

## Automatic Language Detection

Biome automatically detects file types based on extensions and loads the appropriate language module. You can format any supported language using the standard CLI commands:

```bash

# Format JavaScript/TypeScript/JSX

npx @biomejs/biome format src/app.tsx --write

# Format JSON and JSONC

npx @biomejs/biome format config.json --write

# Format CSS

npx @biomejs/biome format styles/main.css --write

# Format GraphQL

npx @biomejs/biome check schema.graphql --write

# Format Markdown

npx @biomejs/biome format docs/guide.md --write

# Format YAML

npx @biomejs/biome format .github/workflows/ci.yml --write

# Format HTML/Vue/Svelte

npx @biomejs/biome format index.html --write

```

All commands work out-of-the-box because Biome recognizes extensions and invokes the correct parser from the respective crate.

## Summary

- **BiomeJS supported languages** include JavaScript, TypeScript, JSX, JSON, JSONC, CSS, GraphQL, Markdown, YAML, and HTML/Vue/Svelte templates.
- Each language is implemented as a dedicated Rust crate (e.g., `crates/biome_js_parser`, `crates/biome_css_parser`).
- The toolchain automatically detects file extensions and loads the appropriate parser.
- Embedded snippets require the experimental flag `javascript.experimentalEmbeddedSnippetsEnabled`.
- HTML-like files are processed through `crates/biome_html_parser` embedded within the JS/TS parser.

## Frequently Asked Questions

### Does Biome support Vue and Svelte files?

Yes. Biome handles `.vue` and `.svelte` files through the `crates/biome_html_parser` module, which is embedded within the JavaScript/TypeScript parser. This allows Biome to extract and format embedded scripts and styles within these single-file components.

### What is the difference between JSON and JSONC support in Biome?

Biome distinguishes between strict **JSON** (`.json`) and **JSON with Comments** (`.jsonc`) through the `crates/biome_json_parser` crate. JSONC mode preserves comments during formatting, making it suitable for configuration files like [`tsconfig.json`](https://github.com/biomejs/biome/blob/main/tsconfig.json) or [`settings.json`](https://github.com/biomejs/biome/blob/main/settings.json).

### How does Biome handle embedded GraphQL or CSS in JavaScript files?

Biome supports embedded snippets through the JavaScript/TypeScript parser when the `javascript.experimentalEmbeddedSnippetsEnabled` flag is enabled. This allows the formatter to recognize and process GraphQL template literals and CSS-in-JS constructs.

### Is YAML formatting fully supported or just syntax parsing?

According to the `crates/biome_yaml_syntax` implementation, Biome provides YAML parsing capabilities. While primarily focused on syntax support, this enables Biome to format YAML configuration files consistently with other languages in your project.