A Small Flutter UI Toolkit: Progress, Paging, Shadows, Indicators
Four focused packages I extracted from product work — segmented progress, infinite paging, contoured shadows, and sliding window indicators.
Not every UI idea needs a monorepo framework. Lately I’ve been extracting sharp, zero-dependency Flutter packages from patterns that kept reappearing in product code.
segmented_progress_indicator
Segmented arc progress and fading spinner widgets — useful when CircularProgressIndicator is too generic for branded loading states. Customize segment count, trail, head dot, and center values.
infinite_paging_widget
Generic infinite-scroll list/grid with load-more. Pass items and onLoadMore; get empty/loading/error/header/footer slots and guards against overlapping loads. Pagination boilerplate should not own your screen file.
contoured_shadow
BoxShadow assumes a rectangle. ContouredShadow paints from the child’s silhouette via a RenderProxyBox — opaque pixels cast shadow, transparent pixels don’t. Better for cutouts, badges, and irregular shapes.
sliding_window_indicator
PageViews with twelve pages don’t need twelve dots. A sliding window of lines keeps the indicator compact while the selection scrolls through a longer list, driven by a PageController.
The theme
Each package does one job, ships with an example app, and stays dependency-light. That’s the bar I use: if I can’t explain it in a README paragraph, it’s not ready to extract.