17 lines
607 B
Markdown
17 lines
607 B
Markdown
|
|
---
|
||
|
|
globs:
|
||
|
|
- "**/neode-ui/**"
|
||
|
|
- "**/*.vue"
|
||
|
|
---
|
||
|
|
|
||
|
|
# Frontend Rules (Archipelago)
|
||
|
|
|
||
|
|
- Always use `<script setup lang="ts">` in Vue components
|
||
|
|
- Global CSS classes go in `style.css`, never inline Tailwind utilities
|
||
|
|
- Use `.glass-button` for ALL buttons — `.gradient-button` is BANNED
|
||
|
|
- Use Pinia stores for shared state, never provide/inject for cross-component data
|
||
|
|
- Every async view needs: loading state, empty state, and error state
|
||
|
|
- Trim all text inputs before submission
|
||
|
|
- Disable submit buttons during async operations
|
||
|
|
- Use `errorMessage` ref pattern for user-visible errors, not just console.log
|