Accueil
Journal des changements
Ce qui a été livré
L'essentiel de chaque version de Krizaka, la plus récente d'abord — lu dans les versions elles-mêmes, pas écrit pour la page. Ce site tourne en v0.1.0 sur Krizaka UI 3.26.0.
@krizaka/ui
- NouveauNavigation standard (NAV-STD). #336
@krizaka/ui
- NouveauNew @krizaka/ui/account-menu — AccountMenu, the menu under a signed-in person's avatar: identity first (picture from defaultAvatar or src, name, e-mail), profile and settings links, the language as a compact submenu… #333
- Nouveau@krizaka/ui/changelog-page adds releasesFromPulls: for a repository that publishes no releases (a product in development), its merged pull requests become one changelog entry per week — conventional titles in plain… #338
- NouveauSix blocks for a shop's storefront (Akinaza): ServiceCard (@krizaka/ui/service-card) — a service as a card with icon or photo, duration, capacity, price (« from » when it varies), inclusions, a « Popular » tag and one… #343
@krizaka/ui
- NouveauWuSamaMark: the founder's byline mark (Oussama's nickname, Wu-sama) — a gold W of five straight legs inside the Krizaka hexagon, split at its top and bottom vertices, ink and one amber, code-drawn SVG, still, cropped to… #339
@krizaka/ui
- NouveauNew marks for Yomizaka, Kachizaka, Akinaza, Yororis and Yasakia (web and native, same geometry), chosen from three directions per brand: Yomizaka "the watch" (the owl, two lenses under a calm brow), Kachizaka "the… #296
- Nouveaucaptcha: new Captcha and CaptchaDisclosure (@krizaka/ui/captcha) — Cloudflare Turnstile that stays hidden unless a challenge is needed (managed mode, appearance: "interaction-only"), a framed box on the tokens when it… #300
- CorrigéSécurité · ChangelogPage gains the security and breaking kinds (words and colour, both themes), and @krizaka/ui/changelog-page ships its data adapter: parseChangesets (a changesets CHANGELOG.md), parseReleaseBody (a GitHub… #323
- NouveauDesktop (ADR-002: desktop is the web components in the Orazaka Mac app's Tauri window). #292
- NouveauDocsNav (@krizaka/ui/docs-nav) — the pages of a documentation in quiet groups for the sidebar of DocsLayout / DocsArticlePage: each group folds, the group of the current page is open, only the current page is marked;… #310
- NouveauMediaGrid can head its grid like its shelf (grid={{ label: "Videos" }}, the same heading style as “Shorts”), and both headings take a hint: a small “i” that opens the section's one-line definition and a link to the… #310
- NouveauSiteFooter: variant — site (the full footer, unchanged), docs (compact: the site's columns in a row on the documentation's width, no site block, never the family) and app (one slim line for a signed-in product:… #281
- NouveauCards get a quiet hover. #306
- NouveauNew RailNav (@krizaka/ui/rail-nav) and AppHeader (@krizaka/ui/app-header): the compact navigation of an application. #324
- Nouveausettings-layout: a calm, flat settings screen. #327
- NouveauNew Waveform (@krizaka/ui/waveform, and Waveform on @krizaka/ui/native): the bars of a sound drawn on their own, for a card or a banner. #318
- Corrigé--kz-text-muted now reaches WCAG AA (4.5:1) for small text on every surface, in both themes and under every brand (it was 4.11:1 on dark and 3.91:1 on light, between 3.05 and 4.17 across the surfaces). #320
- CorrigéGenUi: a line that closes one brace too many keeps its first complete object (measured on Orazaka dev: a model's updateComponents line ended with }}}) — only stray } / ] may follow, the object is validated as any other;… #317
- CorrigéNavBar test: let the hover-intent timer finish before Escape, so it cannot reopen the menu (red on every PR run on a slow runner). #331
- CorrigéNavBar test: the Escape assertion waits for Radix's close instead of racing it (flaky on loaded CI runners, red on main). #328
- CorrigéSiteFooter: a SiteFooter.Column with no link (empty, null or false children) now renders nothing instead of a heading over an empty list, the site's own columns share the row with an auto-fit grid (it was a fixed… #281
- CorrigéTabs: add missing data-[state=inactive]:hidden to TabsContent to prevent ghost rendering and vertical stacking under forceMount (fixes #213). #244
@krizaka/tokens
- Corrigé--kz-text-muted now reaches WCAG AA (4.5:1) for small text on every surface, in both themes and under every brand (it was 4.11:1 on dark and 3.91:1 on light, between 3.05 and 4.17 across the surfaces). #320
@krizaka/ui
- NouveauTwo blocks for product landing pages. #293
- NouveauData-driven UI (ADR-082, krizaka/orazaka#207): @krizaka/ui/genui draws the interface a model describes in A2UI v0.9 — GenUiStream (a model's answer, its prose and its a2ui fence, growing as it streams), GenUiSurface,… #314
- NouveauNew MetaRow (@krizaka/ui/meta-row, web and @krizaka/ui/native): one quiet line of dot-separated facts ("HD 720p · 9:16 · 0:05 · 24 fps · Oct 16, 2026") with optional status chips at its end (a Badge). #309
- NouveauNavBar: compact menus and one item lit. #291
- CorrigéFocus rings only for the keyboard. #308
@krizaka/tailwind
- CorrigéFocus rings only for the keyboard. #308
@krizaka/ui
- NouveauUpdatePrompt (the soft invitation to update), ForceUpdateScreen (the blocking screen after a 426 or updateMode: force) and MaintenanceScreen (the service is down on purpose) — web and /native, for the app-version… #297
- CorrigéTabs (pills) and the other sideways-scrolling rows (settings nav, shorts shelf, date-picker presets, day strip, table of contents) no longer draw a vertical scrollbar. #295
@krizaka/ui
- NouveauVerticalVideo takes fit="fill": in a box that has its own size (a bento tile, a grid cell) the clip covers it edge to edge instead of drawing a small 9:16 frame inside it; the caption's name line wraps and stays clear… #272
- NouveauPlatform parity — web · native · desktop. #283
- Nouveaumedia-grid: the whole VideoCard opens the video (the title's stretched link now covers the picture too; badges and duration let the click through), the animated preview is requested only after the pointer or focus rests… #285
- CorrigéLinear-time trimming of trailing slashes (defaultAvatarUrl) and of array indices (findUnused): CodeQL polynomial-ReDoS findings. #274
@krizaka/icons
- NouveauFour icons for a league of friends: SoccerIcon, HockeyIcon, BasketballIcon (the three games a multi-sport league follows) and TrophyIcon (the season's cup). #334
@krizaka/charts
- NouveauData-driven UI (ADR-082, krizaka/orazaka#207): @krizaka/ui/genui draws the interface a model describes in A2UI v0.9 — GenUiStream (a model's answer, its prose and its a2ui fence, growing as it streams), GenUiSurface,… #314
@krizaka/charts
- NouveauPlatform parity — web · native · desktop. #283
@krizaka/i18n
- CorrigéLinear-time trimming of trailing slashes (defaultAvatarUrl) and of array indices (findUnused): CodeQL polynomial-ReDoS findings. #274
@krizaka/ui
- NouveauCardGrid takes a foundation: one wide card that the others stand on (an engine, a platform), a hairline stem joining it to a frame around the cards, an optional foundationLabel on the frame and foundationPosition (start… #254
- Nouveaufeat(chat): MessageComposer variant="pill" — one rounded field with leading (mode chip, attach) inside on the left, a round send inside on the right, a reserved status line under it; busy holds the send without moving… #250
@krizaka/ui
- Corrigéfix(sites): Yasakia is in development, not coming soon. #243
@krizaka/ui
- CorrigéVideoCard: on a 9:16 card the count and the quick action move to a second line, so the creator's name is no longer cut to an initial on a shelf. #233
@krizaka/ui
- NouveauMedia grid (#228), web: @krizaka/ui/media-grid — MediaGrid for feeds of mixed orientations (split: the 9:16 clips on a ShortsShelf, the others in a uniform 16:9 grid; uniform: one frame, a clip of the other shape drawn… #231
@krizaka/ui
- NouveauDataTable: responsive by itself (#222). #229
@krizaka/ui
- Corrigé@krizaka/ui/sites: Yomizaka is "In development" (its repository is public and it has a dev site), not "Coming soon" — the same honest status as krizaka.com's product list, in the family switcher and every footer. #219
@krizaka/ui
- Nouveau@krizaka/ui/document-viewer — DocumentViewer: a PDF drawn page by page with pdf.js (an optional peer the app loads with loadPdfjs={() => import("pdfjs-dist")}), and the passages of a report lit where they sit. #205
@krizaka/ui
- NouveauKachizaka (predictions among friends, points only) and Akinaza (the shop OS for Québec): their brands, marks and mascots. #202
- CorrigéNew server-safe entry @krizaka/ui/avatar/defaults (defaultAvatarUrl, defaultAvatarSvg, …): the pure helpers of the default avatars can be called in a Server Component. #203
@krizaka/tokens
- NouveauKachizaka (predictions among friends, points only) and Akinaza (the shop OS for Québec): their brands, marks and mascots. #202
@krizaka/ui
- NouveauSiteFooter gets a product mode: family={false} drops the family columns — a deployed product is independent, so its footer holds only its own columns, the legal links, the version and one publisher line (“A Krizaka… #193
@krizaka/ui
- NouveauYomizaka, the fifth product (documents read, classified and checked by Orazaka): its brand and its mark. #196
@krizaka/tokens
- NouveauYomizaka, the fifth product (documents read, classified and checked by Orazaka): its brand and its mark. #196
@krizaka/ui
- NouveauAvatar: default profile pictures. #192
- CorrigéShowcase: the slides' column is minmax(0, 1fr) — a slide holding a wide code block (a <pre>) no longer widens the slideshow past a phone's width. #190
- CorrigéSiteFooter never makes a phone page scroll sideways: its frame and columns shrink to the screen (minmax(0, 1fr), #191
@krizaka/ui
- NouveauLinkCard pins its foot (the facts in extra, then the way in cta) to the bottom of the card, so in a CardGrid row whose sentences have different lengths the status chips and the links sit on one line and the card bottoms… #187
- NouveauShowcase (@krizaka/ui/showcase, native in @krizaka/ui/native): a slideshow that advances by itself and shows it. #184
@krizaka/ui
- NouveauOne navigation for the whole Krizaka family (NAV-SYS). #181
@krizaka/ui
- NouveauYazakia is renamed Yasakia: YasakiaLogo / YasakiaMark, ProductLogo / ProductMark id yasakia, @krizaka/tokens/brands/yasakia.css and .brand-yasakia in brands/scoped.css, brands.yasakia / marks.yasakia. #176
@krizaka/tokens
- NouveauYazakia is renamed Yasakia: YasakiaLogo / YasakiaMark, ProductLogo / ProductMark id yasakia, @krizaka/tokens/brands/yasakia.css and .brand-yasakia in brands/scoped.css, brands.yasakia / marks.yasakia. #176
@krizaka/tailwind
- NouveauYazakia is renamed Yasakia: YasakiaLogo / YasakiaMark, ProductLogo / ProductMark id yasakia, @krizaka/tokens/brands/yasakia.css and .brand-yasakia in brands/scoped.css, brands.yasakia / marks.yasakia. #176
@krizaka/ui
- CorrigéShortFeed sizes its slides to the feed (h-full) instead of the screen, so a feed in a box shows one video at a time; the "AI-generated" pill of VerticalVideo stays on one line. #173
@krizaka/ui
- NouveauProduct-branded waits (web and React Native). #165
- NouveauVerticalVideo and ShortFeed (@krizaka/ui/vertical-video, native @krizaka/ui/native/vertical-video on expo-video): a 9:16 short video with the action rail of a short-video feed on the right — the creator's avatar with… #171
- CorrigéThe examples show the Krizaka UI cast (Camille, Noor, Tomás, Ada — fictional portraits generated by Orazaka, on the Krizaka CDN) in ProfileCard, PersonCard/SwipeDeck, Avatar and the native profile screen, in place of… #161
@krizaka/ui
- NouveauDeprecation is a status of the registry: a component marked deprecated carries { since, removedIn, use, reason } (checked by the registry test) and krizaka.com/docs/ui flags it. #160
- Nouveauengines is node >=22 for every package: Node 20 reached end of life, and the products already run on Node 22. #157
- NouveauMore varied templates, each with its intent and its reason: a case study (longform-page/case-study), a FAQ (docs-article-page/faq), a tip checkout (detail-layout/checkout), an empty page (empty-state/library), planned… #163
- Nouveaufix(native): PersonCard draws one photo — the scrim under the name is sized in points from the overlay's own layout, so the photo is no longer cut in two (a dark band over the face and none under the name) on iOS. #162
- NouveauNew SkipLink (@krizaka/ui/skip-link): the standalone "skip to content" link for app shells that keep their own layout (WCAG 2.4.1). #164
- NouveauTemplates are grouped by intent. #156
- CorrigéDialog, Sheet and AlertDialog give focus back to the element that opened them when there is no Dialog.Trigger (a controlled open opened by a plain button): on Escape focus no longer falls to <body> (WCAG 2.4.3). #158
- CorrigéMarker (the map) no longer breaks hydration: its host element was created in a useState initializer that differed between the server (nothing) and the browser (an element portalled into), so React threw away the server… #166
@krizaka/tokens
- Nouveauengines is node >=22 for every package: Node 20 reached end of life, and the products already run on Node 22. #157
@krizaka/tailwind
- Nouveauengines is node >=22 for every package: Node 20 reached end of life, and the products already run on Node 22. #157
@krizaka/ui
- NouveauA people kit, web and React Native: Chat (conversation item, message bubble with its status, composer, typing indicator), SwipeDeck with PersonCard, MatchDialog, TagSelector, StepProgress, VerifiedBadge, PhotoGrid; on… #150
@krizaka/icons
- CorrigéThe documentation moved to https://ui.krizaka.com, built from this repository (apps/site) at every change: the #179
@krizaka/icons
- Nouveauengines is node >=22 for every package: Node 20 reached end of life, and the products already run on Node 22. #157
@krizaka/charts
- CorrigéThe documentation moved to https://ui.krizaka.com, built from this repository (apps/site) at every change: the #179
@krizaka/charts
- Nouveauengines is node >=22 for every package: Node 20 reached end of life, and the products already run on Node 22. #157
@krizaka/i18n
- CorrigéThe documentation moved to https://ui.krizaka.com, built from this repository (apps/site) at every change: the #179
@krizaka/i18n
- Nouveauengines is node >=22 for every package: Node 20 reached end of life, and the products already run on Node 22. #157
@krizaka/ui
- NouveauData display, from the apps' screens: List (./list: records dense or comfortable, selectable, actions beside each #149
- NouveauMaps, open source and free (DS5): @krizaka/ui/map — Map on MapLibre GL JS over Protomaps PMTiles hosted on the #144
- NouveauReact Native gets the feedback Orazaka's Jobs tab waits for, with the web's props: Loader (+ LoaderGlyph, #145
- NouveauReact Native lists and inputs: SwipeableRow (actions under a swipe, a full swipe runs the outermost, the same actions #153
- NouveauReact Native navigation: TabBar (the app's main sections, badges said in words, a tick, reselect), Header (a large #146
- NouveauReact Native overlays and screens: ActionSheet (a short list of actions from the bottom edge, the destructive one in #147
- CorrigéPackage homepage points to the documentation on krizaka.com (the page the npm listing links to is the one that explains the package). #143
@krizaka/tokens
- CorrigéPackage homepage points to the documentation on krizaka.com (the page the npm listing links to is the one that explains the package). #143
@krizaka/tailwind
- CorrigéPackage homepage points to the documentation on krizaka.com (the page the npm listing links to is the one that explains the package). #143
@krizaka/ui
- NouveauThe controls, crafted (DS5). #139
@krizaka/ui
- NouveauDates and times, redesigned (DS5). #135
@krizaka/ui
- Nouveau@krizaka/ui/form and @krizaka/ui/native/form — forms on TanStack Form v1 behind the facade (PS3): createKrizakaForm({ schema, defaultValues, i18n }) on a zod 4 (Standard Schema) schema shared with the server; typed… #127
- NouveauNative form fields in @krizaka/ui/native (#122): TextField (label, hint, error, every TextInput prop, multiline, an end adornment), Checkbox (a 44-pt row, words as a node with links, its error) and DateField (a… #127
@krizaka/icons
- CorrigéPackage homepage points to the documentation on krizaka.com (the page the npm listing links to is the one that explains the package). #143
@krizaka/charts
- CorrigéPackage homepage points to the documentation on krizaka.com (the page the npm listing links to is the one that explains the package). #143
@krizaka/i18n
- CorrigéPackage homepage points to the documentation on krizaka.com (the page the npm listing links to is the one that explains the package). #143
@krizaka/ui
- ModifiéRupture · @krizaka/ui/data-table v2 — on TanStack Table v9, the API redone (no v1 compatibility). #118
@krizaka/tokens
- NouveauYororis brand: mark, theme, mascot, icons. #105
@krizaka/ui
- NouveauLayouts and templates (W4 of #49): the shells of the products' screens, in a new layouts category of #94
- NouveauA finer Yazakia mark: two voices — two solid speech bubbles, mirrored, that overlap, the left a shade deeper; #95
- NouveauThe storytelling kit, generalised from krizaka.com/story: ScrollStage + Scene (chapters played once as they scroll #106