Doodle is a pure Kotlin UI framework for the Web, that lets you create rich applications without relying on Javascript, HTML or CSS. Check out the documentation and tutorials to learn more.
Features
- New helpers for creating paths for circles, rings, and ring-sections
val ring : Path = ring (center, innerRadius, outerRadius) val section: Path = ringSection(center, innerRadius, outerRadius, startAngle, endAngle)
- New PathProgressIndicatorBehavior that lets you create progress indicators by outlining a path
object: ProgressIndicator() { init { size = Size(200, 100) progress = 0.25 behavior = PathProgressIndicatorBehavior( pathMetrics, // injected path = path("M10 80 C 40 10, 65 10, 95 80 S 150 150, 180 80")!!, foreground = LinearGradientPaint(Black, Blue, Origin, Point(width, 0.0)), foregroundThickness = 5.0, background = Lightgray.paint, backgroundThickness = 5.0 ) } }
- New BasicCircularProgressBehavior to replace the old with more flexibility/configurability
- Updated BasicCircularSliderBehavior so it can have Fills instead of just Colors and exposed thickness
- BasicProgressBarBehavior now takes an optional background Fill, configurable outline thickness, foreground and background corner radii
- Stroke can now be filled with any supported Paint, instead of just
Color
, and now support dash offset
canvas.rect(rectangle = bounds.atOrigin.inset(10.0), radius = 10.0, stroke = Stroke(fill = LinearGradientPaint(Red, Green, Origin, Point(width, height)), thickness = 20.0))
APIs
- Deprecated CircularProgressBehavior (replaced by BasicCircularProgressBehavior)
- Stroke dashes changed to DoubleArray
- PathMetrics can now measure the bounds of a Path (in addition to size)
- Fill renamed to Paint and old usages deprecated
Bug Fixes / Improvements
- ProgressIndicator now delegates render/hit-detection to its behavior
Docs
- Added examples of Circular and Path ProgressIndicator behaviors to docs
See the full release notes for more details.