v1.0.0
@starbemtech/react-starsystem@1.0.0
Major Changes
-
22c6d8f: Fix 11 existing components to match the Starbem Design System reference kit's public API. This is a breaking release — see the full list below before upgrading.
Button: added variants
tertiary,link,glass,glass-dark,glass-brand(9 total); addedsize="xl"; addedpillandblockprops; added polymorphicas="a"rendering (disabled semantics becomearia-disabledfor the anchor branch).Checkbox / Radio: added
tone("primary" | "success" | "accent"),variant="card"(tile layout),error, andsize="lg".Select: no prop changes —
onChange's value-callback contract is now documented via JSDoc to avoid confusion with a native change event handler.Avatar: added
size="2xl";statusis nowboolean | "online" | "offline" | "away"instead of a closed enum;altis no longer required whensrcis set (falls back toname); addedshape,iconfallback, andringprops. AvatarGroup now takeschildren(<Avatar>elements) instead of anavatarsarray — theAvatarGroupItemtype is removed.Modal:
titletype changed fromstringtoReactNode; addedpresent("auto" | "center" | "sheet" — responsive bottom-sheet layout),tone,icon, andalign.Tabs:
TabItem.contentis now optional (Tabs can be used as a pure tab-bar with no panel, matching the DS — existing usage with content on every item is unaffected); addedTabItem.icon,TabItem.count,variant="enclosed",size, andblock.Badge: variant
"default"is renamed to"neutral"; added variants"primary","accent","solid"; addeddot; now spreads extra HTML attributes (onClick,data-*,aria-*, etc.) onto the root element.Spinner:
sizenow also accepts anumber(pixel diameter) in addition to"sm" | "md" | "lg"; addedthickness;labelis no longer a required prop (defaults to"Carregando"). Added a newDotscomponent (three-dot inline loader).Tooltip: added
tone("dark" | "light" | "brand") and a "rich" layout via the newtitleprop (renderstitle+contentas two lines).Pagination: renamed
currentPage→page,totalPages→total,onPageChange→onChangeto match the DS; addedpill; now spreads extra HTML attributes onto the root<nav>.Migration: update every
PaginationandAvatarGroupusage per the renames above (Table'spaginationprop follows automatically via itsPaginationPropstype). Every other change is additive — no other call site changes are required to keep compiling.
Minor Changes
-
94472b0: Correct design tokens against the Starbem Design System reference kit: fix secondary color (
#7F56D9), fix neutral-1000 (#272727), addinkcolor ramp, adderror/warning/successsemantic color scales, add semantic color aliases, switch body font from Inter to Funnel Display (single-typeface system), fix h1/h2/h4 font sizes, addoverlinesize and per-sizetypeScale(line-height + letter-spacing), addspace-40, rescale border-radius (sm8px,md12px,lg16px,xl24px,2xl32px), fix elevation shadow values to multi-layer DS values, addshadowBrandandringFocustokens, and load the missing Funnel Display@import.Note: these are token corrections only — component implementations still use hardcoded Tailwind arbitrary values (hex/px) instead of consuming these tokens, so no visual change ships in this release. Component migration is tracked separately.
-
f2416f8: Add responsive
Menunavigation component (sidebar/rail/bottom/drawer/auto, container-query driven). Also fixes: ProgressCircle now accepts alabelprop wired toaria-label; IconButton'slabelprop is now required (was optional but functionally mandatory); FilterChip's remove control is now a real sibling button instead of nested inside the chip's own button; FileUploader's inline upload progress bar now reuses theProgresscomponent (adds proper ARIA progressbar semantics). -
41fac7d: Add 7 new components: Progress/ProgressCircle, Tag, IconButton, FilterBar/FilterChip, FileUploader/FileItem, ListItem, and Chart (Sparkline/LineChart/BarChart/DonutChart). All built directly against existing design tokens — no hardcoded colors.
-
c7c4adc: Add 5 new telehealth-domain components:
Calendar(month date picker),DateInput(text field + calendar popover),Schedule(day/week/month agenda with video-consultation chips),Message(chat bubbles +TypingMessage/MessageDay/SystemMessage/MessageList), andVideoCall(video-consultation surface with spotlight/grid layout and live/connecting/ended states).
Patch Changes
- dc6b276: Tech debt cleanup: Progress track now has a dark-mode background color; Menu's drawer panel content stays mounted while closed so the close animation actually slides, and the closed panel is now marked
inertto prevent keyboard focus on hidden controls; AvatarGroup now respects an explicitringprop on child Avatars instead of always forcing it totrue; Checkbox's hover shadow is now tone-aware and dark-mode-aware (previously a single hardcoded amber color regardless of tone). Also added test coverage for FilterChip's disabled propagation, Tabs' mixed-content rendering, and Spinner's combined size+thickness behavior. No public API changes. - 75d5ac8: Migrate all existing components from hardcoded hex/px/shadow values to design tokens defined in the
@themeblock (colors, radius, elevation shadows). No API or behavior change — visual-only, aligning components with the corrected Starbem Design System tokens (secondary color, radius scale, shadow elevations) from the earlier token-correction release. A handful of values with no DS equivalent (two Button glass-variant glows, the Checkbox/Radio focus glow, the Select focus glow) remain hardcoded and are tracked as known technical debt.
🔖 Commits
Changes since v0.3.0:
250ce84fix(ci): pin packageManager to pnpm 11.13.1, stop hardcoding pnpm 9 in workflowscaf18e1chore: release v1.0.0dc6b276chore: add changeset for tech debt cleanup5dd4366chore: update pnpm-lock.yaml for example/'s workspace:* link623ea43fix(example): version pnpm-workspace.yaml and link example/ to the local package via workspace:*ed8f92etest: cover Spinner's combined size+thickness prop interaction146dd08test: cover Tabs rendering a heterogeneous mix of plain/icon/count tab items together7a257a3test: cover disabled propagation to both FilterChip buttons in the removable path3bf9886fix(checkbox): make hover shadow tone-aware and dark-mode-aware (was a hardcoded amber rgba unrelated to tone)7d3046cfix(avatar): let AvatarGroup children override ring via an explicit ring prop5b4e036fix(menu): mark closed drawer panel inert to prevent focusing hidden controlsfddc864fix(menu): keep drawer panel content mounted while closed for a real slide-out animationba7996dfix(progress): add dark-mode track background colorf37e7cfdocs: add implementation plan for tech debt cleanupf2416f8chore: add changeset for Menu component and debt fixes017e2fftest: add secondary-prop coverage for Progress, IconButton, FilterBar, Chartae9a8b2fix(fileuploader): reuse Progress component for the inline upload bar (adds ARIA progressbar semantics)e07d271fix(filterbar): render FilterChip's remove control as a sibling button, not nested1102673fix(iconbutton): make label required (icon-only control needs an accessible name)6fa1becfix(progress): wire ProgressCircle's label prop to aria-labelc9c829efix(menu): make auto mode accessible via ResizeObserver instead of aria-hidden dual-render, fix non-contiguous section grouping6bf25d4feat(menu): add responsive Menu component (sidebar/rail/bottom/drawer/auto)0d00a9edocs: add implementation plan for Menu component and debt fixes145de1fdocs: add design spec for Menu component76bcc78docs: add implementation plan for Menu component and debt fixesc56c2acdocs: add design spec for Menu component41fac7dchore: add changeset for 7 new components311609efix(chart): implement BarChart hover tooltip, stop tooltip prop leaking to DOM66e61f6feat(chart): add Chart, Sparkline, LineChart, BarChart and DonutChart components6fa4f10fix(fileuploader): replace invalid ink-400 token with valid ink-300b35af2bfix(listitem): replace invalid ink-400 token, align active color with NavItem/Table conventionff8f6bafeat(listitem): add ListItem componentc187af7fix(fileuploader): render title as visible text, add dark mode variantsfd7015efeat(fileuploader): add FileUploader and FileItem componentse96c251fix(filterbar): segmented visual connection + keyboard-accessible remove chipdf0735efeat(filterbar): add FilterBar and FilterChip componentsccfee44feat(iconbutton): add IconButton componentfc63598feat(tag): add Tag component6509418fix(progress): address review findings (drop eslint.config.js scope creep, tidy aria-label, add clamp test)2d751d0feat(progress): add Progress and ProgressCircle components4bcaedadocs: add implementation plan for 7 new componentscb2e8c8docs: add design spec for 7 pending components (Progress, Tag, IconButton, FilterBar, FileUploader, ListItem, Chart)87ba59edocs: add implementation plan for 7 new componentsf56b79fdocs: add design spec for 7 pending components (Progress, Tag, IconButton, FilterBar, FileUploader, ListItem, Chart)75d5ac8chore: add changeset for token migration73f0758refactor(videocall): migrate to design tokens7b67c7erefactor(topbar): migrate to design tokens0174475refactor(tooltip): migrate to design tokens671c004refactor(toggle): migrate to design tokens95278c4refactor(toast): migrate to design tokens82b4314refactor(textarea): migrate to design tokensc2d4c6frefactor(tabs): migrate to design tokens45e37b0refactor(table): migrate to design tokens1ac0bf1refactor(spinner): migrate to design tokensfab03a0refactor(skeleton): migrate to design tokensbc33ederefactor(sidebar): migrate to design tokens6ecc209refactor(select): migrate to design tokens9b60d23refactor(schedule): migrate to design tokens6cf5e4arefactor(radio): migrate to design tokenseddfe6crefactor(popover): migrate to design tokens0eb913frefactor(pagination): migrate to design tokens82c6256refactor(modal): migrate to design tokensfc7fa91refactor(message): migrate to design tokensc474729refactor(input): migrate to design tokens520d998refactor(formfield): migrate to design tokens3344be9refactor(emptystate): migrate to design tokensd6ebd3arefactor(dropdownmenu): migrate to design tokensedd08c7refactor(drawer): migrate to design tokens08af54arefactor(divider): migrate to design tokens0b7bdferefactor(dateinput): migrate to design tokens1e30611docs: fix Task 9 plan gap — add missing border-[#374151] row (matches pattern used in every other task)bcc87a0refactor(checkbox): migrate to design tokens3de47aarefactor(card): migrate to design tokensbf576ccrefactor(calendar): migrate to design tokens4ce8855refactor(button): migrate to design tokens49bba5drefactor(breadcrumb): migrate to design tokens28292fcrefactor(badge): migrate to design tokens20e47e3refactor(avatar): migrate to design tokens1b00232refactor(alert): migrate to design tokensb65f3a3refactor(accordion): migrate to design tokens35d623bdocs: add implementation plan for token migration, amend spec gapsdadb52cdocs: add design spec for existing-components token migration4769debdocs: add implementation plan for token migration, amend spec gapsca0a16cdocs: add design spec for existing-components token migration7c48346fix(Checkbox): apply error border to card wrapper when unchecked; fix(barrel): export missing DS union types22c6d8ffix(example): update Pagination and Badge usage for renamed props; chore: add major changeset for DS fidelity fixesf5d78b5feat(Pagination): rename currentPage/totalPages/onPageChange to page/total/onChange, add pill, spread HTML attributeseec5b50feat(Tooltip): add tone (dark/light/brand) and rich title+content layout054c180feat(Spinner): numeric size, thickness override, default label; add Dots component8b4a0c4feat(Badge): DS-aligned variant set, dot indicator, HTML attribute spreaddbd4543feat(Tabs): make content optional, add icon, count, enclosed variant, size, blockd7a8121fix(Modal): default align to start and scope auto size cap to sm:1d68e09feat(Modal): add present (responsive sheet), tone badge, icon, alignf77e35efix(Avatar): only clone size/ring props onto actual Avatar children in AvatarGroup5ed1301feat(Avatar): add size 2xl, boolean status, optional alt, shape, icon fallback, ring; AvatarGroup takes childrene41afc7docs(Select): clarify onChange is a value callback, not a native change event0c0b988fix(Radio): apply error border to card wrapper when unchecked943fff7feat(Radio): add tone, card variant, error state, size lg674d5b0feat(Checkbox): add tone, card variant, error state, size lg2c25b1afix(Button): dim loading anchor visually since :disabled never matchesced2324feat(Button): add DS variants, xl size, pill, block, polymorphic as prop5445ae5docs: add implementation plan for existing-component DS fidelity fixes0f2c1f3docs: add design spec for existing-component DS fidelity fixesbb1345cdocs: add implementation plan for existing-component DS fidelity fixes7a8bf62docs: add design spec for existing-component DS fidelity fixesc7c4adcfeat: export telehealth components and add changeset26cfa3dfeat: add VideoCall component9120c11feat: add Message component and chat helpers7e57581feat: add Schedule component2bcdcfefix: correct aria-describedby condition in DateInput510d413fix: resolve DateInput lint error and add missing ARIA attributes1c6c8d3feat: add DateInput component01d328efeat: add Calendar component6f8191edocs: add implementation plan for telehealth components1cb1b04docs: add design spec for telehealth components (Calendar, DateInput, Schedule, Message, VideoCall)decea63fix(tokens): correct design tokens against Starbem Design System reference139ffb9docs: add implementation plan for telehealth components0e5f9addocs: add design spec for telehealth components (Calendar, DateInput, Schedule, Message, VideoCall)94472b0fix(tokens): correct design tokens against Starbem Design System reference5fb34a8fix(example): migrate from react-router-dom to react-router v82e123d6fix: bump postcss and brace-expansion to patched versions5efedb7feat(example): wire Icon component into sidebar, topbar, and page actions
📦 Install
pnpm add @starbemtech/react-starsystem@1.0.0🚀 Basic usage
import { Button } from '@starbemtech/react-starsystem'
import '@starbemtech/react-starsystem/style.css'🎨 Design Tokens
import { colors, fontFamily, fontSize, spacing, borderRadius } from '@starbemtech/react-starsystem'
// colors
colors.primary.base // #FF5100
colors.secondary.base // #7F56D9
colors.terciary.base // #ED2E98