Repository navigation
Version Packages (beta) - #28
Merged
Merged
Conversation
NikolaiKushner
enabled auto-merge
October 8, 2026 17:52
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
mainis currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, runchangeset pre exitonmain.Releases
@rowkit/tokens@1.0.0-beta.1
Minor Changes
2202238: The modern theme now follows its finished design. Badges, fields, dialogs, empty states, filter chips, the pager, status bars, toasts, tables, group boxes and selects take the designer's sizes and colours; each difference is a token, so Windows 98 is unchanged.
ProgressBarwithout avalueis indeterminate. Leavevalueout, or passnull, while the amount of work is unknown: a segment travels along the track (--rk-animate-progress,--spacing-progress-segment). In Windows 98 it is four blocks stepping one block every 100ms, starting again at the left; with reduced motion it stands still in the middle of the track, in every theme.aria-valuenowis left off, as ARIA asks.Rows per page:, with the colon both designs draw.ProgressBar's blocks sit centred in the track, 3px from the top in Windows 98, as the Figma file draws them (they were 1px higher).SelectContenttakessearchLabel(defaultSearch) to name the box. The magnifier in a search field is the subtle text colour in the modern theme.emptyText). In Windows 98 the options sit 1px inside the list's border, as the design draws them; the modern list is ringed by its shadow alone (--rk-popover-border-width).sm,mdandlg, centred, for a number field's spin buttons, a date field's drop button and a select's arrows (--spacing-field-button-h-sm,-h,-h-lg). In Windows 98 they no longer fill the well. In the modern theme they sit 4px from the right edge, a select's arrows 6px (--spacing-field-button-pr,--spacing-select-pr).--spacing-field-drop-icon).--spacing-pager-arrow,--spacing-pager-focus-px); a small page button in Windows 98 hugs its number (--spacing-pager-min-sm). A disabled pager draws the current page like the others and greys the ellipsis.--spacing-check-gap,--spacing-check-label-px); a held option button fills with the pressed control colour (blue when checked); a disabled check box keeps its edge.loading-foreground,select-search,table-row-hover,field-caret,field-highlight,on-field-highlight,control-primary-latched,filter-bar,chip,chip-border,chip-foreground,chip-remove,pager,pager-hover,pager-active,toast-close,toast-close-foreground; shadowslatched-ghost,field-button-pressed,pager,pager-focus,pager-pressed,toast-close,checked-selected; sizes for badges, dialogs, empty states, fields, filter bars, pagers, status bars, tables, toasts and select options; style switches--rk-empty-direction,--rk-empty-align,--rk-footer-direction,--rk-invalid-width,--rk-field-error-align,--rk-link-decoration,--rk-legend-weight,--rk-titlebar-icon,--rk-animate-progress.EmptyStateatlgkeeps the heading size ofmd(16px in Windows 98). It was a pixel smaller, a slip from the move to Large Fonts; the design is corrected too.#ffa0a4, 4.7:1 on a control).--rk-animate-busy; Windows 98's hourglass stands still), and a select shows up and down arrows there.@rowkit/tokens/reference: every token a theme sets, described.tokenReferencelists each CSS variable with what it is for, the components that read it and its value in Windows 98 and the modern theme's light and dark schemes. The descriptions are the comments beside the values, so they cannot drift; a separate entry point, so importing the tokens does not ship them.d1f5412:
rowkit/theme: make a theme of your own with nothing else to install.import { defineTheme } from 'rowkit/theme'gives youdefineTheme(),themeRule()and the themes' values from the tokens rowkit itself depends on, so the theme always matches the components you render. A pnpm project could not import@rowkit/tokenswithout adding it to its own dependencies, at a version that could drift from rowkit's; it no longer needs to.@rowkit/tokenskeeps the same functions for projects that use the tokens without the components.defineTheme()takesThemeValues: every variable a theme may set, by name (ThemeTokenName), so an editor completes them and a typo such as'--color-brnad'fails the type check, not only the run. Values built at run time as a plain record are still accepted, and an unknown name still throws.2c99177: A second theme: modern, in light and dark. Put
data-theme="modern"on<html>(or any element) and rowkit draws the look of a current desktop operating system — white and grey surfaces, a blue accent, rounded corners, soft shadows, a ring around the focused control, short transitions and outline icons. It follows the system's dark setting;data-color-scheme="light"or"dark"fixes it. This is where dark comes back after beta.0 removed it: as a scheme of the modern theme, still with no.darkclass and nodark:variant. Without an attribute, Windows 98 is still the default, with its one light scheme.control,control-primary,checked,popover,table-header,track,caption-*and more), size tokens in the spacing namespace (h-control-md,size-check,h-row-md), apillradius, astrongfont weight, and--rk-*style switches for how a theme draws a state. Themes nest: adata-theme="win98"region inside a modern page is Windows 98.--shadow-*in@themepoints at--rk-shadow-*, which holds the value. If you override a shadow, override--rk-shadow-<name>.rowkit/styles:focus-label,focus-ring,focus-outer,bg-loading, andscrollbar-themed(scrollbar-win98still works).data-icon, and the stylesheet includes the modern theme's outline glyphs, applied by CSS only inside that theme.defineTheme()from@rowkit/tokens: start frommodernorwin98, set the values you change, get the whole stylesheet — both schemes included. It refuses a token that does not exist.themeRule()writes a single rule.@rowkit/tokensexports the themes as data:tokens.themes.win98,tokens.themes.modern.lightand.dark, plussize,styleand the modern palette.ScrollAreaassumed 16px arrow buttons when sizing its thumb; it reads the theme's.rowkit@1.0.0-beta.1
Minor Changes
2202238: The modern theme now follows its finished design. Badges, fields, dialogs, empty states, filter chips, the pager, status bars, toasts, tables, group boxes and selects take the designer's sizes and colours; each difference is a token, so Windows 98 is unchanged.
ProgressBarwithout avalueis indeterminate. Leavevalueout, or passnull, while the amount of work is unknown: a segment travels along the track (--rk-animate-progress,--spacing-progress-segment). In Windows 98 it is four blocks stepping one block every 100ms, starting again at the left; with reduced motion it stands still in the middle of the track, in every theme.aria-valuenowis left off, as ARIA asks.Rows per page:, with the colon both designs draw.ProgressBar's blocks sit centred in the track, 3px from the top in Windows 98, as the Figma file draws them (they were 1px higher).SelectContenttakessearchLabel(defaultSearch) to name the box. The magnifier in a search field is the subtle text colour in the modern theme.emptyText). In Windows 98 the options sit 1px inside the list's border, as the design draws them; the modern list is ringed by its shadow alone (--rk-popover-border-width).sm,mdandlg, centred, for a number field's spin buttons, a date field's drop button and a select's arrows (--spacing-field-button-h-sm,-h,-h-lg). In Windows 98 they no longer fill the well. In the modern theme they sit 4px from the right edge, a select's arrows 6px (--spacing-field-button-pr,--spacing-select-pr).--spacing-field-drop-icon).--spacing-pager-arrow,--spacing-pager-focus-px); a small page button in Windows 98 hugs its number (--spacing-pager-min-sm). A disabled pager draws the current page like the others and greys the ellipsis.--spacing-check-gap,--spacing-check-label-px); a held option button fills with the pressed control colour (blue when checked); a disabled check box keeps its edge.loading-foreground,select-search,table-row-hover,field-caret,field-highlight,on-field-highlight,control-primary-latched,filter-bar,chip,chip-border,chip-foreground,chip-remove,pager,pager-hover,pager-active,toast-close,toast-close-foreground; shadowslatched-ghost,field-button-pressed,pager,pager-focus,pager-pressed,toast-close,checked-selected; sizes for badges, dialogs, empty states, fields, filter bars, pagers, status bars, tables, toasts and select options; style switches--rk-empty-direction,--rk-empty-align,--rk-footer-direction,--rk-invalid-width,--rk-field-error-align,--rk-link-decoration,--rk-legend-weight,--rk-titlebar-icon,--rk-animate-progress.EmptyStateatlgkeeps the heading size ofmd(16px in Windows 98). It was a pixel smaller, a slip from the move to Large Fonts; the design is corrected too.#ffa0a4, 4.7:1 on a control).--rk-animate-busy; Windows 98's hourglass stands still), and a select shows up and down arrows there.@rowkit/tokens/reference: every token a theme sets, described.tokenReferencelists each CSS variable with what it is for, the components that read it and its value in Windows 98 and the modern theme's light and dark schemes. The descriptions are the comments beside the values, so they cannot drift; a separate entry point, so importing the tokens does not ship them.d1f5412:
rowkit/theme: make a theme of your own with nothing else to install.import { defineTheme } from 'rowkit/theme'gives youdefineTheme(),themeRule()and the themes' values from the tokens rowkit itself depends on, so the theme always matches the components you render. A pnpm project could not import@rowkit/tokenswithout adding it to its own dependencies, at a version that could drift from rowkit's; it no longer needs to.@rowkit/tokenskeeps the same functions for projects that use the tokens without the components.defineTheme()takesThemeValues: every variable a theme may set, by name (ThemeTokenName), so an editor completes them and a typo such as'--color-brnad'fails the type check, not only the run. Values built at run time as a plain record are still accepted, and an unknown name still throws.2c99177: A second theme: modern, in light and dark. Put
data-theme="modern"on<html>(or any element) and rowkit draws the look of a current desktop operating system — white and grey surfaces, a blue accent, rounded corners, soft shadows, a ring around the focused control, short transitions and outline icons. It follows the system's dark setting;data-color-scheme="light"or"dark"fixes it. This is where dark comes back after beta.0 removed it: as a scheme of the modern theme, still with no.darkclass and nodark:variant. Without an attribute, Windows 98 is still the default, with its one light scheme.control,control-primary,checked,popover,table-header,track,caption-*and more), size tokens in the spacing namespace (h-control-md,size-check,h-row-md), apillradius, astrongfont weight, and--rk-*style switches for how a theme draws a state. Themes nest: adata-theme="win98"region inside a modern page is Windows 98.--shadow-*in@themepoints at--rk-shadow-*, which holds the value. If you override a shadow, override--rk-shadow-<name>.rowkit/styles:focus-label,focus-ring,focus-outer,bg-loading, andscrollbar-themed(scrollbar-win98still works).data-icon, and the stylesheet includes the modern theme's outline glyphs, applied by CSS only inside that theme.defineTheme()from@rowkit/tokens: start frommodernorwin98, set the values you change, get the whole stylesheet — both schemes included. It refuses a token that does not exist.themeRule()writes a single rule.@rowkit/tokensexports the themes as data:tokens.themes.win98,tokens.themes.modern.lightand.dark, plussize,styleand the modern palette.ScrollAreaassumed 16px arrow buttons when sizing its thumb; it reads the theme's.Patch Changes