Détail du package

ultracite

haydenbleasel36.6kISC4.2.1

Strict, opinionated linting config for modern TypeScript apps.

ultracite, biome, linter, formatter

readme

Ultracite

Ultracite is a robust linting configuration for modern TypeScript apps, built on Biome. It is incredibly opinionated and strict, enforcing the maximum amount of type safety and code quality. Once Ultracite is set up, it will automatically lint, fix and format your code on save.

Installation

Automatic Installation

Run the command below to install and initialize Ultracite in the current directory:

npx ultracite init

Manual Installation

Run the command below to install Ultracite:

pnpm add -D --save-exact ultracite @biomejs/biome

If you're running VS Code, ensure you have the following extensions installed:

code --install-extension biomejs.biome
code --install-extension bradlc.vscode-tailwindcss

Setup

Create a biome.json with the following contents:

{
  "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
  "extends": ["ultracite"]
}

Ultracite is designed to be used with VS Code. Create a .vscode/settings.json file with the following contents to enable full formatting and fixing on save:

{
  "typescript.tsdk": "node_modules/typescript/lib",
  "editor.defaultFormatter": "biomejs.biome",
  "editor.formatOnSave": true,
  "editor.formatOnPaste": true,
  "emmet.showExpandedAbbreviation": "never",
  "editor.codeActionsOnSave": {
    "source.fixAll.biome": "explicit",
    "source.organizeImports.biome": "explicit"
  },
  "[typescript]": {
    "editor.defaultFormatter": "biomejs.biome"
  },
  "[json]": {
    "editor.defaultFormatter": "biomejs.biome"
  },
  "[javascript]": {
    "editor.defaultFormatter": "biomejs.biome"
  },
  "[jsonc]": {
    "editor.defaultFormatter": "biomejs.biome"
  },
  "[typescriptreact]": {
    "editor.defaultFormatter": "biomejs.biome"
  }
}

Lastly, ensure your tsconfig.json (if it exists) has strictNullChecks enabled.

{
  "compilerOptions": {
    "strictNullChecks": true
  }
}

Usage

Ultracite will automatically lint, fix and format your code on save. If you'd like to run Ultracite manually, you can do so with the following command:

npx ultracite

Configuration

While Ultracite is designed to be zero-config, you can modify anything you'd like in your biome.json file. For example, to enable the noAutofocus rule, you can do the following:

{
  "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
  "extends": ["ultracite"],
  "linter": {
    "rules": {
      "a11y": {
        "noAutofocus": "off"
      }
    }
  }
}

You can also disable rules on a per-line basis by adding a comment to the end of the line:

// biome-ignore lint/security/noDangerouslySetInnerHtml: I do what I want mate.
<div dangerouslySetInnerHTML={{ ... }} />

Notes

Ultracite was previously built on ESLint, Prettier and Stylelint. If you'd like to use that stack, you can install a compatible version of Ultracite with the following command:

pnpm add -D ultracite@3 eslint@8 prettier stylelint typescript jest

changelog

v4.2.1 (Wed Apr 02 2025)

🐛 Bug Fix

Authors: 1


v4.2.0 (Fri Mar 21 2025)

🚀 Enhancement

Authors: 1


v4.1.21 (Mon Mar 10 2025)

🐛 Bug Fix

Authors: 1


v4.1.20 (Wed Feb 19 2025)

⚠️ Pushed to main

Authors: 1


v4.1.19 (Wed Feb 12 2025)

⚠️ Pushed to main

Authors: 1


v4.1.18 (Sat Feb 01 2025)

⚠️ Pushed to main

Authors: 1


v4.1.17 (Fri Jan 24 2025)

⚠️ Pushed to main

Authors: 1


v4.1.16 (Thu Jan 23 2025)

⚠️ Pushed to main

Authors: 1


v4.1.15 (Sun Jan 12 2025)

⚠️ Pushed to main

🔩 Dependency Updates

Authors: 2


v4.1.14 (Sun Dec 15 2024)

⚠️ Pushed to main

Authors: 1


v4.1.13 (Sun Dec 15 2024)

⚠️ Pushed to main

🔩 Dependency Updates

Authors: 2


v4.1.12 (Fri Dec 13 2024)

⚠️ Pushed to main

Authors: 1


