Skip to content

[kumo] add segmented radio groups - #840

Merged
mattrothenberg merged 10 commits into
cloudflare:mainfrom
hkfoster:hkfoster/segmented-radio-group
Oct 7, 2026
Merged

mattrothenberg merged 10 commits into
cloudflare:mainfrom
hkfoster:hkfoster/segmented-radio-group

Conversation

@hkfoster

@hkfoster hkfoster commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Adds a group-only segmented appearance to Radio while preserving native radio semantics and keyboard behavior. Adds intrinsic, non-wrapping styling for selected, hover, focus, disabled, and error states, documents segmented Radio usage with examples, constraints, and comparison guidance, and adds unit and type-level coverage for the new API and behavior.


  • Reviews
    • bonk has reviewed the change
    • automated review not possible because: draft for design feedback
  • Tests
    • Tests included/updated
    • Automated tests not possible - manual testing has been completed as follows:
    • Additional testing not necessary because:

hkfoster and others added 2 commits October 5, 2026 10:42
Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Preserve the joined radio card updates alongside the segmented group appearance.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@pkg-pr-new

pkg-pr-new Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
npm i https://pkg.pr.new/@cloudflare/kumo@840

commit: 1668242

@github-actions

github-actions Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Docs Preview

View docs preview

Commit: 1668242

@github-actions

github-actions Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

📐 Bundle Size

Consumer fixtures bundled against packages/kumo/dist (peers external, minified ESM).

Fixture Raw Gzip Brotli
Button (root) 166.3 KB 50.9 KB 44.1 KB
Button (components/button) 166.2 KB 50.9 KB 44.1 KB
Button + Dialog + Select (root) 291.4 KB 86.9 KB 73.0 KB
Button + Dialog + Select (component subpaths) 291.4 KB 86.9 KB 72.9 KB
Chart (root) 238.6 KB 72.0 KB 61.8 KB
Chart (components/chart) 238.6 KB 72.0 KB 61.9 KB
Badge (components/badge) 36.5 KB 12.7 KB 11.1 KB
Flow (components/flow) 200.6 KB 59.2 KB 51.8 KB
Button (primitives/button) 12.2 KB 4.4 KB 3.9 KB
Primitives barrel 635.9 KB 176.9 KB 139.4 KB
Code highlighting (code) 2.07 MB 469.2 KB 350.4 KB

npm tarball: 551 files, 1.51 MB packed, 6.98 MB unpacked.

⚠️ 24 flagged files in tarball (tests / raw scripts)
  • dist/blocks-source/delete-resource/delete-resource.test.tsx
  • dist/blocks-source/resource-list/resource-list.test.tsx
  • scripts/component-registry/cache.ts
  • scripts/component-registry/discovery.ts
  • scripts/component-registry/example-cleanup.ts
  • scripts/component-registry/index.test.ts
  • scripts/component-registry/index.ts
  • scripts/component-registry/markdown-generator.ts
  • scripts/component-registry/metadata.ts
  • scripts/component-registry/props-filter.ts
  • scripts/component-registry/schema-generator.ts
  • scripts/component-registry/sub-components.ts
  • scripts/component-registry/types.ts
  • scripts/component-registry/utils.ts
  • scripts/component-registry/variant-parser.ts
  • scripts/css-build.ts
  • scripts/generate-globe-land-mask.mjs
  • scripts/generate-primitives.ts
  • scripts/theme-generator/config.ts
  • scripts/theme-generator/generate-css.test.ts
  • scripts/theme-generator/generate-css.ts
  • scripts/theme-generator/index.ts
  • scripts/theme-generator/migrate.ts
  • scripts/theme-generator/types.ts

Report-only: no size thresholds are enforced yet.

Commit: 1668242f

@github-actions

github-actions Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Visual contracts

Linux Chromium references exercised by the PR's visual-contracts job.

1 curated contract

truncating text trigger

truncating text trigger

hkfoster and others added 2 commits October 5, 2026 13:08
Keep the merged Slider documentation aligned with the repository formatter.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
hkfoster and others added 6 commits October 5, 2026 15:05
Match the approved full-height segmented control treatment with shared outer chrome and internal dividers.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Let unselected segments inherit the shared control surface while preserving selected and hover states.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Shift each segment after the first left by one pixel so adjacent borders collapse as intended.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Keep checked and hover fills behind segment content while preserving joined borders and focus treatment.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@mattrothenberg
mattrothenberg merged commit 5282710 into cloudflare:main Oct 7, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants