
Syncfusion Maui Toolkit Accordion
Configure Syncfusion .NET MAUI Accordion expand behavior, auto-scroll modes, and layout when building collapsible sections in a MAUI app.
Overview
Syncfusion MAUI Toolkit Accordion is an agent skill for the Build phase that guides AutoScrollPosition and scrolling behavior for Syncfusion SfAccordion in .NET MAUI apps.
Install
npx skills add https://github.com/syncfusion/maui-toolkit-ui-components-skills --skill syncfusion-maui-toolkit-accordionWhat is this skill?
- AutoScrollPosition: MakeVisible, Top, and None modes documented
- Programmatic scrolling and layout guidance for long accordion sections
- XAML and C# configuration examples for SfAccordion
- When-to-use guidance for minimal vs top-aligned expand scroll
- Advanced accordion behavior beyond default MakeVisible
- 3 AutoScrollPosition options: MakeVisible, Top, None
Adoption & trust: 1 installs on skills.sh; 20 GitHub stars; trending (+100% hot-view momentum).
What problem does it solve?
Expanded accordion panels jump unpredictably or hide content because AutoScrollPosition and layout options are easy to misconfigure in MAUI.
Who is it for?
Indie developers building MAUI apps with Syncfusion who need FAQ, settings, or long-form sections in accordions.
Skip if: Teams on pure SwiftUI or React Native without .NET MAUI—use platform-native UI skills instead.
When should I use this skill?
You are implementing or tuning Syncfusion SfAccordion auto-scroll, programmatic scroll, or layout in a .NET MAUI app.
What do I get? / Deliverables
Your agent produces SfAccordion markup and C# with the correct AutoScrollPosition mode and scroll rules for your content length and UX goals.
- SfAccordion XAML or C# snippets
- AutoScrollPosition configuration choice with rationale
Recommended Skills
Journey fit
How it compares
Component-focused MAUI procedural skill, not a general mobile design system or backend API skill.
Common Questions / FAQ
Who is syncfusion-maui-toolkit-accordion for?
Solo and small-team .NET MAUI developers using Syncfusion controls who want correct accordion expand-and-scroll behavior from their coding agent.
When should I use syncfusion-maui-toolkit-accordion?
During Build frontend when you implement or refine SfAccordion in settings, FAQs, or multi-step forms and need MakeVisible vs Top scroll policies.
Is syncfusion-maui-toolkit-accordion safe to install?
It is documentation-only UI guidance with no shell or network hooks—still review the Security Audits panel on this page before adding any skill to your agent environment.
SKILL.md
READMESKILL.md - Syncfusion Maui Toolkit Accordion
# Advanced Features in .NET MAUI Accordion This guide covers advanced features of the Syncfusion .NET MAUI Accordion, including auto-scroll positioning, programmatic scrolling and layout considerations. ## Auto Scroll Position The `AutoScrollPosition` property controls where an expanded accordion item scrolls within the viewport after expansion. **Options:** - `MakeVisible` (Default) - Scrolls just enough to make the item visible - `Top` - Scrolls the expanded item to the top of the viewport - `None` - The accordion item does not scrolls and remain in the same position. ### MakeVisible Mode Scrolls the minimum amount needed to bring the item into view. If the item is already fully visible, no scrolling occurs. **When to use:** - Preserve user's current scroll position when possible - Minimize disorientation from excessive scrolling - Short accordion items that fit in viewport ```xml <syncfusion:SfAccordion AutoScrollPosition="MakeVisible"> <syncfusion:SfAccordion.Items> <!-- Items --> </syncfusion:SfAccordion.Items> </syncfusion:SfAccordion> ``` ```csharp accordion.AutoScrollPosition = AccordionAutoScrollPosition.MakeVisible; ``` ### Top Mode Always scrolls the expanded item to the top of the viewport, providing a consistent viewing experience. **When to use:** - Long accordion items with extensive content - Forms or sections where users need to start reading from the top - Predictable, consistent user experience ```xml <syncfusion:SfAccordion AutoScrollPosition="Top"> <syncfusion:SfAccordion.Items> <!-- Items --> </syncfusion:SfAccordion.Items> </syncfusion:SfAccordion> ``` ```csharp accordion.AutoScrollPosition = AccordionAutoScrollPosition.Top; ``` **Example: FAQ with Long Answers** ```xml <syncfusion:SfAccordion AutoScrollPosition="Top"> <syncfusion:SfAccordion.Items> <syncfusion:AccordionItem> <syncfusion:AccordionItem.Header> <Grid HeightRequest="48"> <Label Text="What is .NET MAUI?" Margin="16,14,0,14" /> </Grid> </syncfusion:AccordionItem.Header> <syncfusion:AccordionItem.Content> <Grid Padding="16"> <Label Text="Long answer with multiple paragraphs..." LineBreakMode="WordWrap" /> </Grid> </syncfusion:AccordionItem.Content> </syncfusion:AccordionItem> </syncfusion:SfAccordion.Items> </syncfusion:SfAccordion> ``` ## Programmatic Scrolling with BringIntoView The `BringIntoView` method allows you to programmatically scroll a specific accordion item into view. **Syntax:** ```csharp accordion.BringIntoView(AccordionItem item); ``` ### Basic Usage ```csharp // Scroll to a specific item by index private void ScrollToItem(int index) { if (index >= 0 && index < accordion.Items.Count) { accordion.BringIntoView(accordion.Items[index]); } } ``` ### Use Cases **1. Navigate to First Error:** ```csharp private void ValidateForm() { for (int i = 0; i < accordion.Items.Count; i++) { if (!ValidateSection(i)) { // Scroll to first section with errors accordion.BringIntoView(accordion.Items[i]); accordion.Items[i].IsExpanded = true; break; } } } ``` **2. Jump to Section Button:** ```xml <StackLayout> <HorizontalStackLayout Spacing="8" Padding="16"> <Button Text="Jump to Section 1" Clicked="JumpToSection1_Clicked" /> <Button Text="Jump to Section 5" Clicked="JumpToSection5_Clicked" /> <Button Text="Jump to Last" Clicked="JumpToLast_Clicked" /> </HorizontalStackLayout> <syncfusion:SfAccordion x:Name="accordion"> <!-- 10+ items --> </syncfusion:SfAccordion> </StackLayout> ``` ```csharp private void JumpToSection1_Clicked(object sender, EventArgs e) { accordion.BringIntoView(accordion.Items[0]); } private void JumpToSection5_Clic