explaingit

louisdh/panelkit

Analysis updated 2026-07-03

3,749SwiftAudience · developerComplexity · 3/5LicenseSetup · easy

TLDR

PanelKit is a Swift library that brings floating, dockable sub-windows to iPhone and iPad apps, letting users drag, resize, and pin panels to the screen edge just like desktop app toolbars.

Mindmap

mindmap
  root((PanelKit))
    What it does
      Floating sub-windows
      Dock to screen edge
      Modal and popover modes
      Auto keyboard handling
    Tech Stack
      Swift
      iOS 10 plus
      CocoaPods
      Carthage
    Use Cases
      iPad productivity apps
      Dockable tool palettes
      Inspector panels
    Features
      Panel resizing
      State restoration
      Expose-style overview
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Add a floating inspector panel to an iPad app that users can pin to the left or right edge of the screen

USE CASE 2

Build a drawing app with a dockable tool palette that automatically adjusts when the keyboard appears

USE CASE 3

Create a productivity app with multiple pinned panels that restore their positions when the app relaunches

What is it built with?

SwiftiOSCocoaPodsCarthage

How does it compare?

louisdh/panelkitgontovnik/dgelasticpulltorefreshkasketis/netfox
Stars3,7493,7493,749
LanguageSwiftSwiftSwift
Setup difficultyeasyeasyeasy
Complexity3/52/51/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 30min

Requires implementing two protocols on your existing view controllers, no special base class needed.

Use freely in any project, commercial or personal, as long as you keep the copyright notice.

In plain English

PanelKit is a Swift library for iOS developers that adds a panel system to iPhone and iPad apps. A panel is a floating sub-window inside your app: a small view containing additional content that the user can move, resize, or dock to the side of the screen without leaving the current page. Think of how some desktop apps let you tear off a toolbar or sidebar into its own floating window. PanelKit brings that same idea to iOS. Each panel can appear in one of four ways: as a modal dialog that blocks the rest of the screen, as a popover anchored to a button, as a free-floating window the user can drag anywhere, or as a pinned panel docked to the left or right edge of the app. When a panel is pinned, the main content area automatically shrinks or shifts to make room. The framework also handles the case where a keyboard appears while a panel is open, moving things around automatically so nothing is hidden. The API is protocol-based, meaning you add panel behavior to your existing view controllers without inheriting from a special base class. You implement two protocols: one that describes what a panel looks like and how big it is (PanelContentDelegate), and one that manages which panels exist and where they can be dragged (PanelManager). A basic setup requires only a handful of lines of code, while optional advanced features let you allow multiple pinned panels at once, panel resizing, Expose-style overviews of all open panels, and state restoration so panels reopen where the user left them. The library is available via CocoaPods and Carthage, the two most common iOS dependency managers at the time it was published. It requires iOS 10 or later and Xcode 9 or later. The project is released under the MIT license, which allows free use in commercial and personal projects.

Copy-paste prompts

Prompt 1
Using PanelKit in Swift, show me how to implement PanelContentDelegate and PanelManager so I can display a settings panel that users can pin to the left edge of an iPad screen.
Prompt 2
Write Swift code with PanelKit to create a floating panel that the user can drag anywhere, appears as a popover on iPhone, and pins to the side on iPad.
Prompt 3
How do I enable Expose-style overview of all open PanelKit panels and save their positions so they reopen in the same spot after the app restarts?
Prompt 4
Show me how to add a resizable PanelKit panel to an existing UIViewController without subclassing a special base class, using only the protocol methods.

Frequently asked questions

What is panelkit?

PanelKit is a Swift library that brings floating, dockable sub-windows to iPhone and iPad apps, letting users drag, resize, and pin panels to the screen edge just like desktop app toolbars.

What language is panelkit written in?

Mainly Swift. The stack also includes Swift, iOS, CocoaPods.

What license does panelkit use?

Use freely in any project, commercial or personal, as long as you keep the copyright notice.

How hard is panelkit to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is panelkit for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub louisdh on gitmyhub

Verify against the repo before relying on details.