memory-journal-mcp 7.2.0 → 7.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,268 @@
1
+ ---
2
+ name: tailwind-css
3
+ description: |
4
+ Master Tailwind CSS v4 with its CSS-first configuration paradigm. Use when
5
+ writing utility classes, configuring design tokens via @theme, implementing
6
+ dark mode, migrating from v3, or integrating with React/Vue/Svelte. Triggers
7
+ on "Tailwind", "utility CSS", "Tailwind v4", "@theme", "dark mode classes",
8
+ "responsive design", "Tailwind migration".
9
+ ---
10
+
11
+ # Tailwind CSS v4 Engineering Standards
12
+
13
+ This skill codifies Tailwind CSS v4's **CSS-first architecture** — the paradigm shift from JavaScript configuration to native CSS-based theming and customization.
14
+
15
+ ## 1. Core Paradigm: CSS-First Configuration
16
+
17
+ ### Entry Point
18
+
19
+ Replace all legacy directives with a single import:
20
+
21
+ ```css
22
+ /* main.css */
23
+ @import 'tailwindcss';
24
+ ```
25
+
26
+ - **NEVER** use `@tailwind base; @tailwind components; @tailwind utilities;` — this is v3 syntax
27
+ - **No `tailwind.config.js` needed** for most projects — CSS is the single source of truth
28
+ - Use `@config "./tailwind.config.js"` only for legacy migration or PostCSS plugin compatibility
29
+
30
+ ### The `@theme` Directive
31
+
32
+ All design tokens are defined directly in CSS:
33
+
34
+ ```css
35
+ @import 'tailwindcss';
36
+
37
+ @theme {
38
+ /* Colors */
39
+ --color-primary-50: #eff6ff;
40
+ --color-primary-500: #3b82f6;
41
+ --color-primary-900: #1e3a5a;
42
+
43
+ /* Typography */
44
+ --font-display: 'Inter', sans-serif;
45
+ --font-mono: 'JetBrains Mono', monospace;
46
+
47
+ /* Spacing */
48
+ --spacing-container: 1200px;
49
+
50
+ /* Border Radius */
51
+ --radius-card: 0.75rem;
52
+ }
53
+ ```
54
+
55
+ - Tailwind **automatically generates utility classes** from `@theme` variables
56
+ - `--color-primary-500` → `bg-primary-500`, `text-primary-500`, `border-primary-500`
57
+ - `--font-display` → `font-display`
58
+ - Tokens are native CSS variables — inspectable in browser DevTools
59
+
60
+ ## 2. Dark Mode
61
+
62
+ ### Configuration (v4 Pattern)
63
+
64
+ ```css
65
+ /* Class-based dark mode (most common) */
66
+ @custom-variant dark (&:where(.dark, .dark *));
67
+ ```
68
+
69
+ ### Usage in HTML
70
+
71
+ ```html
72
+ <div class="bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100">
73
+ <h1 class="text-primary-500 dark:text-primary-300">Title</h1>
74
+ </div>
75
+ ```
76
+
77
+ ### System Preference (Default)
78
+
79
+ By default, Tailwind v4 respects `prefers-color-scheme`. If you want manual class toggle control, use `@custom-variant dark` as shown above.
80
+
81
+ ### Toggle Implementation
82
+
83
+ ```javascript
84
+ // Toggle dark mode via JavaScript
85
+ document.documentElement.classList.toggle('dark')
86
+
87
+ // Or persist to localStorage
88
+ const isDark = localStorage.getItem('theme') === 'dark'
89
+ document.documentElement.classList.toggle('dark', isDark)
90
+ ```
91
+
92
+ ## 3. Responsive Design
93
+
94
+ ### Mobile-First Breakpoints
95
+
96
+ Tailwind uses a **mobile-first** approach — unprefixed utilities apply to all screens, prefixed utilities apply at that breakpoint and above.
97
+
98
+ ```html
99
+ <!-- Full width on mobile, half on md, third on lg -->
100
+ <div class="w-full md:w-1/2 lg:w-1/3">...</div>
101
+
102
+ <!-- Stack on mobile, row on sm+ -->
103
+ <div class="flex flex-col sm:flex-row gap-4">...</div>
104
+ ```
105
+
106
+ ### Default Breakpoints
107
+
108
+ | Prefix | Min Width | Target |
109
+ | ------ | --------- | ------------- |
110
+ | `sm` | 640px | Small tablets |
111
+ | `md` | 768px | Tablets |
112
+ | `lg` | 1024px | Laptops |
113
+ | `xl` | 1280px | Desktops |
114
+ | `2xl` | 1536px | Large screens |
115
+
116
+ ### Custom Breakpoints
117
+
118
+ ```css
119
+ @theme {
120
+ --breakpoint-xs: 475px;
121
+ --breakpoint-3xl: 1920px;
122
+ }
123
+ ```
124
+
125
+ ## 4. Component Patterns
126
+
127
+ ### Buttons
128
+
129
+ ```html
130
+ <button
131
+ class="
132
+ inline-flex items-center justify-center
133
+ rounded-lg px-4 py-2
134
+ bg-primary-500 text-white font-medium
135
+ hover:bg-primary-600
136
+ focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-500
137
+ active:scale-[0.98]
138
+ disabled:opacity-50 disabled:cursor-not-allowed
139
+ transition-all duration-150
140
+ "
141
+ >
142
+ Click me
143
+ </button>
144
+ ```
145
+
146
+ ### Cards
147
+
148
+ ```html
149
+ <article
150
+ class="
151
+ rounded-xl border border-gray-200 dark:border-gray-700
152
+ bg-white dark:bg-gray-800
153
+ p-6 shadow-sm
154
+ hover:shadow-md transition-shadow
155
+ "
156
+ >
157
+ <h3 class="text-lg font-semibold text-gray-900 dark:text-white">Title</h3>
158
+ <p class="mt-2 text-gray-600 dark:text-gray-400">Description text.</p>
159
+ </article>
160
+ ```
161
+
162
+ ### Custom Component Classes
163
+
164
+ ```css
165
+ @layer components {
166
+ .btn-primary {
167
+ @apply inline-flex items-center justify-center rounded-lg px-4 py-2
168
+ bg-primary-500 text-white font-medium
169
+ hover:bg-primary-600 transition-colors;
170
+ }
171
+ }
172
+ ```
173
+
174
+ - **Use `@layer components`** for reusable component styles
175
+ - **Prefer utility classes inline** for one-off styling
176
+ - **Use `@apply` sparingly** — only for highly-repeated patterns
177
+
178
+ ## 5. Animations & Transitions
179
+
180
+ ### Built-in Transitions
181
+
182
+ ```html
183
+ <!-- Smooth hover effect -->
184
+ <div class="transition-all duration-300 ease-in-out hover:scale-105">
185
+ <!-- Color transitions only -->
186
+ <a class="transition-colors duration-150 text-gray-500 hover:text-primary-500"></a>
187
+ </div>
188
+ ```
189
+
190
+ ### Custom Animations
191
+
192
+ ```css
193
+ @theme {
194
+ --animate-fade-in: fade-in 0.3s ease-out;
195
+ --animate-slide-up: slide-up 0.4s ease-out;
196
+ }
197
+
198
+ @keyframes fade-in {
199
+ from {
200
+ opacity: 0;
201
+ }
202
+ to {
203
+ opacity: 1;
204
+ }
205
+ }
206
+
207
+ @keyframes slide-up {
208
+ from {
209
+ opacity: 0;
210
+ transform: translateY(1rem);
211
+ }
212
+ to {
213
+ opacity: 1;
214
+ transform: translateY(0);
215
+ }
216
+ }
217
+ ```
218
+
219
+ Usage: `class="animate-fade-in"` or `class="animate-slide-up"`
220
+
221
+ ## 6. Migration from v3 to v4
222
+
223
+ ### Step-by-Step
224
+
225
+ 1. **Update package**: `pnpm add -D tailwindcss@latest`
226
+ 2. **Replace CSS entry point**:
227
+ - Remove: `@tailwind base; @tailwind components; @tailwind utilities;`
228
+ - Add: `@import "tailwindcss";`
229
+ 3. **Migrate `tailwind.config.js`** → `@theme` block in CSS
230
+ 4. **Update dark mode**: Replace `darkMode: "class"` config with `@custom-variant dark`
231
+ 5. **Check defaults**: Some defaults changed (e.g., border colors). Verify visually.
232
+ 6. **Remove PostCSS plugins** if no longer needed (v4 has its own engine)
233
+
234
+ ### Key Breaking Changes
235
+
236
+ | v3 | v4 |
237
+ | ------------------------------------- | ---------------------------- |
238
+ | `tailwind.config.js` | `@theme` in CSS |
239
+ | `darkMode: "class"` | `@custom-variant dark (...)` |
240
+ | `@tailwind base/components/utilities` | `@import "tailwindcss"` |
241
+ | `theme.extend.colors` | `--color-*` in `@theme` |
242
+ | `theme.extend.fontFamily` | `--font-*` in `@theme` |
243
+
244
+ ## 7. Anti-Patterns (Never Do These)
245
+
246
+ | Anti-Pattern | Why It's Wrong | Do This Instead |
247
+ | -------------------------------------------- | ------------------------------------------------- | ---------------------------------------------------------------- |
248
+ | `@apply` everywhere | Defeats utility-first purpose, harder to maintain | Use inline utilities; `@apply` only for highly-repeated patterns |
249
+ | `!important` classes | Specificity wars, unpredictable cascade | Use proper specificity layers |
250
+ | Arbitrary values excessively (`text-[17px]`) | Breaks design system consistency | Define tokens in `@theme` |
251
+ | Inline `style=` alongside utilities | Mixed paradigms, inconsistent | All styling via Tailwind utilities |
252
+ | Using v3 `tailwind.config.js` in v4 | Unnecessary JS dependency | Migrate to `@theme` in CSS |
253
+ | Not using `dark:` variants | Inaccessible for dark-mode users | Always implement dark mode |
254
+ | Ignoring mobile-first | Desktop-only layouts break on phones | Design mobile-first, add breakpoints up |
255
+
256
+ ## 8. Accessibility Essentials
257
+
258
+ - **Always use `focus-visible:`** for keyboard focus indicators — never remove focus outlines without replacement
259
+ - **Ensure color contrast** — text must meet WCAG AA (4.5:1 normal, 3:1 large)
260
+ - **Use `sr-only`** class for screen-reader-only text on icon buttons
261
+ - **Never use `hidden`** for content that should be accessible — use `sr-only` instead
262
+
263
+ ```html
264
+ <button class="p-2 rounded-lg hover:bg-gray-100 focus-visible:ring-2">
265
+ <svg class="size-5" aria-hidden="true">...</svg>
266
+ <span class="sr-only">Close menu</span>
267
+ </button>
268
+ ```
@@ -1 +0,0 @@
1
- export { GitHubIntegration } from './chunk-IWKLHSPU.js';