Changelog
Every free component and block added to Manicat UI, newest first.
New free components and blocks ship regularly. Every entry links to its live preview on this site.
2026-10-14
Added
- Faithful Vue and Svelte ports, rebuilt from the React source with the same markup, CSS, motion and lucide icons, and checked against the React demo with a pixel diff: waffle chart, sortable data table, carousel, treemap, swipe actions, expanding search, expanding button group, usage meter, inline edit, card stack, resizable panels and ridgeline. They join the components ported the same way earlier in the week.
- React Native colours are now generated from
foundation.css(scripts/gen-rn-tokens.mjs): everyoklch()is converted to sRGB for light, dark and each accent, and the SwiftUI tokens are generated from the same values, so the three platforms cannot drift. New tokens:surfaceRaised,borderSubtle,accentForeground,controlGlyph,controlFill, plusaccentsandradii. - React Native text uses Inter and Geist like the web, through one
Text/TextInput(lib/rn-text.tsx) that sets the family, weight and line height;useManicatFonts()loads the fonts on a device withexpo-font. - Real lucide icons (
lucide-react-native) replace the text glyphs in 28 React Native components, and the chevrons, checks and close buttons of the rest are being moved over. - The parity script can click and hover with real mouse input (
--real), drag (--drag), and pick its own targets (--sel), so swipes, sliders, carousels and panels are compared in motion.
Changed
- The counter used by the usage meter can keep the digits that are off the wheel in the text tree (
hideOffWheel: false), as the React usage meter does. - The Vue ports no longer type-fail:
defineModeloptions, template handlers and refs were tightened, andpnpm check(typecheck, lint, registry) is green again apart from one lint warning. check:paritycompares Svelte and Vue CSS with the Reka UI and Bits UI variable names treated as the same, since those two libraries name them differently.
Fixed
- The resizable panels demo no longer collapses to its content height: the height class lost to the component's own
height: 100%, so the demo now sizes a wrapper. - Svelte inline edit lost focus right after a real click, closing the editor at once.
- Svelte copy button and resizable panels no longer name a variable
state, which shadows the$staterune.
2026-10-13
Added
- Svelte 5 and SwiftUI ports for every component and block, installable as
@manicat/<name>-svelteand@manicat/<name>-swift, with a Usage snippet in each format. - Viewers for Svelte, Vue, React Native (react-native-web) and Swift that run every Usage snippet next to the React demo.
check:registrynow compares the Svelte and Vue CSS, the Swift and React Native tokens, and compiles every Vue port.
Fixed
- The phone input's country button was invisible and unclickable.
- Nested buttons inside Radix triggers and closes, duplicate keys in the swipe actions demo, and avatar images from pravatar.
- Install commands print the real site origin (
NEXT_PUBLIC_SITE_URL) instead of localhost.
2026-10-12
Changed
- Component pages now show a copy-paste ready Usage snippet and concrete, real-world Examples, each with a Preview/Code switch.
- Code cards put the file name, language badge and copy button on one row; a framework switcher replaces the old type badge.
2026-10-05
Added
- Morph select (component): A select whose trigger grows into the list, with a gliding highlight and type-ahead.
2026-10-03
Added
- Money input (component): A currency field with live grouping, stable width, rolling digits, and minor-unit output.
2026-10-02
Added
- Button group (component): Related actions joined into one surface with hairline dividers: a hover highlight glides between segments, the pressed one answers in place, and an attached menu can close the row.
- Floating button group (component): Separate soft buttons in a quiet tray, with one shared highlight that morphs from button to button as you move, and a pressed state that settles in place.
- Expanding button group (component): Icon buttons in a compact group: the one you point at or focus grows to reveal its label while its neighbours slide aside, and an action confirms in place.
2026-10-01
Added
- Card stack (component): Review a deck one card at a time, with a throw and an undo.
2026-09-30
Added
- Password strength (component): Show how strong a new password is while it is typed.
- Expanding search (component): An icon that morphs into a search field with results beneath it.
- JSON viewer (component): A collapsible JSON tree with search, paging for long arrays, and copy value or path.
Initial release
97 components and 22 blocks, plus the design tokens (registry/foundation.css) and motion presets (lib/motion-tokens.ts) they share.
Components
- Actions: Button, Action button, Split button, Copy button, Confirm morph, Hold to confirm, Swipe actions, Dropdown menu, Context menu, User menu, Theme switcher, Eclipse, Split, Rise
- Inputs: Input, Textarea, Password field, Search field, Inline edit, Number field, Phone input, Tag input, Mention input, Shortcut recorder, Select, Combobox, Multi-select, Chip group, Radio cards, Billing toggle, Checkbox, Radio group, Switch, Segmented control, Slider, Calendar, Date picker, Date range picker, Time picker, Color picker, Rich text editor, Signature pad, File dropzone
- Disclosure: Tabs, Breadcrumb, Pagination, Scroll area, Accordion, Expandable card, Resizable panels, Dialog, Drawer, Bottom sheet, Popover, Hover card, Tooltip
- Feedback: Alert, Toast, Toast stack, Announcement bar, Progress, Skeleton, Stepper, Usage meter
- Data: Avatar, Avatar group, Badge, Card, Metric card, Empty state, Line chart, Bar chart, Donut chart, Streamgraph, Brush chart, Waffle chart, Slope chart, Sparkline, Gauge, Activity heatmap, Animated counter, Ridgeline, Treemap, Sortable data table, Tree view, Filter toolbar, Code block, Timeline, Comment thread, Chat thread, Image compare, Carousel
- Text: Text reveal, In-view title, Text morph, Text shimmer
- Special: Slot text
Blocks
- App shell: Page header, Command palette, Notification center, Empty states
- Auth: Sign up form, Sign in, Centered login, OTP input
- Pricing: Plan comparison
- Media: File upload
- Heroes: Hero section
- Features: Comparison table
- Social proof: Logo marquee, Stats band
- Content: Changelog feed, FAQ section, Contact section, Blog grid
- Headers and footers: Site header, Site footer, CTA section, Newsletter signup