Proto-UI/Proto-UI

[shadcn] Project Base Scroll Area into the shadcn design language

オープン

#380 opened on 2026/08/13

 (1 件のコメント) (0 件のリアクション) (0 人の担当者)TypeScript (12 件のフォーク)auto 404
F5 - Largearea: prototypeshelp wanted

Repository metrics

Stars
 (29 個のスター)
PR merge metrics
 (PR metrics pending)

説明

Classification

  • Ledger: shadcn design-language projection
  • Base owners: P-BASE-SCROLL-AREA, P-BASE-SCROLL-AREA-VIEWPORT, P-BASE-SCROLL-AREA-SCROLLBAR, P-BASE-SCROLL-AREA-THUMB (status: draft)
  • New Base protocol: none

Goal

Project the current merged host-mediated Base Scroll Area family into @proto.ui/prototypes-shadcn without creating a second scrolling or movement engine.

Contract boundary

  • Base owns the logical Scroll surface, Viewport attachment, Scroll/Move facts and requests, system/composed projection choice, and bounded control leases.
  • The shadcn projection owns only visible Root/Viewport/Scrollbar/Thumb structure and design tokens.
  • The frozen 2026-08-13 shadcn component is comparison evidence; Web DOM scrollbar details do not become portable guarantees.

Delivery surface

  • packages/prototypes/shadcn/src/scroll-area/
  • P-SHADCN-SCROLL-AREA, P-SHADCN-SCROLL-AREA-VIEWPORT, P-SHADCN-SCROLL-AREA-SCROLLBAR, and P-SHADCN-SCROLL-AREA-THUMB
  • exact package/root exports and public CLI registry projection
  • packages/prototypes/shadcn/test/scroll-area.test.ts
  • EN/ZH docs at apps/www/src/content/docs/{en,zh-cn}/ui-libraries/shadcn/scroll-area.mdx
  • real demo apps/www/src/content/docs/zh-cn/demo-shadcn-scroll-area.demo.ts
  • preview registry, component preset/token closure, and generated Agent projection

Acceptance criteria

  • Root, Viewport, Scrollbar, and Thumb consume the Base family without duplicating Scroll or Move state.
  • Both system and composed projection boundaries remain valid.
  • Directional track/thumb geometry, disabled/passive behavior, and teardown have executable evidence.
  • Exact exports and absence of host-specific public scrollbar APIs are asserted.
  • Docs distinguish portable Base facts from shadcn/Web presentation.
  • The real package export renders through Web Component, React, and Vue previews.
  • Focused tests, catalog, preset/token, types, docs, and proportional workspace checks pass.

Out of scope

  • A new scroll engine, virtualizer, carousel, or list protocol.
  • Changes to Scroll, Move Gesture, or host-capability contracts.
  • Treating native CSS/DOM scrollbar APIs as cross-host props.

コントリビューターガイド