178 lines
6.3 KiB
Markdown
178 lines
6.3 KiB
Markdown
# Design
|
|
|
|
## Source of truth
|
|
- Status: Active
|
|
- Last refreshed: 2026-06-09
|
|
- Primary product surfaces:
|
|
- `image-video.html`
|
|
- `src/pages/image-video/ImageVideoPage.vue`
|
|
- Evidence reviewed:
|
|
- `src/pages/image-video/ImageVideoPage.vue`
|
|
- `src/styles/main.css`
|
|
- `src/styles/tokens.css`
|
|
- `src/components/layout/PageShell.vue`
|
|
- `../yaoyaoAI/aiclientpureui/src/styles/main.css`
|
|
- `../yaoyaoAI/aiclientpureui/src/components/dashboard/DashboardCard.vue`
|
|
- `../yaoyaoAI/aiclientpureui/src/components/workflow/Step02AudioVideo.vue`
|
|
- `../yaoyaoAI/aiclientpureui/src/components/workflow/Step03VideoEdit.vue`
|
|
|
|
## Brand
|
|
- Personality:
|
|
- Quiet, tool-oriented, high-density AI workflow workspace
|
|
- Dark professional console rather than marketing landing page
|
|
- Trust signals:
|
|
- Structured step cards
|
|
- Stable layout grid
|
|
- Clear state summaries and output preview areas
|
|
- Avoid:
|
|
- Light hero-page styling
|
|
- Decorative floating cards wrapped inside larger cards
|
|
- Tailwind or PrimeVue-specific visual copies that do not fit Element Plus
|
|
|
|
## Product goals
|
|
- Goals:
|
|
- Add a real `带货视频` module inside `frontend-vue`
|
|
- Put `视频复刻` and `图生视频` on one page with tab switching
|
|
- Match the visual tone of `aiclientpureui`
|
|
- Extract reusable workflow components for future media modules
|
|
- Non-goals:
|
|
- Backend API integration in this phase
|
|
- Rebuilding the entire `aiclientpureui` navigation shell
|
|
- Success signals:
|
|
- The page is screenshot-ready
|
|
- Form sections are organized and legible at desktop widths
|
|
- Shared components are reusable beyond this one page
|
|
|
|
## Personas and jobs
|
|
- Primary personas:
|
|
- Internal operators creating or editing commerce videos
|
|
- Content operations staff iterating scripts, scenes, and avatars quickly
|
|
- User jobs:
|
|
- Upload source material
|
|
- Configure video generation parameters
|
|
- Adjust scene, face, script, and product settings
|
|
- Review an output summary before starting generation
|
|
- Key contexts of use:
|
|
- Desktop-heavy internal tool usage
|
|
- Repeated daily workflows with dense settings
|
|
|
|
## Information architecture
|
|
- Primary navigation:
|
|
- Keep a lightweight page header with module switch and back link
|
|
- Core routes/screens:
|
|
- `image-video.html` as the image/video workspace entry
|
|
- Content hierarchy:
|
|
- Page header and module switch
|
|
- Delivery-video tabs
|
|
- Step-oriented configuration grid
|
|
- Preview and submission area
|
|
|
|
## Design principles
|
|
- Principle 1:
|
|
- Reuse structure, not framework-specific implementation. Port the dashboard/card language from `aiclientpureui` into Element Plus-native components.
|
|
- Principle 2:
|
|
- Keep the screen directly operable. The first viewport should show the active workflow, not a placeholder entrance.
|
|
- Tradeoffs:
|
|
- Prefer a compact dark console layout over a literal flowchart reconstruction from the requirement images.
|
|
|
|
## Visual language
|
|
- Color:
|
|
- Deep neutral background with restrained blue-indigo highlights
|
|
- High-contrast text, low-contrast secondary copy
|
|
- Typography:
|
|
- Existing sans-serif stack from `tokens.css`
|
|
- Compact section headings and dense form labels
|
|
- Spacing/layout rhythm:
|
|
- 20px to 24px outer spacing
|
|
- 16px card padding
|
|
- Multi-column grid with stable min widths
|
|
- Shape/radius/elevation:
|
|
- 14px to 18px radii
|
|
- Soft border glow, minimal shadow depth
|
|
- Motion:
|
|
- Short hover and focus transitions only
|
|
- Imagery/iconography:
|
|
- Use media preview boxes and upload placeholders
|
|
- Avoid decorative illustrations
|
|
|
|
## Components
|
|
- Existing components to reuse:
|
|
- `src/components/layout/PageShell.vue`
|
|
- New/changed components:
|
|
- Shared dark workflow shell
|
|
- Shared module switch
|
|
- Shared section card
|
|
- Shared choice-pill selector
|
|
- Shared asset dropzone / preview block
|
|
- Variants and states:
|
|
- Active/inactive tabs
|
|
- Active/inactive pills
|
|
- Empty vs selected asset states
|
|
- Hover/focus for cards and action buttons
|
|
- Token/component ownership:
|
|
- Theme tokens in `src/styles/tokens.css`
|
|
- Global workflow styles in `src/styles/main.css`
|
|
- Shared components under `src/shared/components/ai-workflow/`
|
|
|
|
## Accessibility
|
|
- Target standard:
|
|
- Practical keyboard and screen-readable form semantics for internal desktop usage
|
|
- Keyboard/focus behavior:
|
|
- Visible focus ring on pills, buttons, upload areas, and tabs
|
|
- Contrast/readability:
|
|
- Maintain strong foreground/background contrast in dark mode
|
|
- Screen-reader semantics:
|
|
- Preserve labels for upload regions and tab panels
|
|
- Reduced motion and sensory considerations:
|
|
- No large-scale animation
|
|
|
|
## Responsive behavior
|
|
- Supported breakpoints/devices:
|
|
- Primary target desktop >= 1280px
|
|
- Secondary support tablet widths >= 768px
|
|
- Layout adaptations:
|
|
- Collapse multi-column workspace into two columns, then one column
|
|
- Preview area stops being sticky on narrow screens
|
|
- Touch/hover differences:
|
|
- Controls remain usable without hover-only affordances
|
|
|
|
## Interaction states
|
|
- Loading:
|
|
- Reserved for future backend integration
|
|
- Empty:
|
|
- Show upload placeholders and muted guidance text
|
|
- Error:
|
|
- Use Element Plus messaging if upload type or action constraints fail
|
|
- Success:
|
|
- Local draft actions can confirm save/export interactions
|
|
- Disabled:
|
|
- Non-active modules appear disabled but visible
|
|
- Offline/slow network, if applicable:
|
|
- Not applicable in the current local-only draft
|
|
|
|
## Content voice
|
|
- Tone:
|
|
- Direct and operational
|
|
- Terminology:
|
|
- Prefer commerce-video workflow language: 素材, 场景, 人脸, 话术, 产品, 输出
|
|
- Microcopy rules:
|
|
- Short labels
|
|
- Guidance belongs in helper text, not long paragraphs
|
|
|
|
## Implementation constraints
|
|
- Framework/styling system:
|
|
- Vue 3 + TypeScript + Element Plus
|
|
- Design-token constraints:
|
|
- Extend current CSS variables instead of introducing Tailwind
|
|
- Performance constraints:
|
|
- Keep the page static and local-first until API wiring is required
|
|
- Compatibility constraints:
|
|
- Must work within the existing Vite multi-page build
|
|
- Test/screenshot expectations:
|
|
- Build must pass
|
|
- Local dev server should render a screenshot-ready page at `image-video.html`
|
|
|
|
## Open questions
|
|
- [ ] 图二和图三的字段是否需要完全一致,目前按“共用主流程 + 源素材差异化”实现
|
|
- [ ] 后续是否需要直接接入生成任务接口,目前仅实现本地工作台和交互草稿
|