v4.1.11 (Tue Dec 10 2024)

⚠️ Pushed to main

Authors: 1


v4.1.10 (Tue Dec 10 2024)

⚠️ Pushed to main

Authors: 1


v4.1.9 (Tue Dec 10 2024)

⚠️ Pushed to main

Authors: 1


v4.1.8 (Mon Dec 02 2024)

⚠️ Pushed to main

🔩 Dependency Updates

Authors: 2


v4.1.7 (Wed Nov 20 2024)

⚠️ Pushed to main

Authors: 1


v4.1.6 (Tue Oct 22 2024)

⚠️ Pushed to main

🔩 Dependency Updates

Authors: 2


v4.1.5 (Fri Oct 18 2024)

⚠️ Pushed to main

Authors: 1


v4.1.4 (Tue Oct 01 2024)

⚠️ Pushed to main

Authors: 1


v4.1.3 (Tue Oct 01 2024)

⚠️ Pushed to main

Authors: 1


v4.1.2 (Mon Sep 30 2024)

⚠️ Pushed to main

Authors: 1


v4.1.1 (Mon Sep 16 2024)

⚠️ Pushed to main

Authors: 1


v4.1.0 (Mon Sep 16 2024)

🚀 Enhancement

Authors: 1


v4.0.6 (Sun Aug 18 2024)

⚠️ Pushed to main

Authors: 1


v4.0.5 (Sat Aug 10 2024)

⚠️ Pushed to main

Authors: 1


v4.0.4 (Fri Jul 19 2024)

⚠️ Pushed to main

Authors: 1


v4.0.3 (Fri Jul 19 2024)

⚠️ Pushed to main

Authors: 1


v4.0.2 (Fri Jul 19 2024)

⚠️ Pushed to main

Authors: 1


v4.0.1 (Fri Jul 19 2024)

⚠️ Pushed to main

Authors: 1


v4.0.0 (Fri Jul 19 2024)

💥 Breaking Change

Authors: 1


v3.9.11 (Fri Jul 19 2024)

⚠️ Pushed to main

Authors: 1


v3.9.10 (Thu Jul 18 2024)

⚠️ Pushed to main

Authors: 1


v3.9.9 (Mon Jul 15 2024)

⚠️ Pushed to main

Authors: 1


v3.9.8 (Wed Jul 03 2024)

⚠️ Pushed to main

Authors: 1


v3.9.7 (Sat Jun 29 2024)

⚠️ Pushed to main

Authors: 1


v3.9.6 (Sat Jun 29 2024)

⚠️ Pushed to main

Authors: 1


v3.9.5 (Sat Jun 29 2024)

⚠️ Pushed to main

Authors: 1


v3.9.4 (Tue Jun 25 2024)

⚠️ Pushed to main

Authors: 1


v3.9.3 (Sat Jun 01 2024)

⚠️ Pushed to main

Authors: 1


v3.9.2 (Sat Jun 01 2024)

⚠️ Pushed to main

Authors: 1


v3.9.1 (Fri May 31 2024)

⚠️ Pushed to main

Authors: 1


v3.9.0 (Thu May 30 2024)

🚀 Enhancement

Authors: 1


v3.8.6 (Wed May 29 2024)

⚠️ Pushed to main

Authors: 1


v3.8.5 (Tue May 28 2024)

⚠️ Pushed to main

Authors: 1


v3.8.4 (Tue May 28 2024)

⚠️ Pushed to main

  • Revert eslint-plugin-unused-imports to ESLint 8 compatible version (@haydenbleasel)

Authors: 1


v3.8.3 (Tue May 28 2024)

⚠️ Pushed to main

Authors: 1


v3.8.2 (Tue May 28 2024)

