GitShow/developit/kinu
developit

kinu

Preact UI toolkit. 10x smaller than you think. Intuitive for humans+LLMs.

by developit
preactui-componentsui-libraryui-toolkit
Star on GitHubForkWebsitenpm

TypeScript

103 stars2 forks7 contributorsActive · 14h agoSince 2025kinu@0.2.0

Meet the team

See all 7 on GitHub →
developit
developit342 contributions
claude
claude154 contributions
jamesism
jamesism6 contributions
CopilotBot
Copilot5 contributions
github-actions[bot]Bot
github-actions[bot]4 contributions
cursoragent
cursoragent3 contributions
rschristian
rschristian2 contributions

Languages

View on GitHub →
TypeScript48.5%
CSS42.8%
JavaScript8.3%
Shell0.5%

Commit activity

Last 12 weeks · 57 commits

Full graph →

Community health

1 of 6 standards met

Community profile →
28
✓README○License○Contributing○Code of Conduct○Issue Template○PR Template

Recent PRs & issues

Active · Last activity 14h ago
See all on GitHub →
developit
Lean on the platform: native overlays, themed select picker, and native-grade CSS polishOpenPR

Summary Two rounds of work that push kinu further onto native DOM and CSS features, so behaviour that competitors reimplement in JavaScript comes from the browser instead. Round 1 was the styling layer (squircles, materials, elevation, scroll-driven effects). Round 2 went after the platform layer — the overlay engine, the `@supportsz-index: 1000divz-indexshowModal()Dialogclosedby="closerequest"mobile="drawer"beforetogglebackdrop-filterdisplay: noneoverflowz-index.show()command="toggle-popover"closedialog.show()preventDefaultclosedby="any"appearance: base-select::checkmark@starting-stylecorner-shape--k-radius-1..4--k-corner-radius@supports (corner-shape: squircle)calc(var(--k-radius) 1.8408964)1 + 2^(-1/4)--k-radiuscorner-shape--k-shadow-1/2/3--k-shadow-hslprefers-contrast--k-backdrop-blurnoneprefers-reduced-transparencyforced-colors::scroll-markertext-wrap: balanceprettytext-box: trim-bothscrollbar-color::-webkit-scrollbarscrollbar-gutter: stablescroll-state()position-visibilityvirtualcontent-visibilityinterestforpopover="hint":hoveroverflow:is([open], :popover-open)[open]--k-radius--k-backdrop-blurnonemobile="drawer"--modalshowModal()[open]closedbySheetContent[k="sheet-panel"]closedby="any"k-swipe-fadebackdrop-filter--k-radius-1..4--k-corner-radius--k-shadow-1/2/3base.css::selection--k-selection-bg--k-scrollbar-thumb0.75rem0.5625remmainpnpm buildpnpm tsccommands.ts:popover-openbase-selectmobile="drawer"[open]:modal--swipe: y[k="sheet-panel"]closedbynoneprefers-reduced-transparencycorner-shape--k-radius--k-shadow---k-selection-bg` overrides still win. No component exceeds 45% of its short side in any mode. https://claude.ai/code/session_01F3Jt1mTthRAT6HwyXQqqma

developit · 1d ago
developit
Add 20+ layout, form, and chat components; expand benchmarkingOpenPR

Summary This PR significantly expands kinu's component library with 20+ new components focused on layout primitives, form enhancements, and chat/messaging UI. It also introduces comprehensive benchmarking infrastructure to track per-component bundle size and generates LLM-friendly documentation. Key Changes New Layout & Spacing Components , , , , , — CSS-driven flex/grid layout primitives with token-based gap control — full-page scaffold with header, sidebar, main, footer grid layout — horizontal ordered steps with numbered markers Form & Input Enhancements — native number input with stepper buttons driven by the command bus — password input with show/hide toggle — token/tags input that submits via hidden field — wrapper that runs native validation before submit handler Added CSS styling to , , for post-interaction validation feedback Chat & Messaging Components — chat bubble with author-driven color and alignment — message list that sticks to bottom as new messages arrive — chat input form with autosizing textarea and Enter-to-send — command palette (Dialog + Listbox composition) Utility & Display Components — styled code block and inline code with optional copy button — one-tap copy-to-clipboard with CSS-only copied state — star rating built from native radio group — corner overlay for notification counts or status dots — declarative keyboard shortcut binding to commands Infrastructure & Documentation Per-component bundle size benchmarking () tracking JS, CSS, and total sizes Generated and from component metadata for LLM authoring guidance New foundation docs: and — single source of truth for component contribution process — long-horizon execution plan with stable IDs and status tracking — expanded with platform-gating policy Library Utilities — global hotkey singleton using delegated keydown listener — View Transitions API wrapper with fallback — enhanced command bus for custom commands (, , , ) Styling & Theming Added spacing scale tokens ( through ) for layout primitives New theme files: , Enhanced with forced-colors (Windows High Contrast) support Updated to support attribute for full-bleed page-level alerts Updated sizing defaults and added attribute Tests New test suites: , , , , Notable Implementation Details All new components follow the pattern — thin JSX-to-HTML pass-throughs with attribute styling hooks Layout components use CSS custom properties for gap control, enabling token-based spacing without per-instance JS state Form validation leverages native HTML Constraint Validation API (, , , , etc.) — no validation library Chat components (, , ) compose existing primitives (e.g., wraps ) Hotkey and command systems use delegated event listeners to avoid per-instance overhead Benchmarking splits JS and CSS sizes separately to track the library's performance-first discipline https://claude.ai/code/session_01ScFTtdr4ETgSEGEYG5Hopr

