From 508338d28b3d6ead4637eb42d0176c86f6d451cf Mon Sep 17 00:00:00 2001 From: mehdibha Date: Sat, 22 Aug 2026 18:44:53 +0100 Subject: [PATCH 1/2] docs: drop table demo from introduction --- www/content/docs/(root)/index.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/www/content/docs/(root)/index.mdx b/www/content/docs/(root)/index.mdx index bf6a7f408..37c2d518b 100644 --- a/www/content/docs/(root)/index.mdx +++ b/www/content/docs/(root)/index.mdx @@ -7,8 +7,6 @@ description: A design-system builder and component registry. You compose it, pre Open code alone doesn't get you there: you own the files, but the decisions inside them are still someone else's. dotUI makes the decisions yours. The output is not our library with your colors — it is your design system. - - ## API philosophy ### Composition From a7e73c45d92b04344ac93804614252127d49d486 Mon Sep 17 00:00:00 2001 From: mehdibha Date: Sat, 22 Aug 2026 18:57:55 +0100 Subject: [PATCH 2/2] docs: drop mid beats from the composition animation --- .../modules/docs/composition-animation.tsx | 583 +----------------- 1 file changed, 20 insertions(+), 563 deletions(-) diff --git a/www/src/modules/docs/composition-animation.tsx b/www/src/modules/docs/composition-animation.tsx index f60d1e051..ad40a0dc9 100644 --- a/www/src/modules/docs/composition-animation.tsx +++ b/www/src/modules/docs/composition-animation.tsx @@ -70,72 +70,15 @@ interface Step { durationMs: number code: string preview: React.ReactNode - // Short transitional beat that plays during auto-advance but isn't a - // clickable stop in the pagination (e.g. building an InputGroup addon by - // addon before landing on the headline step). - mid?: boolean // Part of the compact loop played when the home section stacks vertically — // only steps within a few code lines of each other, so the pane height // barely moves (see compactSteps). compact?: boolean } -// Opening mid beat: a bare Input, the seed the TextField builds around. It's -// the first frame on load, so it dwells a touch longer than the mids after it. -const firstStep: Step = { - title: "TextField", - mid: true, - durationMs: 2000, - code: ``, - preview: ( - - ), -} - const steps: Step[] = [ - firstStep, - { - // Mid beat: wrap the bare input in a TextField — no field parts yet. - title: "TextField", - mid: true, - durationMs: 1400, - code: ` - -`, - preview: ( - - - - ), - }, - { - // Mid beat: the field gains its label. - title: "TextField", - mid: true, - durationMs: 1400, - code: ` - - -`, - preview: ( - - - - - ), - }, { - // Headline: the full field — label, input, and description. + // The full field — label, input, and description. title: "TextField", durationMs: 3000, code: ` @@ -157,61 +100,7 @@ const steps: Step[] = [ ), }, { - // Mid beat: wrap the input in an InputGroup — no addons yet. - title: "InputGroup", - mid: true, - durationMs: 1400, - code: ` - - - - - No spam, unsubscribe anytime. -`, - preview: ( - - - - - - - No spam, unsubscribe anytime. - - - ), - }, - { - // Mid beat: add the leading addon. - title: "InputGroup", - mid: true, - durationMs: 1400, - code: ` - - - - - - - - No spam, unsubscribe anytime. -`, - preview: ( - - - - - - - - - - No spam, unsubscribe anytime. - - - ), - }, - { - // Headline step: add the trailing addon — the full InputGroup. + // The same field, its input now an InputGroup with icon and action addons. title: "InputGroup", compact: true, durationMs: 3600, @@ -310,45 +199,7 @@ const steps: Step[] = [ ), }, { - // Mid beat: promote to DatePicker — move the icon to a trailing trigger, - // still no popover. - title: "DatePicker", - mid: true, - durationMs: 1400, - code: ` - - - - - - - -`, - preview: ( - - - - - - - - - - ), - }, - { - // Headline: attach the popover calendar. + // Attach the popover calendar. title: "DatePicker", durationMs: 3400, code: ` @@ -394,59 +245,7 @@ const steps: Step[] = [ ), }, { - // Mid beat: promote to a range — Calendar → RangeCalendar, one input still. - // The snippet defers the slots to the headline beat; the preview needs - // slot="start" at runtime. - title: "DateRangePicker", - mid: true, - durationMs: 1400, - code: ` - - - - - - - - - - - - -`, - preview: ( - - - - - - - - - - - - - - - ), - }, - { - // Headline: the field gains its end date. + // The field gains its end date. title: "DateRangePicker", durationMs: 3400, code: ` @@ -498,61 +297,6 @@ const steps: Step[] = [ ), }, - { - // Mid beat: swap the overlay primitive — one word, Popover → Modal. - title: "Modal", - mid: true, - // 110 tokens: the transition needs ~1410ms to land (see CODE_SPAN). - durationMs: 1500, - code: ` - - - - - - - - - - - - - - -`, - preview: ( - - - - - - - - - - - - - - - - - ), - }, { title: "Drawer", durationMs: 2800, @@ -606,32 +350,7 @@ const steps: Step[] = [ ), }, { - // Mid beat: collapse to a bare Select — label and trigger only. - title: "Select", - mid: true, - durationMs: 1300, - code: ``, - preview: ( - // defaultSelectedKey is mount-only, and the headline's Select updates - // this same instance in place — so the selection must start here, even - // though there are no items to resolve it against yet. - - ), - }, - { - // Headline: attach the options list. + // Same trigger-plus-popover shape, now holding a list of options. title: "Select", compact: true, durationMs: 3200, @@ -667,7 +386,7 @@ const steps: Step[] = [ ), }, { - // Headline: same list, now a typeahead — swap the trigger for an input. + // Same list, now a typeahead — swap the trigger for an input. title: "Combobox", durationMs: 3200, code: ` @@ -714,7 +433,7 @@ const steps: Step[] = [ ), }, { - // Headline: multi-select — selected people surface as tags. + // Multi-select — selected people surface as tags. title: "Tags", durationMs: 3000, code: ` @@ -773,90 +492,7 @@ const steps: Step[] = [ ), }, { - // Mid beat: a plain menu off an icon button. - title: "Menu", - mid: true, - durationMs: 1400, - code: ` - - - - Edit - Duplicate - Delete - - -`, - preview: ( - - - - - Edit - Duplicate - Delete - - - - ), - }, - { - // Mid beat: the items gain keyboard shortcuts. - title: "Menu", - mid: true, - durationMs: 1400, - code: ` - - - - Edit ⌘E - Duplicate ⌘D - Delete ⌘⌫ - - -`, - preview: ( - - - - - - Edit - ⌘E - - - Duplicate - ⌘D - - - Delete - ⌘⌫ - - - - - ), - }, - { - // Headline: one item nests a submenu. + // The same popover list behind an icon trigger, one item nesting a submenu. title: "Menu", compact: true, durationMs: 3000, @@ -915,8 +551,8 @@ const steps: Step[] = [ ), }, { - // Headline: the same menu, now opened by right-click — only the root and - // trigger change. + // The same menu, now opened by right-click — only the root and trigger + // change. title: "ContextMenu", compact: true, durationMs: 3000, @@ -966,40 +602,7 @@ const steps: Step[] = [ ), }, { - // Mid beat: the same menu, filtered by an @-mention typed into a textarea. - title: "Mention", - mid: true, - durationMs: 1500, - code: ` - - -