💂♂️ fixed lint and prittier
This commit is contained in:
39
CLAUDE.md
39
CLAUDE.md
@@ -74,15 +74,16 @@ lib/
|
||||
```
|
||||
|
||||
**Frontmatter Schema:**
|
||||
|
||||
```yaml
|
||||
---
|
||||
title: string # Required
|
||||
description: string # Required
|
||||
date: "YYYY-MM-DD" # Required, ISO format
|
||||
author: string # Required
|
||||
tags: [string, string?, string?] # Max 3 tags
|
||||
image?: string # Optional hero image
|
||||
draft?: boolean # Exclude from listings if true
|
||||
title: string # Required
|
||||
description: string # Required
|
||||
date: 'YYYY-MM-DD' # Required, ISO format
|
||||
author: string # Required
|
||||
tags: [string, string?, string?] # Max 3 tags
|
||||
image?: string # Optional hero image
|
||||
draft?: boolean # Exclude from listings if true
|
||||
---
|
||||
```
|
||||
|
||||
@@ -107,20 +108,25 @@ components/
|
||||
### File Naming Conventions
|
||||
|
||||
**Files and Directories:**
|
||||
|
||||
- Use **kebab-case** for all file names: `user-profile.tsx`, `blog-post.tsx`
|
||||
- Special Next.js files: `page.tsx`, `layout.tsx`, `not-found.tsx`, `loading.tsx`
|
||||
|
||||
**Component Names (inside files):**
|
||||
|
||||
- Use **PascalCase**: `export function UserProfile()`, `export default BlogPost`
|
||||
|
||||
**Variables, Functions, Props:**
|
||||
|
||||
- Use **camelCase**: `const userSettings = {}`, `function handleSubmit() {}`
|
||||
- Hooks: `useTheme`, `useMarkdown`
|
||||
|
||||
**Constants:**
|
||||
|
||||
- Use **SCREAMING_SNAKE_CASE**: `const API_BASE_URL = "..."`
|
||||
|
||||
**Why kebab-case for files?**
|
||||
|
||||
- Cross-platform compatibility (Windows vs Unix)
|
||||
- URL-friendly (file names often map to routes)
|
||||
- Easier to parse and read
|
||||
@@ -152,6 +158,7 @@ export default function RootLayout({ children }) {
|
||||
```
|
||||
|
||||
**Client Component for Toggle:**
|
||||
|
||||
```typescript
|
||||
// components/theme-toggle.tsx
|
||||
'use client'
|
||||
@@ -173,23 +180,25 @@ export function ThemeToggle() {
|
||||
```
|
||||
|
||||
**Tailwind Configuration:**
|
||||
|
||||
```javascript
|
||||
// tailwind.config.js
|
||||
module.exports = {
|
||||
darkMode: 'class', // Use 'class' strategy for next-themes
|
||||
darkMode: 'class', // Use 'class' strategy for next-themes
|
||||
theme: {
|
||||
extend: {
|
||||
colors: {
|
||||
// Define custom colors for consistency
|
||||
'dark-primary': '#18181b',
|
||||
'accent': { DEFAULT: '#164e63', hover: '#155e75' }
|
||||
}
|
||||
}
|
||||
}
|
||||
accent: { DEFAULT: '#164e63', hover: '#155e75' },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
**CSS Variables Pattern:**
|
||||
|
||||
```css
|
||||
/* globals.css */
|
||||
:root {
|
||||
@@ -219,6 +228,7 @@ module.exports = {
|
||||
### Next.js 16 Specific Patterns
|
||||
|
||||
**Async Server Components:**
|
||||
|
||||
```typescript
|
||||
// app/blog/page.tsx
|
||||
export default async function BlogPage() {
|
||||
@@ -228,6 +238,7 @@ export default async function BlogPage() {
|
||||
```
|
||||
|
||||
**Static Generation with Dynamic Routes:**
|
||||
|
||||
```typescript
|
||||
// app/blog/[...slug]/page.tsx
|
||||
export async function generateStaticParams() {
|
||||
@@ -242,6 +253,7 @@ export async function generateMetadata({ params }) {
|
||||
```
|
||||
|
||||
**Parallel Routes for Layout Composition:**
|
||||
|
||||
```typescript
|
||||
// app/layout.tsx
|
||||
export default function RootLayout({
|
||||
@@ -278,12 +290,14 @@ export default function RootLayout({
|
||||
### Styling Guidelines
|
||||
|
||||
**Color Palette:**
|
||||
|
||||
- Backgrounds: `zinc-900`, `slate-900`, `slate-800`
|
||||
- Accents: `cyan-900`, `emerald-900`, `teal-900`
|
||||
- Text: `slate-100`, `slate-300`, `slate-500`
|
||||
- Borders: `border-2`, `border-4` (thick, sharp)
|
||||
|
||||
**Design Tokens:**
|
||||
|
||||
- **NO rounded corners:** Use `rounded-none` or omit (default is sharp)
|
||||
- **Monospace fonts:** Apply `font-mono` for terminal aesthetic
|
||||
- **Uppercase labels:** Use `uppercase tracking-wider` for headers
|
||||
@@ -291,6 +305,7 @@ export default function RootLayout({
|
||||
- **Classification labels:** Add metadata like "FILE#001", "DOCUMENT LEVEL-1"
|
||||
|
||||
**Typography:**
|
||||
|
||||
- Primary font: `JetBrains Mono` (monospace)
|
||||
- Headings: `font-mono font-bold uppercase`
|
||||
- Body: `font-mono text-sm`
|
||||
|
||||
Reference in New Issue
Block a user