Skip to content

mirerakepha/compose-codeblock

Repository files navigation

CodeBlock for Jetpack Compose

A zero-config syntax highlighting code block component for Jetpack Compose. Auto-detects the programming language and adapts to your app's light/dark theme.


Sample Previews

Light Theme Dark Theme
Screenshot_20260323-164211 Screenshot_20260323-164242

Dracula One Dark Pro Tokyo Night
Screenshot_20260323-133434 Screenshot_20260323-132853 Screenshot_20260323-132943
GitHub Light Nord Gruvbox Dark
Screenshot_20260323-133049 Screenshot_20260323-133128 Screenshot_20260323-133246

Setup

1. Add JitPack to your settings.gradle.kts

dependencyResolutionManagement {
    repositories {
        google()
        mavenCentral()
        // add jitpack here 👇🏽
        maven { url = uri("https://jitpack.io") }
    }
}

Or if you're using settings.gradle (Groovy):

dependencyResolutionManagement {
    repositories {
        google()
        mavenCentral()
        // add jitpack here 👇🏽
        maven { url 'https://jitpack.io' }
    }
}

2. Add the dependency

dependencies {
    implementation("com.github.mirerakepha:compose-codeblock:{LAST-RELEASE}")
}

Usage

Imports

import com.falconwebs.codeblock.core.CodeBlock
import com.falconwebs.codeblock.theme.CodeBlockTheme

Zero config — auto adapts to your app's dark/light theme

CodeBlock(code = myCode)

With an explicit theme

CodeBlock(
    code = myCode,
    theme = CodeBlockTheme.dracula()
)

Tied to your own dark/light toggle

CodeBlock(
    code = myCode,
    theme = if (isDarkTheme) CodeBlockTheme.oneDarkPro() else CodeBlockTheme.githubLight()
)

All options

CodeBlock(
    code            = myCode,
    theme           = CodeBlockTheme.tokyoNight(),
    showCopyButton  = true,                        
    showLanguageLabel = true,                     
    modifier        = Modifier.fillMaxWidth()
)

Available Themes

Dark

Function Based on
CodeBlockTheme.darkAdaptive() Catppuccin Mocha
CodeBlockTheme.dracula() Dracula
CodeBlockTheme.oneDarkPro() One Dark Pro
CodeBlockTheme.tokyoNight() Tokyo Night
CodeBlockTheme.nord() Nord
CodeBlockTheme.monokai() Monokai
CodeBlockTheme.gruvboxDark() Gruvbox Dark
CodeBlockTheme.solarizedDark() Solarized Dark
CodeBlockTheme.githubDark() GitHub Dark
CodeBlockTheme.highContrast() High Contrast Dark

Light

Function Based on
CodeBlockTheme.lightAdaptive() GitHub Light
CodeBlockTheme.githubLight() GitHub Light
CodeBlockTheme.tokyoNightLight() Tokyo Night Light
CodeBlockTheme.nordLight() Nord Light
CodeBlockTheme.gruvboxLight() Gruvbox Light
CodeBlockTheme.solarizedLight() Solarized Light
CodeBlockTheme.highContrastLight() High Contrast Light

Adaptive (reads system theme automatically)

// Reads isSystemInDarkTheme() automatically
CodeBlockTheme.adaptive()

// Reads your MaterialTheme colorScheme
CodeBlockTheme.fromMaterialTheme(MaterialTheme.colorScheme)

Supported Languages

Auto-detected from code content — no configuration needed.

Kotlin · Java · Python · JavaScript · TypeScript · C++ · Rust · Go · SQL · XML/HTML · JSON · Shell


Requirements

  • minSdk 24
  • Jetpack Compose
  • Material3

License

MIT License
Copyright (c) 2026 mirerakepha

About

codeblock for jetpack compose

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages