Repository navigation
Conversation
Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com>
…and Alert primitives (#213) Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com>
Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com>
… and remove CommonJS (#300) Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com>
… Node updates Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com>
Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com>
Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com>
Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com>
Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com>
…Update Box.tsx, Box.test.tsx and Box.stories.tsx to improve how props are checked and applied Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com>
Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com>
Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com>
Add a reusable Box primitive with token-based padding, margin, gap, and common layout props. Add reusable spacing utility styles and responsive spacing support through shared primitive system utilities. Add Box stories and focused tests. Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com>
- Exported the shared responsive stylesheet from @perses-dev/components.
- Renamed responsive CSS variables from --ps-box-* to generic --ps-
responsive-*, so the responsive utility can be reused by future layout
primitives.
- Updated the responsive stylesheet and Box test to use the new variable
names.
- Simplified spacing CSS by removing intermediate --ps-spacing-value-*
variables and referencing Perses spacing tokens directly.
Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com>
|
React Doctor found no new issues. 🎉 Reviewed by React Doctor for commit |
zhuje
requested review from
celian-garcia and
jgbernalp
and removed request for
a team and
celian-garcia
October 5, 2026 20:52
Addresses react-doctor no-object-keys-values-entries-on-maybe-undefined (#352 (comment)). The value is already narrowed by isResponsiveValue, but the linter does not follow custom type guards, so add a `?? {}` fallback. Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com>
Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com>
Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com>
Same react-doctor guard as 361da01, applied to the helper added in this branch. Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com>
zhuje
force-pushed
the
button-responsive-size
branch
from
October 5, 2026 21:03
cc98a6b to
152a291
Compare
zhuje
commented
Oct 5, 2026
| if (!isResponsiveValue(value)) return undefined; | ||
|
|
||
| return Object.fromEntries( | ||
| Object.entries(value).map(([breakpoint, token]) => [ |
Contributor
Author
This was referenced Oct 5, 2026
jgbernalp
force-pushed
the
ui-customization
branch
from
October 13, 2026 11:46
56c5a50 to
3eaff7f
Compare
jgbernalp
added a commit
that referenced
this pull request
Oct 13, 2026
* [FEATURE] create @perses-dev/design-tokens package (#198) Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com> * [FEATURE] UI Customization. Add next component directory with Button and Alert primitives (#213) Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com> * [FEATURE] UI Customization: Component Provider (#241) Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com> * [BREAKINGCHANGE] Update files to align with PR#248 Upgrade to Node 24 and remove CommonJS (#300) Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com> * [IGNORE] UI Customization. Update package-lock.json for to align with Node updates Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com> * [IGNORE] Regenerate package-lock.json after rebase onto main Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com> * [FEATURE] UI Customization. Add Divider primitive (#318) Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com> * [FEATURE] UI customization. Add Box primitive component Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com> * [IGNORE] Update package.json so design-tokens are a dependency Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com> * [IGNORE] Address comments. Move spacing functions to their own file. Update Box.tsx, Box.test.tsx and Box.stories.tsx to improve how props are checked and applied Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com> * [IGNORE] Update package-lock.json after rebase onto ui-customization Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com> * [IGNORE] Use CSS classes for Box spacing Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com> * [FEATURE] Add Box primitive component Add a reusable Box primitive with token-based padding, margin, gap, and common layout props. Add reusable spacing utility styles and responsive spacing support through shared primitive system utilities. Add Box stories and focused tests. Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com> * [IGNORE] Address comments - Exported the shared responsive stylesheet from @perses-dev/components. - Renamed responsive CSS variables from --ps-box-* to generic --ps- responsive-*, so the responsive utility can be reused by future layout primitives. - Updated the responsive stylesheet and Box test to use the new variable names. - Simplified spacing CSS by removing intermediate --ps-spacing-value-* variables and referencing Perses spacing tokens directly. Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com> * [IGNORE] Guard Object.entries against undefined in responsive helpers Addresses react-doctor no-object-keys-values-entries-on-maybe-undefined (#352 (comment)). The value is already narrowed by isResponsiveValue, but the linter does not follow custom type guards, so add a `?? {}` fallback. Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com> * [IGNORE] remove unnecessary coalescing Signed-off-by: Gabriel Bernal <gbernal@redhat.com> * [IGNORE] categorize properties for reuse, add story Sample helper, refactor box stories Signed-off-by: Gabriel Bernal <gbernal@redhat.com> * [IGNORE] remove oxlint ignore Signed-off-by: Gabriel Bernal <gbernal@redhat.com> * [IGNORE] regenerate package-lock.json Signed-off-by: Gabriel Bernal <gbernal@redhat.com> * [IGNORE] adjust sample to include code snippets Signed-off-by: Gabriel Bernal <gbernal@redhat.com> * [IGNORE] fix lint error Signed-off-by: Gabriel Bernal <gbernal@redhat.com> --------- Signed-off-by: Jenny Zhu <jenny.a.zhu@gmail.com> Signed-off-by: Gabriel Bernal <gbernal@redhat.com> Co-authored-by: Gabriel Bernal <gbernal@redhat.com>
Contributor
Author
|
close for #360 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Follow-up to #299, addressing this review thread:
adding responsiveness to
Buttonlater would be a breaking change, so it should land before the primitive is adopted.Part of the UI customization initiative (perses/perses#3570). Stacked on #299.
Responsive
sizesizenow acceptsResponsive<ButtonSize>in addition to a scalar:This covers the a11y use case from the thread — a thumb-friendly
mdtarget on small screens and a densersmbutton where a pointer is available — and replaces the only responsive-sizing pattern in the app today
(
CRUDButton.tsx:sx={{ paddingX: isMobileSize ? 1 : undefined }}).data-size.ps-Button--size-<breakpoint>-<size>modifier classes (e.g.ps-Button--size-xs-md="at the xs viewport, render size md"). A missing
defaultkey falls back tomd.button.csssizes are now driven by--ps-button-py/--ps-button-px/--ps-button-font-size, so thedata-sizeattribute and the breakpoint classes share one definition and consumers can override padding per buttonwith a class.
responsiveVariantClassNamestosystem/responsive.tsfor reuse by other variant-style props.MUI / Patternfly Parity
Added missing feature to establish parity with MUI and Patternfly
startIcon/endIconstartIcon=usages. Wrapped inIcon(.ps-Button__startIcon/__endIcon); the spinner replacesstartIconwhileloading.fullWidthfullWidth/ PFisBlock. Rendersdata-full-width.render/nativeButtoncomponent={RouterLink}(Header, SearchList) / PFcomponent. Exposed from Base UI.focusableWhenDisabledisAriaDisabled— keeps the button focusable (tooltips, SR) viaaria-disabled. Exposed from Base UI; disabled/hover CSS now also matches[aria-disabled='true'].variant="link"variant="link". Transparent, underlined.Screenshots
Checklist
[<catalog_entry>] <commit message>naming convention using one of thefollowing
catalog_entryvalues:FEATURE,ENHANCEMENT,BUGFIX,BREAKINGCHANGE,DOC,IGNORE.UI Changes
See e2e docs for more details. Common issues include: