Skip to content

Conversation

@NicolaSpadari
Copy link

@NicolaSpadari NicolaSpadari commented Jan 23, 2026

❓ Type of change

Add fullscreen and size props to slideover

  • πŸ“– Documentation (updates to the documentation or readme)
  • 🐞 Bug fix (a non-breaking change that fixes an issue)
  • πŸ‘Œ Enhancement (improving an existing functionality)
  • ✨ New feature (a non-breaking change that adds functionality)
  • 🧹 Chore (updates to the build process or auxiliary tools and libraries)
  • ⚠️ Breaking change (fix or feature that would cause existing functionality to change)

πŸ“š Description

I added a new prop similar to Modal and Button, which adds support for different sizes and a fullscreen variant of the slideover.
It could be overwritten individually, but I work on a project that requires different "standard" sizes of slideovers based on context. With this feature, users can create an always fullscreen slideover, similar to fullscreen Modal, or set different sizes easily.
It follows standard definition so you can use variants/compound variants or just do not specify these new props at all for standard look.

πŸ“ Checklist

  • I have linked an issue or discussion.
  • I have updated the documentation accordingly.

@github-actions github-actions bot added the v4 #4488 label Jan 23, 2026
@coderabbitai
Copy link

coderabbitai bot commented Jan 23, 2026

πŸ“ Walkthrough

Walkthrough

This change introduces size and fullscreen variants to the Slideover component. The Slideover.vue component now exposes size and fullscreen props that control the rendered styling. The theme configuration adds corresponding variant groups and compound variants that map size values (xs, sm, md, lg, xl) to width constraints for left/right orientations and height constraints for top/bottom orientations. Fullscreen variants override these constraints with full-width or full-height classes. Documentation is added to describe the size prop behavior and its orientation-dependent mapping.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

πŸš₯ Pre-merge checks | βœ… 3
βœ… Passed checks (3 passed)
Check name Status Explanation
Title check βœ… Passed The title clearly and concisely describes the main feature addition: new size and fullscreen props for the Slideover component, which aligns with the changeset.
Description check βœ… Passed The description is directly related to the changeset, explaining the new size and fullscreen props, their purpose, and how they follow existing patterns in the codebase.
Docstring Coverage βœ… Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • πŸ“ Generate docstrings
πŸ§ͺ Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❀️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

πŸ€– Fix all issues with AI agents
In `@docs/content/docs/2.components/slideover.md`:
- Around line 236-258: The fullscreen example's component-code block triggers
markdownlint MD007/MD018 due to the inline list-style YAML/slot lines; update
the example by converting the inline list into a proper multi-line list (avoid
compact inline list entries) and add a local MD018 disable pragma for that block
(e.g., an HTML comment like <!-- markdownlint-disable MD018 --> before the code
block and <!-- markdownlint-enable MD018 --> after) so the linter ignores the
list-indent rule; target the component-code block containing props (fullscreen,
title) and slots (default, body) when making this change.
- Around line 204-225: In the "Size example" Slideover block fix the
markdownlint issues by changing the YAML frontmatter `ignore` list to an inline
single-item form (e.g., use `ignore: ['title']` instead of a multi-line list)
and wrap the `#body` slot marker with a local MD018 disable/enable comment pair
(use `<!-- markdownlint-disable MD018 -->` before the `#body` marker and `<!--
markdownlint-enable MD018 -->` after) so the `ignore` key and the `#body` slot
marker no longer trigger MD007/MD018; update the block containing `props: size:
'lg'`, `ignore`, and the `#body` slot accordingly.

Comment on lines +204 to +225
::component-code
---
prettier: true
ignore:
- title
props:
size: 'lg'
title: 'Slideover with size'
slots:
default: |

<UButton label="Open" color="neutral" variant="subtle" />

body: |

<Placeholder class="h-full" />
---

:u-button{label="Open" color="neutral" variant="subtle"}

#body
:placeholder{class="h-full"}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟑 Minor

Fix markdownlint MD007/MD018 in the Size example.

markdownlint flags list indentation on ignore and the #body slot marker. Consider an inline list and a local MD018 disable so lint stays green.

βœ… Suggested lint-safe tweak
@@
-ignore:
-  - title
+ignore: ['title']
@@
-#body
+<!-- markdownlint-disable-next-line MD018 -->
+#body
🧰 Tools
πŸͺ› markdownlint-cli2 (0.18.1)

208-208: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


224-224: No space after hash on atx style heading

(MD018, no-missing-space-atx)

πŸ€– Prompt for AI Agents
In `@docs/content/docs/2.components/slideover.md` around lines 204 - 225, In the
"Size example" Slideover block fix the markdownlint issues by changing the YAML
frontmatter `ignore` list to an inline single-item form (e.g., use `ignore:
['title']` instead of a multi-line list) and wrap the `#body` slot marker with a
local MD018 disable/enable comment pair (use `<!-- markdownlint-disable MD018
-->` before the `#body` marker and `<!-- markdownlint-enable MD018 -->` after)
so the `ignore` key and the `#body` slot marker no longer trigger MD007/MD018;
update the block containing `props: size: 'lg'`, `ignore`, and the `#body` slot
accordingly.

Comment on lines +236 to +258
::component-code
---
prettier: true
ignore:
- title
- fullscreen
props:
fullscreen: true
title: 'Slideover fullscreen'
slots:
default: |

<UButton label="Open" color="neutral" variant="subtle" />

body: |

<Placeholder class="h-full" />
---

:u-button{label="Open" color="neutral" variant="subtle"}

#body
:placeholder{class="h-full"}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟑 Minor

Fix markdownlint MD007/MD018 in the Fullscreen example.

Same lint warnings appear in this block; inline list + a local MD018 disable resolves them.

βœ… Suggested lint-safe tweak
@@
-ignore:
-  - title
-  - fullscreen
+ignore: ['title', 'fullscreen']
@@
-#body
+<!-- markdownlint-disable-next-line MD018 -->
+#body
🧰 Tools
πŸͺ› markdownlint-cli2 (0.18.1)

240-240: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


241-241: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


257-257: No space after hash on atx style heading

(MD018, no-missing-space-atx)

πŸ€– Prompt for AI Agents
In `@docs/content/docs/2.components/slideover.md` around lines 236 - 258, The
fullscreen example's component-code block triggers markdownlint MD007/MD018 due
to the inline list-style YAML/slot lines; update the example by converting the
inline list into a proper multi-line list (avoid compact inline list entries)
and add a local MD018 disable pragma for that block (e.g., an HTML comment like
<!-- markdownlint-disable MD018 --> before the code block and <!--
markdownlint-enable MD018 --> after) so the linter ignores the list-indent rule;
target the component-code block containing props (fullscreen, title) and slots
(default, body) when making this change.

@benjamincanac
Copy link
Member

I'm not sure a size prop is necessary for this component honestly, you can simply do :ui="{ content: 'max-w-xs' }".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

v4 #4488

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants