Quick start
- First confirm the requirement belongs to: component/UI behavior, styles, layout, or Storybook.
- Read first:
references/carbon-policy.md。 - If it is a scrolling/clipping issue, then read:
references/overflow-layout-playbook.md。 - When changing shared/component, update stories and registry in sync.
Owner Scope
- ✅ Carbon-first style specifications and UI implementation delivery.
- ✅ Storybook authoring standards, registry sync strategy.
- ✅ overflow / split pane / full-bleed layout fixes.
- ❌ Does not define git/PR workflow (handled by
qjudge-github-workflow-owner)。 - ❌ Does not define layer/import rules (handled by
qjudge-architecture-owner)。 - ❌ Does not define compose execution commands (handled by
qjudge-env-compose-owner)。
Core Rules
- Prohibited to override
.cds--*/.bx--*(except allowlist). - Prohibited
!important。 - Layout prioritizes Carbon Grid/FlexGrid/Row/Column.
- A single view keeps only one main vertical scroll container.
- Action feedback (success/failure) prioritizes using
useToast; avoid stacking in the content areaInlineNotification。
Toolbar / Navbar Design Preferences (QJudge Default)
- Answering toolbar visual language aligns with Global Nav bar (consistent height, button size, density).
- Toolbar background uses
var(--cds-background), avoid making obvious color block layering; prioritize fading chrome so users focus on the question content. - Action Button defaults to using Carbon
medium, height consistent with navbar (3rem)。 - Header / Navbar / Toolbar action buttons all use default size (prohibited
size="sm"), ensuring consistent height and alignment with3remnav bar; if compactness is needed, only adjust the body text, not the button height. - Answering toolbar by default does not retain left/right padding (remove the common
16pxside padding), to avoid the content area being visually squeezed. - Demo mode does not show the toolbar back button, keeping only necessary information (title, status).
- Proctoring notice uses low-interference presentation: use neutral color tags (such as
cool-gray) and brief copy (e.g. "Monitoring"), avoiding high-alert colors that cause unnecessary pressure.
Check Commands
- Check style violations:
bash .codex/skills/qjudge-quality-gates-owner/scripts/check-carbon-style.sh
Reference Documents
- Carbon specifications:
references/carbon-policy.md - Storybook:
references/storybook-registry.md - Overflow fixes:
references/overflow-layout-playbook.md
Cross-skill handoff
- If a UI task involves path ownership/hierarchy boundaries, first go through
qjudge-architecture-owner。 - If PR/release decisions are needed, hand off to
qjudge-github-workflow-owner。
Portable notes
- Portable core: Design-system-first, single scroll owner, stories evolve together with components.
- If switching design systems, only replace token/class prohibition strategy and story registry location.