T00 foundation: theme, motion, assets, icon, buttons, gallery

Theme tokens in light and dark with high contrast, a palette cross-fade,
motion curves and a damped spring, embedded Lucide icons with Inter and
JetBrains Mono, Icon, Button, IconButton, and a gallery that captures
its own window. Reviewed by codex gpt-6-astra (max): PASS in round 3.
This commit is contained in:
ZacharyZhang-NY committed 2026-09-24 23:59:55 -04:00
commit abf4cbcfc6
258 files changed
+16908

No files matched your search

+365
View File
@@ -0,0 +1,365 @@
# Chapters 1–10
## T01 Primitives — `src/primitives`
- [ ] Box / View — native `div()`
- [ ] Text — native: strings and `StyledText` are elements
- [x] Icon (T00)
- [x] IconSet / IconRegistry (T00)
- [ ] Svg — native `svg()`
- [ ] Image — loading, failed, placeholder over `img()`
- [ ] Canvas — native `canvas()`
- [ ] Divider / Separator
- [ ] Spacer — native `div().flex_1()`
- [ ] Portal — native `deferred(anchored())`
- [ ] Overlay / Backdrop
- [ ] Slot — native `impl IntoElement` params and `ParentElement`
- [ ] Show / When — native `.when()` / `.when_some()`
- [ ] For / Each — native `.children(iter)`
- [ ] Fragment — native: children take iterators
- [ ] VisuallyHidden — blocked: gpui 0.2.2 has no accessibility tree
- [ ] FocusRing
- [ ] FocusScope / FocusTrap
- [ ] ClickOutside — native `on_mouse_down_out`
- [ ] HoverArea — native `on_hover` / `.hover()`
- [ ] Pressable — press state, long press
- [ ] KeyboardHandler — native `on_key_down` / `on_action`
- [ ] Measure
- [ ] ResizeObserver → `primitives::Measure`
- [ ] IntersectionObserver
- [ ] Clipboard — native `write_to_clipboard` / `read_from_clipboard`
- [ ] Tooltip Trigger — owns `Tooltip`: delay, follow mouse, rich content
## T02 Typography — `src/typography`
- [ ] Heading (H1–H6)
- [ ] Title / Subtitle
- [ ] Paragraph
- [ ] Label
- [ ] Caption
- [ ] Overline
- [ ] Code
- [ ] Kbd — ⌘ / Ctrl by platform
- [ ] KbdCombo
- [ ] Blockquote
- [ ] Highlight / Mark
- [ ] Truncate — native `.truncate()`
- [ ] LineClamp — native `.line_clamp(n)`
- [ ] MiddleEllipsis
- [ ] EllipsisTooltip
- [ ] Link
- [ ] ExternalLink
- [ ] RelativeTime
- [ ] DateTimeText
- [ ] NumberText
- [ ] CurrencyText
- [ ] PercentText
- [ ] FileSizeText
- [ ] DurationText
- [ ] PluralText
- [ ] CopyableText
- [ ] SelectableText — prove: selection over `StyledText` layout
- [ ] Emoji — shortcodes
- [ ] Latex / MathInline — prove: TeX subset
- [ ] AnimatedNumber
- [ ] Typewriter
- [ ] GradientText — per-glyph tonal ramp
- [ ] ShimmerText
## T03 Layout — `src/layout`
- [ ] Stack / HStack / VStack
- [ ] Flex — native `.flex()`
- [ ] Grid / GridItem — native `.grid()`, `.col_span()`
- [ ] SimpleGrid
- [ ] Masonry
- [ ] Center — native `.flex().items_center().justify_center()`
- [ ] Container
- [ ] AspectRatio
- [ ] Inset / Padding — native `.p_*()`
- [ ] Wrap — native `.flex_wrap()`
- [ ] Absolute / Positioned — native `.absolute()`
- [ ] Layer / ZStack
- [ ] ScrollArea
- [ ] Scrollbar
- [ ] ScrollShadow
- [ ] ScrollToTop
- [ ] StickyHeader
- [ ] SplitPane — horizontal, vertical, nested
- [ ] ResizablePanel / ResizablePanelGroup → `layout::SplitPane`
- [ ] ResizeHandle
- [ ] Collapsible
- [ ] Accordion / AccordionItem
- [ ] Card / CardHeader / CardBody / CardFooter
- [ ] Panel / PanelHeader
- [ ] Section / SectionHeader
- [ ] Group / Fieldset
- [ ] Frame
- [ ] Well
- [ ] Sidebar
- [ ] Drawer
- [ ] Sheet
- [ ] Page / PageHeader / PageContent
- [ ] AppShell
- [ ] MasterDetail
- [ ] ThreeColumnLayout → `layout::SplitPane`
- [ ] Dock / DockPanel
- [ ] DockZone / DropIndicator
- [ ] FloatingPanel
- [ ] Pane / PaneGroup
- [ ] Workspace — versioned layout snapshot
- [ ] Viewport
## T04 Window & Shell — `src/shell`
- [ ] TitleBar
- [ ] WindowControls — macOS, Windows, Linux
- [ ] TrafficLights → `shell::WindowControls`
- [ ] WindowDragRegion — native `window_control_area`
- [ ] WindowResizeBorder — prove: client-side decorations
- [ ] MenuBar
- [ ] NativeMenu — native `cx.set_menus()`
- [ ] Toolbar / ToolbarGroup / ToolbarSeparator
- [ ] StatusBar / StatusBarItem
- [ ] ActivityBar
- [ ] NavigationRail → `shell::ActivityBar`
- [ ] TabBar
- [ ] SplashScreen
- [ ] AboutDialog
- [ ] TrayIcon / TrayMenu — prove
- [ ] DockBadge — prove
- [ ] JumpList — native `cx.set_dock_menu()`
- [ ] SystemNotification — prove
- [ ] MultiWindow Manager
- [ ] WindowSwitcher
- [ ] QuickLauncher
- [ ] MiniWindow / CompactMode
- [ ] AlwaysOnTop — native `WindowKind::PopUp`
- [ ] PictureInPicture — host content
- [ ] UpdateBanner / UpdateDialog
- [ ] CrashReporter
- [ ] OfflineIndicator
- [ ] ZoomControl
## T05 Buttons & Actions — `src/buttons`
- [x] Button (T00)
- [x] IconButton (T00)
- [ ] ButtonGroup
- [ ] SplitButton
- [ ] DropdownButton / MenuButton
- [ ] ToggleButton
- [ ] ToggleGroup
- [ ] SegmentedControl
- [ ] FloatingActionButton
- [ ] LoadingButton → `buttons::Button` loading state
- [ ] ConfirmButton — hold or click twice
- [ ] HoldToConfirm → `buttons::ConfirmButton`
- [ ] CopyButton
- [ ] ShareButton
- [ ] CloseButton
- [ ] BackButton
- [ ] MoreButton
- [ ] ActionBar
- [ ] BulkActionBar
- [ ] ActionSheet
- [ ] QuickActions
- [ ] ShortcutHint
## T06a Forms · Text — `src/forms`
- [ ] Input / TextField
- [ ] TextArea
- [ ] PasswordInput
- [ ] SearchInput
- [ ] NumberInput
- [ ] ScrubInput
- [ ] CurrencyInput
- [ ] PercentInput
- [ ] UnitInput
- [ ] EmailInput
- [ ] UrlInput
- [ ] PhoneInput
- [ ] MaskedInput
- [ ] PinInput / OTPInput
- [ ] InlineEdit / EditableText
- [ ] InputGroup / InputAddon
- [ ] ClearableInput → `forms::Input`
- [ ] AutoResizeInput → `forms::Input`
- [ ] MentionInput
- [ ] HashtagInput
- [ ] TagInput / TokenInput
- [ ] KeyValueInput
- [ ] ListInput
- [ ] PathInput — native dialog via `prompt_for_paths`
- [ ] RegexInput
- [ ] ExpressionInput
- [ ] HotkeyInput / ShortcutRecorder
## T06b Forms · Selection
- [ ] Checkbox
- [ ] CheckboxGroup
- [ ] CheckboxCard
- [ ] Radio / RadioGroup
- [ ] RadioCard
- [ ] Switch / Toggle
- [ ] Select
- [ ] NativeSelect — blocked: gpui 0.2.2 has no native popup menu
- [ ] Combobox
- [ ] Autocomplete
- [ ] MultiSelect
- [ ] CascadeSelect / Cascader
- [ ] TreeSelect
- [ ] TransferList
- [ ] ListBox
- [ ] ChoiceChips / FilterChips
- [ ] Rating
- [ ] Slider
- [ ] RangeSlider
- [ ] VerticalSlider → `forms::Slider`
- [ ] Knob / Dial
- [ ] Stepper
## T06c Forms · Date & Time
- [ ] Calendar
- [ ] DatePicker
- [ ] DateRangePicker
- [ ] TimePicker
- [ ] DateTimePicker
- [ ] MonthPicker / YearPicker / QuarterPicker
- [ ] WeekPicker
- [ ] RelativeDatePicker
- [ ] TimezoneSelect
- [ ] DurationPicker
- [ ] CronEditor
## T06d Forms · Color
- [ ] ColorPicker — HSV, RGB, HEX, alpha
- [ ] ColorSwatch
- [ ] ColorPalette
- [ ] EyeDropper — prove: `NSColorSampler`
- [ ] GradientEditor
## T06e Forms · Files
- [ ] FilePicker / FileInput
- [ ] FolderPicker
- [ ] DropZone
- [ ] UploadList
- [ ] ImageUpload — preview, crop
- [ ] AvatarUpload
## T06f Forms · Other
- [ ] SignaturePad
- [ ] CodeInput
- [ ] JsonInput
- [ ] FontPicker
- [ ] IconPicker
- [ ] EmojiPicker
- [ ] LanguageSelect
- [ ] CountrySelect
- [ ] CurrencySelect
## T06g Forms · Structure
- [ ] Form
- [ ] FormField
- [ ] FormLabel
- [ ] FormDescription / HelperText
- [ ] FormError / ValidationMessage
- [ ] FormSection
- [ ] FormActions
- [ ] FieldArray
- [ ] InlineForm
- [ ] WizardForm / MultiStepForm
- [ ] DirtyIndicator
## T07 Navigation — `src/navigation`
- [ ] Tabs — top, left, bottom
- [ ] EditorTabs
- [ ] TabOverflowMenu
- [ ] Breadcrumb
- [ ] Pagination
- [ ] LoadMore
- [ ] Stepper / Steps / Wizard — as `Steps`
- [ ] Sidebar Navigation / NavItem / NavGroup
- [ ] NavigationMenu
- [ ] ActivityBar Item → `shell::ActivityBar`
- [ ] BackForwardNavigation
- [ ] History Navigation → `navigation::BackForwardNavigation`
- [ ] Anchor / TableOfContents
- [ ] JumpTo / GoToLine
- [ ] CommandPalette
- [ ] QuickOpen
- [ ] QuickSwitcher
- [ ] SearchPalette
- [ ] SpotlightSearch → `navigation::SearchPalette`
- [ ] Tour / Onboarding
## T08 Menus — `src/menus`
- [ ] Menu / MenuItem / MenuGroup / MenuSeparator
- [ ] SubMenu
- [ ] CheckboxMenuItem
- [ ] RadioMenuItem
- [ ] MenuItemShortcut
- [ ] MenuItemIcon
- [ ] ContextMenu
- [ ] DropdownMenu
- [ ] MenuBar Menu → `shell::MenuBar`
- [ ] OverflowMenu
- [ ] MegaMenu
- [ ] SearchableMenu
- [ ] PieMenu / RadialMenu
## T09 Overlays — `src/overlays`
- [ ] Tooltip → `primitives::Tooltip`
- [ ] Popover
- [ ] HoverCard
- [ ] Dialog / Modal
- [ ] AlertDialog
- [ ] ConfirmDialog
- [ ] PromptDialog
- [ ] FullscreenDialog
- [ ] Sheet → `layout::Sheet`
- [ ] Drawer → `layout::Drawer`
- [ ] Lightbox
- [ ] Spotlight / Coachmark
- [ ] FloatingToolbar
- [ ] Callout / Peek
- [ ] DropdownPanel → `overlays::Popover`
- [ ] InlinePopup → `overlays::Popover`
- [ ] ToastViewport
## T10 Feedback — `src/feedback`
- [ ] Toast — success, error, warning, info, action, undo
- [ ] Notification
- [ ] NotificationCenter
- [ ] Alert
- [ ] Banner
- [ ] Callout / Admonition
- [ ] InlineMessage
- [ ] StatusMessage
- [ ] Snackbar → `feedback::Toast`
- [ ] UndoToast → `feedback::Toast`
- [ ] ErrorView
- [ ] ErrorBoundary — renders and logs a `Result` error; never catches panics
- [ ] NotFound / 404 → `feedback::ErrorView`
- [ ] NoPermission / 403 → `feedback::ErrorView`
- [ ] Maintenance → `feedback::ErrorView`
- [ ] Offline → `feedback::ErrorView`
- [ ] EmptyState
- [ ] Result
- [ ] ConfirmationCard
- [ ] SavingIndicator
- [ ] SyncStatus
- [ ] ConnectionStatus
- [ ] Countdown
- [ ] Timer