llms.txt@packages/core · diff
git:20260318.ad90cef to git:20260402.88c28ff
15 added, 3 removed. Audit A to A.
# @mezzanine-ui/core
> CSS styles and shared TypeScript type definitions for Mezzanine UI — consumed by @mezzanine-ui/react to provide component styling.
## Purpose
`@mezzanine-ui/core` ships:
- Per-component SCSS stylesheets compiled to CSS
- Shared TypeScript types and constants used across components (e.g. `Size`, `Severity`, `Orientation`, calendar adapter interfaces)
- SCSS design-token utilities, sourced from `@mezzanine-ui/system`
This package does **not** export React components. It is a styling and type layer only.
## Style Import Pattern
- Each component has its own style entry point. Import it once in your application (e.g. in your app entry file or a global CSS barrel):
+ The recommended approach is to load all component styles at once via the SCSS barrel:
+ ```scss
+ @use '@mezzanine-ui/system' as mzn-system;
+ @use '@mezzanine-ui/core' as mzn-core;
+
+ :root {
+ @include mzn-system.common-variables('default');
+ @include mzn-system.colors('light');
+ }
+
+ @include mzn-core.styles();
+ ```
+
+ Per-component JS imports still work but are not the preferred approach:
+
```ts
import '@mezzanine-ui/core/button/styles';
import '@mezzanine-ui/core/input/styles';
- import '@mezzanine-ui/core/select/styles';
- import '@mezzanine-ui/core/modal/styles';
```
Available style directories mirror component names: `accordion`, `alert-banner`, `anchor`, `backdrop`, `badge`, `breadcrumb`, `button`, `calendar`, `checkbox`, `drawer`, `empty`, `form`, `icon`, `inline-message`, `input`, `message`, `modal`, `navigation`, `page-footer`, `page-header`, `pagination`, `picker`, `portal`, `progress`, `radio`, `result-state`, `select`, `skeleton`, `slider`, `spin`, `stepper`, `tag`, `text-field`, `textarea`, `time-panel`, `toggle`, `tooltip`, `typography`, `upload`.
## SCSS Usage (advanced)
If you build your own components using Mezzanine design tokens, you can consume the SCSS directly:
```scss
@use '@mezzanine-ui/system' as system;
@use '@mezzanine-ui/core/button' as button-core;
```
The package marks all `.scss` and `.css` files as `sideEffects` so bundlers do not tree-shake them.
## Relationship with Other Packages
| Dependency | Role |
| ----------------------- | ------------------------------------------------------- |
| `@mezzanine-ui/system` | Provides SCSS design-token mixins consumed by core SCSS |
| `@mezzanine-ui/icons` | Icon type definitions used in core TypeScript types |
`@mezzanine-ui/react` depends on this package and imports styles alongside React component logic.
## Peer Dependencies
`lodash >= 4` (required); `dayjs >= 1`, `moment >= 2`, `luxon >= 3` (all optional — only needed when using Calendar/Picker components).
## GitHub
https://github.com/Mezzanine-UI/mezzanine/tree/main/packages/core