MacOS theme for JetBrains Compose UI framework

Related tags

compose-macos-theme
Overview

MacOS theme for Compose

Multiplatform MacOS theme written in Compose UI.

Create native looking UIs for Mac using Compose UI. Share your UI code to run on Android, Windows or Linux. You could combine this with themes to match other platforms and write your UI once, but themed to appear native.

Desktop Example

Android Example

Gradle

Multiplatform

Add the common dependency which will work for both android and desktop.

sourceSets {
    named("commonMain") {
        dependencies {
            implementation("io.github.chozzle:compose-macos-theme:0.4.1")
        }
    }
}

Optionally, supply specific dependencies:

Desktop JVM

Currently it appears that for desktop projects, you must use the kotlin multiplatform plugin

plugins {
    kotlin("multiplatform")
    id("org.jetbrains.compose")
}

kotlin {
    sourceSets {
        named("jvmMain") {
            dependencies {
                implementation(compose.desktop.currentOs)
                implementation("io.github.chozzle:compose-macos-theme-desktop:0.4.1")
            }
        }
    }
}

Android

Do not specify android specifically (it won't work). Gradle will automatically import the android sourceset only.

dependencies {
    implementation("io.github.chozzle:compose-macos-theme:0.4.1 ")
}

Ensure you have the required compiler options for compose generally or alternatively you can use Jetbrains' plugin:

plugins {
    id("org.jetbrains.compose")
}

You'll need Maven Central as a repository

repositories {
    ...
    mavenCentral()
}

Planned work - please assign yourself!

  • Search field
  • Text field
  • Checkbox
  • Buttons
  • Dropdown menu - desktop only
  • Radio button
  • Switch
  • Dark theme
  • Theme for Windows?

Note that SF Symbols used in this library are only licenced to be used on Apple devices.

Issues
  • Remove Mac prefix

    Remove Mac prefix

    Compose is build thinking in you can implement your own theme, if you check Material, it doesn't add Material prefix to all Material component.

    opened by JavierSegoviaCordoba 4
  • Icons are not as bold as they should be

    Icons are not as bold as they should be

    This is depending on https://github.com/JetBrains/compose-jb/issues/171 to be fixed so that multiple font weights can be used. The icon are provided via San Fransisco font

    opened by Chozzle 1
Releases(v0.4.1)
Owner
Carson Holzheimer
Android and iOS developer currently @RedeyeApps. Latest muses: Kotlin Multiplatform, Jetpack Compose, NoSQL design.
Carson Holzheimer
MacOS theme for JetBrains Compose UI framework

MacOS theme for Compose Multiplatform MacOS theme written in Compose UI. Create native looking UIs for Mac using Compose UI. Share your UI code to run

Carson Holzheimer 100 Jul 30, 2021
Multiplatform UI DSL with screen management in common code for mobile (android & ios) Kotlin Multiplatform development

Mobile Kotlin widgets This is a Kotlin MultiPlatform library that provides declarative UI and application screens management in common code. You can i

IceRock Development 251 Jul 29, 2021
A file/directory-picker for android. Implemented as a library project.

Note: avoid using as SD-card file picker on Kitkat+ In Kitkat or above, use Android's built-in file-picker instead. Google has restricted the ability

Jonas Kalderstam 710 Jul 3, 2021
Compose RevealSwipe

RevealSwipe Current Compose Version: 1.0.0-beta09 Compose RevealSwipe Swipable in both directions Add to your project Add actual RevealSwipe library:

Alexander Karkossa 39 Jun 21, 2021
Kotlin/Native interop to libui: a portable GUI library

kotlin-libui Kotlin/Native bindings to the libui C library. libui is a C lightweight multi-platform UI library using native widgets on Linux (Gtk3), m

Mike Sinkovsky 533 Aug 3, 2021
Modern About Box for an Android App

About Box A modern About Box for an Android App built on the daniel-stoneuk/material-about-library. Easily display the common items of an About Box in

Quality Mobile Puzzle Apps 92 Feb 17, 2021
A TagView library for Android. Customize your own & Drag effect.

AndroidTagView An Android TagView library. You can customize awesome TagView by using this library. Screenshots Usage Step 1 Add below dependency in y

lujun 1.6k Jul 23, 2021
Display code with syntax highlighting :sparkles: in native way.

CodeView (Android) CodeView helps to show code content with syntax highlighting in native way. Description CodeView contains 3 core parts to implement

Kirill Biakov 778 Jul 25, 2021
GreenDroid is a development library for the Android platform. It makes UI developments easier and consistent through your applications.

#GreenDroid Foreword : This project, initially initiated by me, Cyril Mottier, is not maintained anymore and can be considered as deprecated. As a con

Cyril Mottier 2.6k Jul 28, 2021
Android FlatUI Kit

Android FlatUI FlatUI is a library that lets you use native android widgets with a better and customized look. You can define the widgets in XML or cr

Emir Lüleci 1.7k Jul 23, 2021
Muirwik - a Material UI React wrapper written in Kotlin

Muirwik Welcome to Muirwik. Muirwik gets it name from being a Material UI React wrapper written in Kotlin. For more information, see the above links (

null 125 Aug 2, 2021
A backport of the SwitchPreference component that was introduced on Android 4 (ICS / level 14). This port works on Android 2.1+ (Eclair MR1 / level 7).

Android Switch Preference Backport A backport of the SwitchPreference component that was introduced on Android 4 (ICS / level 14). This port works on

Benoit Lubek 502 Apr 15, 2021
A library that provides an implementation of the banner widget from the Material design.

MaterialBanner A banner displays a prominent message and related optional actions. MaterialBanner is a library that provides an implementation of the

Sergey Ivanov 244 Jun 30, 2021
Hi,Developer,Welcome to use SuperTextView !

GitAds Hello, Developer!Welcome to use SuperTextView English | 中文 Hi,Developer,Welcome to use SuperTextView ! Thank you and tens of thousands of Andro

CoorChice 3.1k Jul 28, 2021