Repository navigation
Tearsheet - New component based on Modal #966
Description
Activity
coderabbitai commented
on Jun 23, 2026 coderabbitaiboton Jun 23, 2026 – with coderabbitaiMore actions🔗 Related PRs
patternfly/patternfly-react#12197 - chore(miscellaneous): update demo flags from js to ts [merged]
patternfly/patternfly-react#12327 - feat(Page): added responsive docked nav [merged]
patternfly/patternfly-react#12347 - feat(Toolbar,OverflowMenu): support responsive height vis breakpoints [merged]
patternfly/patternfly-react#12370 - chore(QuestionCircleIcon): Replace all usages of QuestionCircleIcon with RhUiQuestionMarkCircleFillIcon [merged]
patternfly/patternfly-react#12384 - feat(CodeEditor): add isHighContrastTheme [merged]
📝 Issue Planner
Check the box below or use the
@coderabbitai plancommand to generate an implementation plan and prompts that you can use with your favorite coding assistant.- Create Plan
🧪 Issue enrichment is currently in open beta.
You can configure auto-planning by selecting labels in the issue_enrichment configuration.
To disable automatic issue enrichment, add the following to your
.coderabbit.yaml:issue_enrichment: auto_enrich: enabled: false
💬 Have feedback or questions? Drop into our discord!
Some updates on delivering changes for this issue!
- Tearsheets:
- patternfly/react-component-groups PR: feat(Tearsheet): Implement new Tearsheet component #954
- Modal animations:
- patternfly-react Issue: Modal,Backdrop - Add animation support patternfly-react#12551
- patternfly-react PR: feat(Modal,Backdrop): Add animation support patternfly-react#12552
- Tearsheets:
- linked a pull request that will close this issuefeat(Tearsheet): Implement new Tearsheet component #954
on Aug 24, 2026 For a glimpse into the future now that both Tearsheet and Modal animation work has been merged in!
Once react-component-groups receives the v-next6.7.Xof patternfly this is what it should look like! (localhostexperiment using the pre-release version of modal animation work)tearsheet-official-animation.normal.mp4
tearsheet-official-animation.slow.compressed.mp4
Reacted by Michael Coker
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsNeeds triage
Is this a new component or an extension?
Variant of an existing component
Existing Component
Modal
Describe the feature
Tearsheet
A Tearsheet is a (almost)full-sized modal-like component that allows users to utilize a complex UX flow without having to navigate away from the important work they are doing.
The inspiration for this request of a PatternFly Tearsheet comes from IBM's carbon component libraries that make use of it.
Resources
carbon/ibm-products Tearsheet storybook
carbon/UX guidelines on using Tearsheets
Dependencies
Due to the large screen nature of the Tearsheet, the lack of entry/exit animations for
<Modal/>cause a negative-UX on users suddenly seeing a large element pop-up on screen.Implementation
I have completed a rough first-pass PoC implementation of what the component could look like directly in a fork of patternfly-react. The main sources to look at are:
GAUNSD:patternfly-react/react-core/Tearsheet
[GAUNSD:patternfly-react/react-styles/tearsheet.css]https://github.com/GAUNSD/patternfly-react/blob/gmurcia/tearsheet/packages/react-styles/src/css/components/Tearsheet/tearsheet.css
The resulting PoC implementation gives us the following Component use to be considered for Tearsheet
For managing infinite stacked tearsheets (See the visuals/mockup sections for more details on what this looks likes in practice._) we get this Component use
User Story
User Story: Uninterrupted navigation
As a user of complex tools (example: AutoRAG & AutoML) found in Red Hat OpenShift AI I would like my main use of these tools to not be interrupted while having to set up/configure complex configs or dependent tools that would normally require me to leave the page.
As a direct example: Pipeline server configuration requires me to navigate to another full page experience just to configure.
User Story: Full screen experience
As a user of complex tools (example: AutoRAG & AutoML) found in Red Hat OpenShift AI that display rich and complex data I would like to view the results of that data in as-close to a full page experience as I can without being interrupted of the tool's main use.
As a direct example: When seeing the final resulting models table in AutoML, I have to view all of the model details in a large-variant PF Modal which might not be big enough to see all of the model details I would like in one view
Visuals & Mockups
Tearsheet: Basic
The most basic use of a Tearsheet with simple text in the TearsheetBody
Tearsheet: Stacked
What the various levels (level 0, 1, 2) of Tearsheet stacking look like on top of each other
Tearsheet: Infinite stacking
With the use of TearsheetGroup to manage a larger collection of Tearsheets, you can achieve an infinite level of stacking.
Tearsheet: Layouts
Possibilities are endless - but just some variations on what could be included inside of the TearsheetBody
Interaction States & Variations
Tearsheet states/variations
Since the Tearsheet is heavily based on the
<Modal/>; The same states from it could be considered for Tearsheet.Tearsheet stacking
One powerful concept for Tearsheets is stacking. Since one tearsheets open wizard/ux-flow may itself also require some other uninterrupted view, another tearsheet would open on top. The user needs to clearly see this as a new element while also understanding the previous work done on the main page and on the first tearsheet is still there.
See the visuals/mockup sections for more details on what this looks likes in practice._
Tearsheet scrolling
Because a Tearsheet is meant for full-height (full screen) like content the styling of the Tearsheet should have it's TearsheetBody take up as much height as is possible. This means the TearsheetFooter that holds the CTAs would sit at the bottom of the page.
Accessibility (A11y)
Tearsheet A11Y
Since the Tearsheet is heavily based on the
<Modal/>; The same A11Y concerns from it could be applied to the Tearsheet.Product & Target Release
No response
Contribution
I am interested in contributing this feature.
I have searched for similar existing requests.
Jira Issue: PF-4539