Today's update is a bit different than normal, as outwardly it will appear as a minor triage update. However, internally we've now migrated the Skeleton project to a new monorepo structure. This will have little to no immediate impact for Skeleton users in the short term, but long term will open up a lot of new possibilities for the library. See below for more information.
- 🧱 New monorepo project structure
- 📗 Contribution guidelines overhauled
- 📎 New anchor tile added to App Rails
- 🐞 Plus a host of improvements and bugfixes
Monorepo Project Structure
Special shoutout to @niktek and @AdrianGonz97 for making this happen!
Attention contributors! As mentioned above, we've now migrated the project to a new monorepo structure. This precedes a number of upcoming housekeeping issues for the project. Please see our updated contributor guidelines for detailed instructions for new contributions. For now, here's the most important information in a nutshell:
- We now require contributors to use
pnpm, which fully supports monorepo workspaces. Make sure you delete your node_modules folder before doing
pnpm iafter pulling from your sync'd fork.
/packages/skeleton- contains the core library package (
/sites/skeleton.dev- contains the documentation website (skeleton.dev)
The monorepo is currently comprised of two projects, but this will grow over time:
/sites/theme-generator- will be a standalone web app that houses a greatly improved theme generator
/packages/popups- will be a standalone package and huge rework of our popup feature
/packages/codeblocks- will be a standalone package of our code block feature
- We may also merge
create-skeleton-app(the Skeleton CLI)
- Plus additional sites and packages as we see fit
Why the change? Overall it just makes the project more modular and easier to maintain. For the theme generator, this allows us to improve the UX, interface, and functionality. For the standalone packages, this typically means we can more tightly integrate required peer dependencies, and these can potentially be used outside of Skeleton projects.
No specific deadline has been set for these changes, we're just starting to lay the groundwork to make this possible!
Contribution Guide Overhaul
We've now completely overhauled our contributor documentation top to bottom. It should now be more accurate, more complete, and provides full instructions for installing
pnpm and using our new monorepo structure. If you're new to monorepos, but still wish to contribute, find our full guide for this within the Requirements section.
App Rail Anchor Tile
In previous iterations of Skeleton the App Rail would utilized an AppRailTile for both selection state as well as links (anchor elements). In today's release we've now introduced a dedicated
AppRailAnchor component, which provides the same options, but with a simpler set of props purpose built for anchors. Best of all, you can mix
AppRailAnchor within the same App Rail component. See the documentation for details.
Other Notable Improvements
- The focus trap action now correctly updates when content within mutates:
- Paginator now includes first and last buttons for quicker navigation:
- Filters are now supported in Firefox:
- Improved optional theme mesh background styles to support custom layouts:
- Fixed an illegal constructor bug for popup:
- Fixed a bug where the
classattribute wasn't applied to the Tab parent element:
- Fixed a bug where ModalStore could return null/undefined:
- Fixed a bug where code block line numbers didn't display without syntax highlighting enabled:
- Fixed the
callback is not a functionerror for popups:
- Fixed an
undefinedclass error for Toasts:
- Dropped the "v" in version for package.json:
- Resolved an issue preventing responsive sizing for opt-in typography headings:
- Fixed a bug where popup focus events could fail:
- Fixed an issue where input group styling could show a blue ring:
- Button icons now match the click animation of standard buttons:
- Fixed an issue with autocomplete and responsive data:
- Updated theme font preload tips to prevent flickering on load:
- Improved the popup
hoverevent tip for disabling pointer events for children:
- Appended modal documentation with async example:
- Minor fixes and typos: