UNPKG

sparkle-design-cli

Version:

Sparkle Design CSS Generator - デザインシステムCSSを設定ファイルから生成するツール

125 lines (108 loc) 5.24 kB
/** * sparkle-design-cli で使用する定数定義 */ // ファイルパス関連 export const FILE_NAMES = { CONFIG: 'sparkle.config.json', OUTPUT: 'sparkle-design.css', GLOBALS: 'globals.css', TEMPLATE: 'sparkle-design.template.css', COLORS: 'colors.json', GRAY: 'gray.json', RADIUS: 'radius.csv', }; export const PATHS = { DEFAULT_OUTPUT_DIR: ['src', 'app'], TEMPLATE_DIR: ['templates', 'sparkle-variables'], }; // 正規表現パターン export const REGEX = { // フォント関連 FONT_IMPORT: /@import\s+url\([^)]+fonts\.googleapis\.com[^)]+\);?/g, FONT_IMPORT_WITH_COMMENT: /\/\*\s*フォントのインポート\s*\*\/\s*\n?|@import\s+url\([^)]+fonts\.googleapis\.com[^)]+\);?\s*\n?/g, EXISTING_FONT_IMPORT_BLOCK: /\/\*\s*フォントのインポート[^*]*\*\/\s*\n?(?:@import\s+url\([^)]+fonts\.googleapis\.com[^)]+\);?\s*\n?)*\n?/g, // Sparkle Design関連 SPARKLE_IMPORT: /\/\*\s*Sparkle Design[^*]*\*\/\s*\n?|@import\s+['"](\.\/)?sparkle-design\.css['"];?\s*\n?/g, TAILWIND_IMPORT: /@import\s+['"]tailwindcss['"];?/, // テンプレート関連 COLOR_TOKENS_PLACEHOLDER: /\s*\/\* \{\{COLOR_TOKENS\}\} \*\/\s*/, RADIUS_SEMANTIC_PATTERN: (semanticName) => new RegExp(`--radius-${semanticName}:\\s*var\\(--radius-[^)]+\\)`, 'g'), }; // テンプレートプレースホルダー export const PLACEHOLDERS = { COLOR_TOKENS: '{{COLOR_TOKENS}}', }; // カラー変換精度 export const COLOR_PRECISION = { OKLCH_L: 10000, OKLCH_C: 10000, OKLCH_H: 10, OKLCH_ALPHA: 10000, }; // グレーレベルのマッピング export const GRAY_LEVEL_MAP = { 0: '50', 1: '100', 2: '200', 3: '300', 4: '400', 5: '500', 6: '600', 7: '700', 8: '800', 9: '900', }; // コメントテンプレート export const COMMENTS = { FONT_IMPORT: '/* フォントのインポート(CSSの仕様上、@importは最初に記述する必要がある) */', SPARKLE_IMPORT: '/* Sparkle Design のカスタム定義(Tailwindの後にインポート) */', TAILWIND_IMPORT: '/* Tailwindのインポート */', }; // インポート文のテンプレート export const IMPORTS = { SPARKLE_DESIGN: '@import "./sparkle-design.css";', TAILWIND: '@import "tailwindcss";', }; // ログメッセージ export const MESSAGES = { START: '🚀 Sparkle Design CSS Generator を開始します...\n', SUCCESS: '\n🎉 CSS生成が完了しました!', FONT_MANAGEMENT_START: '\n📦 フォント管理処理を開始します...', // 成功メッセージ CONFIG_LOADED: (path) => `✅ sparkle.config.json を読み込みました: ${path}`, TEMPLATE_LOADED: '✅ CSSテンプレートを読み込みました', COLORS_LOADED: '✅ colors.json を読み込みました', GRAY_LOADED: '✅ gray.json を読み込みました', RADIUS_LOADED: '✅ radius.csv を読み込みました', TEMPLATE_PROCESSED: '✅ テンプレートを設定値で処理しました', CSS_GENERATED: (path) => `✅ sparkle-design.css を生成しました: ${path}`, RADIUS_APPLIED: (radius) => `✅ ${radius}に対応するradius設定を適用しました`, GLOBALS_UPDATED: (path) => `✅ globals.css にフォントimportとsparkle-design.css importを追加しました: ${path}`, FONT_REMOVED: '✅ sparkle-design.css からフォントimportを削除しました', // 情報メッセージ GLOBALS_NOT_FOUND: 'ℹ️ globals.css が見つかりません。フォント処理をスキップします。', NO_FONT_IMPORTS: 'ℹ️ sparkle-design.css にフォントimportが見つかりません。', FONT_DETECTED: (count) => `📝 ${count}個のフォントimportを検出しました`, // スキップメッセージ FONT_REMOVE_SKIPPED: 'ℹ️ globals.css の更新に失敗したため、フォントimport削除をスキップします。', // 警告メッセージ TAILWIND_NOT_FOUND: '⚠️ globals.css に Tailwind import が見つかりません。', GLOBALS_UPDATE_FAILED: (error) => `⚠️ globals.css の更新に失敗しました: ${error}`, FONT_MANAGEMENT_ERROR: (error) => `⚠️ フォント管理処理でエラーが発生しました: ${error}`, COLOR_CONVERSION_FAILED: (hex) => `⚠️ 色の変換に失敗しました: ${hex}`, // エラーメッセージ CONFIG_LOAD_FAILED: (error) => `❌ sparkle.config.json の読み込みに失敗しました: ${error}`, CONFIG_PATH_INFO: (path) => `設定ファイルパス: ${path}`, CONFIG_HELP: '設定ファイルは専用プラグインから生成するか、手動で作成してください', TEMPLATE_LOAD_FAILED: (error) => `❌ CSSテンプレートの読み込みに失敗しました: ${error}`, TEMPLATE_PATH_INFO: (path) => `テンプレートファイルが存在することを確認してください: ${path}`, COLORS_LOAD_FAILED: (error) => `❌ colors.json の読み込みに失敗しました: ${error}`, GRAY_LOAD_FAILED: (error) => `❌ gray.json の読み込みに失敗しました: ${error}`, RADIUS_LOAD_FAILED: (error) => `❌ radius.csv の読み込みに失敗しました: ${error}`, CSS_WRITE_FAILED: (error) => `❌ CSSファイルの書き出しに失敗しました: ${error}`, };