All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
header-fixednot working: Position modifiers are now applied via--header-positioncustom property so declaration order no longer matters.header-blurcreating unwanted stacking context: Default changed fromblur(0px)tonone— no filter is applied unlessheader-bluris explicitly used. Fixes drawers getting trapped inside the header's bounding box.- Drawer rendering under fixed header: Drawer
z-indexraised from999to1000so it always appears above the header.
2.2.5 - 2026-07-20
- Tailwind 4.3.3 compatibility: Active and expanded states stopped applying in
collapsible,combobox-item,drawer,swap,swap-rotate,swap-flip, andtooltipafter upgrading to Tailwind 4.3.3 (tailwindlabs/tailwindcss#20124). Fixed by converting compound selectors inside@utilityblocks to:is()syntax. createComboboxkeyboard navigation invisible: Arrow-key highlight was not visible —highlight()was togglingcombobox-option-activewhich has no CSS. Changed tocombobox-item-active.createComboboxitem targeting: JS queried.combobox-optionwhile the CSS utility uses.combobox-item, requiring two classes per item. The helper now uses.combobox-itemdirectly.- Inline code wrapping: Removed
white-space: nowrapfrom inlinecodeelements — it prevented wrapping but caused horizontal overflow in narrow containers and prose.
2.2.4 - 2026-07-18
- Inline code and hr styles overridden by Tailwind preflight: Inline code padding and hr border were being overridden by Tailwind's universal preflight reset when placed outside a cascade layer. Both are now declared outside any layer so they always take effect regardless of how Tailwind is configured.
- Inline code word wrapping: Inline code elements no longer break mid-word inside table cells or narrow containers.
- Inline code font weight: Removed hardcoded bold weight from inline code to allow natural inheritance from the surrounding context.
2.2.3 - 2026-07-02
navbarhorizontal placement li selector: Fixed an invalid CSS selector innavbar-start,navbar-center, andnavbar-endthat causedwhite-space: nowrapto never apply to list items. The previous selector required a list item to be a direct child of two different elements simultaneously, which is impossible. The corrected selector properly targets list items inside the navbar list.
2.2.2 - 2026-07-01
navbarlist item text wrapping in horizontal layouts: Nav items no longer wrap text vertically innavbar-start,navbar-center, andnavbar-endplacements. Addswhite-space: nowraptolielements in horizontal navbar variants, consistent with the same rule onbtn,tab,menu, andbreadcrumb-list.
2.2.1 - 2026-06-07
stats-horizontalandstats-verticaldivider lines: Divider override rules are now placed inside thestats-horizontal/stats-verticalutilities as forward-nested& .stat + .statrules. The previous approach used ancestor/backward nesting (.stats-vertical & + &inside@utility stat) which Tailwind v4'saddUtilities()silently drops, causing dividers to render incorrectly when either modifier was applied via the plugin.
2.2.0 - 2026-06-06
stats-horizontalmodifier: New explicit horizontal layout variant forstats. Mirrors the default behavior as a named class, making it straightforward to switch between orientations with responsive variants (e.g.stats-vertical md:stats-horizontal).
stats-verticaldivider lines: Dividers between stat items now render as horizontal lines whenstats-verticalis applied. Previously,border-inline-startwas used regardless of orientation, causing incorrect vertical lines.dividerlabel text wrapping: Label text (e.g. "OR") no longer wraps when the divider is placed in a narrow container.btntext wrapping: Button text no longer wraps when placed in a narrow container.
2.1.2 - 2026-05-14
- UA font inheritance on interactive components:
btn,input,textarea, andselectnow includefont: inheritso they inherit the page font-family rather than silently falling back to the system UI font. The explicitfont-sizeeach utility already declares continues to take effect as before. menu-itemUA resets for<button>usage:menu-itemnow resetsbackground,border,font, andwidthso it renders correctly when applied to a<button>element.collapsible-titleUA resets for<button>usage:collapsible-titlenow resetsbackground,border, andfontso it renders correctly when applied to a<button>element.
2.1.1 - 2026-05-13
- Color contrast on
text-base:text-basehad failing color contrast — it was using a raw base color instead of the body color token. Updated to usevar(--color-body)so text meets contrast requirements in both light and dark themes.
2.1.0 - 2026-05-13
marqueecomponent: New pure-CSS infinite scrolling strip. Supports horizontal and vertical directions, pause-on-hover (marquee-pause), reverse playback (marquee-reverse), gradient fade edges (marquee-fade), and three speed presets (marquee-slow,marquee-normal,marquee-fast). Gap between items is controlled via--marquee--gapand is consistent at the loop seam. Respectsprefers-reduced-motionautomatically.
- Color contrast on
footer-title:footer-titlewas usingopacity: 60%which reduced contrast across the entire element. Replaced withcolor: inheritso the title inherits its parent's color at full opacity.
- CDN fields in
package.json: Addedunpkgandjsdelivrfields pointing to./dist/frutjam.min.cssso the minified stylesheet is served automatically by unpkg and jsDelivr CDNs.
- Text-color utilities not applying:
text-primary,text-success,text-warning, and other semantic text-color utilities were not applying in some setups — the color appeared but without the correct light/dark contrast. Now fixed; these utilities work correctly in both light and dark mode regardless of your Tailwind configuration.
2.0.5 - 2026-05-13
-
skeleton-textshimmer animation:skeleton-textwas incorrectly hiding text and showing a blank bar instead of animating. It now shimmers over the visible text content as intended. -
UA default resets — interactive components:
btn,badge,tag, andmenu-itemnow resettext-decoration: noneso they render correctly when used as<a>elements inside prose or content areas.btnaddsvertical-align: middlefor consistent inline alignment when used on<a>.menu-itemandtagaddappearance: noneto suppress browser button chrome when used on<button>.tabaddstext-decoration: nonefor the same reason asbtn. -
Color contrast on text utilities:
text-primary,text-success,text-warning, and other semantic text color utilities had failing color contrast — now fixed. Text is readable in both light and dark themes. -
Color contrast on menu and stat labels:
menu-title,stat-title, andstat-deschad failing color contrast — now fixed. Labels are consistently legible regardless of the active theme. -
Text color inside
alertandchat-bubble: Paragraphs and list items inside alerts and chat bubbles now correctly inherit the component's text color instead of being overridden by global styles. -
Text color inside
card: Paragraphs inside cards now correctly inherit the card's text color instead of being overridden by global styles. -
Global style specificity: Base styles for
p, lists, andstrongelements no longer override component or utility styles, so inline color utilities always win as expected.
2.0.4 - 2026-05-10
- UA default resets (continued):
checkbox,radio, andtab(radio input) now explicitly setborder: noneso browser UA and host-page CSS framework borders are suppressed whenappearance: noneremoves native rendering.breadcrumb-list(<ol>) now setslist-style: none; padding: 0; margin: 0so breadcrumb items render without numbered bullets or extra indent when the global reset is disabled.
2.0.3 - 2026-05-10
- UA default resets: Components that target elements with significant browser UA defaults (
[popover],<dialog>,<button>,<input>,<progress>,<table>) now explicitly resetborder,inset,margin,color,appearance, andborder-collapsewhere applicable, so they render correctly regardless of the host page's CSS.
2.0.2 - 2026-05-10
rootoption — theme selector scoping: When a customrootselector is configured,[data-theme]selectors are now scoped to that root as compound selectors instead of remaining global. Previously, theme variable rules still targeted the page-level:root, causing CSS variable conflicts when the component was embedded in another page. Applies to both the PostCSS@pluginpath and the Tailwind v4 plugin path.
2.0.1 - 2026-05-07
CONTRIBUTING.md: Added contribution guidelines covering branch naming, commit conventions, CSS authoring rules (cascade specificity, CSS variables, native-first approach), and PR checklist- docs — JS & React helper examples: Added
frutjam/jsandfrutjam/reactusage sections tocarousel,collapsible,combobox,drawer, andtooltipcomponent pages - docs —
configuration: Expandedresetandrootoption docs with detailed explanations, a comparison table, and a scoped wrapper example for coexisting with other CSS frameworks
-
Cascade specificity architecture: All components now follow a clear three-tier priority model, so any inline utility class always overrides a component default — no
!importantneeded, and no surprise specificity battles:- Inline class on the element — highest priority, always wins
- Parent component context — mid-level, inherited naturally through CSS variables or
color: inherit - Root baseline — lowest priority, the component's out-of-the-box default
-
docs —
card: Movedcard-actionsinsidecard-contentin the "Card with Actions" example -
accordion: Added:focus-visibleoutline on<summary>elements for keyboard navigation (WCAG 2.4.7) -
carousel:scroll-behavior: smoothnow respectsprefers-reduced-motion; JSscrollIntoViewalso switches to instant scroll when motion is reduced (WCAG 2.3.3) -
range: Added:focus-visibleoutline on::-moz-range-thumbso Firefox keyboard users see a focus indicator (WCAG 2.4.7) -
frutjam/js—createToastManager: Container is initialized witharia-live="polite"andaria-atomic="false"; error/warning toasts receiverole="alert", all others receiverole="status"so screen readers announce notifications (WCAG 4.1.3) -
frutjam/js—createCollapsible:open,close, andtogglenow syncaria-expandedon any[aria-expanded]trigger found inside the container (WCAG 4.1.2) -
frutjam/js—createTabs: Setsrole="tablist/tab/tabpanel"on elements, generates stable IDs, wiresaria-controls/aria-labelledbybetween tabs and panels, managestabindex, and adds Arrow / Home / End keyboard navigation (WCAG 1.3.1, 2.1.1) -
frutjam/js—createCombobox: Auto-discovers or creates the listbox element, assignsrole="listbox"and a stable ID, wiresaria-controlsandaria-activedescendanton the input, and assigns stable IDs to each option (WCAG 1.3.1) -
frutjam/react—useCombobox: AddedlistboxProps(role="listbox",id);inputPropsnow includesaria-controlsandaria-activedescendant; eachoptionPropsentry includes a stableid(WCAG 1.3.1) -
frutjam/react—useTabs: AddedtablistProps;tabPropsnow includes stableid,aria-controls,aria-selected,tabIndex, and anonKeyDownhandler for Arrow / Home / End navigation;panelPropsnow includes stableid,aria-labelledby, andtabIndex(WCAG 1.3.1, 2.1.1) -
frutjam/react—useCollapsible:open,close, andtogglenow syncaria-expandedon any[aria-expanded]trigger inside the container ref (WCAG 4.1.2) -
popover:popover-contentmargins now default to0; each placement utility sets only the axis it needs (block margins for top/bottom, inline margins for start/end), eliminating unwanted cross-axis offset -
typography:--tw-prose-countersnow usesvar(--color-neutral)instead ofvar(--color-on-neutral)to match list bullet color
2.0.0 - 2026-05-02
status: New status dot component for presence/state indicators (online, offline, busy, etc.); supports color variants (status-primary→status-error) and size variants (status-xs→status-xl); usesoutlinering separator for clean appearance on any backgroundindicator: New indicator/overlay component for positioning badges over other elements; supports placement modifiers (indicator-start/end/center,indicator-top/middle/bottom)carousel: New scroll-snap carousel component withcarousel-itemchildren; supportscarousel-vertical,carousel-center, andcarousel-endvariantscombobox: New searchable dropdown component withcombobox-list,combobox-option, andcombobox-openclasses; supports color and size variants, open state via JS orcombobox-openclassdiff: New before/after comparison componentradial-progress: New circular progress indicator component; set progress via--value(0–100); optionally override--size(default5rem) and--thickness(default 10% of size)swap: New CSS-only toggle component for switching between two elements; supportsswap-rotateandswap-flipanimation styles, andswap-activeclass for JS-controlled statecountdown: New countdown componentinput: Addedinput-squaremodifier for square/PIN-style inputskbd: New keyboard key componentloading: New loading spinner/indicator componentmask: New mask component with shape variantsrange: New range slider input componentrating: New star rating componentselect: New select dropdown componentskeleton: New skeleton loading placeholder componentstat: New stat/statistic display componentsteps: New steps/progress tracker component withsteps-horizontalandsteps-verticallayout variantstabs: New tabs navigation componenttag: New tag/chip componenttextarea: New textarea componenttimeline: New timeline component withtimeline-horizontalandtimeline-verticallayout variants,timeline-snap-start, andtimeline-snap-endtoast: New toast notification container component with placement variants (toast-top/middle/bottom,toast-start/center/end)toggle: New toggle switch componentavatar: New component with size variants (avatar-xs→avatar-2xl), shape variants (avatar-circle,avatar-square,avatar-rounded), color variants, ring (avatar-ring), status indicators (avatar-status,avatar-online,avatar-offline,avatar-busy,avatar-away), mask shapes (avatar-mask-squircle,avatar-mask-hexagon,avatar-mask-triangle), and group layout (avatar-group)chat: New component withchat-start/chat-endalignment,chat-bubble,chat-avatar,chat-footer, size variants (chat-xs→chat-xl), and color variants (chat-bubble-primary,chat-bubble-error, etc.)hero: New component withhero-contentfor centered content andhero-overlayfor background image overlaysfooter: New component withfooter-title, direction variants (footer-horizontal,footer-vertical), andfooter-centerfor centered layoutsheader: Addedheader-start,header-center, andheader-endslot utilities for grid-based content placement, plus new state utilitiesheader-fixed,header-shadow,header-blur,header-transparent,header-solid, and size variantsheader-smandheader-lgdivider: Addeddivider-dottedstyle variantfrutjam/js: Vanilla ES module helpers for interactive components —createModal,createDrawer,createCollapsible,createTooltip,createTabs,createToast,createCarousel,createComboboxfrutjam/react: React hooks for the same set —useModal,useDrawer,useCollapsible,useTooltip,useTabs,useToast,useCarousel,useCombobox; each returns aref+ control methods with no extra dependencies- Multi-framework code examples: All 51 component doc pages now include HTML and React tabs in the Basic Usage snippet;
modaland JS-controlledtabsadditionally include Vue, Svelte, and Angular tabs where the wiring differs meaningfully - Installation docs: New sections for
frutjam/jsandfrutjam/reactincontent/docs/installation.html, clearly positioned as optional helpers for non-native components
@plugin[BREAKING]: Load Frutjam with@plugin "frutjam"instead of@import "frutjam":@plugin "frutjam"; /* or with options: */ @plugin "frutjam" { prefix: fj; reset: true; root: :host; themes: snowberry, darkberry; include: button, card, alert; }
accordion[BREAKING]:accordion-bodyrenamed toaccordion-contentalert[BREAKING]:alert-xrenamed toalert-horizontal;alert-yrenamed toalert-verticalcard[BREAKING]:card-bodyrenamed tocard-contentdivider[BREAKING]:divider-xrenamed todivider-horizontal;divider-yrenamed todivider-verticaldrawer[BREAKING]:drawer-bodyrenamed todrawer-contentfooter[BREAKING]:footer-xrenamed tofooter-horizontal;footer-yrenamed tofooter-verticalheader[BREAKING]:header-bodyrenamed toheader-contenthero[BREAKING]:hero-bodyrenamed tohero-contentjoin[BREAKING]:join-xrenamed tojoin-horizontal;join-yrenamed tojoin-verticalmenu[BREAKING]:menu-xrenamed tomenu-horizontal;menu-yrenamed tomenu-verticalmodal[BREAKING]:modal-bodyrenamed tomodal-content; placement classes renamed —modal-x-start/center/end→modal-start/center/end;modal-y-start/center/end→modal-top/middle/bottomnavbar[BREAKING]: Placement classes renamed —navbar-x-start/center/end→navbar-start/center/end;navbar-y-start/center/end→navbar-top/middle/bottom;navbar-y-center→navbar-middlepopover[BREAKING]:popover-bodyrenamed topopover-contenttooltip[BREAKING]:tooltip-bodyrenamed totooltip-contentIndependent prefix[BREAKING]: Frutjam prefix is now configured separately from Tailwind's own prefix — Tailwind'sprefix(tw)acts as a variant and requirestw:on all utilities in HTML (e.g.,tw:flex,tw:btn), while Frutjam'sprefix: fjrenames Frutjam class names (e.g.,fj-btn). When both are used together, combine them:tw:fj-btncontainer[BREAKING]: Renamed towrapperto avoid conflict with Tailwind's built-incontainerutility; size variants follow the same pattern —container-sm→wrapper-sm,container-full→wrapper-fullpopover: Popovers without an explicit placement class now auto-flip to stay within the viewport usingposition-try-fallbacks; explicit placement classes (e.g.popover-top-start) remain strict and never flippopover: Simplified to use CSS anchor positioning only; removed arrow/caret element and transition complexity
blackberrytheme: Removed — onlysnowberry(light) anddarkberry(dark) themes ship by default
join: Join now works automatically with any element — direction utilities selectively zero only the inner corners adjacent to neighbors, preserving each element's naturalborder-radiuswithout requiring components to opt inpopover: Fixed popovers appearing over the trigger button instead of beside itlink: Fixed typo inlink-neutral—nuetralcorrected toneutralin color variable referencesalert-pill: Fixed shape issue withalert-pillnot appearing correctly
1.11.0 - 2026-03-10
alert: Added a newalertcomponent for displaying contextual feedback messages to usersprogress: Added a newprogresscomponent
drawer: remove custom width logic for drawer and drawer-body
1.10.1 - 2026-03-02
join: Scopedjoin-itemradius to component-level variables to prevent global defaults from overriding.btn,.input, or.cardstyles
1.10.0 - 2026-03-02
join-item: Extendedjoin-itemutility class to supportinputcomponents. This ensuresborder-radiusvariables are correctly applied to inputs when groupedbtn: add active background color when checkbox is checked
badge-circle: Removedwidthandheightto allow flexible sizinginput: Changed fromoutlinetoborder. This ensures the input and button maintain a perfectly synchronized height and stroke-line when grouped
badge: Fix incorrect default padding size inbadge-squareandbadge-circletooltip-body: Rename CSS variable to avoid conflict with utility class name
1.9.1 - 2026-02-21
btn-circle: fixed incorrect variable assignment that caused shape rendering failure
1.9.0 - 2026-02-20
prose-frutjam: Introduced.prose-frutjam, a new typography utility that bridges@tailwindcss/typographywith the Frutjam themedoc: Added Typography Docs page
typography: Adjusted line-height: tight (1.15) for heading utility and relaxed (1.6) for para utility
1.8.0 - 2026-02-05
btn: Added CSS-based auto color-contrast fallback for buttons usingcolor-contrast()to ensure readable text when--color-on-btnis not explicitly definedbtn: Added user-select: none to the base button to ensure it looks consistent across browsers.join: Added a new join component for grouping other components (e.g., Button, Card).
accordion: Improved accordion UX by limiting pointer cursor to summarymenu: Removed default padding from the menumenu: Addedmargin-block-starttoulandlielements in the menumenu: Excluded the firstlichild from the addedmargin-block-startbtn: Improved button hover and unhover smoothness with refined transition timingbtn:Refined hover background behavior to avoid abrupt color changesbtn: Changed from outline to border for better visual consistencycdn: refactor: separate responsive and non-responsive utilities
accordion: Improved chevron icon alignment to be vertically centeredmenu: Applymargin-block-startonly when a popover position is setbtn: Better disabled state (50% opacity instead of 20% - more accessible)table: override UA th alignment and use logical start
1.7.0 - 2026-01-14
menu: Addcursor: pointertomenu-itempopover: Added newpopovercomponent with click and hover support
core: Replace physical CSS properties with logical ones for LTR/RTLbreadcrumb: Changed breadcrumb separator icon color to--color-on-base
card: Remove overflow:hidden to allow content overflowaccordion: Prevent chevron from being cut off on small screens or long textaccordion: Reduce chevron icon size for better fitaccordion: Fixed accordion top margin not applying in the menu
1.6.0 - 2026-01-08
cdn: Add breakpoint variants to all CDN classesbadge: Added newbadge-pillutility class
menu: Set the menu component content color to the base color
accordion: Restored padding behavior in the accordion component: Padding is applied whenaccordion-flushis not used, and padding is removed whenaccordion-flushis applied.menu: Add themenu-disabledandmenu-activeclasses to the safelistmenu: Fixed alignment issues in the menu component when using icons with text, ensuring icons and labels appear on the same lineaccordion: align summary icon and text to start with arrow at endbadge: Fixedbadge-circleutility not rendering as a full circle when applied
1.5.0 - 2026-01-06
menu: Removed submenu utility to simplify the menu component implementation
accordion: Adjusted accordion padding to ensure better alignment with other components, such as the menu, without disrupting their layoutmenu: Improved component alignment for better consistency
1.4.0 - 2026-01-06
menu: Introducedmenu-itemclass for themenucomponent to improve menu structure and styling
accordion: Implement accordion chevron icon using pure CSS to ensure theme color consistency
sidebar: Remove defualt padding insidebarcomponent
1.3.0 - 2026-01-05
accordion: Introducedaccordion-bodyutility to wrap content and improve separation within accordion sectionsmenu: Newsubmenuclass for themenucomponent to support nested menu items
accordion:accordion-flushutility: removed padding and set font-weight to normalaccordion: Removed the default background color fromaccordion.accordion: Updated thedetailselement to span the full width of its container.accordion: Improved padding to better align with other components such asmenu.menu: Overall structure and styling of themenucomponent for better usability and visual consistency.menu: Alignment and integration ofmenucomponent withaccordioncomponent for seamless collapse/expand behavior within nested menus.
accordion: Accordion border and padding for nested accordions:- Apply border only to top-level accordion (prevent border on nested accordions)
- Add padding to first-level accordion-body and summary only, removing it from nested items
- Ensure nested details and summaries do not inherit styles from parent accordion
accordion: Removed top padding from the first<summary>tag in theaccordion-flushto improve visual consistency
1.2.0 - 2025-12-30
menu: AddedMenucomponent with vertical/horizontal layouts and nested submenu supporttooltip: AddedTooltipcomponentaccordion: Add.accordion-flushutility toaccordioncomponent to remove default border
1.1.0 - 2025-12-18
table:table-hoverutility to highlight rows on mouseover.table:table-zebraas a shorthand for standard row-based striping.table:table-zebra-rowsandtable-zebra-colsfor explicit horizontal or vertical striping.table:table-pin-rowsandtable-pin-colsfor sticky headers and fixed-position columns.table:table-{xs|sm|md|lg|xl}for controlling cell padding and font sizes.radio: Added a new Radio component for user selection
header: Fix header width to span full screencard: Fixes the card-body text color issue when thecard-{color}theme utility class is applied, ensuring the text color matches the card theme.checkbox: Corrected variable assignment forcheckbox-rounded,checkbox-circle, andcheckbox-squareutilities, ensuring proper border radius is applied.
1.0.0 - 2025-12-03
- Prebuilt UI Components — Ready-to-use components like Buttons, Modals, Accordions, Badges, Cards, Breadcrumbs, Checkboxes, and more.
- Flexible Theme System — Multiple built-in themes (Light, Dark, etc.) plus full support for creating custom themes via CSS variables.
- RTL & Responsive Support — Out-of-the-box support for right-to-left languages and mobile-first responsive layouts.
- Accessibility-First Design — Components built with semantic HTML and accessibility best practices for inclusive, WCAG-friendly interfaces.
- SEO-Friendly & Standards-Compliant — Clean, valid HTML and semantic markup for better SEO and W3C compatibility.
- Tailwind CSS Integration — Seamless integration with Tailwind CSS with minimal setup.
- Markdown Editor Plugin — Built-in plugin support, including a theme-aware Markdown editor for rich text content.
- Developer-Friendly & Extensible — Minimal setup, flexible customization, and full control without relying on heavy JavaScript.
2.7.1-beta.1 - 2025-10-19
- Fixes drawer width when no placement utility is assigned with the drawer component
2.7.1-beta.0 - 2025-10-19
- Introduced new
divider-infovariant for UI divider styling
- Fixes "Unexpected token CurlyBracketBlock" warning
- Add missing semicolon in the CSS for the
.input-disableclass - Fixes drawer width when no placement utility is assigned with the drawer component
2.7.0-beta.1 - 2025-09-24
- Corrected incorrect variable assignment for divider color
2.7.0-beta.0 - 2025-09-24
- You can now import all safelists using
import 'frutjam/safelist'. This makes it easier to generate and use all Frutjam utility classes, especially when working with Markdown content or static analysis tools. - Added support for
card-{primary, secondary, accent, info, neutral, success, warning, error}utility classes to style cards with semantic colors.
2.6.0-beta.0 - 2025-08-21
- Added new
tablecomponent for displaying tabular data. - chore: update preflight to improve base styling and consistency
2.5.0-beta.7 - 2025-08-11
- Corrects misassigned target classes for dropdown-body
2.5.0-beta.6 - 2025-08-11
- reduce sidebar padding for improved layout spacing
- fix(drawer): enable scroll on drawer-body when content overflows
- fix: prevent sidebar content from being cut off when scrolling to bottom by adjusting max-height
- Fixed issue where default checkbox outline was not visible in dark mode.
2.5.0-beta.5 - 2025-08-08
- Corrects the size of the
container-fullutility.
2.5.0-beta.4 - 2025-08-07
- Corrects the size of the
containerutility.
2.5.0-beta.3 - 2025-08-06
- TailwindCSS prefix issue: Nested utility classes inside components were not being automatically prefixed when using the
twprefix. A temporary patch was applied using a class attribute selector workaround until an official fix is released by TailwindCSS.
2.5.0-beta.2 - 2025-08-03
- Removed default surface-md size when no size is assigned; now only the assigned size takes effect
2.5.0-beta.1 - 2025-08-02
- This update helps to simplify the button component's structure and behavior, improving flexibility for customization and reducing unnecessary styles
2.5.0-beta.0 - 2025-08-02
- Utility levels:
surface-1,surface-2, and basesurface - Size variants:
surface-sm,surface-md, ...,surface-xl - Border styles:
surface-outlineandsurface-dashed surface-roundedto apply globalborder-radiusstyle
- Corrected file paths for 'main', 'browser', and 'styles' in package.json
- Restructured
surfacefrom a utility to a standalone component - refactor: align card border color with global style
- Disabled automatic source detection and limited CSS processing to the src folder to avoid including unnecessary styles
- CDN-ready CSS without preflight
- Restructured code for improved organization and readability
2.4.0-beta.0 - 2025-07-31
- Introducing new utilities:
surface(base),surface-1, andsurface-2
2.3.0-beta.1 - 2025-07-31
- Added base styling for the
<code>element
- fix: add missing
containerutility (same ascontainer-md) - The
containerclass was broken due to a naming conflict with Tailwind CSS’scontainervariable. This issue was resolved by prefixing the internalcontainervariable withui, avoiding the conflict.
2.3.0-beta.0 - 2025-07-30
- Added background color to footer using the
--color-basevariable in preflight - Introduces
focus-or-withinvariant to apply styles on:focusor:focus-within - Added a new dropdown component currently in experimental stage
- Refactor: create separate
navbar-listclass to improve editor support and highlight while typing - feat: set accordion to full width for improved layout
- The container is now considered a utility. Use classes like
container-lginstead ofcontainer container-lg - Changed base color in darkberry theme to optimize user experience in low-light conditions
- Added
widthandheightto the divider base component to fix layout issues; the divider now occupies the intended space and is no longer affected byalign-items: centeron the parent. - The
align-self: flex-startrule was preventing buttons from being vertically centered when their parent hadalign-items: center. Removing it allows proper alignment in those cases. - Corrected the modal component to use a valid CSS opacity value
2.2.0-beta.0 - 2025-07-25
- Applied
--color-baseas the background color to the main element - Added the default color for
<p>tags in the preflight styles to match the UI's design consistency
- Revised the
headingandparautility to remove the fixed color, allowing user-defined colors to be applied more easily without needing !important - Removed the
colorproperty from the child elements of the<details>in the accordion component. Now, the color is inherited from the root to ensure consistency with the UI and maintain a cohesive design throughout - Removed the
background-colorandpadding-topfrom thesummaryinside the<p>tag in the accordion component to improve the UI design
2.1.0-beta.0 - 2025-07-24
nav-listhas been renamed tonavbar-listto align with the navbar component and eliminate confusion- Enable dark variant using data-theme attribute instead of media query
- Adjust the shade to achieve a balanced and cohesive color palette
- Replaced fixed line-heights with font-size-based line-heights for all button sizes in the
btncomponent to ensure consistent vertical alignment and better scalability across font sizes - Enhanced soft color appearance across dark and light themes
- fix: ensure fallback snowberry theme doesn't override color variables when a data-theme is specified
- Fixed incorrect badge line-height that resulted in incorrect badge sizes
2.0.0-beta.0 - 2025-07-23
- Components and utility classes now support prefixes. Example usage:
tw:btn,tw:btn-primaryConfigured via:@import "tailwindcss" prefix(tw) - Expanded typography utilities with heading-[{size}] and para-[{size}] for arbitrary size support
- A CDN version of the CSS is now available for fast and easy integration without local setup
- Now only base colors like
--color-primaryand--color-on-primaryneed to be defined; the library automatically generates shades from50to950 - Now, simply set a single
border-radiusvalue in the theme; the Frutjam library automatically applies and adjusts radius values across components for optimal UI consistency navhas been renamed tonavbarfor improved clarity and consistency
- Removed manual border-radius variables for individual components (
--radius-btn,--radius-input,--radius-checkbox, etc.) - Removed manual color shade variables like
--primary-100to--primary-950,--secondary-100to--secondary-950, etc. - Deprecated and removed the surface component; use bg-primary-{50..950} instead