AxisContribution for SwiftUI

A library that expresses a github contribution calendar through an array of dates. Supports iOS and macOS.

Platforms iOS macOS instagram SPM MIT


Horizontal Vertical



/// Initializes `ACConstant`
/// - Parameters:
///   - fromDate: The start date to display the list of contributions. The default value is `1 year from today.`.
///   - toDate: The end date to display the list of contributions. The default value is `today`.
///   - spacing: The spacing in the row view showing the list of contributions. The default value is `4`.
///   - levelSpacing: A number that separates units between contribution levels. The default value is `3`.
///   - axisMode: The axis mode of the component. The default value is `.horizontal`.
///   - font: The font used for text. The default value is `.system(size: 9)`.

AxisContribution(constant: .init(), source: [Date(), Date()])
// or
AxisContribution(constant: .init(), source: [Date(), Date()]) { indexSet, data in
    Image(systemName: "heart.fill")
      .foregroundColor(Color(hex: colorScheme == .dark ? 0x171B21 : 0xF0F0F0))
      .font(.system(size: rowSize))
      .frame(width: rowSize, height: rowSize)
} foreground: { indexSet, data in
    Image(systemName: "heart.fill")
      .foregroundColor(Color(hex: 0x6CD164))
      .font(.system(size: rowSize))
      .frame(width: rowSize, height: rowSize)

Swift Package Manager

The Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the swift compiler. Once you have your Swift package set up, adding AxisContribution as a dependency is as easy as adding it to the dependencies value of your Package.swift.

dependencies: [
    .package(url: "", .branch("main"))


instagram : @dev.fabula email : [email protected]


AxisContribution is available under the MIT license. See the LICENSE file for more info.


View Github