Changelog ([email protected])

リリースノート

このバージョンでは、LismCSSの本家仕様変更に合わせた内部アーキテクチャの刷新、および主要なユーティリティコンポーネントの追加が行われました。

  • deps

    • Lism CSS v0.12.0 → Lism CSS v0.16.0

比較表示 (GitHub)


🚀 主な変更点と新機能

1. 内部アーキテクチャのリネーム (STATES → TRAITS)

LismCSSの最新の命名規則に合わせ、内部アダプターでの「STATES」の扱いを「TRAITS」へとリネームしました。

2. 新しいコンポーネントの追加

レイアウトをより柔軟に構築するための3つの新しいコンポーネントが導入されました。

  • LismIcon:

    • Phosphor Iconsや各社ロゴなどのプリセットアイコンを内蔵。

    • SVGパスの直接指定や画像、外部コンポーネントのラップにも対応。

    • labelプロパティによるアクセシビリティ(aria-label)の自動付与をサポート。

  • LismDivider:

    • セマンティックな区切り線(<hr>)を提供。

    • Lismのボーダーシステムやスペーシングシステムと統合されています。

  • LismSpacer:

    • レイアウト内での余白調整専用コンポーネント。

3. プロパティシステムの強化 (Atomic / Util)

atomic プロパティと util プロパティが LismBaseProps に正式に追加され、アダプターでの解析対象となりました。 これにより、Lism CSS の各設計レイヤーに基づいたスタイリングがより明示的に行えるようになります。


🩹 修正と改善

  • コアシステムの安定化:

    • PrimitiveClass の戻り値を class として正しく処理するように改善。

    • ホバー効果に関連するバグを修正し、インタラクションの信頼性を向上。

  • DummyUIの修正:

    • LismUiDummy コンポーネントが一部の環境で壊れていた問題を解決。


💅 リファクタリングと破壊的変更

LismClassvariant プロパティの廃止

これまでの暫定的なプロパティであった lismClassvariant を完全に削除しました。 今後は、以下のプロパティを適切に使い分けることが推奨されます:

  • atomic: コンポーネントの役割(種類)の指定

  • set, unset: 振る舞いや状態の指定

  • util: 汎用的なユーティリティクラスの適用

コンポーネント名の統一

ライブラリ全体で命名規則の揺れを修正し、一貫性のある開発体験を提供します。


🌊 型定義の整理 (types.ts)

  • src/core/types.ts への型定義の集約。

  • AllowedTag 型の適用範囲を拡大し、コンポーネントごとの適切なHTMLタグのサジェストを強化。

  • 仕様に沿っていない古い型定義やプロパティ(tag など)の削除。


✅ テスト

  • 仕様変更に伴い、全テストケースを更新。

  • LinkBox から BoxLink へのリネーム対応。

  • LismIcon, LismDivider, LismSpacer の新規テスト追加。


❤️ コントリビューター