Contents

nikolaiborisov/solidds

A lightweight SwiftUI design system providing reusable components, design tokens, and UI primitives for building consistent apps.

Features

  • Reusable SwiftUI components
  • Design tokens (colors, spacing, typography)
  • Modular architecture
  • Swift Package Manager support
  • Demo catalog app

Installation

Add the package using Swift Package Manager:

.package(url: "https://github.com/NikolaiBorisov/SolidDS.git", from: "1.2.0")

Or add it in Xcode:

File → Add Package Dependencies

https://github.com/NikolaiBorisov/SolidDS

Highlight: SolidProgress

A highly customizable SwiftUI progress component supporting:

  • Linear and circular styles
  • Horizontal and vertical orientation
  • Flexible value positioning (leading, trailing, top, bottom, overlay)
  • Capsule and text value styles
  • Customizable colors, spacing, and sizes

Usage

import SolidDS

struct ContentView: View {
    var body: some View {

// Full Configuration

        SolidProgress(
            progress: .init(
                value: 0.88,
                format: .decimal(places: 2, percent: true)
            ),
            valueConfig: .init(
                position: .trailing,
                style: .capsule,
                color: .primary,
                font: .caption.monospacedDigit()
            ),
            orientation: .horizontal,
            size: .medium,
            progressStyle: .init(
                type: .linear,
                tint: AnyShapeStyle(Color.green),
                trackColor: AnyShapeStyle(Color.gray),
                trackHeight: 4,
                trackShadow: .init(
                    color: .black.opacity(0.25),
                    radius: 4,
                    x: 0,
                    y: 2
                ),
                padding: EdgeInsets(
                    top: 6,
                    leading: 8,
                    bottom: 6,
                    trailing: 8
                )
            ),
            container: .init(
                background: AnyShapeStyle(.regularMaterial),
                backgroundImage: Image(.progressBgImg),
                cornerRadius: 16,
                borderColor: .accentColor,
                borderWidth: 1,
                glassStyle: .ultraThin,
                glassColors: [
                    Color.red.opacity(0.3),
                    Color.orange.opacity(0.1)
                ],
                shadow: .init(
                    color: .black.opacity(0.25),
                    radius: 4,
                    x: 0,
                    y: 2
                )
            ),
            capsule: .init(
                background: AnyShapeStyle(.ultraThinMaterial),
                backgroundImage: Image(.progressBgImg),
                border: .init(
                    color: AnyShapeStyle(Color.accentColor.opacity(0.3)),
                    width: 1
                ),
                glassStyle: .ultraThin,
                glassColors: [
                    Color.red.opacity(0.3),
                    Color.orange.opacity(0.1)
                ],
                padding: EdgeInsets(top: 4, leading: 6, bottom: 4, trailing: 6),
                shadow: .init(
                    color: .black.opacity(0.25),
                    radius: 4,
                    x: 0,
                    y: 2
                )
            ),
            customSettings: .init(
                contentSpacing: 10,
                progressContainerHeight: 25,
                circularScale: 0,
                circularContainerSize: nil
            ),
            topDivider: .init(
                color: .primary,
                height: 2,
                padding: EdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 0)
            ),
            bottomDivider: .init(
                color: .primary,
                height: 2,
                padding: EdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 0)
            ),
            animation: .easeInOut(duration: 0.25)
        )
        .padding()
    }
}

Components

  • Progress indicators
  • Reusable UI primitives

Demo Video

Here’s a quick demo of the SolidProgress view in action:

<video src="Assets/Video/Progress_demo.mp4" width="600" controls></video>

Watch full demo

Demo Screenshots

Here’s a preview of the SolidProgress component in action:

[SolidProgress Demo 1] [SolidProgress Demo 2] [SolidProgress Demo 3] [SolidProgress Demo 4] [SolidProgress Demo 5] [SolidProgress Demo 6]

Why SolidDS?

SolidDS helps you build consistent SwiftUI apps faster by providing ready-to-use components with flexible APIs and sensible defaults.

It’s designed to scale from simple apps to full design systems.

Package Metadata

Repository: nikolaiborisov/solidds

Default branch: main

README: README.md