llms.txt@packages/core · git:20260402.88c28ff · 2026-04-02 · sha256 99311c4927982f54

llms.txt@packages/core git:20260402.88c28ffA

Immutable. This exact content never changes and is served at /api/v1/blob/99311c4927982f54.

# @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

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';
```

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