Typographie
Plus Jakarta Sans parle, Inter se lit, JetBrains Mono étiquette : les polices Krizaka, leur échelle et leurs règles — auto-hébergées, web et mobile.
Les trois familles
--kz-font-displayPlus Jakarta Sans
L'IA souveraine, sur vos propres serveurs.
The voice of the headlines: titles, hero lines, figures, the names of things.
- Pourquoi cette police
- Already the headline face of krizaka.com: its compact, slightly squared bowls and flat terminals echo the cut corners of the marks and icons, and it stays tight and dense at 800 — premium without decoration. Keeping it means no gratuitous change to the parent brand.
- À utiliser pour
- Headings and hero lines (display-*, title-*)
- Big figures and prices
- Short labels that name a product or a section
- À éviter
- Paragraphs and long reading (use the text face)
- Sizes under 16 px
- Weights under 600: the display face speaks bold
--kz-font-sansInter
Vos documents restent à Montréal. Les réponses citent leurs sources, les coûts sont comptés d'avance — 1 234,56 $ pour 12 000 requêtes.
The reading face: paragraphs, interface, forms, tables, captions.
- Pourquoi cette police
- Drawn for screens: a tall x-height, open apertures and tabular figures that line up amounts. It was already the default of @krizaka/tokens and Orazaka's text face, and krizaka.com's body already asked for its character variants (cv02–cv04: open 4, 6 and 9). Cut at the text optical size (opsz 14).
- À utiliser pour
- Body text, interface, forms, tables (body-*, caption)
- Numbers that must align:
font-variant-numeric: tabular-nums - Every size from 12 px
- À éviter
- Hero headlines (use the display face)
- Letter-spacing on body sizes beyond the scale's own
--kz-font-monoJetBrains Mono
POST /api/v1/chat → 200 · 0O 1lI
Code, identifiers, endpoints, and the small uppercase overlines that label a section.
- Pourquoi cette police
- Used by every Krizaka surface already (krizaka.com, Orazaka). A tall x-height and unambiguous 0/O, 1/l/I make code and identifiers readable at 12 px; its rectangular forms sit well next to the cut corners.
- À utiliser pour
- Code blocks and inline code (mono-*)
- Endpoints, ids, versions, keys
- Overlines: uppercase, tracked (overline)
- À éviter
- Paragraphs
- Headlines
L'échelle
L'IA souveraine, sur vos propres serveurs.
L'IA souveraine, sur vos propres serveurs.
L'IA souveraine, sur vos propres serveurs.
L'IA souveraine, sur vos propres serveurs.
L'IA souveraine, sur vos propres serveurs.
L'IA souveraine, sur vos propres serveurs.
Vos documents restent à Montréal. Les réponses citent leurs sources, les coûts sont comptés d'avance — 1 234,56 $ pour 12 000 requêtes.
Vos documents restent à Montréal. Les réponses citent leurs sources, les coûts sont comptés d'avance — 1 234,56 $ pour 12 000 requêtes.
Vos documents restent à Montréal. Les réponses citent leurs sources, les coûts sont comptés d'avance — 1 234,56 $ pour 12 000 requêtes.
Vos documents restent à Montréal. Les réponses citent leurs sources, les coûts sont comptés d'avance — 1 234,56 $ pour 12 000 requêtes.
Vos documents restent à Montréal. Les réponses citent leurs sources, les coûts sont comptés d'avance — 1 234,56 $ pour 12 000 requêtes.
POST /api/v1/chat → 200 · 0O 1lI
POST /api/v1/chat → 200 · 0O 1lI
POST /api/v1/chat → 200 · 0O 1lI
| Utilitaire | Famille | Taille / interligne · graisse · approche |
|---|---|---|
text-display-2xl | Affichage | 72px / 1.02 · 800 · -0.035em |
text-display-xl | Affichage | 56px / 1.05 · 800 · -0.03em |
text-display-lg | Affichage | 44px / 1.1 · 700 · -0.025em |
text-display-md | Affichage | 34px / 1.15 · 700 · -0.02em |
text-display-sm | Affichage | 26px / 1.2 · 700 · -0.015em |
text-title-lg | Affichage | 20px / 1.35 · 700 · -0.01em |
text-title-md | Texte | 17px / 1.4 · 600 · -0.012em |
text-body-lg | Texte | 18px / 1.6 · 400 · -0.014em |
text-body-md | Texte | 16px / 1.6 · 400 · -0.011em |
text-body-sm | Texte | 14px / 1.5 · 400 · -0.006em |
text-caption | Texte | 12px / 1.4 · 500 · 0em |
text-overline | Mono | 11px / 1.3 · 600 · 0.12em |
text-mono-md | Mono | 14px / 1.6 · 400 · 0em |
text-mono-sm | Mono | 12px / 1.5 · 400 · 0em |
Installation
Web (CSS)
Importez les polices une fois, à côté du preset : les tokens les nomment déjà.
npm install @krizaka/fonts @krizaka/tokens @krizaka/tailwind@import "tailwindcss";
@import "@krizaka/tailwind"; /* --kz-font-* and text-display-xl, text-body-md… */
@import "@krizaka/fonts/css"; /* the faces and their adjusted fallbacks */<h1 class="font-display text-display-xl">…</h1>
<p class="font-text text-body-md text-fg-secondary">…</p>
<span class="font-mono text-overline uppercase">…</span>Next.js
Importez le CSS dans le layout racine — le bundler copie et empreinte les fichiers ; les replis gardent le CLS à 0.
// app/layout.tsx
import "@krizaka/fonts/css";
import "./globals.css"; // @import "tailwindcss"; @import "@krizaka/tailwind";React Native / Expo
Chargez les fichiers statiques avec expo-font, puis prenez une étape de l'échelle et le nom de sa police.
// npx expo install expo-font && npm install @krizaka/fonts @krizaka/tokens
import { useFonts } from "expo-font";
import { fontAssets } from "@krizaka/fonts/native/assets";
import { fontFamily } from "@krizaka/fonts/native";
import { typeScale } from "@krizaka/tokens/native";
const [loaded] = useFonts(fontAssets);
const { role, fontWeight, ...size } = typeScale.displayLg;
<Text style={{ ...size, fontFamily: fontFamily(role, Number(fontWeight)) }}>…</Text>Règles
- Three families, three jobs: display speaks (headlines, figures), text reads (everything else), mono labels and quotes code. Never a fourth family on a Krizaka surface.
- Use the scale, not sizes:
text-display-xl,text-body-md… carry size, line height, weight and tracking together. A one-off size is a missing step — ask for it. - Display from 20 px up, at 600–800; text from 12 px, at 400–700. Never a light weight (< 400) on a dark surface.
- One display line per block. The rest is text: a page of headlines reads as noise.
- Amounts, counters and tables use tabular figures (
tabular-nums); prices keep the currency from @krizaka/intl, never a hand-written sign. - Measure: 60–75 characters per line for reading (
max-w-prose). - Products may override the display role with their own face (Orochia: Outfit) through
--kz-font-display; text and mono stay Krizaka's. - The Krizaka wordmark is drawn, inside the logo: never set the name in a font to imitate it.
Licences
Chaque police est sous SIL Open Font License 1.1 : à embarquer avec n'importe quel logiciel, jamais à vendre seule. Les licences sont livrées dans le paquet.
| Famille | Licence | Fichiers | Source |
|---|---|---|---|
| Plus Jakarta Sans | SIL Open Font License 1.1 | 2 WOFF2 (25.6 ko pour latin) · 3 TrueType | tokotype/PlusJakartaSans |
| Inter | SIL Open Font License 1.1 | 2 WOFF2 (50.4 ko pour latin) · 4 TrueType | rsms/inter |
| JetBrains Mono | SIL Open Font License 1.1 | 2 WOFF2 (30.2 ko pour latin) · 3 TrueType | JetBrains/JetBrainsMono |
Généré depuis @krizaka/fonts@0.1.0 · @krizaka/tokens@2.4.0.Modifier dans krizaka-ui