Releases: leboncoin/spark-android
v2.7.0
2.7.0 (2026-06-12)
Features
Bug Fixes
- ci: improve size parsing logic (#2022) (09b4a0d)
- remove duplicated
<hr>in release-please configuration (#2014) (e280da4)
Miscellaneous
- deps: bump com.composables:composeunstyled-disclosure from 2.5.0 to 2.6.0 (#2024) (c4847fb)
- deps: bump com.github.skydoves:colorpicker-compose from 1.1.4 to 1.2.0 (#2015) (92d2906)
- deps: bump compose-multiplatform from 1.11.0 to 1.11.1 (#2010) (fc723bc)
- deps: bump gradle/actions from 6.1.0 to 6.1.1 in /.github/actions/setup-gradle (#2019) (abc77b0)
Refactoring
v2.6.0
2.6.0 (2026-06-03)
Features
- rebranding: add segmented control component (#1821) (8e235ec)
- tokens: add new ai color token group (#2004) (6f5e6b9)
Bug Fixes
- image: attempt to add composition stacktrace when no size is defined (#2007) (75a8415)
- release: adjust the generated PR description message (#2008) (383ebf0)
v2.5.0
v2.4.2
v2.4.1
v2.4.0
v2.3.0
2.3.0 (2026-05-28)
Features
- ci: add zizmor GitHub Actions security analysis (#1899) (38b63dc)
- spotless: proper configuration (#1986) (23abc5d)
- zizmor: allow ref-pin on github-provided actions (#1982) (4ccdee2)
Bug Fixes
- change the sha to try to improve the changelog (6f1a9a8)
- ci: run zizmor workflow only on the upstream repo (515e142)
- ci: use release-please block markers in gradle.properties (eec33cc)
Miscellaneous
- bump version to 2.3.0-alpha03 (7eb6bc3)
- deps: bump com.composables:composeunstyled-disclosure from 2.1.0 to 2.3.0 (#1965) (471b13f)
- deps: bump com.composables:composeunstyled-disclosure from 2.3.0 to 2.4.0 (#1974) (f5ca3df)
- deps: bump com.diffplug.spotless from 8.5.1 to 8.6.0 (#1987) (1037149)
- deps: bump googleapis/release-please-action from 4 to 5 in /.github/workflows (#1971) (a95849e)
- deps: bump zizmorcore/zizmor-action from 0.5.2 to 0.5.6 in /.github/workflows (#1983) (6a9dbe6)
- lint: extract lint configuration (#1985) (6306f57)
- merge hotfix 2.2.2 back to main (a8871ed)
2.2.2
Icons
- ✨ New
LeboncoinIcons:ThumbDownFill,ThumbDownOutline,BannedFill,BannedOutline,PaintPaletteCriteria,PeopleCriteria,PhoneCallSuccessFill,PhoneCallSuccessOutline,FloorPlan - 🐛 Fix typo in
LockOutlineicon file name (lock_outilne→lock_outline) - 🐛 Fix
SparkIcons.MailOutlinereplaceWithannotation pointing toMailBoxOpenOutlineinstead ofLetterOutline
Full Changelog: 2.2.1...2.2.2
2.2.1
Icons
- 🐛 Fix
spark-iconsJVM target not explicitly set for KMP Android compilation, causing the Compose Preview renderer to reject the class files with "Unsupported class file major version 69"
Full Changelog: 2.2.0...2.2.1
2.2.0
Spark
- 🐛 Fix
ButtonFilleddisabled content colour using the wrong token (dim3instead ofdisabled), causing the disabled state to appear too faint on non-white backgrounds - 🎨 Refactor
contrastLevel()to remove a redundantisContrastLevelAvailableguard that was already ensured by the outer branch - 🎨 Refactor
ButtonFilledandButtonTintedto resolveintent.colors()once per composition instead of multiple times, reducing redundant allocations per recomposition - 🗑️
Basicintent has been deprecated across all components (ButtonIntent,BadgeIntent,ChipIntent,TagIntent,ToggleIntent, etc.) and replaced withSupport, which was already identical in value. Usages ofBasicwill produce a compile error with an automatic migration hint toSupport.
🔧 Kelp IDE plugin support
Added KelpInlayPreview inner classes to SparkColors, SparkShapes, SparkTypography, and ElevationTokens so the Kelp Android Studio plugin can render color swatches, corner-radius, font-size, and elevation inlay hints directly in the editor. Also added a .idea/kelp/config.json configuration file to enable Kelp out of the box for contributors.
💄 Rebranded shapes extended to more components
Chips, icon buttons, and text fields now participate in the rebranding shape changes introduced in 2.1.0. The feature flag SparkFeatureFlag.useNewButtonAndTagsShapes has been renamed to useRebrandedShapes to reflect the broader scope.
♻️ Component token objects for shape resolution
Shape (and spacing) resolution for Button, Chip, Tag, TextField, and IconButton components is now centralised in dedicated token objects — ButtonTokens, ChipTokens, TagTokens, TextFieldTokens, and IconButtonTokens — rather than scattered inline if (LocalSparkFeatureFlag.current.useRebrandedShapes) checks inside each composable. No behaviour change; the objects are public so consumers can reference the resolved values directly.
TextFieldTokens exposes a shape property. IconButtonTokens exposes resolveShape(fallback) and resolveFullShape(fallback) functions rather than plain properties because icon button composables accept a caller-supplied shape as the legacy fallback, which the token object cannot know without the argument.
Note
This is the initial foundation of a broader component token layer. The pattern is not yet generalised to all components — further components will be migrated in follow-up changes.
Icons
- ♻️
spark-iconsis now a Kotlin Multiplatform module — icons are available to JVM/desktop targets in addition to Android - ✨ New
LeboncoinIconsalternativeDeprecateWithfor their deprecatedSparkIconscounterparts
Full Changelog: 2.1.1...2.2.0