Skip to content

Add a Sidebar widget to Cupertino for a native look on iPadOS #60762

Open

Description

@herrmayr

Use case

Build iPadOS apps which look native and up-to-date regarding the new UI concept of sidebars on iPad apps

Proposal

iPadOS 14 introduces the UI concept a toggle sidebar which is prominently used in a variety of Apple‘s own apps and surely in lots of updated 3rd party apps to make them feel native. In SwiftUI, there is already an implementation for it:

SwiftUI will automatically take care of showing a button to slide in your bar from the side of the screen, and also collapse it with your primary view if you’re in a compact size class. If you’re presenting a list inside your sidebar, it’s a good idea to use the .listStyle() to give it the system-standard theme for sidebars, like this: .... (Source: Hacking with Swift - How to add a sidebar for iPadOS

It would be fantastic to have the sidebar as a „native“ flutter widget in Cupertino.

Activity

  1. added
    p: cupertino_uicupertino_ui package in flutter/packages
    frameworkflutter/packages/flutter repository. See also f: labels.
    c: new featureNothing broken; request for a new capability
    on Jul 2, 2020
  2. changed the title [-]Add a Sidebar widget to Cupertino for a native look on iPadSO[/-] [+]Add a Sidebar widget to Cupertino for a native look on iPadOS[/+] on Jul 4, 2020
  3. kerberjg commented on Jul 17, 2024

    @kerberjg
    Contributor

    I'd be happy to volunteer my efforts to this! Is there interest in having this developed?

  4. kerberjg commented on Jul 31, 2024

    @kerberjg
    Contributor

    I managed to implement the sidebar over the last couple days! 🥳

    Screen.Recording.2024-07-31.at.02.01.27.mov

    Next I'm going to clean up the code a bit and submit a PR. It might require time and some advice from the Flutter team, as I want to make sure I respect the navigation behavior in a way similar to CupertinoTabScaffold.

    I'm also thinking of separating the "collapsible group" into its own widget for reusability (it's quite common in iOS interfaces). Could I ask a Flutter team member for advice on how to best proceed?

  5. flutter-triage-bot commented on Jul 31, 2024

    @flutter-triage-bot

    This issue is missing a priority label. Please set a priority label when adding the triaged-design label.

  6. added
    P2Important issues not at the top of the work list
    triaged-designTriaged by Design Languages team
    on Jul 31, 2024
  7. MitchellGoodwin commented on Aug 5, 2024

    @MitchellGoodwin
    Contributor

    I managed to implement the sidebar over the last couple days! 🥳

    Next I'm going to clean up the code a bit and submit a PR. It might require time and some advice from the Flutter team, as I want to make sure I respect the navigation behavior in a way similar to CupertinoTabScaffold.

    I'd be very interested in seeing how it looks! I'd recommend opening a draft PR sooner rather than later. Maybe after some clean up but probably before getting too feature rich. To be straightforward, we haven't done much specifically for iPadOS, so the recommendation may be to make this a package, but personally I'd love it if we had our own sidebar. For both iPad and MacOS.

    I'm also thinking of separating the "collapsible group" into its own widget for reusability (it's quite common in iOS interfaces). Could I ask a Flutter team member for advice on how to best proceed?

    Could you open an issue if one doesn't exist, with examples of a native collapsible group? That sounds like it maybe should be it's own PR.

  8. kerberjg commented on Aug 7, 2024

    @kerberjg
    Contributor

    I'd recommend opening a draft PR sooner rather than later. Maybe after some clean up but probably before getting too feature rich

    The current implementation is quite minimal, so no worries about scope! Originally I made the sidebar as a part of a different project, I just need to decouple it from that and it'll be good to go for a PR

    personally I'd love it if we had our own sidebar

    Yeah, I decided to work on it because I was concerned about the lack of feature parity from Material, where it has its own NavigationDrawer (as well as the NavigationRail), while Cupertino is limited to a (quite outdated) bottom tab bar.

    Could you open an issue if one doesn't exist, with examples of a native collapsible group? That sounds like it maybe should be it's own PR.

    Absolutely

  9. MitchellGoodwin commented on Aug 7, 2024

    @MitchellGoodwin
    Contributor

    To be straightforward, we haven't done much specifically for iPadOS, so the recommendation may be to make this a package, but personally I'd love it if we had our own sidebar.

    I've asked around in person, and there is less hesitation than I thought to add this widget. Fire away. 🚀

  10. BirjuVachhani commented on Mar 21, 2025

    @BirjuVachhani

    Would love to have this widget! 🙌🏻

  11. added
    packageflutter/packages repository. See also p: labels.
    and removed
    frameworkflutter/packages/flutter repository. See also f: labels.
    on Aug 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work listc: new featureNothing broken; request for a new capabilityp: cupertino_uicupertino_ui package in flutter/packagespackageflutter/packages repository. See also p: labels.team-designOwned by Design Languages teamtriaged-designTriaged by Design Languages team

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions