# Migration Guide: v1.x to v2.0 ## Breaking Changes ### Tailwind CSS Classes Removed from Library Components **What Changed:** - All Tailwind CSS utility classes have been removed from `src/lib` components - The library is now CSS framework-agnostic - `contentClass` default value changed from `'overflow-hidden'` to `''` **Why:** - Reduces bundle size for non-Tailwind users - Prevents style conflicts and specificity issues - Gives you full control over styling - Makes the library framework-agnostic ## Migration Strategies You have two options to restore the previous styling: ### Option 1: Using Custom CSS (Recommended for most users) Add these styles to your global CSS file: ```css /* app.css or global.css */ /* HighlightCompo base styles */ .hlc-base { position: relative; overflow: hidden; border-radius: 0.5rem; background-color: #1e293b; } /* ExampleWrapper styles */ .cw-base { margin-bottom: 2rem; overflow: hidden; border-radius: 0.5rem; border: 1px solid #e5e7eb; background-color: #ffffff; } .cw-inner { padding: 1.5rem; background-color: #f9fafb; } /* Dark mode support */ @media (prefers-color-scheme: dark) { .cw-base { border-color: #374151; background-color: #1f2937; } .cw-inner { background-color: #111827; } } /* Copy button styles */ .hlc-copy-button { position: absolute; top: 0.5rem; right: 0.5rem; padding: 0.375rem 0.75rem; font-size: 0.875rem; border-radius: 0.375rem; background-color: rgba(255, 255, 255, 0.1); color: #ffffff; border: 1px solid rgba(255, 255, 255, 0.2); cursor: pointer; transition: all 0.2s; } .hlc-copy-button:hover { background-color: rgba(255, 255, 255, 0.2); } .hlc-copy-success { background-color: rgba(34, 197, 94, 0.2); border-color: #22c55e; color: #22c55e; } .hlc-copy-error { background-color: rgba(239, 68, 68, 0.2); border-color: #ef4444; color: #ef4444; } /* Expand button styles */ .hlc-expand-button { position: absolute; bottom: 0; left: 0; right: 0; padding: 0.5rem; text-align: center; font-size: 0.875rem; background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent); color: #ffffff; border: none; cursor: pointer; transition: opacity 0.2s; } .hlc-expand-button:hover { opacity: 0.9; } /* Warning and error messages */ .hlc-warning { padding: 1rem; background-color: #fef3c7; border: 1px solid #fbbf24; border-radius: 0.375rem; color: #92400e; } .hlc-error { padding: 1rem; background-color: #fee2e2; border: 1px solid #ef4444; border-radius: 0.375rem; color: #991b1b; } @media (prefers-color-scheme: dark) { .hlc-warning { background-color: #451a03; border-color: #92400e; color: #fef3c7; } .hlc-error { background-color: #450a0a; border-color: #991b1b; color: #fee2e2; } } ``` ### Option 2: Using Tailwind CSS (For Tailwind users) If you're using Tailwind CSS in your project, you can pass utility classes directly to components: #### Before (v1.x): ```svelte ``` #### After (v2.0): ```svelte ``` #### Create Tailwind Component Classes: For consistency across your app, define reusable classes: ```css /* app.css */ @tailwind base; @tailwind components; @tailwind utilities; @layer components { /* HighlightCompo default styling */ .code-block { @apply relative overflow-hidden rounded-lg bg-slate-800; } .code-block-light { @apply relative overflow-hidden rounded-lg border border-gray-200 bg-white; } /* ExampleWrapper default styling */ .example-wrapper { @apply mb-8 overflow-hidden rounded-lg border border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-800; } .example-inner { @apply p-6 bg-gray-50 dark:bg-gray-900; } /* Code section styling */ .example-code { @apply border-t border-gray-600; } } ``` Then use in your components: ```svelte ``` ## Component-Specific Changes ### HighlightCompo #### Props That Accept Classes: - `class` - Main container styling - `contentClass` - Content area styling (default changed from `'overflow-hidden'` to `''`) #### Example Migration: **Before (v1.x):** ```svelte ``` **After (v2.0) - CSS:** ```svelte ``` **After (v2.0) - Tailwind:** ```svelte ``` ### ExampleWrapper #### Props That Accept Classes: - `class` - Main wrapper container - `innerClass` - Inner content area (where component renders) - `codeClass` - Code display area #### Example Migration: **Before (v1.x):** ```svelte ``` **After (v2.0) - CSS:** ```svelte ``` **After (v2.0) - Tailwind:** ```svelte ``` ## Quick Migration Checklist - [ ] Choose your approach: Custom CSS or Tailwind utilities - [ ] If using CSS: Copy the CSS snippets to your global stylesheet - [ ] If using Tailwind: Update components with `class`, `innerClass`, `codeClass` props - [ ] Test dark mode styling if you use it - [ ] Update any custom styling that relied on Tailwind classes - [ ] Review the [STYLING.md](./STYLING.md) guide for advanced customization ## Benefits of v2.0 ✅ **Smaller bundle size** - No Tailwind CSS in the library ✅ **Framework agnostic** - Works with any CSS approach ✅ **Full control** - Style exactly how you want ✅ **No conflicts** - Your Tailwind config won't affect library internals ✅ **Better tree-shaking** - Only includes what you use ## Need Help? - Read the full [Styling Guide](./STYLING.md) - Check out [examples in the documentation](https://svelte-rune-highlight.codewithshin.com/styling) - Open an issue on [GitHub](https://github.com/shinokada/svelte-rune-highlight/issues) ## Version Support - **v1.x** - Last version with built-in Tailwind classes (maintenance only) - **v2.0+** - CSS framework-agnostic (recommended for all new projects)