developit · 1mo ago

Recent fixes

View closed PRs →
developit
fix(types): distribute Omit over multi-tag props; make ref inhabitableMergedPR

Reported downstream: 8 compile errors against , all in the generated and all fine at runtime. Multi-tag components dropped every prop their tags didn't share and pick their element from their props — an `hrefcreateSimpleComponentOmitOmitkeyof (A HTMLAnchorElementuseRef(null)useRef(null)RefObjectkinu@0.2.0targetreldisabledButtontscsrc/__tests__/prop-types.test-d.tsxtscpnpm lintpnpm build`, and skipped by vitest (nothing in it runs). Changeset included; releases as a patch. _Generated by Claude Code_

developit · 14h ago
developit
feat(tokens): theming-token refactor — radius scale + elevation + surface tokensMergedPR

Theming-token refactor, stacked on #126 for a clean diff; retarget to once #126 merges. Deploy preview: #130 (same branch → main). Tokenizes the duplicated / sync-risk values and base scales we agreed on, while leaving genuinely component-specific, single-site selector overrides alone (BYO-CSS stays first-class). Radius scale as offsets off the anchor. One knob shifts the whole ramp; any step is individually re-pinnable. All 20 ad-hoc forms migrated; computed-identical (4/6/8/12px). Elevation + surface tokens Elevation (resting / floating / modal). Normalized*: previously dropdowns carried a heavier shadow than modal dialogs — now , dropdowns/popovers unified at the floating level. (Intentional default-appearance change, per your call.)* Base owns the gnarly selectors, themes set values: → , → , avatar initials → (em-trick stays internal → clipping footgun gone by construction), kbd + prose share , tab indicator → (recolour without re-authoring the anchor /). defaults to , reusing the soft-tint token selected rows already use. is scoped to kinu elements (), matching how the scrollbar and reduced-motion rules stay inside kinu — the host page keeps its own selection colour. Both selectors are needed: inherits only between elements that match a rule. claw sheds redundant scrollbar / / avatar- / per-surface box-shadow rules and sets tokens instead. Fixes a latent bug where claw's overlay list targeted non-existent names (, …), so its soft borderless treatment never reached dropdowns/menus. Verified against the built artifacts Not just "it builds" — checked + in Chromium: Default elevation ordering: card < dropdown < dialog Selection: kinu content tinted ; host-page text (untouched), incl. nested markup claw: radius , tab indicator white → in dark, avatar Token block appears once in the bundle (see #126's dedup fix); 19 tests, lint, both builds green Deliberately left as selectors (not smells) Switch geometry, badge/chip padding, button weight, list gap, table cells, card padding, inline-code, checkbox/radio sizing. skipped — the library intentionally inherits the host font. https://claude.ai/code/session_01V7eeBQGLaJDdycKo8yPttw

developit · 1d ago
developit
[preview] radius scale + theme system (deploy preview)MergedPR

Draft for deploy preview only. Same branch as #129 (), but targeted at so Netlify builds a preview. Note the diff here is not the radius slice in isolation — because the theme system (#126) isn't merged yet, this shows #126's changes plus the radius scale. For the clean, reviewable radius-only diff, see #129** (stacked on #126). Contents: The kinu theme system (@layer tokens, claw theme, picker) — from #126 The claw bugfixes (avatar / inbox scroll / picker hydration) — from #126 Slice 1: the scale — this branch Not intended to merge into as-is; close once the preview has served its purpose. https://claude.ai/code/session_01V7eeBQGLaJDdycKo8yPttw _Generated by Claude Code_

developit · 1d ago
Structured data for AI agents

Repository: developit/kinu. Description: Preact UI toolkit. 10x smaller than you think. Intuitive for humans+LLMs. Stars: 103, Forks: 2. Primary language: TypeScript. Languages: TypeScript (48.5%), CSS (42.8%), JavaScript (8.3%), Shell (0.5%). Homepage: https://kinu.sh Topics: preact, ui-components, ui-library, ui-toolkit. Latest release: kinu@0.2.0 (1d ago). Open PRs: 41, open issues: 2. Last activity: 14h ago. Community health: 28%. Top contributors: developit, claude, jamesism, Copilot, github-actions[bot], cursoragent, rschristian.

·@ofershap

Replace github.com with gitshow.dev