⚠️ Pushed to main

  • Disable no-undef-init (interferes with unicorn/no-null (@haydenbleasel)

Authors: 1


v3.8.1 (Tue May 28 2024)

⚠️ Pushed to main

Authors: 1


v3.8.0 (Tue May 28 2024)

🚀 Enhancement

Authors: 1


v3.7.4 (Tue May 28 2024)

⚠️ Pushed to main

  • Update unicorn's preventAbbreviations allowList for Next.js (@haydenbleasel)

Authors: 1


v3.7.3 (Tue May 28 2024)

⚠️ Pushed to main

Authors: 1


v3.7.2 (Tue May 28 2024)

⚠️ Pushed to main

  • Disable unicorn/no-keyword-prefix for React className (@haydenbleasel)

Authors: 1


v3.7.1 (Tue May 28 2024)

⚠️ Pushed to main

Authors: 1


v3.7.0 (Tue May 28 2024)

🚀 Enhancement

Authors: 1


v3.6.2 (Tue May 28 2024)

⚠️ Pushed to main

Authors: 1


v3.6.1 (Tue May 28 2024)

⚠️ Pushed to main

Authors: 1


v3.6.0 (Tue May 28 2024)

🚀 Enhancement

Authors: 1


v3.5.2 (Tue May 28 2024)

⚠️ Pushed to main

Authors: 1


v3.5.1 (Tue May 28 2024)

⚠️ Pushed to main

Authors: 1


v3.5.0 (Tue May 28 2024)

🚀 Enhancement

Authors: 1


v3.4.2 (Mon May 27 2024)

⚠️ Pushed to main

Authors: 1


v3.4.1 (Mon May 27 2024)

⚠️ Pushed to main

Authors: 1


v3.4.0 (Mon May 27 2024)

🚀 Enhancement

⚠️ Pushed to main

Authors: 1


v3.3.7 (Mon May 27 2024)

⚠️ Pushed to main

Authors: 1


v3.3.6 (Mon May 27 2024)

⚠️ Pushed to main

Authors: 1


v3.3.5 (Mon May 27 2024)

⚠️ Pushed to main

Authors: 1


v3.3.4 (Mon May 27 2024)

⚠️ Pushed to main

Authors: 1


v3.3.3 (Mon May 27 2024)

⚠️ Pushed to main

Authors: 1


v3.3.2 (Mon May 27 2024)

⚠️ Pushed to main

Authors: 1


v3.3.1 (Mon May 27 2024)

⚠️ Pushed to main

Authors: 1


v3.3.0 (Mon May 27 2024)

🚀 Enhancement

Authors: 1


v3.2.5 (Mon May 27 2024)

⚠️ Pushed to main

Authors: 1


v3.2.4 (Mon May 27 2024)

⚠️ Pushed to main

Authors: 1


v3.2.3 (Mon May 27 2024)

⚠️ Pushed to main

Authors: 1


v3.2.2 (Mon May 27 2024)

⚠️ Pushed to main

Authors: 1


v3.1.12 (Mon May 27 2024)

🐛 Bug Fix

⚠️ Pushed to main

Authors: 1


v3.1.11 (Mon May 06 2024)

⚠️ Pushed to main

Authors: 1


v3.1.10 (Sun May 05 2024)

⚠️ Pushed to main

Authors: 1


v3.1.9 (Fri Mar 01 2024)

⚠️ Pushed to main

Authors: 1


v3.1.8 (Sun Jan 07 2024)

⚠️ Pushed to main

Authors: 1


v3.1.7 (Tue Dec 26 2023)

⚠️ Pushed to main

Authors: 1


v3.1.6 (Sun Dec 24 2023)

⚠️ Pushed to main

Authors: 1


v3.1.5 (Thu Dec 14 2023)

⚠️ Pushed to main

Authors: 1


v3.1.4 (Thu Nov 23 2023)

⚠️ Pushed to main

Authors: 1


v3.1.3 (Thu Nov 23 2023)

⚠️ Pushed to main

Authors: 1


v3.1.2 (Wed Nov 15 2023)

⚠️ Pushed to main

Authors: 1


v3.1.1 (Tue Nov 14 2023)

⚠️ Pushed to main

Authors: 1


v3.1.0 (Tue Nov 14 2023)

🚀 Enhancement

Authors: 1


v3.0.9 (Mon Nov 13 2023)

⚠️ Pushed to main

Authors: 1


v3.0.8 (Wed Nov 08 2023)

⚠️ Pushed to main

Authors: 1


v3.0.7 (Mon Nov 06 2023)

⚠️ Pushed to main

Authors: 1


v3.0.6 (Tue Oct 31 2023)

⚠️ Pushed to main

Authors: 1


v3.0.5 (Tue Oct 31 2023)

⚠️ Pushed to main

🔩 Dependency Updates

Authors: 2


v3.0.4 (Sun Oct 15 2023)

⚠️ Pushed to main

Authors: 1


v3.0.3 (Mon Oct 09 2023)

⚠️ Pushed to main

Authors: 1


v3.0.2 (Mon Oct 09 2023)

⚠️ Pushed to main

Authors: 1


v3.0.1 (Mon Oct 09 2023)

⚠️ Pushed to main

Authors: 1


v3.0.0 (Mon Oct 09 2023)

💥 Breaking Change

⚠️ Pushed to main

🔩 Dependency Updates

Authors: 2


v2.5.3 (Mon Aug 28 2023)

⚠️ Pushed to main

Authors: 1


v2.5.2 (Mon Aug 28 2023)

⚠️ Pushed to main

  • Tweak jsx-a11y to support custom associated controls (@haydenbleasel)

Authors: 1


v2.5.1 (Fri Aug 04 2023)

⚠️ Pushed to main

Authors: 1


v2.5.0 (Mon Jul 31 2023)

🚀 Enhancement

🔩 Dependency Updates

Authors: 2


v2.4.6 (Sat Jul 08 2023)

⚠️ Pushed to main

Authors: 1


v2.4.5 (Sat Jul 08 2023)

⚠️ Pushed to main

🔩 Dependency Updates

Authors: 2


v2.4.4 (Sat Jun 24 2023)

⚠️ Pushed to main

Authors: 1


v2.4.3 (Sat Jun 24 2023)

⚠️ Pushed to main

Authors: 1


v2.4.2 (Sat Jun 24 2023)

⚠️ Pushed to main

Authors: 1


v2.4.1 (Fri Jun 23 2023)

⚠️ Pushed to main

Authors: 1


v2.4.0 (Fri Jun 23 2023)

🚀 Enhancement

Authors: 1


v2.3.1 (Fri Jun 09 2023)

⚠️ Pushed to main

Authors: 1


v2.3.0 (Fri Jun 09 2023)

🚀 Enhancement

Authors: 1


v2.2.8 (Sat May 06 2023)

⚠️ Pushed to main

Authors: 1


v2.2.7 (Sun Apr 30 2023)

⚠️ Pushed to main

Authors: 1


v2.2.6 (Sat Apr 29 2023)

⚠️ Pushed to main

Authors: 1


v2.2.5 (Sat Apr 22 2023)

🐛 Bug Fix

Authors: 1


v2.2.4 (Sun Apr 16 2023)

⚠️ Pushed to main

Authors: 1


v2.2.3 (Sat Apr 15 2023)

⚠️ Pushed to main

Authors: 1


v2.2.2 (Sat Apr 15 2023)

⚠️ Pushed to main

Authors: 1


v2.1.3 (Sat Apr 15 2023)

⚠️ Pushed to main

Authors: 1


v2.1.2 (Sat Apr 15 2023)

⚠️ Pushed to main

Authors: 1


v2.0.12 (Sat Apr 01 2023)

⚠️ Pushed to main

Authors: 1


v2.0.11 (Sat Apr 01 2023)

⚠️ Pushed to main

🔩 Dependency Updates

Authors: 2


v2.0.10 (Sat Mar 18 2023)

⚠️ Pushed to main

Authors: 1


v2.0.9 (Sat Mar 18 2023)

⚠️ Pushed to main

🔩 Dependency Updates

Authors: 2


v2.0.8 (Sat Jan 14 2023)

⚠️ Pushed to main

Authors: 1


v2.0.7 (Sat Jan 14 2023)

⚠️ Pushed to main

Authors: 1


v2.0.6 (Sat Jan 14 2023)

⚠️ Pushed to main

Authors: 1


v2.0.5 (Sat Jan 14 2023)

⚠️ Pushed to main

Authors: 1


v2.0.4 (Sat Jan 14 2023)

⚠️ Pushed to main

Authors: 1


v2.0.3 (Sat Jan 14 2023)

⚠️ Pushed to main

Authors: 1


v2.0.2 (Sat Jan 14 2023)

⚠️ Pushed to main

Authors: 1


v1.1.10 (Sat Jan 14 2023)

🐛 Bug Fix

⚠️ Pushed to main

🔩 Dependency Updates

Authors: 2


v1.1.9 (Sat Nov 19 2022)

⚠️ Pushed to main

Authors: 1


v1.1.8 (Fri Nov 11 2022)

⚠️ Pushed to main

Authors: 1


v1.1.7 (Fri Nov 11 2022)

⚠️ Pushed to main

Authors: 1


v1.1.6 (Fri Nov 11 2022)

⚠️ Pushed to main

Authors: 1


v1.1.5 (Fri Nov 11 2022)

⚠️ Pushed to main

Authors: 1


v1.1.4 (Fri Nov 11 2022)

⚠️ Pushed to main

Authors: 1


v1.1.3 (Fri Nov 11 2022)

⚠️ Pushed to main

🔩 Dependency Updates

Authors: 2


v1.1.2 (Fri Nov 11 2022)

⚠️ Pushed to main

Authors: 1


v1.0.32 (Fri Nov 11 2022)

⚠️ Pushed to main

🔩 Dependency Updates

Authors: 2


v1.0.31 (Sat Oct 01 2022)

⚠️ Pushed to main

Authors: 1


v1.0.30 (Thu Sep 15 2022)

⚠️ Pushed to main

Authors: 1


v1.0.29 (Sat Sep 03 2022)

⚠️ Pushed to main

Authors: 1


v1.0.28 (Sat Sep 03 2022)

⚠️ Pushed to main

Authors: 1


v1.0.27 (Sat Sep 03 2022)

⚠️ Pushed to main

🔩 Dependency Updates

Authors: 2


v1.0.26 (Mon Jul 11 2022)

⚠️ Pushed to main

Authors: 1


v1.0.25 (Fri Jul 01 2022)

⚠️ Pushed to main

Authors: 1


v1.0.24 (Fri Jul 01 2022)

⚠️ Pushed to main

Authors: 1


v1.0.23 (Sat Jun 18 2022)

⚠️ Pushed to main

Authors: 1


v1.0.22 (Sat Jun 18 2022)

⚠️ Pushed to main

Authors: 1


v1.0.21 (Tue Jun 14 2022)

⚠️ Pushed to main

🔩 Dependency Updates

Authors: 2


v1.0.20 (Wed May 25 2022)

🐛 Bug Fix

Authors: 1


v1.0.19 (Fri May 20 2022)

⚠️ Pushed to main

Authors: 1


v1.0.18 (Fri May 20 2022)

⚠️ Pushed to main

Authors: 1


v1.0.17 (Fri May 20 2022)

⚠️ Pushed to main

Authors: 1


v1.0.16 (Sun May 08 2022)

⚠️ Pushed to main

Authors: 1


v1.0.15 (Sun May 08 2022)

⚠️ Pushed to main

🔩 Dependency Updates

Authors: 2


v1.0.14 (Fri Apr 15 2022)

⚠️ Pushed to main

🔩 Dependency Updates

Authors: 2


v1.0.13 (Fri Mar 25 2022)

⚠️ Pushed to main

Authors: 1


v1.0.12 (Fri Mar 25 2022)

⚠️ Pushed to main

Authors: 1


v1.0.11 (Fri Mar 25 2022)

⚠️ Pushed to main

Authors: 1


v1.0.10 (Sat Mar 19 2022)

⚠️ Pushed to main

Authors: 1


v1.0.9 (Sat Mar 19 2022)

⚠️ Pushed to main

Authors: 1


v1.0.8 (Sat Mar 19 2022)

⚠️ Pushed to main

  • Add snake_case support for APIs, disable misused-promises error (@haydenbleasel)

Authors: 1


v1.0.7 (Fri Mar 18 2022)

⚠️ Pushed to main

Authors: 1


v1.0.6 (Fri Mar 18 2022)

⚠️ Pushed to main

Authors: 1


v1.0.5 (Fri Mar 18 2022)

⚠️ Pushed to main

Authors: 1


v1.0.4 (Fri Mar 18 2022)

⚠️ Pushed to main

Authors: 1


v1.0.3 (Fri Mar 18 2022)

⚠️ Pushed to main

Authors: 1


v1.0.2 (Fri Mar 18 2022)

⚠️ Pushed to main

Authors: 1


v1.0.1 (Fri Mar 18 2022)

⚠️ Pushed to main

Authors: 1