一键导入
fullstack-js
Guidelines for implementing hover/elevation interactions, layout constraints, sidebar setup, and visual styling.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Guidelines for implementing hover/elevation interactions, layout constraints, sidebar setup, and visual styling.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
A test skill for validating secondary skill deployment.
List and manage user feedback items from the agent inbox. Use when the user asks about feedback, bug reports, feature requests, or inbox items.
Spawn a code review (architect) subagent for deep analysis, planning, and debugging. The architect specializes in strategic guidance rather than implementation. Architect should be called after building major features. Relies on `delegation` skill.
Create and manage Replit's built-in PostgreSQL databases, check status, execute SQL queries with safety checks, and run read-only queries against the production database.
Delegate tasks to specialized subagents. Use subagent for synchronous task execution, startAsyncSubagent for background task execution, messageSubagent for async follow-ups, or messageSubagentAndGetResponse for sync follow-ups.
Configure and publish your project. Use to set deployment settings and suggest publishing when the app is ready.
| name | fullstack-js |
| description | Guidelines for implementing hover/elevation interactions, layout constraints, sidebar setup, and visual styling. |
Always follow these guidelines when building a full-stack JavaScript application:
shared/schema.ts to ensure consistency between frontend and backend. Do this before writing any other code.createInsertSchema from drizzle-zod. Use .omit to exclude any auto-generated fields.z.infer<typeof insertSchema>typeof table.$inferSelect..array() as a method on the column type, not as a wrapper function. That is, do text().array() instead of array(text()).IStorage in server/storage.ts to accommodate any storage CRUD operations you need in the application.@shared/schema.ts.server/routes.ts file.drizzle-zod before passing it to the storage interface.wouter for routing on the frontend.
client/src/pages directory and register them in client/src/App.tsx.Link component or the useLocation hook from wouter instead of modifying the window directly.useForm hook and Form component from @/components/ui/form which wraps react-hook-form.
zodResolver from @hookform/resolvers/zod to validate the form data using the appropriate insert schema from @shared/schema.ts..extend to add validation rules to the insert schema.useForm hook.@tanstack/react-query when fetching data.
@shared/schema.ts.@lib/queryClient to make POST/PATCH/DELETE requests to the backend.
queryClient from @lib/queryClient!/api/recipes/${id}]..isLoading) or mutations (via .isPending) are being madeuseQuery({ queryKey: ['key'] }) instead of useQuery(['key'])useToast hook is exported from @/hooks/use-toast.form.formState.errors to see if there are form validation errors for fields that might not have associated form fields.import.meta.env.<ENV_VAR> to access environment variables on the frontend instead of process.env.<ENV_VAR>. Note that variables must be prefixed with VITE_ in order for the env vars to be available on the frontend.data-testid attribute to every HTML element that users can interact with (buttons, inputs, links, etc.) and to elements displaying meaningful information (user data, status messages, dynamic content, key values).
{action}-{target} (e.g., button-submit, input-email, link-profile){type}-{content} (e.g., text-username, img-avatar, status-payment){type}-{description}-{id}
card-product-${productId}, row-user-${index}, text-price-${itemId}index.css that will be used by a tailwind config, always use H S% L% (space separated with percentages after Saturation and Lightness) (and do not wrap in hsl()).
index.css to determine how to set colors - replacing every red placeholder with an appropriate color. Do NOT forget to replace every single instance of red. Pay attention to what you see in index.css.@-prefixed paths to import shadcn components and hooks.lucide-react to signify actions and provide visual cues. Use react-icons/si for company logos.@assets/... import syntax.attached_assets/example.png, you can reference it in the frontend with import examplePngPath from "@assets/example.png".darkMode: ["class"] in tailwind.config.ts and define color variables in :root and .dark CSS classestailwind.config.ts, always use explicit light/dark variants for ALL visual properties: className="bg-white dark:bg-black text-black dark:text-white". When using utility classes configured in tailwind config, you can assume these already been configured to automatically adapt to dark mode.npm run dev which starts an Express server for the backend and a Vite server for the frontend.package.json:
server/vite.ts and vite.config.ts) unless absolutely necessary. It is already configured to serve the frontend and backend on the same port and handles all the necessary setup for you. Don't add a proxy to the Vite server. All the aliases are already set up for you to import.drizzle.config.ts unless absolutely necessary. It is pre-configured correctly.Before writing code, identify whether any reference below applies to the task. If it does, read it first.
references/hover_and_elevation.md - Use this reference when adding or changing hover/active/toggle interaction behavior, elevation effects, or overflow-sensitive interactive styling.references/shadcn_component_rules.md - Use this reference when building or modifying UI with Shadcn components (especially Button, Card, Badge, Avatar, and Textarea).references/layout_and_spacing.md - Use this reference when structuring page layouts, sections, spacing rhythm, and component alignment.references/sidebar_rules.md - Use this reference when building or modifying a sidebar.references/visual_style_and_contrast.md - Use this reference when choosing contrast, borders, shadows, pane/panel treatment, and hero image presentation.