[go: nahoru, domu]

Change module and package of Dp, IntPx, etc to unit.

Moved units into ui-unit. Moved some basic utilities
to ui-util. Moved rect, etc into ui-geometry.

This is a start to making proper packages for ui-core classes.

Test: ran tests and connectedCheck
Change-Id: I45fe4a154c0f91cb1526cd73aad6e6e8bed3616a
diff --git a/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/ComposeBenchmark.kt b/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/ComposeBenchmark.kt
index e50ad8e..e4dd484 100644
--- a/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/ComposeBenchmark.kt
+++ b/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/ComposeBenchmark.kt
@@ -23,7 +23,7 @@
 import androidx.test.annotation.UiThreadTest
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.LargeTest
-import androidx.ui.core.dp
+import androidx.ui.unit.dp
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.graphics.Color
 import org.junit.FixMethodOrder
diff --git a/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/deeptree/DeepTree.kt b/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/deeptree/DeepTree.kt
index 34426ed..d95f398 100644
--- a/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/deeptree/DeepTree.kt
+++ b/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/deeptree/DeepTree.kt
@@ -17,7 +17,7 @@
 package androidx.compose.benchmark.deeptree
 
 import androidx.compose.Composable
-import androidx.ui.core.dp
+import androidx.ui.unit.dp
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.graphics.Color
 import androidx.ui.layout.Column
diff --git a/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/realworld4/RealWorld4_Widgets.kt b/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/realworld4/RealWorld4_Widgets.kt
index f6229a6..3bcc320 100644
--- a/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/realworld4/RealWorld4_Widgets.kt
+++ b/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/realworld4/RealWorld4_Widgets.kt
@@ -26,17 +26,17 @@
 import androidx.ui.core.Modifier
 import androidx.ui.core.WithConstraints
 import androidx.ui.foundation.ColoredRect
-import androidx.ui.core.dp
-import androidx.ui.core.toRect
-import androidx.ui.graphics.SolidColor
-import androidx.ui.graphics.Paint
 import androidx.ui.graphics.Color
+import androidx.ui.graphics.Paint
+import androidx.ui.graphics.SolidColor
 import androidx.ui.layout.Column
 import androidx.ui.layout.Container
-import androidx.ui.layout.Row
 import androidx.ui.layout.Padding
-import kotlin.reflect.full.memberProperties
+import androidx.ui.layout.Row
+import androidx.ui.unit.dp
+import androidx.ui.unit.toRect
 import kotlin.reflect.KCallable
+import kotlin.reflect.full.memberProperties
 
 @Composable
 fun RealWorld4_FancyWidget_000(model: RealWorld4_DataModel_00) {
diff --git a/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/siblings/SiblingManagement.kt b/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/siblings/SiblingManagement.kt
index 56983bf..aa3083a 100644
--- a/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/siblings/SiblingManagement.kt
+++ b/compose/compose-runtime/compose-runtime-benchmark/src/androidTest/java/androidx/compose/benchmark/siblings/SiblingManagement.kt
@@ -20,7 +20,7 @@
 import androidx.compose.Pivotal
 import androidx.compose.key
 import androidx.ui.core.Text
-import androidx.ui.core.dp
+import androidx.ui.unit.dp
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.graphics.Color
 import androidx.ui.layout.Column
diff --git a/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/benchmark/test/SpacingBenchmark.kt b/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/benchmark/test/SpacingBenchmark.kt
index e6e5117..9f360a6 100644
--- a/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/benchmark/test/SpacingBenchmark.kt
+++ b/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/benchmark/test/SpacingBenchmark.kt
@@ -31,8 +31,8 @@
 import androidx.ui.benchmark.toggleStateBenchmarkLayout
 import androidx.ui.benchmark.toggleStateBenchmarkMeasure
 import androidx.ui.benchmark.toggleStateBenchmarkRecompose
-import androidx.ui.core.Dp
-import androidx.ui.core.dp
+import androidx.ui.unit.Dp
+import androidx.ui.unit.dp
 import androidx.ui.layout.Container
 import androidx.ui.layout.LayoutPadding
 import androidx.ui.layout.Padding
diff --git a/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/benchmark/test/TrailingLambdaBenchmark.kt b/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/benchmark/test/TrailingLambdaBenchmark.kt
index d3e92d5..a8bea5c 100644
--- a/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/benchmark/test/TrailingLambdaBenchmark.kt
+++ b/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/benchmark/test/TrailingLambdaBenchmark.kt
@@ -23,7 +23,7 @@
 import androidx.ui.benchmark.ComposeBenchmarkRule
 import androidx.ui.benchmark.benchmarkFirstCompose
 import androidx.ui.benchmark.toggleStateBenchmarkRecompose
-import androidx.ui.core.dp
+import androidx.ui.unit.dp
 import androidx.ui.layout.Column
 import androidx.ui.layout.Container
 import androidx.ui.test.ComposeTestCase
diff --git a/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/core/OnPositionedBenchmark.kt b/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/core/OnPositionedBenchmark.kt
index d2f1692..39b16f87 100644
--- a/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/core/OnPositionedBenchmark.kt
+++ b/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/core/OnPositionedBenchmark.kt
@@ -26,6 +26,8 @@
 import androidx.ui.layout.Container
 import androidx.ui.test.ComposeTestCase
 import androidx.ui.integration.test.ToggleableTestCase
+import androidx.ui.unit.Dp
+import androidx.ui.unit.dp
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/core/WithConstraintsBenchmark.kt b/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/core/WithConstraintsBenchmark.kt
index 4d490c1..ce493f0 100644
--- a/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/core/WithConstraintsBenchmark.kt
+++ b/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/core/WithConstraintsBenchmark.kt
@@ -30,6 +30,10 @@
 import androidx.ui.layout.Spacer
 import androidx.ui.test.ComposeTestCase
 import androidx.ui.integration.test.ToggleableTestCase
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/text/ParagraphBenchmark.kt b/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/text/ParagraphBenchmark.kt
index a7ea698..36c2865 100644
--- a/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/text/ParagraphBenchmark.kt
+++ b/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/text/ParagraphBenchmark.kt
@@ -19,8 +19,8 @@
 import androidx.benchmark.junit4.BenchmarkRule
 import androidx.benchmark.junit4.measureRepeated
 import androidx.test.filters.LargeTest
-import androidx.ui.core.Density
-import androidx.ui.core.sp
+import androidx.ui.unit.Density
+import androidx.ui.unit.sp
 import androidx.ui.graphics.Canvas
 import androidx.ui.graphics.Image
 import androidx.ui.integration.test.Alphabet
diff --git a/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/text/ParagraphMethodBenchmark.kt b/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/text/ParagraphMethodBenchmark.kt
index dc61ffe..0c211b1 100644
--- a/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/text/ParagraphMethodBenchmark.kt
+++ b/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/text/ParagraphMethodBenchmark.kt
@@ -19,10 +19,10 @@
 import androidx.benchmark.junit4.BenchmarkRule
 import androidx.benchmark.junit4.measureRepeated
 import androidx.test.filters.LargeTest
-import androidx.ui.core.Density
-import androidx.ui.core.PxPosition
-import androidx.ui.core.px
-import androidx.ui.core.sp
+import androidx.ui.unit.Density
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.px
+import androidx.ui.unit.sp
 import androidx.ui.integration.test.RandomTextGenerator
 import androidx.ui.integration.test.TextBenchmarkTestRule
 import androidx.ui.integration.test.TextType
diff --git a/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/text/TextDelegateBenchmark.kt b/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/text/TextDelegateBenchmark.kt
index b0ebd6c..a3ae87e 100644
--- a/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/text/TextDelegateBenchmark.kt
+++ b/ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/text/TextDelegateBenchmark.kt
@@ -20,11 +20,11 @@
 import androidx.benchmark.junit4.measureRepeated
 import androidx.test.filters.LargeTest
 import androidx.ui.core.Constraints
-import androidx.ui.core.Density
-import androidx.ui.core.IntPx
+import androidx.ui.unit.Density
+import androidx.ui.unit.IntPx
 import androidx.ui.core.LayoutDirection
-import androidx.ui.core.ipx
-import androidx.ui.core.sp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.sp
 import androidx.ui.graphics.Canvas
 import androidx.ui.graphics.Image
 import androidx.ui.integration.test.RandomTextGenerator
diff --git a/ui/integration-tests/test/src/androidTest/java/androidx/ui/integration/test/TableRecompositionTest.kt b/ui/integration-tests/test/src/androidTest/java/androidx/ui/integration/test/TableRecompositionTest.kt
index 748c77d..29ecd25 100644
--- a/ui/integration-tests/test/src/androidTest/java/androidx/ui/integration/test/TableRecompositionTest.kt
+++ b/ui/integration-tests/test/src/androidTest/java/androidx/ui/integration/test/TableRecompositionTest.kt
@@ -17,7 +17,7 @@
 package androidx.ui.integration.test
 
 import androidx.test.filters.MediumTest
-import androidx.ui.core.dp
+import androidx.ui.unit.dp
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.graphics.Color
 import androidx.ui.layout.Padding
diff --git a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/TextBenchmarkHelper.kt b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/TextBenchmarkHelper.kt
index abd203a..7659ca1 100644
--- a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/TextBenchmarkHelper.kt
+++ b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/TextBenchmarkHelper.kt
@@ -16,10 +16,7 @@
 
 package androidx.ui.integration.test
 
-import androidx.ui.core.em
-import androidx.ui.core.px
-import androidx.ui.core.sp
-import androidx.ui.engine.geometry.Offset
+import androidx.ui.geometry.Offset
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Shadow
 import androidx.ui.text.AnnotatedString
@@ -31,6 +28,9 @@
 import androidx.ui.text.style.BaselineShift
 import androidx.ui.text.style.TextDecoration
 import androidx.ui.text.style.TextGeometricTransform
+import androidx.ui.unit.em
+import androidx.ui.unit.px
+import androidx.ui.unit.sp
 import kotlin.math.ceil
 import kotlin.random.Random
 
diff --git a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/BaseSimpleRadioButtonTestCase.kt b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/BaseSimpleRadioButtonTestCase.kt
index a8993dc..a6e45b2 100644
--- a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/BaseSimpleRadioButtonTestCase.kt
+++ b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/BaseSimpleRadioButtonTestCase.kt
@@ -19,8 +19,8 @@
 import androidx.compose.Composable
 import androidx.compose.MutableState
 import androidx.compose.state
-import androidx.ui.core.Dp
-import androidx.ui.core.dp
+import androidx.ui.unit.Dp
+import androidx.ui.unit.dp
 import androidx.ui.test.ComposeTestCase
 import androidx.ui.integration.test.ToggleableTestCase
 
diff --git a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/SimpleRadioButton1TestCase.kt b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/SimpleRadioButton1TestCase.kt
index ecbf5e2..536d6b4 100644
--- a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/SimpleRadioButton1TestCase.kt
+++ b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/SimpleRadioButton1TestCase.kt
@@ -17,7 +17,7 @@
 package androidx.ui.integration.test.core
 
 import androidx.compose.Composable
-import androidx.ui.core.dp
+import androidx.ui.unit.dp
 import androidx.ui.foundation.shape.DrawShape
 import androidx.ui.foundation.shape.border.Border
 import androidx.ui.foundation.shape.border.DrawBorder
diff --git a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/SimpleRadioButton2TestCase.kt b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/SimpleRadioButton2TestCase.kt
index 8c7e5de..eddcdf34 100644
--- a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/SimpleRadioButton2TestCase.kt
+++ b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/SimpleRadioButton2TestCase.kt
@@ -17,23 +17,23 @@
 package androidx.ui.integration.test.core
 
 import androidx.compose.Composable
-import androidx.ui.core.Density
-import androidx.ui.core.Dp
-import androidx.ui.core.Px
-import androidx.ui.core.PxSize
-import androidx.ui.core.dp
-import androidx.ui.core.withDensity
-import androidx.ui.engine.geometry.Offset
-import androidx.ui.engine.geometry.Outline
-import androidx.ui.engine.geometry.Shape
-import androidx.ui.engine.geometry.shift
 import androidx.ui.foundation.shape.DrawShape
 import androidx.ui.foundation.shape.border.Border
 import androidx.ui.foundation.shape.border.DrawBorder
 import androidx.ui.foundation.shape.corner.CircleShape
+import androidx.ui.geometry.Offset
+import androidx.ui.geometry.shift
 import androidx.ui.graphics.Color
+import androidx.ui.graphics.Outline
 import androidx.ui.graphics.Path
+import androidx.ui.graphics.Shape
 import androidx.ui.layout.Container
+import androidx.ui.unit.Density
+import androidx.ui.unit.Dp
+import androidx.ui.unit.Px
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.withDensity
 
 class SimpleRadioButton2TestCase : BaseSimpleRadioButtonTestCase() {
     @Composable
diff --git a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/SimpleRadioButton3TestCase.kt b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/SimpleRadioButton3TestCase.kt
index d463585..5f643c8 100644
--- a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/SimpleRadioButton3TestCase.kt
+++ b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/SimpleRadioButton3TestCase.kt
@@ -19,14 +19,14 @@
 import androidx.compose.Composable
 import androidx.compose.remember
 import androidx.ui.core.Draw
-import androidx.ui.core.PxSize
-import androidx.ui.core.dp
-import androidx.ui.core.minDimension
-import androidx.ui.engine.geometry.Offset
+import androidx.ui.geometry.Offset
 import androidx.ui.graphics.Canvas
 import androidx.ui.graphics.Paint
 import androidx.ui.graphics.PaintingStyle
 import androidx.ui.layout.Container
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.minDimension
 
 class SimpleRadioButton3TestCase : BaseSimpleRadioButtonTestCase() {
 
diff --git a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/text/TextBasicTestCase.kt b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/text/TextBasicTestCase.kt
index 83a1dc9..a4d7173 100644
--- a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/text/TextBasicTestCase.kt
+++ b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/text/TextBasicTestCase.kt
@@ -18,8 +18,8 @@
 
 import androidx.compose.Composable
 import androidx.ui.core.Text
-import androidx.ui.core.dp
-import androidx.ui.core.sp
+import androidx.ui.unit.dp
+import androidx.ui.unit.sp
 import androidx.ui.graphics.Color
 import androidx.ui.layout.LayoutWidth
 import androidx.ui.layout.LayoutWrapped
diff --git a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/text/TextMultiStyleTestCase.kt b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/text/TextMultiStyleTestCase.kt
index 68a5577..86fa21c 100644
--- a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/text/TextMultiStyleTestCase.kt
+++ b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/text/TextMultiStyleTestCase.kt
@@ -18,8 +18,8 @@
 
 import androidx.compose.Composable
 import androidx.ui.core.Text
-import androidx.ui.core.dp
-import androidx.ui.core.sp
+import androidx.ui.unit.dp
+import androidx.ui.unit.sp
 import androidx.ui.graphics.Color
 import androidx.ui.layout.LayoutWidth
 import androidx.ui.layout.LayoutWrapped
diff --git a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/text/TextWithSpanTestCase.kt b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/text/TextWithSpanTestCase.kt
index 2eec14a..bfd4629 100644
--- a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/text/TextWithSpanTestCase.kt
+++ b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/core/text/TextWithSpanTestCase.kt
@@ -19,8 +19,8 @@
 import androidx.compose.Composable
 import androidx.ui.core.Span
 import androidx.ui.core.Text
-import androidx.ui.core.dp
-import androidx.ui.core.sp
+import androidx.ui.unit.dp
+import androidx.ui.unit.sp
 import androidx.ui.graphics.Color
 import androidx.ui.layout.LayoutWidth
 import androidx.ui.layout.LayoutWrapped
diff --git a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/foundation/NestedScrollerTestCase.kt b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/foundation/NestedScrollerTestCase.kt
index 192447d..a08b8d3 100644
--- a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/foundation/NestedScrollerTestCase.kt
+++ b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/foundation/NestedScrollerTestCase.kt
@@ -20,7 +20,7 @@
 import androidx.compose.remember
 import androidx.ui.core.Text
 import androidx.ui.core.WithDensity
-import androidx.ui.core.px
+import androidx.ui.unit.px
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.graphics.Color
 import androidx.ui.layout.Column
diff --git a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/foundation/RectsInColumnSharedModelTestCase.kt b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/foundation/RectsInColumnSharedModelTestCase.kt
index c4e0a11..abb5bd0 100644
--- a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/foundation/RectsInColumnSharedModelTestCase.kt
+++ b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/foundation/RectsInColumnSharedModelTestCase.kt
@@ -18,7 +18,7 @@
 
 import androidx.compose.Composable
 import androidx.compose.Model
-import androidx.ui.core.dp
+import androidx.ui.unit.dp
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.graphics.Color
 import androidx.ui.layout.Column
diff --git a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/foundation/RectsInColumnTestCase.kt b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/foundation/RectsInColumnTestCase.kt
index e5da4a6..1fdf58d 100644
--- a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/foundation/RectsInColumnTestCase.kt
+++ b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/foundation/RectsInColumnTestCase.kt
@@ -20,7 +20,7 @@
 import androidx.compose.MutableState
 import androidx.compose.state
 import androidx.ui.foundation.ColoredRect
-import androidx.ui.core.dp
+import androidx.ui.unit.dp
 import androidx.ui.graphics.Color
 import androidx.ui.layout.Column
 import androidx.ui.material.MaterialTheme
diff --git a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/foundation/ScrollerTestCase.kt b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/foundation/ScrollerTestCase.kt
index 3e4f82c..fcabf10 100644
--- a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/foundation/ScrollerTestCase.kt
+++ b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/foundation/ScrollerTestCase.kt
@@ -19,19 +19,19 @@
 import androidx.compose.Composable
 import androidx.compose.remember
 import androidx.ui.core.Draw
-import androidx.ui.core.dp
-import androidx.ui.core.px
-import androidx.ui.core.toRect
-import androidx.ui.graphics.Color
-import androidx.ui.layout.Column
-import androidx.ui.layout.Container
 import androidx.ui.foundation.ScrollerPosition
 import androidx.ui.foundation.VerticalScroller
+import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
 import androidx.ui.graphics.PaintingStyle
-import androidx.ui.test.ComposeTestCase
 import androidx.ui.integration.test.ToggleableTestCase
+import androidx.ui.layout.Column
+import androidx.ui.layout.Container
 import androidx.ui.layout.LayoutHeight
+import androidx.ui.test.ComposeTestCase
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
+import androidx.ui.unit.toRect
 
 /**
  * Test case that puts a large number of boxes in a column in a vertical scroller to force scrolling.
diff --git a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/framework/VectorAssetTestCase.kt b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/framework/VectorAssetTestCase.kt
index dda850b..6578aea 100644
--- a/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/framework/VectorAssetTestCase.kt
+++ b/ui/integration-tests/test/src/main/java/androidx/ui/integration/test/framework/VectorAssetTestCase.kt
@@ -18,7 +18,7 @@
 
 import androidx.compose.Composable
 import androidx.ui.core.TestTag
-import androidx.ui.core.dp
+import androidx.ui.unit.dp
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.SolidColor
 import androidx.ui.graphics.StrokeCap
diff --git a/ui/settings.gradle b/ui/settings.gradle
index 1bce4a6..22349d1 100644
--- a/ui/settings.gradle
+++ b/ui/settings.gradle
@@ -60,6 +60,7 @@
 includeProject(":ui:ui-framework:integration-tests:ui-framework-demos", "ui-framework/integration-tests/framework-demos")
 includeProject(":ui:ui-framework:integration-tests:samples", "ui-framework/integration-tests/samples")
 includeProject(":ui:ui-internal-lint-checks", "ui-internal-lint-checks")
+includeProject(":ui:ui-geometry", "ui-geometry")
 includeProject(":ui:ui-layout", "ui-layout")
 includeProject(":ui:ui-layout:integration-tests:samples", "ui-layout/integration-tests/samples")
 includeProject(":ui:ui-layout:integration-tests:ui-layout-demos", "ui-layout/integration-tests/layout-demos")
@@ -74,6 +75,8 @@
 includeProject(":ui:ui-text:integration-tests:ui-text-demos", "ui-text/integration-tests/text-demos")
 includeProject(":ui:ui-text:integration-tests:ui-text-samples", "ui-text/integration-tests/samples")
 includeProject(":ui:ui-tooling", "ui-tooling")
+includeProject(":ui:ui-unit", "ui-unit")
+includeProject(":ui:ui-util", "ui-util")
 includeProject(":ui:ui-vector", "ui-vector")
 
 /////////////////////////////
diff --git a/ui/ui-animation/api/0.1.0-dev04.txt b/ui/ui-animation/api/0.1.0-dev04.txt
index 2e5f447..8cf684e 100644
--- a/ui/ui-animation/api/0.1.0-dev04.txt
+++ b/ui/ui-animation/api/0.1.0-dev04.txt
@@ -18,30 +18,30 @@
     method public static <T> void Crossfade(T? current, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> children);
   }
 
-  public final class DpPropKey implements androidx.animation.PropKey<androidx.ui.core.Dp,androidx.animation.AnimationVector1D> {
+  public final class DpPropKey implements androidx.animation.PropKey<androidx.ui.unit.Dp,androidx.animation.AnimationVector1D> {
     ctor public DpPropKey();
-    method public androidx.animation.TypeConverter1D<androidx.ui.core.Dp> getTypeConverter();
-    property public androidx.animation.TypeConverter1D<androidx.ui.core.Dp> typeConverter;
+    method public androidx.animation.TypeConverter1D<androidx.ui.unit.Dp> getTypeConverter();
+    property public androidx.animation.TypeConverter1D<androidx.ui.unit.Dp> typeConverter;
   }
 
   public final class PropertyKeysKt {
     method public static kotlin.jvm.functions.Function1<androidx.ui.graphics.colorspace.ColorSpace,androidx.animation.TypeConverter4D<androidx.ui.graphics.Color>> getColorToVectorConverter();
-    method public static androidx.animation.TypeConverter1D<androidx.ui.core.Dp> getDpToVectorConverter();
-    method public static androidx.animation.TypeConverter2D<androidx.ui.core.PxPosition> getPxPositionToVectorConverter();
-    method public static androidx.animation.TypeConverter1D<androidx.ui.core.Px> getPxToVectorConverter();
-    method public static androidx.animation.TypeConverter4D<androidx.ui.engine.geometry.Rect> getRectToVectorConverter();
+    method public static androidx.animation.TypeConverter1D<androidx.ui.unit.Dp> getDpToVectorConverter();
+    method public static androidx.animation.TypeConverter2D<androidx.ui.unit.PxPosition> getPxPositionToVectorConverter();
+    method public static androidx.animation.TypeConverter1D<androidx.ui.unit.Px> getPxToVectorConverter();
+    method public static androidx.animation.TypeConverter4D<androidx.ui.geometry.Rect> getRectToVectorConverter();
   }
 
-  public final class PxPositionPropKey implements androidx.animation.PropKey<androidx.ui.core.PxPosition,androidx.animation.AnimationVector2D> {
+  public final class PxPositionPropKey implements androidx.animation.PropKey<androidx.ui.unit.PxPosition,androidx.animation.AnimationVector2D> {
     ctor public PxPositionPropKey();
-    method public androidx.animation.TypeConverter2D<androidx.ui.core.PxPosition> getTypeConverter();
-    property public androidx.animation.TypeConverter2D<androidx.ui.core.PxPosition> typeConverter;
+    method public androidx.animation.TypeConverter2D<androidx.ui.unit.PxPosition> getTypeConverter();
+    property public androidx.animation.TypeConverter2D<androidx.ui.unit.PxPosition> typeConverter;
   }
 
-  public final class PxPropKey implements androidx.animation.PropKey<androidx.ui.core.Px,androidx.animation.AnimationVector1D> {
+  public final class PxPropKey implements androidx.animation.PropKey<androidx.ui.unit.Px,androidx.animation.AnimationVector1D> {
     ctor public PxPropKey();
-    method public androidx.animation.TypeConverter1D<androidx.ui.core.Px> getTypeConverter();
-    property public androidx.animation.TypeConverter1D<androidx.ui.core.Px> typeConverter;
+    method public androidx.animation.TypeConverter1D<androidx.ui.unit.Px> getTypeConverter();
+    property public androidx.animation.TypeConverter1D<androidx.ui.unit.Px> typeConverter;
   }
 
   public final class TransitionKt {
diff --git a/ui/ui-animation/api/current.txt b/ui/ui-animation/api/current.txt
index 2e5f447..8cf684e 100644
--- a/ui/ui-animation/api/current.txt
+++ b/ui/ui-animation/api/current.txt
@@ -18,30 +18,30 @@
     method public static <T> void Crossfade(T? current, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> children);
   }
 
-  public final class DpPropKey implements androidx.animation.PropKey<androidx.ui.core.Dp,androidx.animation.AnimationVector1D> {
+  public final class DpPropKey implements androidx.animation.PropKey<androidx.ui.unit.Dp,androidx.animation.AnimationVector1D> {
     ctor public DpPropKey();
-    method public androidx.animation.TypeConverter1D<androidx.ui.core.Dp> getTypeConverter();
-    property public androidx.animation.TypeConverter1D<androidx.ui.core.Dp> typeConverter;
+    method public androidx.animation.TypeConverter1D<androidx.ui.unit.Dp> getTypeConverter();
+    property public androidx.animation.TypeConverter1D<androidx.ui.unit.Dp> typeConverter;
   }
 
   public final class PropertyKeysKt {
     method public static kotlin.jvm.functions.Function1<androidx.ui.graphics.colorspace.ColorSpace,androidx.animation.TypeConverter4D<androidx.ui.graphics.Color>> getColorToVectorConverter();
-    method public static androidx.animation.TypeConverter1D<androidx.ui.core.Dp> getDpToVectorConverter();
-    method public static androidx.animation.TypeConverter2D<androidx.ui.core.PxPosition> getPxPositionToVectorConverter();
-    method public static androidx.animation.TypeConverter1D<androidx.ui.core.Px> getPxToVectorConverter();
-    method public static androidx.animation.TypeConverter4D<androidx.ui.engine.geometry.Rect> getRectToVectorConverter();
+    method public static androidx.animation.TypeConverter1D<androidx.ui.unit.Dp> getDpToVectorConverter();
+    method public static androidx.animation.TypeConverter2D<androidx.ui.unit.PxPosition> getPxPositionToVectorConverter();
+    method public static androidx.animation.TypeConverter1D<androidx.ui.unit.Px> getPxToVectorConverter();
+    method public static androidx.animation.TypeConverter4D<androidx.ui.geometry.Rect> getRectToVectorConverter();
   }
 
-  public final class PxPositionPropKey implements androidx.animation.PropKey<androidx.ui.core.PxPosition,androidx.animation.AnimationVector2D> {
+  public final class PxPositionPropKey implements androidx.animation.PropKey<androidx.ui.unit.PxPosition,androidx.animation.AnimationVector2D> {
     ctor public PxPositionPropKey();
-    method public androidx.animation.TypeConverter2D<androidx.ui.core.PxPosition> getTypeConverter();
-    property public androidx.animation.TypeConverter2D<androidx.ui.core.PxPosition> typeConverter;
+    method public androidx.animation.TypeConverter2D<androidx.ui.unit.PxPosition> getTypeConverter();
+    property public androidx.animation.TypeConverter2D<androidx.ui.unit.PxPosition> typeConverter;
   }
 
-  public final class PxPropKey implements androidx.animation.PropKey<androidx.ui.core.Px,androidx.animation.AnimationVector1D> {
+  public final class PxPropKey implements androidx.animation.PropKey<androidx.ui.unit.Px,androidx.animation.AnimationVector1D> {
     ctor public PxPropKey();
-    method public androidx.animation.TypeConverter1D<androidx.ui.core.Px> getTypeConverter();
-    property public androidx.animation.TypeConverter1D<androidx.ui.core.Px> typeConverter;
+    method public androidx.animation.TypeConverter1D<androidx.ui.unit.Px> getTypeConverter();
+    property public androidx.animation.TypeConverter1D<androidx.ui.unit.Px> typeConverter;
   }
 
   public final class TransitionKt {
diff --git a/ui/ui-animation/api/public_plus_experimental_0.1.0-dev04.txt b/ui/ui-animation/api/public_plus_experimental_0.1.0-dev04.txt
index 2e5f447..8cf684e 100644
--- a/ui/ui-animation/api/public_plus_experimental_0.1.0-dev04.txt
+++ b/ui/ui-animation/api/public_plus_experimental_0.1.0-dev04.txt
@@ -18,30 +18,30 @@
     method public static <T> void Crossfade(T? current, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> children);
   }
 
-  public final class DpPropKey implements androidx.animation.PropKey<androidx.ui.core.Dp,androidx.animation.AnimationVector1D> {
+  public final class DpPropKey implements androidx.animation.PropKey<androidx.ui.unit.Dp,androidx.animation.AnimationVector1D> {
     ctor public DpPropKey();
-    method public androidx.animation.TypeConverter1D<androidx.ui.core.Dp> getTypeConverter();
-    property public androidx.animation.TypeConverter1D<androidx.ui.core.Dp> typeConverter;
+    method public androidx.animation.TypeConverter1D<androidx.ui.unit.Dp> getTypeConverter();
+    property public androidx.animation.TypeConverter1D<androidx.ui.unit.Dp> typeConverter;
   }
 
   public final class PropertyKeysKt {
     method public static kotlin.jvm.functions.Function1<androidx.ui.graphics.colorspace.ColorSpace,androidx.animation.TypeConverter4D<androidx.ui.graphics.Color>> getColorToVectorConverter();
-    method public static androidx.animation.TypeConverter1D<androidx.ui.core.Dp> getDpToVectorConverter();
-    method public static androidx.animation.TypeConverter2D<androidx.ui.core.PxPosition> getPxPositionToVectorConverter();
-    method public static androidx.animation.TypeConverter1D<androidx.ui.core.Px> getPxToVectorConverter();
-    method public static androidx.animation.TypeConverter4D<androidx.ui.engine.geometry.Rect> getRectToVectorConverter();
+    method public static androidx.animation.TypeConverter1D<androidx.ui.unit.Dp> getDpToVectorConverter();
+    method public static androidx.animation.TypeConverter2D<androidx.ui.unit.PxPosition> getPxPositionToVectorConverter();
+    method public static androidx.animation.TypeConverter1D<androidx.ui.unit.Px> getPxToVectorConverter();
+    method public static androidx.animation.TypeConverter4D<androidx.ui.geometry.Rect> getRectToVectorConverter();
   }
 
-  public final class PxPositionPropKey implements androidx.animation.PropKey<androidx.ui.core.PxPosition,androidx.animation.AnimationVector2D> {
+  public final class PxPositionPropKey implements androidx.animation.PropKey<androidx.ui.unit.PxPosition,androidx.animation.AnimationVector2D> {
     ctor public PxPositionPropKey();
-    method public androidx.animation.TypeConverter2D<androidx.ui.core.PxPosition> getTypeConverter();
-    property public androidx.animation.TypeConverter2D<androidx.ui.core.PxPosition> typeConverter;
+    method public androidx.animation.TypeConverter2D<androidx.ui.unit.PxPosition> getTypeConverter();
+    property public androidx.animation.TypeConverter2D<androidx.ui.unit.PxPosition> typeConverter;
   }
 
-  public final class PxPropKey implements androidx.animation.PropKey<androidx.ui.core.Px,androidx.animation.AnimationVector1D> {
+  public final class PxPropKey implements androidx.animation.PropKey<androidx.ui.unit.Px,androidx.animation.AnimationVector1D> {
     ctor public PxPropKey();
-    method public androidx.animation.TypeConverter1D<androidx.ui.core.Px> getTypeConverter();
-    property public androidx.animation.TypeConverter1D<androidx.ui.core.Px> typeConverter;
+    method public androidx.animation.TypeConverter1D<androidx.ui.unit.Px> getTypeConverter();
+    property public androidx.animation.TypeConverter1D<androidx.ui.unit.Px> typeConverter;
   }
 
   public final class TransitionKt {
diff --git a/ui/ui-animation/api/public_plus_experimental_current.txt b/ui/ui-animation/api/public_plus_experimental_current.txt
index 2e5f447..8cf684e 100644
--- a/ui/ui-animation/api/public_plus_experimental_current.txt
+++ b/ui/ui-animation/api/public_plus_experimental_current.txt
@@ -18,30 +18,30 @@
     method public static <T> void Crossfade(T? current, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> children);
   }
 
-  public final class DpPropKey implements androidx.animation.PropKey<androidx.ui.core.Dp,androidx.animation.AnimationVector1D> {
+  public final class DpPropKey implements androidx.animation.PropKey<androidx.ui.unit.Dp,androidx.animation.AnimationVector1D> {
     ctor public DpPropKey();
-    method public androidx.animation.TypeConverter1D<androidx.ui.core.Dp> getTypeConverter();
-    property public androidx.animation.TypeConverter1D<androidx.ui.core.Dp> typeConverter;
+    method public androidx.animation.TypeConverter1D<androidx.ui.unit.Dp> getTypeConverter();
+    property public androidx.animation.TypeConverter1D<androidx.ui.unit.Dp> typeConverter;
   }
 
   public final class PropertyKeysKt {
     method public static kotlin.jvm.functions.Function1<androidx.ui.graphics.colorspace.ColorSpace,androidx.animation.TypeConverter4D<androidx.ui.graphics.Color>> getColorToVectorConverter();
-    method public static androidx.animation.TypeConverter1D<androidx.ui.core.Dp> getDpToVectorConverter();
-    method public static androidx.animation.TypeConverter2D<androidx.ui.core.PxPosition> getPxPositionToVectorConverter();
-    method public static androidx.animation.TypeConverter1D<androidx.ui.core.Px> getPxToVectorConverter();
-    method public static androidx.animation.TypeConverter4D<androidx.ui.engine.geometry.Rect> getRectToVectorConverter();
+    method public static androidx.animation.TypeConverter1D<androidx.ui.unit.Dp> getDpToVectorConverter();
+    method public static androidx.animation.TypeConverter2D<androidx.ui.unit.PxPosition> getPxPositionToVectorConverter();
+    method public static androidx.animation.TypeConverter1D<androidx.ui.unit.Px> getPxToVectorConverter();
+    method public static androidx.animation.TypeConverter4D<androidx.ui.geometry.Rect> getRectToVectorConverter();
   }
 
-  public final class PxPositionPropKey implements androidx.animation.PropKey<androidx.ui.core.PxPosition,androidx.animation.AnimationVector2D> {
+  public final class PxPositionPropKey implements androidx.animation.PropKey<androidx.ui.unit.PxPosition,androidx.animation.AnimationVector2D> {
     ctor public PxPositionPropKey();
-    method public androidx.animation.TypeConverter2D<androidx.ui.core.PxPosition> getTypeConverter();
-    property public androidx.animation.TypeConverter2D<androidx.ui.core.PxPosition> typeConverter;
+    method public androidx.animation.TypeConverter2D<androidx.ui.unit.PxPosition> getTypeConverter();
+    property public androidx.animation.TypeConverter2D<androidx.ui.unit.PxPosition> typeConverter;
   }
 
-  public final class PxPropKey implements androidx.animation.PropKey<androidx.ui.core.Px,androidx.animation.AnimationVector1D> {
+  public final class PxPropKey implements androidx.animation.PropKey<androidx.ui.unit.Px,androidx.animation.AnimationVector1D> {
     ctor public PxPropKey();
-    method public androidx.animation.TypeConverter1D<androidx.ui.core.Px> getTypeConverter();
-    property public androidx.animation.TypeConverter1D<androidx.ui.core.Px> typeConverter;
+    method public androidx.animation.TypeConverter1D<androidx.ui.unit.Px> getTypeConverter();
+    property public androidx.animation.TypeConverter1D<androidx.ui.unit.Px> typeConverter;
   }
 
   public final class TransitionKt {
diff --git a/ui/ui-animation/api/restricted_0.1.0-dev04.txt b/ui/ui-animation/api/restricted_0.1.0-dev04.txt
index 2e5f447..8cf684e 100644
--- a/ui/ui-animation/api/restricted_0.1.0-dev04.txt
+++ b/ui/ui-animation/api/restricted_0.1.0-dev04.txt
@@ -18,30 +18,30 @@
     method public static <T> void Crossfade(T? current, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> children);
   }
 
-  public final class DpPropKey implements androidx.animation.PropKey<androidx.ui.core.Dp,androidx.animation.AnimationVector1D> {
+  public final class DpPropKey implements androidx.animation.PropKey<androidx.ui.unit.Dp,androidx.animation.AnimationVector1D> {
     ctor public DpPropKey();
-    method public androidx.animation.TypeConverter1D<androidx.ui.core.Dp> getTypeConverter();
-    property public androidx.animation.TypeConverter1D<androidx.ui.core.Dp> typeConverter;
+    method public androidx.animation.TypeConverter1D<androidx.ui.unit.Dp> getTypeConverter();
+    property public androidx.animation.TypeConverter1D<androidx.ui.unit.Dp> typeConverter;
   }
 
   public final class PropertyKeysKt {
     method public static kotlin.jvm.functions.Function1<androidx.ui.graphics.colorspace.ColorSpace,androidx.animation.TypeConverter4D<androidx.ui.graphics.Color>> getColorToVectorConverter();
-    method public static androidx.animation.TypeConverter1D<androidx.ui.core.Dp> getDpToVectorConverter();
-    method public static androidx.animation.TypeConverter2D<androidx.ui.core.PxPosition> getPxPositionToVectorConverter();
-    method public static androidx.animation.TypeConverter1D<androidx.ui.core.Px> getPxToVectorConverter();
-    method public static androidx.animation.TypeConverter4D<androidx.ui.engine.geometry.Rect> getRectToVectorConverter();
+    method public static androidx.animation.TypeConverter1D<androidx.ui.unit.Dp> getDpToVectorConverter();
+    method public static androidx.animation.TypeConverter2D<androidx.ui.unit.PxPosition> getPxPositionToVectorConverter();
+    method public static androidx.animation.TypeConverter1D<androidx.ui.unit.Px> getPxToVectorConverter();
+    method public static androidx.animation.TypeConverter4D<androidx.ui.geometry.Rect> getRectToVectorConverter();
   }
 
-  public final class PxPositionPropKey implements androidx.animation.PropKey<androidx.ui.core.PxPosition,androidx.animation.AnimationVector2D> {
+  public final class PxPositionPropKey implements androidx.animation.PropKey<androidx.ui.unit.PxPosition,androidx.animation.AnimationVector2D> {
     ctor public PxPositionPropKey();
-    method public androidx.animation.TypeConverter2D<androidx.ui.core.PxPosition> getTypeConverter();
-    property public androidx.animation.TypeConverter2D<androidx.ui.core.PxPosition> typeConverter;
+    method public androidx.animation.TypeConverter2D<androidx.ui.unit.PxPosition> getTypeConverter();
+    property public androidx.animation.TypeConverter2D<androidx.ui.unit.PxPosition> typeConverter;
   }
 
-  public final class PxPropKey implements androidx.animation.PropKey<androidx.ui.core.Px,androidx.animation.AnimationVector1D> {
+  public final class PxPropKey implements androidx.animation.PropKey<androidx.ui.unit.Px,androidx.animation.AnimationVector1D> {
     ctor public PxPropKey();
-    method public androidx.animation.TypeConverter1D<androidx.ui.core.Px> getTypeConverter();
-    property public androidx.animation.TypeConverter1D<androidx.ui.core.Px> typeConverter;
+    method public androidx.animation.TypeConverter1D<androidx.ui.unit.Px> getTypeConverter();
+    property public androidx.animation.TypeConverter1D<androidx.ui.unit.Px> typeConverter;
   }
 
   public final class TransitionKt {
diff --git a/ui/ui-animation/api/restricted_current.txt b/ui/ui-animation/api/restricted_current.txt
index 2e5f447..8cf684e 100644
--- a/ui/ui-animation/api/restricted_current.txt
+++ b/ui/ui-animation/api/restricted_current.txt
@@ -18,30 +18,30 @@
     method public static <T> void Crossfade(T? current, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> children);
   }
 
-  public final class DpPropKey implements androidx.animation.PropKey<androidx.ui.core.Dp,androidx.animation.AnimationVector1D> {
+  public final class DpPropKey implements androidx.animation.PropKey<androidx.ui.unit.Dp,androidx.animation.AnimationVector1D> {
     ctor public DpPropKey();
-    method public androidx.animation.TypeConverter1D<androidx.ui.core.Dp> getTypeConverter();
-    property public androidx.animation.TypeConverter1D<androidx.ui.core.Dp> typeConverter;
+    method public androidx.animation.TypeConverter1D<androidx.ui.unit.Dp> getTypeConverter();
+    property public androidx.animation.TypeConverter1D<androidx.ui.unit.Dp> typeConverter;
   }
 
   public final class PropertyKeysKt {
     method public static kotlin.jvm.functions.Function1<androidx.ui.graphics.colorspace.ColorSpace,androidx.animation.TypeConverter4D<androidx.ui.graphics.Color>> getColorToVectorConverter();
-    method public static androidx.animation.TypeConverter1D<androidx.ui.core.Dp> getDpToVectorConverter();
-    method public static androidx.animation.TypeConverter2D<androidx.ui.core.PxPosition> getPxPositionToVectorConverter();
-    method public static androidx.animation.TypeConverter1D<androidx.ui.core.Px> getPxToVectorConverter();
-    method public static androidx.animation.TypeConverter4D<androidx.ui.engine.geometry.Rect> getRectToVectorConverter();
+    method public static androidx.animation.TypeConverter1D<androidx.ui.unit.Dp> getDpToVectorConverter();
+    method public static androidx.animation.TypeConverter2D<androidx.ui.unit.PxPosition> getPxPositionToVectorConverter();
+    method public static androidx.animation.TypeConverter1D<androidx.ui.unit.Px> getPxToVectorConverter();
+    method public static androidx.animation.TypeConverter4D<androidx.ui.geometry.Rect> getRectToVectorConverter();
   }
 
-  public final class PxPositionPropKey implements androidx.animation.PropKey<androidx.ui.core.PxPosition,androidx.animation.AnimationVector2D> {
+  public final class PxPositionPropKey implements androidx.animation.PropKey<androidx.ui.unit.PxPosition,androidx.animation.AnimationVector2D> {
     ctor public PxPositionPropKey();
-    method public androidx.animation.TypeConverter2D<androidx.ui.core.PxPosition> getTypeConverter();
-    property public androidx.animation.TypeConverter2D<androidx.ui.core.PxPosition> typeConverter;
+    method public androidx.animation.TypeConverter2D<androidx.ui.unit.PxPosition> getTypeConverter();
+    property public androidx.animation.TypeConverter2D<androidx.ui.unit.PxPosition> typeConverter;
   }
 
-  public final class PxPropKey implements androidx.animation.PropKey<androidx.ui.core.Px,androidx.animation.AnimationVector1D> {
+  public final class PxPropKey implements androidx.animation.PropKey<androidx.ui.unit.Px,androidx.animation.AnimationVector1D> {
     ctor public PxPropKey();
-    method public androidx.animation.TypeConverter1D<androidx.ui.core.Px> getTypeConverter();
-    property public androidx.animation.TypeConverter1D<androidx.ui.core.Px> typeConverter;
+    method public androidx.animation.TypeConverter1D<androidx.ui.unit.Px> getTypeConverter();
+    property public androidx.animation.TypeConverter1D<androidx.ui.unit.Px> typeConverter;
   }
 
   public final class TransitionKt {
diff --git a/ui/ui-animation/build.gradle b/ui/ui-animation/build.gradle
index 87b6671..0fa3da4 100644
--- a/ui/ui-animation/build.gradle
+++ b/ui/ui-animation/build.gradle
@@ -38,6 +38,7 @@
     api project(":ui:ui-animation-core")
 
     api project(":compose:compose-runtime")
+    implementation project(":ui:ui-util")
     api project(":ui:ui-core")
     api project(":ui:ui-framework")
     api project(":ui:ui-layout")
diff --git a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/AnimatableSeekBar.kt b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/AnimatableSeekBar.kt
index df43acc..5054f6c 100644
--- a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/AnimatableSeekBar.kt
+++ b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/AnimatableSeekBar.kt
@@ -29,22 +29,22 @@
 import androidx.ui.animation.animatedFloat
 import androidx.ui.core.AnimationClockAmbient
 import androidx.ui.core.Draw
-import androidx.ui.core.PxPosition
 import androidx.ui.core.Text
-import androidx.ui.core.dp
-import androidx.ui.core.gesture.RawDragGestureDetector
 import androidx.ui.core.gesture.DragObserver
 import androidx.ui.core.gesture.PressGestureDetector
+import androidx.ui.core.gesture.RawDragGestureDetector
 import androidx.ui.core.setContent
-import androidx.ui.core.sp
-import androidx.ui.engine.geometry.Offset
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Offset
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Color
+import androidx.ui.graphics.Paint
 import androidx.ui.layout.Column
 import androidx.ui.layout.Container
 import androidx.ui.layout.Padding
-import androidx.ui.graphics.Paint
 import androidx.ui.text.TextStyle
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.dp
+import androidx.ui.unit.sp
 
 class AnimatableSeekBar : Activity() {
 
diff --git a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/CrossfadeActivity.kt b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/CrossfadeActivity.kt
index 11bf8f9..8aac1e2 100644
--- a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/CrossfadeActivity.kt
+++ b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/CrossfadeActivity.kt
@@ -24,11 +24,8 @@
 import androidx.compose.state
 import androidx.ui.animation.Crossfade
 import androidx.ui.core.Draw
-import androidx.ui.core.PxSize
-import androidx.ui.core.dp
 import androidx.ui.core.gesture.PressReleasedGestureDetector
 import androidx.ui.core.setContent
-import androidx.ui.core.toRect
 import androidx.ui.graphics.Canvas
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
@@ -37,6 +34,9 @@
 import androidx.ui.layout.LayoutHeight
 import androidx.ui.layout.LayoutSize
 import androidx.ui.layout.Row
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.toRect
 import kotlin.random.Random
 
 class CrossfadeActivity : Activity() {
diff --git a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/FancyScrolling.kt b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/FancyScrolling.kt
index f67e776..96355c7 100644
--- a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/FancyScrolling.kt
+++ b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/FancyScrolling.kt
@@ -28,21 +28,21 @@
 import androidx.compose.state
 import androidx.ui.animation.animatedFloat
 import androidx.ui.core.Draw
-import androidx.ui.core.PxPosition
 import androidx.ui.core.Text
-import androidx.ui.core.dp
-import androidx.ui.core.gesture.RawDragGestureDetector
 import androidx.ui.core.gesture.DragObserver
+import androidx.ui.core.gesture.RawDragGestureDetector
 import androidx.ui.core.setContent
-import androidx.ui.core.sp
-import androidx.ui.engine.geometry.Rect
-import androidx.ui.graphics.Color
-import androidx.ui.layout.Column
-import androidx.ui.layout.Padding
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Canvas
+import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
+import androidx.ui.layout.Column
 import androidx.ui.layout.Container
+import androidx.ui.layout.Padding
 import androidx.ui.text.TextStyle
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.dp
+import androidx.ui.unit.sp
 import kotlin.math.roundToInt
 
 class FancyScrolling : Activity() {
diff --git a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/HelloAnimationActivity.kt b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/HelloAnimationActivity.kt
index 9e518b1..2519f92 100644
--- a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/HelloAnimationActivity.kt
+++ b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/HelloAnimationActivity.kt
@@ -25,15 +25,15 @@
 import androidx.animation.transitionDefinition
 import androidx.compose.Composable
 import androidx.compose.Recompose
-import androidx.ui.animation.Transition
 import androidx.ui.animation.ColorPropKey
+import androidx.ui.animation.Transition
 import androidx.ui.core.Draw
 import androidx.ui.core.setContent
-import androidx.ui.core.toRect
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
 import androidx.ui.layout.Container
+import androidx.ui.unit.toRect
 
 class HelloAnimationActivity : Activity() {
 
diff --git a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/HelloGestureBasedAnimationActivity.kt b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/HelloGestureBasedAnimationActivity.kt
index 82886a1..17c0099 100644
--- a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/HelloGestureBasedAnimationActivity.kt
+++ b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/HelloGestureBasedAnimationActivity.kt
@@ -28,7 +28,7 @@
 import androidx.ui.core.Draw
 import androidx.ui.core.gesture.PressGestureDetector
 import androidx.ui.core.setContent
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
 import androidx.ui.layout.Container
diff --git a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/RepeatedRotationActivity.kt b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/RepeatedRotationActivity.kt
index da09ae2..a5b7d73 100644
--- a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/RepeatedRotationActivity.kt
+++ b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/RepeatedRotationActivity.kt
@@ -21,23 +21,23 @@
 import androidx.animation.FloatPropKey
 import androidx.animation.LinearEasing
 import androidx.animation.transitionDefinition
+import androidx.compose.Composable
+import androidx.compose.state
 import androidx.ui.animation.Transition
 import androidx.ui.core.Draw
 import androidx.ui.core.Text
-import androidx.ui.core.dp
 import androidx.ui.core.gesture.PressReleasedGestureDetector
-import androidx.ui.core.toRect
+import androidx.ui.core.setContent
+import androidx.ui.graphics.Color
+import androidx.ui.graphics.Paint
+import androidx.ui.layout.Arrangement
 import androidx.ui.layout.Center
 import androidx.ui.layout.Column
 import androidx.ui.layout.Container
-import androidx.ui.graphics.Color
-import androidx.ui.graphics.Paint
 import androidx.ui.text.TextStyle
-import androidx.compose.Composable
-import androidx.compose.state
-import androidx.ui.core.setContent
-import androidx.ui.core.sp
-import androidx.ui.layout.Arrangement
+import androidx.ui.unit.dp
+import androidx.ui.unit.sp
+import androidx.ui.unit.toRect
 
 class RepeatedRotationActivity : Activity() {
 
diff --git a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SpringBackScrolling.kt b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SpringBackScrolling.kt
index 1a27fce..9f82c17 100644
--- a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SpringBackScrolling.kt
+++ b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SpringBackScrolling.kt
@@ -27,23 +27,23 @@
 import androidx.compose.state
 import androidx.ui.animation.animatedFloat
 import androidx.ui.core.Draw
-import androidx.ui.core.PxPosition
-import androidx.ui.core.PxSize
 import androidx.ui.core.Text
-import androidx.ui.core.dp
-import androidx.ui.core.gesture.RawDragGestureDetector
 import androidx.ui.core.gesture.DragObserver
+import androidx.ui.core.gesture.RawDragGestureDetector
 import androidx.ui.core.setContent
-import androidx.ui.core.sp
-import androidx.ui.engine.geometry.Rect
-import androidx.ui.graphics.Color
-import androidx.ui.layout.Column
-import androidx.ui.layout.Padding
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Canvas
+import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
+import androidx.ui.layout.Column
 import androidx.ui.layout.Container
 import androidx.ui.layout.LayoutHeight
+import androidx.ui.layout.Padding
 import androidx.ui.text.TextStyle
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.sp
 import kotlin.math.roundToInt
 
 class SpringBackScrolling : Activity() {
diff --git a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/StateBasedRippleAnimation.kt b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/StateBasedRippleAnimation.kt
index 9aa43cd..c95bb0d 100644
--- a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/StateBasedRippleAnimation.kt
+++ b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/StateBasedRippleAnimation.kt
@@ -24,21 +24,21 @@
 import androidx.animation.TransitionDefinition
 import androidx.animation.TransitionState
 import androidx.animation.transitionDefinition
-import androidx.ui.animation.Transition
-import androidx.ui.core.Draw
-import androidx.ui.core.PxPosition
-import androidx.ui.core.gesture.PressGestureDetector
-import androidx.ui.engine.geometry.Offset
-import androidx.ui.graphics.Color
-import androidx.ui.graphics.Paint
 import androidx.compose.Composable
 import androidx.compose.remember
 import androidx.compose.state
+import androidx.ui.animation.Transition
+import androidx.ui.core.Draw
 import androidx.ui.core.ambientDensity
-import androidx.ui.core.dp
+import androidx.ui.core.gesture.PressGestureDetector
 import androidx.ui.core.setContent
-import androidx.ui.core.withDensity
+import androidx.ui.geometry.Offset
+import androidx.ui.graphics.Color
+import androidx.ui.graphics.Paint
 import androidx.ui.layout.Container
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.dp
+import androidx.ui.unit.withDensity
 
 class StateBasedRippleAnimation : Activity() {
 
diff --git a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SwipeToDismiss.kt b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SwipeToDismiss.kt
index 6208e01..57e65cf 100644
--- a/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SwipeToDismiss.kt
+++ b/ui/ui-animation/integration-tests/animation-demos/src/main/java/androidx/ui/animation/demos/SwipeToDismiss.kt
@@ -29,22 +29,22 @@
 import androidx.compose.state
 import androidx.ui.animation.animatedFloat
 import androidx.ui.core.Draw
-import androidx.ui.core.IntPx
 import androidx.ui.core.Layout
 import androidx.ui.core.OnChildPositioned
-import androidx.ui.core.PxPosition
 import androidx.ui.core.Text
-import androidx.ui.core.dp
-import androidx.ui.core.gesture.RawDragGestureDetector
 import androidx.ui.core.gesture.DragObserver
+import androidx.ui.core.gesture.RawDragGestureDetector
 import androidx.ui.core.setContent
-import androidx.ui.core.sp
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Color
+import androidx.ui.graphics.Paint
 import androidx.ui.layout.Column
 import androidx.ui.layout.Padding
-import androidx.ui.graphics.Paint
 import androidx.ui.text.TextStyle
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.dp
+import androidx.ui.unit.sp
 import kotlin.math.sign
 
 class SwipeToDismiss : Activity() {
diff --git a/ui/ui-animation/src/main/java/androidx/ui/animation/PropertyKeys.kt b/ui/ui-animation/src/main/java/androidx/ui/animation/PropertyKeys.kt
index 270ab30..721924c 100644
--- a/ui/ui-animation/src/main/java/androidx/ui/animation/PropertyKeys.kt
+++ b/ui/ui-animation/src/main/java/androidx/ui/animation/PropertyKeys.kt
@@ -16,21 +16,21 @@
 
 package androidx.ui.animation
 
+import androidx.animation.AnimationVector1D
+import androidx.animation.AnimationVector2D
+import androidx.animation.AnimationVector4D
 import androidx.animation.PropKey
 import androidx.animation.TypeConverter1D
 import androidx.animation.TypeConverter2D
 import androidx.animation.TypeConverter4D
-import androidx.animation.AnimationVector1D
-import androidx.animation.AnimationVector2D
-import androidx.animation.AnimationVector4D
-import androidx.ui.core.Dp
-import androidx.ui.core.Px
-import androidx.ui.core.PxPosition
-import androidx.ui.core.px
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.colorspace.ColorSpace
 import androidx.ui.graphics.colorspace.ColorSpaces
+import androidx.ui.unit.Dp
+import androidx.ui.unit.Px
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.px
 
 /**
  * Built-in property key for [Px] properties.
diff --git a/ui/ui-animation/src/test/java/androidx/ui/animation/ConverterTest.kt b/ui/ui-animation/src/test/java/androidx/ui/animation/ConverterTest.kt
index b080b86e..c3445c1 100644
--- a/ui/ui-animation/src/test/java/androidx/ui/animation/ConverterTest.kt
+++ b/ui/ui-animation/src/test/java/androidx/ui/animation/ConverterTest.kt
@@ -19,12 +19,12 @@
 import androidx.animation.AnimationVector1D
 import androidx.animation.AnimationVector2D
 import androidx.animation.AnimationVector4D
-import androidx.ui.core.PxPosition
-import androidx.ui.core.dp
-import androidx.ui.core.px
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.colorspace.ColorSpaces
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
 import junit.framework.TestCase.assertEquals
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-core/api/0.1.0-dev04.txt b/ui/ui-core/api/0.1.0-dev04.txt
index 0260cd9..ebcf997 100644
--- a/ui/ui-core/api/0.1.0-dev04.txt
+++ b/ui/ui-core/api/0.1.0-dev04.txt
@@ -1,14 +1,6 @@
 // Signature format: 3.0
 package androidx.ui {
 
-  public final class MathHelpersKt {
-    method public static float lerp(float start, float stop, float fraction);
-    method public static int lerp(int start, int stop, float fraction);
-    method public static long lerp(long start, long stop, float fraction);
-    method public static String toHexString(int);
-    method public static String toStringAsFixed(float, int digits);
-  }
-
   public enum VertexMode {
     method public final android.graphics.Canvas.VertexMode toFrameworkVertexMode();
     enum_constant public static final androidx.ui.VertexMode triangleFan;
@@ -17,7 +9,7 @@
   }
 
   public final class Vertices {
-    ctor public Vertices(androidx.ui.VertexMode vertexMode, java.util.List<androidx.ui.engine.geometry.Offset> positions, java.util.List<androidx.ui.engine.geometry.Offset> textureCoordinates, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Integer> indices);
+    ctor public Vertices(androidx.ui.VertexMode vertexMode, java.util.List<androidx.ui.geometry.Offset> positions, java.util.List<androidx.ui.geometry.Offset> textureCoordinates, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Integer> indices);
     method public int[] getColors();
     method public short[] getIndices();
     method public float[] getPositions();
@@ -70,7 +62,7 @@
 package androidx.ui.core {
 
   public enum Alignment {
-    method public final androidx.ui.core.IntPxPosition align(androidx.ui.core.IntPxSize size);
+    method public final androidx.ui.unit.IntPxPosition align(androidx.ui.unit.IntPxSize size);
     enum_constant public static final androidx.ui.core.Alignment BottomCenter;
     enum_constant public static final androidx.ui.core.Alignment BottomLeft;
     enum_constant public static final androidx.ui.core.Alignment BottomRight;
@@ -87,45 +79,32 @@
   }
 
   public final class AlignmentLineKt {
-    method public static androidx.ui.core.IntPx merge(androidx.ui.core.AlignmentLine, androidx.ui.core.IntPx position1, androidx.ui.core.IntPx position2);
-  }
-
-  public final class Bounds {
-    ctor public Bounds(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.core.Bounds copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp getBottom();
-    method public androidx.ui.core.Dp getLeft();
-    method public androidx.ui.core.Dp getRight();
-    method public androidx.ui.core.Dp getTop();
+    method public static androidx.ui.unit.IntPx merge(androidx.ui.core.AlignmentLine, androidx.ui.unit.IntPx position1, androidx.ui.unit.IntPx position2);
   }
 
   public final class Constraints {
-    ctor public Constraints(androidx.ui.core.IntPx minWidth, androidx.ui.core.IntPx maxWidth, androidx.ui.core.IntPx minHeight, androidx.ui.core.IntPx maxHeight);
+    ctor public Constraints(androidx.ui.unit.IntPx minWidth, androidx.ui.unit.IntPx maxWidth, androidx.ui.unit.IntPx minHeight, androidx.ui.unit.IntPx maxHeight);
     ctor public Constraints();
-    method public androidx.ui.core.IntPx component1();
-    method public androidx.ui.core.IntPx component2();
-    method public androidx.ui.core.IntPx component3();
-    method public androidx.ui.core.IntPx component4();
-    method public androidx.ui.core.Constraints copy(androidx.ui.core.IntPx minWidth, androidx.ui.core.IntPx maxWidth, androidx.ui.core.IntPx minHeight, androidx.ui.core.IntPx maxHeight);
-    method public androidx.ui.core.IntPx getMaxHeight();
-    method public androidx.ui.core.IntPx getMaxWidth();
-    method public androidx.ui.core.IntPx getMinHeight();
-    method public androidx.ui.core.IntPx getMinWidth();
+    method public androidx.ui.unit.IntPx component1();
+    method public androidx.ui.unit.IntPx component2();
+    method public androidx.ui.unit.IntPx component3();
+    method public androidx.ui.unit.IntPx component4();
+    method public androidx.ui.core.Constraints copy(androidx.ui.unit.IntPx minWidth, androidx.ui.unit.IntPx maxWidth, androidx.ui.unit.IntPx minHeight, androidx.ui.unit.IntPx maxHeight);
+    method public androidx.ui.unit.IntPx getMaxHeight();
+    method public androidx.ui.unit.IntPx getMaxWidth();
+    method public androidx.ui.unit.IntPx getMinHeight();
+    method public androidx.ui.unit.IntPx getMinWidth();
     field public static final androidx.ui.core.Constraints.Companion! Companion;
   }
 
   public static final class Constraints.Companion {
-    method public androidx.ui.core.Constraints tightConstraints(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height);
-    method public androidx.ui.core.Constraints tightConstraintsForHeight(androidx.ui.core.IntPx height);
-    method public androidx.ui.core.Constraints tightConstraintsForWidth(androidx.ui.core.IntPx width);
+    method public androidx.ui.core.Constraints tightConstraints(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height);
+    method public androidx.ui.core.Constraints tightConstraintsForHeight(androidx.ui.unit.IntPx height);
+    method public androidx.ui.core.Constraints tightConstraintsForWidth(androidx.ui.unit.IntPx width);
   }
 
   public final class ConstraintsKt {
-    method public static androidx.ui.core.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.core.IntPxSize size);
+    method public static androidx.ui.unit.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
     method public static androidx.ui.core.Constraints enforce(androidx.ui.core.Constraints, androidx.ui.core.Constraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.core.Constraints);
     method public static boolean getHasBoundedWidth(androidx.ui.core.Constraints);
@@ -135,57 +114,21 @@
     method public static boolean isZero(androidx.ui.core.Constraints);
     method public static androidx.ui.core.Constraints looseMax(androidx.ui.core.Constraints);
     method public static androidx.ui.core.Constraints looseMin(androidx.ui.core.Constraints);
-    method public static androidx.ui.core.Constraints offset(androidx.ui.core.Constraints, androidx.ui.core.IntPx horizontal = 0.ipx, androidx.ui.core.IntPx vertical = 0.ipx);
-    method public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.core.IntPxSize size);
+    method public static androidx.ui.core.Constraints offset(androidx.ui.core.Constraints, androidx.ui.unit.IntPx horizontal = 0.ipx, androidx.ui.unit.IntPx vertical = 0.ipx);
+    method public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
     method public static androidx.ui.core.Constraints tightMax(androidx.ui.core.Constraints);
     method public static androidx.ui.core.Constraints tightMin(androidx.ui.core.Constraints);
-    method public static androidx.ui.core.Constraints withTight(androidx.ui.core.Constraints, androidx.ui.core.IntPx? width = null, androidx.ui.core.IntPx? height = null);
+    method public static androidx.ui.core.Constraints withTight(androidx.ui.core.Constraints, androidx.ui.unit.IntPx? width = null, androidx.ui.unit.IntPx? height = null);
   }
 
   public final class ConsumedData {
-    ctor public ConsumedData(androidx.ui.core.PxPosition positionChange, boolean downChange);
+    ctor public ConsumedData(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     ctor public ConsumedData();
-    method public androidx.ui.core.PxPosition component1();
+    method public androidx.ui.unit.PxPosition component1();
     method public boolean component2();
-    method public androidx.ui.core.ConsumedData copy(androidx.ui.core.PxPosition positionChange, boolean downChange);
+    method public androidx.ui.core.ConsumedData copy(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     method public boolean getDownChange();
-    method public androidx.ui.core.PxPosition getPositionChange();
-  }
-
-  public final class Density {
-    ctor public Density(float density, float fontScale);
-    method public float component1();
-    method public float component2();
-    method public androidx.ui.core.Density copy(float density, float fontScale);
-    method public float getDensity();
-    method public float getFontScale();
-  }
-
-  public final class DensityKt {
-    method public static androidx.ui.core.Density Density(android.content.Context context);
-    method public static androidx.ui.core.DensityScope DensityScope(androidx.ui.core.Density density);
-    method public static inline <R> R! withDensity(androidx.ui.core.Density density, kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,? extends R> block);
-  }
-
-  public interface DensityScope {
-    method public androidx.ui.core.Density getDensity();
-    method public default androidx.ui.core.Dp toDp(androidx.ui.core.TextUnit);
-    method public default androidx.ui.core.Dp toDp(androidx.ui.core.Px);
-    method public default androidx.ui.core.Dp toDp(androidx.ui.core.IntPx);
-    method public default androidx.ui.core.Dp toDp(float);
-    method public default androidx.ui.core.Dp toDp(int);
-    method public default androidx.ui.core.IntPx toIntPx(androidx.ui.core.Dp);
-    method public default androidx.ui.core.IntPx toIntPx(androidx.ui.core.TextUnit);
-    method public default androidx.ui.core.Px toPx(androidx.ui.core.Dp);
-    method public default androidx.ui.core.Px toPx(androidx.ui.core.TextUnit);
-    method public default androidx.ui.core.PxSize toPx-s2Mz6-8(long);
-    method public default androidx.ui.engine.geometry.Rect toRect(androidx.ui.core.Bounds);
-    method public default androidx.ui.core.TextUnit toSp(androidx.ui.core.Dp);
-    method public default androidx.ui.core.TextUnit toSp(androidx.ui.core.Px);
-    method public default androidx.ui.core.TextUnit toSp(androidx.ui.core.IntPx);
-    method public default androidx.ui.core.TextUnit toSp(float);
-    method public default androidx.ui.core.TextUnit toSp(int);
-    property public abstract androidx.ui.core.Density density;
+    method public androidx.ui.unit.PxPosition getPositionChange();
   }
 
   public enum Direction {
@@ -195,304 +138,29 @@
     enum_constant public static final androidx.ui.core.Direction UP;
   }
 
-  public final class Dp implements java.lang.Comparable<androidx.ui.core.Dp> {
-    ctor public Dp(float value);
-    method public operator int compareTo(androidx.ui.core.Dp other);
-    method public float component1();
-    method public androidx.ui.core.Dp copy(float value);
-    method public inline operator androidx.ui.core.Dp div(float other);
-    method public inline operator androidx.ui.core.Dp div(int other);
-    method public inline operator float div(androidx.ui.core.Dp other);
-    method public inline operator float div-KkBJKWw(float other);
-    method public float getValue();
-    method public inline operator androidx.ui.core.Dp minus(androidx.ui.core.Dp other);
-    method public inline operator androidx.ui.core.Dp plus(androidx.ui.core.Dp other);
-    method public inline operator androidx.ui.core.Dp times(float other);
-    method public inline operator androidx.ui.core.Dp times(int other);
-    method public inline operator float times(androidx.ui.core.Dp other);
-    method public inline operator float times-KkBJKWw(float other);
-    method public inline operator androidx.ui.core.Dp unaryMinus();
-    field public static final androidx.ui.core.Dp.Companion! Companion;
-  }
-
-  public static final class Dp.Companion {
-    method public androidx.ui.core.Dp getHairline();
-    method public androidx.ui.core.Dp getInfinity();
-    property public final androidx.ui.core.Dp Hairline;
-    property public final androidx.ui.core.Dp Infinity;
-  }
-
-  public final inline class DpCubed implements java.lang.Comparable<androidx.ui.core.DpCubed> {
-    ctor public DpCubed();
-    method public operator int compareTo-zqpl1kg(float p);
-    method public static operator int compareTo-zqpl1kg(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator androidx.ui.core.Dp div-KkBJKWw(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, androidx.ui.core.Dp other);
-    method public static inline operator float div-zqpl1kg(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-zqpl1kg(float $this, float dimension);
-    method public static inline operator float plus-zqpl1kg(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final inline class DpInverse implements java.lang.Comparable<androidx.ui.core.DpInverse> {
-    ctor public DpInverse();
-    method public operator int compareTo-ASDJgtI(float p);
-    method public static operator int compareTo-ASDJgtI(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-ASDJgtI(float $this, float dimension);
-    method public static inline operator float plus-ASDJgtI(float $this, float dimension);
-    method public static inline operator androidx.ui.core.Dp times-KkBJKWw(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Dp other);
-    method public static inline operator float times-zqpl1kg(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final class DpKt {
-    method public static inline long Position(androidx.ui.core.Dp x, androidx.ui.core.Dp y);
-    method public static inline long Size(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
-    method public static long center-s2Mz6-8(long);
-    method public static inline androidx.ui.core.Dp coerceAtLeast(androidx.ui.core.Dp, androidx.ui.core.Dp minimumValue);
-    method public static inline androidx.ui.core.Dp coerceAtMost(androidx.ui.core.Dp, androidx.ui.core.Dp maximumValue);
-    method public static inline androidx.ui.core.Dp coerceIn(androidx.ui.core.Dp, androidx.ui.core.Dp minimumValue, androidx.ui.core.Dp maximumValue);
-    method public static inline operator float div(float, androidx.ui.core.Dp other);
-    method public static inline operator float div(double, androidx.ui.core.Dp other);
-    method public static inline operator float div(int, androidx.ui.core.Dp other);
-    method public static androidx.ui.core.Dp getDistance-JXBE4ew(long);
-    method public static inline androidx.ui.core.Dp getDp(int);
-    method public static inline androidx.ui.core.Dp getDp(double);
-    method public static inline androidx.ui.core.Dp getDp(float);
-    method public static inline androidx.ui.core.Dp getHeight(androidx.ui.core.Bounds);
-    method public static inline androidx.ui.core.Dp getWidth(androidx.ui.core.Bounds);
-    method public static inline boolean isFinite(androidx.ui.core.Dp);
-    method public static androidx.ui.core.Dp lerp(androidx.ui.core.Dp start, androidx.ui.core.Dp stop, float fraction);
-    method public static long lerp-SuMVOfk(long start, long stop, float fraction);
-    method public static inline androidx.ui.core.Dp max(androidx.ui.core.Dp a, androidx.ui.core.Dp b);
-    method public static inline androidx.ui.core.Dp min(androidx.ui.core.Dp a, androidx.ui.core.Dp b);
-    method public static inline operator androidx.ui.core.Dp times(float, androidx.ui.core.Dp other);
-    method public static inline operator androidx.ui.core.Dp times(double, androidx.ui.core.Dp other);
-    method public static inline operator androidx.ui.core.Dp times(int, androidx.ui.core.Dp other);
-    method public static inline operator long times-Ze-JISM(int, long size);
-    method public static inline operator long times-doH9uME(float, long size);
-    method public static inline operator long times-nKWVx08(double, long size);
-    method public static androidx.ui.core.Bounds toBounds-s2Mz6-8(long);
-    method public static inline long toSize(androidx.ui.core.Bounds);
-  }
-
-  public final inline class DpSquared implements java.lang.Comparable<androidx.ui.core.DpSquared> {
-    ctor public DpSquared();
-    method public operator int compareTo-KkBJKWw(float p);
-    method public static operator int compareTo-KkBJKWw(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-KkBJKWw(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator androidx.ui.core.Dp div-impl(float $this, androidx.ui.core.Dp other);
-    method public static inline operator float div-zqpl1kg(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-KkBJKWw(float $this, float other);
-    method public static inline operator float plus-KkBJKWw(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Dp other);
-    method public static String toString-impl(float $this);
-  }
-
   public interface DrawModifier extends androidx.ui.core.Modifier.Element {
-    method public void draw(androidx.ui.core.Density density, kotlin.jvm.functions.Function0<kotlin.Unit> drawContent, androidx.ui.graphics.Canvas canvas, androidx.ui.core.PxSize size);
+    method public void draw(androidx.ui.unit.Density density, kotlin.jvm.functions.Function0<kotlin.Unit> drawContent, androidx.ui.graphics.Canvas canvas, androidx.ui.unit.PxSize size);
   }
 
   public final class DrawModifierKt {
-    method public static androidx.ui.core.DrawModifier draw(kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onDraw);
-    method public static androidx.ui.core.DrawModifier drawWithContent(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onDraw);
+    method public static androidx.ui.core.DrawModifier draw(kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onDraw);
+    method public static androidx.ui.core.DrawModifier drawWithContent(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onDraw);
   }
 
-  public interface DrawReceiver extends androidx.ui.core.DensityScope {
+  public interface DrawReceiver extends androidx.ui.unit.DensityScope {
     method public void drawChildren();
   }
 
-  public final class Duration implements java.lang.Comparable<androidx.ui.core.Duration> {
-    ctor public Duration(long nanoseconds);
-    method public int compareTo(androidx.ui.core.Duration other);
-    method public long component1();
-    method public androidx.ui.core.Duration copy(long nanoseconds);
-    method public operator androidx.ui.core.Duration div(int quotient);
-    method public operator androidx.ui.core.Duration div(double quotient);
-    method public long getNanoseconds();
-    method public operator androidx.ui.core.Duration minus(androidx.ui.core.Duration other);
-    method public operator androidx.ui.core.Duration plus(androidx.ui.core.Duration other);
-    method public operator androidx.ui.core.Duration times(int factor);
-    method public operator androidx.ui.core.Duration times(double factor);
-    field public static final androidx.ui.core.Duration.Companion! Companion;
-  }
-
-  public static final class Duration.Companion {
-    method public androidx.ui.core.Duration getZero();
-    property public final androidx.ui.core.Duration Zero;
-  }
-
-  public final class Durations {
-    method public static androidx.ui.core.Duration Duration(long days = 0, long hours = 0, long minutes = 0, long seconds = 0, long milliseconds = 0, long microseconds = 0, long nanoseconds = 0);
-    method public static androidx.ui.core.Duration getDays(long);
-    method public static androidx.ui.core.Duration getDays(int);
-    method public static androidx.ui.core.Duration getHours(long);
-    method public static androidx.ui.core.Duration getHours(int);
-    method public static androidx.ui.core.Duration getMicroseconds(long);
-    method public static androidx.ui.core.Duration getMicroseconds(int);
-    method public static androidx.ui.core.Duration getMilliseconds(long);
-    method public static androidx.ui.core.Duration getMilliseconds(int);
-    method public static androidx.ui.core.Duration getMinutes(long);
-    method public static androidx.ui.core.Duration getMinutes(int);
-    method public static androidx.ui.core.Duration getNanoseconds(long);
-    method public static androidx.ui.core.Duration getNanoseconds(int);
-    method public static long getNanosecondsPerDay();
-    method public static long getNanosecondsPerHour();
-    method public static long getNanosecondsPerMillisecond();
-    method public static long getNanosecondsPerMinute();
-    method public static long getNanosecondsPerSecond();
-    method public static androidx.ui.core.Duration getSeconds(long);
-    method public static androidx.ui.core.Duration getSeconds(int);
-    method public static long inDays(androidx.ui.core.Duration);
-    method public static long inHours(androidx.ui.core.Duration);
-    method public static long inMicroseconds(androidx.ui.core.Duration);
-    method public static long inMilliseconds(androidx.ui.core.Duration);
-    method public static long inMinutes(androidx.ui.core.Duration);
-    method public static long inSeconds(androidx.ui.core.Duration);
-    field public static final long HoursPerDay = 24L; // 0x18L
-    field public static final long MicrosecondsPerMillisecond = 1000L; // 0x3e8L
-    field public static final long MillisecondsPerSecond = 1000L; // 0x3e8L
-    field public static final long MinutesPerHour = 60L; // 0x3cL
-    field public static final long NanosecondsPerMicrosecond = 1000L; // 0x3e8L
-    field public static final long SecondsPerMinute = 60L; // 0x3cL
-  }
-
   public final class HorizontalAlignmentLine extends androidx.ui.core.AlignmentLine {
-    ctor public HorizontalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.core.IntPx,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> merger);
-  }
-
-  public final class InlineClassHelperKt {
-    method public static inline long packFloats(float val1, float val2);
-    method public static inline long packInts(int val1, int val2);
-    method public static inline float unpackFloat1(long value);
-    method public static inline float unpackFloat2(long value);
-    method public static inline int unpackInt1(long value);
-    method public static inline int unpackInt2(long value);
-  }
-
-  public final class IntPx implements java.lang.Comparable<androidx.ui.core.IntPx> {
-    ctor public IntPx(int value);
-    method public operator int compareTo(androidx.ui.core.IntPx other);
-    method public inline operator int compareTo(androidx.ui.core.Px other);
-    method public int component1();
-    method public androidx.ui.core.IntPx copy(int value);
-    method public operator androidx.ui.core.IntPx div(float other);
-    method public operator androidx.ui.core.IntPx div(double other);
-    method public operator androidx.ui.core.IntPx div(int other);
-    method public int getValue();
-    method public operator androidx.ui.core.IntPx minus(androidx.ui.core.IntPx other);
-    method public operator androidx.ui.core.IntPx plus(androidx.ui.core.IntPx other);
-    method public inline operator androidx.ui.core.IntPx rem(int other);
-    method public operator androidx.ui.core.IntPx times(float other);
-    method public operator androidx.ui.core.IntPx times(double other);
-    method public operator androidx.ui.core.IntPx times(int other);
-    method public operator androidx.ui.core.IntPx unaryMinus();
-    field public static final androidx.ui.core.IntPx.Companion! Companion;
-  }
-
-  public static final class IntPx.Companion {
-    method public androidx.ui.core.IntPx getInfinity();
-    method public androidx.ui.core.IntPx getZero();
-    property public final androidx.ui.core.IntPx Infinity;
-    property public final androidx.ui.core.IntPx Zero;
-  }
-
-  public final class IntPxBounds {
-    ctor public IntPxBounds(androidx.ui.core.IntPx left, androidx.ui.core.IntPx top, androidx.ui.core.IntPx right, androidx.ui.core.IntPx bottom);
-    method public androidx.ui.core.IntPx component1();
-    method public androidx.ui.core.IntPx component2();
-    method public androidx.ui.core.IntPx component3();
-    method public androidx.ui.core.IntPx component4();
-    method public androidx.ui.core.IntPxBounds copy(androidx.ui.core.IntPx left, androidx.ui.core.IntPx top, androidx.ui.core.IntPx right, androidx.ui.core.IntPx bottom);
-    method public androidx.ui.core.IntPx getBottom();
-    method public androidx.ui.core.IntPx getLeft();
-    method public androidx.ui.core.IntPx getRight();
-    method public androidx.ui.core.IntPx getTop();
-  }
-
-  public final class IntPxKt {
-    method public static inline androidx.ui.core.IntPxPosition IntPxPosition(androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
-    method public static inline androidx.ui.core.IntPxSize IntPxSize(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height);
-    method public static inline androidx.ui.core.PxPosition PxPosition(androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
-    method public static inline androidx.ui.core.PxSize PxSize(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height);
-    method public static androidx.ui.core.IntPxPosition center(androidx.ui.core.IntPxSize);
-    method public static inline androidx.ui.core.IntPx coerceAtLeast(androidx.ui.core.IntPx, androidx.ui.core.IntPx minimumValue);
-    method public static inline androidx.ui.core.IntPx coerceAtMost(androidx.ui.core.IntPx, androidx.ui.core.IntPx maximumValue);
-    method public static inline androidx.ui.core.IntPx coerceIn(androidx.ui.core.IntPx, androidx.ui.core.IntPx minimumValue, androidx.ui.core.IntPx maximumValue);
-    method public static inline androidx.ui.core.IntPx getHeight(androidx.ui.core.IntPxBounds);
-    method public static inline androidx.ui.core.IntPx getIpx(int);
-    method public static inline androidx.ui.core.IntPx getWidth(androidx.ui.core.IntPxBounds);
-    method public static inline boolean isFinite(androidx.ui.core.IntPx);
-    method public static androidx.ui.core.IntPx lerp(androidx.ui.core.IntPx start, androidx.ui.core.IntPx stop, float fraction);
-    method public static androidx.ui.core.IntPxPosition lerp(androidx.ui.core.IntPxPosition start, androidx.ui.core.IntPxPosition stop, float fraction);
-    method public static inline androidx.ui.core.IntPx max(androidx.ui.core.IntPx a, androidx.ui.core.IntPx b);
-    method public static inline androidx.ui.core.IntPx min(androidx.ui.core.IntPx a, androidx.ui.core.IntPx b);
-    method public static inline androidx.ui.core.IntPx round(androidx.ui.core.Px);
-    method public static inline operator androidx.ui.core.IntPx times(float, androidx.ui.core.IntPx other);
-    method public static inline operator androidx.ui.core.IntPx times(double, androidx.ui.core.IntPx other);
-    method public static inline operator androidx.ui.core.IntPx times(int, androidx.ui.core.IntPx other);
-    method public static inline operator androidx.ui.core.IntPxSize times(int, androidx.ui.core.IntPxSize size);
-    method public static inline androidx.ui.core.Px toPx(androidx.ui.core.IntPx);
-    method public static inline androidx.ui.core.PxPosition toPxPosition(androidx.ui.core.IntPxPosition);
-    method public static inline androidx.ui.core.PxSize toPxSize(androidx.ui.core.IntPxSize);
-    method public static inline androidx.ui.core.IntPxSize toSize(androidx.ui.core.IntPxBounds);
-  }
-
-  public final class IntPxPosition {
-    method public androidx.ui.core.IntPxPosition copy(long value);
-    method public inline androidx.ui.core.IntPx getX();
-    method public inline androidx.ui.core.IntPx getY();
-    method public inline operator androidx.ui.core.IntPxPosition minus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.IntPxPosition plus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.IntPxPosition unaryMinus();
-    property public final inline androidx.ui.core.IntPx x;
-    property public final inline androidx.ui.core.IntPx y;
-    field public static final androidx.ui.core.IntPxPosition.Companion! Companion;
-  }
-
-  public static final class IntPxPosition.Companion {
-    method public androidx.ui.core.IntPxPosition getOrigin();
-    property public final androidx.ui.core.IntPxPosition Origin;
-  }
-
-  public final class IntPxSize {
-    method public androidx.ui.core.IntPxSize copy(long value);
-    method public inline operator androidx.ui.core.IntPxSize div(int other);
-    method public inline androidx.ui.core.IntPx getHeight();
-    method public inline androidx.ui.core.IntPx getWidth();
-    method public inline operator androidx.ui.core.IntPxSize times(int other);
-    property public final inline androidx.ui.core.IntPx height;
-    property public final inline androidx.ui.core.IntPx width;
+    ctor public HorizontalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> merger);
   }
 
   public interface IntrinsicMeasurable {
     method public Object? getParentData();
-    method public androidx.ui.core.IntPx maxIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(androidx.ui.core.IntPx height);
-    method public androidx.ui.core.IntPx minIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(androidx.ui.core.IntPx height);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(androidx.ui.unit.IntPx height);
+    method public androidx.ui.unit.IntPx minIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(androidx.ui.unit.IntPx height);
     property public abstract Object? parentData;
   }
 
@@ -500,23 +168,23 @@
   }
 
   public interface LayoutCoordinates {
-    method public androidx.ui.core.PxPosition childToLocal(androidx.ui.core.LayoutCoordinates child, androidx.ui.core.PxPosition childLocal);
+    method public androidx.ui.unit.PxPosition childToLocal(androidx.ui.core.LayoutCoordinates child, androidx.ui.unit.PxPosition childLocal);
     method public androidx.ui.core.LayoutCoordinates? getParentCoordinates();
-    method public androidx.ui.core.PxPosition getPosition();
-    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> getProvidedAlignmentLines();
-    method public androidx.ui.core.PxSize getSize();
-    method public androidx.ui.core.PxPosition globalToLocal(androidx.ui.core.PxPosition global);
-    method public androidx.ui.core.PxPosition localToGlobal(androidx.ui.core.PxPosition local);
-    method public androidx.ui.core.PxPosition localToRoot(androidx.ui.core.PxPosition local);
+    method public androidx.ui.unit.PxPosition getPosition();
+    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> getProvidedAlignmentLines();
+    method public androidx.ui.unit.PxSize getSize();
+    method public androidx.ui.unit.PxPosition globalToLocal(androidx.ui.unit.PxPosition global);
+    method public androidx.ui.unit.PxPosition localToGlobal(androidx.ui.unit.PxPosition local);
+    method public androidx.ui.unit.PxPosition localToRoot(androidx.ui.unit.PxPosition local);
     property public abstract androidx.ui.core.LayoutCoordinates? parentCoordinates;
-    property public abstract androidx.ui.core.PxPosition position;
-    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> providedAlignmentLines;
-    property public abstract androidx.ui.core.PxSize size;
+    property public abstract androidx.ui.unit.PxPosition position;
+    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> providedAlignmentLines;
+    property public abstract androidx.ui.unit.PxSize size;
   }
 
   public final class LayoutCoordinatesKt {
-    method public static inline androidx.ui.core.PxPosition getGlobalPosition(androidx.ui.core.LayoutCoordinates);
-    method public static inline androidx.ui.core.PxPosition getPositionInRoot(androidx.ui.core.LayoutCoordinates);
+    method public static inline androidx.ui.unit.PxPosition getGlobalPosition(androidx.ui.core.LayoutCoordinates);
+    method public static inline androidx.ui.unit.PxPosition getPositionInRoot(androidx.ui.core.LayoutCoordinates);
   }
 
   public enum LayoutDirection {
@@ -525,33 +193,33 @@
   }
 
   public interface LayoutModifier extends androidx.ui.core.Modifier.Element {
-    method public default androidx.ui.core.IntPx maxIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public default androidx.ui.core.IntPx maxIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public default androidx.ui.core.IntPx minIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public default androidx.ui.core.IntPx minIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public default androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public default androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
-    method public default androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public default androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public default androidx.ui.unit.IntPx maxIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public default androidx.ui.unit.IntPx maxIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public default androidx.ui.unit.IntPx minIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public default androidx.ui.unit.IntPx minIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public default androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public default androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
+    method public default androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public default androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
   }
 
   public interface Measurable extends androidx.ui.core.IntrinsicMeasurable {
     method public androidx.ui.core.Placeable measure(androidx.ui.core.Constraints constraints);
   }
 
-  public abstract class MeasureScope implements androidx.ui.core.DensityScope {
+  public abstract class MeasureScope implements androidx.ui.unit.DensityScope {
     ctor public MeasureScope();
-    method public final androidx.ui.core.MeasureScope.LayoutResult layout(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height, java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> alignmentLines = emptyMap(), kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable.PlacementScope,kotlin.Unit> placementBlock);
+    method public final androidx.ui.core.MeasureScope.LayoutResult layout(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height, java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> alignmentLines = emptyMap(), kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable.PlacementScope,kotlin.Unit> placementBlock);
   }
 
   public static interface MeasureScope.LayoutResult {
-    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> getAlignmentLines();
-    method public androidx.ui.core.IntPx getHeight();
-    method public androidx.ui.core.IntPx getWidth();
+    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> getAlignmentLines();
+    method public androidx.ui.unit.IntPx getHeight();
+    method public androidx.ui.unit.IntPx getWidth();
     method public void placeChildren(androidx.ui.core.Placeable.PlacementScope placementScope);
-    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> alignmentLines;
-    property public abstract androidx.ui.core.IntPx height;
-    property public abstract androidx.ui.core.IntPx width;
+    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> alignmentLines;
+    property public abstract androidx.ui.unit.IntPx height;
+    property public abstract androidx.ui.unit.IntPx width;
   }
 
   public final class MeasureScopeKt {
@@ -576,27 +244,27 @@
   }
 
   public interface ParentDataModifier extends androidx.ui.core.Modifier.Element {
-    method public default Object? modifyParentData(androidx.ui.core.DensityScope, Object? parentData);
+    method public default Object? modifyParentData(androidx.ui.unit.DensityScope, Object? parentData);
   }
 
   public abstract class Placeable {
     ctor public Placeable();
-    method public abstract operator androidx.ui.core.IntPx? get(androidx.ui.core.AlignmentLine line);
-    method public final androidx.ui.core.IntPx getHeight();
-    method public abstract androidx.ui.core.IntPxSize getSize();
-    method public final androidx.ui.core.IntPx getWidth();
-    method protected abstract void performPlace(androidx.ui.core.IntPxPosition position);
-    property public final androidx.ui.core.IntPx height;
-    property public abstract androidx.ui.core.IntPxSize size;
-    property public final androidx.ui.core.IntPx width;
+    method public abstract operator androidx.ui.unit.IntPx? get(androidx.ui.core.AlignmentLine line);
+    method public final androidx.ui.unit.IntPx getHeight();
+    method public abstract androidx.ui.unit.IntPxSize getSize();
+    method public final androidx.ui.unit.IntPx getWidth();
+    method protected abstract void performPlace(androidx.ui.unit.IntPxPosition position);
+    property public final androidx.ui.unit.IntPx height;
+    property public abstract androidx.ui.unit.IntPxSize size;
+    property public final androidx.ui.unit.IntPx width;
     field public static final androidx.ui.core.Placeable.PlacementScope! PlacementScope;
   }
 
   public static final class Placeable.PlacementScope {
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.IntPxPosition position);
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.PxPosition position);
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.Px x, androidx.ui.core.Px y);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.IntPxPosition position);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.PxPosition position);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.Px x, androidx.ui.unit.Px y);
   }
 
   public enum PointerEventPass {
@@ -621,15 +289,15 @@
   }
 
   public final class PointerInputData {
-    ctor public PointerInputData(androidx.ui.core.Uptime? uptime, androidx.ui.core.PxPosition? position, boolean down);
+    ctor public PointerInputData(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     ctor public PointerInputData();
-    method public androidx.ui.core.Uptime? component1();
-    method public androidx.ui.core.PxPosition? component2();
+    method public androidx.ui.unit.Uptime? component1();
+    method public androidx.ui.unit.PxPosition? component2();
     method public boolean component3();
-    method public androidx.ui.core.PointerInputData copy(androidx.ui.core.Uptime? uptime, androidx.ui.core.PxPosition? position, boolean down);
+    method public androidx.ui.core.PointerInputData copy(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     method public boolean getDown();
-    method public androidx.ui.core.PxPosition? getPosition();
-    method public androidx.ui.core.Uptime? getUptime();
+    method public androidx.ui.unit.PxPosition? getPosition();
+    method public androidx.ui.unit.Uptime? getUptime();
   }
 
   public final class PointerInputKt {
@@ -639,622 +307,20 @@
     method public static boolean changedToUp(androidx.ui.core.PointerInputChange);
     method public static boolean changedToUpIgnoreConsumed(androidx.ui.core.PointerInputChange);
     method public static androidx.ui.core.PointerInputChange consumeDownChange(androidx.ui.core.PointerInputChange);
-    method public static androidx.ui.core.PointerInputChange consumePositionChange(androidx.ui.core.PointerInputChange, androidx.ui.core.Px consumedDx, androidx.ui.core.Px consumedDy);
-    method public static androidx.ui.core.PxPosition positionChange(androidx.ui.core.PointerInputChange);
-    method public static androidx.ui.core.PxPosition positionChangeIgnoreConsumed(androidx.ui.core.PointerInputChange);
+    method public static androidx.ui.core.PointerInputChange consumePositionChange(androidx.ui.core.PointerInputChange, androidx.ui.unit.Px consumedDx, androidx.ui.unit.Px consumedDy);
+    method public static androidx.ui.unit.PxPosition positionChange(androidx.ui.core.PointerInputChange);
+    method public static androidx.ui.unit.PxPosition positionChangeIgnoreConsumed(androidx.ui.core.PointerInputChange);
     method public static boolean positionChanged(androidx.ui.core.PointerInputChange);
     method public static boolean positionChangedIgnoreConsumed(androidx.ui.core.PointerInputChange);
   }
 
-  public final inline class Position {
-    ctor public Position();
-    method public static long constructor-impl(internal long value);
-    method public static boolean equals-impl(long p, Object? p1);
-    method public static boolean equals-impl0(long p1, long p2);
-    method public static androidx.ui.core.Dp getX-impl(long $this);
-    method public static androidx.ui.core.Dp getY-impl(long $this);
-    method public static int hashCode-impl(long p);
-    method public static inline operator long minus-JXBE4ew(long $this, long other);
-    method public static inline operator long plus-JXBE4ew(long $this, long other);
-    method public static String toString-impl(long $this);
-  }
-
-  public final class Px implements java.lang.Comparable<androidx.ui.core.Px> {
-    ctor public Px(float value);
-    method public operator int compareTo(androidx.ui.core.Px other);
-    method public inline operator int compareTo(androidx.ui.core.IntPx other);
-    method public float component1();
-    method public androidx.ui.core.Px copy(float value);
-    method public inline operator androidx.ui.core.Px div(float other);
-    method public inline operator androidx.ui.core.Px div(int other);
-    method public inline operator float div(androidx.ui.core.Px other);
-    method public inline operator float div-kVJEwbQ(float other);
-    method public float getValue();
-    method public inline operator androidx.ui.core.Px minus(androidx.ui.core.Px other);
-    method public inline operator androidx.ui.core.Px minus(androidx.ui.core.IntPx other);
-    method public inline operator androidx.ui.core.Px plus(androidx.ui.core.Px other);
-    method public inline operator androidx.ui.core.Px plus(androidx.ui.core.IntPx other);
-    method public inline operator androidx.ui.core.Px times(float other);
-    method public inline operator androidx.ui.core.Px times(int other);
-    method public inline operator float times(androidx.ui.core.Px other);
-    method public inline operator float times-kVJEwbQ(float other);
-    method public inline operator androidx.ui.core.Px unaryMinus();
-    field public static final androidx.ui.core.Px.Companion! Companion;
-  }
-
-  public static final class Px.Companion {
-    method public androidx.ui.core.Px getInfinity();
-    method public androidx.ui.core.Px getZero();
-    property public final androidx.ui.core.Px Infinity;
-    property public final androidx.ui.core.Px Zero;
-  }
-
-  public final class PxBounds {
-    ctor public PxBounds(androidx.ui.core.Px left, androidx.ui.core.Px top, androidx.ui.core.Px right, androidx.ui.core.Px bottom);
-    method public androidx.ui.core.Px component1();
-    method public androidx.ui.core.Px component2();
-    method public androidx.ui.core.Px component3();
-    method public androidx.ui.core.Px component4();
-    method public androidx.ui.core.PxBounds copy(androidx.ui.core.Px left, androidx.ui.core.Px top, androidx.ui.core.Px right, androidx.ui.core.Px bottom);
-    method public androidx.ui.core.Px getBottom();
-    method public androidx.ui.core.Px getLeft();
-    method public androidx.ui.core.Px getRight();
-    method public androidx.ui.core.Px getTop();
-  }
-
-  public final inline class PxCubed implements java.lang.Comparable<androidx.ui.core.PxCubed> {
-    ctor public PxCubed();
-    method public operator int compareTo-syUR1PY(float p);
-    method public static operator int compareTo-syUR1PY(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px div-kVJEwbQ(float $this, float other);
-    method public static inline operator float div-syUR1PY(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-syUR1PY(float $this, float dimension);
-    method public static inline operator float plus-syUR1PY(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final inline class PxInverse implements java.lang.Comparable<androidx.ui.core.PxInverse> {
-    ctor public PxInverse();
-    method public operator int compareTo-MXEAIGs(float p);
-    method public static operator int compareTo-MXEAIGs(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-MXEAIGs(float $this, float dimension);
-    method public static inline operator float plus-MXEAIGs(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px times-kVJEwbQ(float $this, float other);
-    method public static inline operator float times-syUR1PY(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final class PxKt {
-    method public static inline androidx.ui.core.PxPosition PxPosition(androidx.ui.core.Px x, androidx.ui.core.Px y);
-    method public static inline androidx.ui.core.PxSize PxSize(androidx.ui.core.Px width, androidx.ui.core.Px height);
-    method public static androidx.ui.core.PxPosition center(androidx.ui.core.PxSize);
-    method public static inline androidx.ui.core.Px coerceAtLeast(androidx.ui.core.Px, androidx.ui.core.Px minimumValue);
-    method public static inline androidx.ui.core.Px coerceAtMost(androidx.ui.core.Px, androidx.ui.core.Px maximumValue);
-    method public static inline androidx.ui.core.Px coerceIn(androidx.ui.core.Px, androidx.ui.core.Px minimumValue, androidx.ui.core.Px maximumValue);
-    method public static inline operator float div(float, androidx.ui.core.Px other);
-    method public static inline operator float div(double, androidx.ui.core.Px other);
-    method public static inline operator float div(int, androidx.ui.core.Px other);
-    method public static androidx.ui.core.Px getDistance(androidx.ui.core.PxPosition);
-    method public static inline androidx.ui.core.Px getHeight(androidx.ui.core.PxBounds);
-    method public static androidx.ui.core.Px! getMinDimension(androidx.ui.core.PxSize);
-    method public static inline androidx.ui.core.Px getPx(int);
-    method public static inline androidx.ui.core.Px getPx(double);
-    method public static inline androidx.ui.core.Px getPx(float);
-    method public static inline androidx.ui.core.Px getWidth(androidx.ui.core.PxBounds);
-    method public static androidx.ui.core.Px lerp(androidx.ui.core.Px start, androidx.ui.core.Px stop, float fraction);
-    method public static androidx.ui.core.PxPosition lerp(androidx.ui.core.PxPosition start, androidx.ui.core.PxPosition stop, float fraction);
-    method public static inline androidx.ui.core.Px max(androidx.ui.core.Px a, androidx.ui.core.Px b);
-    method public static inline androidx.ui.core.Px min(androidx.ui.core.Px a, androidx.ui.core.Px b);
-    method public static inline androidx.ui.core.IntPxPosition round(androidx.ui.core.PxPosition);
-    method public static inline operator androidx.ui.core.Px times(float, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px times(double, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px times(int, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.PxSize times(int, androidx.ui.core.PxSize size);
-    method public static inline operator androidx.ui.core.PxSize times(float, androidx.ui.core.PxSize size);
-    method public static inline operator androidx.ui.core.PxSize times(double, androidx.ui.core.PxSize size);
-    method public static androidx.ui.core.PxBounds toBounds(androidx.ui.core.PxSize);
-    method public static inline androidx.ui.engine.geometry.Offset toOffset(androidx.ui.core.PxPosition);
-    method public static androidx.ui.engine.geometry.Rect toRect(androidx.ui.core.PxBounds);
-    method public static androidx.ui.engine.geometry.Rect toRect(androidx.ui.core.PxSize);
-    method public static androidx.ui.core.PxSize toSize(androidx.ui.core.PxBounds);
-  }
-
-  public final class PxPosition {
-    method public androidx.ui.core.PxPosition copy(long value);
-    method public inline androidx.ui.core.Px getX();
-    method public inline androidx.ui.core.Px getY();
-    method public inline operator androidx.ui.core.PxPosition minus(androidx.ui.core.PxPosition other);
-    method public inline operator androidx.ui.core.PxPosition minus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.PxPosition plus(androidx.ui.core.PxPosition other);
-    method public inline operator androidx.ui.core.PxPosition plus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.PxPosition unaryMinus();
-    property public final inline androidx.ui.core.Px x;
-    property public final inline androidx.ui.core.Px y;
-    field public static final androidx.ui.core.PxPosition.Companion! Companion;
-  }
-
-  public static final class PxPosition.Companion {
-    method public androidx.ui.core.PxPosition getOrigin();
-    property public final androidx.ui.core.PxPosition Origin;
-  }
-
-  public final class PxSize {
-    method public androidx.ui.core.PxSize copy(long value);
-    method public inline operator androidx.ui.core.PxSize div(int other);
-    method public inline operator androidx.ui.core.PxSize div(float other);
-    method public inline operator androidx.ui.core.PxSize div(double other);
-    method public inline androidx.ui.core.Px getHeight();
-    method public inline androidx.ui.core.Px getWidth();
-    method public inline operator androidx.ui.core.PxSize times(int other);
-    method public inline operator androidx.ui.core.PxSize times(float other);
-    method public inline operator androidx.ui.core.PxSize times(double other);
-    property public final inline androidx.ui.core.Px height;
-    property public final inline androidx.ui.core.Px width;
-    field public static final androidx.ui.core.PxSize.Companion! Companion;
-  }
-
-  public static final class PxSize.Companion {
-    method public androidx.ui.core.PxSize getZero();
-    property public final androidx.ui.core.PxSize Zero;
-  }
-
-  public final inline class PxSquared implements java.lang.Comparable<androidx.ui.core.PxSquared> {
-    ctor public PxSquared();
-    method public operator int compareTo-kVJEwbQ(float p);
-    method public static operator int compareTo-kVJEwbQ(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator androidx.ui.core.Px div-impl(float $this, androidx.ui.core.Px other);
-    method public static inline operator float div-kVJEwbQ(float $this, float other);
-    method public static inline operator float div-syUR1PY(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-kVJEwbQ(float $this, float other);
-    method public static inline operator float plus-kVJEwbQ(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Px other);
-    method public static String toString-impl(float $this);
-  }
-
   public final class RectHelperKt {
-    method public static android.graphics.Rect toFrameworkRect(androidx.ui.engine.geometry.Rect);
-    method public static android.graphics.RectF toFrameworkRectF(androidx.ui.engine.geometry.Rect);
-  }
-
-  public final inline class Size {
-    ctor public Size();
-    method public static long constructor-impl(internal long value);
-    method public static inline operator long div-impl(long $this, int other);
-    method public static inline operator long div-impl(long $this, float other);
-    method public static inline operator long div-impl(long $this, double other);
-    method public static boolean equals-impl(long p, Object? p1);
-    method public static boolean equals-impl0(long p1, long p2);
-    method public static androidx.ui.core.Dp getHeight-impl(long $this);
-    method public static androidx.ui.core.Dp getWidth-impl(long $this);
-    method public static int hashCode-impl(long p);
-    method public static inline operator long times-impl(long $this, int other);
-    method public static inline operator long times-impl(long $this, float other);
-    method public static inline operator long times-impl(long $this, double other);
-    method public static String toString-impl(long $this);
-  }
-
-  public final class TextUnit {
-    ctor public TextUnit(long packedValue);
-    method public inline operator int compareTo(androidx.ui.core.TextUnit other);
-    method public long component1();
-    method public androidx.ui.core.TextUnit copy(long packedValue);
-    method public inline operator androidx.ui.core.TextUnit div(float other);
-    method public inline operator androidx.ui.core.TextUnit div(double other);
-    method public inline operator androidx.ui.core.TextUnit div(int other);
-    method public inline operator float div(androidx.ui.core.TextUnit other);
-    method public long getPackedValue();
-    method public androidx.ui.core.TextUnitType getType();
-    method public float getValue();
-    method public boolean isEm();
-    method public boolean isInherit();
-    method public boolean isSp();
-    method public inline operator androidx.ui.core.TextUnit minus(androidx.ui.core.TextUnit other);
-    method public inline operator androidx.ui.core.TextUnit plus(androidx.ui.core.TextUnit other);
-    method public inline operator androidx.ui.core.TextUnit times(float other);
-    method public inline operator androidx.ui.core.TextUnit times(double other);
-    method public inline operator androidx.ui.core.TextUnit times(int other);
-    method public inline operator androidx.ui.core.TextUnit unaryMinus();
-    property public final boolean isEm;
-    property public final boolean isInherit;
-    property public final boolean isSp;
-    property public final androidx.ui.core.TextUnitType type;
-    property public final float value;
-    field public static final androidx.ui.core.TextUnit.Companion! Companion;
-  }
-
-  public static final class TextUnit.Companion {
-    method public androidx.ui.core.TextUnit Em(int value);
-    method public androidx.ui.core.TextUnit Em(float value);
-    method public androidx.ui.core.TextUnit Em(double value);
-    method public androidx.ui.core.TextUnit Sp(int value);
-    method public androidx.ui.core.TextUnit Sp(float value);
-    method public androidx.ui.core.TextUnit Sp(double value);
-    method public androidx.ui.core.TextUnit getInherit();
-    property public final androidx.ui.core.TextUnit Inherit;
-  }
-
-  public final class TextUnitKt {
-    method public static inline androidx.ui.core.TextUnit coerceAtLeast(androidx.ui.core.TextUnit, androidx.ui.core.TextUnit minimumValue);
-    method public static inline androidx.ui.core.TextUnit coerceAtMost(androidx.ui.core.TextUnit, androidx.ui.core.TextUnit maximumValue);
-    method public static inline androidx.ui.core.TextUnit coerceIn(androidx.ui.core.TextUnit, androidx.ui.core.TextUnit minimumValue, androidx.ui.core.TextUnit maximumValue);
-    method public static androidx.ui.core.TextUnit getEm(float);
-    method public static androidx.ui.core.TextUnit getEm(double);
-    method public static androidx.ui.core.TextUnit getEm(int);
-    method public static androidx.ui.core.TextUnit getSp(float);
-    method public static androidx.ui.core.TextUnit getSp(double);
-    method public static androidx.ui.core.TextUnit getSp(int);
-    method public static androidx.ui.core.TextUnit lerp(androidx.ui.core.TextUnit a, androidx.ui.core.TextUnit b, float t);
-    method public static inline androidx.ui.core.TextUnit max(androidx.ui.core.TextUnit a, androidx.ui.core.TextUnit b);
-    method public static inline androidx.ui.core.TextUnit min(androidx.ui.core.TextUnit a, androidx.ui.core.TextUnit b);
-    method public static inline operator androidx.ui.core.TextUnit times(float, androidx.ui.core.TextUnit other);
-    method public static inline operator androidx.ui.core.TextUnit times(double, androidx.ui.core.TextUnit other);
-    method public static inline operator androidx.ui.core.TextUnit times(int, androidx.ui.core.TextUnit other);
-  }
-
-  public enum TextUnitType {
-    enum_constant public static final androidx.ui.core.TextUnitType Em;
-    enum_constant public static final androidx.ui.core.TextUnitType Inherit;
-    enum_constant public static final androidx.ui.core.TextUnitType Sp;
-  }
-
-  public final class Uptime implements java.lang.Comparable<androidx.ui.core.Uptime> {
-    ctor public Uptime(long nanoseconds);
-    method public int compareTo(androidx.ui.core.Uptime other);
-    method public long component1();
-    method public androidx.ui.core.Uptime copy(long nanoseconds);
-    method public long getNanoseconds();
-    method public operator androidx.ui.core.Uptime minus(androidx.ui.core.Duration duration);
-    method public operator androidx.ui.core.Duration minus(androidx.ui.core.Uptime other);
-    method public operator androidx.ui.core.Uptime plus(androidx.ui.core.Duration duration);
-    field public static final androidx.ui.core.Uptime.Companion! Companion;
-  }
-
-  public static final class Uptime.Companion {
-    method public androidx.ui.core.Uptime getBoot();
-    property public final androidx.ui.core.Uptime Boot;
-  }
-
-  public final class UptimeKt {
-    method public static operator androidx.ui.core.Uptime plus(androidx.ui.core.Duration, androidx.ui.core.Uptime uptime);
-  }
-
-  public final class Velocity {
-    ctor public Velocity(androidx.ui.core.PxPosition pixelsPerSecond);
-    method public androidx.ui.core.PxPosition component1();
-    method public androidx.ui.core.Velocity copy(androidx.ui.core.PxPosition pixelsPerSecond);
-    method public androidx.ui.core.PxPosition getPixelsPerSecond();
-    method public operator androidx.ui.core.Velocity unaryMinus();
-    field public static final androidx.ui.core.Velocity.Companion! Companion;
-  }
-
-  public static final class Velocity.Companion {
-    method public androidx.ui.core.Velocity getZero();
-    property public final androidx.ui.core.Velocity Zero;
-  }
-
-  public final class VelocityKt {
-    method public static operator androidx.ui.core.Velocity minus(androidx.ui.core.Velocity, androidx.ui.core.Velocity other);
-    method public static operator androidx.ui.core.Velocity plus(androidx.ui.core.Velocity, androidx.ui.core.Velocity other);
+    method public static android.graphics.Rect toFrameworkRect(androidx.ui.geometry.Rect);
+    method public static android.graphics.RectF toFrameworkRectF(androidx.ui.geometry.Rect);
   }
 
   public final class VerticalAlignmentLine extends androidx.ui.core.AlignmentLine {
-    ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.core.IntPx,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> merger);
-  }
-
-}
-
-package androidx.ui.engine.geometry {
-
-  public final class Offset implements androidx.ui.engine.geometry.OffsetBase {
-    ctor public Offset(float dx, float dy);
-    method public infix androidx.ui.engine.geometry.Rect and(androidx.ui.engine.geometry.Size other);
-    method public float component1();
-    method public float component2();
-    method public androidx.ui.engine.geometry.Offset copy(float dx, float dy);
-    method public operator androidx.ui.engine.geometry.Offset div(float operand);
-    method public float getDirection();
-    method public float getDistance();
-    method public float getDistanceSquared();
-    method public float getDx();
-    method public float getDy();
-    method public operator androidx.ui.engine.geometry.Offset minus(androidx.ui.engine.geometry.Offset other);
-    method public operator androidx.ui.engine.geometry.Offset plus(androidx.ui.engine.geometry.Offset other);
-    method public operator androidx.ui.engine.geometry.Offset rem(float operand);
-    method public androidx.ui.engine.geometry.Offset scale(float scaleX, float scaleY);
-    method public operator androidx.ui.engine.geometry.Offset times(float operand);
-    method public androidx.ui.engine.geometry.Offset translate(float translateX, float translateY);
-    method public androidx.ui.engine.geometry.Offset truncDiv(float operand);
-    method public operator androidx.ui.engine.geometry.Offset unaryMinus();
-    field public static final androidx.ui.engine.geometry.Offset.Companion! Companion;
-  }
-
-  public static final class Offset.Companion {
-    method public androidx.ui.engine.geometry.Offset getInfinite();
-    method public androidx.ui.engine.geometry.Offset getZero();
-    method public boolean isValid(androidx.ui.engine.geometry.Offset offset);
-    method public androidx.ui.engine.geometry.Offset lerp(androidx.ui.engine.geometry.Offset start, androidx.ui.engine.geometry.Offset stop, float fraction);
-    property public final androidx.ui.engine.geometry.Offset infinite;
-    property public final androidx.ui.engine.geometry.Offset zero;
-  }
-
-  public interface OffsetBase {
-    method public float getDx();
-    method public float getDy();
-    method public default boolean isFinite();
-    method public default boolean isGreaterOrEqThan(androidx.ui.engine.geometry.OffsetBase other);
-    method public default boolean isGreaterThan(androidx.ui.engine.geometry.OffsetBase other);
-    method public default boolean isInfinite();
-    method public default boolean isLessOrEqThan(androidx.ui.engine.geometry.OffsetBase other);
-    method public default boolean isLessThan(androidx.ui.engine.geometry.OffsetBase other);
-    property public abstract float dx;
-    property public abstract float dy;
-  }
-
-  public final class OffsetKt {
-    method public static androidx.ui.core.PxPosition toPxPosition(androidx.ui.engine.geometry.Offset);
-  }
-
-  public abstract sealed class Outline {
-  }
-
-  public static final class Outline.Generic extends androidx.ui.engine.geometry.Outline {
-    ctor public Outline.Generic(androidx.ui.graphics.Path path);
-    method public androidx.ui.graphics.Path component1();
-    method public androidx.ui.engine.geometry.Outline.Generic copy(androidx.ui.graphics.Path path);
-    method public androidx.ui.graphics.Path getPath();
-  }
-
-  public static final class Outline.Rectangle extends androidx.ui.engine.geometry.Outline {
-    ctor public Outline.Rectangle(androidx.ui.engine.geometry.Rect rect);
-    method public androidx.ui.engine.geometry.Rect component1();
-    method public androidx.ui.engine.geometry.Outline.Rectangle copy(androidx.ui.engine.geometry.Rect rect);
-    method public androidx.ui.engine.geometry.Rect getRect();
-  }
-
-  public static final class Outline.Rounded extends androidx.ui.engine.geometry.Outline {
-    ctor public Outline.Rounded(androidx.ui.engine.geometry.RRect rrect);
-    method public androidx.ui.engine.geometry.RRect component1();
-    method public androidx.ui.engine.geometry.Outline.Rounded copy(androidx.ui.engine.geometry.RRect rrect);
-    method public androidx.ui.engine.geometry.RRect getRrect();
-  }
-
-  public final class OutlineKt {
-    method public static void addOutline(androidx.ui.graphics.Path, androidx.ui.engine.geometry.Outline outline);
-    method public static void drawOutline(androidx.ui.graphics.Canvas, androidx.ui.engine.geometry.Outline outline, androidx.ui.graphics.Paint paint);
-  }
-
-  public final class RRect {
-    ctor public RRect(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
-    method public float component1();
-    method public float component10();
-    method public float component11();
-    method public float component12();
-    method public float component2();
-    method public float component3();
-    method public float component4();
-    method public float component5();
-    method public float component6();
-    method public float component7();
-    method public float component8();
-    method public float component9();
-    method public boolean contains(androidx.ui.engine.geometry.Offset point);
-    method public androidx.ui.engine.geometry.RRect copy(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
-    method @Deprecated public androidx.ui.engine.geometry.RRect deflate(float delta);
-    method public float getBottom();
-    method public float getBottomLeftRadiusX();
-    method public float getBottomLeftRadiusY();
-    method public float getBottomRightRadiusX();
-    method public float getBottomRightRadiusY();
-    method public float getHeight();
-    method public float getLeft();
-    method public float getRight();
-    method public float getTop();
-    method public float getTopLeftRadiusX();
-    method public float getTopLeftRadiusY();
-    method public float getTopRightRadiusX();
-    method public float getTopRightRadiusY();
-    method public float getWidth();
-    method public static androidx.ui.engine.geometry.RRect getZero();
-    method @Deprecated public androidx.ui.engine.geometry.RRect inflate(float delta);
-    property public final float height;
-    property public final float width;
-    field public static final androidx.ui.engine.geometry.RRect.Companion! Companion;
-  }
-
-  public static final class RRect.Companion {
-    method public androidx.ui.engine.geometry.RRect getZero();
-    property public final androidx.ui.engine.geometry.RRect Zero;
-  }
-
-  public final class RRectKt {
-    method public static androidx.ui.engine.geometry.RRect RRect(float left, float top, float right, float bottom, float radiusX, float radiusY);
-    method public static androidx.ui.engine.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.engine.geometry.Radius radius);
-    method public static androidx.ui.engine.geometry.RRect RRect(androidx.ui.engine.geometry.Rect rect, float radiusX, float radiusY);
-    method public static androidx.ui.engine.geometry.RRect RRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.engine.geometry.Radius radius);
-    method public static androidx.ui.engine.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.engine.geometry.Radius topLeft = Radius.zero, androidx.ui.engine.geometry.Radius topRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomLeft = Radius.zero);
-    method public static androidx.ui.engine.geometry.RRect RRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.engine.geometry.Radius topLeft = Radius.zero, androidx.ui.engine.geometry.Radius topRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomLeft = Radius.zero);
-    method public static androidx.ui.engine.geometry.Radius bottomLeftRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Radius bottomRightRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Offset center(androidx.ui.engine.geometry.RRect);
-    method public static float getLongestSide(androidx.ui.engine.geometry.RRect);
-    method public static float getShortestSide(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect grow(androidx.ui.engine.geometry.RRect, float delta);
-    method public static boolean isCircle(androidx.ui.engine.geometry.RRect);
-    method public static boolean isEllipse(androidx.ui.engine.geometry.RRect);
-    method public static boolean isEmpty(androidx.ui.engine.geometry.RRect);
-    method public static boolean isFinite(androidx.ui.engine.geometry.RRect);
-    method public static boolean isRect(androidx.ui.engine.geometry.RRect);
-    method public static boolean isStadium(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect lerp(androidx.ui.engine.geometry.RRect start, androidx.ui.engine.geometry.RRect stop, float fraction);
-    method public static androidx.ui.engine.geometry.Rect middleRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Rect outerRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Rect safeInnerRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect shift(androidx.ui.engine.geometry.RRect, androidx.ui.engine.geometry.Offset offset);
-    method public static androidx.ui.engine.geometry.RRect shrink(androidx.ui.engine.geometry.RRect, float delta);
-    method public static androidx.ui.engine.geometry.Rect tallMiddleRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Radius topLeftRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Radius topRightRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Rect wideMiddleRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect withRadius(androidx.ui.engine.geometry.RRect, androidx.ui.engine.geometry.Radius radius);
-  }
-
-  public final class Radius {
-    ctor public Radius(float x, float y);
-    method public float component1();
-    method public float component2();
-    method public androidx.ui.engine.geometry.Radius copy(float x, float y);
-    method public operator androidx.ui.engine.geometry.Radius div(float operand);
-    method public float getX();
-    method public float getY();
-    method public operator androidx.ui.engine.geometry.Radius minus(androidx.ui.engine.geometry.Radius other);
-    method public operator androidx.ui.engine.geometry.Radius plus(androidx.ui.engine.geometry.Radius other);
-    method public operator androidx.ui.engine.geometry.Radius rem(float operand);
-    method public operator androidx.ui.engine.geometry.Radius times(float operand);
-    method public androidx.ui.engine.geometry.Radius truncDiv(float operand);
-    method public operator androidx.ui.engine.geometry.Radius unaryMinus();
-    field public static final androidx.ui.engine.geometry.Radius.Companion! Companion;
-  }
-
-  public static final class Radius.Companion {
-    method public androidx.ui.engine.geometry.Radius circular(float radius);
-    method public androidx.ui.engine.geometry.Radius elliptical(float x, float y);
-    method public androidx.ui.engine.geometry.Radius getZero();
-    property public final androidx.ui.engine.geometry.Radius zero;
-  }
-
-  public final class RadiusKt {
-    method public static androidx.ui.engine.geometry.Radius lerp(androidx.ui.engine.geometry.Radius start, androidx.ui.engine.geometry.Radius stop, float fraction);
-  }
-
-  public final class Rect {
-    ctor public Rect(float left, float top, float right, float bottom);
-    method public float component1();
-    method public float component2();
-    method public float component3();
-    method public float component4();
-    method public boolean contains(androidx.ui.engine.geometry.Offset offset);
-    method public androidx.ui.engine.geometry.Rect copy(float left, float top, float right, float bottom);
-    method public androidx.ui.engine.geometry.Rect deflate(float delta);
-    method public androidx.ui.engine.geometry.Rect expandToInclude(androidx.ui.engine.geometry.Rect other);
-    method public float getBottom();
-    method public androidx.ui.engine.geometry.Offset getBottomCenter();
-    method public androidx.ui.engine.geometry.Offset getBottomLeft();
-    method public androidx.ui.engine.geometry.Offset getBottomRight();
-    method public androidx.ui.engine.geometry.Offset getCenter();
-    method public androidx.ui.engine.geometry.Offset getCenterLeft();
-    method public androidx.ui.engine.geometry.Offset getCenterRight();
-    method public float getHeight();
-    method public float getLeft();
-    method public float getLongestSide();
-    method public float getRight();
-    method public float getShortestSide();
-    method public androidx.ui.engine.geometry.Size getSize();
-    method public float getTop();
-    method public androidx.ui.engine.geometry.Offset getTopCenter();
-    method public androidx.ui.engine.geometry.Offset getTopLeft();
-    method public androidx.ui.engine.geometry.Offset getTopRight();
-    method public float getWidth();
-    method public androidx.ui.engine.geometry.Rect inflate(float delta);
-    method public androidx.ui.engine.geometry.Rect intersect(androidx.ui.engine.geometry.Rect other);
-    method public boolean isEmpty();
-    method public boolean isFinite();
-    method public boolean isInfinite();
-    method public androidx.ui.engine.geometry.Rect join(androidx.ui.engine.geometry.Rect other);
-    method public boolean overlaps(androidx.ui.engine.geometry.Rect other);
-    method public androidx.ui.engine.geometry.Rect shift(androidx.ui.engine.geometry.Offset offset);
-    method public androidx.ui.engine.geometry.Rect translate(float translateX, float translateY);
-    property public final float height;
-    property public final float width;
-    field public static final androidx.ui.engine.geometry.Rect.Companion! Companion;
-  }
-
-  public static final class Rect.Companion {
-    method public androidx.ui.engine.geometry.Rect fromCircle(androidx.ui.engine.geometry.Offset center, float radius);
-    method public androidx.ui.engine.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
-    method public androidx.ui.engine.geometry.Rect fromLTWH(float left, float top, float width, float height);
-    method public androidx.ui.engine.geometry.Rect fromPoints(androidx.ui.engine.geometry.Offset a, androidx.ui.engine.geometry.Offset b);
-    method public androidx.ui.engine.geometry.Rect getLargest();
-    method public androidx.ui.engine.geometry.Rect getZero();
-    method public float get_giantScalar();
-    property public final float _giantScalar;
-    property public final androidx.ui.engine.geometry.Rect largest;
-    property public final androidx.ui.engine.geometry.Rect zero;
-  }
-
-  public final class RectKt {
-    method public static androidx.ui.engine.geometry.Rect lerp(androidx.ui.engine.geometry.Rect start, androidx.ui.engine.geometry.Rect stop, float fraction);
-  }
-
-  public interface Shape {
-    method public androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
-  }
-
-  public class Size implements androidx.ui.engine.geometry.OffsetBase {
-    ctor public Size(float width, float height);
-    method public final androidx.ui.engine.geometry.Offset bottomCenter(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset bottomLeft(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset bottomRight(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset center(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset centerLeft(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset centerRight(androidx.ui.engine.geometry.Offset origin);
-    method public final boolean contains(androidx.ui.engine.geometry.Offset offset);
-    method public final operator androidx.ui.engine.geometry.Size div(float operand);
-    method public float getDx();
-    method public float getDy();
-    method public final androidx.ui.engine.geometry.Size getFlipped();
-    method public final float getHeight();
-    method public final float getLongestSide();
-    method public final float getShortestSide();
-    method public final float getWidth();
-    method public final boolean isEmpty();
-    method public final operator androidx.ui.engine.geometry.Size minus(androidx.ui.engine.geometry.Offset other);
-    method public final operator androidx.ui.engine.geometry.Offset minus(androidx.ui.engine.geometry.Size other);
-    method public final operator androidx.ui.engine.geometry.Size plus(androidx.ui.engine.geometry.Offset other);
-    method public final operator androidx.ui.engine.geometry.Size rem(float operand);
-    method public final operator androidx.ui.engine.geometry.Size times(float operand);
-    method public final androidx.ui.engine.geometry.Offset topCenter(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset topLeft(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset topRight(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Size truncDiv(float operand);
-    property public float dx;
-    property public float dy;
-    field public static final androidx.ui.engine.geometry.Size.Companion! Companion;
-  }
-
-  public static final class Size.Companion {
-    method public androidx.ui.engine.geometry.Size copy(androidx.ui.engine.geometry.Size source);
-    method public androidx.ui.engine.geometry.Size fromHeight(float height);
-    method public androidx.ui.engine.geometry.Size fromRadius(float radius);
-    method public androidx.ui.engine.geometry.Size fromWidth(float width);
-    method public androidx.ui.engine.geometry.Size getInfinite();
-    method public androidx.ui.engine.geometry.Size getZero();
-    method public androidx.ui.engine.geometry.Size? lerp(androidx.ui.engine.geometry.Size start, androidx.ui.engine.geometry.Size stop, float fraction);
-    method public androidx.ui.engine.geometry.Size square(float dimension);
-    property public final androidx.ui.engine.geometry.Size infinite;
-    property public final androidx.ui.engine.geometry.Size zero;
+    ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> merger);
   }
 
 }
@@ -1285,7 +351,7 @@
 
   public final class AndroidCanvasKt {
     method public static androidx.ui.graphics.Canvas Canvas(androidx.ui.graphics.Image image);
-    method public static androidx.ui.graphics.Canvas Canvas(androidx.ui.graphics.PictureRecorder recorder, androidx.ui.engine.geometry.Rect cullRect = Rect.largest);
+    method public static androidx.ui.graphics.Canvas Canvas(androidx.ui.graphics.PictureRecorder recorder, androidx.ui.geometry.Rect cullRect = Rect.largest);
     method public static androidx.ui.graphics.Canvas Canvas(android.graphics.Canvas c);
   }
 
@@ -1339,42 +405,42 @@
   }
 
   public final class BrushKt {
-    method public static androidx.ui.graphics.LinearGradient HorizontalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.core.Px startX, androidx.ui.core.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.Brush HorizontalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.core.Px startX, androidx.ui.core.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient LinearGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient LinearGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient HorizontalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.unit.Px startX, androidx.ui.unit.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.Brush HorizontalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.unit.Px startX, androidx.ui.unit.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient LinearGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.unit.Px startX, androidx.ui.unit.Px startY, androidx.ui.unit.Px endX, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient LinearGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.unit.Px startX, androidx.ui.unit.Px startY, androidx.ui.unit.Px endX, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
     method public static androidx.ui.graphics.RadialGradient RadialGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, float centerX, float centerY, float radius, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
     method public static androidx.ui.graphics.RadialGradient RadialGradient(java.util.List<androidx.ui.graphics.Color> colors, float centerX, float centerY, float radius, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient VerticalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.core.Px startY, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient VerticalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.core.Px startY, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient VerticalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.unit.Px startY, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient VerticalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.unit.Px startY, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
   }
 
   public interface Canvas {
     method public void clipPath(androidx.ui.graphics.Path path);
-    method public void clipRRect(androidx.ui.engine.geometry.RRect rrect);
-    method public void clipRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.graphics.ClipOp clipOp = androidx.ui.graphics.ClipOp.intersect);
+    method public void clipRRect(androidx.ui.geometry.RRect rrect);
+    method public void clipRect(androidx.ui.geometry.Rect rect, androidx.ui.graphics.ClipOp clipOp = androidx.ui.graphics.ClipOp.intersect);
     method public void concat(androidx.ui.vectormath64.Matrix4 matrix4);
-    method public void drawArc(androidx.ui.engine.geometry.Rect rect, float startAngle, float sweepAngle, boolean useCenter, androidx.ui.graphics.Paint paint);
-    method public default void drawArcRad(androidx.ui.engine.geometry.Rect rect, float startAngleRad, float sweepAngleRad, boolean useCenter, androidx.ui.graphics.Paint paint);
-    method public void drawCircle(androidx.ui.engine.geometry.Offset center, float radius, androidx.ui.graphics.Paint paint);
-    method public void drawDoubleRoundRect(androidx.ui.engine.geometry.RRect outer, androidx.ui.engine.geometry.RRect inner, androidx.ui.graphics.Paint paint);
-    method public void drawImage(androidx.ui.graphics.Image image, androidx.ui.engine.geometry.Offset topLeftOffset, androidx.ui.graphics.Paint paint);
-    method public void drawImageRect(androidx.ui.graphics.Image image, androidx.ui.engine.geometry.Rect src, androidx.ui.engine.geometry.Rect dst, androidx.ui.graphics.Paint paint);
-    method public void drawLine(androidx.ui.engine.geometry.Offset p1, androidx.ui.engine.geometry.Offset p2, androidx.ui.graphics.Paint paint);
-    method public void drawOval(androidx.ui.engine.geometry.Rect rect, androidx.ui.graphics.Paint paint);
+    method public void drawArc(androidx.ui.geometry.Rect rect, float startAngle, float sweepAngle, boolean useCenter, androidx.ui.graphics.Paint paint);
+    method public default void drawArcRad(androidx.ui.geometry.Rect rect, float startAngleRad, float sweepAngleRad, boolean useCenter, androidx.ui.graphics.Paint paint);
+    method public void drawCircle(androidx.ui.geometry.Offset center, float radius, androidx.ui.graphics.Paint paint);
+    method public void drawDoubleRoundRect(androidx.ui.geometry.RRect outer, androidx.ui.geometry.RRect inner, androidx.ui.graphics.Paint paint);
+    method public void drawImage(androidx.ui.graphics.Image image, androidx.ui.geometry.Offset topLeftOffset, androidx.ui.graphics.Paint paint);
+    method public void drawImageRect(androidx.ui.graphics.Image image, androidx.ui.geometry.Rect src, androidx.ui.geometry.Rect dst, androidx.ui.graphics.Paint paint);
+    method public void drawLine(androidx.ui.geometry.Offset p1, androidx.ui.geometry.Offset p2, androidx.ui.graphics.Paint paint);
+    method public void drawOval(androidx.ui.geometry.Rect rect, androidx.ui.graphics.Paint paint);
     method public void drawPath(androidx.ui.graphics.Path path, androidx.ui.graphics.Paint paint);
     method public void drawPicture(androidx.ui.graphics.Picture picture);
-    method public void drawPoints(androidx.ui.graphics.PointMode pointMode, java.util.List<androidx.ui.engine.geometry.Offset> points, androidx.ui.graphics.Paint paint);
-    method public void drawRRect(androidx.ui.engine.geometry.RRect rrect, androidx.ui.graphics.Paint paint);
+    method public void drawPoints(androidx.ui.graphics.PointMode pointMode, java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.Paint paint);
+    method public void drawRRect(androidx.ui.geometry.RRect rrect, androidx.ui.graphics.Paint paint);
     method public void drawRawPoints(androidx.ui.graphics.PointMode pointMode, float[] points, androidx.ui.graphics.Paint paint);
-    method public void drawRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.graphics.Paint paint);
+    method public void drawRect(androidx.ui.geometry.Rect rect, androidx.ui.graphics.Paint paint);
     method public void drawVertices(androidx.ui.Vertices vertices, androidx.ui.graphics.BlendMode blendMode, androidx.ui.graphics.Paint paint);
     method public android.graphics.Canvas getNativeCanvas();
     method public void restore();
     method public void rotate(float degrees);
     method public default void rotateRad(float radians);
     method public void save();
-    method public void saveLayer(androidx.ui.engine.geometry.Rect bounds, androidx.ui.graphics.Paint paint);
+    method public void saveLayer(androidx.ui.geometry.Rect bounds, androidx.ui.graphics.Paint paint);
     method public void scale(float sx, float sy = sx);
     method public void skew(float sx, float sy);
     method public default void skewRad(float sxRad, float syRad);
@@ -1384,7 +450,7 @@
 
   public final class CanvasKt {
     method public static inline void withSave(androidx.ui.graphics.Canvas, kotlin.jvm.functions.Function0<kotlin.Unit> block);
-    method public static inline void withSaveLayer(androidx.ui.graphics.Canvas, androidx.ui.engine.geometry.Rect bounds, androidx.ui.graphics.Paint paint, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+    method public static inline void withSaveLayer(androidx.ui.graphics.Canvas, androidx.ui.geometry.Rect bounds, androidx.ui.graphics.Paint paint, kotlin.jvm.functions.Function0<kotlin.Unit> block);
   }
 
   public enum ClipOp {
@@ -1468,7 +534,7 @@
     method public float component1();
     method public androidx.ui.graphics.FixedScale copy(float value);
     method public float getValue();
-    method public float scale(androidx.ui.core.PxSize srcSize, androidx.ui.core.PxSize dstSize);
+    method public float scale(androidx.ui.unit.PxSize srcSize, androidx.ui.unit.PxSize dstSize);
   }
 
   public interface Image {
@@ -1499,7 +565,7 @@
   }
 
   public final class LinearGradient extends androidx.ui.graphics.ShaderBrush {
-    method public androidx.ui.graphics.LinearGradient copy(java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? stops, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode);
+    method public androidx.ui.graphics.LinearGradient copy(java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? stops, androidx.ui.unit.Px startX, androidx.ui.unit.Px startY, androidx.ui.unit.Px endX, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode);
   }
 
   public final class MaskFilter {
@@ -1517,6 +583,35 @@
   public static final class MaskFilter.Companion {
   }
 
+  public abstract sealed class Outline {
+  }
+
+  public static final class Outline.Generic extends androidx.ui.graphics.Outline {
+    ctor public Outline.Generic(androidx.ui.graphics.Path path);
+    method public androidx.ui.graphics.Path component1();
+    method public androidx.ui.graphics.Outline.Generic copy(androidx.ui.graphics.Path path);
+    method public androidx.ui.graphics.Path getPath();
+  }
+
+  public static final class Outline.Rectangle extends androidx.ui.graphics.Outline {
+    ctor public Outline.Rectangle(androidx.ui.geometry.Rect rect);
+    method public androidx.ui.geometry.Rect component1();
+    method public androidx.ui.graphics.Outline.Rectangle copy(androidx.ui.geometry.Rect rect);
+    method public androidx.ui.geometry.Rect getRect();
+  }
+
+  public static final class Outline.Rounded extends androidx.ui.graphics.Outline {
+    ctor public Outline.Rounded(androidx.ui.geometry.RRect rrect);
+    method public androidx.ui.geometry.RRect component1();
+    method public androidx.ui.graphics.Outline.Rounded copy(androidx.ui.geometry.RRect rrect);
+    method public androidx.ui.geometry.RRect getRrect();
+  }
+
+  public final class OutlineKt {
+    method public static void addOutline(androidx.ui.graphics.Path, androidx.ui.graphics.Outline outline);
+    method public static void drawOutline(androidx.ui.graphics.Canvas, androidx.ui.graphics.Outline outline, androidx.ui.graphics.Paint paint);
+  }
+
   public final class Paint {
     ctor public Paint();
     method public android.graphics.Paint asFrameworkPaint();
@@ -1570,22 +665,22 @@
     ctor public Path(android.graphics.Path internalPath);
     ctor public Path();
     method public void _addRect(float left, float top, float right, float bottom);
-    method public void addArc(androidx.ui.engine.geometry.Rect oval, float startAngleDegrees, float sweepAngleDegrees);
-    method public void addArcRad(androidx.ui.engine.geometry.Rect oval, float startAngleRadians, float sweepAngleRadians);
-    method public void addOval(androidx.ui.engine.geometry.Rect oval);
-    method public void addPath(androidx.ui.graphics.Path path, androidx.ui.engine.geometry.Offset offset = Offset.zero, androidx.ui.vectormath64.Matrix4? matrix = null);
-    method public void addPolygon(java.util.List<androidx.ui.engine.geometry.Offset> points, boolean close);
-    method public void addRRect(androidx.ui.engine.geometry.RRect rrect);
-    method public void addRect(androidx.ui.engine.geometry.Rect rect);
-    method public void arcTo(androidx.ui.engine.geometry.Rect rect, float startAngleDegrees, float sweepAngleDegrees, boolean forceMoveTo);
-    method public void arcToPoint(androidx.ui.engine.geometry.Offset arcEnd, androidx.ui.engine.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
-    method public void arcToRad(androidx.ui.engine.geometry.Rect rect, float startAngleRadians, float sweepAngleRadians, boolean forceMoveTo);
+    method public void addArc(androidx.ui.geometry.Rect oval, float startAngleDegrees, float sweepAngleDegrees);
+    method public void addArcRad(androidx.ui.geometry.Rect oval, float startAngleRadians, float sweepAngleRadians);
+    method public void addOval(androidx.ui.geometry.Rect oval);
+    method public void addPath(androidx.ui.graphics.Path path, androidx.ui.geometry.Offset offset = Offset.zero, androidx.ui.vectormath64.Matrix4? matrix = null);
+    method public void addPolygon(java.util.List<androidx.ui.geometry.Offset> points, boolean close);
+    method public void addRRect(androidx.ui.geometry.RRect rrect);
+    method public void addRect(androidx.ui.geometry.Rect rect);
+    method public void arcTo(androidx.ui.geometry.Rect rect, float startAngleDegrees, float sweepAngleDegrees, boolean forceMoveTo);
+    method public void arcToPoint(androidx.ui.geometry.Offset arcEnd, androidx.ui.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
+    method public void arcToRad(androidx.ui.geometry.Rect rect, float startAngleRadians, float sweepAngleRadians, boolean forceMoveTo);
     method public void close();
     method public void conicTo(float x1, float y1, float x2, float y2, float w);
-    method public boolean contains(androidx.ui.engine.geometry.Offset offset);
+    method public boolean contains(androidx.ui.geometry.Offset offset);
     method public void cubicTo(float x1, float y1, float x2, float y2, float x3, float y3);
-    method public void extendWithPath(androidx.ui.graphics.Path path, androidx.ui.engine.geometry.Offset offset, androidx.ui.vectormath64.Matrix4 matrix);
-    method public androidx.ui.engine.geometry.Rect getBounds();
+    method public void extendWithPath(androidx.ui.graphics.Path path, androidx.ui.geometry.Offset offset, androidx.ui.vectormath64.Matrix4 matrix);
+    method public androidx.ui.geometry.Rect getBounds();
     method public androidx.ui.graphics.PathFillType getFillType();
     method public boolean isConvex();
     method public boolean isEmpty();
@@ -1593,7 +688,7 @@
     method public void moveTo(float dx, float dy);
     method public boolean op(androidx.ui.graphics.Path path1, androidx.ui.graphics.Path path2, androidx.ui.graphics.PathOperation operation);
     method public void quadraticBezierTo(float x1, float y1, float x2, float y2);
-    method public void relativeArcToPoint(androidx.ui.engine.geometry.Offset arcEndDelta, androidx.ui.engine.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
+    method public void relativeArcToPoint(androidx.ui.geometry.Offset arcEndDelta, androidx.ui.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
     method public void relativeConicTo(float x1, float y1, float x2, float y2, float w);
     method public void relativeCubicTo(float x1, float y1, float x2, float y2, float x3, float y3);
     method public void relativeLineTo(float dx, float dy);
@@ -1601,7 +696,7 @@
     method public void relativeQuadraticBezierTo(float x1, float y1, float x2, float y2);
     method public void reset();
     method public void setFillType(androidx.ui.graphics.PathFillType value);
-    method public void shift(androidx.ui.engine.geometry.Offset offset);
+    method public void shift(androidx.ui.geometry.Offset offset);
     method public android.graphics.Path toFrameworkPath();
     method public androidx.ui.graphics.Path transform(androidx.ui.vectormath64.Matrix4 matrix);
     property public final boolean isConvex;
@@ -1628,7 +723,7 @@
 
   public final class Picture {
     ctor public Picture(android.graphics.Picture frameworkPicture);
-    method public androidx.ui.engine.geometry.Rect cullRect();
+    method public androidx.ui.geometry.Rect cullRect();
     method public void dispose();
     method public android.graphics.Picture getFrameworkPicture();
   }
@@ -1651,7 +746,7 @@
   }
 
   public interface ScaleFit {
-    method public float scale(androidx.ui.core.PxSize srcSize, androidx.ui.core.PxSize dstSize);
+    method public float scale(androidx.ui.unit.PxSize srcSize, androidx.ui.unit.PxSize dstSize);
     field public static final androidx.ui.graphics.ScaleFit.Companion! Companion;
   }
 
@@ -1686,26 +781,30 @@
 
   public final class ShaderKt {
     method public static androidx.ui.graphics.Shader ImageShader(androidx.ui.graphics.Image image, androidx.ui.graphics.TileMode tileModeX = androidx.ui.graphics.TileMode.Clamp, androidx.ui.graphics.TileMode tileModeY = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.Shader LinearGradientShader(androidx.ui.engine.geometry.Offset from, androidx.ui.engine.geometry.Offset to, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.Shader RadialGradientShader(androidx.ui.engine.geometry.Offset center, float radius, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.Shader LinearGradientShader(androidx.ui.geometry.Offset from, androidx.ui.geometry.Offset to, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.Shader RadialGradientShader(androidx.ui.geometry.Offset center, float radius, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
   }
 
   public final class Shadow {
-    ctor public Shadow(androidx.ui.graphics.Color color, androidx.ui.engine.geometry.Offset offset, androidx.ui.core.Px blurRadius);
+    ctor public Shadow(androidx.ui.graphics.Color color, androidx.ui.geometry.Offset offset, androidx.ui.unit.Px blurRadius);
     ctor public Shadow();
     method public androidx.ui.graphics.Color component1();
-    method public androidx.ui.engine.geometry.Offset component2();
-    method public androidx.ui.core.Px component3();
-    method public androidx.ui.graphics.Shadow copy(androidx.ui.graphics.Color color, androidx.ui.engine.geometry.Offset offset, androidx.ui.core.Px blurRadius);
-    method public androidx.ui.core.Px getBlurRadius();
+    method public androidx.ui.geometry.Offset component2();
+    method public androidx.ui.unit.Px component3();
+    method public androidx.ui.graphics.Shadow copy(androidx.ui.graphics.Color color, androidx.ui.geometry.Offset offset, androidx.ui.unit.Px blurRadius);
+    method public androidx.ui.unit.Px getBlurRadius();
     method public androidx.ui.graphics.Color getColor();
-    method public androidx.ui.engine.geometry.Offset getOffset();
+    method public androidx.ui.geometry.Offset getOffset();
   }
 
   public final class ShadowKt {
     method public static androidx.ui.graphics.Shadow lerp(androidx.ui.graphics.Shadow start, androidx.ui.graphics.Shadow stop, float fraction);
   }
 
+  public interface Shape {
+    method public androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
+  }
+
   public final class SolidColor implements androidx.ui.graphics.Brush {
     ctor public SolidColor(androidx.ui.graphics.Color value);
     method public void applyTo(androidx.ui.graphics.Paint p);
@@ -2203,85 +1302,16 @@
 
   public final class PointerInputTestUtilKt {
     method public static androidx.ui.core.PointerInputChange consume(androidx.ui.core.PointerInputChange, float dx = 0f, float dy = 0f, boolean downChange = false);
-    method public static androidx.ui.core.PointerInputChange down(int id = 0, androidx.ui.core.Duration duration = Duration.Zero, float x = 0f, float y = 0f);
-    method public static androidx.ui.core.PointerInputChange invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChanges, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass![] pointerEventPasses, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, java.util.List<androidx.ui.core.PointerInputChange> pointerInputChanges, java.util.List<? extends androidx.ui.core.PointerEventPass> pointerEventPasses, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static androidx.ui.core.PointerInputChange moveBy(androidx.ui.core.PointerInputChange, androidx.ui.core.Duration duration, float dx = 0f, float dy = 0f);
-    method public static androidx.ui.core.PointerInputChange moveTo(androidx.ui.core.PointerInputChange, androidx.ui.core.Duration duration, float x = 0f, float y = 0f);
-    method public static androidx.ui.core.PointerInputChange up(androidx.ui.core.PointerInputChange, androidx.ui.core.Duration duration);
-  }
-
-}
-
-package androidx.ui.util {
-
-  public final class Float16 implements java.lang.Comparable<androidx.ui.util.Float16> {
-    ctor public Float16(short halfValue);
-    ctor public Float16(float value);
-    ctor public Float16(double value);
-    method public androidx.ui.util.Float16 absoluteValue();
-    method public androidx.ui.util.Float16 ceil();
-    method public operator int compareTo(androidx.ui.util.Float16 other);
-    method public androidx.ui.util.Float16 floor();
-    method public int getExponent();
-    method public short getHalfValue();
-    method public androidx.ui.util.Float16 getSign();
-    method public int getSignificand();
-    method public boolean isFinite();
-    method public boolean isInfinite();
-    method public boolean isNaN();
-    method public boolean isNormalized();
-    method public androidx.ui.util.Float16 round();
-    method public int toBits();
-    method public byte toByte();
-    method public double toDouble();
-    method public float toFloat();
-    method public String toHexString();
-    method public int toInt();
-    method public long toLong();
-    method public int toRawBits();
-    method public short toShort();
-    method public androidx.ui.util.Float16 trunc();
-    method public androidx.ui.util.Float16 withSign(androidx.ui.util.Float16 sign);
-    property public final int exponent;
-    property public final androidx.ui.util.Float16 sign;
-    property public final int significand;
-    field public static final androidx.ui.util.Float16.Companion! Companion;
-    field public static final int MaxExponent = 15; // 0xf
-    field public static final int MinExponent = -14; // 0xfffffff2
-    field public static final int Size = 16; // 0x10
-  }
-
-  public static final class Float16.Companion {
-    method public androidx.ui.util.Float16 getEpsilon();
-    method public androidx.ui.util.Float16 getLowestValue();
-    method public androidx.ui.util.Float16 getMaxValue();
-    method public androidx.ui.util.Float16 getMinNormal();
-    method public androidx.ui.util.Float16 getMinValue();
-    method public androidx.ui.util.Float16 getNaN();
-    method public androidx.ui.util.Float16 getNegativeInfinity();
-    method public androidx.ui.util.Float16 getNegativeZero();
-    method public androidx.ui.util.Float16 getPositiveInfinity();
-    method public androidx.ui.util.Float16 getPositiveZero();
-    property public final androidx.ui.util.Float16 Epsilon;
-    property public final androidx.ui.util.Float16 LowestValue;
-    property public final androidx.ui.util.Float16 MaxValue;
-    property public final androidx.ui.util.Float16 MinNormal;
-    property public final androidx.ui.util.Float16 MinValue;
-    property public final androidx.ui.util.Float16 NaN;
-    property public final androidx.ui.util.Float16 NegativeInfinity;
-    property public final androidx.ui.util.Float16 NegativeZero;
-    property public final androidx.ui.util.Float16 PositiveInfinity;
-    property public final androidx.ui.util.Float16 PositiveZero;
-  }
-
-  public final class Float16Kt {
-    method public static androidx.ui.util.Float16 max(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
-    method public static androidx.ui.util.Float16 min(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
+    method public static androidx.ui.core.PointerInputChange down(int id = 0, androidx.ui.unit.Duration duration = Duration.Zero, float x = 0f, float y = 0f);
+    method public static androidx.ui.core.PointerInputChange invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChanges, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass![] pointerEventPasses, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, java.util.List<androidx.ui.core.PointerInputChange> pointerInputChanges, java.util.List<? extends androidx.ui.core.PointerEventPass> pointerEventPasses, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static androidx.ui.core.PointerInputChange moveBy(androidx.ui.core.PointerInputChange, androidx.ui.unit.Duration duration, float dx = 0f, float dy = 0f);
+    method public static androidx.ui.core.PointerInputChange moveTo(androidx.ui.core.PointerInputChange, androidx.ui.unit.Duration duration, float x = 0f, float y = 0f);
+    method public static androidx.ui.core.PointerInputChange up(androidx.ui.core.PointerInputChange, androidx.ui.unit.Duration duration);
   }
 
 }
@@ -2418,12 +1448,12 @@
 
   public final class Matrix4Kt {
     method public static Float? getAsScale(androidx.ui.vectormath64.Matrix4);
-    method public static androidx.ui.engine.geometry.Offset? getAsTranslation(androidx.ui.vectormath64.Matrix4);
-    method public static androidx.ui.engine.geometry.Rect inverseTransformRect(androidx.ui.vectormath64.Matrix4 transform, androidx.ui.engine.geometry.Rect rect);
+    method public static androidx.ui.geometry.Offset? getAsTranslation(androidx.ui.vectormath64.Matrix4);
+    method public static androidx.ui.geometry.Rect inverseTransformRect(androidx.ui.vectormath64.Matrix4 transform, androidx.ui.geometry.Rect rect);
     method public static boolean isIdentity(androidx.ui.vectormath64.Matrix4);
     method public static boolean matrixEquals(androidx.ui.vectormath64.Matrix4? a, androidx.ui.vectormath64.Matrix4? b);
-    method public static androidx.ui.engine.geometry.Offset transformPoint(androidx.ui.vectormath64.Matrix4, androidx.ui.engine.geometry.Offset point);
-    method public static androidx.ui.engine.geometry.Rect transformRect(androidx.ui.vectormath64.Matrix4, androidx.ui.engine.geometry.Rect rect);
+    method public static androidx.ui.geometry.Offset transformPoint(androidx.ui.vectormath64.Matrix4, androidx.ui.geometry.Offset point);
+    method public static androidx.ui.geometry.Rect transformRect(androidx.ui.vectormath64.Matrix4, androidx.ui.geometry.Rect rect);
   }
 
   public enum MatrixColumn {
diff --git a/ui/ui-core/api/api_lint.ignore b/ui/ui-core/api/api_lint.ignore
index 3afdb6a..21c5b15 100644
--- a/ui/ui-core/api/api_lint.ignore
+++ b/ui/ui-core/api/api_lint.ignore
@@ -1,89 +1,23 @@
 // Baseline format: 1.0
-AcronymName: androidx.ui.core.Dp#div-KkBJKWw(float):
-    Acronyms should not be capitalized in method names: was `div-KkBJKWw`, should this be `div-KkBjkWw`?
-AcronymName: androidx.ui.core.Dp#times-KkBJKWw(float):
-    Acronyms should not be capitalized in method names: was `times-KkBJKWw`, should this be `times-KkBjkWw`?
-AcronymName: androidx.ui.core.DpCubed#div-KkBJKWw(float, float):
-    Acronyms should not be capitalized in method names: was `div-KkBJKWw`, should this be `div-KkBjkWw`?
-AcronymName: androidx.ui.core.DpInverse#compareTo-ASDJgtI(float):
-    Acronyms should not be capitalized in method names: was `compareTo-ASDJgtI`, should this be `compareTo-AsdJgtI`?
-AcronymName: androidx.ui.core.DpInverse#compareTo-ASDJgtI(float, float):
-    Acronyms should not be capitalized in method names: was `compareTo-ASDJgtI`, should this be `compareTo-AsdJgtI`?
-AcronymName: androidx.ui.core.DpInverse#minus-ASDJgtI(float, float):
-    Acronyms should not be capitalized in method names: was `minus-ASDJgtI`, should this be `minus-AsdJgtI`?
-AcronymName: androidx.ui.core.DpInverse#plus-ASDJgtI(float, float):
-    Acronyms should not be capitalized in method names: was `plus-ASDJgtI`, should this be `plus-AsdJgtI`?
-AcronymName: androidx.ui.core.DpInverse#times-KkBJKWw(float, float):
-    Acronyms should not be capitalized in method names: was `times-KkBJKWw`, should this be `times-KkBjkWw`?
-AcronymName: androidx.ui.core.DpKt#getDistance-JXBE4ew(long):
-    Acronyms should not be capitalized in method names: was `getDistance-JXBE4ew`, should this be `getDistance-JxbE4ew`?
-AcronymName: androidx.ui.core.DpKt#lerp-SuMVOfk(long, long, float):
-    Acronyms should not be capitalized in method names: was `lerp-SuMVOfk`, should this be `lerp-SuMvOfk`?
-AcronymName: androidx.ui.core.DpKt#times-Ze-JISM(int, long):
-    Acronyms should not be capitalized in method names: was `times-Ze-JISM`, should this be `times-Ze-Jism`?
-AcronymName: androidx.ui.core.DpKt#times-doH9uME(float, long):
-    Acronyms should not be capitalized in method names: was `times-doH9uME`, should this be `times-doH9uMe`?
-AcronymName: androidx.ui.core.DpKt#times-nKWVx08(double, long):
-    Acronyms should not be capitalized in method names: was `times-nKWVx08`, should this be `times-nKwVx08`?
-AcronymName: androidx.ui.core.DpSquared#compareTo-KkBJKWw(float):
-    Acronyms should not be capitalized in method names: was `compareTo-KkBJKWw`, should this be `compareTo-KkBjkWw`?
-AcronymName: androidx.ui.core.DpSquared#compareTo-KkBJKWw(float, float):
-    Acronyms should not be capitalized in method names: was `compareTo-KkBJKWw`, should this be `compareTo-KkBjkWw`?
-AcronymName: androidx.ui.core.DpSquared#div-KkBJKWw(float, float):
-    Acronyms should not be capitalized in method names: was `div-KkBJKWw`, should this be `div-KkBjkWw`?
-AcronymName: androidx.ui.core.DpSquared#minus-KkBJKWw(float, float):
-    Acronyms should not be capitalized in method names: was `minus-KkBJKWw`, should this be `minus-KkBjkWw`?
-AcronymName: androidx.ui.core.DpSquared#plus-KkBJKWw(float, float):
-    Acronyms should not be capitalized in method names: was `plus-KkBJKWw`, should this be `plus-KkBjkWw`?
-AcronymName: androidx.ui.core.Position#minus-JXBE4ew(long, long):
-    Acronyms should not be capitalized in method names: was `minus-JXBE4ew`, should this be `minus-JxbE4ew`?
-AcronymName: androidx.ui.core.Position#plus-JXBE4ew(long, long):
-    Acronyms should not be capitalized in method names: was `plus-JXBE4ew`, should this be `plus-JxbE4ew`?
-AcronymName: androidx.ui.core.Px#div-kVJEwbQ(float):
-    Acronyms should not be capitalized in method names: was `div-kVJEwbQ`, should this be `div-kVjEwbQ`?
-AcronymName: androidx.ui.core.Px#times-kVJEwbQ(float):
-    Acronyms should not be capitalized in method names: was `times-kVJEwbQ`, should this be `times-kVjEwbQ`?
-AcronymName: androidx.ui.core.PxCubed#div-kVJEwbQ(float, float):
-    Acronyms should not be capitalized in method names: was `div-kVJEwbQ`, should this be `div-kVjEwbQ`?
-AcronymName: androidx.ui.core.PxInverse#compareTo-MXEAIGs(float):
-    Acronyms should not be capitalized in method names: was `compareTo-MXEAIGs`, should this be `compareTo-MxeaiGs`?
-AcronymName: androidx.ui.core.PxInverse#compareTo-MXEAIGs(float, float):
-    Acronyms should not be capitalized in method names: was `compareTo-MXEAIGs`, should this be `compareTo-MxeaiGs`?
-AcronymName: androidx.ui.core.PxInverse#minus-MXEAIGs(float, float):
-    Acronyms should not be capitalized in method names: was `minus-MXEAIGs`, should this be `minus-MxeaiGs`?
-AcronymName: androidx.ui.core.PxInverse#plus-MXEAIGs(float, float):
-    Acronyms should not be capitalized in method names: was `plus-MXEAIGs`, should this be `plus-MxeaiGs`?
-AcronymName: androidx.ui.core.PxInverse#times-kVJEwbQ(float, float):
-    Acronyms should not be capitalized in method names: was `times-kVJEwbQ`, should this be `times-kVjEwbQ`?
-AcronymName: androidx.ui.core.PxSquared#compareTo-kVJEwbQ(float):
-    Acronyms should not be capitalized in method names: was `compareTo-kVJEwbQ`, should this be `compareTo-kVjEwbQ`?
-AcronymName: androidx.ui.core.PxSquared#compareTo-kVJEwbQ(float, float):
-    Acronyms should not be capitalized in method names: was `compareTo-kVJEwbQ`, should this be `compareTo-kVjEwbQ`?
-AcronymName: androidx.ui.core.PxSquared#div-kVJEwbQ(float, float):
-    Acronyms should not be capitalized in method names: was `div-kVJEwbQ`, should this be `div-kVjEwbQ`?
-AcronymName: androidx.ui.core.PxSquared#minus-kVJEwbQ(float, float):
-    Acronyms should not be capitalized in method names: was `minus-kVJEwbQ`, should this be `minus-kVjEwbQ`?
-AcronymName: androidx.ui.core.PxSquared#plus-kVJEwbQ(float, float):
-    Acronyms should not be capitalized in method names: was `plus-kVJEwbQ`, should this be `plus-kVjEwbQ`?
 AcronymName: androidx.ui.engine.geometry.Rect.Companion#fromLTRB(float, float, float, float):
     Acronyms should not be capitalized in method names: was `fromLTRB`, should this be `fromLtrb`?
 AcronymName: androidx.ui.engine.geometry.Rect.Companion#fromLTWH(float, float, float, float):
     Acronyms should not be capitalized in method names: was `fromLTWH`, should this be `fromLtwh`?
 
 
-ArrayReturn: androidx.ui.graphics.BrushKt#HorizontalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>[], androidx.ui.core.Px, androidx.ui.core.Px, androidx.ui.graphics.TileMode) parameter #0:
+ArrayReturn: androidx.ui.graphics.BrushKt#HorizontalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>[], androidx.ui.unit.Px, androidx.ui.unit.Px, androidx.ui.graphics.TileMode) parameter #0:
     Method parameter should be Collection<Pair> (or subclass) instead of raw array; was `kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>[]`
-ArrayReturn: androidx.ui.graphics.BrushKt#LinearGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>[], androidx.ui.core.Px, androidx.ui.core.Px, androidx.ui.core.Px, androidx.ui.core.Px, androidx.ui.graphics.TileMode) parameter #0:
+ArrayReturn: androidx.ui.graphics.BrushKt#LinearGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>[], androidx.ui.unit.Px, androidx.ui.unit.Px, androidx.ui.unit.Px, androidx.ui.unit.Px, androidx.ui.graphics.TileMode) parameter #0:
     Method parameter should be Collection<Pair> (or subclass) instead of raw array; was `kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>[]`
 ArrayReturn: androidx.ui.graphics.BrushKt#RadialGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>[], float, float, float, androidx.ui.graphics.TileMode) parameter #0:
     Method parameter should be Collection<Pair> (or subclass) instead of raw array; was `kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>[]`
-ArrayReturn: androidx.ui.graphics.BrushKt#VerticalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>[], androidx.ui.core.Px, androidx.ui.core.Px, androidx.ui.graphics.TileMode) parameter #0:
+ArrayReturn: androidx.ui.graphics.BrushKt#VerticalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>[], androidx.ui.unit.Px, androidx.ui.unit.Px, androidx.ui.graphics.TileMode) parameter #0:
     Method parameter should be Collection<Pair> (or subclass) instead of raw array; was `kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>[]`
-ArrayReturn: androidx.ui.testutils.PointerInputTestUtilKt#invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange[], androidx.ui.core.IntPxSize) parameter #1:
+ArrayReturn: androidx.ui.testutils.PointerInputTestUtilKt#invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange[], androidx.ui.unit.IntPxSize) parameter #1:
     Method parameter should be Collection<PointerInputChange> (or subclass) instead of raw array; was `androidx.ui.core.PointerInputChange[]`
-ArrayReturn: androidx.ui.testutils.PointerInputTestUtilKt#invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange, androidx.ui.core.PointerEventPass[], androidx.ui.core.IntPxSize) parameter #2:
+ArrayReturn: androidx.ui.testutils.PointerInputTestUtilKt#invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange, androidx.ui.core.PointerEventPass[], androidx.ui.unit.IntPxSize) parameter #2:
     Method parameter should be Collection<PointerEventPass> (or subclass) instead of raw array; was `androidx.ui.core.PointerEventPass[]`
-ArrayReturn: androidx.ui.testutils.PointerInputTestUtilKt#invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange[], androidx.ui.core.PointerEventPass, androidx.ui.core.IntPxSize) parameter #1:
+ArrayReturn: androidx.ui.testutils.PointerInputTestUtilKt#invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange[], androidx.ui.core.PointerEventPass, androidx.ui.unit.IntPxSize) parameter #1:
     Method parameter should be Collection<PointerInputChange> (or subclass) instead of raw array; was `androidx.ui.core.PointerInputChange[]`
 
 
@@ -133,17 +67,9 @@
     Note that adding the `operator` keyword would allow calling this method using operator syntax
 
 
-MethodNameUnits: androidx.ui.core.Durations#inSeconds(androidx.ui.core.Duration):
-    Returned time values must be in milliseconds, was `inSeconds`
-
-
 MissingBuildMethod: androidx.ui.graphics.vector.PathBuilder:
     androidx.ui.graphics.vector.PathBuilder does not declare a `build()` method, but builder classes are expected to
 
 
-MissingNullability: androidx.ui.core.PxKt#getMinDimension(androidx.ui.core.PxSize):
-    Missing nullability on method `getMinDimension` return
-
-
 TopLevelBuilder: androidx.ui.graphics.vector.PathBuilder:
     Builder should be defined as inner class: androidx.ui.graphics.vector.PathBuilder
diff --git a/ui/ui-core/api/current.txt b/ui/ui-core/api/current.txt
index 0260cd9..ebcf997 100644
--- a/ui/ui-core/api/current.txt
+++ b/ui/ui-core/api/current.txt
@@ -1,14 +1,6 @@
 // Signature format: 3.0
 package androidx.ui {
 
-  public final class MathHelpersKt {
-    method public static float lerp(float start, float stop, float fraction);
-    method public static int lerp(int start, int stop, float fraction);
-    method public static long lerp(long start, long stop, float fraction);
-    method public static String toHexString(int);
-    method public static String toStringAsFixed(float, int digits);
-  }
-
   public enum VertexMode {
     method public final android.graphics.Canvas.VertexMode toFrameworkVertexMode();
     enum_constant public static final androidx.ui.VertexMode triangleFan;
@@ -17,7 +9,7 @@
   }
 
   public final class Vertices {
-    ctor public Vertices(androidx.ui.VertexMode vertexMode, java.util.List<androidx.ui.engine.geometry.Offset> positions, java.util.List<androidx.ui.engine.geometry.Offset> textureCoordinates, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Integer> indices);
+    ctor public Vertices(androidx.ui.VertexMode vertexMode, java.util.List<androidx.ui.geometry.Offset> positions, java.util.List<androidx.ui.geometry.Offset> textureCoordinates, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Integer> indices);
     method public int[] getColors();
     method public short[] getIndices();
     method public float[] getPositions();
@@ -70,7 +62,7 @@
 package androidx.ui.core {
 
   public enum Alignment {
-    method public final androidx.ui.core.IntPxPosition align(androidx.ui.core.IntPxSize size);
+    method public final androidx.ui.unit.IntPxPosition align(androidx.ui.unit.IntPxSize size);
     enum_constant public static final androidx.ui.core.Alignment BottomCenter;
     enum_constant public static final androidx.ui.core.Alignment BottomLeft;
     enum_constant public static final androidx.ui.core.Alignment BottomRight;
@@ -87,45 +79,32 @@
   }
 
   public final class AlignmentLineKt {
-    method public static androidx.ui.core.IntPx merge(androidx.ui.core.AlignmentLine, androidx.ui.core.IntPx position1, androidx.ui.core.IntPx position2);
-  }
-
-  public final class Bounds {
-    ctor public Bounds(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.core.Bounds copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp getBottom();
-    method public androidx.ui.core.Dp getLeft();
-    method public androidx.ui.core.Dp getRight();
-    method public androidx.ui.core.Dp getTop();
+    method public static androidx.ui.unit.IntPx merge(androidx.ui.core.AlignmentLine, androidx.ui.unit.IntPx position1, androidx.ui.unit.IntPx position2);
   }
 
   public final class Constraints {
-    ctor public Constraints(androidx.ui.core.IntPx minWidth, androidx.ui.core.IntPx maxWidth, androidx.ui.core.IntPx minHeight, androidx.ui.core.IntPx maxHeight);
+    ctor public Constraints(androidx.ui.unit.IntPx minWidth, androidx.ui.unit.IntPx maxWidth, androidx.ui.unit.IntPx minHeight, androidx.ui.unit.IntPx maxHeight);
     ctor public Constraints();
-    method public androidx.ui.core.IntPx component1();
-    method public androidx.ui.core.IntPx component2();
-    method public androidx.ui.core.IntPx component3();
-    method public androidx.ui.core.IntPx component4();
-    method public androidx.ui.core.Constraints copy(androidx.ui.core.IntPx minWidth, androidx.ui.core.IntPx maxWidth, androidx.ui.core.IntPx minHeight, androidx.ui.core.IntPx maxHeight);
-    method public androidx.ui.core.IntPx getMaxHeight();
-    method public androidx.ui.core.IntPx getMaxWidth();
-    method public androidx.ui.core.IntPx getMinHeight();
-    method public androidx.ui.core.IntPx getMinWidth();
+    method public androidx.ui.unit.IntPx component1();
+    method public androidx.ui.unit.IntPx component2();
+    method public androidx.ui.unit.IntPx component3();
+    method public androidx.ui.unit.IntPx component4();
+    method public androidx.ui.core.Constraints copy(androidx.ui.unit.IntPx minWidth, androidx.ui.unit.IntPx maxWidth, androidx.ui.unit.IntPx minHeight, androidx.ui.unit.IntPx maxHeight);
+    method public androidx.ui.unit.IntPx getMaxHeight();
+    method public androidx.ui.unit.IntPx getMaxWidth();
+    method public androidx.ui.unit.IntPx getMinHeight();
+    method public androidx.ui.unit.IntPx getMinWidth();
     field public static final androidx.ui.core.Constraints.Companion! Companion;
   }
 
   public static final class Constraints.Companion {
-    method public androidx.ui.core.Constraints tightConstraints(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height);
-    method public androidx.ui.core.Constraints tightConstraintsForHeight(androidx.ui.core.IntPx height);
-    method public androidx.ui.core.Constraints tightConstraintsForWidth(androidx.ui.core.IntPx width);
+    method public androidx.ui.core.Constraints tightConstraints(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height);
+    method public androidx.ui.core.Constraints tightConstraintsForHeight(androidx.ui.unit.IntPx height);
+    method public androidx.ui.core.Constraints tightConstraintsForWidth(androidx.ui.unit.IntPx width);
   }
 
   public final class ConstraintsKt {
-    method public static androidx.ui.core.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.core.IntPxSize size);
+    method public static androidx.ui.unit.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
     method public static androidx.ui.core.Constraints enforce(androidx.ui.core.Constraints, androidx.ui.core.Constraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.core.Constraints);
     method public static boolean getHasBoundedWidth(androidx.ui.core.Constraints);
@@ -135,57 +114,21 @@
     method public static boolean isZero(androidx.ui.core.Constraints);
     method public static androidx.ui.core.Constraints looseMax(androidx.ui.core.Constraints);
     method public static androidx.ui.core.Constraints looseMin(androidx.ui.core.Constraints);
-    method public static androidx.ui.core.Constraints offset(androidx.ui.core.Constraints, androidx.ui.core.IntPx horizontal = 0.ipx, androidx.ui.core.IntPx vertical = 0.ipx);
-    method public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.core.IntPxSize size);
+    method public static androidx.ui.core.Constraints offset(androidx.ui.core.Constraints, androidx.ui.unit.IntPx horizontal = 0.ipx, androidx.ui.unit.IntPx vertical = 0.ipx);
+    method public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
     method public static androidx.ui.core.Constraints tightMax(androidx.ui.core.Constraints);
     method public static androidx.ui.core.Constraints tightMin(androidx.ui.core.Constraints);
-    method public static androidx.ui.core.Constraints withTight(androidx.ui.core.Constraints, androidx.ui.core.IntPx? width = null, androidx.ui.core.IntPx? height = null);
+    method public static androidx.ui.core.Constraints withTight(androidx.ui.core.Constraints, androidx.ui.unit.IntPx? width = null, androidx.ui.unit.IntPx? height = null);
   }
 
   public final class ConsumedData {
-    ctor public ConsumedData(androidx.ui.core.PxPosition positionChange, boolean downChange);
+    ctor public ConsumedData(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     ctor public ConsumedData();
-    method public androidx.ui.core.PxPosition component1();
+    method public androidx.ui.unit.PxPosition component1();
     method public boolean component2();
-    method public androidx.ui.core.ConsumedData copy(androidx.ui.core.PxPosition positionChange, boolean downChange);
+    method public androidx.ui.core.ConsumedData copy(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     method public boolean getDownChange();
-    method public androidx.ui.core.PxPosition getPositionChange();
-  }
-
-  public final class Density {
-    ctor public Density(float density, float fontScale);
-    method public float component1();
-    method public float component2();
-    method public androidx.ui.core.Density copy(float density, float fontScale);
-    method public float getDensity();
-    method public float getFontScale();
-  }
-
-  public final class DensityKt {
-    method public static androidx.ui.core.Density Density(android.content.Context context);
-    method public static androidx.ui.core.DensityScope DensityScope(androidx.ui.core.Density density);
-    method public static inline <R> R! withDensity(androidx.ui.core.Density density, kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,? extends R> block);
-  }
-
-  public interface DensityScope {
-    method public androidx.ui.core.Density getDensity();
-    method public default androidx.ui.core.Dp toDp(androidx.ui.core.TextUnit);
-    method public default androidx.ui.core.Dp toDp(androidx.ui.core.Px);
-    method public default androidx.ui.core.Dp toDp(androidx.ui.core.IntPx);
-    method public default androidx.ui.core.Dp toDp(float);
-    method public default androidx.ui.core.Dp toDp(int);
-    method public default androidx.ui.core.IntPx toIntPx(androidx.ui.core.Dp);
-    method public default androidx.ui.core.IntPx toIntPx(androidx.ui.core.TextUnit);
-    method public default androidx.ui.core.Px toPx(androidx.ui.core.Dp);
-    method public default androidx.ui.core.Px toPx(androidx.ui.core.TextUnit);
-    method public default androidx.ui.core.PxSize toPx-s2Mz6-8(long);
-    method public default androidx.ui.engine.geometry.Rect toRect(androidx.ui.core.Bounds);
-    method public default androidx.ui.core.TextUnit toSp(androidx.ui.core.Dp);
-    method public default androidx.ui.core.TextUnit toSp(androidx.ui.core.Px);
-    method public default androidx.ui.core.TextUnit toSp(androidx.ui.core.IntPx);
-    method public default androidx.ui.core.TextUnit toSp(float);
-    method public default androidx.ui.core.TextUnit toSp(int);
-    property public abstract androidx.ui.core.Density density;
+    method public androidx.ui.unit.PxPosition getPositionChange();
   }
 
   public enum Direction {
@@ -195,304 +138,29 @@
     enum_constant public static final androidx.ui.core.Direction UP;
   }
 
-  public final class Dp implements java.lang.Comparable<androidx.ui.core.Dp> {
-    ctor public Dp(float value);
-    method public operator int compareTo(androidx.ui.core.Dp other);
-    method public float component1();
-    method public androidx.ui.core.Dp copy(float value);
-    method public inline operator androidx.ui.core.Dp div(float other);
-    method public inline operator androidx.ui.core.Dp div(int other);
-    method public inline operator float div(androidx.ui.core.Dp other);
-    method public inline operator float div-KkBJKWw(float other);
-    method public float getValue();
-    method public inline operator androidx.ui.core.Dp minus(androidx.ui.core.Dp other);
-    method public inline operator androidx.ui.core.Dp plus(androidx.ui.core.Dp other);
-    method public inline operator androidx.ui.core.Dp times(float other);
-    method public inline operator androidx.ui.core.Dp times(int other);
-    method public inline operator float times(androidx.ui.core.Dp other);
-    method public inline operator float times-KkBJKWw(float other);
-    method public inline operator androidx.ui.core.Dp unaryMinus();
-    field public static final androidx.ui.core.Dp.Companion! Companion;
-  }
-
-  public static final class Dp.Companion {
-    method public androidx.ui.core.Dp getHairline();
-    method public androidx.ui.core.Dp getInfinity();
-    property public final androidx.ui.core.Dp Hairline;
-    property public final androidx.ui.core.Dp Infinity;
-  }
-
-  public final inline class DpCubed implements java.lang.Comparable<androidx.ui.core.DpCubed> {
-    ctor public DpCubed();
-    method public operator int compareTo-zqpl1kg(float p);
-    method public static operator int compareTo-zqpl1kg(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator androidx.ui.core.Dp div-KkBJKWw(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, androidx.ui.core.Dp other);
-    method public static inline operator float div-zqpl1kg(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-zqpl1kg(float $this, float dimension);
-    method public static inline operator float plus-zqpl1kg(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final inline class DpInverse implements java.lang.Comparable<androidx.ui.core.DpInverse> {
-    ctor public DpInverse();
-    method public operator int compareTo-ASDJgtI(float p);
-    method public static operator int compareTo-ASDJgtI(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-ASDJgtI(float $this, float dimension);
-    method public static inline operator float plus-ASDJgtI(float $this, float dimension);
-    method public static inline operator androidx.ui.core.Dp times-KkBJKWw(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Dp other);
-    method public static inline operator float times-zqpl1kg(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final class DpKt {
-    method public static inline long Position(androidx.ui.core.Dp x, androidx.ui.core.Dp y);
-    method public static inline long Size(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
-    method public static long center-s2Mz6-8(long);
-    method public static inline androidx.ui.core.Dp coerceAtLeast(androidx.ui.core.Dp, androidx.ui.core.Dp minimumValue);
-    method public static inline androidx.ui.core.Dp coerceAtMost(androidx.ui.core.Dp, androidx.ui.core.Dp maximumValue);
-    method public static inline androidx.ui.core.Dp coerceIn(androidx.ui.core.Dp, androidx.ui.core.Dp minimumValue, androidx.ui.core.Dp maximumValue);
-    method public static inline operator float div(float, androidx.ui.core.Dp other);
-    method public static inline operator float div(double, androidx.ui.core.Dp other);
-    method public static inline operator float div(int, androidx.ui.core.Dp other);
-    method public static androidx.ui.core.Dp getDistance-JXBE4ew(long);
-    method public static inline androidx.ui.core.Dp getDp(int);
-    method public static inline androidx.ui.core.Dp getDp(double);
-    method public static inline androidx.ui.core.Dp getDp(float);
-    method public static inline androidx.ui.core.Dp getHeight(androidx.ui.core.Bounds);
-    method public static inline androidx.ui.core.Dp getWidth(androidx.ui.core.Bounds);
-    method public static inline boolean isFinite(androidx.ui.core.Dp);
-    method public static androidx.ui.core.Dp lerp(androidx.ui.core.Dp start, androidx.ui.core.Dp stop, float fraction);
-    method public static long lerp-SuMVOfk(long start, long stop, float fraction);
-    method public static inline androidx.ui.core.Dp max(androidx.ui.core.Dp a, androidx.ui.core.Dp b);
-    method public static inline androidx.ui.core.Dp min(androidx.ui.core.Dp a, androidx.ui.core.Dp b);
-    method public static inline operator androidx.ui.core.Dp times(float, androidx.ui.core.Dp other);
-    method public static inline operator androidx.ui.core.Dp times(double, androidx.ui.core.Dp other);
-    method public static inline operator androidx.ui.core.Dp times(int, androidx.ui.core.Dp other);
-    method public static inline operator long times-Ze-JISM(int, long size);
-    method public static inline operator long times-doH9uME(float, long size);
-    method public static inline operator long times-nKWVx08(double, long size);
-    method public static androidx.ui.core.Bounds toBounds-s2Mz6-8(long);
-    method public static inline long toSize(androidx.ui.core.Bounds);
-  }
-
-  public final inline class DpSquared implements java.lang.Comparable<androidx.ui.core.DpSquared> {
-    ctor public DpSquared();
-    method public operator int compareTo-KkBJKWw(float p);
-    method public static operator int compareTo-KkBJKWw(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-KkBJKWw(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator androidx.ui.core.Dp div-impl(float $this, androidx.ui.core.Dp other);
-    method public static inline operator float div-zqpl1kg(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-KkBJKWw(float $this, float other);
-    method public static inline operator float plus-KkBJKWw(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Dp other);
-    method public static String toString-impl(float $this);
-  }
-
   public interface DrawModifier extends androidx.ui.core.Modifier.Element {
-    method public void draw(androidx.ui.core.Density density, kotlin.jvm.functions.Function0<kotlin.Unit> drawContent, androidx.ui.graphics.Canvas canvas, androidx.ui.core.PxSize size);
+    method public void draw(androidx.ui.unit.Density density, kotlin.jvm.functions.Function0<kotlin.Unit> drawContent, androidx.ui.graphics.Canvas canvas, androidx.ui.unit.PxSize size);
   }
 
   public final class DrawModifierKt {
-    method public static androidx.ui.core.DrawModifier draw(kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onDraw);
-    method public static androidx.ui.core.DrawModifier drawWithContent(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onDraw);
+    method public static androidx.ui.core.DrawModifier draw(kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onDraw);
+    method public static androidx.ui.core.DrawModifier drawWithContent(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onDraw);
   }
 
-  public interface DrawReceiver extends androidx.ui.core.DensityScope {
+  public interface DrawReceiver extends androidx.ui.unit.DensityScope {
     method public void drawChildren();
   }
 
-  public final class Duration implements java.lang.Comparable<androidx.ui.core.Duration> {
-    ctor public Duration(long nanoseconds);
-    method public int compareTo(androidx.ui.core.Duration other);
-    method public long component1();
-    method public androidx.ui.core.Duration copy(long nanoseconds);
-    method public operator androidx.ui.core.Duration div(int quotient);
-    method public operator androidx.ui.core.Duration div(double quotient);
-    method public long getNanoseconds();
-    method public operator androidx.ui.core.Duration minus(androidx.ui.core.Duration other);
-    method public operator androidx.ui.core.Duration plus(androidx.ui.core.Duration other);
-    method public operator androidx.ui.core.Duration times(int factor);
-    method public operator androidx.ui.core.Duration times(double factor);
-    field public static final androidx.ui.core.Duration.Companion! Companion;
-  }
-
-  public static final class Duration.Companion {
-    method public androidx.ui.core.Duration getZero();
-    property public final androidx.ui.core.Duration Zero;
-  }
-
-  public final class Durations {
-    method public static androidx.ui.core.Duration Duration(long days = 0, long hours = 0, long minutes = 0, long seconds = 0, long milliseconds = 0, long microseconds = 0, long nanoseconds = 0);
-    method public static androidx.ui.core.Duration getDays(long);
-    method public static androidx.ui.core.Duration getDays(int);
-    method public static androidx.ui.core.Duration getHours(long);
-    method public static androidx.ui.core.Duration getHours(int);
-    method public static androidx.ui.core.Duration getMicroseconds(long);
-    method public static androidx.ui.core.Duration getMicroseconds(int);
-    method public static androidx.ui.core.Duration getMilliseconds(long);
-    method public static androidx.ui.core.Duration getMilliseconds(int);
-    method public static androidx.ui.core.Duration getMinutes(long);
-    method public static androidx.ui.core.Duration getMinutes(int);
-    method public static androidx.ui.core.Duration getNanoseconds(long);
-    method public static androidx.ui.core.Duration getNanoseconds(int);
-    method public static long getNanosecondsPerDay();
-    method public static long getNanosecondsPerHour();
-    method public static long getNanosecondsPerMillisecond();
-    method public static long getNanosecondsPerMinute();
-    method public static long getNanosecondsPerSecond();
-    method public static androidx.ui.core.Duration getSeconds(long);
-    method public static androidx.ui.core.Duration getSeconds(int);
-    method public static long inDays(androidx.ui.core.Duration);
-    method public static long inHours(androidx.ui.core.Duration);
-    method public static long inMicroseconds(androidx.ui.core.Duration);
-    method public static long inMilliseconds(androidx.ui.core.Duration);
-    method public static long inMinutes(androidx.ui.core.Duration);
-    method public static long inSeconds(androidx.ui.core.Duration);
-    field public static final long HoursPerDay = 24L; // 0x18L
-    field public static final long MicrosecondsPerMillisecond = 1000L; // 0x3e8L
-    field public static final long MillisecondsPerSecond = 1000L; // 0x3e8L
-    field public static final long MinutesPerHour = 60L; // 0x3cL
-    field public static final long NanosecondsPerMicrosecond = 1000L; // 0x3e8L
-    field public static final long SecondsPerMinute = 60L; // 0x3cL
-  }
-
   public final class HorizontalAlignmentLine extends androidx.ui.core.AlignmentLine {
-    ctor public HorizontalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.core.IntPx,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> merger);
-  }
-
-  public final class InlineClassHelperKt {
-    method public static inline long packFloats(float val1, float val2);
-    method public static inline long packInts(int val1, int val2);
-    method public static inline float unpackFloat1(long value);
-    method public static inline float unpackFloat2(long value);
-    method public static inline int unpackInt1(long value);
-    method public static inline int unpackInt2(long value);
-  }
-
-  public final class IntPx implements java.lang.Comparable<androidx.ui.core.IntPx> {
-    ctor public IntPx(int value);
-    method public operator int compareTo(androidx.ui.core.IntPx other);
-    method public inline operator int compareTo(androidx.ui.core.Px other);
-    method public int component1();
-    method public androidx.ui.core.IntPx copy(int value);
-    method public operator androidx.ui.core.IntPx div(float other);
-    method public operator androidx.ui.core.IntPx div(double other);
-    method public operator androidx.ui.core.IntPx div(int other);
-    method public int getValue();
-    method public operator androidx.ui.core.IntPx minus(androidx.ui.core.IntPx other);
-    method public operator androidx.ui.core.IntPx plus(androidx.ui.core.IntPx other);
-    method public inline operator androidx.ui.core.IntPx rem(int other);
-    method public operator androidx.ui.core.IntPx times(float other);
-    method public operator androidx.ui.core.IntPx times(double other);
-    method public operator androidx.ui.core.IntPx times(int other);
-    method public operator androidx.ui.core.IntPx unaryMinus();
-    field public static final androidx.ui.core.IntPx.Companion! Companion;
-  }
-
-  public static final class IntPx.Companion {
-    method public androidx.ui.core.IntPx getInfinity();
-    method public androidx.ui.core.IntPx getZero();
-    property public final androidx.ui.core.IntPx Infinity;
-    property public final androidx.ui.core.IntPx Zero;
-  }
-
-  public final class IntPxBounds {
-    ctor public IntPxBounds(androidx.ui.core.IntPx left, androidx.ui.core.IntPx top, androidx.ui.core.IntPx right, androidx.ui.core.IntPx bottom);
-    method public androidx.ui.core.IntPx component1();
-    method public androidx.ui.core.IntPx component2();
-    method public androidx.ui.core.IntPx component3();
-    method public androidx.ui.core.IntPx component4();
-    method public androidx.ui.core.IntPxBounds copy(androidx.ui.core.IntPx left, androidx.ui.core.IntPx top, androidx.ui.core.IntPx right, androidx.ui.core.IntPx bottom);
-    method public androidx.ui.core.IntPx getBottom();
-    method public androidx.ui.core.IntPx getLeft();
-    method public androidx.ui.core.IntPx getRight();
-    method public androidx.ui.core.IntPx getTop();
-  }
-
-  public final class IntPxKt {
-    method public static inline androidx.ui.core.IntPxPosition IntPxPosition(androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
-    method public static inline androidx.ui.core.IntPxSize IntPxSize(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height);
-    method public static inline androidx.ui.core.PxPosition PxPosition(androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
-    method public static inline androidx.ui.core.PxSize PxSize(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height);
-    method public static androidx.ui.core.IntPxPosition center(androidx.ui.core.IntPxSize);
-    method public static inline androidx.ui.core.IntPx coerceAtLeast(androidx.ui.core.IntPx, androidx.ui.core.IntPx minimumValue);
-    method public static inline androidx.ui.core.IntPx coerceAtMost(androidx.ui.core.IntPx, androidx.ui.core.IntPx maximumValue);
-    method public static inline androidx.ui.core.IntPx coerceIn(androidx.ui.core.IntPx, androidx.ui.core.IntPx minimumValue, androidx.ui.core.IntPx maximumValue);
-    method public static inline androidx.ui.core.IntPx getHeight(androidx.ui.core.IntPxBounds);
-    method public static inline androidx.ui.core.IntPx getIpx(int);
-    method public static inline androidx.ui.core.IntPx getWidth(androidx.ui.core.IntPxBounds);
-    method public static inline boolean isFinite(androidx.ui.core.IntPx);
-    method public static androidx.ui.core.IntPx lerp(androidx.ui.core.IntPx start, androidx.ui.core.IntPx stop, float fraction);
-    method public static androidx.ui.core.IntPxPosition lerp(androidx.ui.core.IntPxPosition start, androidx.ui.core.IntPxPosition stop, float fraction);
-    method public static inline androidx.ui.core.IntPx max(androidx.ui.core.IntPx a, androidx.ui.core.IntPx b);
-    method public static inline androidx.ui.core.IntPx min(androidx.ui.core.IntPx a, androidx.ui.core.IntPx b);
-    method public static inline androidx.ui.core.IntPx round(androidx.ui.core.Px);
-    method public static inline operator androidx.ui.core.IntPx times(float, androidx.ui.core.IntPx other);
-    method public static inline operator androidx.ui.core.IntPx times(double, androidx.ui.core.IntPx other);
-    method public static inline operator androidx.ui.core.IntPx times(int, androidx.ui.core.IntPx other);
-    method public static inline operator androidx.ui.core.IntPxSize times(int, androidx.ui.core.IntPxSize size);
-    method public static inline androidx.ui.core.Px toPx(androidx.ui.core.IntPx);
-    method public static inline androidx.ui.core.PxPosition toPxPosition(androidx.ui.core.IntPxPosition);
-    method public static inline androidx.ui.core.PxSize toPxSize(androidx.ui.core.IntPxSize);
-    method public static inline androidx.ui.core.IntPxSize toSize(androidx.ui.core.IntPxBounds);
-  }
-
-  public final class IntPxPosition {
-    method public androidx.ui.core.IntPxPosition copy(long value);
-    method public inline androidx.ui.core.IntPx getX();
-    method public inline androidx.ui.core.IntPx getY();
-    method public inline operator androidx.ui.core.IntPxPosition minus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.IntPxPosition plus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.IntPxPosition unaryMinus();
-    property public final inline androidx.ui.core.IntPx x;
-    property public final inline androidx.ui.core.IntPx y;
-    field public static final androidx.ui.core.IntPxPosition.Companion! Companion;
-  }
-
-  public static final class IntPxPosition.Companion {
-    method public androidx.ui.core.IntPxPosition getOrigin();
-    property public final androidx.ui.core.IntPxPosition Origin;
-  }
-
-  public final class IntPxSize {
-    method public androidx.ui.core.IntPxSize copy(long value);
-    method public inline operator androidx.ui.core.IntPxSize div(int other);
-    method public inline androidx.ui.core.IntPx getHeight();
-    method public inline androidx.ui.core.IntPx getWidth();
-    method public inline operator androidx.ui.core.IntPxSize times(int other);
-    property public final inline androidx.ui.core.IntPx height;
-    property public final inline androidx.ui.core.IntPx width;
+    ctor public HorizontalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> merger);
   }
 
   public interface IntrinsicMeasurable {
     method public Object? getParentData();
-    method public androidx.ui.core.IntPx maxIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(androidx.ui.core.IntPx height);
-    method public androidx.ui.core.IntPx minIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(androidx.ui.core.IntPx height);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(androidx.ui.unit.IntPx height);
+    method public androidx.ui.unit.IntPx minIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(androidx.ui.unit.IntPx height);
     property public abstract Object? parentData;
   }
 
@@ -500,23 +168,23 @@
   }
 
   public interface LayoutCoordinates {
-    method public androidx.ui.core.PxPosition childToLocal(androidx.ui.core.LayoutCoordinates child, androidx.ui.core.PxPosition childLocal);
+    method public androidx.ui.unit.PxPosition childToLocal(androidx.ui.core.LayoutCoordinates child, androidx.ui.unit.PxPosition childLocal);
     method public androidx.ui.core.LayoutCoordinates? getParentCoordinates();
-    method public androidx.ui.core.PxPosition getPosition();
-    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> getProvidedAlignmentLines();
-    method public androidx.ui.core.PxSize getSize();
-    method public androidx.ui.core.PxPosition globalToLocal(androidx.ui.core.PxPosition global);
-    method public androidx.ui.core.PxPosition localToGlobal(androidx.ui.core.PxPosition local);
-    method public androidx.ui.core.PxPosition localToRoot(androidx.ui.core.PxPosition local);
+    method public androidx.ui.unit.PxPosition getPosition();
+    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> getProvidedAlignmentLines();
+    method public androidx.ui.unit.PxSize getSize();
+    method public androidx.ui.unit.PxPosition globalToLocal(androidx.ui.unit.PxPosition global);
+    method public androidx.ui.unit.PxPosition localToGlobal(androidx.ui.unit.PxPosition local);
+    method public androidx.ui.unit.PxPosition localToRoot(androidx.ui.unit.PxPosition local);
     property public abstract androidx.ui.core.LayoutCoordinates? parentCoordinates;
-    property public abstract androidx.ui.core.PxPosition position;
-    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> providedAlignmentLines;
-    property public abstract androidx.ui.core.PxSize size;
+    property public abstract androidx.ui.unit.PxPosition position;
+    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> providedAlignmentLines;
+    property public abstract androidx.ui.unit.PxSize size;
   }
 
   public final class LayoutCoordinatesKt {
-    method public static inline androidx.ui.core.PxPosition getGlobalPosition(androidx.ui.core.LayoutCoordinates);
-    method public static inline androidx.ui.core.PxPosition getPositionInRoot(androidx.ui.core.LayoutCoordinates);
+    method public static inline androidx.ui.unit.PxPosition getGlobalPosition(androidx.ui.core.LayoutCoordinates);
+    method public static inline androidx.ui.unit.PxPosition getPositionInRoot(androidx.ui.core.LayoutCoordinates);
   }
 
   public enum LayoutDirection {
@@ -525,33 +193,33 @@
   }
 
   public interface LayoutModifier extends androidx.ui.core.Modifier.Element {
-    method public default androidx.ui.core.IntPx maxIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public default androidx.ui.core.IntPx maxIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public default androidx.ui.core.IntPx minIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public default androidx.ui.core.IntPx minIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public default androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public default androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
-    method public default androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public default androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public default androidx.ui.unit.IntPx maxIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public default androidx.ui.unit.IntPx maxIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public default androidx.ui.unit.IntPx minIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public default androidx.ui.unit.IntPx minIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public default androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public default androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
+    method public default androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public default androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
   }
 
   public interface Measurable extends androidx.ui.core.IntrinsicMeasurable {
     method public androidx.ui.core.Placeable measure(androidx.ui.core.Constraints constraints);
   }
 
-  public abstract class MeasureScope implements androidx.ui.core.DensityScope {
+  public abstract class MeasureScope implements androidx.ui.unit.DensityScope {
     ctor public MeasureScope();
-    method public final androidx.ui.core.MeasureScope.LayoutResult layout(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height, java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> alignmentLines = emptyMap(), kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable.PlacementScope,kotlin.Unit> placementBlock);
+    method public final androidx.ui.core.MeasureScope.LayoutResult layout(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height, java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> alignmentLines = emptyMap(), kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable.PlacementScope,kotlin.Unit> placementBlock);
   }
 
   public static interface MeasureScope.LayoutResult {
-    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> getAlignmentLines();
-    method public androidx.ui.core.IntPx getHeight();
-    method public androidx.ui.core.IntPx getWidth();
+    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> getAlignmentLines();
+    method public androidx.ui.unit.IntPx getHeight();
+    method public androidx.ui.unit.IntPx getWidth();
     method public void placeChildren(androidx.ui.core.Placeable.PlacementScope placementScope);
-    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> alignmentLines;
-    property public abstract androidx.ui.core.IntPx height;
-    property public abstract androidx.ui.core.IntPx width;
+    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> alignmentLines;
+    property public abstract androidx.ui.unit.IntPx height;
+    property public abstract androidx.ui.unit.IntPx width;
   }
 
   public final class MeasureScopeKt {
@@ -576,27 +244,27 @@
   }
 
   public interface ParentDataModifier extends androidx.ui.core.Modifier.Element {
-    method public default Object? modifyParentData(androidx.ui.core.DensityScope, Object? parentData);
+    method public default Object? modifyParentData(androidx.ui.unit.DensityScope, Object? parentData);
   }
 
   public abstract class Placeable {
     ctor public Placeable();
-    method public abstract operator androidx.ui.core.IntPx? get(androidx.ui.core.AlignmentLine line);
-    method public final androidx.ui.core.IntPx getHeight();
-    method public abstract androidx.ui.core.IntPxSize getSize();
-    method public final androidx.ui.core.IntPx getWidth();
-    method protected abstract void performPlace(androidx.ui.core.IntPxPosition position);
-    property public final androidx.ui.core.IntPx height;
-    property public abstract androidx.ui.core.IntPxSize size;
-    property public final androidx.ui.core.IntPx width;
+    method public abstract operator androidx.ui.unit.IntPx? get(androidx.ui.core.AlignmentLine line);
+    method public final androidx.ui.unit.IntPx getHeight();
+    method public abstract androidx.ui.unit.IntPxSize getSize();
+    method public final androidx.ui.unit.IntPx getWidth();
+    method protected abstract void performPlace(androidx.ui.unit.IntPxPosition position);
+    property public final androidx.ui.unit.IntPx height;
+    property public abstract androidx.ui.unit.IntPxSize size;
+    property public final androidx.ui.unit.IntPx width;
     field public static final androidx.ui.core.Placeable.PlacementScope! PlacementScope;
   }
 
   public static final class Placeable.PlacementScope {
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.IntPxPosition position);
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.PxPosition position);
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.Px x, androidx.ui.core.Px y);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.IntPxPosition position);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.PxPosition position);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.Px x, androidx.ui.unit.Px y);
   }
 
   public enum PointerEventPass {
@@ -621,15 +289,15 @@
   }
 
   public final class PointerInputData {
-    ctor public PointerInputData(androidx.ui.core.Uptime? uptime, androidx.ui.core.PxPosition? position, boolean down);
+    ctor public PointerInputData(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     ctor public PointerInputData();
-    method public androidx.ui.core.Uptime? component1();
-    method public androidx.ui.core.PxPosition? component2();
+    method public androidx.ui.unit.Uptime? component1();
+    method public androidx.ui.unit.PxPosition? component2();
     method public boolean component3();
-    method public androidx.ui.core.PointerInputData copy(androidx.ui.core.Uptime? uptime, androidx.ui.core.PxPosition? position, boolean down);
+    method public androidx.ui.core.PointerInputData copy(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     method public boolean getDown();
-    method public androidx.ui.core.PxPosition? getPosition();
-    method public androidx.ui.core.Uptime? getUptime();
+    method public androidx.ui.unit.PxPosition? getPosition();
+    method public androidx.ui.unit.Uptime? getUptime();
   }
 
   public final class PointerInputKt {
@@ -639,622 +307,20 @@
     method public static boolean changedToUp(androidx.ui.core.PointerInputChange);
     method public static boolean changedToUpIgnoreConsumed(androidx.ui.core.PointerInputChange);
     method public static androidx.ui.core.PointerInputChange consumeDownChange(androidx.ui.core.PointerInputChange);
-    method public static androidx.ui.core.PointerInputChange consumePositionChange(androidx.ui.core.PointerInputChange, androidx.ui.core.Px consumedDx, androidx.ui.core.Px consumedDy);
-    method public static androidx.ui.core.PxPosition positionChange(androidx.ui.core.PointerInputChange);
-    method public static androidx.ui.core.PxPosition positionChangeIgnoreConsumed(androidx.ui.core.PointerInputChange);
+    method public static androidx.ui.core.PointerInputChange consumePositionChange(androidx.ui.core.PointerInputChange, androidx.ui.unit.Px consumedDx, androidx.ui.unit.Px consumedDy);
+    method public static androidx.ui.unit.PxPosition positionChange(androidx.ui.core.PointerInputChange);
+    method public static androidx.ui.unit.PxPosition positionChangeIgnoreConsumed(androidx.ui.core.PointerInputChange);
     method public static boolean positionChanged(androidx.ui.core.PointerInputChange);
     method public static boolean positionChangedIgnoreConsumed(androidx.ui.core.PointerInputChange);
   }
 
-  public final inline class Position {
-    ctor public Position();
-    method public static long constructor-impl(internal long value);
-    method public static boolean equals-impl(long p, Object? p1);
-    method public static boolean equals-impl0(long p1, long p2);
-    method public static androidx.ui.core.Dp getX-impl(long $this);
-    method public static androidx.ui.core.Dp getY-impl(long $this);
-    method public static int hashCode-impl(long p);
-    method public static inline operator long minus-JXBE4ew(long $this, long other);
-    method public static inline operator long plus-JXBE4ew(long $this, long other);
-    method public static String toString-impl(long $this);
-  }
-
-  public final class Px implements java.lang.Comparable<androidx.ui.core.Px> {
-    ctor public Px(float value);
-    method public operator int compareTo(androidx.ui.core.Px other);
-    method public inline operator int compareTo(androidx.ui.core.IntPx other);
-    method public float component1();
-    method public androidx.ui.core.Px copy(float value);
-    method public inline operator androidx.ui.core.Px div(float other);
-    method public inline operator androidx.ui.core.Px div(int other);
-    method public inline operator float div(androidx.ui.core.Px other);
-    method public inline operator float div-kVJEwbQ(float other);
-    method public float getValue();
-    method public inline operator androidx.ui.core.Px minus(androidx.ui.core.Px other);
-    method public inline operator androidx.ui.core.Px minus(androidx.ui.core.IntPx other);
-    method public inline operator androidx.ui.core.Px plus(androidx.ui.core.Px other);
-    method public inline operator androidx.ui.core.Px plus(androidx.ui.core.IntPx other);
-    method public inline operator androidx.ui.core.Px times(float other);
-    method public inline operator androidx.ui.core.Px times(int other);
-    method public inline operator float times(androidx.ui.core.Px other);
-    method public inline operator float times-kVJEwbQ(float other);
-    method public inline operator androidx.ui.core.Px unaryMinus();
-    field public static final androidx.ui.core.Px.Companion! Companion;
-  }
-
-  public static final class Px.Companion {
-    method public androidx.ui.core.Px getInfinity();
-    method public androidx.ui.core.Px getZero();
-    property public final androidx.ui.core.Px Infinity;
-    property public final androidx.ui.core.Px Zero;
-  }
-
-  public final class PxBounds {
-    ctor public PxBounds(androidx.ui.core.Px left, androidx.ui.core.Px top, androidx.ui.core.Px right, androidx.ui.core.Px bottom);
-    method public androidx.ui.core.Px component1();
-    method public androidx.ui.core.Px component2();
-    method public androidx.ui.core.Px component3();
-    method public androidx.ui.core.Px component4();
-    method public androidx.ui.core.PxBounds copy(androidx.ui.core.Px left, androidx.ui.core.Px top, androidx.ui.core.Px right, androidx.ui.core.Px bottom);
-    method public androidx.ui.core.Px getBottom();
-    method public androidx.ui.core.Px getLeft();
-    method public androidx.ui.core.Px getRight();
-    method public androidx.ui.core.Px getTop();
-  }
-
-  public final inline class PxCubed implements java.lang.Comparable<androidx.ui.core.PxCubed> {
-    ctor public PxCubed();
-    method public operator int compareTo-syUR1PY(float p);
-    method public static operator int compareTo-syUR1PY(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px div-kVJEwbQ(float $this, float other);
-    method public static inline operator float div-syUR1PY(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-syUR1PY(float $this, float dimension);
-    method public static inline operator float plus-syUR1PY(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final inline class PxInverse implements java.lang.Comparable<androidx.ui.core.PxInverse> {
-    ctor public PxInverse();
-    method public operator int compareTo-MXEAIGs(float p);
-    method public static operator int compareTo-MXEAIGs(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-MXEAIGs(float $this, float dimension);
-    method public static inline operator float plus-MXEAIGs(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px times-kVJEwbQ(float $this, float other);
-    method public static inline operator float times-syUR1PY(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final class PxKt {
-    method public static inline androidx.ui.core.PxPosition PxPosition(androidx.ui.core.Px x, androidx.ui.core.Px y);
-    method public static inline androidx.ui.core.PxSize PxSize(androidx.ui.core.Px width, androidx.ui.core.Px height);
-    method public static androidx.ui.core.PxPosition center(androidx.ui.core.PxSize);
-    method public static inline androidx.ui.core.Px coerceAtLeast(androidx.ui.core.Px, androidx.ui.core.Px minimumValue);
-    method public static inline androidx.ui.core.Px coerceAtMost(androidx.ui.core.Px, androidx.ui.core.Px maximumValue);
-    method public static inline androidx.ui.core.Px coerceIn(androidx.ui.core.Px, androidx.ui.core.Px minimumValue, androidx.ui.core.Px maximumValue);
-    method public static inline operator float div(float, androidx.ui.core.Px other);
-    method public static inline operator float div(double, androidx.ui.core.Px other);
-    method public static inline operator float div(int, androidx.ui.core.Px other);
-    method public static androidx.ui.core.Px getDistance(androidx.ui.core.PxPosition);
-    method public static inline androidx.ui.core.Px getHeight(androidx.ui.core.PxBounds);
-    method public static androidx.ui.core.Px! getMinDimension(androidx.ui.core.PxSize);
-    method public static inline androidx.ui.core.Px getPx(int);
-    method public static inline androidx.ui.core.Px getPx(double);
-    method public static inline androidx.ui.core.Px getPx(float);
-    method public static inline androidx.ui.core.Px getWidth(androidx.ui.core.PxBounds);
-    method public static androidx.ui.core.Px lerp(androidx.ui.core.Px start, androidx.ui.core.Px stop, float fraction);
-    method public static androidx.ui.core.PxPosition lerp(androidx.ui.core.PxPosition start, androidx.ui.core.PxPosition stop, float fraction);
-    method public static inline androidx.ui.core.Px max(androidx.ui.core.Px a, androidx.ui.core.Px b);
-    method public static inline androidx.ui.core.Px min(androidx.ui.core.Px a, androidx.ui.core.Px b);
-    method public static inline androidx.ui.core.IntPxPosition round(androidx.ui.core.PxPosition);
-    method public static inline operator androidx.ui.core.Px times(float, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px times(double, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px times(int, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.PxSize times(int, androidx.ui.core.PxSize size);
-    method public static inline operator androidx.ui.core.PxSize times(float, androidx.ui.core.PxSize size);
-    method public static inline operator androidx.ui.core.PxSize times(double, androidx.ui.core.PxSize size);
-    method public static androidx.ui.core.PxBounds toBounds(androidx.ui.core.PxSize);
-    method public static inline androidx.ui.engine.geometry.Offset toOffset(androidx.ui.core.PxPosition);
-    method public static androidx.ui.engine.geometry.Rect toRect(androidx.ui.core.PxBounds);
-    method public static androidx.ui.engine.geometry.Rect toRect(androidx.ui.core.PxSize);
-    method public static androidx.ui.core.PxSize toSize(androidx.ui.core.PxBounds);
-  }
-
-  public final class PxPosition {
-    method public androidx.ui.core.PxPosition copy(long value);
-    method public inline androidx.ui.core.Px getX();
-    method public inline androidx.ui.core.Px getY();
-    method public inline operator androidx.ui.core.PxPosition minus(androidx.ui.core.PxPosition other);
-    method public inline operator androidx.ui.core.PxPosition minus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.PxPosition plus(androidx.ui.core.PxPosition other);
-    method public inline operator androidx.ui.core.PxPosition plus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.PxPosition unaryMinus();
-    property public final inline androidx.ui.core.Px x;
-    property public final inline androidx.ui.core.Px y;
-    field public static final androidx.ui.core.PxPosition.Companion! Companion;
-  }
-
-  public static final class PxPosition.Companion {
-    method public androidx.ui.core.PxPosition getOrigin();
-    property public final androidx.ui.core.PxPosition Origin;
-  }
-
-  public final class PxSize {
-    method public androidx.ui.core.PxSize copy(long value);
-    method public inline operator androidx.ui.core.PxSize div(int other);
-    method public inline operator androidx.ui.core.PxSize div(float other);
-    method public inline operator androidx.ui.core.PxSize div(double other);
-    method public inline androidx.ui.core.Px getHeight();
-    method public inline androidx.ui.core.Px getWidth();
-    method public inline operator androidx.ui.core.PxSize times(int other);
-    method public inline operator androidx.ui.core.PxSize times(float other);
-    method public inline operator androidx.ui.core.PxSize times(double other);
-    property public final inline androidx.ui.core.Px height;
-    property public final inline androidx.ui.core.Px width;
-    field public static final androidx.ui.core.PxSize.Companion! Companion;
-  }
-
-  public static final class PxSize.Companion {
-    method public androidx.ui.core.PxSize getZero();
-    property public final androidx.ui.core.PxSize Zero;
-  }
-
-  public final inline class PxSquared implements java.lang.Comparable<androidx.ui.core.PxSquared> {
-    ctor public PxSquared();
-    method public operator int compareTo-kVJEwbQ(float p);
-    method public static operator int compareTo-kVJEwbQ(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator androidx.ui.core.Px div-impl(float $this, androidx.ui.core.Px other);
-    method public static inline operator float div-kVJEwbQ(float $this, float other);
-    method public static inline operator float div-syUR1PY(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-kVJEwbQ(float $this, float other);
-    method public static inline operator float plus-kVJEwbQ(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Px other);
-    method public static String toString-impl(float $this);
-  }
-
   public final class RectHelperKt {
-    method public static android.graphics.Rect toFrameworkRect(androidx.ui.engine.geometry.Rect);
-    method public static android.graphics.RectF toFrameworkRectF(androidx.ui.engine.geometry.Rect);
-  }
-
-  public final inline class Size {
-    ctor public Size();
-    method public static long constructor-impl(internal long value);
-    method public static inline operator long div-impl(long $this, int other);
-    method public static inline operator long div-impl(long $this, float other);
-    method public static inline operator long div-impl(long $this, double other);
-    method public static boolean equals-impl(long p, Object? p1);
-    method public static boolean equals-impl0(long p1, long p2);
-    method public static androidx.ui.core.Dp getHeight-impl(long $this);
-    method public static androidx.ui.core.Dp getWidth-impl(long $this);
-    method public static int hashCode-impl(long p);
-    method public static inline operator long times-impl(long $this, int other);
-    method public static inline operator long times-impl(long $this, float other);
-    method public static inline operator long times-impl(long $this, double other);
-    method public static String toString-impl(long $this);
-  }
-
-  public final class TextUnit {
-    ctor public TextUnit(long packedValue);
-    method public inline operator int compareTo(androidx.ui.core.TextUnit other);
-    method public long component1();
-    method public androidx.ui.core.TextUnit copy(long packedValue);
-    method public inline operator androidx.ui.core.TextUnit div(float other);
-    method public inline operator androidx.ui.core.TextUnit div(double other);
-    method public inline operator androidx.ui.core.TextUnit div(int other);
-    method public inline operator float div(androidx.ui.core.TextUnit other);
-    method public long getPackedValue();
-    method public androidx.ui.core.TextUnitType getType();
-    method public float getValue();
-    method public boolean isEm();
-    method public boolean isInherit();
-    method public boolean isSp();
-    method public inline operator androidx.ui.core.TextUnit minus(androidx.ui.core.TextUnit other);
-    method public inline operator androidx.ui.core.TextUnit plus(androidx.ui.core.TextUnit other);
-    method public inline operator androidx.ui.core.TextUnit times(float other);
-    method public inline operator androidx.ui.core.TextUnit times(double other);
-    method public inline operator androidx.ui.core.TextUnit times(int other);
-    method public inline operator androidx.ui.core.TextUnit unaryMinus();
-    property public final boolean isEm;
-    property public final boolean isInherit;
-    property public final boolean isSp;
-    property public final androidx.ui.core.TextUnitType type;
-    property public final float value;
-    field public static final androidx.ui.core.TextUnit.Companion! Companion;
-  }
-
-  public static final class TextUnit.Companion {
-    method public androidx.ui.core.TextUnit Em(int value);
-    method public androidx.ui.core.TextUnit Em(float value);
-    method public androidx.ui.core.TextUnit Em(double value);
-    method public androidx.ui.core.TextUnit Sp(int value);
-    method public androidx.ui.core.TextUnit Sp(float value);
-    method public androidx.ui.core.TextUnit Sp(double value);
-    method public androidx.ui.core.TextUnit getInherit();
-    property public final androidx.ui.core.TextUnit Inherit;
-  }
-
-  public final class TextUnitKt {
-    method public static inline androidx.ui.core.TextUnit coerceAtLeast(androidx.ui.core.TextUnit, androidx.ui.core.TextUnit minimumValue);
-    method public static inline androidx.ui.core.TextUnit coerceAtMost(androidx.ui.core.TextUnit, androidx.ui.core.TextUnit maximumValue);
-    method public static inline androidx.ui.core.TextUnit coerceIn(androidx.ui.core.TextUnit, androidx.ui.core.TextUnit minimumValue, androidx.ui.core.TextUnit maximumValue);
-    method public static androidx.ui.core.TextUnit getEm(float);
-    method public static androidx.ui.core.TextUnit getEm(double);
-    method public static androidx.ui.core.TextUnit getEm(int);
-    method public static androidx.ui.core.TextUnit getSp(float);
-    method public static androidx.ui.core.TextUnit getSp(double);
-    method public static androidx.ui.core.TextUnit getSp(int);
-    method public static androidx.ui.core.TextUnit lerp(androidx.ui.core.TextUnit a, androidx.ui.core.TextUnit b, float t);
-    method public static inline androidx.ui.core.TextUnit max(androidx.ui.core.TextUnit a, androidx.ui.core.TextUnit b);
-    method public static inline androidx.ui.core.TextUnit min(androidx.ui.core.TextUnit a, androidx.ui.core.TextUnit b);
-    method public static inline operator androidx.ui.core.TextUnit times(float, androidx.ui.core.TextUnit other);
-    method public static inline operator androidx.ui.core.TextUnit times(double, androidx.ui.core.TextUnit other);
-    method public static inline operator androidx.ui.core.TextUnit times(int, androidx.ui.core.TextUnit other);
-  }
-
-  public enum TextUnitType {
-    enum_constant public static final androidx.ui.core.TextUnitType Em;
-    enum_constant public static final androidx.ui.core.TextUnitType Inherit;
-    enum_constant public static final androidx.ui.core.TextUnitType Sp;
-  }
-
-  public final class Uptime implements java.lang.Comparable<androidx.ui.core.Uptime> {
-    ctor public Uptime(long nanoseconds);
-    method public int compareTo(androidx.ui.core.Uptime other);
-    method public long component1();
-    method public androidx.ui.core.Uptime copy(long nanoseconds);
-    method public long getNanoseconds();
-    method public operator androidx.ui.core.Uptime minus(androidx.ui.core.Duration duration);
-    method public operator androidx.ui.core.Duration minus(androidx.ui.core.Uptime other);
-    method public operator androidx.ui.core.Uptime plus(androidx.ui.core.Duration duration);
-    field public static final androidx.ui.core.Uptime.Companion! Companion;
-  }
-
-  public static final class Uptime.Companion {
-    method public androidx.ui.core.Uptime getBoot();
-    property public final androidx.ui.core.Uptime Boot;
-  }
-
-  public final class UptimeKt {
-    method public static operator androidx.ui.core.Uptime plus(androidx.ui.core.Duration, androidx.ui.core.Uptime uptime);
-  }
-
-  public final class Velocity {
-    ctor public Velocity(androidx.ui.core.PxPosition pixelsPerSecond);
-    method public androidx.ui.core.PxPosition component1();
-    method public androidx.ui.core.Velocity copy(androidx.ui.core.PxPosition pixelsPerSecond);
-    method public androidx.ui.core.PxPosition getPixelsPerSecond();
-    method public operator androidx.ui.core.Velocity unaryMinus();
-    field public static final androidx.ui.core.Velocity.Companion! Companion;
-  }
-
-  public static final class Velocity.Companion {
-    method public androidx.ui.core.Velocity getZero();
-    property public final androidx.ui.core.Velocity Zero;
-  }
-
-  public final class VelocityKt {
-    method public static operator androidx.ui.core.Velocity minus(androidx.ui.core.Velocity, androidx.ui.core.Velocity other);
-    method public static operator androidx.ui.core.Velocity plus(androidx.ui.core.Velocity, androidx.ui.core.Velocity other);
+    method public static android.graphics.Rect toFrameworkRect(androidx.ui.geometry.Rect);
+    method public static android.graphics.RectF toFrameworkRectF(androidx.ui.geometry.Rect);
   }
 
   public final class VerticalAlignmentLine extends androidx.ui.core.AlignmentLine {
-    ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.core.IntPx,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> merger);
-  }
-
-}
-
-package androidx.ui.engine.geometry {
-
-  public final class Offset implements androidx.ui.engine.geometry.OffsetBase {
-    ctor public Offset(float dx, float dy);
-    method public infix androidx.ui.engine.geometry.Rect and(androidx.ui.engine.geometry.Size other);
-    method public float component1();
-    method public float component2();
-    method public androidx.ui.engine.geometry.Offset copy(float dx, float dy);
-    method public operator androidx.ui.engine.geometry.Offset div(float operand);
-    method public float getDirection();
-    method public float getDistance();
-    method public float getDistanceSquared();
-    method public float getDx();
-    method public float getDy();
-    method public operator androidx.ui.engine.geometry.Offset minus(androidx.ui.engine.geometry.Offset other);
-    method public operator androidx.ui.engine.geometry.Offset plus(androidx.ui.engine.geometry.Offset other);
-    method public operator androidx.ui.engine.geometry.Offset rem(float operand);
-    method public androidx.ui.engine.geometry.Offset scale(float scaleX, float scaleY);
-    method public operator androidx.ui.engine.geometry.Offset times(float operand);
-    method public androidx.ui.engine.geometry.Offset translate(float translateX, float translateY);
-    method public androidx.ui.engine.geometry.Offset truncDiv(float operand);
-    method public operator androidx.ui.engine.geometry.Offset unaryMinus();
-    field public static final androidx.ui.engine.geometry.Offset.Companion! Companion;
-  }
-
-  public static final class Offset.Companion {
-    method public androidx.ui.engine.geometry.Offset getInfinite();
-    method public androidx.ui.engine.geometry.Offset getZero();
-    method public boolean isValid(androidx.ui.engine.geometry.Offset offset);
-    method public androidx.ui.engine.geometry.Offset lerp(androidx.ui.engine.geometry.Offset start, androidx.ui.engine.geometry.Offset stop, float fraction);
-    property public final androidx.ui.engine.geometry.Offset infinite;
-    property public final androidx.ui.engine.geometry.Offset zero;
-  }
-
-  public interface OffsetBase {
-    method public float getDx();
-    method public float getDy();
-    method public default boolean isFinite();
-    method public default boolean isGreaterOrEqThan(androidx.ui.engine.geometry.OffsetBase other);
-    method public default boolean isGreaterThan(androidx.ui.engine.geometry.OffsetBase other);
-    method public default boolean isInfinite();
-    method public default boolean isLessOrEqThan(androidx.ui.engine.geometry.OffsetBase other);
-    method public default boolean isLessThan(androidx.ui.engine.geometry.OffsetBase other);
-    property public abstract float dx;
-    property public abstract float dy;
-  }
-
-  public final class OffsetKt {
-    method public static androidx.ui.core.PxPosition toPxPosition(androidx.ui.engine.geometry.Offset);
-  }
-
-  public abstract sealed class Outline {
-  }
-
-  public static final class Outline.Generic extends androidx.ui.engine.geometry.Outline {
-    ctor public Outline.Generic(androidx.ui.graphics.Path path);
-    method public androidx.ui.graphics.Path component1();
-    method public androidx.ui.engine.geometry.Outline.Generic copy(androidx.ui.graphics.Path path);
-    method public androidx.ui.graphics.Path getPath();
-  }
-
-  public static final class Outline.Rectangle extends androidx.ui.engine.geometry.Outline {
-    ctor public Outline.Rectangle(androidx.ui.engine.geometry.Rect rect);
-    method public androidx.ui.engine.geometry.Rect component1();
-    method public androidx.ui.engine.geometry.Outline.Rectangle copy(androidx.ui.engine.geometry.Rect rect);
-    method public androidx.ui.engine.geometry.Rect getRect();
-  }
-
-  public static final class Outline.Rounded extends androidx.ui.engine.geometry.Outline {
-    ctor public Outline.Rounded(androidx.ui.engine.geometry.RRect rrect);
-    method public androidx.ui.engine.geometry.RRect component1();
-    method public androidx.ui.engine.geometry.Outline.Rounded copy(androidx.ui.engine.geometry.RRect rrect);
-    method public androidx.ui.engine.geometry.RRect getRrect();
-  }
-
-  public final class OutlineKt {
-    method public static void addOutline(androidx.ui.graphics.Path, androidx.ui.engine.geometry.Outline outline);
-    method public static void drawOutline(androidx.ui.graphics.Canvas, androidx.ui.engine.geometry.Outline outline, androidx.ui.graphics.Paint paint);
-  }
-
-  public final class RRect {
-    ctor public RRect(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
-    method public float component1();
-    method public float component10();
-    method public float component11();
-    method public float component12();
-    method public float component2();
-    method public float component3();
-    method public float component4();
-    method public float component5();
-    method public float component6();
-    method public float component7();
-    method public float component8();
-    method public float component9();
-    method public boolean contains(androidx.ui.engine.geometry.Offset point);
-    method public androidx.ui.engine.geometry.RRect copy(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
-    method @Deprecated public androidx.ui.engine.geometry.RRect deflate(float delta);
-    method public float getBottom();
-    method public float getBottomLeftRadiusX();
-    method public float getBottomLeftRadiusY();
-    method public float getBottomRightRadiusX();
-    method public float getBottomRightRadiusY();
-    method public float getHeight();
-    method public float getLeft();
-    method public float getRight();
-    method public float getTop();
-    method public float getTopLeftRadiusX();
-    method public float getTopLeftRadiusY();
-    method public float getTopRightRadiusX();
-    method public float getTopRightRadiusY();
-    method public float getWidth();
-    method public static androidx.ui.engine.geometry.RRect getZero();
-    method @Deprecated public androidx.ui.engine.geometry.RRect inflate(float delta);
-    property public final float height;
-    property public final float width;
-    field public static final androidx.ui.engine.geometry.RRect.Companion! Companion;
-  }
-
-  public static final class RRect.Companion {
-    method public androidx.ui.engine.geometry.RRect getZero();
-    property public final androidx.ui.engine.geometry.RRect Zero;
-  }
-
-  public final class RRectKt {
-    method public static androidx.ui.engine.geometry.RRect RRect(float left, float top, float right, float bottom, float radiusX, float radiusY);
-    method public static androidx.ui.engine.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.engine.geometry.Radius radius);
-    method public static androidx.ui.engine.geometry.RRect RRect(androidx.ui.engine.geometry.Rect rect, float radiusX, float radiusY);
-    method public static androidx.ui.engine.geometry.RRect RRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.engine.geometry.Radius radius);
-    method public static androidx.ui.engine.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.engine.geometry.Radius topLeft = Radius.zero, androidx.ui.engine.geometry.Radius topRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomLeft = Radius.zero);
-    method public static androidx.ui.engine.geometry.RRect RRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.engine.geometry.Radius topLeft = Radius.zero, androidx.ui.engine.geometry.Radius topRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomLeft = Radius.zero);
-    method public static androidx.ui.engine.geometry.Radius bottomLeftRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Radius bottomRightRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Offset center(androidx.ui.engine.geometry.RRect);
-    method public static float getLongestSide(androidx.ui.engine.geometry.RRect);
-    method public static float getShortestSide(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect grow(androidx.ui.engine.geometry.RRect, float delta);
-    method public static boolean isCircle(androidx.ui.engine.geometry.RRect);
-    method public static boolean isEllipse(androidx.ui.engine.geometry.RRect);
-    method public static boolean isEmpty(androidx.ui.engine.geometry.RRect);
-    method public static boolean isFinite(androidx.ui.engine.geometry.RRect);
-    method public static boolean isRect(androidx.ui.engine.geometry.RRect);
-    method public static boolean isStadium(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect lerp(androidx.ui.engine.geometry.RRect start, androidx.ui.engine.geometry.RRect stop, float fraction);
-    method public static androidx.ui.engine.geometry.Rect middleRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Rect outerRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Rect safeInnerRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect shift(androidx.ui.engine.geometry.RRect, androidx.ui.engine.geometry.Offset offset);
-    method public static androidx.ui.engine.geometry.RRect shrink(androidx.ui.engine.geometry.RRect, float delta);
-    method public static androidx.ui.engine.geometry.Rect tallMiddleRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Radius topLeftRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Radius topRightRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Rect wideMiddleRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect withRadius(androidx.ui.engine.geometry.RRect, androidx.ui.engine.geometry.Radius radius);
-  }
-
-  public final class Radius {
-    ctor public Radius(float x, float y);
-    method public float component1();
-    method public float component2();
-    method public androidx.ui.engine.geometry.Radius copy(float x, float y);
-    method public operator androidx.ui.engine.geometry.Radius div(float operand);
-    method public float getX();
-    method public float getY();
-    method public operator androidx.ui.engine.geometry.Radius minus(androidx.ui.engine.geometry.Radius other);
-    method public operator androidx.ui.engine.geometry.Radius plus(androidx.ui.engine.geometry.Radius other);
-    method public operator androidx.ui.engine.geometry.Radius rem(float operand);
-    method public operator androidx.ui.engine.geometry.Radius times(float operand);
-    method public androidx.ui.engine.geometry.Radius truncDiv(float operand);
-    method public operator androidx.ui.engine.geometry.Radius unaryMinus();
-    field public static final androidx.ui.engine.geometry.Radius.Companion! Companion;
-  }
-
-  public static final class Radius.Companion {
-    method public androidx.ui.engine.geometry.Radius circular(float radius);
-    method public androidx.ui.engine.geometry.Radius elliptical(float x, float y);
-    method public androidx.ui.engine.geometry.Radius getZero();
-    property public final androidx.ui.engine.geometry.Radius zero;
-  }
-
-  public final class RadiusKt {
-    method public static androidx.ui.engine.geometry.Radius lerp(androidx.ui.engine.geometry.Radius start, androidx.ui.engine.geometry.Radius stop, float fraction);
-  }
-
-  public final class Rect {
-    ctor public Rect(float left, float top, float right, float bottom);
-    method public float component1();
-    method public float component2();
-    method public float component3();
-    method public float component4();
-    method public boolean contains(androidx.ui.engine.geometry.Offset offset);
-    method public androidx.ui.engine.geometry.Rect copy(float left, float top, float right, float bottom);
-    method public androidx.ui.engine.geometry.Rect deflate(float delta);
-    method public androidx.ui.engine.geometry.Rect expandToInclude(androidx.ui.engine.geometry.Rect other);
-    method public float getBottom();
-    method public androidx.ui.engine.geometry.Offset getBottomCenter();
-    method public androidx.ui.engine.geometry.Offset getBottomLeft();
-    method public androidx.ui.engine.geometry.Offset getBottomRight();
-    method public androidx.ui.engine.geometry.Offset getCenter();
-    method public androidx.ui.engine.geometry.Offset getCenterLeft();
-    method public androidx.ui.engine.geometry.Offset getCenterRight();
-    method public float getHeight();
-    method public float getLeft();
-    method public float getLongestSide();
-    method public float getRight();
-    method public float getShortestSide();
-    method public androidx.ui.engine.geometry.Size getSize();
-    method public float getTop();
-    method public androidx.ui.engine.geometry.Offset getTopCenter();
-    method public androidx.ui.engine.geometry.Offset getTopLeft();
-    method public androidx.ui.engine.geometry.Offset getTopRight();
-    method public float getWidth();
-    method public androidx.ui.engine.geometry.Rect inflate(float delta);
-    method public androidx.ui.engine.geometry.Rect intersect(androidx.ui.engine.geometry.Rect other);
-    method public boolean isEmpty();
-    method public boolean isFinite();
-    method public boolean isInfinite();
-    method public androidx.ui.engine.geometry.Rect join(androidx.ui.engine.geometry.Rect other);
-    method public boolean overlaps(androidx.ui.engine.geometry.Rect other);
-    method public androidx.ui.engine.geometry.Rect shift(androidx.ui.engine.geometry.Offset offset);
-    method public androidx.ui.engine.geometry.Rect translate(float translateX, float translateY);
-    property public final float height;
-    property public final float width;
-    field public static final androidx.ui.engine.geometry.Rect.Companion! Companion;
-  }
-
-  public static final class Rect.Companion {
-    method public androidx.ui.engine.geometry.Rect fromCircle(androidx.ui.engine.geometry.Offset center, float radius);
-    method public androidx.ui.engine.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
-    method public androidx.ui.engine.geometry.Rect fromLTWH(float left, float top, float width, float height);
-    method public androidx.ui.engine.geometry.Rect fromPoints(androidx.ui.engine.geometry.Offset a, androidx.ui.engine.geometry.Offset b);
-    method public androidx.ui.engine.geometry.Rect getLargest();
-    method public androidx.ui.engine.geometry.Rect getZero();
-    method public float get_giantScalar();
-    property public final float _giantScalar;
-    property public final androidx.ui.engine.geometry.Rect largest;
-    property public final androidx.ui.engine.geometry.Rect zero;
-  }
-
-  public final class RectKt {
-    method public static androidx.ui.engine.geometry.Rect lerp(androidx.ui.engine.geometry.Rect start, androidx.ui.engine.geometry.Rect stop, float fraction);
-  }
-
-  public interface Shape {
-    method public androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
-  }
-
-  public class Size implements androidx.ui.engine.geometry.OffsetBase {
-    ctor public Size(float width, float height);
-    method public final androidx.ui.engine.geometry.Offset bottomCenter(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset bottomLeft(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset bottomRight(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset center(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset centerLeft(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset centerRight(androidx.ui.engine.geometry.Offset origin);
-    method public final boolean contains(androidx.ui.engine.geometry.Offset offset);
-    method public final operator androidx.ui.engine.geometry.Size div(float operand);
-    method public float getDx();
-    method public float getDy();
-    method public final androidx.ui.engine.geometry.Size getFlipped();
-    method public final float getHeight();
-    method public final float getLongestSide();
-    method public final float getShortestSide();
-    method public final float getWidth();
-    method public final boolean isEmpty();
-    method public final operator androidx.ui.engine.geometry.Size minus(androidx.ui.engine.geometry.Offset other);
-    method public final operator androidx.ui.engine.geometry.Offset minus(androidx.ui.engine.geometry.Size other);
-    method public final operator androidx.ui.engine.geometry.Size plus(androidx.ui.engine.geometry.Offset other);
-    method public final operator androidx.ui.engine.geometry.Size rem(float operand);
-    method public final operator androidx.ui.engine.geometry.Size times(float operand);
-    method public final androidx.ui.engine.geometry.Offset topCenter(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset topLeft(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset topRight(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Size truncDiv(float operand);
-    property public float dx;
-    property public float dy;
-    field public static final androidx.ui.engine.geometry.Size.Companion! Companion;
-  }
-
-  public static final class Size.Companion {
-    method public androidx.ui.engine.geometry.Size copy(androidx.ui.engine.geometry.Size source);
-    method public androidx.ui.engine.geometry.Size fromHeight(float height);
-    method public androidx.ui.engine.geometry.Size fromRadius(float radius);
-    method public androidx.ui.engine.geometry.Size fromWidth(float width);
-    method public androidx.ui.engine.geometry.Size getInfinite();
-    method public androidx.ui.engine.geometry.Size getZero();
-    method public androidx.ui.engine.geometry.Size? lerp(androidx.ui.engine.geometry.Size start, androidx.ui.engine.geometry.Size stop, float fraction);
-    method public androidx.ui.engine.geometry.Size square(float dimension);
-    property public final androidx.ui.engine.geometry.Size infinite;
-    property public final androidx.ui.engine.geometry.Size zero;
+    ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> merger);
   }
 
 }
@@ -1285,7 +351,7 @@
 
   public final class AndroidCanvasKt {
     method public static androidx.ui.graphics.Canvas Canvas(androidx.ui.graphics.Image image);
-    method public static androidx.ui.graphics.Canvas Canvas(androidx.ui.graphics.PictureRecorder recorder, androidx.ui.engine.geometry.Rect cullRect = Rect.largest);
+    method public static androidx.ui.graphics.Canvas Canvas(androidx.ui.graphics.PictureRecorder recorder, androidx.ui.geometry.Rect cullRect = Rect.largest);
     method public static androidx.ui.graphics.Canvas Canvas(android.graphics.Canvas c);
   }
 
@@ -1339,42 +405,42 @@
   }
 
   public final class BrushKt {
-    method public static androidx.ui.graphics.LinearGradient HorizontalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.core.Px startX, androidx.ui.core.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.Brush HorizontalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.core.Px startX, androidx.ui.core.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient LinearGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient LinearGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient HorizontalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.unit.Px startX, androidx.ui.unit.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.Brush HorizontalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.unit.Px startX, androidx.ui.unit.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient LinearGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.unit.Px startX, androidx.ui.unit.Px startY, androidx.ui.unit.Px endX, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient LinearGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.unit.Px startX, androidx.ui.unit.Px startY, androidx.ui.unit.Px endX, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
     method public static androidx.ui.graphics.RadialGradient RadialGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, float centerX, float centerY, float radius, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
     method public static androidx.ui.graphics.RadialGradient RadialGradient(java.util.List<androidx.ui.graphics.Color> colors, float centerX, float centerY, float radius, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient VerticalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.core.Px startY, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient VerticalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.core.Px startY, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient VerticalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.unit.Px startY, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient VerticalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.unit.Px startY, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
   }
 
   public interface Canvas {
     method public void clipPath(androidx.ui.graphics.Path path);
-    method public void clipRRect(androidx.ui.engine.geometry.RRect rrect);
-    method public void clipRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.graphics.ClipOp clipOp = androidx.ui.graphics.ClipOp.intersect);
+    method public void clipRRect(androidx.ui.geometry.RRect rrect);
+    method public void clipRect(androidx.ui.geometry.Rect rect, androidx.ui.graphics.ClipOp clipOp = androidx.ui.graphics.ClipOp.intersect);
     method public void concat(androidx.ui.vectormath64.Matrix4 matrix4);
-    method public void drawArc(androidx.ui.engine.geometry.Rect rect, float startAngle, float sweepAngle, boolean useCenter, androidx.ui.graphics.Paint paint);
-    method public default void drawArcRad(androidx.ui.engine.geometry.Rect rect, float startAngleRad, float sweepAngleRad, boolean useCenter, androidx.ui.graphics.Paint paint);
-    method public void drawCircle(androidx.ui.engine.geometry.Offset center, float radius, androidx.ui.graphics.Paint paint);
-    method public void drawDoubleRoundRect(androidx.ui.engine.geometry.RRect outer, androidx.ui.engine.geometry.RRect inner, androidx.ui.graphics.Paint paint);
-    method public void drawImage(androidx.ui.graphics.Image image, androidx.ui.engine.geometry.Offset topLeftOffset, androidx.ui.graphics.Paint paint);
-    method public void drawImageRect(androidx.ui.graphics.Image image, androidx.ui.engine.geometry.Rect src, androidx.ui.engine.geometry.Rect dst, androidx.ui.graphics.Paint paint);
-    method public void drawLine(androidx.ui.engine.geometry.Offset p1, androidx.ui.engine.geometry.Offset p2, androidx.ui.graphics.Paint paint);
-    method public void drawOval(androidx.ui.engine.geometry.Rect rect, androidx.ui.graphics.Paint paint);
+    method public void drawArc(androidx.ui.geometry.Rect rect, float startAngle, float sweepAngle, boolean useCenter, androidx.ui.graphics.Paint paint);
+    method public default void drawArcRad(androidx.ui.geometry.Rect rect, float startAngleRad, float sweepAngleRad, boolean useCenter, androidx.ui.graphics.Paint paint);
+    method public void drawCircle(androidx.ui.geometry.Offset center, float radius, androidx.ui.graphics.Paint paint);
+    method public void drawDoubleRoundRect(androidx.ui.geometry.RRect outer, androidx.ui.geometry.RRect inner, androidx.ui.graphics.Paint paint);
+    method public void drawImage(androidx.ui.graphics.Image image, androidx.ui.geometry.Offset topLeftOffset, androidx.ui.graphics.Paint paint);
+    method public void drawImageRect(androidx.ui.graphics.Image image, androidx.ui.geometry.Rect src, androidx.ui.geometry.Rect dst, androidx.ui.graphics.Paint paint);
+    method public void drawLine(androidx.ui.geometry.Offset p1, androidx.ui.geometry.Offset p2, androidx.ui.graphics.Paint paint);
+    method public void drawOval(androidx.ui.geometry.Rect rect, androidx.ui.graphics.Paint paint);
     method public void drawPath(androidx.ui.graphics.Path path, androidx.ui.graphics.Paint paint);
     method public void drawPicture(androidx.ui.graphics.Picture picture);
-    method public void drawPoints(androidx.ui.graphics.PointMode pointMode, java.util.List<androidx.ui.engine.geometry.Offset> points, androidx.ui.graphics.Paint paint);
-    method public void drawRRect(androidx.ui.engine.geometry.RRect rrect, androidx.ui.graphics.Paint paint);
+    method public void drawPoints(androidx.ui.graphics.PointMode pointMode, java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.Paint paint);
+    method public void drawRRect(androidx.ui.geometry.RRect rrect, androidx.ui.graphics.Paint paint);
     method public void drawRawPoints(androidx.ui.graphics.PointMode pointMode, float[] points, androidx.ui.graphics.Paint paint);
-    method public void drawRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.graphics.Paint paint);
+    method public void drawRect(androidx.ui.geometry.Rect rect, androidx.ui.graphics.Paint paint);
     method public void drawVertices(androidx.ui.Vertices vertices, androidx.ui.graphics.BlendMode blendMode, androidx.ui.graphics.Paint paint);
     method public android.graphics.Canvas getNativeCanvas();
     method public void restore();
     method public void rotate(float degrees);
     method public default void rotateRad(float radians);
     method public void save();
-    method public void saveLayer(androidx.ui.engine.geometry.Rect bounds, androidx.ui.graphics.Paint paint);
+    method public void saveLayer(androidx.ui.geometry.Rect bounds, androidx.ui.graphics.Paint paint);
     method public void scale(float sx, float sy = sx);
     method public void skew(float sx, float sy);
     method public default void skewRad(float sxRad, float syRad);
@@ -1384,7 +450,7 @@
 
   public final class CanvasKt {
     method public static inline void withSave(androidx.ui.graphics.Canvas, kotlin.jvm.functions.Function0<kotlin.Unit> block);
-    method public static inline void withSaveLayer(androidx.ui.graphics.Canvas, androidx.ui.engine.geometry.Rect bounds, androidx.ui.graphics.Paint paint, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+    method public static inline void withSaveLayer(androidx.ui.graphics.Canvas, androidx.ui.geometry.Rect bounds, androidx.ui.graphics.Paint paint, kotlin.jvm.functions.Function0<kotlin.Unit> block);
   }
 
   public enum ClipOp {
@@ -1468,7 +534,7 @@
     method public float component1();
     method public androidx.ui.graphics.FixedScale copy(float value);
     method public float getValue();
-    method public float scale(androidx.ui.core.PxSize srcSize, androidx.ui.core.PxSize dstSize);
+    method public float scale(androidx.ui.unit.PxSize srcSize, androidx.ui.unit.PxSize dstSize);
   }
 
   public interface Image {
@@ -1499,7 +565,7 @@
   }
 
   public final class LinearGradient extends androidx.ui.graphics.ShaderBrush {
-    method public androidx.ui.graphics.LinearGradient copy(java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? stops, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode);
+    method public androidx.ui.graphics.LinearGradient copy(java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? stops, androidx.ui.unit.Px startX, androidx.ui.unit.Px startY, androidx.ui.unit.Px endX, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode);
   }
 
   public final class MaskFilter {
@@ -1517,6 +583,35 @@
   public static final class MaskFilter.Companion {
   }
 
+  public abstract sealed class Outline {
+  }
+
+  public static final class Outline.Generic extends androidx.ui.graphics.Outline {
+    ctor public Outline.Generic(androidx.ui.graphics.Path path);
+    method public androidx.ui.graphics.Path component1();
+    method public androidx.ui.graphics.Outline.Generic copy(androidx.ui.graphics.Path path);
+    method public androidx.ui.graphics.Path getPath();
+  }
+
+  public static final class Outline.Rectangle extends androidx.ui.graphics.Outline {
+    ctor public Outline.Rectangle(androidx.ui.geometry.Rect rect);
+    method public androidx.ui.geometry.Rect component1();
+    method public androidx.ui.graphics.Outline.Rectangle copy(androidx.ui.geometry.Rect rect);
+    method public androidx.ui.geometry.Rect getRect();
+  }
+
+  public static final class Outline.Rounded extends androidx.ui.graphics.Outline {
+    ctor public Outline.Rounded(androidx.ui.geometry.RRect rrect);
+    method public androidx.ui.geometry.RRect component1();
+    method public androidx.ui.graphics.Outline.Rounded copy(androidx.ui.geometry.RRect rrect);
+    method public androidx.ui.geometry.RRect getRrect();
+  }
+
+  public final class OutlineKt {
+    method public static void addOutline(androidx.ui.graphics.Path, androidx.ui.graphics.Outline outline);
+    method public static void drawOutline(androidx.ui.graphics.Canvas, androidx.ui.graphics.Outline outline, androidx.ui.graphics.Paint paint);
+  }
+
   public final class Paint {
     ctor public Paint();
     method public android.graphics.Paint asFrameworkPaint();
@@ -1570,22 +665,22 @@
     ctor public Path(android.graphics.Path internalPath);
     ctor public Path();
     method public void _addRect(float left, float top, float right, float bottom);
-    method public void addArc(androidx.ui.engine.geometry.Rect oval, float startAngleDegrees, float sweepAngleDegrees);
-    method public void addArcRad(androidx.ui.engine.geometry.Rect oval, float startAngleRadians, float sweepAngleRadians);
-    method public void addOval(androidx.ui.engine.geometry.Rect oval);
-    method public void addPath(androidx.ui.graphics.Path path, androidx.ui.engine.geometry.Offset offset = Offset.zero, androidx.ui.vectormath64.Matrix4? matrix = null);
-    method public void addPolygon(java.util.List<androidx.ui.engine.geometry.Offset> points, boolean close);
-    method public void addRRect(androidx.ui.engine.geometry.RRect rrect);
-    method public void addRect(androidx.ui.engine.geometry.Rect rect);
-    method public void arcTo(androidx.ui.engine.geometry.Rect rect, float startAngleDegrees, float sweepAngleDegrees, boolean forceMoveTo);
-    method public void arcToPoint(androidx.ui.engine.geometry.Offset arcEnd, androidx.ui.engine.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
-    method public void arcToRad(androidx.ui.engine.geometry.Rect rect, float startAngleRadians, float sweepAngleRadians, boolean forceMoveTo);
+    method public void addArc(androidx.ui.geometry.Rect oval, float startAngleDegrees, float sweepAngleDegrees);
+    method public void addArcRad(androidx.ui.geometry.Rect oval, float startAngleRadians, float sweepAngleRadians);
+    method public void addOval(androidx.ui.geometry.Rect oval);
+    method public void addPath(androidx.ui.graphics.Path path, androidx.ui.geometry.Offset offset = Offset.zero, androidx.ui.vectormath64.Matrix4? matrix = null);
+    method public void addPolygon(java.util.List<androidx.ui.geometry.Offset> points, boolean close);
+    method public void addRRect(androidx.ui.geometry.RRect rrect);
+    method public void addRect(androidx.ui.geometry.Rect rect);
+    method public void arcTo(androidx.ui.geometry.Rect rect, float startAngleDegrees, float sweepAngleDegrees, boolean forceMoveTo);
+    method public void arcToPoint(androidx.ui.geometry.Offset arcEnd, androidx.ui.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
+    method public void arcToRad(androidx.ui.geometry.Rect rect, float startAngleRadians, float sweepAngleRadians, boolean forceMoveTo);
     method public void close();
     method public void conicTo(float x1, float y1, float x2, float y2, float w);
-    method public boolean contains(androidx.ui.engine.geometry.Offset offset);
+    method public boolean contains(androidx.ui.geometry.Offset offset);
     method public void cubicTo(float x1, float y1, float x2, float y2, float x3, float y3);
-    method public void extendWithPath(androidx.ui.graphics.Path path, androidx.ui.engine.geometry.Offset offset, androidx.ui.vectormath64.Matrix4 matrix);
-    method public androidx.ui.engine.geometry.Rect getBounds();
+    method public void extendWithPath(androidx.ui.graphics.Path path, androidx.ui.geometry.Offset offset, androidx.ui.vectormath64.Matrix4 matrix);
+    method public androidx.ui.geometry.Rect getBounds();
     method public androidx.ui.graphics.PathFillType getFillType();
     method public boolean isConvex();
     method public boolean isEmpty();
@@ -1593,7 +688,7 @@
     method public void moveTo(float dx, float dy);
     method public boolean op(androidx.ui.graphics.Path path1, androidx.ui.graphics.Path path2, androidx.ui.graphics.PathOperation operation);
     method public void quadraticBezierTo(float x1, float y1, float x2, float y2);
-    method public void relativeArcToPoint(androidx.ui.engine.geometry.Offset arcEndDelta, androidx.ui.engine.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
+    method public void relativeArcToPoint(androidx.ui.geometry.Offset arcEndDelta, androidx.ui.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
     method public void relativeConicTo(float x1, float y1, float x2, float y2, float w);
     method public void relativeCubicTo(float x1, float y1, float x2, float y2, float x3, float y3);
     method public void relativeLineTo(float dx, float dy);
@@ -1601,7 +696,7 @@
     method public void relativeQuadraticBezierTo(float x1, float y1, float x2, float y2);
     method public void reset();
     method public void setFillType(androidx.ui.graphics.PathFillType value);
-    method public void shift(androidx.ui.engine.geometry.Offset offset);
+    method public void shift(androidx.ui.geometry.Offset offset);
     method public android.graphics.Path toFrameworkPath();
     method public androidx.ui.graphics.Path transform(androidx.ui.vectormath64.Matrix4 matrix);
     property public final boolean isConvex;
@@ -1628,7 +723,7 @@
 
   public final class Picture {
     ctor public Picture(android.graphics.Picture frameworkPicture);
-    method public androidx.ui.engine.geometry.Rect cullRect();
+    method public androidx.ui.geometry.Rect cullRect();
     method public void dispose();
     method public android.graphics.Picture getFrameworkPicture();
   }
@@ -1651,7 +746,7 @@
   }
 
   public interface ScaleFit {
-    method public float scale(androidx.ui.core.PxSize srcSize, androidx.ui.core.PxSize dstSize);
+    method public float scale(androidx.ui.unit.PxSize srcSize, androidx.ui.unit.PxSize dstSize);
     field public static final androidx.ui.graphics.ScaleFit.Companion! Companion;
   }
 
@@ -1686,26 +781,30 @@
 
   public final class ShaderKt {
     method public static androidx.ui.graphics.Shader ImageShader(androidx.ui.graphics.Image image, androidx.ui.graphics.TileMode tileModeX = androidx.ui.graphics.TileMode.Clamp, androidx.ui.graphics.TileMode tileModeY = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.Shader LinearGradientShader(androidx.ui.engine.geometry.Offset from, androidx.ui.engine.geometry.Offset to, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.Shader RadialGradientShader(androidx.ui.engine.geometry.Offset center, float radius, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.Shader LinearGradientShader(androidx.ui.geometry.Offset from, androidx.ui.geometry.Offset to, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.Shader RadialGradientShader(androidx.ui.geometry.Offset center, float radius, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
   }
 
   public final class Shadow {
-    ctor public Shadow(androidx.ui.graphics.Color color, androidx.ui.engine.geometry.Offset offset, androidx.ui.core.Px blurRadius);
+    ctor public Shadow(androidx.ui.graphics.Color color, androidx.ui.geometry.Offset offset, androidx.ui.unit.Px blurRadius);
     ctor public Shadow();
     method public androidx.ui.graphics.Color component1();
-    method public androidx.ui.engine.geometry.Offset component2();
-    method public androidx.ui.core.Px component3();
-    method public androidx.ui.graphics.Shadow copy(androidx.ui.graphics.Color color, androidx.ui.engine.geometry.Offset offset, androidx.ui.core.Px blurRadius);
-    method public androidx.ui.core.Px getBlurRadius();
+    method public androidx.ui.geometry.Offset component2();
+    method public androidx.ui.unit.Px component3();
+    method public androidx.ui.graphics.Shadow copy(androidx.ui.graphics.Color color, androidx.ui.geometry.Offset offset, androidx.ui.unit.Px blurRadius);
+    method public androidx.ui.unit.Px getBlurRadius();
     method public androidx.ui.graphics.Color getColor();
-    method public androidx.ui.engine.geometry.Offset getOffset();
+    method public androidx.ui.geometry.Offset getOffset();
   }
 
   public final class ShadowKt {
     method public static androidx.ui.graphics.Shadow lerp(androidx.ui.graphics.Shadow start, androidx.ui.graphics.Shadow stop, float fraction);
   }
 
+  public interface Shape {
+    method public androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
+  }
+
   public final class SolidColor implements androidx.ui.graphics.Brush {
     ctor public SolidColor(androidx.ui.graphics.Color value);
     method public void applyTo(androidx.ui.graphics.Paint p);
@@ -2203,85 +1302,16 @@
 
   public final class PointerInputTestUtilKt {
     method public static androidx.ui.core.PointerInputChange consume(androidx.ui.core.PointerInputChange, float dx = 0f, float dy = 0f, boolean downChange = false);
-    method public static androidx.ui.core.PointerInputChange down(int id = 0, androidx.ui.core.Duration duration = Duration.Zero, float x = 0f, float y = 0f);
-    method public static androidx.ui.core.PointerInputChange invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChanges, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass![] pointerEventPasses, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, java.util.List<androidx.ui.core.PointerInputChange> pointerInputChanges, java.util.List<? extends androidx.ui.core.PointerEventPass> pointerEventPasses, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static androidx.ui.core.PointerInputChange moveBy(androidx.ui.core.PointerInputChange, androidx.ui.core.Duration duration, float dx = 0f, float dy = 0f);
-    method public static androidx.ui.core.PointerInputChange moveTo(androidx.ui.core.PointerInputChange, androidx.ui.core.Duration duration, float x = 0f, float y = 0f);
-    method public static androidx.ui.core.PointerInputChange up(androidx.ui.core.PointerInputChange, androidx.ui.core.Duration duration);
-  }
-
-}
-
-package androidx.ui.util {
-
-  public final class Float16 implements java.lang.Comparable<androidx.ui.util.Float16> {
-    ctor public Float16(short halfValue);
-    ctor public Float16(float value);
-    ctor public Float16(double value);
-    method public androidx.ui.util.Float16 absoluteValue();
-    method public androidx.ui.util.Float16 ceil();
-    method public operator int compareTo(androidx.ui.util.Float16 other);
-    method public androidx.ui.util.Float16 floor();
-    method public int getExponent();
-    method public short getHalfValue();
-    method public androidx.ui.util.Float16 getSign();
-    method public int getSignificand();
-    method public boolean isFinite();
-    method public boolean isInfinite();
-    method public boolean isNaN();
-    method public boolean isNormalized();
-    method public androidx.ui.util.Float16 round();
-    method public int toBits();
-    method public byte toByte();
-    method public double toDouble();
-    method public float toFloat();
-    method public String toHexString();
-    method public int toInt();
-    method public long toLong();
-    method public int toRawBits();
-    method public short toShort();
-    method public androidx.ui.util.Float16 trunc();
-    method public androidx.ui.util.Float16 withSign(androidx.ui.util.Float16 sign);
-    property public final int exponent;
-    property public final androidx.ui.util.Float16 sign;
-    property public final int significand;
-    field public static final androidx.ui.util.Float16.Companion! Companion;
-    field public static final int MaxExponent = 15; // 0xf
-    field public static final int MinExponent = -14; // 0xfffffff2
-    field public static final int Size = 16; // 0x10
-  }
-
-  public static final class Float16.Companion {
-    method public androidx.ui.util.Float16 getEpsilon();
-    method public androidx.ui.util.Float16 getLowestValue();
-    method public androidx.ui.util.Float16 getMaxValue();
-    method public androidx.ui.util.Float16 getMinNormal();
-    method public androidx.ui.util.Float16 getMinValue();
-    method public androidx.ui.util.Float16 getNaN();
-    method public androidx.ui.util.Float16 getNegativeInfinity();
-    method public androidx.ui.util.Float16 getNegativeZero();
-    method public androidx.ui.util.Float16 getPositiveInfinity();
-    method public androidx.ui.util.Float16 getPositiveZero();
-    property public final androidx.ui.util.Float16 Epsilon;
-    property public final androidx.ui.util.Float16 LowestValue;
-    property public final androidx.ui.util.Float16 MaxValue;
-    property public final androidx.ui.util.Float16 MinNormal;
-    property public final androidx.ui.util.Float16 MinValue;
-    property public final androidx.ui.util.Float16 NaN;
-    property public final androidx.ui.util.Float16 NegativeInfinity;
-    property public final androidx.ui.util.Float16 NegativeZero;
-    property public final androidx.ui.util.Float16 PositiveInfinity;
-    property public final androidx.ui.util.Float16 PositiveZero;
-  }
-
-  public final class Float16Kt {
-    method public static androidx.ui.util.Float16 max(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
-    method public static androidx.ui.util.Float16 min(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
+    method public static androidx.ui.core.PointerInputChange down(int id = 0, androidx.ui.unit.Duration duration = Duration.Zero, float x = 0f, float y = 0f);
+    method public static androidx.ui.core.PointerInputChange invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChanges, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass![] pointerEventPasses, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, java.util.List<androidx.ui.core.PointerInputChange> pointerInputChanges, java.util.List<? extends androidx.ui.core.PointerEventPass> pointerEventPasses, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static androidx.ui.core.PointerInputChange moveBy(androidx.ui.core.PointerInputChange, androidx.ui.unit.Duration duration, float dx = 0f, float dy = 0f);
+    method public static androidx.ui.core.PointerInputChange moveTo(androidx.ui.core.PointerInputChange, androidx.ui.unit.Duration duration, float x = 0f, float y = 0f);
+    method public static androidx.ui.core.PointerInputChange up(androidx.ui.core.PointerInputChange, androidx.ui.unit.Duration duration);
   }
 
 }
@@ -2418,12 +1448,12 @@
 
   public final class Matrix4Kt {
     method public static Float? getAsScale(androidx.ui.vectormath64.Matrix4);
-    method public static androidx.ui.engine.geometry.Offset? getAsTranslation(androidx.ui.vectormath64.Matrix4);
-    method public static androidx.ui.engine.geometry.Rect inverseTransformRect(androidx.ui.vectormath64.Matrix4 transform, androidx.ui.engine.geometry.Rect rect);
+    method public static androidx.ui.geometry.Offset? getAsTranslation(androidx.ui.vectormath64.Matrix4);
+    method public static androidx.ui.geometry.Rect inverseTransformRect(androidx.ui.vectormath64.Matrix4 transform, androidx.ui.geometry.Rect rect);
     method public static boolean isIdentity(androidx.ui.vectormath64.Matrix4);
     method public static boolean matrixEquals(androidx.ui.vectormath64.Matrix4? a, androidx.ui.vectormath64.Matrix4? b);
-    method public static androidx.ui.engine.geometry.Offset transformPoint(androidx.ui.vectormath64.Matrix4, androidx.ui.engine.geometry.Offset point);
-    method public static androidx.ui.engine.geometry.Rect transformRect(androidx.ui.vectormath64.Matrix4, androidx.ui.engine.geometry.Rect rect);
+    method public static androidx.ui.geometry.Offset transformPoint(androidx.ui.vectormath64.Matrix4, androidx.ui.geometry.Offset point);
+    method public static androidx.ui.geometry.Rect transformRect(androidx.ui.vectormath64.Matrix4, androidx.ui.geometry.Rect rect);
   }
 
   public enum MatrixColumn {
diff --git a/ui/ui-core/api/public_plus_experimental_0.1.0-dev04.txt b/ui/ui-core/api/public_plus_experimental_0.1.0-dev04.txt
index 0260cd9..ebcf997 100644
--- a/ui/ui-core/api/public_plus_experimental_0.1.0-dev04.txt
+++ b/ui/ui-core/api/public_plus_experimental_0.1.0-dev04.txt
@@ -1,14 +1,6 @@
 // Signature format: 3.0
 package androidx.ui {
 
-  public final class MathHelpersKt {
-    method public static float lerp(float start, float stop, float fraction);
-    method public static int lerp(int start, int stop, float fraction);
-    method public static long lerp(long start, long stop, float fraction);
-    method public static String toHexString(int);
-    method public static String toStringAsFixed(float, int digits);
-  }
-
   public enum VertexMode {
     method public final android.graphics.Canvas.VertexMode toFrameworkVertexMode();
     enum_constant public static final androidx.ui.VertexMode triangleFan;
@@ -17,7 +9,7 @@
   }
 
   public final class Vertices {
-    ctor public Vertices(androidx.ui.VertexMode vertexMode, java.util.List<androidx.ui.engine.geometry.Offset> positions, java.util.List<androidx.ui.engine.geometry.Offset> textureCoordinates, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Integer> indices);
+    ctor public Vertices(androidx.ui.VertexMode vertexMode, java.util.List<androidx.ui.geometry.Offset> positions, java.util.List<androidx.ui.geometry.Offset> textureCoordinates, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Integer> indices);
     method public int[] getColors();
     method public short[] getIndices();
     method public float[] getPositions();
@@ -70,7 +62,7 @@
 package androidx.ui.core {
 
   public enum Alignment {
-    method public final androidx.ui.core.IntPxPosition align(androidx.ui.core.IntPxSize size);
+    method public final androidx.ui.unit.IntPxPosition align(androidx.ui.unit.IntPxSize size);
     enum_constant public static final androidx.ui.core.Alignment BottomCenter;
     enum_constant public static final androidx.ui.core.Alignment BottomLeft;
     enum_constant public static final androidx.ui.core.Alignment BottomRight;
@@ -87,45 +79,32 @@
   }
 
   public final class AlignmentLineKt {
-    method public static androidx.ui.core.IntPx merge(androidx.ui.core.AlignmentLine, androidx.ui.core.IntPx position1, androidx.ui.core.IntPx position2);
-  }
-
-  public final class Bounds {
-    ctor public Bounds(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.core.Bounds copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp getBottom();
-    method public androidx.ui.core.Dp getLeft();
-    method public androidx.ui.core.Dp getRight();
-    method public androidx.ui.core.Dp getTop();
+    method public static androidx.ui.unit.IntPx merge(androidx.ui.core.AlignmentLine, androidx.ui.unit.IntPx position1, androidx.ui.unit.IntPx position2);
   }
 
   public final class Constraints {
-    ctor public Constraints(androidx.ui.core.IntPx minWidth, androidx.ui.core.IntPx maxWidth, androidx.ui.core.IntPx minHeight, androidx.ui.core.IntPx maxHeight);
+    ctor public Constraints(androidx.ui.unit.IntPx minWidth, androidx.ui.unit.IntPx maxWidth, androidx.ui.unit.IntPx minHeight, androidx.ui.unit.IntPx maxHeight);
     ctor public Constraints();
-    method public androidx.ui.core.IntPx component1();
-    method public androidx.ui.core.IntPx component2();
-    method public androidx.ui.core.IntPx component3();
-    method public androidx.ui.core.IntPx component4();
-    method public androidx.ui.core.Constraints copy(androidx.ui.core.IntPx minWidth, androidx.ui.core.IntPx maxWidth, androidx.ui.core.IntPx minHeight, androidx.ui.core.IntPx maxHeight);
-    method public androidx.ui.core.IntPx getMaxHeight();
-    method public androidx.ui.core.IntPx getMaxWidth();
-    method public androidx.ui.core.IntPx getMinHeight();
-    method public androidx.ui.core.IntPx getMinWidth();
+    method public androidx.ui.unit.IntPx component1();
+    method public androidx.ui.unit.IntPx component2();
+    method public androidx.ui.unit.IntPx component3();
+    method public androidx.ui.unit.IntPx component4();
+    method public androidx.ui.core.Constraints copy(androidx.ui.unit.IntPx minWidth, androidx.ui.unit.IntPx maxWidth, androidx.ui.unit.IntPx minHeight, androidx.ui.unit.IntPx maxHeight);
+    method public androidx.ui.unit.IntPx getMaxHeight();
+    method public androidx.ui.unit.IntPx getMaxWidth();
+    method public androidx.ui.unit.IntPx getMinHeight();
+    method public androidx.ui.unit.IntPx getMinWidth();
     field public static final androidx.ui.core.Constraints.Companion! Companion;
   }
 
   public static final class Constraints.Companion {
-    method public androidx.ui.core.Constraints tightConstraints(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height);
-    method public androidx.ui.core.Constraints tightConstraintsForHeight(androidx.ui.core.IntPx height);
-    method public androidx.ui.core.Constraints tightConstraintsForWidth(androidx.ui.core.IntPx width);
+    method public androidx.ui.core.Constraints tightConstraints(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height);
+    method public androidx.ui.core.Constraints tightConstraintsForHeight(androidx.ui.unit.IntPx height);
+    method public androidx.ui.core.Constraints tightConstraintsForWidth(androidx.ui.unit.IntPx width);
   }
 
   public final class ConstraintsKt {
-    method public static androidx.ui.core.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.core.IntPxSize size);
+    method public static androidx.ui.unit.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
     method public static androidx.ui.core.Constraints enforce(androidx.ui.core.Constraints, androidx.ui.core.Constraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.core.Constraints);
     method public static boolean getHasBoundedWidth(androidx.ui.core.Constraints);
@@ -135,57 +114,21 @@
     method public static boolean isZero(androidx.ui.core.Constraints);
     method public static androidx.ui.core.Constraints looseMax(androidx.ui.core.Constraints);
     method public static androidx.ui.core.Constraints looseMin(androidx.ui.core.Constraints);
-    method public static androidx.ui.core.Constraints offset(androidx.ui.core.Constraints, androidx.ui.core.IntPx horizontal = 0.ipx, androidx.ui.core.IntPx vertical = 0.ipx);
-    method public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.core.IntPxSize size);
+    method public static androidx.ui.core.Constraints offset(androidx.ui.core.Constraints, androidx.ui.unit.IntPx horizontal = 0.ipx, androidx.ui.unit.IntPx vertical = 0.ipx);
+    method public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
     method public static androidx.ui.core.Constraints tightMax(androidx.ui.core.Constraints);
     method public static androidx.ui.core.Constraints tightMin(androidx.ui.core.Constraints);
-    method public static androidx.ui.core.Constraints withTight(androidx.ui.core.Constraints, androidx.ui.core.IntPx? width = null, androidx.ui.core.IntPx? height = null);
+    method public static androidx.ui.core.Constraints withTight(androidx.ui.core.Constraints, androidx.ui.unit.IntPx? width = null, androidx.ui.unit.IntPx? height = null);
   }
 
   public final class ConsumedData {
-    ctor public ConsumedData(androidx.ui.core.PxPosition positionChange, boolean downChange);
+    ctor public ConsumedData(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     ctor public ConsumedData();
-    method public androidx.ui.core.PxPosition component1();
+    method public androidx.ui.unit.PxPosition component1();
     method public boolean component2();
-    method public androidx.ui.core.ConsumedData copy(androidx.ui.core.PxPosition positionChange, boolean downChange);
+    method public androidx.ui.core.ConsumedData copy(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     method public boolean getDownChange();
-    method public androidx.ui.core.PxPosition getPositionChange();
-  }
-
-  public final class Density {
-    ctor public Density(float density, float fontScale);
-    method public float component1();
-    method public float component2();
-    method public androidx.ui.core.Density copy(float density, float fontScale);
-    method public float getDensity();
-    method public float getFontScale();
-  }
-
-  public final class DensityKt {
-    method public static androidx.ui.core.Density Density(android.content.Context context);
-    method public static androidx.ui.core.DensityScope DensityScope(androidx.ui.core.Density density);
-    method public static inline <R> R! withDensity(androidx.ui.core.Density density, kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,? extends R> block);
-  }
-
-  public interface DensityScope {
-    method public androidx.ui.core.Density getDensity();
-    method public default androidx.ui.core.Dp toDp(androidx.ui.core.TextUnit);
-    method public default androidx.ui.core.Dp toDp(androidx.ui.core.Px);
-    method public default androidx.ui.core.Dp toDp(androidx.ui.core.IntPx);
-    method public default androidx.ui.core.Dp toDp(float);
-    method public default androidx.ui.core.Dp toDp(int);
-    method public default androidx.ui.core.IntPx toIntPx(androidx.ui.core.Dp);
-    method public default androidx.ui.core.IntPx toIntPx(androidx.ui.core.TextUnit);
-    method public default androidx.ui.core.Px toPx(androidx.ui.core.Dp);
-    method public default androidx.ui.core.Px toPx(androidx.ui.core.TextUnit);
-    method public default androidx.ui.core.PxSize toPx-s2Mz6-8(long);
-    method public default androidx.ui.engine.geometry.Rect toRect(androidx.ui.core.Bounds);
-    method public default androidx.ui.core.TextUnit toSp(androidx.ui.core.Dp);
-    method public default androidx.ui.core.TextUnit toSp(androidx.ui.core.Px);
-    method public default androidx.ui.core.TextUnit toSp(androidx.ui.core.IntPx);
-    method public default androidx.ui.core.TextUnit toSp(float);
-    method public default androidx.ui.core.TextUnit toSp(int);
-    property public abstract androidx.ui.core.Density density;
+    method public androidx.ui.unit.PxPosition getPositionChange();
   }
 
   public enum Direction {
@@ -195,304 +138,29 @@
     enum_constant public static final androidx.ui.core.Direction UP;
   }
 
-  public final class Dp implements java.lang.Comparable<androidx.ui.core.Dp> {
-    ctor public Dp(float value);
-    method public operator int compareTo(androidx.ui.core.Dp other);
-    method public float component1();
-    method public androidx.ui.core.Dp copy(float value);
-    method public inline operator androidx.ui.core.Dp div(float other);
-    method public inline operator androidx.ui.core.Dp div(int other);
-    method public inline operator float div(androidx.ui.core.Dp other);
-    method public inline operator float div-KkBJKWw(float other);
-    method public float getValue();
-    method public inline operator androidx.ui.core.Dp minus(androidx.ui.core.Dp other);
-    method public inline operator androidx.ui.core.Dp plus(androidx.ui.core.Dp other);
-    method public inline operator androidx.ui.core.Dp times(float other);
-    method public inline operator androidx.ui.core.Dp times(int other);
-    method public inline operator float times(androidx.ui.core.Dp other);
-    method public inline operator float times-KkBJKWw(float other);
-    method public inline operator androidx.ui.core.Dp unaryMinus();
-    field public static final androidx.ui.core.Dp.Companion! Companion;
-  }
-
-  public static final class Dp.Companion {
-    method public androidx.ui.core.Dp getHairline();
-    method public androidx.ui.core.Dp getInfinity();
-    property public final androidx.ui.core.Dp Hairline;
-    property public final androidx.ui.core.Dp Infinity;
-  }
-
-  public final inline class DpCubed implements java.lang.Comparable<androidx.ui.core.DpCubed> {
-    ctor public DpCubed();
-    method public operator int compareTo-zqpl1kg(float p);
-    method public static operator int compareTo-zqpl1kg(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator androidx.ui.core.Dp div-KkBJKWw(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, androidx.ui.core.Dp other);
-    method public static inline operator float div-zqpl1kg(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-zqpl1kg(float $this, float dimension);
-    method public static inline operator float plus-zqpl1kg(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final inline class DpInverse implements java.lang.Comparable<androidx.ui.core.DpInverse> {
-    ctor public DpInverse();
-    method public operator int compareTo-ASDJgtI(float p);
-    method public static operator int compareTo-ASDJgtI(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-ASDJgtI(float $this, float dimension);
-    method public static inline operator float plus-ASDJgtI(float $this, float dimension);
-    method public static inline operator androidx.ui.core.Dp times-KkBJKWw(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Dp other);
-    method public static inline operator float times-zqpl1kg(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final class DpKt {
-    method public static inline long Position(androidx.ui.core.Dp x, androidx.ui.core.Dp y);
-    method public static inline long Size(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
-    method public static long center-s2Mz6-8(long);
-    method public static inline androidx.ui.core.Dp coerceAtLeast(androidx.ui.core.Dp, androidx.ui.core.Dp minimumValue);
-    method public static inline androidx.ui.core.Dp coerceAtMost(androidx.ui.core.Dp, androidx.ui.core.Dp maximumValue);
-    method public static inline androidx.ui.core.Dp coerceIn(androidx.ui.core.Dp, androidx.ui.core.Dp minimumValue, androidx.ui.core.Dp maximumValue);
-    method public static inline operator float div(float, androidx.ui.core.Dp other);
-    method public static inline operator float div(double, androidx.ui.core.Dp other);
-    method public static inline operator float div(int, androidx.ui.core.Dp other);
-    method public static androidx.ui.core.Dp getDistance-JXBE4ew(long);
-    method public static inline androidx.ui.core.Dp getDp(int);
-    method public static inline androidx.ui.core.Dp getDp(double);
-    method public static inline androidx.ui.core.Dp getDp(float);
-    method public static inline androidx.ui.core.Dp getHeight(androidx.ui.core.Bounds);
-    method public static inline androidx.ui.core.Dp getWidth(androidx.ui.core.Bounds);
-    method public static inline boolean isFinite(androidx.ui.core.Dp);
-    method public static androidx.ui.core.Dp lerp(androidx.ui.core.Dp start, androidx.ui.core.Dp stop, float fraction);
-    method public static long lerp-SuMVOfk(long start, long stop, float fraction);
-    method public static inline androidx.ui.core.Dp max(androidx.ui.core.Dp a, androidx.ui.core.Dp b);
-    method public static inline androidx.ui.core.Dp min(androidx.ui.core.Dp a, androidx.ui.core.Dp b);
-    method public static inline operator androidx.ui.core.Dp times(float, androidx.ui.core.Dp other);
-    method public static inline operator androidx.ui.core.Dp times(double, androidx.ui.core.Dp other);
-    method public static inline operator androidx.ui.core.Dp times(int, androidx.ui.core.Dp other);
-    method public static inline operator long times-Ze-JISM(int, long size);
-    method public static inline operator long times-doH9uME(float, long size);
-    method public static inline operator long times-nKWVx08(double, long size);
-    method public static androidx.ui.core.Bounds toBounds-s2Mz6-8(long);
-    method public static inline long toSize(androidx.ui.core.Bounds);
-  }
-
-  public final inline class DpSquared implements java.lang.Comparable<androidx.ui.core.DpSquared> {
-    ctor public DpSquared();
-    method public operator int compareTo-KkBJKWw(float p);
-    method public static operator int compareTo-KkBJKWw(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-KkBJKWw(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator androidx.ui.core.Dp div-impl(float $this, androidx.ui.core.Dp other);
-    method public static inline operator float div-zqpl1kg(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-KkBJKWw(float $this, float other);
-    method public static inline operator float plus-KkBJKWw(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Dp other);
-    method public static String toString-impl(float $this);
-  }
-
   public interface DrawModifier extends androidx.ui.core.Modifier.Element {
-    method public void draw(androidx.ui.core.Density density, kotlin.jvm.functions.Function0<kotlin.Unit> drawContent, androidx.ui.graphics.Canvas canvas, androidx.ui.core.PxSize size);
+    method public void draw(androidx.ui.unit.Density density, kotlin.jvm.functions.Function0<kotlin.Unit> drawContent, androidx.ui.graphics.Canvas canvas, androidx.ui.unit.PxSize size);
   }
 
   public final class DrawModifierKt {
-    method public static androidx.ui.core.DrawModifier draw(kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onDraw);
-    method public static androidx.ui.core.DrawModifier drawWithContent(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onDraw);
+    method public static androidx.ui.core.DrawModifier draw(kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onDraw);
+    method public static androidx.ui.core.DrawModifier drawWithContent(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onDraw);
   }
 
-  public interface DrawReceiver extends androidx.ui.core.DensityScope {
+  public interface DrawReceiver extends androidx.ui.unit.DensityScope {
     method public void drawChildren();
   }
 
-  public final class Duration implements java.lang.Comparable<androidx.ui.core.Duration> {
-    ctor public Duration(long nanoseconds);
-    method public int compareTo(androidx.ui.core.Duration other);
-    method public long component1();
-    method public androidx.ui.core.Duration copy(long nanoseconds);
-    method public operator androidx.ui.core.Duration div(int quotient);
-    method public operator androidx.ui.core.Duration div(double quotient);
-    method public long getNanoseconds();
-    method public operator androidx.ui.core.Duration minus(androidx.ui.core.Duration other);
-    method public operator androidx.ui.core.Duration plus(androidx.ui.core.Duration other);
-    method public operator androidx.ui.core.Duration times(int factor);
-    method public operator androidx.ui.core.Duration times(double factor);
-    field public static final androidx.ui.core.Duration.Companion! Companion;
-  }
-
-  public static final class Duration.Companion {
-    method public androidx.ui.core.Duration getZero();
-    property public final androidx.ui.core.Duration Zero;
-  }
-
-  public final class Durations {
-    method public static androidx.ui.core.Duration Duration(long days = 0, long hours = 0, long minutes = 0, long seconds = 0, long milliseconds = 0, long microseconds = 0, long nanoseconds = 0);
-    method public static androidx.ui.core.Duration getDays(long);
-    method public static androidx.ui.core.Duration getDays(int);
-    method public static androidx.ui.core.Duration getHours(long);
-    method public static androidx.ui.core.Duration getHours(int);
-    method public static androidx.ui.core.Duration getMicroseconds(long);
-    method public static androidx.ui.core.Duration getMicroseconds(int);
-    method public static androidx.ui.core.Duration getMilliseconds(long);
-    method public static androidx.ui.core.Duration getMilliseconds(int);
-    method public static androidx.ui.core.Duration getMinutes(long);
-    method public static androidx.ui.core.Duration getMinutes(int);
-    method public static androidx.ui.core.Duration getNanoseconds(long);
-    method public static androidx.ui.core.Duration getNanoseconds(int);
-    method public static long getNanosecondsPerDay();
-    method public static long getNanosecondsPerHour();
-    method public static long getNanosecondsPerMillisecond();
-    method public static long getNanosecondsPerMinute();
-    method public static long getNanosecondsPerSecond();
-    method public static androidx.ui.core.Duration getSeconds(long);
-    method public static androidx.ui.core.Duration getSeconds(int);
-    method public static long inDays(androidx.ui.core.Duration);
-    method public static long inHours(androidx.ui.core.Duration);
-    method public static long inMicroseconds(androidx.ui.core.Duration);
-    method public static long inMilliseconds(androidx.ui.core.Duration);
-    method public static long inMinutes(androidx.ui.core.Duration);
-    method public static long inSeconds(androidx.ui.core.Duration);
-    field public static final long HoursPerDay = 24L; // 0x18L
-    field public static final long MicrosecondsPerMillisecond = 1000L; // 0x3e8L
-    field public static final long MillisecondsPerSecond = 1000L; // 0x3e8L
-    field public static final long MinutesPerHour = 60L; // 0x3cL
-    field public static final long NanosecondsPerMicrosecond = 1000L; // 0x3e8L
-    field public static final long SecondsPerMinute = 60L; // 0x3cL
-  }
-
   public final class HorizontalAlignmentLine extends androidx.ui.core.AlignmentLine {
-    ctor public HorizontalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.core.IntPx,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> merger);
-  }
-
-  public final class InlineClassHelperKt {
-    method public static inline long packFloats(float val1, float val2);
-    method public static inline long packInts(int val1, int val2);
-    method public static inline float unpackFloat1(long value);
-    method public static inline float unpackFloat2(long value);
-    method public static inline int unpackInt1(long value);
-    method public static inline int unpackInt2(long value);
-  }
-
-  public final class IntPx implements java.lang.Comparable<androidx.ui.core.IntPx> {
-    ctor public IntPx(int value);
-    method public operator int compareTo(androidx.ui.core.IntPx other);
-    method public inline operator int compareTo(androidx.ui.core.Px other);
-    method public int component1();
-    method public androidx.ui.core.IntPx copy(int value);
-    method public operator androidx.ui.core.IntPx div(float other);
-    method public operator androidx.ui.core.IntPx div(double other);
-    method public operator androidx.ui.core.IntPx div(int other);
-    method public int getValue();
-    method public operator androidx.ui.core.IntPx minus(androidx.ui.core.IntPx other);
-    method public operator androidx.ui.core.IntPx plus(androidx.ui.core.IntPx other);
-    method public inline operator androidx.ui.core.IntPx rem(int other);
-    method public operator androidx.ui.core.IntPx times(float other);
-    method public operator androidx.ui.core.IntPx times(double other);
-    method public operator androidx.ui.core.IntPx times(int other);
-    method public operator androidx.ui.core.IntPx unaryMinus();
-    field public static final androidx.ui.core.IntPx.Companion! Companion;
-  }
-
-  public static final class IntPx.Companion {
-    method public androidx.ui.core.IntPx getInfinity();
-    method public androidx.ui.core.IntPx getZero();
-    property public final androidx.ui.core.IntPx Infinity;
-    property public final androidx.ui.core.IntPx Zero;
-  }
-
-  public final class IntPxBounds {
-    ctor public IntPxBounds(androidx.ui.core.IntPx left, androidx.ui.core.IntPx top, androidx.ui.core.IntPx right, androidx.ui.core.IntPx bottom);
-    method public androidx.ui.core.IntPx component1();
-    method public androidx.ui.core.IntPx component2();
-    method public androidx.ui.core.IntPx component3();
-    method public androidx.ui.core.IntPx component4();
-    method public androidx.ui.core.IntPxBounds copy(androidx.ui.core.IntPx left, androidx.ui.core.IntPx top, androidx.ui.core.IntPx right, androidx.ui.core.IntPx bottom);
-    method public androidx.ui.core.IntPx getBottom();
-    method public androidx.ui.core.IntPx getLeft();
-    method public androidx.ui.core.IntPx getRight();
-    method public androidx.ui.core.IntPx getTop();
-  }
-
-  public final class IntPxKt {
-    method public static inline androidx.ui.core.IntPxPosition IntPxPosition(androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
-    method public static inline androidx.ui.core.IntPxSize IntPxSize(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height);
-    method public static inline androidx.ui.core.PxPosition PxPosition(androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
-    method public static inline androidx.ui.core.PxSize PxSize(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height);
-    method public static androidx.ui.core.IntPxPosition center(androidx.ui.core.IntPxSize);
-    method public static inline androidx.ui.core.IntPx coerceAtLeast(androidx.ui.core.IntPx, androidx.ui.core.IntPx minimumValue);
-    method public static inline androidx.ui.core.IntPx coerceAtMost(androidx.ui.core.IntPx, androidx.ui.core.IntPx maximumValue);
-    method public static inline androidx.ui.core.IntPx coerceIn(androidx.ui.core.IntPx, androidx.ui.core.IntPx minimumValue, androidx.ui.core.IntPx maximumValue);
-    method public static inline androidx.ui.core.IntPx getHeight(androidx.ui.core.IntPxBounds);
-    method public static inline androidx.ui.core.IntPx getIpx(int);
-    method public static inline androidx.ui.core.IntPx getWidth(androidx.ui.core.IntPxBounds);
-    method public static inline boolean isFinite(androidx.ui.core.IntPx);
-    method public static androidx.ui.core.IntPx lerp(androidx.ui.core.IntPx start, androidx.ui.core.IntPx stop, float fraction);
-    method public static androidx.ui.core.IntPxPosition lerp(androidx.ui.core.IntPxPosition start, androidx.ui.core.IntPxPosition stop, float fraction);
-    method public static inline androidx.ui.core.IntPx max(androidx.ui.core.IntPx a, androidx.ui.core.IntPx b);
-    method public static inline androidx.ui.core.IntPx min(androidx.ui.core.IntPx a, androidx.ui.core.IntPx b);
-    method public static inline androidx.ui.core.IntPx round(androidx.ui.core.Px);
-    method public static inline operator androidx.ui.core.IntPx times(float, androidx.ui.core.IntPx other);
-    method public static inline operator androidx.ui.core.IntPx times(double, androidx.ui.core.IntPx other);
-    method public static inline operator androidx.ui.core.IntPx times(int, androidx.ui.core.IntPx other);
-    method public static inline operator androidx.ui.core.IntPxSize times(int, androidx.ui.core.IntPxSize size);
-    method public static inline androidx.ui.core.Px toPx(androidx.ui.core.IntPx);
-    method public static inline androidx.ui.core.PxPosition toPxPosition(androidx.ui.core.IntPxPosition);
-    method public static inline androidx.ui.core.PxSize toPxSize(androidx.ui.core.IntPxSize);
-    method public static inline androidx.ui.core.IntPxSize toSize(androidx.ui.core.IntPxBounds);
-  }
-
-  public final class IntPxPosition {
-    method public androidx.ui.core.IntPxPosition copy(long value);
-    method public inline androidx.ui.core.IntPx getX();
-    method public inline androidx.ui.core.IntPx getY();
-    method public inline operator androidx.ui.core.IntPxPosition minus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.IntPxPosition plus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.IntPxPosition unaryMinus();
-    property public final inline androidx.ui.core.IntPx x;
-    property public final inline androidx.ui.core.IntPx y;
-    field public static final androidx.ui.core.IntPxPosition.Companion! Companion;
-  }
-
-  public static final class IntPxPosition.Companion {
-    method public androidx.ui.core.IntPxPosition getOrigin();
-    property public final androidx.ui.core.IntPxPosition Origin;
-  }
-
-  public final class IntPxSize {
-    method public androidx.ui.core.IntPxSize copy(long value);
-    method public inline operator androidx.ui.core.IntPxSize div(int other);
-    method public inline androidx.ui.core.IntPx getHeight();
-    method public inline androidx.ui.core.IntPx getWidth();
-    method public inline operator androidx.ui.core.IntPxSize times(int other);
-    property public final inline androidx.ui.core.IntPx height;
-    property public final inline androidx.ui.core.IntPx width;
+    ctor public HorizontalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> merger);
   }
 
   public interface IntrinsicMeasurable {
     method public Object? getParentData();
-    method public androidx.ui.core.IntPx maxIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(androidx.ui.core.IntPx height);
-    method public androidx.ui.core.IntPx minIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(androidx.ui.core.IntPx height);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(androidx.ui.unit.IntPx height);
+    method public androidx.ui.unit.IntPx minIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(androidx.ui.unit.IntPx height);
     property public abstract Object? parentData;
   }
 
@@ -500,23 +168,23 @@
   }
 
   public interface LayoutCoordinates {
-    method public androidx.ui.core.PxPosition childToLocal(androidx.ui.core.LayoutCoordinates child, androidx.ui.core.PxPosition childLocal);
+    method public androidx.ui.unit.PxPosition childToLocal(androidx.ui.core.LayoutCoordinates child, androidx.ui.unit.PxPosition childLocal);
     method public androidx.ui.core.LayoutCoordinates? getParentCoordinates();
-    method public androidx.ui.core.PxPosition getPosition();
-    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> getProvidedAlignmentLines();
-    method public androidx.ui.core.PxSize getSize();
-    method public androidx.ui.core.PxPosition globalToLocal(androidx.ui.core.PxPosition global);
-    method public androidx.ui.core.PxPosition localToGlobal(androidx.ui.core.PxPosition local);
-    method public androidx.ui.core.PxPosition localToRoot(androidx.ui.core.PxPosition local);
+    method public androidx.ui.unit.PxPosition getPosition();
+    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> getProvidedAlignmentLines();
+    method public androidx.ui.unit.PxSize getSize();
+    method public androidx.ui.unit.PxPosition globalToLocal(androidx.ui.unit.PxPosition global);
+    method public androidx.ui.unit.PxPosition localToGlobal(androidx.ui.unit.PxPosition local);
+    method public androidx.ui.unit.PxPosition localToRoot(androidx.ui.unit.PxPosition local);
     property public abstract androidx.ui.core.LayoutCoordinates? parentCoordinates;
-    property public abstract androidx.ui.core.PxPosition position;
-    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> providedAlignmentLines;
-    property public abstract androidx.ui.core.PxSize size;
+    property public abstract androidx.ui.unit.PxPosition position;
+    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> providedAlignmentLines;
+    property public abstract androidx.ui.unit.PxSize size;
   }
 
   public final class LayoutCoordinatesKt {
-    method public static inline androidx.ui.core.PxPosition getGlobalPosition(androidx.ui.core.LayoutCoordinates);
-    method public static inline androidx.ui.core.PxPosition getPositionInRoot(androidx.ui.core.LayoutCoordinates);
+    method public static inline androidx.ui.unit.PxPosition getGlobalPosition(androidx.ui.core.LayoutCoordinates);
+    method public static inline androidx.ui.unit.PxPosition getPositionInRoot(androidx.ui.core.LayoutCoordinates);
   }
 
   public enum LayoutDirection {
@@ -525,33 +193,33 @@
   }
 
   public interface LayoutModifier extends androidx.ui.core.Modifier.Element {
-    method public default androidx.ui.core.IntPx maxIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public default androidx.ui.core.IntPx maxIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public default androidx.ui.core.IntPx minIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public default androidx.ui.core.IntPx minIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public default androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public default androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
-    method public default androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public default androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public default androidx.ui.unit.IntPx maxIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public default androidx.ui.unit.IntPx maxIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public default androidx.ui.unit.IntPx minIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public default androidx.ui.unit.IntPx minIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public default androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public default androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
+    method public default androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public default androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
   }
 
   public interface Measurable extends androidx.ui.core.IntrinsicMeasurable {
     method public androidx.ui.core.Placeable measure(androidx.ui.core.Constraints constraints);
   }
 
-  public abstract class MeasureScope implements androidx.ui.core.DensityScope {
+  public abstract class MeasureScope implements androidx.ui.unit.DensityScope {
     ctor public MeasureScope();
-    method public final androidx.ui.core.MeasureScope.LayoutResult layout(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height, java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> alignmentLines = emptyMap(), kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable.PlacementScope,kotlin.Unit> placementBlock);
+    method public final androidx.ui.core.MeasureScope.LayoutResult layout(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height, java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> alignmentLines = emptyMap(), kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable.PlacementScope,kotlin.Unit> placementBlock);
   }
 
   public static interface MeasureScope.LayoutResult {
-    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> getAlignmentLines();
-    method public androidx.ui.core.IntPx getHeight();
-    method public androidx.ui.core.IntPx getWidth();
+    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> getAlignmentLines();
+    method public androidx.ui.unit.IntPx getHeight();
+    method public androidx.ui.unit.IntPx getWidth();
     method public void placeChildren(androidx.ui.core.Placeable.PlacementScope placementScope);
-    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> alignmentLines;
-    property public abstract androidx.ui.core.IntPx height;
-    property public abstract androidx.ui.core.IntPx width;
+    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> alignmentLines;
+    property public abstract androidx.ui.unit.IntPx height;
+    property public abstract androidx.ui.unit.IntPx width;
   }
 
   public final class MeasureScopeKt {
@@ -576,27 +244,27 @@
   }
 
   public interface ParentDataModifier extends androidx.ui.core.Modifier.Element {
-    method public default Object? modifyParentData(androidx.ui.core.DensityScope, Object? parentData);
+    method public default Object? modifyParentData(androidx.ui.unit.DensityScope, Object? parentData);
   }
 
   public abstract class Placeable {
     ctor public Placeable();
-    method public abstract operator androidx.ui.core.IntPx? get(androidx.ui.core.AlignmentLine line);
-    method public final androidx.ui.core.IntPx getHeight();
-    method public abstract androidx.ui.core.IntPxSize getSize();
-    method public final androidx.ui.core.IntPx getWidth();
-    method protected abstract void performPlace(androidx.ui.core.IntPxPosition position);
-    property public final androidx.ui.core.IntPx height;
-    property public abstract androidx.ui.core.IntPxSize size;
-    property public final androidx.ui.core.IntPx width;
+    method public abstract operator androidx.ui.unit.IntPx? get(androidx.ui.core.AlignmentLine line);
+    method public final androidx.ui.unit.IntPx getHeight();
+    method public abstract androidx.ui.unit.IntPxSize getSize();
+    method public final androidx.ui.unit.IntPx getWidth();
+    method protected abstract void performPlace(androidx.ui.unit.IntPxPosition position);
+    property public final androidx.ui.unit.IntPx height;
+    property public abstract androidx.ui.unit.IntPxSize size;
+    property public final androidx.ui.unit.IntPx width;
     field public static final androidx.ui.core.Placeable.PlacementScope! PlacementScope;
   }
 
   public static final class Placeable.PlacementScope {
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.IntPxPosition position);
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.PxPosition position);
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.Px x, androidx.ui.core.Px y);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.IntPxPosition position);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.PxPosition position);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.Px x, androidx.ui.unit.Px y);
   }
 
   public enum PointerEventPass {
@@ -621,15 +289,15 @@
   }
 
   public final class PointerInputData {
-    ctor public PointerInputData(androidx.ui.core.Uptime? uptime, androidx.ui.core.PxPosition? position, boolean down);
+    ctor public PointerInputData(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     ctor public PointerInputData();
-    method public androidx.ui.core.Uptime? component1();
-    method public androidx.ui.core.PxPosition? component2();
+    method public androidx.ui.unit.Uptime? component1();
+    method public androidx.ui.unit.PxPosition? component2();
     method public boolean component3();
-    method public androidx.ui.core.PointerInputData copy(androidx.ui.core.Uptime? uptime, androidx.ui.core.PxPosition? position, boolean down);
+    method public androidx.ui.core.PointerInputData copy(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     method public boolean getDown();
-    method public androidx.ui.core.PxPosition? getPosition();
-    method public androidx.ui.core.Uptime? getUptime();
+    method public androidx.ui.unit.PxPosition? getPosition();
+    method public androidx.ui.unit.Uptime? getUptime();
   }
 
   public final class PointerInputKt {
@@ -639,622 +307,20 @@
     method public static boolean changedToUp(androidx.ui.core.PointerInputChange);
     method public static boolean changedToUpIgnoreConsumed(androidx.ui.core.PointerInputChange);
     method public static androidx.ui.core.PointerInputChange consumeDownChange(androidx.ui.core.PointerInputChange);
-    method public static androidx.ui.core.PointerInputChange consumePositionChange(androidx.ui.core.PointerInputChange, androidx.ui.core.Px consumedDx, androidx.ui.core.Px consumedDy);
-    method public static androidx.ui.core.PxPosition positionChange(androidx.ui.core.PointerInputChange);
-    method public static androidx.ui.core.PxPosition positionChangeIgnoreConsumed(androidx.ui.core.PointerInputChange);
+    method public static androidx.ui.core.PointerInputChange consumePositionChange(androidx.ui.core.PointerInputChange, androidx.ui.unit.Px consumedDx, androidx.ui.unit.Px consumedDy);
+    method public static androidx.ui.unit.PxPosition positionChange(androidx.ui.core.PointerInputChange);
+    method public static androidx.ui.unit.PxPosition positionChangeIgnoreConsumed(androidx.ui.core.PointerInputChange);
     method public static boolean positionChanged(androidx.ui.core.PointerInputChange);
     method public static boolean positionChangedIgnoreConsumed(androidx.ui.core.PointerInputChange);
   }
 
-  public final inline class Position {
-    ctor public Position();
-    method public static long constructor-impl(internal long value);
-    method public static boolean equals-impl(long p, Object? p1);
-    method public static boolean equals-impl0(long p1, long p2);
-    method public static androidx.ui.core.Dp getX-impl(long $this);
-    method public static androidx.ui.core.Dp getY-impl(long $this);
-    method public static int hashCode-impl(long p);
-    method public static inline operator long minus-JXBE4ew(long $this, long other);
-    method public static inline operator long plus-JXBE4ew(long $this, long other);
-    method public static String toString-impl(long $this);
-  }
-
-  public final class Px implements java.lang.Comparable<androidx.ui.core.Px> {
-    ctor public Px(float value);
-    method public operator int compareTo(androidx.ui.core.Px other);
-    method public inline operator int compareTo(androidx.ui.core.IntPx other);
-    method public float component1();
-    method public androidx.ui.core.Px copy(float value);
-    method public inline operator androidx.ui.core.Px div(float other);
-    method public inline operator androidx.ui.core.Px div(int other);
-    method public inline operator float div(androidx.ui.core.Px other);
-    method public inline operator float div-kVJEwbQ(float other);
-    method public float getValue();
-    method public inline operator androidx.ui.core.Px minus(androidx.ui.core.Px other);
-    method public inline operator androidx.ui.core.Px minus(androidx.ui.core.IntPx other);
-    method public inline operator androidx.ui.core.Px plus(androidx.ui.core.Px other);
-    method public inline operator androidx.ui.core.Px plus(androidx.ui.core.IntPx other);
-    method public inline operator androidx.ui.core.Px times(float other);
-    method public inline operator androidx.ui.core.Px times(int other);
-    method public inline operator float times(androidx.ui.core.Px other);
-    method public inline operator float times-kVJEwbQ(float other);
-    method public inline operator androidx.ui.core.Px unaryMinus();
-    field public static final androidx.ui.core.Px.Companion! Companion;
-  }
-
-  public static final class Px.Companion {
-    method public androidx.ui.core.Px getInfinity();
-    method public androidx.ui.core.Px getZero();
-    property public final androidx.ui.core.Px Infinity;
-    property public final androidx.ui.core.Px Zero;
-  }
-
-  public final class PxBounds {
-    ctor public PxBounds(androidx.ui.core.Px left, androidx.ui.core.Px top, androidx.ui.core.Px right, androidx.ui.core.Px bottom);
-    method public androidx.ui.core.Px component1();
-    method public androidx.ui.core.Px component2();
-    method public androidx.ui.core.Px component3();
-    method public androidx.ui.core.Px component4();
-    method public androidx.ui.core.PxBounds copy(androidx.ui.core.Px left, androidx.ui.core.Px top, androidx.ui.core.Px right, androidx.ui.core.Px bottom);
-    method public androidx.ui.core.Px getBottom();
-    method public androidx.ui.core.Px getLeft();
-    method public androidx.ui.core.Px getRight();
-    method public androidx.ui.core.Px getTop();
-  }
-
-  public final inline class PxCubed implements java.lang.Comparable<androidx.ui.core.PxCubed> {
-    ctor public PxCubed();
-    method public operator int compareTo-syUR1PY(float p);
-    method public static operator int compareTo-syUR1PY(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px div-kVJEwbQ(float $this, float other);
-    method public static inline operator float div-syUR1PY(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-syUR1PY(float $this, float dimension);
-    method public static inline operator float plus-syUR1PY(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final inline class PxInverse implements java.lang.Comparable<androidx.ui.core.PxInverse> {
-    ctor public PxInverse();
-    method public operator int compareTo-MXEAIGs(float p);
-    method public static operator int compareTo-MXEAIGs(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-MXEAIGs(float $this, float dimension);
-    method public static inline operator float plus-MXEAIGs(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px times-kVJEwbQ(float $this, float other);
-    method public static inline operator float times-syUR1PY(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final class PxKt {
-    method public static inline androidx.ui.core.PxPosition PxPosition(androidx.ui.core.Px x, androidx.ui.core.Px y);
-    method public static inline androidx.ui.core.PxSize PxSize(androidx.ui.core.Px width, androidx.ui.core.Px height);
-    method public static androidx.ui.core.PxPosition center(androidx.ui.core.PxSize);
-    method public static inline androidx.ui.core.Px coerceAtLeast(androidx.ui.core.Px, androidx.ui.core.Px minimumValue);
-    method public static inline androidx.ui.core.Px coerceAtMost(androidx.ui.core.Px, androidx.ui.core.Px maximumValue);
-    method public static inline androidx.ui.core.Px coerceIn(androidx.ui.core.Px, androidx.ui.core.Px minimumValue, androidx.ui.core.Px maximumValue);
-    method public static inline operator float div(float, androidx.ui.core.Px other);
-    method public static inline operator float div(double, androidx.ui.core.Px other);
-    method public static inline operator float div(int, androidx.ui.core.Px other);
-    method public static androidx.ui.core.Px getDistance(androidx.ui.core.PxPosition);
-    method public static inline androidx.ui.core.Px getHeight(androidx.ui.core.PxBounds);
-    method public static androidx.ui.core.Px! getMinDimension(androidx.ui.core.PxSize);
-    method public static inline androidx.ui.core.Px getPx(int);
-    method public static inline androidx.ui.core.Px getPx(double);
-    method public static inline androidx.ui.core.Px getPx(float);
-    method public static inline androidx.ui.core.Px getWidth(androidx.ui.core.PxBounds);
-    method public static androidx.ui.core.Px lerp(androidx.ui.core.Px start, androidx.ui.core.Px stop, float fraction);
-    method public static androidx.ui.core.PxPosition lerp(androidx.ui.core.PxPosition start, androidx.ui.core.PxPosition stop, float fraction);
-    method public static inline androidx.ui.core.Px max(androidx.ui.core.Px a, androidx.ui.core.Px b);
-    method public static inline androidx.ui.core.Px min(androidx.ui.core.Px a, androidx.ui.core.Px b);
-    method public static inline androidx.ui.core.IntPxPosition round(androidx.ui.core.PxPosition);
-    method public static inline operator androidx.ui.core.Px times(float, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px times(double, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px times(int, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.PxSize times(int, androidx.ui.core.PxSize size);
-    method public static inline operator androidx.ui.core.PxSize times(float, androidx.ui.core.PxSize size);
-    method public static inline operator androidx.ui.core.PxSize times(double, androidx.ui.core.PxSize size);
-    method public static androidx.ui.core.PxBounds toBounds(androidx.ui.core.PxSize);
-    method public static inline androidx.ui.engine.geometry.Offset toOffset(androidx.ui.core.PxPosition);
-    method public static androidx.ui.engine.geometry.Rect toRect(androidx.ui.core.PxBounds);
-    method public static androidx.ui.engine.geometry.Rect toRect(androidx.ui.core.PxSize);
-    method public static androidx.ui.core.PxSize toSize(androidx.ui.core.PxBounds);
-  }
-
-  public final class PxPosition {
-    method public androidx.ui.core.PxPosition copy(long value);
-    method public inline androidx.ui.core.Px getX();
-    method public inline androidx.ui.core.Px getY();
-    method public inline operator androidx.ui.core.PxPosition minus(androidx.ui.core.PxPosition other);
-    method public inline operator androidx.ui.core.PxPosition minus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.PxPosition plus(androidx.ui.core.PxPosition other);
-    method public inline operator androidx.ui.core.PxPosition plus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.PxPosition unaryMinus();
-    property public final inline androidx.ui.core.Px x;
-    property public final inline androidx.ui.core.Px y;
-    field public static final androidx.ui.core.PxPosition.Companion! Companion;
-  }
-
-  public static final class PxPosition.Companion {
-    method public androidx.ui.core.PxPosition getOrigin();
-    property public final androidx.ui.core.PxPosition Origin;
-  }
-
-  public final class PxSize {
-    method public androidx.ui.core.PxSize copy(long value);
-    method public inline operator androidx.ui.core.PxSize div(int other);
-    method public inline operator androidx.ui.core.PxSize div(float other);
-    method public inline operator androidx.ui.core.PxSize div(double other);
-    method public inline androidx.ui.core.Px getHeight();
-    method public inline androidx.ui.core.Px getWidth();
-    method public inline operator androidx.ui.core.PxSize times(int other);
-    method public inline operator androidx.ui.core.PxSize times(float other);
-    method public inline operator androidx.ui.core.PxSize times(double other);
-    property public final inline androidx.ui.core.Px height;
-    property public final inline androidx.ui.core.Px width;
-    field public static final androidx.ui.core.PxSize.Companion! Companion;
-  }
-
-  public static final class PxSize.Companion {
-    method public androidx.ui.core.PxSize getZero();
-    property public final androidx.ui.core.PxSize Zero;
-  }
-
-  public final inline class PxSquared implements java.lang.Comparable<androidx.ui.core.PxSquared> {
-    ctor public PxSquared();
-    method public operator int compareTo-kVJEwbQ(float p);
-    method public static operator int compareTo-kVJEwbQ(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator androidx.ui.core.Px div-impl(float $this, androidx.ui.core.Px other);
-    method public static inline operator float div-kVJEwbQ(float $this, float other);
-    method public static inline operator float div-syUR1PY(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-kVJEwbQ(float $this, float other);
-    method public static inline operator float plus-kVJEwbQ(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Px other);
-    method public static String toString-impl(float $this);
-  }
-
   public final class RectHelperKt {
-    method public static android.graphics.Rect toFrameworkRect(androidx.ui.engine.geometry.Rect);
-    method public static android.graphics.RectF toFrameworkRectF(androidx.ui.engine.geometry.Rect);
-  }
-
-  public final inline class Size {
-    ctor public Size();
-    method public static long constructor-impl(internal long value);
-    method public static inline operator long div-impl(long $this, int other);
-    method public static inline operator long div-impl(long $this, float other);
-    method public static inline operator long div-impl(long $this, double other);
-    method public static boolean equals-impl(long p, Object? p1);
-    method public static boolean equals-impl0(long p1, long p2);
-    method public static androidx.ui.core.Dp getHeight-impl(long $this);
-    method public static androidx.ui.core.Dp getWidth-impl(long $this);
-    method public static int hashCode-impl(long p);
-    method public static inline operator long times-impl(long $this, int other);
-    method public static inline operator long times-impl(long $this, float other);
-    method public static inline operator long times-impl(long $this, double other);
-    method public static String toString-impl(long $this);
-  }
-
-  public final class TextUnit {
-    ctor public TextUnit(long packedValue);
-    method public inline operator int compareTo(androidx.ui.core.TextUnit other);
-    method public long component1();
-    method public androidx.ui.core.TextUnit copy(long packedValue);
-    method public inline operator androidx.ui.core.TextUnit div(float other);
-    method public inline operator androidx.ui.core.TextUnit div(double other);
-    method public inline operator androidx.ui.core.TextUnit div(int other);
-    method public inline operator float div(androidx.ui.core.TextUnit other);
-    method public long getPackedValue();
-    method public androidx.ui.core.TextUnitType getType();
-    method public float getValue();
-    method public boolean isEm();
-    method public boolean isInherit();
-    method public boolean isSp();
-    method public inline operator androidx.ui.core.TextUnit minus(androidx.ui.core.TextUnit other);
-    method public inline operator androidx.ui.core.TextUnit plus(androidx.ui.core.TextUnit other);
-    method public inline operator androidx.ui.core.TextUnit times(float other);
-    method public inline operator androidx.ui.core.TextUnit times(double other);
-    method public inline operator androidx.ui.core.TextUnit times(int other);
-    method public inline operator androidx.ui.core.TextUnit unaryMinus();
-    property public final boolean isEm;
-    property public final boolean isInherit;
-    property public final boolean isSp;
-    property public final androidx.ui.core.TextUnitType type;
-    property public final float value;
-    field public static final androidx.ui.core.TextUnit.Companion! Companion;
-  }
-
-  public static final class TextUnit.Companion {
-    method public androidx.ui.core.TextUnit Em(int value);
-    method public androidx.ui.core.TextUnit Em(float value);
-    method public androidx.ui.core.TextUnit Em(double value);
-    method public androidx.ui.core.TextUnit Sp(int value);
-    method public androidx.ui.core.TextUnit Sp(float value);
-    method public androidx.ui.core.TextUnit Sp(double value);
-    method public androidx.ui.core.TextUnit getInherit();
-    property public final androidx.ui.core.TextUnit Inherit;
-  }
-
-  public final class TextUnitKt {
-    method public static inline androidx.ui.core.TextUnit coerceAtLeast(androidx.ui.core.TextUnit, androidx.ui.core.TextUnit minimumValue);
-    method public static inline androidx.ui.core.TextUnit coerceAtMost(androidx.ui.core.TextUnit, androidx.ui.core.TextUnit maximumValue);
-    method public static inline androidx.ui.core.TextUnit coerceIn(androidx.ui.core.TextUnit, androidx.ui.core.TextUnit minimumValue, androidx.ui.core.TextUnit maximumValue);
-    method public static androidx.ui.core.TextUnit getEm(float);
-    method public static androidx.ui.core.TextUnit getEm(double);
-    method public static androidx.ui.core.TextUnit getEm(int);
-    method public static androidx.ui.core.TextUnit getSp(float);
-    method public static androidx.ui.core.TextUnit getSp(double);
-    method public static androidx.ui.core.TextUnit getSp(int);
-    method public static androidx.ui.core.TextUnit lerp(androidx.ui.core.TextUnit a, androidx.ui.core.TextUnit b, float t);
-    method public static inline androidx.ui.core.TextUnit max(androidx.ui.core.TextUnit a, androidx.ui.core.TextUnit b);
-    method public static inline androidx.ui.core.TextUnit min(androidx.ui.core.TextUnit a, androidx.ui.core.TextUnit b);
-    method public static inline operator androidx.ui.core.TextUnit times(float, androidx.ui.core.TextUnit other);
-    method public static inline operator androidx.ui.core.TextUnit times(double, androidx.ui.core.TextUnit other);
-    method public static inline operator androidx.ui.core.TextUnit times(int, androidx.ui.core.TextUnit other);
-  }
-
-  public enum TextUnitType {
-    enum_constant public static final androidx.ui.core.TextUnitType Em;
-    enum_constant public static final androidx.ui.core.TextUnitType Inherit;
-    enum_constant public static final androidx.ui.core.TextUnitType Sp;
-  }
-
-  public final class Uptime implements java.lang.Comparable<androidx.ui.core.Uptime> {
-    ctor public Uptime(long nanoseconds);
-    method public int compareTo(androidx.ui.core.Uptime other);
-    method public long component1();
-    method public androidx.ui.core.Uptime copy(long nanoseconds);
-    method public long getNanoseconds();
-    method public operator androidx.ui.core.Uptime minus(androidx.ui.core.Duration duration);
-    method public operator androidx.ui.core.Duration minus(androidx.ui.core.Uptime other);
-    method public operator androidx.ui.core.Uptime plus(androidx.ui.core.Duration duration);
-    field public static final androidx.ui.core.Uptime.Companion! Companion;
-  }
-
-  public static final class Uptime.Companion {
-    method public androidx.ui.core.Uptime getBoot();
-    property public final androidx.ui.core.Uptime Boot;
-  }
-
-  public final class UptimeKt {
-    method public static operator androidx.ui.core.Uptime plus(androidx.ui.core.Duration, androidx.ui.core.Uptime uptime);
-  }
-
-  public final class Velocity {
-    ctor public Velocity(androidx.ui.core.PxPosition pixelsPerSecond);
-    method public androidx.ui.core.PxPosition component1();
-    method public androidx.ui.core.Velocity copy(androidx.ui.core.PxPosition pixelsPerSecond);
-    method public androidx.ui.core.PxPosition getPixelsPerSecond();
-    method public operator androidx.ui.core.Velocity unaryMinus();
-    field public static final androidx.ui.core.Velocity.Companion! Companion;
-  }
-
-  public static final class Velocity.Companion {
-    method public androidx.ui.core.Velocity getZero();
-    property public final androidx.ui.core.Velocity Zero;
-  }
-
-  public final class VelocityKt {
-    method public static operator androidx.ui.core.Velocity minus(androidx.ui.core.Velocity, androidx.ui.core.Velocity other);
-    method public static operator androidx.ui.core.Velocity plus(androidx.ui.core.Velocity, androidx.ui.core.Velocity other);
+    method public static android.graphics.Rect toFrameworkRect(androidx.ui.geometry.Rect);
+    method public static android.graphics.RectF toFrameworkRectF(androidx.ui.geometry.Rect);
   }
 
   public final class VerticalAlignmentLine extends androidx.ui.core.AlignmentLine {
-    ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.core.IntPx,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> merger);
-  }
-
-}
-
-package androidx.ui.engine.geometry {
-
-  public final class Offset implements androidx.ui.engine.geometry.OffsetBase {
-    ctor public Offset(float dx, float dy);
-    method public infix androidx.ui.engine.geometry.Rect and(androidx.ui.engine.geometry.Size other);
-    method public float component1();
-    method public float component2();
-    method public androidx.ui.engine.geometry.Offset copy(float dx, float dy);
-    method public operator androidx.ui.engine.geometry.Offset div(float operand);
-    method public float getDirection();
-    method public float getDistance();
-    method public float getDistanceSquared();
-    method public float getDx();
-    method public float getDy();
-    method public operator androidx.ui.engine.geometry.Offset minus(androidx.ui.engine.geometry.Offset other);
-    method public operator androidx.ui.engine.geometry.Offset plus(androidx.ui.engine.geometry.Offset other);
-    method public operator androidx.ui.engine.geometry.Offset rem(float operand);
-    method public androidx.ui.engine.geometry.Offset scale(float scaleX, float scaleY);
-    method public operator androidx.ui.engine.geometry.Offset times(float operand);
-    method public androidx.ui.engine.geometry.Offset translate(float translateX, float translateY);
-    method public androidx.ui.engine.geometry.Offset truncDiv(float operand);
-    method public operator androidx.ui.engine.geometry.Offset unaryMinus();
-    field public static final androidx.ui.engine.geometry.Offset.Companion! Companion;
-  }
-
-  public static final class Offset.Companion {
-    method public androidx.ui.engine.geometry.Offset getInfinite();
-    method public androidx.ui.engine.geometry.Offset getZero();
-    method public boolean isValid(androidx.ui.engine.geometry.Offset offset);
-    method public androidx.ui.engine.geometry.Offset lerp(androidx.ui.engine.geometry.Offset start, androidx.ui.engine.geometry.Offset stop, float fraction);
-    property public final androidx.ui.engine.geometry.Offset infinite;
-    property public final androidx.ui.engine.geometry.Offset zero;
-  }
-
-  public interface OffsetBase {
-    method public float getDx();
-    method public float getDy();
-    method public default boolean isFinite();
-    method public default boolean isGreaterOrEqThan(androidx.ui.engine.geometry.OffsetBase other);
-    method public default boolean isGreaterThan(androidx.ui.engine.geometry.OffsetBase other);
-    method public default boolean isInfinite();
-    method public default boolean isLessOrEqThan(androidx.ui.engine.geometry.OffsetBase other);
-    method public default boolean isLessThan(androidx.ui.engine.geometry.OffsetBase other);
-    property public abstract float dx;
-    property public abstract float dy;
-  }
-
-  public final class OffsetKt {
-    method public static androidx.ui.core.PxPosition toPxPosition(androidx.ui.engine.geometry.Offset);
-  }
-
-  public abstract sealed class Outline {
-  }
-
-  public static final class Outline.Generic extends androidx.ui.engine.geometry.Outline {
-    ctor public Outline.Generic(androidx.ui.graphics.Path path);
-    method public androidx.ui.graphics.Path component1();
-    method public androidx.ui.engine.geometry.Outline.Generic copy(androidx.ui.graphics.Path path);
-    method public androidx.ui.graphics.Path getPath();
-  }
-
-  public static final class Outline.Rectangle extends androidx.ui.engine.geometry.Outline {
-    ctor public Outline.Rectangle(androidx.ui.engine.geometry.Rect rect);
-    method public androidx.ui.engine.geometry.Rect component1();
-    method public androidx.ui.engine.geometry.Outline.Rectangle copy(androidx.ui.engine.geometry.Rect rect);
-    method public androidx.ui.engine.geometry.Rect getRect();
-  }
-
-  public static final class Outline.Rounded extends androidx.ui.engine.geometry.Outline {
-    ctor public Outline.Rounded(androidx.ui.engine.geometry.RRect rrect);
-    method public androidx.ui.engine.geometry.RRect component1();
-    method public androidx.ui.engine.geometry.Outline.Rounded copy(androidx.ui.engine.geometry.RRect rrect);
-    method public androidx.ui.engine.geometry.RRect getRrect();
-  }
-
-  public final class OutlineKt {
-    method public static void addOutline(androidx.ui.graphics.Path, androidx.ui.engine.geometry.Outline outline);
-    method public static void drawOutline(androidx.ui.graphics.Canvas, androidx.ui.engine.geometry.Outline outline, androidx.ui.graphics.Paint paint);
-  }
-
-  public final class RRect {
-    ctor public RRect(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
-    method public float component1();
-    method public float component10();
-    method public float component11();
-    method public float component12();
-    method public float component2();
-    method public float component3();
-    method public float component4();
-    method public float component5();
-    method public float component6();
-    method public float component7();
-    method public float component8();
-    method public float component9();
-    method public boolean contains(androidx.ui.engine.geometry.Offset point);
-    method public androidx.ui.engine.geometry.RRect copy(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
-    method @Deprecated public androidx.ui.engine.geometry.RRect deflate(float delta);
-    method public float getBottom();
-    method public float getBottomLeftRadiusX();
-    method public float getBottomLeftRadiusY();
-    method public float getBottomRightRadiusX();
-    method public float getBottomRightRadiusY();
-    method public float getHeight();
-    method public float getLeft();
-    method public float getRight();
-    method public float getTop();
-    method public float getTopLeftRadiusX();
-    method public float getTopLeftRadiusY();
-    method public float getTopRightRadiusX();
-    method public float getTopRightRadiusY();
-    method public float getWidth();
-    method public static androidx.ui.engine.geometry.RRect getZero();
-    method @Deprecated public androidx.ui.engine.geometry.RRect inflate(float delta);
-    property public final float height;
-    property public final float width;
-    field public static final androidx.ui.engine.geometry.RRect.Companion! Companion;
-  }
-
-  public static final class RRect.Companion {
-    method public androidx.ui.engine.geometry.RRect getZero();
-    property public final androidx.ui.engine.geometry.RRect Zero;
-  }
-
-  public final class RRectKt {
-    method public static androidx.ui.engine.geometry.RRect RRect(float left, float top, float right, float bottom, float radiusX, float radiusY);
-    method public static androidx.ui.engine.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.engine.geometry.Radius radius);
-    method public static androidx.ui.engine.geometry.RRect RRect(androidx.ui.engine.geometry.Rect rect, float radiusX, float radiusY);
-    method public static androidx.ui.engine.geometry.RRect RRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.engine.geometry.Radius radius);
-    method public static androidx.ui.engine.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.engine.geometry.Radius topLeft = Radius.zero, androidx.ui.engine.geometry.Radius topRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomLeft = Radius.zero);
-    method public static androidx.ui.engine.geometry.RRect RRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.engine.geometry.Radius topLeft = Radius.zero, androidx.ui.engine.geometry.Radius topRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomLeft = Radius.zero);
-    method public static androidx.ui.engine.geometry.Radius bottomLeftRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Radius bottomRightRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Offset center(androidx.ui.engine.geometry.RRect);
-    method public static float getLongestSide(androidx.ui.engine.geometry.RRect);
-    method public static float getShortestSide(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect grow(androidx.ui.engine.geometry.RRect, float delta);
-    method public static boolean isCircle(androidx.ui.engine.geometry.RRect);
-    method public static boolean isEllipse(androidx.ui.engine.geometry.RRect);
-    method public static boolean isEmpty(androidx.ui.engine.geometry.RRect);
-    method public static boolean isFinite(androidx.ui.engine.geometry.RRect);
-    method public static boolean isRect(androidx.ui.engine.geometry.RRect);
-    method public static boolean isStadium(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect lerp(androidx.ui.engine.geometry.RRect start, androidx.ui.engine.geometry.RRect stop, float fraction);
-    method public static androidx.ui.engine.geometry.Rect middleRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Rect outerRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Rect safeInnerRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect shift(androidx.ui.engine.geometry.RRect, androidx.ui.engine.geometry.Offset offset);
-    method public static androidx.ui.engine.geometry.RRect shrink(androidx.ui.engine.geometry.RRect, float delta);
-    method public static androidx.ui.engine.geometry.Rect tallMiddleRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Radius topLeftRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Radius topRightRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Rect wideMiddleRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect withRadius(androidx.ui.engine.geometry.RRect, androidx.ui.engine.geometry.Radius radius);
-  }
-
-  public final class Radius {
-    ctor public Radius(float x, float y);
-    method public float component1();
-    method public float component2();
-    method public androidx.ui.engine.geometry.Radius copy(float x, float y);
-    method public operator androidx.ui.engine.geometry.Radius div(float operand);
-    method public float getX();
-    method public float getY();
-    method public operator androidx.ui.engine.geometry.Radius minus(androidx.ui.engine.geometry.Radius other);
-    method public operator androidx.ui.engine.geometry.Radius plus(androidx.ui.engine.geometry.Radius other);
-    method public operator androidx.ui.engine.geometry.Radius rem(float operand);
-    method public operator androidx.ui.engine.geometry.Radius times(float operand);
-    method public androidx.ui.engine.geometry.Radius truncDiv(float operand);
-    method public operator androidx.ui.engine.geometry.Radius unaryMinus();
-    field public static final androidx.ui.engine.geometry.Radius.Companion! Companion;
-  }
-
-  public static final class Radius.Companion {
-    method public androidx.ui.engine.geometry.Radius circular(float radius);
-    method public androidx.ui.engine.geometry.Radius elliptical(float x, float y);
-    method public androidx.ui.engine.geometry.Radius getZero();
-    property public final androidx.ui.engine.geometry.Radius zero;
-  }
-
-  public final class RadiusKt {
-    method public static androidx.ui.engine.geometry.Radius lerp(androidx.ui.engine.geometry.Radius start, androidx.ui.engine.geometry.Radius stop, float fraction);
-  }
-
-  public final class Rect {
-    ctor public Rect(float left, float top, float right, float bottom);
-    method public float component1();
-    method public float component2();
-    method public float component3();
-    method public float component4();
-    method public boolean contains(androidx.ui.engine.geometry.Offset offset);
-    method public androidx.ui.engine.geometry.Rect copy(float left, float top, float right, float bottom);
-    method public androidx.ui.engine.geometry.Rect deflate(float delta);
-    method public androidx.ui.engine.geometry.Rect expandToInclude(androidx.ui.engine.geometry.Rect other);
-    method public float getBottom();
-    method public androidx.ui.engine.geometry.Offset getBottomCenter();
-    method public androidx.ui.engine.geometry.Offset getBottomLeft();
-    method public androidx.ui.engine.geometry.Offset getBottomRight();
-    method public androidx.ui.engine.geometry.Offset getCenter();
-    method public androidx.ui.engine.geometry.Offset getCenterLeft();
-    method public androidx.ui.engine.geometry.Offset getCenterRight();
-    method public float getHeight();
-    method public float getLeft();
-    method public float getLongestSide();
-    method public float getRight();
-    method public float getShortestSide();
-    method public androidx.ui.engine.geometry.Size getSize();
-    method public float getTop();
-    method public androidx.ui.engine.geometry.Offset getTopCenter();
-    method public androidx.ui.engine.geometry.Offset getTopLeft();
-    method public androidx.ui.engine.geometry.Offset getTopRight();
-    method public float getWidth();
-    method public androidx.ui.engine.geometry.Rect inflate(float delta);
-    method public androidx.ui.engine.geometry.Rect intersect(androidx.ui.engine.geometry.Rect other);
-    method public boolean isEmpty();
-    method public boolean isFinite();
-    method public boolean isInfinite();
-    method public androidx.ui.engine.geometry.Rect join(androidx.ui.engine.geometry.Rect other);
-    method public boolean overlaps(androidx.ui.engine.geometry.Rect other);
-    method public androidx.ui.engine.geometry.Rect shift(androidx.ui.engine.geometry.Offset offset);
-    method public androidx.ui.engine.geometry.Rect translate(float translateX, float translateY);
-    property public final float height;
-    property public final float width;
-    field public static final androidx.ui.engine.geometry.Rect.Companion! Companion;
-  }
-
-  public static final class Rect.Companion {
-    method public androidx.ui.engine.geometry.Rect fromCircle(androidx.ui.engine.geometry.Offset center, float radius);
-    method public androidx.ui.engine.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
-    method public androidx.ui.engine.geometry.Rect fromLTWH(float left, float top, float width, float height);
-    method public androidx.ui.engine.geometry.Rect fromPoints(androidx.ui.engine.geometry.Offset a, androidx.ui.engine.geometry.Offset b);
-    method public androidx.ui.engine.geometry.Rect getLargest();
-    method public androidx.ui.engine.geometry.Rect getZero();
-    method public float get_giantScalar();
-    property public final float _giantScalar;
-    property public final androidx.ui.engine.geometry.Rect largest;
-    property public final androidx.ui.engine.geometry.Rect zero;
-  }
-
-  public final class RectKt {
-    method public static androidx.ui.engine.geometry.Rect lerp(androidx.ui.engine.geometry.Rect start, androidx.ui.engine.geometry.Rect stop, float fraction);
-  }
-
-  public interface Shape {
-    method public androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
-  }
-
-  public class Size implements androidx.ui.engine.geometry.OffsetBase {
-    ctor public Size(float width, float height);
-    method public final androidx.ui.engine.geometry.Offset bottomCenter(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset bottomLeft(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset bottomRight(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset center(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset centerLeft(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset centerRight(androidx.ui.engine.geometry.Offset origin);
-    method public final boolean contains(androidx.ui.engine.geometry.Offset offset);
-    method public final operator androidx.ui.engine.geometry.Size div(float operand);
-    method public float getDx();
-    method public float getDy();
-    method public final androidx.ui.engine.geometry.Size getFlipped();
-    method public final float getHeight();
-    method public final float getLongestSide();
-    method public final float getShortestSide();
-    method public final float getWidth();
-    method public final boolean isEmpty();
-    method public final operator androidx.ui.engine.geometry.Size minus(androidx.ui.engine.geometry.Offset other);
-    method public final operator androidx.ui.engine.geometry.Offset minus(androidx.ui.engine.geometry.Size other);
-    method public final operator androidx.ui.engine.geometry.Size plus(androidx.ui.engine.geometry.Offset other);
-    method public final operator androidx.ui.engine.geometry.Size rem(float operand);
-    method public final operator androidx.ui.engine.geometry.Size times(float operand);
-    method public final androidx.ui.engine.geometry.Offset topCenter(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset topLeft(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset topRight(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Size truncDiv(float operand);
-    property public float dx;
-    property public float dy;
-    field public static final androidx.ui.engine.geometry.Size.Companion! Companion;
-  }
-
-  public static final class Size.Companion {
-    method public androidx.ui.engine.geometry.Size copy(androidx.ui.engine.geometry.Size source);
-    method public androidx.ui.engine.geometry.Size fromHeight(float height);
-    method public androidx.ui.engine.geometry.Size fromRadius(float radius);
-    method public androidx.ui.engine.geometry.Size fromWidth(float width);
-    method public androidx.ui.engine.geometry.Size getInfinite();
-    method public androidx.ui.engine.geometry.Size getZero();
-    method public androidx.ui.engine.geometry.Size? lerp(androidx.ui.engine.geometry.Size start, androidx.ui.engine.geometry.Size stop, float fraction);
-    method public androidx.ui.engine.geometry.Size square(float dimension);
-    property public final androidx.ui.engine.geometry.Size infinite;
-    property public final androidx.ui.engine.geometry.Size zero;
+    ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> merger);
   }
 
 }
@@ -1285,7 +351,7 @@
 
   public final class AndroidCanvasKt {
     method public static androidx.ui.graphics.Canvas Canvas(androidx.ui.graphics.Image image);
-    method public static androidx.ui.graphics.Canvas Canvas(androidx.ui.graphics.PictureRecorder recorder, androidx.ui.engine.geometry.Rect cullRect = Rect.largest);
+    method public static androidx.ui.graphics.Canvas Canvas(androidx.ui.graphics.PictureRecorder recorder, androidx.ui.geometry.Rect cullRect = Rect.largest);
     method public static androidx.ui.graphics.Canvas Canvas(android.graphics.Canvas c);
   }
 
@@ -1339,42 +405,42 @@
   }
 
   public final class BrushKt {
-    method public static androidx.ui.graphics.LinearGradient HorizontalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.core.Px startX, androidx.ui.core.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.Brush HorizontalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.core.Px startX, androidx.ui.core.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient LinearGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient LinearGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient HorizontalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.unit.Px startX, androidx.ui.unit.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.Brush HorizontalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.unit.Px startX, androidx.ui.unit.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient LinearGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.unit.Px startX, androidx.ui.unit.Px startY, androidx.ui.unit.Px endX, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient LinearGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.unit.Px startX, androidx.ui.unit.Px startY, androidx.ui.unit.Px endX, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
     method public static androidx.ui.graphics.RadialGradient RadialGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, float centerX, float centerY, float radius, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
     method public static androidx.ui.graphics.RadialGradient RadialGradient(java.util.List<androidx.ui.graphics.Color> colors, float centerX, float centerY, float radius, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient VerticalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.core.Px startY, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient VerticalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.core.Px startY, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient VerticalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.unit.Px startY, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient VerticalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.unit.Px startY, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
   }
 
   public interface Canvas {
     method public void clipPath(androidx.ui.graphics.Path path);
-    method public void clipRRect(androidx.ui.engine.geometry.RRect rrect);
-    method public void clipRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.graphics.ClipOp clipOp = androidx.ui.graphics.ClipOp.intersect);
+    method public void clipRRect(androidx.ui.geometry.RRect rrect);
+    method public void clipRect(androidx.ui.geometry.Rect rect, androidx.ui.graphics.ClipOp clipOp = androidx.ui.graphics.ClipOp.intersect);
     method public void concat(androidx.ui.vectormath64.Matrix4 matrix4);
-    method public void drawArc(androidx.ui.engine.geometry.Rect rect, float startAngle, float sweepAngle, boolean useCenter, androidx.ui.graphics.Paint paint);
-    method public default void drawArcRad(androidx.ui.engine.geometry.Rect rect, float startAngleRad, float sweepAngleRad, boolean useCenter, androidx.ui.graphics.Paint paint);
-    method public void drawCircle(androidx.ui.engine.geometry.Offset center, float radius, androidx.ui.graphics.Paint paint);
-    method public void drawDoubleRoundRect(androidx.ui.engine.geometry.RRect outer, androidx.ui.engine.geometry.RRect inner, androidx.ui.graphics.Paint paint);
-    method public void drawImage(androidx.ui.graphics.Image image, androidx.ui.engine.geometry.Offset topLeftOffset, androidx.ui.graphics.Paint paint);
-    method public void drawImageRect(androidx.ui.graphics.Image image, androidx.ui.engine.geometry.Rect src, androidx.ui.engine.geometry.Rect dst, androidx.ui.graphics.Paint paint);
-    method public void drawLine(androidx.ui.engine.geometry.Offset p1, androidx.ui.engine.geometry.Offset p2, androidx.ui.graphics.Paint paint);
-    method public void drawOval(androidx.ui.engine.geometry.Rect rect, androidx.ui.graphics.Paint paint);
+    method public void drawArc(androidx.ui.geometry.Rect rect, float startAngle, float sweepAngle, boolean useCenter, androidx.ui.graphics.Paint paint);
+    method public default void drawArcRad(androidx.ui.geometry.Rect rect, float startAngleRad, float sweepAngleRad, boolean useCenter, androidx.ui.graphics.Paint paint);
+    method public void drawCircle(androidx.ui.geometry.Offset center, float radius, androidx.ui.graphics.Paint paint);
+    method public void drawDoubleRoundRect(androidx.ui.geometry.RRect outer, androidx.ui.geometry.RRect inner, androidx.ui.graphics.Paint paint);
+    method public void drawImage(androidx.ui.graphics.Image image, androidx.ui.geometry.Offset topLeftOffset, androidx.ui.graphics.Paint paint);
+    method public void drawImageRect(androidx.ui.graphics.Image image, androidx.ui.geometry.Rect src, androidx.ui.geometry.Rect dst, androidx.ui.graphics.Paint paint);
+    method public void drawLine(androidx.ui.geometry.Offset p1, androidx.ui.geometry.Offset p2, androidx.ui.graphics.Paint paint);
+    method public void drawOval(androidx.ui.geometry.Rect rect, androidx.ui.graphics.Paint paint);
     method public void drawPath(androidx.ui.graphics.Path path, androidx.ui.graphics.Paint paint);
     method public void drawPicture(androidx.ui.graphics.Picture picture);
-    method public void drawPoints(androidx.ui.graphics.PointMode pointMode, java.util.List<androidx.ui.engine.geometry.Offset> points, androidx.ui.graphics.Paint paint);
-    method public void drawRRect(androidx.ui.engine.geometry.RRect rrect, androidx.ui.graphics.Paint paint);
+    method public void drawPoints(androidx.ui.graphics.PointMode pointMode, java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.Paint paint);
+    method public void drawRRect(androidx.ui.geometry.RRect rrect, androidx.ui.graphics.Paint paint);
     method public void drawRawPoints(androidx.ui.graphics.PointMode pointMode, float[] points, androidx.ui.graphics.Paint paint);
-    method public void drawRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.graphics.Paint paint);
+    method public void drawRect(androidx.ui.geometry.Rect rect, androidx.ui.graphics.Paint paint);
     method public void drawVertices(androidx.ui.Vertices vertices, androidx.ui.graphics.BlendMode blendMode, androidx.ui.graphics.Paint paint);
     method public android.graphics.Canvas getNativeCanvas();
     method public void restore();
     method public void rotate(float degrees);
     method public default void rotateRad(float radians);
     method public void save();
-    method public void saveLayer(androidx.ui.engine.geometry.Rect bounds, androidx.ui.graphics.Paint paint);
+    method public void saveLayer(androidx.ui.geometry.Rect bounds, androidx.ui.graphics.Paint paint);
     method public void scale(float sx, float sy = sx);
     method public void skew(float sx, float sy);
     method public default void skewRad(float sxRad, float syRad);
@@ -1384,7 +450,7 @@
 
   public final class CanvasKt {
     method public static inline void withSave(androidx.ui.graphics.Canvas, kotlin.jvm.functions.Function0<kotlin.Unit> block);
-    method public static inline void withSaveLayer(androidx.ui.graphics.Canvas, androidx.ui.engine.geometry.Rect bounds, androidx.ui.graphics.Paint paint, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+    method public static inline void withSaveLayer(androidx.ui.graphics.Canvas, androidx.ui.geometry.Rect bounds, androidx.ui.graphics.Paint paint, kotlin.jvm.functions.Function0<kotlin.Unit> block);
   }
 
   public enum ClipOp {
@@ -1468,7 +534,7 @@
     method public float component1();
     method public androidx.ui.graphics.FixedScale copy(float value);
     method public float getValue();
-    method public float scale(androidx.ui.core.PxSize srcSize, androidx.ui.core.PxSize dstSize);
+    method public float scale(androidx.ui.unit.PxSize srcSize, androidx.ui.unit.PxSize dstSize);
   }
 
   public interface Image {
@@ -1499,7 +565,7 @@
   }
 
   public final class LinearGradient extends androidx.ui.graphics.ShaderBrush {
-    method public androidx.ui.graphics.LinearGradient copy(java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? stops, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode);
+    method public androidx.ui.graphics.LinearGradient copy(java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? stops, androidx.ui.unit.Px startX, androidx.ui.unit.Px startY, androidx.ui.unit.Px endX, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode);
   }
 
   public final class MaskFilter {
@@ -1517,6 +583,35 @@
   public static final class MaskFilter.Companion {
   }
 
+  public abstract sealed class Outline {
+  }
+
+  public static final class Outline.Generic extends androidx.ui.graphics.Outline {
+    ctor public Outline.Generic(androidx.ui.graphics.Path path);
+    method public androidx.ui.graphics.Path component1();
+    method public androidx.ui.graphics.Outline.Generic copy(androidx.ui.graphics.Path path);
+    method public androidx.ui.graphics.Path getPath();
+  }
+
+  public static final class Outline.Rectangle extends androidx.ui.graphics.Outline {
+    ctor public Outline.Rectangle(androidx.ui.geometry.Rect rect);
+    method public androidx.ui.geometry.Rect component1();
+    method public androidx.ui.graphics.Outline.Rectangle copy(androidx.ui.geometry.Rect rect);
+    method public androidx.ui.geometry.Rect getRect();
+  }
+
+  public static final class Outline.Rounded extends androidx.ui.graphics.Outline {
+    ctor public Outline.Rounded(androidx.ui.geometry.RRect rrect);
+    method public androidx.ui.geometry.RRect component1();
+    method public androidx.ui.graphics.Outline.Rounded copy(androidx.ui.geometry.RRect rrect);
+    method public androidx.ui.geometry.RRect getRrect();
+  }
+
+  public final class OutlineKt {
+    method public static void addOutline(androidx.ui.graphics.Path, androidx.ui.graphics.Outline outline);
+    method public static void drawOutline(androidx.ui.graphics.Canvas, androidx.ui.graphics.Outline outline, androidx.ui.graphics.Paint paint);
+  }
+
   public final class Paint {
     ctor public Paint();
     method public android.graphics.Paint asFrameworkPaint();
@@ -1570,22 +665,22 @@
     ctor public Path(android.graphics.Path internalPath);
     ctor public Path();
     method public void _addRect(float left, float top, float right, float bottom);
-    method public void addArc(androidx.ui.engine.geometry.Rect oval, float startAngleDegrees, float sweepAngleDegrees);
-    method public void addArcRad(androidx.ui.engine.geometry.Rect oval, float startAngleRadians, float sweepAngleRadians);
-    method public void addOval(androidx.ui.engine.geometry.Rect oval);
-    method public void addPath(androidx.ui.graphics.Path path, androidx.ui.engine.geometry.Offset offset = Offset.zero, androidx.ui.vectormath64.Matrix4? matrix = null);
-    method public void addPolygon(java.util.List<androidx.ui.engine.geometry.Offset> points, boolean close);
-    method public void addRRect(androidx.ui.engine.geometry.RRect rrect);
-    method public void addRect(androidx.ui.engine.geometry.Rect rect);
-    method public void arcTo(androidx.ui.engine.geometry.Rect rect, float startAngleDegrees, float sweepAngleDegrees, boolean forceMoveTo);
-    method public void arcToPoint(androidx.ui.engine.geometry.Offset arcEnd, androidx.ui.engine.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
-    method public void arcToRad(androidx.ui.engine.geometry.Rect rect, float startAngleRadians, float sweepAngleRadians, boolean forceMoveTo);
+    method public void addArc(androidx.ui.geometry.Rect oval, float startAngleDegrees, float sweepAngleDegrees);
+    method public void addArcRad(androidx.ui.geometry.Rect oval, float startAngleRadians, float sweepAngleRadians);
+    method public void addOval(androidx.ui.geometry.Rect oval);
+    method public void addPath(androidx.ui.graphics.Path path, androidx.ui.geometry.Offset offset = Offset.zero, androidx.ui.vectormath64.Matrix4? matrix = null);
+    method public void addPolygon(java.util.List<androidx.ui.geometry.Offset> points, boolean close);
+    method public void addRRect(androidx.ui.geometry.RRect rrect);
+    method public void addRect(androidx.ui.geometry.Rect rect);
+    method public void arcTo(androidx.ui.geometry.Rect rect, float startAngleDegrees, float sweepAngleDegrees, boolean forceMoveTo);
+    method public void arcToPoint(androidx.ui.geometry.Offset arcEnd, androidx.ui.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
+    method public void arcToRad(androidx.ui.geometry.Rect rect, float startAngleRadians, float sweepAngleRadians, boolean forceMoveTo);
     method public void close();
     method public void conicTo(float x1, float y1, float x2, float y2, float w);
-    method public boolean contains(androidx.ui.engine.geometry.Offset offset);
+    method public boolean contains(androidx.ui.geometry.Offset offset);
     method public void cubicTo(float x1, float y1, float x2, float y2, float x3, float y3);
-    method public void extendWithPath(androidx.ui.graphics.Path path, androidx.ui.engine.geometry.Offset offset, androidx.ui.vectormath64.Matrix4 matrix);
-    method public androidx.ui.engine.geometry.Rect getBounds();
+    method public void extendWithPath(androidx.ui.graphics.Path path, androidx.ui.geometry.Offset offset, androidx.ui.vectormath64.Matrix4 matrix);
+    method public androidx.ui.geometry.Rect getBounds();
     method public androidx.ui.graphics.PathFillType getFillType();
     method public boolean isConvex();
     method public boolean isEmpty();
@@ -1593,7 +688,7 @@
     method public void moveTo(float dx, float dy);
     method public boolean op(androidx.ui.graphics.Path path1, androidx.ui.graphics.Path path2, androidx.ui.graphics.PathOperation operation);
     method public void quadraticBezierTo(float x1, float y1, float x2, float y2);
-    method public void relativeArcToPoint(androidx.ui.engine.geometry.Offset arcEndDelta, androidx.ui.engine.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
+    method public void relativeArcToPoint(androidx.ui.geometry.Offset arcEndDelta, androidx.ui.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
     method public void relativeConicTo(float x1, float y1, float x2, float y2, float w);
     method public void relativeCubicTo(float x1, float y1, float x2, float y2, float x3, float y3);
     method public void relativeLineTo(float dx, float dy);
@@ -1601,7 +696,7 @@
     method public void relativeQuadraticBezierTo(float x1, float y1, float x2, float y2);
     method public void reset();
     method public void setFillType(androidx.ui.graphics.PathFillType value);
-    method public void shift(androidx.ui.engine.geometry.Offset offset);
+    method public void shift(androidx.ui.geometry.Offset offset);
     method public android.graphics.Path toFrameworkPath();
     method public androidx.ui.graphics.Path transform(androidx.ui.vectormath64.Matrix4 matrix);
     property public final boolean isConvex;
@@ -1628,7 +723,7 @@
 
   public final class Picture {
     ctor public Picture(android.graphics.Picture frameworkPicture);
-    method public androidx.ui.engine.geometry.Rect cullRect();
+    method public androidx.ui.geometry.Rect cullRect();
     method public void dispose();
     method public android.graphics.Picture getFrameworkPicture();
   }
@@ -1651,7 +746,7 @@
   }
 
   public interface ScaleFit {
-    method public float scale(androidx.ui.core.PxSize srcSize, androidx.ui.core.PxSize dstSize);
+    method public float scale(androidx.ui.unit.PxSize srcSize, androidx.ui.unit.PxSize dstSize);
     field public static final androidx.ui.graphics.ScaleFit.Companion! Companion;
   }
 
@@ -1686,26 +781,30 @@
 
   public final class ShaderKt {
     method public static androidx.ui.graphics.Shader ImageShader(androidx.ui.graphics.Image image, androidx.ui.graphics.TileMode tileModeX = androidx.ui.graphics.TileMode.Clamp, androidx.ui.graphics.TileMode tileModeY = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.Shader LinearGradientShader(androidx.ui.engine.geometry.Offset from, androidx.ui.engine.geometry.Offset to, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.Shader RadialGradientShader(androidx.ui.engine.geometry.Offset center, float radius, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.Shader LinearGradientShader(androidx.ui.geometry.Offset from, androidx.ui.geometry.Offset to, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.Shader RadialGradientShader(androidx.ui.geometry.Offset center, float radius, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
   }
 
   public final class Shadow {
-    ctor public Shadow(androidx.ui.graphics.Color color, androidx.ui.engine.geometry.Offset offset, androidx.ui.core.Px blurRadius);
+    ctor public Shadow(androidx.ui.graphics.Color color, androidx.ui.geometry.Offset offset, androidx.ui.unit.Px blurRadius);
     ctor public Shadow();
     method public androidx.ui.graphics.Color component1();
-    method public androidx.ui.engine.geometry.Offset component2();
-    method public androidx.ui.core.Px component3();
-    method public androidx.ui.graphics.Shadow copy(androidx.ui.graphics.Color color, androidx.ui.engine.geometry.Offset offset, androidx.ui.core.Px blurRadius);
-    method public androidx.ui.core.Px getBlurRadius();
+    method public androidx.ui.geometry.Offset component2();
+    method public androidx.ui.unit.Px component3();
+    method public androidx.ui.graphics.Shadow copy(androidx.ui.graphics.Color color, androidx.ui.geometry.Offset offset, androidx.ui.unit.Px blurRadius);
+    method public androidx.ui.unit.Px getBlurRadius();
     method public androidx.ui.graphics.Color getColor();
-    method public androidx.ui.engine.geometry.Offset getOffset();
+    method public androidx.ui.geometry.Offset getOffset();
   }
 
   public final class ShadowKt {
     method public static androidx.ui.graphics.Shadow lerp(androidx.ui.graphics.Shadow start, androidx.ui.graphics.Shadow stop, float fraction);
   }
 
+  public interface Shape {
+    method public androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
+  }
+
   public final class SolidColor implements androidx.ui.graphics.Brush {
     ctor public SolidColor(androidx.ui.graphics.Color value);
     method public void applyTo(androidx.ui.graphics.Paint p);
@@ -2203,85 +1302,16 @@
 
   public final class PointerInputTestUtilKt {
     method public static androidx.ui.core.PointerInputChange consume(androidx.ui.core.PointerInputChange, float dx = 0f, float dy = 0f, boolean downChange = false);
-    method public static androidx.ui.core.PointerInputChange down(int id = 0, androidx.ui.core.Duration duration = Duration.Zero, float x = 0f, float y = 0f);
-    method public static androidx.ui.core.PointerInputChange invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChanges, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass![] pointerEventPasses, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, java.util.List<androidx.ui.core.PointerInputChange> pointerInputChanges, java.util.List<? extends androidx.ui.core.PointerEventPass> pointerEventPasses, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static androidx.ui.core.PointerInputChange moveBy(androidx.ui.core.PointerInputChange, androidx.ui.core.Duration duration, float dx = 0f, float dy = 0f);
-    method public static androidx.ui.core.PointerInputChange moveTo(androidx.ui.core.PointerInputChange, androidx.ui.core.Duration duration, float x = 0f, float y = 0f);
-    method public static androidx.ui.core.PointerInputChange up(androidx.ui.core.PointerInputChange, androidx.ui.core.Duration duration);
-  }
-
-}
-
-package androidx.ui.util {
-
-  public final class Float16 implements java.lang.Comparable<androidx.ui.util.Float16> {
-    ctor public Float16(short halfValue);
-    ctor public Float16(float value);
-    ctor public Float16(double value);
-    method public androidx.ui.util.Float16 absoluteValue();
-    method public androidx.ui.util.Float16 ceil();
-    method public operator int compareTo(androidx.ui.util.Float16 other);
-    method public androidx.ui.util.Float16 floor();
-    method public int getExponent();
-    method public short getHalfValue();
-    method public androidx.ui.util.Float16 getSign();
-    method public int getSignificand();
-    method public boolean isFinite();
-    method public boolean isInfinite();
-    method public boolean isNaN();
-    method public boolean isNormalized();
-    method public androidx.ui.util.Float16 round();
-    method public int toBits();
-    method public byte toByte();
-    method public double toDouble();
-    method public float toFloat();
-    method public String toHexString();
-    method public int toInt();
-    method public long toLong();
-    method public int toRawBits();
-    method public short toShort();
-    method public androidx.ui.util.Float16 trunc();
-    method public androidx.ui.util.Float16 withSign(androidx.ui.util.Float16 sign);
-    property public final int exponent;
-    property public final androidx.ui.util.Float16 sign;
-    property public final int significand;
-    field public static final androidx.ui.util.Float16.Companion! Companion;
-    field public static final int MaxExponent = 15; // 0xf
-    field public static final int MinExponent = -14; // 0xfffffff2
-    field public static final int Size = 16; // 0x10
-  }
-
-  public static final class Float16.Companion {
-    method public androidx.ui.util.Float16 getEpsilon();
-    method public androidx.ui.util.Float16 getLowestValue();
-    method public androidx.ui.util.Float16 getMaxValue();
-    method public androidx.ui.util.Float16 getMinNormal();
-    method public androidx.ui.util.Float16 getMinValue();
-    method public androidx.ui.util.Float16 getNaN();
-    method public androidx.ui.util.Float16 getNegativeInfinity();
-    method public androidx.ui.util.Float16 getNegativeZero();
-    method public androidx.ui.util.Float16 getPositiveInfinity();
-    method public androidx.ui.util.Float16 getPositiveZero();
-    property public final androidx.ui.util.Float16 Epsilon;
-    property public final androidx.ui.util.Float16 LowestValue;
-    property public final androidx.ui.util.Float16 MaxValue;
-    property public final androidx.ui.util.Float16 MinNormal;
-    property public final androidx.ui.util.Float16 MinValue;
-    property public final androidx.ui.util.Float16 NaN;
-    property public final androidx.ui.util.Float16 NegativeInfinity;
-    property public final androidx.ui.util.Float16 NegativeZero;
-    property public final androidx.ui.util.Float16 PositiveInfinity;
-    property public final androidx.ui.util.Float16 PositiveZero;
-  }
-
-  public final class Float16Kt {
-    method public static androidx.ui.util.Float16 max(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
-    method public static androidx.ui.util.Float16 min(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
+    method public static androidx.ui.core.PointerInputChange down(int id = 0, androidx.ui.unit.Duration duration = Duration.Zero, float x = 0f, float y = 0f);
+    method public static androidx.ui.core.PointerInputChange invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChanges, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass![] pointerEventPasses, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, java.util.List<androidx.ui.core.PointerInputChange> pointerInputChanges, java.util.List<? extends androidx.ui.core.PointerEventPass> pointerEventPasses, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static androidx.ui.core.PointerInputChange moveBy(androidx.ui.core.PointerInputChange, androidx.ui.unit.Duration duration, float dx = 0f, float dy = 0f);
+    method public static androidx.ui.core.PointerInputChange moveTo(androidx.ui.core.PointerInputChange, androidx.ui.unit.Duration duration, float x = 0f, float y = 0f);
+    method public static androidx.ui.core.PointerInputChange up(androidx.ui.core.PointerInputChange, androidx.ui.unit.Duration duration);
   }
 
 }
@@ -2418,12 +1448,12 @@
 
   public final class Matrix4Kt {
     method public static Float? getAsScale(androidx.ui.vectormath64.Matrix4);
-    method public static androidx.ui.engine.geometry.Offset? getAsTranslation(androidx.ui.vectormath64.Matrix4);
-    method public static androidx.ui.engine.geometry.Rect inverseTransformRect(androidx.ui.vectormath64.Matrix4 transform, androidx.ui.engine.geometry.Rect rect);
+    method public static androidx.ui.geometry.Offset? getAsTranslation(androidx.ui.vectormath64.Matrix4);
+    method public static androidx.ui.geometry.Rect inverseTransformRect(androidx.ui.vectormath64.Matrix4 transform, androidx.ui.geometry.Rect rect);
     method public static boolean isIdentity(androidx.ui.vectormath64.Matrix4);
     method public static boolean matrixEquals(androidx.ui.vectormath64.Matrix4? a, androidx.ui.vectormath64.Matrix4? b);
-    method public static androidx.ui.engine.geometry.Offset transformPoint(androidx.ui.vectormath64.Matrix4, androidx.ui.engine.geometry.Offset point);
-    method public static androidx.ui.engine.geometry.Rect transformRect(androidx.ui.vectormath64.Matrix4, androidx.ui.engine.geometry.Rect rect);
+    method public static androidx.ui.geometry.Offset transformPoint(androidx.ui.vectormath64.Matrix4, androidx.ui.geometry.Offset point);
+    method public static androidx.ui.geometry.Rect transformRect(androidx.ui.vectormath64.Matrix4, androidx.ui.geometry.Rect rect);
   }
 
   public enum MatrixColumn {
diff --git a/ui/ui-core/api/public_plus_experimental_current.txt b/ui/ui-core/api/public_plus_experimental_current.txt
index 0260cd9..ebcf997 100644
--- a/ui/ui-core/api/public_plus_experimental_current.txt
+++ b/ui/ui-core/api/public_plus_experimental_current.txt
@@ -1,14 +1,6 @@
 // Signature format: 3.0
 package androidx.ui {
 
-  public final class MathHelpersKt {
-    method public static float lerp(float start, float stop, float fraction);
-    method public static int lerp(int start, int stop, float fraction);
-    method public static long lerp(long start, long stop, float fraction);
-    method public static String toHexString(int);
-    method public static String toStringAsFixed(float, int digits);
-  }
-
   public enum VertexMode {
     method public final android.graphics.Canvas.VertexMode toFrameworkVertexMode();
     enum_constant public static final androidx.ui.VertexMode triangleFan;
@@ -17,7 +9,7 @@
   }
 
   public final class Vertices {
-    ctor public Vertices(androidx.ui.VertexMode vertexMode, java.util.List<androidx.ui.engine.geometry.Offset> positions, java.util.List<androidx.ui.engine.geometry.Offset> textureCoordinates, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Integer> indices);
+    ctor public Vertices(androidx.ui.VertexMode vertexMode, java.util.List<androidx.ui.geometry.Offset> positions, java.util.List<androidx.ui.geometry.Offset> textureCoordinates, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Integer> indices);
     method public int[] getColors();
     method public short[] getIndices();
     method public float[] getPositions();
@@ -70,7 +62,7 @@
 package androidx.ui.core {
 
   public enum Alignment {
-    method public final androidx.ui.core.IntPxPosition align(androidx.ui.core.IntPxSize size);
+    method public final androidx.ui.unit.IntPxPosition align(androidx.ui.unit.IntPxSize size);
     enum_constant public static final androidx.ui.core.Alignment BottomCenter;
     enum_constant public static final androidx.ui.core.Alignment BottomLeft;
     enum_constant public static final androidx.ui.core.Alignment BottomRight;
@@ -87,45 +79,32 @@
   }
 
   public final class AlignmentLineKt {
-    method public static androidx.ui.core.IntPx merge(androidx.ui.core.AlignmentLine, androidx.ui.core.IntPx position1, androidx.ui.core.IntPx position2);
-  }
-
-  public final class Bounds {
-    ctor public Bounds(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.core.Bounds copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp getBottom();
-    method public androidx.ui.core.Dp getLeft();
-    method public androidx.ui.core.Dp getRight();
-    method public androidx.ui.core.Dp getTop();
+    method public static androidx.ui.unit.IntPx merge(androidx.ui.core.AlignmentLine, androidx.ui.unit.IntPx position1, androidx.ui.unit.IntPx position2);
   }
 
   public final class Constraints {
-    ctor public Constraints(androidx.ui.core.IntPx minWidth, androidx.ui.core.IntPx maxWidth, androidx.ui.core.IntPx minHeight, androidx.ui.core.IntPx maxHeight);
+    ctor public Constraints(androidx.ui.unit.IntPx minWidth, androidx.ui.unit.IntPx maxWidth, androidx.ui.unit.IntPx minHeight, androidx.ui.unit.IntPx maxHeight);
     ctor public Constraints();
-    method public androidx.ui.core.IntPx component1();
-    method public androidx.ui.core.IntPx component2();
-    method public androidx.ui.core.IntPx component3();
-    method public androidx.ui.core.IntPx component4();
-    method public androidx.ui.core.Constraints copy(androidx.ui.core.IntPx minWidth, androidx.ui.core.IntPx maxWidth, androidx.ui.core.IntPx minHeight, androidx.ui.core.IntPx maxHeight);
-    method public androidx.ui.core.IntPx getMaxHeight();
-    method public androidx.ui.core.IntPx getMaxWidth();
-    method public androidx.ui.core.IntPx getMinHeight();
-    method public androidx.ui.core.IntPx getMinWidth();
+    method public androidx.ui.unit.IntPx component1();
+    method public androidx.ui.unit.IntPx component2();
+    method public androidx.ui.unit.IntPx component3();
+    method public androidx.ui.unit.IntPx component4();
+    method public androidx.ui.core.Constraints copy(androidx.ui.unit.IntPx minWidth, androidx.ui.unit.IntPx maxWidth, androidx.ui.unit.IntPx minHeight, androidx.ui.unit.IntPx maxHeight);
+    method public androidx.ui.unit.IntPx getMaxHeight();
+    method public androidx.ui.unit.IntPx getMaxWidth();
+    method public androidx.ui.unit.IntPx getMinHeight();
+    method public androidx.ui.unit.IntPx getMinWidth();
     field public static final androidx.ui.core.Constraints.Companion! Companion;
   }
 
   public static final class Constraints.Companion {
-    method public androidx.ui.core.Constraints tightConstraints(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height);
-    method public androidx.ui.core.Constraints tightConstraintsForHeight(androidx.ui.core.IntPx height);
-    method public androidx.ui.core.Constraints tightConstraintsForWidth(androidx.ui.core.IntPx width);
+    method public androidx.ui.core.Constraints tightConstraints(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height);
+    method public androidx.ui.core.Constraints tightConstraintsForHeight(androidx.ui.unit.IntPx height);
+    method public androidx.ui.core.Constraints tightConstraintsForWidth(androidx.ui.unit.IntPx width);
   }
 
   public final class ConstraintsKt {
-    method public static androidx.ui.core.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.core.IntPxSize size);
+    method public static androidx.ui.unit.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
     method public static androidx.ui.core.Constraints enforce(androidx.ui.core.Constraints, androidx.ui.core.Constraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.core.Constraints);
     method public static boolean getHasBoundedWidth(androidx.ui.core.Constraints);
@@ -135,57 +114,21 @@
     method public static boolean isZero(androidx.ui.core.Constraints);
     method public static androidx.ui.core.Constraints looseMax(androidx.ui.core.Constraints);
     method public static androidx.ui.core.Constraints looseMin(androidx.ui.core.Constraints);
-    method public static androidx.ui.core.Constraints offset(androidx.ui.core.Constraints, androidx.ui.core.IntPx horizontal = 0.ipx, androidx.ui.core.IntPx vertical = 0.ipx);
-    method public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.core.IntPxSize size);
+    method public static androidx.ui.core.Constraints offset(androidx.ui.core.Constraints, androidx.ui.unit.IntPx horizontal = 0.ipx, androidx.ui.unit.IntPx vertical = 0.ipx);
+    method public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
     method public static androidx.ui.core.Constraints tightMax(androidx.ui.core.Constraints);
     method public static androidx.ui.core.Constraints tightMin(androidx.ui.core.Constraints);
-    method public static androidx.ui.core.Constraints withTight(androidx.ui.core.Constraints, androidx.ui.core.IntPx? width = null, androidx.ui.core.IntPx? height = null);
+    method public static androidx.ui.core.Constraints withTight(androidx.ui.core.Constraints, androidx.ui.unit.IntPx? width = null, androidx.ui.unit.IntPx? height = null);
   }
 
   public final class ConsumedData {
-    ctor public ConsumedData(androidx.ui.core.PxPosition positionChange, boolean downChange);
+    ctor public ConsumedData(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     ctor public ConsumedData();
-    method public androidx.ui.core.PxPosition component1();
+    method public androidx.ui.unit.PxPosition component1();
     method public boolean component2();
-    method public androidx.ui.core.ConsumedData copy(androidx.ui.core.PxPosition positionChange, boolean downChange);
+    method public androidx.ui.core.ConsumedData copy(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     method public boolean getDownChange();
-    method public androidx.ui.core.PxPosition getPositionChange();
-  }
-
-  public final class Density {
-    ctor public Density(float density, float fontScale);
-    method public float component1();
-    method public float component2();
-    method public androidx.ui.core.Density copy(float density, float fontScale);
-    method public float getDensity();
-    method public float getFontScale();
-  }
-
-  public final class DensityKt {
-    method public static androidx.ui.core.Density Density(android.content.Context context);
-    method public static androidx.ui.core.DensityScope DensityScope(androidx.ui.core.Density density);
-    method public static inline <R> R! withDensity(androidx.ui.core.Density density, kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,? extends R> block);
-  }
-
-  public interface DensityScope {
-    method public androidx.ui.core.Density getDensity();
-    method public default androidx.ui.core.Dp toDp(androidx.ui.core.TextUnit);
-    method public default androidx.ui.core.Dp toDp(androidx.ui.core.Px);
-    method public default androidx.ui.core.Dp toDp(androidx.ui.core.IntPx);
-    method public default androidx.ui.core.Dp toDp(float);
-    method public default androidx.ui.core.Dp toDp(int);
-    method public default androidx.ui.core.IntPx toIntPx(androidx.ui.core.Dp);
-    method public default androidx.ui.core.IntPx toIntPx(androidx.ui.core.TextUnit);
-    method public default androidx.ui.core.Px toPx(androidx.ui.core.Dp);
-    method public default androidx.ui.core.Px toPx(androidx.ui.core.TextUnit);
-    method public default androidx.ui.core.PxSize toPx-s2Mz6-8(long);
-    method public default androidx.ui.engine.geometry.Rect toRect(androidx.ui.core.Bounds);
-    method public default androidx.ui.core.TextUnit toSp(androidx.ui.core.Dp);
-    method public default androidx.ui.core.TextUnit toSp(androidx.ui.core.Px);
-    method public default androidx.ui.core.TextUnit toSp(androidx.ui.core.IntPx);
-    method public default androidx.ui.core.TextUnit toSp(float);
-    method public default androidx.ui.core.TextUnit toSp(int);
-    property public abstract androidx.ui.core.Density density;
+    method public androidx.ui.unit.PxPosition getPositionChange();
   }
 
   public enum Direction {
@@ -195,304 +138,29 @@
     enum_constant public static final androidx.ui.core.Direction UP;
   }
 
-  public final class Dp implements java.lang.Comparable<androidx.ui.core.Dp> {
-    ctor public Dp(float value);
-    method public operator int compareTo(androidx.ui.core.Dp other);
-    method public float component1();
-    method public androidx.ui.core.Dp copy(float value);
-    method public inline operator androidx.ui.core.Dp div(float other);
-    method public inline operator androidx.ui.core.Dp div(int other);
-    method public inline operator float div(androidx.ui.core.Dp other);
-    method public inline operator float div-KkBJKWw(float other);
-    method public float getValue();
-    method public inline operator androidx.ui.core.Dp minus(androidx.ui.core.Dp other);
-    method public inline operator androidx.ui.core.Dp plus(androidx.ui.core.Dp other);
-    method public inline operator androidx.ui.core.Dp times(float other);
-    method public inline operator androidx.ui.core.Dp times(int other);
-    method public inline operator float times(androidx.ui.core.Dp other);
-    method public inline operator float times-KkBJKWw(float other);
-    method public inline operator androidx.ui.core.Dp unaryMinus();
-    field public static final androidx.ui.core.Dp.Companion! Companion;
-  }
-
-  public static final class Dp.Companion {
-    method public androidx.ui.core.Dp getHairline();
-    method public androidx.ui.core.Dp getInfinity();
-    property public final androidx.ui.core.Dp Hairline;
-    property public final androidx.ui.core.Dp Infinity;
-  }
-
-  public final inline class DpCubed implements java.lang.Comparable<androidx.ui.core.DpCubed> {
-    ctor public DpCubed();
-    method public operator int compareTo-zqpl1kg(float p);
-    method public static operator int compareTo-zqpl1kg(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator androidx.ui.core.Dp div-KkBJKWw(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, androidx.ui.core.Dp other);
-    method public static inline operator float div-zqpl1kg(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-zqpl1kg(float $this, float dimension);
-    method public static inline operator float plus-zqpl1kg(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final inline class DpInverse implements java.lang.Comparable<androidx.ui.core.DpInverse> {
-    ctor public DpInverse();
-    method public operator int compareTo-ASDJgtI(float p);
-    method public static operator int compareTo-ASDJgtI(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-ASDJgtI(float $this, float dimension);
-    method public static inline operator float plus-ASDJgtI(float $this, float dimension);
-    method public static inline operator androidx.ui.core.Dp times-KkBJKWw(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Dp other);
-    method public static inline operator float times-zqpl1kg(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final class DpKt {
-    method public static inline long Position(androidx.ui.core.Dp x, androidx.ui.core.Dp y);
-    method public static inline long Size(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
-    method public static long center-s2Mz6-8(long);
-    method public static inline androidx.ui.core.Dp coerceAtLeast(androidx.ui.core.Dp, androidx.ui.core.Dp minimumValue);
-    method public static inline androidx.ui.core.Dp coerceAtMost(androidx.ui.core.Dp, androidx.ui.core.Dp maximumValue);
-    method public static inline androidx.ui.core.Dp coerceIn(androidx.ui.core.Dp, androidx.ui.core.Dp minimumValue, androidx.ui.core.Dp maximumValue);
-    method public static inline operator float div(float, androidx.ui.core.Dp other);
-    method public static inline operator float div(double, androidx.ui.core.Dp other);
-    method public static inline operator float div(int, androidx.ui.core.Dp other);
-    method public static androidx.ui.core.Dp getDistance-JXBE4ew(long);
-    method public static inline androidx.ui.core.Dp getDp(int);
-    method public static inline androidx.ui.core.Dp getDp(double);
-    method public static inline androidx.ui.core.Dp getDp(float);
-    method public static inline androidx.ui.core.Dp getHeight(androidx.ui.core.Bounds);
-    method public static inline androidx.ui.core.Dp getWidth(androidx.ui.core.Bounds);
-    method public static inline boolean isFinite(androidx.ui.core.Dp);
-    method public static androidx.ui.core.Dp lerp(androidx.ui.core.Dp start, androidx.ui.core.Dp stop, float fraction);
-    method public static long lerp-SuMVOfk(long start, long stop, float fraction);
-    method public static inline androidx.ui.core.Dp max(androidx.ui.core.Dp a, androidx.ui.core.Dp b);
-    method public static inline androidx.ui.core.Dp min(androidx.ui.core.Dp a, androidx.ui.core.Dp b);
-    method public static inline operator androidx.ui.core.Dp times(float, androidx.ui.core.Dp other);
-    method public static inline operator androidx.ui.core.Dp times(double, androidx.ui.core.Dp other);
-    method public static inline operator androidx.ui.core.Dp times(int, androidx.ui.core.Dp other);
-    method public static inline operator long times-Ze-JISM(int, long size);
-    method public static inline operator long times-doH9uME(float, long size);
-    method public static inline operator long times-nKWVx08(double, long size);
-    method public static androidx.ui.core.Bounds toBounds-s2Mz6-8(long);
-    method public static inline long toSize(androidx.ui.core.Bounds);
-  }
-
-  public final inline class DpSquared implements java.lang.Comparable<androidx.ui.core.DpSquared> {
-    ctor public DpSquared();
-    method public operator int compareTo-KkBJKWw(float p);
-    method public static operator int compareTo-KkBJKWw(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-KkBJKWw(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator androidx.ui.core.Dp div-impl(float $this, androidx.ui.core.Dp other);
-    method public static inline operator float div-zqpl1kg(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-KkBJKWw(float $this, float other);
-    method public static inline operator float plus-KkBJKWw(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Dp other);
-    method public static String toString-impl(float $this);
-  }
-
   public interface DrawModifier extends androidx.ui.core.Modifier.Element {
-    method public void draw(androidx.ui.core.Density density, kotlin.jvm.functions.Function0<kotlin.Unit> drawContent, androidx.ui.graphics.Canvas canvas, androidx.ui.core.PxSize size);
+    method public void draw(androidx.ui.unit.Density density, kotlin.jvm.functions.Function0<kotlin.Unit> drawContent, androidx.ui.graphics.Canvas canvas, androidx.ui.unit.PxSize size);
   }
 
   public final class DrawModifierKt {
-    method public static androidx.ui.core.DrawModifier draw(kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onDraw);
-    method public static androidx.ui.core.DrawModifier drawWithContent(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onDraw);
+    method public static androidx.ui.core.DrawModifier draw(kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onDraw);
+    method public static androidx.ui.core.DrawModifier drawWithContent(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onDraw);
   }
 
-  public interface DrawReceiver extends androidx.ui.core.DensityScope {
+  public interface DrawReceiver extends androidx.ui.unit.DensityScope {
     method public void drawChildren();
   }
 
-  public final class Duration implements java.lang.Comparable<androidx.ui.core.Duration> {
-    ctor public Duration(long nanoseconds);
-    method public int compareTo(androidx.ui.core.Duration other);
-    method public long component1();
-    method public androidx.ui.core.Duration copy(long nanoseconds);
-    method public operator androidx.ui.core.Duration div(int quotient);
-    method public operator androidx.ui.core.Duration div(double quotient);
-    method public long getNanoseconds();
-    method public operator androidx.ui.core.Duration minus(androidx.ui.core.Duration other);
-    method public operator androidx.ui.core.Duration plus(androidx.ui.core.Duration other);
-    method public operator androidx.ui.core.Duration times(int factor);
-    method public operator androidx.ui.core.Duration times(double factor);
-    field public static final androidx.ui.core.Duration.Companion! Companion;
-  }
-
-  public static final class Duration.Companion {
-    method public androidx.ui.core.Duration getZero();
-    property public final androidx.ui.core.Duration Zero;
-  }
-
-  public final class Durations {
-    method public static androidx.ui.core.Duration Duration(long days = 0, long hours = 0, long minutes = 0, long seconds = 0, long milliseconds = 0, long microseconds = 0, long nanoseconds = 0);
-    method public static androidx.ui.core.Duration getDays(long);
-    method public static androidx.ui.core.Duration getDays(int);
-    method public static androidx.ui.core.Duration getHours(long);
-    method public static androidx.ui.core.Duration getHours(int);
-    method public static androidx.ui.core.Duration getMicroseconds(long);
-    method public static androidx.ui.core.Duration getMicroseconds(int);
-    method public static androidx.ui.core.Duration getMilliseconds(long);
-    method public static androidx.ui.core.Duration getMilliseconds(int);
-    method public static androidx.ui.core.Duration getMinutes(long);
-    method public static androidx.ui.core.Duration getMinutes(int);
-    method public static androidx.ui.core.Duration getNanoseconds(long);
-    method public static androidx.ui.core.Duration getNanoseconds(int);
-    method public static long getNanosecondsPerDay();
-    method public static long getNanosecondsPerHour();
-    method public static long getNanosecondsPerMillisecond();
-    method public static long getNanosecondsPerMinute();
-    method public static long getNanosecondsPerSecond();
-    method public static androidx.ui.core.Duration getSeconds(long);
-    method public static androidx.ui.core.Duration getSeconds(int);
-    method public static long inDays(androidx.ui.core.Duration);
-    method public static long inHours(androidx.ui.core.Duration);
-    method public static long inMicroseconds(androidx.ui.core.Duration);
-    method public static long inMilliseconds(androidx.ui.core.Duration);
-    method public static long inMinutes(androidx.ui.core.Duration);
-    method public static long inSeconds(androidx.ui.core.Duration);
-    field public static final long HoursPerDay = 24L; // 0x18L
-    field public static final long MicrosecondsPerMillisecond = 1000L; // 0x3e8L
-    field public static final long MillisecondsPerSecond = 1000L; // 0x3e8L
-    field public static final long MinutesPerHour = 60L; // 0x3cL
-    field public static final long NanosecondsPerMicrosecond = 1000L; // 0x3e8L
-    field public static final long SecondsPerMinute = 60L; // 0x3cL
-  }
-
   public final class HorizontalAlignmentLine extends androidx.ui.core.AlignmentLine {
-    ctor public HorizontalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.core.IntPx,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> merger);
-  }
-
-  public final class InlineClassHelperKt {
-    method public static inline long packFloats(float val1, float val2);
-    method public static inline long packInts(int val1, int val2);
-    method public static inline float unpackFloat1(long value);
-    method public static inline float unpackFloat2(long value);
-    method public static inline int unpackInt1(long value);
-    method public static inline int unpackInt2(long value);
-  }
-
-  public final class IntPx implements java.lang.Comparable<androidx.ui.core.IntPx> {
-    ctor public IntPx(int value);
-    method public operator int compareTo(androidx.ui.core.IntPx other);
-    method public inline operator int compareTo(androidx.ui.core.Px other);
-    method public int component1();
-    method public androidx.ui.core.IntPx copy(int value);
-    method public operator androidx.ui.core.IntPx div(float other);
-    method public operator androidx.ui.core.IntPx div(double other);
-    method public operator androidx.ui.core.IntPx div(int other);
-    method public int getValue();
-    method public operator androidx.ui.core.IntPx minus(androidx.ui.core.IntPx other);
-    method public operator androidx.ui.core.IntPx plus(androidx.ui.core.IntPx other);
-    method public inline operator androidx.ui.core.IntPx rem(int other);
-    method public operator androidx.ui.core.IntPx times(float other);
-    method public operator androidx.ui.core.IntPx times(double other);
-    method public operator androidx.ui.core.IntPx times(int other);
-    method public operator androidx.ui.core.IntPx unaryMinus();
-    field public static final androidx.ui.core.IntPx.Companion! Companion;
-  }
-
-  public static final class IntPx.Companion {
-    method public androidx.ui.core.IntPx getInfinity();
-    method public androidx.ui.core.IntPx getZero();
-    property public final androidx.ui.core.IntPx Infinity;
-    property public final androidx.ui.core.IntPx Zero;
-  }
-
-  public final class IntPxBounds {
-    ctor public IntPxBounds(androidx.ui.core.IntPx left, androidx.ui.core.IntPx top, androidx.ui.core.IntPx right, androidx.ui.core.IntPx bottom);
-    method public androidx.ui.core.IntPx component1();
-    method public androidx.ui.core.IntPx component2();
-    method public androidx.ui.core.IntPx component3();
-    method public androidx.ui.core.IntPx component4();
-    method public androidx.ui.core.IntPxBounds copy(androidx.ui.core.IntPx left, androidx.ui.core.IntPx top, androidx.ui.core.IntPx right, androidx.ui.core.IntPx bottom);
-    method public androidx.ui.core.IntPx getBottom();
-    method public androidx.ui.core.IntPx getLeft();
-    method public androidx.ui.core.IntPx getRight();
-    method public androidx.ui.core.IntPx getTop();
-  }
-
-  public final class IntPxKt {
-    method public static inline androidx.ui.core.IntPxPosition IntPxPosition(androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
-    method public static inline androidx.ui.core.IntPxSize IntPxSize(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height);
-    method public static inline androidx.ui.core.PxPosition PxPosition(androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
-    method public static inline androidx.ui.core.PxSize PxSize(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height);
-    method public static androidx.ui.core.IntPxPosition center(androidx.ui.core.IntPxSize);
-    method public static inline androidx.ui.core.IntPx coerceAtLeast(androidx.ui.core.IntPx, androidx.ui.core.IntPx minimumValue);
-    method public static inline androidx.ui.core.IntPx coerceAtMost(androidx.ui.core.IntPx, androidx.ui.core.IntPx maximumValue);
-    method public static inline androidx.ui.core.IntPx coerceIn(androidx.ui.core.IntPx, androidx.ui.core.IntPx minimumValue, androidx.ui.core.IntPx maximumValue);
-    method public static inline androidx.ui.core.IntPx getHeight(androidx.ui.core.IntPxBounds);
-    method public static inline androidx.ui.core.IntPx getIpx(int);
-    method public static inline androidx.ui.core.IntPx getWidth(androidx.ui.core.IntPxBounds);
-    method public static inline boolean isFinite(androidx.ui.core.IntPx);
-    method public static androidx.ui.core.IntPx lerp(androidx.ui.core.IntPx start, androidx.ui.core.IntPx stop, float fraction);
-    method public static androidx.ui.core.IntPxPosition lerp(androidx.ui.core.IntPxPosition start, androidx.ui.core.IntPxPosition stop, float fraction);
-    method public static inline androidx.ui.core.IntPx max(androidx.ui.core.IntPx a, androidx.ui.core.IntPx b);
-    method public static inline androidx.ui.core.IntPx min(androidx.ui.core.IntPx a, androidx.ui.core.IntPx b);
-    method public static inline androidx.ui.core.IntPx round(androidx.ui.core.Px);
-    method public static inline operator androidx.ui.core.IntPx times(float, androidx.ui.core.IntPx other);
-    method public static inline operator androidx.ui.core.IntPx times(double, androidx.ui.core.IntPx other);
-    method public static inline operator androidx.ui.core.IntPx times(int, androidx.ui.core.IntPx other);
-    method public static inline operator androidx.ui.core.IntPxSize times(int, androidx.ui.core.IntPxSize size);
-    method public static inline androidx.ui.core.Px toPx(androidx.ui.core.IntPx);
-    method public static inline androidx.ui.core.PxPosition toPxPosition(androidx.ui.core.IntPxPosition);
-    method public static inline androidx.ui.core.PxSize toPxSize(androidx.ui.core.IntPxSize);
-    method public static inline androidx.ui.core.IntPxSize toSize(androidx.ui.core.IntPxBounds);
-  }
-
-  public final class IntPxPosition {
-    method public androidx.ui.core.IntPxPosition copy(long value);
-    method public inline androidx.ui.core.IntPx getX();
-    method public inline androidx.ui.core.IntPx getY();
-    method public inline operator androidx.ui.core.IntPxPosition minus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.IntPxPosition plus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.IntPxPosition unaryMinus();
-    property public final inline androidx.ui.core.IntPx x;
-    property public final inline androidx.ui.core.IntPx y;
-    field public static final androidx.ui.core.IntPxPosition.Companion! Companion;
-  }
-
-  public static final class IntPxPosition.Companion {
-    method public androidx.ui.core.IntPxPosition getOrigin();
-    property public final androidx.ui.core.IntPxPosition Origin;
-  }
-
-  public final class IntPxSize {
-    method public androidx.ui.core.IntPxSize copy(long value);
-    method public inline operator androidx.ui.core.IntPxSize div(int other);
-    method public inline androidx.ui.core.IntPx getHeight();
-    method public inline androidx.ui.core.IntPx getWidth();
-    method public inline operator androidx.ui.core.IntPxSize times(int other);
-    property public final inline androidx.ui.core.IntPx height;
-    property public final inline androidx.ui.core.IntPx width;
+    ctor public HorizontalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> merger);
   }
 
   public interface IntrinsicMeasurable {
     method public Object? getParentData();
-    method public androidx.ui.core.IntPx maxIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(androidx.ui.core.IntPx height);
-    method public androidx.ui.core.IntPx minIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(androidx.ui.core.IntPx height);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(androidx.ui.unit.IntPx height);
+    method public androidx.ui.unit.IntPx minIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(androidx.ui.unit.IntPx height);
     property public abstract Object? parentData;
   }
 
@@ -500,23 +168,23 @@
   }
 
   public interface LayoutCoordinates {
-    method public androidx.ui.core.PxPosition childToLocal(androidx.ui.core.LayoutCoordinates child, androidx.ui.core.PxPosition childLocal);
+    method public androidx.ui.unit.PxPosition childToLocal(androidx.ui.core.LayoutCoordinates child, androidx.ui.unit.PxPosition childLocal);
     method public androidx.ui.core.LayoutCoordinates? getParentCoordinates();
-    method public androidx.ui.core.PxPosition getPosition();
-    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> getProvidedAlignmentLines();
-    method public androidx.ui.core.PxSize getSize();
-    method public androidx.ui.core.PxPosition globalToLocal(androidx.ui.core.PxPosition global);
-    method public androidx.ui.core.PxPosition localToGlobal(androidx.ui.core.PxPosition local);
-    method public androidx.ui.core.PxPosition localToRoot(androidx.ui.core.PxPosition local);
+    method public androidx.ui.unit.PxPosition getPosition();
+    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> getProvidedAlignmentLines();
+    method public androidx.ui.unit.PxSize getSize();
+    method public androidx.ui.unit.PxPosition globalToLocal(androidx.ui.unit.PxPosition global);
+    method public androidx.ui.unit.PxPosition localToGlobal(androidx.ui.unit.PxPosition local);
+    method public androidx.ui.unit.PxPosition localToRoot(androidx.ui.unit.PxPosition local);
     property public abstract androidx.ui.core.LayoutCoordinates? parentCoordinates;
-    property public abstract androidx.ui.core.PxPosition position;
-    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> providedAlignmentLines;
-    property public abstract androidx.ui.core.PxSize size;
+    property public abstract androidx.ui.unit.PxPosition position;
+    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> providedAlignmentLines;
+    property public abstract androidx.ui.unit.PxSize size;
   }
 
   public final class LayoutCoordinatesKt {
-    method public static inline androidx.ui.core.PxPosition getGlobalPosition(androidx.ui.core.LayoutCoordinates);
-    method public static inline androidx.ui.core.PxPosition getPositionInRoot(androidx.ui.core.LayoutCoordinates);
+    method public static inline androidx.ui.unit.PxPosition getGlobalPosition(androidx.ui.core.LayoutCoordinates);
+    method public static inline androidx.ui.unit.PxPosition getPositionInRoot(androidx.ui.core.LayoutCoordinates);
   }
 
   public enum LayoutDirection {
@@ -525,33 +193,33 @@
   }
 
   public interface LayoutModifier extends androidx.ui.core.Modifier.Element {
-    method public default androidx.ui.core.IntPx maxIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public default androidx.ui.core.IntPx maxIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public default androidx.ui.core.IntPx minIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public default androidx.ui.core.IntPx minIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public default androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public default androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
-    method public default androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public default androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public default androidx.ui.unit.IntPx maxIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public default androidx.ui.unit.IntPx maxIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public default androidx.ui.unit.IntPx minIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public default androidx.ui.unit.IntPx minIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public default androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public default androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
+    method public default androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public default androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
   }
 
   public interface Measurable extends androidx.ui.core.IntrinsicMeasurable {
     method public androidx.ui.core.Placeable measure(androidx.ui.core.Constraints constraints);
   }
 
-  public abstract class MeasureScope implements androidx.ui.core.DensityScope {
+  public abstract class MeasureScope implements androidx.ui.unit.DensityScope {
     ctor public MeasureScope();
-    method public final androidx.ui.core.MeasureScope.LayoutResult layout(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height, java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> alignmentLines = emptyMap(), kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable.PlacementScope,kotlin.Unit> placementBlock);
+    method public final androidx.ui.core.MeasureScope.LayoutResult layout(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height, java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> alignmentLines = emptyMap(), kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable.PlacementScope,kotlin.Unit> placementBlock);
   }
 
   public static interface MeasureScope.LayoutResult {
-    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> getAlignmentLines();
-    method public androidx.ui.core.IntPx getHeight();
-    method public androidx.ui.core.IntPx getWidth();
+    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> getAlignmentLines();
+    method public androidx.ui.unit.IntPx getHeight();
+    method public androidx.ui.unit.IntPx getWidth();
     method public void placeChildren(androidx.ui.core.Placeable.PlacementScope placementScope);
-    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> alignmentLines;
-    property public abstract androidx.ui.core.IntPx height;
-    property public abstract androidx.ui.core.IntPx width;
+    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> alignmentLines;
+    property public abstract androidx.ui.unit.IntPx height;
+    property public abstract androidx.ui.unit.IntPx width;
   }
 
   public final class MeasureScopeKt {
@@ -576,27 +244,27 @@
   }
 
   public interface ParentDataModifier extends androidx.ui.core.Modifier.Element {
-    method public default Object? modifyParentData(androidx.ui.core.DensityScope, Object? parentData);
+    method public default Object? modifyParentData(androidx.ui.unit.DensityScope, Object? parentData);
   }
 
   public abstract class Placeable {
     ctor public Placeable();
-    method public abstract operator androidx.ui.core.IntPx? get(androidx.ui.core.AlignmentLine line);
-    method public final androidx.ui.core.IntPx getHeight();
-    method public abstract androidx.ui.core.IntPxSize getSize();
-    method public final androidx.ui.core.IntPx getWidth();
-    method protected abstract void performPlace(androidx.ui.core.IntPxPosition position);
-    property public final androidx.ui.core.IntPx height;
-    property public abstract androidx.ui.core.IntPxSize size;
-    property public final androidx.ui.core.IntPx width;
+    method public abstract operator androidx.ui.unit.IntPx? get(androidx.ui.core.AlignmentLine line);
+    method public final androidx.ui.unit.IntPx getHeight();
+    method public abstract androidx.ui.unit.IntPxSize getSize();
+    method public final androidx.ui.unit.IntPx getWidth();
+    method protected abstract void performPlace(androidx.ui.unit.IntPxPosition position);
+    property public final androidx.ui.unit.IntPx height;
+    property public abstract androidx.ui.unit.IntPxSize size;
+    property public final androidx.ui.unit.IntPx width;
     field public static final androidx.ui.core.Placeable.PlacementScope! PlacementScope;
   }
 
   public static final class Placeable.PlacementScope {
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.IntPxPosition position);
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.PxPosition position);
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.Px x, androidx.ui.core.Px y);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.IntPxPosition position);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.PxPosition position);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.Px x, androidx.ui.unit.Px y);
   }
 
   public enum PointerEventPass {
@@ -621,15 +289,15 @@
   }
 
   public final class PointerInputData {
-    ctor public PointerInputData(androidx.ui.core.Uptime? uptime, androidx.ui.core.PxPosition? position, boolean down);
+    ctor public PointerInputData(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     ctor public PointerInputData();
-    method public androidx.ui.core.Uptime? component1();
-    method public androidx.ui.core.PxPosition? component2();
+    method public androidx.ui.unit.Uptime? component1();
+    method public androidx.ui.unit.PxPosition? component2();
     method public boolean component3();
-    method public androidx.ui.core.PointerInputData copy(androidx.ui.core.Uptime? uptime, androidx.ui.core.PxPosition? position, boolean down);
+    method public androidx.ui.core.PointerInputData copy(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     method public boolean getDown();
-    method public androidx.ui.core.PxPosition? getPosition();
-    method public androidx.ui.core.Uptime? getUptime();
+    method public androidx.ui.unit.PxPosition? getPosition();
+    method public androidx.ui.unit.Uptime? getUptime();
   }
 
   public final class PointerInputKt {
@@ -639,622 +307,20 @@
     method public static boolean changedToUp(androidx.ui.core.PointerInputChange);
     method public static boolean changedToUpIgnoreConsumed(androidx.ui.core.PointerInputChange);
     method public static androidx.ui.core.PointerInputChange consumeDownChange(androidx.ui.core.PointerInputChange);
-    method public static androidx.ui.core.PointerInputChange consumePositionChange(androidx.ui.core.PointerInputChange, androidx.ui.core.Px consumedDx, androidx.ui.core.Px consumedDy);
-    method public static androidx.ui.core.PxPosition positionChange(androidx.ui.core.PointerInputChange);
-    method public static androidx.ui.core.PxPosition positionChangeIgnoreConsumed(androidx.ui.core.PointerInputChange);
+    method public static androidx.ui.core.PointerInputChange consumePositionChange(androidx.ui.core.PointerInputChange, androidx.ui.unit.Px consumedDx, androidx.ui.unit.Px consumedDy);
+    method public static androidx.ui.unit.PxPosition positionChange(androidx.ui.core.PointerInputChange);
+    method public static androidx.ui.unit.PxPosition positionChangeIgnoreConsumed(androidx.ui.core.PointerInputChange);
     method public static boolean positionChanged(androidx.ui.core.PointerInputChange);
     method public static boolean positionChangedIgnoreConsumed(androidx.ui.core.PointerInputChange);
   }
 
-  public final inline class Position {
-    ctor public Position();
-    method public static long constructor-impl(internal long value);
-    method public static boolean equals-impl(long p, Object? p1);
-    method public static boolean equals-impl0(long p1, long p2);
-    method public static androidx.ui.core.Dp getX-impl(long $this);
-    method public static androidx.ui.core.Dp getY-impl(long $this);
-    method public static int hashCode-impl(long p);
-    method public static inline operator long minus-JXBE4ew(long $this, long other);
-    method public static inline operator long plus-JXBE4ew(long $this, long other);
-    method public static String toString-impl(long $this);
-  }
-
-  public final class Px implements java.lang.Comparable<androidx.ui.core.Px> {
-    ctor public Px(float value);
-    method public operator int compareTo(androidx.ui.core.Px other);
-    method public inline operator int compareTo(androidx.ui.core.IntPx other);
-    method public float component1();
-    method public androidx.ui.core.Px copy(float value);
-    method public inline operator androidx.ui.core.Px div(float other);
-    method public inline operator androidx.ui.core.Px div(int other);
-    method public inline operator float div(androidx.ui.core.Px other);
-    method public inline operator float div-kVJEwbQ(float other);
-    method public float getValue();
-    method public inline operator androidx.ui.core.Px minus(androidx.ui.core.Px other);
-    method public inline operator androidx.ui.core.Px minus(androidx.ui.core.IntPx other);
-    method public inline operator androidx.ui.core.Px plus(androidx.ui.core.Px other);
-    method public inline operator androidx.ui.core.Px plus(androidx.ui.core.IntPx other);
-    method public inline operator androidx.ui.core.Px times(float other);
-    method public inline operator androidx.ui.core.Px times(int other);
-    method public inline operator float times(androidx.ui.core.Px other);
-    method public inline operator float times-kVJEwbQ(float other);
-    method public inline operator androidx.ui.core.Px unaryMinus();
-    field public static final androidx.ui.core.Px.Companion! Companion;
-  }
-
-  public static final class Px.Companion {
-    method public androidx.ui.core.Px getInfinity();
-    method public androidx.ui.core.Px getZero();
-    property public final androidx.ui.core.Px Infinity;
-    property public final androidx.ui.core.Px Zero;
-  }
-
-  public final class PxBounds {
-    ctor public PxBounds(androidx.ui.core.Px left, androidx.ui.core.Px top, androidx.ui.core.Px right, androidx.ui.core.Px bottom);
-    method public androidx.ui.core.Px component1();
-    method public androidx.ui.core.Px component2();
-    method public androidx.ui.core.Px component3();
-    method public androidx.ui.core.Px component4();
-    method public androidx.ui.core.PxBounds copy(androidx.ui.core.Px left, androidx.ui.core.Px top, androidx.ui.core.Px right, androidx.ui.core.Px bottom);
-    method public androidx.ui.core.Px getBottom();
-    method public androidx.ui.core.Px getLeft();
-    method public androidx.ui.core.Px getRight();
-    method public androidx.ui.core.Px getTop();
-  }
-
-  public final inline class PxCubed implements java.lang.Comparable<androidx.ui.core.PxCubed> {
-    ctor public PxCubed();
-    method public operator int compareTo-syUR1PY(float p);
-    method public static operator int compareTo-syUR1PY(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px div-kVJEwbQ(float $this, float other);
-    method public static inline operator float div-syUR1PY(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-syUR1PY(float $this, float dimension);
-    method public static inline operator float plus-syUR1PY(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final inline class PxInverse implements java.lang.Comparable<androidx.ui.core.PxInverse> {
-    ctor public PxInverse();
-    method public operator int compareTo-MXEAIGs(float p);
-    method public static operator int compareTo-MXEAIGs(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-MXEAIGs(float $this, float dimension);
-    method public static inline operator float plus-MXEAIGs(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px times-kVJEwbQ(float $this, float other);
-    method public static inline operator float times-syUR1PY(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final class PxKt {
-    method public static inline androidx.ui.core.PxPosition PxPosition(androidx.ui.core.Px x, androidx.ui.core.Px y);
-    method public static inline androidx.ui.core.PxSize PxSize(androidx.ui.core.Px width, androidx.ui.core.Px height);
-    method public static androidx.ui.core.PxPosition center(androidx.ui.core.PxSize);
-    method public static inline androidx.ui.core.Px coerceAtLeast(androidx.ui.core.Px, androidx.ui.core.Px minimumValue);
-    method public static inline androidx.ui.core.Px coerceAtMost(androidx.ui.core.Px, androidx.ui.core.Px maximumValue);
-    method public static inline androidx.ui.core.Px coerceIn(androidx.ui.core.Px, androidx.ui.core.Px minimumValue, androidx.ui.core.Px maximumValue);
-    method public static inline operator float div(float, androidx.ui.core.Px other);
-    method public static inline operator float div(double, androidx.ui.core.Px other);
-    method public static inline operator float div(int, androidx.ui.core.Px other);
-    method public static androidx.ui.core.Px getDistance(androidx.ui.core.PxPosition);
-    method public static inline androidx.ui.core.Px getHeight(androidx.ui.core.PxBounds);
-    method public static androidx.ui.core.Px! getMinDimension(androidx.ui.core.PxSize);
-    method public static inline androidx.ui.core.Px getPx(int);
-    method public static inline androidx.ui.core.Px getPx(double);
-    method public static inline androidx.ui.core.Px getPx(float);
-    method public static inline androidx.ui.core.Px getWidth(androidx.ui.core.PxBounds);
-    method public static androidx.ui.core.Px lerp(androidx.ui.core.Px start, androidx.ui.core.Px stop, float fraction);
-    method public static androidx.ui.core.PxPosition lerp(androidx.ui.core.PxPosition start, androidx.ui.core.PxPosition stop, float fraction);
-    method public static inline androidx.ui.core.Px max(androidx.ui.core.Px a, androidx.ui.core.Px b);
-    method public static inline androidx.ui.core.Px min(androidx.ui.core.Px a, androidx.ui.core.Px b);
-    method public static inline androidx.ui.core.IntPxPosition round(androidx.ui.core.PxPosition);
-    method public static inline operator androidx.ui.core.Px times(float, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px times(double, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px times(int, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.PxSize times(int, androidx.ui.core.PxSize size);
-    method public static inline operator androidx.ui.core.PxSize times(float, androidx.ui.core.PxSize size);
-    method public static inline operator androidx.ui.core.PxSize times(double, androidx.ui.core.PxSize size);
-    method public static androidx.ui.core.PxBounds toBounds(androidx.ui.core.PxSize);
-    method public static inline androidx.ui.engine.geometry.Offset toOffset(androidx.ui.core.PxPosition);
-    method public static androidx.ui.engine.geometry.Rect toRect(androidx.ui.core.PxBounds);
-    method public static androidx.ui.engine.geometry.Rect toRect(androidx.ui.core.PxSize);
-    method public static androidx.ui.core.PxSize toSize(androidx.ui.core.PxBounds);
-  }
-
-  public final class PxPosition {
-    method public androidx.ui.core.PxPosition copy(long value);
-    method public inline androidx.ui.core.Px getX();
-    method public inline androidx.ui.core.Px getY();
-    method public inline operator androidx.ui.core.PxPosition minus(androidx.ui.core.PxPosition other);
-    method public inline operator androidx.ui.core.PxPosition minus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.PxPosition plus(androidx.ui.core.PxPosition other);
-    method public inline operator androidx.ui.core.PxPosition plus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.PxPosition unaryMinus();
-    property public final inline androidx.ui.core.Px x;
-    property public final inline androidx.ui.core.Px y;
-    field public static final androidx.ui.core.PxPosition.Companion! Companion;
-  }
-
-  public static final class PxPosition.Companion {
-    method public androidx.ui.core.PxPosition getOrigin();
-    property public final androidx.ui.core.PxPosition Origin;
-  }
-
-  public final class PxSize {
-    method public androidx.ui.core.PxSize copy(long value);
-    method public inline operator androidx.ui.core.PxSize div(int other);
-    method public inline operator androidx.ui.core.PxSize div(float other);
-    method public inline operator androidx.ui.core.PxSize div(double other);
-    method public inline androidx.ui.core.Px getHeight();
-    method public inline androidx.ui.core.Px getWidth();
-    method public inline operator androidx.ui.core.PxSize times(int other);
-    method public inline operator androidx.ui.core.PxSize times(float other);
-    method public inline operator androidx.ui.core.PxSize times(double other);
-    property public final inline androidx.ui.core.Px height;
-    property public final inline androidx.ui.core.Px width;
-    field public static final androidx.ui.core.PxSize.Companion! Companion;
-  }
-
-  public static final class PxSize.Companion {
-    method public androidx.ui.core.PxSize getZero();
-    property public final androidx.ui.core.PxSize Zero;
-  }
-
-  public final inline class PxSquared implements java.lang.Comparable<androidx.ui.core.PxSquared> {
-    ctor public PxSquared();
-    method public operator int compareTo-kVJEwbQ(float p);
-    method public static operator int compareTo-kVJEwbQ(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator androidx.ui.core.Px div-impl(float $this, androidx.ui.core.Px other);
-    method public static inline operator float div-kVJEwbQ(float $this, float other);
-    method public static inline operator float div-syUR1PY(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-kVJEwbQ(float $this, float other);
-    method public static inline operator float plus-kVJEwbQ(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Px other);
-    method public static String toString-impl(float $this);
-  }
-
   public final class RectHelperKt {
-    method public static android.graphics.Rect toFrameworkRect(androidx.ui.engine.geometry.Rect);
-    method public static android.graphics.RectF toFrameworkRectF(androidx.ui.engine.geometry.Rect);
-  }
-
-  public final inline class Size {
-    ctor public Size();
-    method public static long constructor-impl(internal long value);
-    method public static inline operator long div-impl(long $this, int other);
-    method public static inline operator long div-impl(long $this, float other);
-    method public static inline operator long div-impl(long $this, double other);
-    method public static boolean equals-impl(long p, Object? p1);
-    method public static boolean equals-impl0(long p1, long p2);
-    method public static androidx.ui.core.Dp getHeight-impl(long $this);
-    method public static androidx.ui.core.Dp getWidth-impl(long $this);
-    method public static int hashCode-impl(long p);
-    method public static inline operator long times-impl(long $this, int other);
-    method public static inline operator long times-impl(long $this, float other);
-    method public static inline operator long times-impl(long $this, double other);
-    method public static String toString-impl(long $this);
-  }
-
-  public final class TextUnit {
-    ctor public TextUnit(long packedValue);
-    method public inline operator int compareTo(androidx.ui.core.TextUnit other);
-    method public long component1();
-    method public androidx.ui.core.TextUnit copy(long packedValue);
-    method public inline operator androidx.ui.core.TextUnit div(float other);
-    method public inline operator androidx.ui.core.TextUnit div(double other);
-    method public inline operator androidx.ui.core.TextUnit div(int other);
-    method public inline operator float div(androidx.ui.core.TextUnit other);
-    method public long getPackedValue();
-    method public androidx.ui.core.TextUnitType getType();
-    method public float getValue();
-    method public boolean isEm();
-    method public boolean isInherit();
-    method public boolean isSp();
-    method public inline operator androidx.ui.core.TextUnit minus(androidx.ui.core.TextUnit other);
-    method public inline operator androidx.ui.core.TextUnit plus(androidx.ui.core.TextUnit other);
-    method public inline operator androidx.ui.core.TextUnit times(float other);
-    method public inline operator androidx.ui.core.TextUnit times(double other);
-    method public inline operator androidx.ui.core.TextUnit times(int other);
-    method public inline operator androidx.ui.core.TextUnit unaryMinus();
-    property public final boolean isEm;
-    property public final boolean isInherit;
-    property public final boolean isSp;
-    property public final androidx.ui.core.TextUnitType type;
-    property public final float value;
-    field public static final androidx.ui.core.TextUnit.Companion! Companion;
-  }
-
-  public static final class TextUnit.Companion {
-    method public androidx.ui.core.TextUnit Em(int value);
-    method public androidx.ui.core.TextUnit Em(float value);
-    method public androidx.ui.core.TextUnit Em(double value);
-    method public androidx.ui.core.TextUnit Sp(int value);
-    method public androidx.ui.core.TextUnit Sp(float value);
-    method public androidx.ui.core.TextUnit Sp(double value);
-    method public androidx.ui.core.TextUnit getInherit();
-    property public final androidx.ui.core.TextUnit Inherit;
-  }
-
-  public final class TextUnitKt {
-    method public static inline androidx.ui.core.TextUnit coerceAtLeast(androidx.ui.core.TextUnit, androidx.ui.core.TextUnit minimumValue);
-    method public static inline androidx.ui.core.TextUnit coerceAtMost(androidx.ui.core.TextUnit, androidx.ui.core.TextUnit maximumValue);
-    method public static inline androidx.ui.core.TextUnit coerceIn(androidx.ui.core.TextUnit, androidx.ui.core.TextUnit minimumValue, androidx.ui.core.TextUnit maximumValue);
-    method public static androidx.ui.core.TextUnit getEm(float);
-    method public static androidx.ui.core.TextUnit getEm(double);
-    method public static androidx.ui.core.TextUnit getEm(int);
-    method public static androidx.ui.core.TextUnit getSp(float);
-    method public static androidx.ui.core.TextUnit getSp(double);
-    method public static androidx.ui.core.TextUnit getSp(int);
-    method public static androidx.ui.core.TextUnit lerp(androidx.ui.core.TextUnit a, androidx.ui.core.TextUnit b, float t);
-    method public static inline androidx.ui.core.TextUnit max(androidx.ui.core.TextUnit a, androidx.ui.core.TextUnit b);
-    method public static inline androidx.ui.core.TextUnit min(androidx.ui.core.TextUnit a, androidx.ui.core.TextUnit b);
-    method public static inline operator androidx.ui.core.TextUnit times(float, androidx.ui.core.TextUnit other);
-    method public static inline operator androidx.ui.core.TextUnit times(double, androidx.ui.core.TextUnit other);
-    method public static inline operator androidx.ui.core.TextUnit times(int, androidx.ui.core.TextUnit other);
-  }
-
-  public enum TextUnitType {
-    enum_constant public static final androidx.ui.core.TextUnitType Em;
-    enum_constant public static final androidx.ui.core.TextUnitType Inherit;
-    enum_constant public static final androidx.ui.core.TextUnitType Sp;
-  }
-
-  public final class Uptime implements java.lang.Comparable<androidx.ui.core.Uptime> {
-    ctor public Uptime(long nanoseconds);
-    method public int compareTo(androidx.ui.core.Uptime other);
-    method public long component1();
-    method public androidx.ui.core.Uptime copy(long nanoseconds);
-    method public long getNanoseconds();
-    method public operator androidx.ui.core.Uptime minus(androidx.ui.core.Duration duration);
-    method public operator androidx.ui.core.Duration minus(androidx.ui.core.Uptime other);
-    method public operator androidx.ui.core.Uptime plus(androidx.ui.core.Duration duration);
-    field public static final androidx.ui.core.Uptime.Companion! Companion;
-  }
-
-  public static final class Uptime.Companion {
-    method public androidx.ui.core.Uptime getBoot();
-    property public final androidx.ui.core.Uptime Boot;
-  }
-
-  public final class UptimeKt {
-    method public static operator androidx.ui.core.Uptime plus(androidx.ui.core.Duration, androidx.ui.core.Uptime uptime);
-  }
-
-  public final class Velocity {
-    ctor public Velocity(androidx.ui.core.PxPosition pixelsPerSecond);
-    method public androidx.ui.core.PxPosition component1();
-    method public androidx.ui.core.Velocity copy(androidx.ui.core.PxPosition pixelsPerSecond);
-    method public androidx.ui.core.PxPosition getPixelsPerSecond();
-    method public operator androidx.ui.core.Velocity unaryMinus();
-    field public static final androidx.ui.core.Velocity.Companion! Companion;
-  }
-
-  public static final class Velocity.Companion {
-    method public androidx.ui.core.Velocity getZero();
-    property public final androidx.ui.core.Velocity Zero;
-  }
-
-  public final class VelocityKt {
-    method public static operator androidx.ui.core.Velocity minus(androidx.ui.core.Velocity, androidx.ui.core.Velocity other);
-    method public static operator androidx.ui.core.Velocity plus(androidx.ui.core.Velocity, androidx.ui.core.Velocity other);
+    method public static android.graphics.Rect toFrameworkRect(androidx.ui.geometry.Rect);
+    method public static android.graphics.RectF toFrameworkRectF(androidx.ui.geometry.Rect);
   }
 
   public final class VerticalAlignmentLine extends androidx.ui.core.AlignmentLine {
-    ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.core.IntPx,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> merger);
-  }
-
-}
-
-package androidx.ui.engine.geometry {
-
-  public final class Offset implements androidx.ui.engine.geometry.OffsetBase {
-    ctor public Offset(float dx, float dy);
-    method public infix androidx.ui.engine.geometry.Rect and(androidx.ui.engine.geometry.Size other);
-    method public float component1();
-    method public float component2();
-    method public androidx.ui.engine.geometry.Offset copy(float dx, float dy);
-    method public operator androidx.ui.engine.geometry.Offset div(float operand);
-    method public float getDirection();
-    method public float getDistance();
-    method public float getDistanceSquared();
-    method public float getDx();
-    method public float getDy();
-    method public operator androidx.ui.engine.geometry.Offset minus(androidx.ui.engine.geometry.Offset other);
-    method public operator androidx.ui.engine.geometry.Offset plus(androidx.ui.engine.geometry.Offset other);
-    method public operator androidx.ui.engine.geometry.Offset rem(float operand);
-    method public androidx.ui.engine.geometry.Offset scale(float scaleX, float scaleY);
-    method public operator androidx.ui.engine.geometry.Offset times(float operand);
-    method public androidx.ui.engine.geometry.Offset translate(float translateX, float translateY);
-    method public androidx.ui.engine.geometry.Offset truncDiv(float operand);
-    method public operator androidx.ui.engine.geometry.Offset unaryMinus();
-    field public static final androidx.ui.engine.geometry.Offset.Companion! Companion;
-  }
-
-  public static final class Offset.Companion {
-    method public androidx.ui.engine.geometry.Offset getInfinite();
-    method public androidx.ui.engine.geometry.Offset getZero();
-    method public boolean isValid(androidx.ui.engine.geometry.Offset offset);
-    method public androidx.ui.engine.geometry.Offset lerp(androidx.ui.engine.geometry.Offset start, androidx.ui.engine.geometry.Offset stop, float fraction);
-    property public final androidx.ui.engine.geometry.Offset infinite;
-    property public final androidx.ui.engine.geometry.Offset zero;
-  }
-
-  public interface OffsetBase {
-    method public float getDx();
-    method public float getDy();
-    method public default boolean isFinite();
-    method public default boolean isGreaterOrEqThan(androidx.ui.engine.geometry.OffsetBase other);
-    method public default boolean isGreaterThan(androidx.ui.engine.geometry.OffsetBase other);
-    method public default boolean isInfinite();
-    method public default boolean isLessOrEqThan(androidx.ui.engine.geometry.OffsetBase other);
-    method public default boolean isLessThan(androidx.ui.engine.geometry.OffsetBase other);
-    property public abstract float dx;
-    property public abstract float dy;
-  }
-
-  public final class OffsetKt {
-    method public static androidx.ui.core.PxPosition toPxPosition(androidx.ui.engine.geometry.Offset);
-  }
-
-  public abstract sealed class Outline {
-  }
-
-  public static final class Outline.Generic extends androidx.ui.engine.geometry.Outline {
-    ctor public Outline.Generic(androidx.ui.graphics.Path path);
-    method public androidx.ui.graphics.Path component1();
-    method public androidx.ui.engine.geometry.Outline.Generic copy(androidx.ui.graphics.Path path);
-    method public androidx.ui.graphics.Path getPath();
-  }
-
-  public static final class Outline.Rectangle extends androidx.ui.engine.geometry.Outline {
-    ctor public Outline.Rectangle(androidx.ui.engine.geometry.Rect rect);
-    method public androidx.ui.engine.geometry.Rect component1();
-    method public androidx.ui.engine.geometry.Outline.Rectangle copy(androidx.ui.engine.geometry.Rect rect);
-    method public androidx.ui.engine.geometry.Rect getRect();
-  }
-
-  public static final class Outline.Rounded extends androidx.ui.engine.geometry.Outline {
-    ctor public Outline.Rounded(androidx.ui.engine.geometry.RRect rrect);
-    method public androidx.ui.engine.geometry.RRect component1();
-    method public androidx.ui.engine.geometry.Outline.Rounded copy(androidx.ui.engine.geometry.RRect rrect);
-    method public androidx.ui.engine.geometry.RRect getRrect();
-  }
-
-  public final class OutlineKt {
-    method public static void addOutline(androidx.ui.graphics.Path, androidx.ui.engine.geometry.Outline outline);
-    method public static void drawOutline(androidx.ui.graphics.Canvas, androidx.ui.engine.geometry.Outline outline, androidx.ui.graphics.Paint paint);
-  }
-
-  public final class RRect {
-    ctor public RRect(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
-    method public float component1();
-    method public float component10();
-    method public float component11();
-    method public float component12();
-    method public float component2();
-    method public float component3();
-    method public float component4();
-    method public float component5();
-    method public float component6();
-    method public float component7();
-    method public float component8();
-    method public float component9();
-    method public boolean contains(androidx.ui.engine.geometry.Offset point);
-    method public androidx.ui.engine.geometry.RRect copy(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
-    method @Deprecated public androidx.ui.engine.geometry.RRect deflate(float delta);
-    method public float getBottom();
-    method public float getBottomLeftRadiusX();
-    method public float getBottomLeftRadiusY();
-    method public float getBottomRightRadiusX();
-    method public float getBottomRightRadiusY();
-    method public float getHeight();
-    method public float getLeft();
-    method public float getRight();
-    method public float getTop();
-    method public float getTopLeftRadiusX();
-    method public float getTopLeftRadiusY();
-    method public float getTopRightRadiusX();
-    method public float getTopRightRadiusY();
-    method public float getWidth();
-    method public static androidx.ui.engine.geometry.RRect getZero();
-    method @Deprecated public androidx.ui.engine.geometry.RRect inflate(float delta);
-    property public final float height;
-    property public final float width;
-    field public static final androidx.ui.engine.geometry.RRect.Companion! Companion;
-  }
-
-  public static final class RRect.Companion {
-    method public androidx.ui.engine.geometry.RRect getZero();
-    property public final androidx.ui.engine.geometry.RRect Zero;
-  }
-
-  public final class RRectKt {
-    method public static androidx.ui.engine.geometry.RRect RRect(float left, float top, float right, float bottom, float radiusX, float radiusY);
-    method public static androidx.ui.engine.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.engine.geometry.Radius radius);
-    method public static androidx.ui.engine.geometry.RRect RRect(androidx.ui.engine.geometry.Rect rect, float radiusX, float radiusY);
-    method public static androidx.ui.engine.geometry.RRect RRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.engine.geometry.Radius radius);
-    method public static androidx.ui.engine.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.engine.geometry.Radius topLeft = Radius.zero, androidx.ui.engine.geometry.Radius topRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomLeft = Radius.zero);
-    method public static androidx.ui.engine.geometry.RRect RRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.engine.geometry.Radius topLeft = Radius.zero, androidx.ui.engine.geometry.Radius topRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomLeft = Radius.zero);
-    method public static androidx.ui.engine.geometry.Radius bottomLeftRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Radius bottomRightRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Offset center(androidx.ui.engine.geometry.RRect);
-    method public static float getLongestSide(androidx.ui.engine.geometry.RRect);
-    method public static float getShortestSide(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect grow(androidx.ui.engine.geometry.RRect, float delta);
-    method public static boolean isCircle(androidx.ui.engine.geometry.RRect);
-    method public static boolean isEllipse(androidx.ui.engine.geometry.RRect);
-    method public static boolean isEmpty(androidx.ui.engine.geometry.RRect);
-    method public static boolean isFinite(androidx.ui.engine.geometry.RRect);
-    method public static boolean isRect(androidx.ui.engine.geometry.RRect);
-    method public static boolean isStadium(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect lerp(androidx.ui.engine.geometry.RRect start, androidx.ui.engine.geometry.RRect stop, float fraction);
-    method public static androidx.ui.engine.geometry.Rect middleRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Rect outerRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Rect safeInnerRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect shift(androidx.ui.engine.geometry.RRect, androidx.ui.engine.geometry.Offset offset);
-    method public static androidx.ui.engine.geometry.RRect shrink(androidx.ui.engine.geometry.RRect, float delta);
-    method public static androidx.ui.engine.geometry.Rect tallMiddleRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Radius topLeftRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Radius topRightRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Rect wideMiddleRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect withRadius(androidx.ui.engine.geometry.RRect, androidx.ui.engine.geometry.Radius radius);
-  }
-
-  public final class Radius {
-    ctor public Radius(float x, float y);
-    method public float component1();
-    method public float component2();
-    method public androidx.ui.engine.geometry.Radius copy(float x, float y);
-    method public operator androidx.ui.engine.geometry.Radius div(float operand);
-    method public float getX();
-    method public float getY();
-    method public operator androidx.ui.engine.geometry.Radius minus(androidx.ui.engine.geometry.Radius other);
-    method public operator androidx.ui.engine.geometry.Radius plus(androidx.ui.engine.geometry.Radius other);
-    method public operator androidx.ui.engine.geometry.Radius rem(float operand);
-    method public operator androidx.ui.engine.geometry.Radius times(float operand);
-    method public androidx.ui.engine.geometry.Radius truncDiv(float operand);
-    method public operator androidx.ui.engine.geometry.Radius unaryMinus();
-    field public static final androidx.ui.engine.geometry.Radius.Companion! Companion;
-  }
-
-  public static final class Radius.Companion {
-    method public androidx.ui.engine.geometry.Radius circular(float radius);
-    method public androidx.ui.engine.geometry.Radius elliptical(float x, float y);
-    method public androidx.ui.engine.geometry.Radius getZero();
-    property public final androidx.ui.engine.geometry.Radius zero;
-  }
-
-  public final class RadiusKt {
-    method public static androidx.ui.engine.geometry.Radius lerp(androidx.ui.engine.geometry.Radius start, androidx.ui.engine.geometry.Radius stop, float fraction);
-  }
-
-  public final class Rect {
-    ctor public Rect(float left, float top, float right, float bottom);
-    method public float component1();
-    method public float component2();
-    method public float component3();
-    method public float component4();
-    method public boolean contains(androidx.ui.engine.geometry.Offset offset);
-    method public androidx.ui.engine.geometry.Rect copy(float left, float top, float right, float bottom);
-    method public androidx.ui.engine.geometry.Rect deflate(float delta);
-    method public androidx.ui.engine.geometry.Rect expandToInclude(androidx.ui.engine.geometry.Rect other);
-    method public float getBottom();
-    method public androidx.ui.engine.geometry.Offset getBottomCenter();
-    method public androidx.ui.engine.geometry.Offset getBottomLeft();
-    method public androidx.ui.engine.geometry.Offset getBottomRight();
-    method public androidx.ui.engine.geometry.Offset getCenter();
-    method public androidx.ui.engine.geometry.Offset getCenterLeft();
-    method public androidx.ui.engine.geometry.Offset getCenterRight();
-    method public float getHeight();
-    method public float getLeft();
-    method public float getLongestSide();
-    method public float getRight();
-    method public float getShortestSide();
-    method public androidx.ui.engine.geometry.Size getSize();
-    method public float getTop();
-    method public androidx.ui.engine.geometry.Offset getTopCenter();
-    method public androidx.ui.engine.geometry.Offset getTopLeft();
-    method public androidx.ui.engine.geometry.Offset getTopRight();
-    method public float getWidth();
-    method public androidx.ui.engine.geometry.Rect inflate(float delta);
-    method public androidx.ui.engine.geometry.Rect intersect(androidx.ui.engine.geometry.Rect other);
-    method public boolean isEmpty();
-    method public boolean isFinite();
-    method public boolean isInfinite();
-    method public androidx.ui.engine.geometry.Rect join(androidx.ui.engine.geometry.Rect other);
-    method public boolean overlaps(androidx.ui.engine.geometry.Rect other);
-    method public androidx.ui.engine.geometry.Rect shift(androidx.ui.engine.geometry.Offset offset);
-    method public androidx.ui.engine.geometry.Rect translate(float translateX, float translateY);
-    property public final float height;
-    property public final float width;
-    field public static final androidx.ui.engine.geometry.Rect.Companion! Companion;
-  }
-
-  public static final class Rect.Companion {
-    method public androidx.ui.engine.geometry.Rect fromCircle(androidx.ui.engine.geometry.Offset center, float radius);
-    method public androidx.ui.engine.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
-    method public androidx.ui.engine.geometry.Rect fromLTWH(float left, float top, float width, float height);
-    method public androidx.ui.engine.geometry.Rect fromPoints(androidx.ui.engine.geometry.Offset a, androidx.ui.engine.geometry.Offset b);
-    method public androidx.ui.engine.geometry.Rect getLargest();
-    method public androidx.ui.engine.geometry.Rect getZero();
-    method public float get_giantScalar();
-    property public final float _giantScalar;
-    property public final androidx.ui.engine.geometry.Rect largest;
-    property public final androidx.ui.engine.geometry.Rect zero;
-  }
-
-  public final class RectKt {
-    method public static androidx.ui.engine.geometry.Rect lerp(androidx.ui.engine.geometry.Rect start, androidx.ui.engine.geometry.Rect stop, float fraction);
-  }
-
-  public interface Shape {
-    method public androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
-  }
-
-  public class Size implements androidx.ui.engine.geometry.OffsetBase {
-    ctor public Size(float width, float height);
-    method public final androidx.ui.engine.geometry.Offset bottomCenter(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset bottomLeft(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset bottomRight(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset center(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset centerLeft(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset centerRight(androidx.ui.engine.geometry.Offset origin);
-    method public final boolean contains(androidx.ui.engine.geometry.Offset offset);
-    method public final operator androidx.ui.engine.geometry.Size div(float operand);
-    method public float getDx();
-    method public float getDy();
-    method public final androidx.ui.engine.geometry.Size getFlipped();
-    method public final float getHeight();
-    method public final float getLongestSide();
-    method public final float getShortestSide();
-    method public final float getWidth();
-    method public final boolean isEmpty();
-    method public final operator androidx.ui.engine.geometry.Size minus(androidx.ui.engine.geometry.Offset other);
-    method public final operator androidx.ui.engine.geometry.Offset minus(androidx.ui.engine.geometry.Size other);
-    method public final operator androidx.ui.engine.geometry.Size plus(androidx.ui.engine.geometry.Offset other);
-    method public final operator androidx.ui.engine.geometry.Size rem(float operand);
-    method public final operator androidx.ui.engine.geometry.Size times(float operand);
-    method public final androidx.ui.engine.geometry.Offset topCenter(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset topLeft(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset topRight(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Size truncDiv(float operand);
-    property public float dx;
-    property public float dy;
-    field public static final androidx.ui.engine.geometry.Size.Companion! Companion;
-  }
-
-  public static final class Size.Companion {
-    method public androidx.ui.engine.geometry.Size copy(androidx.ui.engine.geometry.Size source);
-    method public androidx.ui.engine.geometry.Size fromHeight(float height);
-    method public androidx.ui.engine.geometry.Size fromRadius(float radius);
-    method public androidx.ui.engine.geometry.Size fromWidth(float width);
-    method public androidx.ui.engine.geometry.Size getInfinite();
-    method public androidx.ui.engine.geometry.Size getZero();
-    method public androidx.ui.engine.geometry.Size? lerp(androidx.ui.engine.geometry.Size start, androidx.ui.engine.geometry.Size stop, float fraction);
-    method public androidx.ui.engine.geometry.Size square(float dimension);
-    property public final androidx.ui.engine.geometry.Size infinite;
-    property public final androidx.ui.engine.geometry.Size zero;
+    ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> merger);
   }
 
 }
@@ -1285,7 +351,7 @@
 
   public final class AndroidCanvasKt {
     method public static androidx.ui.graphics.Canvas Canvas(androidx.ui.graphics.Image image);
-    method public static androidx.ui.graphics.Canvas Canvas(androidx.ui.graphics.PictureRecorder recorder, androidx.ui.engine.geometry.Rect cullRect = Rect.largest);
+    method public static androidx.ui.graphics.Canvas Canvas(androidx.ui.graphics.PictureRecorder recorder, androidx.ui.geometry.Rect cullRect = Rect.largest);
     method public static androidx.ui.graphics.Canvas Canvas(android.graphics.Canvas c);
   }
 
@@ -1339,42 +405,42 @@
   }
 
   public final class BrushKt {
-    method public static androidx.ui.graphics.LinearGradient HorizontalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.core.Px startX, androidx.ui.core.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.Brush HorizontalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.core.Px startX, androidx.ui.core.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient LinearGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient LinearGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient HorizontalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.unit.Px startX, androidx.ui.unit.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.Brush HorizontalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.unit.Px startX, androidx.ui.unit.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient LinearGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.unit.Px startX, androidx.ui.unit.Px startY, androidx.ui.unit.Px endX, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient LinearGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.unit.Px startX, androidx.ui.unit.Px startY, androidx.ui.unit.Px endX, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
     method public static androidx.ui.graphics.RadialGradient RadialGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, float centerX, float centerY, float radius, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
     method public static androidx.ui.graphics.RadialGradient RadialGradient(java.util.List<androidx.ui.graphics.Color> colors, float centerX, float centerY, float radius, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient VerticalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.core.Px startY, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient VerticalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.core.Px startY, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient VerticalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.unit.Px startY, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient VerticalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.unit.Px startY, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
   }
 
   public interface Canvas {
     method public void clipPath(androidx.ui.graphics.Path path);
-    method public void clipRRect(androidx.ui.engine.geometry.RRect rrect);
-    method public void clipRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.graphics.ClipOp clipOp = androidx.ui.graphics.ClipOp.intersect);
+    method public void clipRRect(androidx.ui.geometry.RRect rrect);
+    method public void clipRect(androidx.ui.geometry.Rect rect, androidx.ui.graphics.ClipOp clipOp = androidx.ui.graphics.ClipOp.intersect);
     method public void concat(androidx.ui.vectormath64.Matrix4 matrix4);
-    method public void drawArc(androidx.ui.engine.geometry.Rect rect, float startAngle, float sweepAngle, boolean useCenter, androidx.ui.graphics.Paint paint);
-    method public default void drawArcRad(androidx.ui.engine.geometry.Rect rect, float startAngleRad, float sweepAngleRad, boolean useCenter, androidx.ui.graphics.Paint paint);
-    method public void drawCircle(androidx.ui.engine.geometry.Offset center, float radius, androidx.ui.graphics.Paint paint);
-    method public void drawDoubleRoundRect(androidx.ui.engine.geometry.RRect outer, androidx.ui.engine.geometry.RRect inner, androidx.ui.graphics.Paint paint);
-    method public void drawImage(androidx.ui.graphics.Image image, androidx.ui.engine.geometry.Offset topLeftOffset, androidx.ui.graphics.Paint paint);
-    method public void drawImageRect(androidx.ui.graphics.Image image, androidx.ui.engine.geometry.Rect src, androidx.ui.engine.geometry.Rect dst, androidx.ui.graphics.Paint paint);
-    method public void drawLine(androidx.ui.engine.geometry.Offset p1, androidx.ui.engine.geometry.Offset p2, androidx.ui.graphics.Paint paint);
-    method public void drawOval(androidx.ui.engine.geometry.Rect rect, androidx.ui.graphics.Paint paint);
+    method public void drawArc(androidx.ui.geometry.Rect rect, float startAngle, float sweepAngle, boolean useCenter, androidx.ui.graphics.Paint paint);
+    method public default void drawArcRad(androidx.ui.geometry.Rect rect, float startAngleRad, float sweepAngleRad, boolean useCenter, androidx.ui.graphics.Paint paint);
+    method public void drawCircle(androidx.ui.geometry.Offset center, float radius, androidx.ui.graphics.Paint paint);
+    method public void drawDoubleRoundRect(androidx.ui.geometry.RRect outer, androidx.ui.geometry.RRect inner, androidx.ui.graphics.Paint paint);
+    method public void drawImage(androidx.ui.graphics.Image image, androidx.ui.geometry.Offset topLeftOffset, androidx.ui.graphics.Paint paint);
+    method public void drawImageRect(androidx.ui.graphics.Image image, androidx.ui.geometry.Rect src, androidx.ui.geometry.Rect dst, androidx.ui.graphics.Paint paint);
+    method public void drawLine(androidx.ui.geometry.Offset p1, androidx.ui.geometry.Offset p2, androidx.ui.graphics.Paint paint);
+    method public void drawOval(androidx.ui.geometry.Rect rect, androidx.ui.graphics.Paint paint);
     method public void drawPath(androidx.ui.graphics.Path path, androidx.ui.graphics.Paint paint);
     method public void drawPicture(androidx.ui.graphics.Picture picture);
-    method public void drawPoints(androidx.ui.graphics.PointMode pointMode, java.util.List<androidx.ui.engine.geometry.Offset> points, androidx.ui.graphics.Paint paint);
-    method public void drawRRect(androidx.ui.engine.geometry.RRect rrect, androidx.ui.graphics.Paint paint);
+    method public void drawPoints(androidx.ui.graphics.PointMode pointMode, java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.Paint paint);
+    method public void drawRRect(androidx.ui.geometry.RRect rrect, androidx.ui.graphics.Paint paint);
     method public void drawRawPoints(androidx.ui.graphics.PointMode pointMode, float[] points, androidx.ui.graphics.Paint paint);
-    method public void drawRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.graphics.Paint paint);
+    method public void drawRect(androidx.ui.geometry.Rect rect, androidx.ui.graphics.Paint paint);
     method public void drawVertices(androidx.ui.Vertices vertices, androidx.ui.graphics.BlendMode blendMode, androidx.ui.graphics.Paint paint);
     method public android.graphics.Canvas getNativeCanvas();
     method public void restore();
     method public void rotate(float degrees);
     method public default void rotateRad(float radians);
     method public void save();
-    method public void saveLayer(androidx.ui.engine.geometry.Rect bounds, androidx.ui.graphics.Paint paint);
+    method public void saveLayer(androidx.ui.geometry.Rect bounds, androidx.ui.graphics.Paint paint);
     method public void scale(float sx, float sy = sx);
     method public void skew(float sx, float sy);
     method public default void skewRad(float sxRad, float syRad);
@@ -1384,7 +450,7 @@
 
   public final class CanvasKt {
     method public static inline void withSave(androidx.ui.graphics.Canvas, kotlin.jvm.functions.Function0<kotlin.Unit> block);
-    method public static inline void withSaveLayer(androidx.ui.graphics.Canvas, androidx.ui.engine.geometry.Rect bounds, androidx.ui.graphics.Paint paint, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+    method public static inline void withSaveLayer(androidx.ui.graphics.Canvas, androidx.ui.geometry.Rect bounds, androidx.ui.graphics.Paint paint, kotlin.jvm.functions.Function0<kotlin.Unit> block);
   }
 
   public enum ClipOp {
@@ -1468,7 +534,7 @@
     method public float component1();
     method public androidx.ui.graphics.FixedScale copy(float value);
     method public float getValue();
-    method public float scale(androidx.ui.core.PxSize srcSize, androidx.ui.core.PxSize dstSize);
+    method public float scale(androidx.ui.unit.PxSize srcSize, androidx.ui.unit.PxSize dstSize);
   }
 
   public interface Image {
@@ -1499,7 +565,7 @@
   }
 
   public final class LinearGradient extends androidx.ui.graphics.ShaderBrush {
-    method public androidx.ui.graphics.LinearGradient copy(java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? stops, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode);
+    method public androidx.ui.graphics.LinearGradient copy(java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? stops, androidx.ui.unit.Px startX, androidx.ui.unit.Px startY, androidx.ui.unit.Px endX, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode);
   }
 
   public final class MaskFilter {
@@ -1517,6 +583,35 @@
   public static final class MaskFilter.Companion {
   }
 
+  public abstract sealed class Outline {
+  }
+
+  public static final class Outline.Generic extends androidx.ui.graphics.Outline {
+    ctor public Outline.Generic(androidx.ui.graphics.Path path);
+    method public androidx.ui.graphics.Path component1();
+    method public androidx.ui.graphics.Outline.Generic copy(androidx.ui.graphics.Path path);
+    method public androidx.ui.graphics.Path getPath();
+  }
+
+  public static final class Outline.Rectangle extends androidx.ui.graphics.Outline {
+    ctor public Outline.Rectangle(androidx.ui.geometry.Rect rect);
+    method public androidx.ui.geometry.Rect component1();
+    method public androidx.ui.graphics.Outline.Rectangle copy(androidx.ui.geometry.Rect rect);
+    method public androidx.ui.geometry.Rect getRect();
+  }
+
+  public static final class Outline.Rounded extends androidx.ui.graphics.Outline {
+    ctor public Outline.Rounded(androidx.ui.geometry.RRect rrect);
+    method public androidx.ui.geometry.RRect component1();
+    method public androidx.ui.graphics.Outline.Rounded copy(androidx.ui.geometry.RRect rrect);
+    method public androidx.ui.geometry.RRect getRrect();
+  }
+
+  public final class OutlineKt {
+    method public static void addOutline(androidx.ui.graphics.Path, androidx.ui.graphics.Outline outline);
+    method public static void drawOutline(androidx.ui.graphics.Canvas, androidx.ui.graphics.Outline outline, androidx.ui.graphics.Paint paint);
+  }
+
   public final class Paint {
     ctor public Paint();
     method public android.graphics.Paint asFrameworkPaint();
@@ -1570,22 +665,22 @@
     ctor public Path(android.graphics.Path internalPath);
     ctor public Path();
     method public void _addRect(float left, float top, float right, float bottom);
-    method public void addArc(androidx.ui.engine.geometry.Rect oval, float startAngleDegrees, float sweepAngleDegrees);
-    method public void addArcRad(androidx.ui.engine.geometry.Rect oval, float startAngleRadians, float sweepAngleRadians);
-    method public void addOval(androidx.ui.engine.geometry.Rect oval);
-    method public void addPath(androidx.ui.graphics.Path path, androidx.ui.engine.geometry.Offset offset = Offset.zero, androidx.ui.vectormath64.Matrix4? matrix = null);
-    method public void addPolygon(java.util.List<androidx.ui.engine.geometry.Offset> points, boolean close);
-    method public void addRRect(androidx.ui.engine.geometry.RRect rrect);
-    method public void addRect(androidx.ui.engine.geometry.Rect rect);
-    method public void arcTo(androidx.ui.engine.geometry.Rect rect, float startAngleDegrees, float sweepAngleDegrees, boolean forceMoveTo);
-    method public void arcToPoint(androidx.ui.engine.geometry.Offset arcEnd, androidx.ui.engine.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
-    method public void arcToRad(androidx.ui.engine.geometry.Rect rect, float startAngleRadians, float sweepAngleRadians, boolean forceMoveTo);
+    method public void addArc(androidx.ui.geometry.Rect oval, float startAngleDegrees, float sweepAngleDegrees);
+    method public void addArcRad(androidx.ui.geometry.Rect oval, float startAngleRadians, float sweepAngleRadians);
+    method public void addOval(androidx.ui.geometry.Rect oval);
+    method public void addPath(androidx.ui.graphics.Path path, androidx.ui.geometry.Offset offset = Offset.zero, androidx.ui.vectormath64.Matrix4? matrix = null);
+    method public void addPolygon(java.util.List<androidx.ui.geometry.Offset> points, boolean close);
+    method public void addRRect(androidx.ui.geometry.RRect rrect);
+    method public void addRect(androidx.ui.geometry.Rect rect);
+    method public void arcTo(androidx.ui.geometry.Rect rect, float startAngleDegrees, float sweepAngleDegrees, boolean forceMoveTo);
+    method public void arcToPoint(androidx.ui.geometry.Offset arcEnd, androidx.ui.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
+    method public void arcToRad(androidx.ui.geometry.Rect rect, float startAngleRadians, float sweepAngleRadians, boolean forceMoveTo);
     method public void close();
     method public void conicTo(float x1, float y1, float x2, float y2, float w);
-    method public boolean contains(androidx.ui.engine.geometry.Offset offset);
+    method public boolean contains(androidx.ui.geometry.Offset offset);
     method public void cubicTo(float x1, float y1, float x2, float y2, float x3, float y3);
-    method public void extendWithPath(androidx.ui.graphics.Path path, androidx.ui.engine.geometry.Offset offset, androidx.ui.vectormath64.Matrix4 matrix);
-    method public androidx.ui.engine.geometry.Rect getBounds();
+    method public void extendWithPath(androidx.ui.graphics.Path path, androidx.ui.geometry.Offset offset, androidx.ui.vectormath64.Matrix4 matrix);
+    method public androidx.ui.geometry.Rect getBounds();
     method public androidx.ui.graphics.PathFillType getFillType();
     method public boolean isConvex();
     method public boolean isEmpty();
@@ -1593,7 +688,7 @@
     method public void moveTo(float dx, float dy);
     method public boolean op(androidx.ui.graphics.Path path1, androidx.ui.graphics.Path path2, androidx.ui.graphics.PathOperation operation);
     method public void quadraticBezierTo(float x1, float y1, float x2, float y2);
-    method public void relativeArcToPoint(androidx.ui.engine.geometry.Offset arcEndDelta, androidx.ui.engine.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
+    method public void relativeArcToPoint(androidx.ui.geometry.Offset arcEndDelta, androidx.ui.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
     method public void relativeConicTo(float x1, float y1, float x2, float y2, float w);
     method public void relativeCubicTo(float x1, float y1, float x2, float y2, float x3, float y3);
     method public void relativeLineTo(float dx, float dy);
@@ -1601,7 +696,7 @@
     method public void relativeQuadraticBezierTo(float x1, float y1, float x2, float y2);
     method public void reset();
     method public void setFillType(androidx.ui.graphics.PathFillType value);
-    method public void shift(androidx.ui.engine.geometry.Offset offset);
+    method public void shift(androidx.ui.geometry.Offset offset);
     method public android.graphics.Path toFrameworkPath();
     method public androidx.ui.graphics.Path transform(androidx.ui.vectormath64.Matrix4 matrix);
     property public final boolean isConvex;
@@ -1628,7 +723,7 @@
 
   public final class Picture {
     ctor public Picture(android.graphics.Picture frameworkPicture);
-    method public androidx.ui.engine.geometry.Rect cullRect();
+    method public androidx.ui.geometry.Rect cullRect();
     method public void dispose();
     method public android.graphics.Picture getFrameworkPicture();
   }
@@ -1651,7 +746,7 @@
   }
 
   public interface ScaleFit {
-    method public float scale(androidx.ui.core.PxSize srcSize, androidx.ui.core.PxSize dstSize);
+    method public float scale(androidx.ui.unit.PxSize srcSize, androidx.ui.unit.PxSize dstSize);
     field public static final androidx.ui.graphics.ScaleFit.Companion! Companion;
   }
 
@@ -1686,26 +781,30 @@
 
   public final class ShaderKt {
     method public static androidx.ui.graphics.Shader ImageShader(androidx.ui.graphics.Image image, androidx.ui.graphics.TileMode tileModeX = androidx.ui.graphics.TileMode.Clamp, androidx.ui.graphics.TileMode tileModeY = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.Shader LinearGradientShader(androidx.ui.engine.geometry.Offset from, androidx.ui.engine.geometry.Offset to, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.Shader RadialGradientShader(androidx.ui.engine.geometry.Offset center, float radius, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.Shader LinearGradientShader(androidx.ui.geometry.Offset from, androidx.ui.geometry.Offset to, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.Shader RadialGradientShader(androidx.ui.geometry.Offset center, float radius, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
   }
 
   public final class Shadow {
-    ctor public Shadow(androidx.ui.graphics.Color color, androidx.ui.engine.geometry.Offset offset, androidx.ui.core.Px blurRadius);
+    ctor public Shadow(androidx.ui.graphics.Color color, androidx.ui.geometry.Offset offset, androidx.ui.unit.Px blurRadius);
     ctor public Shadow();
     method public androidx.ui.graphics.Color component1();
-    method public androidx.ui.engine.geometry.Offset component2();
-    method public androidx.ui.core.Px component3();
-    method public androidx.ui.graphics.Shadow copy(androidx.ui.graphics.Color color, androidx.ui.engine.geometry.Offset offset, androidx.ui.core.Px blurRadius);
-    method public androidx.ui.core.Px getBlurRadius();
+    method public androidx.ui.geometry.Offset component2();
+    method public androidx.ui.unit.Px component3();
+    method public androidx.ui.graphics.Shadow copy(androidx.ui.graphics.Color color, androidx.ui.geometry.Offset offset, androidx.ui.unit.Px blurRadius);
+    method public androidx.ui.unit.Px getBlurRadius();
     method public androidx.ui.graphics.Color getColor();
-    method public androidx.ui.engine.geometry.Offset getOffset();
+    method public androidx.ui.geometry.Offset getOffset();
   }
 
   public final class ShadowKt {
     method public static androidx.ui.graphics.Shadow lerp(androidx.ui.graphics.Shadow start, androidx.ui.graphics.Shadow stop, float fraction);
   }
 
+  public interface Shape {
+    method public androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
+  }
+
   public final class SolidColor implements androidx.ui.graphics.Brush {
     ctor public SolidColor(androidx.ui.graphics.Color value);
     method public void applyTo(androidx.ui.graphics.Paint p);
@@ -2203,85 +1302,16 @@
 
   public final class PointerInputTestUtilKt {
     method public static androidx.ui.core.PointerInputChange consume(androidx.ui.core.PointerInputChange, float dx = 0f, float dy = 0f, boolean downChange = false);
-    method public static androidx.ui.core.PointerInputChange down(int id = 0, androidx.ui.core.Duration duration = Duration.Zero, float x = 0f, float y = 0f);
-    method public static androidx.ui.core.PointerInputChange invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChanges, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass![] pointerEventPasses, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, java.util.List<androidx.ui.core.PointerInputChange> pointerInputChanges, java.util.List<? extends androidx.ui.core.PointerEventPass> pointerEventPasses, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static androidx.ui.core.PointerInputChange moveBy(androidx.ui.core.PointerInputChange, androidx.ui.core.Duration duration, float dx = 0f, float dy = 0f);
-    method public static androidx.ui.core.PointerInputChange moveTo(androidx.ui.core.PointerInputChange, androidx.ui.core.Duration duration, float x = 0f, float y = 0f);
-    method public static androidx.ui.core.PointerInputChange up(androidx.ui.core.PointerInputChange, androidx.ui.core.Duration duration);
-  }
-
-}
-
-package androidx.ui.util {
-
-  public final class Float16 implements java.lang.Comparable<androidx.ui.util.Float16> {
-    ctor public Float16(short halfValue);
-    ctor public Float16(float value);
-    ctor public Float16(double value);
-    method public androidx.ui.util.Float16 absoluteValue();
-    method public androidx.ui.util.Float16 ceil();
-    method public operator int compareTo(androidx.ui.util.Float16 other);
-    method public androidx.ui.util.Float16 floor();
-    method public int getExponent();
-    method public short getHalfValue();
-    method public androidx.ui.util.Float16 getSign();
-    method public int getSignificand();
-    method public boolean isFinite();
-    method public boolean isInfinite();
-    method public boolean isNaN();
-    method public boolean isNormalized();
-    method public androidx.ui.util.Float16 round();
-    method public int toBits();
-    method public byte toByte();
-    method public double toDouble();
-    method public float toFloat();
-    method public String toHexString();
-    method public int toInt();
-    method public long toLong();
-    method public int toRawBits();
-    method public short toShort();
-    method public androidx.ui.util.Float16 trunc();
-    method public androidx.ui.util.Float16 withSign(androidx.ui.util.Float16 sign);
-    property public final int exponent;
-    property public final androidx.ui.util.Float16 sign;
-    property public final int significand;
-    field public static final androidx.ui.util.Float16.Companion! Companion;
-    field public static final int MaxExponent = 15; // 0xf
-    field public static final int MinExponent = -14; // 0xfffffff2
-    field public static final int Size = 16; // 0x10
-  }
-
-  public static final class Float16.Companion {
-    method public androidx.ui.util.Float16 getEpsilon();
-    method public androidx.ui.util.Float16 getLowestValue();
-    method public androidx.ui.util.Float16 getMaxValue();
-    method public androidx.ui.util.Float16 getMinNormal();
-    method public androidx.ui.util.Float16 getMinValue();
-    method public androidx.ui.util.Float16 getNaN();
-    method public androidx.ui.util.Float16 getNegativeInfinity();
-    method public androidx.ui.util.Float16 getNegativeZero();
-    method public androidx.ui.util.Float16 getPositiveInfinity();
-    method public androidx.ui.util.Float16 getPositiveZero();
-    property public final androidx.ui.util.Float16 Epsilon;
-    property public final androidx.ui.util.Float16 LowestValue;
-    property public final androidx.ui.util.Float16 MaxValue;
-    property public final androidx.ui.util.Float16 MinNormal;
-    property public final androidx.ui.util.Float16 MinValue;
-    property public final androidx.ui.util.Float16 NaN;
-    property public final androidx.ui.util.Float16 NegativeInfinity;
-    property public final androidx.ui.util.Float16 NegativeZero;
-    property public final androidx.ui.util.Float16 PositiveInfinity;
-    property public final androidx.ui.util.Float16 PositiveZero;
-  }
-
-  public final class Float16Kt {
-    method public static androidx.ui.util.Float16 max(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
-    method public static androidx.ui.util.Float16 min(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
+    method public static androidx.ui.core.PointerInputChange down(int id = 0, androidx.ui.unit.Duration duration = Duration.Zero, float x = 0f, float y = 0f);
+    method public static androidx.ui.core.PointerInputChange invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChanges, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass![] pointerEventPasses, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, java.util.List<androidx.ui.core.PointerInputChange> pointerInputChanges, java.util.List<? extends androidx.ui.core.PointerEventPass> pointerEventPasses, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static androidx.ui.core.PointerInputChange moveBy(androidx.ui.core.PointerInputChange, androidx.ui.unit.Duration duration, float dx = 0f, float dy = 0f);
+    method public static androidx.ui.core.PointerInputChange moveTo(androidx.ui.core.PointerInputChange, androidx.ui.unit.Duration duration, float x = 0f, float y = 0f);
+    method public static androidx.ui.core.PointerInputChange up(androidx.ui.core.PointerInputChange, androidx.ui.unit.Duration duration);
   }
 
 }
@@ -2418,12 +1448,12 @@
 
   public final class Matrix4Kt {
     method public static Float? getAsScale(androidx.ui.vectormath64.Matrix4);
-    method public static androidx.ui.engine.geometry.Offset? getAsTranslation(androidx.ui.vectormath64.Matrix4);
-    method public static androidx.ui.engine.geometry.Rect inverseTransformRect(androidx.ui.vectormath64.Matrix4 transform, androidx.ui.engine.geometry.Rect rect);
+    method public static androidx.ui.geometry.Offset? getAsTranslation(androidx.ui.vectormath64.Matrix4);
+    method public static androidx.ui.geometry.Rect inverseTransformRect(androidx.ui.vectormath64.Matrix4 transform, androidx.ui.geometry.Rect rect);
     method public static boolean isIdentity(androidx.ui.vectormath64.Matrix4);
     method public static boolean matrixEquals(androidx.ui.vectormath64.Matrix4? a, androidx.ui.vectormath64.Matrix4? b);
-    method public static androidx.ui.engine.geometry.Offset transformPoint(androidx.ui.vectormath64.Matrix4, androidx.ui.engine.geometry.Offset point);
-    method public static androidx.ui.engine.geometry.Rect transformRect(androidx.ui.vectormath64.Matrix4, androidx.ui.engine.geometry.Rect rect);
+    method public static androidx.ui.geometry.Offset transformPoint(androidx.ui.vectormath64.Matrix4, androidx.ui.geometry.Offset point);
+    method public static androidx.ui.geometry.Rect transformRect(androidx.ui.vectormath64.Matrix4, androidx.ui.geometry.Rect rect);
   }
 
   public enum MatrixColumn {
diff --git a/ui/ui-core/api/restricted_0.1.0-dev04.txt b/ui/ui-core/api/restricted_0.1.0-dev04.txt
index 0260cd9..ebcf997 100644
--- a/ui/ui-core/api/restricted_0.1.0-dev04.txt
+++ b/ui/ui-core/api/restricted_0.1.0-dev04.txt
@@ -1,14 +1,6 @@
 // Signature format: 3.0
 package androidx.ui {
 
-  public final class MathHelpersKt {
-    method public static float lerp(float start, float stop, float fraction);
-    method public static int lerp(int start, int stop, float fraction);
-    method public static long lerp(long start, long stop, float fraction);
-    method public static String toHexString(int);
-    method public static String toStringAsFixed(float, int digits);
-  }
-
   public enum VertexMode {
     method public final android.graphics.Canvas.VertexMode toFrameworkVertexMode();
     enum_constant public static final androidx.ui.VertexMode triangleFan;
@@ -17,7 +9,7 @@
   }
 
   public final class Vertices {
-    ctor public Vertices(androidx.ui.VertexMode vertexMode, java.util.List<androidx.ui.engine.geometry.Offset> positions, java.util.List<androidx.ui.engine.geometry.Offset> textureCoordinates, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Integer> indices);
+    ctor public Vertices(androidx.ui.VertexMode vertexMode, java.util.List<androidx.ui.geometry.Offset> positions, java.util.List<androidx.ui.geometry.Offset> textureCoordinates, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Integer> indices);
     method public int[] getColors();
     method public short[] getIndices();
     method public float[] getPositions();
@@ -70,7 +62,7 @@
 package androidx.ui.core {
 
   public enum Alignment {
-    method public final androidx.ui.core.IntPxPosition align(androidx.ui.core.IntPxSize size);
+    method public final androidx.ui.unit.IntPxPosition align(androidx.ui.unit.IntPxSize size);
     enum_constant public static final androidx.ui.core.Alignment BottomCenter;
     enum_constant public static final androidx.ui.core.Alignment BottomLeft;
     enum_constant public static final androidx.ui.core.Alignment BottomRight;
@@ -87,45 +79,32 @@
   }
 
   public final class AlignmentLineKt {
-    method public static androidx.ui.core.IntPx merge(androidx.ui.core.AlignmentLine, androidx.ui.core.IntPx position1, androidx.ui.core.IntPx position2);
-  }
-
-  public final class Bounds {
-    ctor public Bounds(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.core.Bounds copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp getBottom();
-    method public androidx.ui.core.Dp getLeft();
-    method public androidx.ui.core.Dp getRight();
-    method public androidx.ui.core.Dp getTop();
+    method public static androidx.ui.unit.IntPx merge(androidx.ui.core.AlignmentLine, androidx.ui.unit.IntPx position1, androidx.ui.unit.IntPx position2);
   }
 
   public final class Constraints {
-    ctor public Constraints(androidx.ui.core.IntPx minWidth, androidx.ui.core.IntPx maxWidth, androidx.ui.core.IntPx minHeight, androidx.ui.core.IntPx maxHeight);
+    ctor public Constraints(androidx.ui.unit.IntPx minWidth, androidx.ui.unit.IntPx maxWidth, androidx.ui.unit.IntPx minHeight, androidx.ui.unit.IntPx maxHeight);
     ctor public Constraints();
-    method public androidx.ui.core.IntPx component1();
-    method public androidx.ui.core.IntPx component2();
-    method public androidx.ui.core.IntPx component3();
-    method public androidx.ui.core.IntPx component4();
-    method public androidx.ui.core.Constraints copy(androidx.ui.core.IntPx minWidth, androidx.ui.core.IntPx maxWidth, androidx.ui.core.IntPx minHeight, androidx.ui.core.IntPx maxHeight);
-    method public androidx.ui.core.IntPx getMaxHeight();
-    method public androidx.ui.core.IntPx getMaxWidth();
-    method public androidx.ui.core.IntPx getMinHeight();
-    method public androidx.ui.core.IntPx getMinWidth();
+    method public androidx.ui.unit.IntPx component1();
+    method public androidx.ui.unit.IntPx component2();
+    method public androidx.ui.unit.IntPx component3();
+    method public androidx.ui.unit.IntPx component4();
+    method public androidx.ui.core.Constraints copy(androidx.ui.unit.IntPx minWidth, androidx.ui.unit.IntPx maxWidth, androidx.ui.unit.IntPx minHeight, androidx.ui.unit.IntPx maxHeight);
+    method public androidx.ui.unit.IntPx getMaxHeight();
+    method public androidx.ui.unit.IntPx getMaxWidth();
+    method public androidx.ui.unit.IntPx getMinHeight();
+    method public androidx.ui.unit.IntPx getMinWidth();
     field public static final androidx.ui.core.Constraints.Companion! Companion;
   }
 
   public static final class Constraints.Companion {
-    method public androidx.ui.core.Constraints tightConstraints(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height);
-    method public androidx.ui.core.Constraints tightConstraintsForHeight(androidx.ui.core.IntPx height);
-    method public androidx.ui.core.Constraints tightConstraintsForWidth(androidx.ui.core.IntPx width);
+    method public androidx.ui.core.Constraints tightConstraints(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height);
+    method public androidx.ui.core.Constraints tightConstraintsForHeight(androidx.ui.unit.IntPx height);
+    method public androidx.ui.core.Constraints tightConstraintsForWidth(androidx.ui.unit.IntPx width);
   }
 
   public final class ConstraintsKt {
-    method public static androidx.ui.core.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.core.IntPxSize size);
+    method public static androidx.ui.unit.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
     method public static androidx.ui.core.Constraints enforce(androidx.ui.core.Constraints, androidx.ui.core.Constraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.core.Constraints);
     method public static boolean getHasBoundedWidth(androidx.ui.core.Constraints);
@@ -135,57 +114,21 @@
     method public static boolean isZero(androidx.ui.core.Constraints);
     method public static androidx.ui.core.Constraints looseMax(androidx.ui.core.Constraints);
     method public static androidx.ui.core.Constraints looseMin(androidx.ui.core.Constraints);
-    method public static androidx.ui.core.Constraints offset(androidx.ui.core.Constraints, androidx.ui.core.IntPx horizontal = 0.ipx, androidx.ui.core.IntPx vertical = 0.ipx);
-    method public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.core.IntPxSize size);
+    method public static androidx.ui.core.Constraints offset(androidx.ui.core.Constraints, androidx.ui.unit.IntPx horizontal = 0.ipx, androidx.ui.unit.IntPx vertical = 0.ipx);
+    method public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
     method public static androidx.ui.core.Constraints tightMax(androidx.ui.core.Constraints);
     method public static androidx.ui.core.Constraints tightMin(androidx.ui.core.Constraints);
-    method public static androidx.ui.core.Constraints withTight(androidx.ui.core.Constraints, androidx.ui.core.IntPx? width = null, androidx.ui.core.IntPx? height = null);
+    method public static androidx.ui.core.Constraints withTight(androidx.ui.core.Constraints, androidx.ui.unit.IntPx? width = null, androidx.ui.unit.IntPx? height = null);
   }
 
   public final class ConsumedData {
-    ctor public ConsumedData(androidx.ui.core.PxPosition positionChange, boolean downChange);
+    ctor public ConsumedData(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     ctor public ConsumedData();
-    method public androidx.ui.core.PxPosition component1();
+    method public androidx.ui.unit.PxPosition component1();
     method public boolean component2();
-    method public androidx.ui.core.ConsumedData copy(androidx.ui.core.PxPosition positionChange, boolean downChange);
+    method public androidx.ui.core.ConsumedData copy(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     method public boolean getDownChange();
-    method public androidx.ui.core.PxPosition getPositionChange();
-  }
-
-  public final class Density {
-    ctor public Density(float density, float fontScale);
-    method public float component1();
-    method public float component2();
-    method public androidx.ui.core.Density copy(float density, float fontScale);
-    method public float getDensity();
-    method public float getFontScale();
-  }
-
-  public final class DensityKt {
-    method public static androidx.ui.core.Density Density(android.content.Context context);
-    method public static androidx.ui.core.DensityScope DensityScope(androidx.ui.core.Density density);
-    method public static inline <R> R! withDensity(androidx.ui.core.Density density, kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,? extends R> block);
-  }
-
-  public interface DensityScope {
-    method public androidx.ui.core.Density getDensity();
-    method public default androidx.ui.core.Dp toDp(androidx.ui.core.TextUnit);
-    method public default androidx.ui.core.Dp toDp(androidx.ui.core.Px);
-    method public default androidx.ui.core.Dp toDp(androidx.ui.core.IntPx);
-    method public default androidx.ui.core.Dp toDp(float);
-    method public default androidx.ui.core.Dp toDp(int);
-    method public default androidx.ui.core.IntPx toIntPx(androidx.ui.core.Dp);
-    method public default androidx.ui.core.IntPx toIntPx(androidx.ui.core.TextUnit);
-    method public default androidx.ui.core.Px toPx(androidx.ui.core.Dp);
-    method public default androidx.ui.core.Px toPx(androidx.ui.core.TextUnit);
-    method public default androidx.ui.core.PxSize toPx-s2Mz6-8(long);
-    method public default androidx.ui.engine.geometry.Rect toRect(androidx.ui.core.Bounds);
-    method public default androidx.ui.core.TextUnit toSp(androidx.ui.core.Dp);
-    method public default androidx.ui.core.TextUnit toSp(androidx.ui.core.Px);
-    method public default androidx.ui.core.TextUnit toSp(androidx.ui.core.IntPx);
-    method public default androidx.ui.core.TextUnit toSp(float);
-    method public default androidx.ui.core.TextUnit toSp(int);
-    property public abstract androidx.ui.core.Density density;
+    method public androidx.ui.unit.PxPosition getPositionChange();
   }
 
   public enum Direction {
@@ -195,304 +138,29 @@
     enum_constant public static final androidx.ui.core.Direction UP;
   }
 
-  public final class Dp implements java.lang.Comparable<androidx.ui.core.Dp> {
-    ctor public Dp(float value);
-    method public operator int compareTo(androidx.ui.core.Dp other);
-    method public float component1();
-    method public androidx.ui.core.Dp copy(float value);
-    method public inline operator androidx.ui.core.Dp div(float other);
-    method public inline operator androidx.ui.core.Dp div(int other);
-    method public inline operator float div(androidx.ui.core.Dp other);
-    method public inline operator float div-KkBJKWw(float other);
-    method public float getValue();
-    method public inline operator androidx.ui.core.Dp minus(androidx.ui.core.Dp other);
-    method public inline operator androidx.ui.core.Dp plus(androidx.ui.core.Dp other);
-    method public inline operator androidx.ui.core.Dp times(float other);
-    method public inline operator androidx.ui.core.Dp times(int other);
-    method public inline operator float times(androidx.ui.core.Dp other);
-    method public inline operator float times-KkBJKWw(float other);
-    method public inline operator androidx.ui.core.Dp unaryMinus();
-    field public static final androidx.ui.core.Dp.Companion! Companion;
-  }
-
-  public static final class Dp.Companion {
-    method public androidx.ui.core.Dp getHairline();
-    method public androidx.ui.core.Dp getInfinity();
-    property public final androidx.ui.core.Dp Hairline;
-    property public final androidx.ui.core.Dp Infinity;
-  }
-
-  public final inline class DpCubed implements java.lang.Comparable<androidx.ui.core.DpCubed> {
-    ctor public DpCubed();
-    method public operator int compareTo-zqpl1kg(float p);
-    method public static operator int compareTo-zqpl1kg(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator androidx.ui.core.Dp div-KkBJKWw(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, androidx.ui.core.Dp other);
-    method public static inline operator float div-zqpl1kg(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-zqpl1kg(float $this, float dimension);
-    method public static inline operator float plus-zqpl1kg(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final inline class DpInverse implements java.lang.Comparable<androidx.ui.core.DpInverse> {
-    ctor public DpInverse();
-    method public operator int compareTo-ASDJgtI(float p);
-    method public static operator int compareTo-ASDJgtI(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-ASDJgtI(float $this, float dimension);
-    method public static inline operator float plus-ASDJgtI(float $this, float dimension);
-    method public static inline operator androidx.ui.core.Dp times-KkBJKWw(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Dp other);
-    method public static inline operator float times-zqpl1kg(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final class DpKt {
-    method public static inline long Position(androidx.ui.core.Dp x, androidx.ui.core.Dp y);
-    method public static inline long Size(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
-    method public static long center-s2Mz6-8(long);
-    method public static inline androidx.ui.core.Dp coerceAtLeast(androidx.ui.core.Dp, androidx.ui.core.Dp minimumValue);
-    method public static inline androidx.ui.core.Dp coerceAtMost(androidx.ui.core.Dp, androidx.ui.core.Dp maximumValue);
-    method public static inline androidx.ui.core.Dp coerceIn(androidx.ui.core.Dp, androidx.ui.core.Dp minimumValue, androidx.ui.core.Dp maximumValue);
-    method public static inline operator float div(float, androidx.ui.core.Dp other);
-    method public static inline operator float div(double, androidx.ui.core.Dp other);
-    method public static inline operator float div(int, androidx.ui.core.Dp other);
-    method public static androidx.ui.core.Dp getDistance-JXBE4ew(long);
-    method public static inline androidx.ui.core.Dp getDp(int);
-    method public static inline androidx.ui.core.Dp getDp(double);
-    method public static inline androidx.ui.core.Dp getDp(float);
-    method public static inline androidx.ui.core.Dp getHeight(androidx.ui.core.Bounds);
-    method public static inline androidx.ui.core.Dp getWidth(androidx.ui.core.Bounds);
-    method public static inline boolean isFinite(androidx.ui.core.Dp);
-    method public static androidx.ui.core.Dp lerp(androidx.ui.core.Dp start, androidx.ui.core.Dp stop, float fraction);
-    method public static long lerp-SuMVOfk(long start, long stop, float fraction);
-    method public static inline androidx.ui.core.Dp max(androidx.ui.core.Dp a, androidx.ui.core.Dp b);
-    method public static inline androidx.ui.core.Dp min(androidx.ui.core.Dp a, androidx.ui.core.Dp b);
-    method public static inline operator androidx.ui.core.Dp times(float, androidx.ui.core.Dp other);
-    method public static inline operator androidx.ui.core.Dp times(double, androidx.ui.core.Dp other);
-    method public static inline operator androidx.ui.core.Dp times(int, androidx.ui.core.Dp other);
-    method public static inline operator long times-Ze-JISM(int, long size);
-    method public static inline operator long times-doH9uME(float, long size);
-    method public static inline operator long times-nKWVx08(double, long size);
-    method public static androidx.ui.core.Bounds toBounds-s2Mz6-8(long);
-    method public static inline long toSize(androidx.ui.core.Bounds);
-  }
-
-  public final inline class DpSquared implements java.lang.Comparable<androidx.ui.core.DpSquared> {
-    ctor public DpSquared();
-    method public operator int compareTo-KkBJKWw(float p);
-    method public static operator int compareTo-KkBJKWw(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-KkBJKWw(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator androidx.ui.core.Dp div-impl(float $this, androidx.ui.core.Dp other);
-    method public static inline operator float div-zqpl1kg(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-KkBJKWw(float $this, float other);
-    method public static inline operator float plus-KkBJKWw(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Dp other);
-    method public static String toString-impl(float $this);
-  }
-
   public interface DrawModifier extends androidx.ui.core.Modifier.Element {
-    method public void draw(androidx.ui.core.Density density, kotlin.jvm.functions.Function0<kotlin.Unit> drawContent, androidx.ui.graphics.Canvas canvas, androidx.ui.core.PxSize size);
+    method public void draw(androidx.ui.unit.Density density, kotlin.jvm.functions.Function0<kotlin.Unit> drawContent, androidx.ui.graphics.Canvas canvas, androidx.ui.unit.PxSize size);
   }
 
   public final class DrawModifierKt {
-    method public static androidx.ui.core.DrawModifier draw(kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onDraw);
-    method public static androidx.ui.core.DrawModifier drawWithContent(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onDraw);
+    method public static androidx.ui.core.DrawModifier draw(kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onDraw);
+    method public static androidx.ui.core.DrawModifier drawWithContent(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onDraw);
   }
 
-  public interface DrawReceiver extends androidx.ui.core.DensityScope {
+  public interface DrawReceiver extends androidx.ui.unit.DensityScope {
     method public void drawChildren();
   }
 
-  public final class Duration implements java.lang.Comparable<androidx.ui.core.Duration> {
-    ctor public Duration(long nanoseconds);
-    method public int compareTo(androidx.ui.core.Duration other);
-    method public long component1();
-    method public androidx.ui.core.Duration copy(long nanoseconds);
-    method public operator androidx.ui.core.Duration div(int quotient);
-    method public operator androidx.ui.core.Duration div(double quotient);
-    method public long getNanoseconds();
-    method public operator androidx.ui.core.Duration minus(androidx.ui.core.Duration other);
-    method public operator androidx.ui.core.Duration plus(androidx.ui.core.Duration other);
-    method public operator androidx.ui.core.Duration times(int factor);
-    method public operator androidx.ui.core.Duration times(double factor);
-    field public static final androidx.ui.core.Duration.Companion! Companion;
-  }
-
-  public static final class Duration.Companion {
-    method public androidx.ui.core.Duration getZero();
-    property public final androidx.ui.core.Duration Zero;
-  }
-
-  public final class Durations {
-    method public static androidx.ui.core.Duration Duration(long days = 0, long hours = 0, long minutes = 0, long seconds = 0, long milliseconds = 0, long microseconds = 0, long nanoseconds = 0);
-    method public static androidx.ui.core.Duration getDays(long);
-    method public static androidx.ui.core.Duration getDays(int);
-    method public static androidx.ui.core.Duration getHours(long);
-    method public static androidx.ui.core.Duration getHours(int);
-    method public static androidx.ui.core.Duration getMicroseconds(long);
-    method public static androidx.ui.core.Duration getMicroseconds(int);
-    method public static androidx.ui.core.Duration getMilliseconds(long);
-    method public static androidx.ui.core.Duration getMilliseconds(int);
-    method public static androidx.ui.core.Duration getMinutes(long);
-    method public static androidx.ui.core.Duration getMinutes(int);
-    method public static androidx.ui.core.Duration getNanoseconds(long);
-    method public static androidx.ui.core.Duration getNanoseconds(int);
-    method public static long getNanosecondsPerDay();
-    method public static long getNanosecondsPerHour();
-    method public static long getNanosecondsPerMillisecond();
-    method public static long getNanosecondsPerMinute();
-    method public static long getNanosecondsPerSecond();
-    method public static androidx.ui.core.Duration getSeconds(long);
-    method public static androidx.ui.core.Duration getSeconds(int);
-    method public static long inDays(androidx.ui.core.Duration);
-    method public static long inHours(androidx.ui.core.Duration);
-    method public static long inMicroseconds(androidx.ui.core.Duration);
-    method public static long inMilliseconds(androidx.ui.core.Duration);
-    method public static long inMinutes(androidx.ui.core.Duration);
-    method public static long inSeconds(androidx.ui.core.Duration);
-    field public static final long HoursPerDay = 24L; // 0x18L
-    field public static final long MicrosecondsPerMillisecond = 1000L; // 0x3e8L
-    field public static final long MillisecondsPerSecond = 1000L; // 0x3e8L
-    field public static final long MinutesPerHour = 60L; // 0x3cL
-    field public static final long NanosecondsPerMicrosecond = 1000L; // 0x3e8L
-    field public static final long SecondsPerMinute = 60L; // 0x3cL
-  }
-
   public final class HorizontalAlignmentLine extends androidx.ui.core.AlignmentLine {
-    ctor public HorizontalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.core.IntPx,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> merger);
-  }
-
-  public final class InlineClassHelperKt {
-    method public static inline long packFloats(float val1, float val2);
-    method public static inline long packInts(int val1, int val2);
-    method public static inline float unpackFloat1(long value);
-    method public static inline float unpackFloat2(long value);
-    method public static inline int unpackInt1(long value);
-    method public static inline int unpackInt2(long value);
-  }
-
-  public final class IntPx implements java.lang.Comparable<androidx.ui.core.IntPx> {
-    ctor public IntPx(int value);
-    method public operator int compareTo(androidx.ui.core.IntPx other);
-    method public inline operator int compareTo(androidx.ui.core.Px other);
-    method public int component1();
-    method public androidx.ui.core.IntPx copy(int value);
-    method public operator androidx.ui.core.IntPx div(float other);
-    method public operator androidx.ui.core.IntPx div(double other);
-    method public operator androidx.ui.core.IntPx div(int other);
-    method public int getValue();
-    method public operator androidx.ui.core.IntPx minus(androidx.ui.core.IntPx other);
-    method public operator androidx.ui.core.IntPx plus(androidx.ui.core.IntPx other);
-    method public inline operator androidx.ui.core.IntPx rem(int other);
-    method public operator androidx.ui.core.IntPx times(float other);
-    method public operator androidx.ui.core.IntPx times(double other);
-    method public operator androidx.ui.core.IntPx times(int other);
-    method public operator androidx.ui.core.IntPx unaryMinus();
-    field public static final androidx.ui.core.IntPx.Companion! Companion;
-  }
-
-  public static final class IntPx.Companion {
-    method public androidx.ui.core.IntPx getInfinity();
-    method public androidx.ui.core.IntPx getZero();
-    property public final androidx.ui.core.IntPx Infinity;
-    property public final androidx.ui.core.IntPx Zero;
-  }
-
-  public final class IntPxBounds {
-    ctor public IntPxBounds(androidx.ui.core.IntPx left, androidx.ui.core.IntPx top, androidx.ui.core.IntPx right, androidx.ui.core.IntPx bottom);
-    method public androidx.ui.core.IntPx component1();
-    method public androidx.ui.core.IntPx component2();
-    method public androidx.ui.core.IntPx component3();
-    method public androidx.ui.core.IntPx component4();
-    method public androidx.ui.core.IntPxBounds copy(androidx.ui.core.IntPx left, androidx.ui.core.IntPx top, androidx.ui.core.IntPx right, androidx.ui.core.IntPx bottom);
-    method public androidx.ui.core.IntPx getBottom();
-    method public androidx.ui.core.IntPx getLeft();
-    method public androidx.ui.core.IntPx getRight();
-    method public androidx.ui.core.IntPx getTop();
-  }
-
-  public final class IntPxKt {
-    method public static inline androidx.ui.core.IntPxPosition IntPxPosition(androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
-    method public static inline androidx.ui.core.IntPxSize IntPxSize(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height);
-    method public static inline androidx.ui.core.PxPosition PxPosition(androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
-    method public static inline androidx.ui.core.PxSize PxSize(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height);
-    method public static androidx.ui.core.IntPxPosition center(androidx.ui.core.IntPxSize);
-    method public static inline androidx.ui.core.IntPx coerceAtLeast(androidx.ui.core.IntPx, androidx.ui.core.IntPx minimumValue);
-    method public static inline androidx.ui.core.IntPx coerceAtMost(androidx.ui.core.IntPx, androidx.ui.core.IntPx maximumValue);
-    method public static inline androidx.ui.core.IntPx coerceIn(androidx.ui.core.IntPx, androidx.ui.core.IntPx minimumValue, androidx.ui.core.IntPx maximumValue);
-    method public static inline androidx.ui.core.IntPx getHeight(androidx.ui.core.IntPxBounds);
-    method public static inline androidx.ui.core.IntPx getIpx(int);
-    method public static inline androidx.ui.core.IntPx getWidth(androidx.ui.core.IntPxBounds);
-    method public static inline boolean isFinite(androidx.ui.core.IntPx);
-    method public static androidx.ui.core.IntPx lerp(androidx.ui.core.IntPx start, androidx.ui.core.IntPx stop, float fraction);
-    method public static androidx.ui.core.IntPxPosition lerp(androidx.ui.core.IntPxPosition start, androidx.ui.core.IntPxPosition stop, float fraction);
-    method public static inline androidx.ui.core.IntPx max(androidx.ui.core.IntPx a, androidx.ui.core.IntPx b);
-    method public static inline androidx.ui.core.IntPx min(androidx.ui.core.IntPx a, androidx.ui.core.IntPx b);
-    method public static inline androidx.ui.core.IntPx round(androidx.ui.core.Px);
-    method public static inline operator androidx.ui.core.IntPx times(float, androidx.ui.core.IntPx other);
-    method public static inline operator androidx.ui.core.IntPx times(double, androidx.ui.core.IntPx other);
-    method public static inline operator androidx.ui.core.IntPx times(int, androidx.ui.core.IntPx other);
-    method public static inline operator androidx.ui.core.IntPxSize times(int, androidx.ui.core.IntPxSize size);
-    method public static inline androidx.ui.core.Px toPx(androidx.ui.core.IntPx);
-    method public static inline androidx.ui.core.PxPosition toPxPosition(androidx.ui.core.IntPxPosition);
-    method public static inline androidx.ui.core.PxSize toPxSize(androidx.ui.core.IntPxSize);
-    method public static inline androidx.ui.core.IntPxSize toSize(androidx.ui.core.IntPxBounds);
-  }
-
-  public final class IntPxPosition {
-    method public androidx.ui.core.IntPxPosition copy(long value);
-    method public inline androidx.ui.core.IntPx getX();
-    method public inline androidx.ui.core.IntPx getY();
-    method public inline operator androidx.ui.core.IntPxPosition minus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.IntPxPosition plus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.IntPxPosition unaryMinus();
-    property public final inline androidx.ui.core.IntPx x;
-    property public final inline androidx.ui.core.IntPx y;
-    field public static final androidx.ui.core.IntPxPosition.Companion! Companion;
-  }
-
-  public static final class IntPxPosition.Companion {
-    method public androidx.ui.core.IntPxPosition getOrigin();
-    property public final androidx.ui.core.IntPxPosition Origin;
-  }
-
-  public final class IntPxSize {
-    method public androidx.ui.core.IntPxSize copy(long value);
-    method public inline operator androidx.ui.core.IntPxSize div(int other);
-    method public inline androidx.ui.core.IntPx getHeight();
-    method public inline androidx.ui.core.IntPx getWidth();
-    method public inline operator androidx.ui.core.IntPxSize times(int other);
-    property public final inline androidx.ui.core.IntPx height;
-    property public final inline androidx.ui.core.IntPx width;
+    ctor public HorizontalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> merger);
   }
 
   public interface IntrinsicMeasurable {
     method public Object? getParentData();
-    method public androidx.ui.core.IntPx maxIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(androidx.ui.core.IntPx height);
-    method public androidx.ui.core.IntPx minIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(androidx.ui.core.IntPx height);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(androidx.ui.unit.IntPx height);
+    method public androidx.ui.unit.IntPx minIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(androidx.ui.unit.IntPx height);
     property public abstract Object? parentData;
   }
 
@@ -500,23 +168,23 @@
   }
 
   public interface LayoutCoordinates {
-    method public androidx.ui.core.PxPosition childToLocal(androidx.ui.core.LayoutCoordinates child, androidx.ui.core.PxPosition childLocal);
+    method public androidx.ui.unit.PxPosition childToLocal(androidx.ui.core.LayoutCoordinates child, androidx.ui.unit.PxPosition childLocal);
     method public androidx.ui.core.LayoutCoordinates? getParentCoordinates();
-    method public androidx.ui.core.PxPosition getPosition();
-    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> getProvidedAlignmentLines();
-    method public androidx.ui.core.PxSize getSize();
-    method public androidx.ui.core.PxPosition globalToLocal(androidx.ui.core.PxPosition global);
-    method public androidx.ui.core.PxPosition localToGlobal(androidx.ui.core.PxPosition local);
-    method public androidx.ui.core.PxPosition localToRoot(androidx.ui.core.PxPosition local);
+    method public androidx.ui.unit.PxPosition getPosition();
+    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> getProvidedAlignmentLines();
+    method public androidx.ui.unit.PxSize getSize();
+    method public androidx.ui.unit.PxPosition globalToLocal(androidx.ui.unit.PxPosition global);
+    method public androidx.ui.unit.PxPosition localToGlobal(androidx.ui.unit.PxPosition local);
+    method public androidx.ui.unit.PxPosition localToRoot(androidx.ui.unit.PxPosition local);
     property public abstract androidx.ui.core.LayoutCoordinates? parentCoordinates;
-    property public abstract androidx.ui.core.PxPosition position;
-    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> providedAlignmentLines;
-    property public abstract androidx.ui.core.PxSize size;
+    property public abstract androidx.ui.unit.PxPosition position;
+    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> providedAlignmentLines;
+    property public abstract androidx.ui.unit.PxSize size;
   }
 
   public final class LayoutCoordinatesKt {
-    method public static inline androidx.ui.core.PxPosition getGlobalPosition(androidx.ui.core.LayoutCoordinates);
-    method public static inline androidx.ui.core.PxPosition getPositionInRoot(androidx.ui.core.LayoutCoordinates);
+    method public static inline androidx.ui.unit.PxPosition getGlobalPosition(androidx.ui.core.LayoutCoordinates);
+    method public static inline androidx.ui.unit.PxPosition getPositionInRoot(androidx.ui.core.LayoutCoordinates);
   }
 
   public enum LayoutDirection {
@@ -525,33 +193,33 @@
   }
 
   public interface LayoutModifier extends androidx.ui.core.Modifier.Element {
-    method public default androidx.ui.core.IntPx maxIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public default androidx.ui.core.IntPx maxIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public default androidx.ui.core.IntPx minIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public default androidx.ui.core.IntPx minIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public default androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public default androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
-    method public default androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public default androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public default androidx.ui.unit.IntPx maxIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public default androidx.ui.unit.IntPx maxIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public default androidx.ui.unit.IntPx minIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public default androidx.ui.unit.IntPx minIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public default androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public default androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
+    method public default androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public default androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
   }
 
   public interface Measurable extends androidx.ui.core.IntrinsicMeasurable {
     method public androidx.ui.core.Placeable measure(androidx.ui.core.Constraints constraints);
   }
 
-  public abstract class MeasureScope implements androidx.ui.core.DensityScope {
+  public abstract class MeasureScope implements androidx.ui.unit.DensityScope {
     ctor public MeasureScope();
-    method public final androidx.ui.core.MeasureScope.LayoutResult layout(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height, java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> alignmentLines = emptyMap(), kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable.PlacementScope,kotlin.Unit> placementBlock);
+    method public final androidx.ui.core.MeasureScope.LayoutResult layout(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height, java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> alignmentLines = emptyMap(), kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable.PlacementScope,kotlin.Unit> placementBlock);
   }
 
   public static interface MeasureScope.LayoutResult {
-    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> getAlignmentLines();
-    method public androidx.ui.core.IntPx getHeight();
-    method public androidx.ui.core.IntPx getWidth();
+    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> getAlignmentLines();
+    method public androidx.ui.unit.IntPx getHeight();
+    method public androidx.ui.unit.IntPx getWidth();
     method public void placeChildren(androidx.ui.core.Placeable.PlacementScope placementScope);
-    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> alignmentLines;
-    property public abstract androidx.ui.core.IntPx height;
-    property public abstract androidx.ui.core.IntPx width;
+    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> alignmentLines;
+    property public abstract androidx.ui.unit.IntPx height;
+    property public abstract androidx.ui.unit.IntPx width;
   }
 
   public final class MeasureScopeKt {
@@ -576,27 +244,27 @@
   }
 
   public interface ParentDataModifier extends androidx.ui.core.Modifier.Element {
-    method public default Object? modifyParentData(androidx.ui.core.DensityScope, Object? parentData);
+    method public default Object? modifyParentData(androidx.ui.unit.DensityScope, Object? parentData);
   }
 
   public abstract class Placeable {
     ctor public Placeable();
-    method public abstract operator androidx.ui.core.IntPx? get(androidx.ui.core.AlignmentLine line);
-    method public final androidx.ui.core.IntPx getHeight();
-    method public abstract androidx.ui.core.IntPxSize getSize();
-    method public final androidx.ui.core.IntPx getWidth();
-    method protected abstract void performPlace(androidx.ui.core.IntPxPosition position);
-    property public final androidx.ui.core.IntPx height;
-    property public abstract androidx.ui.core.IntPxSize size;
-    property public final androidx.ui.core.IntPx width;
+    method public abstract operator androidx.ui.unit.IntPx? get(androidx.ui.core.AlignmentLine line);
+    method public final androidx.ui.unit.IntPx getHeight();
+    method public abstract androidx.ui.unit.IntPxSize getSize();
+    method public final androidx.ui.unit.IntPx getWidth();
+    method protected abstract void performPlace(androidx.ui.unit.IntPxPosition position);
+    property public final androidx.ui.unit.IntPx height;
+    property public abstract androidx.ui.unit.IntPxSize size;
+    property public final androidx.ui.unit.IntPx width;
     field public static final androidx.ui.core.Placeable.PlacementScope! PlacementScope;
   }
 
   public static final class Placeable.PlacementScope {
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.IntPxPosition position);
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.PxPosition position);
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.Px x, androidx.ui.core.Px y);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.IntPxPosition position);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.PxPosition position);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.Px x, androidx.ui.unit.Px y);
   }
 
   public enum PointerEventPass {
@@ -621,15 +289,15 @@
   }
 
   public final class PointerInputData {
-    ctor public PointerInputData(androidx.ui.core.Uptime? uptime, androidx.ui.core.PxPosition? position, boolean down);
+    ctor public PointerInputData(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     ctor public PointerInputData();
-    method public androidx.ui.core.Uptime? component1();
-    method public androidx.ui.core.PxPosition? component2();
+    method public androidx.ui.unit.Uptime? component1();
+    method public androidx.ui.unit.PxPosition? component2();
     method public boolean component3();
-    method public androidx.ui.core.PointerInputData copy(androidx.ui.core.Uptime? uptime, androidx.ui.core.PxPosition? position, boolean down);
+    method public androidx.ui.core.PointerInputData copy(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     method public boolean getDown();
-    method public androidx.ui.core.PxPosition? getPosition();
-    method public androidx.ui.core.Uptime? getUptime();
+    method public androidx.ui.unit.PxPosition? getPosition();
+    method public androidx.ui.unit.Uptime? getUptime();
   }
 
   public final class PointerInputKt {
@@ -639,622 +307,20 @@
     method public static boolean changedToUp(androidx.ui.core.PointerInputChange);
     method public static boolean changedToUpIgnoreConsumed(androidx.ui.core.PointerInputChange);
     method public static androidx.ui.core.PointerInputChange consumeDownChange(androidx.ui.core.PointerInputChange);
-    method public static androidx.ui.core.PointerInputChange consumePositionChange(androidx.ui.core.PointerInputChange, androidx.ui.core.Px consumedDx, androidx.ui.core.Px consumedDy);
-    method public static androidx.ui.core.PxPosition positionChange(androidx.ui.core.PointerInputChange);
-    method public static androidx.ui.core.PxPosition positionChangeIgnoreConsumed(androidx.ui.core.PointerInputChange);
+    method public static androidx.ui.core.PointerInputChange consumePositionChange(androidx.ui.core.PointerInputChange, androidx.ui.unit.Px consumedDx, androidx.ui.unit.Px consumedDy);
+    method public static androidx.ui.unit.PxPosition positionChange(androidx.ui.core.PointerInputChange);
+    method public static androidx.ui.unit.PxPosition positionChangeIgnoreConsumed(androidx.ui.core.PointerInputChange);
     method public static boolean positionChanged(androidx.ui.core.PointerInputChange);
     method public static boolean positionChangedIgnoreConsumed(androidx.ui.core.PointerInputChange);
   }
 
-  public final inline class Position {
-    ctor public Position();
-    method public static long constructor-impl(internal long value);
-    method public static boolean equals-impl(long p, Object? p1);
-    method public static boolean equals-impl0(long p1, long p2);
-    method public static androidx.ui.core.Dp getX-impl(long $this);
-    method public static androidx.ui.core.Dp getY-impl(long $this);
-    method public static int hashCode-impl(long p);
-    method public static inline operator long minus-JXBE4ew(long $this, long other);
-    method public static inline operator long plus-JXBE4ew(long $this, long other);
-    method public static String toString-impl(long $this);
-  }
-
-  public final class Px implements java.lang.Comparable<androidx.ui.core.Px> {
-    ctor public Px(float value);
-    method public operator int compareTo(androidx.ui.core.Px other);
-    method public inline operator int compareTo(androidx.ui.core.IntPx other);
-    method public float component1();
-    method public androidx.ui.core.Px copy(float value);
-    method public inline operator androidx.ui.core.Px div(float other);
-    method public inline operator androidx.ui.core.Px div(int other);
-    method public inline operator float div(androidx.ui.core.Px other);
-    method public inline operator float div-kVJEwbQ(float other);
-    method public float getValue();
-    method public inline operator androidx.ui.core.Px minus(androidx.ui.core.Px other);
-    method public inline operator androidx.ui.core.Px minus(androidx.ui.core.IntPx other);
-    method public inline operator androidx.ui.core.Px plus(androidx.ui.core.Px other);
-    method public inline operator androidx.ui.core.Px plus(androidx.ui.core.IntPx other);
-    method public inline operator androidx.ui.core.Px times(float other);
-    method public inline operator androidx.ui.core.Px times(int other);
-    method public inline operator float times(androidx.ui.core.Px other);
-    method public inline operator float times-kVJEwbQ(float other);
-    method public inline operator androidx.ui.core.Px unaryMinus();
-    field public static final androidx.ui.core.Px.Companion! Companion;
-  }
-
-  public static final class Px.Companion {
-    method public androidx.ui.core.Px getInfinity();
-    method public androidx.ui.core.Px getZero();
-    property public final androidx.ui.core.Px Infinity;
-    property public final androidx.ui.core.Px Zero;
-  }
-
-  public final class PxBounds {
-    ctor public PxBounds(androidx.ui.core.Px left, androidx.ui.core.Px top, androidx.ui.core.Px right, androidx.ui.core.Px bottom);
-    method public androidx.ui.core.Px component1();
-    method public androidx.ui.core.Px component2();
-    method public androidx.ui.core.Px component3();
-    method public androidx.ui.core.Px component4();
-    method public androidx.ui.core.PxBounds copy(androidx.ui.core.Px left, androidx.ui.core.Px top, androidx.ui.core.Px right, androidx.ui.core.Px bottom);
-    method public androidx.ui.core.Px getBottom();
-    method public androidx.ui.core.Px getLeft();
-    method public androidx.ui.core.Px getRight();
-    method public androidx.ui.core.Px getTop();
-  }
-
-  public final inline class PxCubed implements java.lang.Comparable<androidx.ui.core.PxCubed> {
-    ctor public PxCubed();
-    method public operator int compareTo-syUR1PY(float p);
-    method public static operator int compareTo-syUR1PY(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px div-kVJEwbQ(float $this, float other);
-    method public static inline operator float div-syUR1PY(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-syUR1PY(float $this, float dimension);
-    method public static inline operator float plus-syUR1PY(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final inline class PxInverse implements java.lang.Comparable<androidx.ui.core.PxInverse> {
-    ctor public PxInverse();
-    method public operator int compareTo-MXEAIGs(float p);
-    method public static operator int compareTo-MXEAIGs(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-MXEAIGs(float $this, float dimension);
-    method public static inline operator float plus-MXEAIGs(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px times-kVJEwbQ(float $this, float other);
-    method public static inline operator float times-syUR1PY(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final class PxKt {
-    method public static inline androidx.ui.core.PxPosition PxPosition(androidx.ui.core.Px x, androidx.ui.core.Px y);
-    method public static inline androidx.ui.core.PxSize PxSize(androidx.ui.core.Px width, androidx.ui.core.Px height);
-    method public static androidx.ui.core.PxPosition center(androidx.ui.core.PxSize);
-    method public static inline androidx.ui.core.Px coerceAtLeast(androidx.ui.core.Px, androidx.ui.core.Px minimumValue);
-    method public static inline androidx.ui.core.Px coerceAtMost(androidx.ui.core.Px, androidx.ui.core.Px maximumValue);
-    method public static inline androidx.ui.core.Px coerceIn(androidx.ui.core.Px, androidx.ui.core.Px minimumValue, androidx.ui.core.Px maximumValue);
-    method public static inline operator float div(float, androidx.ui.core.Px other);
-    method public static inline operator float div(double, androidx.ui.core.Px other);
-    method public static inline operator float div(int, androidx.ui.core.Px other);
-    method public static androidx.ui.core.Px getDistance(androidx.ui.core.PxPosition);
-    method public static inline androidx.ui.core.Px getHeight(androidx.ui.core.PxBounds);
-    method public static androidx.ui.core.Px! getMinDimension(androidx.ui.core.PxSize);
-    method public static inline androidx.ui.core.Px getPx(int);
-    method public static inline androidx.ui.core.Px getPx(double);
-    method public static inline androidx.ui.core.Px getPx(float);
-    method public static inline androidx.ui.core.Px getWidth(androidx.ui.core.PxBounds);
-    method public static androidx.ui.core.Px lerp(androidx.ui.core.Px start, androidx.ui.core.Px stop, float fraction);
-    method public static androidx.ui.core.PxPosition lerp(androidx.ui.core.PxPosition start, androidx.ui.core.PxPosition stop, float fraction);
-    method public static inline androidx.ui.core.Px max(androidx.ui.core.Px a, androidx.ui.core.Px b);
-    method public static inline androidx.ui.core.Px min(androidx.ui.core.Px a, androidx.ui.core.Px b);
-    method public static inline androidx.ui.core.IntPxPosition round(androidx.ui.core.PxPosition);
-    method public static inline operator androidx.ui.core.Px times(float, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px times(double, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px times(int, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.PxSize times(int, androidx.ui.core.PxSize size);
-    method public static inline operator androidx.ui.core.PxSize times(float, androidx.ui.core.PxSize size);
-    method public static inline operator androidx.ui.core.PxSize times(double, androidx.ui.core.PxSize size);
-    method public static androidx.ui.core.PxBounds toBounds(androidx.ui.core.PxSize);
-    method public static inline androidx.ui.engine.geometry.Offset toOffset(androidx.ui.core.PxPosition);
-    method public static androidx.ui.engine.geometry.Rect toRect(androidx.ui.core.PxBounds);
-    method public static androidx.ui.engine.geometry.Rect toRect(androidx.ui.core.PxSize);
-    method public static androidx.ui.core.PxSize toSize(androidx.ui.core.PxBounds);
-  }
-
-  public final class PxPosition {
-    method public androidx.ui.core.PxPosition copy(long value);
-    method public inline androidx.ui.core.Px getX();
-    method public inline androidx.ui.core.Px getY();
-    method public inline operator androidx.ui.core.PxPosition minus(androidx.ui.core.PxPosition other);
-    method public inline operator androidx.ui.core.PxPosition minus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.PxPosition plus(androidx.ui.core.PxPosition other);
-    method public inline operator androidx.ui.core.PxPosition plus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.PxPosition unaryMinus();
-    property public final inline androidx.ui.core.Px x;
-    property public final inline androidx.ui.core.Px y;
-    field public static final androidx.ui.core.PxPosition.Companion! Companion;
-  }
-
-  public static final class PxPosition.Companion {
-    method public androidx.ui.core.PxPosition getOrigin();
-    property public final androidx.ui.core.PxPosition Origin;
-  }
-
-  public final class PxSize {
-    method public androidx.ui.core.PxSize copy(long value);
-    method public inline operator androidx.ui.core.PxSize div(int other);
-    method public inline operator androidx.ui.core.PxSize div(float other);
-    method public inline operator androidx.ui.core.PxSize div(double other);
-    method public inline androidx.ui.core.Px getHeight();
-    method public inline androidx.ui.core.Px getWidth();
-    method public inline operator androidx.ui.core.PxSize times(int other);
-    method public inline operator androidx.ui.core.PxSize times(float other);
-    method public inline operator androidx.ui.core.PxSize times(double other);
-    property public final inline androidx.ui.core.Px height;
-    property public final inline androidx.ui.core.Px width;
-    field public static final androidx.ui.core.PxSize.Companion! Companion;
-  }
-
-  public static final class PxSize.Companion {
-    method public androidx.ui.core.PxSize getZero();
-    property public final androidx.ui.core.PxSize Zero;
-  }
-
-  public final inline class PxSquared implements java.lang.Comparable<androidx.ui.core.PxSquared> {
-    ctor public PxSquared();
-    method public operator int compareTo-kVJEwbQ(float p);
-    method public static operator int compareTo-kVJEwbQ(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator androidx.ui.core.Px div-impl(float $this, androidx.ui.core.Px other);
-    method public static inline operator float div-kVJEwbQ(float $this, float other);
-    method public static inline operator float div-syUR1PY(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-kVJEwbQ(float $this, float other);
-    method public static inline operator float plus-kVJEwbQ(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Px other);
-    method public static String toString-impl(float $this);
-  }
-
   public final class RectHelperKt {
-    method public static android.graphics.Rect toFrameworkRect(androidx.ui.engine.geometry.Rect);
-    method public static android.graphics.RectF toFrameworkRectF(androidx.ui.engine.geometry.Rect);
-  }
-
-  public final inline class Size {
-    ctor public Size();
-    method public static long constructor-impl(internal long value);
-    method public static inline operator long div-impl(long $this, int other);
-    method public static inline operator long div-impl(long $this, float other);
-    method public static inline operator long div-impl(long $this, double other);
-    method public static boolean equals-impl(long p, Object? p1);
-    method public static boolean equals-impl0(long p1, long p2);
-    method public static androidx.ui.core.Dp getHeight-impl(long $this);
-    method public static androidx.ui.core.Dp getWidth-impl(long $this);
-    method public static int hashCode-impl(long p);
-    method public static inline operator long times-impl(long $this, int other);
-    method public static inline operator long times-impl(long $this, float other);
-    method public static inline operator long times-impl(long $this, double other);
-    method public static String toString-impl(long $this);
-  }
-
-  public final class TextUnit {
-    ctor public TextUnit(long packedValue);
-    method public inline operator int compareTo(androidx.ui.core.TextUnit other);
-    method public long component1();
-    method public androidx.ui.core.TextUnit copy(long packedValue);
-    method public inline operator androidx.ui.core.TextUnit div(float other);
-    method public inline operator androidx.ui.core.TextUnit div(double other);
-    method public inline operator androidx.ui.core.TextUnit div(int other);
-    method public inline operator float div(androidx.ui.core.TextUnit other);
-    method public long getPackedValue();
-    method public androidx.ui.core.TextUnitType getType();
-    method public float getValue();
-    method public boolean isEm();
-    method public boolean isInherit();
-    method public boolean isSp();
-    method public inline operator androidx.ui.core.TextUnit minus(androidx.ui.core.TextUnit other);
-    method public inline operator androidx.ui.core.TextUnit plus(androidx.ui.core.TextUnit other);
-    method public inline operator androidx.ui.core.TextUnit times(float other);
-    method public inline operator androidx.ui.core.TextUnit times(double other);
-    method public inline operator androidx.ui.core.TextUnit times(int other);
-    method public inline operator androidx.ui.core.TextUnit unaryMinus();
-    property public final boolean isEm;
-    property public final boolean isInherit;
-    property public final boolean isSp;
-    property public final androidx.ui.core.TextUnitType type;
-    property public final float value;
-    field public static final androidx.ui.core.TextUnit.Companion! Companion;
-  }
-
-  public static final class TextUnit.Companion {
-    method public androidx.ui.core.TextUnit Em(int value);
-    method public androidx.ui.core.TextUnit Em(float value);
-    method public androidx.ui.core.TextUnit Em(double value);
-    method public androidx.ui.core.TextUnit Sp(int value);
-    method public androidx.ui.core.TextUnit Sp(float value);
-    method public androidx.ui.core.TextUnit Sp(double value);
-    method public androidx.ui.core.TextUnit getInherit();
-    property public final androidx.ui.core.TextUnit Inherit;
-  }
-
-  public final class TextUnitKt {
-    method public static inline androidx.ui.core.TextUnit coerceAtLeast(androidx.ui.core.TextUnit, androidx.ui.core.TextUnit minimumValue);
-    method public static inline androidx.ui.core.TextUnit coerceAtMost(androidx.ui.core.TextUnit, androidx.ui.core.TextUnit maximumValue);
-    method public static inline androidx.ui.core.TextUnit coerceIn(androidx.ui.core.TextUnit, androidx.ui.core.TextUnit minimumValue, androidx.ui.core.TextUnit maximumValue);
-    method public static androidx.ui.core.TextUnit getEm(float);
-    method public static androidx.ui.core.TextUnit getEm(double);
-    method public static androidx.ui.core.TextUnit getEm(int);
-    method public static androidx.ui.core.TextUnit getSp(float);
-    method public static androidx.ui.core.TextUnit getSp(double);
-    method public static androidx.ui.core.TextUnit getSp(int);
-    method public static androidx.ui.core.TextUnit lerp(androidx.ui.core.TextUnit a, androidx.ui.core.TextUnit b, float t);
-    method public static inline androidx.ui.core.TextUnit max(androidx.ui.core.TextUnit a, androidx.ui.core.TextUnit b);
-    method public static inline androidx.ui.core.TextUnit min(androidx.ui.core.TextUnit a, androidx.ui.core.TextUnit b);
-    method public static inline operator androidx.ui.core.TextUnit times(float, androidx.ui.core.TextUnit other);
-    method public static inline operator androidx.ui.core.TextUnit times(double, androidx.ui.core.TextUnit other);
-    method public static inline operator androidx.ui.core.TextUnit times(int, androidx.ui.core.TextUnit other);
-  }
-
-  public enum TextUnitType {
-    enum_constant public static final androidx.ui.core.TextUnitType Em;
-    enum_constant public static final androidx.ui.core.TextUnitType Inherit;
-    enum_constant public static final androidx.ui.core.TextUnitType Sp;
-  }
-
-  public final class Uptime implements java.lang.Comparable<androidx.ui.core.Uptime> {
-    ctor public Uptime(long nanoseconds);
-    method public int compareTo(androidx.ui.core.Uptime other);
-    method public long component1();
-    method public androidx.ui.core.Uptime copy(long nanoseconds);
-    method public long getNanoseconds();
-    method public operator androidx.ui.core.Uptime minus(androidx.ui.core.Duration duration);
-    method public operator androidx.ui.core.Duration minus(androidx.ui.core.Uptime other);
-    method public operator androidx.ui.core.Uptime plus(androidx.ui.core.Duration duration);
-    field public static final androidx.ui.core.Uptime.Companion! Companion;
-  }
-
-  public static final class Uptime.Companion {
-    method public androidx.ui.core.Uptime getBoot();
-    property public final androidx.ui.core.Uptime Boot;
-  }
-
-  public final class UptimeKt {
-    method public static operator androidx.ui.core.Uptime plus(androidx.ui.core.Duration, androidx.ui.core.Uptime uptime);
-  }
-
-  public final class Velocity {
-    ctor public Velocity(androidx.ui.core.PxPosition pixelsPerSecond);
-    method public androidx.ui.core.PxPosition component1();
-    method public androidx.ui.core.Velocity copy(androidx.ui.core.PxPosition pixelsPerSecond);
-    method public androidx.ui.core.PxPosition getPixelsPerSecond();
-    method public operator androidx.ui.core.Velocity unaryMinus();
-    field public static final androidx.ui.core.Velocity.Companion! Companion;
-  }
-
-  public static final class Velocity.Companion {
-    method public androidx.ui.core.Velocity getZero();
-    property public final androidx.ui.core.Velocity Zero;
-  }
-
-  public final class VelocityKt {
-    method public static operator androidx.ui.core.Velocity minus(androidx.ui.core.Velocity, androidx.ui.core.Velocity other);
-    method public static operator androidx.ui.core.Velocity plus(androidx.ui.core.Velocity, androidx.ui.core.Velocity other);
+    method public static android.graphics.Rect toFrameworkRect(androidx.ui.geometry.Rect);
+    method public static android.graphics.RectF toFrameworkRectF(androidx.ui.geometry.Rect);
   }
 
   public final class VerticalAlignmentLine extends androidx.ui.core.AlignmentLine {
-    ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.core.IntPx,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> merger);
-  }
-
-}
-
-package androidx.ui.engine.geometry {
-
-  public final class Offset implements androidx.ui.engine.geometry.OffsetBase {
-    ctor public Offset(float dx, float dy);
-    method public infix androidx.ui.engine.geometry.Rect and(androidx.ui.engine.geometry.Size other);
-    method public float component1();
-    method public float component2();
-    method public androidx.ui.engine.geometry.Offset copy(float dx, float dy);
-    method public operator androidx.ui.engine.geometry.Offset div(float operand);
-    method public float getDirection();
-    method public float getDistance();
-    method public float getDistanceSquared();
-    method public float getDx();
-    method public float getDy();
-    method public operator androidx.ui.engine.geometry.Offset minus(androidx.ui.engine.geometry.Offset other);
-    method public operator androidx.ui.engine.geometry.Offset plus(androidx.ui.engine.geometry.Offset other);
-    method public operator androidx.ui.engine.geometry.Offset rem(float operand);
-    method public androidx.ui.engine.geometry.Offset scale(float scaleX, float scaleY);
-    method public operator androidx.ui.engine.geometry.Offset times(float operand);
-    method public androidx.ui.engine.geometry.Offset translate(float translateX, float translateY);
-    method public androidx.ui.engine.geometry.Offset truncDiv(float operand);
-    method public operator androidx.ui.engine.geometry.Offset unaryMinus();
-    field public static final androidx.ui.engine.geometry.Offset.Companion! Companion;
-  }
-
-  public static final class Offset.Companion {
-    method public androidx.ui.engine.geometry.Offset getInfinite();
-    method public androidx.ui.engine.geometry.Offset getZero();
-    method public boolean isValid(androidx.ui.engine.geometry.Offset offset);
-    method public androidx.ui.engine.geometry.Offset lerp(androidx.ui.engine.geometry.Offset start, androidx.ui.engine.geometry.Offset stop, float fraction);
-    property public final androidx.ui.engine.geometry.Offset infinite;
-    property public final androidx.ui.engine.geometry.Offset zero;
-  }
-
-  public interface OffsetBase {
-    method public float getDx();
-    method public float getDy();
-    method public default boolean isFinite();
-    method public default boolean isGreaterOrEqThan(androidx.ui.engine.geometry.OffsetBase other);
-    method public default boolean isGreaterThan(androidx.ui.engine.geometry.OffsetBase other);
-    method public default boolean isInfinite();
-    method public default boolean isLessOrEqThan(androidx.ui.engine.geometry.OffsetBase other);
-    method public default boolean isLessThan(androidx.ui.engine.geometry.OffsetBase other);
-    property public abstract float dx;
-    property public abstract float dy;
-  }
-
-  public final class OffsetKt {
-    method public static androidx.ui.core.PxPosition toPxPosition(androidx.ui.engine.geometry.Offset);
-  }
-
-  public abstract sealed class Outline {
-  }
-
-  public static final class Outline.Generic extends androidx.ui.engine.geometry.Outline {
-    ctor public Outline.Generic(androidx.ui.graphics.Path path);
-    method public androidx.ui.graphics.Path component1();
-    method public androidx.ui.engine.geometry.Outline.Generic copy(androidx.ui.graphics.Path path);
-    method public androidx.ui.graphics.Path getPath();
-  }
-
-  public static final class Outline.Rectangle extends androidx.ui.engine.geometry.Outline {
-    ctor public Outline.Rectangle(androidx.ui.engine.geometry.Rect rect);
-    method public androidx.ui.engine.geometry.Rect component1();
-    method public androidx.ui.engine.geometry.Outline.Rectangle copy(androidx.ui.engine.geometry.Rect rect);
-    method public androidx.ui.engine.geometry.Rect getRect();
-  }
-
-  public static final class Outline.Rounded extends androidx.ui.engine.geometry.Outline {
-    ctor public Outline.Rounded(androidx.ui.engine.geometry.RRect rrect);
-    method public androidx.ui.engine.geometry.RRect component1();
-    method public androidx.ui.engine.geometry.Outline.Rounded copy(androidx.ui.engine.geometry.RRect rrect);
-    method public androidx.ui.engine.geometry.RRect getRrect();
-  }
-
-  public final class OutlineKt {
-    method public static void addOutline(androidx.ui.graphics.Path, androidx.ui.engine.geometry.Outline outline);
-    method public static void drawOutline(androidx.ui.graphics.Canvas, androidx.ui.engine.geometry.Outline outline, androidx.ui.graphics.Paint paint);
-  }
-
-  public final class RRect {
-    ctor public RRect(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
-    method public float component1();
-    method public float component10();
-    method public float component11();
-    method public float component12();
-    method public float component2();
-    method public float component3();
-    method public float component4();
-    method public float component5();
-    method public float component6();
-    method public float component7();
-    method public float component8();
-    method public float component9();
-    method public boolean contains(androidx.ui.engine.geometry.Offset point);
-    method public androidx.ui.engine.geometry.RRect copy(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
-    method @Deprecated public androidx.ui.engine.geometry.RRect deflate(float delta);
-    method public float getBottom();
-    method public float getBottomLeftRadiusX();
-    method public float getBottomLeftRadiusY();
-    method public float getBottomRightRadiusX();
-    method public float getBottomRightRadiusY();
-    method public float getHeight();
-    method public float getLeft();
-    method public float getRight();
-    method public float getTop();
-    method public float getTopLeftRadiusX();
-    method public float getTopLeftRadiusY();
-    method public float getTopRightRadiusX();
-    method public float getTopRightRadiusY();
-    method public float getWidth();
-    method public static androidx.ui.engine.geometry.RRect getZero();
-    method @Deprecated public androidx.ui.engine.geometry.RRect inflate(float delta);
-    property public final float height;
-    property public final float width;
-    field public static final androidx.ui.engine.geometry.RRect.Companion! Companion;
-  }
-
-  public static final class RRect.Companion {
-    method public androidx.ui.engine.geometry.RRect getZero();
-    property public final androidx.ui.engine.geometry.RRect Zero;
-  }
-
-  public final class RRectKt {
-    method public static androidx.ui.engine.geometry.RRect RRect(float left, float top, float right, float bottom, float radiusX, float radiusY);
-    method public static androidx.ui.engine.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.engine.geometry.Radius radius);
-    method public static androidx.ui.engine.geometry.RRect RRect(androidx.ui.engine.geometry.Rect rect, float radiusX, float radiusY);
-    method public static androidx.ui.engine.geometry.RRect RRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.engine.geometry.Radius radius);
-    method public static androidx.ui.engine.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.engine.geometry.Radius topLeft = Radius.zero, androidx.ui.engine.geometry.Radius topRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomLeft = Radius.zero);
-    method public static androidx.ui.engine.geometry.RRect RRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.engine.geometry.Radius topLeft = Radius.zero, androidx.ui.engine.geometry.Radius topRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomLeft = Radius.zero);
-    method public static androidx.ui.engine.geometry.Radius bottomLeftRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Radius bottomRightRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Offset center(androidx.ui.engine.geometry.RRect);
-    method public static float getLongestSide(androidx.ui.engine.geometry.RRect);
-    method public static float getShortestSide(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect grow(androidx.ui.engine.geometry.RRect, float delta);
-    method public static boolean isCircle(androidx.ui.engine.geometry.RRect);
-    method public static boolean isEllipse(androidx.ui.engine.geometry.RRect);
-    method public static boolean isEmpty(androidx.ui.engine.geometry.RRect);
-    method public static boolean isFinite(androidx.ui.engine.geometry.RRect);
-    method public static boolean isRect(androidx.ui.engine.geometry.RRect);
-    method public static boolean isStadium(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect lerp(androidx.ui.engine.geometry.RRect start, androidx.ui.engine.geometry.RRect stop, float fraction);
-    method public static androidx.ui.engine.geometry.Rect middleRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Rect outerRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Rect safeInnerRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect shift(androidx.ui.engine.geometry.RRect, androidx.ui.engine.geometry.Offset offset);
-    method public static androidx.ui.engine.geometry.RRect shrink(androidx.ui.engine.geometry.RRect, float delta);
-    method public static androidx.ui.engine.geometry.Rect tallMiddleRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Radius topLeftRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Radius topRightRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Rect wideMiddleRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect withRadius(androidx.ui.engine.geometry.RRect, androidx.ui.engine.geometry.Radius radius);
-  }
-
-  public final class Radius {
-    ctor public Radius(float x, float y);
-    method public float component1();
-    method public float component2();
-    method public androidx.ui.engine.geometry.Radius copy(float x, float y);
-    method public operator androidx.ui.engine.geometry.Radius div(float operand);
-    method public float getX();
-    method public float getY();
-    method public operator androidx.ui.engine.geometry.Radius minus(androidx.ui.engine.geometry.Radius other);
-    method public operator androidx.ui.engine.geometry.Radius plus(androidx.ui.engine.geometry.Radius other);
-    method public operator androidx.ui.engine.geometry.Radius rem(float operand);
-    method public operator androidx.ui.engine.geometry.Radius times(float operand);
-    method public androidx.ui.engine.geometry.Radius truncDiv(float operand);
-    method public operator androidx.ui.engine.geometry.Radius unaryMinus();
-    field public static final androidx.ui.engine.geometry.Radius.Companion! Companion;
-  }
-
-  public static final class Radius.Companion {
-    method public androidx.ui.engine.geometry.Radius circular(float radius);
-    method public androidx.ui.engine.geometry.Radius elliptical(float x, float y);
-    method public androidx.ui.engine.geometry.Radius getZero();
-    property public final androidx.ui.engine.geometry.Radius zero;
-  }
-
-  public final class RadiusKt {
-    method public static androidx.ui.engine.geometry.Radius lerp(androidx.ui.engine.geometry.Radius start, androidx.ui.engine.geometry.Radius stop, float fraction);
-  }
-
-  public final class Rect {
-    ctor public Rect(float left, float top, float right, float bottom);
-    method public float component1();
-    method public float component2();
-    method public float component3();
-    method public float component4();
-    method public boolean contains(androidx.ui.engine.geometry.Offset offset);
-    method public androidx.ui.engine.geometry.Rect copy(float left, float top, float right, float bottom);
-    method public androidx.ui.engine.geometry.Rect deflate(float delta);
-    method public androidx.ui.engine.geometry.Rect expandToInclude(androidx.ui.engine.geometry.Rect other);
-    method public float getBottom();
-    method public androidx.ui.engine.geometry.Offset getBottomCenter();
-    method public androidx.ui.engine.geometry.Offset getBottomLeft();
-    method public androidx.ui.engine.geometry.Offset getBottomRight();
-    method public androidx.ui.engine.geometry.Offset getCenter();
-    method public androidx.ui.engine.geometry.Offset getCenterLeft();
-    method public androidx.ui.engine.geometry.Offset getCenterRight();
-    method public float getHeight();
-    method public float getLeft();
-    method public float getLongestSide();
-    method public float getRight();
-    method public float getShortestSide();
-    method public androidx.ui.engine.geometry.Size getSize();
-    method public float getTop();
-    method public androidx.ui.engine.geometry.Offset getTopCenter();
-    method public androidx.ui.engine.geometry.Offset getTopLeft();
-    method public androidx.ui.engine.geometry.Offset getTopRight();
-    method public float getWidth();
-    method public androidx.ui.engine.geometry.Rect inflate(float delta);
-    method public androidx.ui.engine.geometry.Rect intersect(androidx.ui.engine.geometry.Rect other);
-    method public boolean isEmpty();
-    method public boolean isFinite();
-    method public boolean isInfinite();
-    method public androidx.ui.engine.geometry.Rect join(androidx.ui.engine.geometry.Rect other);
-    method public boolean overlaps(androidx.ui.engine.geometry.Rect other);
-    method public androidx.ui.engine.geometry.Rect shift(androidx.ui.engine.geometry.Offset offset);
-    method public androidx.ui.engine.geometry.Rect translate(float translateX, float translateY);
-    property public final float height;
-    property public final float width;
-    field public static final androidx.ui.engine.geometry.Rect.Companion! Companion;
-  }
-
-  public static final class Rect.Companion {
-    method public androidx.ui.engine.geometry.Rect fromCircle(androidx.ui.engine.geometry.Offset center, float radius);
-    method public androidx.ui.engine.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
-    method public androidx.ui.engine.geometry.Rect fromLTWH(float left, float top, float width, float height);
-    method public androidx.ui.engine.geometry.Rect fromPoints(androidx.ui.engine.geometry.Offset a, androidx.ui.engine.geometry.Offset b);
-    method public androidx.ui.engine.geometry.Rect getLargest();
-    method public androidx.ui.engine.geometry.Rect getZero();
-    method public float get_giantScalar();
-    property public final float _giantScalar;
-    property public final androidx.ui.engine.geometry.Rect largest;
-    property public final androidx.ui.engine.geometry.Rect zero;
-  }
-
-  public final class RectKt {
-    method public static androidx.ui.engine.geometry.Rect lerp(androidx.ui.engine.geometry.Rect start, androidx.ui.engine.geometry.Rect stop, float fraction);
-  }
-
-  public interface Shape {
-    method public androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
-  }
-
-  public class Size implements androidx.ui.engine.geometry.OffsetBase {
-    ctor public Size(float width, float height);
-    method public final androidx.ui.engine.geometry.Offset bottomCenter(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset bottomLeft(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset bottomRight(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset center(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset centerLeft(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset centerRight(androidx.ui.engine.geometry.Offset origin);
-    method public final boolean contains(androidx.ui.engine.geometry.Offset offset);
-    method public final operator androidx.ui.engine.geometry.Size div(float operand);
-    method public float getDx();
-    method public float getDy();
-    method public final androidx.ui.engine.geometry.Size getFlipped();
-    method public final float getHeight();
-    method public final float getLongestSide();
-    method public final float getShortestSide();
-    method public final float getWidth();
-    method public final boolean isEmpty();
-    method public final operator androidx.ui.engine.geometry.Size minus(androidx.ui.engine.geometry.Offset other);
-    method public final operator androidx.ui.engine.geometry.Offset minus(androidx.ui.engine.geometry.Size other);
-    method public final operator androidx.ui.engine.geometry.Size plus(androidx.ui.engine.geometry.Offset other);
-    method public final operator androidx.ui.engine.geometry.Size rem(float operand);
-    method public final operator androidx.ui.engine.geometry.Size times(float operand);
-    method public final androidx.ui.engine.geometry.Offset topCenter(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset topLeft(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset topRight(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Size truncDiv(float operand);
-    property public float dx;
-    property public float dy;
-    field public static final androidx.ui.engine.geometry.Size.Companion! Companion;
-  }
-
-  public static final class Size.Companion {
-    method public androidx.ui.engine.geometry.Size copy(androidx.ui.engine.geometry.Size source);
-    method public androidx.ui.engine.geometry.Size fromHeight(float height);
-    method public androidx.ui.engine.geometry.Size fromRadius(float radius);
-    method public androidx.ui.engine.geometry.Size fromWidth(float width);
-    method public androidx.ui.engine.geometry.Size getInfinite();
-    method public androidx.ui.engine.geometry.Size getZero();
-    method public androidx.ui.engine.geometry.Size? lerp(androidx.ui.engine.geometry.Size start, androidx.ui.engine.geometry.Size stop, float fraction);
-    method public androidx.ui.engine.geometry.Size square(float dimension);
-    property public final androidx.ui.engine.geometry.Size infinite;
-    property public final androidx.ui.engine.geometry.Size zero;
+    ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> merger);
   }
 
 }
@@ -1285,7 +351,7 @@
 
   public final class AndroidCanvasKt {
     method public static androidx.ui.graphics.Canvas Canvas(androidx.ui.graphics.Image image);
-    method public static androidx.ui.graphics.Canvas Canvas(androidx.ui.graphics.PictureRecorder recorder, androidx.ui.engine.geometry.Rect cullRect = Rect.largest);
+    method public static androidx.ui.graphics.Canvas Canvas(androidx.ui.graphics.PictureRecorder recorder, androidx.ui.geometry.Rect cullRect = Rect.largest);
     method public static androidx.ui.graphics.Canvas Canvas(android.graphics.Canvas c);
   }
 
@@ -1339,42 +405,42 @@
   }
 
   public final class BrushKt {
-    method public static androidx.ui.graphics.LinearGradient HorizontalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.core.Px startX, androidx.ui.core.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.Brush HorizontalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.core.Px startX, androidx.ui.core.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient LinearGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient LinearGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient HorizontalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.unit.Px startX, androidx.ui.unit.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.Brush HorizontalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.unit.Px startX, androidx.ui.unit.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient LinearGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.unit.Px startX, androidx.ui.unit.Px startY, androidx.ui.unit.Px endX, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient LinearGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.unit.Px startX, androidx.ui.unit.Px startY, androidx.ui.unit.Px endX, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
     method public static androidx.ui.graphics.RadialGradient RadialGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, float centerX, float centerY, float radius, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
     method public static androidx.ui.graphics.RadialGradient RadialGradient(java.util.List<androidx.ui.graphics.Color> colors, float centerX, float centerY, float radius, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient VerticalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.core.Px startY, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient VerticalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.core.Px startY, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient VerticalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.unit.Px startY, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient VerticalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.unit.Px startY, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
   }
 
   public interface Canvas {
     method public void clipPath(androidx.ui.graphics.Path path);
-    method public void clipRRect(androidx.ui.engine.geometry.RRect rrect);
-    method public void clipRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.graphics.ClipOp clipOp = androidx.ui.graphics.ClipOp.intersect);
+    method public void clipRRect(androidx.ui.geometry.RRect rrect);
+    method public void clipRect(androidx.ui.geometry.Rect rect, androidx.ui.graphics.ClipOp clipOp = androidx.ui.graphics.ClipOp.intersect);
     method public void concat(androidx.ui.vectormath64.Matrix4 matrix4);
-    method public void drawArc(androidx.ui.engine.geometry.Rect rect, float startAngle, float sweepAngle, boolean useCenter, androidx.ui.graphics.Paint paint);
-    method public default void drawArcRad(androidx.ui.engine.geometry.Rect rect, float startAngleRad, float sweepAngleRad, boolean useCenter, androidx.ui.graphics.Paint paint);
-    method public void drawCircle(androidx.ui.engine.geometry.Offset center, float radius, androidx.ui.graphics.Paint paint);
-    method public void drawDoubleRoundRect(androidx.ui.engine.geometry.RRect outer, androidx.ui.engine.geometry.RRect inner, androidx.ui.graphics.Paint paint);
-    method public void drawImage(androidx.ui.graphics.Image image, androidx.ui.engine.geometry.Offset topLeftOffset, androidx.ui.graphics.Paint paint);
-    method public void drawImageRect(androidx.ui.graphics.Image image, androidx.ui.engine.geometry.Rect src, androidx.ui.engine.geometry.Rect dst, androidx.ui.graphics.Paint paint);
-    method public void drawLine(androidx.ui.engine.geometry.Offset p1, androidx.ui.engine.geometry.Offset p2, androidx.ui.graphics.Paint paint);
-    method public void drawOval(androidx.ui.engine.geometry.Rect rect, androidx.ui.graphics.Paint paint);
+    method public void drawArc(androidx.ui.geometry.Rect rect, float startAngle, float sweepAngle, boolean useCenter, androidx.ui.graphics.Paint paint);
+    method public default void drawArcRad(androidx.ui.geometry.Rect rect, float startAngleRad, float sweepAngleRad, boolean useCenter, androidx.ui.graphics.Paint paint);
+    method public void drawCircle(androidx.ui.geometry.Offset center, float radius, androidx.ui.graphics.Paint paint);
+    method public void drawDoubleRoundRect(androidx.ui.geometry.RRect outer, androidx.ui.geometry.RRect inner, androidx.ui.graphics.Paint paint);
+    method public void drawImage(androidx.ui.graphics.Image image, androidx.ui.geometry.Offset topLeftOffset, androidx.ui.graphics.Paint paint);
+    method public void drawImageRect(androidx.ui.graphics.Image image, androidx.ui.geometry.Rect src, androidx.ui.geometry.Rect dst, androidx.ui.graphics.Paint paint);
+    method public void drawLine(androidx.ui.geometry.Offset p1, androidx.ui.geometry.Offset p2, androidx.ui.graphics.Paint paint);
+    method public void drawOval(androidx.ui.geometry.Rect rect, androidx.ui.graphics.Paint paint);
     method public void drawPath(androidx.ui.graphics.Path path, androidx.ui.graphics.Paint paint);
     method public void drawPicture(androidx.ui.graphics.Picture picture);
-    method public void drawPoints(androidx.ui.graphics.PointMode pointMode, java.util.List<androidx.ui.engine.geometry.Offset> points, androidx.ui.graphics.Paint paint);
-    method public void drawRRect(androidx.ui.engine.geometry.RRect rrect, androidx.ui.graphics.Paint paint);
+    method public void drawPoints(androidx.ui.graphics.PointMode pointMode, java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.Paint paint);
+    method public void drawRRect(androidx.ui.geometry.RRect rrect, androidx.ui.graphics.Paint paint);
     method public void drawRawPoints(androidx.ui.graphics.PointMode pointMode, float[] points, androidx.ui.graphics.Paint paint);
-    method public void drawRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.graphics.Paint paint);
+    method public void drawRect(androidx.ui.geometry.Rect rect, androidx.ui.graphics.Paint paint);
     method public void drawVertices(androidx.ui.Vertices vertices, androidx.ui.graphics.BlendMode blendMode, androidx.ui.graphics.Paint paint);
     method public android.graphics.Canvas getNativeCanvas();
     method public void restore();
     method public void rotate(float degrees);
     method public default void rotateRad(float radians);
     method public void save();
-    method public void saveLayer(androidx.ui.engine.geometry.Rect bounds, androidx.ui.graphics.Paint paint);
+    method public void saveLayer(androidx.ui.geometry.Rect bounds, androidx.ui.graphics.Paint paint);
     method public void scale(float sx, float sy = sx);
     method public void skew(float sx, float sy);
     method public default void skewRad(float sxRad, float syRad);
@@ -1384,7 +450,7 @@
 
   public final class CanvasKt {
     method public static inline void withSave(androidx.ui.graphics.Canvas, kotlin.jvm.functions.Function0<kotlin.Unit> block);
-    method public static inline void withSaveLayer(androidx.ui.graphics.Canvas, androidx.ui.engine.geometry.Rect bounds, androidx.ui.graphics.Paint paint, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+    method public static inline void withSaveLayer(androidx.ui.graphics.Canvas, androidx.ui.geometry.Rect bounds, androidx.ui.graphics.Paint paint, kotlin.jvm.functions.Function0<kotlin.Unit> block);
   }
 
   public enum ClipOp {
@@ -1468,7 +534,7 @@
     method public float component1();
     method public androidx.ui.graphics.FixedScale copy(float value);
     method public float getValue();
-    method public float scale(androidx.ui.core.PxSize srcSize, androidx.ui.core.PxSize dstSize);
+    method public float scale(androidx.ui.unit.PxSize srcSize, androidx.ui.unit.PxSize dstSize);
   }
 
   public interface Image {
@@ -1499,7 +565,7 @@
   }
 
   public final class LinearGradient extends androidx.ui.graphics.ShaderBrush {
-    method public androidx.ui.graphics.LinearGradient copy(java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? stops, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode);
+    method public androidx.ui.graphics.LinearGradient copy(java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? stops, androidx.ui.unit.Px startX, androidx.ui.unit.Px startY, androidx.ui.unit.Px endX, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode);
   }
 
   public final class MaskFilter {
@@ -1517,6 +583,35 @@
   public static final class MaskFilter.Companion {
   }
 
+  public abstract sealed class Outline {
+  }
+
+  public static final class Outline.Generic extends androidx.ui.graphics.Outline {
+    ctor public Outline.Generic(androidx.ui.graphics.Path path);
+    method public androidx.ui.graphics.Path component1();
+    method public androidx.ui.graphics.Outline.Generic copy(androidx.ui.graphics.Path path);
+    method public androidx.ui.graphics.Path getPath();
+  }
+
+  public static final class Outline.Rectangle extends androidx.ui.graphics.Outline {
+    ctor public Outline.Rectangle(androidx.ui.geometry.Rect rect);
+    method public androidx.ui.geometry.Rect component1();
+    method public androidx.ui.graphics.Outline.Rectangle copy(androidx.ui.geometry.Rect rect);
+    method public androidx.ui.geometry.Rect getRect();
+  }
+
+  public static final class Outline.Rounded extends androidx.ui.graphics.Outline {
+    ctor public Outline.Rounded(androidx.ui.geometry.RRect rrect);
+    method public androidx.ui.geometry.RRect component1();
+    method public androidx.ui.graphics.Outline.Rounded copy(androidx.ui.geometry.RRect rrect);
+    method public androidx.ui.geometry.RRect getRrect();
+  }
+
+  public final class OutlineKt {
+    method public static void addOutline(androidx.ui.graphics.Path, androidx.ui.graphics.Outline outline);
+    method public static void drawOutline(androidx.ui.graphics.Canvas, androidx.ui.graphics.Outline outline, androidx.ui.graphics.Paint paint);
+  }
+
   public final class Paint {
     ctor public Paint();
     method public android.graphics.Paint asFrameworkPaint();
@@ -1570,22 +665,22 @@
     ctor public Path(android.graphics.Path internalPath);
     ctor public Path();
     method public void _addRect(float left, float top, float right, float bottom);
-    method public void addArc(androidx.ui.engine.geometry.Rect oval, float startAngleDegrees, float sweepAngleDegrees);
-    method public void addArcRad(androidx.ui.engine.geometry.Rect oval, float startAngleRadians, float sweepAngleRadians);
-    method public void addOval(androidx.ui.engine.geometry.Rect oval);
-    method public void addPath(androidx.ui.graphics.Path path, androidx.ui.engine.geometry.Offset offset = Offset.zero, androidx.ui.vectormath64.Matrix4? matrix = null);
-    method public void addPolygon(java.util.List<androidx.ui.engine.geometry.Offset> points, boolean close);
-    method public void addRRect(androidx.ui.engine.geometry.RRect rrect);
-    method public void addRect(androidx.ui.engine.geometry.Rect rect);
-    method public void arcTo(androidx.ui.engine.geometry.Rect rect, float startAngleDegrees, float sweepAngleDegrees, boolean forceMoveTo);
-    method public void arcToPoint(androidx.ui.engine.geometry.Offset arcEnd, androidx.ui.engine.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
-    method public void arcToRad(androidx.ui.engine.geometry.Rect rect, float startAngleRadians, float sweepAngleRadians, boolean forceMoveTo);
+    method public void addArc(androidx.ui.geometry.Rect oval, float startAngleDegrees, float sweepAngleDegrees);
+    method public void addArcRad(androidx.ui.geometry.Rect oval, float startAngleRadians, float sweepAngleRadians);
+    method public void addOval(androidx.ui.geometry.Rect oval);
+    method public void addPath(androidx.ui.graphics.Path path, androidx.ui.geometry.Offset offset = Offset.zero, androidx.ui.vectormath64.Matrix4? matrix = null);
+    method public void addPolygon(java.util.List<androidx.ui.geometry.Offset> points, boolean close);
+    method public void addRRect(androidx.ui.geometry.RRect rrect);
+    method public void addRect(androidx.ui.geometry.Rect rect);
+    method public void arcTo(androidx.ui.geometry.Rect rect, float startAngleDegrees, float sweepAngleDegrees, boolean forceMoveTo);
+    method public void arcToPoint(androidx.ui.geometry.Offset arcEnd, androidx.ui.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
+    method public void arcToRad(androidx.ui.geometry.Rect rect, float startAngleRadians, float sweepAngleRadians, boolean forceMoveTo);
     method public void close();
     method public void conicTo(float x1, float y1, float x2, float y2, float w);
-    method public boolean contains(androidx.ui.engine.geometry.Offset offset);
+    method public boolean contains(androidx.ui.geometry.Offset offset);
     method public void cubicTo(float x1, float y1, float x2, float y2, float x3, float y3);
-    method public void extendWithPath(androidx.ui.graphics.Path path, androidx.ui.engine.geometry.Offset offset, androidx.ui.vectormath64.Matrix4 matrix);
-    method public androidx.ui.engine.geometry.Rect getBounds();
+    method public void extendWithPath(androidx.ui.graphics.Path path, androidx.ui.geometry.Offset offset, androidx.ui.vectormath64.Matrix4 matrix);
+    method public androidx.ui.geometry.Rect getBounds();
     method public androidx.ui.graphics.PathFillType getFillType();
     method public boolean isConvex();
     method public boolean isEmpty();
@@ -1593,7 +688,7 @@
     method public void moveTo(float dx, float dy);
     method public boolean op(androidx.ui.graphics.Path path1, androidx.ui.graphics.Path path2, androidx.ui.graphics.PathOperation operation);
     method public void quadraticBezierTo(float x1, float y1, float x2, float y2);
-    method public void relativeArcToPoint(androidx.ui.engine.geometry.Offset arcEndDelta, androidx.ui.engine.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
+    method public void relativeArcToPoint(androidx.ui.geometry.Offset arcEndDelta, androidx.ui.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
     method public void relativeConicTo(float x1, float y1, float x2, float y2, float w);
     method public void relativeCubicTo(float x1, float y1, float x2, float y2, float x3, float y3);
     method public void relativeLineTo(float dx, float dy);
@@ -1601,7 +696,7 @@
     method public void relativeQuadraticBezierTo(float x1, float y1, float x2, float y2);
     method public void reset();
     method public void setFillType(androidx.ui.graphics.PathFillType value);
-    method public void shift(androidx.ui.engine.geometry.Offset offset);
+    method public void shift(androidx.ui.geometry.Offset offset);
     method public android.graphics.Path toFrameworkPath();
     method public androidx.ui.graphics.Path transform(androidx.ui.vectormath64.Matrix4 matrix);
     property public final boolean isConvex;
@@ -1628,7 +723,7 @@
 
   public final class Picture {
     ctor public Picture(android.graphics.Picture frameworkPicture);
-    method public androidx.ui.engine.geometry.Rect cullRect();
+    method public androidx.ui.geometry.Rect cullRect();
     method public void dispose();
     method public android.graphics.Picture getFrameworkPicture();
   }
@@ -1651,7 +746,7 @@
   }
 
   public interface ScaleFit {
-    method public float scale(androidx.ui.core.PxSize srcSize, androidx.ui.core.PxSize dstSize);
+    method public float scale(androidx.ui.unit.PxSize srcSize, androidx.ui.unit.PxSize dstSize);
     field public static final androidx.ui.graphics.ScaleFit.Companion! Companion;
   }
 
@@ -1686,26 +781,30 @@
 
   public final class ShaderKt {
     method public static androidx.ui.graphics.Shader ImageShader(androidx.ui.graphics.Image image, androidx.ui.graphics.TileMode tileModeX = androidx.ui.graphics.TileMode.Clamp, androidx.ui.graphics.TileMode tileModeY = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.Shader LinearGradientShader(androidx.ui.engine.geometry.Offset from, androidx.ui.engine.geometry.Offset to, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.Shader RadialGradientShader(androidx.ui.engine.geometry.Offset center, float radius, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.Shader LinearGradientShader(androidx.ui.geometry.Offset from, androidx.ui.geometry.Offset to, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.Shader RadialGradientShader(androidx.ui.geometry.Offset center, float radius, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
   }
 
   public final class Shadow {
-    ctor public Shadow(androidx.ui.graphics.Color color, androidx.ui.engine.geometry.Offset offset, androidx.ui.core.Px blurRadius);
+    ctor public Shadow(androidx.ui.graphics.Color color, androidx.ui.geometry.Offset offset, androidx.ui.unit.Px blurRadius);
     ctor public Shadow();
     method public androidx.ui.graphics.Color component1();
-    method public androidx.ui.engine.geometry.Offset component2();
-    method public androidx.ui.core.Px component3();
-    method public androidx.ui.graphics.Shadow copy(androidx.ui.graphics.Color color, androidx.ui.engine.geometry.Offset offset, androidx.ui.core.Px blurRadius);
-    method public androidx.ui.core.Px getBlurRadius();
+    method public androidx.ui.geometry.Offset component2();
+    method public androidx.ui.unit.Px component3();
+    method public androidx.ui.graphics.Shadow copy(androidx.ui.graphics.Color color, androidx.ui.geometry.Offset offset, androidx.ui.unit.Px blurRadius);
+    method public androidx.ui.unit.Px getBlurRadius();
     method public androidx.ui.graphics.Color getColor();
-    method public androidx.ui.engine.geometry.Offset getOffset();
+    method public androidx.ui.geometry.Offset getOffset();
   }
 
   public final class ShadowKt {
     method public static androidx.ui.graphics.Shadow lerp(androidx.ui.graphics.Shadow start, androidx.ui.graphics.Shadow stop, float fraction);
   }
 
+  public interface Shape {
+    method public androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
+  }
+
   public final class SolidColor implements androidx.ui.graphics.Brush {
     ctor public SolidColor(androidx.ui.graphics.Color value);
     method public void applyTo(androidx.ui.graphics.Paint p);
@@ -2203,85 +1302,16 @@
 
   public final class PointerInputTestUtilKt {
     method public static androidx.ui.core.PointerInputChange consume(androidx.ui.core.PointerInputChange, float dx = 0f, float dy = 0f, boolean downChange = false);
-    method public static androidx.ui.core.PointerInputChange down(int id = 0, androidx.ui.core.Duration duration = Duration.Zero, float x = 0f, float y = 0f);
-    method public static androidx.ui.core.PointerInputChange invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChanges, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass![] pointerEventPasses, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, java.util.List<androidx.ui.core.PointerInputChange> pointerInputChanges, java.util.List<? extends androidx.ui.core.PointerEventPass> pointerEventPasses, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static androidx.ui.core.PointerInputChange moveBy(androidx.ui.core.PointerInputChange, androidx.ui.core.Duration duration, float dx = 0f, float dy = 0f);
-    method public static androidx.ui.core.PointerInputChange moveTo(androidx.ui.core.PointerInputChange, androidx.ui.core.Duration duration, float x = 0f, float y = 0f);
-    method public static androidx.ui.core.PointerInputChange up(androidx.ui.core.PointerInputChange, androidx.ui.core.Duration duration);
-  }
-
-}
-
-package androidx.ui.util {
-
-  public final class Float16 implements java.lang.Comparable<androidx.ui.util.Float16> {
-    ctor public Float16(short halfValue);
-    ctor public Float16(float value);
-    ctor public Float16(double value);
-    method public androidx.ui.util.Float16 absoluteValue();
-    method public androidx.ui.util.Float16 ceil();
-    method public operator int compareTo(androidx.ui.util.Float16 other);
-    method public androidx.ui.util.Float16 floor();
-    method public int getExponent();
-    method public short getHalfValue();
-    method public androidx.ui.util.Float16 getSign();
-    method public int getSignificand();
-    method public boolean isFinite();
-    method public boolean isInfinite();
-    method public boolean isNaN();
-    method public boolean isNormalized();
-    method public androidx.ui.util.Float16 round();
-    method public int toBits();
-    method public byte toByte();
-    method public double toDouble();
-    method public float toFloat();
-    method public String toHexString();
-    method public int toInt();
-    method public long toLong();
-    method public int toRawBits();
-    method public short toShort();
-    method public androidx.ui.util.Float16 trunc();
-    method public androidx.ui.util.Float16 withSign(androidx.ui.util.Float16 sign);
-    property public final int exponent;
-    property public final androidx.ui.util.Float16 sign;
-    property public final int significand;
-    field public static final androidx.ui.util.Float16.Companion! Companion;
-    field public static final int MaxExponent = 15; // 0xf
-    field public static final int MinExponent = -14; // 0xfffffff2
-    field public static final int Size = 16; // 0x10
-  }
-
-  public static final class Float16.Companion {
-    method public androidx.ui.util.Float16 getEpsilon();
-    method public androidx.ui.util.Float16 getLowestValue();
-    method public androidx.ui.util.Float16 getMaxValue();
-    method public androidx.ui.util.Float16 getMinNormal();
-    method public androidx.ui.util.Float16 getMinValue();
-    method public androidx.ui.util.Float16 getNaN();
-    method public androidx.ui.util.Float16 getNegativeInfinity();
-    method public androidx.ui.util.Float16 getNegativeZero();
-    method public androidx.ui.util.Float16 getPositiveInfinity();
-    method public androidx.ui.util.Float16 getPositiveZero();
-    property public final androidx.ui.util.Float16 Epsilon;
-    property public final androidx.ui.util.Float16 LowestValue;
-    property public final androidx.ui.util.Float16 MaxValue;
-    property public final androidx.ui.util.Float16 MinNormal;
-    property public final androidx.ui.util.Float16 MinValue;
-    property public final androidx.ui.util.Float16 NaN;
-    property public final androidx.ui.util.Float16 NegativeInfinity;
-    property public final androidx.ui.util.Float16 NegativeZero;
-    property public final androidx.ui.util.Float16 PositiveInfinity;
-    property public final androidx.ui.util.Float16 PositiveZero;
-  }
-
-  public final class Float16Kt {
-    method public static androidx.ui.util.Float16 max(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
-    method public static androidx.ui.util.Float16 min(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
+    method public static androidx.ui.core.PointerInputChange down(int id = 0, androidx.ui.unit.Duration duration = Duration.Zero, float x = 0f, float y = 0f);
+    method public static androidx.ui.core.PointerInputChange invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChanges, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass![] pointerEventPasses, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, java.util.List<androidx.ui.core.PointerInputChange> pointerInputChanges, java.util.List<? extends androidx.ui.core.PointerEventPass> pointerEventPasses, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static androidx.ui.core.PointerInputChange moveBy(androidx.ui.core.PointerInputChange, androidx.ui.unit.Duration duration, float dx = 0f, float dy = 0f);
+    method public static androidx.ui.core.PointerInputChange moveTo(androidx.ui.core.PointerInputChange, androidx.ui.unit.Duration duration, float x = 0f, float y = 0f);
+    method public static androidx.ui.core.PointerInputChange up(androidx.ui.core.PointerInputChange, androidx.ui.unit.Duration duration);
   }
 
 }
@@ -2418,12 +1448,12 @@
 
   public final class Matrix4Kt {
     method public static Float? getAsScale(androidx.ui.vectormath64.Matrix4);
-    method public static androidx.ui.engine.geometry.Offset? getAsTranslation(androidx.ui.vectormath64.Matrix4);
-    method public static androidx.ui.engine.geometry.Rect inverseTransformRect(androidx.ui.vectormath64.Matrix4 transform, androidx.ui.engine.geometry.Rect rect);
+    method public static androidx.ui.geometry.Offset? getAsTranslation(androidx.ui.vectormath64.Matrix4);
+    method public static androidx.ui.geometry.Rect inverseTransformRect(androidx.ui.vectormath64.Matrix4 transform, androidx.ui.geometry.Rect rect);
     method public static boolean isIdentity(androidx.ui.vectormath64.Matrix4);
     method public static boolean matrixEquals(androidx.ui.vectormath64.Matrix4? a, androidx.ui.vectormath64.Matrix4? b);
-    method public static androidx.ui.engine.geometry.Offset transformPoint(androidx.ui.vectormath64.Matrix4, androidx.ui.engine.geometry.Offset point);
-    method public static androidx.ui.engine.geometry.Rect transformRect(androidx.ui.vectormath64.Matrix4, androidx.ui.engine.geometry.Rect rect);
+    method public static androidx.ui.geometry.Offset transformPoint(androidx.ui.vectormath64.Matrix4, androidx.ui.geometry.Offset point);
+    method public static androidx.ui.geometry.Rect transformRect(androidx.ui.vectormath64.Matrix4, androidx.ui.geometry.Rect rect);
   }
 
   public enum MatrixColumn {
diff --git a/ui/ui-core/api/restricted_current.txt b/ui/ui-core/api/restricted_current.txt
index 0260cd9..ebcf997 100644
--- a/ui/ui-core/api/restricted_current.txt
+++ b/ui/ui-core/api/restricted_current.txt
@@ -1,14 +1,6 @@
 // Signature format: 3.0
 package androidx.ui {
 
-  public final class MathHelpersKt {
-    method public static float lerp(float start, float stop, float fraction);
-    method public static int lerp(int start, int stop, float fraction);
-    method public static long lerp(long start, long stop, float fraction);
-    method public static String toHexString(int);
-    method public static String toStringAsFixed(float, int digits);
-  }
-
   public enum VertexMode {
     method public final android.graphics.Canvas.VertexMode toFrameworkVertexMode();
     enum_constant public static final androidx.ui.VertexMode triangleFan;
@@ -17,7 +9,7 @@
   }
 
   public final class Vertices {
-    ctor public Vertices(androidx.ui.VertexMode vertexMode, java.util.List<androidx.ui.engine.geometry.Offset> positions, java.util.List<androidx.ui.engine.geometry.Offset> textureCoordinates, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Integer> indices);
+    ctor public Vertices(androidx.ui.VertexMode vertexMode, java.util.List<androidx.ui.geometry.Offset> positions, java.util.List<androidx.ui.geometry.Offset> textureCoordinates, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Integer> indices);
     method public int[] getColors();
     method public short[] getIndices();
     method public float[] getPositions();
@@ -70,7 +62,7 @@
 package androidx.ui.core {
 
   public enum Alignment {
-    method public final androidx.ui.core.IntPxPosition align(androidx.ui.core.IntPxSize size);
+    method public final androidx.ui.unit.IntPxPosition align(androidx.ui.unit.IntPxSize size);
     enum_constant public static final androidx.ui.core.Alignment BottomCenter;
     enum_constant public static final androidx.ui.core.Alignment BottomLeft;
     enum_constant public static final androidx.ui.core.Alignment BottomRight;
@@ -87,45 +79,32 @@
   }
 
   public final class AlignmentLineKt {
-    method public static androidx.ui.core.IntPx merge(androidx.ui.core.AlignmentLine, androidx.ui.core.IntPx position1, androidx.ui.core.IntPx position2);
-  }
-
-  public final class Bounds {
-    ctor public Bounds(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.core.Bounds copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp getBottom();
-    method public androidx.ui.core.Dp getLeft();
-    method public androidx.ui.core.Dp getRight();
-    method public androidx.ui.core.Dp getTop();
+    method public static androidx.ui.unit.IntPx merge(androidx.ui.core.AlignmentLine, androidx.ui.unit.IntPx position1, androidx.ui.unit.IntPx position2);
   }
 
   public final class Constraints {
-    ctor public Constraints(androidx.ui.core.IntPx minWidth, androidx.ui.core.IntPx maxWidth, androidx.ui.core.IntPx minHeight, androidx.ui.core.IntPx maxHeight);
+    ctor public Constraints(androidx.ui.unit.IntPx minWidth, androidx.ui.unit.IntPx maxWidth, androidx.ui.unit.IntPx minHeight, androidx.ui.unit.IntPx maxHeight);
     ctor public Constraints();
-    method public androidx.ui.core.IntPx component1();
-    method public androidx.ui.core.IntPx component2();
-    method public androidx.ui.core.IntPx component3();
-    method public androidx.ui.core.IntPx component4();
-    method public androidx.ui.core.Constraints copy(androidx.ui.core.IntPx minWidth, androidx.ui.core.IntPx maxWidth, androidx.ui.core.IntPx minHeight, androidx.ui.core.IntPx maxHeight);
-    method public androidx.ui.core.IntPx getMaxHeight();
-    method public androidx.ui.core.IntPx getMaxWidth();
-    method public androidx.ui.core.IntPx getMinHeight();
-    method public androidx.ui.core.IntPx getMinWidth();
+    method public androidx.ui.unit.IntPx component1();
+    method public androidx.ui.unit.IntPx component2();
+    method public androidx.ui.unit.IntPx component3();
+    method public androidx.ui.unit.IntPx component4();
+    method public androidx.ui.core.Constraints copy(androidx.ui.unit.IntPx minWidth, androidx.ui.unit.IntPx maxWidth, androidx.ui.unit.IntPx minHeight, androidx.ui.unit.IntPx maxHeight);
+    method public androidx.ui.unit.IntPx getMaxHeight();
+    method public androidx.ui.unit.IntPx getMaxWidth();
+    method public androidx.ui.unit.IntPx getMinHeight();
+    method public androidx.ui.unit.IntPx getMinWidth();
     field public static final androidx.ui.core.Constraints.Companion! Companion;
   }
 
   public static final class Constraints.Companion {
-    method public androidx.ui.core.Constraints tightConstraints(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height);
-    method public androidx.ui.core.Constraints tightConstraintsForHeight(androidx.ui.core.IntPx height);
-    method public androidx.ui.core.Constraints tightConstraintsForWidth(androidx.ui.core.IntPx width);
+    method public androidx.ui.core.Constraints tightConstraints(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height);
+    method public androidx.ui.core.Constraints tightConstraintsForHeight(androidx.ui.unit.IntPx height);
+    method public androidx.ui.core.Constraints tightConstraintsForWidth(androidx.ui.unit.IntPx width);
   }
 
   public final class ConstraintsKt {
-    method public static androidx.ui.core.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.core.IntPxSize size);
+    method public static androidx.ui.unit.IntPxSize constrain(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
     method public static androidx.ui.core.Constraints enforce(androidx.ui.core.Constraints, androidx.ui.core.Constraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.core.Constraints);
     method public static boolean getHasBoundedWidth(androidx.ui.core.Constraints);
@@ -135,57 +114,21 @@
     method public static boolean isZero(androidx.ui.core.Constraints);
     method public static androidx.ui.core.Constraints looseMax(androidx.ui.core.Constraints);
     method public static androidx.ui.core.Constraints looseMin(androidx.ui.core.Constraints);
-    method public static androidx.ui.core.Constraints offset(androidx.ui.core.Constraints, androidx.ui.core.IntPx horizontal = 0.ipx, androidx.ui.core.IntPx vertical = 0.ipx);
-    method public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.core.IntPxSize size);
+    method public static androidx.ui.core.Constraints offset(androidx.ui.core.Constraints, androidx.ui.unit.IntPx horizontal = 0.ipx, androidx.ui.unit.IntPx vertical = 0.ipx);
+    method public static boolean satisfiedBy(androidx.ui.core.Constraints, androidx.ui.unit.IntPxSize size);
     method public static androidx.ui.core.Constraints tightMax(androidx.ui.core.Constraints);
     method public static androidx.ui.core.Constraints tightMin(androidx.ui.core.Constraints);
-    method public static androidx.ui.core.Constraints withTight(androidx.ui.core.Constraints, androidx.ui.core.IntPx? width = null, androidx.ui.core.IntPx? height = null);
+    method public static androidx.ui.core.Constraints withTight(androidx.ui.core.Constraints, androidx.ui.unit.IntPx? width = null, androidx.ui.unit.IntPx? height = null);
   }
 
   public final class ConsumedData {
-    ctor public ConsumedData(androidx.ui.core.PxPosition positionChange, boolean downChange);
+    ctor public ConsumedData(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     ctor public ConsumedData();
-    method public androidx.ui.core.PxPosition component1();
+    method public androidx.ui.unit.PxPosition component1();
     method public boolean component2();
-    method public androidx.ui.core.ConsumedData copy(androidx.ui.core.PxPosition positionChange, boolean downChange);
+    method public androidx.ui.core.ConsumedData copy(androidx.ui.unit.PxPosition positionChange, boolean downChange);
     method public boolean getDownChange();
-    method public androidx.ui.core.PxPosition getPositionChange();
-  }
-
-  public final class Density {
-    ctor public Density(float density, float fontScale);
-    method public float component1();
-    method public float component2();
-    method public androidx.ui.core.Density copy(float density, float fontScale);
-    method public float getDensity();
-    method public float getFontScale();
-  }
-
-  public final class DensityKt {
-    method public static androidx.ui.core.Density Density(android.content.Context context);
-    method public static androidx.ui.core.DensityScope DensityScope(androidx.ui.core.Density density);
-    method public static inline <R> R! withDensity(androidx.ui.core.Density density, kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,? extends R> block);
-  }
-
-  public interface DensityScope {
-    method public androidx.ui.core.Density getDensity();
-    method public default androidx.ui.core.Dp toDp(androidx.ui.core.TextUnit);
-    method public default androidx.ui.core.Dp toDp(androidx.ui.core.Px);
-    method public default androidx.ui.core.Dp toDp(androidx.ui.core.IntPx);
-    method public default androidx.ui.core.Dp toDp(float);
-    method public default androidx.ui.core.Dp toDp(int);
-    method public default androidx.ui.core.IntPx toIntPx(androidx.ui.core.Dp);
-    method public default androidx.ui.core.IntPx toIntPx(androidx.ui.core.TextUnit);
-    method public default androidx.ui.core.Px toPx(androidx.ui.core.Dp);
-    method public default androidx.ui.core.Px toPx(androidx.ui.core.TextUnit);
-    method public default androidx.ui.core.PxSize toPx-s2Mz6-8(long);
-    method public default androidx.ui.engine.geometry.Rect toRect(androidx.ui.core.Bounds);
-    method public default androidx.ui.core.TextUnit toSp(androidx.ui.core.Dp);
-    method public default androidx.ui.core.TextUnit toSp(androidx.ui.core.Px);
-    method public default androidx.ui.core.TextUnit toSp(androidx.ui.core.IntPx);
-    method public default androidx.ui.core.TextUnit toSp(float);
-    method public default androidx.ui.core.TextUnit toSp(int);
-    property public abstract androidx.ui.core.Density density;
+    method public androidx.ui.unit.PxPosition getPositionChange();
   }
 
   public enum Direction {
@@ -195,304 +138,29 @@
     enum_constant public static final androidx.ui.core.Direction UP;
   }
 
-  public final class Dp implements java.lang.Comparable<androidx.ui.core.Dp> {
-    ctor public Dp(float value);
-    method public operator int compareTo(androidx.ui.core.Dp other);
-    method public float component1();
-    method public androidx.ui.core.Dp copy(float value);
-    method public inline operator androidx.ui.core.Dp div(float other);
-    method public inline operator androidx.ui.core.Dp div(int other);
-    method public inline operator float div(androidx.ui.core.Dp other);
-    method public inline operator float div-KkBJKWw(float other);
-    method public float getValue();
-    method public inline operator androidx.ui.core.Dp minus(androidx.ui.core.Dp other);
-    method public inline operator androidx.ui.core.Dp plus(androidx.ui.core.Dp other);
-    method public inline operator androidx.ui.core.Dp times(float other);
-    method public inline operator androidx.ui.core.Dp times(int other);
-    method public inline operator float times(androidx.ui.core.Dp other);
-    method public inline operator float times-KkBJKWw(float other);
-    method public inline operator androidx.ui.core.Dp unaryMinus();
-    field public static final androidx.ui.core.Dp.Companion! Companion;
-  }
-
-  public static final class Dp.Companion {
-    method public androidx.ui.core.Dp getHairline();
-    method public androidx.ui.core.Dp getInfinity();
-    property public final androidx.ui.core.Dp Hairline;
-    property public final androidx.ui.core.Dp Infinity;
-  }
-
-  public final inline class DpCubed implements java.lang.Comparable<androidx.ui.core.DpCubed> {
-    ctor public DpCubed();
-    method public operator int compareTo-zqpl1kg(float p);
-    method public static operator int compareTo-zqpl1kg(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator androidx.ui.core.Dp div-KkBJKWw(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, androidx.ui.core.Dp other);
-    method public static inline operator float div-zqpl1kg(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-zqpl1kg(float $this, float dimension);
-    method public static inline operator float plus-zqpl1kg(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final inline class DpInverse implements java.lang.Comparable<androidx.ui.core.DpInverse> {
-    ctor public DpInverse();
-    method public operator int compareTo-ASDJgtI(float p);
-    method public static operator int compareTo-ASDJgtI(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-ASDJgtI(float $this, float dimension);
-    method public static inline operator float plus-ASDJgtI(float $this, float dimension);
-    method public static inline operator androidx.ui.core.Dp times-KkBJKWw(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Dp other);
-    method public static inline operator float times-zqpl1kg(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final class DpKt {
-    method public static inline long Position(androidx.ui.core.Dp x, androidx.ui.core.Dp y);
-    method public static inline long Size(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
-    method public static long center-s2Mz6-8(long);
-    method public static inline androidx.ui.core.Dp coerceAtLeast(androidx.ui.core.Dp, androidx.ui.core.Dp minimumValue);
-    method public static inline androidx.ui.core.Dp coerceAtMost(androidx.ui.core.Dp, androidx.ui.core.Dp maximumValue);
-    method public static inline androidx.ui.core.Dp coerceIn(androidx.ui.core.Dp, androidx.ui.core.Dp minimumValue, androidx.ui.core.Dp maximumValue);
-    method public static inline operator float div(float, androidx.ui.core.Dp other);
-    method public static inline operator float div(double, androidx.ui.core.Dp other);
-    method public static inline operator float div(int, androidx.ui.core.Dp other);
-    method public static androidx.ui.core.Dp getDistance-JXBE4ew(long);
-    method public static inline androidx.ui.core.Dp getDp(int);
-    method public static inline androidx.ui.core.Dp getDp(double);
-    method public static inline androidx.ui.core.Dp getDp(float);
-    method public static inline androidx.ui.core.Dp getHeight(androidx.ui.core.Bounds);
-    method public static inline androidx.ui.core.Dp getWidth(androidx.ui.core.Bounds);
-    method public static inline boolean isFinite(androidx.ui.core.Dp);
-    method public static androidx.ui.core.Dp lerp(androidx.ui.core.Dp start, androidx.ui.core.Dp stop, float fraction);
-    method public static long lerp-SuMVOfk(long start, long stop, float fraction);
-    method public static inline androidx.ui.core.Dp max(androidx.ui.core.Dp a, androidx.ui.core.Dp b);
-    method public static inline androidx.ui.core.Dp min(androidx.ui.core.Dp a, androidx.ui.core.Dp b);
-    method public static inline operator androidx.ui.core.Dp times(float, androidx.ui.core.Dp other);
-    method public static inline operator androidx.ui.core.Dp times(double, androidx.ui.core.Dp other);
-    method public static inline operator androidx.ui.core.Dp times(int, androidx.ui.core.Dp other);
-    method public static inline operator long times-Ze-JISM(int, long size);
-    method public static inline operator long times-doH9uME(float, long size);
-    method public static inline operator long times-nKWVx08(double, long size);
-    method public static androidx.ui.core.Bounds toBounds-s2Mz6-8(long);
-    method public static inline long toSize(androidx.ui.core.Bounds);
-  }
-
-  public final inline class DpSquared implements java.lang.Comparable<androidx.ui.core.DpSquared> {
-    ctor public DpSquared();
-    method public operator int compareTo-KkBJKWw(float p);
-    method public static operator int compareTo-KkBJKWw(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-KkBJKWw(float $this, float other);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator androidx.ui.core.Dp div-impl(float $this, androidx.ui.core.Dp other);
-    method public static inline operator float div-zqpl1kg(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-KkBJKWw(float $this, float other);
-    method public static inline operator float plus-KkBJKWw(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Dp other);
-    method public static String toString-impl(float $this);
-  }
-
   public interface DrawModifier extends androidx.ui.core.Modifier.Element {
-    method public void draw(androidx.ui.core.Density density, kotlin.jvm.functions.Function0<kotlin.Unit> drawContent, androidx.ui.graphics.Canvas canvas, androidx.ui.core.PxSize size);
+    method public void draw(androidx.ui.unit.Density density, kotlin.jvm.functions.Function0<kotlin.Unit> drawContent, androidx.ui.graphics.Canvas canvas, androidx.ui.unit.PxSize size);
   }
 
   public final class DrawModifierKt {
-    method public static androidx.ui.core.DrawModifier draw(kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onDraw);
-    method public static androidx.ui.core.DrawModifier drawWithContent(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onDraw);
+    method public static androidx.ui.core.DrawModifier draw(kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onDraw);
+    method public static androidx.ui.core.DrawModifier drawWithContent(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onDraw);
   }
 
-  public interface DrawReceiver extends androidx.ui.core.DensityScope {
+  public interface DrawReceiver extends androidx.ui.unit.DensityScope {
     method public void drawChildren();
   }
 
-  public final class Duration implements java.lang.Comparable<androidx.ui.core.Duration> {
-    ctor public Duration(long nanoseconds);
-    method public int compareTo(androidx.ui.core.Duration other);
-    method public long component1();
-    method public androidx.ui.core.Duration copy(long nanoseconds);
-    method public operator androidx.ui.core.Duration div(int quotient);
-    method public operator androidx.ui.core.Duration div(double quotient);
-    method public long getNanoseconds();
-    method public operator androidx.ui.core.Duration minus(androidx.ui.core.Duration other);
-    method public operator androidx.ui.core.Duration plus(androidx.ui.core.Duration other);
-    method public operator androidx.ui.core.Duration times(int factor);
-    method public operator androidx.ui.core.Duration times(double factor);
-    field public static final androidx.ui.core.Duration.Companion! Companion;
-  }
-
-  public static final class Duration.Companion {
-    method public androidx.ui.core.Duration getZero();
-    property public final androidx.ui.core.Duration Zero;
-  }
-
-  public final class Durations {
-    method public static androidx.ui.core.Duration Duration(long days = 0, long hours = 0, long minutes = 0, long seconds = 0, long milliseconds = 0, long microseconds = 0, long nanoseconds = 0);
-    method public static androidx.ui.core.Duration getDays(long);
-    method public static androidx.ui.core.Duration getDays(int);
-    method public static androidx.ui.core.Duration getHours(long);
-    method public static androidx.ui.core.Duration getHours(int);
-    method public static androidx.ui.core.Duration getMicroseconds(long);
-    method public static androidx.ui.core.Duration getMicroseconds(int);
-    method public static androidx.ui.core.Duration getMilliseconds(long);
-    method public static androidx.ui.core.Duration getMilliseconds(int);
-    method public static androidx.ui.core.Duration getMinutes(long);
-    method public static androidx.ui.core.Duration getMinutes(int);
-    method public static androidx.ui.core.Duration getNanoseconds(long);
-    method public static androidx.ui.core.Duration getNanoseconds(int);
-    method public static long getNanosecondsPerDay();
-    method public static long getNanosecondsPerHour();
-    method public static long getNanosecondsPerMillisecond();
-    method public static long getNanosecondsPerMinute();
-    method public static long getNanosecondsPerSecond();
-    method public static androidx.ui.core.Duration getSeconds(long);
-    method public static androidx.ui.core.Duration getSeconds(int);
-    method public static long inDays(androidx.ui.core.Duration);
-    method public static long inHours(androidx.ui.core.Duration);
-    method public static long inMicroseconds(androidx.ui.core.Duration);
-    method public static long inMilliseconds(androidx.ui.core.Duration);
-    method public static long inMinutes(androidx.ui.core.Duration);
-    method public static long inSeconds(androidx.ui.core.Duration);
-    field public static final long HoursPerDay = 24L; // 0x18L
-    field public static final long MicrosecondsPerMillisecond = 1000L; // 0x3e8L
-    field public static final long MillisecondsPerSecond = 1000L; // 0x3e8L
-    field public static final long MinutesPerHour = 60L; // 0x3cL
-    field public static final long NanosecondsPerMicrosecond = 1000L; // 0x3e8L
-    field public static final long SecondsPerMinute = 60L; // 0x3cL
-  }
-
   public final class HorizontalAlignmentLine extends androidx.ui.core.AlignmentLine {
-    ctor public HorizontalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.core.IntPx,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> merger);
-  }
-
-  public final class InlineClassHelperKt {
-    method public static inline long packFloats(float val1, float val2);
-    method public static inline long packInts(int val1, int val2);
-    method public static inline float unpackFloat1(long value);
-    method public static inline float unpackFloat2(long value);
-    method public static inline int unpackInt1(long value);
-    method public static inline int unpackInt2(long value);
-  }
-
-  public final class IntPx implements java.lang.Comparable<androidx.ui.core.IntPx> {
-    ctor public IntPx(int value);
-    method public operator int compareTo(androidx.ui.core.IntPx other);
-    method public inline operator int compareTo(androidx.ui.core.Px other);
-    method public int component1();
-    method public androidx.ui.core.IntPx copy(int value);
-    method public operator androidx.ui.core.IntPx div(float other);
-    method public operator androidx.ui.core.IntPx div(double other);
-    method public operator androidx.ui.core.IntPx div(int other);
-    method public int getValue();
-    method public operator androidx.ui.core.IntPx minus(androidx.ui.core.IntPx other);
-    method public operator androidx.ui.core.IntPx plus(androidx.ui.core.IntPx other);
-    method public inline operator androidx.ui.core.IntPx rem(int other);
-    method public operator androidx.ui.core.IntPx times(float other);
-    method public operator androidx.ui.core.IntPx times(double other);
-    method public operator androidx.ui.core.IntPx times(int other);
-    method public operator androidx.ui.core.IntPx unaryMinus();
-    field public static final androidx.ui.core.IntPx.Companion! Companion;
-  }
-
-  public static final class IntPx.Companion {
-    method public androidx.ui.core.IntPx getInfinity();
-    method public androidx.ui.core.IntPx getZero();
-    property public final androidx.ui.core.IntPx Infinity;
-    property public final androidx.ui.core.IntPx Zero;
-  }
-
-  public final class IntPxBounds {
-    ctor public IntPxBounds(androidx.ui.core.IntPx left, androidx.ui.core.IntPx top, androidx.ui.core.IntPx right, androidx.ui.core.IntPx bottom);
-    method public androidx.ui.core.IntPx component1();
-    method public androidx.ui.core.IntPx component2();
-    method public androidx.ui.core.IntPx component3();
-    method public androidx.ui.core.IntPx component4();
-    method public androidx.ui.core.IntPxBounds copy(androidx.ui.core.IntPx left, androidx.ui.core.IntPx top, androidx.ui.core.IntPx right, androidx.ui.core.IntPx bottom);
-    method public androidx.ui.core.IntPx getBottom();
-    method public androidx.ui.core.IntPx getLeft();
-    method public androidx.ui.core.IntPx getRight();
-    method public androidx.ui.core.IntPx getTop();
-  }
-
-  public final class IntPxKt {
-    method public static inline androidx.ui.core.IntPxPosition IntPxPosition(androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
-    method public static inline androidx.ui.core.IntPxSize IntPxSize(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height);
-    method public static inline androidx.ui.core.PxPosition PxPosition(androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
-    method public static inline androidx.ui.core.PxSize PxSize(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height);
-    method public static androidx.ui.core.IntPxPosition center(androidx.ui.core.IntPxSize);
-    method public static inline androidx.ui.core.IntPx coerceAtLeast(androidx.ui.core.IntPx, androidx.ui.core.IntPx minimumValue);
-    method public static inline androidx.ui.core.IntPx coerceAtMost(androidx.ui.core.IntPx, androidx.ui.core.IntPx maximumValue);
-    method public static inline androidx.ui.core.IntPx coerceIn(androidx.ui.core.IntPx, androidx.ui.core.IntPx minimumValue, androidx.ui.core.IntPx maximumValue);
-    method public static inline androidx.ui.core.IntPx getHeight(androidx.ui.core.IntPxBounds);
-    method public static inline androidx.ui.core.IntPx getIpx(int);
-    method public static inline androidx.ui.core.IntPx getWidth(androidx.ui.core.IntPxBounds);
-    method public static inline boolean isFinite(androidx.ui.core.IntPx);
-    method public static androidx.ui.core.IntPx lerp(androidx.ui.core.IntPx start, androidx.ui.core.IntPx stop, float fraction);
-    method public static androidx.ui.core.IntPxPosition lerp(androidx.ui.core.IntPxPosition start, androidx.ui.core.IntPxPosition stop, float fraction);
-    method public static inline androidx.ui.core.IntPx max(androidx.ui.core.IntPx a, androidx.ui.core.IntPx b);
-    method public static inline androidx.ui.core.IntPx min(androidx.ui.core.IntPx a, androidx.ui.core.IntPx b);
-    method public static inline androidx.ui.core.IntPx round(androidx.ui.core.Px);
-    method public static inline operator androidx.ui.core.IntPx times(float, androidx.ui.core.IntPx other);
-    method public static inline operator androidx.ui.core.IntPx times(double, androidx.ui.core.IntPx other);
-    method public static inline operator androidx.ui.core.IntPx times(int, androidx.ui.core.IntPx other);
-    method public static inline operator androidx.ui.core.IntPxSize times(int, androidx.ui.core.IntPxSize size);
-    method public static inline androidx.ui.core.Px toPx(androidx.ui.core.IntPx);
-    method public static inline androidx.ui.core.PxPosition toPxPosition(androidx.ui.core.IntPxPosition);
-    method public static inline androidx.ui.core.PxSize toPxSize(androidx.ui.core.IntPxSize);
-    method public static inline androidx.ui.core.IntPxSize toSize(androidx.ui.core.IntPxBounds);
-  }
-
-  public final class IntPxPosition {
-    method public androidx.ui.core.IntPxPosition copy(long value);
-    method public inline androidx.ui.core.IntPx getX();
-    method public inline androidx.ui.core.IntPx getY();
-    method public inline operator androidx.ui.core.IntPxPosition minus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.IntPxPosition plus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.IntPxPosition unaryMinus();
-    property public final inline androidx.ui.core.IntPx x;
-    property public final inline androidx.ui.core.IntPx y;
-    field public static final androidx.ui.core.IntPxPosition.Companion! Companion;
-  }
-
-  public static final class IntPxPosition.Companion {
-    method public androidx.ui.core.IntPxPosition getOrigin();
-    property public final androidx.ui.core.IntPxPosition Origin;
-  }
-
-  public final class IntPxSize {
-    method public androidx.ui.core.IntPxSize copy(long value);
-    method public inline operator androidx.ui.core.IntPxSize div(int other);
-    method public inline androidx.ui.core.IntPx getHeight();
-    method public inline androidx.ui.core.IntPx getWidth();
-    method public inline operator androidx.ui.core.IntPxSize times(int other);
-    property public final inline androidx.ui.core.IntPx height;
-    property public final inline androidx.ui.core.IntPx width;
+    ctor public HorizontalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> merger);
   }
 
   public interface IntrinsicMeasurable {
     method public Object? getParentData();
-    method public androidx.ui.core.IntPx maxIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(androidx.ui.core.IntPx height);
-    method public androidx.ui.core.IntPx minIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(androidx.ui.core.IntPx height);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(androidx.ui.unit.IntPx height);
+    method public androidx.ui.unit.IntPx minIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(androidx.ui.unit.IntPx height);
     property public abstract Object? parentData;
   }
 
@@ -500,23 +168,23 @@
   }
 
   public interface LayoutCoordinates {
-    method public androidx.ui.core.PxPosition childToLocal(androidx.ui.core.LayoutCoordinates child, androidx.ui.core.PxPosition childLocal);
+    method public androidx.ui.unit.PxPosition childToLocal(androidx.ui.core.LayoutCoordinates child, androidx.ui.unit.PxPosition childLocal);
     method public androidx.ui.core.LayoutCoordinates? getParentCoordinates();
-    method public androidx.ui.core.PxPosition getPosition();
-    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> getProvidedAlignmentLines();
-    method public androidx.ui.core.PxSize getSize();
-    method public androidx.ui.core.PxPosition globalToLocal(androidx.ui.core.PxPosition global);
-    method public androidx.ui.core.PxPosition localToGlobal(androidx.ui.core.PxPosition local);
-    method public androidx.ui.core.PxPosition localToRoot(androidx.ui.core.PxPosition local);
+    method public androidx.ui.unit.PxPosition getPosition();
+    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> getProvidedAlignmentLines();
+    method public androidx.ui.unit.PxSize getSize();
+    method public androidx.ui.unit.PxPosition globalToLocal(androidx.ui.unit.PxPosition global);
+    method public androidx.ui.unit.PxPosition localToGlobal(androidx.ui.unit.PxPosition local);
+    method public androidx.ui.unit.PxPosition localToRoot(androidx.ui.unit.PxPosition local);
     property public abstract androidx.ui.core.LayoutCoordinates? parentCoordinates;
-    property public abstract androidx.ui.core.PxPosition position;
-    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> providedAlignmentLines;
-    property public abstract androidx.ui.core.PxSize size;
+    property public abstract androidx.ui.unit.PxPosition position;
+    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> providedAlignmentLines;
+    property public abstract androidx.ui.unit.PxSize size;
   }
 
   public final class LayoutCoordinatesKt {
-    method public static inline androidx.ui.core.PxPosition getGlobalPosition(androidx.ui.core.LayoutCoordinates);
-    method public static inline androidx.ui.core.PxPosition getPositionInRoot(androidx.ui.core.LayoutCoordinates);
+    method public static inline androidx.ui.unit.PxPosition getGlobalPosition(androidx.ui.core.LayoutCoordinates);
+    method public static inline androidx.ui.unit.PxPosition getPositionInRoot(androidx.ui.core.LayoutCoordinates);
   }
 
   public enum LayoutDirection {
@@ -525,33 +193,33 @@
   }
 
   public interface LayoutModifier extends androidx.ui.core.Modifier.Element {
-    method public default androidx.ui.core.IntPx maxIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public default androidx.ui.core.IntPx maxIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public default androidx.ui.core.IntPx minIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public default androidx.ui.core.IntPx minIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public default androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public default androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
-    method public default androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public default androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public default androidx.ui.unit.IntPx maxIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public default androidx.ui.unit.IntPx maxIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public default androidx.ui.unit.IntPx minIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public default androidx.ui.unit.IntPx minIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public default androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public default androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
+    method public default androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public default androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
   }
 
   public interface Measurable extends androidx.ui.core.IntrinsicMeasurable {
     method public androidx.ui.core.Placeable measure(androidx.ui.core.Constraints constraints);
   }
 
-  public abstract class MeasureScope implements androidx.ui.core.DensityScope {
+  public abstract class MeasureScope implements androidx.ui.unit.DensityScope {
     ctor public MeasureScope();
-    method public final androidx.ui.core.MeasureScope.LayoutResult layout(androidx.ui.core.IntPx width, androidx.ui.core.IntPx height, java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> alignmentLines = emptyMap(), kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable.PlacementScope,kotlin.Unit> placementBlock);
+    method public final androidx.ui.core.MeasureScope.LayoutResult layout(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height, java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> alignmentLines = emptyMap(), kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable.PlacementScope,kotlin.Unit> placementBlock);
   }
 
   public static interface MeasureScope.LayoutResult {
-    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> getAlignmentLines();
-    method public androidx.ui.core.IntPx getHeight();
-    method public androidx.ui.core.IntPx getWidth();
+    method public java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> getAlignmentLines();
+    method public androidx.ui.unit.IntPx getHeight();
+    method public androidx.ui.unit.IntPx getWidth();
     method public void placeChildren(androidx.ui.core.Placeable.PlacementScope placementScope);
-    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.core.IntPx> alignmentLines;
-    property public abstract androidx.ui.core.IntPx height;
-    property public abstract androidx.ui.core.IntPx width;
+    property public abstract java.util.Map<androidx.ui.core.AlignmentLine,androidx.ui.unit.IntPx> alignmentLines;
+    property public abstract androidx.ui.unit.IntPx height;
+    property public abstract androidx.ui.unit.IntPx width;
   }
 
   public final class MeasureScopeKt {
@@ -576,27 +244,27 @@
   }
 
   public interface ParentDataModifier extends androidx.ui.core.Modifier.Element {
-    method public default Object? modifyParentData(androidx.ui.core.DensityScope, Object? parentData);
+    method public default Object? modifyParentData(androidx.ui.unit.DensityScope, Object? parentData);
   }
 
   public abstract class Placeable {
     ctor public Placeable();
-    method public abstract operator androidx.ui.core.IntPx? get(androidx.ui.core.AlignmentLine line);
-    method public final androidx.ui.core.IntPx getHeight();
-    method public abstract androidx.ui.core.IntPxSize getSize();
-    method public final androidx.ui.core.IntPx getWidth();
-    method protected abstract void performPlace(androidx.ui.core.IntPxPosition position);
-    property public final androidx.ui.core.IntPx height;
-    property public abstract androidx.ui.core.IntPxSize size;
-    property public final androidx.ui.core.IntPx width;
+    method public abstract operator androidx.ui.unit.IntPx? get(androidx.ui.core.AlignmentLine line);
+    method public final androidx.ui.unit.IntPx getHeight();
+    method public abstract androidx.ui.unit.IntPxSize getSize();
+    method public final androidx.ui.unit.IntPx getWidth();
+    method protected abstract void performPlace(androidx.ui.unit.IntPxPosition position);
+    property public final androidx.ui.unit.IntPx height;
+    property public abstract androidx.ui.unit.IntPxSize size;
+    property public final androidx.ui.unit.IntPx width;
     field public static final androidx.ui.core.Placeable.PlacementScope! PlacementScope;
   }
 
   public static final class Placeable.PlacementScope {
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.IntPxPosition position);
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.PxPosition position);
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
-    method public void place(androidx.ui.core.Placeable, androidx.ui.core.Px x, androidx.ui.core.Px y);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.IntPxPosition position);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.PxPosition position);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
+    method public void place(androidx.ui.core.Placeable, androidx.ui.unit.Px x, androidx.ui.unit.Px y);
   }
 
   public enum PointerEventPass {
@@ -621,15 +289,15 @@
   }
 
   public final class PointerInputData {
-    ctor public PointerInputData(androidx.ui.core.Uptime? uptime, androidx.ui.core.PxPosition? position, boolean down);
+    ctor public PointerInputData(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     ctor public PointerInputData();
-    method public androidx.ui.core.Uptime? component1();
-    method public androidx.ui.core.PxPosition? component2();
+    method public androidx.ui.unit.Uptime? component1();
+    method public androidx.ui.unit.PxPosition? component2();
     method public boolean component3();
-    method public androidx.ui.core.PointerInputData copy(androidx.ui.core.Uptime? uptime, androidx.ui.core.PxPosition? position, boolean down);
+    method public androidx.ui.core.PointerInputData copy(androidx.ui.unit.Uptime? uptime, androidx.ui.unit.PxPosition? position, boolean down);
     method public boolean getDown();
-    method public androidx.ui.core.PxPosition? getPosition();
-    method public androidx.ui.core.Uptime? getUptime();
+    method public androidx.ui.unit.PxPosition? getPosition();
+    method public androidx.ui.unit.Uptime? getUptime();
   }
 
   public final class PointerInputKt {
@@ -639,622 +307,20 @@
     method public static boolean changedToUp(androidx.ui.core.PointerInputChange);
     method public static boolean changedToUpIgnoreConsumed(androidx.ui.core.PointerInputChange);
     method public static androidx.ui.core.PointerInputChange consumeDownChange(androidx.ui.core.PointerInputChange);
-    method public static androidx.ui.core.PointerInputChange consumePositionChange(androidx.ui.core.PointerInputChange, androidx.ui.core.Px consumedDx, androidx.ui.core.Px consumedDy);
-    method public static androidx.ui.core.PxPosition positionChange(androidx.ui.core.PointerInputChange);
-    method public static androidx.ui.core.PxPosition positionChangeIgnoreConsumed(androidx.ui.core.PointerInputChange);
+    method public static androidx.ui.core.PointerInputChange consumePositionChange(androidx.ui.core.PointerInputChange, androidx.ui.unit.Px consumedDx, androidx.ui.unit.Px consumedDy);
+    method public static androidx.ui.unit.PxPosition positionChange(androidx.ui.core.PointerInputChange);
+    method public static androidx.ui.unit.PxPosition positionChangeIgnoreConsumed(androidx.ui.core.PointerInputChange);
     method public static boolean positionChanged(androidx.ui.core.PointerInputChange);
     method public static boolean positionChangedIgnoreConsumed(androidx.ui.core.PointerInputChange);
   }
 
-  public final inline class Position {
-    ctor public Position();
-    method public static long constructor-impl(internal long value);
-    method public static boolean equals-impl(long p, Object? p1);
-    method public static boolean equals-impl0(long p1, long p2);
-    method public static androidx.ui.core.Dp getX-impl(long $this);
-    method public static androidx.ui.core.Dp getY-impl(long $this);
-    method public static int hashCode-impl(long p);
-    method public static inline operator long minus-JXBE4ew(long $this, long other);
-    method public static inline operator long plus-JXBE4ew(long $this, long other);
-    method public static String toString-impl(long $this);
-  }
-
-  public final class Px implements java.lang.Comparable<androidx.ui.core.Px> {
-    ctor public Px(float value);
-    method public operator int compareTo(androidx.ui.core.Px other);
-    method public inline operator int compareTo(androidx.ui.core.IntPx other);
-    method public float component1();
-    method public androidx.ui.core.Px copy(float value);
-    method public inline operator androidx.ui.core.Px div(float other);
-    method public inline operator androidx.ui.core.Px div(int other);
-    method public inline operator float div(androidx.ui.core.Px other);
-    method public inline operator float div-kVJEwbQ(float other);
-    method public float getValue();
-    method public inline operator androidx.ui.core.Px minus(androidx.ui.core.Px other);
-    method public inline operator androidx.ui.core.Px minus(androidx.ui.core.IntPx other);
-    method public inline operator androidx.ui.core.Px plus(androidx.ui.core.Px other);
-    method public inline operator androidx.ui.core.Px plus(androidx.ui.core.IntPx other);
-    method public inline operator androidx.ui.core.Px times(float other);
-    method public inline operator androidx.ui.core.Px times(int other);
-    method public inline operator float times(androidx.ui.core.Px other);
-    method public inline operator float times-kVJEwbQ(float other);
-    method public inline operator androidx.ui.core.Px unaryMinus();
-    field public static final androidx.ui.core.Px.Companion! Companion;
-  }
-
-  public static final class Px.Companion {
-    method public androidx.ui.core.Px getInfinity();
-    method public androidx.ui.core.Px getZero();
-    property public final androidx.ui.core.Px Infinity;
-    property public final androidx.ui.core.Px Zero;
-  }
-
-  public final class PxBounds {
-    ctor public PxBounds(androidx.ui.core.Px left, androidx.ui.core.Px top, androidx.ui.core.Px right, androidx.ui.core.Px bottom);
-    method public androidx.ui.core.Px component1();
-    method public androidx.ui.core.Px component2();
-    method public androidx.ui.core.Px component3();
-    method public androidx.ui.core.Px component4();
-    method public androidx.ui.core.PxBounds copy(androidx.ui.core.Px left, androidx.ui.core.Px top, androidx.ui.core.Px right, androidx.ui.core.Px bottom);
-    method public androidx.ui.core.Px getBottom();
-    method public androidx.ui.core.Px getLeft();
-    method public androidx.ui.core.Px getRight();
-    method public androidx.ui.core.Px getTop();
-  }
-
-  public final inline class PxCubed implements java.lang.Comparable<androidx.ui.core.PxCubed> {
-    ctor public PxCubed();
-    method public operator int compareTo-syUR1PY(float p);
-    method public static operator int compareTo-syUR1PY(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator float div-impl(float $this, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px div-kVJEwbQ(float $this, float other);
-    method public static inline operator float div-syUR1PY(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-syUR1PY(float $this, float dimension);
-    method public static inline operator float plus-syUR1PY(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final inline class PxInverse implements java.lang.Comparable<androidx.ui.core.PxInverse> {
-    ctor public PxInverse();
-    method public operator int compareTo-MXEAIGs(float p);
-    method public static operator int compareTo-MXEAIGs(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-MXEAIGs(float $this, float dimension);
-    method public static inline operator float plus-MXEAIGs(float $this, float dimension);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px times-kVJEwbQ(float $this, float other);
-    method public static inline operator float times-syUR1PY(float $this, float other);
-    method public static String toString-impl(float $this);
-  }
-
-  public final class PxKt {
-    method public static inline androidx.ui.core.PxPosition PxPosition(androidx.ui.core.Px x, androidx.ui.core.Px y);
-    method public static inline androidx.ui.core.PxSize PxSize(androidx.ui.core.Px width, androidx.ui.core.Px height);
-    method public static androidx.ui.core.PxPosition center(androidx.ui.core.PxSize);
-    method public static inline androidx.ui.core.Px coerceAtLeast(androidx.ui.core.Px, androidx.ui.core.Px minimumValue);
-    method public static inline androidx.ui.core.Px coerceAtMost(androidx.ui.core.Px, androidx.ui.core.Px maximumValue);
-    method public static inline androidx.ui.core.Px coerceIn(androidx.ui.core.Px, androidx.ui.core.Px minimumValue, androidx.ui.core.Px maximumValue);
-    method public static inline operator float div(float, androidx.ui.core.Px other);
-    method public static inline operator float div(double, androidx.ui.core.Px other);
-    method public static inline operator float div(int, androidx.ui.core.Px other);
-    method public static androidx.ui.core.Px getDistance(androidx.ui.core.PxPosition);
-    method public static inline androidx.ui.core.Px getHeight(androidx.ui.core.PxBounds);
-    method public static androidx.ui.core.Px! getMinDimension(androidx.ui.core.PxSize);
-    method public static inline androidx.ui.core.Px getPx(int);
-    method public static inline androidx.ui.core.Px getPx(double);
-    method public static inline androidx.ui.core.Px getPx(float);
-    method public static inline androidx.ui.core.Px getWidth(androidx.ui.core.PxBounds);
-    method public static androidx.ui.core.Px lerp(androidx.ui.core.Px start, androidx.ui.core.Px stop, float fraction);
-    method public static androidx.ui.core.PxPosition lerp(androidx.ui.core.PxPosition start, androidx.ui.core.PxPosition stop, float fraction);
-    method public static inline androidx.ui.core.Px max(androidx.ui.core.Px a, androidx.ui.core.Px b);
-    method public static inline androidx.ui.core.Px min(androidx.ui.core.Px a, androidx.ui.core.Px b);
-    method public static inline androidx.ui.core.IntPxPosition round(androidx.ui.core.PxPosition);
-    method public static inline operator androidx.ui.core.Px times(float, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px times(double, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.Px times(int, androidx.ui.core.Px other);
-    method public static inline operator androidx.ui.core.PxSize times(int, androidx.ui.core.PxSize size);
-    method public static inline operator androidx.ui.core.PxSize times(float, androidx.ui.core.PxSize size);
-    method public static inline operator androidx.ui.core.PxSize times(double, androidx.ui.core.PxSize size);
-    method public static androidx.ui.core.PxBounds toBounds(androidx.ui.core.PxSize);
-    method public static inline androidx.ui.engine.geometry.Offset toOffset(androidx.ui.core.PxPosition);
-    method public static androidx.ui.engine.geometry.Rect toRect(androidx.ui.core.PxBounds);
-    method public static androidx.ui.engine.geometry.Rect toRect(androidx.ui.core.PxSize);
-    method public static androidx.ui.core.PxSize toSize(androidx.ui.core.PxBounds);
-  }
-
-  public final class PxPosition {
-    method public androidx.ui.core.PxPosition copy(long value);
-    method public inline androidx.ui.core.Px getX();
-    method public inline androidx.ui.core.Px getY();
-    method public inline operator androidx.ui.core.PxPosition minus(androidx.ui.core.PxPosition other);
-    method public inline operator androidx.ui.core.PxPosition minus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.PxPosition plus(androidx.ui.core.PxPosition other);
-    method public inline operator androidx.ui.core.PxPosition plus(androidx.ui.core.IntPxPosition other);
-    method public inline operator androidx.ui.core.PxPosition unaryMinus();
-    property public final inline androidx.ui.core.Px x;
-    property public final inline androidx.ui.core.Px y;
-    field public static final androidx.ui.core.PxPosition.Companion! Companion;
-  }
-
-  public static final class PxPosition.Companion {
-    method public androidx.ui.core.PxPosition getOrigin();
-    property public final androidx.ui.core.PxPosition Origin;
-  }
-
-  public final class PxSize {
-    method public androidx.ui.core.PxSize copy(long value);
-    method public inline operator androidx.ui.core.PxSize div(int other);
-    method public inline operator androidx.ui.core.PxSize div(float other);
-    method public inline operator androidx.ui.core.PxSize div(double other);
-    method public inline androidx.ui.core.Px getHeight();
-    method public inline androidx.ui.core.Px getWidth();
-    method public inline operator androidx.ui.core.PxSize times(int other);
-    method public inline operator androidx.ui.core.PxSize times(float other);
-    method public inline operator androidx.ui.core.PxSize times(double other);
-    property public final inline androidx.ui.core.Px height;
-    property public final inline androidx.ui.core.Px width;
-    field public static final androidx.ui.core.PxSize.Companion! Companion;
-  }
-
-  public static final class PxSize.Companion {
-    method public androidx.ui.core.PxSize getZero();
-    property public final androidx.ui.core.PxSize Zero;
-  }
-
-  public final inline class PxSquared implements java.lang.Comparable<androidx.ui.core.PxSquared> {
-    ctor public PxSquared();
-    method public operator int compareTo-kVJEwbQ(float p);
-    method public static operator int compareTo-kVJEwbQ(float $this, float other);
-    method public static float constructor-impl(float value);
-    method public static inline operator float div-impl(float $this, float other);
-    method public static inline operator androidx.ui.core.Px div-impl(float $this, androidx.ui.core.Px other);
-    method public static inline operator float div-kVJEwbQ(float $this, float other);
-    method public static inline operator float div-syUR1PY(float $this, float other);
-    method public static boolean equals-impl(float p, Object? p1);
-    method public static boolean equals-impl0(float p1, float p2);
-    method public float getValue();
-    method public static int hashCode-impl(float p);
-    method public static inline operator float minus-kVJEwbQ(float $this, float other);
-    method public static inline operator float plus-kVJEwbQ(float $this, float other);
-    method public static inline operator float times-impl(float $this, float other);
-    method public static inline operator float times-impl(float $this, androidx.ui.core.Px other);
-    method public static String toString-impl(float $this);
-  }
-
   public final class RectHelperKt {
-    method public static android.graphics.Rect toFrameworkRect(androidx.ui.engine.geometry.Rect);
-    method public static android.graphics.RectF toFrameworkRectF(androidx.ui.engine.geometry.Rect);
-  }
-
-  public final inline class Size {
-    ctor public Size();
-    method public static long constructor-impl(internal long value);
-    method public static inline operator long div-impl(long $this, int other);
-    method public static inline operator long div-impl(long $this, float other);
-    method public static inline operator long div-impl(long $this, double other);
-    method public static boolean equals-impl(long p, Object? p1);
-    method public static boolean equals-impl0(long p1, long p2);
-    method public static androidx.ui.core.Dp getHeight-impl(long $this);
-    method public static androidx.ui.core.Dp getWidth-impl(long $this);
-    method public static int hashCode-impl(long p);
-    method public static inline operator long times-impl(long $this, int other);
-    method public static inline operator long times-impl(long $this, float other);
-    method public static inline operator long times-impl(long $this, double other);
-    method public static String toString-impl(long $this);
-  }
-
-  public final class TextUnit {
-    ctor public TextUnit(long packedValue);
-    method public inline operator int compareTo(androidx.ui.core.TextUnit other);
-    method public long component1();
-    method public androidx.ui.core.TextUnit copy(long packedValue);
-    method public inline operator androidx.ui.core.TextUnit div(float other);
-    method public inline operator androidx.ui.core.TextUnit div(double other);
-    method public inline operator androidx.ui.core.TextUnit div(int other);
-    method public inline operator float div(androidx.ui.core.TextUnit other);
-    method public long getPackedValue();
-    method public androidx.ui.core.TextUnitType getType();
-    method public float getValue();
-    method public boolean isEm();
-    method public boolean isInherit();
-    method public boolean isSp();
-    method public inline operator androidx.ui.core.TextUnit minus(androidx.ui.core.TextUnit other);
-    method public inline operator androidx.ui.core.TextUnit plus(androidx.ui.core.TextUnit other);
-    method public inline operator androidx.ui.core.TextUnit times(float other);
-    method public inline operator androidx.ui.core.TextUnit times(double other);
-    method public inline operator androidx.ui.core.TextUnit times(int other);
-    method public inline operator androidx.ui.core.TextUnit unaryMinus();
-    property public final boolean isEm;
-    property public final boolean isInherit;
-    property public final boolean isSp;
-    property public final androidx.ui.core.TextUnitType type;
-    property public final float value;
-    field public static final androidx.ui.core.TextUnit.Companion! Companion;
-  }
-
-  public static final class TextUnit.Companion {
-    method public androidx.ui.core.TextUnit Em(int value);
-    method public androidx.ui.core.TextUnit Em(float value);
-    method public androidx.ui.core.TextUnit Em(double value);
-    method public androidx.ui.core.TextUnit Sp(int value);
-    method public androidx.ui.core.TextUnit Sp(float value);
-    method public androidx.ui.core.TextUnit Sp(double value);
-    method public androidx.ui.core.TextUnit getInherit();
-    property public final androidx.ui.core.TextUnit Inherit;
-  }
-
-  public final class TextUnitKt {
-    method public static inline androidx.ui.core.TextUnit coerceAtLeast(androidx.ui.core.TextUnit, androidx.ui.core.TextUnit minimumValue);
-    method public static inline androidx.ui.core.TextUnit coerceAtMost(androidx.ui.core.TextUnit, androidx.ui.core.TextUnit maximumValue);
-    method public static inline androidx.ui.core.TextUnit coerceIn(androidx.ui.core.TextUnit, androidx.ui.core.TextUnit minimumValue, androidx.ui.core.TextUnit maximumValue);
-    method public static androidx.ui.core.TextUnit getEm(float);
-    method public static androidx.ui.core.TextUnit getEm(double);
-    method public static androidx.ui.core.TextUnit getEm(int);
-    method public static androidx.ui.core.TextUnit getSp(float);
-    method public static androidx.ui.core.TextUnit getSp(double);
-    method public static androidx.ui.core.TextUnit getSp(int);
-    method public static androidx.ui.core.TextUnit lerp(androidx.ui.core.TextUnit a, androidx.ui.core.TextUnit b, float t);
-    method public static inline androidx.ui.core.TextUnit max(androidx.ui.core.TextUnit a, androidx.ui.core.TextUnit b);
-    method public static inline androidx.ui.core.TextUnit min(androidx.ui.core.TextUnit a, androidx.ui.core.TextUnit b);
-    method public static inline operator androidx.ui.core.TextUnit times(float, androidx.ui.core.TextUnit other);
-    method public static inline operator androidx.ui.core.TextUnit times(double, androidx.ui.core.TextUnit other);
-    method public static inline operator androidx.ui.core.TextUnit times(int, androidx.ui.core.TextUnit other);
-  }
-
-  public enum TextUnitType {
-    enum_constant public static final androidx.ui.core.TextUnitType Em;
-    enum_constant public static final androidx.ui.core.TextUnitType Inherit;
-    enum_constant public static final androidx.ui.core.TextUnitType Sp;
-  }
-
-  public final class Uptime implements java.lang.Comparable<androidx.ui.core.Uptime> {
-    ctor public Uptime(long nanoseconds);
-    method public int compareTo(androidx.ui.core.Uptime other);
-    method public long component1();
-    method public androidx.ui.core.Uptime copy(long nanoseconds);
-    method public long getNanoseconds();
-    method public operator androidx.ui.core.Uptime minus(androidx.ui.core.Duration duration);
-    method public operator androidx.ui.core.Duration minus(androidx.ui.core.Uptime other);
-    method public operator androidx.ui.core.Uptime plus(androidx.ui.core.Duration duration);
-    field public static final androidx.ui.core.Uptime.Companion! Companion;
-  }
-
-  public static final class Uptime.Companion {
-    method public androidx.ui.core.Uptime getBoot();
-    property public final androidx.ui.core.Uptime Boot;
-  }
-
-  public final class UptimeKt {
-    method public static operator androidx.ui.core.Uptime plus(androidx.ui.core.Duration, androidx.ui.core.Uptime uptime);
-  }
-
-  public final class Velocity {
-    ctor public Velocity(androidx.ui.core.PxPosition pixelsPerSecond);
-    method public androidx.ui.core.PxPosition component1();
-    method public androidx.ui.core.Velocity copy(androidx.ui.core.PxPosition pixelsPerSecond);
-    method public androidx.ui.core.PxPosition getPixelsPerSecond();
-    method public operator androidx.ui.core.Velocity unaryMinus();
-    field public static final androidx.ui.core.Velocity.Companion! Companion;
-  }
-
-  public static final class Velocity.Companion {
-    method public androidx.ui.core.Velocity getZero();
-    property public final androidx.ui.core.Velocity Zero;
-  }
-
-  public final class VelocityKt {
-    method public static operator androidx.ui.core.Velocity minus(androidx.ui.core.Velocity, androidx.ui.core.Velocity other);
-    method public static operator androidx.ui.core.Velocity plus(androidx.ui.core.Velocity, androidx.ui.core.Velocity other);
+    method public static android.graphics.Rect toFrameworkRect(androidx.ui.geometry.Rect);
+    method public static android.graphics.RectF toFrameworkRectF(androidx.ui.geometry.Rect);
   }
 
   public final class VerticalAlignmentLine extends androidx.ui.core.AlignmentLine {
-    ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.core.IntPx,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> merger);
-  }
-
-}
-
-package androidx.ui.engine.geometry {
-
-  public final class Offset implements androidx.ui.engine.geometry.OffsetBase {
-    ctor public Offset(float dx, float dy);
-    method public infix androidx.ui.engine.geometry.Rect and(androidx.ui.engine.geometry.Size other);
-    method public float component1();
-    method public float component2();
-    method public androidx.ui.engine.geometry.Offset copy(float dx, float dy);
-    method public operator androidx.ui.engine.geometry.Offset div(float operand);
-    method public float getDirection();
-    method public float getDistance();
-    method public float getDistanceSquared();
-    method public float getDx();
-    method public float getDy();
-    method public operator androidx.ui.engine.geometry.Offset minus(androidx.ui.engine.geometry.Offset other);
-    method public operator androidx.ui.engine.geometry.Offset plus(androidx.ui.engine.geometry.Offset other);
-    method public operator androidx.ui.engine.geometry.Offset rem(float operand);
-    method public androidx.ui.engine.geometry.Offset scale(float scaleX, float scaleY);
-    method public operator androidx.ui.engine.geometry.Offset times(float operand);
-    method public androidx.ui.engine.geometry.Offset translate(float translateX, float translateY);
-    method public androidx.ui.engine.geometry.Offset truncDiv(float operand);
-    method public operator androidx.ui.engine.geometry.Offset unaryMinus();
-    field public static final androidx.ui.engine.geometry.Offset.Companion! Companion;
-  }
-
-  public static final class Offset.Companion {
-    method public androidx.ui.engine.geometry.Offset getInfinite();
-    method public androidx.ui.engine.geometry.Offset getZero();
-    method public boolean isValid(androidx.ui.engine.geometry.Offset offset);
-    method public androidx.ui.engine.geometry.Offset lerp(androidx.ui.engine.geometry.Offset start, androidx.ui.engine.geometry.Offset stop, float fraction);
-    property public final androidx.ui.engine.geometry.Offset infinite;
-    property public final androidx.ui.engine.geometry.Offset zero;
-  }
-
-  public interface OffsetBase {
-    method public float getDx();
-    method public float getDy();
-    method public default boolean isFinite();
-    method public default boolean isGreaterOrEqThan(androidx.ui.engine.geometry.OffsetBase other);
-    method public default boolean isGreaterThan(androidx.ui.engine.geometry.OffsetBase other);
-    method public default boolean isInfinite();
-    method public default boolean isLessOrEqThan(androidx.ui.engine.geometry.OffsetBase other);
-    method public default boolean isLessThan(androidx.ui.engine.geometry.OffsetBase other);
-    property public abstract float dx;
-    property public abstract float dy;
-  }
-
-  public final class OffsetKt {
-    method public static androidx.ui.core.PxPosition toPxPosition(androidx.ui.engine.geometry.Offset);
-  }
-
-  public abstract sealed class Outline {
-  }
-
-  public static final class Outline.Generic extends androidx.ui.engine.geometry.Outline {
-    ctor public Outline.Generic(androidx.ui.graphics.Path path);
-    method public androidx.ui.graphics.Path component1();
-    method public androidx.ui.engine.geometry.Outline.Generic copy(androidx.ui.graphics.Path path);
-    method public androidx.ui.graphics.Path getPath();
-  }
-
-  public static final class Outline.Rectangle extends androidx.ui.engine.geometry.Outline {
-    ctor public Outline.Rectangle(androidx.ui.engine.geometry.Rect rect);
-    method public androidx.ui.engine.geometry.Rect component1();
-    method public androidx.ui.engine.geometry.Outline.Rectangle copy(androidx.ui.engine.geometry.Rect rect);
-    method public androidx.ui.engine.geometry.Rect getRect();
-  }
-
-  public static final class Outline.Rounded extends androidx.ui.engine.geometry.Outline {
-    ctor public Outline.Rounded(androidx.ui.engine.geometry.RRect rrect);
-    method public androidx.ui.engine.geometry.RRect component1();
-    method public androidx.ui.engine.geometry.Outline.Rounded copy(androidx.ui.engine.geometry.RRect rrect);
-    method public androidx.ui.engine.geometry.RRect getRrect();
-  }
-
-  public final class OutlineKt {
-    method public static void addOutline(androidx.ui.graphics.Path, androidx.ui.engine.geometry.Outline outline);
-    method public static void drawOutline(androidx.ui.graphics.Canvas, androidx.ui.engine.geometry.Outline outline, androidx.ui.graphics.Paint paint);
-  }
-
-  public final class RRect {
-    ctor public RRect(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
-    method public float component1();
-    method public float component10();
-    method public float component11();
-    method public float component12();
-    method public float component2();
-    method public float component3();
-    method public float component4();
-    method public float component5();
-    method public float component6();
-    method public float component7();
-    method public float component8();
-    method public float component9();
-    method public boolean contains(androidx.ui.engine.geometry.Offset point);
-    method public androidx.ui.engine.geometry.RRect copy(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
-    method @Deprecated public androidx.ui.engine.geometry.RRect deflate(float delta);
-    method public float getBottom();
-    method public float getBottomLeftRadiusX();
-    method public float getBottomLeftRadiusY();
-    method public float getBottomRightRadiusX();
-    method public float getBottomRightRadiusY();
-    method public float getHeight();
-    method public float getLeft();
-    method public float getRight();
-    method public float getTop();
-    method public float getTopLeftRadiusX();
-    method public float getTopLeftRadiusY();
-    method public float getTopRightRadiusX();
-    method public float getTopRightRadiusY();
-    method public float getWidth();
-    method public static androidx.ui.engine.geometry.RRect getZero();
-    method @Deprecated public androidx.ui.engine.geometry.RRect inflate(float delta);
-    property public final float height;
-    property public final float width;
-    field public static final androidx.ui.engine.geometry.RRect.Companion! Companion;
-  }
-
-  public static final class RRect.Companion {
-    method public androidx.ui.engine.geometry.RRect getZero();
-    property public final androidx.ui.engine.geometry.RRect Zero;
-  }
-
-  public final class RRectKt {
-    method public static androidx.ui.engine.geometry.RRect RRect(float left, float top, float right, float bottom, float radiusX, float radiusY);
-    method public static androidx.ui.engine.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.engine.geometry.Radius radius);
-    method public static androidx.ui.engine.geometry.RRect RRect(androidx.ui.engine.geometry.Rect rect, float radiusX, float radiusY);
-    method public static androidx.ui.engine.geometry.RRect RRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.engine.geometry.Radius radius);
-    method public static androidx.ui.engine.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.engine.geometry.Radius topLeft = Radius.zero, androidx.ui.engine.geometry.Radius topRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomLeft = Radius.zero);
-    method public static androidx.ui.engine.geometry.RRect RRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.engine.geometry.Radius topLeft = Radius.zero, androidx.ui.engine.geometry.Radius topRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomRight = Radius.zero, androidx.ui.engine.geometry.Radius bottomLeft = Radius.zero);
-    method public static androidx.ui.engine.geometry.Radius bottomLeftRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Radius bottomRightRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Offset center(androidx.ui.engine.geometry.RRect);
-    method public static float getLongestSide(androidx.ui.engine.geometry.RRect);
-    method public static float getShortestSide(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect grow(androidx.ui.engine.geometry.RRect, float delta);
-    method public static boolean isCircle(androidx.ui.engine.geometry.RRect);
-    method public static boolean isEllipse(androidx.ui.engine.geometry.RRect);
-    method public static boolean isEmpty(androidx.ui.engine.geometry.RRect);
-    method public static boolean isFinite(androidx.ui.engine.geometry.RRect);
-    method public static boolean isRect(androidx.ui.engine.geometry.RRect);
-    method public static boolean isStadium(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect lerp(androidx.ui.engine.geometry.RRect start, androidx.ui.engine.geometry.RRect stop, float fraction);
-    method public static androidx.ui.engine.geometry.Rect middleRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Rect outerRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Rect safeInnerRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect shift(androidx.ui.engine.geometry.RRect, androidx.ui.engine.geometry.Offset offset);
-    method public static androidx.ui.engine.geometry.RRect shrink(androidx.ui.engine.geometry.RRect, float delta);
-    method public static androidx.ui.engine.geometry.Rect tallMiddleRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Radius topLeftRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Radius topRightRadius(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.Rect wideMiddleRect(androidx.ui.engine.geometry.RRect);
-    method public static androidx.ui.engine.geometry.RRect withRadius(androidx.ui.engine.geometry.RRect, androidx.ui.engine.geometry.Radius radius);
-  }
-
-  public final class Radius {
-    ctor public Radius(float x, float y);
-    method public float component1();
-    method public float component2();
-    method public androidx.ui.engine.geometry.Radius copy(float x, float y);
-    method public operator androidx.ui.engine.geometry.Radius div(float operand);
-    method public float getX();
-    method public float getY();
-    method public operator androidx.ui.engine.geometry.Radius minus(androidx.ui.engine.geometry.Radius other);
-    method public operator androidx.ui.engine.geometry.Radius plus(androidx.ui.engine.geometry.Radius other);
-    method public operator androidx.ui.engine.geometry.Radius rem(float operand);
-    method public operator androidx.ui.engine.geometry.Radius times(float operand);
-    method public androidx.ui.engine.geometry.Radius truncDiv(float operand);
-    method public operator androidx.ui.engine.geometry.Radius unaryMinus();
-    field public static final androidx.ui.engine.geometry.Radius.Companion! Companion;
-  }
-
-  public static final class Radius.Companion {
-    method public androidx.ui.engine.geometry.Radius circular(float radius);
-    method public androidx.ui.engine.geometry.Radius elliptical(float x, float y);
-    method public androidx.ui.engine.geometry.Radius getZero();
-    property public final androidx.ui.engine.geometry.Radius zero;
-  }
-
-  public final class RadiusKt {
-    method public static androidx.ui.engine.geometry.Radius lerp(androidx.ui.engine.geometry.Radius start, androidx.ui.engine.geometry.Radius stop, float fraction);
-  }
-
-  public final class Rect {
-    ctor public Rect(float left, float top, float right, float bottom);
-    method public float component1();
-    method public float component2();
-    method public float component3();
-    method public float component4();
-    method public boolean contains(androidx.ui.engine.geometry.Offset offset);
-    method public androidx.ui.engine.geometry.Rect copy(float left, float top, float right, float bottom);
-    method public androidx.ui.engine.geometry.Rect deflate(float delta);
-    method public androidx.ui.engine.geometry.Rect expandToInclude(androidx.ui.engine.geometry.Rect other);
-    method public float getBottom();
-    method public androidx.ui.engine.geometry.Offset getBottomCenter();
-    method public androidx.ui.engine.geometry.Offset getBottomLeft();
-    method public androidx.ui.engine.geometry.Offset getBottomRight();
-    method public androidx.ui.engine.geometry.Offset getCenter();
-    method public androidx.ui.engine.geometry.Offset getCenterLeft();
-    method public androidx.ui.engine.geometry.Offset getCenterRight();
-    method public float getHeight();
-    method public float getLeft();
-    method public float getLongestSide();
-    method public float getRight();
-    method public float getShortestSide();
-    method public androidx.ui.engine.geometry.Size getSize();
-    method public float getTop();
-    method public androidx.ui.engine.geometry.Offset getTopCenter();
-    method public androidx.ui.engine.geometry.Offset getTopLeft();
-    method public androidx.ui.engine.geometry.Offset getTopRight();
-    method public float getWidth();
-    method public androidx.ui.engine.geometry.Rect inflate(float delta);
-    method public androidx.ui.engine.geometry.Rect intersect(androidx.ui.engine.geometry.Rect other);
-    method public boolean isEmpty();
-    method public boolean isFinite();
-    method public boolean isInfinite();
-    method public androidx.ui.engine.geometry.Rect join(androidx.ui.engine.geometry.Rect other);
-    method public boolean overlaps(androidx.ui.engine.geometry.Rect other);
-    method public androidx.ui.engine.geometry.Rect shift(androidx.ui.engine.geometry.Offset offset);
-    method public androidx.ui.engine.geometry.Rect translate(float translateX, float translateY);
-    property public final float height;
-    property public final float width;
-    field public static final androidx.ui.engine.geometry.Rect.Companion! Companion;
-  }
-
-  public static final class Rect.Companion {
-    method public androidx.ui.engine.geometry.Rect fromCircle(androidx.ui.engine.geometry.Offset center, float radius);
-    method public androidx.ui.engine.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
-    method public androidx.ui.engine.geometry.Rect fromLTWH(float left, float top, float width, float height);
-    method public androidx.ui.engine.geometry.Rect fromPoints(androidx.ui.engine.geometry.Offset a, androidx.ui.engine.geometry.Offset b);
-    method public androidx.ui.engine.geometry.Rect getLargest();
-    method public androidx.ui.engine.geometry.Rect getZero();
-    method public float get_giantScalar();
-    property public final float _giantScalar;
-    property public final androidx.ui.engine.geometry.Rect largest;
-    property public final androidx.ui.engine.geometry.Rect zero;
-  }
-
-  public final class RectKt {
-    method public static androidx.ui.engine.geometry.Rect lerp(androidx.ui.engine.geometry.Rect start, androidx.ui.engine.geometry.Rect stop, float fraction);
-  }
-
-  public interface Shape {
-    method public androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
-  }
-
-  public class Size implements androidx.ui.engine.geometry.OffsetBase {
-    ctor public Size(float width, float height);
-    method public final androidx.ui.engine.geometry.Offset bottomCenter(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset bottomLeft(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset bottomRight(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset center(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset centerLeft(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset centerRight(androidx.ui.engine.geometry.Offset origin);
-    method public final boolean contains(androidx.ui.engine.geometry.Offset offset);
-    method public final operator androidx.ui.engine.geometry.Size div(float operand);
-    method public float getDx();
-    method public float getDy();
-    method public final androidx.ui.engine.geometry.Size getFlipped();
-    method public final float getHeight();
-    method public final float getLongestSide();
-    method public final float getShortestSide();
-    method public final float getWidth();
-    method public final boolean isEmpty();
-    method public final operator androidx.ui.engine.geometry.Size minus(androidx.ui.engine.geometry.Offset other);
-    method public final operator androidx.ui.engine.geometry.Offset minus(androidx.ui.engine.geometry.Size other);
-    method public final operator androidx.ui.engine.geometry.Size plus(androidx.ui.engine.geometry.Offset other);
-    method public final operator androidx.ui.engine.geometry.Size rem(float operand);
-    method public final operator androidx.ui.engine.geometry.Size times(float operand);
-    method public final androidx.ui.engine.geometry.Offset topCenter(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset topLeft(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Offset topRight(androidx.ui.engine.geometry.Offset origin);
-    method public final androidx.ui.engine.geometry.Size truncDiv(float operand);
-    property public float dx;
-    property public float dy;
-    field public static final androidx.ui.engine.geometry.Size.Companion! Companion;
-  }
-
-  public static final class Size.Companion {
-    method public androidx.ui.engine.geometry.Size copy(androidx.ui.engine.geometry.Size source);
-    method public androidx.ui.engine.geometry.Size fromHeight(float height);
-    method public androidx.ui.engine.geometry.Size fromRadius(float radius);
-    method public androidx.ui.engine.geometry.Size fromWidth(float width);
-    method public androidx.ui.engine.geometry.Size getInfinite();
-    method public androidx.ui.engine.geometry.Size getZero();
-    method public androidx.ui.engine.geometry.Size? lerp(androidx.ui.engine.geometry.Size start, androidx.ui.engine.geometry.Size stop, float fraction);
-    method public androidx.ui.engine.geometry.Size square(float dimension);
-    property public final androidx.ui.engine.geometry.Size infinite;
-    property public final androidx.ui.engine.geometry.Size zero;
+    ctor public VerticalAlignmentLine(kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> merger);
   }
 
 }
@@ -1285,7 +351,7 @@
 
   public final class AndroidCanvasKt {
     method public static androidx.ui.graphics.Canvas Canvas(androidx.ui.graphics.Image image);
-    method public static androidx.ui.graphics.Canvas Canvas(androidx.ui.graphics.PictureRecorder recorder, androidx.ui.engine.geometry.Rect cullRect = Rect.largest);
+    method public static androidx.ui.graphics.Canvas Canvas(androidx.ui.graphics.PictureRecorder recorder, androidx.ui.geometry.Rect cullRect = Rect.largest);
     method public static androidx.ui.graphics.Canvas Canvas(android.graphics.Canvas c);
   }
 
@@ -1339,42 +405,42 @@
   }
 
   public final class BrushKt {
-    method public static androidx.ui.graphics.LinearGradient HorizontalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.core.Px startX, androidx.ui.core.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.Brush HorizontalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.core.Px startX, androidx.ui.core.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient LinearGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient LinearGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient HorizontalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.unit.Px startX, androidx.ui.unit.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.Brush HorizontalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.unit.Px startX, androidx.ui.unit.Px endX, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient LinearGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.unit.Px startX, androidx.ui.unit.Px startY, androidx.ui.unit.Px endX, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient LinearGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.unit.Px startX, androidx.ui.unit.Px startY, androidx.ui.unit.Px endX, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
     method public static androidx.ui.graphics.RadialGradient RadialGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, float centerX, float centerY, float radius, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
     method public static androidx.ui.graphics.RadialGradient RadialGradient(java.util.List<androidx.ui.graphics.Color> colors, float centerX, float centerY, float radius, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient VerticalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.core.Px startY, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.LinearGradient VerticalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.core.Px startY, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient VerticalGradient(java.util.List<androidx.ui.graphics.Color> colors, androidx.ui.unit.Px startY, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.LinearGradient VerticalGradient(kotlin.Pair<java.lang.Float,androidx.ui.graphics.Color>![] colorStops, androidx.ui.unit.Px startY, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
   }
 
   public interface Canvas {
     method public void clipPath(androidx.ui.graphics.Path path);
-    method public void clipRRect(androidx.ui.engine.geometry.RRect rrect);
-    method public void clipRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.graphics.ClipOp clipOp = androidx.ui.graphics.ClipOp.intersect);
+    method public void clipRRect(androidx.ui.geometry.RRect rrect);
+    method public void clipRect(androidx.ui.geometry.Rect rect, androidx.ui.graphics.ClipOp clipOp = androidx.ui.graphics.ClipOp.intersect);
     method public void concat(androidx.ui.vectormath64.Matrix4 matrix4);
-    method public void drawArc(androidx.ui.engine.geometry.Rect rect, float startAngle, float sweepAngle, boolean useCenter, androidx.ui.graphics.Paint paint);
-    method public default void drawArcRad(androidx.ui.engine.geometry.Rect rect, float startAngleRad, float sweepAngleRad, boolean useCenter, androidx.ui.graphics.Paint paint);
-    method public void drawCircle(androidx.ui.engine.geometry.Offset center, float radius, androidx.ui.graphics.Paint paint);
-    method public void drawDoubleRoundRect(androidx.ui.engine.geometry.RRect outer, androidx.ui.engine.geometry.RRect inner, androidx.ui.graphics.Paint paint);
-    method public void drawImage(androidx.ui.graphics.Image image, androidx.ui.engine.geometry.Offset topLeftOffset, androidx.ui.graphics.Paint paint);
-    method public void drawImageRect(androidx.ui.graphics.Image image, androidx.ui.engine.geometry.Rect src, androidx.ui.engine.geometry.Rect dst, androidx.ui.graphics.Paint paint);
-    method public void drawLine(androidx.ui.engine.geometry.Offset p1, androidx.ui.engine.geometry.Offset p2, androidx.ui.graphics.Paint paint);
-    method public void drawOval(androidx.ui.engine.geometry.Rect rect, androidx.ui.graphics.Paint paint);
+    method public void drawArc(androidx.ui.geometry.Rect rect, float startAngle, float sweepAngle, boolean useCenter, androidx.ui.graphics.Paint paint);
+    method public default void drawArcRad(androidx.ui.geometry.Rect rect, float startAngleRad, float sweepAngleRad, boolean useCenter, androidx.ui.graphics.Paint paint);
+    method public void drawCircle(androidx.ui.geometry.Offset center, float radius, androidx.ui.graphics.Paint paint);
+    method public void drawDoubleRoundRect(androidx.ui.geometry.RRect outer, androidx.ui.geometry.RRect inner, androidx.ui.graphics.Paint paint);
+    method public void drawImage(androidx.ui.graphics.Image image, androidx.ui.geometry.Offset topLeftOffset, androidx.ui.graphics.Paint paint);
+    method public void drawImageRect(androidx.ui.graphics.Image image, androidx.ui.geometry.Rect src, androidx.ui.geometry.Rect dst, androidx.ui.graphics.Paint paint);
+    method public void drawLine(androidx.ui.geometry.Offset p1, androidx.ui.geometry.Offset p2, androidx.ui.graphics.Paint paint);
+    method public void drawOval(androidx.ui.geometry.Rect rect, androidx.ui.graphics.Paint paint);
     method public void drawPath(androidx.ui.graphics.Path path, androidx.ui.graphics.Paint paint);
     method public void drawPicture(androidx.ui.graphics.Picture picture);
-    method public void drawPoints(androidx.ui.graphics.PointMode pointMode, java.util.List<androidx.ui.engine.geometry.Offset> points, androidx.ui.graphics.Paint paint);
-    method public void drawRRect(androidx.ui.engine.geometry.RRect rrect, androidx.ui.graphics.Paint paint);
+    method public void drawPoints(androidx.ui.graphics.PointMode pointMode, java.util.List<androidx.ui.geometry.Offset> points, androidx.ui.graphics.Paint paint);
+    method public void drawRRect(androidx.ui.geometry.RRect rrect, androidx.ui.graphics.Paint paint);
     method public void drawRawPoints(androidx.ui.graphics.PointMode pointMode, float[] points, androidx.ui.graphics.Paint paint);
-    method public void drawRect(androidx.ui.engine.geometry.Rect rect, androidx.ui.graphics.Paint paint);
+    method public void drawRect(androidx.ui.geometry.Rect rect, androidx.ui.graphics.Paint paint);
     method public void drawVertices(androidx.ui.Vertices vertices, androidx.ui.graphics.BlendMode blendMode, androidx.ui.graphics.Paint paint);
     method public android.graphics.Canvas getNativeCanvas();
     method public void restore();
     method public void rotate(float degrees);
     method public default void rotateRad(float radians);
     method public void save();
-    method public void saveLayer(androidx.ui.engine.geometry.Rect bounds, androidx.ui.graphics.Paint paint);
+    method public void saveLayer(androidx.ui.geometry.Rect bounds, androidx.ui.graphics.Paint paint);
     method public void scale(float sx, float sy = sx);
     method public void skew(float sx, float sy);
     method public default void skewRad(float sxRad, float syRad);
@@ -1384,7 +450,7 @@
 
   public final class CanvasKt {
     method public static inline void withSave(androidx.ui.graphics.Canvas, kotlin.jvm.functions.Function0<kotlin.Unit> block);
-    method public static inline void withSaveLayer(androidx.ui.graphics.Canvas, androidx.ui.engine.geometry.Rect bounds, androidx.ui.graphics.Paint paint, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+    method public static inline void withSaveLayer(androidx.ui.graphics.Canvas, androidx.ui.geometry.Rect bounds, androidx.ui.graphics.Paint paint, kotlin.jvm.functions.Function0<kotlin.Unit> block);
   }
 
   public enum ClipOp {
@@ -1468,7 +534,7 @@
     method public float component1();
     method public androidx.ui.graphics.FixedScale copy(float value);
     method public float getValue();
-    method public float scale(androidx.ui.core.PxSize srcSize, androidx.ui.core.PxSize dstSize);
+    method public float scale(androidx.ui.unit.PxSize srcSize, androidx.ui.unit.PxSize dstSize);
   }
 
   public interface Image {
@@ -1499,7 +565,7 @@
   }
 
   public final class LinearGradient extends androidx.ui.graphics.ShaderBrush {
-    method public androidx.ui.graphics.LinearGradient copy(java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? stops, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode);
+    method public androidx.ui.graphics.LinearGradient copy(java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? stops, androidx.ui.unit.Px startX, androidx.ui.unit.Px startY, androidx.ui.unit.Px endX, androidx.ui.unit.Px endY, androidx.ui.graphics.TileMode tileMode);
   }
 
   public final class MaskFilter {
@@ -1517,6 +583,35 @@
   public static final class MaskFilter.Companion {
   }
 
+  public abstract sealed class Outline {
+  }
+
+  public static final class Outline.Generic extends androidx.ui.graphics.Outline {
+    ctor public Outline.Generic(androidx.ui.graphics.Path path);
+    method public androidx.ui.graphics.Path component1();
+    method public androidx.ui.graphics.Outline.Generic copy(androidx.ui.graphics.Path path);
+    method public androidx.ui.graphics.Path getPath();
+  }
+
+  public static final class Outline.Rectangle extends androidx.ui.graphics.Outline {
+    ctor public Outline.Rectangle(androidx.ui.geometry.Rect rect);
+    method public androidx.ui.geometry.Rect component1();
+    method public androidx.ui.graphics.Outline.Rectangle copy(androidx.ui.geometry.Rect rect);
+    method public androidx.ui.geometry.Rect getRect();
+  }
+
+  public static final class Outline.Rounded extends androidx.ui.graphics.Outline {
+    ctor public Outline.Rounded(androidx.ui.geometry.RRect rrect);
+    method public androidx.ui.geometry.RRect component1();
+    method public androidx.ui.graphics.Outline.Rounded copy(androidx.ui.geometry.RRect rrect);
+    method public androidx.ui.geometry.RRect getRrect();
+  }
+
+  public final class OutlineKt {
+    method public static void addOutline(androidx.ui.graphics.Path, androidx.ui.graphics.Outline outline);
+    method public static void drawOutline(androidx.ui.graphics.Canvas, androidx.ui.graphics.Outline outline, androidx.ui.graphics.Paint paint);
+  }
+
   public final class Paint {
     ctor public Paint();
     method public android.graphics.Paint asFrameworkPaint();
@@ -1570,22 +665,22 @@
     ctor public Path(android.graphics.Path internalPath);
     ctor public Path();
     method public void _addRect(float left, float top, float right, float bottom);
-    method public void addArc(androidx.ui.engine.geometry.Rect oval, float startAngleDegrees, float sweepAngleDegrees);
-    method public void addArcRad(androidx.ui.engine.geometry.Rect oval, float startAngleRadians, float sweepAngleRadians);
-    method public void addOval(androidx.ui.engine.geometry.Rect oval);
-    method public void addPath(androidx.ui.graphics.Path path, androidx.ui.engine.geometry.Offset offset = Offset.zero, androidx.ui.vectormath64.Matrix4? matrix = null);
-    method public void addPolygon(java.util.List<androidx.ui.engine.geometry.Offset> points, boolean close);
-    method public void addRRect(androidx.ui.engine.geometry.RRect rrect);
-    method public void addRect(androidx.ui.engine.geometry.Rect rect);
-    method public void arcTo(androidx.ui.engine.geometry.Rect rect, float startAngleDegrees, float sweepAngleDegrees, boolean forceMoveTo);
-    method public void arcToPoint(androidx.ui.engine.geometry.Offset arcEnd, androidx.ui.engine.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
-    method public void arcToRad(androidx.ui.engine.geometry.Rect rect, float startAngleRadians, float sweepAngleRadians, boolean forceMoveTo);
+    method public void addArc(androidx.ui.geometry.Rect oval, float startAngleDegrees, float sweepAngleDegrees);
+    method public void addArcRad(androidx.ui.geometry.Rect oval, float startAngleRadians, float sweepAngleRadians);
+    method public void addOval(androidx.ui.geometry.Rect oval);
+    method public void addPath(androidx.ui.graphics.Path path, androidx.ui.geometry.Offset offset = Offset.zero, androidx.ui.vectormath64.Matrix4? matrix = null);
+    method public void addPolygon(java.util.List<androidx.ui.geometry.Offset> points, boolean close);
+    method public void addRRect(androidx.ui.geometry.RRect rrect);
+    method public void addRect(androidx.ui.geometry.Rect rect);
+    method public void arcTo(androidx.ui.geometry.Rect rect, float startAngleDegrees, float sweepAngleDegrees, boolean forceMoveTo);
+    method public void arcToPoint(androidx.ui.geometry.Offset arcEnd, androidx.ui.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
+    method public void arcToRad(androidx.ui.geometry.Rect rect, float startAngleRadians, float sweepAngleRadians, boolean forceMoveTo);
     method public void close();
     method public void conicTo(float x1, float y1, float x2, float y2, float w);
-    method public boolean contains(androidx.ui.engine.geometry.Offset offset);
+    method public boolean contains(androidx.ui.geometry.Offset offset);
     method public void cubicTo(float x1, float y1, float x2, float y2, float x3, float y3);
-    method public void extendWithPath(androidx.ui.graphics.Path path, androidx.ui.engine.geometry.Offset offset, androidx.ui.vectormath64.Matrix4 matrix);
-    method public androidx.ui.engine.geometry.Rect getBounds();
+    method public void extendWithPath(androidx.ui.graphics.Path path, androidx.ui.geometry.Offset offset, androidx.ui.vectormath64.Matrix4 matrix);
+    method public androidx.ui.geometry.Rect getBounds();
     method public androidx.ui.graphics.PathFillType getFillType();
     method public boolean isConvex();
     method public boolean isEmpty();
@@ -1593,7 +688,7 @@
     method public void moveTo(float dx, float dy);
     method public boolean op(androidx.ui.graphics.Path path1, androidx.ui.graphics.Path path2, androidx.ui.graphics.PathOperation operation);
     method public void quadraticBezierTo(float x1, float y1, float x2, float y2);
-    method public void relativeArcToPoint(androidx.ui.engine.geometry.Offset arcEndDelta, androidx.ui.engine.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
+    method public void relativeArcToPoint(androidx.ui.geometry.Offset arcEndDelta, androidx.ui.geometry.Radius radius = Radius.zero, float rotation = 0.0f, boolean largeArc = false, boolean clockwise = true);
     method public void relativeConicTo(float x1, float y1, float x2, float y2, float w);
     method public void relativeCubicTo(float x1, float y1, float x2, float y2, float x3, float y3);
     method public void relativeLineTo(float dx, float dy);
@@ -1601,7 +696,7 @@
     method public void relativeQuadraticBezierTo(float x1, float y1, float x2, float y2);
     method public void reset();
     method public void setFillType(androidx.ui.graphics.PathFillType value);
-    method public void shift(androidx.ui.engine.geometry.Offset offset);
+    method public void shift(androidx.ui.geometry.Offset offset);
     method public android.graphics.Path toFrameworkPath();
     method public androidx.ui.graphics.Path transform(androidx.ui.vectormath64.Matrix4 matrix);
     property public final boolean isConvex;
@@ -1628,7 +723,7 @@
 
   public final class Picture {
     ctor public Picture(android.graphics.Picture frameworkPicture);
-    method public androidx.ui.engine.geometry.Rect cullRect();
+    method public androidx.ui.geometry.Rect cullRect();
     method public void dispose();
     method public android.graphics.Picture getFrameworkPicture();
   }
@@ -1651,7 +746,7 @@
   }
 
   public interface ScaleFit {
-    method public float scale(androidx.ui.core.PxSize srcSize, androidx.ui.core.PxSize dstSize);
+    method public float scale(androidx.ui.unit.PxSize srcSize, androidx.ui.unit.PxSize dstSize);
     field public static final androidx.ui.graphics.ScaleFit.Companion! Companion;
   }
 
@@ -1686,26 +781,30 @@
 
   public final class ShaderKt {
     method public static androidx.ui.graphics.Shader ImageShader(androidx.ui.graphics.Image image, androidx.ui.graphics.TileMode tileModeX = androidx.ui.graphics.TileMode.Clamp, androidx.ui.graphics.TileMode tileModeY = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.Shader LinearGradientShader(androidx.ui.engine.geometry.Offset from, androidx.ui.engine.geometry.Offset to, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
-    method public static androidx.ui.graphics.Shader RadialGradientShader(androidx.ui.engine.geometry.Offset center, float radius, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.Shader LinearGradientShader(androidx.ui.geometry.Offset from, androidx.ui.geometry.Offset to, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
+    method public static androidx.ui.graphics.Shader RadialGradientShader(androidx.ui.geometry.Offset center, float radius, java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? colorStops = null, androidx.ui.graphics.TileMode tileMode = androidx.ui.graphics.TileMode.Clamp);
   }
 
   public final class Shadow {
-    ctor public Shadow(androidx.ui.graphics.Color color, androidx.ui.engine.geometry.Offset offset, androidx.ui.core.Px blurRadius);
+    ctor public Shadow(androidx.ui.graphics.Color color, androidx.ui.geometry.Offset offset, androidx.ui.unit.Px blurRadius);
     ctor public Shadow();
     method public androidx.ui.graphics.Color component1();
-    method public androidx.ui.engine.geometry.Offset component2();
-    method public androidx.ui.core.Px component3();
-    method public androidx.ui.graphics.Shadow copy(androidx.ui.graphics.Color color, androidx.ui.engine.geometry.Offset offset, androidx.ui.core.Px blurRadius);
-    method public androidx.ui.core.Px getBlurRadius();
+    method public androidx.ui.geometry.Offset component2();
+    method public androidx.ui.unit.Px component3();
+    method public androidx.ui.graphics.Shadow copy(androidx.ui.graphics.Color color, androidx.ui.geometry.Offset offset, androidx.ui.unit.Px blurRadius);
+    method public androidx.ui.unit.Px getBlurRadius();
     method public androidx.ui.graphics.Color getColor();
-    method public androidx.ui.engine.geometry.Offset getOffset();
+    method public androidx.ui.geometry.Offset getOffset();
   }
 
   public final class ShadowKt {
     method public static androidx.ui.graphics.Shadow lerp(androidx.ui.graphics.Shadow start, androidx.ui.graphics.Shadow stop, float fraction);
   }
 
+  public interface Shape {
+    method public androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
+  }
+
   public final class SolidColor implements androidx.ui.graphics.Brush {
     ctor public SolidColor(androidx.ui.graphics.Color value);
     method public void applyTo(androidx.ui.graphics.Paint p);
@@ -2203,85 +1302,16 @@
 
   public final class PointerInputTestUtilKt {
     method public static androidx.ui.core.PointerInputChange consume(androidx.ui.core.PointerInputChange, float dx = 0f, float dy = 0f, boolean downChange = false);
-    method public static androidx.ui.core.PointerInputChange down(int id = 0, androidx.ui.core.Duration duration = Duration.Zero, float x = 0f, float y = 0f);
-    method public static androidx.ui.core.PointerInputChange invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChanges, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass![] pointerEventPasses, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, java.util.List<androidx.ui.core.PointerInputChange> pointerInputChanges, java.util.List<? extends androidx.ui.core.PointerEventPass> pointerEventPasses, androidx.ui.core.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
-    method public static androidx.ui.core.PointerInputChange moveBy(androidx.ui.core.PointerInputChange, androidx.ui.core.Duration duration, float dx = 0f, float dy = 0f);
-    method public static androidx.ui.core.PointerInputChange moveTo(androidx.ui.core.PointerInputChange, androidx.ui.core.Duration duration, float x = 0f, float y = 0f);
-    method public static androidx.ui.core.PointerInputChange up(androidx.ui.core.PointerInputChange, androidx.ui.core.Duration duration);
-  }
-
-}
-
-package androidx.ui.util {
-
-  public final class Float16 implements java.lang.Comparable<androidx.ui.util.Float16> {
-    ctor public Float16(short halfValue);
-    ctor public Float16(float value);
-    ctor public Float16(double value);
-    method public androidx.ui.util.Float16 absoluteValue();
-    method public androidx.ui.util.Float16 ceil();
-    method public operator int compareTo(androidx.ui.util.Float16 other);
-    method public androidx.ui.util.Float16 floor();
-    method public int getExponent();
-    method public short getHalfValue();
-    method public androidx.ui.util.Float16 getSign();
-    method public int getSignificand();
-    method public boolean isFinite();
-    method public boolean isInfinite();
-    method public boolean isNaN();
-    method public boolean isNormalized();
-    method public androidx.ui.util.Float16 round();
-    method public int toBits();
-    method public byte toByte();
-    method public double toDouble();
-    method public float toFloat();
-    method public String toHexString();
-    method public int toInt();
-    method public long toLong();
-    method public int toRawBits();
-    method public short toShort();
-    method public androidx.ui.util.Float16 trunc();
-    method public androidx.ui.util.Float16 withSign(androidx.ui.util.Float16 sign);
-    property public final int exponent;
-    property public final androidx.ui.util.Float16 sign;
-    property public final int significand;
-    field public static final androidx.ui.util.Float16.Companion! Companion;
-    field public static final int MaxExponent = 15; // 0xf
-    field public static final int MinExponent = -14; // 0xfffffff2
-    field public static final int Size = 16; // 0x10
-  }
-
-  public static final class Float16.Companion {
-    method public androidx.ui.util.Float16 getEpsilon();
-    method public androidx.ui.util.Float16 getLowestValue();
-    method public androidx.ui.util.Float16 getMaxValue();
-    method public androidx.ui.util.Float16 getMinNormal();
-    method public androidx.ui.util.Float16 getMinValue();
-    method public androidx.ui.util.Float16 getNaN();
-    method public androidx.ui.util.Float16 getNegativeInfinity();
-    method public androidx.ui.util.Float16 getNegativeZero();
-    method public androidx.ui.util.Float16 getPositiveInfinity();
-    method public androidx.ui.util.Float16 getPositiveZero();
-    property public final androidx.ui.util.Float16 Epsilon;
-    property public final androidx.ui.util.Float16 LowestValue;
-    property public final androidx.ui.util.Float16 MaxValue;
-    property public final androidx.ui.util.Float16 MinNormal;
-    property public final androidx.ui.util.Float16 MinValue;
-    property public final androidx.ui.util.Float16 NaN;
-    property public final androidx.ui.util.Float16 NegativeInfinity;
-    property public final androidx.ui.util.Float16 NegativeZero;
-    property public final androidx.ui.util.Float16 PositiveInfinity;
-    property public final androidx.ui.util.Float16 PositiveZero;
-  }
-
-  public final class Float16Kt {
-    method public static androidx.ui.util.Float16 max(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
-    method public static androidx.ui.util.Float16 min(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
+    method public static androidx.ui.core.PointerInputChange down(int id = 0, androidx.ui.unit.Duration duration = Duration.Zero, float x = 0f, float y = 0f);
+    method public static androidx.ui.core.PointerInputChange invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChanges, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverAllPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange![] pointerInputChanges, androidx.ui.core.PointerEventPass pointerEventPass, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static androidx.ui.core.PointerInputChange invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, androidx.ui.core.PointerInputChange pointerInputChange, androidx.ui.core.PointerEventPass![] pointerEventPasses, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static java.util.List<androidx.ui.core.PointerInputChange> invokeOverPasses(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>>, java.util.List<androidx.ui.core.PointerInputChange> pointerInputChanges, java.util.List<? extends androidx.ui.core.PointerEventPass> pointerEventPasses, androidx.ui.unit.IntPxSize size = IntPxSize(Int.MAX_VALUE.ipx, Int.MAX_VALUE.ipx));
+    method public static androidx.ui.core.PointerInputChange moveBy(androidx.ui.core.PointerInputChange, androidx.ui.unit.Duration duration, float dx = 0f, float dy = 0f);
+    method public static androidx.ui.core.PointerInputChange moveTo(androidx.ui.core.PointerInputChange, androidx.ui.unit.Duration duration, float x = 0f, float y = 0f);
+    method public static androidx.ui.core.PointerInputChange up(androidx.ui.core.PointerInputChange, androidx.ui.unit.Duration duration);
   }
 
 }
@@ -2418,12 +1448,12 @@
 
   public final class Matrix4Kt {
     method public static Float? getAsScale(androidx.ui.vectormath64.Matrix4);
-    method public static androidx.ui.engine.geometry.Offset? getAsTranslation(androidx.ui.vectormath64.Matrix4);
-    method public static androidx.ui.engine.geometry.Rect inverseTransformRect(androidx.ui.vectormath64.Matrix4 transform, androidx.ui.engine.geometry.Rect rect);
+    method public static androidx.ui.geometry.Offset? getAsTranslation(androidx.ui.vectormath64.Matrix4);
+    method public static androidx.ui.geometry.Rect inverseTransformRect(androidx.ui.vectormath64.Matrix4 transform, androidx.ui.geometry.Rect rect);
     method public static boolean isIdentity(androidx.ui.vectormath64.Matrix4);
     method public static boolean matrixEquals(androidx.ui.vectormath64.Matrix4? a, androidx.ui.vectormath64.Matrix4? b);
-    method public static androidx.ui.engine.geometry.Offset transformPoint(androidx.ui.vectormath64.Matrix4, androidx.ui.engine.geometry.Offset point);
-    method public static androidx.ui.engine.geometry.Rect transformRect(androidx.ui.vectormath64.Matrix4, androidx.ui.engine.geometry.Rect rect);
+    method public static androidx.ui.geometry.Offset transformPoint(androidx.ui.vectormath64.Matrix4, androidx.ui.geometry.Offset point);
+    method public static androidx.ui.geometry.Rect transformRect(androidx.ui.vectormath64.Matrix4, androidx.ui.geometry.Rect rect);
   }
 
   public enum MatrixColumn {
diff --git a/ui/ui-core/build.gradle b/ui/ui-core/build.gradle
index 50c73d7..639dd19 100644
--- a/ui/ui-core/build.gradle
+++ b/ui/ui-core/build.gradle
@@ -32,6 +32,8 @@
     implementation(KOTLIN_STDLIB)
 
     api "androidx.annotation:annotation:1.1.0"
+    api project(":ui:ui-unit")
+    implementation project(":ui:ui-util")
 
     implementation project(":compose:compose-runtime")
 
diff --git a/ui/ui-core/src/androidTest/AndroidManifest.xml b/ui/ui-core/src/androidTest/AndroidManifest.xml
index 7dd9635..d556a09 100644
--- a/ui/ui-core/src/androidTest/AndroidManifest.xml
+++ b/ui/ui-core/src/androidTest/AndroidManifest.xml
@@ -14,11 +14,5 @@
      limitations under the License.
 -->
 <manifest package="androidx.ui.core" xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <application>
-        <activity android:name="androidx.ui.core.DpDeviceTest$Companion$TestActivity"
-            android:theme="@android:style/Theme.Material.NoActionBar.Fullscreen"/>
-        <activity android:name="androidx.ui.core.SpDeviceTest$Companion$TestActivity"
-            android:theme="@android:style/Theme.Material.NoActionBar.Fullscreen"/>
-    </application>
+    <application/>
 </manifest>
diff --git a/ui/ui-core/src/androidTest/java/androidx/ui/painting/PathTest.kt b/ui/ui-core/src/androidTest/java/androidx/ui/painting/PathTest.kt
index 365d74c..6ecd3eb 100644
--- a/ui/ui-core/src/androidTest/java/androidx/ui/painting/PathTest.kt
+++ b/ui/ui-core/src/androidTest/java/androidx/ui/painting/PathTest.kt
@@ -17,7 +17,7 @@
 package androidx.ui.painting
 
 import androidx.test.filters.SmallTest
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Canvas
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Image
diff --git a/ui/ui-core/src/main/java/androidx/ui/Vertices.kt b/ui/ui-core/src/main/java/androidx/ui/Vertices.kt
index cd1df6a..3ec0bd6 100644
--- a/ui/ui-core/src/main/java/androidx/ui/Vertices.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/Vertices.kt
@@ -16,7 +16,7 @@
 
 package androidx.ui
 
-import androidx.ui.engine.geometry.Offset
+import androidx.ui.geometry.Offset
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.toArgb
 
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/Alignment.kt b/ui/ui-core/src/main/java/androidx/ui/core/Alignment.kt
index eb9ed6d..f6044be 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/Alignment.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/core/Alignment.kt
@@ -16,6 +16,11 @@
 
 package androidx.ui.core
 
+import androidx.ui.unit.IntPxPosition
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.round
+import androidx.ui.unit.toPx
+
 /**
  * Represents a positioning of a point inside a 2D box. [Alignment] is often used to define
  * the alignment of a box inside a parent container.
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/AlignmentLine.kt b/ui/ui-core/src/main/java/androidx/ui/core/AlignmentLine.kt
index bd874c5..80a6ccf 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/AlignmentLine.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/core/AlignmentLine.kt
@@ -16,6 +16,8 @@
 
 package androidx.ui.core
 
+import androidx.ui.unit.IntPx
+
 /**
  * Defines a layout line that can be used by layout models to align and position layout children.
  * When a [Layout] or [ComplexLayout] provides a value for a particular [AlignmentLine], this can
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/Constraints.kt b/ui/ui-core/src/main/java/androidx/ui/core/Constraints.kt
index 4db7318..83cf619 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/Constraints.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/core/Constraints.kt
@@ -17,6 +17,12 @@
 package androidx.ui.core
 
 import androidx.compose.Immutable
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.coerceAtLeast
+import androidx.ui.unit.coerceIn
+import androidx.ui.unit.ipx
+import androidx.ui.unit.isFinite
 
 /**
  * Immutable constraints used for measuring child [Layout]s. A parent [Layout]
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/DrawModifier.kt b/ui/ui-core/src/main/java/androidx/ui/core/DrawModifier.kt
index 95040a2..0ca39e2 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/DrawModifier.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/core/DrawModifier.kt
@@ -17,6 +17,9 @@
 package androidx.ui.core
 
 import androidx.ui.graphics.Canvas
+import androidx.ui.unit.Density
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.PxSize
 
 /**
  * A [Modifier.Element] that draws into the space of the layout.
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/DrawReceiver.kt b/ui/ui-core/src/main/java/androidx/ui/core/DrawReceiver.kt
index f7a62fd..ac7a36f 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/DrawReceiver.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/core/DrawReceiver.kt
@@ -15,6 +15,8 @@
  */
 package androidx.ui.core
 
+import androidx.ui.unit.DensityScope
+
 /**
  * Receiver scope for [Draw] lambda that allows ordering the child drawing between
  * canvas operations. Most Draw calls don't accept children, but in some rare cases
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/IntrinsicMeasurable.kt b/ui/ui-core/src/main/java/androidx/ui/core/IntrinsicMeasurable.kt
index 1c32d19..58583ac 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/IntrinsicMeasurable.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/core/IntrinsicMeasurable.kt
@@ -16,6 +16,9 @@
 
 package androidx.ui.core
 
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.IntPx
+
 /**
  * A part of the composition that can be measured. This represents a layout.
  * The instance should never be stored.
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/LayoutCoordinates.kt b/ui/ui-core/src/main/java/androidx/ui/core/LayoutCoordinates.kt
index c1b34a2..2ecbf97 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/LayoutCoordinates.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/core/LayoutCoordinates.kt
@@ -16,6 +16,10 @@
 
 package androidx.ui.core
 
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+
 /**
  * A holder of the measured bounds for the layout (MeasureBox).
  */
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/LayoutModifier.kt b/ui/ui-core/src/main/java/androidx/ui/core/LayoutModifier.kt
index 0522f21..707d6e8 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/LayoutModifier.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/core/LayoutModifier.kt
@@ -16,6 +16,11 @@
 
 package androidx.ui.core
 
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxPosition
+import androidx.ui.unit.IntPxSize
+
 /**
  * A [Modifier.Element] that changes the way a UI component is measured and laid out.
  */
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/MeasureScope.kt b/ui/ui-core/src/main/java/androidx/ui/core/MeasureScope.kt
index a66915e..854b151 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/MeasureScope.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/core/MeasureScope.kt
@@ -16,6 +16,9 @@
 
 package androidx.ui.core
 
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.IntPx
+
 /**
  * The receiver scope of a layout's measure lambda. The return value of the
  * measure lambda is [LayoutResult], which should be returned by [layout]
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/ParentDataModifier.kt b/ui/ui-core/src/main/java/androidx/ui/core/ParentDataModifier.kt
index b3893da..2a2c21f 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/ParentDataModifier.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/core/ParentDataModifier.kt
@@ -16,6 +16,8 @@
 
 package androidx.ui.core
 
+import androidx.ui.unit.DensityScope
+
 /**
  * A [Modifier.Element] that changes the way a UI component is measured and laid out.
  */
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/Placeable.kt b/ui/ui-core/src/main/java/androidx/ui/core/Placeable.kt
index 42e091f..37c8c2b7 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/Placeable.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/core/Placeable.kt
@@ -16,6 +16,13 @@
 
 package androidx.ui.core
 
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxPosition
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.Px
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.round
+
 /**
  * A [Placeable] corresponds to a child layout that can be positioned by its
  * parent layout. Most [Placeable]s are the result of a [Measurable.measure] call.
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/PointerInput.kt b/ui/ui-core/src/main/java/androidx/ui/core/PointerInput.kt
index 9f92783..8ef19a2 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/PointerInput.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/core/PointerInput.kt
@@ -16,6 +16,12 @@
 
 package androidx.ui.core
 
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.Px
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.Uptime
+import androidx.ui.unit.px
+
 /**
  * Describes a change that has occurred for a particular pointer, as well as how much of the change
  * has been consumed (meaning, used by a node in the UI)
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/RectHelper.kt b/ui/ui-core/src/main/java/androidx/ui/core/RectHelper.kt
index fdd2d38..b5d739e 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/RectHelper.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/core/RectHelper.kt
@@ -15,7 +15,7 @@
  */
 package androidx.ui.core
 
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 
 fun Rect.toFrameworkRect(): android.graphics.Rect {
     return android.graphics.Rect(
diff --git a/ui/ui-core/src/main/java/androidx/ui/graphics/AndroidCanvas.kt b/ui/ui-core/src/main/java/androidx/ui/graphics/AndroidCanvas.kt
index 0883202..16f8683 100644
--- a/ui/ui-core/src/main/java/androidx/ui/graphics/AndroidCanvas.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/graphics/AndroidCanvas.kt
@@ -20,9 +20,9 @@
 import androidx.ui.Vertices
 import androidx.ui.core.toFrameworkRect
 import androidx.ui.core.toFrameworkRectF
-import androidx.ui.engine.geometry.Offset
-import androidx.ui.engine.geometry.RRect
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Offset
+import androidx.ui.geometry.RRect
+import androidx.ui.geometry.Rect
 import androidx.ui.vectormath64.Matrix4
 import androidx.ui.vectormath64.isIdentity
 
diff --git a/ui/ui-core/src/main/java/androidx/ui/graphics/Brush.kt b/ui/ui-core/src/main/java/androidx/ui/graphics/Brush.kt
index 25e509f..e7e0d24 100644
--- a/ui/ui-core/src/main/java/androidx/ui/graphics/Brush.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/graphics/Brush.kt
@@ -16,8 +16,8 @@
 
 package androidx.ui.graphics
 
-import androidx.ui.core.Px
-import androidx.ui.engine.geometry.Offset
+import androidx.ui.geometry.Offset
+import androidx.ui.unit.Px
 
 interface Brush {
     fun applyTo(p: Paint)
diff --git a/ui/ui-core/src/main/java/androidx/ui/graphics/Canvas.kt b/ui/ui-core/src/main/java/androidx/ui/graphics/Canvas.kt
index d4c3af2..4fd9d45 100644
--- a/ui/ui-core/src/main/java/androidx/ui/graphics/Canvas.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/graphics/Canvas.kt
@@ -17,9 +17,9 @@
 package androidx.ui.graphics
 
 import androidx.ui.Vertices
-import androidx.ui.engine.geometry.Offset
-import androidx.ui.engine.geometry.RRect
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Offset
+import androidx.ui.geometry.RRect
+import androidx.ui.geometry.Rect
 import androidx.ui.vectormath64.Matrix4
 import androidx.ui.vectormath64.degrees
 
diff --git a/ui/ui-core/src/main/java/androidx/ui/graphics/Color.kt b/ui/ui-core/src/main/java/androidx/ui/graphics/Color.kt
index 2fb9a66..7717f94 100644
--- a/ui/ui-core/src/main/java/androidx/ui/graphics/Color.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/graphics/Color.kt
@@ -20,13 +20,13 @@
 import androidx.annotation.IntRange
 import androidx.annotation.Size
 import androidx.compose.Immutable
+import androidx.ui.graphics.colorspace.ColorModel
 import androidx.ui.graphics.colorspace.ColorSpace
 import androidx.ui.graphics.colorspace.ColorSpaces
-import androidx.ui.graphics.colorspace.ColorModel
 import androidx.ui.graphics.colorspace.Rgb
 import androidx.ui.graphics.colorspace.connect
-import androidx.ui.lerp
 import androidx.ui.util.Float16
+import androidx.ui.util.lerp
 import kotlin.math.max
 import kotlin.math.min
 
diff --git a/ui/ui-core/src/main/java/androidx/ui/engine/geometry/Outline.kt b/ui/ui-core/src/main/java/androidx/ui/graphics/Outline.kt
similarity index 90%
rename from ui/ui-core/src/main/java/androidx/ui/engine/geometry/Outline.kt
rename to ui/ui-core/src/main/java/androidx/ui/graphics/Outline.kt
index c0fb812..5e17d55 100644
--- a/ui/ui-core/src/main/java/androidx/ui/engine/geometry/Outline.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/graphics/Outline.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright 2019 The Android Open Source Project
+ * Copyright 2020 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,11 +14,10 @@
  * limitations under the License.
  */
 
-package androidx.ui.engine.geometry
+package androidx.ui.graphics
 
-import androidx.ui.graphics.Canvas
-import androidx.ui.graphics.Paint
-import androidx.ui.graphics.Path
+import androidx.ui.geometry.RRect
+import androidx.ui.geometry.Rect
 
 /**
  * Defines a simple shape, used for bounding graphical regions.
diff --git a/ui/ui-core/src/main/java/androidx/ui/graphics/Path.kt b/ui/ui-core/src/main/java/androidx/ui/graphics/Path.kt
index 077d364..9efe7bc 100644
--- a/ui/ui-core/src/main/java/androidx/ui/graphics/Path.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/graphics/Path.kt
@@ -17,10 +17,10 @@
 package androidx.ui.graphics
 
 import androidx.ui.core.toFrameworkRect
-import androidx.ui.engine.geometry.Offset
-import androidx.ui.engine.geometry.RRect
-import androidx.ui.engine.geometry.Radius
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Offset
+import androidx.ui.geometry.RRect
+import androidx.ui.geometry.Radius
+import androidx.ui.geometry.Rect
 import androidx.ui.vectormath64.Matrix4
 import androidx.ui.vectormath64.degrees
 
diff --git a/ui/ui-core/src/main/java/androidx/ui/graphics/Picture.kt b/ui/ui-core/src/main/java/androidx/ui/graphics/Picture.kt
index e358c22..d3cc808 100644
--- a/ui/ui-core/src/main/java/androidx/ui/graphics/Picture.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/graphics/Picture.kt
@@ -1,6 +1,6 @@
 package androidx.ui.graphics
 
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 
 /**
  * An object representing a sequence of recorded graphical operations.
diff --git a/ui/ui-core/src/main/java/androidx/ui/graphics/ScaleFit.kt b/ui/ui-core/src/main/java/androidx/ui/graphics/ScaleFit.kt
index a91c695..7a929ce 100644
--- a/ui/ui-core/src/main/java/androidx/ui/graphics/ScaleFit.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/graphics/ScaleFit.kt
@@ -16,7 +16,7 @@
 
 package androidx.ui.graphics
 
-import androidx.ui.core.PxSize
+import androidx.ui.unit.PxSize
 
 private const val OriginalScale = 1.0f
 
diff --git a/ui/ui-core/src/main/java/androidx/ui/graphics/Shader.kt b/ui/ui-core/src/main/java/androidx/ui/graphics/Shader.kt
index 05afaa1..afbb2d5 100644
--- a/ui/ui-core/src/main/java/androidx/ui/graphics/Shader.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/graphics/Shader.kt
@@ -19,7 +19,7 @@
 import android.graphics.BitmapShader
 import android.graphics.LinearGradient
 import android.graphics.RadialGradient
-import androidx.ui.engine.geometry.Offset
+import androidx.ui.geometry.Offset
 
 /**
  * Class that represents the corresponding Shader implementation on a platform. This maps
diff --git a/ui/ui-core/src/main/java/androidx/ui/graphics/Shadow.kt b/ui/ui-core/src/main/java/androidx/ui/graphics/Shadow.kt
index 9b15e42..4f1ecbb 100644
--- a/ui/ui-core/src/main/java/androidx/ui/graphics/Shadow.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/graphics/Shadow.kt
@@ -17,10 +17,10 @@
 package androidx.ui.graphics
 
 import androidx.compose.Immutable
-import androidx.ui.core.Px
-import androidx.ui.core.lerp
-import androidx.ui.core.px
-import androidx.ui.engine.geometry.Offset
+import androidx.ui.geometry.Offset
+import androidx.ui.unit.Px
+import androidx.ui.unit.lerp
+import androidx.ui.unit.px
 
 /**
  * A single shadow.
diff --git a/ui/ui-core/src/main/java/androidx/ui/engine/geometry/Shape.kt b/ui/ui-core/src/main/java/androidx/ui/graphics/Shape.kt
similarity index 85%
rename from ui/ui-core/src/main/java/androidx/ui/engine/geometry/Shape.kt
rename to ui/ui-core/src/main/java/androidx/ui/graphics/Shape.kt
index 431053c..1c177ad 100644
--- a/ui/ui-core/src/main/java/androidx/ui/engine/geometry/Shape.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/graphics/Shape.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright 2019 The Android Open Source Project
+ * Copyright 2020 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package androidx.ui.engine.geometry
+package androidx.ui.graphics
 
-import androidx.ui.core.Density
-import androidx.ui.core.PxSize
+import androidx.ui.unit.Density
+import androidx.ui.unit.PxSize
 
 /**
  * Defines a generic shape.
diff --git a/ui/ui-core/src/main/java/androidx/ui/testutils/PointerInputTestUtil.kt b/ui/ui-core/src/main/java/androidx/ui/testutils/PointerInputTestUtil.kt
index b2e2118..809ccc7 100644
--- a/ui/ui-core/src/main/java/androidx/ui/testutils/PointerInputTestUtil.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/testutils/PointerInputTestUtil.kt
@@ -17,16 +17,16 @@
 package androidx.ui.testutils
 
 import androidx.ui.core.ConsumedData
-import androidx.ui.core.Duration
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.PointerEventPass
 import androidx.ui.core.PointerInputChange
 import androidx.ui.core.PointerInputData
 import androidx.ui.core.PointerInputHandler
-import androidx.ui.core.PxPosition
-import androidx.ui.core.Uptime
-import androidx.ui.core.ipx
-import androidx.ui.core.px
+import androidx.ui.unit.Duration
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.Uptime
+import androidx.ui.unit.ipx
+import androidx.ui.unit.px
 
 fun down(
     id: Int = 0,
diff --git a/ui/ui-core/src/main/java/androidx/ui/vectormath64/Matrix4.kt b/ui/ui-core/src/main/java/androidx/ui/vectormath64/Matrix4.kt
index 9ac6ad2..f125659 100644
--- a/ui/ui-core/src/main/java/androidx/ui/vectormath64/Matrix4.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/vectormath64/Matrix4.kt
@@ -17,8 +17,8 @@
 
 package androidx.ui.vectormath64
 
-import androidx.ui.engine.geometry.Offset
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Offset
+import androidx.ui.geometry.Rect
 import kotlin.math.asin
 import kotlin.math.atan2
 import kotlin.math.cos
diff --git a/ui/ui-core/src/test/java/androidx/ui/core/ConstraintsTest.kt b/ui/ui-core/src/test/java/androidx/ui/core/ConstraintsTest.kt
index 42c8257..1f68ddc 100644
--- a/ui/ui-core/src/test/java/androidx/ui/core/ConstraintsTest.kt
+++ b/ui/ui-core/src/test/java/androidx/ui/core/ConstraintsTest.kt
@@ -16,6 +16,9 @@
 
 package androidx.ui.core
 
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.ipx
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertFalse
 import org.junit.Assert.assertTrue
diff --git a/ui/ui-core/src/test/java/androidx/ui/core/PointerInputTest.kt b/ui/ui-core/src/test/java/androidx/ui/core/PointerInputTest.kt
index 07984de..970bafc 100644
--- a/ui/ui-core/src/test/java/androidx/ui/core/PointerInputTest.kt
+++ b/ui/ui-core/src/test/java/androidx/ui/core/PointerInputTest.kt
@@ -17,6 +17,10 @@
 package androidx.ui.core
 
 import androidx.test.filters.SmallTest
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.Uptime
+import androidx.ui.unit.milliseconds
+import androidx.ui.unit.px
 import org.hamcrest.CoreMatchers.`is`
 import org.hamcrest.core.IsEqual.equalTo
 import org.junit.Assert.assertThat
diff --git a/ui/ui-core/src/test/java/androidx/ui/graphics/ColorTest.kt b/ui/ui-core/src/test/java/androidx/ui/graphics/ColorTest.kt
index d71e49f..1eaee97 100644
--- a/ui/ui-core/src/test/java/androidx/ui/graphics/ColorTest.kt
+++ b/ui/ui-core/src/test/java/androidx/ui/graphics/ColorTest.kt
@@ -17,8 +17,8 @@
 package androidx.ui.graphics
 import androidx.test.filters.SmallTest
 import androidx.ui.graphics.colorspace.ColorSpaces
-import androidx.ui.lerp
-import androidx.ui.toHexString
+import androidx.ui.util.lerp
+import androidx.ui.util.toHexString
 import org.junit.Assert.assertEquals
 import org.junit.Test
 import org.junit.runner.RunWith
@@ -111,8 +111,16 @@
             val color = lerp(red, green, t)
             val expectedLinear = Color(
                 red = lerp(redLinear.red, greenLinear.red, t),
-                green = lerp(redLinear.green, greenLinear.green, t),
-                blue = lerp(redLinear.blue, greenLinear.blue, t),
+                green = lerp(
+                    redLinear.green,
+                    greenLinear.green,
+                    t
+                ),
+                blue = lerp(
+                    redLinear.blue,
+                    greenLinear.blue,
+                    t
+                ),
                 colorSpace = ColorSpaces.LinearExtendedSrgb
             )
             val expected = expectedLinear.convert(ColorSpaces.Srgb)
@@ -126,7 +134,12 @@
         for (i in 0..255) {
             val t = i / 255f
             val color = lerp(red, transparentRed, t)
-            val expected = Color.Red.copy(alpha = lerp(1f, 0f, t))
+            val expected = Color.Red.copy(alpha = lerp(
+                1f,
+                0f,
+                t
+            )
+            )
             val colorARGB = Color(color.toArgb())
             val expectedARGB = Color(expected.toArgb())
             assertEquals("at t = $t[$i] was ${colorARGB.toArgb().toHexString()}, " +
diff --git a/ui/ui-core/src/test/java/androidx/ui/graphics/ScaleFitTest.kt b/ui/ui-core/src/test/java/androidx/ui/graphics/ScaleFitTest.kt
index d33cc18..a2f80a9 100644
--- a/ui/ui-core/src/test/java/androidx/ui/graphics/ScaleFitTest.kt
+++ b/ui/ui-core/src/test/java/androidx/ui/graphics/ScaleFitTest.kt
@@ -17,8 +17,8 @@
 package androidx.ui.graphics
 
 import androidx.test.filters.SmallTest
-import androidx.ui.core.IntPx
-import androidx.ui.core.PxSize
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.PxSize
 import org.junit.Assert.assertEquals
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-core/src/test/java/androidx/ui/painting/ShadowTest.kt b/ui/ui-core/src/test/java/androidx/ui/painting/ShadowTest.kt
index 6d5971b..c68fe33 100644
--- a/ui/ui-core/src/test/java/androidx/ui/painting/ShadowTest.kt
+++ b/ui/ui-core/src/test/java/androidx/ui/painting/ShadowTest.kt
@@ -16,12 +16,12 @@
 
 package androidx.ui.painting
 
-import androidx.ui.core.lerp
-import androidx.ui.core.px
-import androidx.ui.engine.geometry.Offset
+import androidx.ui.geometry.Offset
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Shadow
 import androidx.ui.graphics.lerp
+import androidx.ui.unit.lerp
+import androidx.ui.unit.px
 import org.hamcrest.CoreMatchers.equalTo
 import org.junit.Assert.assertThat
 import org.junit.Test
diff --git a/ui/ui-foundation/api/0.1.0-dev04.txt b/ui/ui-foundation/api/0.1.0-dev04.txt
index 8d54edf..32d6c68 100644
--- a/ui/ui-foundation/api/0.1.0-dev04.txt
+++ b/ui/ui-foundation/api/0.1.0-dev04.txt
@@ -4,8 +4,8 @@
   public final class BackgroundKt {
     method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Color color);
     method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Brush brush);
-    method public static androidx.ui.core.DrawModifier background(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Color color);
-    method public static androidx.ui.core.DrawModifier background(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Brush brush);
+    method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Color color);
+    method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Brush brush);
   }
 
   public final class ClickableKt {
@@ -13,8 +13,8 @@
   }
 
   public final class ColoredRectKt {
-    method public static void ColoredRect(androidx.ui.graphics.Brush brush, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null);
-    method public static void ColoredRect(androidx.ui.graphics.Color color, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null);
+    method public static void ColoredRect(androidx.ui.graphics.Brush brush, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null);
+    method public static void ColoredRect(androidx.ui.graphics.Color color, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null);
   }
 
   public final class ContentColorKt {
@@ -66,18 +66,18 @@
     ctor public ScrollerPosition();
     method public void fling(float startVelocity);
     method public androidx.ui.foundation.animation.FlingConfig getFlingConfig();
-    method public androidx.ui.core.Px getMaxPosition();
-    method public androidx.ui.core.Px getValue();
+    method public androidx.ui.unit.Px getMaxPosition();
+    method public androidx.ui.unit.Px getValue();
     method public boolean isAnimating();
-    method public void scrollBy(androidx.ui.core.Px value);
-    method public void scrollTo(androidx.ui.core.Px value);
+    method public void scrollBy(androidx.ui.unit.Px value);
+    method public void scrollTo(androidx.ui.unit.Px value);
     method public void setFlingConfig(androidx.ui.foundation.animation.FlingConfig p);
-    method public void smoothScrollBy(androidx.ui.core.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
-    method public void smoothScrollTo(androidx.ui.core.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
+    method public void smoothScrollBy(androidx.ui.unit.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
+    method public void smoothScrollTo(androidx.ui.unit.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
     property public final androidx.ui.foundation.animation.FlingConfig flingConfig;
     property public final boolean isAnimating;
-    property public final androidx.ui.core.Px maxPosition;
-    property public final androidx.ui.core.Px value;
+    property public final androidx.ui.unit.Px maxPosition;
+    property public final androidx.ui.unit.Px value;
   }
 
   public final class Strings {
@@ -162,7 +162,7 @@
   }
 
   public final class DraggableKt {
-    method public static void Draggable(androidx.ui.foundation.gestures.DragDirection dragDirection, androidx.ui.foundation.ValueHolder<java.lang.Float> dragValue, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onDragValueChangeRequested, kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>  boolean enabled = true, boolean isValueAnimating = false, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Draggable(androidx.ui.foundation.gestures.DragDirection dragDirection, androidx.ui.foundation.ValueHolder<java.lang.Float> dragValue, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onDragValueChangeRequested, kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>  boolean enabled = true, boolean isValueAnimating = false, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class FloatDragValueController implements androidx.ui.foundation.gestures.DragValueController {
@@ -222,18 +222,18 @@
 package androidx.ui.foundation.shape {
 
   public final class DrawShapeKt {
-    method public static void DrawShape(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Color color);
-    method public static void DrawShape(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Brush brush);
+    method public static void DrawShape(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Color color);
+    method public static void DrawShape(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Brush brush);
   }
 
-  public final class GenericShape implements androidx.ui.engine.geometry.Shape {
-    ctor public GenericShape(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.core.PxSize,kotlin.Unit> builder);
-    method public androidx.ui.foundation.shape.GenericShape copy(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.core.PxSize,kotlin.Unit> builder);
-    method public androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
+  public final class GenericShape implements androidx.ui.graphics.Shape {
+    ctor public GenericShape(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.unit.PxSize,kotlin.Unit> builder);
+    method public androidx.ui.foundation.shape.GenericShape copy(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.unit.PxSize,kotlin.Unit> builder);
+    method public androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
   }
 
   public final class RectangleShapeKt {
-    method public static androidx.ui.engine.geometry.Shape getRectangleShape();
+    method public static androidx.ui.graphics.Shape getRectangleShape();
   }
 
 }
@@ -241,39 +241,39 @@
 package androidx.ui.foundation.shape.border {
 
   public final class Border {
-    ctor public Border(androidx.ui.graphics.Brush brush, androidx.ui.core.Dp width);
+    ctor public Border(androidx.ui.graphics.Brush brush, androidx.ui.unit.Dp width);
     method public androidx.ui.graphics.Brush component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.foundation.shape.border.Border copy(androidx.ui.graphics.Brush brush, androidx.ui.core.Dp width);
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.foundation.shape.border.Border copy(androidx.ui.graphics.Brush brush, androidx.ui.unit.Dp width);
     method public androidx.ui.graphics.Brush getBrush();
-    method public androidx.ui.core.Dp getWidth();
+    method public androidx.ui.unit.Dp getWidth();
   }
 
   public final class BorderKt {
-    method public static androidx.ui.foundation.shape.border.Border Border(androidx.ui.graphics.Color color, androidx.ui.core.Dp width);
+    method public static androidx.ui.foundation.shape.border.Border Border(androidx.ui.graphics.Color color, androidx.ui.unit.Dp width);
   }
 
   public final class DrawBorderKt {
-    method public static void DrawBorder(androidx.ui.engine.geometry.Shape shape, androidx.ui.foundation.shape.border.Border border);
+    method public static void DrawBorder(androidx.ui.graphics.Shape shape, androidx.ui.foundation.shape.border.Border border);
   }
 
 }
 
 package androidx.ui.foundation.shape.corner {
 
-  public abstract class CornerBasedShape implements androidx.ui.engine.geometry.Shape {
+  public abstract class CornerBasedShape implements androidx.ui.graphics.Shape {
     ctor public CornerBasedShape(androidx.ui.foundation.shape.corner.CornerSize topLeft, androidx.ui.foundation.shape.corner.CornerSize topRight, androidx.ui.foundation.shape.corner.CornerSize bottomRight, androidx.ui.foundation.shape.corner.CornerSize bottomLeft);
-    method public final androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
-    method public abstract androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Px topLeft, androidx.ui.core.Px topRight, androidx.ui.core.Px bottomRight, androidx.ui.core.Px bottomLeft);
+    method public final androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
+    method public abstract androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Px topLeft, androidx.ui.unit.Px topRight, androidx.ui.unit.Px bottomRight, androidx.ui.unit.Px bottomLeft);
   }
 
   public interface CornerSize {
-    method public androidx.ui.core.Px toPx(androidx.ui.core.PxSize shapeSize, androidx.ui.core.Density density);
+    method public androidx.ui.unit.Px toPx(androidx.ui.unit.PxSize shapeSize, androidx.ui.unit.Density density);
   }
 
   public final class CornerSizeKt {
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.core.Dp size);
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.core.Px size);
+    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.unit.Dp size);
+    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.unit.Px size);
     method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@IntRange(from=0, to=50) int percent);
     method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@FloatRange(from=0.0, to=50.0) float percent);
     method public static androidx.ui.foundation.shape.corner.CornerSize getZeroCornerSize();
@@ -286,7 +286,7 @@
     method public androidx.ui.foundation.shape.corner.CornerSize component3();
     method public androidx.ui.foundation.shape.corner.CornerSize component4();
     method public androidx.ui.foundation.shape.corner.CutCornerShape copy(androidx.ui.foundation.shape.corner.CornerSize topLeft, androidx.ui.foundation.shape.corner.CornerSize topRight, androidx.ui.foundation.shape.corner.CornerSize bottomRight, androidx.ui.foundation.shape.corner.CornerSize bottomLeft);
-    method public androidx.ui.engine.geometry.Outline.Generic createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Px topLeft, androidx.ui.core.Px topRight, androidx.ui.core.Px bottomRight, androidx.ui.core.Px bottomLeft);
+    method public androidx.ui.graphics.Outline.Generic createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Px topLeft, androidx.ui.unit.Px topRight, androidx.ui.unit.Px bottomRight, androidx.ui.unit.Px bottomLeft);
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomLeft();
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomRight();
     method public androidx.ui.foundation.shape.corner.CornerSize getTopLeft();
@@ -295,11 +295,11 @@
 
   public final class CutCornerShapeKt {
     method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.foundation.shape.corner.CornerSize corner);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Dp size);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Px size);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Dp size);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Px size);
     method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(int percent);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Dp topLeft = 0.dp, androidx.ui.core.Dp topRight = 0.dp, androidx.ui.core.Dp bottomRight = 0.dp, androidx.ui.core.Dp bottomLeft = 0.dp);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Px topLeft = 0.px, androidx.ui.core.Px topRight = 0.px, androidx.ui.core.Px bottomRight = 0.px, androidx.ui.core.Px bottomLeft = 0.px);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Dp topLeft = 0.dp, androidx.ui.unit.Dp topRight = 0.dp, androidx.ui.unit.Dp bottomRight = 0.dp, androidx.ui.unit.Dp bottomLeft = 0.dp);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Px topLeft = 0.px, androidx.ui.unit.Px topRight = 0.px, androidx.ui.unit.Px bottomRight = 0.px, androidx.ui.unit.Px bottomLeft = 0.px);
     method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(@IntRange(from=0, to=50) int topLeftPercent = 0, @IntRange(from=0, to=50) int topRightPercent = 0, @IntRange(from=0, to=50) int bottomRightPercent = 0, @IntRange(from=0, to=50) int bottomLeftPercent = 0);
   }
 
@@ -310,7 +310,7 @@
     method public androidx.ui.foundation.shape.corner.CornerSize component3();
     method public androidx.ui.foundation.shape.corner.CornerSize component4();
     method public androidx.ui.foundation.shape.corner.RoundedCornerShape copy(androidx.ui.foundation.shape.corner.CornerSize topLeft, androidx.ui.foundation.shape.corner.CornerSize topRight, androidx.ui.foundation.shape.corner.CornerSize bottomRight, androidx.ui.foundation.shape.corner.CornerSize bottomLeft);
-    method public androidx.ui.engine.geometry.Outline.Rounded createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Px topLeft, androidx.ui.core.Px topRight, androidx.ui.core.Px bottomRight, androidx.ui.core.Px bottomLeft);
+    method public androidx.ui.graphics.Outline.Rounded createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Px topLeft, androidx.ui.unit.Px topRight, androidx.ui.unit.Px bottomRight, androidx.ui.unit.Px bottomLeft);
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomLeft();
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomRight();
     method public androidx.ui.foundation.shape.corner.CornerSize getTopLeft();
@@ -319,11 +319,11 @@
 
   public final class RoundedCornerShapeKt {
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.foundation.shape.corner.CornerSize corner);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Dp size);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Px size);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Dp size);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Px size);
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(int percent);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Dp topLeft = 0.dp, androidx.ui.core.Dp topRight = 0.dp, androidx.ui.core.Dp bottomRight = 0.dp, androidx.ui.core.Dp bottomLeft = 0.dp);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Px topLeft = 0.px, androidx.ui.core.Px topRight = 0.px, androidx.ui.core.Px bottomRight = 0.px, androidx.ui.core.Px bottomLeft = 0.px);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Dp topLeft = 0.dp, androidx.ui.unit.Dp topRight = 0.dp, androidx.ui.unit.Dp bottomRight = 0.dp, androidx.ui.unit.Dp bottomLeft = 0.dp);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Px topLeft = 0.px, androidx.ui.unit.Px topRight = 0.px, androidx.ui.unit.Px bottomRight = 0.px, androidx.ui.unit.Px bottomLeft = 0.px);
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(@IntRange(from=0, to=50) int topLeftPercent = 0, @IntRange(from=0, to=50) int topRightPercent = 0, @IntRange(from=0, to=50) int bottomRightPercent = 0, @IntRange(from=0, to=50) int bottomLeftPercent = 0);
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape getCircleShape();
   }
diff --git a/ui/ui-foundation/api/current.txt b/ui/ui-foundation/api/current.txt
index 8d54edf..32d6c68 100644
--- a/ui/ui-foundation/api/current.txt
+++ b/ui/ui-foundation/api/current.txt
@@ -4,8 +4,8 @@
   public final class BackgroundKt {
     method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Color color);
     method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Brush brush);
-    method public static androidx.ui.core.DrawModifier background(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Color color);
-    method public static androidx.ui.core.DrawModifier background(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Brush brush);
+    method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Color color);
+    method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Brush brush);
   }
 
   public final class ClickableKt {
@@ -13,8 +13,8 @@
   }
 
   public final class ColoredRectKt {
-    method public static void ColoredRect(androidx.ui.graphics.Brush brush, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null);
-    method public static void ColoredRect(androidx.ui.graphics.Color color, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null);
+    method public static void ColoredRect(androidx.ui.graphics.Brush brush, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null);
+    method public static void ColoredRect(androidx.ui.graphics.Color color, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null);
   }
 
   public final class ContentColorKt {
@@ -66,18 +66,18 @@
     ctor public ScrollerPosition();
     method public void fling(float startVelocity);
     method public androidx.ui.foundation.animation.FlingConfig getFlingConfig();
-    method public androidx.ui.core.Px getMaxPosition();
-    method public androidx.ui.core.Px getValue();
+    method public androidx.ui.unit.Px getMaxPosition();
+    method public androidx.ui.unit.Px getValue();
     method public boolean isAnimating();
-    method public void scrollBy(androidx.ui.core.Px value);
-    method public void scrollTo(androidx.ui.core.Px value);
+    method public void scrollBy(androidx.ui.unit.Px value);
+    method public void scrollTo(androidx.ui.unit.Px value);
     method public void setFlingConfig(androidx.ui.foundation.animation.FlingConfig p);
-    method public void smoothScrollBy(androidx.ui.core.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
-    method public void smoothScrollTo(androidx.ui.core.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
+    method public void smoothScrollBy(androidx.ui.unit.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
+    method public void smoothScrollTo(androidx.ui.unit.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
     property public final androidx.ui.foundation.animation.FlingConfig flingConfig;
     property public final boolean isAnimating;
-    property public final androidx.ui.core.Px maxPosition;
-    property public final androidx.ui.core.Px value;
+    property public final androidx.ui.unit.Px maxPosition;
+    property public final androidx.ui.unit.Px value;
   }
 
   public final class Strings {
@@ -162,7 +162,7 @@
   }
 
   public final class DraggableKt {
-    method public static void Draggable(androidx.ui.foundation.gestures.DragDirection dragDirection, androidx.ui.foundation.ValueHolder<java.lang.Float> dragValue, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onDragValueChangeRequested, kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>  boolean enabled = true, boolean isValueAnimating = false, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Draggable(androidx.ui.foundation.gestures.DragDirection dragDirection, androidx.ui.foundation.ValueHolder<java.lang.Float> dragValue, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onDragValueChangeRequested, kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>  boolean enabled = true, boolean isValueAnimating = false, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class FloatDragValueController implements androidx.ui.foundation.gestures.DragValueController {
@@ -222,18 +222,18 @@
 package androidx.ui.foundation.shape {
 
   public final class DrawShapeKt {
-    method public static void DrawShape(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Color color);
-    method public static void DrawShape(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Brush brush);
+    method public static void DrawShape(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Color color);
+    method public static void DrawShape(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Brush brush);
   }
 
-  public final class GenericShape implements androidx.ui.engine.geometry.Shape {
-    ctor public GenericShape(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.core.PxSize,kotlin.Unit> builder);
-    method public androidx.ui.foundation.shape.GenericShape copy(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.core.PxSize,kotlin.Unit> builder);
-    method public androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
+  public final class GenericShape implements androidx.ui.graphics.Shape {
+    ctor public GenericShape(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.unit.PxSize,kotlin.Unit> builder);
+    method public androidx.ui.foundation.shape.GenericShape copy(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.unit.PxSize,kotlin.Unit> builder);
+    method public androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
   }
 
   public final class RectangleShapeKt {
-    method public static androidx.ui.engine.geometry.Shape getRectangleShape();
+    method public static androidx.ui.graphics.Shape getRectangleShape();
   }
 
 }
@@ -241,39 +241,39 @@
 package androidx.ui.foundation.shape.border {
 
   public final class Border {
-    ctor public Border(androidx.ui.graphics.Brush brush, androidx.ui.core.Dp width);
+    ctor public Border(androidx.ui.graphics.Brush brush, androidx.ui.unit.Dp width);
     method public androidx.ui.graphics.Brush component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.foundation.shape.border.Border copy(androidx.ui.graphics.Brush brush, androidx.ui.core.Dp width);
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.foundation.shape.border.Border copy(androidx.ui.graphics.Brush brush, androidx.ui.unit.Dp width);
     method public androidx.ui.graphics.Brush getBrush();
-    method public androidx.ui.core.Dp getWidth();
+    method public androidx.ui.unit.Dp getWidth();
   }
 
   public final class BorderKt {
-    method public static androidx.ui.foundation.shape.border.Border Border(androidx.ui.graphics.Color color, androidx.ui.core.Dp width);
+    method public static androidx.ui.foundation.shape.border.Border Border(androidx.ui.graphics.Color color, androidx.ui.unit.Dp width);
   }
 
   public final class DrawBorderKt {
-    method public static void DrawBorder(androidx.ui.engine.geometry.Shape shape, androidx.ui.foundation.shape.border.Border border);
+    method public static void DrawBorder(androidx.ui.graphics.Shape shape, androidx.ui.foundation.shape.border.Border border);
   }
 
 }
 
 package androidx.ui.foundation.shape.corner {
 
-  public abstract class CornerBasedShape implements androidx.ui.engine.geometry.Shape {
+  public abstract class CornerBasedShape implements androidx.ui.graphics.Shape {
     ctor public CornerBasedShape(androidx.ui.foundation.shape.corner.CornerSize topLeft, androidx.ui.foundation.shape.corner.CornerSize topRight, androidx.ui.foundation.shape.corner.CornerSize bottomRight, androidx.ui.foundation.shape.corner.CornerSize bottomLeft);
-    method public final androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
-    method public abstract androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Px topLeft, androidx.ui.core.Px topRight, androidx.ui.core.Px bottomRight, androidx.ui.core.Px bottomLeft);
+    method public final androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
+    method public abstract androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Px topLeft, androidx.ui.unit.Px topRight, androidx.ui.unit.Px bottomRight, androidx.ui.unit.Px bottomLeft);
   }
 
   public interface CornerSize {
-    method public androidx.ui.core.Px toPx(androidx.ui.core.PxSize shapeSize, androidx.ui.core.Density density);
+    method public androidx.ui.unit.Px toPx(androidx.ui.unit.PxSize shapeSize, androidx.ui.unit.Density density);
   }
 
   public final class CornerSizeKt {
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.core.Dp size);
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.core.Px size);
+    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.unit.Dp size);
+    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.unit.Px size);
     method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@IntRange(from=0, to=50) int percent);
     method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@FloatRange(from=0.0, to=50.0) float percent);
     method public static androidx.ui.foundation.shape.corner.CornerSize getZeroCornerSize();
@@ -286,7 +286,7 @@
     method public androidx.ui.foundation.shape.corner.CornerSize component3();
     method public androidx.ui.foundation.shape.corner.CornerSize component4();
     method public androidx.ui.foundation.shape.corner.CutCornerShape copy(androidx.ui.foundation.shape.corner.CornerSize topLeft, androidx.ui.foundation.shape.corner.CornerSize topRight, androidx.ui.foundation.shape.corner.CornerSize bottomRight, androidx.ui.foundation.shape.corner.CornerSize bottomLeft);
-    method public androidx.ui.engine.geometry.Outline.Generic createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Px topLeft, androidx.ui.core.Px topRight, androidx.ui.core.Px bottomRight, androidx.ui.core.Px bottomLeft);
+    method public androidx.ui.graphics.Outline.Generic createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Px topLeft, androidx.ui.unit.Px topRight, androidx.ui.unit.Px bottomRight, androidx.ui.unit.Px bottomLeft);
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomLeft();
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomRight();
     method public androidx.ui.foundation.shape.corner.CornerSize getTopLeft();
@@ -295,11 +295,11 @@
 
   public final class CutCornerShapeKt {
     method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.foundation.shape.corner.CornerSize corner);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Dp size);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Px size);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Dp size);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Px size);
     method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(int percent);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Dp topLeft = 0.dp, androidx.ui.core.Dp topRight = 0.dp, androidx.ui.core.Dp bottomRight = 0.dp, androidx.ui.core.Dp bottomLeft = 0.dp);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Px topLeft = 0.px, androidx.ui.core.Px topRight = 0.px, androidx.ui.core.Px bottomRight = 0.px, androidx.ui.core.Px bottomLeft = 0.px);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Dp topLeft = 0.dp, androidx.ui.unit.Dp topRight = 0.dp, androidx.ui.unit.Dp bottomRight = 0.dp, androidx.ui.unit.Dp bottomLeft = 0.dp);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Px topLeft = 0.px, androidx.ui.unit.Px topRight = 0.px, androidx.ui.unit.Px bottomRight = 0.px, androidx.ui.unit.Px bottomLeft = 0.px);
     method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(@IntRange(from=0, to=50) int topLeftPercent = 0, @IntRange(from=0, to=50) int topRightPercent = 0, @IntRange(from=0, to=50) int bottomRightPercent = 0, @IntRange(from=0, to=50) int bottomLeftPercent = 0);
   }
 
@@ -310,7 +310,7 @@
     method public androidx.ui.foundation.shape.corner.CornerSize component3();
     method public androidx.ui.foundation.shape.corner.CornerSize component4();
     method public androidx.ui.foundation.shape.corner.RoundedCornerShape copy(androidx.ui.foundation.shape.corner.CornerSize topLeft, androidx.ui.foundation.shape.corner.CornerSize topRight, androidx.ui.foundation.shape.corner.CornerSize bottomRight, androidx.ui.foundation.shape.corner.CornerSize bottomLeft);
-    method public androidx.ui.engine.geometry.Outline.Rounded createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Px topLeft, androidx.ui.core.Px topRight, androidx.ui.core.Px bottomRight, androidx.ui.core.Px bottomLeft);
+    method public androidx.ui.graphics.Outline.Rounded createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Px topLeft, androidx.ui.unit.Px topRight, androidx.ui.unit.Px bottomRight, androidx.ui.unit.Px bottomLeft);
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomLeft();
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomRight();
     method public androidx.ui.foundation.shape.corner.CornerSize getTopLeft();
@@ -319,11 +319,11 @@
 
   public final class RoundedCornerShapeKt {
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.foundation.shape.corner.CornerSize corner);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Dp size);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Px size);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Dp size);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Px size);
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(int percent);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Dp topLeft = 0.dp, androidx.ui.core.Dp topRight = 0.dp, androidx.ui.core.Dp bottomRight = 0.dp, androidx.ui.core.Dp bottomLeft = 0.dp);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Px topLeft = 0.px, androidx.ui.core.Px topRight = 0.px, androidx.ui.core.Px bottomRight = 0.px, androidx.ui.core.Px bottomLeft = 0.px);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Dp topLeft = 0.dp, androidx.ui.unit.Dp topRight = 0.dp, androidx.ui.unit.Dp bottomRight = 0.dp, androidx.ui.unit.Dp bottomLeft = 0.dp);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Px topLeft = 0.px, androidx.ui.unit.Px topRight = 0.px, androidx.ui.unit.Px bottomRight = 0.px, androidx.ui.unit.Px bottomLeft = 0.px);
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(@IntRange(from=0, to=50) int topLeftPercent = 0, @IntRange(from=0, to=50) int topRightPercent = 0, @IntRange(from=0, to=50) int bottomRightPercent = 0, @IntRange(from=0, to=50) int bottomLeftPercent = 0);
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape getCircleShape();
   }
diff --git a/ui/ui-foundation/api/public_plus_experimental_0.1.0-dev04.txt b/ui/ui-foundation/api/public_plus_experimental_0.1.0-dev04.txt
index 8d54edf..32d6c68 100644
--- a/ui/ui-foundation/api/public_plus_experimental_0.1.0-dev04.txt
+++ b/ui/ui-foundation/api/public_plus_experimental_0.1.0-dev04.txt
@@ -4,8 +4,8 @@
   public final class BackgroundKt {
     method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Color color);
     method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Brush brush);
-    method public static androidx.ui.core.DrawModifier background(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Color color);
-    method public static androidx.ui.core.DrawModifier background(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Brush brush);
+    method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Color color);
+    method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Brush brush);
   }
 
   public final class ClickableKt {
@@ -13,8 +13,8 @@
   }
 
   public final class ColoredRectKt {
-    method public static void ColoredRect(androidx.ui.graphics.Brush brush, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null);
-    method public static void ColoredRect(androidx.ui.graphics.Color color, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null);
+    method public static void ColoredRect(androidx.ui.graphics.Brush brush, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null);
+    method public static void ColoredRect(androidx.ui.graphics.Color color, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null);
   }
 
   public final class ContentColorKt {
@@ -66,18 +66,18 @@
     ctor public ScrollerPosition();
     method public void fling(float startVelocity);
     method public androidx.ui.foundation.animation.FlingConfig getFlingConfig();
-    method public androidx.ui.core.Px getMaxPosition();
-    method public androidx.ui.core.Px getValue();
+    method public androidx.ui.unit.Px getMaxPosition();
+    method public androidx.ui.unit.Px getValue();
     method public boolean isAnimating();
-    method public void scrollBy(androidx.ui.core.Px value);
-    method public void scrollTo(androidx.ui.core.Px value);
+    method public void scrollBy(androidx.ui.unit.Px value);
+    method public void scrollTo(androidx.ui.unit.Px value);
     method public void setFlingConfig(androidx.ui.foundation.animation.FlingConfig p);
-    method public void smoothScrollBy(androidx.ui.core.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
-    method public void smoothScrollTo(androidx.ui.core.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
+    method public void smoothScrollBy(androidx.ui.unit.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
+    method public void smoothScrollTo(androidx.ui.unit.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
     property public final androidx.ui.foundation.animation.FlingConfig flingConfig;
     property public final boolean isAnimating;
-    property public final androidx.ui.core.Px maxPosition;
-    property public final androidx.ui.core.Px value;
+    property public final androidx.ui.unit.Px maxPosition;
+    property public final androidx.ui.unit.Px value;
   }
 
   public final class Strings {
@@ -162,7 +162,7 @@
   }
 
   public final class DraggableKt {
-    method public static void Draggable(androidx.ui.foundation.gestures.DragDirection dragDirection, androidx.ui.foundation.ValueHolder<java.lang.Float> dragValue, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onDragValueChangeRequested, kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>  boolean enabled = true, boolean isValueAnimating = false, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Draggable(androidx.ui.foundation.gestures.DragDirection dragDirection, androidx.ui.foundation.ValueHolder<java.lang.Float> dragValue, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onDragValueChangeRequested, kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>  boolean enabled = true, boolean isValueAnimating = false, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class FloatDragValueController implements androidx.ui.foundation.gestures.DragValueController {
@@ -222,18 +222,18 @@
 package androidx.ui.foundation.shape {
 
   public final class DrawShapeKt {
-    method public static void DrawShape(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Color color);
-    method public static void DrawShape(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Brush brush);
+    method public static void DrawShape(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Color color);
+    method public static void DrawShape(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Brush brush);
   }
 
-  public final class GenericShape implements androidx.ui.engine.geometry.Shape {
-    ctor public GenericShape(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.core.PxSize,kotlin.Unit> builder);
-    method public androidx.ui.foundation.shape.GenericShape copy(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.core.PxSize,kotlin.Unit> builder);
-    method public androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
+  public final class GenericShape implements androidx.ui.graphics.Shape {
+    ctor public GenericShape(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.unit.PxSize,kotlin.Unit> builder);
+    method public androidx.ui.foundation.shape.GenericShape copy(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.unit.PxSize,kotlin.Unit> builder);
+    method public androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
   }
 
   public final class RectangleShapeKt {
-    method public static androidx.ui.engine.geometry.Shape getRectangleShape();
+    method public static androidx.ui.graphics.Shape getRectangleShape();
   }
 
 }
@@ -241,39 +241,39 @@
 package androidx.ui.foundation.shape.border {
 
   public final class Border {
-    ctor public Border(androidx.ui.graphics.Brush brush, androidx.ui.core.Dp width);
+    ctor public Border(androidx.ui.graphics.Brush brush, androidx.ui.unit.Dp width);
     method public androidx.ui.graphics.Brush component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.foundation.shape.border.Border copy(androidx.ui.graphics.Brush brush, androidx.ui.core.Dp width);
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.foundation.shape.border.Border copy(androidx.ui.graphics.Brush brush, androidx.ui.unit.Dp width);
     method public androidx.ui.graphics.Brush getBrush();
-    method public androidx.ui.core.Dp getWidth();
+    method public androidx.ui.unit.Dp getWidth();
   }
 
   public final class BorderKt {
-    method public static androidx.ui.foundation.shape.border.Border Border(androidx.ui.graphics.Color color, androidx.ui.core.Dp width);
+    method public static androidx.ui.foundation.shape.border.Border Border(androidx.ui.graphics.Color color, androidx.ui.unit.Dp width);
   }
 
   public final class DrawBorderKt {
-    method public static void DrawBorder(androidx.ui.engine.geometry.Shape shape, androidx.ui.foundation.shape.border.Border border);
+    method public static void DrawBorder(androidx.ui.graphics.Shape shape, androidx.ui.foundation.shape.border.Border border);
   }
 
 }
 
 package androidx.ui.foundation.shape.corner {
 
-  public abstract class CornerBasedShape implements androidx.ui.engine.geometry.Shape {
+  public abstract class CornerBasedShape implements androidx.ui.graphics.Shape {
     ctor public CornerBasedShape(androidx.ui.foundation.shape.corner.CornerSize topLeft, androidx.ui.foundation.shape.corner.CornerSize topRight, androidx.ui.foundation.shape.corner.CornerSize bottomRight, androidx.ui.foundation.shape.corner.CornerSize bottomLeft);
-    method public final androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
-    method public abstract androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Px topLeft, androidx.ui.core.Px topRight, androidx.ui.core.Px bottomRight, androidx.ui.core.Px bottomLeft);
+    method public final androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
+    method public abstract androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Px topLeft, androidx.ui.unit.Px topRight, androidx.ui.unit.Px bottomRight, androidx.ui.unit.Px bottomLeft);
   }
 
   public interface CornerSize {
-    method public androidx.ui.core.Px toPx(androidx.ui.core.PxSize shapeSize, androidx.ui.core.Density density);
+    method public androidx.ui.unit.Px toPx(androidx.ui.unit.PxSize shapeSize, androidx.ui.unit.Density density);
   }
 
   public final class CornerSizeKt {
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.core.Dp size);
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.core.Px size);
+    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.unit.Dp size);
+    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.unit.Px size);
     method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@IntRange(from=0, to=50) int percent);
     method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@FloatRange(from=0.0, to=50.0) float percent);
     method public static androidx.ui.foundation.shape.corner.CornerSize getZeroCornerSize();
@@ -286,7 +286,7 @@
     method public androidx.ui.foundation.shape.corner.CornerSize component3();
     method public androidx.ui.foundation.shape.corner.CornerSize component4();
     method public androidx.ui.foundation.shape.corner.CutCornerShape copy(androidx.ui.foundation.shape.corner.CornerSize topLeft, androidx.ui.foundation.shape.corner.CornerSize topRight, androidx.ui.foundation.shape.corner.CornerSize bottomRight, androidx.ui.foundation.shape.corner.CornerSize bottomLeft);
-    method public androidx.ui.engine.geometry.Outline.Generic createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Px topLeft, androidx.ui.core.Px topRight, androidx.ui.core.Px bottomRight, androidx.ui.core.Px bottomLeft);
+    method public androidx.ui.graphics.Outline.Generic createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Px topLeft, androidx.ui.unit.Px topRight, androidx.ui.unit.Px bottomRight, androidx.ui.unit.Px bottomLeft);
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomLeft();
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomRight();
     method public androidx.ui.foundation.shape.corner.CornerSize getTopLeft();
@@ -295,11 +295,11 @@
 
   public final class CutCornerShapeKt {
     method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.foundation.shape.corner.CornerSize corner);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Dp size);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Px size);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Dp size);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Px size);
     method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(int percent);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Dp topLeft = 0.dp, androidx.ui.core.Dp topRight = 0.dp, androidx.ui.core.Dp bottomRight = 0.dp, androidx.ui.core.Dp bottomLeft = 0.dp);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Px topLeft = 0.px, androidx.ui.core.Px topRight = 0.px, androidx.ui.core.Px bottomRight = 0.px, androidx.ui.core.Px bottomLeft = 0.px);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Dp topLeft = 0.dp, androidx.ui.unit.Dp topRight = 0.dp, androidx.ui.unit.Dp bottomRight = 0.dp, androidx.ui.unit.Dp bottomLeft = 0.dp);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Px topLeft = 0.px, androidx.ui.unit.Px topRight = 0.px, androidx.ui.unit.Px bottomRight = 0.px, androidx.ui.unit.Px bottomLeft = 0.px);
     method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(@IntRange(from=0, to=50) int topLeftPercent = 0, @IntRange(from=0, to=50) int topRightPercent = 0, @IntRange(from=0, to=50) int bottomRightPercent = 0, @IntRange(from=0, to=50) int bottomLeftPercent = 0);
   }
 
@@ -310,7 +310,7 @@
     method public androidx.ui.foundation.shape.corner.CornerSize component3();
     method public androidx.ui.foundation.shape.corner.CornerSize component4();
     method public androidx.ui.foundation.shape.corner.RoundedCornerShape copy(androidx.ui.foundation.shape.corner.CornerSize topLeft, androidx.ui.foundation.shape.corner.CornerSize topRight, androidx.ui.foundation.shape.corner.CornerSize bottomRight, androidx.ui.foundation.shape.corner.CornerSize bottomLeft);
-    method public androidx.ui.engine.geometry.Outline.Rounded createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Px topLeft, androidx.ui.core.Px topRight, androidx.ui.core.Px bottomRight, androidx.ui.core.Px bottomLeft);
+    method public androidx.ui.graphics.Outline.Rounded createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Px topLeft, androidx.ui.unit.Px topRight, androidx.ui.unit.Px bottomRight, androidx.ui.unit.Px bottomLeft);
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomLeft();
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomRight();
     method public androidx.ui.foundation.shape.corner.CornerSize getTopLeft();
@@ -319,11 +319,11 @@
 
   public final class RoundedCornerShapeKt {
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.foundation.shape.corner.CornerSize corner);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Dp size);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Px size);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Dp size);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Px size);
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(int percent);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Dp topLeft = 0.dp, androidx.ui.core.Dp topRight = 0.dp, androidx.ui.core.Dp bottomRight = 0.dp, androidx.ui.core.Dp bottomLeft = 0.dp);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Px topLeft = 0.px, androidx.ui.core.Px topRight = 0.px, androidx.ui.core.Px bottomRight = 0.px, androidx.ui.core.Px bottomLeft = 0.px);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Dp topLeft = 0.dp, androidx.ui.unit.Dp topRight = 0.dp, androidx.ui.unit.Dp bottomRight = 0.dp, androidx.ui.unit.Dp bottomLeft = 0.dp);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Px topLeft = 0.px, androidx.ui.unit.Px topRight = 0.px, androidx.ui.unit.Px bottomRight = 0.px, androidx.ui.unit.Px bottomLeft = 0.px);
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(@IntRange(from=0, to=50) int topLeftPercent = 0, @IntRange(from=0, to=50) int topRightPercent = 0, @IntRange(from=0, to=50) int bottomRightPercent = 0, @IntRange(from=0, to=50) int bottomLeftPercent = 0);
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape getCircleShape();
   }
diff --git a/ui/ui-foundation/api/public_plus_experimental_current.txt b/ui/ui-foundation/api/public_plus_experimental_current.txt
index 8d54edf..32d6c68 100644
--- a/ui/ui-foundation/api/public_plus_experimental_current.txt
+++ b/ui/ui-foundation/api/public_plus_experimental_current.txt
@@ -4,8 +4,8 @@
   public final class BackgroundKt {
     method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Color color);
     method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Brush brush);
-    method public static androidx.ui.core.DrawModifier background(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Color color);
-    method public static androidx.ui.core.DrawModifier background(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Brush brush);
+    method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Color color);
+    method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Brush brush);
   }
 
   public final class ClickableKt {
@@ -13,8 +13,8 @@
   }
 
   public final class ColoredRectKt {
-    method public static void ColoredRect(androidx.ui.graphics.Brush brush, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null);
-    method public static void ColoredRect(androidx.ui.graphics.Color color, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null);
+    method public static void ColoredRect(androidx.ui.graphics.Brush brush, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null);
+    method public static void ColoredRect(androidx.ui.graphics.Color color, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null);
   }
 
   public final class ContentColorKt {
@@ -66,18 +66,18 @@
     ctor public ScrollerPosition();
     method public void fling(float startVelocity);
     method public androidx.ui.foundation.animation.FlingConfig getFlingConfig();
-    method public androidx.ui.core.Px getMaxPosition();
-    method public androidx.ui.core.Px getValue();
+    method public androidx.ui.unit.Px getMaxPosition();
+    method public androidx.ui.unit.Px getValue();
     method public boolean isAnimating();
-    method public void scrollBy(androidx.ui.core.Px value);
-    method public void scrollTo(androidx.ui.core.Px value);
+    method public void scrollBy(androidx.ui.unit.Px value);
+    method public void scrollTo(androidx.ui.unit.Px value);
     method public void setFlingConfig(androidx.ui.foundation.animation.FlingConfig p);
-    method public void smoothScrollBy(androidx.ui.core.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
-    method public void smoothScrollTo(androidx.ui.core.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
+    method public void smoothScrollBy(androidx.ui.unit.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
+    method public void smoothScrollTo(androidx.ui.unit.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
     property public final androidx.ui.foundation.animation.FlingConfig flingConfig;
     property public final boolean isAnimating;
-    property public final androidx.ui.core.Px maxPosition;
-    property public final androidx.ui.core.Px value;
+    property public final androidx.ui.unit.Px maxPosition;
+    property public final androidx.ui.unit.Px value;
   }
 
   public final class Strings {
@@ -162,7 +162,7 @@
   }
 
   public final class DraggableKt {
-    method public static void Draggable(androidx.ui.foundation.gestures.DragDirection dragDirection, androidx.ui.foundation.ValueHolder<java.lang.Float> dragValue, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onDragValueChangeRequested, kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>  boolean enabled = true, boolean isValueAnimating = false, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Draggable(androidx.ui.foundation.gestures.DragDirection dragDirection, androidx.ui.foundation.ValueHolder<java.lang.Float> dragValue, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onDragValueChangeRequested, kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>  boolean enabled = true, boolean isValueAnimating = false, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class FloatDragValueController implements androidx.ui.foundation.gestures.DragValueController {
@@ -222,18 +222,18 @@
 package androidx.ui.foundation.shape {
 
   public final class DrawShapeKt {
-    method public static void DrawShape(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Color color);
-    method public static void DrawShape(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Brush brush);
+    method public static void DrawShape(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Color color);
+    method public static void DrawShape(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Brush brush);
   }
 
-  public final class GenericShape implements androidx.ui.engine.geometry.Shape {
-    ctor public GenericShape(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.core.PxSize,kotlin.Unit> builder);
-    method public androidx.ui.foundation.shape.GenericShape copy(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.core.PxSize,kotlin.Unit> builder);
-    method public androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
+  public final class GenericShape implements androidx.ui.graphics.Shape {
+    ctor public GenericShape(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.unit.PxSize,kotlin.Unit> builder);
+    method public androidx.ui.foundation.shape.GenericShape copy(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.unit.PxSize,kotlin.Unit> builder);
+    method public androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
   }
 
   public final class RectangleShapeKt {
-    method public static androidx.ui.engine.geometry.Shape getRectangleShape();
+    method public static androidx.ui.graphics.Shape getRectangleShape();
   }
 
 }
@@ -241,39 +241,39 @@
 package androidx.ui.foundation.shape.border {
 
   public final class Border {
-    ctor public Border(androidx.ui.graphics.Brush brush, androidx.ui.core.Dp width);
+    ctor public Border(androidx.ui.graphics.Brush brush, androidx.ui.unit.Dp width);
     method public androidx.ui.graphics.Brush component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.foundation.shape.border.Border copy(androidx.ui.graphics.Brush brush, androidx.ui.core.Dp width);
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.foundation.shape.border.Border copy(androidx.ui.graphics.Brush brush, androidx.ui.unit.Dp width);
     method public androidx.ui.graphics.Brush getBrush();
-    method public androidx.ui.core.Dp getWidth();
+    method public androidx.ui.unit.Dp getWidth();
   }
 
   public final class BorderKt {
-    method public static androidx.ui.foundation.shape.border.Border Border(androidx.ui.graphics.Color color, androidx.ui.core.Dp width);
+    method public static androidx.ui.foundation.shape.border.Border Border(androidx.ui.graphics.Color color, androidx.ui.unit.Dp width);
   }
 
   public final class DrawBorderKt {
-    method public static void DrawBorder(androidx.ui.engine.geometry.Shape shape, androidx.ui.foundation.shape.border.Border border);
+    method public static void DrawBorder(androidx.ui.graphics.Shape shape, androidx.ui.foundation.shape.border.Border border);
   }
 
 }
 
 package androidx.ui.foundation.shape.corner {
 
-  public abstract class CornerBasedShape implements androidx.ui.engine.geometry.Shape {
+  public abstract class CornerBasedShape implements androidx.ui.graphics.Shape {
     ctor public CornerBasedShape(androidx.ui.foundation.shape.corner.CornerSize topLeft, androidx.ui.foundation.shape.corner.CornerSize topRight, androidx.ui.foundation.shape.corner.CornerSize bottomRight, androidx.ui.foundation.shape.corner.CornerSize bottomLeft);
-    method public final androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
-    method public abstract androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Px topLeft, androidx.ui.core.Px topRight, androidx.ui.core.Px bottomRight, androidx.ui.core.Px bottomLeft);
+    method public final androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
+    method public abstract androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Px topLeft, androidx.ui.unit.Px topRight, androidx.ui.unit.Px bottomRight, androidx.ui.unit.Px bottomLeft);
   }
 
   public interface CornerSize {
-    method public androidx.ui.core.Px toPx(androidx.ui.core.PxSize shapeSize, androidx.ui.core.Density density);
+    method public androidx.ui.unit.Px toPx(androidx.ui.unit.PxSize shapeSize, androidx.ui.unit.Density density);
   }
 
   public final class CornerSizeKt {
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.core.Dp size);
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.core.Px size);
+    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.unit.Dp size);
+    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.unit.Px size);
     method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@IntRange(from=0, to=50) int percent);
     method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@FloatRange(from=0.0, to=50.0) float percent);
     method public static androidx.ui.foundation.shape.corner.CornerSize getZeroCornerSize();
@@ -286,7 +286,7 @@
     method public androidx.ui.foundation.shape.corner.CornerSize component3();
     method public androidx.ui.foundation.shape.corner.CornerSize component4();
     method public androidx.ui.foundation.shape.corner.CutCornerShape copy(androidx.ui.foundation.shape.corner.CornerSize topLeft, androidx.ui.foundation.shape.corner.CornerSize topRight, androidx.ui.foundation.shape.corner.CornerSize bottomRight, androidx.ui.foundation.shape.corner.CornerSize bottomLeft);
-    method public androidx.ui.engine.geometry.Outline.Generic createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Px topLeft, androidx.ui.core.Px topRight, androidx.ui.core.Px bottomRight, androidx.ui.core.Px bottomLeft);
+    method public androidx.ui.graphics.Outline.Generic createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Px topLeft, androidx.ui.unit.Px topRight, androidx.ui.unit.Px bottomRight, androidx.ui.unit.Px bottomLeft);
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomLeft();
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomRight();
     method public androidx.ui.foundation.shape.corner.CornerSize getTopLeft();
@@ -295,11 +295,11 @@
 
   public final class CutCornerShapeKt {
     method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.foundation.shape.corner.CornerSize corner);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Dp size);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Px size);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Dp size);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Px size);
     method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(int percent);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Dp topLeft = 0.dp, androidx.ui.core.Dp topRight = 0.dp, androidx.ui.core.Dp bottomRight = 0.dp, androidx.ui.core.Dp bottomLeft = 0.dp);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Px topLeft = 0.px, androidx.ui.core.Px topRight = 0.px, androidx.ui.core.Px bottomRight = 0.px, androidx.ui.core.Px bottomLeft = 0.px);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Dp topLeft = 0.dp, androidx.ui.unit.Dp topRight = 0.dp, androidx.ui.unit.Dp bottomRight = 0.dp, androidx.ui.unit.Dp bottomLeft = 0.dp);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Px topLeft = 0.px, androidx.ui.unit.Px topRight = 0.px, androidx.ui.unit.Px bottomRight = 0.px, androidx.ui.unit.Px bottomLeft = 0.px);
     method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(@IntRange(from=0, to=50) int topLeftPercent = 0, @IntRange(from=0, to=50) int topRightPercent = 0, @IntRange(from=0, to=50) int bottomRightPercent = 0, @IntRange(from=0, to=50) int bottomLeftPercent = 0);
   }
 
@@ -310,7 +310,7 @@
     method public androidx.ui.foundation.shape.corner.CornerSize component3();
     method public androidx.ui.foundation.shape.corner.CornerSize component4();
     method public androidx.ui.foundation.shape.corner.RoundedCornerShape copy(androidx.ui.foundation.shape.corner.CornerSize topLeft, androidx.ui.foundation.shape.corner.CornerSize topRight, androidx.ui.foundation.shape.corner.CornerSize bottomRight, androidx.ui.foundation.shape.corner.CornerSize bottomLeft);
-    method public androidx.ui.engine.geometry.Outline.Rounded createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Px topLeft, androidx.ui.core.Px topRight, androidx.ui.core.Px bottomRight, androidx.ui.core.Px bottomLeft);
+    method public androidx.ui.graphics.Outline.Rounded createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Px topLeft, androidx.ui.unit.Px topRight, androidx.ui.unit.Px bottomRight, androidx.ui.unit.Px bottomLeft);
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomLeft();
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomRight();
     method public androidx.ui.foundation.shape.corner.CornerSize getTopLeft();
@@ -319,11 +319,11 @@
 
   public final class RoundedCornerShapeKt {
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.foundation.shape.corner.CornerSize corner);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Dp size);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Px size);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Dp size);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Px size);
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(int percent);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Dp topLeft = 0.dp, androidx.ui.core.Dp topRight = 0.dp, androidx.ui.core.Dp bottomRight = 0.dp, androidx.ui.core.Dp bottomLeft = 0.dp);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Px topLeft = 0.px, androidx.ui.core.Px topRight = 0.px, androidx.ui.core.Px bottomRight = 0.px, androidx.ui.core.Px bottomLeft = 0.px);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Dp topLeft = 0.dp, androidx.ui.unit.Dp topRight = 0.dp, androidx.ui.unit.Dp bottomRight = 0.dp, androidx.ui.unit.Dp bottomLeft = 0.dp);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Px topLeft = 0.px, androidx.ui.unit.Px topRight = 0.px, androidx.ui.unit.Px bottomRight = 0.px, androidx.ui.unit.Px bottomLeft = 0.px);
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(@IntRange(from=0, to=50) int topLeftPercent = 0, @IntRange(from=0, to=50) int topRightPercent = 0, @IntRange(from=0, to=50) int bottomRightPercent = 0, @IntRange(from=0, to=50) int bottomLeftPercent = 0);
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape getCircleShape();
   }
diff --git a/ui/ui-foundation/api/restricted_0.1.0-dev04.txt b/ui/ui-foundation/api/restricted_0.1.0-dev04.txt
index 8d54edf..32d6c68 100644
--- a/ui/ui-foundation/api/restricted_0.1.0-dev04.txt
+++ b/ui/ui-foundation/api/restricted_0.1.0-dev04.txt
@@ -4,8 +4,8 @@
   public final class BackgroundKt {
     method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Color color);
     method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Brush brush);
-    method public static androidx.ui.core.DrawModifier background(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Color color);
-    method public static androidx.ui.core.DrawModifier background(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Brush brush);
+    method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Color color);
+    method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Brush brush);
   }
 
   public final class ClickableKt {
@@ -13,8 +13,8 @@
   }
 
   public final class ColoredRectKt {
-    method public static void ColoredRect(androidx.ui.graphics.Brush brush, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null);
-    method public static void ColoredRect(androidx.ui.graphics.Color color, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null);
+    method public static void ColoredRect(androidx.ui.graphics.Brush brush, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null);
+    method public static void ColoredRect(androidx.ui.graphics.Color color, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null);
   }
 
   public final class ContentColorKt {
@@ -66,18 +66,18 @@
     ctor public ScrollerPosition();
     method public void fling(float startVelocity);
     method public androidx.ui.foundation.animation.FlingConfig getFlingConfig();
-    method public androidx.ui.core.Px getMaxPosition();
-    method public androidx.ui.core.Px getValue();
+    method public androidx.ui.unit.Px getMaxPosition();
+    method public androidx.ui.unit.Px getValue();
     method public boolean isAnimating();
-    method public void scrollBy(androidx.ui.core.Px value);
-    method public void scrollTo(androidx.ui.core.Px value);
+    method public void scrollBy(androidx.ui.unit.Px value);
+    method public void scrollTo(androidx.ui.unit.Px value);
     method public void setFlingConfig(androidx.ui.foundation.animation.FlingConfig p);
-    method public void smoothScrollBy(androidx.ui.core.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
-    method public void smoothScrollTo(androidx.ui.core.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
+    method public void smoothScrollBy(androidx.ui.unit.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
+    method public void smoothScrollTo(androidx.ui.unit.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
     property public final androidx.ui.foundation.animation.FlingConfig flingConfig;
     property public final boolean isAnimating;
-    property public final androidx.ui.core.Px maxPosition;
-    property public final androidx.ui.core.Px value;
+    property public final androidx.ui.unit.Px maxPosition;
+    property public final androidx.ui.unit.Px value;
   }
 
   public final class Strings {
@@ -162,7 +162,7 @@
   }
 
   public final class DraggableKt {
-    method public static void Draggable(androidx.ui.foundation.gestures.DragDirection dragDirection, androidx.ui.foundation.ValueHolder<java.lang.Float> dragValue, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onDragValueChangeRequested, kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>  boolean enabled = true, boolean isValueAnimating = false, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Draggable(androidx.ui.foundation.gestures.DragDirection dragDirection, androidx.ui.foundation.ValueHolder<java.lang.Float> dragValue, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onDragValueChangeRequested, kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>  boolean enabled = true, boolean isValueAnimating = false, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class FloatDragValueController implements androidx.ui.foundation.gestures.DragValueController {
@@ -222,18 +222,18 @@
 package androidx.ui.foundation.shape {
 
   public final class DrawShapeKt {
-    method public static void DrawShape(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Color color);
-    method public static void DrawShape(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Brush brush);
+    method public static void DrawShape(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Color color);
+    method public static void DrawShape(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Brush brush);
   }
 
-  public final class GenericShape implements androidx.ui.engine.geometry.Shape {
-    ctor public GenericShape(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.core.PxSize,kotlin.Unit> builder);
-    method public androidx.ui.foundation.shape.GenericShape copy(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.core.PxSize,kotlin.Unit> builder);
-    method public androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
+  public final class GenericShape implements androidx.ui.graphics.Shape {
+    ctor public GenericShape(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.unit.PxSize,kotlin.Unit> builder);
+    method public androidx.ui.foundation.shape.GenericShape copy(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.unit.PxSize,kotlin.Unit> builder);
+    method public androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
   }
 
   public final class RectangleShapeKt {
-    method public static androidx.ui.engine.geometry.Shape getRectangleShape();
+    method public static androidx.ui.graphics.Shape getRectangleShape();
   }
 
 }
@@ -241,39 +241,39 @@
 package androidx.ui.foundation.shape.border {
 
   public final class Border {
-    ctor public Border(androidx.ui.graphics.Brush brush, androidx.ui.core.Dp width);
+    ctor public Border(androidx.ui.graphics.Brush brush, androidx.ui.unit.Dp width);
     method public androidx.ui.graphics.Brush component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.foundation.shape.border.Border copy(androidx.ui.graphics.Brush brush, androidx.ui.core.Dp width);
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.foundation.shape.border.Border copy(androidx.ui.graphics.Brush brush, androidx.ui.unit.Dp width);
     method public androidx.ui.graphics.Brush getBrush();
-    method public androidx.ui.core.Dp getWidth();
+    method public androidx.ui.unit.Dp getWidth();
   }
 
   public final class BorderKt {
-    method public static androidx.ui.foundation.shape.border.Border Border(androidx.ui.graphics.Color color, androidx.ui.core.Dp width);
+    method public static androidx.ui.foundation.shape.border.Border Border(androidx.ui.graphics.Color color, androidx.ui.unit.Dp width);
   }
 
   public final class DrawBorderKt {
-    method public static void DrawBorder(androidx.ui.engine.geometry.Shape shape, androidx.ui.foundation.shape.border.Border border);
+    method public static void DrawBorder(androidx.ui.graphics.Shape shape, androidx.ui.foundation.shape.border.Border border);
   }
 
 }
 
 package androidx.ui.foundation.shape.corner {
 
-  public abstract class CornerBasedShape implements androidx.ui.engine.geometry.Shape {
+  public abstract class CornerBasedShape implements androidx.ui.graphics.Shape {
     ctor public CornerBasedShape(androidx.ui.foundation.shape.corner.CornerSize topLeft, androidx.ui.foundation.shape.corner.CornerSize topRight, androidx.ui.foundation.shape.corner.CornerSize bottomRight, androidx.ui.foundation.shape.corner.CornerSize bottomLeft);
-    method public final androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
-    method public abstract androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Px topLeft, androidx.ui.core.Px topRight, androidx.ui.core.Px bottomRight, androidx.ui.core.Px bottomLeft);
+    method public final androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
+    method public abstract androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Px topLeft, androidx.ui.unit.Px topRight, androidx.ui.unit.Px bottomRight, androidx.ui.unit.Px bottomLeft);
   }
 
   public interface CornerSize {
-    method public androidx.ui.core.Px toPx(androidx.ui.core.PxSize shapeSize, androidx.ui.core.Density density);
+    method public androidx.ui.unit.Px toPx(androidx.ui.unit.PxSize shapeSize, androidx.ui.unit.Density density);
   }
 
   public final class CornerSizeKt {
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.core.Dp size);
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.core.Px size);
+    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.unit.Dp size);
+    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.unit.Px size);
     method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@IntRange(from=0, to=50) int percent);
     method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@FloatRange(from=0.0, to=50.0) float percent);
     method public static androidx.ui.foundation.shape.corner.CornerSize getZeroCornerSize();
@@ -286,7 +286,7 @@
     method public androidx.ui.foundation.shape.corner.CornerSize component3();
     method public androidx.ui.foundation.shape.corner.CornerSize component4();
     method public androidx.ui.foundation.shape.corner.CutCornerShape copy(androidx.ui.foundation.shape.corner.CornerSize topLeft, androidx.ui.foundation.shape.corner.CornerSize topRight, androidx.ui.foundation.shape.corner.CornerSize bottomRight, androidx.ui.foundation.shape.corner.CornerSize bottomLeft);
-    method public androidx.ui.engine.geometry.Outline.Generic createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Px topLeft, androidx.ui.core.Px topRight, androidx.ui.core.Px bottomRight, androidx.ui.core.Px bottomLeft);
+    method public androidx.ui.graphics.Outline.Generic createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Px topLeft, androidx.ui.unit.Px topRight, androidx.ui.unit.Px bottomRight, androidx.ui.unit.Px bottomLeft);
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomLeft();
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomRight();
     method public androidx.ui.foundation.shape.corner.CornerSize getTopLeft();
@@ -295,11 +295,11 @@
 
   public final class CutCornerShapeKt {
     method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.foundation.shape.corner.CornerSize corner);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Dp size);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Px size);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Dp size);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Px size);
     method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(int percent);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Dp topLeft = 0.dp, androidx.ui.core.Dp topRight = 0.dp, androidx.ui.core.Dp bottomRight = 0.dp, androidx.ui.core.Dp bottomLeft = 0.dp);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Px topLeft = 0.px, androidx.ui.core.Px topRight = 0.px, androidx.ui.core.Px bottomRight = 0.px, androidx.ui.core.Px bottomLeft = 0.px);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Dp topLeft = 0.dp, androidx.ui.unit.Dp topRight = 0.dp, androidx.ui.unit.Dp bottomRight = 0.dp, androidx.ui.unit.Dp bottomLeft = 0.dp);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Px topLeft = 0.px, androidx.ui.unit.Px topRight = 0.px, androidx.ui.unit.Px bottomRight = 0.px, androidx.ui.unit.Px bottomLeft = 0.px);
     method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(@IntRange(from=0, to=50) int topLeftPercent = 0, @IntRange(from=0, to=50) int topRightPercent = 0, @IntRange(from=0, to=50) int bottomRightPercent = 0, @IntRange(from=0, to=50) int bottomLeftPercent = 0);
   }
 
@@ -310,7 +310,7 @@
     method public androidx.ui.foundation.shape.corner.CornerSize component3();
     method public androidx.ui.foundation.shape.corner.CornerSize component4();
     method public androidx.ui.foundation.shape.corner.RoundedCornerShape copy(androidx.ui.foundation.shape.corner.CornerSize topLeft, androidx.ui.foundation.shape.corner.CornerSize topRight, androidx.ui.foundation.shape.corner.CornerSize bottomRight, androidx.ui.foundation.shape.corner.CornerSize bottomLeft);
-    method public androidx.ui.engine.geometry.Outline.Rounded createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Px topLeft, androidx.ui.core.Px topRight, androidx.ui.core.Px bottomRight, androidx.ui.core.Px bottomLeft);
+    method public androidx.ui.graphics.Outline.Rounded createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Px topLeft, androidx.ui.unit.Px topRight, androidx.ui.unit.Px bottomRight, androidx.ui.unit.Px bottomLeft);
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomLeft();
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomRight();
     method public androidx.ui.foundation.shape.corner.CornerSize getTopLeft();
@@ -319,11 +319,11 @@
 
   public final class RoundedCornerShapeKt {
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.foundation.shape.corner.CornerSize corner);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Dp size);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Px size);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Dp size);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Px size);
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(int percent);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Dp topLeft = 0.dp, androidx.ui.core.Dp topRight = 0.dp, androidx.ui.core.Dp bottomRight = 0.dp, androidx.ui.core.Dp bottomLeft = 0.dp);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Px topLeft = 0.px, androidx.ui.core.Px topRight = 0.px, androidx.ui.core.Px bottomRight = 0.px, androidx.ui.core.Px bottomLeft = 0.px);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Dp topLeft = 0.dp, androidx.ui.unit.Dp topRight = 0.dp, androidx.ui.unit.Dp bottomRight = 0.dp, androidx.ui.unit.Dp bottomLeft = 0.dp);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Px topLeft = 0.px, androidx.ui.unit.Px topRight = 0.px, androidx.ui.unit.Px bottomRight = 0.px, androidx.ui.unit.Px bottomLeft = 0.px);
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(@IntRange(from=0, to=50) int topLeftPercent = 0, @IntRange(from=0, to=50) int topRightPercent = 0, @IntRange(from=0, to=50) int bottomRightPercent = 0, @IntRange(from=0, to=50) int bottomLeftPercent = 0);
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape getCircleShape();
   }
diff --git a/ui/ui-foundation/api/restricted_current.txt b/ui/ui-foundation/api/restricted_current.txt
index 8d54edf..32d6c68 100644
--- a/ui/ui-foundation/api/restricted_current.txt
+++ b/ui/ui-foundation/api/restricted_current.txt
@@ -4,8 +4,8 @@
   public final class BackgroundKt {
     method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Color color);
     method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Brush brush);
-    method public static androidx.ui.core.DrawModifier background(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Color color);
-    method public static androidx.ui.core.DrawModifier background(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Brush brush);
+    method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Color color);
+    method public static androidx.ui.core.DrawModifier background(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Brush brush);
   }
 
   public final class ClickableKt {
@@ -13,8 +13,8 @@
   }
 
   public final class ColoredRectKt {
-    method public static void ColoredRect(androidx.ui.graphics.Brush brush, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null);
-    method public static void ColoredRect(androidx.ui.graphics.Color color, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null);
+    method public static void ColoredRect(androidx.ui.graphics.Brush brush, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null);
+    method public static void ColoredRect(androidx.ui.graphics.Color color, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null);
   }
 
   public final class ContentColorKt {
@@ -66,18 +66,18 @@
     ctor public ScrollerPosition();
     method public void fling(float startVelocity);
     method public androidx.ui.foundation.animation.FlingConfig getFlingConfig();
-    method public androidx.ui.core.Px getMaxPosition();
-    method public androidx.ui.core.Px getValue();
+    method public androidx.ui.unit.Px getMaxPosition();
+    method public androidx.ui.unit.Px getValue();
     method public boolean isAnimating();
-    method public void scrollBy(androidx.ui.core.Px value);
-    method public void scrollTo(androidx.ui.core.Px value);
+    method public void scrollBy(androidx.ui.unit.Px value);
+    method public void scrollTo(androidx.ui.unit.Px value);
     method public void setFlingConfig(androidx.ui.foundation.animation.FlingConfig p);
-    method public void smoothScrollBy(androidx.ui.core.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
-    method public void smoothScrollTo(androidx.ui.core.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
+    method public void smoothScrollBy(androidx.ui.unit.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
+    method public void smoothScrollTo(androidx.ui.unit.Px value, kotlin.jvm.functions.Function2<? super androidx.animation.AnimationEndReason,? super java.lang.Float,kotlin.Unit>  _, _ ->  });
     property public final androidx.ui.foundation.animation.FlingConfig flingConfig;
     property public final boolean isAnimating;
-    property public final androidx.ui.core.Px maxPosition;
-    property public final androidx.ui.core.Px value;
+    property public final androidx.ui.unit.Px maxPosition;
+    property public final androidx.ui.unit.Px value;
   }
 
   public final class Strings {
@@ -162,7 +162,7 @@
   }
 
   public final class DraggableKt {
-    method public static void Draggable(androidx.ui.foundation.gestures.DragDirection dragDirection, androidx.ui.foundation.ValueHolder<java.lang.Float> dragValue, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onDragValueChangeRequested, kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>  boolean enabled = true, boolean isValueAnimating = false, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Draggable(androidx.ui.foundation.gestures.DragDirection dragDirection, androidx.ui.foundation.ValueHolder<java.lang.Float> dragValue, kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit> onDragValueChangeRequested, kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>  kotlin.jvm.functions.Function1<? super java.lang.Float,kotlin.Unit>  boolean enabled = true, boolean isValueAnimating = false, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class FloatDragValueController implements androidx.ui.foundation.gestures.DragValueController {
@@ -222,18 +222,18 @@
 package androidx.ui.foundation.shape {
 
   public final class DrawShapeKt {
-    method public static void DrawShape(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Color color);
-    method public static void DrawShape(androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Brush brush);
+    method public static void DrawShape(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Color color);
+    method public static void DrawShape(androidx.ui.graphics.Shape shape, androidx.ui.graphics.Brush brush);
   }
 
-  public final class GenericShape implements androidx.ui.engine.geometry.Shape {
-    ctor public GenericShape(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.core.PxSize,kotlin.Unit> builder);
-    method public androidx.ui.foundation.shape.GenericShape copy(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.core.PxSize,kotlin.Unit> builder);
-    method public androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
+  public final class GenericShape implements androidx.ui.graphics.Shape {
+    ctor public GenericShape(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.unit.PxSize,kotlin.Unit> builder);
+    method public androidx.ui.foundation.shape.GenericShape copy(kotlin.jvm.functions.Function2<? super androidx.ui.graphics.Path,? super androidx.ui.unit.PxSize,kotlin.Unit> builder);
+    method public androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
   }
 
   public final class RectangleShapeKt {
-    method public static androidx.ui.engine.geometry.Shape getRectangleShape();
+    method public static androidx.ui.graphics.Shape getRectangleShape();
   }
 
 }
@@ -241,39 +241,39 @@
 package androidx.ui.foundation.shape.border {
 
   public final class Border {
-    ctor public Border(androidx.ui.graphics.Brush brush, androidx.ui.core.Dp width);
+    ctor public Border(androidx.ui.graphics.Brush brush, androidx.ui.unit.Dp width);
     method public androidx.ui.graphics.Brush component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.foundation.shape.border.Border copy(androidx.ui.graphics.Brush brush, androidx.ui.core.Dp width);
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.foundation.shape.border.Border copy(androidx.ui.graphics.Brush brush, androidx.ui.unit.Dp width);
     method public androidx.ui.graphics.Brush getBrush();
-    method public androidx.ui.core.Dp getWidth();
+    method public androidx.ui.unit.Dp getWidth();
   }
 
   public final class BorderKt {
-    method public static androidx.ui.foundation.shape.border.Border Border(androidx.ui.graphics.Color color, androidx.ui.core.Dp width);
+    method public static androidx.ui.foundation.shape.border.Border Border(androidx.ui.graphics.Color color, androidx.ui.unit.Dp width);
   }
 
   public final class DrawBorderKt {
-    method public static void DrawBorder(androidx.ui.engine.geometry.Shape shape, androidx.ui.foundation.shape.border.Border border);
+    method public static void DrawBorder(androidx.ui.graphics.Shape shape, androidx.ui.foundation.shape.border.Border border);
   }
 
 }
 
 package androidx.ui.foundation.shape.corner {
 
-  public abstract class CornerBasedShape implements androidx.ui.engine.geometry.Shape {
+  public abstract class CornerBasedShape implements androidx.ui.graphics.Shape {
     ctor public CornerBasedShape(androidx.ui.foundation.shape.corner.CornerSize topLeft, androidx.ui.foundation.shape.corner.CornerSize topRight, androidx.ui.foundation.shape.corner.CornerSize bottomRight, androidx.ui.foundation.shape.corner.CornerSize bottomLeft);
-    method public final androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
-    method public abstract androidx.ui.engine.geometry.Outline createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Px topLeft, androidx.ui.core.Px topRight, androidx.ui.core.Px bottomRight, androidx.ui.core.Px bottomLeft);
+    method public final androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
+    method public abstract androidx.ui.graphics.Outline createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Px topLeft, androidx.ui.unit.Px topRight, androidx.ui.unit.Px bottomRight, androidx.ui.unit.Px bottomLeft);
   }
 
   public interface CornerSize {
-    method public androidx.ui.core.Px toPx(androidx.ui.core.PxSize shapeSize, androidx.ui.core.Density density);
+    method public androidx.ui.unit.Px toPx(androidx.ui.unit.PxSize shapeSize, androidx.ui.unit.Density density);
   }
 
   public final class CornerSizeKt {
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.core.Dp size);
-    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.core.Px size);
+    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.unit.Dp size);
+    method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(androidx.ui.unit.Px size);
     method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@IntRange(from=0, to=50) int percent);
     method public static androidx.ui.foundation.shape.corner.CornerSize CornerSize(@FloatRange(from=0.0, to=50.0) float percent);
     method public static androidx.ui.foundation.shape.corner.CornerSize getZeroCornerSize();
@@ -286,7 +286,7 @@
     method public androidx.ui.foundation.shape.corner.CornerSize component3();
     method public androidx.ui.foundation.shape.corner.CornerSize component4();
     method public androidx.ui.foundation.shape.corner.CutCornerShape copy(androidx.ui.foundation.shape.corner.CornerSize topLeft, androidx.ui.foundation.shape.corner.CornerSize topRight, androidx.ui.foundation.shape.corner.CornerSize bottomRight, androidx.ui.foundation.shape.corner.CornerSize bottomLeft);
-    method public androidx.ui.engine.geometry.Outline.Generic createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Px topLeft, androidx.ui.core.Px topRight, androidx.ui.core.Px bottomRight, androidx.ui.core.Px bottomLeft);
+    method public androidx.ui.graphics.Outline.Generic createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Px topLeft, androidx.ui.unit.Px topRight, androidx.ui.unit.Px bottomRight, androidx.ui.unit.Px bottomLeft);
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomLeft();
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomRight();
     method public androidx.ui.foundation.shape.corner.CornerSize getTopLeft();
@@ -295,11 +295,11 @@
 
   public final class CutCornerShapeKt {
     method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.foundation.shape.corner.CornerSize corner);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Dp size);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Px size);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Dp size);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Px size);
     method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(int percent);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Dp topLeft = 0.dp, androidx.ui.core.Dp topRight = 0.dp, androidx.ui.core.Dp bottomRight = 0.dp, androidx.ui.core.Dp bottomLeft = 0.dp);
-    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.core.Px topLeft = 0.px, androidx.ui.core.Px topRight = 0.px, androidx.ui.core.Px bottomRight = 0.px, androidx.ui.core.Px bottomLeft = 0.px);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Dp topLeft = 0.dp, androidx.ui.unit.Dp topRight = 0.dp, androidx.ui.unit.Dp bottomRight = 0.dp, androidx.ui.unit.Dp bottomLeft = 0.dp);
+    method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(androidx.ui.unit.Px topLeft = 0.px, androidx.ui.unit.Px topRight = 0.px, androidx.ui.unit.Px bottomRight = 0.px, androidx.ui.unit.Px bottomLeft = 0.px);
     method public static androidx.ui.foundation.shape.corner.CutCornerShape CutCornerShape(@IntRange(from=0, to=50) int topLeftPercent = 0, @IntRange(from=0, to=50) int topRightPercent = 0, @IntRange(from=0, to=50) int bottomRightPercent = 0, @IntRange(from=0, to=50) int bottomLeftPercent = 0);
   }
 
@@ -310,7 +310,7 @@
     method public androidx.ui.foundation.shape.corner.CornerSize component3();
     method public androidx.ui.foundation.shape.corner.CornerSize component4();
     method public androidx.ui.foundation.shape.corner.RoundedCornerShape copy(androidx.ui.foundation.shape.corner.CornerSize topLeft, androidx.ui.foundation.shape.corner.CornerSize topRight, androidx.ui.foundation.shape.corner.CornerSize bottomRight, androidx.ui.foundation.shape.corner.CornerSize bottomLeft);
-    method public androidx.ui.engine.geometry.Outline.Rounded createOutline(androidx.ui.core.PxSize size, androidx.ui.core.Px topLeft, androidx.ui.core.Px topRight, androidx.ui.core.Px bottomRight, androidx.ui.core.Px bottomLeft);
+    method public androidx.ui.graphics.Outline.Rounded createOutline(androidx.ui.unit.PxSize size, androidx.ui.unit.Px topLeft, androidx.ui.unit.Px topRight, androidx.ui.unit.Px bottomRight, androidx.ui.unit.Px bottomLeft);
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomLeft();
     method public androidx.ui.foundation.shape.corner.CornerSize getBottomRight();
     method public androidx.ui.foundation.shape.corner.CornerSize getTopLeft();
@@ -319,11 +319,11 @@
 
   public final class RoundedCornerShapeKt {
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.foundation.shape.corner.CornerSize corner);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Dp size);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Px size);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Dp size);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Px size);
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(int percent);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Dp topLeft = 0.dp, androidx.ui.core.Dp topRight = 0.dp, androidx.ui.core.Dp bottomRight = 0.dp, androidx.ui.core.Dp bottomLeft = 0.dp);
-    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.core.Px topLeft = 0.px, androidx.ui.core.Px topRight = 0.px, androidx.ui.core.Px bottomRight = 0.px, androidx.ui.core.Px bottomLeft = 0.px);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Dp topLeft = 0.dp, androidx.ui.unit.Dp topRight = 0.dp, androidx.ui.unit.Dp bottomRight = 0.dp, androidx.ui.unit.Dp bottomLeft = 0.dp);
+    method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(androidx.ui.unit.Px topLeft = 0.px, androidx.ui.unit.Px topRight = 0.px, androidx.ui.unit.Px bottomRight = 0.px, androidx.ui.unit.Px bottomLeft = 0.px);
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape RoundedCornerShape(@IntRange(from=0, to=50) int topLeftPercent = 0, @IntRange(from=0, to=50) int topRightPercent = 0, @IntRange(from=0, to=50) int bottomRightPercent = 0, @IntRange(from=0, to=50) int bottomLeftPercent = 0);
     method public static androidx.ui.foundation.shape.corner.RoundedCornerShape getCircleShape();
   }
diff --git a/ui/ui-foundation/integration-tests/foundation-demos/src/main/java/androidx/ui/foundation/demos/AnimatedDraggableActivity.kt b/ui/ui-foundation/integration-tests/foundation-demos/src/main/java/androidx/ui/foundation/demos/AnimatedDraggableActivity.kt
index c21d839..d9aa89d 100644
--- a/ui/ui-foundation/integration-tests/foundation-demos/src/main/java/androidx/ui/foundation/demos/AnimatedDraggableActivity.kt
+++ b/ui/ui-foundation/integration-tests/foundation-demos/src/main/java/androidx/ui/foundation/demos/AnimatedDraggableActivity.kt
@@ -18,7 +18,6 @@
 
 import android.app.Activity
 import android.os.Bundle
-import androidx.ui.core.dp
 import androidx.ui.core.setContent
 import androidx.ui.foundation.samples.AnchoredDraggableSample
 import androidx.ui.foundation.samples.DraggableSample
@@ -26,6 +25,7 @@
 import androidx.ui.layout.LayoutHeight
 import androidx.ui.layout.Spacer
 import androidx.ui.layout.Wrap
+import androidx.ui.unit.dp
 
 class AnimatedDraggableActivity : Activity() {
 
diff --git a/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/ColoredRectSamples.kt b/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/ColoredRectSamples.kt
index 55783ac..ce0d223 100644
--- a/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/ColoredRectSamples.kt
+++ b/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/ColoredRectSamples.kt
@@ -18,10 +18,10 @@
 
 import androidx.annotation.Sampled
 import androidx.compose.Composable
-import androidx.ui.core.dp
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.SolidColor
+import androidx.ui.unit.dp
 
 @Sampled
 @Composable
diff --git a/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/DarkThemeSample.kt b/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/DarkThemeSample.kt
index 63d5a13..c454259 100644
--- a/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/DarkThemeSample.kt
+++ b/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/DarkThemeSample.kt
@@ -18,11 +18,11 @@
 
 import androidx.annotation.Sampled
 import androidx.compose.Composable
-import androidx.ui.core.dp
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.foundation.isSystemInDarkTheme
 import androidx.ui.graphics.Color
 import androidx.ui.layout.Wrap
+import androidx.ui.unit.dp
 
 @Sampled
 @Composable
diff --git a/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/DeterminateProgressSamples.kt b/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/DeterminateProgressSamples.kt
index 58609ac..30e6238 100644
--- a/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/DeterminateProgressSamples.kt
+++ b/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/DeterminateProgressSamples.kt
@@ -18,10 +18,10 @@
 
 import androidx.annotation.Sampled
 import androidx.compose.Composable
-import androidx.ui.core.dp
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.foundation.DeterminateProgressIndicator
 import androidx.ui.graphics.Color
+import androidx.ui.unit.dp
 
 @Sampled
 @Composable
diff --git a/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/DialogSample.kt b/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/DialogSample.kt
index 8dd7ce9..1598f86 100644
--- a/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/DialogSample.kt
+++ b/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/DialogSample.kt
@@ -19,12 +19,12 @@
 import androidx.annotation.Sampled
 import androidx.compose.Composable
 import androidx.compose.state
-import androidx.ui.core.dp
 import androidx.ui.foundation.Dialog
 import androidx.ui.foundation.shape.DrawShape
 import androidx.ui.foundation.shape.corner.CircleShape
 import androidx.ui.graphics.Color
 import androidx.ui.layout.Container
+import androidx.ui.unit.dp
 
 @Sampled
 @Composable
diff --git a/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/DraggableSamples.kt b/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/DraggableSamples.kt
index 9d8302f..90c8ada 100644
--- a/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/DraggableSamples.kt
+++ b/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/DraggableSamples.kt
@@ -20,8 +20,6 @@
 import androidx.compose.Composable
 import androidx.ui.core.Alignment
 import androidx.ui.core.ambientDensity
-import androidx.ui.core.dp
-import androidx.ui.core.withDensity
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.foundation.animation.AnchorsFlingConfig
 import androidx.ui.foundation.animation.animatedDragValue
@@ -32,6 +30,8 @@
 import androidx.ui.graphics.Color
 import androidx.ui.layout.Container
 import androidx.ui.layout.Padding
+import androidx.ui.unit.dp
+import androidx.ui.unit.withDensity
 
 @Sampled
 @Composable
diff --git a/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/ScrollerSamples.kt b/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/ScrollerSamples.kt
index c0fec4c..4691d75 100644
--- a/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/ScrollerSamples.kt
+++ b/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/ScrollerSamples.kt
@@ -22,12 +22,8 @@
 import androidx.compose.remember
 import androidx.compose.state
 import androidx.ui.core.Alignment
-import androidx.ui.core.PxPosition
 import androidx.ui.core.Text
-import androidx.ui.core.dp
 import androidx.ui.core.gesture.PressIndicatorGestureDetector
-import androidx.ui.core.px
-import androidx.ui.core.sp
 import androidx.ui.foundation.Clickable
 import androidx.ui.foundation.HorizontalScroller
 import androidx.ui.foundation.ScrollerPosition
@@ -42,6 +38,10 @@
 import androidx.ui.layout.Row
 import androidx.ui.layout.Table
 import androidx.ui.text.TextStyle
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
+import androidx.ui.unit.sp
 
 private val colors = listOf(
     Color(0xFFffd7d7.toInt()),
diff --git a/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/TableBordersSamples.kt b/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/TableBordersSamples.kt
index f17c97a..c3de3a8 100644
--- a/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/TableBordersSamples.kt
+++ b/ui/ui-foundation/integration-tests/samples/src/main/java/androidx/ui/foundation/samples/TableBordersSamples.kt
@@ -18,7 +18,6 @@
 
 import androidx.annotation.Sampled
 import androidx.compose.Composable
-import androidx.ui.core.dp
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.foundation.drawBorders
 import androidx.ui.foundation.shape.border.Border
@@ -26,6 +25,7 @@
 import androidx.ui.layout.LayoutAspectRatio
 import androidx.ui.layout.Padding
 import androidx.ui.layout.Table
+import androidx.ui.unit.dp
 
 @Sampled
 @Composable
diff --git a/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/BackgroundTest.kt b/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/BackgroundTest.kt
index 499f880..b2cb646 100644
--- a/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/BackgroundTest.kt
+++ b/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/BackgroundTest.kt
@@ -21,10 +21,8 @@
 import androidx.test.filters.MediumTest
 import androidx.test.filters.SdkSuppress
 import androidx.ui.core.Alignment
-import androidx.ui.core.DensityScope
 import androidx.ui.core.TestTag
 import androidx.ui.core.WithDensity
-import androidx.ui.core.px
 import androidx.ui.foundation.shape.RectangleShape
 import androidx.ui.foundation.shape.corner.CircleShape
 import androidx.ui.graphics.Color
@@ -37,6 +35,8 @@
 import androidx.ui.test.captureToBitmap
 import androidx.ui.test.createComposeRule
 import androidx.ui.test.findByTag
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.px
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/ColoredRectTest.kt b/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/ColoredRectTest.kt
index dad1d67..693ea7b 100644
--- a/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/ColoredRectTest.kt
+++ b/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/ColoredRectTest.kt
@@ -17,12 +17,12 @@
 package androidx.ui.foundation
 
 import androidx.test.filters.MediumTest
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
 import androidx.ui.graphics.Color
 import androidx.ui.layout.DpConstraints
 import androidx.ui.test.createComposeRule
 import androidx.ui.test.setContentAndCollectSizes
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/DeterminateProgressTest.kt b/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/DeterminateProgressTest.kt
index b1f1d6a..8d564c6 100644
--- a/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/DeterminateProgressTest.kt
+++ b/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/DeterminateProgressTest.kt
@@ -19,12 +19,12 @@
 import androidx.compose.Model
 import androidx.test.filters.MediumTest
 import androidx.ui.core.TestTag
-import androidx.ui.core.dp
 import androidx.ui.graphics.Color
 import androidx.ui.test.assertIsVisible
 import androidx.ui.test.assertValueEquals
 import androidx.ui.test.createComposeRule
 import androidx.ui.test.findByTag
+import androidx.ui.unit.dp
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/ScrollerTest.kt b/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/ScrollerTest.kt
index d3acedf..41f2eb3 100644
--- a/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/ScrollerTest.kt
+++ b/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/ScrollerTest.kt
@@ -22,18 +22,9 @@
 import androidx.test.filters.SdkSuppress
 import androidx.test.filters.SmallTest
 import androidx.ui.core.Alignment
-import androidx.ui.core.Dp
 import androidx.ui.core.Draw
-import androidx.ui.core.IntPx
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.TestTag
 import androidx.ui.core.Text
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
-import androidx.ui.core.px
-import androidx.ui.core.toPx
-import androidx.ui.core.toRect
-import androidx.ui.core.withDensity
 import androidx.ui.foundation.shape.DrawShape
 import androidx.ui.foundation.shape.RectangleShape
 import androidx.ui.graphics.Color
@@ -60,6 +51,15 @@
 import androidx.ui.test.sendSwipeLeft
 import androidx.ui.test.sendSwipeRight
 import androidx.ui.test.sendSwipeUp
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.px
+import androidx.ui.unit.toPx
+import androidx.ui.unit.toRect
+import androidx.ui.unit.withDensity
 import com.google.common.truth.Truth.assertThat
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertTrue
diff --git a/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/shape/RectangleShapeTest.kt b/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/shape/RectangleShapeTest.kt
index 1ee3c9c..f4415a2 100644
--- a/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/shape/RectangleShapeTest.kt
+++ b/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/shape/RectangleShapeTest.kt
@@ -17,12 +17,12 @@
 package androidx.ui.foundation.shape
 
 import androidx.test.filters.SmallTest
-import androidx.ui.core.Density
-import androidx.ui.core.PxSize
-import androidx.ui.core.px
-import androidx.ui.core.toRect
-import androidx.ui.engine.geometry.Outline
-import androidx.ui.engine.geometry.Shape
+import androidx.ui.graphics.Outline
+import androidx.ui.graphics.Shape
+import androidx.ui.unit.Density
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.px
+import androidx.ui.unit.toRect
 import com.google.common.truth.Truth.assertThat
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/shape/corner/CornerSizeTest.kt b/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/shape/corner/CornerSizeTest.kt
index bf941c3..637f0d1 100644
--- a/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/shape/corner/CornerSizeTest.kt
+++ b/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/shape/corner/CornerSizeTest.kt
@@ -17,10 +17,10 @@
 package androidx.ui.foundation.shape.corner
 
 import androidx.test.filters.SmallTest
-import androidx.ui.core.Density
-import androidx.ui.core.PxSize
-import androidx.ui.core.dp
-import androidx.ui.core.px
+import androidx.ui.unit.Density
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
 import com.google.common.truth.Truth.assertThat
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/shape/corner/CutCornerShapeTest.kt b/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/shape/corner/CutCornerShapeTest.kt
index 676b885..1508553 100644
--- a/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/shape/corner/CutCornerShapeTest.kt
+++ b/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/shape/corner/CutCornerShapeTest.kt
@@ -17,13 +17,13 @@
 package androidx.ui.foundation.shape.corner
 
 import androidx.test.filters.SmallTest
-import androidx.ui.core.Density
-import androidx.ui.core.PxSize
-import androidx.ui.core.px
-import androidx.ui.engine.geometry.Outline
-import androidx.ui.engine.geometry.Shape
+import androidx.ui.graphics.Outline
 import androidx.ui.graphics.Path
 import androidx.ui.graphics.PathOperation
+import androidx.ui.graphics.Shape
+import androidx.ui.unit.Density
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.px
 import com.google.common.truth.Truth.assertThat
 import org.junit.Assert
 import org.junit.Test
diff --git a/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/shape/corner/RoundedCornerShapeTest.kt b/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/shape/corner/RoundedCornerShapeTest.kt
index b9eb9d1..398b9d8 100644
--- a/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/shape/corner/RoundedCornerShapeTest.kt
+++ b/ui/ui-foundation/src/androidTest/java/androidx/ui/foundation/shape/corner/RoundedCornerShapeTest.kt
@@ -17,15 +17,15 @@
 package androidx.ui.foundation.shape.corner
 
 import androidx.test.filters.SmallTest
-import androidx.ui.core.Density
-import androidx.ui.core.PxSize
-import androidx.ui.core.dp
-import androidx.ui.core.px
-import androidx.ui.core.toRect
-import androidx.ui.engine.geometry.Outline
-import androidx.ui.engine.geometry.RRect
-import androidx.ui.engine.geometry.Radius
-import androidx.ui.engine.geometry.Shape
+import androidx.ui.geometry.RRect
+import androidx.ui.geometry.Radius
+import androidx.ui.graphics.Outline
+import androidx.ui.graphics.Shape
+import androidx.ui.unit.Density
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
+import androidx.ui.unit.toRect
 import com.google.common.truth.Truth.assertThat
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-foundation/src/main/java/androidx/ui/foundation/Background.kt b/ui/ui-foundation/src/main/java/androidx/ui/foundation/Background.kt
index 256adff..6661c84 100644
--- a/ui/ui-foundation/src/main/java/androidx/ui/foundation/Background.kt
+++ b/ui/ui-foundation/src/main/java/androidx/ui/foundation/Background.kt
@@ -16,19 +16,19 @@
 
 package androidx.ui.foundation
 
-import androidx.ui.core.Density
 import androidx.ui.core.DrawModifier
-import androidx.ui.core.PxSize
 import androidx.ui.core.draw
-import androidx.ui.core.toRect
-import androidx.ui.engine.geometry.Shape
-import androidx.ui.engine.geometry.drawOutline
 import androidx.ui.graphics.Brush
 import androidx.ui.graphics.Canvas
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
 import androidx.ui.graphics.PaintingStyle
+import androidx.ui.graphics.Shape
 import androidx.ui.graphics.SolidColor
+import androidx.ui.graphics.drawOutline
+import androidx.ui.unit.Density
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.toRect
 
 private fun background(paint: Paint) = draw { canvas, size ->
     canvas.drawRect(size.toRect(), paint)
diff --git a/ui/ui-foundation/src/main/java/androidx/ui/foundation/ColoredRect.kt b/ui/ui-foundation/src/main/java/androidx/ui/foundation/ColoredRect.kt
index f0be713..eb9fce1 100644
--- a/ui/ui-foundation/src/main/java/androidx/ui/foundation/ColoredRect.kt
+++ b/ui/ui-foundation/src/main/java/androidx/ui/foundation/ColoredRect.kt
@@ -18,11 +18,11 @@
 
 import androidx.compose.Composable
 import androidx.compose.remember
-import androidx.ui.core.Dp
 import androidx.ui.core.Modifier
 import androidx.ui.graphics.Brush
 import androidx.ui.graphics.Color
 import androidx.ui.layout.Container
+import androidx.ui.unit.Dp
 
 /**
  * Component that represents a rectangle painted with the specified [Brush].
diff --git a/ui/ui-foundation/src/main/java/androidx/ui/foundation/Image.kt b/ui/ui-foundation/src/main/java/androidx/ui/foundation/Image.kt
index a9d1f04..500abc2 100644
--- a/ui/ui-foundation/src/main/java/androidx/ui/foundation/Image.kt
+++ b/ui/ui-foundation/src/main/java/androidx/ui/foundation/Image.kt
@@ -20,14 +20,14 @@
 import androidx.compose.remember
 import androidx.ui.core.Draw
 import androidx.ui.core.WithDensity
-import androidx.ui.engine.geometry.Rect
-import androidx.ui.graphics.Color
-import androidx.ui.layout.Container
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.BlendMode
+import androidx.ui.graphics.Color
 import androidx.ui.graphics.ColorFilter
 import androidx.ui.graphics.FilterQuality
 import androidx.ui.graphics.Image
 import androidx.ui.graphics.Paint
+import androidx.ui.layout.Container
 
 // TODO(Andrey) Temporary. Should be replaced with our proper Image component when it available
 @Composable
diff --git a/ui/ui-foundation/src/main/java/androidx/ui/foundation/Scroller.kt b/ui/ui-foundation/src/main/java/androidx/ui/foundation/Scroller.kt
index b93b994..2a75091 100644
--- a/ui/ui-foundation/src/main/java/androidx/ui/foundation/Scroller.kt
+++ b/ui/ui-foundation/src/main/java/androidx/ui/foundation/Scroller.kt
@@ -24,16 +24,16 @@
 import androidx.ui.core.Alignment
 import androidx.ui.core.Clip
 import androidx.ui.core.Constraints
-import androidx.ui.core.IntPx
+import androidx.ui.unit.IntPx
 import androidx.ui.core.Layout
 import androidx.ui.core.Modifier
-import androidx.ui.core.Px
+import androidx.ui.unit.Px
 import androidx.ui.core.RepaintBoundary
-import androidx.ui.core.ipx
-import androidx.ui.core.min
-import androidx.ui.core.px
-import androidx.ui.core.round
-import androidx.ui.core.toPx
+import androidx.ui.unit.ipx
+import androidx.ui.unit.min
+import androidx.ui.unit.px
+import androidx.ui.unit.round
+import androidx.ui.unit.toPx
 import androidx.ui.foundation.animation.AnimatedValueHolder
 import androidx.ui.foundation.animation.FlingConfig
 import androidx.ui.foundation.gestures.DragDirection
diff --git a/ui/ui-foundation/src/main/java/androidx/ui/foundation/TableBorders.kt b/ui/ui-foundation/src/main/java/androidx/ui/foundation/TableBorders.kt
index cc5e727..8881f3d 100644
--- a/ui/ui-foundation/src/main/java/androidx/ui/foundation/TableBorders.kt
+++ b/ui/ui-foundation/src/main/java/androidx/ui/foundation/TableBorders.kt
@@ -17,14 +17,14 @@
 package androidx.ui.foundation
 
 import androidx.compose.remember
-import androidx.ui.core.Dp
 import androidx.ui.core.Draw
-import androidx.ui.engine.geometry.Offset
 import androidx.ui.foundation.shape.border.Border
+import androidx.ui.geometry.Offset
 import androidx.ui.graphics.Color
+import androidx.ui.graphics.Paint
 import androidx.ui.layout.Table
 import androidx.ui.layout.TableChildren
-import androidx.ui.graphics.Paint
+import androidx.ui.unit.Dp
 
 /**
  * Adds border drawing for a [Table] layout, when placed inside the [TableChildren] block.
diff --git a/ui/ui-foundation/src/main/java/androidx/ui/foundation/gestures/DragDirection.kt b/ui/ui-foundation/src/main/java/androidx/ui/foundation/gestures/DragDirection.kt
index bd2a344..55d774d 100644
--- a/ui/ui-foundation/src/main/java/androidx/ui/foundation/gestures/DragDirection.kt
+++ b/ui/ui-foundation/src/main/java/androidx/ui/foundation/gestures/DragDirection.kt
@@ -17,8 +17,8 @@
 package androidx.ui.foundation.gestures
 
 import androidx.ui.core.Direction
-import androidx.ui.core.Px
-import androidx.ui.core.PxPosition
+import androidx.ui.unit.Px
+import androidx.ui.unit.PxPosition
 
 /**
  * Draggable Direction specifies the direction in which you can drag an [Draggable].
diff --git a/ui/ui-foundation/src/main/java/androidx/ui/foundation/gestures/Draggable.kt b/ui/ui-foundation/src/main/java/androidx/ui/foundation/gestures/Draggable.kt
index 8cf8aac..3b31a1e 100644
--- a/ui/ui-foundation/src/main/java/androidx/ui/foundation/gestures/Draggable.kt
+++ b/ui/ui-foundation/src/main/java/androidx/ui/foundation/gestures/Draggable.kt
@@ -17,12 +17,12 @@
 package androidx.ui.foundation.gestures
 
 import androidx.compose.Composable
-import androidx.ui.core.PxPosition
 import androidx.ui.core.gesture.DragObserver
 import androidx.ui.core.gesture.TouchSlopDragGestureDetector
-import androidx.ui.core.px
 import androidx.ui.foundation.ValueHolder
 import androidx.ui.foundation.animation.AnimatedValueHolder
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.px
 
 // TODO(b/145766300): Consider folding "isAnimating" into dragValue.
 /**
diff --git a/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/DrawShape.kt b/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/DrawShape.kt
index bef45a5..9ea106ca 100644
--- a/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/DrawShape.kt
+++ b/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/DrawShape.kt
@@ -19,14 +19,14 @@
 import androidx.compose.Composable
 import androidx.compose.remember
 import androidx.ui.core.Draw
-import androidx.ui.core.PxSize
-import androidx.ui.engine.geometry.Outline
-import androidx.ui.engine.geometry.Shape
-import androidx.ui.engine.geometry.drawOutline
-import androidx.ui.graphics.Color
 import androidx.ui.graphics.Brush
-import androidx.ui.graphics.SolidColor
+import androidx.ui.graphics.Color
+import androidx.ui.graphics.Outline
 import androidx.ui.graphics.Paint
+import androidx.ui.graphics.Shape
+import androidx.ui.graphics.SolidColor
+import androidx.ui.graphics.drawOutline
+import androidx.ui.unit.PxSize
 
 /**
  * Draw the [shape] with the provided [color].
diff --git a/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/GenericShape.kt b/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/GenericShape.kt
index d1070a3..e2264e5 100644
--- a/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/GenericShape.kt
+++ b/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/GenericShape.kt
@@ -16,11 +16,11 @@
 
 package androidx.ui.foundation.shape
 
-import androidx.ui.core.Density
-import androidx.ui.core.PxSize
-import androidx.ui.engine.geometry.Outline
-import androidx.ui.engine.geometry.Shape
+import androidx.ui.graphics.Outline
 import androidx.ui.graphics.Path
+import androidx.ui.graphics.Shape
+import androidx.ui.unit.Density
+import androidx.ui.unit.PxSize
 
 /**
  * Creates [Shape] defined by applying the provided [builder] on a [Path].
diff --git a/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/RectangleShape.kt b/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/RectangleShape.kt
index 4b8a6f8..64871b0 100644
--- a/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/RectangleShape.kt
+++ b/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/RectangleShape.kt
@@ -16,11 +16,11 @@
 
 package androidx.ui.foundation.shape
 
-import androidx.ui.core.Density
-import androidx.ui.core.PxSize
-import androidx.ui.core.toRect
-import androidx.ui.engine.geometry.Outline
-import androidx.ui.engine.geometry.Shape
+import androidx.ui.graphics.Outline
+import androidx.ui.graphics.Shape
+import androidx.ui.unit.Density
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.toRect
 
 /**
  * A shape describing the rectangle.
diff --git a/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/border/Border.kt b/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/border/Border.kt
index 7eaa1f4..42ec588 100644
--- a/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/border/Border.kt
+++ b/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/border/Border.kt
@@ -16,10 +16,10 @@
 
 package androidx.ui.foundation.shape.border
 
-import androidx.ui.core.Dp
-import androidx.ui.graphics.Color
 import androidx.ui.graphics.Brush
+import androidx.ui.graphics.Color
 import androidx.ui.graphics.SolidColor
+import androidx.ui.unit.Dp
 
 /**
  * A border of a shape which will be drawn on top of the shape as an inner stroke.
diff --git a/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/border/DrawBorder.kt b/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/border/DrawBorder.kt
index b3e5436..2e15457 100644
--- a/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/border/DrawBorder.kt
+++ b/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/border/DrawBorder.kt
@@ -18,16 +18,16 @@
 
 import androidx.compose.Composable
 import androidx.compose.remember
-import androidx.ui.core.Dp
 import androidx.ui.core.Draw
-import androidx.ui.core.PxSize
-import androidx.ui.core.px
-import androidx.ui.engine.geometry.Offset
-import androidx.ui.engine.geometry.Shape
-import androidx.ui.engine.geometry.addOutline
+import androidx.ui.geometry.Offset
 import androidx.ui.graphics.Paint
 import androidx.ui.graphics.Path
 import androidx.ui.graphics.PathOperation
+import androidx.ui.graphics.Shape
+import androidx.ui.graphics.addOutline
+import androidx.ui.unit.Dp
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.px
 
 /**
  * Draw the [Border] as an inner stroke for the provided [shape].
diff --git a/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/corner/CornerBasedShape.kt b/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/corner/CornerBasedShape.kt
index 89ec2be..d84b077 100644
--- a/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/corner/CornerBasedShape.kt
+++ b/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/corner/CornerBasedShape.kt
@@ -16,13 +16,13 @@
 
 package androidx.ui.foundation.shape.corner
 
-import androidx.ui.core.Density
-import androidx.ui.core.Px
-import androidx.ui.core.PxSize
-import androidx.ui.core.px
-import androidx.ui.core.toRect
-import androidx.ui.engine.geometry.Outline
-import androidx.ui.engine.geometry.Shape
+import androidx.ui.graphics.Outline
+import androidx.ui.graphics.Shape
+import androidx.ui.unit.Density
+import androidx.ui.unit.Px
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.px
+import androidx.ui.unit.toRect
 
 /**
  * Base class for [Shape]s defined by four [CornerSize]s.
diff --git a/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/corner/CornerSize.kt b/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/corner/CornerSize.kt
index a872a96..f86fa6e 100644
--- a/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/corner/CornerSize.kt
+++ b/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/corner/CornerSize.kt
@@ -18,13 +18,13 @@
 
 import androidx.annotation.FloatRange
 import androidx.annotation.IntRange
-import androidx.ui.core.Density
-import androidx.ui.core.Dp
-import androidx.ui.core.Px
-import androidx.ui.core.PxSize
-import androidx.ui.core.minDimension
-import androidx.ui.core.px
-import androidx.ui.core.withDensity
+import androidx.ui.unit.Density
+import androidx.ui.unit.Dp
+import androidx.ui.unit.Px
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.minDimension
+import androidx.ui.unit.px
+import androidx.ui.unit.withDensity
 
 /**
  * Defines size of a corner in [Px]. For example for rounded shape it can be a corner radius.
diff --git a/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/corner/CutCornerShape.kt b/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/corner/CutCornerShape.kt
index 74a0e35..6c7ed78 100644
--- a/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/corner/CutCornerShape.kt
+++ b/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/corner/CutCornerShape.kt
@@ -17,13 +17,13 @@
 package androidx.ui.foundation.shape.corner
 
 import androidx.annotation.IntRange
-import androidx.ui.core.Dp
-import androidx.ui.core.Px
-import androidx.ui.core.PxSize
-import androidx.ui.core.dp
-import androidx.ui.core.px
-import androidx.ui.engine.geometry.Outline
+import androidx.ui.graphics.Outline
 import androidx.ui.graphics.Path
+import androidx.ui.unit.Dp
+import androidx.ui.unit.Px
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
 
 /**
  * A shape describing the rectangle with cut corners.
diff --git a/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/corner/RoundedCornerShape.kt b/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/corner/RoundedCornerShape.kt
index 4c9c81f..ef85cab 100644
--- a/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/corner/RoundedCornerShape.kt
+++ b/ui/ui-foundation/src/main/java/androidx/ui/foundation/shape/corner/RoundedCornerShape.kt
@@ -17,16 +17,16 @@
 package androidx.ui.foundation.shape.corner
 
 import androidx.annotation.IntRange
-import androidx.ui.core.Dp
-import androidx.ui.core.Px
-import androidx.ui.core.PxSize
-import androidx.ui.core.dp
-import androidx.ui.core.px
-import androidx.ui.core.toRect
-import androidx.ui.engine.geometry.Outline
-import androidx.ui.engine.geometry.RRect
-import androidx.ui.engine.geometry.Radius
-import androidx.ui.engine.geometry.Shape
+import androidx.ui.geometry.RRect
+import androidx.ui.geometry.Radius
+import androidx.ui.graphics.Outline
+import androidx.ui.graphics.Shape
+import androidx.ui.unit.Dp
+import androidx.ui.unit.Px
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
+import androidx.ui.unit.toRect
 
 /**
  * A shape describing the rectangle with rounded corners.
diff --git a/ui/ui-framework/api/0.1.0-dev04.txt b/ui/ui-framework/api/0.1.0-dev04.txt
index 083c8c9..60c7833 100644
--- a/ui/ui-framework/api/0.1.0-dev04.txt
+++ b/ui/ui-framework/api/0.1.0-dev04.txt
@@ -2,16 +2,16 @@
 package androidx.ui.core {
 
   public final class ClipKt {
-    method public static inline void Clip(androidx.ui.engine.geometry.Shape shape, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static inline void Clip(androidx.ui.graphics.Shape shape, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class DrawKt {
-    method public static inline void Draw(kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onPaint);
-    method public static inline void Draw(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onPaint);
+    method public static inline void Draw(kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onPaint);
+    method public static inline void Draw(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onPaint);
   }
 
   public final class DrawShadowKt {
-    method public static inline void DrawShadow(androidx.ui.engine.geometry.Shape shape, androidx.ui.core.Dp elevation);
+    method public static inline void DrawShadow(androidx.ui.graphics.Shape shape, androidx.ui.unit.Dp elevation);
   }
 
   public enum DropDownAlignment {
@@ -30,7 +30,7 @@
   }
 
   public final class LayoutKt {
-    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
+    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
     method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
     method @Deprecated public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit>![] childrenArray, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super androidx.ui.core.MultiComposableMeasurables,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
     method public static inline void OnChildPositioned(kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutCoordinates,kotlin.Unit> onPositioned, kotlin.jvm.functions.Function0<kotlin.Unit> children);
@@ -43,7 +43,7 @@
     method public Object component1();
     method public androidx.ui.core.LayoutTag copy(Object tag);
     method public Object getTag();
-    method public Object? modifyParentData(androidx.ui.core.DensityScope, Object? parentData);
+    method public Object? modifyParentData(androidx.ui.unit.DensityScope, Object? parentData);
   }
 
   public final class LayoutTagKt {
@@ -83,12 +83,12 @@
   }
 
   public final class PointerInputWrapperKt {
-    method public static inline void PointerInputWrapper(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler, kotlin.jvm.functions.Function0<kotlin.Unit> cancelHandler, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static inline void PointerInputWrapper(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler, kotlin.jvm.functions.Function0<kotlin.Unit> cancelHandler, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PopupKt {
-    method public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Left, androidx.ui.core.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopLeft, androidx.ui.core.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Left, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopLeft, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static void disposeActivityComposition(android.app.Activity activity);
     method public static boolean isPopupLayout(android.view.View view, String? testTag = null);
   }
@@ -152,8 +152,8 @@
 
   public final class WrapperKt {
     method public static void ComposeView(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void WithDensity(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,kotlin.Unit> block);
-    method public static androidx.ui.core.Density ambientDensity();
+    method public static void WithDensity(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,kotlin.Unit> block);
+    method public static androidx.ui.unit.Density ambientDensity();
     method public static androidx.compose.Ambient<androidx.ui.core.AndroidComposeView> getAndroidComposeViewAmbient();
     method public static androidx.compose.Ambient<androidx.animation.AnimationClockObservable> getAnimationClockAmbient();
     method public static androidx.compose.Ambient<androidx.ui.autofill.Autofill> getAutofillAmbient();
@@ -161,7 +161,7 @@
     method public static androidx.compose.Ambient<android.content.res.Configuration> getConfigurationAmbient();
     method public static androidx.compose.Ambient<android.content.Context> getContextAmbient();
     method public static androidx.compose.Ambient<kotlin.coroutines.CoroutineContext> getCoroutineContextAmbient();
-    method public static androidx.compose.Ambient<androidx.ui.core.Density> getDensityAmbient();
+    method public static androidx.compose.Ambient<androidx.ui.unit.Density> getDensityAmbient();
     method public static androidx.compose.Ambient<androidx.ui.core.input.FocusManager> getFocusManagerAmbient();
     method public static androidx.compose.Ambient<androidx.ui.text.font.Font.ResourceLoader> getFontLoaderAmbient();
     method public static androidx.compose.Ambient<androidx.ui.core.LayoutDirection> getLayoutDirectionAmbient();
@@ -175,34 +175,34 @@
 package androidx.ui.core.gesture {
 
   public final class ConstantsKt {
-    method public static androidx.ui.core.Duration getDoubleTapMinTime();
-    method public static androidx.ui.core.Dp getDoubleTapSlop();
-    method public static androidx.ui.core.Duration getDoubleTapTimeout();
-    method public static androidx.ui.core.Dp getDoubleTapTouchSlop();
-    method public static androidx.ui.core.Dp getHoverTapSlop();
-    method public static androidx.ui.core.Duration getHoverTapTimeout();
-    method public static androidx.ui.core.Duration getJumpTapTimeout();
-    method public static androidx.ui.core.Duration getLongPressTimeout();
-    method public static androidx.ui.core.Dp getMaxFlingVelocity();
-    method public static androidx.ui.core.Dp getMinFlingVelocity();
+    method public static androidx.ui.unit.Duration getDoubleTapMinTime();
+    method public static androidx.ui.unit.Dp getDoubleTapSlop();
+    method public static androidx.ui.unit.Duration getDoubleTapTimeout();
+    method public static androidx.ui.unit.Dp getDoubleTapTouchSlop();
+    method public static androidx.ui.unit.Dp getHoverTapSlop();
+    method public static androidx.ui.unit.Duration getHoverTapTimeout();
+    method public static androidx.ui.unit.Duration getJumpTapTimeout();
+    method public static androidx.ui.unit.Duration getLongPressTimeout();
+    method public static androidx.ui.unit.Dp getMaxFlingVelocity();
+    method public static androidx.ui.unit.Dp getMinFlingVelocity();
     method public static float getPagingTouchSlop();
     method public static float getPanSlop();
-    method public static androidx.ui.core.Duration getPressTimeout();
-    method public static androidx.ui.core.Dp getScaleSlop();
-    method public static androidx.ui.core.Dp getTouchSlop();
-    method public static androidx.ui.core.Dp getWindowTouchSlop();
-    method public static androidx.ui.core.Duration getZoomControlsTimeout();
+    method public static androidx.ui.unit.Duration getPressTimeout();
+    method public static androidx.ui.unit.Dp getScaleSlop();
+    method public static androidx.ui.unit.Dp getTouchSlop();
+    method public static androidx.ui.unit.Dp getWindowTouchSlop();
+    method public static androidx.ui.unit.Duration getZoomControlsTimeout();
   }
 
   public final class DoubleTapGestureDetectorKt {
-    method public static void DoubleTapGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit> onDoubleTap, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void DoubleTapGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit> onDoubleTap, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public interface DragObserver {
     method public default void onCancel();
-    method public default androidx.ui.core.PxPosition onDrag(androidx.ui.core.PxPosition dragDistance);
-    method public default void onStart(androidx.ui.core.PxPosition downPosition);
-    method public default void onStop(androidx.ui.core.PxPosition velocity);
+    method public default androidx.ui.unit.PxPosition onDrag(androidx.ui.unit.PxPosition dragDistance);
+    method public default void onStart(androidx.ui.unit.PxPosition downPosition);
+    method public default void onStop(androidx.ui.unit.PxPosition velocity);
   }
 
   public final class LongPressDragGestureDetectorKt {
@@ -211,22 +211,22 @@
 
   public interface LongPressDragObserver {
     method public default void onCancel();
-    method public default androidx.ui.core.PxPosition onDrag(androidx.ui.core.PxPosition dragDistance);
+    method public default androidx.ui.unit.PxPosition onDrag(androidx.ui.unit.PxPosition dragDistance);
     method public default void onDragStart();
-    method public default void onLongPress(androidx.ui.core.PxPosition pxPosition);
-    method public default void onStop(androidx.ui.core.PxPosition velocity);
+    method public default void onLongPress(androidx.ui.unit.PxPosition pxPosition);
+    method public default void onStop(androidx.ui.unit.PxPosition velocity);
   }
 
   public final class LongPressGestureDetectorKt {
-    method public static void LongPressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit> onLongPress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void LongPressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit> onLongPress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PressGestureDetectorKt {
-    method public static void PressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void PressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PressIndicatorGestureDetectorKt {
-    method public static void PressIndicatorGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void PressIndicatorGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PressReleasedGestureDetectorKt {
@@ -282,7 +282,7 @@
 package androidx.ui.core.gesture.util {
 
   public final class GestureUtilsKt {
-    method public static boolean anyPointersInBounds(java.util.List<androidx.ui.core.PointerInputChange>, androidx.ui.core.IntPxSize bounds);
+    method public static boolean anyPointersInBounds(java.util.List<androidx.ui.core.PointerInputChange>, androidx.ui.unit.IntPxSize bounds);
   }
 
   public final class PolyFitLeastSquaresKt {
@@ -290,8 +290,8 @@
 
   public final class VelocityTracker {
     ctor public VelocityTracker();
-    method public void addPosition(androidx.ui.core.Uptime uptime, androidx.ui.core.PxPosition position);
-    method public androidx.ui.core.Velocity calculateVelocity();
+    method public void addPosition(androidx.ui.unit.Uptime uptime, androidx.ui.unit.PxPosition position);
+    method public androidx.ui.unit.Velocity calculateVelocity();
     method public void resetTracking();
   }
 
@@ -311,7 +311,7 @@
 package androidx.ui.core.selection {
 
   public interface Selectable {
-    method public androidx.ui.core.selection.Selection? getSelection(androidx.ui.core.PxPosition startPosition, androidx.ui.core.PxPosition endPosition, androidx.ui.core.LayoutCoordinates containerLayoutCoordinates, boolean longPress);
+    method public androidx.ui.core.selection.Selection? getSelection(androidx.ui.unit.PxPosition startPosition, androidx.ui.unit.PxPosition endPosition, androidx.ui.core.LayoutCoordinates containerLayoutCoordinates, boolean longPress);
   }
 
   public final class Selection {
@@ -328,13 +328,13 @@
   }
 
   public static final class Selection.AnchorInfo {
-    ctor public Selection.AnchorInfo(androidx.ui.core.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
-    method public androidx.ui.core.PxPosition component1();
+    ctor public Selection.AnchorInfo(androidx.ui.unit.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
+    method public androidx.ui.unit.PxPosition component1();
     method public androidx.ui.text.style.TextDirection component2();
     method public int component3();
     method public androidx.ui.core.LayoutCoordinates? component4();
-    method public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.core.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
-    method public androidx.ui.core.PxPosition getCoordinates();
+    method public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.unit.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
+    method public androidx.ui.unit.PxPosition getCoordinates();
     method public androidx.ui.text.style.TextDirection getDirection();
     method public androidx.ui.core.LayoutCoordinates? getLayoutCoordinates();
     method public int getOffset();
@@ -387,14 +387,14 @@
 
   public final class VectorAsset {
     method public String component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
     method public float component4();
     method public float component5();
     method public androidx.ui.graphics.vector.VectorGroup component6();
-    method public androidx.ui.graphics.vector.VectorAsset copy(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight, androidx.ui.graphics.vector.VectorGroup root);
-    method public androidx.ui.core.Dp getDefaultHeight();
-    method public androidx.ui.core.Dp getDefaultWidth();
+    method public androidx.ui.graphics.vector.VectorAsset copy(String name, androidx.ui.unit.Dp defaultWidth, androidx.ui.unit.Dp defaultHeight, float viewportWidth, float viewportHeight, androidx.ui.graphics.vector.VectorGroup root);
+    method public androidx.ui.unit.Dp getDefaultHeight();
+    method public androidx.ui.unit.Dp getDefaultWidth();
     method public String getName();
     method public androidx.ui.graphics.vector.VectorGroup getRoot();
     method public float getViewportHeight();
@@ -402,12 +402,12 @@
   }
 
   public final class VectorAssetBuilder {
-    ctor public VectorAssetBuilder(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight);
+    ctor public VectorAssetBuilder(String name, androidx.ui.unit.Dp defaultWidth, androidx.ui.unit.Dp defaultHeight, float viewportWidth, float viewportHeight);
     method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
     method public androidx.ui.graphics.vector.VectorAsset build();
     method public void ensureNotConsumed();
-    method public androidx.ui.core.Dp getDefaultHeight();
-    method public androidx.ui.core.Dp getDefaultWidth();
+    method public androidx.ui.unit.Dp getDefaultHeight();
+    method public androidx.ui.unit.Dp getDefaultWidth();
     method public String getName();
     method public float getViewportHeight();
     method public float getViewportWidth();
@@ -420,8 +420,8 @@
   }
 
   public final class VectorComposeKt {
-    method public static void DrawVector(androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
-    method public static void DrawVector(androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+    method public static void DrawVector(androidx.ui.unit.Dp defaultWidth, androidx.ui.unit.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+    method public static void DrawVector(androidx.ui.unit.Px defaultWidth, androidx.ui.unit.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
     method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<? extends androidx.ui.graphics.vector.PathNode> clipPathData = EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
     method public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
   }
@@ -522,7 +522,7 @@
 
   public final class PrimitiveResourcesKt {
     method public static boolean booleanResource(@BoolRes int id);
-    method public static androidx.ui.core.Dp dimensionResource(@DimenRes int id);
+    method public static androidx.ui.unit.Dp dimensionResource(@DimenRes int id);
     method public static int[] integerArrayResource(@ArrayRes int id);
     method public static int integerResource(@IntegerRes int id);
   }
@@ -557,10 +557,10 @@
   public static final class SemanticsActions.Companion {
     method public androidx.ui.semantics.SemanticsPropertyKey<java.util.List<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>>> getCustomActions();
     method public androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>> getOnClick();
-    method public androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>>> getScrollTo();
+    method public androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>>> getScrollTo();
     property public final androidx.ui.semantics.SemanticsPropertyKey<java.util.List<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>>> CustomActions;
     property public final androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>> OnClick;
-    property public final androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>>> ScrollTo;
+    property public final androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>>> ScrollTo;
   }
 
   public final class SemanticsKt {
@@ -584,14 +584,14 @@
   }
 
   public final class SemanticsPropertiesKt {
-    method public static void ScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, String? label = null, kotlin.jvm.functions.Function2<? super androidx.ui.core.Px,? super androidx.ui.core.Px,kotlin.Unit> action);
+    method public static void ScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, String? label = null, kotlin.jvm.functions.Function2<? super androidx.ui.unit.Px,? super androidx.ui.unit.Px,kotlin.Unit> action);
     method public static String getAccessibilityLabel(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static String getAccessibilityValue(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static java.util.List<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>> getCustomActions(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static boolean getEnabled(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static boolean getHidden(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>> getOnClick(androidx.ui.semantics.SemanticsPropertyReceiver);
-    method public static androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>> getScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver);
+    method public static androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>> getScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static String getTestTag(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static androidx.ui.text.style.TextDirection getTextDirection(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static void onClick(androidx.ui.semantics.SemanticsPropertyReceiver, String? label = null, kotlin.jvm.functions.Function0<kotlin.Unit> action);
@@ -601,7 +601,7 @@
     method public static void setEnabled(androidx.ui.semantics.SemanticsPropertyReceiver, boolean p);
     method public static void setHidden(androidx.ui.semantics.SemanticsPropertyReceiver, boolean p);
     method public static void setOnClick(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>> p);
-    method public static void setScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>> p);
+    method public static void setScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>> p);
     method public static void setTestTag(androidx.ui.semantics.SemanticsPropertyReceiver, String p);
     method public static void setTextDirection(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.text.style.TextDirection p);
   }
diff --git a/ui/ui-framework/api/current.txt b/ui/ui-framework/api/current.txt
index 083c8c9..60c7833 100644
--- a/ui/ui-framework/api/current.txt
+++ b/ui/ui-framework/api/current.txt
@@ -2,16 +2,16 @@
 package androidx.ui.core {
 
   public final class ClipKt {
-    method public static inline void Clip(androidx.ui.engine.geometry.Shape shape, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static inline void Clip(androidx.ui.graphics.Shape shape, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class DrawKt {
-    method public static inline void Draw(kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onPaint);
-    method public static inline void Draw(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onPaint);
+    method public static inline void Draw(kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onPaint);
+    method public static inline void Draw(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onPaint);
   }
 
   public final class DrawShadowKt {
-    method public static inline void DrawShadow(androidx.ui.engine.geometry.Shape shape, androidx.ui.core.Dp elevation);
+    method public static inline void DrawShadow(androidx.ui.graphics.Shape shape, androidx.ui.unit.Dp elevation);
   }
 
   public enum DropDownAlignment {
@@ -30,7 +30,7 @@
   }
 
   public final class LayoutKt {
-    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
+    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
     method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
     method @Deprecated public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit>![] childrenArray, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super androidx.ui.core.MultiComposableMeasurables,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
     method public static inline void OnChildPositioned(kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutCoordinates,kotlin.Unit> onPositioned, kotlin.jvm.functions.Function0<kotlin.Unit> children);
@@ -43,7 +43,7 @@
     method public Object component1();
     method public androidx.ui.core.LayoutTag copy(Object tag);
     method public Object getTag();
-    method public Object? modifyParentData(androidx.ui.core.DensityScope, Object? parentData);
+    method public Object? modifyParentData(androidx.ui.unit.DensityScope, Object? parentData);
   }
 
   public final class LayoutTagKt {
@@ -83,12 +83,12 @@
   }
 
   public final class PointerInputWrapperKt {
-    method public static inline void PointerInputWrapper(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler, kotlin.jvm.functions.Function0<kotlin.Unit> cancelHandler, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static inline void PointerInputWrapper(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler, kotlin.jvm.functions.Function0<kotlin.Unit> cancelHandler, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PopupKt {
-    method public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Left, androidx.ui.core.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopLeft, androidx.ui.core.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Left, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopLeft, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static void disposeActivityComposition(android.app.Activity activity);
     method public static boolean isPopupLayout(android.view.View view, String? testTag = null);
   }
@@ -152,8 +152,8 @@
 
   public final class WrapperKt {
     method public static void ComposeView(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void WithDensity(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,kotlin.Unit> block);
-    method public static androidx.ui.core.Density ambientDensity();
+    method public static void WithDensity(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,kotlin.Unit> block);
+    method public static androidx.ui.unit.Density ambientDensity();
     method public static androidx.compose.Ambient<androidx.ui.core.AndroidComposeView> getAndroidComposeViewAmbient();
     method public static androidx.compose.Ambient<androidx.animation.AnimationClockObservable> getAnimationClockAmbient();
     method public static androidx.compose.Ambient<androidx.ui.autofill.Autofill> getAutofillAmbient();
@@ -161,7 +161,7 @@
     method public static androidx.compose.Ambient<android.content.res.Configuration> getConfigurationAmbient();
     method public static androidx.compose.Ambient<android.content.Context> getContextAmbient();
     method public static androidx.compose.Ambient<kotlin.coroutines.CoroutineContext> getCoroutineContextAmbient();
-    method public static androidx.compose.Ambient<androidx.ui.core.Density> getDensityAmbient();
+    method public static androidx.compose.Ambient<androidx.ui.unit.Density> getDensityAmbient();
     method public static androidx.compose.Ambient<androidx.ui.core.input.FocusManager> getFocusManagerAmbient();
     method public static androidx.compose.Ambient<androidx.ui.text.font.Font.ResourceLoader> getFontLoaderAmbient();
     method public static androidx.compose.Ambient<androidx.ui.core.LayoutDirection> getLayoutDirectionAmbient();
@@ -175,34 +175,34 @@
 package androidx.ui.core.gesture {
 
   public final class ConstantsKt {
-    method public static androidx.ui.core.Duration getDoubleTapMinTime();
-    method public static androidx.ui.core.Dp getDoubleTapSlop();
-    method public static androidx.ui.core.Duration getDoubleTapTimeout();
-    method public static androidx.ui.core.Dp getDoubleTapTouchSlop();
-    method public static androidx.ui.core.Dp getHoverTapSlop();
-    method public static androidx.ui.core.Duration getHoverTapTimeout();
-    method public static androidx.ui.core.Duration getJumpTapTimeout();
-    method public static androidx.ui.core.Duration getLongPressTimeout();
-    method public static androidx.ui.core.Dp getMaxFlingVelocity();
-    method public static androidx.ui.core.Dp getMinFlingVelocity();
+    method public static androidx.ui.unit.Duration getDoubleTapMinTime();
+    method public static androidx.ui.unit.Dp getDoubleTapSlop();
+    method public static androidx.ui.unit.Duration getDoubleTapTimeout();
+    method public static androidx.ui.unit.Dp getDoubleTapTouchSlop();
+    method public static androidx.ui.unit.Dp getHoverTapSlop();
+    method public static androidx.ui.unit.Duration getHoverTapTimeout();
+    method public static androidx.ui.unit.Duration getJumpTapTimeout();
+    method public static androidx.ui.unit.Duration getLongPressTimeout();
+    method public static androidx.ui.unit.Dp getMaxFlingVelocity();
+    method public static androidx.ui.unit.Dp getMinFlingVelocity();
     method public static float getPagingTouchSlop();
     method public static float getPanSlop();
-    method public static androidx.ui.core.Duration getPressTimeout();
-    method public static androidx.ui.core.Dp getScaleSlop();
-    method public static androidx.ui.core.Dp getTouchSlop();
-    method public static androidx.ui.core.Dp getWindowTouchSlop();
-    method public static androidx.ui.core.Duration getZoomControlsTimeout();
+    method public static androidx.ui.unit.Duration getPressTimeout();
+    method public static androidx.ui.unit.Dp getScaleSlop();
+    method public static androidx.ui.unit.Dp getTouchSlop();
+    method public static androidx.ui.unit.Dp getWindowTouchSlop();
+    method public static androidx.ui.unit.Duration getZoomControlsTimeout();
   }
 
   public final class DoubleTapGestureDetectorKt {
-    method public static void DoubleTapGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit> onDoubleTap, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void DoubleTapGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit> onDoubleTap, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public interface DragObserver {
     method public default void onCancel();
-    method public default androidx.ui.core.PxPosition onDrag(androidx.ui.core.PxPosition dragDistance);
-    method public default void onStart(androidx.ui.core.PxPosition downPosition);
-    method public default void onStop(androidx.ui.core.PxPosition velocity);
+    method public default androidx.ui.unit.PxPosition onDrag(androidx.ui.unit.PxPosition dragDistance);
+    method public default void onStart(androidx.ui.unit.PxPosition downPosition);
+    method public default void onStop(androidx.ui.unit.PxPosition velocity);
   }
 
   public final class LongPressDragGestureDetectorKt {
@@ -211,22 +211,22 @@
 
   public interface LongPressDragObserver {
     method public default void onCancel();
-    method public default androidx.ui.core.PxPosition onDrag(androidx.ui.core.PxPosition dragDistance);
+    method public default androidx.ui.unit.PxPosition onDrag(androidx.ui.unit.PxPosition dragDistance);
     method public default void onDragStart();
-    method public default void onLongPress(androidx.ui.core.PxPosition pxPosition);
-    method public default void onStop(androidx.ui.core.PxPosition velocity);
+    method public default void onLongPress(androidx.ui.unit.PxPosition pxPosition);
+    method public default void onStop(androidx.ui.unit.PxPosition velocity);
   }
 
   public final class LongPressGestureDetectorKt {
-    method public static void LongPressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit> onLongPress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void LongPressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit> onLongPress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PressGestureDetectorKt {
-    method public static void PressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void PressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PressIndicatorGestureDetectorKt {
-    method public static void PressIndicatorGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void PressIndicatorGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PressReleasedGestureDetectorKt {
@@ -282,7 +282,7 @@
 package androidx.ui.core.gesture.util {
 
   public final class GestureUtilsKt {
-    method public static boolean anyPointersInBounds(java.util.List<androidx.ui.core.PointerInputChange>, androidx.ui.core.IntPxSize bounds);
+    method public static boolean anyPointersInBounds(java.util.List<androidx.ui.core.PointerInputChange>, androidx.ui.unit.IntPxSize bounds);
   }
 
   public final class PolyFitLeastSquaresKt {
@@ -290,8 +290,8 @@
 
   public final class VelocityTracker {
     ctor public VelocityTracker();
-    method public void addPosition(androidx.ui.core.Uptime uptime, androidx.ui.core.PxPosition position);
-    method public androidx.ui.core.Velocity calculateVelocity();
+    method public void addPosition(androidx.ui.unit.Uptime uptime, androidx.ui.unit.PxPosition position);
+    method public androidx.ui.unit.Velocity calculateVelocity();
     method public void resetTracking();
   }
 
@@ -311,7 +311,7 @@
 package androidx.ui.core.selection {
 
   public interface Selectable {
-    method public androidx.ui.core.selection.Selection? getSelection(androidx.ui.core.PxPosition startPosition, androidx.ui.core.PxPosition endPosition, androidx.ui.core.LayoutCoordinates containerLayoutCoordinates, boolean longPress);
+    method public androidx.ui.core.selection.Selection? getSelection(androidx.ui.unit.PxPosition startPosition, androidx.ui.unit.PxPosition endPosition, androidx.ui.core.LayoutCoordinates containerLayoutCoordinates, boolean longPress);
   }
 
   public final class Selection {
@@ -328,13 +328,13 @@
   }
 
   public static final class Selection.AnchorInfo {
-    ctor public Selection.AnchorInfo(androidx.ui.core.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
-    method public androidx.ui.core.PxPosition component1();
+    ctor public Selection.AnchorInfo(androidx.ui.unit.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
+    method public androidx.ui.unit.PxPosition component1();
     method public androidx.ui.text.style.TextDirection component2();
     method public int component3();
     method public androidx.ui.core.LayoutCoordinates? component4();
-    method public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.core.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
-    method public androidx.ui.core.PxPosition getCoordinates();
+    method public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.unit.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
+    method public androidx.ui.unit.PxPosition getCoordinates();
     method public androidx.ui.text.style.TextDirection getDirection();
     method public androidx.ui.core.LayoutCoordinates? getLayoutCoordinates();
     method public int getOffset();
@@ -387,14 +387,14 @@
 
   public final class VectorAsset {
     method public String component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
     method public float component4();
     method public float component5();
     method public androidx.ui.graphics.vector.VectorGroup component6();
-    method public androidx.ui.graphics.vector.VectorAsset copy(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight, androidx.ui.graphics.vector.VectorGroup root);
-    method public androidx.ui.core.Dp getDefaultHeight();
-    method public androidx.ui.core.Dp getDefaultWidth();
+    method public androidx.ui.graphics.vector.VectorAsset copy(String name, androidx.ui.unit.Dp defaultWidth, androidx.ui.unit.Dp defaultHeight, float viewportWidth, float viewportHeight, androidx.ui.graphics.vector.VectorGroup root);
+    method public androidx.ui.unit.Dp getDefaultHeight();
+    method public androidx.ui.unit.Dp getDefaultWidth();
     method public String getName();
     method public androidx.ui.graphics.vector.VectorGroup getRoot();
     method public float getViewportHeight();
@@ -402,12 +402,12 @@
   }
 
   public final class VectorAssetBuilder {
-    ctor public VectorAssetBuilder(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight);
+    ctor public VectorAssetBuilder(String name, androidx.ui.unit.Dp defaultWidth, androidx.ui.unit.Dp defaultHeight, float viewportWidth, float viewportHeight);
     method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
     method public androidx.ui.graphics.vector.VectorAsset build();
     method public void ensureNotConsumed();
-    method public androidx.ui.core.Dp getDefaultHeight();
-    method public androidx.ui.core.Dp getDefaultWidth();
+    method public androidx.ui.unit.Dp getDefaultHeight();
+    method public androidx.ui.unit.Dp getDefaultWidth();
     method public String getName();
     method public float getViewportHeight();
     method public float getViewportWidth();
@@ -420,8 +420,8 @@
   }
 
   public final class VectorComposeKt {
-    method public static void DrawVector(androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
-    method public static void DrawVector(androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+    method public static void DrawVector(androidx.ui.unit.Dp defaultWidth, androidx.ui.unit.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+    method public static void DrawVector(androidx.ui.unit.Px defaultWidth, androidx.ui.unit.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
     method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<? extends androidx.ui.graphics.vector.PathNode> clipPathData = EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
     method public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
   }
@@ -522,7 +522,7 @@
 
   public final class PrimitiveResourcesKt {
     method public static boolean booleanResource(@BoolRes int id);
-    method public static androidx.ui.core.Dp dimensionResource(@DimenRes int id);
+    method public static androidx.ui.unit.Dp dimensionResource(@DimenRes int id);
     method public static int[] integerArrayResource(@ArrayRes int id);
     method public static int integerResource(@IntegerRes int id);
   }
@@ -557,10 +557,10 @@
   public static final class SemanticsActions.Companion {
     method public androidx.ui.semantics.SemanticsPropertyKey<java.util.List<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>>> getCustomActions();
     method public androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>> getOnClick();
-    method public androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>>> getScrollTo();
+    method public androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>>> getScrollTo();
     property public final androidx.ui.semantics.SemanticsPropertyKey<java.util.List<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>>> CustomActions;
     property public final androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>> OnClick;
-    property public final androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>>> ScrollTo;
+    property public final androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>>> ScrollTo;
   }
 
   public final class SemanticsKt {
@@ -584,14 +584,14 @@
   }
 
   public final class SemanticsPropertiesKt {
-    method public static void ScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, String? label = null, kotlin.jvm.functions.Function2<? super androidx.ui.core.Px,? super androidx.ui.core.Px,kotlin.Unit> action);
+    method public static void ScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, String? label = null, kotlin.jvm.functions.Function2<? super androidx.ui.unit.Px,? super androidx.ui.unit.Px,kotlin.Unit> action);
     method public static String getAccessibilityLabel(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static String getAccessibilityValue(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static java.util.List<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>> getCustomActions(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static boolean getEnabled(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static boolean getHidden(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>> getOnClick(androidx.ui.semantics.SemanticsPropertyReceiver);
-    method public static androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>> getScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver);
+    method public static androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>> getScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static String getTestTag(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static androidx.ui.text.style.TextDirection getTextDirection(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static void onClick(androidx.ui.semantics.SemanticsPropertyReceiver, String? label = null, kotlin.jvm.functions.Function0<kotlin.Unit> action);
@@ -601,7 +601,7 @@
     method public static void setEnabled(androidx.ui.semantics.SemanticsPropertyReceiver, boolean p);
     method public static void setHidden(androidx.ui.semantics.SemanticsPropertyReceiver, boolean p);
     method public static void setOnClick(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>> p);
-    method public static void setScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>> p);
+    method public static void setScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>> p);
     method public static void setTestTag(androidx.ui.semantics.SemanticsPropertyReceiver, String p);
     method public static void setTextDirection(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.text.style.TextDirection p);
   }
diff --git a/ui/ui-framework/api/public_plus_experimental_0.1.0-dev04.txt b/ui/ui-framework/api/public_plus_experimental_0.1.0-dev04.txt
index 083c8c9..60c7833 100644
--- a/ui/ui-framework/api/public_plus_experimental_0.1.0-dev04.txt
+++ b/ui/ui-framework/api/public_plus_experimental_0.1.0-dev04.txt
@@ -2,16 +2,16 @@
 package androidx.ui.core {
 
   public final class ClipKt {
-    method public static inline void Clip(androidx.ui.engine.geometry.Shape shape, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static inline void Clip(androidx.ui.graphics.Shape shape, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class DrawKt {
-    method public static inline void Draw(kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onPaint);
-    method public static inline void Draw(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onPaint);
+    method public static inline void Draw(kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onPaint);
+    method public static inline void Draw(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onPaint);
   }
 
   public final class DrawShadowKt {
-    method public static inline void DrawShadow(androidx.ui.engine.geometry.Shape shape, androidx.ui.core.Dp elevation);
+    method public static inline void DrawShadow(androidx.ui.graphics.Shape shape, androidx.ui.unit.Dp elevation);
   }
 
   public enum DropDownAlignment {
@@ -30,7 +30,7 @@
   }
 
   public final class LayoutKt {
-    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
+    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
     method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
     method @Deprecated public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit>![] childrenArray, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super androidx.ui.core.MultiComposableMeasurables,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
     method public static inline void OnChildPositioned(kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutCoordinates,kotlin.Unit> onPositioned, kotlin.jvm.functions.Function0<kotlin.Unit> children);
@@ -43,7 +43,7 @@
     method public Object component1();
     method public androidx.ui.core.LayoutTag copy(Object tag);
     method public Object getTag();
-    method public Object? modifyParentData(androidx.ui.core.DensityScope, Object? parentData);
+    method public Object? modifyParentData(androidx.ui.unit.DensityScope, Object? parentData);
   }
 
   public final class LayoutTagKt {
@@ -83,12 +83,12 @@
   }
 
   public final class PointerInputWrapperKt {
-    method public static inline void PointerInputWrapper(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler, kotlin.jvm.functions.Function0<kotlin.Unit> cancelHandler, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static inline void PointerInputWrapper(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler, kotlin.jvm.functions.Function0<kotlin.Unit> cancelHandler, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PopupKt {
-    method public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Left, androidx.ui.core.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopLeft, androidx.ui.core.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Left, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopLeft, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static void disposeActivityComposition(android.app.Activity activity);
     method public static boolean isPopupLayout(android.view.View view, String? testTag = null);
   }
@@ -152,8 +152,8 @@
 
   public final class WrapperKt {
     method public static void ComposeView(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void WithDensity(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,kotlin.Unit> block);
-    method public static androidx.ui.core.Density ambientDensity();
+    method public static void WithDensity(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,kotlin.Unit> block);
+    method public static androidx.ui.unit.Density ambientDensity();
     method public static androidx.compose.Ambient<androidx.ui.core.AndroidComposeView> getAndroidComposeViewAmbient();
     method public static androidx.compose.Ambient<androidx.animation.AnimationClockObservable> getAnimationClockAmbient();
     method public static androidx.compose.Ambient<androidx.ui.autofill.Autofill> getAutofillAmbient();
@@ -161,7 +161,7 @@
     method public static androidx.compose.Ambient<android.content.res.Configuration> getConfigurationAmbient();
     method public static androidx.compose.Ambient<android.content.Context> getContextAmbient();
     method public static androidx.compose.Ambient<kotlin.coroutines.CoroutineContext> getCoroutineContextAmbient();
-    method public static androidx.compose.Ambient<androidx.ui.core.Density> getDensityAmbient();
+    method public static androidx.compose.Ambient<androidx.ui.unit.Density> getDensityAmbient();
     method public static androidx.compose.Ambient<androidx.ui.core.input.FocusManager> getFocusManagerAmbient();
     method public static androidx.compose.Ambient<androidx.ui.text.font.Font.ResourceLoader> getFontLoaderAmbient();
     method public static androidx.compose.Ambient<androidx.ui.core.LayoutDirection> getLayoutDirectionAmbient();
@@ -175,34 +175,34 @@
 package androidx.ui.core.gesture {
 
   public final class ConstantsKt {
-    method public static androidx.ui.core.Duration getDoubleTapMinTime();
-    method public static androidx.ui.core.Dp getDoubleTapSlop();
-    method public static androidx.ui.core.Duration getDoubleTapTimeout();
-    method public static androidx.ui.core.Dp getDoubleTapTouchSlop();
-    method public static androidx.ui.core.Dp getHoverTapSlop();
-    method public static androidx.ui.core.Duration getHoverTapTimeout();
-    method public static androidx.ui.core.Duration getJumpTapTimeout();
-    method public static androidx.ui.core.Duration getLongPressTimeout();
-    method public static androidx.ui.core.Dp getMaxFlingVelocity();
-    method public static androidx.ui.core.Dp getMinFlingVelocity();
+    method public static androidx.ui.unit.Duration getDoubleTapMinTime();
+    method public static androidx.ui.unit.Dp getDoubleTapSlop();
+    method public static androidx.ui.unit.Duration getDoubleTapTimeout();
+    method public static androidx.ui.unit.Dp getDoubleTapTouchSlop();
+    method public static androidx.ui.unit.Dp getHoverTapSlop();
+    method public static androidx.ui.unit.Duration getHoverTapTimeout();
+    method public static androidx.ui.unit.Duration getJumpTapTimeout();
+    method public static androidx.ui.unit.Duration getLongPressTimeout();
+    method public static androidx.ui.unit.Dp getMaxFlingVelocity();
+    method public static androidx.ui.unit.Dp getMinFlingVelocity();
     method public static float getPagingTouchSlop();
     method public static float getPanSlop();
-    method public static androidx.ui.core.Duration getPressTimeout();
-    method public static androidx.ui.core.Dp getScaleSlop();
-    method public static androidx.ui.core.Dp getTouchSlop();
-    method public static androidx.ui.core.Dp getWindowTouchSlop();
-    method public static androidx.ui.core.Duration getZoomControlsTimeout();
+    method public static androidx.ui.unit.Duration getPressTimeout();
+    method public static androidx.ui.unit.Dp getScaleSlop();
+    method public static androidx.ui.unit.Dp getTouchSlop();
+    method public static androidx.ui.unit.Dp getWindowTouchSlop();
+    method public static androidx.ui.unit.Duration getZoomControlsTimeout();
   }
 
   public final class DoubleTapGestureDetectorKt {
-    method public static void DoubleTapGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit> onDoubleTap, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void DoubleTapGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit> onDoubleTap, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public interface DragObserver {
     method public default void onCancel();
-    method public default androidx.ui.core.PxPosition onDrag(androidx.ui.core.PxPosition dragDistance);
-    method public default void onStart(androidx.ui.core.PxPosition downPosition);
-    method public default void onStop(androidx.ui.core.PxPosition velocity);
+    method public default androidx.ui.unit.PxPosition onDrag(androidx.ui.unit.PxPosition dragDistance);
+    method public default void onStart(androidx.ui.unit.PxPosition downPosition);
+    method public default void onStop(androidx.ui.unit.PxPosition velocity);
   }
 
   public final class LongPressDragGestureDetectorKt {
@@ -211,22 +211,22 @@
 
   public interface LongPressDragObserver {
     method public default void onCancel();
-    method public default androidx.ui.core.PxPosition onDrag(androidx.ui.core.PxPosition dragDistance);
+    method public default androidx.ui.unit.PxPosition onDrag(androidx.ui.unit.PxPosition dragDistance);
     method public default void onDragStart();
-    method public default void onLongPress(androidx.ui.core.PxPosition pxPosition);
-    method public default void onStop(androidx.ui.core.PxPosition velocity);
+    method public default void onLongPress(androidx.ui.unit.PxPosition pxPosition);
+    method public default void onStop(androidx.ui.unit.PxPosition velocity);
   }
 
   public final class LongPressGestureDetectorKt {
-    method public static void LongPressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit> onLongPress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void LongPressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit> onLongPress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PressGestureDetectorKt {
-    method public static void PressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void PressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PressIndicatorGestureDetectorKt {
-    method public static void PressIndicatorGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void PressIndicatorGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PressReleasedGestureDetectorKt {
@@ -282,7 +282,7 @@
 package androidx.ui.core.gesture.util {
 
   public final class GestureUtilsKt {
-    method public static boolean anyPointersInBounds(java.util.List<androidx.ui.core.PointerInputChange>, androidx.ui.core.IntPxSize bounds);
+    method public static boolean anyPointersInBounds(java.util.List<androidx.ui.core.PointerInputChange>, androidx.ui.unit.IntPxSize bounds);
   }
 
   public final class PolyFitLeastSquaresKt {
@@ -290,8 +290,8 @@
 
   public final class VelocityTracker {
     ctor public VelocityTracker();
-    method public void addPosition(androidx.ui.core.Uptime uptime, androidx.ui.core.PxPosition position);
-    method public androidx.ui.core.Velocity calculateVelocity();
+    method public void addPosition(androidx.ui.unit.Uptime uptime, androidx.ui.unit.PxPosition position);
+    method public androidx.ui.unit.Velocity calculateVelocity();
     method public void resetTracking();
   }
 
@@ -311,7 +311,7 @@
 package androidx.ui.core.selection {
 
   public interface Selectable {
-    method public androidx.ui.core.selection.Selection? getSelection(androidx.ui.core.PxPosition startPosition, androidx.ui.core.PxPosition endPosition, androidx.ui.core.LayoutCoordinates containerLayoutCoordinates, boolean longPress);
+    method public androidx.ui.core.selection.Selection? getSelection(androidx.ui.unit.PxPosition startPosition, androidx.ui.unit.PxPosition endPosition, androidx.ui.core.LayoutCoordinates containerLayoutCoordinates, boolean longPress);
   }
 
   public final class Selection {
@@ -328,13 +328,13 @@
   }
 
   public static final class Selection.AnchorInfo {
-    ctor public Selection.AnchorInfo(androidx.ui.core.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
-    method public androidx.ui.core.PxPosition component1();
+    ctor public Selection.AnchorInfo(androidx.ui.unit.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
+    method public androidx.ui.unit.PxPosition component1();
     method public androidx.ui.text.style.TextDirection component2();
     method public int component3();
     method public androidx.ui.core.LayoutCoordinates? component4();
-    method public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.core.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
-    method public androidx.ui.core.PxPosition getCoordinates();
+    method public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.unit.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
+    method public androidx.ui.unit.PxPosition getCoordinates();
     method public androidx.ui.text.style.TextDirection getDirection();
     method public androidx.ui.core.LayoutCoordinates? getLayoutCoordinates();
     method public int getOffset();
@@ -387,14 +387,14 @@
 
   public final class VectorAsset {
     method public String component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
     method public float component4();
     method public float component5();
     method public androidx.ui.graphics.vector.VectorGroup component6();
-    method public androidx.ui.graphics.vector.VectorAsset copy(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight, androidx.ui.graphics.vector.VectorGroup root);
-    method public androidx.ui.core.Dp getDefaultHeight();
-    method public androidx.ui.core.Dp getDefaultWidth();
+    method public androidx.ui.graphics.vector.VectorAsset copy(String name, androidx.ui.unit.Dp defaultWidth, androidx.ui.unit.Dp defaultHeight, float viewportWidth, float viewportHeight, androidx.ui.graphics.vector.VectorGroup root);
+    method public androidx.ui.unit.Dp getDefaultHeight();
+    method public androidx.ui.unit.Dp getDefaultWidth();
     method public String getName();
     method public androidx.ui.graphics.vector.VectorGroup getRoot();
     method public float getViewportHeight();
@@ -402,12 +402,12 @@
   }
 
   public final class VectorAssetBuilder {
-    ctor public VectorAssetBuilder(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight);
+    ctor public VectorAssetBuilder(String name, androidx.ui.unit.Dp defaultWidth, androidx.ui.unit.Dp defaultHeight, float viewportWidth, float viewportHeight);
     method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
     method public androidx.ui.graphics.vector.VectorAsset build();
     method public void ensureNotConsumed();
-    method public androidx.ui.core.Dp getDefaultHeight();
-    method public androidx.ui.core.Dp getDefaultWidth();
+    method public androidx.ui.unit.Dp getDefaultHeight();
+    method public androidx.ui.unit.Dp getDefaultWidth();
     method public String getName();
     method public float getViewportHeight();
     method public float getViewportWidth();
@@ -420,8 +420,8 @@
   }
 
   public final class VectorComposeKt {
-    method public static void DrawVector(androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
-    method public static void DrawVector(androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+    method public static void DrawVector(androidx.ui.unit.Dp defaultWidth, androidx.ui.unit.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+    method public static void DrawVector(androidx.ui.unit.Px defaultWidth, androidx.ui.unit.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
     method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<? extends androidx.ui.graphics.vector.PathNode> clipPathData = EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
     method public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
   }
@@ -522,7 +522,7 @@
 
   public final class PrimitiveResourcesKt {
     method public static boolean booleanResource(@BoolRes int id);
-    method public static androidx.ui.core.Dp dimensionResource(@DimenRes int id);
+    method public static androidx.ui.unit.Dp dimensionResource(@DimenRes int id);
     method public static int[] integerArrayResource(@ArrayRes int id);
     method public static int integerResource(@IntegerRes int id);
   }
@@ -557,10 +557,10 @@
   public static final class SemanticsActions.Companion {
     method public androidx.ui.semantics.SemanticsPropertyKey<java.util.List<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>>> getCustomActions();
     method public androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>> getOnClick();
-    method public androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>>> getScrollTo();
+    method public androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>>> getScrollTo();
     property public final androidx.ui.semantics.SemanticsPropertyKey<java.util.List<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>>> CustomActions;
     property public final androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>> OnClick;
-    property public final androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>>> ScrollTo;
+    property public final androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>>> ScrollTo;
   }
 
   public final class SemanticsKt {
@@ -584,14 +584,14 @@
   }
 
   public final class SemanticsPropertiesKt {
-    method public static void ScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, String? label = null, kotlin.jvm.functions.Function2<? super androidx.ui.core.Px,? super androidx.ui.core.Px,kotlin.Unit> action);
+    method public static void ScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, String? label = null, kotlin.jvm.functions.Function2<? super androidx.ui.unit.Px,? super androidx.ui.unit.Px,kotlin.Unit> action);
     method public static String getAccessibilityLabel(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static String getAccessibilityValue(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static java.util.List<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>> getCustomActions(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static boolean getEnabled(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static boolean getHidden(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>> getOnClick(androidx.ui.semantics.SemanticsPropertyReceiver);
-    method public static androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>> getScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver);
+    method public static androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>> getScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static String getTestTag(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static androidx.ui.text.style.TextDirection getTextDirection(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static void onClick(androidx.ui.semantics.SemanticsPropertyReceiver, String? label = null, kotlin.jvm.functions.Function0<kotlin.Unit> action);
@@ -601,7 +601,7 @@
     method public static void setEnabled(androidx.ui.semantics.SemanticsPropertyReceiver, boolean p);
     method public static void setHidden(androidx.ui.semantics.SemanticsPropertyReceiver, boolean p);
     method public static void setOnClick(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>> p);
-    method public static void setScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>> p);
+    method public static void setScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>> p);
     method public static void setTestTag(androidx.ui.semantics.SemanticsPropertyReceiver, String p);
     method public static void setTextDirection(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.text.style.TextDirection p);
   }
diff --git a/ui/ui-framework/api/public_plus_experimental_current.txt b/ui/ui-framework/api/public_plus_experimental_current.txt
index 083c8c9..60c7833 100644
--- a/ui/ui-framework/api/public_plus_experimental_current.txt
+++ b/ui/ui-framework/api/public_plus_experimental_current.txt
@@ -2,16 +2,16 @@
 package androidx.ui.core {
 
   public final class ClipKt {
-    method public static inline void Clip(androidx.ui.engine.geometry.Shape shape, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static inline void Clip(androidx.ui.graphics.Shape shape, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class DrawKt {
-    method public static inline void Draw(kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onPaint);
-    method public static inline void Draw(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onPaint);
+    method public static inline void Draw(kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onPaint);
+    method public static inline void Draw(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onPaint);
   }
 
   public final class DrawShadowKt {
-    method public static inline void DrawShadow(androidx.ui.engine.geometry.Shape shape, androidx.ui.core.Dp elevation);
+    method public static inline void DrawShadow(androidx.ui.graphics.Shape shape, androidx.ui.unit.Dp elevation);
   }
 
   public enum DropDownAlignment {
@@ -30,7 +30,7 @@
   }
 
   public final class LayoutKt {
-    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
+    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
     method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
     method @Deprecated public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit>![] childrenArray, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super androidx.ui.core.MultiComposableMeasurables,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
     method public static inline void OnChildPositioned(kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutCoordinates,kotlin.Unit> onPositioned, kotlin.jvm.functions.Function0<kotlin.Unit> children);
@@ -43,7 +43,7 @@
     method public Object component1();
     method public androidx.ui.core.LayoutTag copy(Object tag);
     method public Object getTag();
-    method public Object? modifyParentData(androidx.ui.core.DensityScope, Object? parentData);
+    method public Object? modifyParentData(androidx.ui.unit.DensityScope, Object? parentData);
   }
 
   public final class LayoutTagKt {
@@ -83,12 +83,12 @@
   }
 
   public final class PointerInputWrapperKt {
-    method public static inline void PointerInputWrapper(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler, kotlin.jvm.functions.Function0<kotlin.Unit> cancelHandler, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static inline void PointerInputWrapper(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler, kotlin.jvm.functions.Function0<kotlin.Unit> cancelHandler, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PopupKt {
-    method public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Left, androidx.ui.core.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopLeft, androidx.ui.core.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Left, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopLeft, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static void disposeActivityComposition(android.app.Activity activity);
     method public static boolean isPopupLayout(android.view.View view, String? testTag = null);
   }
@@ -152,8 +152,8 @@
 
   public final class WrapperKt {
     method public static void ComposeView(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void WithDensity(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,kotlin.Unit> block);
-    method public static androidx.ui.core.Density ambientDensity();
+    method public static void WithDensity(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,kotlin.Unit> block);
+    method public static androidx.ui.unit.Density ambientDensity();
     method public static androidx.compose.Ambient<androidx.ui.core.AndroidComposeView> getAndroidComposeViewAmbient();
     method public static androidx.compose.Ambient<androidx.animation.AnimationClockObservable> getAnimationClockAmbient();
     method public static androidx.compose.Ambient<androidx.ui.autofill.Autofill> getAutofillAmbient();
@@ -161,7 +161,7 @@
     method public static androidx.compose.Ambient<android.content.res.Configuration> getConfigurationAmbient();
     method public static androidx.compose.Ambient<android.content.Context> getContextAmbient();
     method public static androidx.compose.Ambient<kotlin.coroutines.CoroutineContext> getCoroutineContextAmbient();
-    method public static androidx.compose.Ambient<androidx.ui.core.Density> getDensityAmbient();
+    method public static androidx.compose.Ambient<androidx.ui.unit.Density> getDensityAmbient();
     method public static androidx.compose.Ambient<androidx.ui.core.input.FocusManager> getFocusManagerAmbient();
     method public static androidx.compose.Ambient<androidx.ui.text.font.Font.ResourceLoader> getFontLoaderAmbient();
     method public static androidx.compose.Ambient<androidx.ui.core.LayoutDirection> getLayoutDirectionAmbient();
@@ -175,34 +175,34 @@
 package androidx.ui.core.gesture {
 
   public final class ConstantsKt {
-    method public static androidx.ui.core.Duration getDoubleTapMinTime();
-    method public static androidx.ui.core.Dp getDoubleTapSlop();
-    method public static androidx.ui.core.Duration getDoubleTapTimeout();
-    method public static androidx.ui.core.Dp getDoubleTapTouchSlop();
-    method public static androidx.ui.core.Dp getHoverTapSlop();
-    method public static androidx.ui.core.Duration getHoverTapTimeout();
-    method public static androidx.ui.core.Duration getJumpTapTimeout();
-    method public static androidx.ui.core.Duration getLongPressTimeout();
-    method public static androidx.ui.core.Dp getMaxFlingVelocity();
-    method public static androidx.ui.core.Dp getMinFlingVelocity();
+    method public static androidx.ui.unit.Duration getDoubleTapMinTime();
+    method public static androidx.ui.unit.Dp getDoubleTapSlop();
+    method public static androidx.ui.unit.Duration getDoubleTapTimeout();
+    method public static androidx.ui.unit.Dp getDoubleTapTouchSlop();
+    method public static androidx.ui.unit.Dp getHoverTapSlop();
+    method public static androidx.ui.unit.Duration getHoverTapTimeout();
+    method public static androidx.ui.unit.Duration getJumpTapTimeout();
+    method public static androidx.ui.unit.Duration getLongPressTimeout();
+    method public static androidx.ui.unit.Dp getMaxFlingVelocity();
+    method public static androidx.ui.unit.Dp getMinFlingVelocity();
     method public static float getPagingTouchSlop();
     method public static float getPanSlop();
-    method public static androidx.ui.core.Duration getPressTimeout();
-    method public static androidx.ui.core.Dp getScaleSlop();
-    method public static androidx.ui.core.Dp getTouchSlop();
-    method public static androidx.ui.core.Dp getWindowTouchSlop();
-    method public static androidx.ui.core.Duration getZoomControlsTimeout();
+    method public static androidx.ui.unit.Duration getPressTimeout();
+    method public static androidx.ui.unit.Dp getScaleSlop();
+    method public static androidx.ui.unit.Dp getTouchSlop();
+    method public static androidx.ui.unit.Dp getWindowTouchSlop();
+    method public static androidx.ui.unit.Duration getZoomControlsTimeout();
   }
 
   public final class DoubleTapGestureDetectorKt {
-    method public static void DoubleTapGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit> onDoubleTap, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void DoubleTapGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit> onDoubleTap, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public interface DragObserver {
     method public default void onCancel();
-    method public default androidx.ui.core.PxPosition onDrag(androidx.ui.core.PxPosition dragDistance);
-    method public default void onStart(androidx.ui.core.PxPosition downPosition);
-    method public default void onStop(androidx.ui.core.PxPosition velocity);
+    method public default androidx.ui.unit.PxPosition onDrag(androidx.ui.unit.PxPosition dragDistance);
+    method public default void onStart(androidx.ui.unit.PxPosition downPosition);
+    method public default void onStop(androidx.ui.unit.PxPosition velocity);
   }
 
   public final class LongPressDragGestureDetectorKt {
@@ -211,22 +211,22 @@
 
   public interface LongPressDragObserver {
     method public default void onCancel();
-    method public default androidx.ui.core.PxPosition onDrag(androidx.ui.core.PxPosition dragDistance);
+    method public default androidx.ui.unit.PxPosition onDrag(androidx.ui.unit.PxPosition dragDistance);
     method public default void onDragStart();
-    method public default void onLongPress(androidx.ui.core.PxPosition pxPosition);
-    method public default void onStop(androidx.ui.core.PxPosition velocity);
+    method public default void onLongPress(androidx.ui.unit.PxPosition pxPosition);
+    method public default void onStop(androidx.ui.unit.PxPosition velocity);
   }
 
   public final class LongPressGestureDetectorKt {
-    method public static void LongPressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit> onLongPress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void LongPressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit> onLongPress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PressGestureDetectorKt {
-    method public static void PressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void PressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PressIndicatorGestureDetectorKt {
-    method public static void PressIndicatorGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void PressIndicatorGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PressReleasedGestureDetectorKt {
@@ -282,7 +282,7 @@
 package androidx.ui.core.gesture.util {
 
   public final class GestureUtilsKt {
-    method public static boolean anyPointersInBounds(java.util.List<androidx.ui.core.PointerInputChange>, androidx.ui.core.IntPxSize bounds);
+    method public static boolean anyPointersInBounds(java.util.List<androidx.ui.core.PointerInputChange>, androidx.ui.unit.IntPxSize bounds);
   }
 
   public final class PolyFitLeastSquaresKt {
@@ -290,8 +290,8 @@
 
   public final class VelocityTracker {
     ctor public VelocityTracker();
-    method public void addPosition(androidx.ui.core.Uptime uptime, androidx.ui.core.PxPosition position);
-    method public androidx.ui.core.Velocity calculateVelocity();
+    method public void addPosition(androidx.ui.unit.Uptime uptime, androidx.ui.unit.PxPosition position);
+    method public androidx.ui.unit.Velocity calculateVelocity();
     method public void resetTracking();
   }
 
@@ -311,7 +311,7 @@
 package androidx.ui.core.selection {
 
   public interface Selectable {
-    method public androidx.ui.core.selection.Selection? getSelection(androidx.ui.core.PxPosition startPosition, androidx.ui.core.PxPosition endPosition, androidx.ui.core.LayoutCoordinates containerLayoutCoordinates, boolean longPress);
+    method public androidx.ui.core.selection.Selection? getSelection(androidx.ui.unit.PxPosition startPosition, androidx.ui.unit.PxPosition endPosition, androidx.ui.core.LayoutCoordinates containerLayoutCoordinates, boolean longPress);
   }
 
   public final class Selection {
@@ -328,13 +328,13 @@
   }
 
   public static final class Selection.AnchorInfo {
-    ctor public Selection.AnchorInfo(androidx.ui.core.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
-    method public androidx.ui.core.PxPosition component1();
+    ctor public Selection.AnchorInfo(androidx.ui.unit.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
+    method public androidx.ui.unit.PxPosition component1();
     method public androidx.ui.text.style.TextDirection component2();
     method public int component3();
     method public androidx.ui.core.LayoutCoordinates? component4();
-    method public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.core.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
-    method public androidx.ui.core.PxPosition getCoordinates();
+    method public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.unit.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
+    method public androidx.ui.unit.PxPosition getCoordinates();
     method public androidx.ui.text.style.TextDirection getDirection();
     method public androidx.ui.core.LayoutCoordinates? getLayoutCoordinates();
     method public int getOffset();
@@ -387,14 +387,14 @@
 
   public final class VectorAsset {
     method public String component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
     method public float component4();
     method public float component5();
     method public androidx.ui.graphics.vector.VectorGroup component6();
-    method public androidx.ui.graphics.vector.VectorAsset copy(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight, androidx.ui.graphics.vector.VectorGroup root);
-    method public androidx.ui.core.Dp getDefaultHeight();
-    method public androidx.ui.core.Dp getDefaultWidth();
+    method public androidx.ui.graphics.vector.VectorAsset copy(String name, androidx.ui.unit.Dp defaultWidth, androidx.ui.unit.Dp defaultHeight, float viewportWidth, float viewportHeight, androidx.ui.graphics.vector.VectorGroup root);
+    method public androidx.ui.unit.Dp getDefaultHeight();
+    method public androidx.ui.unit.Dp getDefaultWidth();
     method public String getName();
     method public androidx.ui.graphics.vector.VectorGroup getRoot();
     method public float getViewportHeight();
@@ -402,12 +402,12 @@
   }
 
   public final class VectorAssetBuilder {
-    ctor public VectorAssetBuilder(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight);
+    ctor public VectorAssetBuilder(String name, androidx.ui.unit.Dp defaultWidth, androidx.ui.unit.Dp defaultHeight, float viewportWidth, float viewportHeight);
     method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
     method public androidx.ui.graphics.vector.VectorAsset build();
     method public void ensureNotConsumed();
-    method public androidx.ui.core.Dp getDefaultHeight();
-    method public androidx.ui.core.Dp getDefaultWidth();
+    method public androidx.ui.unit.Dp getDefaultHeight();
+    method public androidx.ui.unit.Dp getDefaultWidth();
     method public String getName();
     method public float getViewportHeight();
     method public float getViewportWidth();
@@ -420,8 +420,8 @@
   }
 
   public final class VectorComposeKt {
-    method public static void DrawVector(androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
-    method public static void DrawVector(androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+    method public static void DrawVector(androidx.ui.unit.Dp defaultWidth, androidx.ui.unit.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+    method public static void DrawVector(androidx.ui.unit.Px defaultWidth, androidx.ui.unit.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
     method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<? extends androidx.ui.graphics.vector.PathNode> clipPathData = EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
     method public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
   }
@@ -522,7 +522,7 @@
 
   public final class PrimitiveResourcesKt {
     method public static boolean booleanResource(@BoolRes int id);
-    method public static androidx.ui.core.Dp dimensionResource(@DimenRes int id);
+    method public static androidx.ui.unit.Dp dimensionResource(@DimenRes int id);
     method public static int[] integerArrayResource(@ArrayRes int id);
     method public static int integerResource(@IntegerRes int id);
   }
@@ -557,10 +557,10 @@
   public static final class SemanticsActions.Companion {
     method public androidx.ui.semantics.SemanticsPropertyKey<java.util.List<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>>> getCustomActions();
     method public androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>> getOnClick();
-    method public androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>>> getScrollTo();
+    method public androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>>> getScrollTo();
     property public final androidx.ui.semantics.SemanticsPropertyKey<java.util.List<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>>> CustomActions;
     property public final androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>> OnClick;
-    property public final androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>>> ScrollTo;
+    property public final androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>>> ScrollTo;
   }
 
   public final class SemanticsKt {
@@ -584,14 +584,14 @@
   }
 
   public final class SemanticsPropertiesKt {
-    method public static void ScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, String? label = null, kotlin.jvm.functions.Function2<? super androidx.ui.core.Px,? super androidx.ui.core.Px,kotlin.Unit> action);
+    method public static void ScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, String? label = null, kotlin.jvm.functions.Function2<? super androidx.ui.unit.Px,? super androidx.ui.unit.Px,kotlin.Unit> action);
     method public static String getAccessibilityLabel(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static String getAccessibilityValue(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static java.util.List<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>> getCustomActions(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static boolean getEnabled(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static boolean getHidden(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>> getOnClick(androidx.ui.semantics.SemanticsPropertyReceiver);
-    method public static androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>> getScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver);
+    method public static androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>> getScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static String getTestTag(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static androidx.ui.text.style.TextDirection getTextDirection(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static void onClick(androidx.ui.semantics.SemanticsPropertyReceiver, String? label = null, kotlin.jvm.functions.Function0<kotlin.Unit> action);
@@ -601,7 +601,7 @@
     method public static void setEnabled(androidx.ui.semantics.SemanticsPropertyReceiver, boolean p);
     method public static void setHidden(androidx.ui.semantics.SemanticsPropertyReceiver, boolean p);
     method public static void setOnClick(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>> p);
-    method public static void setScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>> p);
+    method public static void setScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>> p);
     method public static void setTestTag(androidx.ui.semantics.SemanticsPropertyReceiver, String p);
     method public static void setTextDirection(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.text.style.TextDirection p);
   }
diff --git a/ui/ui-framework/api/restricted_0.1.0-dev04.txt b/ui/ui-framework/api/restricted_0.1.0-dev04.txt
index 083c8c9..60c7833 100644
--- a/ui/ui-framework/api/restricted_0.1.0-dev04.txt
+++ b/ui/ui-framework/api/restricted_0.1.0-dev04.txt
@@ -2,16 +2,16 @@
 package androidx.ui.core {
 
   public final class ClipKt {
-    method public static inline void Clip(androidx.ui.engine.geometry.Shape shape, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static inline void Clip(androidx.ui.graphics.Shape shape, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class DrawKt {
-    method public static inline void Draw(kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onPaint);
-    method public static inline void Draw(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onPaint);
+    method public static inline void Draw(kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onPaint);
+    method public static inline void Draw(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onPaint);
   }
 
   public final class DrawShadowKt {
-    method public static inline void DrawShadow(androidx.ui.engine.geometry.Shape shape, androidx.ui.core.Dp elevation);
+    method public static inline void DrawShadow(androidx.ui.graphics.Shape shape, androidx.ui.unit.Dp elevation);
   }
 
   public enum DropDownAlignment {
@@ -30,7 +30,7 @@
   }
 
   public final class LayoutKt {
-    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
+    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
     method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
     method @Deprecated public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit>![] childrenArray, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super androidx.ui.core.MultiComposableMeasurables,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
     method public static inline void OnChildPositioned(kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutCoordinates,kotlin.Unit> onPositioned, kotlin.jvm.functions.Function0<kotlin.Unit> children);
@@ -43,7 +43,7 @@
     method public Object component1();
     method public androidx.ui.core.LayoutTag copy(Object tag);
     method public Object getTag();
-    method public Object? modifyParentData(androidx.ui.core.DensityScope, Object? parentData);
+    method public Object? modifyParentData(androidx.ui.unit.DensityScope, Object? parentData);
   }
 
   public final class LayoutTagKt {
@@ -83,12 +83,12 @@
   }
 
   public final class PointerInputWrapperKt {
-    method public static inline void PointerInputWrapper(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler, kotlin.jvm.functions.Function0<kotlin.Unit> cancelHandler, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static inline void PointerInputWrapper(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler, kotlin.jvm.functions.Function0<kotlin.Unit> cancelHandler, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PopupKt {
-    method public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Left, androidx.ui.core.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopLeft, androidx.ui.core.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Left, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopLeft, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static void disposeActivityComposition(android.app.Activity activity);
     method public static boolean isPopupLayout(android.view.View view, String? testTag = null);
   }
@@ -152,8 +152,8 @@
 
   public final class WrapperKt {
     method public static void ComposeView(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void WithDensity(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,kotlin.Unit> block);
-    method public static androidx.ui.core.Density ambientDensity();
+    method public static void WithDensity(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,kotlin.Unit> block);
+    method public static androidx.ui.unit.Density ambientDensity();
     method public static androidx.compose.Ambient<androidx.ui.core.AndroidComposeView> getAndroidComposeViewAmbient();
     method public static androidx.compose.Ambient<androidx.animation.AnimationClockObservable> getAnimationClockAmbient();
     method public static androidx.compose.Ambient<androidx.ui.autofill.Autofill> getAutofillAmbient();
@@ -161,7 +161,7 @@
     method public static androidx.compose.Ambient<android.content.res.Configuration> getConfigurationAmbient();
     method public static androidx.compose.Ambient<android.content.Context> getContextAmbient();
     method public static androidx.compose.Ambient<kotlin.coroutines.CoroutineContext> getCoroutineContextAmbient();
-    method public static androidx.compose.Ambient<androidx.ui.core.Density> getDensityAmbient();
+    method public static androidx.compose.Ambient<androidx.ui.unit.Density> getDensityAmbient();
     method public static androidx.compose.Ambient<androidx.ui.core.input.FocusManager> getFocusManagerAmbient();
     method public static androidx.compose.Ambient<androidx.ui.text.font.Font.ResourceLoader> getFontLoaderAmbient();
     method public static androidx.compose.Ambient<androidx.ui.core.LayoutDirection> getLayoutDirectionAmbient();
@@ -175,34 +175,34 @@
 package androidx.ui.core.gesture {
 
   public final class ConstantsKt {
-    method public static androidx.ui.core.Duration getDoubleTapMinTime();
-    method public static androidx.ui.core.Dp getDoubleTapSlop();
-    method public static androidx.ui.core.Duration getDoubleTapTimeout();
-    method public static androidx.ui.core.Dp getDoubleTapTouchSlop();
-    method public static androidx.ui.core.Dp getHoverTapSlop();
-    method public static androidx.ui.core.Duration getHoverTapTimeout();
-    method public static androidx.ui.core.Duration getJumpTapTimeout();
-    method public static androidx.ui.core.Duration getLongPressTimeout();
-    method public static androidx.ui.core.Dp getMaxFlingVelocity();
-    method public static androidx.ui.core.Dp getMinFlingVelocity();
+    method public static androidx.ui.unit.Duration getDoubleTapMinTime();
+    method public static androidx.ui.unit.Dp getDoubleTapSlop();
+    method public static androidx.ui.unit.Duration getDoubleTapTimeout();
+    method public static androidx.ui.unit.Dp getDoubleTapTouchSlop();
+    method public static androidx.ui.unit.Dp getHoverTapSlop();
+    method public static androidx.ui.unit.Duration getHoverTapTimeout();
+    method public static androidx.ui.unit.Duration getJumpTapTimeout();
+    method public static androidx.ui.unit.Duration getLongPressTimeout();
+    method public static androidx.ui.unit.Dp getMaxFlingVelocity();
+    method public static androidx.ui.unit.Dp getMinFlingVelocity();
     method public static float getPagingTouchSlop();
     method public static float getPanSlop();
-    method public static androidx.ui.core.Duration getPressTimeout();
-    method public static androidx.ui.core.Dp getScaleSlop();
-    method public static androidx.ui.core.Dp getTouchSlop();
-    method public static androidx.ui.core.Dp getWindowTouchSlop();
-    method public static androidx.ui.core.Duration getZoomControlsTimeout();
+    method public static androidx.ui.unit.Duration getPressTimeout();
+    method public static androidx.ui.unit.Dp getScaleSlop();
+    method public static androidx.ui.unit.Dp getTouchSlop();
+    method public static androidx.ui.unit.Dp getWindowTouchSlop();
+    method public static androidx.ui.unit.Duration getZoomControlsTimeout();
   }
 
   public final class DoubleTapGestureDetectorKt {
-    method public static void DoubleTapGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit> onDoubleTap, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void DoubleTapGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit> onDoubleTap, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public interface DragObserver {
     method public default void onCancel();
-    method public default androidx.ui.core.PxPosition onDrag(androidx.ui.core.PxPosition dragDistance);
-    method public default void onStart(androidx.ui.core.PxPosition downPosition);
-    method public default void onStop(androidx.ui.core.PxPosition velocity);
+    method public default androidx.ui.unit.PxPosition onDrag(androidx.ui.unit.PxPosition dragDistance);
+    method public default void onStart(androidx.ui.unit.PxPosition downPosition);
+    method public default void onStop(androidx.ui.unit.PxPosition velocity);
   }
 
   public final class LongPressDragGestureDetectorKt {
@@ -211,22 +211,22 @@
 
   public interface LongPressDragObserver {
     method public default void onCancel();
-    method public default androidx.ui.core.PxPosition onDrag(androidx.ui.core.PxPosition dragDistance);
+    method public default androidx.ui.unit.PxPosition onDrag(androidx.ui.unit.PxPosition dragDistance);
     method public default void onDragStart();
-    method public default void onLongPress(androidx.ui.core.PxPosition pxPosition);
-    method public default void onStop(androidx.ui.core.PxPosition velocity);
+    method public default void onLongPress(androidx.ui.unit.PxPosition pxPosition);
+    method public default void onStop(androidx.ui.unit.PxPosition velocity);
   }
 
   public final class LongPressGestureDetectorKt {
-    method public static void LongPressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit> onLongPress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void LongPressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit> onLongPress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PressGestureDetectorKt {
-    method public static void PressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void PressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PressIndicatorGestureDetectorKt {
-    method public static void PressIndicatorGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void PressIndicatorGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PressReleasedGestureDetectorKt {
@@ -282,7 +282,7 @@
 package androidx.ui.core.gesture.util {
 
   public final class GestureUtilsKt {
-    method public static boolean anyPointersInBounds(java.util.List<androidx.ui.core.PointerInputChange>, androidx.ui.core.IntPxSize bounds);
+    method public static boolean anyPointersInBounds(java.util.List<androidx.ui.core.PointerInputChange>, androidx.ui.unit.IntPxSize bounds);
   }
 
   public final class PolyFitLeastSquaresKt {
@@ -290,8 +290,8 @@
 
   public final class VelocityTracker {
     ctor public VelocityTracker();
-    method public void addPosition(androidx.ui.core.Uptime uptime, androidx.ui.core.PxPosition position);
-    method public androidx.ui.core.Velocity calculateVelocity();
+    method public void addPosition(androidx.ui.unit.Uptime uptime, androidx.ui.unit.PxPosition position);
+    method public androidx.ui.unit.Velocity calculateVelocity();
     method public void resetTracking();
   }
 
@@ -311,7 +311,7 @@
 package androidx.ui.core.selection {
 
   public interface Selectable {
-    method public androidx.ui.core.selection.Selection? getSelection(androidx.ui.core.PxPosition startPosition, androidx.ui.core.PxPosition endPosition, androidx.ui.core.LayoutCoordinates containerLayoutCoordinates, boolean longPress);
+    method public androidx.ui.core.selection.Selection? getSelection(androidx.ui.unit.PxPosition startPosition, androidx.ui.unit.PxPosition endPosition, androidx.ui.core.LayoutCoordinates containerLayoutCoordinates, boolean longPress);
   }
 
   public final class Selection {
@@ -328,13 +328,13 @@
   }
 
   public static final class Selection.AnchorInfo {
-    ctor public Selection.AnchorInfo(androidx.ui.core.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
-    method public androidx.ui.core.PxPosition component1();
+    ctor public Selection.AnchorInfo(androidx.ui.unit.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
+    method public androidx.ui.unit.PxPosition component1();
     method public androidx.ui.text.style.TextDirection component2();
     method public int component3();
     method public androidx.ui.core.LayoutCoordinates? component4();
-    method public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.core.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
-    method public androidx.ui.core.PxPosition getCoordinates();
+    method public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.unit.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
+    method public androidx.ui.unit.PxPosition getCoordinates();
     method public androidx.ui.text.style.TextDirection getDirection();
     method public androidx.ui.core.LayoutCoordinates? getLayoutCoordinates();
     method public int getOffset();
@@ -387,14 +387,14 @@
 
   public final class VectorAsset {
     method public String component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
     method public float component4();
     method public float component5();
     method public androidx.ui.graphics.vector.VectorGroup component6();
-    method public androidx.ui.graphics.vector.VectorAsset copy(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight, androidx.ui.graphics.vector.VectorGroup root);
-    method public androidx.ui.core.Dp getDefaultHeight();
-    method public androidx.ui.core.Dp getDefaultWidth();
+    method public androidx.ui.graphics.vector.VectorAsset copy(String name, androidx.ui.unit.Dp defaultWidth, androidx.ui.unit.Dp defaultHeight, float viewportWidth, float viewportHeight, androidx.ui.graphics.vector.VectorGroup root);
+    method public androidx.ui.unit.Dp getDefaultHeight();
+    method public androidx.ui.unit.Dp getDefaultWidth();
     method public String getName();
     method public androidx.ui.graphics.vector.VectorGroup getRoot();
     method public float getViewportHeight();
@@ -402,12 +402,12 @@
   }
 
   public final class VectorAssetBuilder {
-    ctor public VectorAssetBuilder(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight);
+    ctor public VectorAssetBuilder(String name, androidx.ui.unit.Dp defaultWidth, androidx.ui.unit.Dp defaultHeight, float viewportWidth, float viewportHeight);
     method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
     method public androidx.ui.graphics.vector.VectorAsset build();
     method public void ensureNotConsumed();
-    method public androidx.ui.core.Dp getDefaultHeight();
-    method public androidx.ui.core.Dp getDefaultWidth();
+    method public androidx.ui.unit.Dp getDefaultHeight();
+    method public androidx.ui.unit.Dp getDefaultWidth();
     method public String getName();
     method public float getViewportHeight();
     method public float getViewportWidth();
@@ -420,8 +420,8 @@
   }
 
   public final class VectorComposeKt {
-    method public static void DrawVector(androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
-    method public static void DrawVector(androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+    method public static void DrawVector(androidx.ui.unit.Dp defaultWidth, androidx.ui.unit.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+    method public static void DrawVector(androidx.ui.unit.Px defaultWidth, androidx.ui.unit.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
     method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<? extends androidx.ui.graphics.vector.PathNode> clipPathData = EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
     method public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
   }
@@ -522,7 +522,7 @@
 
   public final class PrimitiveResourcesKt {
     method public static boolean booleanResource(@BoolRes int id);
-    method public static androidx.ui.core.Dp dimensionResource(@DimenRes int id);
+    method public static androidx.ui.unit.Dp dimensionResource(@DimenRes int id);
     method public static int[] integerArrayResource(@ArrayRes int id);
     method public static int integerResource(@IntegerRes int id);
   }
@@ -557,10 +557,10 @@
   public static final class SemanticsActions.Companion {
     method public androidx.ui.semantics.SemanticsPropertyKey<java.util.List<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>>> getCustomActions();
     method public androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>> getOnClick();
-    method public androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>>> getScrollTo();
+    method public androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>>> getScrollTo();
     property public final androidx.ui.semantics.SemanticsPropertyKey<java.util.List<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>>> CustomActions;
     property public final androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>> OnClick;
-    property public final androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>>> ScrollTo;
+    property public final androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>>> ScrollTo;
   }
 
   public final class SemanticsKt {
@@ -584,14 +584,14 @@
   }
 
   public final class SemanticsPropertiesKt {
-    method public static void ScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, String? label = null, kotlin.jvm.functions.Function2<? super androidx.ui.core.Px,? super androidx.ui.core.Px,kotlin.Unit> action);
+    method public static void ScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, String? label = null, kotlin.jvm.functions.Function2<? super androidx.ui.unit.Px,? super androidx.ui.unit.Px,kotlin.Unit> action);
     method public static String getAccessibilityLabel(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static String getAccessibilityValue(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static java.util.List<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>> getCustomActions(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static boolean getEnabled(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static boolean getHidden(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>> getOnClick(androidx.ui.semantics.SemanticsPropertyReceiver);
-    method public static androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>> getScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver);
+    method public static androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>> getScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static String getTestTag(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static androidx.ui.text.style.TextDirection getTextDirection(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static void onClick(androidx.ui.semantics.SemanticsPropertyReceiver, String? label = null, kotlin.jvm.functions.Function0<kotlin.Unit> action);
@@ -601,7 +601,7 @@
     method public static void setEnabled(androidx.ui.semantics.SemanticsPropertyReceiver, boolean p);
     method public static void setHidden(androidx.ui.semantics.SemanticsPropertyReceiver, boolean p);
     method public static void setOnClick(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>> p);
-    method public static void setScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>> p);
+    method public static void setScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>> p);
     method public static void setTestTag(androidx.ui.semantics.SemanticsPropertyReceiver, String p);
     method public static void setTextDirection(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.text.style.TextDirection p);
   }
diff --git a/ui/ui-framework/api/restricted_current.txt b/ui/ui-framework/api/restricted_current.txt
index 083c8c9..60c7833 100644
--- a/ui/ui-framework/api/restricted_current.txt
+++ b/ui/ui-framework/api/restricted_current.txt
@@ -2,16 +2,16 @@
 package androidx.ui.core {
 
   public final class ClipKt {
-    method public static inline void Clip(androidx.ui.engine.geometry.Shape shape, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static inline void Clip(androidx.ui.graphics.Shape shape, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class DrawKt {
-    method public static inline void Draw(kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onPaint);
-    method public static inline void Draw(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit> onPaint);
+    method public static inline void Draw(kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onPaint);
+    method public static inline void Draw(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit> onPaint);
   }
 
   public final class DrawShadowKt {
-    method public static inline void DrawShadow(androidx.ui.engine.geometry.Shape shape, androidx.ui.core.Dp elevation);
+    method public static inline void DrawShadow(androidx.ui.graphics.Shape shape, androidx.ui.unit.Dp elevation);
   }
 
   public enum DropDownAlignment {
@@ -30,7 +30,7 @@
   }
 
   public final class LayoutKt {
-    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
+    method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> minIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> minIntrinsicHeightMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> maxIntrinsicWidthMeasureBlock, kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super java.util.List<? extends androidx.ui.core.IntrinsicMeasurable>,? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> maxIntrinsicHeightMeasureBlock, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
     method public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit> children, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super java.util.List<? extends androidx.ui.core.Measurable>,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
     method @Deprecated public static void Layout(kotlin.jvm.functions.Function0<kotlin.Unit>![] childrenArray, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function3<? super androidx.ui.core.MeasureScope,? super androidx.ui.core.MultiComposableMeasurables,? super androidx.ui.core.Constraints,? extends androidx.ui.core.MeasureScope.LayoutResult> measureBlock);
     method public static inline void OnChildPositioned(kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutCoordinates,kotlin.Unit> onPositioned, kotlin.jvm.functions.Function0<kotlin.Unit> children);
@@ -43,7 +43,7 @@
     method public Object component1();
     method public androidx.ui.core.LayoutTag copy(Object tag);
     method public Object getTag();
-    method public Object? modifyParentData(androidx.ui.core.DensityScope, Object? parentData);
+    method public Object? modifyParentData(androidx.ui.unit.DensityScope, Object? parentData);
   }
 
   public final class LayoutTagKt {
@@ -83,12 +83,12 @@
   }
 
   public final class PointerInputWrapperKt {
-    method public static inline void PointerInputWrapper(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler, kotlin.jvm.functions.Function0<kotlin.Unit> cancelHandler, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static inline void PointerInputWrapper(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler, kotlin.jvm.functions.Function0<kotlin.Unit> cancelHandler, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PopupKt {
-    method public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Left, androidx.ui.core.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopLeft, androidx.ui.core.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void DropdownPopup(androidx.ui.core.DropDownAlignment dropDownAlignment = androidx.ui.core.DropDownAlignment.Left, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Popup(androidx.ui.core.Alignment alignment = Alignment.TopLeft, androidx.ui.unit.IntPxPosition offset = IntPxPosition(IntPx.Zero, IntPx.Zero), androidx.ui.core.PopupProperties popupProperties = androidx.ui.core.PopupProperties(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static void disposeActivityComposition(android.app.Activity activity);
     method public static boolean isPopupLayout(android.view.View view, String? testTag = null);
   }
@@ -152,8 +152,8 @@
 
   public final class WrapperKt {
     method public static void ComposeView(kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void WithDensity(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,kotlin.Unit> block);
-    method public static androidx.ui.core.Density ambientDensity();
+    method public static void WithDensity(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,kotlin.Unit> block);
+    method public static androidx.ui.unit.Density ambientDensity();
     method public static androidx.compose.Ambient<androidx.ui.core.AndroidComposeView> getAndroidComposeViewAmbient();
     method public static androidx.compose.Ambient<androidx.animation.AnimationClockObservable> getAnimationClockAmbient();
     method public static androidx.compose.Ambient<androidx.ui.autofill.Autofill> getAutofillAmbient();
@@ -161,7 +161,7 @@
     method public static androidx.compose.Ambient<android.content.res.Configuration> getConfigurationAmbient();
     method public static androidx.compose.Ambient<android.content.Context> getContextAmbient();
     method public static androidx.compose.Ambient<kotlin.coroutines.CoroutineContext> getCoroutineContextAmbient();
-    method public static androidx.compose.Ambient<androidx.ui.core.Density> getDensityAmbient();
+    method public static androidx.compose.Ambient<androidx.ui.unit.Density> getDensityAmbient();
     method public static androidx.compose.Ambient<androidx.ui.core.input.FocusManager> getFocusManagerAmbient();
     method public static androidx.compose.Ambient<androidx.ui.text.font.Font.ResourceLoader> getFontLoaderAmbient();
     method public static androidx.compose.Ambient<androidx.ui.core.LayoutDirection> getLayoutDirectionAmbient();
@@ -175,34 +175,34 @@
 package androidx.ui.core.gesture {
 
   public final class ConstantsKt {
-    method public static androidx.ui.core.Duration getDoubleTapMinTime();
-    method public static androidx.ui.core.Dp getDoubleTapSlop();
-    method public static androidx.ui.core.Duration getDoubleTapTimeout();
-    method public static androidx.ui.core.Dp getDoubleTapTouchSlop();
-    method public static androidx.ui.core.Dp getHoverTapSlop();
-    method public static androidx.ui.core.Duration getHoverTapTimeout();
-    method public static androidx.ui.core.Duration getJumpTapTimeout();
-    method public static androidx.ui.core.Duration getLongPressTimeout();
-    method public static androidx.ui.core.Dp getMaxFlingVelocity();
-    method public static androidx.ui.core.Dp getMinFlingVelocity();
+    method public static androidx.ui.unit.Duration getDoubleTapMinTime();
+    method public static androidx.ui.unit.Dp getDoubleTapSlop();
+    method public static androidx.ui.unit.Duration getDoubleTapTimeout();
+    method public static androidx.ui.unit.Dp getDoubleTapTouchSlop();
+    method public static androidx.ui.unit.Dp getHoverTapSlop();
+    method public static androidx.ui.unit.Duration getHoverTapTimeout();
+    method public static androidx.ui.unit.Duration getJumpTapTimeout();
+    method public static androidx.ui.unit.Duration getLongPressTimeout();
+    method public static androidx.ui.unit.Dp getMaxFlingVelocity();
+    method public static androidx.ui.unit.Dp getMinFlingVelocity();
     method public static float getPagingTouchSlop();
     method public static float getPanSlop();
-    method public static androidx.ui.core.Duration getPressTimeout();
-    method public static androidx.ui.core.Dp getScaleSlop();
-    method public static androidx.ui.core.Dp getTouchSlop();
-    method public static androidx.ui.core.Dp getWindowTouchSlop();
-    method public static androidx.ui.core.Duration getZoomControlsTimeout();
+    method public static androidx.ui.unit.Duration getPressTimeout();
+    method public static androidx.ui.unit.Dp getScaleSlop();
+    method public static androidx.ui.unit.Dp getTouchSlop();
+    method public static androidx.ui.unit.Dp getWindowTouchSlop();
+    method public static androidx.ui.unit.Duration getZoomControlsTimeout();
   }
 
   public final class DoubleTapGestureDetectorKt {
-    method public static void DoubleTapGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit> onDoubleTap, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void DoubleTapGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit> onDoubleTap, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public interface DragObserver {
     method public default void onCancel();
-    method public default androidx.ui.core.PxPosition onDrag(androidx.ui.core.PxPosition dragDistance);
-    method public default void onStart(androidx.ui.core.PxPosition downPosition);
-    method public default void onStop(androidx.ui.core.PxPosition velocity);
+    method public default androidx.ui.unit.PxPosition onDrag(androidx.ui.unit.PxPosition dragDistance);
+    method public default void onStart(androidx.ui.unit.PxPosition downPosition);
+    method public default void onStop(androidx.ui.unit.PxPosition velocity);
   }
 
   public final class LongPressDragGestureDetectorKt {
@@ -211,22 +211,22 @@
 
   public interface LongPressDragObserver {
     method public default void onCancel();
-    method public default androidx.ui.core.PxPosition onDrag(androidx.ui.core.PxPosition dragDistance);
+    method public default androidx.ui.unit.PxPosition onDrag(androidx.ui.unit.PxPosition dragDistance);
     method public default void onDragStart();
-    method public default void onLongPress(androidx.ui.core.PxPosition pxPosition);
-    method public default void onStop(androidx.ui.core.PxPosition velocity);
+    method public default void onLongPress(androidx.ui.unit.PxPosition pxPosition);
+    method public default void onStop(androidx.ui.unit.PxPosition velocity);
   }
 
   public final class LongPressGestureDetectorKt {
-    method public static void LongPressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit> onLongPress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void LongPressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit> onLongPress, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PressGestureDetectorKt {
-    method public static void PressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void PressGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PressIndicatorGestureDetectorKt {
-    method public static void PressIndicatorGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.core.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void PressIndicatorGestureDetector(kotlin.jvm.functions.Function1<? super androidx.ui.unit.PxPosition,kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  kotlin.jvm.functions.Function0<kotlin.Unit>?  boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class PressReleasedGestureDetectorKt {
@@ -282,7 +282,7 @@
 package androidx.ui.core.gesture.util {
 
   public final class GestureUtilsKt {
-    method public static boolean anyPointersInBounds(java.util.List<androidx.ui.core.PointerInputChange>, androidx.ui.core.IntPxSize bounds);
+    method public static boolean anyPointersInBounds(java.util.List<androidx.ui.core.PointerInputChange>, androidx.ui.unit.IntPxSize bounds);
   }
 
   public final class PolyFitLeastSquaresKt {
@@ -290,8 +290,8 @@
 
   public final class VelocityTracker {
     ctor public VelocityTracker();
-    method public void addPosition(androidx.ui.core.Uptime uptime, androidx.ui.core.PxPosition position);
-    method public androidx.ui.core.Velocity calculateVelocity();
+    method public void addPosition(androidx.ui.unit.Uptime uptime, androidx.ui.unit.PxPosition position);
+    method public androidx.ui.unit.Velocity calculateVelocity();
     method public void resetTracking();
   }
 
@@ -311,7 +311,7 @@
 package androidx.ui.core.selection {
 
   public interface Selectable {
-    method public androidx.ui.core.selection.Selection? getSelection(androidx.ui.core.PxPosition startPosition, androidx.ui.core.PxPosition endPosition, androidx.ui.core.LayoutCoordinates containerLayoutCoordinates, boolean longPress);
+    method public androidx.ui.core.selection.Selection? getSelection(androidx.ui.unit.PxPosition startPosition, androidx.ui.unit.PxPosition endPosition, androidx.ui.core.LayoutCoordinates containerLayoutCoordinates, boolean longPress);
   }
 
   public final class Selection {
@@ -328,13 +328,13 @@
   }
 
   public static final class Selection.AnchorInfo {
-    ctor public Selection.AnchorInfo(androidx.ui.core.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
-    method public androidx.ui.core.PxPosition component1();
+    ctor public Selection.AnchorInfo(androidx.ui.unit.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
+    method public androidx.ui.unit.PxPosition component1();
     method public androidx.ui.text.style.TextDirection component2();
     method public int component3();
     method public androidx.ui.core.LayoutCoordinates? component4();
-    method public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.core.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
-    method public androidx.ui.core.PxPosition getCoordinates();
+    method public androidx.ui.core.selection.Selection.AnchorInfo copy(androidx.ui.unit.PxPosition coordinates, androidx.ui.text.style.TextDirection direction, int offset, androidx.ui.core.LayoutCoordinates? layoutCoordinates);
+    method public androidx.ui.unit.PxPosition getCoordinates();
     method public androidx.ui.text.style.TextDirection getDirection();
     method public androidx.ui.core.LayoutCoordinates? getLayoutCoordinates();
     method public int getOffset();
@@ -387,14 +387,14 @@
 
   public final class VectorAsset {
     method public String component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
     method public float component4();
     method public float component5();
     method public androidx.ui.graphics.vector.VectorGroup component6();
-    method public androidx.ui.graphics.vector.VectorAsset copy(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight, androidx.ui.graphics.vector.VectorGroup root);
-    method public androidx.ui.core.Dp getDefaultHeight();
-    method public androidx.ui.core.Dp getDefaultWidth();
+    method public androidx.ui.graphics.vector.VectorAsset copy(String name, androidx.ui.unit.Dp defaultWidth, androidx.ui.unit.Dp defaultHeight, float viewportWidth, float viewportHeight, androidx.ui.graphics.vector.VectorGroup root);
+    method public androidx.ui.unit.Dp getDefaultHeight();
+    method public androidx.ui.unit.Dp getDefaultWidth();
     method public String getName();
     method public androidx.ui.graphics.vector.VectorGroup getRoot();
     method public float getViewportHeight();
@@ -402,12 +402,12 @@
   }
 
   public final class VectorAssetBuilder {
-    ctor public VectorAssetBuilder(String name, androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth, float viewportHeight);
+    ctor public VectorAssetBuilder(String name, androidx.ui.unit.Dp defaultWidth, androidx.ui.unit.Dp defaultHeight, float viewportWidth, float viewportHeight);
     method public androidx.ui.graphics.vector.VectorAssetBuilder addPath(java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
     method public androidx.ui.graphics.vector.VectorAsset build();
     method public void ensureNotConsumed();
-    method public androidx.ui.core.Dp getDefaultHeight();
-    method public androidx.ui.core.Dp getDefaultWidth();
+    method public androidx.ui.unit.Dp getDefaultHeight();
+    method public androidx.ui.unit.Dp getDefaultWidth();
     method public String getName();
     method public float getViewportHeight();
     method public float getViewportWidth();
@@ -420,8 +420,8 @@
   }
 
   public final class VectorComposeKt {
-    method public static void DrawVector(androidx.ui.core.Dp defaultWidth, androidx.ui.core.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
-    method public static void DrawVector(androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+    method public static void DrawVector(androidx.ui.unit.Dp defaultWidth, androidx.ui.unit.Dp defaultHeight, float viewportWidth = -1.0f, float viewportHeight = -1.0f, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
+    method public static void DrawVector(androidx.ui.unit.Px defaultWidth, androidx.ui.unit.Px defaultHeight, float viewportWidth = defaultWidth.value, float viewportHeight = defaultHeight.value, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode tintBlendMode = DefaultTintBlendMode, androidx.ui.core.Alignment alignment = androidx.ui.graphics.vector.VectorComposeKt.DefaultAlignment, androidx.ui.graphics.ScaleFit scaleFit = ScaleFit.Fit, String name = "", kotlin.jvm.functions.Function3<? super androidx.ui.graphics.vector.VectorScope,? super java.lang.Float,? super java.lang.Float,kotlin.Unit> children);
     method public static void Group(androidx.ui.graphics.vector.VectorScope, String name = "", float rotation = 0.0f, float pivotX = 0.0f, float pivotY = 0.0f, float scaleX = 1.0f, float scaleY = 1.0f, float translationX = 0.0f, float translationY = 0.0f, java.util.List<? extends androidx.ui.graphics.vector.PathNode> clipPathData = EmptyPath, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.vector.VectorScope,kotlin.Unit> children);
     method public static void Path(androidx.ui.graphics.vector.VectorScope, java.util.List<? extends androidx.ui.graphics.vector.PathNode> pathData, String name = "", androidx.ui.graphics.Brush? fill = null, float fillAlpha = 1.0f, androidx.ui.graphics.Brush? stroke = null, float strokeAlpha = 1.0f, float strokeLineWidth = 0.0f, androidx.ui.graphics.StrokeCap strokeLineCap = DefaultStrokeLineCap, androidx.ui.graphics.StrokeJoin strokeLineJoin = DefaultStrokeLineJoin, float strokeLineMiter = 4.0f);
   }
@@ -522,7 +522,7 @@
 
   public final class PrimitiveResourcesKt {
     method public static boolean booleanResource(@BoolRes int id);
-    method public static androidx.ui.core.Dp dimensionResource(@DimenRes int id);
+    method public static androidx.ui.unit.Dp dimensionResource(@DimenRes int id);
     method public static int[] integerArrayResource(@ArrayRes int id);
     method public static int integerResource(@IntegerRes int id);
   }
@@ -557,10 +557,10 @@
   public static final class SemanticsActions.Companion {
     method public androidx.ui.semantics.SemanticsPropertyKey<java.util.List<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>>> getCustomActions();
     method public androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>> getOnClick();
-    method public androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>>> getScrollTo();
+    method public androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>>> getScrollTo();
     property public final androidx.ui.semantics.SemanticsPropertyKey<java.util.List<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>>> CustomActions;
     property public final androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>> OnClick;
-    property public final androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>>> ScrollTo;
+    property public final androidx.ui.semantics.SemanticsPropertyKey<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>>> ScrollTo;
   }
 
   public final class SemanticsKt {
@@ -584,14 +584,14 @@
   }
 
   public final class SemanticsPropertiesKt {
-    method public static void ScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, String? label = null, kotlin.jvm.functions.Function2<? super androidx.ui.core.Px,? super androidx.ui.core.Px,kotlin.Unit> action);
+    method public static void ScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, String? label = null, kotlin.jvm.functions.Function2<? super androidx.ui.unit.Px,? super androidx.ui.unit.Px,kotlin.Unit> action);
     method public static String getAccessibilityLabel(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static String getAccessibilityValue(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static java.util.List<androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>>> getCustomActions(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static boolean getEnabled(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static boolean getHidden(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>> getOnClick(androidx.ui.semantics.SemanticsPropertyReceiver);
-    method public static androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>> getScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver);
+    method public static androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>> getScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static String getTestTag(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static androidx.ui.text.style.TextDirection getTextDirection(androidx.ui.semantics.SemanticsPropertyReceiver);
     method public static void onClick(androidx.ui.semantics.SemanticsPropertyReceiver, String? label = null, kotlin.jvm.functions.Function0<kotlin.Unit> action);
@@ -601,7 +601,7 @@
     method public static void setEnabled(androidx.ui.semantics.SemanticsPropertyReceiver, boolean p);
     method public static void setHidden(androidx.ui.semantics.SemanticsPropertyReceiver, boolean p);
     method public static void setOnClick(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function0<kotlin.Unit>> p);
-    method public static void setScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.core.Px,androidx.ui.core.Px,kotlin.Unit>> p);
+    method public static void setScrollTo(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.semantics.AccessibilityAction<kotlin.jvm.functions.Function2<androidx.ui.unit.Px,androidx.ui.unit.Px,kotlin.Unit>> p);
     method public static void setTestTag(androidx.ui.semantics.SemanticsPropertyReceiver, String p);
     method public static void setTextDirection(androidx.ui.semantics.SemanticsPropertyReceiver, androidx.ui.text.style.TextDirection p);
   }
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/AnimationGestureSemanticsActivity.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/AnimationGestureSemanticsActivity.kt
index 477f44f..ac21524 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/AnimationGestureSemanticsActivity.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/AnimationGestureSemanticsActivity.kt
@@ -24,15 +24,15 @@
 import androidx.compose.state
 import androidx.ui.animation.ColorPropKey
 import androidx.ui.animation.Transition
-import androidx.ui.core.Layout
 import androidx.ui.core.Draw
-import androidx.ui.core.PxPosition
+import androidx.ui.core.Layout
 import androidx.ui.core.gesture.PressGestureDetector
-import androidx.ui.core.min
 import androidx.ui.core.setContent
-import androidx.ui.engine.geometry.Offset
+import androidx.ui.geometry.Offset
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.min
 
 /* Demo app created to study the interaction of animations, gestures and semantics. */
 class AnimationGestureSemanticsActivity : Activity() {
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/MultipleCollect.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/MultipleCollect.kt
index 308b76e..5d5677b 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/MultipleCollect.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/MultipleCollect.kt
@@ -18,23 +18,22 @@
 
 package androidx.ui.framework.demos
 
+import androidx.compose.Composable
 import androidx.ui.core.Constraints
-import androidx.ui.core.Dp
 import androidx.ui.core.Draw
 import androidx.ui.core.Layout
-import androidx.ui.core.coerceIn
-import androidx.ui.core.ipx
-import androidx.ui.core.toRect
-import androidx.ui.graphics.Color
-import androidx.ui.graphics.Paint
-import androidx.compose.Composable
 import androidx.ui.core.LayoutTag
 import androidx.ui.core.LayoutTagParentData
 import androidx.ui.core.ParentData
 import androidx.ui.core.tag
 import androidx.ui.graphics.Brush
+import androidx.ui.graphics.Color
+import androidx.ui.graphics.Paint
 import androidx.ui.graphics.SolidColor
 import androidx.ui.layout.Container
+import androidx.ui.unit.Dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.toRect
 
 @Composable
 fun ColoredRect(brush: Brush, width: Dp? = null, height: Dp? = null) {
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/PopupActivity.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/PopupActivity.kt
index ef9dd83..eb11fd0 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/PopupActivity.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/PopupActivity.kt
@@ -21,7 +21,6 @@
 import androidx.compose.Composable
 import androidx.compose.state
 import androidx.ui.core.Alignment
-import androidx.ui.core.Dp
 import androidx.ui.core.Draw
 import androidx.ui.core.DropDownAlignment
 import androidx.ui.core.DropdownPopup
@@ -31,9 +30,7 @@
 import androidx.ui.core.Text
 import androidx.ui.core.TextField
 import androidx.ui.core.disposeActivityComposition
-import androidx.ui.core.dp
 import androidx.ui.core.setContent
-import androidx.ui.core.toRect
 import androidx.ui.foundation.Clickable
 import androidx.ui.foundation.VerticalScroller
 import androidx.ui.foundation.shape.DrawShape
@@ -43,20 +40,23 @@
 import androidx.ui.graphics.Paint
 import androidx.ui.input.ImeAction
 import androidx.ui.input.KeyboardType
+import androidx.ui.layout.Arrangement
 import androidx.ui.layout.Column
 import androidx.ui.layout.ColumnScope
 import androidx.ui.layout.Container
 import androidx.ui.layout.DpConstraints
 import androidx.ui.layout.EdgeInsets
-import androidx.ui.layout.Spacer
-import androidx.ui.layout.Wrap
-import androidx.ui.layout.Arrangement
 import androidx.ui.layout.LayoutGravity
 import androidx.ui.layout.LayoutHeight
 import androidx.ui.layout.LayoutWidth
 import androidx.ui.layout.Row
+import androidx.ui.layout.Spacer
+import androidx.ui.layout.Wrap
 import androidx.ui.text.TextStyle
 import androidx.ui.text.style.TextAlign
+import androidx.ui.unit.Dp
+import androidx.ui.unit.dp
+import androidx.ui.unit.toRect
 
 class PopupActivity : Activity() {
     override fun onCreate(savedInstanceState: Bundle?) {
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/SemanticsL1.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/SemanticsL1.kt
index 80863ef..f9d0d6a 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/SemanticsL1.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/SemanticsL1.kt
@@ -17,11 +17,11 @@
 package androidx.ui.framework.demos
 
 import androidx.ui.layout.Row
-import androidx.ui.core.PxPosition
+import androidx.ui.unit.PxPosition
 import androidx.ui.core.Text
-import androidx.ui.core.dp
+import androidx.ui.unit.dp
 import androidx.ui.core.gesture.PressGestureDetector
-import androidx.ui.core.px
+import androidx.ui.unit.px
 import androidx.ui.layout.Column
 import androidx.ui.layout.Container
 import androidx.ui.material.Button
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/VectorGraphicsActivity.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/VectorGraphicsActivity.kt
index 910f5ce..bd775d2 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/VectorGraphicsActivity.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/VectorGraphicsActivity.kt
@@ -19,10 +19,10 @@
 import android.app.Activity
 import android.os.Bundle
 import androidx.compose.Composable
-import androidx.ui.core.Dp
-import androidx.ui.core.Px
+import androidx.ui.unit.Dp
+import androidx.ui.unit.Px
 import androidx.ui.core.WithDensity
-import androidx.ui.core.dp
+import androidx.ui.unit.dp
 import androidx.ui.core.setContent
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.HorizontalGradient
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/autofill/ExplicitAutofillTypesActivity.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/autofill/ExplicitAutofillTypesActivity.kt
index 01f7634..90ebfba 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/autofill/ExplicitAutofillTypesActivity.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/autofill/ExplicitAutofillTypesActivity.kt
@@ -26,12 +26,10 @@
 import androidx.ui.autofill.AutofillType
 import androidx.ui.core.AutofillAmbient
 import androidx.ui.core.AutofillTreeAmbient
-import androidx.ui.core.TextField
-import androidx.ui.core.Text
 import androidx.ui.core.LayoutCoordinates
 import androidx.ui.core.OnChildPositioned
-import androidx.ui.core.PxPosition
-import androidx.ui.core.dp
+import androidx.ui.core.Text
+import androidx.ui.core.TextField
 import androidx.ui.core.setContent
 import androidx.ui.input.ImeAction
 import androidx.ui.input.KeyboardType
@@ -39,6 +37,8 @@
 import androidx.ui.layout.LayoutHeight
 import androidx.ui.layout.Spacer
 import androidx.ui.material.MaterialTheme
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.dp
 
 class ExplicitAutofillTypesActivity : Activity() {
 
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/DoubleTapGestureDetectorDemo.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/DoubleTapGestureDetectorDemo.kt
index cb5a618..85a1d44 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/DoubleTapGestureDetectorDemo.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/DoubleTapGestureDetectorDemo.kt
@@ -19,11 +19,11 @@
 import android.app.Activity
 import android.os.Bundle
 import androidx.compose.state
-import androidx.ui.core.px
-import androidx.ui.core.setContent
-import androidx.ui.core.PxPosition
-import androidx.ui.core.dp
 import androidx.ui.core.gesture.DoubleTapGestureDetector
+import androidx.ui.core.setContent
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
 
 /**
  * Simple DoubleTapGestureDetector demo.
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/DragScaleGestureDetectorDemo.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/DragScaleGestureDetectorDemo.kt
index a2417e5..4069466 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/DragScaleGestureDetectorDemo.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/DragScaleGestureDetectorDemo.kt
@@ -16,22 +16,22 @@
 
 package androidx.ui.framework.demos.gestures
 
-import androidx.ui.core.Dp
-import androidx.ui.core.dp
-import androidx.ui.core.setContent
 import android.app.Activity
 import android.os.Bundle
 import androidx.compose.Composable
 import androidx.compose.state
-import androidx.ui.core.PxPosition
 import androidx.ui.core.gesture.DragObserver
-import androidx.ui.core.px
-import androidx.ui.graphics.Color
-import androidx.ui.core.Px
 import androidx.ui.core.gesture.PressReleasedGestureDetector
 import androidx.ui.core.gesture.ScaleGestureDetector
 import androidx.ui.core.gesture.ScaleObserver
 import androidx.ui.core.gesture.TouchSlopDragGestureDetector
+import androidx.ui.core.setContent
+import androidx.ui.graphics.Color
+import androidx.ui.unit.Dp
+import androidx.ui.unit.Px
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
 
 /**
  * Simple demo that shows off how DragGestureDetector and ScaleGestureDetector automatically
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/LongPressDragGestureDetectorDemo.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/LongPressDragGestureDetectorDemo.kt
index 6ced983..43e81f7 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/LongPressDragGestureDetectorDemo.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/LongPressDragGestureDetectorDemo.kt
@@ -19,12 +19,12 @@
 import android.app.Activity
 import android.os.Bundle
 import androidx.compose.state
-import androidx.ui.core.PxPosition
-import androidx.ui.core.px
-import androidx.ui.core.setContent
-import androidx.ui.core.dp
 import androidx.ui.core.gesture.LongPressDragGestureDetector
 import androidx.ui.core.gesture.LongPressDragObserver
+import androidx.ui.core.setContent
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
 
 /**
  * Simple demo that shows off TouchSlopDragGestureDetector.
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/LongPressGestureDetectorDemo.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/LongPressGestureDetectorDemo.kt
index 4049658..dc66c93 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/LongPressGestureDetectorDemo.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/LongPressGestureDetectorDemo.kt
@@ -19,11 +19,11 @@
 import android.app.Activity
 import android.os.Bundle
 import androidx.compose.state
-import androidx.ui.core.PxPosition
-import androidx.ui.core.px
-import androidx.ui.core.setContent
-import androidx.ui.core.dp
 import androidx.ui.core.gesture.LongPressGestureDetector
+import androidx.ui.core.setContent
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
 
 /**
  * Simple LongPressGestureDetector demo.
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedPressDemo.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedPressDemo.kt
index 61630a2..d0e3a96 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedPressDemo.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedPressDemo.kt
@@ -19,17 +19,17 @@
 import android.app.Activity
 import android.os.Bundle
 import androidx.compose.Composable
-import androidx.compose.state
-import androidx.ui.core.px
 import androidx.compose.remember
-import androidx.ui.core.Dp
-import androidx.ui.core.PxPosition
-import androidx.ui.core.dp
+import androidx.compose.state
 import androidx.ui.core.gesture.DoubleTapGestureDetector
 import androidx.ui.core.gesture.LongPressGestureDetector
 import androidx.ui.core.gesture.PressIndicatorGestureDetector
 import androidx.ui.core.gesture.PressReleasedGestureDetector
 import androidx.ui.core.setContent
+import androidx.ui.unit.Dp
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
 
 /**
  * Demonstration of how various press/tap gesture interact together in a nested fashion.
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedScalingDemo.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedScalingDemo.kt
index 2c4446e..06ab7d1 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedScalingDemo.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedScalingDemo.kt
@@ -20,14 +20,14 @@
 import android.os.Bundle
 import androidx.compose.Composable
 import androidx.compose.state
-import androidx.ui.core.dp
-import androidx.ui.core.px
-import androidx.ui.graphics.Color
-import androidx.ui.core.IntPx
 import androidx.ui.core.Layout
 import androidx.ui.core.gesture.RawScaleGestureDetector
-import androidx.ui.core.setContent
 import androidx.ui.core.gesture.RawScaleObserver
+import androidx.ui.core.setContent
+import androidx.ui.graphics.Color
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
 
 /**
  * Demo app created to study some complex interactions of multiple DragGestureDetectors.
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedScrollingDemo.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedScrollingDemo.kt
index 00737ba..ae859fe 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedScrollingDemo.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/NestedScrollingDemo.kt
@@ -21,27 +21,26 @@
 import androidx.compose.Composable
 import androidx.compose.state
 import androidx.ui.core.Direction
-import androidx.ui.core.Dp
-import androidx.ui.core.IntPx
+import androidx.ui.core.Draw
 import androidx.ui.core.Layout
-import androidx.ui.core.PxPosition
-import androidx.ui.core.coerceIn
-import androidx.ui.core.gesture.TouchSlopDragGestureDetector
+import androidx.ui.core.gesture.DoubleTapGestureDetector
 import androidx.ui.core.gesture.DragObserver
+import androidx.ui.core.gesture.LongPressGestureDetector
 import androidx.ui.core.gesture.PressIndicatorGestureDetector
-import androidx.ui.core.ipx
-import androidx.ui.core.px
+import androidx.ui.core.gesture.PressReleasedGestureDetector
+import androidx.ui.core.gesture.TouchSlopDragGestureDetector
 import androidx.ui.core.setContent
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
-import androidx.ui.core.gesture.LongPressGestureDetector
-import androidx.ui.core.Draw
-import androidx.ui.core.dp
-import androidx.ui.core.gesture.DoubleTapGestureDetector
-import androidx.ui.core.gesture.PressReleasedGestureDetector
-import androidx.ui.core.round
-import androidx.ui.core.toRect
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.px
+import androidx.ui.unit.round
+import androidx.ui.unit.toRect
 
 /**
  * Demonstration for how multiple DragGestureDetectors interact.
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/PopupDragActivity.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/PopupDragActivity.kt
index 54a0d81..1b8b7a7 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/PopupDragActivity.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/PopupDragActivity.kt
@@ -22,13 +22,10 @@
 import androidx.compose.state
 import androidx.ui.core.Alignment
 import androidx.ui.core.Popup
-import androidx.ui.core.PxPosition
 import androidx.ui.core.Text
 import androidx.ui.core.disposeActivityComposition
-import androidx.ui.core.dp
 import androidx.ui.core.gesture.DragObserver
 import androidx.ui.core.gesture.RawDragGestureDetector
-import androidx.ui.core.round
 import androidx.ui.core.setContent
 import androidx.ui.foundation.shape.DrawShape
 import androidx.ui.foundation.shape.corner.CircleShape
@@ -37,6 +34,9 @@
 import androidx.ui.layout.Wrap
 import androidx.ui.text.TextStyle
 import androidx.ui.text.style.TextAlign
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.dp
+import androidx.ui.unit.round
 
 class PopupDragActivity : Activity() {
     override fun onCreate(savedInstanceState: Bundle?) {
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/PressIndicatorGestureDetectorDemo.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/PressIndicatorGestureDetectorDemo.kt
index 18c2e09..6b9285d 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/PressIndicatorGestureDetectorDemo.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/PressIndicatorGestureDetectorDemo.kt
@@ -19,11 +19,11 @@
 import android.app.Activity
 import android.os.Bundle
 import androidx.compose.state
-import androidx.ui.core.px
-import androidx.ui.core.setContent
-import androidx.ui.core.PxPosition
-import androidx.ui.core.dp
 import androidx.ui.core.gesture.PressIndicatorGestureDetector
+import androidx.ui.core.setContent
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
 
 /**
  * Simple PressIndicatorGestureDetector demo.
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/PressReleasedGestureDetectorDemo.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/PressReleasedGestureDetectorDemo.kt
index f4864ce..1f14594 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/PressReleasedGestureDetectorDemo.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/PressReleasedGestureDetectorDemo.kt
@@ -19,10 +19,10 @@
 import android.app.Activity
 import android.os.Bundle
 import androidx.compose.state
-import androidx.ui.core.px
-import androidx.ui.core.setContent
-import androidx.ui.core.dp
 import androidx.ui.core.gesture.PressReleasedGestureDetector
+import androidx.ui.core.setContent
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
 
 /**
  * Simple PressReleasedGestureDetector demo.
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/RawDragGestureDetectorDemo.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/RawDragGestureDetectorDemo.kt
index 993192a..f534a79 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/RawDragGestureDetectorDemo.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/RawDragGestureDetectorDemo.kt
@@ -19,12 +19,12 @@
 import android.app.Activity
 import android.os.Bundle
 import androidx.compose.state
-import androidx.ui.core.PxPosition
 import androidx.ui.core.gesture.DragObserver
-import androidx.ui.core.px
-import androidx.ui.core.setContent
-import androidx.ui.core.dp
 import androidx.ui.core.gesture.RawDragGestureDetector
+import androidx.ui.core.setContent
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
 
 /**
  * Simple DragGestureDetector demo.
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/ScaleGestureDetectorDemo.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/ScaleGestureDetectorDemo.kt
index 62a7d7f..2c953ab 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/ScaleGestureDetectorDemo.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/ScaleGestureDetectorDemo.kt
@@ -19,12 +19,12 @@
 import android.app.Activity
 import android.os.Bundle
 import androidx.compose.state
-import androidx.ui.core.gesture.ScaleObserver
-import androidx.ui.core.px
-import androidx.ui.graphics.Color
-import androidx.ui.core.dp
 import androidx.ui.core.gesture.ScaleGestureDetector
+import androidx.ui.core.gesture.ScaleObserver
 import androidx.ui.core.setContent
+import androidx.ui.graphics.Color
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
 
 /**
  * Simple demo that shows off ScaleGestureDetectorDemo.
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/SimpleComposables.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/SimpleComposables.kt
index 85e5364..6948280 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/SimpleComposables.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/SimpleComposables.kt
@@ -19,16 +19,16 @@
 import androidx.compose.Composable
 import androidx.compose.remember
 import androidx.ui.core.Constraints
-import androidx.ui.core.Dp
+import androidx.ui.core.Draw
 import androidx.ui.core.Layout
-import androidx.ui.core.Px
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
-import androidx.ui.core.Draw
-import androidx.ui.core.IntPx
 import androidx.ui.graphics.PaintingStyle
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.Px
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
 
 /**
  * A simple layout composable that matches the size of it's parent layout.
@@ -115,7 +115,7 @@
                     strokeWidth = floatWidth
                 }
                 canvas.drawRect(
-                    androidx.ui.engine.geometry.Rect(
+                    androidx.ui.geometry.Rect(
                         floatWidth / 2,
                         floatWidth / 2,
                         parentSize.width.value - floatWidth / 2 + 1,
@@ -189,7 +189,7 @@
         val widthValue = if (widthPx.value < 0) parentSize.width.value else widthPx.value
         val heightValue = if (heightPx.value < 0) parentSize.height.value else heightPx.value
         canvas.drawRect(
-            androidx.ui.engine.geometry.Rect(
+            androidx.ui.geometry.Rect(
                 centerX - widthValue / 2,
                 centerY - heightValue / 2,
                 centerX + widthValue / 2,
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/TouchSlopDragGestureDetectorDemo.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/TouchSlopDragGestureDetectorDemo.kt
index e18cf75c..ca0f070 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/TouchSlopDragGestureDetectorDemo.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/TouchSlopDragGestureDetectorDemo.kt
@@ -19,14 +19,14 @@
 import android.app.Activity
 import android.os.Bundle
 import androidx.compose.state
-import androidx.ui.core.PxPosition
+import androidx.ui.core.Direction
 import androidx.ui.core.gesture.DragObserver
-import androidx.ui.core.px
+import androidx.ui.core.gesture.TouchSlopDragGestureDetector
 import androidx.ui.core.setContent
 import androidx.ui.graphics.Color
-import androidx.ui.core.Direction
-import androidx.ui.core.dp
-import androidx.ui.core.gesture.TouchSlopDragGestureDetector
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
 
 /**
  * Simple demo that shows off TouchSlopDragGestureDetector.
diff --git a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/TouchSlopExceededGestureDetectorDemo.kt b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/TouchSlopExceededGestureDetectorDemo.kt
index bb5bf20..684965b 100644
--- a/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/TouchSlopExceededGestureDetectorDemo.kt
+++ b/ui/ui-framework/integration-tests/framework-demos/src/main/java/androidx/ui/framework/demos/gestures/TouchSlopExceededGestureDetectorDemo.kt
@@ -19,12 +19,12 @@
 import android.app.Activity
 import android.os.Bundle
 import androidx.compose.state
-import androidx.ui.core.px
-import androidx.ui.core.setContent
-import androidx.ui.graphics.Color
-import androidx.ui.core.dp
 import androidx.ui.core.Direction
 import androidx.ui.core.gesture.TouchSlopExceededGestureDetector
+import androidx.ui.core.setContent
+import androidx.ui.graphics.Color
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
 
 /**
  * Simple demo that shows off TouchSlopExceededGestureDetector.
diff --git a/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/DrawSample.kt b/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/DrawSample.kt
index 8b3fab5..12440aa 100644
--- a/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/DrawSample.kt
+++ b/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/DrawSample.kt
@@ -20,9 +20,9 @@
 import androidx.compose.Composable
 import androidx.compose.remember
 import androidx.ui.core.Draw
-import androidx.ui.core.toRect
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
+import androidx.ui.unit.toRect
 
 @Sampled
 @Composable
diff --git a/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/DrawShadowSample.kt b/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/DrawShadowSample.kt
index 85026fd..5f30f8d 100644
--- a/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/DrawShadowSample.kt
+++ b/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/DrawShadowSample.kt
@@ -19,8 +19,8 @@
 import androidx.annotation.Sampled
 import androidx.compose.Composable
 import androidx.ui.core.DrawShadow
-import androidx.ui.core.dp
 import androidx.ui.foundation.shape.RectangleShape
+import androidx.ui.unit.dp
 
 @Sampled
 @Composable
diff --git a/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/DrawWithChildrenSample.kt b/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/DrawWithChildrenSample.kt
index 379936e..da2d8f8 100644
--- a/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/DrawWithChildrenSample.kt
+++ b/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/DrawWithChildrenSample.kt
@@ -21,12 +21,12 @@
 import androidx.compose.remember
 import androidx.ui.core.Draw
 import androidx.ui.core.Text
-import androidx.ui.core.dp
-import androidx.ui.core.toRect
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
 import androidx.ui.graphics.PaintingStyle
+import androidx.ui.unit.dp
+import androidx.ui.unit.toRect
 
 @Sampled
 @Composable
diff --git a/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/LayoutSample.kt b/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/LayoutSample.kt
index 37dd9c5..3278903 100644
--- a/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/LayoutSample.kt
+++ b/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/LayoutSample.kt
@@ -21,9 +21,9 @@
 import androidx.ui.core.Constraints
 import androidx.ui.core.Layout
 import androidx.ui.core.LayoutTag
-import androidx.ui.core.ipx
 import androidx.ui.core.tag
 import androidx.ui.layout.Container
+import androidx.ui.unit.ipx
 
 @Sampled
 @Composable
diff --git a/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/OnPositionedSample.kt b/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/OnPositionedSample.kt
index b66bc6b..055994b 100644
--- a/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/OnPositionedSample.kt
+++ b/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/OnPositionedSample.kt
@@ -19,21 +19,19 @@
 import androidx.annotation.Sampled
 import androidx.compose.Composable
 import androidx.ui.core.Constraints
-import androidx.ui.core.Dp
 import androidx.ui.core.Layout
 import androidx.ui.core.Modifier
 import androidx.ui.core.OnChildPositioned
 import androidx.ui.core.OnPositioned
-import androidx.ui.core.coerceAtLeast
-import androidx.ui.core.coerceIn
-import androidx.ui.core.dp
 import androidx.ui.core.globalPosition
-import androidx.ui.core.ipx
-import androidx.ui.core.max
 import androidx.ui.core.positionInRoot
 import androidx.ui.foundation.shape.DrawShape
 import androidx.ui.foundation.shape.RectangleShape
 import androidx.ui.graphics.Color
+import androidx.ui.unit.Dp
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.max
 
 @Sampled
 @Composable
diff --git a/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/ParentDataSample.kt b/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/ParentDataSample.kt
index 5aa5f47..0f84c86 100644
--- a/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/ParentDataSample.kt
+++ b/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/ParentDataSample.kt
@@ -20,8 +20,8 @@
 import androidx.compose.Composable
 import androidx.ui.core.Layout
 import androidx.ui.core.ParentData
-import androidx.ui.core.dp
 import androidx.ui.graphics.Color
+import androidx.ui.unit.dp
 
 @Sampled
 @Composable
diff --git a/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/PopupSample.kt b/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/PopupSample.kt
index 2c6eb51..c2b918b 100644
--- a/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/PopupSample.kt
+++ b/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/PopupSample.kt
@@ -22,11 +22,11 @@
 import androidx.ui.core.DropDownAlignment
 import androidx.ui.core.DropdownPopup
 import androidx.ui.core.Popup
-import androidx.ui.core.dp
 import androidx.ui.foundation.shape.DrawShape
 import androidx.ui.foundation.shape.corner.RoundedCornerShape
 import androidx.ui.graphics.Color
 import androidx.ui.layout.Container
+import androidx.ui.unit.dp
 
 @Sampled
 @Composable
diff --git a/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/WithConstraintsSample.kt b/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/WithConstraintsSample.kt
index 21b6317..c956c1cf 100644
--- a/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/WithConstraintsSample.kt
+++ b/ui/ui-framework/integration-tests/samples/src/main/java/androidx/ui/framework/samples/WithConstraintsSample.kt
@@ -20,9 +20,9 @@
 import androidx.compose.Composable
 import androidx.ui.core.WithConstraints
 import androidx.ui.core.ambientDensity
-import androidx.ui.core.dp
-import androidx.ui.core.withDensity
 import androidx.ui.graphics.Color
+import androidx.ui.unit.dp
+import androidx.ui.unit.withDensity
 
 @Sampled
 @Composable
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/PopupTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/PopupTest.kt
index 3316575..5f88291 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/PopupTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/PopupTest.kt
@@ -26,6 +26,13 @@
 import androidx.test.filters.MediumTest
 import androidx.ui.core.selection.SimpleContainer
 import androidx.ui.test.createComposeRule
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxPosition
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.isFinite
+import androidx.ui.unit.toPxPosition
+import androidx.ui.unit.toPxSize
+import androidx.ui.unit.withDensity
 import com.google.common.truth.Truth
 import org.hamcrest.CoreMatchers.instanceOf
 import org.hamcrest.Description
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/TextFieldOnValueChangeEditorModelTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/TextFieldOnValueChangeEditorModelTest.kt
index df562bc..d890970 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/TextFieldOnValueChangeEditorModelTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/TextFieldOnValueChangeEditorModelTest.kt
@@ -32,6 +32,8 @@
 import androidx.ui.test.findByTag
 import androidx.ui.test.sendClick
 import androidx.ui.text.TextRange
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.px
 import com.google.common.truth.Truth.assertThat
 import com.nhaarman.mockitokotlin2.any
 import com.nhaarman.mockitokotlin2.argumentCaptor
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/TextFieldOnValueChangeFullEditorModelTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/TextFieldOnValueChangeFullEditorModelTest.kt
index 7fdf2ee..26a93d5 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/TextFieldOnValueChangeFullEditorModelTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/TextFieldOnValueChangeFullEditorModelTest.kt
@@ -32,6 +32,8 @@
 import androidx.ui.test.findByTag
 import androidx.ui.test.sendClick
 import androidx.ui.text.TextRange
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.px
 import com.google.common.truth.Truth.assertThat
 import com.nhaarman.mockitokotlin2.any
 import com.nhaarman.mockitokotlin2.argumentCaptor
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/TextFieldOnValueChangeStringTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/TextFieldOnValueChangeStringTest.kt
index bd3a680..208425a 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/TextFieldOnValueChangeStringTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/TextFieldOnValueChangeStringTest.kt
@@ -31,6 +31,8 @@
 import androidx.ui.test.doGesture
 import androidx.ui.test.findByTag
 import androidx.ui.test.sendClick
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.px
 import com.google.common.truth.Truth.assertThat
 import com.nhaarman.mockitokotlin2.any
 import com.nhaarman.mockitokotlin2.argumentCaptor
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/TextLayoutTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/TextLayoutTest.kt
index c3c45d45..adead6a 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/TextLayoutTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/TextLayoutTest.kt
@@ -25,6 +25,13 @@
 import androidx.ui.text.font.FontStyle
 import androidx.ui.text.font.FontWeight
 import androidx.ui.text.font.asFontFamily
+import androidx.ui.unit.Density
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.ipx
+import androidx.ui.unit.px
+import androidx.ui.unit.round
+import androidx.ui.unit.withDensity
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertNotNull
 import org.junit.Assert.assertTrue
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/gesture/LongPressDragGestureDetectorTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/gesture/LongPressDragGestureDetectorTest.kt
index cc272a8..e1fa76b 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/gesture/LongPressDragGestureDetectorTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/gesture/LongPressDragGestureDetectorTest.kt
@@ -21,10 +21,10 @@
 import androidx.test.filters.LargeTest
 import androidx.test.rule.ActivityTestRule
 import androidx.ui.core.Layout
-import androidx.ui.core.PxPosition
-import androidx.ui.core.ipx
 import androidx.ui.core.setContent
 import androidx.ui.framework.test.TestActivity
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.ipx
 import com.nhaarman.mockitokotlin2.any
 import com.nhaarman.mockitokotlin2.inOrder
 import com.nhaarman.mockitokotlin2.spy
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/gesture/PressGestureDetectorTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/gesture/PressGestureDetectorTest.kt
index 0bd52ae..b29c860 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/gesture/PressGestureDetectorTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/gesture/PressGestureDetectorTest.kt
@@ -23,10 +23,10 @@
 import androidx.test.filters.LargeTest
 import androidx.test.rule.ActivityTestRule
 import androidx.ui.core.Layout
-import androidx.ui.core.PxPosition
-import androidx.ui.core.ipx
 import androidx.ui.core.setContent
 import androidx.ui.framework.test.TestActivity
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.ipx
 import com.nhaarman.mockitokotlin2.any
 import com.nhaarman.mockitokotlin2.never
 import com.nhaarman.mockitokotlin2.spy
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/gesture/ScaleGestureDetectorTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/gesture/ScaleGestureDetectorTest.kt
index 0fd04b3..393863e 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/gesture/ScaleGestureDetectorTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/gesture/ScaleGestureDetectorTest.kt
@@ -18,9 +18,16 @@
 import android.view.MotionEvent
 import android.view.View
 import android.view.ViewGroup
+import androidx.test.filters.LargeTest
 import androidx.test.rule.ActivityTestRule
+import androidx.ui.core.Layout
+import androidx.ui.core.ambientDensity
 import androidx.ui.core.setContent
 import androidx.ui.framework.test.TestActivity
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.withDensity
+import com.nhaarman.mockitokotlin2.inOrder
+import com.nhaarman.mockitokotlin2.spy
 import com.nhaarman.mockitokotlin2.verifyNoMoreInteractions
 import org.junit.Assert.assertTrue
 import org.junit.Before
@@ -30,13 +37,6 @@
 import org.junit.runners.JUnit4
 import java.util.concurrent.CountDownLatch
 import java.util.concurrent.TimeUnit
-import com.nhaarman.mockitokotlin2.spy
-import androidx.test.filters.LargeTest
-import androidx.ui.core.Layout
-import androidx.ui.core.IntPx
-import androidx.ui.core.ambientDensity
-import androidx.ui.core.withDensity
-import com.nhaarman.mockitokotlin2.inOrder
 
 // TODO(shepshapard): Test that all events related to scaling are consumed.
 
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/gesture/TouchSlopDragGestureDetectorTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/gesture/TouchSlopDragGestureDetectorTest.kt
index 151bea9..78b1d94 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/gesture/TouchSlopDragGestureDetectorTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/gesture/TouchSlopDragGestureDetectorTest.kt
@@ -18,11 +18,22 @@
 import android.view.MotionEvent
 import android.view.View
 import android.view.ViewGroup
+import androidx.test.filters.LargeTest
 import androidx.test.rule.ActivityTestRule
-import androidx.ui.core.ipx
+import androidx.ui.core.Layout
+import androidx.ui.core.ambientDensity
 import androidx.ui.core.setContent
 import androidx.ui.framework.test.TestActivity
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.Px
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.ipx
+import androidx.ui.unit.px
+import androidx.ui.unit.withDensity
 import com.nhaarman.mockitokotlin2.any
+import com.nhaarman.mockitokotlin2.inOrder
+import com.nhaarman.mockitokotlin2.spy
+import com.nhaarman.mockitokotlin2.times
 import com.nhaarman.mockitokotlin2.verifyNoMoreInteractions
 import org.junit.Assert.assertTrue
 import org.junit.Rule
@@ -31,17 +42,6 @@
 import org.junit.runners.JUnit4
 import java.util.concurrent.CountDownLatch
 import java.util.concurrent.TimeUnit
-import androidx.ui.core.PxPosition
-import com.nhaarman.mockitokotlin2.spy
-import com.nhaarman.mockitokotlin2.times
-import androidx.test.filters.LargeTest
-import androidx.ui.core.Layout
-import androidx.ui.core.IntPx
-import androidx.ui.core.Px
-import androidx.ui.core.ambientDensity
-import androidx.ui.core.px
-import androidx.ui.core.withDensity
-import com.nhaarman.mockitokotlin2.inOrder
 
 @LargeTest
 @RunWith(JUnit4::class)
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/selection/SelectionContainerTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/selection/SelectionContainerTest.kt
index 673bc0c..9ed8c40 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/selection/SelectionContainerTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/selection/SelectionContainerTest.kt
@@ -27,16 +27,16 @@
 import androidx.ui.core.gesture.MotionEvent
 import androidx.ui.core.gesture.PointerCoords
 import androidx.ui.core.gesture.PointerProperties
-import androidx.ui.core.px
-import androidx.ui.core.sp
 import androidx.ui.core.test.ValueModel
-import androidx.ui.core.withDensity
 import androidx.ui.test.android.AndroidComposeTestRule
 import androidx.ui.text.TextStyle
 import androidx.ui.text.font.Font
 import androidx.ui.text.font.FontStyle
 import androidx.ui.text.font.FontWeight
 import androidx.ui.text.font.asFontFamily
+import androidx.ui.unit.px
+import androidx.ui.unit.sp
+import androidx.ui.unit.withDensity
 import com.google.common.truth.Truth.assertThat
 import org.junit.Before
 import org.junit.Rule
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/selection/SelectionHandlesTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/selection/SelectionHandlesTest.kt
index 14771e1..26960a5 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/selection/SelectionHandlesTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/selection/SelectionHandlesTest.kt
@@ -20,7 +20,6 @@
 import androidx.test.filters.SdkSuppress
 import androidx.test.filters.SmallTest
 import androidx.test.rule.ActivityTestRule
-import androidx.ui.core.PxPosition
 import androidx.ui.core.setContent
 import androidx.ui.core.test.runOnUiThreadIR
 import androidx.ui.core.test.waitAndScreenShot
@@ -28,6 +27,7 @@
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.toArgb
 import androidx.ui.text.style.TextDirection
+import androidx.ui.unit.PxPosition
 import com.google.common.truth.Truth.assertThat
 import com.nhaarman.mockitokotlin2.mock
 import org.junit.Before
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/selection/TextSelectionDelegateTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/selection/TextSelectionDelegateTest.kt
index ad04abd..47597ec 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/selection/TextSelectionDelegateTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/selection/TextSelectionDelegateTest.kt
@@ -22,13 +22,7 @@
 import androidx.test.filters.SmallTest
 import androidx.test.platform.app.InstrumentationRegistry
 import androidx.ui.core.Constraints
-import androidx.ui.core.Density
 import androidx.ui.core.LayoutDirection
-import androidx.ui.core.PxPosition
-import androidx.ui.core.TextUnit
-import androidx.ui.core.px
-import androidx.ui.core.sp
-import androidx.ui.core.withDensity
 import androidx.ui.text.AnnotatedString
 import androidx.ui.text.SpanStyle
 import androidx.ui.text.TextDelegate
@@ -38,6 +32,12 @@
 import androidx.ui.text.font.FontWeight
 import androidx.ui.text.font.asFontFamily
 import androidx.ui.text.style.TextDirection
+import androidx.ui.unit.Density
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.TextUnit
+import androidx.ui.unit.px
+import androidx.ui.unit.sp
+import androidx.ui.unit.withDensity
 import com.google.common.truth.Truth.assertThat
 import com.nhaarman.mockitokotlin2.mock
 import org.junit.Test
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt
index 52c15fe..e05f728 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/AndroidLayoutDrawTest.kt
@@ -35,15 +35,10 @@
 import androidx.ui.core.AndroidComposeView
 import androidx.ui.core.Constraints
 import androidx.ui.core.ContextAmbient
-import androidx.ui.core.Density
 import androidx.ui.core.DensityAmbient
-import androidx.ui.core.DensityScope
 import androidx.ui.core.Draw
 import androidx.ui.core.DrawModifier
 import androidx.ui.core.HorizontalAlignmentLine
-import androidx.ui.core.IntPx
-import androidx.ui.core.IntPxPosition
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.Layout
 import androidx.ui.core.LayoutModifier
 import androidx.ui.core.LayoutTag
@@ -52,31 +47,34 @@
 import androidx.ui.core.OnPositioned
 import androidx.ui.core.ParentData
 import androidx.ui.core.ParentDataModifier
-import androidx.ui.core.PxSize
 import androidx.ui.core.Ref
 import androidx.ui.core.RepaintBoundary
 import androidx.ui.core.VerticalAlignmentLine
-import androidx.ui.core.coerceAtLeast
-import androidx.ui.core.coerceIn
 import androidx.ui.core.draw
 import androidx.ui.core.drawWithContent
 import androidx.ui.core.globalPosition
-import androidx.ui.core.ipx
 import androidx.ui.core.looseMin
-import androidx.ui.core.max
-import androidx.ui.core.min
 import androidx.ui.core.offset
-import androidx.ui.core.px
 import androidx.ui.core.setContent
 import androidx.ui.core.tag
-import androidx.ui.core.toPx
-import androidx.ui.core.toRect
-import androidx.ui.engine.geometry.Rect
 import androidx.ui.framework.test.TestActivity
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Canvas
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
 import androidx.ui.graphics.PaintingStyle
+import androidx.ui.unit.Density
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxPosition
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.ipx
+import androidx.ui.unit.max
+import androidx.ui.unit.min
+import androidx.ui.unit.px
+import androidx.ui.unit.toPx
+import androidx.ui.unit.toRect
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertFalse
 import org.junit.Assert.assertNull
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/ClipTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/ClipTest.kt
index 96c0a8f..1023671 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/ClipTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/ClipTest.kt
@@ -23,22 +23,22 @@
 import androidx.test.filters.SmallTest
 import androidx.test.rule.ActivityTestRule
 import androidx.ui.core.Clip
-import androidx.ui.core.Density
 import androidx.ui.core.Draw
-import androidx.ui.core.PxSize
-import androidx.ui.core.ipx
 import androidx.ui.core.setContent
-import androidx.ui.core.toRect
-import androidx.ui.engine.geometry.Outline
-import androidx.ui.engine.geometry.RRect
-import androidx.ui.engine.geometry.Radius
-import androidx.ui.engine.geometry.Rect
-import androidx.ui.engine.geometry.Shape
 import androidx.ui.framework.test.TestActivity
+import androidx.ui.geometry.RRect
+import androidx.ui.geometry.Radius
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Color
+import androidx.ui.graphics.Outline
 import androidx.ui.graphics.Paint
 import androidx.ui.graphics.Path
 import androidx.ui.graphics.PathOperation
+import androidx.ui.graphics.Shape
+import androidx.ui.unit.Density
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.ipx
+import androidx.ui.unit.toRect
 import org.junit.Assert
 import org.junit.Before
 import org.junit.Rule
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/DrawShadowTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/DrawShadowTest.kt
index 17dc8df..7b1ea85 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/DrawShadowTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/DrawShadowTest.kt
@@ -22,23 +22,23 @@
 import androidx.test.filters.SdkSuppress
 import androidx.test.filters.SmallTest
 import androidx.test.rule.ActivityTestRule
-import androidx.ui.core.Density
-import androidx.ui.core.Dp
 import androidx.ui.core.Draw
 import androidx.ui.core.DrawShadow
 import androidx.ui.core.Opacity
-import androidx.ui.core.PxSize
 import androidx.ui.core.RepaintBoundary
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
 import androidx.ui.core.setContent
-import androidx.ui.core.toRect
-import androidx.ui.engine.geometry.Outline
-import androidx.ui.engine.geometry.Shape
 import androidx.ui.framework.test.TestActivity
 import androidx.ui.graphics.Color
+import androidx.ui.graphics.Outline
 import androidx.ui.graphics.Paint
+import androidx.ui.graphics.Shape
 import androidx.ui.graphics.luminance
+import androidx.ui.unit.Density
+import androidx.ui.unit.Dp
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.toRect
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertNotEquals
 import org.junit.Assert.assertTrue
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/LayoutTagTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/LayoutTagTest.kt
index 004292c..0642133 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/LayoutTagTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/LayoutTagTest.kt
@@ -19,13 +19,13 @@
 import androidx.test.filters.SmallTest
 import androidx.test.rule.ActivityTestRule
 import androidx.ui.core.Layout
-import androidx.ui.core.ParentData
 import androidx.ui.core.LayoutTag
 import androidx.ui.core.LayoutTagParentData
-import androidx.ui.core.ipx
+import androidx.ui.core.ParentData
 import androidx.ui.core.setContent
 import androidx.ui.core.tag
 import androidx.ui.framework.test.TestActivity
+import androidx.ui.unit.ipx
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertTrue
 import org.junit.Before
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/ModelReadsTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/ModelReadsTest.kt
index 500c1f6a..393007c 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/ModelReadsTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/ModelReadsTest.kt
@@ -21,8 +21,8 @@
 import androidx.test.rule.ActivityTestRule
 import androidx.ui.core.Draw
 import androidx.ui.core.Layout
-import androidx.ui.core.ipx
 import androidx.ui.framework.test.TestActivity
+import androidx.ui.unit.ipx
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertFalse
 import org.junit.Assert.assertTrue
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/OpacityTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/OpacityTest.kt
index 232d840..87ef477 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/OpacityTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/OpacityTest.kt
@@ -25,13 +25,13 @@
 import androidx.ui.core.Draw
 import androidx.ui.core.Layout
 import androidx.ui.core.Opacity
-import androidx.ui.core.ipx
-import androidx.ui.core.max
 import androidx.ui.core.setContent
-import androidx.ui.core.toRect
 import androidx.ui.framework.test.TestActivity
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
+import androidx.ui.unit.ipx
+import androidx.ui.unit.max
+import androidx.ui.unit.toRect
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertTrue
 import org.junit.Before
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/ParentDataTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/ParentDataTest.kt
index 84c3f8e..90c4e75 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/ParentDataTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/ParentDataTest.kt
@@ -15,19 +15,19 @@
  */
 package androidx.ui.core.test
 
+import androidx.compose.Composable
 import androidx.test.filters.SmallTest
 import androidx.test.rule.ActivityTestRule
 import androidx.ui.core.Draw
 import androidx.ui.core.Layout
 import androidx.ui.core.ParentData
 import androidx.ui.core.Ref
-import androidx.ui.core.ipx
-import androidx.ui.core.toRect
+import androidx.ui.core.setContent
 import androidx.ui.framework.test.TestActivity
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
-import androidx.compose.Composable
-import androidx.ui.core.setContent
+import androidx.ui.unit.ipx
+import androidx.ui.unit.toRect
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertNull
 import org.junit.Assert.assertTrue
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/WithConstraintsTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/WithConstraintsTest.kt
index 787c1f8..e333ff6 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/WithConstraintsTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/core/test/WithConstraintsTest.kt
@@ -27,21 +27,21 @@
 import androidx.test.rule.ActivityTestRule
 import androidx.ui.core.Constraints
 import androidx.ui.core.Draw
-import androidx.ui.core.IntPx
 import androidx.ui.core.Layout
 import androidx.ui.core.MeasureBlock
 import androidx.ui.core.OnPositioned
-import androidx.ui.core.PxSize
 import androidx.ui.core.Ref
 import androidx.ui.core.WithConstraints
-import androidx.ui.core.ipx
-import androidx.ui.core.px
 import androidx.ui.core.setContent
-import androidx.ui.core.toRect
 import androidx.ui.framework.test.TestActivity
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
 import androidx.ui.graphics.vector.DrawVector
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.ipx
+import androidx.ui.unit.px
+import androidx.ui.unit.toRect
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertTrue
 import org.junit.Before
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/VectorInvalidationTestCase.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/VectorInvalidationTestCase.kt
index 5a788e1..7a8d10d 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/VectorInvalidationTestCase.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/VectorInvalidationTestCase.kt
@@ -22,8 +22,8 @@
 import androidx.ui.core.Draw
 import androidx.ui.core.WithDensity
 import androidx.ui.core.test.AtLeastSize
-import androidx.ui.engine.geometry.Rect
 import androidx.ui.framework.test.R
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
 import androidx.ui.res.loadVectorResource
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/VectorTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/VectorTest.kt
index 9186bb8..16f0ee8 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/VectorTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/VectorTest.kt
@@ -19,22 +19,21 @@
 import android.graphics.Bitmap
 import android.os.Build
 import androidx.compose.Composable
-import androidx.compose.composer
 import androidx.test.filters.SdkSuppress
 import androidx.test.filters.SmallTest
 import androidx.test.rule.ActivityTestRule
 import androidx.ui.core.Alignment
-import androidx.ui.core.IntPx
-import androidx.ui.core.ipx
 import androidx.ui.core.setContent
 import androidx.ui.core.test.AtLeastSize
 import androidx.ui.core.test.runOnUiThreadIR
 import androidx.ui.core.test.waitAndScreenShot
-import androidx.ui.core.toPx
 import androidx.ui.framework.test.TestActivity
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.SolidColor
 import androidx.ui.graphics.toArgb
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.ipx
+import androidx.ui.unit.toPx
 import org.junit.Assert
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertTrue
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/compat/XmlVectorParserTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/compat/XmlVectorParserTest.kt
index b2c2429..a06840d 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/compat/XmlVectorParserTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/graphics/vector/compat/XmlVectorParserTest.kt
@@ -18,7 +18,6 @@
 
 import androidx.test.filters.SmallTest
 import androidx.test.platform.app.InstrumentationRegistry
-import androidx.ui.core.dp
 import androidx.ui.framework.test.R
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.SolidColor
@@ -27,6 +26,7 @@
 import androidx.ui.graphics.vector.VectorNode
 import androidx.ui.graphics.vector.VectorPath
 import androidx.ui.res.loadVectorResource
+import androidx.ui.unit.dp
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertTrue
 import org.junit.Test
diff --git a/ui/ui-framework/src/androidTest/java/androidx/ui/res/PrimitiveResourcesTest.kt b/ui/ui-framework/src/androidTest/java/androidx/ui/res/PrimitiveResourcesTest.kt
index 9fb02e3..e7372e5 100644
--- a/ui/ui-framework/src/androidTest/java/androidx/ui/res/PrimitiveResourcesTest.kt
+++ b/ui/ui-framework/src/androidTest/java/androidx/ui/res/PrimitiveResourcesTest.kt
@@ -19,9 +19,9 @@
 import androidx.test.filters.SmallTest
 import androidx.test.platform.app.InstrumentationRegistry
 import androidx.ui.core.ContextAmbient
-import androidx.ui.core.Density
-import androidx.ui.core.dp
-import androidx.ui.core.withDensity
+import androidx.ui.unit.Density
+import androidx.ui.unit.dp
+import androidx.ui.unit.withDensity
 import androidx.ui.framework.test.R
 import androidx.ui.test.createComposeRule
 import com.google.common.truth.Truth.assertThat
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/Clip.kt b/ui/ui-framework/src/main/java/androidx/ui/core/Clip.kt
index e56db6d..7e44c01 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/Clip.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/Clip.kt
@@ -17,7 +17,7 @@
 package androidx.ui.core
 
 import androidx.compose.Composable
-import androidx.ui.engine.geometry.Shape
+import androidx.ui.graphics.Shape
 
 /**
  * Clips the children with the provided shape.
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/Draw.kt b/ui/ui-framework/src/main/java/androidx/ui/core/Draw.kt
index e4cccb7..ff3aa3c 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/Draw.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/Draw.kt
@@ -15,10 +15,12 @@
  */
 package androidx.ui.core
 
-import androidx.ui.graphics.Canvas
 import androidx.compose.Composable
 import androidx.compose.ambient
+import androidx.ui.graphics.Canvas
 import androidx.ui.tooling.InspectionMode
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.PxSize
 
 /**
  * Use Draw to get a [Canvas] to paint into the parent.
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/DrawShadow.kt b/ui/ui-framework/src/main/java/androidx/ui/core/DrawShadow.kt
index a220112..241f677 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/DrawShadow.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/DrawShadow.kt
@@ -17,7 +17,8 @@
 package androidx.ui.core
 
 import androidx.compose.Composable
-import androidx.ui.engine.geometry.Shape
+import androidx.ui.graphics.Shape
+import androidx.ui.unit.Dp
 
 /**
  * Draws the shadow. The [elevation] defines the visual dept of the physical object.
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/Layout.kt b/ui/ui-framework/src/main/java/androidx/ui/core/Layout.kt
index 6fbecb2..30b3371 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/Layout.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/Layout.kt
@@ -24,6 +24,13 @@
 import androidx.compose.ambient
 import androidx.compose.compositionReference
 import androidx.compose.remember
+import androidx.ui.unit.Density
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxPosition
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.max
+import androidx.ui.unit.min
 
 /**
  * [Layout] is the main core component for layout. It can be used to measure and position
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/LayoutTag.kt b/ui/ui-framework/src/main/java/androidx/ui/core/LayoutTag.kt
index 590dde5..018e41f 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/LayoutTag.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/LayoutTag.kt
@@ -17,6 +17,7 @@
 package androidx.ui.core
 
 import androidx.compose.Immutable
+import androidx.ui.unit.DensityScope
 
 /**
  * A [ParentDataModifier] which tags the target with the given [tag]. The provided tag
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/Popup.kt b/ui/ui-framework/src/main/java/androidx/ui/core/Popup.kt
index 7b3ffad..76c7577 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/Popup.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/Popup.kt
@@ -35,6 +35,12 @@
 import androidx.compose.remember
 import androidx.compose.onCommit
 import androidx.compose.onDispose
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxPosition
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.round
 
 /**
  * Opens a popup with the given content.
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/Text.kt b/ui/ui-framework/src/main/java/androidx/ui/core/Text.kt
index e19414e..e784dd4 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/Text.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/Text.kt
@@ -39,6 +39,10 @@
 import androidx.ui.text.style.TextAlign
 import androidx.ui.text.style.TextOverflow
 import androidx.ui.text.toAnnotatedString
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.ipx
+import androidx.ui.unit.max
+import androidx.ui.unit.min
 
 private const val DefaultSoftWrap: Boolean = true
 private const val DefaultMaxLines = Int.MAX_VALUE
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/TextField.kt b/ui/ui-framework/src/main/java/androidx/ui/core/TextField.kt
index 478e923..5c9cb4b 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/TextField.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/TextField.kt
@@ -36,6 +36,7 @@
 import androidx.ui.text.TextDelegate
 import androidx.ui.text.TextRange
 import androidx.ui.text.TextStyle
+import androidx.ui.unit.PxPosition
 
 /**
  * A user interface element for entering and modifying text.
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/TextFieldDelegate.kt b/ui/ui-framework/src/main/java/androidx/ui/core/TextFieldDelegate.kt
index dbb6a5f..7ac3bc3 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/TextFieldDelegate.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/TextFieldDelegate.kt
@@ -16,7 +16,7 @@
 
 package androidx.ui.core
 
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Canvas
 import androidx.ui.graphics.Color
 import androidx.ui.input.EditOperation
@@ -43,6 +43,12 @@
 import androidx.ui.text.font.Font
 import androidx.ui.text.style.TextDecoration
 import androidx.ui.text.style.TextDirectionAlgorithm
+import androidx.ui.unit.Density
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.ipx
+import androidx.ui.unit.isFinite
+import androidx.ui.unit.px
 import kotlin.math.ceil
 import kotlin.math.roundToInt
 
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/Wrapper.kt b/ui/ui-framework/src/main/java/androidx/ui/core/Wrapper.kt
index d0fbfa0..5c76b46 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/Wrapper.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/Wrapper.kt
@@ -39,6 +39,8 @@
 import androidx.ui.autofill.AutofillTree
 import androidx.ui.core.selection.SelectionContainer
 import androidx.ui.text.font.Font
+import androidx.ui.unit.Density
+import androidx.ui.unit.DensityScope
 import kotlinx.coroutines.Dispatchers
 import kotlin.coroutines.CoroutineContext
 
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/DoubleTapGestureDetector.kt b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/DoubleTapGestureDetector.kt
index e86317d..e07a749 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/DoubleTapGestureDetector.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/DoubleTapGestureDetector.kt
@@ -20,17 +20,17 @@
 import androidx.compose.ambient
 import androidx.compose.remember
 import androidx.ui.core.CoroutineContextAmbient
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.PointerEventPass
 import androidx.ui.core.PointerInputChange
 import androidx.ui.core.PointerInputWrapper
-import androidx.ui.core.PxPosition
 import androidx.ui.core.anyPositionChangeConsumed
 import androidx.ui.core.changedToDown
 import androidx.ui.core.changedToUp
 import androidx.ui.core.consumeDownChange
 import androidx.ui.core.gesture.util.anyPointersInBounds
 import androidx.ui.temputils.delay
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.PxPosition
 import kotlinx.coroutines.Job
 import kotlin.coroutines.CoroutineContext
 
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/LongPressDragGestureDetector.kt b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/LongPressDragGestureDetector.kt
index 415139b..87e8a0d 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/LongPressDragGestureDetector.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/LongPressDragGestureDetector.kt
@@ -18,13 +18,13 @@
 
 import androidx.compose.Composable
 import androidx.compose.remember
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.PointerEventPass
 import androidx.ui.core.PointerInputChange
 import androidx.ui.core.PointerInputHandler
 import androidx.ui.core.PointerInputWrapper
-import androidx.ui.core.PxPosition
 import androidx.ui.core.changedToUpIgnoreConsumed
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.PxPosition
 
 interface LongPressDragObserver {
 
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/LongPressGestureDetector.kt b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/LongPressGestureDetector.kt
index f990732..a8f4362 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/LongPressGestureDetector.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/LongPressGestureDetector.kt
@@ -16,22 +16,22 @@
 
 package androidx.ui.core.gesture
 
-import androidx.ui.core.PointerEventPass
-import androidx.ui.core.PointerInputChange
-import androidx.ui.core.anyPositionChangeConsumed
-import androidx.ui.core.changedToDown
 import androidx.compose.Composable
 import androidx.compose.ambient
 import androidx.compose.remember
-import androidx.ui.core.PxPosition
+import androidx.ui.core.CoroutineContextAmbient
+import androidx.ui.core.PointerEventPass
+import androidx.ui.core.PointerInputChange
+import androidx.ui.core.PointerInputWrapper
+import androidx.ui.core.anyPositionChangeConsumed
+import androidx.ui.core.changedToDown
 import androidx.ui.core.changedToUp
 import androidx.ui.core.changedToUpIgnoreConsumed
 import androidx.ui.core.consumeDownChange
-import androidx.ui.core.CoroutineContextAmbient
-import androidx.ui.core.IntPxSize
-import androidx.ui.core.PointerInputWrapper
 import androidx.ui.core.gesture.util.anyPointersInBounds
 import androidx.ui.temputils.delay
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.PxPosition
 import kotlinx.coroutines.Job
 import kotlin.coroutines.CoroutineContext
 
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/PressGestureDetector.kt b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/PressGestureDetector.kt
index 5b45cd8..237205c 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/PressGestureDetector.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/PressGestureDetector.kt
@@ -16,8 +16,8 @@
 
 package androidx.ui.core.gesture
 
-import androidx.ui.core.PxPosition
 import androidx.compose.Composable
+import androidx.ui.unit.PxPosition
 
 @Composable
 fun PressGestureDetector(
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/PressIndicatorGestureDetector.kt b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/PressIndicatorGestureDetector.kt
index d2daaf3..d7351d2 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/PressIndicatorGestureDetector.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/PressIndicatorGestureDetector.kt
@@ -16,19 +16,19 @@
 
 package androidx.ui.core.gesture
 
-import androidx.ui.core.PointerEventPass
-import androidx.ui.core.PointerInputChange
-import androidx.ui.core.PxPosition
-import androidx.ui.core.anyPositionChangeConsumed
-import androidx.ui.core.changedToDown
-import androidx.ui.core.consumeDownChange
-import androidx.ui.engine.geometry.Offset
 import androidx.compose.Composable
 import androidx.compose.remember
-import androidx.ui.core.IntPxSize
+import androidx.ui.core.PointerEventPass
+import androidx.ui.core.PointerInputChange
 import androidx.ui.core.PointerInputWrapper
+import androidx.ui.core.anyPositionChangeConsumed
+import androidx.ui.core.changedToDown
 import androidx.ui.core.changedToUpIgnoreConsumed
+import androidx.ui.core.consumeDownChange
 import androidx.ui.core.gesture.util.anyPointersInBounds
+import androidx.ui.geometry.Offset
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.PxPosition
 
 /**
  * This gesture detector has callbacks for when a press gesture starts and ends for the purposes of
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/PressReleasedGestureDetector.kt b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/PressReleasedGestureDetector.kt
index 3fc5b82..e769bde 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/PressReleasedGestureDetector.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/PressReleasedGestureDetector.kt
@@ -16,17 +16,17 @@
 
 package androidx.ui.core.gesture
 
+import androidx.compose.Composable
+import androidx.compose.remember
 import androidx.ui.core.PointerEventPass
 import androidx.ui.core.PointerInputChange
+import androidx.ui.core.PointerInputWrapper
 import androidx.ui.core.anyPositionChangeConsumed
 import androidx.ui.core.changedToDown
 import androidx.ui.core.changedToUp
 import androidx.ui.core.consumeDownChange
-import androidx.compose.Composable
-import androidx.compose.remember
-import androidx.ui.core.IntPxSize
-import androidx.ui.core.PointerInputWrapper
 import androidx.ui.core.gesture.util.anyPointersInBounds
+import androidx.ui.unit.IntPxSize
 
 /**
  * This gesture detector fires a callback when a traditional press is being released.  This is
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/RawDragGestureDetector.kt b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/RawDragGestureDetector.kt
index 7a4b165..a0e0980 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/RawDragGestureDetector.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/RawDragGestureDetector.kt
@@ -20,7 +20,7 @@
 import androidx.compose.remember
 import androidx.ui.core.PointerEventPass
 import androidx.ui.core.PointerInputChange
-import androidx.ui.core.PxPosition
+import androidx.ui.core.PointerInputWrapper
 import androidx.ui.core.changedToDown
 import androidx.ui.core.changedToDownIgnoreConsumed
 import androidx.ui.core.changedToUp
@@ -29,9 +29,9 @@
 import androidx.ui.core.consumePositionChange
 import androidx.ui.core.gesture.util.VelocityTracker
 import androidx.ui.core.positionChange
-import androidx.ui.core.px
-import androidx.ui.core.IntPxSize
-import androidx.ui.core.PointerInputWrapper
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.px
 
 interface DragObserver {
 
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/RawPressStartGestureDetector.kt b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/RawPressStartGestureDetector.kt
index e444f55..596b55c 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/RawPressStartGestureDetector.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/RawPressStartGestureDetector.kt
@@ -16,16 +16,16 @@
 
 package androidx.ui.core.gesture
 
+import androidx.compose.Composable
+import androidx.compose.remember
 import androidx.ui.core.PointerEventPass
 import androidx.ui.core.PointerInputChange
+import androidx.ui.core.PointerInputWrapper
 import androidx.ui.core.changedToDown
 import androidx.ui.core.changedToUp
 import androidx.ui.core.consumeDownChange
-import androidx.compose.Composable
-import androidx.compose.remember
-import androidx.ui.core.IntPxSize
-import androidx.ui.core.PointerInputWrapper
-import androidx.ui.core.PxPosition
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.PxPosition
 
 /**
  * Reacts if the first pointer input change it sees is an unconsumed down change, and if it reacts,
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/RawScaleGestureDetector.kt b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/RawScaleGestureDetector.kt
index 1407108..b19bda7 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/RawScaleGestureDetector.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/RawScaleGestureDetector.kt
@@ -18,7 +18,6 @@
 
 import androidx.compose.Composable
 import androidx.compose.remember
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.PointerEventPass
 import androidx.ui.core.PointerInputChange
 import androidx.ui.core.PointerInputWrapper
@@ -26,6 +25,7 @@
 import androidx.ui.core.changedToUp
 import androidx.ui.core.consumeDownChange
 import androidx.ui.testutils.consume
+import androidx.ui.unit.IntPxSize
 
 /**
  * Observes various events sent by [RawScaleGestureDetector].  Implement and pass into
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/ScaleSlopExceededGestureDetector.kt b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/ScaleSlopExceededGestureDetector.kt
index 1f34491..86ad7ee 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/ScaleSlopExceededGestureDetector.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/ScaleSlopExceededGestureDetector.kt
@@ -21,11 +21,11 @@
 import androidx.ui.core.PointerEventPass
 import androidx.ui.core.PointerInputChange
 import androidx.ui.core.PointerInputWrapper
-import androidx.ui.core.IntPxSize
-import androidx.ui.core.Px
 import androidx.ui.core.ambientDensity
 import androidx.ui.core.changedToUpIgnoreConsumed
-import androidx.ui.core.withDensity
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.Px
+import androidx.ui.unit.withDensity
 import kotlin.math.absoluteValue
 
 // TODO(b/143877464): Implement a "can scale in / can scale out" check so that scale slop is only
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/TouchSlopDragGestureDetector.kt b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/TouchSlopDragGestureDetector.kt
index 98432d3..bd54dc0 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/TouchSlopDragGestureDetector.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/TouchSlopDragGestureDetector.kt
@@ -20,7 +20,7 @@
 import androidx.compose.remember
 import androidx.ui.core.Direction
 import androidx.ui.core.PointerEventPass
-import androidx.ui.core.PxPosition
+import androidx.ui.unit.PxPosition
 
 // TODO(b/146133703): Likely rename to PanGestureDetector as per b/146133703
 /**
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/TouchSlopExceededGestureDetector.kt b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/TouchSlopExceededGestureDetector.kt
index e3bf68c..53e8fb1a 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/TouchSlopExceededGestureDetector.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/TouchSlopExceededGestureDetector.kt
@@ -21,14 +21,14 @@
 import androidx.ui.core.Direction
 import androidx.ui.core.PointerEventPass
 import androidx.ui.core.PointerInputChange
+import androidx.ui.core.PointerInputWrapper
+import androidx.ui.core.ambientDensity
 import androidx.ui.core.changedToDownIgnoreConsumed
 import androidx.ui.core.changedToUpIgnoreConsumed
 import androidx.ui.core.positionChange
-import androidx.ui.core.withDensity
-import androidx.ui.core.PointerInputWrapper
-import androidx.ui.core.IntPx
-import androidx.ui.core.ambientDensity
-import androidx.ui.core.IntPxSize
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.withDensity
 
 // TODO(shepshapard): Convert to functional component with effects once effects are ready.
 /**
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/constants.kt b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/constants.kt
index 37f6ccc..36466f7 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/constants.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/constants.kt
@@ -16,9 +16,9 @@
 
 package androidx.ui.core.gesture
 
-import androidx.ui.core.Duration
-import androidx.ui.core.dp
-import androidx.ui.core.milliseconds
+import androidx.ui.unit.Duration
+import androidx.ui.unit.dp
+import androidx.ui.unit.milliseconds
 
 /**
  * Modeled after Android's ViewConfiguration:
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/util/GestureUtils.kt b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/util/GestureUtils.kt
index 1d2a5cd..dcfcce0 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/util/GestureUtils.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/util/GestureUtils.kt
@@ -16,8 +16,8 @@
 
 package androidx.ui.core.gesture.util
 
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.PointerInputChange
+import androidx.ui.unit.IntPxSize
 
 /**
  * Utility method that determines if any pointers are currently in [bounds].
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/util/VelocityTracker.kt b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/util/VelocityTracker.kt
index ab12871..d634ce8 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/gesture/util/VelocityTracker.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/gesture/util/VelocityTracker.kt
@@ -16,12 +16,12 @@
 
 package androidx.ui.core.gesture.util
 
-import androidx.ui.core.Duration
-import androidx.ui.core.PxPosition
-import androidx.ui.core.Uptime
-import androidx.ui.core.Velocity
-import androidx.ui.core.inMilliseconds
-import androidx.ui.core.px
+import androidx.ui.unit.Duration
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.Uptime
+import androidx.ui.unit.Velocity
+import androidx.ui.unit.inMilliseconds
+import androidx.ui.unit.px
 import kotlin.math.absoluteValue
 
 private const val AssumePointerMoveStoppedMilliseconds: Int = 40
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/selection/Selectable.kt b/ui/ui-framework/src/main/java/androidx/ui/core/selection/Selectable.kt
index 79ebf75..a8a28b2 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/selection/Selectable.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/selection/Selectable.kt
@@ -17,7 +17,7 @@
 package androidx.ui.core.selection
 
 import androidx.ui.core.LayoutCoordinates
-import androidx.ui.core.PxPosition
+import androidx.ui.unit.PxPosition
 
 /**
  * Provides [Selection] information for a composable to SelectionContainer. Composables who can
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/selection/Selection.kt b/ui/ui-framework/src/main/java/androidx/ui/core/selection/Selection.kt
index 242e6cc..91b0b5f 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/selection/Selection.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/selection/Selection.kt
@@ -18,9 +18,9 @@
 
 import androidx.compose.Immutable
 import androidx.ui.core.LayoutCoordinates
-import androidx.ui.core.PxPosition
 import androidx.ui.text.TextRange
 import androidx.ui.text.style.TextDirection
+import androidx.ui.unit.PxPosition
 
 /**
  * Information about the current Selection.
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/selection/SelectionContainer.kt b/ui/ui-framework/src/main/java/androidx/ui/core/selection/SelectionContainer.kt
index 4629ad3..7b16ba5 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/selection/SelectionContainer.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/selection/SelectionContainer.kt
@@ -17,14 +17,10 @@
 package androidx.ui.core.selection
 
 import androidx.compose.Composable
-import androidx.compose.state
 import androidx.compose.remember
+import androidx.compose.state
 import androidx.ui.core.Alignment
 import androidx.ui.core.Constraints
-import androidx.ui.core.Dp
-import androidx.ui.core.IntPx
-import androidx.ui.core.IntPxPosition
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.Layout
 import androidx.ui.core.OnPositioned
 import androidx.ui.core.Placeable
@@ -35,11 +31,15 @@
 import androidx.ui.core.gesture.TouchSlopDragGestureDetector
 import androidx.ui.core.hasTightHeight
 import androidx.ui.core.hasTightWidth
-import androidx.ui.core.ipx
-import androidx.ui.core.isFinite
 import androidx.ui.core.looseMin
-import androidx.ui.core.max
 import androidx.ui.core.withTight
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxPosition
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.ipx
+import androidx.ui.unit.isFinite
+import androidx.ui.unit.max
 import kotlin.math.ceil
 import kotlin.math.roundToInt
 
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/selection/SelectionHandles.kt b/ui/ui-framework/src/main/java/androidx/ui/core/selection/SelectionHandles.kt
index 3210e44..0d69168 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/selection/SelectionHandles.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/selection/SelectionHandles.kt
@@ -17,19 +17,19 @@
 package androidx.ui.core.selection
 
 import androidx.compose.Composable
-import androidx.ui.core.Constraints
-import androidx.ui.core.Dp
 import androidx.compose.remember
+import androidx.ui.core.Constraints
 import androidx.ui.core.Draw
 import androidx.ui.core.Layout
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
 import androidx.ui.core.withTight
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
 import androidx.ui.graphics.Path
 import androidx.ui.text.style.TextDirection
+import androidx.ui.unit.Dp
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
 
 internal val HANDLE_WIDTH = 25.dp
 internal val HANDLE_HEIGHT = 25.dp
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/selection/SelectionManager.kt b/ui/ui-framework/src/main/java/androidx/ui/core/selection/SelectionManager.kt
index 45d3793..6a04a27 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/selection/SelectionManager.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/selection/SelectionManager.kt
@@ -17,10 +17,10 @@
 package androidx.ui.core.selection
 
 import androidx.ui.core.LayoutCoordinates
-import androidx.ui.core.PxPosition
 import androidx.ui.core.gesture.DragObserver
 import androidx.ui.core.gesture.LongPressDragObserver
-import androidx.ui.core.px
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.px
 
 /**
  * A bridge class between user interaction to the text composables for text selection.
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/selection/SelectionMode.kt b/ui/ui-framework/src/main/java/androidx/ui/core/selection/SelectionMode.kt
index e89f532..6d970ac 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/selection/SelectionMode.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/selection/SelectionMode.kt
@@ -16,8 +16,8 @@
 
 package androidx.ui.core.selection
 
-import androidx.ui.core.PxBounds
-import androidx.ui.core.PxPosition
+import androidx.ui.unit.PxBounds
+import androidx.ui.unit.PxPosition
 
 /**
  * The enum class allows user to decide the selection mode.
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/selection/TextSelectionDelegate.kt b/ui/ui-framework/src/main/java/androidx/ui/core/selection/TextSelectionDelegate.kt
index e87ab9b..0a354c6 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/selection/TextSelectionDelegate.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/selection/TextSelectionDelegate.kt
@@ -18,14 +18,14 @@
 
 import androidx.compose.MutableState
 import androidx.ui.core.LayoutCoordinates
-import androidx.ui.core.Px
-import androidx.ui.core.PxBounds
-import androidx.ui.core.PxPosition
-import androidx.ui.core.toPx
-import androidx.ui.core.toRect
-import androidx.ui.engine.geometry.Offset
+import androidx.ui.geometry.Offset
 import androidx.ui.text.TextLayoutResult
 import androidx.ui.text.TextRange
+import androidx.ui.unit.Px
+import androidx.ui.unit.PxBounds
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.toPx
+import androidx.ui.unit.toRect
 import kotlin.math.max
 
 internal class TextSelectionDelegate(
diff --git a/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/VectorAsset.kt b/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/VectorAsset.kt
index 224ac4f..2262e52 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/VectorAsset.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/VectorAsset.kt
@@ -18,13 +18,13 @@
 
 import androidx.compose.Composable
 import androidx.ui.core.Alignment
-import androidx.ui.core.Dp
 import androidx.ui.graphics.BlendMode
 import androidx.ui.graphics.Brush
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.ScaleFit
 import androidx.ui.graphics.StrokeCap
 import androidx.ui.graphics.StrokeJoin
+import androidx.ui.unit.Dp
 import java.util.Stack
 
 /**
diff --git a/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/VectorCompose.kt b/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/VectorCompose.kt
index 397ed27..cd5c63e 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/VectorCompose.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/VectorCompose.kt
@@ -18,17 +18,11 @@
 
 import androidx.compose.Composable
 import androidx.compose.compositionReference
-import androidx.compose.remember
 import androidx.compose.onPreCommit
+import androidx.compose.remember
 import androidx.ui.core.Alignment
-import androidx.ui.core.Dp
 import androidx.ui.core.Draw
-import androidx.ui.core.IntPx
-import androidx.ui.core.IntPxSize
-import androidx.ui.core.Px
-import androidx.ui.core.PxSize
 import androidx.ui.core.ambientDensity
-import androidx.ui.core.withDensity
 import androidx.ui.graphics.BlendMode
 import androidx.ui.graphics.Brush
 import androidx.ui.graphics.Color
@@ -36,6 +30,12 @@
 import androidx.ui.graphics.StrokeCap
 import androidx.ui.graphics.StrokeJoin
 import androidx.ui.graphics.withSave
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.Px
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.withDensity
 import kotlin.math.ceil
 
 /**
diff --git a/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/compat/XmlVectorParser.kt b/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/compat/XmlVectorParser.kt
index 7fee446a..5625834 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/compat/XmlVectorParser.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/graphics/vector/compat/XmlVectorParser.kt
@@ -20,7 +20,7 @@
 import android.util.AttributeSet
 import androidx.core.content.res.ComplexColorCompat
 import androidx.core.content.res.TypedArrayUtils
-import androidx.ui.core.dp
+import androidx.ui.unit.dp
 import androidx.ui.graphics.Brush
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Shader
diff --git a/ui/ui-framework/src/main/java/androidx/ui/res/PrimitiveResources.kt b/ui/ui-framework/src/main/java/androidx/ui/res/PrimitiveResources.kt
index a732888..5c723da 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/res/PrimitiveResources.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/res/PrimitiveResources.kt
@@ -23,8 +23,8 @@
 import androidx.compose.Composable
 import androidx.compose.ambient
 import androidx.ui.core.ContextAmbient
-import androidx.ui.core.Dp
 import androidx.ui.core.ambientDensity
+import androidx.ui.unit.Dp
 
 /**
  * Load an integer resource.
diff --git a/ui/ui-framework/src/main/java/androidx/ui/semantics/SemanticsProperties.kt b/ui/ui-framework/src/main/java/androidx/ui/semantics/SemanticsProperties.kt
index fdb84ac..f04b593 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/semantics/SemanticsProperties.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/semantics/SemanticsProperties.kt
@@ -16,8 +16,8 @@
 
 package androidx.ui.semantics
 
-import androidx.ui.core.Px
 import androidx.ui.text.style.TextDirection
+import androidx.ui.unit.Px
 
 object SemanticsProperties {
     val AccessibilityLabel = object : SemanticsPropertyKey<String>("AccessibilityLabel") {
diff --git a/ui/ui-framework/src/test/java/androidx/ui/core/DragEventTrackerTest.kt b/ui/ui-framework/src/test/java/androidx/ui/core/DragEventTrackerTest.kt
index 94cff28..73515ef 100644
--- a/ui/ui-framework/src/test/java/androidx/ui/core/DragEventTrackerTest.kt
+++ b/ui/ui-framework/src/test/java/androidx/ui/core/DragEventTrackerTest.kt
@@ -16,6 +16,8 @@
 
 package androidx.ui.core
 
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.px
 import org.junit.Assert.assertEquals
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-framework/src/test/java/androidx/ui/core/TextFieldDelegateTest.kt b/ui/ui-framework/src/test/java/androidx/ui/core/TextFieldDelegateTest.kt
index e24cb33..54880f5 100644
--- a/ui/ui-framework/src/test/java/androidx/ui/core/TextFieldDelegateTest.kt
+++ b/ui/ui-framework/src/test/java/androidx/ui/core/TextFieldDelegateTest.kt
@@ -16,7 +16,7 @@
 
 package androidx.ui.core
 
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Canvas
 import androidx.ui.graphics.Color
 import androidx.ui.input.CommitTextEditOp
@@ -38,6 +38,13 @@
 import androidx.ui.text.TextRange
 import androidx.ui.text.TextStyle
 import androidx.ui.text.style.TextDecoration
+import androidx.ui.unit.Density
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.ipx
+import androidx.ui.unit.px
+import androidx.ui.unit.round
 import com.google.common.truth.Truth.assertThat
 import com.nhaarman.mockitokotlin2.any
 import com.nhaarman.mockitokotlin2.argumentCaptor
diff --git a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/DoubleTapGestureDetectorTest.kt b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/DoubleTapGestureDetectorTest.kt
index 722af49..8f80475 100644
--- a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/DoubleTapGestureDetectorTest.kt
+++ b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/DoubleTapGestureDetectorTest.kt
@@ -16,17 +16,17 @@
 
 package androidx.ui.core.gesture
 
-import androidx.ui.core.IntPxSize
-import androidx.ui.core.PxPosition
 import androidx.ui.core.consumeDownChange
-import androidx.ui.core.ipx
-import androidx.ui.core.milliseconds
-import androidx.ui.core.px
 import androidx.ui.testutils.consume
 import androidx.ui.testutils.down
 import androidx.ui.testutils.invokeOverAllPasses
 import androidx.ui.testutils.moveTo
 import androidx.ui.testutils.up
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.ipx
+import androidx.ui.unit.milliseconds
+import androidx.ui.unit.px
 import com.google.common.truth.Truth.assertThat
 import com.nhaarman.mockitokotlin2.any
 import com.nhaarman.mockitokotlin2.mock
diff --git a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/LongPressGestureDetectorTest.kt b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/LongPressGestureDetectorTest.kt
index 2d79970..1c6e64e 100644
--- a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/LongPressGestureDetectorTest.kt
+++ b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/LongPressGestureDetectorTest.kt
@@ -16,19 +16,19 @@
 
 package androidx.ui.core.gesture
 
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.PointerEventPass
-import androidx.ui.core.PxPosition
 import androidx.ui.core.consumeDownChange
-import androidx.ui.core.ipx
-import androidx.ui.core.milliseconds
-import androidx.ui.core.px
 import androidx.ui.testutils.consume
 import androidx.ui.testutils.down
 import androidx.ui.testutils.invokeOverAllPasses
 import androidx.ui.testutils.moveBy
 import androidx.ui.testutils.moveTo
 import androidx.ui.testutils.up
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.ipx
+import androidx.ui.unit.milliseconds
+import androidx.ui.unit.px
 import com.google.common.truth.Truth.assertThat
 import com.nhaarman.mockitokotlin2.any
 import com.nhaarman.mockitokotlin2.mock
diff --git a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/PressIndicatorGestureDetectorTest.kt b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/PressIndicatorGestureDetectorTest.kt
index 1956d7c..2512ac1 100644
--- a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/PressIndicatorGestureDetectorTest.kt
+++ b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/PressIndicatorGestureDetectorTest.kt
@@ -16,13 +16,8 @@
 
 package androidx.ui.core.gesture
 
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.PointerEventPass
-import androidx.ui.core.PxPosition
 import androidx.ui.core.consumeDownChange
-import androidx.ui.core.ipx
-import androidx.ui.core.milliseconds
-import androidx.ui.core.px
 import androidx.ui.testutils.consume
 import androidx.ui.testutils.down
 import androidx.ui.testutils.invokeOverAllPasses
@@ -30,6 +25,11 @@
 import androidx.ui.testutils.moveBy
 import androidx.ui.testutils.moveTo
 import androidx.ui.testutils.up
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.ipx
+import androidx.ui.unit.milliseconds
+import androidx.ui.unit.px
 import com.nhaarman.mockitokotlin2.any
 import com.nhaarman.mockitokotlin2.inOrder
 import com.nhaarman.mockitokotlin2.mock
diff --git a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/PressReleasedGestureDetectorTest.kt b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/PressReleasedGestureDetectorTest.kt
index 8beec57..152ea39 100644
--- a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/PressReleasedGestureDetectorTest.kt
+++ b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/PressReleasedGestureDetectorTest.kt
@@ -16,17 +16,17 @@
 
 package androidx.ui.core.gesture
 
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.PointerEventPass
 import androidx.ui.core.consumeDownChange
-import androidx.ui.core.ipx
-import androidx.ui.core.milliseconds
 import androidx.ui.testutils.consume
 import androidx.ui.testutils.down
 import androidx.ui.testutils.invokeOverAllPasses
 import androidx.ui.testutils.invokeOverPasses
 import androidx.ui.testutils.moveTo
 import androidx.ui.testutils.up
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.ipx
+import androidx.ui.unit.milliseconds
 import com.nhaarman.mockitokotlin2.mock
 import com.nhaarman.mockitokotlin2.never
 import com.nhaarman.mockitokotlin2.verify
diff --git a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/RawDragGestureDetectorTest.kt b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/RawDragGestureDetectorTest.kt
index baf55bf..74d76e7 100644
--- a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/RawDragGestureDetectorTest.kt
+++ b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/RawDragGestureDetectorTest.kt
@@ -16,15 +16,9 @@
 
 package androidx.ui.core.gesture
 
-import androidx.ui.core.Duration
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.PointerEventPass
-import androidx.ui.core.PxPosition
 import androidx.ui.core.anyPositionChangeConsumed
 import androidx.ui.core.consumePositionChange
-import androidx.ui.core.ipx
-import androidx.ui.core.milliseconds
-import androidx.ui.core.px
 import androidx.ui.testutils.consume
 import androidx.ui.testutils.down
 import androidx.ui.testutils.invokeOverAllPasses
@@ -32,6 +26,12 @@
 import androidx.ui.testutils.moveBy
 import androidx.ui.testutils.moveTo
 import androidx.ui.testutils.up
+import androidx.ui.unit.Duration
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.ipx
+import androidx.ui.unit.milliseconds
+import androidx.ui.unit.px
 import com.google.common.truth.Truth.assertThat
 import org.junit.Before
 import org.junit.Test
diff --git a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/RawPressStartGestureDetectorTest.kt b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/RawPressStartGestureDetectorTest.kt
index d5021b7..69f159a 100644
--- a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/RawPressStartGestureDetectorTest.kt
+++ b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/RawPressStartGestureDetectorTest.kt
@@ -16,19 +16,19 @@
 
 package androidx.ui.core.gesture
 
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.PointerEventPass
-import androidx.ui.core.PxPosition
 import androidx.ui.core.consumeDownChange
-import androidx.ui.core.ipx
-import androidx.ui.core.milliseconds
-import androidx.ui.core.px
 import androidx.ui.testutils.down
 import androidx.ui.testutils.invokeOverAllPasses
 import androidx.ui.testutils.invokeOverPasses
 import androidx.ui.testutils.moveBy
 import androidx.ui.testutils.moveTo
 import androidx.ui.testutils.up
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.ipx
+import androidx.ui.unit.milliseconds
+import androidx.ui.unit.px
 import com.nhaarman.mockitokotlin2.any
 import com.nhaarman.mockitokotlin2.mock
 import com.nhaarman.mockitokotlin2.never
diff --git a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/RawScaleGestureDetectorTest.kt b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/RawScaleGestureDetectorTest.kt
index be535e3..71a355f 100644
--- a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/RawScaleGestureDetectorTest.kt
+++ b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/RawScaleGestureDetectorTest.kt
@@ -17,10 +17,7 @@
 package androidx.ui.core.gesture
 
 import androidx.ui.core.PointerEventPass
-import androidx.ui.core.PxPosition
 import androidx.ui.core.anyPositionChangeConsumed
-import androidx.ui.core.milliseconds
-import androidx.ui.core.px
 import androidx.ui.testutils.consume
 import androidx.ui.testutils.down
 import androidx.ui.testutils.invokeOverAllPasses
@@ -28,6 +25,9 @@
 import androidx.ui.testutils.moveBy
 import androidx.ui.testutils.moveTo
 import androidx.ui.testutils.up
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.milliseconds
+import androidx.ui.unit.px
 import com.google.common.truth.Truth.assertThat
 import org.junit.Before
 import org.junit.Test
diff --git a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/ScaleSlopExceededGestureDetectorTest.kt b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/ScaleSlopExceededGestureDetectorTest.kt
index 5eea6ba..08f837e 100644
--- a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/ScaleSlopExceededGestureDetectorTest.kt
+++ b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/ScaleSlopExceededGestureDetectorTest.kt
@@ -16,13 +16,13 @@
 
 package androidx.ui.core.gesture
 
-import androidx.ui.core.Duration
-import androidx.ui.core.milliseconds
-import androidx.ui.core.px
 import androidx.ui.testutils.down
 import androidx.ui.testutils.invokeOverAllPasses
 import androidx.ui.testutils.moveBy
 import androidx.ui.testutils.moveTo
+import androidx.ui.unit.Duration
+import androidx.ui.unit.milliseconds
+import androidx.ui.unit.px
 import com.google.common.truth.Truth.assertThat
 import org.junit.Before
 import org.junit.Test
diff --git a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/ScaleUtilsTest.kt b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/ScaleUtilsTest.kt
index 2658d4b..9a28480 100644
--- a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/ScaleUtilsTest.kt
+++ b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/ScaleUtilsTest.kt
@@ -16,9 +16,9 @@
 
 package androidx.ui.core.gesture
 
-import androidx.ui.core.milliseconds
 import androidx.ui.testutils.down
 import androidx.ui.testutils.moveTo
+import androidx.ui.unit.milliseconds
 import com.google.common.truth.Truth.assertThat
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/TouchSlopExceededGestureDetectorTest.kt b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/TouchSlopExceededGestureDetectorTest.kt
index 16c5d71..73af495 100644
--- a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/TouchSlopExceededGestureDetectorTest.kt
+++ b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/TouchSlopExceededGestureDetectorTest.kt
@@ -17,12 +17,8 @@
 package androidx.ui.core.gesture
 
 import androidx.ui.core.Direction
-import androidx.ui.core.Duration
 import androidx.ui.core.PointerEventPass
 import androidx.ui.core.consumeDownChange
-import androidx.ui.core.ipx
-import androidx.ui.core.milliseconds
-import androidx.ui.core.px
 import androidx.ui.testutils.consume
 import androidx.ui.testutils.down
 import androidx.ui.testutils.invokeOverAllPasses
@@ -30,6 +26,10 @@
 import androidx.ui.testutils.moveBy
 import androidx.ui.testutils.moveTo
 import androidx.ui.testutils.up
+import androidx.ui.unit.Duration
+import androidx.ui.unit.ipx
+import androidx.ui.unit.milliseconds
+import androidx.ui.unit.px
 import com.google.common.truth.Truth.assertThat
 import org.junit.Before
 import org.junit.Test
diff --git a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/util/GestureUtilsTest.kt b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/util/GestureUtilsTest.kt
index 6ee318a..7648630 100644
--- a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/util/GestureUtilsTest.kt
+++ b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/util/GestureUtilsTest.kt
@@ -16,11 +16,11 @@
 
 package androidx.ui.core.gesture.util
 
-import androidx.ui.core.IntPxSize
-import androidx.ui.core.ipx
-import androidx.ui.core.milliseconds
 import androidx.ui.testutils.down
 import androidx.ui.testutils.up
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.ipx
+import androidx.ui.unit.milliseconds
 import com.google.common.truth.Truth.assertThat
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/util/VelocityTrackerTest.kt b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/util/VelocityTrackerTest.kt
index 96c6db6..b20ae74 100644
--- a/ui/ui-framework/src/test/java/androidx/ui/core/gesture/util/VelocityTrackerTest.kt
+++ b/ui/ui-framework/src/test/java/androidx/ui/core/gesture/util/VelocityTrackerTest.kt
@@ -17,12 +17,12 @@
 package androidx.ui.core.gesture.util
 
 import androidx.ui.core.PointerInputData
-import androidx.ui.core.Px
-import androidx.ui.core.PxPosition
-import androidx.ui.core.Uptime
-import androidx.ui.core.Velocity
-import androidx.ui.core.milliseconds
-import androidx.ui.core.px
+import androidx.ui.unit.Px
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.Uptime
+import androidx.ui.unit.Velocity
+import androidx.ui.unit.milliseconds
+import androidx.ui.unit.px
 import com.google.common.truth.Truth.assertThat
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionManagerDragTest.kt b/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionManagerDragTest.kt
index 5b4ff27..ca85391 100644
--- a/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionManagerDragTest.kt
+++ b/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionManagerDragTest.kt
@@ -18,9 +18,9 @@
 
 import androidx.test.filters.SmallTest
 import androidx.ui.core.LayoutCoordinates
-import androidx.ui.core.PxPosition
-import androidx.ui.core.px
 import androidx.ui.text.style.TextDirection
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.px
 import com.google.common.truth.Truth.assertThat
 import com.nhaarman.mockitokotlin2.any
 import com.nhaarman.mockitokotlin2.mock
diff --git a/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionManagerLongPressDragTest.kt b/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionManagerLongPressDragTest.kt
index dd309f8..7f6a8af 100644
--- a/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionManagerLongPressDragTest.kt
+++ b/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionManagerLongPressDragTest.kt
@@ -18,9 +18,9 @@
 
 import androidx.test.filters.SmallTest
 import androidx.ui.core.LayoutCoordinates
-import androidx.ui.core.PxPosition
-import androidx.ui.core.px
 import androidx.ui.text.style.TextDirection
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.px
 import com.google.common.truth.Truth.assertThat
 import com.nhaarman.mockitokotlin2.any
 import com.nhaarman.mockitokotlin2.mock
diff --git a/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionManagerTest.kt b/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionManagerTest.kt
index dbd4c94..81e25a3 100644
--- a/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionManagerTest.kt
+++ b/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionManagerTest.kt
@@ -18,9 +18,9 @@
 
 import androidx.test.filters.SmallTest
 import androidx.ui.core.LayoutCoordinates
-import androidx.ui.core.PxPosition
-import androidx.ui.core.px
 import androidx.ui.text.style.TextDirection
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.px
 import com.google.common.truth.Truth.assertThat
 import com.nhaarman.mockitokotlin2.mock
 import com.nhaarman.mockitokotlin2.spy
diff --git a/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionModeTest.kt b/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionModeTest.kt
index d30e929..8f58fe8 100644
--- a/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionModeTest.kt
+++ b/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionModeTest.kt
@@ -17,9 +17,9 @@
 package androidx.ui.core.selection
 
 import androidx.test.filters.SmallTest
-import androidx.ui.core.PxBounds
-import androidx.ui.core.PxPosition
-import androidx.ui.core.px
+import androidx.ui.unit.PxBounds
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.px
 import com.google.common.truth.Truth.assertThat
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionTest.kt b/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionTest.kt
index 4a4a616..78c0aa0 100644
--- a/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionTest.kt
+++ b/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionTest.kt
@@ -18,10 +18,10 @@
 
 import androidx.test.filters.SmallTest
 import androidx.ui.core.LayoutCoordinates
-import androidx.ui.core.PxPosition
-import androidx.ui.core.px
 import androidx.ui.text.TextRange
 import androidx.ui.text.style.TextDirection
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.px
 import com.google.common.truth.Truth.assertThat
 import com.nhaarman.mockitokotlin2.mock
 import org.junit.Test
diff --git a/ui/ui-geometry/OWNERS b/ui/ui-geometry/OWNERS
new file mode 100644
index 0000000..09a4943
--- /dev/null
+++ b/ui/ui-geometry/OWNERS
@@ -0,0 +1,2 @@
+mount@google.com
+njawad@google.com
diff --git a/ui/ui-geometry/api/0.1.0-dev04.txt b/ui/ui-geometry/api/0.1.0-dev04.txt
new file mode 100644
index 0000000..ea43f9d
--- /dev/null
+++ b/ui/ui-geometry/api/0.1.0-dev04.txt
@@ -0,0 +1,257 @@
+// Signature format: 3.0
+package androidx.ui.geometry {
+
+  public final class Offset implements androidx.ui.geometry.OffsetBase {
+    ctor public Offset(float dx, float dy);
+    method public infix androidx.ui.geometry.Rect and(androidx.ui.geometry.Size other);
+    method public float component1();
+    method public float component2();
+    method public androidx.ui.geometry.Offset copy(float dx, float dy);
+    method public operator androidx.ui.geometry.Offset div(float operand);
+    method public float getDirection();
+    method public float getDistance();
+    method public float getDistanceSquared();
+    method public float getDx();
+    method public float getDy();
+    method public operator androidx.ui.geometry.Offset minus(androidx.ui.geometry.Offset other);
+    method public operator androidx.ui.geometry.Offset plus(androidx.ui.geometry.Offset other);
+    method public operator androidx.ui.geometry.Offset rem(float operand);
+    method public androidx.ui.geometry.Offset scale(float scaleX, float scaleY);
+    method public operator androidx.ui.geometry.Offset times(float operand);
+    method public androidx.ui.geometry.Offset translate(float translateX, float translateY);
+    method public androidx.ui.geometry.Offset truncDiv(float operand);
+    method public operator androidx.ui.geometry.Offset unaryMinus();
+    field public static final androidx.ui.geometry.Offset.Companion! Companion;
+  }
+
+  public static final class Offset.Companion {
+    method public androidx.ui.geometry.Offset getInfinite();
+    method public androidx.ui.geometry.Offset getZero();
+    method public boolean isValid(androidx.ui.geometry.Offset offset);
+    method public androidx.ui.geometry.Offset lerp(androidx.ui.geometry.Offset start, androidx.ui.geometry.Offset stop, float fraction);
+    property public final androidx.ui.geometry.Offset infinite;
+    property public final androidx.ui.geometry.Offset zero;
+  }
+
+  public interface OffsetBase {
+    method public float getDx();
+    method public float getDy();
+    method public default boolean isFinite();
+    method public default boolean isGreaterOrEqThan(androidx.ui.geometry.OffsetBase other);
+    method public default boolean isGreaterThan(androidx.ui.geometry.OffsetBase other);
+    method public default boolean isInfinite();
+    method public default boolean isLessOrEqThan(androidx.ui.geometry.OffsetBase other);
+    method public default boolean isLessThan(androidx.ui.geometry.OffsetBase other);
+    property public abstract float dx;
+    property public abstract float dy;
+  }
+
+  public final class RRect {
+    ctor public RRect(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
+    method public float component1();
+    method public float component10();
+    method public float component11();
+    method public float component12();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public float component5();
+    method public float component6();
+    method public float component7();
+    method public float component8();
+    method public float component9();
+    method public boolean contains(androidx.ui.geometry.Offset point);
+    method public androidx.ui.geometry.RRect copy(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
+    method @Deprecated public androidx.ui.geometry.RRect deflate(float delta);
+    method public float getBottom();
+    method public float getBottomLeftRadiusX();
+    method public float getBottomLeftRadiusY();
+    method public float getBottomRightRadiusX();
+    method public float getBottomRightRadiusY();
+    method public float getHeight();
+    method public float getLeft();
+    method public float getRight();
+    method public float getTop();
+    method public float getTopLeftRadiusX();
+    method public float getTopLeftRadiusY();
+    method public float getTopRightRadiusX();
+    method public float getTopRightRadiusY();
+    method public float getWidth();
+    method public static androidx.ui.geometry.RRect getZero();
+    method @Deprecated public androidx.ui.geometry.RRect inflate(float delta);
+    property public final float height;
+    property public final float width;
+    field public static final androidx.ui.geometry.RRect.Companion! Companion;
+  }
+
+  public static final class RRect.Companion {
+    method public androidx.ui.geometry.RRect getZero();
+    property public final androidx.ui.geometry.RRect Zero;
+  }
+
+  public final class RRectKt {
+    method public static androidx.ui.geometry.RRect RRect(float left, float top, float right, float bottom, float radiusX, float radiusY);
+    method public static androidx.ui.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.geometry.Radius radius);
+    method public static androidx.ui.geometry.RRect RRect(androidx.ui.geometry.Rect rect, float radiusX, float radiusY);
+    method public static androidx.ui.geometry.RRect RRect(androidx.ui.geometry.Rect rect, androidx.ui.geometry.Radius radius);
+    method public static androidx.ui.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.geometry.Radius topLeft = Radius.zero, androidx.ui.geometry.Radius topRight = Radius.zero, androidx.ui.geometry.Radius bottomRight = Radius.zero, androidx.ui.geometry.Radius bottomLeft = Radius.zero);
+    method public static androidx.ui.geometry.RRect RRect(androidx.ui.geometry.Rect rect, androidx.ui.geometry.Radius topLeft = Radius.zero, androidx.ui.geometry.Radius topRight = Radius.zero, androidx.ui.geometry.Radius bottomRight = Radius.zero, androidx.ui.geometry.Radius bottomLeft = Radius.zero);
+    method public static androidx.ui.geometry.Radius bottomLeftRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Radius bottomRightRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Offset center(androidx.ui.geometry.RRect);
+    method public static float getLongestSide(androidx.ui.geometry.RRect);
+    method public static float getShortestSide(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect grow(androidx.ui.geometry.RRect, float delta);
+    method public static boolean isCircle(androidx.ui.geometry.RRect);
+    method public static boolean isEllipse(androidx.ui.geometry.RRect);
+    method public static boolean isEmpty(androidx.ui.geometry.RRect);
+    method public static boolean isFinite(androidx.ui.geometry.RRect);
+    method public static boolean isRect(androidx.ui.geometry.RRect);
+    method public static boolean isStadium(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect lerp(androidx.ui.geometry.RRect start, androidx.ui.geometry.RRect stop, float fraction);
+    method public static androidx.ui.geometry.Rect middleRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Rect outerRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Rect safeInnerRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect shift(androidx.ui.geometry.RRect, androidx.ui.geometry.Offset offset);
+    method public static androidx.ui.geometry.RRect shrink(androidx.ui.geometry.RRect, float delta);
+    method public static androidx.ui.geometry.Rect tallMiddleRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Radius topLeftRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Radius topRightRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Rect wideMiddleRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect withRadius(androidx.ui.geometry.RRect, androidx.ui.geometry.Radius radius);
+  }
+
+  public final class Radius {
+    ctor public Radius(float x, float y);
+    method public float component1();
+    method public float component2();
+    method public androidx.ui.geometry.Radius copy(float x, float y);
+    method public operator androidx.ui.geometry.Radius div(float operand);
+    method public float getX();
+    method public float getY();
+    method public operator androidx.ui.geometry.Radius minus(androidx.ui.geometry.Radius other);
+    method public operator androidx.ui.geometry.Radius plus(androidx.ui.geometry.Radius other);
+    method public operator androidx.ui.geometry.Radius rem(float operand);
+    method public operator androidx.ui.geometry.Radius times(float operand);
+    method public androidx.ui.geometry.Radius truncDiv(float operand);
+    method public operator androidx.ui.geometry.Radius unaryMinus();
+    field public static final androidx.ui.geometry.Radius.Companion! Companion;
+  }
+
+  public static final class Radius.Companion {
+    method public androidx.ui.geometry.Radius circular(float radius);
+    method public androidx.ui.geometry.Radius elliptical(float x, float y);
+    method public androidx.ui.geometry.Radius getZero();
+    property public final androidx.ui.geometry.Radius zero;
+  }
+
+  public final class RadiusKt {
+    method public static androidx.ui.geometry.Radius lerp(androidx.ui.geometry.Radius start, androidx.ui.geometry.Radius stop, float fraction);
+  }
+
+  public final class Rect {
+    ctor public Rect(float left, float top, float right, float bottom);
+    method public float component1();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public boolean contains(androidx.ui.geometry.Offset offset);
+    method public androidx.ui.geometry.Rect copy(float left, float top, float right, float bottom);
+    method public androidx.ui.geometry.Rect deflate(float delta);
+    method public androidx.ui.geometry.Rect expandToInclude(androidx.ui.geometry.Rect other);
+    method public float getBottom();
+    method public androidx.ui.geometry.Offset getBottomCenter();
+    method public androidx.ui.geometry.Offset getBottomLeft();
+    method public androidx.ui.geometry.Offset getBottomRight();
+    method public androidx.ui.geometry.Offset getCenter();
+    method public androidx.ui.geometry.Offset getCenterLeft();
+    method public androidx.ui.geometry.Offset getCenterRight();
+    method public float getHeight();
+    method public float getLeft();
+    method public float getLongestSide();
+    method public float getRight();
+    method public float getShortestSide();
+    method public androidx.ui.geometry.Size getSize();
+    method public float getTop();
+    method public androidx.ui.geometry.Offset getTopCenter();
+    method public androidx.ui.geometry.Offset getTopLeft();
+    method public androidx.ui.geometry.Offset getTopRight();
+    method public float getWidth();
+    method public androidx.ui.geometry.Rect inflate(float delta);
+    method public androidx.ui.geometry.Rect intersect(androidx.ui.geometry.Rect other);
+    method public boolean isEmpty();
+    method public boolean isFinite();
+    method public boolean isInfinite();
+    method public androidx.ui.geometry.Rect join(androidx.ui.geometry.Rect other);
+    method public boolean overlaps(androidx.ui.geometry.Rect other);
+    method public androidx.ui.geometry.Rect shift(androidx.ui.geometry.Offset offset);
+    method public androidx.ui.geometry.Rect translate(float translateX, float translateY);
+    property public final float height;
+    property public final float width;
+    field public static final androidx.ui.geometry.Rect.Companion! Companion;
+  }
+
+  public static final class Rect.Companion {
+    method public androidx.ui.geometry.Rect fromCircle(androidx.ui.geometry.Offset center, float radius);
+    method public androidx.ui.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
+    method public androidx.ui.geometry.Rect fromLTWH(float left, float top, float width, float height);
+    method public androidx.ui.geometry.Rect fromPoints(androidx.ui.geometry.Offset a, androidx.ui.geometry.Offset b);
+    method public androidx.ui.geometry.Rect getLargest();
+    method public androidx.ui.geometry.Rect getZero();
+    method public float get_giantScalar();
+    property public final float _giantScalar;
+    property public final androidx.ui.geometry.Rect largest;
+    property public final androidx.ui.geometry.Rect zero;
+  }
+
+  public final class RectKt {
+    method public static androidx.ui.geometry.Rect lerp(androidx.ui.geometry.Rect start, androidx.ui.geometry.Rect stop, float fraction);
+  }
+
+  public class Size implements androidx.ui.geometry.OffsetBase {
+    ctor public Size(float width, float height);
+    method public final androidx.ui.geometry.Offset bottomCenter(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset bottomLeft(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset bottomRight(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset center(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset centerLeft(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset centerRight(androidx.ui.geometry.Offset origin);
+    method public final boolean contains(androidx.ui.geometry.Offset offset);
+    method public final operator androidx.ui.geometry.Size div(float operand);
+    method public float getDx();
+    method public float getDy();
+    method public final androidx.ui.geometry.Size getFlipped();
+    method public final float getHeight();
+    method public final float getLongestSide();
+    method public final float getShortestSide();
+    method public final float getWidth();
+    method public final boolean isEmpty();
+    method public final operator androidx.ui.geometry.Size minus(androidx.ui.geometry.Offset other);
+    method public final operator androidx.ui.geometry.Offset minus(androidx.ui.geometry.Size other);
+    method public final operator androidx.ui.geometry.Size plus(androidx.ui.geometry.Offset other);
+    method public final operator androidx.ui.geometry.Size rem(float operand);
+    method public final operator androidx.ui.geometry.Size times(float operand);
+    method public final androidx.ui.geometry.Offset topCenter(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset topLeft(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset topRight(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Size truncDiv(float operand);
+    property public float dx;
+    property public float dy;
+    field public static final androidx.ui.geometry.Size.Companion! Companion;
+  }
+
+  public static final class Size.Companion {
+    method public androidx.ui.geometry.Size copy(androidx.ui.geometry.Size source);
+    method public androidx.ui.geometry.Size fromHeight(float height);
+    method public androidx.ui.geometry.Size fromRadius(float radius);
+    method public androidx.ui.geometry.Size fromWidth(float width);
+    method public androidx.ui.geometry.Size getInfinite();
+    method public androidx.ui.geometry.Size getZero();
+    method public androidx.ui.geometry.Size? lerp(androidx.ui.geometry.Size start, androidx.ui.geometry.Size stop, float fraction);
+    method public androidx.ui.geometry.Size square(float dimension);
+    property public final androidx.ui.geometry.Size infinite;
+    property public final androidx.ui.geometry.Size zero;
+  }
+
+}
+
diff --git a/ui/ui-geometry/api/current.txt b/ui/ui-geometry/api/current.txt
new file mode 100644
index 0000000..ea43f9d
--- /dev/null
+++ b/ui/ui-geometry/api/current.txt
@@ -0,0 +1,257 @@
+// Signature format: 3.0
+package androidx.ui.geometry {
+
+  public final class Offset implements androidx.ui.geometry.OffsetBase {
+    ctor public Offset(float dx, float dy);
+    method public infix androidx.ui.geometry.Rect and(androidx.ui.geometry.Size other);
+    method public float component1();
+    method public float component2();
+    method public androidx.ui.geometry.Offset copy(float dx, float dy);
+    method public operator androidx.ui.geometry.Offset div(float operand);
+    method public float getDirection();
+    method public float getDistance();
+    method public float getDistanceSquared();
+    method public float getDx();
+    method public float getDy();
+    method public operator androidx.ui.geometry.Offset minus(androidx.ui.geometry.Offset other);
+    method public operator androidx.ui.geometry.Offset plus(androidx.ui.geometry.Offset other);
+    method public operator androidx.ui.geometry.Offset rem(float operand);
+    method public androidx.ui.geometry.Offset scale(float scaleX, float scaleY);
+    method public operator androidx.ui.geometry.Offset times(float operand);
+    method public androidx.ui.geometry.Offset translate(float translateX, float translateY);
+    method public androidx.ui.geometry.Offset truncDiv(float operand);
+    method public operator androidx.ui.geometry.Offset unaryMinus();
+    field public static final androidx.ui.geometry.Offset.Companion! Companion;
+  }
+
+  public static final class Offset.Companion {
+    method public androidx.ui.geometry.Offset getInfinite();
+    method public androidx.ui.geometry.Offset getZero();
+    method public boolean isValid(androidx.ui.geometry.Offset offset);
+    method public androidx.ui.geometry.Offset lerp(androidx.ui.geometry.Offset start, androidx.ui.geometry.Offset stop, float fraction);
+    property public final androidx.ui.geometry.Offset infinite;
+    property public final androidx.ui.geometry.Offset zero;
+  }
+
+  public interface OffsetBase {
+    method public float getDx();
+    method public float getDy();
+    method public default boolean isFinite();
+    method public default boolean isGreaterOrEqThan(androidx.ui.geometry.OffsetBase other);
+    method public default boolean isGreaterThan(androidx.ui.geometry.OffsetBase other);
+    method public default boolean isInfinite();
+    method public default boolean isLessOrEqThan(androidx.ui.geometry.OffsetBase other);
+    method public default boolean isLessThan(androidx.ui.geometry.OffsetBase other);
+    property public abstract float dx;
+    property public abstract float dy;
+  }
+
+  public final class RRect {
+    ctor public RRect(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
+    method public float component1();
+    method public float component10();
+    method public float component11();
+    method public float component12();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public float component5();
+    method public float component6();
+    method public float component7();
+    method public float component8();
+    method public float component9();
+    method public boolean contains(androidx.ui.geometry.Offset point);
+    method public androidx.ui.geometry.RRect copy(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
+    method @Deprecated public androidx.ui.geometry.RRect deflate(float delta);
+    method public float getBottom();
+    method public float getBottomLeftRadiusX();
+    method public float getBottomLeftRadiusY();
+    method public float getBottomRightRadiusX();
+    method public float getBottomRightRadiusY();
+    method public float getHeight();
+    method public float getLeft();
+    method public float getRight();
+    method public float getTop();
+    method public float getTopLeftRadiusX();
+    method public float getTopLeftRadiusY();
+    method public float getTopRightRadiusX();
+    method public float getTopRightRadiusY();
+    method public float getWidth();
+    method public static androidx.ui.geometry.RRect getZero();
+    method @Deprecated public androidx.ui.geometry.RRect inflate(float delta);
+    property public final float height;
+    property public final float width;
+    field public static final androidx.ui.geometry.RRect.Companion! Companion;
+  }
+
+  public static final class RRect.Companion {
+    method public androidx.ui.geometry.RRect getZero();
+    property public final androidx.ui.geometry.RRect Zero;
+  }
+
+  public final class RRectKt {
+    method public static androidx.ui.geometry.RRect RRect(float left, float top, float right, float bottom, float radiusX, float radiusY);
+    method public static androidx.ui.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.geometry.Radius radius);
+    method public static androidx.ui.geometry.RRect RRect(androidx.ui.geometry.Rect rect, float radiusX, float radiusY);
+    method public static androidx.ui.geometry.RRect RRect(androidx.ui.geometry.Rect rect, androidx.ui.geometry.Radius radius);
+    method public static androidx.ui.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.geometry.Radius topLeft = Radius.zero, androidx.ui.geometry.Radius topRight = Radius.zero, androidx.ui.geometry.Radius bottomRight = Radius.zero, androidx.ui.geometry.Radius bottomLeft = Radius.zero);
+    method public static androidx.ui.geometry.RRect RRect(androidx.ui.geometry.Rect rect, androidx.ui.geometry.Radius topLeft = Radius.zero, androidx.ui.geometry.Radius topRight = Radius.zero, androidx.ui.geometry.Radius bottomRight = Radius.zero, androidx.ui.geometry.Radius bottomLeft = Radius.zero);
+    method public static androidx.ui.geometry.Radius bottomLeftRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Radius bottomRightRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Offset center(androidx.ui.geometry.RRect);
+    method public static float getLongestSide(androidx.ui.geometry.RRect);
+    method public static float getShortestSide(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect grow(androidx.ui.geometry.RRect, float delta);
+    method public static boolean isCircle(androidx.ui.geometry.RRect);
+    method public static boolean isEllipse(androidx.ui.geometry.RRect);
+    method public static boolean isEmpty(androidx.ui.geometry.RRect);
+    method public static boolean isFinite(androidx.ui.geometry.RRect);
+    method public static boolean isRect(androidx.ui.geometry.RRect);
+    method public static boolean isStadium(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect lerp(androidx.ui.geometry.RRect start, androidx.ui.geometry.RRect stop, float fraction);
+    method public static androidx.ui.geometry.Rect middleRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Rect outerRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Rect safeInnerRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect shift(androidx.ui.geometry.RRect, androidx.ui.geometry.Offset offset);
+    method public static androidx.ui.geometry.RRect shrink(androidx.ui.geometry.RRect, float delta);
+    method public static androidx.ui.geometry.Rect tallMiddleRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Radius topLeftRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Radius topRightRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Rect wideMiddleRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect withRadius(androidx.ui.geometry.RRect, androidx.ui.geometry.Radius radius);
+  }
+
+  public final class Radius {
+    ctor public Radius(float x, float y);
+    method public float component1();
+    method public float component2();
+    method public androidx.ui.geometry.Radius copy(float x, float y);
+    method public operator androidx.ui.geometry.Radius div(float operand);
+    method public float getX();
+    method public float getY();
+    method public operator androidx.ui.geometry.Radius minus(androidx.ui.geometry.Radius other);
+    method public operator androidx.ui.geometry.Radius plus(androidx.ui.geometry.Radius other);
+    method public operator androidx.ui.geometry.Radius rem(float operand);
+    method public operator androidx.ui.geometry.Radius times(float operand);
+    method public androidx.ui.geometry.Radius truncDiv(float operand);
+    method public operator androidx.ui.geometry.Radius unaryMinus();
+    field public static final androidx.ui.geometry.Radius.Companion! Companion;
+  }
+
+  public static final class Radius.Companion {
+    method public androidx.ui.geometry.Radius circular(float radius);
+    method public androidx.ui.geometry.Radius elliptical(float x, float y);
+    method public androidx.ui.geometry.Radius getZero();
+    property public final androidx.ui.geometry.Radius zero;
+  }
+
+  public final class RadiusKt {
+    method public static androidx.ui.geometry.Radius lerp(androidx.ui.geometry.Radius start, androidx.ui.geometry.Radius stop, float fraction);
+  }
+
+  public final class Rect {
+    ctor public Rect(float left, float top, float right, float bottom);
+    method public float component1();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public boolean contains(androidx.ui.geometry.Offset offset);
+    method public androidx.ui.geometry.Rect copy(float left, float top, float right, float bottom);
+    method public androidx.ui.geometry.Rect deflate(float delta);
+    method public androidx.ui.geometry.Rect expandToInclude(androidx.ui.geometry.Rect other);
+    method public float getBottom();
+    method public androidx.ui.geometry.Offset getBottomCenter();
+    method public androidx.ui.geometry.Offset getBottomLeft();
+    method public androidx.ui.geometry.Offset getBottomRight();
+    method public androidx.ui.geometry.Offset getCenter();
+    method public androidx.ui.geometry.Offset getCenterLeft();
+    method public androidx.ui.geometry.Offset getCenterRight();
+    method public float getHeight();
+    method public float getLeft();
+    method public float getLongestSide();
+    method public float getRight();
+    method public float getShortestSide();
+    method public androidx.ui.geometry.Size getSize();
+    method public float getTop();
+    method public androidx.ui.geometry.Offset getTopCenter();
+    method public androidx.ui.geometry.Offset getTopLeft();
+    method public androidx.ui.geometry.Offset getTopRight();
+    method public float getWidth();
+    method public androidx.ui.geometry.Rect inflate(float delta);
+    method public androidx.ui.geometry.Rect intersect(androidx.ui.geometry.Rect other);
+    method public boolean isEmpty();
+    method public boolean isFinite();
+    method public boolean isInfinite();
+    method public androidx.ui.geometry.Rect join(androidx.ui.geometry.Rect other);
+    method public boolean overlaps(androidx.ui.geometry.Rect other);
+    method public androidx.ui.geometry.Rect shift(androidx.ui.geometry.Offset offset);
+    method public androidx.ui.geometry.Rect translate(float translateX, float translateY);
+    property public final float height;
+    property public final float width;
+    field public static final androidx.ui.geometry.Rect.Companion! Companion;
+  }
+
+  public static final class Rect.Companion {
+    method public androidx.ui.geometry.Rect fromCircle(androidx.ui.geometry.Offset center, float radius);
+    method public androidx.ui.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
+    method public androidx.ui.geometry.Rect fromLTWH(float left, float top, float width, float height);
+    method public androidx.ui.geometry.Rect fromPoints(androidx.ui.geometry.Offset a, androidx.ui.geometry.Offset b);
+    method public androidx.ui.geometry.Rect getLargest();
+    method public androidx.ui.geometry.Rect getZero();
+    method public float get_giantScalar();
+    property public final float _giantScalar;
+    property public final androidx.ui.geometry.Rect largest;
+    property public final androidx.ui.geometry.Rect zero;
+  }
+
+  public final class RectKt {
+    method public static androidx.ui.geometry.Rect lerp(androidx.ui.geometry.Rect start, androidx.ui.geometry.Rect stop, float fraction);
+  }
+
+  public class Size implements androidx.ui.geometry.OffsetBase {
+    ctor public Size(float width, float height);
+    method public final androidx.ui.geometry.Offset bottomCenter(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset bottomLeft(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset bottomRight(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset center(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset centerLeft(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset centerRight(androidx.ui.geometry.Offset origin);
+    method public final boolean contains(androidx.ui.geometry.Offset offset);
+    method public final operator androidx.ui.geometry.Size div(float operand);
+    method public float getDx();
+    method public float getDy();
+    method public final androidx.ui.geometry.Size getFlipped();
+    method public final float getHeight();
+    method public final float getLongestSide();
+    method public final float getShortestSide();
+    method public final float getWidth();
+    method public final boolean isEmpty();
+    method public final operator androidx.ui.geometry.Size minus(androidx.ui.geometry.Offset other);
+    method public final operator androidx.ui.geometry.Offset minus(androidx.ui.geometry.Size other);
+    method public final operator androidx.ui.geometry.Size plus(androidx.ui.geometry.Offset other);
+    method public final operator androidx.ui.geometry.Size rem(float operand);
+    method public final operator androidx.ui.geometry.Size times(float operand);
+    method public final androidx.ui.geometry.Offset topCenter(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset topLeft(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset topRight(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Size truncDiv(float operand);
+    property public float dx;
+    property public float dy;
+    field public static final androidx.ui.geometry.Size.Companion! Companion;
+  }
+
+  public static final class Size.Companion {
+    method public androidx.ui.geometry.Size copy(androidx.ui.geometry.Size source);
+    method public androidx.ui.geometry.Size fromHeight(float height);
+    method public androidx.ui.geometry.Size fromRadius(float radius);
+    method public androidx.ui.geometry.Size fromWidth(float width);
+    method public androidx.ui.geometry.Size getInfinite();
+    method public androidx.ui.geometry.Size getZero();
+    method public androidx.ui.geometry.Size? lerp(androidx.ui.geometry.Size start, androidx.ui.geometry.Size stop, float fraction);
+    method public androidx.ui.geometry.Size square(float dimension);
+    property public final androidx.ui.geometry.Size infinite;
+    property public final androidx.ui.geometry.Size zero;
+  }
+
+}
+
diff --git a/ui/ui-geometry/api/public_plus_experimental_0.1.0-dev04.txt b/ui/ui-geometry/api/public_plus_experimental_0.1.0-dev04.txt
new file mode 100644
index 0000000..ea43f9d
--- /dev/null
+++ b/ui/ui-geometry/api/public_plus_experimental_0.1.0-dev04.txt
@@ -0,0 +1,257 @@
+// Signature format: 3.0
+package androidx.ui.geometry {
+
+  public final class Offset implements androidx.ui.geometry.OffsetBase {
+    ctor public Offset(float dx, float dy);
+    method public infix androidx.ui.geometry.Rect and(androidx.ui.geometry.Size other);
+    method public float component1();
+    method public float component2();
+    method public androidx.ui.geometry.Offset copy(float dx, float dy);
+    method public operator androidx.ui.geometry.Offset div(float operand);
+    method public float getDirection();
+    method public float getDistance();
+    method public float getDistanceSquared();
+    method public float getDx();
+    method public float getDy();
+    method public operator androidx.ui.geometry.Offset minus(androidx.ui.geometry.Offset other);
+    method public operator androidx.ui.geometry.Offset plus(androidx.ui.geometry.Offset other);
+    method public operator androidx.ui.geometry.Offset rem(float operand);
+    method public androidx.ui.geometry.Offset scale(float scaleX, float scaleY);
+    method public operator androidx.ui.geometry.Offset times(float operand);
+    method public androidx.ui.geometry.Offset translate(float translateX, float translateY);
+    method public androidx.ui.geometry.Offset truncDiv(float operand);
+    method public operator androidx.ui.geometry.Offset unaryMinus();
+    field public static final androidx.ui.geometry.Offset.Companion! Companion;
+  }
+
+  public static final class Offset.Companion {
+    method public androidx.ui.geometry.Offset getInfinite();
+    method public androidx.ui.geometry.Offset getZero();
+    method public boolean isValid(androidx.ui.geometry.Offset offset);
+    method public androidx.ui.geometry.Offset lerp(androidx.ui.geometry.Offset start, androidx.ui.geometry.Offset stop, float fraction);
+    property public final androidx.ui.geometry.Offset infinite;
+    property public final androidx.ui.geometry.Offset zero;
+  }
+
+  public interface OffsetBase {
+    method public float getDx();
+    method public float getDy();
+    method public default boolean isFinite();
+    method public default boolean isGreaterOrEqThan(androidx.ui.geometry.OffsetBase other);
+    method public default boolean isGreaterThan(androidx.ui.geometry.OffsetBase other);
+    method public default boolean isInfinite();
+    method public default boolean isLessOrEqThan(androidx.ui.geometry.OffsetBase other);
+    method public default boolean isLessThan(androidx.ui.geometry.OffsetBase other);
+    property public abstract float dx;
+    property public abstract float dy;
+  }
+
+  public final class RRect {
+    ctor public RRect(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
+    method public float component1();
+    method public float component10();
+    method public float component11();
+    method public float component12();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public float component5();
+    method public float component6();
+    method public float component7();
+    method public float component8();
+    method public float component9();
+    method public boolean contains(androidx.ui.geometry.Offset point);
+    method public androidx.ui.geometry.RRect copy(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
+    method @Deprecated public androidx.ui.geometry.RRect deflate(float delta);
+    method public float getBottom();
+    method public float getBottomLeftRadiusX();
+    method public float getBottomLeftRadiusY();
+    method public float getBottomRightRadiusX();
+    method public float getBottomRightRadiusY();
+    method public float getHeight();
+    method public float getLeft();
+    method public float getRight();
+    method public float getTop();
+    method public float getTopLeftRadiusX();
+    method public float getTopLeftRadiusY();
+    method public float getTopRightRadiusX();
+    method public float getTopRightRadiusY();
+    method public float getWidth();
+    method public static androidx.ui.geometry.RRect getZero();
+    method @Deprecated public androidx.ui.geometry.RRect inflate(float delta);
+    property public final float height;
+    property public final float width;
+    field public static final androidx.ui.geometry.RRect.Companion! Companion;
+  }
+
+  public static final class RRect.Companion {
+    method public androidx.ui.geometry.RRect getZero();
+    property public final androidx.ui.geometry.RRect Zero;
+  }
+
+  public final class RRectKt {
+    method public static androidx.ui.geometry.RRect RRect(float left, float top, float right, float bottom, float radiusX, float radiusY);
+    method public static androidx.ui.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.geometry.Radius radius);
+    method public static androidx.ui.geometry.RRect RRect(androidx.ui.geometry.Rect rect, float radiusX, float radiusY);
+    method public static androidx.ui.geometry.RRect RRect(androidx.ui.geometry.Rect rect, androidx.ui.geometry.Radius radius);
+    method public static androidx.ui.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.geometry.Radius topLeft = Radius.zero, androidx.ui.geometry.Radius topRight = Radius.zero, androidx.ui.geometry.Radius bottomRight = Radius.zero, androidx.ui.geometry.Radius bottomLeft = Radius.zero);
+    method public static androidx.ui.geometry.RRect RRect(androidx.ui.geometry.Rect rect, androidx.ui.geometry.Radius topLeft = Radius.zero, androidx.ui.geometry.Radius topRight = Radius.zero, androidx.ui.geometry.Radius bottomRight = Radius.zero, androidx.ui.geometry.Radius bottomLeft = Radius.zero);
+    method public static androidx.ui.geometry.Radius bottomLeftRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Radius bottomRightRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Offset center(androidx.ui.geometry.RRect);
+    method public static float getLongestSide(androidx.ui.geometry.RRect);
+    method public static float getShortestSide(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect grow(androidx.ui.geometry.RRect, float delta);
+    method public static boolean isCircle(androidx.ui.geometry.RRect);
+    method public static boolean isEllipse(androidx.ui.geometry.RRect);
+    method public static boolean isEmpty(androidx.ui.geometry.RRect);
+    method public static boolean isFinite(androidx.ui.geometry.RRect);
+    method public static boolean isRect(androidx.ui.geometry.RRect);
+    method public static boolean isStadium(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect lerp(androidx.ui.geometry.RRect start, androidx.ui.geometry.RRect stop, float fraction);
+    method public static androidx.ui.geometry.Rect middleRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Rect outerRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Rect safeInnerRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect shift(androidx.ui.geometry.RRect, androidx.ui.geometry.Offset offset);
+    method public static androidx.ui.geometry.RRect shrink(androidx.ui.geometry.RRect, float delta);
+    method public static androidx.ui.geometry.Rect tallMiddleRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Radius topLeftRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Radius topRightRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Rect wideMiddleRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect withRadius(androidx.ui.geometry.RRect, androidx.ui.geometry.Radius radius);
+  }
+
+  public final class Radius {
+    ctor public Radius(float x, float y);
+    method public float component1();
+    method public float component2();
+    method public androidx.ui.geometry.Radius copy(float x, float y);
+    method public operator androidx.ui.geometry.Radius div(float operand);
+    method public float getX();
+    method public float getY();
+    method public operator androidx.ui.geometry.Radius minus(androidx.ui.geometry.Radius other);
+    method public operator androidx.ui.geometry.Radius plus(androidx.ui.geometry.Radius other);
+    method public operator androidx.ui.geometry.Radius rem(float operand);
+    method public operator androidx.ui.geometry.Radius times(float operand);
+    method public androidx.ui.geometry.Radius truncDiv(float operand);
+    method public operator androidx.ui.geometry.Radius unaryMinus();
+    field public static final androidx.ui.geometry.Radius.Companion! Companion;
+  }
+
+  public static final class Radius.Companion {
+    method public androidx.ui.geometry.Radius circular(float radius);
+    method public androidx.ui.geometry.Radius elliptical(float x, float y);
+    method public androidx.ui.geometry.Radius getZero();
+    property public final androidx.ui.geometry.Radius zero;
+  }
+
+  public final class RadiusKt {
+    method public static androidx.ui.geometry.Radius lerp(androidx.ui.geometry.Radius start, androidx.ui.geometry.Radius stop, float fraction);
+  }
+
+  public final class Rect {
+    ctor public Rect(float left, float top, float right, float bottom);
+    method public float component1();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public boolean contains(androidx.ui.geometry.Offset offset);
+    method public androidx.ui.geometry.Rect copy(float left, float top, float right, float bottom);
+    method public androidx.ui.geometry.Rect deflate(float delta);
+    method public androidx.ui.geometry.Rect expandToInclude(androidx.ui.geometry.Rect other);
+    method public float getBottom();
+    method public androidx.ui.geometry.Offset getBottomCenter();
+    method public androidx.ui.geometry.Offset getBottomLeft();
+    method public androidx.ui.geometry.Offset getBottomRight();
+    method public androidx.ui.geometry.Offset getCenter();
+    method public androidx.ui.geometry.Offset getCenterLeft();
+    method public androidx.ui.geometry.Offset getCenterRight();
+    method public float getHeight();
+    method public float getLeft();
+    method public float getLongestSide();
+    method public float getRight();
+    method public float getShortestSide();
+    method public androidx.ui.geometry.Size getSize();
+    method public float getTop();
+    method public androidx.ui.geometry.Offset getTopCenter();
+    method public androidx.ui.geometry.Offset getTopLeft();
+    method public androidx.ui.geometry.Offset getTopRight();
+    method public float getWidth();
+    method public androidx.ui.geometry.Rect inflate(float delta);
+    method public androidx.ui.geometry.Rect intersect(androidx.ui.geometry.Rect other);
+    method public boolean isEmpty();
+    method public boolean isFinite();
+    method public boolean isInfinite();
+    method public androidx.ui.geometry.Rect join(androidx.ui.geometry.Rect other);
+    method public boolean overlaps(androidx.ui.geometry.Rect other);
+    method public androidx.ui.geometry.Rect shift(androidx.ui.geometry.Offset offset);
+    method public androidx.ui.geometry.Rect translate(float translateX, float translateY);
+    property public final float height;
+    property public final float width;
+    field public static final androidx.ui.geometry.Rect.Companion! Companion;
+  }
+
+  public static final class Rect.Companion {
+    method public androidx.ui.geometry.Rect fromCircle(androidx.ui.geometry.Offset center, float radius);
+    method public androidx.ui.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
+    method public androidx.ui.geometry.Rect fromLTWH(float left, float top, float width, float height);
+    method public androidx.ui.geometry.Rect fromPoints(androidx.ui.geometry.Offset a, androidx.ui.geometry.Offset b);
+    method public androidx.ui.geometry.Rect getLargest();
+    method public androidx.ui.geometry.Rect getZero();
+    method public float get_giantScalar();
+    property public final float _giantScalar;
+    property public final androidx.ui.geometry.Rect largest;
+    property public final androidx.ui.geometry.Rect zero;
+  }
+
+  public final class RectKt {
+    method public static androidx.ui.geometry.Rect lerp(androidx.ui.geometry.Rect start, androidx.ui.geometry.Rect stop, float fraction);
+  }
+
+  public class Size implements androidx.ui.geometry.OffsetBase {
+    ctor public Size(float width, float height);
+    method public final androidx.ui.geometry.Offset bottomCenter(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset bottomLeft(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset bottomRight(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset center(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset centerLeft(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset centerRight(androidx.ui.geometry.Offset origin);
+    method public final boolean contains(androidx.ui.geometry.Offset offset);
+    method public final operator androidx.ui.geometry.Size div(float operand);
+    method public float getDx();
+    method public float getDy();
+    method public final androidx.ui.geometry.Size getFlipped();
+    method public final float getHeight();
+    method public final float getLongestSide();
+    method public final float getShortestSide();
+    method public final float getWidth();
+    method public final boolean isEmpty();
+    method public final operator androidx.ui.geometry.Size minus(androidx.ui.geometry.Offset other);
+    method public final operator androidx.ui.geometry.Offset minus(androidx.ui.geometry.Size other);
+    method public final operator androidx.ui.geometry.Size plus(androidx.ui.geometry.Offset other);
+    method public final operator androidx.ui.geometry.Size rem(float operand);
+    method public final operator androidx.ui.geometry.Size times(float operand);
+    method public final androidx.ui.geometry.Offset topCenter(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset topLeft(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset topRight(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Size truncDiv(float operand);
+    property public float dx;
+    property public float dy;
+    field public static final androidx.ui.geometry.Size.Companion! Companion;
+  }
+
+  public static final class Size.Companion {
+    method public androidx.ui.geometry.Size copy(androidx.ui.geometry.Size source);
+    method public androidx.ui.geometry.Size fromHeight(float height);
+    method public androidx.ui.geometry.Size fromRadius(float radius);
+    method public androidx.ui.geometry.Size fromWidth(float width);
+    method public androidx.ui.geometry.Size getInfinite();
+    method public androidx.ui.geometry.Size getZero();
+    method public androidx.ui.geometry.Size? lerp(androidx.ui.geometry.Size start, androidx.ui.geometry.Size stop, float fraction);
+    method public androidx.ui.geometry.Size square(float dimension);
+    property public final androidx.ui.geometry.Size infinite;
+    property public final androidx.ui.geometry.Size zero;
+  }
+
+}
+
diff --git a/ui/ui-geometry/api/public_plus_experimental_current.txt b/ui/ui-geometry/api/public_plus_experimental_current.txt
new file mode 100644
index 0000000..ea43f9d
--- /dev/null
+++ b/ui/ui-geometry/api/public_plus_experimental_current.txt
@@ -0,0 +1,257 @@
+// Signature format: 3.0
+package androidx.ui.geometry {
+
+  public final class Offset implements androidx.ui.geometry.OffsetBase {
+    ctor public Offset(float dx, float dy);
+    method public infix androidx.ui.geometry.Rect and(androidx.ui.geometry.Size other);
+    method public float component1();
+    method public float component2();
+    method public androidx.ui.geometry.Offset copy(float dx, float dy);
+    method public operator androidx.ui.geometry.Offset div(float operand);
+    method public float getDirection();
+    method public float getDistance();
+    method public float getDistanceSquared();
+    method public float getDx();
+    method public float getDy();
+    method public operator androidx.ui.geometry.Offset minus(androidx.ui.geometry.Offset other);
+    method public operator androidx.ui.geometry.Offset plus(androidx.ui.geometry.Offset other);
+    method public operator androidx.ui.geometry.Offset rem(float operand);
+    method public androidx.ui.geometry.Offset scale(float scaleX, float scaleY);
+    method public operator androidx.ui.geometry.Offset times(float operand);
+    method public androidx.ui.geometry.Offset translate(float translateX, float translateY);
+    method public androidx.ui.geometry.Offset truncDiv(float operand);
+    method public operator androidx.ui.geometry.Offset unaryMinus();
+    field public static final androidx.ui.geometry.Offset.Companion! Companion;
+  }
+
+  public static final class Offset.Companion {
+    method public androidx.ui.geometry.Offset getInfinite();
+    method public androidx.ui.geometry.Offset getZero();
+    method public boolean isValid(androidx.ui.geometry.Offset offset);
+    method public androidx.ui.geometry.Offset lerp(androidx.ui.geometry.Offset start, androidx.ui.geometry.Offset stop, float fraction);
+    property public final androidx.ui.geometry.Offset infinite;
+    property public final androidx.ui.geometry.Offset zero;
+  }
+
+  public interface OffsetBase {
+    method public float getDx();
+    method public float getDy();
+    method public default boolean isFinite();
+    method public default boolean isGreaterOrEqThan(androidx.ui.geometry.OffsetBase other);
+    method public default boolean isGreaterThan(androidx.ui.geometry.OffsetBase other);
+    method public default boolean isInfinite();
+    method public default boolean isLessOrEqThan(androidx.ui.geometry.OffsetBase other);
+    method public default boolean isLessThan(androidx.ui.geometry.OffsetBase other);
+    property public abstract float dx;
+    property public abstract float dy;
+  }
+
+  public final class RRect {
+    ctor public RRect(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
+    method public float component1();
+    method public float component10();
+    method public float component11();
+    method public float component12();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public float component5();
+    method public float component6();
+    method public float component7();
+    method public float component8();
+    method public float component9();
+    method public boolean contains(androidx.ui.geometry.Offset point);
+    method public androidx.ui.geometry.RRect copy(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
+    method @Deprecated public androidx.ui.geometry.RRect deflate(float delta);
+    method public float getBottom();
+    method public float getBottomLeftRadiusX();
+    method public float getBottomLeftRadiusY();
+    method public float getBottomRightRadiusX();
+    method public float getBottomRightRadiusY();
+    method public float getHeight();
+    method public float getLeft();
+    method public float getRight();
+    method public float getTop();
+    method public float getTopLeftRadiusX();
+    method public float getTopLeftRadiusY();
+    method public float getTopRightRadiusX();
+    method public float getTopRightRadiusY();
+    method public float getWidth();
+    method public static androidx.ui.geometry.RRect getZero();
+    method @Deprecated public androidx.ui.geometry.RRect inflate(float delta);
+    property public final float height;
+    property public final float width;
+    field public static final androidx.ui.geometry.RRect.Companion! Companion;
+  }
+
+  public static final class RRect.Companion {
+    method public androidx.ui.geometry.RRect getZero();
+    property public final androidx.ui.geometry.RRect Zero;
+  }
+
+  public final class RRectKt {
+    method public static androidx.ui.geometry.RRect RRect(float left, float top, float right, float bottom, float radiusX, float radiusY);
+    method public static androidx.ui.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.geometry.Radius radius);
+    method public static androidx.ui.geometry.RRect RRect(androidx.ui.geometry.Rect rect, float radiusX, float radiusY);
+    method public static androidx.ui.geometry.RRect RRect(androidx.ui.geometry.Rect rect, androidx.ui.geometry.Radius radius);
+    method public static androidx.ui.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.geometry.Radius topLeft = Radius.zero, androidx.ui.geometry.Radius topRight = Radius.zero, androidx.ui.geometry.Radius bottomRight = Radius.zero, androidx.ui.geometry.Radius bottomLeft = Radius.zero);
+    method public static androidx.ui.geometry.RRect RRect(androidx.ui.geometry.Rect rect, androidx.ui.geometry.Radius topLeft = Radius.zero, androidx.ui.geometry.Radius topRight = Radius.zero, androidx.ui.geometry.Radius bottomRight = Radius.zero, androidx.ui.geometry.Radius bottomLeft = Radius.zero);
+    method public static androidx.ui.geometry.Radius bottomLeftRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Radius bottomRightRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Offset center(androidx.ui.geometry.RRect);
+    method public static float getLongestSide(androidx.ui.geometry.RRect);
+    method public static float getShortestSide(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect grow(androidx.ui.geometry.RRect, float delta);
+    method public static boolean isCircle(androidx.ui.geometry.RRect);
+    method public static boolean isEllipse(androidx.ui.geometry.RRect);
+    method public static boolean isEmpty(androidx.ui.geometry.RRect);
+    method public static boolean isFinite(androidx.ui.geometry.RRect);
+    method public static boolean isRect(androidx.ui.geometry.RRect);
+    method public static boolean isStadium(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect lerp(androidx.ui.geometry.RRect start, androidx.ui.geometry.RRect stop, float fraction);
+    method public static androidx.ui.geometry.Rect middleRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Rect outerRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Rect safeInnerRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect shift(androidx.ui.geometry.RRect, androidx.ui.geometry.Offset offset);
+    method public static androidx.ui.geometry.RRect shrink(androidx.ui.geometry.RRect, float delta);
+    method public static androidx.ui.geometry.Rect tallMiddleRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Radius topLeftRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Radius topRightRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Rect wideMiddleRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect withRadius(androidx.ui.geometry.RRect, androidx.ui.geometry.Radius radius);
+  }
+
+  public final class Radius {
+    ctor public Radius(float x, float y);
+    method public float component1();
+    method public float component2();
+    method public androidx.ui.geometry.Radius copy(float x, float y);
+    method public operator androidx.ui.geometry.Radius div(float operand);
+    method public float getX();
+    method public float getY();
+    method public operator androidx.ui.geometry.Radius minus(androidx.ui.geometry.Radius other);
+    method public operator androidx.ui.geometry.Radius plus(androidx.ui.geometry.Radius other);
+    method public operator androidx.ui.geometry.Radius rem(float operand);
+    method public operator androidx.ui.geometry.Radius times(float operand);
+    method public androidx.ui.geometry.Radius truncDiv(float operand);
+    method public operator androidx.ui.geometry.Radius unaryMinus();
+    field public static final androidx.ui.geometry.Radius.Companion! Companion;
+  }
+
+  public static final class Radius.Companion {
+    method public androidx.ui.geometry.Radius circular(float radius);
+    method public androidx.ui.geometry.Radius elliptical(float x, float y);
+    method public androidx.ui.geometry.Radius getZero();
+    property public final androidx.ui.geometry.Radius zero;
+  }
+
+  public final class RadiusKt {
+    method public static androidx.ui.geometry.Radius lerp(androidx.ui.geometry.Radius start, androidx.ui.geometry.Radius stop, float fraction);
+  }
+
+  public final class Rect {
+    ctor public Rect(float left, float top, float right, float bottom);
+    method public float component1();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public boolean contains(androidx.ui.geometry.Offset offset);
+    method public androidx.ui.geometry.Rect copy(float left, float top, float right, float bottom);
+    method public androidx.ui.geometry.Rect deflate(float delta);
+    method public androidx.ui.geometry.Rect expandToInclude(androidx.ui.geometry.Rect other);
+    method public float getBottom();
+    method public androidx.ui.geometry.Offset getBottomCenter();
+    method public androidx.ui.geometry.Offset getBottomLeft();
+    method public androidx.ui.geometry.Offset getBottomRight();
+    method public androidx.ui.geometry.Offset getCenter();
+    method public androidx.ui.geometry.Offset getCenterLeft();
+    method public androidx.ui.geometry.Offset getCenterRight();
+    method public float getHeight();
+    method public float getLeft();
+    method public float getLongestSide();
+    method public float getRight();
+    method public float getShortestSide();
+    method public androidx.ui.geometry.Size getSize();
+    method public float getTop();
+    method public androidx.ui.geometry.Offset getTopCenter();
+    method public androidx.ui.geometry.Offset getTopLeft();
+    method public androidx.ui.geometry.Offset getTopRight();
+    method public float getWidth();
+    method public androidx.ui.geometry.Rect inflate(float delta);
+    method public androidx.ui.geometry.Rect intersect(androidx.ui.geometry.Rect other);
+    method public boolean isEmpty();
+    method public boolean isFinite();
+    method public boolean isInfinite();
+    method public androidx.ui.geometry.Rect join(androidx.ui.geometry.Rect other);
+    method public boolean overlaps(androidx.ui.geometry.Rect other);
+    method public androidx.ui.geometry.Rect shift(androidx.ui.geometry.Offset offset);
+    method public androidx.ui.geometry.Rect translate(float translateX, float translateY);
+    property public final float height;
+    property public final float width;
+    field public static final androidx.ui.geometry.Rect.Companion! Companion;
+  }
+
+  public static final class Rect.Companion {
+    method public androidx.ui.geometry.Rect fromCircle(androidx.ui.geometry.Offset center, float radius);
+    method public androidx.ui.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
+    method public androidx.ui.geometry.Rect fromLTWH(float left, float top, float width, float height);
+    method public androidx.ui.geometry.Rect fromPoints(androidx.ui.geometry.Offset a, androidx.ui.geometry.Offset b);
+    method public androidx.ui.geometry.Rect getLargest();
+    method public androidx.ui.geometry.Rect getZero();
+    method public float get_giantScalar();
+    property public final float _giantScalar;
+    property public final androidx.ui.geometry.Rect largest;
+    property public final androidx.ui.geometry.Rect zero;
+  }
+
+  public final class RectKt {
+    method public static androidx.ui.geometry.Rect lerp(androidx.ui.geometry.Rect start, androidx.ui.geometry.Rect stop, float fraction);
+  }
+
+  public class Size implements androidx.ui.geometry.OffsetBase {
+    ctor public Size(float width, float height);
+    method public final androidx.ui.geometry.Offset bottomCenter(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset bottomLeft(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset bottomRight(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset center(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset centerLeft(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset centerRight(androidx.ui.geometry.Offset origin);
+    method public final boolean contains(androidx.ui.geometry.Offset offset);
+    method public final operator androidx.ui.geometry.Size div(float operand);
+    method public float getDx();
+    method public float getDy();
+    method public final androidx.ui.geometry.Size getFlipped();
+    method public final float getHeight();
+    method public final float getLongestSide();
+    method public final float getShortestSide();
+    method public final float getWidth();
+    method public final boolean isEmpty();
+    method public final operator androidx.ui.geometry.Size minus(androidx.ui.geometry.Offset other);
+    method public final operator androidx.ui.geometry.Offset minus(androidx.ui.geometry.Size other);
+    method public final operator androidx.ui.geometry.Size plus(androidx.ui.geometry.Offset other);
+    method public final operator androidx.ui.geometry.Size rem(float operand);
+    method public final operator androidx.ui.geometry.Size times(float operand);
+    method public final androidx.ui.geometry.Offset topCenter(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset topLeft(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset topRight(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Size truncDiv(float operand);
+    property public float dx;
+    property public float dy;
+    field public static final androidx.ui.geometry.Size.Companion! Companion;
+  }
+
+  public static final class Size.Companion {
+    method public androidx.ui.geometry.Size copy(androidx.ui.geometry.Size source);
+    method public androidx.ui.geometry.Size fromHeight(float height);
+    method public androidx.ui.geometry.Size fromRadius(float radius);
+    method public androidx.ui.geometry.Size fromWidth(float width);
+    method public androidx.ui.geometry.Size getInfinite();
+    method public androidx.ui.geometry.Size getZero();
+    method public androidx.ui.geometry.Size? lerp(androidx.ui.geometry.Size start, androidx.ui.geometry.Size stop, float fraction);
+    method public androidx.ui.geometry.Size square(float dimension);
+    property public final androidx.ui.geometry.Size infinite;
+    property public final androidx.ui.geometry.Size zero;
+  }
+
+}
+
diff --git a/ui/ui-geometry/api/res-0.1.0-dev04.txt b/ui/ui-geometry/api/res-0.1.0-dev04.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ui/ui-geometry/api/res-0.1.0-dev04.txt
diff --git a/ui/ui-geometry/api/restricted_0.1.0-dev04.txt b/ui/ui-geometry/api/restricted_0.1.0-dev04.txt
new file mode 100644
index 0000000..ea43f9d
--- /dev/null
+++ b/ui/ui-geometry/api/restricted_0.1.0-dev04.txt
@@ -0,0 +1,257 @@
+// Signature format: 3.0
+package androidx.ui.geometry {
+
+  public final class Offset implements androidx.ui.geometry.OffsetBase {
+    ctor public Offset(float dx, float dy);
+    method public infix androidx.ui.geometry.Rect and(androidx.ui.geometry.Size other);
+    method public float component1();
+    method public float component2();
+    method public androidx.ui.geometry.Offset copy(float dx, float dy);
+    method public operator androidx.ui.geometry.Offset div(float operand);
+    method public float getDirection();
+    method public float getDistance();
+    method public float getDistanceSquared();
+    method public float getDx();
+    method public float getDy();
+    method public operator androidx.ui.geometry.Offset minus(androidx.ui.geometry.Offset other);
+    method public operator androidx.ui.geometry.Offset plus(androidx.ui.geometry.Offset other);
+    method public operator androidx.ui.geometry.Offset rem(float operand);
+    method public androidx.ui.geometry.Offset scale(float scaleX, float scaleY);
+    method public operator androidx.ui.geometry.Offset times(float operand);
+    method public androidx.ui.geometry.Offset translate(float translateX, float translateY);
+    method public androidx.ui.geometry.Offset truncDiv(float operand);
+    method public operator androidx.ui.geometry.Offset unaryMinus();
+    field public static final androidx.ui.geometry.Offset.Companion! Companion;
+  }
+
+  public static final class Offset.Companion {
+    method public androidx.ui.geometry.Offset getInfinite();
+    method public androidx.ui.geometry.Offset getZero();
+    method public boolean isValid(androidx.ui.geometry.Offset offset);
+    method public androidx.ui.geometry.Offset lerp(androidx.ui.geometry.Offset start, androidx.ui.geometry.Offset stop, float fraction);
+    property public final androidx.ui.geometry.Offset infinite;
+    property public final androidx.ui.geometry.Offset zero;
+  }
+
+  public interface OffsetBase {
+    method public float getDx();
+    method public float getDy();
+    method public default boolean isFinite();
+    method public default boolean isGreaterOrEqThan(androidx.ui.geometry.OffsetBase other);
+    method public default boolean isGreaterThan(androidx.ui.geometry.OffsetBase other);
+    method public default boolean isInfinite();
+    method public default boolean isLessOrEqThan(androidx.ui.geometry.OffsetBase other);
+    method public default boolean isLessThan(androidx.ui.geometry.OffsetBase other);
+    property public abstract float dx;
+    property public abstract float dy;
+  }
+
+  public final class RRect {
+    ctor public RRect(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
+    method public float component1();
+    method public float component10();
+    method public float component11();
+    method public float component12();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public float component5();
+    method public float component6();
+    method public float component7();
+    method public float component8();
+    method public float component9();
+    method public boolean contains(androidx.ui.geometry.Offset point);
+    method public androidx.ui.geometry.RRect copy(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
+    method @Deprecated public androidx.ui.geometry.RRect deflate(float delta);
+    method public float getBottom();
+    method public float getBottomLeftRadiusX();
+    method public float getBottomLeftRadiusY();
+    method public float getBottomRightRadiusX();
+    method public float getBottomRightRadiusY();
+    method public float getHeight();
+    method public float getLeft();
+    method public float getRight();
+    method public float getTop();
+    method public float getTopLeftRadiusX();
+    method public float getTopLeftRadiusY();
+    method public float getTopRightRadiusX();
+    method public float getTopRightRadiusY();
+    method public float getWidth();
+    method public static androidx.ui.geometry.RRect getZero();
+    method @Deprecated public androidx.ui.geometry.RRect inflate(float delta);
+    property public final float height;
+    property public final float width;
+    field public static final androidx.ui.geometry.RRect.Companion! Companion;
+  }
+
+  public static final class RRect.Companion {
+    method public androidx.ui.geometry.RRect getZero();
+    property public final androidx.ui.geometry.RRect Zero;
+  }
+
+  public final class RRectKt {
+    method public static androidx.ui.geometry.RRect RRect(float left, float top, float right, float bottom, float radiusX, float radiusY);
+    method public static androidx.ui.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.geometry.Radius radius);
+    method public static androidx.ui.geometry.RRect RRect(androidx.ui.geometry.Rect rect, float radiusX, float radiusY);
+    method public static androidx.ui.geometry.RRect RRect(androidx.ui.geometry.Rect rect, androidx.ui.geometry.Radius radius);
+    method public static androidx.ui.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.geometry.Radius topLeft = Radius.zero, androidx.ui.geometry.Radius topRight = Radius.zero, androidx.ui.geometry.Radius bottomRight = Radius.zero, androidx.ui.geometry.Radius bottomLeft = Radius.zero);
+    method public static androidx.ui.geometry.RRect RRect(androidx.ui.geometry.Rect rect, androidx.ui.geometry.Radius topLeft = Radius.zero, androidx.ui.geometry.Radius topRight = Radius.zero, androidx.ui.geometry.Radius bottomRight = Radius.zero, androidx.ui.geometry.Radius bottomLeft = Radius.zero);
+    method public static androidx.ui.geometry.Radius bottomLeftRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Radius bottomRightRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Offset center(androidx.ui.geometry.RRect);
+    method public static float getLongestSide(androidx.ui.geometry.RRect);
+    method public static float getShortestSide(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect grow(androidx.ui.geometry.RRect, float delta);
+    method public static boolean isCircle(androidx.ui.geometry.RRect);
+    method public static boolean isEllipse(androidx.ui.geometry.RRect);
+    method public static boolean isEmpty(androidx.ui.geometry.RRect);
+    method public static boolean isFinite(androidx.ui.geometry.RRect);
+    method public static boolean isRect(androidx.ui.geometry.RRect);
+    method public static boolean isStadium(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect lerp(androidx.ui.geometry.RRect start, androidx.ui.geometry.RRect stop, float fraction);
+    method public static androidx.ui.geometry.Rect middleRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Rect outerRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Rect safeInnerRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect shift(androidx.ui.geometry.RRect, androidx.ui.geometry.Offset offset);
+    method public static androidx.ui.geometry.RRect shrink(androidx.ui.geometry.RRect, float delta);
+    method public static androidx.ui.geometry.Rect tallMiddleRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Radius topLeftRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Radius topRightRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Rect wideMiddleRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect withRadius(androidx.ui.geometry.RRect, androidx.ui.geometry.Radius radius);
+  }
+
+  public final class Radius {
+    ctor public Radius(float x, float y);
+    method public float component1();
+    method public float component2();
+    method public androidx.ui.geometry.Radius copy(float x, float y);
+    method public operator androidx.ui.geometry.Radius div(float operand);
+    method public float getX();
+    method public float getY();
+    method public operator androidx.ui.geometry.Radius minus(androidx.ui.geometry.Radius other);
+    method public operator androidx.ui.geometry.Radius plus(androidx.ui.geometry.Radius other);
+    method public operator androidx.ui.geometry.Radius rem(float operand);
+    method public operator androidx.ui.geometry.Radius times(float operand);
+    method public androidx.ui.geometry.Radius truncDiv(float operand);
+    method public operator androidx.ui.geometry.Radius unaryMinus();
+    field public static final androidx.ui.geometry.Radius.Companion! Companion;
+  }
+
+  public static final class Radius.Companion {
+    method public androidx.ui.geometry.Radius circular(float radius);
+    method public androidx.ui.geometry.Radius elliptical(float x, float y);
+    method public androidx.ui.geometry.Radius getZero();
+    property public final androidx.ui.geometry.Radius zero;
+  }
+
+  public final class RadiusKt {
+    method public static androidx.ui.geometry.Radius lerp(androidx.ui.geometry.Radius start, androidx.ui.geometry.Radius stop, float fraction);
+  }
+
+  public final class Rect {
+    ctor public Rect(float left, float top, float right, float bottom);
+    method public float component1();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public boolean contains(androidx.ui.geometry.Offset offset);
+    method public androidx.ui.geometry.Rect copy(float left, float top, float right, float bottom);
+    method public androidx.ui.geometry.Rect deflate(float delta);
+    method public androidx.ui.geometry.Rect expandToInclude(androidx.ui.geometry.Rect other);
+    method public float getBottom();
+    method public androidx.ui.geometry.Offset getBottomCenter();
+    method public androidx.ui.geometry.Offset getBottomLeft();
+    method public androidx.ui.geometry.Offset getBottomRight();
+    method public androidx.ui.geometry.Offset getCenter();
+    method public androidx.ui.geometry.Offset getCenterLeft();
+    method public androidx.ui.geometry.Offset getCenterRight();
+    method public float getHeight();
+    method public float getLeft();
+    method public float getLongestSide();
+    method public float getRight();
+    method public float getShortestSide();
+    method public androidx.ui.geometry.Size getSize();
+    method public float getTop();
+    method public androidx.ui.geometry.Offset getTopCenter();
+    method public androidx.ui.geometry.Offset getTopLeft();
+    method public androidx.ui.geometry.Offset getTopRight();
+    method public float getWidth();
+    method public androidx.ui.geometry.Rect inflate(float delta);
+    method public androidx.ui.geometry.Rect intersect(androidx.ui.geometry.Rect other);
+    method public boolean isEmpty();
+    method public boolean isFinite();
+    method public boolean isInfinite();
+    method public androidx.ui.geometry.Rect join(androidx.ui.geometry.Rect other);
+    method public boolean overlaps(androidx.ui.geometry.Rect other);
+    method public androidx.ui.geometry.Rect shift(androidx.ui.geometry.Offset offset);
+    method public androidx.ui.geometry.Rect translate(float translateX, float translateY);
+    property public final float height;
+    property public final float width;
+    field public static final androidx.ui.geometry.Rect.Companion! Companion;
+  }
+
+  public static final class Rect.Companion {
+    method public androidx.ui.geometry.Rect fromCircle(androidx.ui.geometry.Offset center, float radius);
+    method public androidx.ui.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
+    method public androidx.ui.geometry.Rect fromLTWH(float left, float top, float width, float height);
+    method public androidx.ui.geometry.Rect fromPoints(androidx.ui.geometry.Offset a, androidx.ui.geometry.Offset b);
+    method public androidx.ui.geometry.Rect getLargest();
+    method public androidx.ui.geometry.Rect getZero();
+    method public float get_giantScalar();
+    property public final float _giantScalar;
+    property public final androidx.ui.geometry.Rect largest;
+    property public final androidx.ui.geometry.Rect zero;
+  }
+
+  public final class RectKt {
+    method public static androidx.ui.geometry.Rect lerp(androidx.ui.geometry.Rect start, androidx.ui.geometry.Rect stop, float fraction);
+  }
+
+  public class Size implements androidx.ui.geometry.OffsetBase {
+    ctor public Size(float width, float height);
+    method public final androidx.ui.geometry.Offset bottomCenter(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset bottomLeft(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset bottomRight(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset center(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset centerLeft(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset centerRight(androidx.ui.geometry.Offset origin);
+    method public final boolean contains(androidx.ui.geometry.Offset offset);
+    method public final operator androidx.ui.geometry.Size div(float operand);
+    method public float getDx();
+    method public float getDy();
+    method public final androidx.ui.geometry.Size getFlipped();
+    method public final float getHeight();
+    method public final float getLongestSide();
+    method public final float getShortestSide();
+    method public final float getWidth();
+    method public final boolean isEmpty();
+    method public final operator androidx.ui.geometry.Size minus(androidx.ui.geometry.Offset other);
+    method public final operator androidx.ui.geometry.Offset minus(androidx.ui.geometry.Size other);
+    method public final operator androidx.ui.geometry.Size plus(androidx.ui.geometry.Offset other);
+    method public final operator androidx.ui.geometry.Size rem(float operand);
+    method public final operator androidx.ui.geometry.Size times(float operand);
+    method public final androidx.ui.geometry.Offset topCenter(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset topLeft(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset topRight(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Size truncDiv(float operand);
+    property public float dx;
+    property public float dy;
+    field public static final androidx.ui.geometry.Size.Companion! Companion;
+  }
+
+  public static final class Size.Companion {
+    method public androidx.ui.geometry.Size copy(androidx.ui.geometry.Size source);
+    method public androidx.ui.geometry.Size fromHeight(float height);
+    method public androidx.ui.geometry.Size fromRadius(float radius);
+    method public androidx.ui.geometry.Size fromWidth(float width);
+    method public androidx.ui.geometry.Size getInfinite();
+    method public androidx.ui.geometry.Size getZero();
+    method public androidx.ui.geometry.Size? lerp(androidx.ui.geometry.Size start, androidx.ui.geometry.Size stop, float fraction);
+    method public androidx.ui.geometry.Size square(float dimension);
+    property public final androidx.ui.geometry.Size infinite;
+    property public final androidx.ui.geometry.Size zero;
+  }
+
+}
+
diff --git a/ui/ui-geometry/api/restricted_current.txt b/ui/ui-geometry/api/restricted_current.txt
new file mode 100644
index 0000000..ea43f9d
--- /dev/null
+++ b/ui/ui-geometry/api/restricted_current.txt
@@ -0,0 +1,257 @@
+// Signature format: 3.0
+package androidx.ui.geometry {
+
+  public final class Offset implements androidx.ui.geometry.OffsetBase {
+    ctor public Offset(float dx, float dy);
+    method public infix androidx.ui.geometry.Rect and(androidx.ui.geometry.Size other);
+    method public float component1();
+    method public float component2();
+    method public androidx.ui.geometry.Offset copy(float dx, float dy);
+    method public operator androidx.ui.geometry.Offset div(float operand);
+    method public float getDirection();
+    method public float getDistance();
+    method public float getDistanceSquared();
+    method public float getDx();
+    method public float getDy();
+    method public operator androidx.ui.geometry.Offset minus(androidx.ui.geometry.Offset other);
+    method public operator androidx.ui.geometry.Offset plus(androidx.ui.geometry.Offset other);
+    method public operator androidx.ui.geometry.Offset rem(float operand);
+    method public androidx.ui.geometry.Offset scale(float scaleX, float scaleY);
+    method public operator androidx.ui.geometry.Offset times(float operand);
+    method public androidx.ui.geometry.Offset translate(float translateX, float translateY);
+    method public androidx.ui.geometry.Offset truncDiv(float operand);
+    method public operator androidx.ui.geometry.Offset unaryMinus();
+    field public static final androidx.ui.geometry.Offset.Companion! Companion;
+  }
+
+  public static final class Offset.Companion {
+    method public androidx.ui.geometry.Offset getInfinite();
+    method public androidx.ui.geometry.Offset getZero();
+    method public boolean isValid(androidx.ui.geometry.Offset offset);
+    method public androidx.ui.geometry.Offset lerp(androidx.ui.geometry.Offset start, androidx.ui.geometry.Offset stop, float fraction);
+    property public final androidx.ui.geometry.Offset infinite;
+    property public final androidx.ui.geometry.Offset zero;
+  }
+
+  public interface OffsetBase {
+    method public float getDx();
+    method public float getDy();
+    method public default boolean isFinite();
+    method public default boolean isGreaterOrEqThan(androidx.ui.geometry.OffsetBase other);
+    method public default boolean isGreaterThan(androidx.ui.geometry.OffsetBase other);
+    method public default boolean isInfinite();
+    method public default boolean isLessOrEqThan(androidx.ui.geometry.OffsetBase other);
+    method public default boolean isLessThan(androidx.ui.geometry.OffsetBase other);
+    property public abstract float dx;
+    property public abstract float dy;
+  }
+
+  public final class RRect {
+    ctor public RRect(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
+    method public float component1();
+    method public float component10();
+    method public float component11();
+    method public float component12();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public float component5();
+    method public float component6();
+    method public float component7();
+    method public float component8();
+    method public float component9();
+    method public boolean contains(androidx.ui.geometry.Offset point);
+    method public androidx.ui.geometry.RRect copy(float left, float top, float right, float bottom, float topLeftRadiusX, float topLeftRadiusY, float topRightRadiusX, float topRightRadiusY, float bottomRightRadiusX, float bottomRightRadiusY, float bottomLeftRadiusX, float bottomLeftRadiusY);
+    method @Deprecated public androidx.ui.geometry.RRect deflate(float delta);
+    method public float getBottom();
+    method public float getBottomLeftRadiusX();
+    method public float getBottomLeftRadiusY();
+    method public float getBottomRightRadiusX();
+    method public float getBottomRightRadiusY();
+    method public float getHeight();
+    method public float getLeft();
+    method public float getRight();
+    method public float getTop();
+    method public float getTopLeftRadiusX();
+    method public float getTopLeftRadiusY();
+    method public float getTopRightRadiusX();
+    method public float getTopRightRadiusY();
+    method public float getWidth();
+    method public static androidx.ui.geometry.RRect getZero();
+    method @Deprecated public androidx.ui.geometry.RRect inflate(float delta);
+    property public final float height;
+    property public final float width;
+    field public static final androidx.ui.geometry.RRect.Companion! Companion;
+  }
+
+  public static final class RRect.Companion {
+    method public androidx.ui.geometry.RRect getZero();
+    property public final androidx.ui.geometry.RRect Zero;
+  }
+
+  public final class RRectKt {
+    method public static androidx.ui.geometry.RRect RRect(float left, float top, float right, float bottom, float radiusX, float radiusY);
+    method public static androidx.ui.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.geometry.Radius radius);
+    method public static androidx.ui.geometry.RRect RRect(androidx.ui.geometry.Rect rect, float radiusX, float radiusY);
+    method public static androidx.ui.geometry.RRect RRect(androidx.ui.geometry.Rect rect, androidx.ui.geometry.Radius radius);
+    method public static androidx.ui.geometry.RRect RRect(float left, float top, float right, float bottom, androidx.ui.geometry.Radius topLeft = Radius.zero, androidx.ui.geometry.Radius topRight = Radius.zero, androidx.ui.geometry.Radius bottomRight = Radius.zero, androidx.ui.geometry.Radius bottomLeft = Radius.zero);
+    method public static androidx.ui.geometry.RRect RRect(androidx.ui.geometry.Rect rect, androidx.ui.geometry.Radius topLeft = Radius.zero, androidx.ui.geometry.Radius topRight = Radius.zero, androidx.ui.geometry.Radius bottomRight = Radius.zero, androidx.ui.geometry.Radius bottomLeft = Radius.zero);
+    method public static androidx.ui.geometry.Radius bottomLeftRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Radius bottomRightRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Offset center(androidx.ui.geometry.RRect);
+    method public static float getLongestSide(androidx.ui.geometry.RRect);
+    method public static float getShortestSide(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect grow(androidx.ui.geometry.RRect, float delta);
+    method public static boolean isCircle(androidx.ui.geometry.RRect);
+    method public static boolean isEllipse(androidx.ui.geometry.RRect);
+    method public static boolean isEmpty(androidx.ui.geometry.RRect);
+    method public static boolean isFinite(androidx.ui.geometry.RRect);
+    method public static boolean isRect(androidx.ui.geometry.RRect);
+    method public static boolean isStadium(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect lerp(androidx.ui.geometry.RRect start, androidx.ui.geometry.RRect stop, float fraction);
+    method public static androidx.ui.geometry.Rect middleRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Rect outerRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Rect safeInnerRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect shift(androidx.ui.geometry.RRect, androidx.ui.geometry.Offset offset);
+    method public static androidx.ui.geometry.RRect shrink(androidx.ui.geometry.RRect, float delta);
+    method public static androidx.ui.geometry.Rect tallMiddleRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Radius topLeftRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Radius topRightRadius(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.Rect wideMiddleRect(androidx.ui.geometry.RRect);
+    method public static androidx.ui.geometry.RRect withRadius(androidx.ui.geometry.RRect, androidx.ui.geometry.Radius radius);
+  }
+
+  public final class Radius {
+    ctor public Radius(float x, float y);
+    method public float component1();
+    method public float component2();
+    method public androidx.ui.geometry.Radius copy(float x, float y);
+    method public operator androidx.ui.geometry.Radius div(float operand);
+    method public float getX();
+    method public float getY();
+    method public operator androidx.ui.geometry.Radius minus(androidx.ui.geometry.Radius other);
+    method public operator androidx.ui.geometry.Radius plus(androidx.ui.geometry.Radius other);
+    method public operator androidx.ui.geometry.Radius rem(float operand);
+    method public operator androidx.ui.geometry.Radius times(float operand);
+    method public androidx.ui.geometry.Radius truncDiv(float operand);
+    method public operator androidx.ui.geometry.Radius unaryMinus();
+    field public static final androidx.ui.geometry.Radius.Companion! Companion;
+  }
+
+  public static final class Radius.Companion {
+    method public androidx.ui.geometry.Radius circular(float radius);
+    method public androidx.ui.geometry.Radius elliptical(float x, float y);
+    method public androidx.ui.geometry.Radius getZero();
+    property public final androidx.ui.geometry.Radius zero;
+  }
+
+  public final class RadiusKt {
+    method public static androidx.ui.geometry.Radius lerp(androidx.ui.geometry.Radius start, androidx.ui.geometry.Radius stop, float fraction);
+  }
+
+  public final class Rect {
+    ctor public Rect(float left, float top, float right, float bottom);
+    method public float component1();
+    method public float component2();
+    method public float component3();
+    method public float component4();
+    method public boolean contains(androidx.ui.geometry.Offset offset);
+    method public androidx.ui.geometry.Rect copy(float left, float top, float right, float bottom);
+    method public androidx.ui.geometry.Rect deflate(float delta);
+    method public androidx.ui.geometry.Rect expandToInclude(androidx.ui.geometry.Rect other);
+    method public float getBottom();
+    method public androidx.ui.geometry.Offset getBottomCenter();
+    method public androidx.ui.geometry.Offset getBottomLeft();
+    method public androidx.ui.geometry.Offset getBottomRight();
+    method public androidx.ui.geometry.Offset getCenter();
+    method public androidx.ui.geometry.Offset getCenterLeft();
+    method public androidx.ui.geometry.Offset getCenterRight();
+    method public float getHeight();
+    method public float getLeft();
+    method public float getLongestSide();
+    method public float getRight();
+    method public float getShortestSide();
+    method public androidx.ui.geometry.Size getSize();
+    method public float getTop();
+    method public androidx.ui.geometry.Offset getTopCenter();
+    method public androidx.ui.geometry.Offset getTopLeft();
+    method public androidx.ui.geometry.Offset getTopRight();
+    method public float getWidth();
+    method public androidx.ui.geometry.Rect inflate(float delta);
+    method public androidx.ui.geometry.Rect intersect(androidx.ui.geometry.Rect other);
+    method public boolean isEmpty();
+    method public boolean isFinite();
+    method public boolean isInfinite();
+    method public androidx.ui.geometry.Rect join(androidx.ui.geometry.Rect other);
+    method public boolean overlaps(androidx.ui.geometry.Rect other);
+    method public androidx.ui.geometry.Rect shift(androidx.ui.geometry.Offset offset);
+    method public androidx.ui.geometry.Rect translate(float translateX, float translateY);
+    property public final float height;
+    property public final float width;
+    field public static final androidx.ui.geometry.Rect.Companion! Companion;
+  }
+
+  public static final class Rect.Companion {
+    method public androidx.ui.geometry.Rect fromCircle(androidx.ui.geometry.Offset center, float radius);
+    method public androidx.ui.geometry.Rect fromLTRB(float left, float top, float right, float bottom);
+    method public androidx.ui.geometry.Rect fromLTWH(float left, float top, float width, float height);
+    method public androidx.ui.geometry.Rect fromPoints(androidx.ui.geometry.Offset a, androidx.ui.geometry.Offset b);
+    method public androidx.ui.geometry.Rect getLargest();
+    method public androidx.ui.geometry.Rect getZero();
+    method public float get_giantScalar();
+    property public final float _giantScalar;
+    property public final androidx.ui.geometry.Rect largest;
+    property public final androidx.ui.geometry.Rect zero;
+  }
+
+  public final class RectKt {
+    method public static androidx.ui.geometry.Rect lerp(androidx.ui.geometry.Rect start, androidx.ui.geometry.Rect stop, float fraction);
+  }
+
+  public class Size implements androidx.ui.geometry.OffsetBase {
+    ctor public Size(float width, float height);
+    method public final androidx.ui.geometry.Offset bottomCenter(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset bottomLeft(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset bottomRight(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset center(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset centerLeft(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset centerRight(androidx.ui.geometry.Offset origin);
+    method public final boolean contains(androidx.ui.geometry.Offset offset);
+    method public final operator androidx.ui.geometry.Size div(float operand);
+    method public float getDx();
+    method public float getDy();
+    method public final androidx.ui.geometry.Size getFlipped();
+    method public final float getHeight();
+    method public final float getLongestSide();
+    method public final float getShortestSide();
+    method public final float getWidth();
+    method public final boolean isEmpty();
+    method public final operator androidx.ui.geometry.Size minus(androidx.ui.geometry.Offset other);
+    method public final operator androidx.ui.geometry.Offset minus(androidx.ui.geometry.Size other);
+    method public final operator androidx.ui.geometry.Size plus(androidx.ui.geometry.Offset other);
+    method public final operator androidx.ui.geometry.Size rem(float operand);
+    method public final operator androidx.ui.geometry.Size times(float operand);
+    method public final androidx.ui.geometry.Offset topCenter(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset topLeft(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Offset topRight(androidx.ui.geometry.Offset origin);
+    method public final androidx.ui.geometry.Size truncDiv(float operand);
+    property public float dx;
+    property public float dy;
+    field public static final androidx.ui.geometry.Size.Companion! Companion;
+  }
+
+  public static final class Size.Companion {
+    method public androidx.ui.geometry.Size copy(androidx.ui.geometry.Size source);
+    method public androidx.ui.geometry.Size fromHeight(float height);
+    method public androidx.ui.geometry.Size fromRadius(float radius);
+    method public androidx.ui.geometry.Size fromWidth(float width);
+    method public androidx.ui.geometry.Size getInfinite();
+    method public androidx.ui.geometry.Size getZero();
+    method public androidx.ui.geometry.Size? lerp(androidx.ui.geometry.Size start, androidx.ui.geometry.Size stop, float fraction);
+    method public androidx.ui.geometry.Size square(float dimension);
+    property public final androidx.ui.geometry.Size infinite;
+    property public final androidx.ui.geometry.Size zero;
+  }
+
+}
+
diff --git a/ui/ui-geometry/build.gradle b/ui/ui-geometry/build.gradle
new file mode 100644
index 0000000..b6e818e
--- /dev/null
+++ b/ui/ui-geometry/build.gradle
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import androidx.build.LibraryGroups
+import androidx.build.LibraryVersions
+import androidx.build.Publish
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+
+import static androidx.build.dependencies.DependenciesKt.*
+
+plugins {
+    id("AndroidXPlugin")
+    id("com.android.library")
+    id("AndroidXUiPlugin")
+    id("org.jetbrains.kotlin.android")
+}
+
+dependencies {
+    implementation(KOTLIN_STDLIB)
+
+    api "androidx.annotation:annotation:1.1.0"
+    implementation project(":ui:ui-util")
+
+    implementation project(":compose:compose-runtime")
+
+    testImplementation(ANDROIDX_TEST_RULES)
+    testImplementation(ANDROIDX_TEST_RUNNER)
+    testImplementation(JUNIT)
+    testImplementation(TRUTH)
+
+    androidTestImplementation(ANDROIDX_TEST_RULES)
+    androidTestImplementation(ANDROIDX_TEST_RUNNER)
+    androidTestImplementation(ESPRESSO_CORE)
+    androidTestImplementation(JUNIT)
+}
+
+androidx {
+    name = "AndroidX UI Geometry"
+    publish = Publish.SNAPSHOT_AND_RELEASE
+    mavenVersion = LibraryVersions.UI
+    mavenGroup = LibraryGroups.UI
+    inceptionYear = "2020"
+    description = "AndroidX UI classes related to dimensions without units."
+}
+
+tasks.withType(KotlinCompile).configureEach {
+    kotlinOptions {
+        freeCompilerArgs += ["-Xuse-experimental=kotlin.Experimental", "-XXLanguage:+InlineClasses"]
+        useIR = true
+    }
+}
+
diff --git a/ui/ui-geometry/src/main/AndroidManifest.xml b/ui/ui-geometry/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..0f74d3e
--- /dev/null
+++ b/ui/ui-geometry/src/main/AndroidManifest.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2020 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<manifest package="androidx.ui.geometry" />
diff --git a/ui/ui-core/src/main/java/androidx/ui/engine/geometry/Offset.kt b/ui/ui-geometry/src/main/java/androidx/ui/geometry/Offset.kt
similarity index 96%
rename from ui/ui-core/src/main/java/androidx/ui/engine/geometry/Offset.kt
rename to ui/ui-geometry/src/main/java/androidx/ui/geometry/Offset.kt
index 113fc20..ae04d349 100644
--- a/ui/ui-core/src/main/java/androidx/ui/engine/geometry/Offset.kt
+++ b/ui/ui-geometry/src/main/java/androidx/ui/geometry/Offset.kt
@@ -14,12 +14,10 @@
  * limitations under the License.
  */
 
-package androidx.ui.engine.geometry
+package androidx.ui.geometry
 
-import androidx.ui.core.PxPosition
-import androidx.ui.core.px
-import androidx.ui.lerp
-import androidx.ui.toStringAsFixed
+import androidx.ui.util.lerp
+import androidx.ui.util.toStringAsFixed
 import kotlin.math.atan2
 import kotlin.math.sqrt
 import kotlin.math.truncate
@@ -87,7 +85,10 @@
          * an `AnimationController`.
          */
         fun lerp(start: Offset, stop: Offset, fraction: Float): Offset {
-            return Offset(lerp(start.dx, stop.dx, fraction), lerp(start.dy, stop.dy, fraction))
+            return Offset(
+                lerp(start.dx, stop.dx, fraction),
+                lerp(start.dy, stop.dy, fraction)
+            )
         }
 
         fun isValid(offset: Offset): Boolean {
@@ -293,6 +294,4 @@
         result = 31 * result + dy.hashCode()
         return result
     }
-}
-
-fun Offset.toPxPosition() = PxPosition(dx.px, dy.px)
+}
\ No newline at end of file
diff --git a/ui/ui-core/src/main/java/androidx/ui/engine/geometry/OffsetBase.kt b/ui/ui-geometry/src/main/java/androidx/ui/geometry/OffsetBase.kt
similarity index 98%
rename from ui/ui-core/src/main/java/androidx/ui/engine/geometry/OffsetBase.kt
rename to ui/ui-geometry/src/main/java/androidx/ui/geometry/OffsetBase.kt
index 173f694..ef4cab8 100644
--- a/ui/ui-core/src/main/java/androidx/ui/engine/geometry/OffsetBase.kt
+++ b/ui/ui-geometry/src/main/java/androidx/ui/geometry/OffsetBase.kt
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.ui.engine.geometry
+package androidx.ui.geometry
 
 /**
  * Base class for [Size] and [Offset], which are both ways to describe
diff --git a/ui/ui-core/src/main/java/androidx/ui/engine/geometry/RRect.kt b/ui/ui-geometry/src/main/java/androidx/ui/geometry/RRect.kt
similarity index 93%
rename from ui/ui-core/src/main/java/androidx/ui/engine/geometry/RRect.kt
rename to ui/ui-geometry/src/main/java/androidx/ui/geometry/RRect.kt
index 9cf6a80..e2a0142 100644
--- a/ui/ui-core/src/main/java/androidx/ui/engine/geometry/RRect.kt
+++ b/ui/ui-geometry/src/main/java/androidx/ui/geometry/RRect.kt
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package androidx.ui.engine.geometry
+package androidx.ui.geometry
 
-import androidx.ui.lerp
-import androidx.ui.toStringAsFixed
+import androidx.ui.util.lerp
+import androidx.ui.util.toStringAsFixed
 import kotlin.math.absoluteValue
 
 /**
@@ -172,7 +172,7 @@
     // the function's old name/location
     @Deprecated(
         "renamed to avoid conceptual naming collision with android inflate",
-        replaceWith = ReplaceWith("grow(delta)", "androidx.ui.engine.geometry.grow"),
+        replaceWith = ReplaceWith("grow(delta)", "androidx.ui.geometry.grow"),
         level = DeprecationLevel.ERROR
     )
     fun inflate(delta: Float): RRect = grow(delta)
@@ -181,7 +181,7 @@
     // the function's old name/location
     @Deprecated(
         "renamed to avoid conceptual naming collision with android inflate",
-        replaceWith = ReplaceWith("shrink(delta)", "androidx.ui.engine.geometry.shrink"),
+        replaceWith = ReplaceWith("shrink(delta)", "androidx.ui.geometry.shrink"),
         level = DeprecationLevel.ERROR
     )
     fun deflate(delta: Float): RRect = shrink(delta)
@@ -562,12 +562,44 @@
         top = lerp(start.top, stop.top, fraction),
         right = lerp(start.right, stop.right, fraction),
         bottom = lerp(start.bottom, stop.bottom, fraction),
-        topLeftRadiusX = lerp(start.topLeftRadiusX, stop.topLeftRadiusX, fraction),
-        topLeftRadiusY = lerp(start.topLeftRadiusY, stop.topLeftRadiusY, fraction),
-        topRightRadiusX = lerp(start.topRightRadiusX, stop.topRightRadiusX, fraction),
-        topRightRadiusY = lerp(start.topRightRadiusY, stop.topRightRadiusY, fraction),
-        bottomRightRadiusX = lerp(start.bottomRightRadiusX, stop.bottomRightRadiusX, fraction),
-        bottomRightRadiusY = lerp(start.bottomRightRadiusY, stop.bottomRightRadiusY, fraction),
-        bottomLeftRadiusX = lerp(start.bottomLeftRadiusX, stop.bottomLeftRadiusX, fraction),
-        bottomLeftRadiusY = lerp(start.bottomLeftRadiusY, stop.bottomLeftRadiusY, fraction)
+        topLeftRadiusX = lerp(
+            start.topLeftRadiusX,
+            stop.topLeftRadiusX,
+            fraction
+        ),
+        topLeftRadiusY = lerp(
+            start.topLeftRadiusY,
+            stop.topLeftRadiusY,
+            fraction
+        ),
+        topRightRadiusX = lerp(
+            start.topRightRadiusX,
+            stop.topRightRadiusX,
+            fraction
+        ),
+        topRightRadiusY = lerp(
+            start.topRightRadiusY,
+            stop.topRightRadiusY,
+            fraction
+        ),
+        bottomRightRadiusX = lerp(
+            start.bottomRightRadiusX,
+            stop.bottomRightRadiusX,
+            fraction
+        ),
+        bottomRightRadiusY = lerp(
+            start.bottomRightRadiusY,
+            stop.bottomRightRadiusY,
+            fraction
+        ),
+        bottomLeftRadiusX = lerp(
+            start.bottomLeftRadiusX,
+            stop.bottomLeftRadiusX,
+            fraction
+        ),
+        bottomLeftRadiusY = lerp(
+            start.bottomLeftRadiusY,
+            stop.bottomLeftRadiusY,
+            fraction
+        )
     )
diff --git a/ui/ui-core/src/main/java/androidx/ui/engine/geometry/Radius.kt b/ui/ui-geometry/src/main/java/androidx/ui/geometry/Radius.kt
similarity index 95%
rename from ui/ui-core/src/main/java/androidx/ui/engine/geometry/Radius.kt
rename to ui/ui-geometry/src/main/java/androidx/ui/geometry/Radius.kt
index 8be15c8..273b101 100644
--- a/ui/ui-core/src/main/java/androidx/ui/engine/geometry/Radius.kt
+++ b/ui/ui-geometry/src/main/java/androidx/ui/geometry/Radius.kt
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package androidx.ui.engine.geometry
+package androidx.ui.geometry
 
-import androidx.ui.lerp
-import androidx.ui.toStringAsFixed
+import androidx.ui.util.lerp
+import androidx.ui.util.toStringAsFixed
 import kotlin.math.truncate
 
 /** A radius for either circular or elliptical shapes. */
@@ -153,5 +153,8 @@
  * an `AnimationController`.
  */
 fun lerp(start: Radius, stop: Radius, fraction: Float): Radius {
-    return Radius.elliptical(lerp(start.x, stop.x, fraction), lerp(start.y, stop.y, fraction))
+    return Radius.elliptical(
+        lerp(start.x, stop.x, fraction),
+        lerp(start.y, stop.y, fraction)
+    )
 }
diff --git a/ui/ui-core/src/main/java/androidx/ui/engine/geometry/Rect.kt b/ui/ui-geometry/src/main/java/androidx/ui/geometry/Rect.kt
similarity index 98%
rename from ui/ui-core/src/main/java/androidx/ui/engine/geometry/Rect.kt
rename to ui/ui-geometry/src/main/java/androidx/ui/geometry/Rect.kt
index 9f9f2fa..71b77e2 100644
--- a/ui/ui-core/src/main/java/androidx/ui/engine/geometry/Rect.kt
+++ b/ui/ui-geometry/src/main/java/androidx/ui/geometry/Rect.kt
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package androidx.ui.engine.geometry
+package androidx.ui.geometry
 
-import androidx.ui.lerp
-import androidx.ui.toStringAsFixed
+import androidx.ui.util.lerp
+import androidx.ui.util.toStringAsFixed
 import kotlin.math.absoluteValue
 
 // TODO(mount): Normalize this class. There are many methods that can be extension functions.
@@ -350,4 +350,4 @@
         lerp(start.right, stop.right, fraction),
         lerp(start.bottom, stop.bottom, fraction)
     )
-}
+}
\ No newline at end of file
diff --git a/ui/ui-core/src/main/java/androidx/ui/engine/geometry/Size.kt b/ui/ui-geometry/src/main/java/androidx/ui/geometry/Size.kt
similarity index 98%
rename from ui/ui-core/src/main/java/androidx/ui/engine/geometry/Size.kt
rename to ui/ui-geometry/src/main/java/androidx/ui/geometry/Size.kt
index 5055f18..65d5a13 100644
--- a/ui/ui-core/src/main/java/androidx/ui/engine/geometry/Size.kt
+++ b/ui/ui-geometry/src/main/java/androidx/ui/geometry/Size.kt
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package androidx.ui.engine.geometry
+package androidx.ui.geometry
 
-import androidx.ui.lerp
-import androidx.ui.toStringAsFixed
+import androidx.ui.util.lerp
+import androidx.ui.util.toStringAsFixed
 import kotlin.math.absoluteValue
 import kotlin.math.truncate
 
diff --git a/ui/ui-core/src/test/java/androidx/ui/engine/geometry/RRectTest.kt b/ui/ui-geometry/src/test/java/androidx/ui/geometry/RRectTest.kt
similarity index 94%
rename from ui/ui-core/src/test/java/androidx/ui/engine/geometry/RRectTest.kt
rename to ui/ui-geometry/src/test/java/androidx/ui/geometry/RRectTest.kt
index b1e415a..ae93b58 100644
--- a/ui/ui-core/src/test/java/androidx/ui/engine/geometry/RRectTest.kt
+++ b/ui/ui-geometry/src/test/java/androidx/ui/geometry/RRectTest.kt
@@ -16,6 +16,10 @@
 
 package androidx.ui.engine.geometry
 
+import androidx.ui.geometry.Offset
+import androidx.ui.geometry.RRect
+import androidx.ui.geometry.Radius
+import androidx.ui.geometry.Rect
 import org.junit.Assert.assertFalse
 import org.junit.Assert.assertTrue
 import org.junit.Test
diff --git a/ui/ui-core/src/test/java/androidx/ui/engine/geometry/RectTest.kt b/ui/ui-geometry/src/test/java/androidx/ui/geometry/RectTest.kt
similarity index 97%
rename from ui/ui-core/src/test/java/androidx/ui/engine/geometry/RectTest.kt
rename to ui/ui-geometry/src/test/java/androidx/ui/geometry/RectTest.kt
index 3f3e5ca..e5b614a 100644
--- a/ui/ui-core/src/test/java/androidx/ui/engine/geometry/RectTest.kt
+++ b/ui/ui-geometry/src/test/java/androidx/ui/geometry/RectTest.kt
@@ -16,6 +16,7 @@
 
 package androidx.ui.engine.geometry
 
+import androidx.ui.geometry.Rect
 import org.junit.Assert.assertEquals
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-layout/api/0.1.0-dev04.txt b/ui/ui-layout/api/0.1.0-dev04.txt
index 8cefaec..62add70 100644
--- a/ui/ui-layout/api/0.1.0-dev04.txt
+++ b/ui/ui-layout/api/0.1.0-dev04.txt
@@ -7,12 +7,12 @@
   }
 
   public final class AlignmentLineKt {
-    method public static void AlignmentLineOffset(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.core.Dp before = 0.dp, androidx.ui.core.Dp after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void AlignmentLineOffset(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.unit.Dp before = 0.dp, androidx.ui.unit.Dp after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static void CenterAlignmentLine(androidx.ui.core.AlignmentLine alignmentLine, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class Arrangement {
-    ctor public Arrangement(internal kotlin.jvm.functions.Function2<? super androidx.ui.core.IntPx,? super java.util.List<androidx.ui.core.IntPx>,? extends java.util.List<androidx.ui.core.IntPx>> arrangeBlock);
+    ctor public Arrangement(internal kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super java.util.List<androidx.ui.unit.IntPx>,? extends java.util.List<androidx.ui.unit.IntPx>> arrangeBlock);
     field public static final androidx.ui.layout.Arrangement.Companion! Companion;
   }
 
@@ -46,7 +46,7 @@
   }
 
   public final class ContainerKt {
-    method public static void Container(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.layout.EdgeInsets padding = androidx.ui.layout.EdgeInsets(0.dp), androidx.ui.core.Alignment alignment = Alignment.Center, boolean expanded = false, androidx.ui.layout.DpConstraints constraints = androidx.ui.layout.DpConstraints(), androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Container(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.layout.EdgeInsets padding = androidx.ui.layout.EdgeInsets(0.dp), androidx.ui.core.Alignment alignment = Alignment.Center, boolean expanded = false, androidx.ui.layout.DpConstraints constraints = androidx.ui.layout.DpConstraints(), androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class CrossAxisAlignment {
@@ -66,29 +66,29 @@
   }
 
   public final class DpConstraints {
-    ctor public DpConstraints(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
+    ctor public DpConstraints(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
     ctor public DpConstraints();
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.DpConstraints copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.Dp getMinWidth();
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.DpConstraints copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.Dp getMinWidth();
     field public static final androidx.ui.layout.DpConstraints.Companion! Companion;
   }
 
   public static final class DpConstraints.Companion {
-    method public androidx.ui.layout.DpConstraints tightConstraints(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
-    method public androidx.ui.layout.DpConstraints tightConstraintsForHeight(androidx.ui.core.Dp height);
-    method public androidx.ui.layout.DpConstraints tightConstraintsForWidth(androidx.ui.core.Dp width);
+    method public androidx.ui.layout.DpConstraints tightConstraints(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
+    method public androidx.ui.layout.DpConstraints tightConstraintsForHeight(androidx.ui.unit.Dp height);
+    method public androidx.ui.layout.DpConstraints tightConstraintsForWidth(androidx.ui.unit.Dp width);
   }
 
   public final class DpConstraintsKt {
-    method public static androidx.ui.core.Constraints Constraints(androidx.ui.core.DensityScope, androidx.ui.layout.DpConstraints dpConstraints);
-    method public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public static androidx.ui.core.Constraints Constraints(androidx.ui.unit.DensityScope, androidx.ui.layout.DpConstraints dpConstraints);
+    method public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     method public static androidx.ui.layout.DpConstraints enforce(androidx.ui.layout.DpConstraints, androidx.ui.layout.DpConstraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.layout.DpConstraints);
     method public static boolean getHasBoundedWidth(androidx.ui.layout.DpConstraints);
@@ -99,25 +99,25 @@
     method public static boolean isZero(androidx.ui.layout.DpConstraints);
     method public static androidx.ui.layout.DpConstraints looseMax(androidx.ui.layout.DpConstraints);
     method public static androidx.ui.layout.DpConstraints looseMin(androidx.ui.layout.DpConstraints);
-    method public static androidx.ui.layout.DpConstraints offset(androidx.ui.layout.DpConstraints, androidx.ui.core.Dp horizontal = 0.dp, androidx.ui.core.Dp vertical = 0.dp);
+    method public static androidx.ui.layout.DpConstraints offset(androidx.ui.layout.DpConstraints, androidx.ui.unit.Dp horizontal = 0.dp, androidx.ui.unit.Dp vertical = 0.dp);
     method public static androidx.ui.layout.DpConstraints tightMax(androidx.ui.layout.DpConstraints);
     method public static androidx.ui.layout.DpConstraints tightMin(androidx.ui.layout.DpConstraints);
-    method public static androidx.ui.layout.DpConstraints withTight(androidx.ui.layout.DpConstraints, androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null);
+    method public static androidx.ui.layout.DpConstraints withTight(androidx.ui.layout.DpConstraints, androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null);
   }
 
   public final class EdgeInsets {
-    ctor public EdgeInsets(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
+    ctor public EdgeInsets(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
     ctor public EdgeInsets();
-    ctor public EdgeInsets(androidx.ui.core.Dp all);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.EdgeInsets copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp getBottom();
-    method public androidx.ui.core.Dp getLeft();
-    method public androidx.ui.core.Dp getRight();
-    method public androidx.ui.core.Dp getTop();
+    ctor public EdgeInsets(androidx.ui.unit.Dp all);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.EdgeInsets copy(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp getBottom();
+    method public androidx.ui.unit.Dp getLeft();
+    method public androidx.ui.unit.Dp getRight();
+    method public androidx.ui.unit.Dp getTop();
   }
 
   public final class FlexChildren {
@@ -135,7 +135,7 @@
 
   @androidx.ui.layout.LayoutScopeMarker public abstract sealed class FlexScope {
     method public final androidx.ui.core.ParentDataModifier LayoutFlexible(@FloatRange(from=0.0, fromInclusive=false) float flex, boolean tight = true);
-    method public final androidx.ui.core.ParentDataModifier RelativeToSiblings(androidx.ui.layout.LayoutGravity, kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable,androidx.ui.core.IntPx> alignmentLineBlock);
+    method public final androidx.ui.core.ParentDataModifier RelativeToSiblings(androidx.ui.layout.LayoutGravity, kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable,androidx.ui.unit.IntPx> alignmentLineBlock);
     method public final androidx.ui.core.ParentDataModifier getLayoutInflexible();
     property public final androidx.ui.core.ParentDataModifier LayoutInflexible;
   }
@@ -147,8 +147,8 @@
   }
 
   public final class FlowKt {
-    method public static void FlowColumn(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.core.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.core.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void FlowRow(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.core.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.core.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void FlowColumn(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.unit.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.unit.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void FlowRow(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.unit.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.unit.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class IntrinsicKt {
@@ -197,11 +197,11 @@
     method public float component1();
     method public androidx.ui.layout.LayoutAspectRatio copy(float aspectRatio);
     method public float getAspectRatio();
-    method public androidx.ui.core.IntPx maxIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx maxIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public androidx.ui.core.IntPx minIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx minIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public androidx.ui.unit.IntPx minIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx minIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
   }
 
   public final class LayoutGravity {
@@ -209,224 +209,224 @@
   }
 
   public final class LayoutHeight implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight(androidx.ui.core.Dp height);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutHeight copy(androidx.ui.core.Dp height);
+    ctor public LayoutHeight(androidx.ui.unit.Dp height);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutHeight copy(androidx.ui.unit.Dp height);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutHeight.Constrain implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight.Constrain(androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutHeight.Constrain copy(androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
+    ctor public LayoutHeight.Constrain(androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutHeight.Constrain copy(androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutHeight.Fill implements androidx.ui.core.LayoutModifier {
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     field public static final androidx.ui.layout.LayoutHeight.Fill! INSTANCE;
   }
 
   public static final class LayoutHeight.Max implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight.Max(androidx.ui.core.Dp maxHeight);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutHeight.Max copy(androidx.ui.core.Dp maxHeight);
+    ctor public LayoutHeight.Max(androidx.ui.unit.Dp maxHeight);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutHeight.Max copy(androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutHeight.Min implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight.Min(androidx.ui.core.Dp minHeight);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutHeight.Min copy(androidx.ui.core.Dp minHeight);
+    ctor public LayoutHeight.Min(androidx.ui.unit.Dp minHeight);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutHeight.Min copy(androidx.ui.unit.Dp minHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public final class LayoutPadding implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutPadding(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
+    ctor public LayoutPadding(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
     ctor public LayoutPadding();
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.LayoutPadding copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp getBottom();
-    method public androidx.ui.core.Dp getLeft();
-    method public androidx.ui.core.Dp getRight();
-    method public androidx.ui.core.Dp getTop();
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.LayoutPadding copy(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp getBottom();
+    method public androidx.ui.unit.Dp getLeft();
+    method public androidx.ui.unit.Dp getRight();
+    method public androidx.ui.unit.Dp getTop();
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
   }
 
   @kotlin.DslMarker public @interface LayoutScopeMarker {
   }
 
   public final class LayoutSize implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
-    ctor public LayoutSize(androidx.ui.core.Dp size);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutSize copy(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
+    ctor public LayoutSize(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
+    ctor public LayoutSize(androidx.ui.unit.Dp size);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutSize copy(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getHeight();
-    method public androidx.ui.core.Dp getWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getHeight();
+    method public androidx.ui.unit.Dp getWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutSize.Constrain implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize.Constrain(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
-    ctor public LayoutSize.Constrain(androidx.ui.core.Dp minSize, androidx.ui.core.Dp maxSize);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.LayoutSize.Constrain copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
+    ctor public LayoutSize.Constrain(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
+    ctor public LayoutSize.Constrain(androidx.ui.unit.Dp minSize, androidx.ui.unit.Dp maxSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.LayoutSize.Constrain copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutSize.Fill implements androidx.ui.core.LayoutModifier {
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     field public static final androidx.ui.layout.LayoutSize.Fill! INSTANCE;
   }
 
   public static final class LayoutSize.Max implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize.Max(androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
-    ctor public LayoutSize.Max(androidx.ui.core.Dp maxSize);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutSize.Max copy(androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
+    ctor public LayoutSize.Max(androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
+    ctor public LayoutSize.Max(androidx.ui.unit.Dp maxSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutSize.Max copy(androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutSize.Min implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize.Min(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight);
-    ctor public LayoutSize.Min(androidx.ui.core.Dp minSize);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutSize.Min copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight);
+    ctor public LayoutSize.Min(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight);
+    ctor public LayoutSize.Min(androidx.ui.unit.Dp minSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutSize.Min copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public final class LayoutWidth implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth(androidx.ui.core.Dp width);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutWidth copy(androidx.ui.core.Dp width);
+    ctor public LayoutWidth(androidx.ui.unit.Dp width);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutWidth copy(androidx.ui.unit.Dp width);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutWidth.Constrain implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth.Constrain(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutWidth.Constrain copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth);
+    ctor public LayoutWidth.Constrain(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutWidth.Constrain copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutWidth.Fill implements androidx.ui.core.LayoutModifier {
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     field public static final androidx.ui.layout.LayoutWidth.Fill! INSTANCE;
   }
 
   public static final class LayoutWidth.Max implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth.Max(androidx.ui.core.Dp maxWidth);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutWidth.Max copy(androidx.ui.core.Dp maxWidth);
+    ctor public LayoutWidth.Max(androidx.ui.unit.Dp maxWidth);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutWidth.Max copy(androidx.ui.unit.Dp maxWidth);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutWidth.Min implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth.Min(androidx.ui.core.Dp minWidth);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutWidth.Min copy(androidx.ui.core.Dp minWidth);
+    ctor public LayoutWidth.Min(androidx.ui.unit.Dp minWidth);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutWidth.Min copy(androidx.ui.unit.Dp minWidth);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
@@ -441,12 +441,12 @@
   }
 
   public final class PaddingKt {
-    method public static androidx.ui.layout.LayoutPadding LayoutPadding(androidx.ui.core.Dp all);
+    method public static androidx.ui.layout.LayoutPadding LayoutPadding(androidx.ui.unit.Dp all);
     method public static void Padding(androidx.ui.layout.EdgeInsets padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Padding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Padding(androidx.ui.core.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp);
-    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp all = 0.dp);
+    method public static void Padding(androidx.ui.unit.Dp left = 0.dp, androidx.ui.unit.Dp top = 0.dp, androidx.ui.unit.Dp right = 0.dp, androidx.ui.unit.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Padding(androidx.ui.unit.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.unit.Dp left = 0.dp, androidx.ui.unit.Dp top = 0.dp, androidx.ui.unit.Dp right = 0.dp, androidx.ui.unit.Dp bottom = 0.dp);
+    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.unit.Dp all = 0.dp);
   }
 
   public final class RowScope extends androidx.ui.layout.FlexScope {
@@ -502,27 +502,27 @@
   }
 
   public abstract class TableColumnWidth {
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density, androidx.ui.core.IntPx availableHeight);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density, androidx.ui.core.IntPx availableHeight);
-    method public abstract androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density, androidx.ui.unit.IntPx availableHeight);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density, androidx.ui.unit.IntPx availableHeight);
+    method public abstract androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.Fixed extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    ctor public TableColumnWidth.Fixed(androidx.ui.core.Dp width);
-    method public androidx.ui.layout.TableColumnWidth.Fixed copy(androidx.ui.core.Dp width);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    ctor public TableColumnWidth.Fixed(androidx.ui.unit.Dp width);
+    method public androidx.ui.layout.TableColumnWidth.Fixed copy(androidx.ui.unit.Dp width);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.Flex extends androidx.ui.layout.TableColumnWidth {
     ctor public TableColumnWidth.Flex(@FloatRange(from=null) float flex);
     method public androidx.ui.layout.TableColumnWidth.Flex copy(float flex);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.Fraction extends androidx.ui.layout.TableColumnWidth.Inflexible {
     ctor public TableColumnWidth.Fraction(@FloatRange(from=null, to=null) float fraction);
     method public androidx.ui.layout.TableColumnWidth.Fraction copy(float fraction);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public abstract static class TableColumnWidth.Inflexible extends androidx.ui.layout.TableColumnWidth {
@@ -533,36 +533,36 @@
   public static final class TableColumnWidth.Max extends androidx.ui.layout.TableColumnWidth.Inflexible {
     ctor public TableColumnWidth.Max(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
     method public androidx.ui.layout.TableColumnWidth.Max copy(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.MaxIntrinsic extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
     field public static final androidx.ui.layout.TableColumnWidth.MaxIntrinsic! INSTANCE;
   }
 
   public static final class TableColumnWidth.Min extends androidx.ui.layout.TableColumnWidth.Inflexible {
     ctor public TableColumnWidth.Min(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
     method public androidx.ui.layout.TableColumnWidth.Min copy(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.MinIntrinsic extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
     field public static final androidx.ui.layout.TableColumnWidth.MinIntrinsic! INSTANCE;
   }
 
   public static final class TableColumnWidth.Wrap extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
     field public static final androidx.ui.layout.TableColumnWidth.Wrap! INSTANCE;
   }
 
   public final class TableDecorationChildren {
-    method public java.util.List<androidx.ui.core.IntPx> component1();
-    method public java.util.List<androidx.ui.core.IntPx> component2();
-    method public androidx.ui.layout.TableDecorationChildren copy(java.util.List<androidx.ui.core.IntPx> verticalOffsets, java.util.List<androidx.ui.core.IntPx> horizontalOffsets);
-    method public java.util.List<androidx.ui.core.IntPx> getHorizontalOffsets();
-    method public java.util.List<androidx.ui.core.IntPx> getVerticalOffsets();
+    method public java.util.List<androidx.ui.unit.IntPx> component1();
+    method public java.util.List<androidx.ui.unit.IntPx> component2();
+    method public androidx.ui.layout.TableDecorationChildren copy(java.util.List<androidx.ui.unit.IntPx> verticalOffsets, java.util.List<androidx.ui.unit.IntPx> horizontalOffsets);
+    method public java.util.List<androidx.ui.unit.IntPx> getHorizontalOffsets();
+    method public java.util.List<androidx.ui.unit.IntPx> getVerticalOffsets();
   }
 
   public final class TableKt {
@@ -570,13 +570,13 @@
   }
 
   public final class TableMeasurable {
-    method public kotlin.jvm.functions.Function0<androidx.ui.core.IntPx> component1();
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> component2();
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> component3();
-    method public androidx.ui.layout.TableMeasurable copy(kotlin.jvm.functions.Function0<androidx.ui.core.IntPx> preferredWidth, kotlin.jvm.functions.Function1<? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicWidth, kotlin.jvm.functions.Function1<? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicWidth);
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> getMaxIntrinsicWidth();
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> getMinIntrinsicWidth();
-    method public kotlin.jvm.functions.Function0<androidx.ui.core.IntPx> getPreferredWidth();
+    method public kotlin.jvm.functions.Function0<androidx.ui.unit.IntPx> component1();
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> component2();
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> component3();
+    method public androidx.ui.layout.TableMeasurable copy(kotlin.jvm.functions.Function0<androidx.ui.unit.IntPx> preferredWidth, kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> minIntrinsicWidth, kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> maxIntrinsicWidth);
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> getMaxIntrinsicWidth();
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> getMinIntrinsicWidth();
+    method public kotlin.jvm.functions.Function0<androidx.ui.unit.IntPx> getPreferredWidth();
   }
 
   public final class WrapKt {
@@ -599,13 +599,13 @@
 
   public final class ConstraintSetBuilderScope {
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.BarrierAnchor createBottomBarrier(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ConstrainedLayoutReference... elements);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromBottom(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromBottom(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromBottom(float percent);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromLeft(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromLeft(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromLeft(float percent);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromRight(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromRight(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromRight(float percent);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromTop(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromTop(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromTop(float percent);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalChain createHorizontalChain(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ConstrainedLayoutReference![] elements, androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ChainStyle chainStyle = ChainStyle.Spread);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.BarrierAnchor createLeftBarrier(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ConstrainedLayoutReference... elements);
@@ -672,21 +672,21 @@
 
   public static final class ConstraintSetBuilderScope.HorizontalAnchor.BarrierAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor {
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
   }
 
   public static final class ConstraintSetBuilderScope.HorizontalAnchor.ConstrainedLayoutAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor {
     method public infix void constrainTo(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor other);
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
     property public Object tag;
   }
 
@@ -709,21 +709,21 @@
 
   public static final class ConstraintSetBuilderScope.VerticalAnchor.BarrierAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor {
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
   }
 
   public static final class ConstraintSetBuilderScope.VerticalAnchor.ConstrainedLayoutAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor {
     method public infix void constrainTo(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor other);
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
     property public Object tag;
   }
 
diff --git a/ui/ui-layout/api/current.txt b/ui/ui-layout/api/current.txt
index 8cefaec..62add70 100644
--- a/ui/ui-layout/api/current.txt
+++ b/ui/ui-layout/api/current.txt
@@ -7,12 +7,12 @@
   }
 
   public final class AlignmentLineKt {
-    method public static void AlignmentLineOffset(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.core.Dp before = 0.dp, androidx.ui.core.Dp after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void AlignmentLineOffset(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.unit.Dp before = 0.dp, androidx.ui.unit.Dp after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static void CenterAlignmentLine(androidx.ui.core.AlignmentLine alignmentLine, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class Arrangement {
-    ctor public Arrangement(internal kotlin.jvm.functions.Function2<? super androidx.ui.core.IntPx,? super java.util.List<androidx.ui.core.IntPx>,? extends java.util.List<androidx.ui.core.IntPx>> arrangeBlock);
+    ctor public Arrangement(internal kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super java.util.List<androidx.ui.unit.IntPx>,? extends java.util.List<androidx.ui.unit.IntPx>> arrangeBlock);
     field public static final androidx.ui.layout.Arrangement.Companion! Companion;
   }
 
@@ -46,7 +46,7 @@
   }
 
   public final class ContainerKt {
-    method public static void Container(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.layout.EdgeInsets padding = androidx.ui.layout.EdgeInsets(0.dp), androidx.ui.core.Alignment alignment = Alignment.Center, boolean expanded = false, androidx.ui.layout.DpConstraints constraints = androidx.ui.layout.DpConstraints(), androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Container(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.layout.EdgeInsets padding = androidx.ui.layout.EdgeInsets(0.dp), androidx.ui.core.Alignment alignment = Alignment.Center, boolean expanded = false, androidx.ui.layout.DpConstraints constraints = androidx.ui.layout.DpConstraints(), androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class CrossAxisAlignment {
@@ -66,29 +66,29 @@
   }
 
   public final class DpConstraints {
-    ctor public DpConstraints(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
+    ctor public DpConstraints(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
     ctor public DpConstraints();
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.DpConstraints copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.Dp getMinWidth();
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.DpConstraints copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.Dp getMinWidth();
     field public static final androidx.ui.layout.DpConstraints.Companion! Companion;
   }
 
   public static final class DpConstraints.Companion {
-    method public androidx.ui.layout.DpConstraints tightConstraints(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
-    method public androidx.ui.layout.DpConstraints tightConstraintsForHeight(androidx.ui.core.Dp height);
-    method public androidx.ui.layout.DpConstraints tightConstraintsForWidth(androidx.ui.core.Dp width);
+    method public androidx.ui.layout.DpConstraints tightConstraints(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
+    method public androidx.ui.layout.DpConstraints tightConstraintsForHeight(androidx.ui.unit.Dp height);
+    method public androidx.ui.layout.DpConstraints tightConstraintsForWidth(androidx.ui.unit.Dp width);
   }
 
   public final class DpConstraintsKt {
-    method public static androidx.ui.core.Constraints Constraints(androidx.ui.core.DensityScope, androidx.ui.layout.DpConstraints dpConstraints);
-    method public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public static androidx.ui.core.Constraints Constraints(androidx.ui.unit.DensityScope, androidx.ui.layout.DpConstraints dpConstraints);
+    method public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     method public static androidx.ui.layout.DpConstraints enforce(androidx.ui.layout.DpConstraints, androidx.ui.layout.DpConstraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.layout.DpConstraints);
     method public static boolean getHasBoundedWidth(androidx.ui.layout.DpConstraints);
@@ -99,25 +99,25 @@
     method public static boolean isZero(androidx.ui.layout.DpConstraints);
     method public static androidx.ui.layout.DpConstraints looseMax(androidx.ui.layout.DpConstraints);
     method public static androidx.ui.layout.DpConstraints looseMin(androidx.ui.layout.DpConstraints);
-    method public static androidx.ui.layout.DpConstraints offset(androidx.ui.layout.DpConstraints, androidx.ui.core.Dp horizontal = 0.dp, androidx.ui.core.Dp vertical = 0.dp);
+    method public static androidx.ui.layout.DpConstraints offset(androidx.ui.layout.DpConstraints, androidx.ui.unit.Dp horizontal = 0.dp, androidx.ui.unit.Dp vertical = 0.dp);
     method public static androidx.ui.layout.DpConstraints tightMax(androidx.ui.layout.DpConstraints);
     method public static androidx.ui.layout.DpConstraints tightMin(androidx.ui.layout.DpConstraints);
-    method public static androidx.ui.layout.DpConstraints withTight(androidx.ui.layout.DpConstraints, androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null);
+    method public static androidx.ui.layout.DpConstraints withTight(androidx.ui.layout.DpConstraints, androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null);
   }
 
   public final class EdgeInsets {
-    ctor public EdgeInsets(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
+    ctor public EdgeInsets(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
     ctor public EdgeInsets();
-    ctor public EdgeInsets(androidx.ui.core.Dp all);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.EdgeInsets copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp getBottom();
-    method public androidx.ui.core.Dp getLeft();
-    method public androidx.ui.core.Dp getRight();
-    method public androidx.ui.core.Dp getTop();
+    ctor public EdgeInsets(androidx.ui.unit.Dp all);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.EdgeInsets copy(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp getBottom();
+    method public androidx.ui.unit.Dp getLeft();
+    method public androidx.ui.unit.Dp getRight();
+    method public androidx.ui.unit.Dp getTop();
   }
 
   public final class FlexChildren {
@@ -135,7 +135,7 @@
 
   @androidx.ui.layout.LayoutScopeMarker public abstract sealed class FlexScope {
     method public final androidx.ui.core.ParentDataModifier LayoutFlexible(@FloatRange(from=0.0, fromInclusive=false) float flex, boolean tight = true);
-    method public final androidx.ui.core.ParentDataModifier RelativeToSiblings(androidx.ui.layout.LayoutGravity, kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable,androidx.ui.core.IntPx> alignmentLineBlock);
+    method public final androidx.ui.core.ParentDataModifier RelativeToSiblings(androidx.ui.layout.LayoutGravity, kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable,androidx.ui.unit.IntPx> alignmentLineBlock);
     method public final androidx.ui.core.ParentDataModifier getLayoutInflexible();
     property public final androidx.ui.core.ParentDataModifier LayoutInflexible;
   }
@@ -147,8 +147,8 @@
   }
 
   public final class FlowKt {
-    method public static void FlowColumn(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.core.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.core.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void FlowRow(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.core.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.core.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void FlowColumn(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.unit.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.unit.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void FlowRow(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.unit.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.unit.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class IntrinsicKt {
@@ -197,11 +197,11 @@
     method public float component1();
     method public androidx.ui.layout.LayoutAspectRatio copy(float aspectRatio);
     method public float getAspectRatio();
-    method public androidx.ui.core.IntPx maxIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx maxIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public androidx.ui.core.IntPx minIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx minIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public androidx.ui.unit.IntPx minIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx minIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
   }
 
   public final class LayoutGravity {
@@ -209,224 +209,224 @@
   }
 
   public final class LayoutHeight implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight(androidx.ui.core.Dp height);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutHeight copy(androidx.ui.core.Dp height);
+    ctor public LayoutHeight(androidx.ui.unit.Dp height);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutHeight copy(androidx.ui.unit.Dp height);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutHeight.Constrain implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight.Constrain(androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutHeight.Constrain copy(androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
+    ctor public LayoutHeight.Constrain(androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutHeight.Constrain copy(androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutHeight.Fill implements androidx.ui.core.LayoutModifier {
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     field public static final androidx.ui.layout.LayoutHeight.Fill! INSTANCE;
   }
 
   public static final class LayoutHeight.Max implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight.Max(androidx.ui.core.Dp maxHeight);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutHeight.Max copy(androidx.ui.core.Dp maxHeight);
+    ctor public LayoutHeight.Max(androidx.ui.unit.Dp maxHeight);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutHeight.Max copy(androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutHeight.Min implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight.Min(androidx.ui.core.Dp minHeight);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutHeight.Min copy(androidx.ui.core.Dp minHeight);
+    ctor public LayoutHeight.Min(androidx.ui.unit.Dp minHeight);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutHeight.Min copy(androidx.ui.unit.Dp minHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public final class LayoutPadding implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutPadding(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
+    ctor public LayoutPadding(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
     ctor public LayoutPadding();
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.LayoutPadding copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp getBottom();
-    method public androidx.ui.core.Dp getLeft();
-    method public androidx.ui.core.Dp getRight();
-    method public androidx.ui.core.Dp getTop();
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.LayoutPadding copy(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp getBottom();
+    method public androidx.ui.unit.Dp getLeft();
+    method public androidx.ui.unit.Dp getRight();
+    method public androidx.ui.unit.Dp getTop();
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
   }
 
   @kotlin.DslMarker public @interface LayoutScopeMarker {
   }
 
   public final class LayoutSize implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
-    ctor public LayoutSize(androidx.ui.core.Dp size);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutSize copy(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
+    ctor public LayoutSize(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
+    ctor public LayoutSize(androidx.ui.unit.Dp size);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutSize copy(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getHeight();
-    method public androidx.ui.core.Dp getWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getHeight();
+    method public androidx.ui.unit.Dp getWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutSize.Constrain implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize.Constrain(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
-    ctor public LayoutSize.Constrain(androidx.ui.core.Dp minSize, androidx.ui.core.Dp maxSize);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.LayoutSize.Constrain copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
+    ctor public LayoutSize.Constrain(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
+    ctor public LayoutSize.Constrain(androidx.ui.unit.Dp minSize, androidx.ui.unit.Dp maxSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.LayoutSize.Constrain copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutSize.Fill implements androidx.ui.core.LayoutModifier {
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     field public static final androidx.ui.layout.LayoutSize.Fill! INSTANCE;
   }
 
   public static final class LayoutSize.Max implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize.Max(androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
-    ctor public LayoutSize.Max(androidx.ui.core.Dp maxSize);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutSize.Max copy(androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
+    ctor public LayoutSize.Max(androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
+    ctor public LayoutSize.Max(androidx.ui.unit.Dp maxSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutSize.Max copy(androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutSize.Min implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize.Min(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight);
-    ctor public LayoutSize.Min(androidx.ui.core.Dp minSize);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutSize.Min copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight);
+    ctor public LayoutSize.Min(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight);
+    ctor public LayoutSize.Min(androidx.ui.unit.Dp minSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutSize.Min copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public final class LayoutWidth implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth(androidx.ui.core.Dp width);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutWidth copy(androidx.ui.core.Dp width);
+    ctor public LayoutWidth(androidx.ui.unit.Dp width);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutWidth copy(androidx.ui.unit.Dp width);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutWidth.Constrain implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth.Constrain(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutWidth.Constrain copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth);
+    ctor public LayoutWidth.Constrain(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutWidth.Constrain copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutWidth.Fill implements androidx.ui.core.LayoutModifier {
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     field public static final androidx.ui.layout.LayoutWidth.Fill! INSTANCE;
   }
 
   public static final class LayoutWidth.Max implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth.Max(androidx.ui.core.Dp maxWidth);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutWidth.Max copy(androidx.ui.core.Dp maxWidth);
+    ctor public LayoutWidth.Max(androidx.ui.unit.Dp maxWidth);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutWidth.Max copy(androidx.ui.unit.Dp maxWidth);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutWidth.Min implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth.Min(androidx.ui.core.Dp minWidth);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutWidth.Min copy(androidx.ui.core.Dp minWidth);
+    ctor public LayoutWidth.Min(androidx.ui.unit.Dp minWidth);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutWidth.Min copy(androidx.ui.unit.Dp minWidth);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
@@ -441,12 +441,12 @@
   }
 
   public final class PaddingKt {
-    method public static androidx.ui.layout.LayoutPadding LayoutPadding(androidx.ui.core.Dp all);
+    method public static androidx.ui.layout.LayoutPadding LayoutPadding(androidx.ui.unit.Dp all);
     method public static void Padding(androidx.ui.layout.EdgeInsets padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Padding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Padding(androidx.ui.core.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp);
-    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp all = 0.dp);
+    method public static void Padding(androidx.ui.unit.Dp left = 0.dp, androidx.ui.unit.Dp top = 0.dp, androidx.ui.unit.Dp right = 0.dp, androidx.ui.unit.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Padding(androidx.ui.unit.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.unit.Dp left = 0.dp, androidx.ui.unit.Dp top = 0.dp, androidx.ui.unit.Dp right = 0.dp, androidx.ui.unit.Dp bottom = 0.dp);
+    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.unit.Dp all = 0.dp);
   }
 
   public final class RowScope extends androidx.ui.layout.FlexScope {
@@ -502,27 +502,27 @@
   }
 
   public abstract class TableColumnWidth {
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density, androidx.ui.core.IntPx availableHeight);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density, androidx.ui.core.IntPx availableHeight);
-    method public abstract androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density, androidx.ui.unit.IntPx availableHeight);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density, androidx.ui.unit.IntPx availableHeight);
+    method public abstract androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.Fixed extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    ctor public TableColumnWidth.Fixed(androidx.ui.core.Dp width);
-    method public androidx.ui.layout.TableColumnWidth.Fixed copy(androidx.ui.core.Dp width);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    ctor public TableColumnWidth.Fixed(androidx.ui.unit.Dp width);
+    method public androidx.ui.layout.TableColumnWidth.Fixed copy(androidx.ui.unit.Dp width);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.Flex extends androidx.ui.layout.TableColumnWidth {
     ctor public TableColumnWidth.Flex(@FloatRange(from=null) float flex);
     method public androidx.ui.layout.TableColumnWidth.Flex copy(float flex);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.Fraction extends androidx.ui.layout.TableColumnWidth.Inflexible {
     ctor public TableColumnWidth.Fraction(@FloatRange(from=null, to=null) float fraction);
     method public androidx.ui.layout.TableColumnWidth.Fraction copy(float fraction);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public abstract static class TableColumnWidth.Inflexible extends androidx.ui.layout.TableColumnWidth {
@@ -533,36 +533,36 @@
   public static final class TableColumnWidth.Max extends androidx.ui.layout.TableColumnWidth.Inflexible {
     ctor public TableColumnWidth.Max(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
     method public androidx.ui.layout.TableColumnWidth.Max copy(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.MaxIntrinsic extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
     field public static final androidx.ui.layout.TableColumnWidth.MaxIntrinsic! INSTANCE;
   }
 
   public static final class TableColumnWidth.Min extends androidx.ui.layout.TableColumnWidth.Inflexible {
     ctor public TableColumnWidth.Min(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
     method public androidx.ui.layout.TableColumnWidth.Min copy(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.MinIntrinsic extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
     field public static final androidx.ui.layout.TableColumnWidth.MinIntrinsic! INSTANCE;
   }
 
   public static final class TableColumnWidth.Wrap extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
     field public static final androidx.ui.layout.TableColumnWidth.Wrap! INSTANCE;
   }
 
   public final class TableDecorationChildren {
-    method public java.util.List<androidx.ui.core.IntPx> component1();
-    method public java.util.List<androidx.ui.core.IntPx> component2();
-    method public androidx.ui.layout.TableDecorationChildren copy(java.util.List<androidx.ui.core.IntPx> verticalOffsets, java.util.List<androidx.ui.core.IntPx> horizontalOffsets);
-    method public java.util.List<androidx.ui.core.IntPx> getHorizontalOffsets();
-    method public java.util.List<androidx.ui.core.IntPx> getVerticalOffsets();
+    method public java.util.List<androidx.ui.unit.IntPx> component1();
+    method public java.util.List<androidx.ui.unit.IntPx> component2();
+    method public androidx.ui.layout.TableDecorationChildren copy(java.util.List<androidx.ui.unit.IntPx> verticalOffsets, java.util.List<androidx.ui.unit.IntPx> horizontalOffsets);
+    method public java.util.List<androidx.ui.unit.IntPx> getHorizontalOffsets();
+    method public java.util.List<androidx.ui.unit.IntPx> getVerticalOffsets();
   }
 
   public final class TableKt {
@@ -570,13 +570,13 @@
   }
 
   public final class TableMeasurable {
-    method public kotlin.jvm.functions.Function0<androidx.ui.core.IntPx> component1();
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> component2();
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> component3();
-    method public androidx.ui.layout.TableMeasurable copy(kotlin.jvm.functions.Function0<androidx.ui.core.IntPx> preferredWidth, kotlin.jvm.functions.Function1<? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicWidth, kotlin.jvm.functions.Function1<? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicWidth);
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> getMaxIntrinsicWidth();
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> getMinIntrinsicWidth();
-    method public kotlin.jvm.functions.Function0<androidx.ui.core.IntPx> getPreferredWidth();
+    method public kotlin.jvm.functions.Function0<androidx.ui.unit.IntPx> component1();
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> component2();
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> component3();
+    method public androidx.ui.layout.TableMeasurable copy(kotlin.jvm.functions.Function0<androidx.ui.unit.IntPx> preferredWidth, kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> minIntrinsicWidth, kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> maxIntrinsicWidth);
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> getMaxIntrinsicWidth();
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> getMinIntrinsicWidth();
+    method public kotlin.jvm.functions.Function0<androidx.ui.unit.IntPx> getPreferredWidth();
   }
 
   public final class WrapKt {
@@ -599,13 +599,13 @@
 
   public final class ConstraintSetBuilderScope {
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.BarrierAnchor createBottomBarrier(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ConstrainedLayoutReference... elements);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromBottom(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromBottom(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromBottom(float percent);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromLeft(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromLeft(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromLeft(float percent);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromRight(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromRight(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromRight(float percent);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromTop(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromTop(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromTop(float percent);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalChain createHorizontalChain(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ConstrainedLayoutReference![] elements, androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ChainStyle chainStyle = ChainStyle.Spread);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.BarrierAnchor createLeftBarrier(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ConstrainedLayoutReference... elements);
@@ -672,21 +672,21 @@
 
   public static final class ConstraintSetBuilderScope.HorizontalAnchor.BarrierAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor {
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
   }
 
   public static final class ConstraintSetBuilderScope.HorizontalAnchor.ConstrainedLayoutAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor {
     method public infix void constrainTo(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor other);
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
     property public Object tag;
   }
 
@@ -709,21 +709,21 @@
 
   public static final class ConstraintSetBuilderScope.VerticalAnchor.BarrierAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor {
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
   }
 
   public static final class ConstraintSetBuilderScope.VerticalAnchor.ConstrainedLayoutAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor {
     method public infix void constrainTo(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor other);
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
     property public Object tag;
   }
 
diff --git a/ui/ui-layout/api/public_plus_experimental_0.1.0-dev04.txt b/ui/ui-layout/api/public_plus_experimental_0.1.0-dev04.txt
index 8cefaec..62add70 100644
--- a/ui/ui-layout/api/public_plus_experimental_0.1.0-dev04.txt
+++ b/ui/ui-layout/api/public_plus_experimental_0.1.0-dev04.txt
@@ -7,12 +7,12 @@
   }
 
   public final class AlignmentLineKt {
-    method public static void AlignmentLineOffset(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.core.Dp before = 0.dp, androidx.ui.core.Dp after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void AlignmentLineOffset(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.unit.Dp before = 0.dp, androidx.ui.unit.Dp after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static void CenterAlignmentLine(androidx.ui.core.AlignmentLine alignmentLine, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class Arrangement {
-    ctor public Arrangement(internal kotlin.jvm.functions.Function2<? super androidx.ui.core.IntPx,? super java.util.List<androidx.ui.core.IntPx>,? extends java.util.List<androidx.ui.core.IntPx>> arrangeBlock);
+    ctor public Arrangement(internal kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super java.util.List<androidx.ui.unit.IntPx>,? extends java.util.List<androidx.ui.unit.IntPx>> arrangeBlock);
     field public static final androidx.ui.layout.Arrangement.Companion! Companion;
   }
 
@@ -46,7 +46,7 @@
   }
 
   public final class ContainerKt {
-    method public static void Container(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.layout.EdgeInsets padding = androidx.ui.layout.EdgeInsets(0.dp), androidx.ui.core.Alignment alignment = Alignment.Center, boolean expanded = false, androidx.ui.layout.DpConstraints constraints = androidx.ui.layout.DpConstraints(), androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Container(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.layout.EdgeInsets padding = androidx.ui.layout.EdgeInsets(0.dp), androidx.ui.core.Alignment alignment = Alignment.Center, boolean expanded = false, androidx.ui.layout.DpConstraints constraints = androidx.ui.layout.DpConstraints(), androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class CrossAxisAlignment {
@@ -66,29 +66,29 @@
   }
 
   public final class DpConstraints {
-    ctor public DpConstraints(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
+    ctor public DpConstraints(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
     ctor public DpConstraints();
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.DpConstraints copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.Dp getMinWidth();
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.DpConstraints copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.Dp getMinWidth();
     field public static final androidx.ui.layout.DpConstraints.Companion! Companion;
   }
 
   public static final class DpConstraints.Companion {
-    method public androidx.ui.layout.DpConstraints tightConstraints(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
-    method public androidx.ui.layout.DpConstraints tightConstraintsForHeight(androidx.ui.core.Dp height);
-    method public androidx.ui.layout.DpConstraints tightConstraintsForWidth(androidx.ui.core.Dp width);
+    method public androidx.ui.layout.DpConstraints tightConstraints(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
+    method public androidx.ui.layout.DpConstraints tightConstraintsForHeight(androidx.ui.unit.Dp height);
+    method public androidx.ui.layout.DpConstraints tightConstraintsForWidth(androidx.ui.unit.Dp width);
   }
 
   public final class DpConstraintsKt {
-    method public static androidx.ui.core.Constraints Constraints(androidx.ui.core.DensityScope, androidx.ui.layout.DpConstraints dpConstraints);
-    method public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public static androidx.ui.core.Constraints Constraints(androidx.ui.unit.DensityScope, androidx.ui.layout.DpConstraints dpConstraints);
+    method public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     method public static androidx.ui.layout.DpConstraints enforce(androidx.ui.layout.DpConstraints, androidx.ui.layout.DpConstraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.layout.DpConstraints);
     method public static boolean getHasBoundedWidth(androidx.ui.layout.DpConstraints);
@@ -99,25 +99,25 @@
     method public static boolean isZero(androidx.ui.layout.DpConstraints);
     method public static androidx.ui.layout.DpConstraints looseMax(androidx.ui.layout.DpConstraints);
     method public static androidx.ui.layout.DpConstraints looseMin(androidx.ui.layout.DpConstraints);
-    method public static androidx.ui.layout.DpConstraints offset(androidx.ui.layout.DpConstraints, androidx.ui.core.Dp horizontal = 0.dp, androidx.ui.core.Dp vertical = 0.dp);
+    method public static androidx.ui.layout.DpConstraints offset(androidx.ui.layout.DpConstraints, androidx.ui.unit.Dp horizontal = 0.dp, androidx.ui.unit.Dp vertical = 0.dp);
     method public static androidx.ui.layout.DpConstraints tightMax(androidx.ui.layout.DpConstraints);
     method public static androidx.ui.layout.DpConstraints tightMin(androidx.ui.layout.DpConstraints);
-    method public static androidx.ui.layout.DpConstraints withTight(androidx.ui.layout.DpConstraints, androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null);
+    method public static androidx.ui.layout.DpConstraints withTight(androidx.ui.layout.DpConstraints, androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null);
   }
 
   public final class EdgeInsets {
-    ctor public EdgeInsets(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
+    ctor public EdgeInsets(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
     ctor public EdgeInsets();
-    ctor public EdgeInsets(androidx.ui.core.Dp all);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.EdgeInsets copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp getBottom();
-    method public androidx.ui.core.Dp getLeft();
-    method public androidx.ui.core.Dp getRight();
-    method public androidx.ui.core.Dp getTop();
+    ctor public EdgeInsets(androidx.ui.unit.Dp all);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.EdgeInsets copy(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp getBottom();
+    method public androidx.ui.unit.Dp getLeft();
+    method public androidx.ui.unit.Dp getRight();
+    method public androidx.ui.unit.Dp getTop();
   }
 
   public final class FlexChildren {
@@ -135,7 +135,7 @@
 
   @androidx.ui.layout.LayoutScopeMarker public abstract sealed class FlexScope {
     method public final androidx.ui.core.ParentDataModifier LayoutFlexible(@FloatRange(from=0.0, fromInclusive=false) float flex, boolean tight = true);
-    method public final androidx.ui.core.ParentDataModifier RelativeToSiblings(androidx.ui.layout.LayoutGravity, kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable,androidx.ui.core.IntPx> alignmentLineBlock);
+    method public final androidx.ui.core.ParentDataModifier RelativeToSiblings(androidx.ui.layout.LayoutGravity, kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable,androidx.ui.unit.IntPx> alignmentLineBlock);
     method public final androidx.ui.core.ParentDataModifier getLayoutInflexible();
     property public final androidx.ui.core.ParentDataModifier LayoutInflexible;
   }
@@ -147,8 +147,8 @@
   }
 
   public final class FlowKt {
-    method public static void FlowColumn(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.core.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.core.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void FlowRow(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.core.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.core.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void FlowColumn(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.unit.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.unit.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void FlowRow(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.unit.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.unit.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class IntrinsicKt {
@@ -197,11 +197,11 @@
     method public float component1();
     method public androidx.ui.layout.LayoutAspectRatio copy(float aspectRatio);
     method public float getAspectRatio();
-    method public androidx.ui.core.IntPx maxIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx maxIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public androidx.ui.core.IntPx minIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx minIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public androidx.ui.unit.IntPx minIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx minIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
   }
 
   public final class LayoutGravity {
@@ -209,224 +209,224 @@
   }
 
   public final class LayoutHeight implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight(androidx.ui.core.Dp height);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutHeight copy(androidx.ui.core.Dp height);
+    ctor public LayoutHeight(androidx.ui.unit.Dp height);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutHeight copy(androidx.ui.unit.Dp height);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutHeight.Constrain implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight.Constrain(androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutHeight.Constrain copy(androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
+    ctor public LayoutHeight.Constrain(androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutHeight.Constrain copy(androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutHeight.Fill implements androidx.ui.core.LayoutModifier {
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     field public static final androidx.ui.layout.LayoutHeight.Fill! INSTANCE;
   }
 
   public static final class LayoutHeight.Max implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight.Max(androidx.ui.core.Dp maxHeight);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutHeight.Max copy(androidx.ui.core.Dp maxHeight);
+    ctor public LayoutHeight.Max(androidx.ui.unit.Dp maxHeight);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutHeight.Max copy(androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutHeight.Min implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight.Min(androidx.ui.core.Dp minHeight);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutHeight.Min copy(androidx.ui.core.Dp minHeight);
+    ctor public LayoutHeight.Min(androidx.ui.unit.Dp minHeight);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutHeight.Min copy(androidx.ui.unit.Dp minHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public final class LayoutPadding implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutPadding(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
+    ctor public LayoutPadding(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
     ctor public LayoutPadding();
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.LayoutPadding copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp getBottom();
-    method public androidx.ui.core.Dp getLeft();
-    method public androidx.ui.core.Dp getRight();
-    method public androidx.ui.core.Dp getTop();
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.LayoutPadding copy(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp getBottom();
+    method public androidx.ui.unit.Dp getLeft();
+    method public androidx.ui.unit.Dp getRight();
+    method public androidx.ui.unit.Dp getTop();
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
   }
 
   @kotlin.DslMarker public @interface LayoutScopeMarker {
   }
 
   public final class LayoutSize implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
-    ctor public LayoutSize(androidx.ui.core.Dp size);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutSize copy(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
+    ctor public LayoutSize(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
+    ctor public LayoutSize(androidx.ui.unit.Dp size);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutSize copy(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getHeight();
-    method public androidx.ui.core.Dp getWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getHeight();
+    method public androidx.ui.unit.Dp getWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutSize.Constrain implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize.Constrain(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
-    ctor public LayoutSize.Constrain(androidx.ui.core.Dp minSize, androidx.ui.core.Dp maxSize);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.LayoutSize.Constrain copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
+    ctor public LayoutSize.Constrain(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
+    ctor public LayoutSize.Constrain(androidx.ui.unit.Dp minSize, androidx.ui.unit.Dp maxSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.LayoutSize.Constrain copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutSize.Fill implements androidx.ui.core.LayoutModifier {
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     field public static final androidx.ui.layout.LayoutSize.Fill! INSTANCE;
   }
 
   public static final class LayoutSize.Max implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize.Max(androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
-    ctor public LayoutSize.Max(androidx.ui.core.Dp maxSize);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutSize.Max copy(androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
+    ctor public LayoutSize.Max(androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
+    ctor public LayoutSize.Max(androidx.ui.unit.Dp maxSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutSize.Max copy(androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutSize.Min implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize.Min(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight);
-    ctor public LayoutSize.Min(androidx.ui.core.Dp minSize);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutSize.Min copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight);
+    ctor public LayoutSize.Min(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight);
+    ctor public LayoutSize.Min(androidx.ui.unit.Dp minSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutSize.Min copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public final class LayoutWidth implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth(androidx.ui.core.Dp width);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutWidth copy(androidx.ui.core.Dp width);
+    ctor public LayoutWidth(androidx.ui.unit.Dp width);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutWidth copy(androidx.ui.unit.Dp width);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutWidth.Constrain implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth.Constrain(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutWidth.Constrain copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth);
+    ctor public LayoutWidth.Constrain(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutWidth.Constrain copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutWidth.Fill implements androidx.ui.core.LayoutModifier {
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     field public static final androidx.ui.layout.LayoutWidth.Fill! INSTANCE;
   }
 
   public static final class LayoutWidth.Max implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth.Max(androidx.ui.core.Dp maxWidth);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutWidth.Max copy(androidx.ui.core.Dp maxWidth);
+    ctor public LayoutWidth.Max(androidx.ui.unit.Dp maxWidth);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutWidth.Max copy(androidx.ui.unit.Dp maxWidth);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutWidth.Min implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth.Min(androidx.ui.core.Dp minWidth);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutWidth.Min copy(androidx.ui.core.Dp minWidth);
+    ctor public LayoutWidth.Min(androidx.ui.unit.Dp minWidth);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutWidth.Min copy(androidx.ui.unit.Dp minWidth);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
@@ -441,12 +441,12 @@
   }
 
   public final class PaddingKt {
-    method public static androidx.ui.layout.LayoutPadding LayoutPadding(androidx.ui.core.Dp all);
+    method public static androidx.ui.layout.LayoutPadding LayoutPadding(androidx.ui.unit.Dp all);
     method public static void Padding(androidx.ui.layout.EdgeInsets padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Padding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Padding(androidx.ui.core.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp);
-    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp all = 0.dp);
+    method public static void Padding(androidx.ui.unit.Dp left = 0.dp, androidx.ui.unit.Dp top = 0.dp, androidx.ui.unit.Dp right = 0.dp, androidx.ui.unit.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Padding(androidx.ui.unit.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.unit.Dp left = 0.dp, androidx.ui.unit.Dp top = 0.dp, androidx.ui.unit.Dp right = 0.dp, androidx.ui.unit.Dp bottom = 0.dp);
+    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.unit.Dp all = 0.dp);
   }
 
   public final class RowScope extends androidx.ui.layout.FlexScope {
@@ -502,27 +502,27 @@
   }
 
   public abstract class TableColumnWidth {
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density, androidx.ui.core.IntPx availableHeight);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density, androidx.ui.core.IntPx availableHeight);
-    method public abstract androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density, androidx.ui.unit.IntPx availableHeight);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density, androidx.ui.unit.IntPx availableHeight);
+    method public abstract androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.Fixed extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    ctor public TableColumnWidth.Fixed(androidx.ui.core.Dp width);
-    method public androidx.ui.layout.TableColumnWidth.Fixed copy(androidx.ui.core.Dp width);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    ctor public TableColumnWidth.Fixed(androidx.ui.unit.Dp width);
+    method public androidx.ui.layout.TableColumnWidth.Fixed copy(androidx.ui.unit.Dp width);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.Flex extends androidx.ui.layout.TableColumnWidth {
     ctor public TableColumnWidth.Flex(@FloatRange(from=null) float flex);
     method public androidx.ui.layout.TableColumnWidth.Flex copy(float flex);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.Fraction extends androidx.ui.layout.TableColumnWidth.Inflexible {
     ctor public TableColumnWidth.Fraction(@FloatRange(from=null, to=null) float fraction);
     method public androidx.ui.layout.TableColumnWidth.Fraction copy(float fraction);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public abstract static class TableColumnWidth.Inflexible extends androidx.ui.layout.TableColumnWidth {
@@ -533,36 +533,36 @@
   public static final class TableColumnWidth.Max extends androidx.ui.layout.TableColumnWidth.Inflexible {
     ctor public TableColumnWidth.Max(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
     method public androidx.ui.layout.TableColumnWidth.Max copy(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.MaxIntrinsic extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
     field public static final androidx.ui.layout.TableColumnWidth.MaxIntrinsic! INSTANCE;
   }
 
   public static final class TableColumnWidth.Min extends androidx.ui.layout.TableColumnWidth.Inflexible {
     ctor public TableColumnWidth.Min(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
     method public androidx.ui.layout.TableColumnWidth.Min copy(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.MinIntrinsic extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
     field public static final androidx.ui.layout.TableColumnWidth.MinIntrinsic! INSTANCE;
   }
 
   public static final class TableColumnWidth.Wrap extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
     field public static final androidx.ui.layout.TableColumnWidth.Wrap! INSTANCE;
   }
 
   public final class TableDecorationChildren {
-    method public java.util.List<androidx.ui.core.IntPx> component1();
-    method public java.util.List<androidx.ui.core.IntPx> component2();
-    method public androidx.ui.layout.TableDecorationChildren copy(java.util.List<androidx.ui.core.IntPx> verticalOffsets, java.util.List<androidx.ui.core.IntPx> horizontalOffsets);
-    method public java.util.List<androidx.ui.core.IntPx> getHorizontalOffsets();
-    method public java.util.List<androidx.ui.core.IntPx> getVerticalOffsets();
+    method public java.util.List<androidx.ui.unit.IntPx> component1();
+    method public java.util.List<androidx.ui.unit.IntPx> component2();
+    method public androidx.ui.layout.TableDecorationChildren copy(java.util.List<androidx.ui.unit.IntPx> verticalOffsets, java.util.List<androidx.ui.unit.IntPx> horizontalOffsets);
+    method public java.util.List<androidx.ui.unit.IntPx> getHorizontalOffsets();
+    method public java.util.List<androidx.ui.unit.IntPx> getVerticalOffsets();
   }
 
   public final class TableKt {
@@ -570,13 +570,13 @@
   }
 
   public final class TableMeasurable {
-    method public kotlin.jvm.functions.Function0<androidx.ui.core.IntPx> component1();
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> component2();
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> component3();
-    method public androidx.ui.layout.TableMeasurable copy(kotlin.jvm.functions.Function0<androidx.ui.core.IntPx> preferredWidth, kotlin.jvm.functions.Function1<? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicWidth, kotlin.jvm.functions.Function1<? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicWidth);
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> getMaxIntrinsicWidth();
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> getMinIntrinsicWidth();
-    method public kotlin.jvm.functions.Function0<androidx.ui.core.IntPx> getPreferredWidth();
+    method public kotlin.jvm.functions.Function0<androidx.ui.unit.IntPx> component1();
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> component2();
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> component3();
+    method public androidx.ui.layout.TableMeasurable copy(kotlin.jvm.functions.Function0<androidx.ui.unit.IntPx> preferredWidth, kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> minIntrinsicWidth, kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> maxIntrinsicWidth);
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> getMaxIntrinsicWidth();
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> getMinIntrinsicWidth();
+    method public kotlin.jvm.functions.Function0<androidx.ui.unit.IntPx> getPreferredWidth();
   }
 
   public final class WrapKt {
@@ -599,13 +599,13 @@
 
   public final class ConstraintSetBuilderScope {
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.BarrierAnchor createBottomBarrier(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ConstrainedLayoutReference... elements);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromBottom(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromBottom(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromBottom(float percent);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromLeft(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromLeft(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromLeft(float percent);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromRight(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromRight(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromRight(float percent);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromTop(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromTop(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromTop(float percent);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalChain createHorizontalChain(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ConstrainedLayoutReference![] elements, androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ChainStyle chainStyle = ChainStyle.Spread);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.BarrierAnchor createLeftBarrier(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ConstrainedLayoutReference... elements);
@@ -672,21 +672,21 @@
 
   public static final class ConstraintSetBuilderScope.HorizontalAnchor.BarrierAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor {
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
   }
 
   public static final class ConstraintSetBuilderScope.HorizontalAnchor.ConstrainedLayoutAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor {
     method public infix void constrainTo(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor other);
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
     property public Object tag;
   }
 
@@ -709,21 +709,21 @@
 
   public static final class ConstraintSetBuilderScope.VerticalAnchor.BarrierAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor {
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
   }
 
   public static final class ConstraintSetBuilderScope.VerticalAnchor.ConstrainedLayoutAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor {
     method public infix void constrainTo(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor other);
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
     property public Object tag;
   }
 
diff --git a/ui/ui-layout/api/public_plus_experimental_current.txt b/ui/ui-layout/api/public_plus_experimental_current.txt
index 8cefaec..62add70 100644
--- a/ui/ui-layout/api/public_plus_experimental_current.txt
+++ b/ui/ui-layout/api/public_plus_experimental_current.txt
@@ -7,12 +7,12 @@
   }
 
   public final class AlignmentLineKt {
-    method public static void AlignmentLineOffset(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.core.Dp before = 0.dp, androidx.ui.core.Dp after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void AlignmentLineOffset(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.unit.Dp before = 0.dp, androidx.ui.unit.Dp after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static void CenterAlignmentLine(androidx.ui.core.AlignmentLine alignmentLine, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class Arrangement {
-    ctor public Arrangement(internal kotlin.jvm.functions.Function2<? super androidx.ui.core.IntPx,? super java.util.List<androidx.ui.core.IntPx>,? extends java.util.List<androidx.ui.core.IntPx>> arrangeBlock);
+    ctor public Arrangement(internal kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super java.util.List<androidx.ui.unit.IntPx>,? extends java.util.List<androidx.ui.unit.IntPx>> arrangeBlock);
     field public static final androidx.ui.layout.Arrangement.Companion! Companion;
   }
 
@@ -46,7 +46,7 @@
   }
 
   public final class ContainerKt {
-    method public static void Container(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.layout.EdgeInsets padding = androidx.ui.layout.EdgeInsets(0.dp), androidx.ui.core.Alignment alignment = Alignment.Center, boolean expanded = false, androidx.ui.layout.DpConstraints constraints = androidx.ui.layout.DpConstraints(), androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Container(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.layout.EdgeInsets padding = androidx.ui.layout.EdgeInsets(0.dp), androidx.ui.core.Alignment alignment = Alignment.Center, boolean expanded = false, androidx.ui.layout.DpConstraints constraints = androidx.ui.layout.DpConstraints(), androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class CrossAxisAlignment {
@@ -66,29 +66,29 @@
   }
 
   public final class DpConstraints {
-    ctor public DpConstraints(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
+    ctor public DpConstraints(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
     ctor public DpConstraints();
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.DpConstraints copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.Dp getMinWidth();
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.DpConstraints copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.Dp getMinWidth();
     field public static final androidx.ui.layout.DpConstraints.Companion! Companion;
   }
 
   public static final class DpConstraints.Companion {
-    method public androidx.ui.layout.DpConstraints tightConstraints(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
-    method public androidx.ui.layout.DpConstraints tightConstraintsForHeight(androidx.ui.core.Dp height);
-    method public androidx.ui.layout.DpConstraints tightConstraintsForWidth(androidx.ui.core.Dp width);
+    method public androidx.ui.layout.DpConstraints tightConstraints(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
+    method public androidx.ui.layout.DpConstraints tightConstraintsForHeight(androidx.ui.unit.Dp height);
+    method public androidx.ui.layout.DpConstraints tightConstraintsForWidth(androidx.ui.unit.Dp width);
   }
 
   public final class DpConstraintsKt {
-    method public static androidx.ui.core.Constraints Constraints(androidx.ui.core.DensityScope, androidx.ui.layout.DpConstraints dpConstraints);
-    method public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public static androidx.ui.core.Constraints Constraints(androidx.ui.unit.DensityScope, androidx.ui.layout.DpConstraints dpConstraints);
+    method public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     method public static androidx.ui.layout.DpConstraints enforce(androidx.ui.layout.DpConstraints, androidx.ui.layout.DpConstraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.layout.DpConstraints);
     method public static boolean getHasBoundedWidth(androidx.ui.layout.DpConstraints);
@@ -99,25 +99,25 @@
     method public static boolean isZero(androidx.ui.layout.DpConstraints);
     method public static androidx.ui.layout.DpConstraints looseMax(androidx.ui.layout.DpConstraints);
     method public static androidx.ui.layout.DpConstraints looseMin(androidx.ui.layout.DpConstraints);
-    method public static androidx.ui.layout.DpConstraints offset(androidx.ui.layout.DpConstraints, androidx.ui.core.Dp horizontal = 0.dp, androidx.ui.core.Dp vertical = 0.dp);
+    method public static androidx.ui.layout.DpConstraints offset(androidx.ui.layout.DpConstraints, androidx.ui.unit.Dp horizontal = 0.dp, androidx.ui.unit.Dp vertical = 0.dp);
     method public static androidx.ui.layout.DpConstraints tightMax(androidx.ui.layout.DpConstraints);
     method public static androidx.ui.layout.DpConstraints tightMin(androidx.ui.layout.DpConstraints);
-    method public static androidx.ui.layout.DpConstraints withTight(androidx.ui.layout.DpConstraints, androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null);
+    method public static androidx.ui.layout.DpConstraints withTight(androidx.ui.layout.DpConstraints, androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null);
   }
 
   public final class EdgeInsets {
-    ctor public EdgeInsets(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
+    ctor public EdgeInsets(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
     ctor public EdgeInsets();
-    ctor public EdgeInsets(androidx.ui.core.Dp all);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.EdgeInsets copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp getBottom();
-    method public androidx.ui.core.Dp getLeft();
-    method public androidx.ui.core.Dp getRight();
-    method public androidx.ui.core.Dp getTop();
+    ctor public EdgeInsets(androidx.ui.unit.Dp all);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.EdgeInsets copy(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp getBottom();
+    method public androidx.ui.unit.Dp getLeft();
+    method public androidx.ui.unit.Dp getRight();
+    method public androidx.ui.unit.Dp getTop();
   }
 
   public final class FlexChildren {
@@ -135,7 +135,7 @@
 
   @androidx.ui.layout.LayoutScopeMarker public abstract sealed class FlexScope {
     method public final androidx.ui.core.ParentDataModifier LayoutFlexible(@FloatRange(from=0.0, fromInclusive=false) float flex, boolean tight = true);
-    method public final androidx.ui.core.ParentDataModifier RelativeToSiblings(androidx.ui.layout.LayoutGravity, kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable,androidx.ui.core.IntPx> alignmentLineBlock);
+    method public final androidx.ui.core.ParentDataModifier RelativeToSiblings(androidx.ui.layout.LayoutGravity, kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable,androidx.ui.unit.IntPx> alignmentLineBlock);
     method public final androidx.ui.core.ParentDataModifier getLayoutInflexible();
     property public final androidx.ui.core.ParentDataModifier LayoutInflexible;
   }
@@ -147,8 +147,8 @@
   }
 
   public final class FlowKt {
-    method public static void FlowColumn(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.core.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.core.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void FlowRow(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.core.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.core.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void FlowColumn(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.unit.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.unit.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void FlowRow(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.unit.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.unit.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class IntrinsicKt {
@@ -197,11 +197,11 @@
     method public float component1();
     method public androidx.ui.layout.LayoutAspectRatio copy(float aspectRatio);
     method public float getAspectRatio();
-    method public androidx.ui.core.IntPx maxIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx maxIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public androidx.ui.core.IntPx minIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx minIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public androidx.ui.unit.IntPx minIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx minIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
   }
 
   public final class LayoutGravity {
@@ -209,224 +209,224 @@
   }
 
   public final class LayoutHeight implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight(androidx.ui.core.Dp height);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutHeight copy(androidx.ui.core.Dp height);
+    ctor public LayoutHeight(androidx.ui.unit.Dp height);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutHeight copy(androidx.ui.unit.Dp height);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutHeight.Constrain implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight.Constrain(androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutHeight.Constrain copy(androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
+    ctor public LayoutHeight.Constrain(androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutHeight.Constrain copy(androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutHeight.Fill implements androidx.ui.core.LayoutModifier {
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     field public static final androidx.ui.layout.LayoutHeight.Fill! INSTANCE;
   }
 
   public static final class LayoutHeight.Max implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight.Max(androidx.ui.core.Dp maxHeight);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutHeight.Max copy(androidx.ui.core.Dp maxHeight);
+    ctor public LayoutHeight.Max(androidx.ui.unit.Dp maxHeight);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutHeight.Max copy(androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutHeight.Min implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight.Min(androidx.ui.core.Dp minHeight);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutHeight.Min copy(androidx.ui.core.Dp minHeight);
+    ctor public LayoutHeight.Min(androidx.ui.unit.Dp minHeight);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutHeight.Min copy(androidx.ui.unit.Dp minHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public final class LayoutPadding implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutPadding(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
+    ctor public LayoutPadding(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
     ctor public LayoutPadding();
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.LayoutPadding copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp getBottom();
-    method public androidx.ui.core.Dp getLeft();
-    method public androidx.ui.core.Dp getRight();
-    method public androidx.ui.core.Dp getTop();
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.LayoutPadding copy(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp getBottom();
+    method public androidx.ui.unit.Dp getLeft();
+    method public androidx.ui.unit.Dp getRight();
+    method public androidx.ui.unit.Dp getTop();
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
   }
 
   @kotlin.DslMarker public @interface LayoutScopeMarker {
   }
 
   public final class LayoutSize implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
-    ctor public LayoutSize(androidx.ui.core.Dp size);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutSize copy(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
+    ctor public LayoutSize(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
+    ctor public LayoutSize(androidx.ui.unit.Dp size);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutSize copy(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getHeight();
-    method public androidx.ui.core.Dp getWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getHeight();
+    method public androidx.ui.unit.Dp getWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutSize.Constrain implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize.Constrain(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
-    ctor public LayoutSize.Constrain(androidx.ui.core.Dp minSize, androidx.ui.core.Dp maxSize);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.LayoutSize.Constrain copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
+    ctor public LayoutSize.Constrain(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
+    ctor public LayoutSize.Constrain(androidx.ui.unit.Dp minSize, androidx.ui.unit.Dp maxSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.LayoutSize.Constrain copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutSize.Fill implements androidx.ui.core.LayoutModifier {
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     field public static final androidx.ui.layout.LayoutSize.Fill! INSTANCE;
   }
 
   public static final class LayoutSize.Max implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize.Max(androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
-    ctor public LayoutSize.Max(androidx.ui.core.Dp maxSize);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutSize.Max copy(androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
+    ctor public LayoutSize.Max(androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
+    ctor public LayoutSize.Max(androidx.ui.unit.Dp maxSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutSize.Max copy(androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutSize.Min implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize.Min(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight);
-    ctor public LayoutSize.Min(androidx.ui.core.Dp minSize);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutSize.Min copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight);
+    ctor public LayoutSize.Min(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight);
+    ctor public LayoutSize.Min(androidx.ui.unit.Dp minSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutSize.Min copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public final class LayoutWidth implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth(androidx.ui.core.Dp width);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutWidth copy(androidx.ui.core.Dp width);
+    ctor public LayoutWidth(androidx.ui.unit.Dp width);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutWidth copy(androidx.ui.unit.Dp width);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutWidth.Constrain implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth.Constrain(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutWidth.Constrain copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth);
+    ctor public LayoutWidth.Constrain(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutWidth.Constrain copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutWidth.Fill implements androidx.ui.core.LayoutModifier {
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     field public static final androidx.ui.layout.LayoutWidth.Fill! INSTANCE;
   }
 
   public static final class LayoutWidth.Max implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth.Max(androidx.ui.core.Dp maxWidth);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutWidth.Max copy(androidx.ui.core.Dp maxWidth);
+    ctor public LayoutWidth.Max(androidx.ui.unit.Dp maxWidth);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutWidth.Max copy(androidx.ui.unit.Dp maxWidth);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutWidth.Min implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth.Min(androidx.ui.core.Dp minWidth);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutWidth.Min copy(androidx.ui.core.Dp minWidth);
+    ctor public LayoutWidth.Min(androidx.ui.unit.Dp minWidth);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutWidth.Min copy(androidx.ui.unit.Dp minWidth);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
@@ -441,12 +441,12 @@
   }
 
   public final class PaddingKt {
-    method public static androidx.ui.layout.LayoutPadding LayoutPadding(androidx.ui.core.Dp all);
+    method public static androidx.ui.layout.LayoutPadding LayoutPadding(androidx.ui.unit.Dp all);
     method public static void Padding(androidx.ui.layout.EdgeInsets padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Padding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Padding(androidx.ui.core.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp);
-    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp all = 0.dp);
+    method public static void Padding(androidx.ui.unit.Dp left = 0.dp, androidx.ui.unit.Dp top = 0.dp, androidx.ui.unit.Dp right = 0.dp, androidx.ui.unit.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Padding(androidx.ui.unit.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.unit.Dp left = 0.dp, androidx.ui.unit.Dp top = 0.dp, androidx.ui.unit.Dp right = 0.dp, androidx.ui.unit.Dp bottom = 0.dp);
+    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.unit.Dp all = 0.dp);
   }
 
   public final class RowScope extends androidx.ui.layout.FlexScope {
@@ -502,27 +502,27 @@
   }
 
   public abstract class TableColumnWidth {
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density, androidx.ui.core.IntPx availableHeight);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density, androidx.ui.core.IntPx availableHeight);
-    method public abstract androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density, androidx.ui.unit.IntPx availableHeight);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density, androidx.ui.unit.IntPx availableHeight);
+    method public abstract androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.Fixed extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    ctor public TableColumnWidth.Fixed(androidx.ui.core.Dp width);
-    method public androidx.ui.layout.TableColumnWidth.Fixed copy(androidx.ui.core.Dp width);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    ctor public TableColumnWidth.Fixed(androidx.ui.unit.Dp width);
+    method public androidx.ui.layout.TableColumnWidth.Fixed copy(androidx.ui.unit.Dp width);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.Flex extends androidx.ui.layout.TableColumnWidth {
     ctor public TableColumnWidth.Flex(@FloatRange(from=null) float flex);
     method public androidx.ui.layout.TableColumnWidth.Flex copy(float flex);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.Fraction extends androidx.ui.layout.TableColumnWidth.Inflexible {
     ctor public TableColumnWidth.Fraction(@FloatRange(from=null, to=null) float fraction);
     method public androidx.ui.layout.TableColumnWidth.Fraction copy(float fraction);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public abstract static class TableColumnWidth.Inflexible extends androidx.ui.layout.TableColumnWidth {
@@ -533,36 +533,36 @@
   public static final class TableColumnWidth.Max extends androidx.ui.layout.TableColumnWidth.Inflexible {
     ctor public TableColumnWidth.Max(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
     method public androidx.ui.layout.TableColumnWidth.Max copy(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.MaxIntrinsic extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
     field public static final androidx.ui.layout.TableColumnWidth.MaxIntrinsic! INSTANCE;
   }
 
   public static final class TableColumnWidth.Min extends androidx.ui.layout.TableColumnWidth.Inflexible {
     ctor public TableColumnWidth.Min(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
     method public androidx.ui.layout.TableColumnWidth.Min copy(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.MinIntrinsic extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
     field public static final androidx.ui.layout.TableColumnWidth.MinIntrinsic! INSTANCE;
   }
 
   public static final class TableColumnWidth.Wrap extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
     field public static final androidx.ui.layout.TableColumnWidth.Wrap! INSTANCE;
   }
 
   public final class TableDecorationChildren {
-    method public java.util.List<androidx.ui.core.IntPx> component1();
-    method public java.util.List<androidx.ui.core.IntPx> component2();
-    method public androidx.ui.layout.TableDecorationChildren copy(java.util.List<androidx.ui.core.IntPx> verticalOffsets, java.util.List<androidx.ui.core.IntPx> horizontalOffsets);
-    method public java.util.List<androidx.ui.core.IntPx> getHorizontalOffsets();
-    method public java.util.List<androidx.ui.core.IntPx> getVerticalOffsets();
+    method public java.util.List<androidx.ui.unit.IntPx> component1();
+    method public java.util.List<androidx.ui.unit.IntPx> component2();
+    method public androidx.ui.layout.TableDecorationChildren copy(java.util.List<androidx.ui.unit.IntPx> verticalOffsets, java.util.List<androidx.ui.unit.IntPx> horizontalOffsets);
+    method public java.util.List<androidx.ui.unit.IntPx> getHorizontalOffsets();
+    method public java.util.List<androidx.ui.unit.IntPx> getVerticalOffsets();
   }
 
   public final class TableKt {
@@ -570,13 +570,13 @@
   }
 
   public final class TableMeasurable {
-    method public kotlin.jvm.functions.Function0<androidx.ui.core.IntPx> component1();
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> component2();
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> component3();
-    method public androidx.ui.layout.TableMeasurable copy(kotlin.jvm.functions.Function0<androidx.ui.core.IntPx> preferredWidth, kotlin.jvm.functions.Function1<? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicWidth, kotlin.jvm.functions.Function1<? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicWidth);
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> getMaxIntrinsicWidth();
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> getMinIntrinsicWidth();
-    method public kotlin.jvm.functions.Function0<androidx.ui.core.IntPx> getPreferredWidth();
+    method public kotlin.jvm.functions.Function0<androidx.ui.unit.IntPx> component1();
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> component2();
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> component3();
+    method public androidx.ui.layout.TableMeasurable copy(kotlin.jvm.functions.Function0<androidx.ui.unit.IntPx> preferredWidth, kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> minIntrinsicWidth, kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> maxIntrinsicWidth);
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> getMaxIntrinsicWidth();
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> getMinIntrinsicWidth();
+    method public kotlin.jvm.functions.Function0<androidx.ui.unit.IntPx> getPreferredWidth();
   }
 
   public final class WrapKt {
@@ -599,13 +599,13 @@
 
   public final class ConstraintSetBuilderScope {
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.BarrierAnchor createBottomBarrier(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ConstrainedLayoutReference... elements);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromBottom(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromBottom(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromBottom(float percent);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromLeft(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromLeft(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromLeft(float percent);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromRight(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromRight(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromRight(float percent);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromTop(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromTop(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromTop(float percent);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalChain createHorizontalChain(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ConstrainedLayoutReference![] elements, androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ChainStyle chainStyle = ChainStyle.Spread);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.BarrierAnchor createLeftBarrier(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ConstrainedLayoutReference... elements);
@@ -672,21 +672,21 @@
 
   public static final class ConstraintSetBuilderScope.HorizontalAnchor.BarrierAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor {
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
   }
 
   public static final class ConstraintSetBuilderScope.HorizontalAnchor.ConstrainedLayoutAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor {
     method public infix void constrainTo(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor other);
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
     property public Object tag;
   }
 
@@ -709,21 +709,21 @@
 
   public static final class ConstraintSetBuilderScope.VerticalAnchor.BarrierAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor {
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
   }
 
   public static final class ConstraintSetBuilderScope.VerticalAnchor.ConstrainedLayoutAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor {
     method public infix void constrainTo(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor other);
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
     property public Object tag;
   }
 
diff --git a/ui/ui-layout/api/restricted_0.1.0-dev04.txt b/ui/ui-layout/api/restricted_0.1.0-dev04.txt
index 8cefaec..62add70 100644
--- a/ui/ui-layout/api/restricted_0.1.0-dev04.txt
+++ b/ui/ui-layout/api/restricted_0.1.0-dev04.txt
@@ -7,12 +7,12 @@
   }
 
   public final class AlignmentLineKt {
-    method public static void AlignmentLineOffset(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.core.Dp before = 0.dp, androidx.ui.core.Dp after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void AlignmentLineOffset(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.unit.Dp before = 0.dp, androidx.ui.unit.Dp after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static void CenterAlignmentLine(androidx.ui.core.AlignmentLine alignmentLine, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class Arrangement {
-    ctor public Arrangement(internal kotlin.jvm.functions.Function2<? super androidx.ui.core.IntPx,? super java.util.List<androidx.ui.core.IntPx>,? extends java.util.List<androidx.ui.core.IntPx>> arrangeBlock);
+    ctor public Arrangement(internal kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super java.util.List<androidx.ui.unit.IntPx>,? extends java.util.List<androidx.ui.unit.IntPx>> arrangeBlock);
     field public static final androidx.ui.layout.Arrangement.Companion! Companion;
   }
 
@@ -46,7 +46,7 @@
   }
 
   public final class ContainerKt {
-    method public static void Container(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.layout.EdgeInsets padding = androidx.ui.layout.EdgeInsets(0.dp), androidx.ui.core.Alignment alignment = Alignment.Center, boolean expanded = false, androidx.ui.layout.DpConstraints constraints = androidx.ui.layout.DpConstraints(), androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Container(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.layout.EdgeInsets padding = androidx.ui.layout.EdgeInsets(0.dp), androidx.ui.core.Alignment alignment = Alignment.Center, boolean expanded = false, androidx.ui.layout.DpConstraints constraints = androidx.ui.layout.DpConstraints(), androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class CrossAxisAlignment {
@@ -66,29 +66,29 @@
   }
 
   public final class DpConstraints {
-    ctor public DpConstraints(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
+    ctor public DpConstraints(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
     ctor public DpConstraints();
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.DpConstraints copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.Dp getMinWidth();
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.DpConstraints copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.Dp getMinWidth();
     field public static final androidx.ui.layout.DpConstraints.Companion! Companion;
   }
 
   public static final class DpConstraints.Companion {
-    method public androidx.ui.layout.DpConstraints tightConstraints(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
-    method public androidx.ui.layout.DpConstraints tightConstraintsForHeight(androidx.ui.core.Dp height);
-    method public androidx.ui.layout.DpConstraints tightConstraintsForWidth(androidx.ui.core.Dp width);
+    method public androidx.ui.layout.DpConstraints tightConstraints(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
+    method public androidx.ui.layout.DpConstraints tightConstraintsForHeight(androidx.ui.unit.Dp height);
+    method public androidx.ui.layout.DpConstraints tightConstraintsForWidth(androidx.ui.unit.Dp width);
   }
 
   public final class DpConstraintsKt {
-    method public static androidx.ui.core.Constraints Constraints(androidx.ui.core.DensityScope, androidx.ui.layout.DpConstraints dpConstraints);
-    method public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public static androidx.ui.core.Constraints Constraints(androidx.ui.unit.DensityScope, androidx.ui.layout.DpConstraints dpConstraints);
+    method public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     method public static androidx.ui.layout.DpConstraints enforce(androidx.ui.layout.DpConstraints, androidx.ui.layout.DpConstraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.layout.DpConstraints);
     method public static boolean getHasBoundedWidth(androidx.ui.layout.DpConstraints);
@@ -99,25 +99,25 @@
     method public static boolean isZero(androidx.ui.layout.DpConstraints);
     method public static androidx.ui.layout.DpConstraints looseMax(androidx.ui.layout.DpConstraints);
     method public static androidx.ui.layout.DpConstraints looseMin(androidx.ui.layout.DpConstraints);
-    method public static androidx.ui.layout.DpConstraints offset(androidx.ui.layout.DpConstraints, androidx.ui.core.Dp horizontal = 0.dp, androidx.ui.core.Dp vertical = 0.dp);
+    method public static androidx.ui.layout.DpConstraints offset(androidx.ui.layout.DpConstraints, androidx.ui.unit.Dp horizontal = 0.dp, androidx.ui.unit.Dp vertical = 0.dp);
     method public static androidx.ui.layout.DpConstraints tightMax(androidx.ui.layout.DpConstraints);
     method public static androidx.ui.layout.DpConstraints tightMin(androidx.ui.layout.DpConstraints);
-    method public static androidx.ui.layout.DpConstraints withTight(androidx.ui.layout.DpConstraints, androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null);
+    method public static androidx.ui.layout.DpConstraints withTight(androidx.ui.layout.DpConstraints, androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null);
   }
 
   public final class EdgeInsets {
-    ctor public EdgeInsets(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
+    ctor public EdgeInsets(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
     ctor public EdgeInsets();
-    ctor public EdgeInsets(androidx.ui.core.Dp all);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.EdgeInsets copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp getBottom();
-    method public androidx.ui.core.Dp getLeft();
-    method public androidx.ui.core.Dp getRight();
-    method public androidx.ui.core.Dp getTop();
+    ctor public EdgeInsets(androidx.ui.unit.Dp all);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.EdgeInsets copy(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp getBottom();
+    method public androidx.ui.unit.Dp getLeft();
+    method public androidx.ui.unit.Dp getRight();
+    method public androidx.ui.unit.Dp getTop();
   }
 
   public final class FlexChildren {
@@ -135,7 +135,7 @@
 
   @androidx.ui.layout.LayoutScopeMarker public abstract sealed class FlexScope {
     method public final androidx.ui.core.ParentDataModifier LayoutFlexible(@FloatRange(from=0.0, fromInclusive=false) float flex, boolean tight = true);
-    method public final androidx.ui.core.ParentDataModifier RelativeToSiblings(androidx.ui.layout.LayoutGravity, kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable,androidx.ui.core.IntPx> alignmentLineBlock);
+    method public final androidx.ui.core.ParentDataModifier RelativeToSiblings(androidx.ui.layout.LayoutGravity, kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable,androidx.ui.unit.IntPx> alignmentLineBlock);
     method public final androidx.ui.core.ParentDataModifier getLayoutInflexible();
     property public final androidx.ui.core.ParentDataModifier LayoutInflexible;
   }
@@ -147,8 +147,8 @@
   }
 
   public final class FlowKt {
-    method public static void FlowColumn(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.core.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.core.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void FlowRow(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.core.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.core.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void FlowColumn(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.unit.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.unit.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void FlowRow(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.unit.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.unit.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class IntrinsicKt {
@@ -197,11 +197,11 @@
     method public float component1();
     method public androidx.ui.layout.LayoutAspectRatio copy(float aspectRatio);
     method public float getAspectRatio();
-    method public androidx.ui.core.IntPx maxIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx maxIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public androidx.ui.core.IntPx minIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx minIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public androidx.ui.unit.IntPx minIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx minIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
   }
 
   public final class LayoutGravity {
@@ -209,224 +209,224 @@
   }
 
   public final class LayoutHeight implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight(androidx.ui.core.Dp height);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutHeight copy(androidx.ui.core.Dp height);
+    ctor public LayoutHeight(androidx.ui.unit.Dp height);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutHeight copy(androidx.ui.unit.Dp height);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutHeight.Constrain implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight.Constrain(androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutHeight.Constrain copy(androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
+    ctor public LayoutHeight.Constrain(androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutHeight.Constrain copy(androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutHeight.Fill implements androidx.ui.core.LayoutModifier {
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     field public static final androidx.ui.layout.LayoutHeight.Fill! INSTANCE;
   }
 
   public static final class LayoutHeight.Max implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight.Max(androidx.ui.core.Dp maxHeight);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutHeight.Max copy(androidx.ui.core.Dp maxHeight);
+    ctor public LayoutHeight.Max(androidx.ui.unit.Dp maxHeight);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutHeight.Max copy(androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutHeight.Min implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight.Min(androidx.ui.core.Dp minHeight);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutHeight.Min copy(androidx.ui.core.Dp minHeight);
+    ctor public LayoutHeight.Min(androidx.ui.unit.Dp minHeight);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutHeight.Min copy(androidx.ui.unit.Dp minHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public final class LayoutPadding implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutPadding(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
+    ctor public LayoutPadding(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
     ctor public LayoutPadding();
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.LayoutPadding copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp getBottom();
-    method public androidx.ui.core.Dp getLeft();
-    method public androidx.ui.core.Dp getRight();
-    method public androidx.ui.core.Dp getTop();
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.LayoutPadding copy(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp getBottom();
+    method public androidx.ui.unit.Dp getLeft();
+    method public androidx.ui.unit.Dp getRight();
+    method public androidx.ui.unit.Dp getTop();
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
   }
 
   @kotlin.DslMarker public @interface LayoutScopeMarker {
   }
 
   public final class LayoutSize implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
-    ctor public LayoutSize(androidx.ui.core.Dp size);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutSize copy(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
+    ctor public LayoutSize(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
+    ctor public LayoutSize(androidx.ui.unit.Dp size);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutSize copy(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getHeight();
-    method public androidx.ui.core.Dp getWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getHeight();
+    method public androidx.ui.unit.Dp getWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutSize.Constrain implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize.Constrain(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
-    ctor public LayoutSize.Constrain(androidx.ui.core.Dp minSize, androidx.ui.core.Dp maxSize);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.LayoutSize.Constrain copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
+    ctor public LayoutSize.Constrain(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
+    ctor public LayoutSize.Constrain(androidx.ui.unit.Dp minSize, androidx.ui.unit.Dp maxSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.LayoutSize.Constrain copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutSize.Fill implements androidx.ui.core.LayoutModifier {
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     field public static final androidx.ui.layout.LayoutSize.Fill! INSTANCE;
   }
 
   public static final class LayoutSize.Max implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize.Max(androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
-    ctor public LayoutSize.Max(androidx.ui.core.Dp maxSize);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutSize.Max copy(androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
+    ctor public LayoutSize.Max(androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
+    ctor public LayoutSize.Max(androidx.ui.unit.Dp maxSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutSize.Max copy(androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutSize.Min implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize.Min(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight);
-    ctor public LayoutSize.Min(androidx.ui.core.Dp minSize);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutSize.Min copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight);
+    ctor public LayoutSize.Min(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight);
+    ctor public LayoutSize.Min(androidx.ui.unit.Dp minSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutSize.Min copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public final class LayoutWidth implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth(androidx.ui.core.Dp width);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutWidth copy(androidx.ui.core.Dp width);
+    ctor public LayoutWidth(androidx.ui.unit.Dp width);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutWidth copy(androidx.ui.unit.Dp width);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutWidth.Constrain implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth.Constrain(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutWidth.Constrain copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth);
+    ctor public LayoutWidth.Constrain(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutWidth.Constrain copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutWidth.Fill implements androidx.ui.core.LayoutModifier {
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     field public static final androidx.ui.layout.LayoutWidth.Fill! INSTANCE;
   }
 
   public static final class LayoutWidth.Max implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth.Max(androidx.ui.core.Dp maxWidth);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutWidth.Max copy(androidx.ui.core.Dp maxWidth);
+    ctor public LayoutWidth.Max(androidx.ui.unit.Dp maxWidth);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutWidth.Max copy(androidx.ui.unit.Dp maxWidth);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutWidth.Min implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth.Min(androidx.ui.core.Dp minWidth);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutWidth.Min copy(androidx.ui.core.Dp minWidth);
+    ctor public LayoutWidth.Min(androidx.ui.unit.Dp minWidth);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutWidth.Min copy(androidx.ui.unit.Dp minWidth);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
@@ -441,12 +441,12 @@
   }
 
   public final class PaddingKt {
-    method public static androidx.ui.layout.LayoutPadding LayoutPadding(androidx.ui.core.Dp all);
+    method public static androidx.ui.layout.LayoutPadding LayoutPadding(androidx.ui.unit.Dp all);
     method public static void Padding(androidx.ui.layout.EdgeInsets padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Padding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Padding(androidx.ui.core.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp);
-    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp all = 0.dp);
+    method public static void Padding(androidx.ui.unit.Dp left = 0.dp, androidx.ui.unit.Dp top = 0.dp, androidx.ui.unit.Dp right = 0.dp, androidx.ui.unit.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Padding(androidx.ui.unit.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.unit.Dp left = 0.dp, androidx.ui.unit.Dp top = 0.dp, androidx.ui.unit.Dp right = 0.dp, androidx.ui.unit.Dp bottom = 0.dp);
+    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.unit.Dp all = 0.dp);
   }
 
   public final class RowScope extends androidx.ui.layout.FlexScope {
@@ -502,27 +502,27 @@
   }
 
   public abstract class TableColumnWidth {
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density, androidx.ui.core.IntPx availableHeight);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density, androidx.ui.core.IntPx availableHeight);
-    method public abstract androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density, androidx.ui.unit.IntPx availableHeight);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density, androidx.ui.unit.IntPx availableHeight);
+    method public abstract androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.Fixed extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    ctor public TableColumnWidth.Fixed(androidx.ui.core.Dp width);
-    method public androidx.ui.layout.TableColumnWidth.Fixed copy(androidx.ui.core.Dp width);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    ctor public TableColumnWidth.Fixed(androidx.ui.unit.Dp width);
+    method public androidx.ui.layout.TableColumnWidth.Fixed copy(androidx.ui.unit.Dp width);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.Flex extends androidx.ui.layout.TableColumnWidth {
     ctor public TableColumnWidth.Flex(@FloatRange(from=null) float flex);
     method public androidx.ui.layout.TableColumnWidth.Flex copy(float flex);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.Fraction extends androidx.ui.layout.TableColumnWidth.Inflexible {
     ctor public TableColumnWidth.Fraction(@FloatRange(from=null, to=null) float fraction);
     method public androidx.ui.layout.TableColumnWidth.Fraction copy(float fraction);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public abstract static class TableColumnWidth.Inflexible extends androidx.ui.layout.TableColumnWidth {
@@ -533,36 +533,36 @@
   public static final class TableColumnWidth.Max extends androidx.ui.layout.TableColumnWidth.Inflexible {
     ctor public TableColumnWidth.Max(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
     method public androidx.ui.layout.TableColumnWidth.Max copy(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.MaxIntrinsic extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
     field public static final androidx.ui.layout.TableColumnWidth.MaxIntrinsic! INSTANCE;
   }
 
   public static final class TableColumnWidth.Min extends androidx.ui.layout.TableColumnWidth.Inflexible {
     ctor public TableColumnWidth.Min(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
     method public androidx.ui.layout.TableColumnWidth.Min copy(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.MinIntrinsic extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
     field public static final androidx.ui.layout.TableColumnWidth.MinIntrinsic! INSTANCE;
   }
 
   public static final class TableColumnWidth.Wrap extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
     field public static final androidx.ui.layout.TableColumnWidth.Wrap! INSTANCE;
   }
 
   public final class TableDecorationChildren {
-    method public java.util.List<androidx.ui.core.IntPx> component1();
-    method public java.util.List<androidx.ui.core.IntPx> component2();
-    method public androidx.ui.layout.TableDecorationChildren copy(java.util.List<androidx.ui.core.IntPx> verticalOffsets, java.util.List<androidx.ui.core.IntPx> horizontalOffsets);
-    method public java.util.List<androidx.ui.core.IntPx> getHorizontalOffsets();
-    method public java.util.List<androidx.ui.core.IntPx> getVerticalOffsets();
+    method public java.util.List<androidx.ui.unit.IntPx> component1();
+    method public java.util.List<androidx.ui.unit.IntPx> component2();
+    method public androidx.ui.layout.TableDecorationChildren copy(java.util.List<androidx.ui.unit.IntPx> verticalOffsets, java.util.List<androidx.ui.unit.IntPx> horizontalOffsets);
+    method public java.util.List<androidx.ui.unit.IntPx> getHorizontalOffsets();
+    method public java.util.List<androidx.ui.unit.IntPx> getVerticalOffsets();
   }
 
   public final class TableKt {
@@ -570,13 +570,13 @@
   }
 
   public final class TableMeasurable {
-    method public kotlin.jvm.functions.Function0<androidx.ui.core.IntPx> component1();
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> component2();
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> component3();
-    method public androidx.ui.layout.TableMeasurable copy(kotlin.jvm.functions.Function0<androidx.ui.core.IntPx> preferredWidth, kotlin.jvm.functions.Function1<? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicWidth, kotlin.jvm.functions.Function1<? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicWidth);
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> getMaxIntrinsicWidth();
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> getMinIntrinsicWidth();
-    method public kotlin.jvm.functions.Function0<androidx.ui.core.IntPx> getPreferredWidth();
+    method public kotlin.jvm.functions.Function0<androidx.ui.unit.IntPx> component1();
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> component2();
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> component3();
+    method public androidx.ui.layout.TableMeasurable copy(kotlin.jvm.functions.Function0<androidx.ui.unit.IntPx> preferredWidth, kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> minIntrinsicWidth, kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> maxIntrinsicWidth);
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> getMaxIntrinsicWidth();
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> getMinIntrinsicWidth();
+    method public kotlin.jvm.functions.Function0<androidx.ui.unit.IntPx> getPreferredWidth();
   }
 
   public final class WrapKt {
@@ -599,13 +599,13 @@
 
   public final class ConstraintSetBuilderScope {
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.BarrierAnchor createBottomBarrier(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ConstrainedLayoutReference... elements);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromBottom(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromBottom(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromBottom(float percent);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromLeft(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromLeft(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromLeft(float percent);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromRight(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromRight(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromRight(float percent);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromTop(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromTop(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromTop(float percent);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalChain createHorizontalChain(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ConstrainedLayoutReference![] elements, androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ChainStyle chainStyle = ChainStyle.Spread);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.BarrierAnchor createLeftBarrier(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ConstrainedLayoutReference... elements);
@@ -672,21 +672,21 @@
 
   public static final class ConstraintSetBuilderScope.HorizontalAnchor.BarrierAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor {
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
   }
 
   public static final class ConstraintSetBuilderScope.HorizontalAnchor.ConstrainedLayoutAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor {
     method public infix void constrainTo(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor other);
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
     property public Object tag;
   }
 
@@ -709,21 +709,21 @@
 
   public static final class ConstraintSetBuilderScope.VerticalAnchor.BarrierAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor {
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
   }
 
   public static final class ConstraintSetBuilderScope.VerticalAnchor.ConstrainedLayoutAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor {
     method public infix void constrainTo(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor other);
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
     property public Object tag;
   }
 
diff --git a/ui/ui-layout/api/restricted_current.txt b/ui/ui-layout/api/restricted_current.txt
index 8cefaec..62add70 100644
--- a/ui/ui-layout/api/restricted_current.txt
+++ b/ui/ui-layout/api/restricted_current.txt
@@ -7,12 +7,12 @@
   }
 
   public final class AlignmentLineKt {
-    method public static void AlignmentLineOffset(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.core.Dp before = 0.dp, androidx.ui.core.Dp after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void AlignmentLineOffset(androidx.ui.core.AlignmentLine alignmentLine, androidx.ui.unit.Dp before = 0.dp, androidx.ui.unit.Dp after = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static void CenterAlignmentLine(androidx.ui.core.AlignmentLine alignmentLine, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class Arrangement {
-    ctor public Arrangement(internal kotlin.jvm.functions.Function2<? super androidx.ui.core.IntPx,? super java.util.List<androidx.ui.core.IntPx>,? extends java.util.List<androidx.ui.core.IntPx>> arrangeBlock);
+    ctor public Arrangement(internal kotlin.jvm.functions.Function2<? super androidx.ui.unit.IntPx,? super java.util.List<androidx.ui.unit.IntPx>,? extends java.util.List<androidx.ui.unit.IntPx>> arrangeBlock);
     field public static final androidx.ui.layout.Arrangement.Companion! Companion;
   }
 
@@ -46,7 +46,7 @@
   }
 
   public final class ContainerKt {
-    method public static void Container(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.layout.EdgeInsets padding = androidx.ui.layout.EdgeInsets(0.dp), androidx.ui.core.Alignment alignment = Alignment.Center, boolean expanded = false, androidx.ui.layout.DpConstraints constraints = androidx.ui.layout.DpConstraints(), androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Container(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.layout.EdgeInsets padding = androidx.ui.layout.EdgeInsets(0.dp), androidx.ui.core.Alignment alignment = Alignment.Center, boolean expanded = false, androidx.ui.layout.DpConstraints constraints = androidx.ui.layout.DpConstraints(), androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class CrossAxisAlignment {
@@ -66,29 +66,29 @@
   }
 
   public final class DpConstraints {
-    ctor public DpConstraints(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
+    ctor public DpConstraints(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
     ctor public DpConstraints();
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.DpConstraints copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.Dp getMinWidth();
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.DpConstraints copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.Dp getMinWidth();
     field public static final androidx.ui.layout.DpConstraints.Companion! Companion;
   }
 
   public static final class DpConstraints.Companion {
-    method public androidx.ui.layout.DpConstraints tightConstraints(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
-    method public androidx.ui.layout.DpConstraints tightConstraintsForHeight(androidx.ui.core.Dp height);
-    method public androidx.ui.layout.DpConstraints tightConstraintsForWidth(androidx.ui.core.Dp width);
+    method public androidx.ui.layout.DpConstraints tightConstraints(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
+    method public androidx.ui.layout.DpConstraints tightConstraintsForHeight(androidx.ui.unit.Dp height);
+    method public androidx.ui.layout.DpConstraints tightConstraintsForWidth(androidx.ui.unit.Dp width);
   }
 
   public final class DpConstraintsKt {
-    method public static androidx.ui.core.Constraints Constraints(androidx.ui.core.DensityScope, androidx.ui.layout.DpConstraints dpConstraints);
-    method public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public static androidx.ui.core.Constraints Constraints(androidx.ui.unit.DensityScope, androidx.ui.layout.DpConstraints dpConstraints);
+    method public static androidx.ui.layout.DpConstraints DpConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     method public static androidx.ui.layout.DpConstraints enforce(androidx.ui.layout.DpConstraints, androidx.ui.layout.DpConstraints otherConstraints);
     method public static boolean getHasBoundedHeight(androidx.ui.layout.DpConstraints);
     method public static boolean getHasBoundedWidth(androidx.ui.layout.DpConstraints);
@@ -99,25 +99,25 @@
     method public static boolean isZero(androidx.ui.layout.DpConstraints);
     method public static androidx.ui.layout.DpConstraints looseMax(androidx.ui.layout.DpConstraints);
     method public static androidx.ui.layout.DpConstraints looseMin(androidx.ui.layout.DpConstraints);
-    method public static androidx.ui.layout.DpConstraints offset(androidx.ui.layout.DpConstraints, androidx.ui.core.Dp horizontal = 0.dp, androidx.ui.core.Dp vertical = 0.dp);
+    method public static androidx.ui.layout.DpConstraints offset(androidx.ui.layout.DpConstraints, androidx.ui.unit.Dp horizontal = 0.dp, androidx.ui.unit.Dp vertical = 0.dp);
     method public static androidx.ui.layout.DpConstraints tightMax(androidx.ui.layout.DpConstraints);
     method public static androidx.ui.layout.DpConstraints tightMin(androidx.ui.layout.DpConstraints);
-    method public static androidx.ui.layout.DpConstraints withTight(androidx.ui.layout.DpConstraints, androidx.ui.core.Dp? width = null, androidx.ui.core.Dp? height = null);
+    method public static androidx.ui.layout.DpConstraints withTight(androidx.ui.layout.DpConstraints, androidx.ui.unit.Dp? width = null, androidx.ui.unit.Dp? height = null);
   }
 
   public final class EdgeInsets {
-    ctor public EdgeInsets(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
+    ctor public EdgeInsets(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
     ctor public EdgeInsets();
-    ctor public EdgeInsets(androidx.ui.core.Dp all);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.EdgeInsets copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp getBottom();
-    method public androidx.ui.core.Dp getLeft();
-    method public androidx.ui.core.Dp getRight();
-    method public androidx.ui.core.Dp getTop();
+    ctor public EdgeInsets(androidx.ui.unit.Dp all);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.EdgeInsets copy(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp getBottom();
+    method public androidx.ui.unit.Dp getLeft();
+    method public androidx.ui.unit.Dp getRight();
+    method public androidx.ui.unit.Dp getTop();
   }
 
   public final class FlexChildren {
@@ -135,7 +135,7 @@
 
   @androidx.ui.layout.LayoutScopeMarker public abstract sealed class FlexScope {
     method public final androidx.ui.core.ParentDataModifier LayoutFlexible(@FloatRange(from=0.0, fromInclusive=false) float flex, boolean tight = true);
-    method public final androidx.ui.core.ParentDataModifier RelativeToSiblings(androidx.ui.layout.LayoutGravity, kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable,androidx.ui.core.IntPx> alignmentLineBlock);
+    method public final androidx.ui.core.ParentDataModifier RelativeToSiblings(androidx.ui.layout.LayoutGravity, kotlin.jvm.functions.Function1<? super androidx.ui.core.Placeable,androidx.ui.unit.IntPx> alignmentLineBlock);
     method public final androidx.ui.core.ParentDataModifier getLayoutInflexible();
     property public final androidx.ui.core.ParentDataModifier LayoutInflexible;
   }
@@ -147,8 +147,8 @@
   }
 
   public final class FlowKt {
-    method public static void FlowColumn(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.core.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.core.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void FlowRow(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.core.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.core.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void FlowColumn(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.unit.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.unit.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void FlowRow(androidx.ui.layout.SizeMode mainAxisSize = androidx.ui.layout.SizeMode.Wrap, androidx.ui.layout.MainAxisAlignment mainAxisAlignment = androidx.ui.layout.MainAxisAlignment.Start, androidx.ui.unit.Dp mainAxisSpacing = 0.dp, androidx.ui.layout.FlowCrossAxisAlignment crossAxisAlignment = androidx.ui.layout.FlowCrossAxisAlignment.Start, androidx.ui.unit.Dp crossAxisSpacing = 0.dp, androidx.ui.layout.MainAxisAlignment lastLineMainAxisAlignment = mainAxisAlignment, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class IntrinsicKt {
@@ -197,11 +197,11 @@
     method public float component1();
     method public androidx.ui.layout.LayoutAspectRatio copy(float aspectRatio);
     method public float getAspectRatio();
-    method public androidx.ui.core.IntPx maxIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx maxIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public androidx.ui.core.IntPx minIntrinsicHeightOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx minIntrinsicWidthOf(androidx.ui.core.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.core.IntPx height);
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public androidx.ui.unit.IntPx minIntrinsicHeightOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx minIntrinsicWidthOf(androidx.ui.unit.DensityScope, androidx.ui.core.Measurable measurable, androidx.ui.unit.IntPx height);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
   }
 
   public final class LayoutGravity {
@@ -209,224 +209,224 @@
   }
 
   public final class LayoutHeight implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight(androidx.ui.core.Dp height);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutHeight copy(androidx.ui.core.Dp height);
+    ctor public LayoutHeight(androidx.ui.unit.Dp height);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutHeight copy(androidx.ui.unit.Dp height);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutHeight.Constrain implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight.Constrain(androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutHeight.Constrain copy(androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxHeight);
+    ctor public LayoutHeight.Constrain(androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutHeight.Constrain copy(androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutHeight.Fill implements androidx.ui.core.LayoutModifier {
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     field public static final androidx.ui.layout.LayoutHeight.Fill! INSTANCE;
   }
 
   public static final class LayoutHeight.Max implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight.Max(androidx.ui.core.Dp maxHeight);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutHeight.Max copy(androidx.ui.core.Dp maxHeight);
+    ctor public LayoutHeight.Max(androidx.ui.unit.Dp maxHeight);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutHeight.Max copy(androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutHeight.Min implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutHeight.Min(androidx.ui.core.Dp minHeight);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutHeight.Min copy(androidx.ui.core.Dp minHeight);
+    ctor public LayoutHeight.Min(androidx.ui.unit.Dp minHeight);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutHeight.Min copy(androidx.ui.unit.Dp minHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public final class LayoutPadding implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutPadding(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
+    ctor public LayoutPadding(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
     ctor public LayoutPadding();
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.LayoutPadding copy(androidx.ui.core.Dp left, androidx.ui.core.Dp top, androidx.ui.core.Dp right, androidx.ui.core.Dp bottom);
-    method public androidx.ui.core.Dp getBottom();
-    method public androidx.ui.core.Dp getLeft();
-    method public androidx.ui.core.Dp getRight();
-    method public androidx.ui.core.Dp getTop();
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.LayoutPadding copy(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp getBottom();
+    method public androidx.ui.unit.Dp getLeft();
+    method public androidx.ui.unit.Dp getRight();
+    method public androidx.ui.unit.Dp getTop();
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
   }
 
   @kotlin.DslMarker public @interface LayoutScopeMarker {
   }
 
   public final class LayoutSize implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
-    ctor public LayoutSize(androidx.ui.core.Dp size);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutSize copy(androidx.ui.core.Dp width, androidx.ui.core.Dp height);
+    ctor public LayoutSize(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
+    ctor public LayoutSize(androidx.ui.unit.Dp size);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutSize copy(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getHeight();
-    method public androidx.ui.core.Dp getWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getHeight();
+    method public androidx.ui.unit.Dp getWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutSize.Constrain implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize.Constrain(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
-    ctor public LayoutSize.Constrain(androidx.ui.core.Dp minSize, androidx.ui.core.Dp maxSize);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.core.Dp component3();
-    method public androidx.ui.core.Dp component4();
-    method public androidx.ui.layout.LayoutSize.Constrain copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight, androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
+    ctor public LayoutSize.Constrain(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
+    ctor public LayoutSize.Constrain(androidx.ui.unit.Dp minSize, androidx.ui.unit.Dp maxSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.layout.LayoutSize.Constrain copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight, androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutSize.Fill implements androidx.ui.core.LayoutModifier {
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     field public static final androidx.ui.layout.LayoutSize.Fill! INSTANCE;
   }
 
   public static final class LayoutSize.Max implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize.Max(androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
-    ctor public LayoutSize.Max(androidx.ui.core.Dp maxSize);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutSize.Max copy(androidx.ui.core.Dp maxWidth, androidx.ui.core.Dp maxHeight);
+    ctor public LayoutSize.Max(androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
+    ctor public LayoutSize.Max(androidx.ui.unit.Dp maxSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutSize.Max copy(androidx.ui.unit.Dp maxWidth, androidx.ui.unit.Dp maxHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxHeight();
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxHeight();
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutSize.Min implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutSize.Min(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight);
-    ctor public LayoutSize.Min(androidx.ui.core.Dp minSize);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutSize.Min copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp minHeight);
+    ctor public LayoutSize.Min(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight);
+    ctor public LayoutSize.Min(androidx.ui.unit.Dp minSize);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutSize.Min copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp minHeight);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMinHeight();
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMinHeight();
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public final class LayoutWidth implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth(androidx.ui.core.Dp width);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutWidth copy(androidx.ui.core.Dp width);
+    ctor public LayoutWidth(androidx.ui.unit.Dp width);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutWidth copy(androidx.ui.unit.Dp width);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutWidth.Constrain implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth.Constrain(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.core.Dp component2();
-    method public androidx.ui.layout.LayoutWidth.Constrain copy(androidx.ui.core.Dp minWidth, androidx.ui.core.Dp maxWidth);
+    ctor public LayoutWidth.Constrain(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.layout.LayoutWidth.Constrain copy(androidx.ui.unit.Dp minWidth, androidx.ui.unit.Dp maxWidth);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutWidth.Fill implements androidx.ui.core.LayoutModifier {
-    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.core.Constraints modifyConstraints(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints);
     field public static final androidx.ui.layout.LayoutWidth.Fill! INSTANCE;
   }
 
   public static final class LayoutWidth.Max implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth.Max(androidx.ui.core.Dp maxWidth);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutWidth.Max copy(androidx.ui.core.Dp maxWidth);
+    ctor public LayoutWidth.Max(androidx.ui.unit.Dp maxWidth);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutWidth.Max copy(androidx.ui.unit.Dp maxWidth);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMaxWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMaxWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
 
   public static final class LayoutWidth.Min implements androidx.ui.core.LayoutModifier {
-    ctor public LayoutWidth.Min(androidx.ui.core.Dp minWidth);
-    method public androidx.ui.core.Dp component1();
-    method public androidx.ui.layout.LayoutWidth.Min copy(androidx.ui.core.Dp minWidth);
+    ctor public LayoutWidth.Min(androidx.ui.unit.Dp minWidth);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.layout.LayoutWidth.Min copy(androidx.ui.unit.Dp minWidth);
     method public <R> R! foldIn(R! initial, kotlin.jvm.functions.Function2<? super R,? super androidx.ui.core.Modifier.Element,? extends R> operation);
     method public <R> R! foldOut(R! initial, kotlin.jvm.functions.Function2<? super androidx.ui.core.Modifier.Element,? super R,? extends R> operation);
-    method public androidx.ui.core.Dp getMinWidth();
-    method public androidx.ui.core.IntPx? modifyAlignmentLine(androidx.ui.core.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.core.IntPx? value);
-    method public androidx.ui.core.IntPxPosition modifyPosition(androidx.ui.core.DensityScope, androidx.ui.core.IntPxSize childSize, androidx.ui.core.IntPxSize containerSize);
-    method public androidx.ui.core.IntPxSize modifySize(androidx.ui.core.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.core.IntPxSize childSize);
+    method public androidx.ui.unit.Dp getMinWidth();
+    method public androidx.ui.unit.IntPx? modifyAlignmentLine(androidx.ui.unit.DensityScope, androidx.ui.core.AlignmentLine line, androidx.ui.unit.IntPx? value);
+    method public androidx.ui.unit.IntPxPosition modifyPosition(androidx.ui.unit.DensityScope, androidx.ui.unit.IntPxSize childSize, androidx.ui.unit.IntPxSize containerSize);
+    method public androidx.ui.unit.IntPxSize modifySize(androidx.ui.unit.DensityScope, androidx.ui.core.Constraints constraints, androidx.ui.unit.IntPxSize childSize);
     method public androidx.ui.core.Modifier plus(androidx.ui.core.Modifier other);
     method @Deprecated public androidx.ui.core.Modifier wraps(androidx.ui.core.Modifier other);
   }
@@ -441,12 +441,12 @@
   }
 
   public final class PaddingKt {
-    method public static androidx.ui.layout.LayoutPadding LayoutPadding(androidx.ui.core.Dp all);
+    method public static androidx.ui.layout.LayoutPadding LayoutPadding(androidx.ui.unit.Dp all);
     method public static void Padding(androidx.ui.layout.EdgeInsets padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Padding(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void Padding(androidx.ui.core.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp left = 0.dp, androidx.ui.core.Dp top = 0.dp, androidx.ui.core.Dp right = 0.dp, androidx.ui.core.Dp bottom = 0.dp);
-    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.core.Dp all = 0.dp);
+    method public static void Padding(androidx.ui.unit.Dp left = 0.dp, androidx.ui.unit.Dp top = 0.dp, androidx.ui.unit.Dp right = 0.dp, androidx.ui.unit.Dp bottom = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Padding(androidx.ui.unit.Dp padding, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.unit.Dp left = 0.dp, androidx.ui.unit.Dp top = 0.dp, androidx.ui.unit.Dp right = 0.dp, androidx.ui.unit.Dp bottom = 0.dp);
+    method @Deprecated public static androidx.ui.core.LayoutModifier Spacing(androidx.ui.unit.Dp all = 0.dp);
   }
 
   public final class RowScope extends androidx.ui.layout.FlexScope {
@@ -502,27 +502,27 @@
   }
 
   public abstract class TableColumnWidth {
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density, androidx.ui.core.IntPx availableHeight);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density, androidx.ui.core.IntPx availableHeight);
-    method public abstract androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density, androidx.ui.unit.IntPx availableHeight);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density, androidx.ui.unit.IntPx availableHeight);
+    method public abstract androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.Fixed extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    ctor public TableColumnWidth.Fixed(androidx.ui.core.Dp width);
-    method public androidx.ui.layout.TableColumnWidth.Fixed copy(androidx.ui.core.Dp width);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    ctor public TableColumnWidth.Fixed(androidx.ui.unit.Dp width);
+    method public androidx.ui.layout.TableColumnWidth.Fixed copy(androidx.ui.unit.Dp width);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.Flex extends androidx.ui.layout.TableColumnWidth {
     ctor public TableColumnWidth.Flex(@FloatRange(from=null) float flex);
     method public androidx.ui.layout.TableColumnWidth.Flex copy(float flex);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.Fraction extends androidx.ui.layout.TableColumnWidth.Inflexible {
     ctor public TableColumnWidth.Fraction(@FloatRange(from=null, to=null) float fraction);
     method public androidx.ui.layout.TableColumnWidth.Fraction copy(float fraction);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public abstract static class TableColumnWidth.Inflexible extends androidx.ui.layout.TableColumnWidth {
@@ -533,36 +533,36 @@
   public static final class TableColumnWidth.Max extends androidx.ui.layout.TableColumnWidth.Inflexible {
     ctor public TableColumnWidth.Max(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
     method public androidx.ui.layout.TableColumnWidth.Max copy(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.MaxIntrinsic extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
     field public static final androidx.ui.layout.TableColumnWidth.MaxIntrinsic! INSTANCE;
   }
 
   public static final class TableColumnWidth.Min extends androidx.ui.layout.TableColumnWidth.Inflexible {
     ctor public TableColumnWidth.Min(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
     method public androidx.ui.layout.TableColumnWidth.Min copy(androidx.ui.layout.TableColumnWidth.Inflexible a, androidx.ui.layout.TableColumnWidth.Inflexible b);
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
   }
 
   public static final class TableColumnWidth.MinIntrinsic extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
     field public static final androidx.ui.layout.TableColumnWidth.MinIntrinsic! INSTANCE;
   }
 
   public static final class TableColumnWidth.Wrap extends androidx.ui.layout.TableColumnWidth.Inflexible {
-    method public androidx.ui.core.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.core.IntPx containerWidth, androidx.ui.core.Density density);
+    method public androidx.ui.unit.IntPx preferredWidth(java.util.List<androidx.ui.layout.TableMeasurable> cells, androidx.ui.unit.IntPx containerWidth, androidx.ui.unit.Density density);
     field public static final androidx.ui.layout.TableColumnWidth.Wrap! INSTANCE;
   }
 
   public final class TableDecorationChildren {
-    method public java.util.List<androidx.ui.core.IntPx> component1();
-    method public java.util.List<androidx.ui.core.IntPx> component2();
-    method public androidx.ui.layout.TableDecorationChildren copy(java.util.List<androidx.ui.core.IntPx> verticalOffsets, java.util.List<androidx.ui.core.IntPx> horizontalOffsets);
-    method public java.util.List<androidx.ui.core.IntPx> getHorizontalOffsets();
-    method public java.util.List<androidx.ui.core.IntPx> getVerticalOffsets();
+    method public java.util.List<androidx.ui.unit.IntPx> component1();
+    method public java.util.List<androidx.ui.unit.IntPx> component2();
+    method public androidx.ui.layout.TableDecorationChildren copy(java.util.List<androidx.ui.unit.IntPx> verticalOffsets, java.util.List<androidx.ui.unit.IntPx> horizontalOffsets);
+    method public java.util.List<androidx.ui.unit.IntPx> getHorizontalOffsets();
+    method public java.util.List<androidx.ui.unit.IntPx> getVerticalOffsets();
   }
 
   public final class TableKt {
@@ -570,13 +570,13 @@
   }
 
   public final class TableMeasurable {
-    method public kotlin.jvm.functions.Function0<androidx.ui.core.IntPx> component1();
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> component2();
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> component3();
-    method public androidx.ui.layout.TableMeasurable copy(kotlin.jvm.functions.Function0<androidx.ui.core.IntPx> preferredWidth, kotlin.jvm.functions.Function1<? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> minIntrinsicWidth, kotlin.jvm.functions.Function1<? super androidx.ui.core.IntPx,androidx.ui.core.IntPx> maxIntrinsicWidth);
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> getMaxIntrinsicWidth();
-    method public kotlin.jvm.functions.Function1<androidx.ui.core.IntPx,androidx.ui.core.IntPx> getMinIntrinsicWidth();
-    method public kotlin.jvm.functions.Function0<androidx.ui.core.IntPx> getPreferredWidth();
+    method public kotlin.jvm.functions.Function0<androidx.ui.unit.IntPx> component1();
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> component2();
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> component3();
+    method public androidx.ui.layout.TableMeasurable copy(kotlin.jvm.functions.Function0<androidx.ui.unit.IntPx> preferredWidth, kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> minIntrinsicWidth, kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> maxIntrinsicWidth);
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> getMaxIntrinsicWidth();
+    method public kotlin.jvm.functions.Function1<androidx.ui.unit.IntPx,androidx.ui.unit.IntPx> getMinIntrinsicWidth();
+    method public kotlin.jvm.functions.Function0<androidx.ui.unit.IntPx> getPreferredWidth();
   }
 
   public final class WrapKt {
@@ -599,13 +599,13 @@
 
   public final class ConstraintSetBuilderScope {
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.BarrierAnchor createBottomBarrier(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ConstrainedLayoutReference... elements);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromBottom(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromBottom(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromBottom(float percent);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromLeft(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromLeft(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromLeft(float percent);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromRight(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromRight(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.GuidelineAnchor createGuidelineFromRight(float percent);
-    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromTop(androidx.ui.core.Dp offset);
+    method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromTop(androidx.ui.unit.Dp offset);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor.GuidelineAnchor createGuidelineFromTop(float percent);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalChain createHorizontalChain(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ConstrainedLayoutReference![] elements, androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ChainStyle chainStyle = ChainStyle.Spread);
     method public androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor.BarrierAnchor createLeftBarrier(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.ConstrainedLayoutReference... elements);
@@ -672,21 +672,21 @@
 
   public static final class ConstraintSetBuilderScope.HorizontalAnchor.BarrierAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor {
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
   }
 
   public static final class ConstraintSetBuilderScope.HorizontalAnchor.ConstrainedLayoutAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor {
     method public infix void constrainTo(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.HorizontalAnchor other);
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
     property public Object tag;
   }
 
@@ -709,21 +709,21 @@
 
   public static final class ConstraintSetBuilderScope.VerticalAnchor.BarrierAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor {
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
   }
 
   public static final class ConstraintSetBuilderScope.VerticalAnchor.ConstrainedLayoutAnchor extends androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor {
     method public infix void constrainTo(androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope.VerticalAnchor other);
     method public int getIndex$lintWithKotlin();
-    method public androidx.ui.core.Dp getMargin();
+    method public androidx.ui.unit.Dp getMargin();
     method public androidx.constraintlayout.solver.state.State getState$lintWithKotlin();
     method public Object getTag$lintWithKotlin();
-    method public void setMargin(androidx.ui.core.Dp value);
-    property public final androidx.ui.core.Dp margin;
+    method public void setMargin(androidx.ui.unit.Dp value);
+    property public final androidx.ui.unit.Dp margin;
     property public Object tag;
   }
 
diff --git a/ui/ui-layout/integration-tests/layout-demos/src/main/java/androidx/ui/layout/demos/ComplexLayoutDemos.kt b/ui/ui-layout/integration-tests/layout-demos/src/main/java/androidx/ui/layout/demos/ComplexLayoutDemos.kt
index 7a3690b4..2e0fd92 100644
--- a/ui/ui-layout/integration-tests/layout-demos/src/main/java/androidx/ui/layout/demos/ComplexLayoutDemos.kt
+++ b/ui/ui-layout/integration-tests/layout-demos/src/main/java/androidx/ui/layout/demos/ComplexLayoutDemos.kt
@@ -20,39 +20,39 @@
 import androidx.compose.Composable
 import androidx.compose.Model
 import androidx.compose.onCommit
+import androidx.compose.remember
 import androidx.ui.core.Alignment
 import androidx.ui.core.Constraints
 import androidx.ui.core.Draw
 import androidx.ui.core.FirstBaseline
 import androidx.ui.core.HorizontalAlignmentLine
-import androidx.ui.core.IntPx
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.Layout
 import androidx.ui.core.Text
 import androidx.ui.core.VerticalAlignmentLine
 import androidx.ui.core.WithConstraints
 import androidx.ui.core.constrain
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
-import androidx.ui.core.max
-import androidx.ui.core.sp
-import androidx.ui.core.toRect
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
 import androidx.ui.layout.Align
-import androidx.ui.layout.LayoutAlign
 import androidx.ui.layout.AlignmentLineOffset
 import androidx.ui.layout.Column
+import androidx.ui.layout.LayoutAlign
 import androidx.ui.layout.LayoutGravity
 import androidx.ui.layout.LayoutPadding
 import androidx.ui.layout.Padding
 import androidx.ui.layout.Row
 import androidx.ui.layout.Stack
-import androidx.compose.remember
 import androidx.ui.layout.Wrap
 import androidx.ui.layout.samples.DrawRectangle
 import androidx.ui.layout.samples.SizedRectangle
 import androidx.ui.text.TextStyle
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.max
+import androidx.ui.unit.sp
+import androidx.ui.unit.toRect
 
 /**
  * A composable that forces its only child to be as wide as its min intrinsic width.
diff --git a/ui/ui-layout/integration-tests/layout-demos/src/main/java/androidx/ui/layout/demos/ConstraintLayoutActivity.kt b/ui/ui-layout/integration-tests/layout-demos/src/main/java/androidx/ui/layout/demos/ConstraintLayoutActivity.kt
index b24948e..01dd8b3 100644
--- a/ui/ui-layout/integration-tests/layout-demos/src/main/java/androidx/ui/layout/demos/ConstraintLayoutActivity.kt
+++ b/ui/ui-layout/integration-tests/layout-demos/src/main/java/androidx/ui/layout/demos/ConstraintLayoutActivity.kt
@@ -22,16 +22,16 @@
 import androidx.ui.core.Draw
 import androidx.ui.core.LayoutTag
 import androidx.ui.core.Text
-import androidx.ui.core.dp
 import androidx.ui.core.setContent
-import androidx.ui.core.sp
-import androidx.ui.core.toRect
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
 import androidx.ui.layout.constraintlayout.ConstraintLayout
 import androidx.ui.layout.constraintlayout.ConstraintSet
 import androidx.ui.layout.constraintlayout.ConstraintSetBuilderScope
 import androidx.ui.text.TextStyle
+import androidx.ui.unit.dp
+import androidx.ui.unit.sp
+import androidx.ui.unit.toRect
 
 /**
  * Simple ConstraintLayout demo
diff --git a/ui/ui-layout/integration-tests/layout-demos/src/main/java/androidx/ui/layout/demos/LayoutActivity.kt b/ui/ui-layout/integration-tests/layout-demos/src/main/java/androidx/ui/layout/demos/LayoutActivity.kt
index 8e5ab43..7287d7f 100644
--- a/ui/ui-layout/integration-tests/layout-demos/src/main/java/androidx/ui/layout/demos/LayoutActivity.kt
+++ b/ui/ui-layout/integration-tests/layout-demos/src/main/java/androidx/ui/layout/demos/LayoutActivity.kt
@@ -18,25 +18,25 @@
 
 import android.app.Activity
 import android.os.Bundle
-import androidx.ui.core.Dp
-import androidx.ui.core.Text
-import androidx.ui.core.dp
-import androidx.ui.layout.Column
-import androidx.ui.layout.Container
-import androidx.ui.layout.LayoutHeight
-import androidx.ui.layout.Spacer
-import androidx.ui.layout.Row
-import androidx.ui.layout.LayoutWidth
-import androidx.ui.layout.Wrap
-import androidx.ui.graphics.Color
-import androidx.ui.text.TextStyle
 import androidx.compose.Composable
 import androidx.ui.core.Modifier
+import androidx.ui.core.Text
 import androidx.ui.core.setContent
-import androidx.ui.core.sp
+import androidx.ui.graphics.Color
 import androidx.ui.layout.Arrangement
+import androidx.ui.layout.Column
+import androidx.ui.layout.Container
 import androidx.ui.layout.LayoutGravity
+import androidx.ui.layout.LayoutHeight
+import androidx.ui.layout.LayoutWidth
+import androidx.ui.layout.Row
+import androidx.ui.layout.Spacer
+import androidx.ui.layout.Wrap
 import androidx.ui.layout.samples.DrawRectangle
+import androidx.ui.text.TextStyle
+import androidx.ui.unit.Dp
+import androidx.ui.unit.dp
+import androidx.ui.unit.sp
 
 class LayoutActivity : Activity() {
 
diff --git a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/AlignSample.kt b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/AlignSample.kt
index 8abbe94..c85e53b 100644
--- a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/AlignSample.kt
+++ b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/AlignSample.kt
@@ -19,16 +19,16 @@
 import androidx.annotation.Sampled
 import androidx.compose.Composable
 import androidx.ui.core.Alignment
-import androidx.ui.core.dp
 import androidx.ui.graphics.Color
 import androidx.ui.layout.Align
-import androidx.ui.layout.LayoutAlign
 import androidx.ui.layout.Center
 import androidx.ui.layout.Column
+import androidx.ui.layout.LayoutAlign
 import androidx.ui.layout.LayoutGravity
 import androidx.ui.layout.LayoutHeight
 import androidx.ui.layout.LayoutWidth
 import androidx.ui.layout.Row
+import androidx.ui.unit.dp
 
 @Sampled
 @Composable
diff --git a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/AspectRatioSample.kt b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/AspectRatioSample.kt
index 55151bc..13a5d76 100644
--- a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/AspectRatioSample.kt
+++ b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/AspectRatioSample.kt
@@ -18,12 +18,12 @@
 
 import androidx.annotation.Sampled
 import androidx.compose.Composable
-import androidx.ui.core.dp
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.graphics.Color
-import androidx.ui.layout.LayoutAspectRatio
 import androidx.ui.layout.Container
 import androidx.ui.layout.DpConstraints
+import androidx.ui.layout.LayoutAspectRatio
+import androidx.ui.unit.dp
 
 @Sampled
 @Composable
diff --git a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/FlexSample.kt b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/FlexSample.kt
index 92b377d..18f02be1 100644
--- a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/FlexSample.kt
+++ b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/FlexSample.kt
@@ -20,8 +20,6 @@
 import androidx.compose.Composable
 import androidx.ui.core.FirstBaseline
 import androidx.ui.core.Text
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
 import androidx.ui.graphics.Color
 import androidx.ui.layout.Column
 import androidx.ui.layout.Container
@@ -29,6 +27,8 @@
 import androidx.ui.layout.LayoutHeight
 import androidx.ui.layout.Row
 import androidx.ui.text.TextStyle
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
 
 @Sampled
 @Composable
diff --git a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/FlowSample.kt b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/FlowSample.kt
index d7cfac0..09695db 100644
--- a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/FlowSample.kt
+++ b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/FlowSample.kt
@@ -18,10 +18,10 @@
 
 import androidx.annotation.Sampled
 import androidx.compose.Composable
-import androidx.ui.core.dp
 import androidx.ui.graphics.Color
 import androidx.ui.layout.FlowColumn
 import androidx.ui.layout.FlowRow
+import androidx.ui.unit.dp
 
 val sizes = listOf(
     50.dp, 50.dp, 50.dp, 30.dp, 40.dp, 110.dp, 100.dp, 40.dp, 30.dp,
diff --git a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/IntrinsicSample.kt b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/IntrinsicSample.kt
index ad740f9b..ec52991 100644
--- a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/IntrinsicSample.kt
+++ b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/IntrinsicSample.kt
@@ -19,7 +19,6 @@
 import androidx.annotation.Sampled
 import androidx.compose.Composable
 import androidx.ui.core.Text
-import androidx.ui.core.dp
 import androidx.ui.foundation.shape.DrawShape
 import androidx.ui.foundation.shape.RectangleShape
 import androidx.ui.graphics.Color
@@ -35,6 +34,7 @@
 import androidx.ui.layout.MinIntrinsicWidth
 import androidx.ui.layout.Row
 import androidx.ui.layout.Wrap
+import androidx.ui.unit.dp
 
 /**
  * Builds a layout containing three [Container] having the same width as the widest one.
diff --git a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/LayoutPaddingSample.kt b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/LayoutPaddingSample.kt
index 37210ce5..7e33a32 100644
--- a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/LayoutPaddingSample.kt
+++ b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/LayoutPaddingSample.kt
@@ -19,13 +19,13 @@
 import androidx.annotation.Sampled
 import androidx.compose.Composable
 import androidx.ui.core.Alignment
-import androidx.ui.core.dp
 import androidx.ui.graphics.Color
 import androidx.ui.layout.Align
 import androidx.ui.layout.Container
 import androidx.ui.layout.EdgeInsets
 import androidx.ui.layout.LayoutPadding
 import androidx.ui.layout.Padding
+import androidx.ui.unit.dp
 
 @Sampled
 @Composable
diff --git a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/LayoutSample.kt b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/LayoutSample.kt
index b30d4ac..b0c6a29 100644
--- a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/LayoutSample.kt
+++ b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/LayoutSample.kt
@@ -17,16 +17,16 @@
 package androidx.ui.layout.samples
 
 import androidx.compose.Composable
-import androidx.ui.core.Dp
 import androidx.ui.core.Layout
 import androidx.ui.core.Modifier
 import androidx.ui.core.VerticalAlignmentLine
-import androidx.ui.core.ipx
-import androidx.ui.core.max
-import androidx.ui.core.min
 import androidx.ui.foundation.shape.DrawShape
 import androidx.ui.foundation.shape.RectangleShape
 import androidx.ui.graphics.Color
+import androidx.ui.unit.Dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.max
+import androidx.ui.unit.min
 
 /**
  * A rectangle layout that tries to size itself to specified width and height, subject to
diff --git a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/SizeModifierSample.kt b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/SizeModifierSample.kt
index 97b2453..18d0b56 100644
--- a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/SizeModifierSample.kt
+++ b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/SizeModifierSample.kt
@@ -19,18 +19,18 @@
 import androidx.annotation.Sampled
 import androidx.compose.Composable
 import androidx.ui.core.Alignment
-import androidx.ui.core.dp
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.foundation.shape.DrawShape
 import androidx.ui.foundation.shape.RectangleShape
 import androidx.ui.graphics.Color
 import androidx.ui.layout.Align
-import androidx.ui.layout.LayoutAspectRatio
 import androidx.ui.layout.Center
 import androidx.ui.layout.Container
+import androidx.ui.layout.LayoutAspectRatio
 import androidx.ui.layout.LayoutHeight
 import androidx.ui.layout.LayoutSize
 import androidx.ui.layout.LayoutWidth
+import androidx.ui.unit.dp
 
 @Sampled
 @Composable
diff --git a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/SpacerSample.kt b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/SpacerSample.kt
index 6a8ca70..ec217bc 100644
--- a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/SpacerSample.kt
+++ b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/SpacerSample.kt
@@ -18,11 +18,11 @@
 
 import androidx.annotation.Sampled
 import androidx.compose.Composable
-import androidx.ui.core.dp
 import androidx.ui.graphics.Color
+import androidx.ui.layout.LayoutWidth
 import androidx.ui.layout.Row
 import androidx.ui.layout.Spacer
-import androidx.ui.layout.LayoutWidth
+import androidx.ui.unit.dp
 
 @Sampled
 @Composable
diff --git a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/StackSample.kt b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/StackSample.kt
index 67afd8d..812a860 100644
--- a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/StackSample.kt
+++ b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/StackSample.kt
@@ -18,12 +18,12 @@
 
 import androidx.annotation.Sampled
 import androidx.compose.Composable
-import androidx.ui.core.dp
 import androidx.ui.graphics.Color
 import androidx.ui.layout.LayoutGravity
 import androidx.ui.layout.LayoutPadding
 import androidx.ui.layout.LayoutSize
 import androidx.ui.layout.Stack
+import androidx.ui.unit.dp
 
 @Sampled
 @Composable
diff --git a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/TableSample.kt b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/TableSample.kt
index 8ecdd34..9907ea0 100644
--- a/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/TableSample.kt
+++ b/ui/ui-layout/integration-tests/samples/src/main/java/androidx/ui/layout/samples/TableSample.kt
@@ -18,8 +18,6 @@
 
 import androidx.annotation.Sampled
 import androidx.compose.Composable
-import androidx.ui.core.Dp
-import androidx.ui.core.dp
 import androidx.ui.foundation.shape.DrawShape
 import androidx.ui.foundation.shape.corner.CircleShape
 import androidx.ui.graphics.Color
@@ -27,6 +25,8 @@
 import androidx.ui.layout.Padding
 import androidx.ui.layout.Table
 import androidx.ui.layout.TableColumnWidth
+import androidx.ui.unit.Dp
+import androidx.ui.unit.dp
 
 @Sampled
 @Composable
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/AlignTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/AlignTest.kt
index be70f48..40558f3e 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/AlignTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/AlignTest.kt
@@ -16,28 +16,28 @@
 
 package androidx.ui.layout.test
 
-import androidx.test.filters.SmallTest
 import androidx.compose.Composable
+import androidx.test.filters.SmallTest
 import androidx.ui.core.Alignment
 import androidx.ui.core.Constraints
-import androidx.ui.core.IntPx
-import androidx.ui.core.IntPxPosition
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.Layout
-import androidx.ui.core.PxPosition
-import androidx.ui.core.PxSize
 import androidx.ui.core.Ref
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
-import androidx.ui.core.px
-import androidx.ui.core.withDensity
 import androidx.ui.layout.Align
+import androidx.ui.layout.Container
 import androidx.ui.layout.LayoutAlign
 import androidx.ui.layout.LayoutAspectRatio
-import androidx.ui.layout.Container
 import androidx.ui.layout.LayoutHeight
 import androidx.ui.layout.LayoutSize
 import androidx.ui.layout.LayoutWidth
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxPosition
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.px
+import androidx.ui.unit.withDensity
 import org.junit.Assert.assertEquals
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/AlignmentLineTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/AlignmentLineTest.kt
index 13b60d17..9fb2e20 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/AlignmentLineTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/AlignmentLineTest.kt
@@ -20,21 +20,21 @@
 import androidx.ui.core.Constraints
 import androidx.ui.core.HorizontalAlignmentLine
 import androidx.ui.core.Layout
-import androidx.ui.core.PxPosition
-import androidx.ui.core.PxSize
 import androidx.ui.core.Ref
 import androidx.ui.core.VerticalAlignmentLine
 import androidx.ui.core.WithConstraints
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
-import androidx.ui.core.min
-import androidx.ui.core.px
-import androidx.ui.core.toPx
-import androidx.ui.core.withDensity
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.min
+import androidx.ui.unit.px
+import androidx.ui.unit.toPx
+import androidx.ui.unit.withDensity
 import androidx.ui.layout.AlignmentLineOffset
 import androidx.ui.layout.CenterAlignmentLine
 import androidx.ui.layout.DpConstraints
 import androidx.ui.layout.Wrap
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
 import org.junit.Assert
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/AspectRatioModifierTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/AspectRatioModifierTest.kt
index ef08953..9472e05 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/AspectRatioModifierTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/AspectRatioModifierTest.kt
@@ -19,21 +19,20 @@
 import androidx.compose.Composable
 import androidx.test.filters.SmallTest
 import androidx.ui.core.Constraints
-import androidx.ui.core.IntPx
 import androidx.ui.core.Layout
-import androidx.ui.core.PxPosition
-import androidx.ui.core.PxSize
 import androidx.ui.core.Ref
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
-import androidx.ui.core.px
-import androidx.ui.core.withDensity
 import androidx.ui.layout.Container
 import androidx.ui.layout.LayoutAspectRatio
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.px
+import androidx.ui.unit.withDensity
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.junit.runners.JUnit4
-import java.lang.IllegalArgumentException
 import java.util.concurrent.CountDownLatch
 import java.util.concurrent.TimeUnit
 
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/AspectRatioTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/AspectRatioTest.kt
index 14f820f..03cffcdc 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/AspectRatioTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/AspectRatioTest.kt
@@ -21,23 +21,23 @@
 
 import androidx.compose.Composable
 import androidx.test.filters.SmallTest
-import androidx.ui.core.Layout
-import androidx.ui.core.OnChildPositioned
-import androidx.ui.core.PxPosition
-import androidx.ui.core.PxSize
-import androidx.ui.core.Ref
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
-import androidx.ui.core.px
-import androidx.ui.core.withDensity
-import androidx.ui.layout.Align
-import androidx.ui.layout.Container
 import androidx.ui.core.Alignment
 import androidx.ui.core.Constraints
-import androidx.ui.core.IntPx
-import androidx.ui.core.toPx
+import androidx.ui.core.Layout
+import androidx.ui.core.OnChildPositioned
+import androidx.ui.core.Ref
+import androidx.ui.layout.Align
 import androidx.ui.layout.AspectRatio
+import androidx.ui.layout.Container
 import androidx.ui.layout.DpConstraints
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.px
+import androidx.ui.unit.toPx
+import androidx.ui.unit.withDensity
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertNotNull
 import org.junit.Assert.assertTrue
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/ContainerTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/ContainerTest.kt
index d8b5a30..531d7d2 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/ContainerTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/ContainerTest.kt
@@ -16,34 +16,33 @@
 
 package androidx.ui.layout.test
 
+import androidx.compose.Composable
+import androidx.compose.Model
 import androidx.test.filters.SmallTest
-import androidx.ui.core.Dp
+import androidx.ui.core.Alignment
 import androidx.ui.core.Layout
 import androidx.ui.core.LayoutCoordinates
 import androidx.ui.core.OnChildPositioned
 import androidx.ui.core.OnPositioned
-import androidx.ui.core.PxPosition
-import androidx.ui.core.PxSize
 import androidx.ui.core.Ref
-import androidx.ui.core.coerceIn
-import androidx.ui.core.dp
-import androidx.ui.core.px
-import androidx.ui.core.round
-import androidx.ui.core.toPx
-import androidx.ui.core.withDensity
 import androidx.ui.layout.Align
 import androidx.ui.layout.Container
 import androidx.ui.layout.DpConstraints
 import androidx.ui.layout.EdgeInsets
 import androidx.ui.layout.LayoutSize
-import androidx.ui.layout.Spacer
 import androidx.ui.layout.Row
+import androidx.ui.layout.Spacer
 import androidx.ui.layout.Wrap
-import androidx.compose.Composable
-import androidx.compose.Model
-import androidx.ui.core.Alignment
-import androidx.ui.core.IntPx
-import androidx.ui.core.ipx
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.px
+import androidx.ui.unit.round
+import androidx.ui.unit.toPx
+import androidx.ui.unit.withDensity
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertTrue
 import org.junit.Test
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/ExpandedModifierTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/ExpandedModifierTest.kt
index 74aea49..d2bdbc4 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/ExpandedModifierTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/ExpandedModifierTest.kt
@@ -20,24 +20,24 @@
 import androidx.compose.Composable
 import androidx.test.filters.SmallTest
 import androidx.ui.core.Alignment
-import androidx.ui.core.IntPx
 import androidx.ui.core.Layout
 import androidx.ui.core.Modifier
-import androidx.ui.core.PxPosition
-import androidx.ui.core.PxSize
 import androidx.ui.core.Ref
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
-import androidx.ui.core.min
-import androidx.ui.core.toRect
-import androidx.ui.core.withDensity
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.layout.Align
-import androidx.ui.layout.LayoutAspectRatio
 import androidx.ui.layout.Container
+import androidx.ui.layout.LayoutAspectRatio
 import androidx.ui.layout.LayoutHeight
 import androidx.ui.layout.LayoutSize
 import androidx.ui.layout.LayoutWidth
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.min
+import androidx.ui.unit.toRect
+import androidx.ui.unit.withDensity
 import org.junit.Assert
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/FlexTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/FlexTest.kt
index 6967b59..cddeba8 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/FlexTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/FlexTest.kt
@@ -16,47 +16,47 @@
 
 package androidx.ui.layout.test
 
-import androidx.test.filters.SmallTest
-import androidx.ui.core.IntPx
-import androidx.ui.core.LayoutCoordinates
-import androidx.ui.core.PxPosition
-import androidx.ui.core.PxSize
-import androidx.ui.core.Ref
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
-import androidx.ui.core.px
-import androidx.ui.core.round
-import androidx.ui.core.toPx
-import androidx.ui.core.withDensity
-import androidx.ui.layout.DpConstraints
 import androidx.compose.Composable
+import androidx.test.filters.SmallTest
 import androidx.ui.core.Alignment
 import androidx.ui.core.Constraints
-import androidx.ui.core.Dp
 import androidx.ui.core.FirstBaseline
 import androidx.ui.core.HorizontalAlignmentLine
 import androidx.ui.core.Layout
+import androidx.ui.core.LayoutCoordinates
 import androidx.ui.core.Modifier
 import androidx.ui.core.OnChildPositioned
 import androidx.ui.core.OnPositioned
+import androidx.ui.core.Ref
 import androidx.ui.core.VerticalAlignmentLine
 import androidx.ui.core.WithConstraints
 import androidx.ui.core.globalPosition
-import androidx.ui.core.max
-import androidx.ui.core.min
 import androidx.ui.layout.Align
 import androidx.ui.layout.Arrangement
-import androidx.ui.layout.LayoutAspectRatio
 import androidx.ui.layout.Center
 import androidx.ui.layout.Column
 import androidx.ui.layout.Container
+import androidx.ui.layout.DpConstraints
+import androidx.ui.layout.LayoutAspectRatio
 import androidx.ui.layout.LayoutGravity
 import androidx.ui.layout.LayoutHeight
-import androidx.ui.layout.Row
 import androidx.ui.layout.LayoutSize
 import androidx.ui.layout.LayoutWidth
+import androidx.ui.layout.Row
 import androidx.ui.layout.Spacer
 import androidx.ui.layout.Wrap
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.max
+import androidx.ui.unit.min
+import androidx.ui.unit.px
+import androidx.ui.unit.round
+import androidx.ui.unit.toPx
+import androidx.ui.unit.withDensity
 import org.junit.Assert
 import org.junit.Assert.assertNotNull
 import org.junit.Assert.assertTrue
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/FlowTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/FlowTest.kt
index 0948b75..d10aba4 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/FlowTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/FlowTest.kt
@@ -18,13 +18,8 @@
 
 import androidx.test.filters.SmallTest
 import androidx.ui.core.Alignment
-import androidx.ui.core.IntPx
 import androidx.ui.core.OnChildPositioned
-import androidx.ui.core.PxPosition
-import androidx.ui.core.PxSize
 import androidx.ui.core.Ref
-import androidx.ui.core.ipx
-import androidx.ui.core.withDensity
 import androidx.ui.layout.Align
 import androidx.ui.layout.Container
 import androidx.ui.layout.DpConstraints
@@ -33,6 +28,11 @@
 import androidx.ui.layout.FlowMainAxisAlignment
 import androidx.ui.layout.FlowRow
 import androidx.ui.layout.SizeMode
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.ipx
+import androidx.ui.unit.withDensity
 import org.junit.Assert.assertTrue
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/IntrinsicTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/IntrinsicTest.kt
index 3a2130c..dd014a6 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/IntrinsicTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/IntrinsicTest.kt
@@ -19,23 +19,22 @@
 import androidx.compose.Composable
 import androidx.test.filters.SmallTest
 import androidx.ui.core.Alignment
-import androidx.ui.core.Dp
 import androidx.ui.core.Layout
 import androidx.ui.core.OnChildPositioned
-import androidx.ui.core.PxPosition
-import androidx.ui.core.PxSize
 import androidx.ui.core.Ref
-import androidx.ui.core.coerceIn
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
-import androidx.ui.core.px
-import androidx.ui.core.withDensity
 import androidx.ui.layout.Align
 import androidx.ui.layout.DpConstraints
 import androidx.ui.layout.MaxIntrinsicHeight
 import androidx.ui.layout.MaxIntrinsicWidth
 import androidx.ui.layout.MinIntrinsicHeight
 import androidx.ui.layout.MinIntrinsicWidth
+import androidx.ui.unit.Dp
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.px
+import androidx.ui.unit.withDensity
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.junit.runners.JUnit4
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/LayoutPaddingTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/LayoutPaddingTest.kt
index 3b48a15..4fed663 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/LayoutPaddingTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/LayoutPaddingTest.kt
@@ -16,26 +16,26 @@
 
 package androidx.ui.layout.test
 
+import androidx.compose.Composable
 import androidx.test.filters.SmallTest
-import androidx.ui.core.Dp
-import androidx.ui.core.IntPx
+import androidx.ui.core.Layout
+import androidx.ui.core.Modifier
 import androidx.ui.core.OnPositioned
-import androidx.ui.core.PxPosition
-import androidx.ui.core.PxSize
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
-import androidx.ui.core.px
-import androidx.ui.core.toPx
-import androidx.ui.core.withDensity
 import androidx.ui.layout.Center
 import androidx.ui.layout.Container
 import androidx.ui.layout.DpConstraints
-import androidx.compose.Composable
-import androidx.ui.core.Layout
-import androidx.ui.core.Modifier
-import androidx.ui.core.min
 import androidx.ui.layout.LayoutAspectRatio
 import androidx.ui.layout.LayoutPadding
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.min
+import androidx.ui.unit.px
+import androidx.ui.unit.toPx
+import androidx.ui.unit.withDensity
 import org.junit.Assert
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/LayoutTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/LayoutTest.kt
index ab964ac..140e8fe 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/LayoutTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/LayoutTest.kt
@@ -21,28 +21,27 @@
 import android.view.View
 import android.view.ViewGroup
 import android.view.ViewTreeObserver
-import androidx.test.rule.ActivityTestRule
-import androidx.ui.core.AndroidComposeView
-import androidx.ui.core.Density
-import androidx.ui.core.OnPositioned
-import androidx.ui.core.PxPosition
-import androidx.ui.core.PxSize
-import androidx.ui.core.Ref
-import androidx.ui.core.px
 import androidx.compose.Composable
+import androidx.test.rule.ActivityTestRule
 import androidx.ui.core.AlignmentLine
+import androidx.ui.core.AndroidComposeView
 import androidx.ui.core.Constraints
-import androidx.ui.core.IntPx
 import androidx.ui.core.Layout
 import androidx.ui.core.Modifier
-import androidx.ui.core.coerceIn
+import androidx.ui.core.OnPositioned
+import androidx.ui.core.Ref
 import androidx.ui.core.enforce
-import androidx.ui.core.ipx
-import androidx.ui.core.round
 import androidx.ui.core.setContent
-import androidx.ui.core.toPx
 import androidx.ui.layout.Constraints
 import androidx.ui.layout.DpConstraints
+import androidx.ui.unit.Density
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.ipx
+import androidx.ui.unit.px
+import androidx.ui.unit.round
+import androidx.ui.unit.toPx
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertNotNull
 import org.junit.Assert.assertTrue
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/OnPositionedTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/OnPositionedTest.kt
index 7b3aeba..80510fb 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/OnPositionedTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/OnPositionedTest.kt
@@ -25,21 +25,21 @@
 import androidx.ui.core.LayoutCoordinates
 import androidx.ui.core.OnChildPositioned
 import androidx.ui.core.OnPositioned
-import androidx.ui.core.Px
-import androidx.ui.core.PxPosition
 import androidx.ui.core.VerticalAlignmentLine
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
-import androidx.ui.core.min
 import androidx.ui.core.positionInRoot
-import androidx.ui.core.px
 import androidx.ui.core.setContent
-import androidx.ui.core.withDensity
 import androidx.ui.layout.Align
 import androidx.ui.layout.Center
 import androidx.ui.layout.Container
 import androidx.ui.layout.Padding
 import androidx.ui.layout.Row
+import androidx.ui.unit.Px
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.min
+import androidx.ui.unit.px
+import androidx.ui.unit.withDensity
 import com.google.common.truth.Truth.assertThat
 import org.junit.Assert
 import org.junit.Assert.assertTrue
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/PaddingTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/PaddingTest.kt
index ed08e0e..840fff8 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/PaddingTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/PaddingTest.kt
@@ -16,24 +16,24 @@
 
 package androidx.ui.layout.test
 
+import androidx.compose.Composable
 import androidx.test.filters.SmallTest
-import androidx.ui.core.Dp
-import androidx.ui.core.IntPx
 import androidx.ui.core.OnPositioned
-import androidx.ui.core.PxPosition
-import androidx.ui.core.PxSize
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
-import androidx.ui.core.px
-import androidx.ui.core.toPx
-import androidx.ui.core.withDensity
 import androidx.ui.layout.Center
 import androidx.ui.layout.Container
 import androidx.ui.layout.DpConstraints
 import androidx.ui.layout.EdgeInsets
-import androidx.ui.layout.Padding
-import androidx.compose.Composable
 import androidx.ui.layout.LayoutAspectRatio
+import androidx.ui.layout.Padding
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.px
+import androidx.ui.unit.toPx
+import androidx.ui.unit.withDensity
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.junit.runners.JUnit4
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/SizeModifiersTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/SizeModifiersTest.kt
index 2e4951e..94106ad 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/SizeModifiersTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/SizeModifiersTest.kt
@@ -19,15 +19,8 @@
 import androidx.compose.Composable
 import androidx.test.filters.SmallTest
 import androidx.ui.core.Alignment
-import androidx.ui.core.Dp
-import androidx.ui.core.IntPx
 import androidx.ui.core.OnChildPositioned
-import androidx.ui.core.PxPosition
-import androidx.ui.core.PxSize
 import androidx.ui.core.Ref
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
-import androidx.ui.core.withDensity
 import androidx.ui.layout.Align
 import androidx.ui.layout.Column
 import androidx.ui.layout.Container
@@ -36,6 +29,13 @@
 import androidx.ui.layout.LayoutSize
 import androidx.ui.layout.LayoutWidth
 import androidx.ui.layout.Row
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.withDensity
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.junit.runners.JUnit4
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/SpacerTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/SpacerTest.kt
index 31f942b..558e8cf 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/SpacerTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/SpacerTest.kt
@@ -18,18 +18,18 @@
 
 import androidx.test.filters.MediumTest
 import androidx.ui.core.OnChildPositioned
-import androidx.ui.core.PxSize
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
-import androidx.ui.core.round
-import androidx.ui.core.withDensity
 import androidx.ui.layout.Center
 import androidx.ui.layout.Container
 import androidx.ui.layout.DpConstraints
 import androidx.ui.layout.LayoutHeight
-import androidx.ui.layout.Spacer
 import androidx.ui.layout.LayoutSize
 import androidx.ui.layout.LayoutWidth
+import androidx.ui.layout.Spacer
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.round
+import androidx.ui.unit.withDensity
 import com.google.common.truth.Truth
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/StackTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/StackTest.kt
index e71fba4..866c7fa 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/StackTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/StackTest.kt
@@ -19,15 +19,8 @@
 import androidx.compose.Composable
 import androidx.test.filters.SmallTest
 import androidx.ui.core.Alignment
-import androidx.ui.core.IntPx
 import androidx.ui.core.OnChildPositioned
-import androidx.ui.core.PxPosition
-import androidx.ui.core.PxSize
 import androidx.ui.core.Ref
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
-import androidx.ui.core.px
-import androidx.ui.core.withDensity
 import androidx.ui.layout.Align
 import androidx.ui.layout.Container
 import androidx.ui.layout.DpConstraints
@@ -36,6 +29,13 @@
 import androidx.ui.layout.LayoutPadding
 import androidx.ui.layout.LayoutSize
 import androidx.ui.layout.Stack
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.px
+import androidx.ui.unit.withDensity
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.junit.runners.JUnit4
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/TableTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/TableTest.kt
index fb75304..7b58d35 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/TableTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/TableTest.kt
@@ -19,24 +19,23 @@
 import androidx.compose.Composable
 import androidx.test.filters.SmallTest
 import androidx.ui.core.Alignment
-import androidx.ui.core.Density
-import androidx.ui.core.IntPx
 import androidx.ui.core.OnChildPositioned
-import androidx.ui.core.PxPosition
-import androidx.ui.core.PxSize
 import androidx.ui.core.Ref
-import androidx.ui.core.coerceAtLeast
-import androidx.ui.core.ipx
-import androidx.ui.core.max
-import androidx.ui.core.min
-import androidx.ui.core.withDensity
 import androidx.ui.layout.Align
-import androidx.ui.layout.LayoutAspectRatio
 import androidx.ui.layout.Container
 import androidx.ui.layout.DpConstraints
+import androidx.ui.layout.LayoutAspectRatio
 import androidx.ui.layout.Table
 import androidx.ui.layout.TableColumnWidth
 import androidx.ui.layout.TableMeasurable
+import androidx.ui.unit.Density
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.ipx
+import androidx.ui.unit.max
+import androidx.ui.unit.min
+import androidx.ui.unit.withDensity
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.junit.runners.JUnit4
diff --git a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/WrapTest.kt b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/WrapTest.kt
index a718ed0..baf3c92 100644
--- a/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/WrapTest.kt
+++ b/ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/WrapTest.kt
@@ -16,29 +16,29 @@
 
 package androidx.ui.layout.test
 
+import androidx.compose.Composable
 import androidx.test.filters.SmallTest
+import androidx.ui.core.Alignment
+import androidx.ui.core.Constraints
+import androidx.ui.core.Layout
 import androidx.ui.core.OnChildPositioned
-import androidx.ui.core.PxPosition
-import androidx.ui.core.PxSize
+import androidx.ui.core.OnPositioned
 import androidx.ui.core.Ref
-import androidx.ui.core.dp
-import androidx.ui.core.px
-import androidx.ui.core.withDensity
+import androidx.ui.core.enforce
 import androidx.ui.layout.Align
 import androidx.ui.layout.Container
 import androidx.ui.layout.DpConstraints
-import androidx.ui.layout.Wrap
-import androidx.compose.Composable
-import androidx.ui.core.Alignment
-import androidx.ui.core.Constraints
-import androidx.ui.core.IntPx
-import androidx.ui.core.Layout
-import androidx.ui.core.OnPositioned
-import androidx.ui.core.enforce
 import androidx.ui.layout.LayoutAlign
 import androidx.ui.layout.LayoutAspectRatio
 import androidx.ui.layout.LayoutSize
 import androidx.ui.layout.LayoutWrapped
+import androidx.ui.layout.Wrap
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
+import androidx.ui.unit.withDensity
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.junit.runners.JUnit4
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/Align.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/Align.kt
index 8beb58b..63ee82d 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/Align.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/Align.kt
@@ -16,17 +16,17 @@
 
 package androidx.ui.layout
 
-import androidx.ui.core.IntPxSize
-import androidx.ui.core.Layout
-import androidx.ui.core.isFinite
-import androidx.ui.core.looseMin
 import androidx.compose.Composable
 import androidx.ui.core.Alignment
 import androidx.ui.core.Constraints
-import androidx.ui.core.DensityScope
-import androidx.ui.core.IntPxPosition
+import androidx.ui.core.Layout
 import androidx.ui.core.LayoutModifier
-import androidx.ui.core.ipx
+import androidx.ui.core.looseMin
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.IntPxPosition
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.ipx
+import androidx.ui.unit.isFinite
 
 /**
  * A layout that takes a child and aligns it within itself, according to the alignment parameter.
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/AlignmentLine.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/AlignmentLine.kt
index 4811a65..f371d2e 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/AlignmentLine.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/AlignmentLine.kt
@@ -19,14 +19,13 @@
 import androidx.compose.Composable
 import androidx.ui.core.Alignment
 import androidx.ui.core.AlignmentLine
-import androidx.ui.core.Dp
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.Layout
-import androidx.ui.core.coerceIn
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
-import androidx.ui.core.isFinite
-import androidx.ui.core.max
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.isFinite
+import androidx.ui.unit.max
 
 /**
  * Layout composable that takes a child and tries to position it within itself according to
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/AspectRatio.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/AspectRatio.kt
index d39f868..247117c 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/AspectRatio.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/AspectRatio.kt
@@ -19,15 +19,15 @@
 import androidx.annotation.FloatRange
 import androidx.compose.Composable
 import androidx.ui.core.Constraints
-import androidx.ui.core.DensityScope
-import androidx.ui.core.IntPx
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.Layout
 import androidx.ui.core.LayoutModifier
 import androidx.ui.core.Measurable
-import androidx.ui.core.ipx
-import androidx.ui.core.isFinite
 import androidx.ui.core.satisfiedBy
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.ipx
+import androidx.ui.unit.isFinite
 
 /**
  * A layout modifier that attempts to size a layout to match a specified aspect ratio. The layout
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/ConstraintLayout.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/ConstraintLayout.kt
index 29cdffa..5f790f2 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/ConstraintLayout.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/ConstraintLayout.kt
@@ -30,22 +30,22 @@
 import androidx.constraintlayout.solver.widgets.analyzer.BasicMeasure
 import androidx.ui.core.AlignmentLine
 import androidx.ui.core.Constraints
-import androidx.ui.core.DensityScope
-import androidx.ui.core.Dp
 import androidx.ui.core.FirstBaseline
-import androidx.ui.core.IntPx
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.Layout
 import androidx.ui.core.LayoutModifier
 import androidx.ui.core.Measurable
 import androidx.ui.core.ParentDataModifier
 import androidx.ui.core.Placeable
 import androidx.ui.core.Placeable.PlacementScope.place
-import androidx.ui.core.dp
 import androidx.ui.core.hasBoundedHeight
 import androidx.ui.core.hasBoundedWidth
-import androidx.ui.core.ipx
 import androidx.ui.core.tag
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
 
 /**
  * Layout that positions its children according to the constraints between them.
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/Container.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/Container.kt
index eb3700a..6eec551 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/Container.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/Container.kt
@@ -16,24 +16,24 @@
 
 package androidx.ui.layout
 
+import androidx.compose.Composable
 import androidx.ui.core.Alignment
 import androidx.ui.core.Constraints
-import androidx.ui.core.Dp
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.Layout
+import androidx.ui.core.Modifier
 import androidx.ui.core.Placeable
-import androidx.ui.core.dp
 import androidx.ui.core.enforce
 import androidx.ui.core.hasTightHeight
 import androidx.ui.core.hasTightWidth
-import androidx.ui.core.ipx
-import androidx.ui.core.isFinite
 import androidx.ui.core.looseMin
-import androidx.ui.core.max
 import androidx.ui.core.offset
 import androidx.ui.core.withTight
-import androidx.compose.Composable
-import androidx.ui.core.Modifier
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.isFinite
+import androidx.ui.unit.max
 
 /**
  * A convenience composable that combines common layout composables for one child:
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/DpConstraints.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/DpConstraints.kt
index c1f33aa2..16787c6 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/DpConstraints.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/DpConstraints.kt
@@ -18,12 +18,12 @@
 
 import androidx.compose.Immutable
 import androidx.ui.core.Constraints
-import androidx.ui.core.DensityScope
-import androidx.ui.core.Dp
-import androidx.ui.core.coerceAtLeast
-import androidx.ui.core.coerceIn
-import androidx.ui.core.dp
-import androidx.ui.core.isFinite
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.Dp
+import androidx.ui.unit.coerceAtLeast
+import androidx.ui.unit.coerceIn
+import androidx.ui.unit.dp
+import androidx.ui.unit.isFinite
 
 /**
  * Similar to [Constraints], but with constraint values expressed in [Dp].
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/Flex.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/Flex.kt
index 81a34bd..76e5fae 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/Flex.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/Flex.kt
@@ -22,24 +22,24 @@
 import androidx.ui.core.Alignment
 import androidx.ui.core.AlignmentLine
 import androidx.ui.core.Constraints
-import androidx.ui.core.DensityScope
 import androidx.ui.core.HorizontalAlignmentLine
-import androidx.ui.core.IntPx
-import androidx.ui.core.IntPxSize
-import androidx.ui.core.Placeable
-import androidx.ui.core.ipx
-import androidx.ui.core.max
 import androidx.ui.core.IntrinsicMeasurable
 import androidx.ui.core.IntrinsicMeasureBlock
 import androidx.ui.core.Layout
 import androidx.ui.core.Modifier
 import androidx.ui.core.ParentData
 import androidx.ui.core.ParentDataModifier
+import androidx.ui.core.Placeable
 import androidx.ui.core.VerticalAlignmentLine
-import androidx.ui.core.isFinite
-import androidx.ui.core.px
-import androidx.ui.core.round
-import androidx.ui.core.toPx
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.ipx
+import androidx.ui.unit.isFinite
+import androidx.ui.unit.max
+import androidx.ui.unit.px
+import androidx.ui.unit.round
+import androidx.ui.unit.toPx
 
 /**
  * Collects information about the children of a [FlexColumn] or [FlexColumn]
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/Flow.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/Flow.kt
index fcfe41d..220f9fa 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/Flow.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/Flow.kt
@@ -19,14 +19,14 @@
 import androidx.compose.Composable
 import androidx.ui.core.Alignment
 import androidx.ui.core.Constraints
-import androidx.ui.core.Dp
-import androidx.ui.core.IntPx
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.Layout
 import androidx.ui.core.Placeable
-import androidx.ui.core.dp
-import androidx.ui.core.isFinite
-import androidx.ui.core.max
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.isFinite
+import androidx.ui.unit.max
 
 /**
  * A composable that places its children in a horizontal flow. Unlike [Row], if the
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/Intrinsic.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/Intrinsic.kt
index f062534..de48dc3 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/Intrinsic.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/Intrinsic.kt
@@ -20,7 +20,7 @@
 import androidx.ui.core.Constraints
 import androidx.ui.core.Layout
 import androidx.ui.core.enforce
-import androidx.ui.core.ipx
+import androidx.ui.unit.ipx
 
 /**
  * Layout composable that forces its child to be as wide as its min intrinsic width.
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/Padding.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/Padding.kt
index 6bf7452..b97ea47 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/Padding.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/Padding.kt
@@ -16,19 +16,18 @@
 
 package androidx.ui.layout
 
-import androidx.ui.core.Dp
-import androidx.ui.core.dp
-import androidx.ui.core.min
-import androidx.ui.core.offset
 import androidx.compose.Composable
 import androidx.compose.Immutable
 import androidx.ui.core.Constraints
-import androidx.ui.core.DensityScope
-import androidx.ui.core.IntPxPosition
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.Layout
 import androidx.ui.core.LayoutModifier
-import androidx.ui.core.coerceIn
+import androidx.ui.core.offset
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPxPosition
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.min
 
 /**
  * Layout modifier that applies whitespace spacing on specified sides of the target layout.
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/SizeModifiers.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/SizeModifiers.kt
index e03e497..3179784 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/SizeModifiers.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/SizeModifiers.kt
@@ -18,17 +18,16 @@
 
 import androidx.compose.Stable
 import androidx.ui.core.Constraints
-import androidx.ui.core.DensityScope
-import androidx.ui.core.Dp
-import androidx.ui.core.IntPx
 import androidx.ui.core.LayoutModifier
 import androidx.ui.core.Measurable
-import androidx.ui.core.coerceIn
 import androidx.ui.core.enforce
 import androidx.ui.core.hasBoundedHeight
 import androidx.ui.core.hasBoundedWidth
-import androidx.ui.core.isFinite
 import androidx.ui.core.withTight
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.isFinite
 
 private data class SizeModifier(private val modifierConstraints: DpConstraints) : LayoutModifier {
     override fun DensityScope.modifyConstraints(constraints: Constraints) =
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/Stack.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/Stack.kt
index 5879f40..a4099a6 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/Stack.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/Stack.kt
@@ -16,20 +16,20 @@
 
 package androidx.ui.layout
 
-import androidx.ui.core.Constraints
-import androidx.ui.core.IntPx
-import androidx.ui.core.IntPxSize
-import androidx.ui.core.Measurable
-import androidx.ui.core.Placeable
-import androidx.ui.core.looseMin
-import androidx.ui.core.max
 import androidx.compose.Composable
 import androidx.ui.core.Alignment
-import androidx.ui.core.DensityScope
+import androidx.ui.core.Constraints
 import androidx.ui.core.Layout
+import androidx.ui.core.Measurable
 import androidx.ui.core.Modifier
 import androidx.ui.core.ParentDataModifier
-import androidx.ui.core.isFinite
+import androidx.ui.core.Placeable
+import androidx.ui.core.looseMin
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.isFinite
+import androidx.ui.unit.max
 
 /**
  * A composable that positions its children relative to its edges.
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/Table.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/Table.kt
index 0bc5010..12e6b35 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/Table.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/Table.kt
@@ -21,21 +21,21 @@
 import androidx.compose.state
 import androidx.ui.core.Alignment
 import androidx.ui.core.Constraints
-import androidx.ui.core.Density
-import androidx.ui.core.DensityScope
-import androidx.ui.core.Dp
-import androidx.ui.core.IntPx
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.IntrinsicMeasurable
 import androidx.ui.core.IntrinsicMeasureBlock
 import androidx.ui.core.Layout
 import androidx.ui.core.ParentData
 import androidx.ui.core.Placeable
 import androidx.ui.core.constrain
-import androidx.ui.core.isFinite
-import androidx.ui.core.max
-import androidx.ui.core.min
-import androidx.ui.core.withDensity
+import androidx.ui.unit.Density
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.isFinite
+import androidx.ui.unit.max
+import androidx.ui.unit.min
+import androidx.ui.unit.withDensity
 
 /**
  * Collects information about the children of a [Table] when
diff --git a/ui/ui-layout/src/main/java/androidx/ui/layout/Wrap.kt b/ui/ui-layout/src/main/java/androidx/ui/layout/Wrap.kt
index aff79be..fe392c6 100644
--- a/ui/ui-layout/src/main/java/androidx/ui/layout/Wrap.kt
+++ b/ui/ui-layout/src/main/java/androidx/ui/layout/Wrap.kt
@@ -16,17 +16,17 @@
 
 package androidx.ui.layout
 
-import androidx.ui.core.IntPxSize
-import androidx.ui.core.Layout
-import androidx.ui.core.ipx
-import androidx.ui.core.looseMin
-import androidx.ui.core.max
 import androidx.compose.Composable
 import androidx.ui.core.Alignment
 import androidx.ui.core.Constraints
-import androidx.ui.core.DensityScope
-import androidx.ui.core.IntPxPosition
+import androidx.ui.core.Layout
 import androidx.ui.core.LayoutModifier
+import androidx.ui.core.looseMin
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.IntPxPosition
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.ipx
+import androidx.ui.unit.max
 
 /**
  * A layout that expects a child and places it within itself. The child will be measured
diff --git a/ui/ui-layout/src/test/java/androidx/ui/layout/test/DpConstraintsTest.kt b/ui/ui-layout/src/test/java/androidx/ui/layout/test/DpConstraintsTest.kt
index 8af20f8..1e4c879 100644
--- a/ui/ui-layout/src/test/java/androidx/ui/layout/test/DpConstraintsTest.kt
+++ b/ui/ui-layout/src/test/java/androidx/ui/layout/test/DpConstraintsTest.kt
@@ -16,8 +16,6 @@
 
 package androidx.ui.layout.test
 
-import androidx.ui.core.Dp
-import androidx.ui.core.dp
 import androidx.ui.layout.DpConstraints
 import androidx.ui.layout.enforce
 import androidx.ui.layout.hasBoundedHeight
@@ -32,6 +30,8 @@
 import androidx.ui.layout.tightMax
 import androidx.ui.layout.tightMin
 import androidx.ui.layout.withTight
+import androidx.ui.unit.Dp
+import androidx.ui.unit.dp
 import org.junit.Assert.assertFalse
 import org.junit.Assert.assertTrue
 import org.junit.Assert.fail
diff --git a/ui/ui-material/api/0.1.0-dev04.txt b/ui/ui-material/api/0.1.0-dev04.txt
index e4b65f1..f5159c7 100644
--- a/ui/ui-material/api/0.1.0-dev04.txt
+++ b/ui/ui-material/api/0.1.0-dev04.txt
@@ -23,8 +23,8 @@
   }
 
   public static final class BottomAppBar.FabConfiguration {
-    ctor public BottomAppBar.FabConfiguration(internal androidx.ui.material.BottomAppBar.FabPosition fabPosition, internal androidx.ui.engine.geometry.Shape? cutoutShape, internal kotlin.jvm.functions.Function0<kotlin.Unit> fab);
-    method public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.material.BottomAppBar.FabPosition fabPosition, androidx.ui.engine.geometry.Shape? cutoutShape, kotlin.jvm.functions.Function0<kotlin.Unit> fab);
+    ctor public BottomAppBar.FabConfiguration(internal androidx.ui.material.BottomAppBar.FabPosition fabPosition, internal androidx.ui.graphics.Shape? cutoutShape, internal kotlin.jvm.functions.Function0<kotlin.Unit> fab);
+    method public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.material.BottomAppBar.FabPosition fabPosition, androidx.ui.graphics.Shape? cutoutShape, kotlin.jvm.functions.Function0<kotlin.Unit> fab);
   }
 
   public enum BottomAppBar.FabPosition {
@@ -35,26 +35,26 @@
   public final class ButtonKt {
     method public static void Button(androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.material.ButtonStyle style = ContainedButtonStyle(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static void Button(String text, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.material.ButtonStyle style = ContainedButtonStyle());
-    method public static androidx.ui.material.ButtonStyle ContainedButtonStyle(androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().primary, androidx.ui.graphics.Color contentColor = contentColorFor(backgroundColor), androidx.ui.engine.geometry.Shape shape = button, androidx.ui.core.Dp elevation = 2.dp);
-    method public static androidx.ui.material.ButtonStyle OutlinedButtonStyle(androidx.ui.foundation.shape.border.Border border = Border(MaterialTheme.colors().onSurface.copy(OutlinedStrokeOpacity), 1.dp), androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary, androidx.ui.engine.geometry.Shape shape = button, androidx.ui.core.Dp elevation = 0.dp);
-    method public static androidx.ui.material.ButtonStyle TextButtonStyle(androidx.ui.engine.geometry.Shape shape = button, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary);
+    method public static androidx.ui.material.ButtonStyle ContainedButtonStyle(androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().primary, androidx.ui.graphics.Color contentColor = contentColorFor(backgroundColor), androidx.ui.graphics.Shape shape = button, androidx.ui.unit.Dp elevation = 2.dp);
+    method public static androidx.ui.material.ButtonStyle OutlinedButtonStyle(androidx.ui.foundation.shape.border.Border border = Border(MaterialTheme.colors().onSurface.copy(OutlinedStrokeOpacity), 1.dp), androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary, androidx.ui.graphics.Shape shape = button, androidx.ui.unit.Dp elevation = 0.dp);
+    method public static androidx.ui.material.ButtonStyle TextButtonStyle(androidx.ui.graphics.Shape shape = button, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary);
   }
 
   public final class ButtonStyle {
-    ctor public ButtonStyle(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.engine.geometry.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.core.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
+    ctor public ButtonStyle(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.graphics.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.unit.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
     method public androidx.ui.graphics.Color component1();
     method public androidx.ui.graphics.Color component2();
-    method public androidx.ui.engine.geometry.Shape component3();
+    method public androidx.ui.graphics.Shape component3();
     method public androidx.ui.foundation.shape.border.Border? component4();
-    method public androidx.ui.core.Dp component5();
+    method public androidx.ui.unit.Dp component5();
     method public androidx.ui.layout.EdgeInsets component6();
-    method public androidx.ui.material.ButtonStyle copy(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.engine.geometry.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.core.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
+    method public androidx.ui.material.ButtonStyle copy(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.graphics.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.unit.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
     method public androidx.ui.graphics.Color getBackgroundColor();
     method public androidx.ui.foundation.shape.border.Border? getBorder();
     method public androidx.ui.graphics.Color getContentColor();
-    method public androidx.ui.core.Dp getElevation();
+    method public androidx.ui.unit.Dp getElevation();
     method public androidx.ui.layout.EdgeInsets getPaddings();
-    method public androidx.ui.engine.geometry.Shape getShape();
+    method public androidx.ui.graphics.Shape getShape();
   }
 
   public final class CheckboxKt {
@@ -106,7 +106,7 @@
   }
 
   public final class DataTableKt {
-    method public static void DataTable(int columns, kotlin.jvm.functions.Function1<? super java.lang.Integer,java.lang.Boolean> numeric = { false }, androidx.ui.core.Dp dataRowHeight = androidx.ui.material.DataTableKt.DataRowHeight, androidx.ui.core.Dp headerRowHeight = androidx.ui.material.DataTableKt.HeaderRowHeight, androidx.ui.layout.EdgeInsets cellSpacing = androidx.ui.material.DataTableKt.CellSpacing, androidx.ui.foundation.shape.border.Border border = Border(BorderColor, BorderWidth), androidx.ui.graphics.Color selectedColor = MaterialTheme.colors().primary.copy(0.08), androidx.ui.material.DataTablePagination? pagination = null, androidx.ui.material.DataTableSorting? sorting = null, kotlin.jvm.functions.Function1<? super androidx.ui.material.DataTableChildren,kotlin.Unit> block);
+    method public static void DataTable(int columns, kotlin.jvm.functions.Function1<? super java.lang.Integer,java.lang.Boolean> numeric = { false }, androidx.ui.unit.Dp dataRowHeight = androidx.ui.material.DataTableKt.DataRowHeight, androidx.ui.unit.Dp headerRowHeight = androidx.ui.material.DataTableKt.HeaderRowHeight, androidx.ui.layout.EdgeInsets cellSpacing = androidx.ui.material.DataTableKt.CellSpacing, androidx.ui.foundation.shape.border.Border border = Border(BorderColor, BorderWidth), androidx.ui.graphics.Color selectedColor = MaterialTheme.colors().primary.copy(0.08), androidx.ui.material.DataTablePagination? pagination = null, androidx.ui.material.DataTableSorting? sorting = null, kotlin.jvm.functions.Function1<? super androidx.ui.material.DataTableChildren,kotlin.Unit> block);
     method public static androidx.ui.material.DataTablePagination DefaultDataTablePagination(int initialPage = 0, int initialRowsPerPage, java.util.List<java.lang.Integer> availableRowsPerPage);
     method public static androidx.ui.material.DataTableSorting DefaultDataTableSorting(Integer? initialColumn = null, boolean initialAscending = true, java.util.Set<java.lang.Integer> sortableColumns, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Boolean,kotlin.Unit> onSortRequest);
   }
@@ -140,7 +140,7 @@
   }
 
   public final class DividerKt {
-    method public static void Divider(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.core.Dp height = 1.dp, androidx.ui.core.Dp indent = 0.dp);
+    method public static void Divider(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.unit.Dp height = 1.dp, androidx.ui.unit.Dp indent = 0.dp);
   }
 
   public final class DrawerKt {
@@ -176,9 +176,9 @@
   }
 
   public final class FloatingActionButtonKt {
-    method public static void FloatingActionButton(androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.core.Dp minSize = androidx.ui.material.FloatingActionButtonKt.FabSize, androidx.ui.engine.geometry.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.core.Dp elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void FloatingActionButton(androidx.ui.graphics.Image icon, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.engine.geometry.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.core.Dp elevation = 6.dp);
-    method public static void FloatingActionButton(String text, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Image? icon = null, androidx.ui.text.TextStyle? textStyle = null, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.core.Dp elevation = 6.dp);
+    method public static void FloatingActionButton(androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.unit.Dp minSize = androidx.ui.material.FloatingActionButtonKt.FabSize, androidx.ui.graphics.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.unit.Dp elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void FloatingActionButton(androidx.ui.graphics.Image icon, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.unit.Dp elevation = 6.dp);
+    method public static void FloatingActionButton(String text, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Image? icon = null, androidx.ui.text.TextStyle? textStyle = null, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.unit.Dp elevation = 6.dp);
   }
 
   public final class ListItemKt {
@@ -220,13 +220,13 @@
   }
 
   public final class Shapes {
-    ctor public Shapes(androidx.ui.engine.geometry.Shape button, androidx.ui.engine.geometry.Shape card);
+    ctor public Shapes(androidx.ui.graphics.Shape button, androidx.ui.graphics.Shape card);
     ctor public Shapes();
-    method public androidx.ui.engine.geometry.Shape component1();
-    method public androidx.ui.engine.geometry.Shape component2();
-    method public androidx.ui.material.Shapes copy(androidx.ui.engine.geometry.Shape button, androidx.ui.engine.geometry.Shape card);
-    method public androidx.ui.engine.geometry.Shape getButton();
-    method public androidx.ui.engine.geometry.Shape getCard();
+    method public androidx.ui.graphics.Shape component1();
+    method public androidx.ui.graphics.Shape component2();
+    method public androidx.ui.material.Shapes copy(androidx.ui.graphics.Shape button, androidx.ui.graphics.Shape card);
+    method public androidx.ui.graphics.Shape getButton();
+    method public androidx.ui.graphics.Shape getCard();
   }
 
   public final class SliderKt {
@@ -265,13 +265,13 @@
   }
 
   public static final class TabRow.TabPosition {
-    method public androidx.ui.core.IntPx component1();
-    method public androidx.ui.core.IntPx component2();
-    method public androidx.ui.material.TabRow.TabPosition copy(androidx.ui.core.IntPx left, androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx getLeft();
-    method public androidx.ui.core.IntPx getRight();
-    method public androidx.ui.core.IntPx getWidth();
-    property public final androidx.ui.core.IntPx right;
+    method public androidx.ui.unit.IntPx component1();
+    method public androidx.ui.unit.IntPx component2();
+    method public androidx.ui.material.TabRow.TabPosition copy(androidx.ui.unit.IntPx left, androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx getLeft();
+    method public androidx.ui.unit.IntPx getRight();
+    method public androidx.ui.unit.IntPx getWidth();
+    property public final androidx.ui.unit.IntPx right;
   }
 
   public final class Typography {
@@ -321,7 +321,7 @@
 package androidx.ui.material.ripple {
 
   public final class DefaultRippleEffectFactory implements androidx.ui.material.ripple.RippleEffectFactory {
-    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.core.PxPosition startPosition, androidx.ui.core.Density density, androidx.ui.core.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
+    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.unit.PxPosition startPosition, androidx.ui.unit.Density density, androidx.ui.unit.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
     field public static final androidx.ui.material.ripple.DefaultRippleEffectFactory! INSTANCE;
   }
 
@@ -335,11 +335,11 @@
   }
 
   public interface RippleEffectFactory {
-    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.core.PxPosition startPosition, androidx.ui.core.Density density, androidx.ui.core.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
+    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.unit.PxPosition startPosition, androidx.ui.unit.Density density, androidx.ui.unit.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
   }
 
   public final class RippleKt {
-    method public static void Ripple(boolean bounded, androidx.ui.core.Dp? radius = null, androidx.ui.graphics.Color? color = null, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Ripple(boolean bounded, androidx.ui.unit.Dp? radius = null, androidx.ui.graphics.Color? color = null, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class RippleTheme {
@@ -362,11 +362,11 @@
 package androidx.ui.material.surface {
 
   public final class CardKt {
-    method public static void Card(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.engine.geometry.Shape shape = card, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.core.Dp elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Card(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Shape shape = card, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.unit.Dp elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class SurfaceKt {
-    method public static void Surface(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.engine.geometry.Shape shape = RectangleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.core.Dp elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Surface(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Shape shape = RectangleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.unit.Dp elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
 }
diff --git a/ui/ui-material/api/current.txt b/ui/ui-material/api/current.txt
index e4b65f1..f5159c7 100644
--- a/ui/ui-material/api/current.txt
+++ b/ui/ui-material/api/current.txt
@@ -23,8 +23,8 @@
   }
 
   public static final class BottomAppBar.FabConfiguration {
-    ctor public BottomAppBar.FabConfiguration(internal androidx.ui.material.BottomAppBar.FabPosition fabPosition, internal androidx.ui.engine.geometry.Shape? cutoutShape, internal kotlin.jvm.functions.Function0<kotlin.Unit> fab);
-    method public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.material.BottomAppBar.FabPosition fabPosition, androidx.ui.engine.geometry.Shape? cutoutShape, kotlin.jvm.functions.Function0<kotlin.Unit> fab);
+    ctor public BottomAppBar.FabConfiguration(internal androidx.ui.material.BottomAppBar.FabPosition fabPosition, internal androidx.ui.graphics.Shape? cutoutShape, internal kotlin.jvm.functions.Function0<kotlin.Unit> fab);
+    method public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.material.BottomAppBar.FabPosition fabPosition, androidx.ui.graphics.Shape? cutoutShape, kotlin.jvm.functions.Function0<kotlin.Unit> fab);
   }
 
   public enum BottomAppBar.FabPosition {
@@ -35,26 +35,26 @@
   public final class ButtonKt {
     method public static void Button(androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.material.ButtonStyle style = ContainedButtonStyle(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static void Button(String text, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.material.ButtonStyle style = ContainedButtonStyle());
-    method public static androidx.ui.material.ButtonStyle ContainedButtonStyle(androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().primary, androidx.ui.graphics.Color contentColor = contentColorFor(backgroundColor), androidx.ui.engine.geometry.Shape shape = button, androidx.ui.core.Dp elevation = 2.dp);
-    method public static androidx.ui.material.ButtonStyle OutlinedButtonStyle(androidx.ui.foundation.shape.border.Border border = Border(MaterialTheme.colors().onSurface.copy(OutlinedStrokeOpacity), 1.dp), androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary, androidx.ui.engine.geometry.Shape shape = button, androidx.ui.core.Dp elevation = 0.dp);
-    method public static androidx.ui.material.ButtonStyle TextButtonStyle(androidx.ui.engine.geometry.Shape shape = button, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary);
+    method public static androidx.ui.material.ButtonStyle ContainedButtonStyle(androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().primary, androidx.ui.graphics.Color contentColor = contentColorFor(backgroundColor), androidx.ui.graphics.Shape shape = button, androidx.ui.unit.Dp elevation = 2.dp);
+    method public static androidx.ui.material.ButtonStyle OutlinedButtonStyle(androidx.ui.foundation.shape.border.Border border = Border(MaterialTheme.colors().onSurface.copy(OutlinedStrokeOpacity), 1.dp), androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary, androidx.ui.graphics.Shape shape = button, androidx.ui.unit.Dp elevation = 0.dp);
+    method public static androidx.ui.material.ButtonStyle TextButtonStyle(androidx.ui.graphics.Shape shape = button, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary);
   }
 
   public final class ButtonStyle {
-    ctor public ButtonStyle(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.engine.geometry.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.core.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
+    ctor public ButtonStyle(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.graphics.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.unit.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
     method public androidx.ui.graphics.Color component1();
     method public androidx.ui.graphics.Color component2();
-    method public androidx.ui.engine.geometry.Shape component3();
+    method public androidx.ui.graphics.Shape component3();
     method public androidx.ui.foundation.shape.border.Border? component4();
-    method public androidx.ui.core.Dp component5();
+    method public androidx.ui.unit.Dp component5();
     method public androidx.ui.layout.EdgeInsets component6();
-    method public androidx.ui.material.ButtonStyle copy(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.engine.geometry.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.core.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
+    method public androidx.ui.material.ButtonStyle copy(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.graphics.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.unit.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
     method public androidx.ui.graphics.Color getBackgroundColor();
     method public androidx.ui.foundation.shape.border.Border? getBorder();
     method public androidx.ui.graphics.Color getContentColor();
-    method public androidx.ui.core.Dp getElevation();
+    method public androidx.ui.unit.Dp getElevation();
     method public androidx.ui.layout.EdgeInsets getPaddings();
-    method public androidx.ui.engine.geometry.Shape getShape();
+    method public androidx.ui.graphics.Shape getShape();
   }
 
   public final class CheckboxKt {
@@ -106,7 +106,7 @@
   }
 
   public final class DataTableKt {
-    method public static void DataTable(int columns, kotlin.jvm.functions.Function1<? super java.lang.Integer,java.lang.Boolean> numeric = { false }, androidx.ui.core.Dp dataRowHeight = androidx.ui.material.DataTableKt.DataRowHeight, androidx.ui.core.Dp headerRowHeight = androidx.ui.material.DataTableKt.HeaderRowHeight, androidx.ui.layout.EdgeInsets cellSpacing = androidx.ui.material.DataTableKt.CellSpacing, androidx.ui.foundation.shape.border.Border border = Border(BorderColor, BorderWidth), androidx.ui.graphics.Color selectedColor = MaterialTheme.colors().primary.copy(0.08), androidx.ui.material.DataTablePagination? pagination = null, androidx.ui.material.DataTableSorting? sorting = null, kotlin.jvm.functions.Function1<? super androidx.ui.material.DataTableChildren,kotlin.Unit> block);
+    method public static void DataTable(int columns, kotlin.jvm.functions.Function1<? super java.lang.Integer,java.lang.Boolean> numeric = { false }, androidx.ui.unit.Dp dataRowHeight = androidx.ui.material.DataTableKt.DataRowHeight, androidx.ui.unit.Dp headerRowHeight = androidx.ui.material.DataTableKt.HeaderRowHeight, androidx.ui.layout.EdgeInsets cellSpacing = androidx.ui.material.DataTableKt.CellSpacing, androidx.ui.foundation.shape.border.Border border = Border(BorderColor, BorderWidth), androidx.ui.graphics.Color selectedColor = MaterialTheme.colors().primary.copy(0.08), androidx.ui.material.DataTablePagination? pagination = null, androidx.ui.material.DataTableSorting? sorting = null, kotlin.jvm.functions.Function1<? super androidx.ui.material.DataTableChildren,kotlin.Unit> block);
     method public static androidx.ui.material.DataTablePagination DefaultDataTablePagination(int initialPage = 0, int initialRowsPerPage, java.util.List<java.lang.Integer> availableRowsPerPage);
     method public static androidx.ui.material.DataTableSorting DefaultDataTableSorting(Integer? initialColumn = null, boolean initialAscending = true, java.util.Set<java.lang.Integer> sortableColumns, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Boolean,kotlin.Unit> onSortRequest);
   }
@@ -140,7 +140,7 @@
   }
 
   public final class DividerKt {
-    method public static void Divider(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.core.Dp height = 1.dp, androidx.ui.core.Dp indent = 0.dp);
+    method public static void Divider(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.unit.Dp height = 1.dp, androidx.ui.unit.Dp indent = 0.dp);
   }
 
   public final class DrawerKt {
@@ -176,9 +176,9 @@
   }
 
   public final class FloatingActionButtonKt {
-    method public static void FloatingActionButton(androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.core.Dp minSize = androidx.ui.material.FloatingActionButtonKt.FabSize, androidx.ui.engine.geometry.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.core.Dp elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void FloatingActionButton(androidx.ui.graphics.Image icon, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.engine.geometry.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.core.Dp elevation = 6.dp);
-    method public static void FloatingActionButton(String text, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Image? icon = null, androidx.ui.text.TextStyle? textStyle = null, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.core.Dp elevation = 6.dp);
+    method public static void FloatingActionButton(androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.unit.Dp minSize = androidx.ui.material.FloatingActionButtonKt.FabSize, androidx.ui.graphics.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.unit.Dp elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void FloatingActionButton(androidx.ui.graphics.Image icon, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.unit.Dp elevation = 6.dp);
+    method public static void FloatingActionButton(String text, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Image? icon = null, androidx.ui.text.TextStyle? textStyle = null, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.unit.Dp elevation = 6.dp);
   }
 
   public final class ListItemKt {
@@ -220,13 +220,13 @@
   }
 
   public final class Shapes {
-    ctor public Shapes(androidx.ui.engine.geometry.Shape button, androidx.ui.engine.geometry.Shape card);
+    ctor public Shapes(androidx.ui.graphics.Shape button, androidx.ui.graphics.Shape card);
     ctor public Shapes();
-    method public androidx.ui.engine.geometry.Shape component1();
-    method public androidx.ui.engine.geometry.Shape component2();
-    method public androidx.ui.material.Shapes copy(androidx.ui.engine.geometry.Shape button, androidx.ui.engine.geometry.Shape card);
-    method public androidx.ui.engine.geometry.Shape getButton();
-    method public androidx.ui.engine.geometry.Shape getCard();
+    method public androidx.ui.graphics.Shape component1();
+    method public androidx.ui.graphics.Shape component2();
+    method public androidx.ui.material.Shapes copy(androidx.ui.graphics.Shape button, androidx.ui.graphics.Shape card);
+    method public androidx.ui.graphics.Shape getButton();
+    method public androidx.ui.graphics.Shape getCard();
   }
 
   public final class SliderKt {
@@ -265,13 +265,13 @@
   }
 
   public static final class TabRow.TabPosition {
-    method public androidx.ui.core.IntPx component1();
-    method public androidx.ui.core.IntPx component2();
-    method public androidx.ui.material.TabRow.TabPosition copy(androidx.ui.core.IntPx left, androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx getLeft();
-    method public androidx.ui.core.IntPx getRight();
-    method public androidx.ui.core.IntPx getWidth();
-    property public final androidx.ui.core.IntPx right;
+    method public androidx.ui.unit.IntPx component1();
+    method public androidx.ui.unit.IntPx component2();
+    method public androidx.ui.material.TabRow.TabPosition copy(androidx.ui.unit.IntPx left, androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx getLeft();
+    method public androidx.ui.unit.IntPx getRight();
+    method public androidx.ui.unit.IntPx getWidth();
+    property public final androidx.ui.unit.IntPx right;
   }
 
   public final class Typography {
@@ -321,7 +321,7 @@
 package androidx.ui.material.ripple {
 
   public final class DefaultRippleEffectFactory implements androidx.ui.material.ripple.RippleEffectFactory {
-    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.core.PxPosition startPosition, androidx.ui.core.Density density, androidx.ui.core.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
+    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.unit.PxPosition startPosition, androidx.ui.unit.Density density, androidx.ui.unit.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
     field public static final androidx.ui.material.ripple.DefaultRippleEffectFactory! INSTANCE;
   }
 
@@ -335,11 +335,11 @@
   }
 
   public interface RippleEffectFactory {
-    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.core.PxPosition startPosition, androidx.ui.core.Density density, androidx.ui.core.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
+    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.unit.PxPosition startPosition, androidx.ui.unit.Density density, androidx.ui.unit.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
   }
 
   public final class RippleKt {
-    method public static void Ripple(boolean bounded, androidx.ui.core.Dp? radius = null, androidx.ui.graphics.Color? color = null, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Ripple(boolean bounded, androidx.ui.unit.Dp? radius = null, androidx.ui.graphics.Color? color = null, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class RippleTheme {
@@ -362,11 +362,11 @@
 package androidx.ui.material.surface {
 
   public final class CardKt {
-    method public static void Card(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.engine.geometry.Shape shape = card, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.core.Dp elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Card(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Shape shape = card, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.unit.Dp elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class SurfaceKt {
-    method public static void Surface(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.engine.geometry.Shape shape = RectangleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.core.Dp elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Surface(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Shape shape = RectangleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.unit.Dp elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
 }
diff --git a/ui/ui-material/api/public_plus_experimental_0.1.0-dev04.txt b/ui/ui-material/api/public_plus_experimental_0.1.0-dev04.txt
index e4b65f1..f5159c7 100644
--- a/ui/ui-material/api/public_plus_experimental_0.1.0-dev04.txt
+++ b/ui/ui-material/api/public_plus_experimental_0.1.0-dev04.txt
@@ -23,8 +23,8 @@
   }
 
   public static final class BottomAppBar.FabConfiguration {
-    ctor public BottomAppBar.FabConfiguration(internal androidx.ui.material.BottomAppBar.FabPosition fabPosition, internal androidx.ui.engine.geometry.Shape? cutoutShape, internal kotlin.jvm.functions.Function0<kotlin.Unit> fab);
-    method public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.material.BottomAppBar.FabPosition fabPosition, androidx.ui.engine.geometry.Shape? cutoutShape, kotlin.jvm.functions.Function0<kotlin.Unit> fab);
+    ctor public BottomAppBar.FabConfiguration(internal androidx.ui.material.BottomAppBar.FabPosition fabPosition, internal androidx.ui.graphics.Shape? cutoutShape, internal kotlin.jvm.functions.Function0<kotlin.Unit> fab);
+    method public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.material.BottomAppBar.FabPosition fabPosition, androidx.ui.graphics.Shape? cutoutShape, kotlin.jvm.functions.Function0<kotlin.Unit> fab);
   }
 
   public enum BottomAppBar.FabPosition {
@@ -35,26 +35,26 @@
   public final class ButtonKt {
     method public static void Button(androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.material.ButtonStyle style = ContainedButtonStyle(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static void Button(String text, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.material.ButtonStyle style = ContainedButtonStyle());
-    method public static androidx.ui.material.ButtonStyle ContainedButtonStyle(androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().primary, androidx.ui.graphics.Color contentColor = contentColorFor(backgroundColor), androidx.ui.engine.geometry.Shape shape = button, androidx.ui.core.Dp elevation = 2.dp);
-    method public static androidx.ui.material.ButtonStyle OutlinedButtonStyle(androidx.ui.foundation.shape.border.Border border = Border(MaterialTheme.colors().onSurface.copy(OutlinedStrokeOpacity), 1.dp), androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary, androidx.ui.engine.geometry.Shape shape = button, androidx.ui.core.Dp elevation = 0.dp);
-    method public static androidx.ui.material.ButtonStyle TextButtonStyle(androidx.ui.engine.geometry.Shape shape = button, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary);
+    method public static androidx.ui.material.ButtonStyle ContainedButtonStyle(androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().primary, androidx.ui.graphics.Color contentColor = contentColorFor(backgroundColor), androidx.ui.graphics.Shape shape = button, androidx.ui.unit.Dp elevation = 2.dp);
+    method public static androidx.ui.material.ButtonStyle OutlinedButtonStyle(androidx.ui.foundation.shape.border.Border border = Border(MaterialTheme.colors().onSurface.copy(OutlinedStrokeOpacity), 1.dp), androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary, androidx.ui.graphics.Shape shape = button, androidx.ui.unit.Dp elevation = 0.dp);
+    method public static androidx.ui.material.ButtonStyle TextButtonStyle(androidx.ui.graphics.Shape shape = button, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary);
   }
 
   public final class ButtonStyle {
-    ctor public ButtonStyle(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.engine.geometry.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.core.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
+    ctor public ButtonStyle(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.graphics.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.unit.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
     method public androidx.ui.graphics.Color component1();
     method public androidx.ui.graphics.Color component2();
-    method public androidx.ui.engine.geometry.Shape component3();
+    method public androidx.ui.graphics.Shape component3();
     method public androidx.ui.foundation.shape.border.Border? component4();
-    method public androidx.ui.core.Dp component5();
+    method public androidx.ui.unit.Dp component5();
     method public androidx.ui.layout.EdgeInsets component6();
-    method public androidx.ui.material.ButtonStyle copy(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.engine.geometry.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.core.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
+    method public androidx.ui.material.ButtonStyle copy(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.graphics.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.unit.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
     method public androidx.ui.graphics.Color getBackgroundColor();
     method public androidx.ui.foundation.shape.border.Border? getBorder();
     method public androidx.ui.graphics.Color getContentColor();
-    method public androidx.ui.core.Dp getElevation();
+    method public androidx.ui.unit.Dp getElevation();
     method public androidx.ui.layout.EdgeInsets getPaddings();
-    method public androidx.ui.engine.geometry.Shape getShape();
+    method public androidx.ui.graphics.Shape getShape();
   }
 
   public final class CheckboxKt {
@@ -106,7 +106,7 @@
   }
 
   public final class DataTableKt {
-    method public static void DataTable(int columns, kotlin.jvm.functions.Function1<? super java.lang.Integer,java.lang.Boolean> numeric = { false }, androidx.ui.core.Dp dataRowHeight = androidx.ui.material.DataTableKt.DataRowHeight, androidx.ui.core.Dp headerRowHeight = androidx.ui.material.DataTableKt.HeaderRowHeight, androidx.ui.layout.EdgeInsets cellSpacing = androidx.ui.material.DataTableKt.CellSpacing, androidx.ui.foundation.shape.border.Border border = Border(BorderColor, BorderWidth), androidx.ui.graphics.Color selectedColor = MaterialTheme.colors().primary.copy(0.08), androidx.ui.material.DataTablePagination? pagination = null, androidx.ui.material.DataTableSorting? sorting = null, kotlin.jvm.functions.Function1<? super androidx.ui.material.DataTableChildren,kotlin.Unit> block);
+    method public static void DataTable(int columns, kotlin.jvm.functions.Function1<? super java.lang.Integer,java.lang.Boolean> numeric = { false }, androidx.ui.unit.Dp dataRowHeight = androidx.ui.material.DataTableKt.DataRowHeight, androidx.ui.unit.Dp headerRowHeight = androidx.ui.material.DataTableKt.HeaderRowHeight, androidx.ui.layout.EdgeInsets cellSpacing = androidx.ui.material.DataTableKt.CellSpacing, androidx.ui.foundation.shape.border.Border border = Border(BorderColor, BorderWidth), androidx.ui.graphics.Color selectedColor = MaterialTheme.colors().primary.copy(0.08), androidx.ui.material.DataTablePagination? pagination = null, androidx.ui.material.DataTableSorting? sorting = null, kotlin.jvm.functions.Function1<? super androidx.ui.material.DataTableChildren,kotlin.Unit> block);
     method public static androidx.ui.material.DataTablePagination DefaultDataTablePagination(int initialPage = 0, int initialRowsPerPage, java.util.List<java.lang.Integer> availableRowsPerPage);
     method public static androidx.ui.material.DataTableSorting DefaultDataTableSorting(Integer? initialColumn = null, boolean initialAscending = true, java.util.Set<java.lang.Integer> sortableColumns, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Boolean,kotlin.Unit> onSortRequest);
   }
@@ -140,7 +140,7 @@
   }
 
   public final class DividerKt {
-    method public static void Divider(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.core.Dp height = 1.dp, androidx.ui.core.Dp indent = 0.dp);
+    method public static void Divider(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.unit.Dp height = 1.dp, androidx.ui.unit.Dp indent = 0.dp);
   }
 
   public final class DrawerKt {
@@ -176,9 +176,9 @@
   }
 
   public final class FloatingActionButtonKt {
-    method public static void FloatingActionButton(androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.core.Dp minSize = androidx.ui.material.FloatingActionButtonKt.FabSize, androidx.ui.engine.geometry.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.core.Dp elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void FloatingActionButton(androidx.ui.graphics.Image icon, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.engine.geometry.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.core.Dp elevation = 6.dp);
-    method public static void FloatingActionButton(String text, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Image? icon = null, androidx.ui.text.TextStyle? textStyle = null, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.core.Dp elevation = 6.dp);
+    method public static void FloatingActionButton(androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.unit.Dp minSize = androidx.ui.material.FloatingActionButtonKt.FabSize, androidx.ui.graphics.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.unit.Dp elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void FloatingActionButton(androidx.ui.graphics.Image icon, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.unit.Dp elevation = 6.dp);
+    method public static void FloatingActionButton(String text, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Image? icon = null, androidx.ui.text.TextStyle? textStyle = null, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.unit.Dp elevation = 6.dp);
   }
 
   public final class ListItemKt {
@@ -220,13 +220,13 @@
   }
 
   public final class Shapes {
-    ctor public Shapes(androidx.ui.engine.geometry.Shape button, androidx.ui.engine.geometry.Shape card);
+    ctor public Shapes(androidx.ui.graphics.Shape button, androidx.ui.graphics.Shape card);
     ctor public Shapes();
-    method public androidx.ui.engine.geometry.Shape component1();
-    method public androidx.ui.engine.geometry.Shape component2();
-    method public androidx.ui.material.Shapes copy(androidx.ui.engine.geometry.Shape button, androidx.ui.engine.geometry.Shape card);
-    method public androidx.ui.engine.geometry.Shape getButton();
-    method public androidx.ui.engine.geometry.Shape getCard();
+    method public androidx.ui.graphics.Shape component1();
+    method public androidx.ui.graphics.Shape component2();
+    method public androidx.ui.material.Shapes copy(androidx.ui.graphics.Shape button, androidx.ui.graphics.Shape card);
+    method public androidx.ui.graphics.Shape getButton();
+    method public androidx.ui.graphics.Shape getCard();
   }
 
   public final class SliderKt {
@@ -265,13 +265,13 @@
   }
 
   public static final class TabRow.TabPosition {
-    method public androidx.ui.core.IntPx component1();
-    method public androidx.ui.core.IntPx component2();
-    method public androidx.ui.material.TabRow.TabPosition copy(androidx.ui.core.IntPx left, androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx getLeft();
-    method public androidx.ui.core.IntPx getRight();
-    method public androidx.ui.core.IntPx getWidth();
-    property public final androidx.ui.core.IntPx right;
+    method public androidx.ui.unit.IntPx component1();
+    method public androidx.ui.unit.IntPx component2();
+    method public androidx.ui.material.TabRow.TabPosition copy(androidx.ui.unit.IntPx left, androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx getLeft();
+    method public androidx.ui.unit.IntPx getRight();
+    method public androidx.ui.unit.IntPx getWidth();
+    property public final androidx.ui.unit.IntPx right;
   }
 
   public final class Typography {
@@ -321,7 +321,7 @@
 package androidx.ui.material.ripple {
 
   public final class DefaultRippleEffectFactory implements androidx.ui.material.ripple.RippleEffectFactory {
-    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.core.PxPosition startPosition, androidx.ui.core.Density density, androidx.ui.core.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
+    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.unit.PxPosition startPosition, androidx.ui.unit.Density density, androidx.ui.unit.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
     field public static final androidx.ui.material.ripple.DefaultRippleEffectFactory! INSTANCE;
   }
 
@@ -335,11 +335,11 @@
   }
 
   public interface RippleEffectFactory {
-    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.core.PxPosition startPosition, androidx.ui.core.Density density, androidx.ui.core.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
+    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.unit.PxPosition startPosition, androidx.ui.unit.Density density, androidx.ui.unit.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
   }
 
   public final class RippleKt {
-    method public static void Ripple(boolean bounded, androidx.ui.core.Dp? radius = null, androidx.ui.graphics.Color? color = null, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Ripple(boolean bounded, androidx.ui.unit.Dp? radius = null, androidx.ui.graphics.Color? color = null, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class RippleTheme {
@@ -362,11 +362,11 @@
 package androidx.ui.material.surface {
 
   public final class CardKt {
-    method public static void Card(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.engine.geometry.Shape shape = card, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.core.Dp elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Card(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Shape shape = card, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.unit.Dp elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class SurfaceKt {
-    method public static void Surface(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.engine.geometry.Shape shape = RectangleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.core.Dp elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Surface(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Shape shape = RectangleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.unit.Dp elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
 }
diff --git a/ui/ui-material/api/public_plus_experimental_current.txt b/ui/ui-material/api/public_plus_experimental_current.txt
index e4b65f1..f5159c7 100644
--- a/ui/ui-material/api/public_plus_experimental_current.txt
+++ b/ui/ui-material/api/public_plus_experimental_current.txt
@@ -23,8 +23,8 @@
   }
 
   public static final class BottomAppBar.FabConfiguration {
-    ctor public BottomAppBar.FabConfiguration(internal androidx.ui.material.BottomAppBar.FabPosition fabPosition, internal androidx.ui.engine.geometry.Shape? cutoutShape, internal kotlin.jvm.functions.Function0<kotlin.Unit> fab);
-    method public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.material.BottomAppBar.FabPosition fabPosition, androidx.ui.engine.geometry.Shape? cutoutShape, kotlin.jvm.functions.Function0<kotlin.Unit> fab);
+    ctor public BottomAppBar.FabConfiguration(internal androidx.ui.material.BottomAppBar.FabPosition fabPosition, internal androidx.ui.graphics.Shape? cutoutShape, internal kotlin.jvm.functions.Function0<kotlin.Unit> fab);
+    method public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.material.BottomAppBar.FabPosition fabPosition, androidx.ui.graphics.Shape? cutoutShape, kotlin.jvm.functions.Function0<kotlin.Unit> fab);
   }
 
   public enum BottomAppBar.FabPosition {
@@ -35,26 +35,26 @@
   public final class ButtonKt {
     method public static void Button(androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.material.ButtonStyle style = ContainedButtonStyle(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static void Button(String text, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.material.ButtonStyle style = ContainedButtonStyle());
-    method public static androidx.ui.material.ButtonStyle ContainedButtonStyle(androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().primary, androidx.ui.graphics.Color contentColor = contentColorFor(backgroundColor), androidx.ui.engine.geometry.Shape shape = button, androidx.ui.core.Dp elevation = 2.dp);
-    method public static androidx.ui.material.ButtonStyle OutlinedButtonStyle(androidx.ui.foundation.shape.border.Border border = Border(MaterialTheme.colors().onSurface.copy(OutlinedStrokeOpacity), 1.dp), androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary, androidx.ui.engine.geometry.Shape shape = button, androidx.ui.core.Dp elevation = 0.dp);
-    method public static androidx.ui.material.ButtonStyle TextButtonStyle(androidx.ui.engine.geometry.Shape shape = button, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary);
+    method public static androidx.ui.material.ButtonStyle ContainedButtonStyle(androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().primary, androidx.ui.graphics.Color contentColor = contentColorFor(backgroundColor), androidx.ui.graphics.Shape shape = button, androidx.ui.unit.Dp elevation = 2.dp);
+    method public static androidx.ui.material.ButtonStyle OutlinedButtonStyle(androidx.ui.foundation.shape.border.Border border = Border(MaterialTheme.colors().onSurface.copy(OutlinedStrokeOpacity), 1.dp), androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary, androidx.ui.graphics.Shape shape = button, androidx.ui.unit.Dp elevation = 0.dp);
+    method public static androidx.ui.material.ButtonStyle TextButtonStyle(androidx.ui.graphics.Shape shape = button, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary);
   }
 
   public final class ButtonStyle {
-    ctor public ButtonStyle(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.engine.geometry.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.core.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
+    ctor public ButtonStyle(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.graphics.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.unit.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
     method public androidx.ui.graphics.Color component1();
     method public androidx.ui.graphics.Color component2();
-    method public androidx.ui.engine.geometry.Shape component3();
+    method public androidx.ui.graphics.Shape component3();
     method public androidx.ui.foundation.shape.border.Border? component4();
-    method public androidx.ui.core.Dp component5();
+    method public androidx.ui.unit.Dp component5();
     method public androidx.ui.layout.EdgeInsets component6();
-    method public androidx.ui.material.ButtonStyle copy(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.engine.geometry.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.core.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
+    method public androidx.ui.material.ButtonStyle copy(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.graphics.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.unit.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
     method public androidx.ui.graphics.Color getBackgroundColor();
     method public androidx.ui.foundation.shape.border.Border? getBorder();
     method public androidx.ui.graphics.Color getContentColor();
-    method public androidx.ui.core.Dp getElevation();
+    method public androidx.ui.unit.Dp getElevation();
     method public androidx.ui.layout.EdgeInsets getPaddings();
-    method public androidx.ui.engine.geometry.Shape getShape();
+    method public androidx.ui.graphics.Shape getShape();
   }
 
   public final class CheckboxKt {
@@ -106,7 +106,7 @@
   }
 
   public final class DataTableKt {
-    method public static void DataTable(int columns, kotlin.jvm.functions.Function1<? super java.lang.Integer,java.lang.Boolean> numeric = { false }, androidx.ui.core.Dp dataRowHeight = androidx.ui.material.DataTableKt.DataRowHeight, androidx.ui.core.Dp headerRowHeight = androidx.ui.material.DataTableKt.HeaderRowHeight, androidx.ui.layout.EdgeInsets cellSpacing = androidx.ui.material.DataTableKt.CellSpacing, androidx.ui.foundation.shape.border.Border border = Border(BorderColor, BorderWidth), androidx.ui.graphics.Color selectedColor = MaterialTheme.colors().primary.copy(0.08), androidx.ui.material.DataTablePagination? pagination = null, androidx.ui.material.DataTableSorting? sorting = null, kotlin.jvm.functions.Function1<? super androidx.ui.material.DataTableChildren,kotlin.Unit> block);
+    method public static void DataTable(int columns, kotlin.jvm.functions.Function1<? super java.lang.Integer,java.lang.Boolean> numeric = { false }, androidx.ui.unit.Dp dataRowHeight = androidx.ui.material.DataTableKt.DataRowHeight, androidx.ui.unit.Dp headerRowHeight = androidx.ui.material.DataTableKt.HeaderRowHeight, androidx.ui.layout.EdgeInsets cellSpacing = androidx.ui.material.DataTableKt.CellSpacing, androidx.ui.foundation.shape.border.Border border = Border(BorderColor, BorderWidth), androidx.ui.graphics.Color selectedColor = MaterialTheme.colors().primary.copy(0.08), androidx.ui.material.DataTablePagination? pagination = null, androidx.ui.material.DataTableSorting? sorting = null, kotlin.jvm.functions.Function1<? super androidx.ui.material.DataTableChildren,kotlin.Unit> block);
     method public static androidx.ui.material.DataTablePagination DefaultDataTablePagination(int initialPage = 0, int initialRowsPerPage, java.util.List<java.lang.Integer> availableRowsPerPage);
     method public static androidx.ui.material.DataTableSorting DefaultDataTableSorting(Integer? initialColumn = null, boolean initialAscending = true, java.util.Set<java.lang.Integer> sortableColumns, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Boolean,kotlin.Unit> onSortRequest);
   }
@@ -140,7 +140,7 @@
   }
 
   public final class DividerKt {
-    method public static void Divider(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.core.Dp height = 1.dp, androidx.ui.core.Dp indent = 0.dp);
+    method public static void Divider(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.unit.Dp height = 1.dp, androidx.ui.unit.Dp indent = 0.dp);
   }
 
   public final class DrawerKt {
@@ -176,9 +176,9 @@
   }
 
   public final class FloatingActionButtonKt {
-    method public static void FloatingActionButton(androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.core.Dp minSize = androidx.ui.material.FloatingActionButtonKt.FabSize, androidx.ui.engine.geometry.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.core.Dp elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void FloatingActionButton(androidx.ui.graphics.Image icon, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.engine.geometry.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.core.Dp elevation = 6.dp);
-    method public static void FloatingActionButton(String text, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Image? icon = null, androidx.ui.text.TextStyle? textStyle = null, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.core.Dp elevation = 6.dp);
+    method public static void FloatingActionButton(androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.unit.Dp minSize = androidx.ui.material.FloatingActionButtonKt.FabSize, androidx.ui.graphics.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.unit.Dp elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void FloatingActionButton(androidx.ui.graphics.Image icon, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.unit.Dp elevation = 6.dp);
+    method public static void FloatingActionButton(String text, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Image? icon = null, androidx.ui.text.TextStyle? textStyle = null, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.unit.Dp elevation = 6.dp);
   }
 
   public final class ListItemKt {
@@ -220,13 +220,13 @@
   }
 
   public final class Shapes {
-    ctor public Shapes(androidx.ui.engine.geometry.Shape button, androidx.ui.engine.geometry.Shape card);
+    ctor public Shapes(androidx.ui.graphics.Shape button, androidx.ui.graphics.Shape card);
     ctor public Shapes();
-    method public androidx.ui.engine.geometry.Shape component1();
-    method public androidx.ui.engine.geometry.Shape component2();
-    method public androidx.ui.material.Shapes copy(androidx.ui.engine.geometry.Shape button, androidx.ui.engine.geometry.Shape card);
-    method public androidx.ui.engine.geometry.Shape getButton();
-    method public androidx.ui.engine.geometry.Shape getCard();
+    method public androidx.ui.graphics.Shape component1();
+    method public androidx.ui.graphics.Shape component2();
+    method public androidx.ui.material.Shapes copy(androidx.ui.graphics.Shape button, androidx.ui.graphics.Shape card);
+    method public androidx.ui.graphics.Shape getButton();
+    method public androidx.ui.graphics.Shape getCard();
   }
 
   public final class SliderKt {
@@ -265,13 +265,13 @@
   }
 
   public static final class TabRow.TabPosition {
-    method public androidx.ui.core.IntPx component1();
-    method public androidx.ui.core.IntPx component2();
-    method public androidx.ui.material.TabRow.TabPosition copy(androidx.ui.core.IntPx left, androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx getLeft();
-    method public androidx.ui.core.IntPx getRight();
-    method public androidx.ui.core.IntPx getWidth();
-    property public final androidx.ui.core.IntPx right;
+    method public androidx.ui.unit.IntPx component1();
+    method public androidx.ui.unit.IntPx component2();
+    method public androidx.ui.material.TabRow.TabPosition copy(androidx.ui.unit.IntPx left, androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx getLeft();
+    method public androidx.ui.unit.IntPx getRight();
+    method public androidx.ui.unit.IntPx getWidth();
+    property public final androidx.ui.unit.IntPx right;
   }
 
   public final class Typography {
@@ -321,7 +321,7 @@
 package androidx.ui.material.ripple {
 
   public final class DefaultRippleEffectFactory implements androidx.ui.material.ripple.RippleEffectFactory {
-    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.core.PxPosition startPosition, androidx.ui.core.Density density, androidx.ui.core.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
+    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.unit.PxPosition startPosition, androidx.ui.unit.Density density, androidx.ui.unit.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
     field public static final androidx.ui.material.ripple.DefaultRippleEffectFactory! INSTANCE;
   }
 
@@ -335,11 +335,11 @@
   }
 
   public interface RippleEffectFactory {
-    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.core.PxPosition startPosition, androidx.ui.core.Density density, androidx.ui.core.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
+    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.unit.PxPosition startPosition, androidx.ui.unit.Density density, androidx.ui.unit.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
   }
 
   public final class RippleKt {
-    method public static void Ripple(boolean bounded, androidx.ui.core.Dp? radius = null, androidx.ui.graphics.Color? color = null, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Ripple(boolean bounded, androidx.ui.unit.Dp? radius = null, androidx.ui.graphics.Color? color = null, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class RippleTheme {
@@ -362,11 +362,11 @@
 package androidx.ui.material.surface {
 
   public final class CardKt {
-    method public static void Card(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.engine.geometry.Shape shape = card, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.core.Dp elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Card(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Shape shape = card, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.unit.Dp elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class SurfaceKt {
-    method public static void Surface(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.engine.geometry.Shape shape = RectangleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.core.Dp elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Surface(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Shape shape = RectangleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.unit.Dp elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
 }
diff --git a/ui/ui-material/api/restricted_0.1.0-dev04.txt b/ui/ui-material/api/restricted_0.1.0-dev04.txt
index e4b65f1..f5159c7 100644
--- a/ui/ui-material/api/restricted_0.1.0-dev04.txt
+++ b/ui/ui-material/api/restricted_0.1.0-dev04.txt
@@ -23,8 +23,8 @@
   }
 
   public static final class BottomAppBar.FabConfiguration {
-    ctor public BottomAppBar.FabConfiguration(internal androidx.ui.material.BottomAppBar.FabPosition fabPosition, internal androidx.ui.engine.geometry.Shape? cutoutShape, internal kotlin.jvm.functions.Function0<kotlin.Unit> fab);
-    method public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.material.BottomAppBar.FabPosition fabPosition, androidx.ui.engine.geometry.Shape? cutoutShape, kotlin.jvm.functions.Function0<kotlin.Unit> fab);
+    ctor public BottomAppBar.FabConfiguration(internal androidx.ui.material.BottomAppBar.FabPosition fabPosition, internal androidx.ui.graphics.Shape? cutoutShape, internal kotlin.jvm.functions.Function0<kotlin.Unit> fab);
+    method public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.material.BottomAppBar.FabPosition fabPosition, androidx.ui.graphics.Shape? cutoutShape, kotlin.jvm.functions.Function0<kotlin.Unit> fab);
   }
 
   public enum BottomAppBar.FabPosition {
@@ -35,26 +35,26 @@
   public final class ButtonKt {
     method public static void Button(androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.material.ButtonStyle style = ContainedButtonStyle(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static void Button(String text, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.material.ButtonStyle style = ContainedButtonStyle());
-    method public static androidx.ui.material.ButtonStyle ContainedButtonStyle(androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().primary, androidx.ui.graphics.Color contentColor = contentColorFor(backgroundColor), androidx.ui.engine.geometry.Shape shape = button, androidx.ui.core.Dp elevation = 2.dp);
-    method public static androidx.ui.material.ButtonStyle OutlinedButtonStyle(androidx.ui.foundation.shape.border.Border border = Border(MaterialTheme.colors().onSurface.copy(OutlinedStrokeOpacity), 1.dp), androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary, androidx.ui.engine.geometry.Shape shape = button, androidx.ui.core.Dp elevation = 0.dp);
-    method public static androidx.ui.material.ButtonStyle TextButtonStyle(androidx.ui.engine.geometry.Shape shape = button, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary);
+    method public static androidx.ui.material.ButtonStyle ContainedButtonStyle(androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().primary, androidx.ui.graphics.Color contentColor = contentColorFor(backgroundColor), androidx.ui.graphics.Shape shape = button, androidx.ui.unit.Dp elevation = 2.dp);
+    method public static androidx.ui.material.ButtonStyle OutlinedButtonStyle(androidx.ui.foundation.shape.border.Border border = Border(MaterialTheme.colors().onSurface.copy(OutlinedStrokeOpacity), 1.dp), androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary, androidx.ui.graphics.Shape shape = button, androidx.ui.unit.Dp elevation = 0.dp);
+    method public static androidx.ui.material.ButtonStyle TextButtonStyle(androidx.ui.graphics.Shape shape = button, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary);
   }
 
   public final class ButtonStyle {
-    ctor public ButtonStyle(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.engine.geometry.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.core.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
+    ctor public ButtonStyle(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.graphics.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.unit.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
     method public androidx.ui.graphics.Color component1();
     method public androidx.ui.graphics.Color component2();
-    method public androidx.ui.engine.geometry.Shape component3();
+    method public androidx.ui.graphics.Shape component3();
     method public androidx.ui.foundation.shape.border.Border? component4();
-    method public androidx.ui.core.Dp component5();
+    method public androidx.ui.unit.Dp component5();
     method public androidx.ui.layout.EdgeInsets component6();
-    method public androidx.ui.material.ButtonStyle copy(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.engine.geometry.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.core.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
+    method public androidx.ui.material.ButtonStyle copy(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.graphics.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.unit.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
     method public androidx.ui.graphics.Color getBackgroundColor();
     method public androidx.ui.foundation.shape.border.Border? getBorder();
     method public androidx.ui.graphics.Color getContentColor();
-    method public androidx.ui.core.Dp getElevation();
+    method public androidx.ui.unit.Dp getElevation();
     method public androidx.ui.layout.EdgeInsets getPaddings();
-    method public androidx.ui.engine.geometry.Shape getShape();
+    method public androidx.ui.graphics.Shape getShape();
   }
 
   public final class CheckboxKt {
@@ -106,7 +106,7 @@
   }
 
   public final class DataTableKt {
-    method public static void DataTable(int columns, kotlin.jvm.functions.Function1<? super java.lang.Integer,java.lang.Boolean> numeric = { false }, androidx.ui.core.Dp dataRowHeight = androidx.ui.material.DataTableKt.DataRowHeight, androidx.ui.core.Dp headerRowHeight = androidx.ui.material.DataTableKt.HeaderRowHeight, androidx.ui.layout.EdgeInsets cellSpacing = androidx.ui.material.DataTableKt.CellSpacing, androidx.ui.foundation.shape.border.Border border = Border(BorderColor, BorderWidth), androidx.ui.graphics.Color selectedColor = MaterialTheme.colors().primary.copy(0.08), androidx.ui.material.DataTablePagination? pagination = null, androidx.ui.material.DataTableSorting? sorting = null, kotlin.jvm.functions.Function1<? super androidx.ui.material.DataTableChildren,kotlin.Unit> block);
+    method public static void DataTable(int columns, kotlin.jvm.functions.Function1<? super java.lang.Integer,java.lang.Boolean> numeric = { false }, androidx.ui.unit.Dp dataRowHeight = androidx.ui.material.DataTableKt.DataRowHeight, androidx.ui.unit.Dp headerRowHeight = androidx.ui.material.DataTableKt.HeaderRowHeight, androidx.ui.layout.EdgeInsets cellSpacing = androidx.ui.material.DataTableKt.CellSpacing, androidx.ui.foundation.shape.border.Border border = Border(BorderColor, BorderWidth), androidx.ui.graphics.Color selectedColor = MaterialTheme.colors().primary.copy(0.08), androidx.ui.material.DataTablePagination? pagination = null, androidx.ui.material.DataTableSorting? sorting = null, kotlin.jvm.functions.Function1<? super androidx.ui.material.DataTableChildren,kotlin.Unit> block);
     method public static androidx.ui.material.DataTablePagination DefaultDataTablePagination(int initialPage = 0, int initialRowsPerPage, java.util.List<java.lang.Integer> availableRowsPerPage);
     method public static androidx.ui.material.DataTableSorting DefaultDataTableSorting(Integer? initialColumn = null, boolean initialAscending = true, java.util.Set<java.lang.Integer> sortableColumns, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Boolean,kotlin.Unit> onSortRequest);
   }
@@ -140,7 +140,7 @@
   }
 
   public final class DividerKt {
-    method public static void Divider(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.core.Dp height = 1.dp, androidx.ui.core.Dp indent = 0.dp);
+    method public static void Divider(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.unit.Dp height = 1.dp, androidx.ui.unit.Dp indent = 0.dp);
   }
 
   public final class DrawerKt {
@@ -176,9 +176,9 @@
   }
 
   public final class FloatingActionButtonKt {
-    method public static void FloatingActionButton(androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.core.Dp minSize = androidx.ui.material.FloatingActionButtonKt.FabSize, androidx.ui.engine.geometry.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.core.Dp elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void FloatingActionButton(androidx.ui.graphics.Image icon, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.engine.geometry.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.core.Dp elevation = 6.dp);
-    method public static void FloatingActionButton(String text, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Image? icon = null, androidx.ui.text.TextStyle? textStyle = null, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.core.Dp elevation = 6.dp);
+    method public static void FloatingActionButton(androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.unit.Dp minSize = androidx.ui.material.FloatingActionButtonKt.FabSize, androidx.ui.graphics.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.unit.Dp elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void FloatingActionButton(androidx.ui.graphics.Image icon, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.unit.Dp elevation = 6.dp);
+    method public static void FloatingActionButton(String text, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Image? icon = null, androidx.ui.text.TextStyle? textStyle = null, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.unit.Dp elevation = 6.dp);
   }
 
   public final class ListItemKt {
@@ -220,13 +220,13 @@
   }
 
   public final class Shapes {
-    ctor public Shapes(androidx.ui.engine.geometry.Shape button, androidx.ui.engine.geometry.Shape card);
+    ctor public Shapes(androidx.ui.graphics.Shape button, androidx.ui.graphics.Shape card);
     ctor public Shapes();
-    method public androidx.ui.engine.geometry.Shape component1();
-    method public androidx.ui.engine.geometry.Shape component2();
-    method public androidx.ui.material.Shapes copy(androidx.ui.engine.geometry.Shape button, androidx.ui.engine.geometry.Shape card);
-    method public androidx.ui.engine.geometry.Shape getButton();
-    method public androidx.ui.engine.geometry.Shape getCard();
+    method public androidx.ui.graphics.Shape component1();
+    method public androidx.ui.graphics.Shape component2();
+    method public androidx.ui.material.Shapes copy(androidx.ui.graphics.Shape button, androidx.ui.graphics.Shape card);
+    method public androidx.ui.graphics.Shape getButton();
+    method public androidx.ui.graphics.Shape getCard();
   }
 
   public final class SliderKt {
@@ -265,13 +265,13 @@
   }
 
   public static final class TabRow.TabPosition {
-    method public androidx.ui.core.IntPx component1();
-    method public androidx.ui.core.IntPx component2();
-    method public androidx.ui.material.TabRow.TabPosition copy(androidx.ui.core.IntPx left, androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx getLeft();
-    method public androidx.ui.core.IntPx getRight();
-    method public androidx.ui.core.IntPx getWidth();
-    property public final androidx.ui.core.IntPx right;
+    method public androidx.ui.unit.IntPx component1();
+    method public androidx.ui.unit.IntPx component2();
+    method public androidx.ui.material.TabRow.TabPosition copy(androidx.ui.unit.IntPx left, androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx getLeft();
+    method public androidx.ui.unit.IntPx getRight();
+    method public androidx.ui.unit.IntPx getWidth();
+    property public final androidx.ui.unit.IntPx right;
   }
 
   public final class Typography {
@@ -321,7 +321,7 @@
 package androidx.ui.material.ripple {
 
   public final class DefaultRippleEffectFactory implements androidx.ui.material.ripple.RippleEffectFactory {
-    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.core.PxPosition startPosition, androidx.ui.core.Density density, androidx.ui.core.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
+    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.unit.PxPosition startPosition, androidx.ui.unit.Density density, androidx.ui.unit.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
     field public static final androidx.ui.material.ripple.DefaultRippleEffectFactory! INSTANCE;
   }
 
@@ -335,11 +335,11 @@
   }
 
   public interface RippleEffectFactory {
-    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.core.PxPosition startPosition, androidx.ui.core.Density density, androidx.ui.core.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
+    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.unit.PxPosition startPosition, androidx.ui.unit.Density density, androidx.ui.unit.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
   }
 
   public final class RippleKt {
-    method public static void Ripple(boolean bounded, androidx.ui.core.Dp? radius = null, androidx.ui.graphics.Color? color = null, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Ripple(boolean bounded, androidx.ui.unit.Dp? radius = null, androidx.ui.graphics.Color? color = null, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class RippleTheme {
@@ -362,11 +362,11 @@
 package androidx.ui.material.surface {
 
   public final class CardKt {
-    method public static void Card(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.engine.geometry.Shape shape = card, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.core.Dp elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Card(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Shape shape = card, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.unit.Dp elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class SurfaceKt {
-    method public static void Surface(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.engine.geometry.Shape shape = RectangleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.core.Dp elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Surface(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Shape shape = RectangleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.unit.Dp elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
 }
diff --git a/ui/ui-material/api/restricted_current.txt b/ui/ui-material/api/restricted_current.txt
index e4b65f1..f5159c7 100644
--- a/ui/ui-material/api/restricted_current.txt
+++ b/ui/ui-material/api/restricted_current.txt
@@ -23,8 +23,8 @@
   }
 
   public static final class BottomAppBar.FabConfiguration {
-    ctor public BottomAppBar.FabConfiguration(internal androidx.ui.material.BottomAppBar.FabPosition fabPosition, internal androidx.ui.engine.geometry.Shape? cutoutShape, internal kotlin.jvm.functions.Function0<kotlin.Unit> fab);
-    method public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.material.BottomAppBar.FabPosition fabPosition, androidx.ui.engine.geometry.Shape? cutoutShape, kotlin.jvm.functions.Function0<kotlin.Unit> fab);
+    ctor public BottomAppBar.FabConfiguration(internal androidx.ui.material.BottomAppBar.FabPosition fabPosition, internal androidx.ui.graphics.Shape? cutoutShape, internal kotlin.jvm.functions.Function0<kotlin.Unit> fab);
+    method public androidx.ui.material.BottomAppBar.FabConfiguration copy(androidx.ui.material.BottomAppBar.FabPosition fabPosition, androidx.ui.graphics.Shape? cutoutShape, kotlin.jvm.functions.Function0<kotlin.Unit> fab);
   }
 
   public enum BottomAppBar.FabPosition {
@@ -35,26 +35,26 @@
   public final class ButtonKt {
     method public static void Button(androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.material.ButtonStyle style = ContainedButtonStyle(), kotlin.jvm.functions.Function0<kotlin.Unit> children);
     method public static void Button(String text, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.material.ButtonStyle style = ContainedButtonStyle());
-    method public static androidx.ui.material.ButtonStyle ContainedButtonStyle(androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().primary, androidx.ui.graphics.Color contentColor = contentColorFor(backgroundColor), androidx.ui.engine.geometry.Shape shape = button, androidx.ui.core.Dp elevation = 2.dp);
-    method public static androidx.ui.material.ButtonStyle OutlinedButtonStyle(androidx.ui.foundation.shape.border.Border border = Border(MaterialTheme.colors().onSurface.copy(OutlinedStrokeOpacity), 1.dp), androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary, androidx.ui.engine.geometry.Shape shape = button, androidx.ui.core.Dp elevation = 0.dp);
-    method public static androidx.ui.material.ButtonStyle TextButtonStyle(androidx.ui.engine.geometry.Shape shape = button, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary);
+    method public static androidx.ui.material.ButtonStyle ContainedButtonStyle(androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().primary, androidx.ui.graphics.Color contentColor = contentColorFor(backgroundColor), androidx.ui.graphics.Shape shape = button, androidx.ui.unit.Dp elevation = 2.dp);
+    method public static androidx.ui.material.ButtonStyle OutlinedButtonStyle(androidx.ui.foundation.shape.border.Border border = Border(MaterialTheme.colors().onSurface.copy(OutlinedStrokeOpacity), 1.dp), androidx.ui.graphics.Color backgroundColor = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary, androidx.ui.graphics.Shape shape = button, androidx.ui.unit.Dp elevation = 0.dp);
+    method public static androidx.ui.material.ButtonStyle TextButtonStyle(androidx.ui.graphics.Shape shape = button, androidx.ui.graphics.Color contentColor = MaterialTheme.colors().primary);
   }
 
   public final class ButtonStyle {
-    ctor public ButtonStyle(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.engine.geometry.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.core.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
+    ctor public ButtonStyle(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.graphics.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.unit.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
     method public androidx.ui.graphics.Color component1();
     method public androidx.ui.graphics.Color component2();
-    method public androidx.ui.engine.geometry.Shape component3();
+    method public androidx.ui.graphics.Shape component3();
     method public androidx.ui.foundation.shape.border.Border? component4();
-    method public androidx.ui.core.Dp component5();
+    method public androidx.ui.unit.Dp component5();
     method public androidx.ui.layout.EdgeInsets component6();
-    method public androidx.ui.material.ButtonStyle copy(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.engine.geometry.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.core.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
+    method public androidx.ui.material.ButtonStyle copy(androidx.ui.graphics.Color backgroundColor, androidx.ui.graphics.Color contentColor, androidx.ui.graphics.Shape shape, androidx.ui.foundation.shape.border.Border? border, androidx.ui.unit.Dp elevation, androidx.ui.layout.EdgeInsets paddings);
     method public androidx.ui.graphics.Color getBackgroundColor();
     method public androidx.ui.foundation.shape.border.Border? getBorder();
     method public androidx.ui.graphics.Color getContentColor();
-    method public androidx.ui.core.Dp getElevation();
+    method public androidx.ui.unit.Dp getElevation();
     method public androidx.ui.layout.EdgeInsets getPaddings();
-    method public androidx.ui.engine.geometry.Shape getShape();
+    method public androidx.ui.graphics.Shape getShape();
   }
 
   public final class CheckboxKt {
@@ -106,7 +106,7 @@
   }
 
   public final class DataTableKt {
-    method public static void DataTable(int columns, kotlin.jvm.functions.Function1<? super java.lang.Integer,java.lang.Boolean> numeric = { false }, androidx.ui.core.Dp dataRowHeight = androidx.ui.material.DataTableKt.DataRowHeight, androidx.ui.core.Dp headerRowHeight = androidx.ui.material.DataTableKt.HeaderRowHeight, androidx.ui.layout.EdgeInsets cellSpacing = androidx.ui.material.DataTableKt.CellSpacing, androidx.ui.foundation.shape.border.Border border = Border(BorderColor, BorderWidth), androidx.ui.graphics.Color selectedColor = MaterialTheme.colors().primary.copy(0.08), androidx.ui.material.DataTablePagination? pagination = null, androidx.ui.material.DataTableSorting? sorting = null, kotlin.jvm.functions.Function1<? super androidx.ui.material.DataTableChildren,kotlin.Unit> block);
+    method public static void DataTable(int columns, kotlin.jvm.functions.Function1<? super java.lang.Integer,java.lang.Boolean> numeric = { false }, androidx.ui.unit.Dp dataRowHeight = androidx.ui.material.DataTableKt.DataRowHeight, androidx.ui.unit.Dp headerRowHeight = androidx.ui.material.DataTableKt.HeaderRowHeight, androidx.ui.layout.EdgeInsets cellSpacing = androidx.ui.material.DataTableKt.CellSpacing, androidx.ui.foundation.shape.border.Border border = Border(BorderColor, BorderWidth), androidx.ui.graphics.Color selectedColor = MaterialTheme.colors().primary.copy(0.08), androidx.ui.material.DataTablePagination? pagination = null, androidx.ui.material.DataTableSorting? sorting = null, kotlin.jvm.functions.Function1<? super androidx.ui.material.DataTableChildren,kotlin.Unit> block);
     method public static androidx.ui.material.DataTablePagination DefaultDataTablePagination(int initialPage = 0, int initialRowsPerPage, java.util.List<java.lang.Integer> availableRowsPerPage);
     method public static androidx.ui.material.DataTableSorting DefaultDataTableSorting(Integer? initialColumn = null, boolean initialAscending = true, java.util.Set<java.lang.Integer> sortableColumns, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Boolean,kotlin.Unit> onSortRequest);
   }
@@ -140,7 +140,7 @@
   }
 
   public final class DividerKt {
-    method public static void Divider(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.core.Dp height = 1.dp, androidx.ui.core.Dp indent = 0.dp);
+    method public static void Divider(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.unit.Dp height = 1.dp, androidx.ui.unit.Dp indent = 0.dp);
   }
 
   public final class DrawerKt {
@@ -176,9 +176,9 @@
   }
 
   public final class FloatingActionButtonKt {
-    method public static void FloatingActionButton(androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.core.Dp minSize = androidx.ui.material.FloatingActionButtonKt.FabSize, androidx.ui.engine.geometry.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.core.Dp elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static void FloatingActionButton(androidx.ui.graphics.Image icon, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.engine.geometry.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.core.Dp elevation = 6.dp);
-    method public static void FloatingActionButton(String text, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Image? icon = null, androidx.ui.text.TextStyle? textStyle = null, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.core.Dp elevation = 6.dp);
+    method public static void FloatingActionButton(androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.unit.Dp minSize = androidx.ui.material.FloatingActionButtonKt.FabSize, androidx.ui.graphics.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.unit.Dp elevation = 6.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void FloatingActionButton(androidx.ui.graphics.Image icon, androidx.ui.core.Modifier modifier = Modifier.None, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.Shape shape = CircleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.unit.Dp elevation = 6.dp);
+    method public static void FloatingActionButton(String text, androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Image? icon = null, androidx.ui.text.TextStyle? textStyle = null, kotlin.jvm.functions.Function0<kotlin.Unit>?  androidx.ui.graphics.Color color = MaterialTheme.colors().primary, androidx.ui.unit.Dp elevation = 6.dp);
   }
 
   public final class ListItemKt {
@@ -220,13 +220,13 @@
   }
 
   public final class Shapes {
-    ctor public Shapes(androidx.ui.engine.geometry.Shape button, androidx.ui.engine.geometry.Shape card);
+    ctor public Shapes(androidx.ui.graphics.Shape button, androidx.ui.graphics.Shape card);
     ctor public Shapes();
-    method public androidx.ui.engine.geometry.Shape component1();
-    method public androidx.ui.engine.geometry.Shape component2();
-    method public androidx.ui.material.Shapes copy(androidx.ui.engine.geometry.Shape button, androidx.ui.engine.geometry.Shape card);
-    method public androidx.ui.engine.geometry.Shape getButton();
-    method public androidx.ui.engine.geometry.Shape getCard();
+    method public androidx.ui.graphics.Shape component1();
+    method public androidx.ui.graphics.Shape component2();
+    method public androidx.ui.material.Shapes copy(androidx.ui.graphics.Shape button, androidx.ui.graphics.Shape card);
+    method public androidx.ui.graphics.Shape getButton();
+    method public androidx.ui.graphics.Shape getCard();
   }
 
   public final class SliderKt {
@@ -265,13 +265,13 @@
   }
 
   public static final class TabRow.TabPosition {
-    method public androidx.ui.core.IntPx component1();
-    method public androidx.ui.core.IntPx component2();
-    method public androidx.ui.material.TabRow.TabPosition copy(androidx.ui.core.IntPx left, androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx getLeft();
-    method public androidx.ui.core.IntPx getRight();
-    method public androidx.ui.core.IntPx getWidth();
-    property public final androidx.ui.core.IntPx right;
+    method public androidx.ui.unit.IntPx component1();
+    method public androidx.ui.unit.IntPx component2();
+    method public androidx.ui.material.TabRow.TabPosition copy(androidx.ui.unit.IntPx left, androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx getLeft();
+    method public androidx.ui.unit.IntPx getRight();
+    method public androidx.ui.unit.IntPx getWidth();
+    property public final androidx.ui.unit.IntPx right;
   }
 
   public final class Typography {
@@ -321,7 +321,7 @@
 package androidx.ui.material.ripple {
 
   public final class DefaultRippleEffectFactory implements androidx.ui.material.ripple.RippleEffectFactory {
-    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.core.PxPosition startPosition, androidx.ui.core.Density density, androidx.ui.core.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
+    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.unit.PxPosition startPosition, androidx.ui.unit.Density density, androidx.ui.unit.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
     field public static final androidx.ui.material.ripple.DefaultRippleEffectFactory! INSTANCE;
   }
 
@@ -335,11 +335,11 @@
   }
 
   public interface RippleEffectFactory {
-    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.core.PxPosition startPosition, androidx.ui.core.Density density, androidx.ui.core.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
+    method public androidx.ui.material.ripple.RippleEffect create(androidx.ui.core.LayoutCoordinates coordinates, androidx.ui.unit.PxPosition startPosition, androidx.ui.unit.Density density, androidx.ui.unit.Dp? radius, boolean clipped, kotlin.jvm.functions.Function0<kotlin.Unit> requestRedraw, kotlin.jvm.functions.Function1<? super androidx.ui.material.ripple.RippleEffect,kotlin.Unit> onAnimationFinished);
   }
 
   public final class RippleKt {
-    method public static void Ripple(boolean bounded, androidx.ui.core.Dp? radius = null, androidx.ui.graphics.Color? color = null, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Ripple(boolean bounded, androidx.ui.unit.Dp? radius = null, androidx.ui.graphics.Color? color = null, boolean enabled = true, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class RippleTheme {
@@ -362,11 +362,11 @@
 package androidx.ui.material.surface {
 
   public final class CardKt {
-    method public static void Card(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.engine.geometry.Shape shape = card, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.core.Dp elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Card(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Shape shape = card, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.unit.Dp elevation = 1.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
   public final class SurfaceKt {
-    method public static void Surface(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.engine.geometry.Shape shape = RectangleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.core.Dp elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static void Surface(androidx.ui.core.Modifier modifier = Modifier.None, androidx.ui.graphics.Shape shape = RectangleShape, androidx.ui.graphics.Color color = MaterialTheme.colors().surface, androidx.ui.graphics.Color contentColor = contentColorFor(color), androidx.ui.foundation.shape.border.Border? border = null, androidx.ui.unit.Dp elevation = 0.dp, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
 }
diff --git a/ui/ui-material/build.gradle b/ui/ui-material/build.gradle
index a9ceefe..75c4c45 100644
--- a/ui/ui-material/build.gradle
+++ b/ui/ui-material/build.gradle
@@ -36,6 +36,7 @@
     api "androidx.annotation:annotation:1.1.0"
 
     api project(":compose:compose-runtime")
+    implementation project(":ui:ui-util")
     api project(":ui:ui-core")
     api project(":ui:ui-foundation")
     api project(":ui:ui-text")
diff --git a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/AppBarActivity.kt b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/AppBarActivity.kt
index daa23a0..f5ff760 100644
--- a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/AppBarActivity.kt
+++ b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/AppBarActivity.kt
@@ -20,7 +20,6 @@
 import androidx.compose.state
 import androidx.ui.core.Alignment
 import androidx.ui.core.Text
-import androidx.ui.core.dp
 import androidx.ui.graphics.imageFromResource
 import androidx.ui.layout.Arrangement
 import androidx.ui.layout.Column
@@ -43,6 +42,7 @@
 import androidx.ui.material.samples.SimpleBottomAppBarNoFab
 import androidx.ui.material.samples.SimpleTopAppBarNavIcon
 import androidx.ui.material.samples.SimpleTopAppBarNavIconWithActions
+import androidx.ui.unit.dp
 
 class AppBarActivity : MaterialDemoActivity() {
 
diff --git a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/CustomShapeActivity.kt b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/CustomShapeActivity.kt
index e53821d..e635ab4 100644
--- a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/CustomShapeActivity.kt
+++ b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/CustomShapeActivity.kt
@@ -20,7 +20,6 @@
 import android.os.Bundle
 import androidx.compose.Composable
 import androidx.ui.core.Alignment
-import androidx.ui.core.dp
 import androidx.ui.foundation.shape.GenericShape
 import androidx.ui.foundation.shape.border.Border
 import androidx.ui.graphics.Color
@@ -29,6 +28,7 @@
 import androidx.ui.layout.Wrap
 import androidx.ui.material.Button
 import androidx.ui.material.OutlinedButtonStyle
+import androidx.ui.unit.dp
 
 class CustomShapeActivity : MaterialDemoActivity() {
 
diff --git a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/DividersSpacersActivity.kt b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/DividersSpacersActivity.kt
index 3113d30..d694deab 100644
--- a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/DividersSpacersActivity.kt
+++ b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/DividersSpacersActivity.kt
@@ -18,7 +18,6 @@
 
 import androidx.compose.Composable
 import androidx.ui.core.Text
-import androidx.ui.core.dp
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.graphics.Color
 import androidx.ui.layout.Column
@@ -26,11 +25,12 @@
 import androidx.ui.layout.EdgeInsets
 import androidx.ui.layout.LayoutGravity
 import androidx.ui.layout.LayoutHeight
-import androidx.ui.layout.Spacer
-import androidx.ui.layout.Row
 import androidx.ui.layout.LayoutWidth
+import androidx.ui.layout.Row
+import androidx.ui.layout.Spacer
 import androidx.ui.material.Divider
 import androidx.ui.material.MaterialTheme
+import androidx.ui.unit.dp
 
 class DividersSpacersActivity : MaterialDemoActivity() {
 
diff --git a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/DynamicThemeActivity.kt b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/DynamicThemeActivity.kt
index f01c0d5..8637220 100644
--- a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/DynamicThemeActivity.kt
+++ b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/DynamicThemeActivity.kt
@@ -23,7 +23,6 @@
 import androidx.compose.Model
 import androidx.compose.remember
 import androidx.ui.core.Text
-import androidx.ui.core.dp
 import androidx.ui.core.setContent
 import androidx.ui.foundation.ScrollerPosition
 import androidx.ui.foundation.VerticalScroller
@@ -39,8 +38,8 @@
 import androidx.ui.layout.LayoutHeight
 import androidx.ui.layout.LayoutSize
 import androidx.ui.layout.LayoutWidth
-import androidx.ui.layout.Spacer
 import androidx.ui.layout.Padding
+import androidx.ui.layout.Spacer
 import androidx.ui.layout.Stack
 import androidx.ui.material.BottomAppBar
 import androidx.ui.material.BottomAppBar.FabConfiguration
@@ -51,6 +50,7 @@
 import androidx.ui.material.lightColorPalette
 import androidx.ui.material.surface.Surface
 import androidx.ui.text.TextStyle
+import androidx.ui.unit.dp
 import kotlin.math.round
 
 /**
diff --git a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/ElevationActivity.kt b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/ElevationActivity.kt
index 0c9c3a8..61619ed 100644
--- a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/ElevationActivity.kt
+++ b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/ElevationActivity.kt
@@ -17,9 +17,7 @@
 package androidx.ui.material.demos
 
 import androidx.compose.Composable
-import androidx.ui.core.Dp
 import androidx.ui.core.Text
-import androidx.ui.core.dp
 import androidx.ui.foundation.Clickable
 import androidx.ui.foundation.VerticalScroller
 import androidx.ui.foundation.shape.border.Border
@@ -33,6 +31,8 @@
 import androidx.ui.material.MaterialTheme
 import androidx.ui.material.ripple.Ripple
 import androidx.ui.material.surface.Card
+import androidx.ui.unit.Dp
+import androidx.ui.unit.dp
 
 class ElevationActivity : MaterialDemoActivity() {
 
diff --git a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/RippleDemo.kt b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/RippleDemo.kt
index 04a6e51..dac1a0f 100644
--- a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/RippleDemo.kt
+++ b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/RippleDemo.kt
@@ -19,8 +19,6 @@
 import androidx.compose.Composable
 import androidx.ui.core.ComposeView
 import androidx.ui.core.Text
-import androidx.ui.core.dp
-import androidx.ui.core.px
 import androidx.ui.foundation.shape.border.Border
 import androidx.ui.foundation.shape.corner.RoundedCornerShape
 import androidx.ui.graphics.Color
@@ -29,6 +27,8 @@
 import androidx.ui.material.MaterialTheme
 import androidx.ui.material.ripple.Ripple
 import androidx.ui.material.surface.Card
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
 
 @Composable
 fun RippleDemo() {
diff --git a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/SelectionControlsActivity.kt b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/SelectionControlsActivity.kt
index 2f9e066..2c487c9 100644
--- a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/SelectionControlsActivity.kt
+++ b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/SelectionControlsActivity.kt
@@ -18,7 +18,6 @@
 
 import androidx.compose.Composable
 import androidx.ui.core.Text
-import androidx.ui.core.dp
 import androidx.ui.layout.Column
 import androidx.ui.layout.EdgeInsets
 import androidx.ui.layout.Padding
@@ -28,6 +27,7 @@
 import androidx.ui.material.samples.RadioButtonSample
 import androidx.ui.material.samples.SwitchSample
 import androidx.ui.material.samples.TriStateCheckboxSample
+import androidx.ui.unit.dp
 
 class SelectionControlsActivity : MaterialDemoActivity() {
 
diff --git a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/SliderActivity.kt b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/SliderActivity.kt
index 00327259..0534c33 100644
--- a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/SliderActivity.kt
+++ b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/SliderActivity.kt
@@ -17,12 +17,12 @@
 package androidx.ui.material.demos
 
 import androidx.compose.Composable
-import androidx.ui.core.dp
 import androidx.ui.layout.Column
 import androidx.ui.layout.EdgeInsets
 import androidx.ui.layout.Padding
 import androidx.ui.material.samples.SliderSample
 import androidx.ui.material.samples.StepsSliderSample
+import androidx.ui.unit.dp
 
 class SliderActivity : MaterialDemoActivity() {
     @Composable
diff --git a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/SnackbarActivity.kt b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/SnackbarActivity.kt
index b550f41..c90ece1 100644
--- a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/SnackbarActivity.kt
+++ b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/SnackbarActivity.kt
@@ -18,11 +18,11 @@
 
 import androidx.compose.Composable
 import androidx.ui.core.Text
-import androidx.ui.core.dp
 import androidx.ui.layout.Column
 import androidx.ui.layout.LayoutPadding
 import androidx.ui.material.samples.SimpleSnackbar
 import androidx.ui.material.samples.SlotsSnackbar
+import androidx.ui.unit.dp
 
 class SnackbarActivity : MaterialDemoActivity() {
     @Composable
diff --git a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/TabActivity.kt b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/TabActivity.kt
index efa5648..849b151 100644
--- a/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/TabActivity.kt
+++ b/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos/TabActivity.kt
@@ -18,8 +18,13 @@
 
 import androidx.compose.Composable
 import androidx.compose.state
-import androidx.ui.core.dp
 import androidx.ui.graphics.Color
+import androidx.ui.graphics.imageFromResource
+import androidx.ui.layout.Arrangement
+import androidx.ui.layout.Column
+import androidx.ui.layout.LayoutGravity
+import androidx.ui.layout.LayoutHeight
+import androidx.ui.layout.Spacer
 import androidx.ui.material.Button
 import androidx.ui.material.ContainedButtonStyle
 import androidx.ui.material.samples.FancyIndicatorContainerTabs
@@ -30,12 +35,7 @@
 import androidx.ui.material.samples.ScrollingTextTabs
 import androidx.ui.material.samples.TextAndIconTabs
 import androidx.ui.material.samples.TextTabs
-import androidx.ui.graphics.imageFromResource
-import androidx.ui.layout.Arrangement
-import androidx.ui.layout.Column
-import androidx.ui.layout.LayoutGravity
-import androidx.ui.layout.LayoutHeight
-import androidx.ui.layout.Spacer
+import androidx.ui.unit.dp
 
 class TabActivity : MaterialDemoActivity() {
 
diff --git a/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyActivity.kt b/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyActivity.kt
index 3bf915a..515caa1 100644
--- a/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyActivity.kt
+++ b/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyActivity.kt
@@ -20,7 +20,6 @@
 import android.os.Bundle
 import androidx.compose.Composable
 import androidx.compose.state
-import androidx.ui.core.dp
 import androidx.ui.core.setContent
 import androidx.ui.foundation.VerticalScroller
 import androidx.ui.layout.Column
@@ -30,6 +29,7 @@
 import androidx.ui.material.Tab
 import androidx.ui.material.TabRow
 import androidx.ui.material.studies.Scaffold
+import androidx.ui.unit.dp
 
 /**
  * This Activity recreates the Rally Material Study from
diff --git a/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyAlertDialog.kt b/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyAlertDialog.kt
index 1ee3987..e3dcdf1 100644
--- a/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyAlertDialog.kt
+++ b/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyAlertDialog.kt
@@ -18,7 +18,6 @@
 
 import androidx.compose.Composable
 import androidx.ui.core.Text
-import androidx.ui.core.dp
 import androidx.ui.foundation.shape.RectangleShape
 import androidx.ui.layout.Column
 import androidx.ui.layout.EdgeInsets
@@ -29,6 +28,7 @@
 import androidx.ui.material.Divider
 import androidx.ui.material.MaterialTheme
 import androidx.ui.material.TextButtonStyle
+import androidx.ui.unit.dp
 
 @Composable
 fun RallyAlertDialog(
diff --git a/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyAnimatedCircle.kt b/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyAnimatedCircle.kt
index ff39aac..9312a4700 100644
--- a/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyAnimatedCircle.kt
+++ b/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyAnimatedCircle.kt
@@ -24,12 +24,12 @@
 import androidx.compose.remember
 import androidx.ui.animation.Transition
 import androidx.ui.core.Draw
-import androidx.ui.core.dp
-import androidx.ui.core.minDimension
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
 import androidx.ui.graphics.PaintingStyle
+import androidx.ui.unit.dp
+import androidx.ui.unit.minDimension
 
 private const val DividerLengthInDegrees = 1.8f
 private val AngleOffset = FloatPropKey()
diff --git a/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyCards.kt b/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyCards.kt
index 17ad2f9..7bea8d9 100644
--- a/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyCards.kt
+++ b/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyCards.kt
@@ -19,7 +19,6 @@
 import androidx.compose.Composable
 import androidx.compose.state
 import androidx.ui.core.Text
-import androidx.ui.core.dp
 import androidx.ui.foundation.Clickable
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.foundation.VerticalScroller
@@ -40,6 +39,7 @@
 import androidx.ui.material.TextButtonStyle
 import androidx.ui.material.ripple.Ripple
 import androidx.ui.material.surface.Card
+import androidx.ui.unit.dp
 import java.util.Locale
 
 /**
diff --git a/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyTheme.kt b/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyTheme.kt
index 043b0ad..1d3688f 100644
--- a/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyTheme.kt
+++ b/ui/ui-material/integration-tests/material-studies/src/main/java/androidx/ui/material/studies/rally/RallyTheme.kt
@@ -17,8 +17,6 @@
 package androidx.ui.material.studies.rally
 
 import androidx.compose.Composable
-import androidx.ui.core.em
-import androidx.ui.core.sp
 import androidx.ui.graphics.Color
 import androidx.ui.material.MaterialTheme
 import androidx.ui.material.Typography
@@ -26,6 +24,8 @@
 import androidx.ui.text.TextStyle
 import androidx.ui.text.font.FontFamily
 import androidx.ui.text.font.FontWeight
+import androidx.ui.unit.em
+import androidx.ui.unit.sp
 
 val rallyGreen = Color(0xFF1EB980)
 val rallyDarkGreen = Color(0xFF045D56)
diff --git a/ui/ui-material/integration-tests/samples/src/main/java/androidx/ui/material/samples/DrawerSamples.kt b/ui/ui-material/integration-tests/samples/src/main/java/androidx/ui/material/samples/DrawerSamples.kt
index 77abac1..d7f041b 100644
--- a/ui/ui-material/integration-tests/samples/src/main/java/androidx/ui/material/samples/DrawerSamples.kt
+++ b/ui/ui-material/integration-tests/samples/src/main/java/androidx/ui/material/samples/DrawerSamples.kt
@@ -20,7 +20,6 @@
 import androidx.compose.Composable
 import androidx.compose.state
 import androidx.ui.core.Text
-import androidx.ui.core.dp
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.graphics.Color
 import androidx.ui.layout.Center
@@ -28,13 +27,14 @@
 import androidx.ui.layout.Container
 import androidx.ui.layout.LayoutHeight
 import androidx.ui.layout.LayoutWidth
-import androidx.ui.layout.Spacer
 import androidx.ui.layout.Row
+import androidx.ui.layout.Spacer
 import androidx.ui.material.BottomDrawerLayout
 import androidx.ui.material.Button
 import androidx.ui.material.DrawerState
 import androidx.ui.material.ModalDrawerLayout
 import androidx.ui.material.StaticDrawer
+import androidx.ui.unit.dp
 
 @Sampled
 @Composable
diff --git a/ui/ui-material/integration-tests/samples/src/main/java/androidx/ui/material/samples/SelectionControlsSamples.kt b/ui/ui-material/integration-tests/samples/src/main/java/androidx/ui/material/samples/SelectionControlsSamples.kt
index 38853a0..ea3c140 100644
--- a/ui/ui-material/integration-tests/samples/src/main/java/androidx/ui/material/samples/SelectionControlsSamples.kt
+++ b/ui/ui-material/integration-tests/samples/src/main/java/androidx/ui/material/samples/SelectionControlsSamples.kt
@@ -21,7 +21,6 @@
 import androidx.compose.remember
 import androidx.compose.state
 import androidx.ui.core.Text
-import androidx.ui.core.dp
 import androidx.ui.foundation.selection.ToggleableState
 import androidx.ui.graphics.Color
 import androidx.ui.layout.Column
@@ -32,6 +31,7 @@
 import androidx.ui.material.RadioGroup
 import androidx.ui.material.Switch
 import androidx.ui.material.TriStateCheckbox
+import androidx.ui.unit.dp
 
 @Sampled
 @Composable
diff --git a/ui/ui-material/integration-tests/samples/src/main/java/androidx/ui/material/samples/TabSamples.kt b/ui/ui-material/integration-tests/samples/src/main/java/androidx/ui/material/samples/TabSamples.kt
index 265dcaa..e76233b 100644
--- a/ui/ui-material/integration-tests/samples/src/main/java/androidx/ui/material/samples/TabSamples.kt
+++ b/ui/ui-material/integration-tests/samples/src/main/java/androidx/ui/material/samples/TabSamples.kt
@@ -27,25 +27,25 @@
 import androidx.ui.core.Alignment
 import androidx.ui.core.Text
 import androidx.ui.core.ambientDensity
-import androidx.ui.core.dp
-import androidx.ui.core.toPx
-import androidx.ui.core.withDensity
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.foundation.selection.MutuallyExclusiveSetItem
 import androidx.ui.foundation.shape.border.Border
 import androidx.ui.foundation.shape.border.DrawBorder
 import androidx.ui.foundation.shape.corner.RoundedCornerShape
 import androidx.ui.graphics.Color
+import androidx.ui.graphics.Image
 import androidx.ui.layout.Column
 import androidx.ui.layout.Container
 import androidx.ui.layout.EdgeInsets
-import androidx.ui.layout.Padding
-import androidx.ui.material.Tab
-import androidx.ui.material.TabRow
-import androidx.ui.graphics.Image
 import androidx.ui.layout.LayoutGravity
 import androidx.ui.layout.LayoutHeight
+import androidx.ui.layout.Padding
 import androidx.ui.material.MaterialTheme
+import androidx.ui.material.Tab
+import androidx.ui.material.TabRow
+import androidx.ui.unit.dp
+import androidx.ui.unit.toPx
+import androidx.ui.unit.withDensity
 
 @Sampled
 @Composable
diff --git a/ui/ui-material/integration-tests/samples/src/main/java/androidx/ui/material/samples/ThemeSamples.kt b/ui/ui-material/integration-tests/samples/src/main/java/androidx/ui/material/samples/ThemeSamples.kt
index bfb7474..650f6d7 100644
--- a/ui/ui-material/integration-tests/samples/src/main/java/androidx/ui/material/samples/ThemeSamples.kt
+++ b/ui/ui-material/integration-tests/samples/src/main/java/androidx/ui/material/samples/ThemeSamples.kt
@@ -19,7 +19,6 @@
 import androidx.annotation.Sampled
 import androidx.compose.Composable
 import androidx.ui.core.Text
-import androidx.ui.core.sp
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.foundation.isSystemInDarkTheme
 import androidx.ui.graphics.Color
@@ -32,6 +31,7 @@
 import androidx.ui.text.TextStyle
 import androidx.ui.text.font.FontFamily
 import androidx.ui.text.font.FontWeight
+import androidx.ui.unit.sp
 
 @Sampled
 @Composable
diff --git a/ui/ui-material/src/androidTest/java/androidx/ui/material/AppBarTest.kt b/ui/ui-material/src/androidTest/java/androidx/ui/material/AppBarTest.kt
index 6422e6d..c60531c 100644
--- a/ui/ui-material/src/androidTest/java/androidx/ui/material/AppBarTest.kt
+++ b/ui/ui-material/src/androidTest/java/androidx/ui/material/AppBarTest.kt
@@ -18,32 +18,32 @@
 
 import androidx.compose.Composable
 import androidx.test.filters.SmallTest
-import androidx.ui.core.dp
-import androidx.ui.layout.Container
 import androidx.ui.core.LastBaseline
 import androidx.ui.core.LayoutCoordinates
 import androidx.ui.core.OnChildPositioned
-import androidx.ui.core.Px
-import androidx.ui.core.PxPosition
 import androidx.ui.core.Text
 import androidx.ui.core.currentTextStyle
-import androidx.ui.core.ipx
-import androidx.ui.core.round
-import androidx.ui.core.sp
-import androidx.ui.core.toPx
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.foundation.shape.corner.CircleShape
 import androidx.ui.graphics.Color
+import androidx.ui.layout.Container
 import androidx.ui.material.BottomAppBar.FabConfiguration
 import androidx.ui.material.BottomAppBar.FabPosition
 import androidx.ui.semantics.Semantics
 import androidx.ui.semantics.testTag
-import androidx.ui.text.TextStyle
 import androidx.ui.test.assertCountEquals
 import androidx.ui.test.assertIsVisible
 import androidx.ui.test.createComposeRule
 import androidx.ui.test.findAllByTag
 import androidx.ui.test.findByText
+import androidx.ui.text.TextStyle
+import androidx.ui.unit.Px
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.round
+import androidx.ui.unit.sp
+import androidx.ui.unit.toPx
 import com.google.common.truth.Truth.assertThat
 import org.junit.Rule
 import org.junit.Test
diff --git a/ui/ui-material/src/androidTest/java/androidx/ui/material/ButtonTest.kt b/ui/ui-material/src/androidTest/java/androidx/ui/material/ButtonTest.kt
index 2688cd7..49549b0 100644
--- a/ui/ui-material/src/androidTest/java/androidx/ui/material/ButtonTest.kt
+++ b/ui/ui-material/src/androidTest/java/androidx/ui/material/ButtonTest.kt
@@ -19,19 +19,12 @@
 import androidx.compose.Composable
 import androidx.compose.state
 import androidx.test.filters.MediumTest
-import androidx.ui.core.Dp
 import androidx.ui.core.LayoutCoordinates
 import androidx.ui.core.OnChildPositioned
 import androidx.ui.core.OnPositioned
-import androidx.ui.core.PxPosition
-import androidx.ui.core.PxSize
 import androidx.ui.core.TestTag
 import androidx.ui.core.Text
 import androidx.ui.core.currentTextStyle
-import androidx.ui.core.dp
-import androidx.ui.core.sp
-import androidx.ui.core.toPx
-import androidx.ui.core.withDensity
 import androidx.ui.layout.Center
 import androidx.ui.layout.Column
 import androidx.ui.layout.Wrap
@@ -44,6 +37,13 @@
 import androidx.ui.test.findByTag
 import androidx.ui.test.findByText
 import androidx.ui.text.TextStyle
+import androidx.ui.unit.Dp
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.sp
+import androidx.ui.unit.toPx
+import androidx.ui.unit.withDensity
 import com.google.common.truth.Truth.assertThat
 import org.junit.Rule
 import org.junit.Test
diff --git a/ui/ui-material/src/androidTest/java/androidx/ui/material/CheckboxUiTest.kt b/ui/ui-material/src/androidTest/java/androidx/ui/material/CheckboxUiTest.kt
index 659f31b..8abf49f 100644
--- a/ui/ui-material/src/androidTest/java/androidx/ui/material/CheckboxUiTest.kt
+++ b/ui/ui-material/src/androidTest/java/androidx/ui/material/CheckboxUiTest.kt
@@ -18,24 +18,24 @@
 import androidx.compose.state
 import androidx.test.filters.MediumTest
 import androidx.ui.core.TestTag
-import androidx.ui.core.dp
 import androidx.ui.foundation.Strings
 import androidx.ui.foundation.selection.ToggleableState
-import androidx.ui.foundation.selection.ToggleableState.On
 import androidx.ui.foundation.selection.ToggleableState.Indeterminate
 import androidx.ui.foundation.selection.ToggleableState.Off
+import androidx.ui.foundation.selection.ToggleableState.On
 import androidx.ui.foundation.semantics.toggleableState
 import androidx.ui.layout.Column
 import androidx.ui.semantics.accessibilityValue
 import androidx.ui.test.assertHasNoClickAction
-import androidx.ui.test.assertIsOn
 import androidx.ui.test.assertIsOff
+import androidx.ui.test.assertIsOn
 import androidx.ui.test.assertSemanticsIsEqualTo
 import androidx.ui.test.copyWith
 import androidx.ui.test.createComposeRule
 import androidx.ui.test.createFullSemantics
 import androidx.ui.test.doClick
 import androidx.ui.test.findByTag
+import androidx.ui.unit.dp
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-material/src/androidTest/java/androidx/ui/material/DividerUiTest.kt b/ui/ui-material/src/androidTest/java/androidx/ui/material/DividerUiTest.kt
index 9338a0f..2426e20 100644
--- a/ui/ui-material/src/androidTest/java/androidx/ui/material/DividerUiTest.kt
+++ b/ui/ui-material/src/androidTest/java/androidx/ui/material/DividerUiTest.kt
@@ -17,9 +17,9 @@
 package androidx.ui.material
 
 import androidx.test.filters.MediumTest
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
 import androidx.ui.test.createComposeRule
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-material/src/androidTest/java/androidx/ui/material/DrawerTest.kt b/ui/ui-material/src/androidTest/java/androidx/ui/material/DrawerTest.kt
index 3f915b8..4f9080f 100644
--- a/ui/ui-material/src/androidTest/java/androidx/ui/material/DrawerTest.kt
+++ b/ui/ui-material/src/androidTest/java/androidx/ui/material/DrawerTest.kt
@@ -19,17 +19,17 @@
 import androidx.compose.Model
 import androidx.test.filters.MediumTest
 import androidx.ui.core.OnPositioned
-import androidx.ui.core.PxPosition
-import androidx.ui.core.PxSize
 import androidx.ui.core.TestTag
-import androidx.ui.core.dp
-import androidx.ui.core.round
 import androidx.ui.foundation.Clickable
 import androidx.ui.layout.Container
 import androidx.ui.semantics.Semantics
 import androidx.ui.test.createComposeRule
 import androidx.ui.test.doClick
 import androidx.ui.test.findByTag
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.round
 import com.google.common.truth.Truth.assertThat
 import org.junit.Ignore
 import org.junit.Rule
diff --git a/ui/ui-material/src/androidTest/java/androidx/ui/material/ElevationOverlayTest.kt b/ui/ui-material/src/androidTest/java/androidx/ui/material/ElevationOverlayTest.kt
index 400b1c9..17f65c7 100644
--- a/ui/ui-material/src/androidTest/java/androidx/ui/material/ElevationOverlayTest.kt
+++ b/ui/ui-material/src/androidTest/java/androidx/ui/material/ElevationOverlayTest.kt
@@ -19,12 +19,7 @@
 import android.os.Build
 import androidx.test.filters.LargeTest
 import androidx.test.filters.SdkSuppress
-import androidx.ui.core.Dp
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.TestTag
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
-import androidx.ui.core.withDensity
 import androidx.ui.graphics.Color
 import androidx.ui.layout.Container
 import androidx.ui.material.surface.Surface
@@ -33,6 +28,11 @@
 import androidx.ui.test.captureToBitmap
 import androidx.ui.test.createComposeRule
 import androidx.ui.test.findByTag
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.withDensity
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-material/src/androidTest/java/androidx/ui/material/FloatingActionButtonUiTest.kt b/ui/ui-material/src/androidTest/java/androidx/ui/material/FloatingActionButtonUiTest.kt
index b6e0bbd..2155187 100644
--- a/ui/ui-material/src/androidTest/java/androidx/ui/material/FloatingActionButtonUiTest.kt
+++ b/ui/ui-material/src/androidTest/java/androidx/ui/material/FloatingActionButtonUiTest.kt
@@ -17,12 +17,12 @@
 package androidx.ui.material
 
 import androidx.test.filters.MediumTest
-import androidx.ui.core.dp
-import androidx.ui.core.round
-import androidx.ui.core.withDensity
 import androidx.ui.graphics.Image
 import androidx.ui.graphics.ImageConfig
 import androidx.ui.test.createComposeRule
+import androidx.ui.unit.dp
+import androidx.ui.unit.round
+import androidx.ui.unit.withDensity
 import com.google.common.truth.Truth.assertThat
 import org.junit.Rule
 import org.junit.Test
diff --git a/ui/ui-material/src/androidTest/java/androidx/ui/material/ListItemTest.kt b/ui/ui-material/src/androidTest/java/androidx/ui/material/ListItemTest.kt
index c0bc423..0f6f6621 100644
--- a/ui/ui-material/src/androidTest/java/androidx/ui/material/ListItemTest.kt
+++ b/ui/ui-material/src/androidTest/java/androidx/ui/material/ListItemTest.kt
@@ -19,23 +19,23 @@
 import androidx.compose.Composable
 import androidx.test.filters.SmallTest
 import androidx.ui.core.Alignment
-import androidx.ui.core.Dp
 import androidx.ui.core.FirstBaseline
 import androidx.ui.core.OnChildPositioned
-import androidx.ui.core.Px
-import androidx.ui.core.PxPosition
-import androidx.ui.core.PxSize
 import androidx.ui.core.Ref
 import androidx.ui.core.Text
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
-import androidx.ui.core.px
-import androidx.ui.core.round
-import androidx.ui.core.toPx
 import androidx.ui.foundation.SimpleImage
 import androidx.ui.graphics.Image
 import androidx.ui.layout.Container
 import androidx.ui.test.createComposeRule
+import androidx.ui.unit.Dp
+import androidx.ui.unit.Px
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.px
+import androidx.ui.unit.round
+import androidx.ui.unit.toPx
 import com.google.common.truth.Truth.assertThat
 import org.junit.Rule
 import org.junit.Test
diff --git a/ui/ui-material/src/androidTest/java/androidx/ui/material/MaterialTest.kt b/ui/ui-material/src/androidTest/java/androidx/ui/material/MaterialTest.kt
index 7e859ae..b073e8e 100644
--- a/ui/ui-material/src/androidTest/java/androidx/ui/material/MaterialTest.kt
+++ b/ui/ui-material/src/androidTest/java/androidx/ui/material/MaterialTest.kt
@@ -17,14 +17,14 @@
 package androidx.ui.material
 
 import androidx.compose.Composable
-import androidx.ui.core.DensityScope
-import androidx.ui.core.PxSize
-import androidx.ui.test.BigTestConstraints
-import androidx.ui.test.CollectedSizes
-import androidx.ui.test.setContentAndGetPixelSize
 import androidx.ui.layout.DpConstraints
 import androidx.ui.material.surface.Surface
+import androidx.ui.test.BigTestConstraints
+import androidx.ui.test.CollectedSizes
 import androidx.ui.test.ComposeTestRule
+import androidx.ui.test.setContentAndGetPixelSize
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.PxSize
 
 fun ComposeTestRule.setMaterialContent(composable: @Composable() () -> Unit) {
     setContent {
diff --git a/ui/ui-material/src/androidTest/java/androidx/ui/material/ProgressIndicatorTest.kt b/ui/ui-material/src/androidTest/java/androidx/ui/material/ProgressIndicatorTest.kt
index 2553c18..42c714a 100644
--- a/ui/ui-material/src/androidTest/java/androidx/ui/material/ProgressIndicatorTest.kt
+++ b/ui/ui-material/src/androidTest/java/androidx/ui/material/ProgressIndicatorTest.kt
@@ -18,11 +18,11 @@
 import androidx.compose.Model
 import androidx.test.filters.LargeTest
 import androidx.ui.core.TestTag
-import androidx.ui.core.dp
 import androidx.ui.test.assertIsVisible
 import androidx.ui.test.assertValueEquals
 import androidx.ui.test.createComposeRule
 import androidx.ui.test.findByTag
+import androidx.ui.unit.dp
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-material/src/androidTest/java/androidx/ui/material/RadioGroupUiTest.kt b/ui/ui-material/src/androidTest/java/androidx/ui/material/RadioGroupUiTest.kt
index 9557046..490acd8 100644
--- a/ui/ui-material/src/androidTest/java/androidx/ui/material/RadioGroupUiTest.kt
+++ b/ui/ui-material/src/androidTest/java/androidx/ui/material/RadioGroupUiTest.kt
@@ -20,19 +20,19 @@
 import androidx.compose.Model
 import androidx.test.filters.MediumTest
 import androidx.ui.core.TestTag
-import androidx.ui.core.dp
 import androidx.ui.foundation.Strings
 import androidx.ui.layout.Column
 import androidx.ui.semantics.accessibilityValue
 import androidx.ui.test.assertIsInMutuallyExclusiveGroup
 import androidx.ui.test.assertIsSelected
+import androidx.ui.test.assertIsUnselected
 import androidx.ui.test.assertSemanticsIsEqualTo
 import androidx.ui.test.copyWith
 import androidx.ui.test.createComposeRule
 import androidx.ui.test.createFullSemantics
 import androidx.ui.test.doClick
 import androidx.ui.test.findByTag
-import androidx.ui.test.assertIsUnselected
+import androidx.ui.unit.dp
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-material/src/androidTest/java/androidx/ui/material/RippleEffectTest.kt b/ui/ui-material/src/androidTest/java/androidx/ui/material/RippleEffectTest.kt
index b3ad200..4104a03 100644
--- a/ui/ui-material/src/androidTest/java/androidx/ui/material/RippleEffectTest.kt
+++ b/ui/ui-material/src/androidTest/java/androidx/ui/material/RippleEffectTest.kt
@@ -18,12 +18,8 @@
 import androidx.compose.Composable
 import androidx.compose.Model
 import androidx.test.filters.MediumTest
-import androidx.ui.core.Density
-import androidx.ui.core.Dp
 import androidx.ui.core.LayoutCoordinates
-import androidx.ui.core.PxPosition
 import androidx.ui.core.TestTag
-import androidx.ui.core.dp
 import androidx.ui.foundation.Clickable
 import androidx.ui.graphics.Canvas
 import androidx.ui.graphics.Color
@@ -40,6 +36,10 @@
 import androidx.ui.test.createComposeRule
 import androidx.ui.test.doClick
 import androidx.ui.test.findByTag
+import androidx.ui.unit.Density
+import androidx.ui.unit.Dp
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.dp
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertFalse
 import org.junit.Assert.assertTrue
diff --git a/ui/ui-material/src/androidTest/java/androidx/ui/material/SliderTest.kt b/ui/ui-material/src/androidTest/java/androidx/ui/material/SliderTest.kt
index e86771d..707810d 100644
--- a/ui/ui-material/src/androidTest/java/androidx/ui/material/SliderTest.kt
+++ b/ui/ui-material/src/androidTest/java/androidx/ui/material/SliderTest.kt
@@ -19,17 +19,16 @@
 import androidx.compose.FrameManager.framed
 import androidx.test.filters.MediumTest
 import androidx.ui.core.TestTag
-import androidx.ui.core.dp
 import androidx.ui.layout.DpConstraints
 import androidx.ui.test.assertIsVisible
 import androidx.ui.test.assertValueEquals
 import androidx.ui.test.createComposeRule
 import androidx.ui.test.findByTag
+import androidx.ui.unit.dp
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.junit.runners.JUnit4
-import java.lang.IllegalArgumentException
 
 @MediumTest
 @RunWith(JUnit4::class)
diff --git a/ui/ui-material/src/androidTest/java/androidx/ui/material/SnackbarTest.kt b/ui/ui-material/src/androidTest/java/androidx/ui/material/SnackbarTest.kt
index b19d584..f235524 100644
--- a/ui/ui-material/src/androidTest/java/androidx/ui/material/SnackbarTest.kt
+++ b/ui/ui-material/src/androidTest/java/androidx/ui/material/SnackbarTest.kt
@@ -18,22 +18,22 @@
 
 import androidx.test.filters.MediumTest
 import androidx.ui.core.FirstBaseline
-import androidx.ui.core.IntPx
 import androidx.ui.core.LastBaseline
 import androidx.ui.core.LayoutCoordinates
 import androidx.ui.core.OnChildPositioned
-import androidx.ui.core.PxPosition
 import androidx.ui.core.Text
-import androidx.ui.core.dp
 import androidx.ui.core.globalPosition
-import androidx.ui.core.round
-import androidx.ui.core.withDensity
 import androidx.ui.layout.DpConstraints
 import androidx.ui.layout.Wrap
 import androidx.ui.test.assertIsVisible
 import androidx.ui.test.createComposeRule
 import androidx.ui.test.doClick
 import androidx.ui.test.findByText
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.dp
+import androidx.ui.unit.round
+import androidx.ui.unit.withDensity
 import com.google.common.truth.Truth.assertThat
 import org.junit.Rule
 import org.junit.Test
diff --git a/ui/ui-material/src/androidTest/java/androidx/ui/material/SwitchUiTest.kt b/ui/ui-material/src/androidTest/java/androidx/ui/material/SwitchUiTest.kt
index b9ac793..39922c8 100644
--- a/ui/ui-material/src/androidTest/java/androidx/ui/material/SwitchUiTest.kt
+++ b/ui/ui-material/src/androidTest/java/androidx/ui/material/SwitchUiTest.kt
@@ -19,21 +19,21 @@
 import androidx.compose.state
 import androidx.test.filters.MediumTest
 import androidx.ui.core.TestTag
-import androidx.ui.core.dp
 import androidx.ui.foundation.Strings
 import androidx.ui.foundation.selection.ToggleableState
 import androidx.ui.foundation.semantics.toggleableState
 import androidx.ui.layout.Column
 import androidx.ui.semantics.accessibilityValue
 import androidx.ui.test.assertHasNoClickAction
-import androidx.ui.test.assertIsOn
 import androidx.ui.test.assertIsOff
+import androidx.ui.test.assertIsOn
 import androidx.ui.test.assertSemanticsIsEqualTo
 import androidx.ui.test.copyWith
 import androidx.ui.test.createComposeRule
 import androidx.ui.test.createFullSemantics
 import androidx.ui.test.doClick
 import androidx.ui.test.findByTag
+import androidx.ui.unit.dp
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-material/src/androidTest/java/androidx/ui/material/TabTest.kt b/ui/ui-material/src/androidTest/java/androidx/ui/material/TabTest.kt
index 7339406..7ea9408 100644
--- a/ui/ui-material/src/androidTest/java/androidx/ui/material/TabTest.kt
+++ b/ui/ui-material/src/androidTest/java/androidx/ui/material/TabTest.kt
@@ -21,25 +21,25 @@
 import androidx.ui.core.Alignment
 import androidx.ui.core.LayoutCoordinates
 import androidx.ui.core.OnChildPositioned
-import androidx.ui.core.PxPosition
-import androidx.ui.core.dp
-import androidx.ui.core.toPx
-import androidx.ui.core.withDensity
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.graphics.Color
+import androidx.ui.graphics.Image
+import androidx.ui.graphics.ImageConfig
 import androidx.ui.layout.Container
 import androidx.ui.material.samples.ScrollingTextTabs
 import androidx.ui.material.samples.TextTabs
 import androidx.ui.material.surface.Surface
-import androidx.ui.graphics.Image
-import androidx.ui.graphics.ImageConfig
 import androidx.ui.test.assertCountEquals
-import androidx.ui.test.assertIsUnselected
 import androidx.ui.test.assertIsSelected
+import androidx.ui.test.assertIsUnselected
 import androidx.ui.test.createComposeRule
 import androidx.ui.test.doClick
 import androidx.ui.test.findAll
 import androidx.ui.test.isInMutuallyExclusiveGroup
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.dp
+import androidx.ui.unit.toPx
+import androidx.ui.unit.withDensity
 import com.google.common.truth.Truth.assertThat
 import org.junit.Rule
 import org.junit.Test
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/AlertDialog.kt b/ui/ui-material/src/main/java/androidx/ui/material/AlertDialog.kt
index 71919bf..d5e2cf9 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/AlertDialog.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/AlertDialog.kt
@@ -19,7 +19,6 @@
 import androidx.compose.Composable
 import androidx.ui.core.Alignment
 import androidx.ui.core.CurrentTextStyleProvider
-import androidx.ui.core.dp
 import androidx.ui.foundation.Dialog
 import androidx.ui.foundation.shape.corner.RoundedCornerShape
 import androidx.ui.layout.Arrangement
@@ -27,12 +26,13 @@
 import androidx.ui.layout.Container
 import androidx.ui.layout.EdgeInsets
 import androidx.ui.layout.LayoutHeight
-import androidx.ui.layout.Spacer
-import androidx.ui.layout.Row
 import androidx.ui.layout.LayoutWidth
+import androidx.ui.layout.Row
+import androidx.ui.layout.Spacer
 import androidx.ui.material.AlertDialogButtonLayout.SideBySide
 import androidx.ui.material.AlertDialogButtonLayout.Stacked
 import androidx.ui.material.surface.Surface
+import androidx.ui.unit.dp
 
 /**
  * Alert dialog is a [Dialog] which interrupts the user with urgent information, details or actions.
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/AppBar.kt b/ui/ui-material/src/main/java/androidx/ui/material/AppBar.kt
index 8a779c1..06e0c5c 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/AppBar.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/AppBar.kt
@@ -19,53 +19,53 @@
 import androidx.compose.state
 import androidx.ui.core.Alignment
 import androidx.ui.core.CurrentTextStyleProvider
-import androidx.ui.core.Density
-import androidx.ui.core.Dp
-import androidx.ui.core.IntPx
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.LastBaseline
 import androidx.ui.core.Layout
 import androidx.ui.core.LayoutTagParentData
 import androidx.ui.core.OnChildPositioned
 import androidx.ui.core.ParentData
-import androidx.ui.core.PxPosition
-import androidx.ui.core.PxSize
 import androidx.ui.core.Text
 import androidx.ui.core.ambientDensity
-import androidx.ui.core.dp
-import androidx.ui.core.sp
 import androidx.ui.core.tag
-import androidx.ui.core.withDensity
-import androidx.ui.engine.geometry.Offset
-import androidx.ui.engine.geometry.Outline
-import androidx.ui.engine.geometry.Rect
-import androidx.ui.engine.geometry.Shape
-import androidx.ui.engine.geometry.addOutline
 import androidx.ui.foundation.Clickable
 import androidx.ui.foundation.SimpleImage
 import androidx.ui.foundation.shape.RectangleShape
 import androidx.ui.foundation.shape.corner.CircleShape
+import androidx.ui.geometry.Offset
+import androidx.ui.geometry.Rect
+import androidx.ui.graphics.Color
+import androidx.ui.graphics.Image
+import androidx.ui.graphics.Outline
+import androidx.ui.graphics.Path
+import androidx.ui.graphics.PathOperation
+import androidx.ui.graphics.Shape
+import androidx.ui.graphics.addOutline
+import androidx.ui.layout.AlignmentLineOffset
+import androidx.ui.layout.Arrangement
 import androidx.ui.layout.Container
+import androidx.ui.layout.EdgeInsets
+import androidx.ui.layout.LayoutAlign
+import androidx.ui.layout.LayoutHeight
+import androidx.ui.layout.LayoutSize
+import androidx.ui.layout.LayoutWidth
+import androidx.ui.layout.Padding
 import androidx.ui.layout.Row
 import androidx.ui.layout.Spacer
-import androidx.ui.layout.LayoutWidth
-import androidx.ui.material.surface.Surface
-import androidx.ui.graphics.Color
-import androidx.ui.layout.EdgeInsets
 import androidx.ui.layout.Wrap
 import androidx.ui.material.BottomAppBar.FabConfiguration
 import androidx.ui.material.BottomAppBar.FabPosition
 import androidx.ui.material.ripple.Ripple
-import androidx.ui.graphics.Image
-import androidx.ui.graphics.Path
-import androidx.ui.graphics.PathOperation
-import androidx.ui.layout.AlignmentLineOffset
-import androidx.ui.layout.Arrangement
-import androidx.ui.layout.LayoutAlign
-import androidx.ui.layout.LayoutHeight
-import androidx.ui.layout.LayoutSize
-import androidx.ui.layout.Padding
+import androidx.ui.material.surface.Surface
 import androidx.ui.text.TextStyle
+import androidx.ui.unit.Density
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.sp
+import androidx.ui.unit.withDensity
 import kotlin.math.sqrt
 
 /**
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/Button.kt b/ui/ui-material/src/main/java/androidx/ui/material/Button.kt
index 343e4bd..5881c7c 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/Button.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/Button.kt
@@ -20,19 +20,19 @@
 import androidx.compose.Composable
 import androidx.compose.Immutable
 import androidx.ui.core.CurrentTextStyleProvider
-import androidx.ui.core.Dp
 import androidx.ui.core.Modifier
 import androidx.ui.core.Text
-import androidx.ui.core.dp
-import androidx.ui.engine.geometry.Shape
 import androidx.ui.foundation.Clickable
 import androidx.ui.foundation.shape.border.Border
 import androidx.ui.graphics.Color
+import androidx.ui.graphics.Shape
 import androidx.ui.layout.Container
 import androidx.ui.layout.DpConstraints
 import androidx.ui.layout.EdgeInsets
 import androidx.ui.material.ripple.Ripple
 import androidx.ui.material.surface.Surface
+import androidx.ui.unit.Dp
+import androidx.ui.unit.dp
 
 /**
  * Styling configuration for a [Button].
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/Checkbox.kt b/ui/ui-material/src/main/java/androidx/ui/material/Checkbox.kt
index c16cb6b9..e3f4204 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/Checkbox.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/Checkbox.kt
@@ -25,21 +25,21 @@
 import androidx.ui.animation.Transition
 import androidx.ui.core.Draw
 import androidx.ui.core.Modifier
-import androidx.ui.core.dp
-import androidx.ui.engine.geometry.Offset
-import androidx.ui.engine.geometry.RRect
-import androidx.ui.engine.geometry.Radius
-import androidx.ui.engine.geometry.shrink
-import androidx.ui.engine.geometry.withRadius
 import androidx.ui.foundation.selection.ToggleableState
 import androidx.ui.foundation.selection.TriStateToggleable
+import androidx.ui.geometry.Offset
+import androidx.ui.geometry.RRect
+import androidx.ui.geometry.Radius
+import androidx.ui.geometry.shrink
+import androidx.ui.geometry.withRadius
 import androidx.ui.graphics.Color
-import androidx.ui.layout.Container
-import androidx.ui.layout.Padding
-import androidx.ui.material.ripple.Ripple
 import androidx.ui.graphics.Paint
 import androidx.ui.graphics.PaintingStyle
 import androidx.ui.graphics.StrokeCap
+import androidx.ui.layout.Container
+import androidx.ui.layout.Padding
+import androidx.ui.material.ripple.Ripple
+import androidx.ui.unit.dp
 
 /**
  * A component that represents two states (checked / unchecked).
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/DataTable.kt b/ui/ui-material/src/main/java/androidx/ui/material/DataTable.kt
index d4c846d..55471c3 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/DataTable.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/DataTable.kt
@@ -21,12 +21,9 @@
 import androidx.ui.core.Alignment
 import androidx.ui.core.Constraints
 import androidx.ui.core.CurrentTextStyleProvider
-import androidx.ui.core.Dp
-import androidx.ui.core.IntPx
 import androidx.ui.core.Layout
 import androidx.ui.core.ParentData
 import androidx.ui.core.Text
-import androidx.ui.core.dp
 import androidx.ui.foundation.Clickable
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.foundation.SimpleImage
@@ -41,14 +38,17 @@
 import androidx.ui.layout.EdgeInsets
 import androidx.ui.layout.LayoutGravity
 import androidx.ui.layout.LayoutSize
+import androidx.ui.layout.LayoutWidth
 import androidx.ui.layout.Row
+import androidx.ui.layout.Spacer
 import androidx.ui.layout.Table
 import androidx.ui.layout.TableColumnWidth
-import androidx.ui.layout.Spacer
-import androidx.ui.layout.LayoutWidth
 import androidx.ui.material.ripple.Ripple
 import androidx.ui.text.TextStyle
 import androidx.ui.text.font.FontWeight
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.dp
 
 /**
  * Pagination configuration for a [DataTable].
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/Divider.kt b/ui/ui-material/src/main/java/androidx/ui/material/Divider.kt
index 6e186e9..b0843da 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/Divider.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/Divider.kt
@@ -17,12 +17,12 @@
 package androidx.ui.material
 
 import androidx.compose.Composable
-import androidx.ui.core.Dp
 import androidx.ui.core.Modifier
-import androidx.ui.core.dp
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.graphics.Color
 import androidx.ui.layout.LayoutPadding
+import androidx.ui.unit.Dp
+import androidx.ui.unit.dp
 
 /**
  * A divider is a thin line that groups content in lists and layouts
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/Drawer.kt b/ui/ui-material/src/main/java/androidx/ui/material/Drawer.kt
index fc641fe..d780b5c 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/Drawer.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/Drawer.kt
@@ -20,19 +20,12 @@
 import androidx.compose.Composable
 import androidx.compose.remember
 import androidx.ui.core.Draw
-import androidx.ui.core.IntPx
 import androidx.ui.core.Layout
-import androidx.ui.core.Px
 import androidx.ui.core.RepaintBoundary
 import androidx.ui.core.WithConstraints
 import androidx.ui.core.ambientDensity
-import androidx.ui.core.dp
 import androidx.ui.core.hasBoundedHeight
 import androidx.ui.core.hasBoundedWidth
-import androidx.ui.core.min
-import androidx.ui.core.px
-import androidx.ui.core.toRect
-import androidx.ui.core.withDensity
 import androidx.ui.foundation.Clickable
 import androidx.ui.foundation.ValueHolder
 import androidx.ui.foundation.gestures.DragDirection
@@ -42,9 +35,16 @@
 import androidx.ui.layout.DpConstraints
 import androidx.ui.layout.EdgeInsets
 import androidx.ui.layout.Stack
-import androidx.ui.lerp
 import androidx.ui.material.internal.StateDraggable
 import androidx.ui.material.surface.Surface
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.Px
+import androidx.ui.unit.dp
+import androidx.ui.unit.min
+import androidx.ui.unit.px
+import androidx.ui.unit.toRect
+import androidx.ui.unit.withDensity
+import androidx.ui.util.lerp
 
 /**
  * Possible states of the drawer
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/FloatingActionButton.kt b/ui/ui-material/src/main/java/androidx/ui/material/FloatingActionButton.kt
index 11e13c8..3cc0443 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/FloatingActionButton.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/FloatingActionButton.kt
@@ -18,25 +18,25 @@
 
 import androidx.compose.Composable
 import androidx.ui.core.CurrentTextStyleProvider
-import androidx.ui.core.Dp
 import androidx.ui.core.Modifier
 import androidx.ui.core.Text
-import androidx.ui.core.dp
-import androidx.ui.engine.geometry.Shape
 import androidx.ui.foundation.Clickable
 import androidx.ui.foundation.SimpleImage
 import androidx.ui.foundation.shape.corner.CircleShape
 import androidx.ui.graphics.Color
+import androidx.ui.graphics.Image
+import androidx.ui.graphics.Shape
 import androidx.ui.layout.Container
 import androidx.ui.layout.DpConstraints
+import androidx.ui.layout.LayoutWidth
 import androidx.ui.layout.Padding
 import androidx.ui.layout.Row
 import androidx.ui.layout.Spacer
-import androidx.ui.layout.LayoutWidth
-import androidx.ui.graphics.Image
 import androidx.ui.material.ripple.Ripple
 import androidx.ui.material.surface.Surface
 import androidx.ui.text.TextStyle
+import androidx.ui.unit.Dp
+import androidx.ui.unit.dp
 
 /**
  * A floating action button (FAB) is a [Button] to represents the primary action of a screen.
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/ListItem.kt b/ui/ui-material/src/main/java/androidx/ui/material/ListItem.kt
index 9c00eb7..1986d22 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/ListItem.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/ListItem.kt
@@ -19,17 +19,11 @@
 import androidx.compose.Composable
 import androidx.ui.core.Alignment
 import androidx.ui.core.CurrentTextStyleProvider
-import androidx.ui.core.Dp
 import androidx.ui.core.FirstBaseline
-import androidx.ui.core.IntPx
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.LastBaseline
 import androidx.ui.core.Layout
 import androidx.ui.core.Modifier
 import androidx.ui.core.Text
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
-import androidx.ui.core.max
 import androidx.ui.foundation.Clickable
 import androidx.ui.foundation.SimpleImage
 import androidx.ui.graphics.Color
@@ -45,6 +39,12 @@
 import androidx.ui.material.ripple.Ripple
 import androidx.ui.text.TextStyle
 import androidx.ui.text.style.TextOverflow
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.max
 
 /**
  * Material Design implementation of [list items](https://material.io/components/lists).
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/ProgressIndicator.kt b/ui/ui-material/src/main/java/androidx/ui/material/ProgressIndicator.kt
index 27c112d..a1740c1 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/ProgressIndicator.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/ProgressIndicator.kt
@@ -27,21 +27,21 @@
 import androidx.compose.remember
 import androidx.ui.animation.Transition
 import androidx.ui.core.Draw
-import androidx.ui.core.PxSize
 import androidx.ui.core.ambientDensity
-import androidx.ui.core.dp
-import androidx.ui.core.withDensity
-import androidx.ui.engine.geometry.Offset
-import androidx.ui.engine.geometry.Rect
 import androidx.ui.foundation.DeterminateProgressIndicator
-import androidx.ui.graphics.Color
-import androidx.ui.layout.Container
-import androidx.ui.layout.Padding
-import androidx.ui.layout.Wrap
+import androidx.ui.geometry.Offset
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Canvas
+import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
 import androidx.ui.graphics.PaintingStyle
 import androidx.ui.graphics.StrokeCap
+import androidx.ui.layout.Container
+import androidx.ui.layout.Padding
+import androidx.ui.layout.Wrap
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.withDensity
 import androidx.ui.vectormath64.degrees
 import kotlin.math.abs
 import kotlin.math.max
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/RadioButton.kt b/ui/ui-material/src/main/java/androidx/ui/material/RadioButton.kt
index 63ca7c4..80b06ac 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/RadioButton.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/RadioButton.kt
@@ -22,30 +22,30 @@
 import androidx.ui.animation.ColorPropKey
 import androidx.ui.animation.DpPropKey
 import androidx.ui.animation.Transition
-import androidx.ui.core.DensityScope
-import androidx.ui.core.Dp
 import androidx.ui.core.Draw
-import androidx.ui.core.PxSize
 import androidx.ui.core.Text
-import androidx.ui.core.dp
-import androidx.ui.engine.geometry.Offset
-import androidx.ui.engine.geometry.RRect
-import androidx.ui.engine.geometry.Radius
-import androidx.ui.engine.geometry.shift
-import androidx.ui.engine.geometry.shrink
 import androidx.ui.foundation.selection.MutuallyExclusiveSetItem
+import androidx.ui.geometry.Offset
+import androidx.ui.geometry.RRect
+import androidx.ui.geometry.Radius
+import androidx.ui.geometry.shift
+import androidx.ui.geometry.shrink
+import androidx.ui.graphics.Canvas
 import androidx.ui.graphics.Color
+import androidx.ui.graphics.Paint
+import androidx.ui.graphics.PaintingStyle
 import androidx.ui.layout.Column
 import androidx.ui.layout.Container
+import androidx.ui.layout.LayoutWidth
 import androidx.ui.layout.Padding
 import androidx.ui.layout.Row
 import androidx.ui.layout.Wrap
 import androidx.ui.material.ripple.Ripple
-import androidx.ui.graphics.Canvas
-import androidx.ui.graphics.Paint
-import androidx.ui.graphics.PaintingStyle
-import androidx.ui.layout.LayoutWidth
 import androidx.ui.text.TextStyle
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.Dp
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
 
 /**
  * Components for creating mutually exclusive set of [RadioButton]s.
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/Shape.kt b/ui/ui-material/src/main/java/androidx/ui/material/Shape.kt
index e9c00cf..c712f65 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/Shape.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/Shape.kt
@@ -17,10 +17,10 @@
 package androidx.ui.material
 
 import androidx.compose.Ambient
-import androidx.ui.core.dp
-import androidx.ui.engine.geometry.Shape
 import androidx.ui.foundation.shape.RectangleShape
 import androidx.ui.foundation.shape.corner.RoundedCornerShape
+import androidx.ui.graphics.Shape
+import androidx.ui.unit.dp
 
 /**
  * Data class holding current shapes for common surfaces like Button or Card.
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/Slider.kt b/ui/ui-material/src/main/java/androidx/ui/material/Slider.kt
index 712e8c9..65cc5fc 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/Slider.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/Slider.kt
@@ -26,20 +26,15 @@
 import androidx.ui.core.Alignment
 import androidx.ui.core.Draw
 import androidx.ui.core.Modifier
-import androidx.ui.core.PxSize
 import androidx.ui.core.WithConstraints
 import androidx.ui.core.ambientDensity
-import androidx.ui.core.dp
 import androidx.ui.core.gesture.PressGestureDetector
-import androidx.ui.core.px
-import androidx.ui.core.toRect
-import androidx.ui.core.withDensity
-import androidx.ui.engine.geometry.Offset
 import androidx.ui.foundation.animation.AnimatedValueHolder
 import androidx.ui.foundation.animation.FlingConfig
 import androidx.ui.foundation.gestures.DragDirection
 import androidx.ui.foundation.gestures.Draggable
 import androidx.ui.foundation.shape.corner.CircleShape
+import androidx.ui.geometry.Offset
 import androidx.ui.graphics.Canvas
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
@@ -48,14 +43,19 @@
 import androidx.ui.graphics.StrokeCap
 import androidx.ui.layout.Container
 import androidx.ui.layout.DpConstraints
-import androidx.ui.layout.Padding
 import androidx.ui.layout.LayoutSize
+import androidx.ui.layout.Padding
 import androidx.ui.layout.Spacer
-import androidx.ui.lerp
 import androidx.ui.material.ripple.Ripple
 import androidx.ui.material.surface.Surface
 import androidx.ui.semantics.Semantics
 import androidx.ui.semantics.accessibilityValue
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
+import androidx.ui.unit.toRect
+import androidx.ui.unit.withDensity
+import androidx.ui.util.lerp
 import kotlin.math.abs
 
 /**
@@ -102,7 +102,13 @@
         startPx = min
         endPx = max
         holder.setBounds(min, max)
-        anchorsPx = tickFractions.map { lerp(startPx, endPx, it) }
+        anchorsPx = tickFractions.map {
+            lerp(
+                startPx,
+                endPx,
+                it
+            )
+        }
         holder.animatedFloat.snapTo(newValue)
     }
 
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/Snackbar.kt b/ui/ui-material/src/main/java/androidx/ui/material/Snackbar.kt
index 56084b2..df614f0 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/Snackbar.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/Snackbar.kt
@@ -19,17 +19,12 @@
 import androidx.compose.Composable
 import androidx.ui.core.CurrentTextStyleProvider
 import androidx.ui.core.FirstBaseline
-import androidx.ui.core.IntPx
 import androidx.ui.core.LastBaseline
 import androidx.ui.core.Layout
 import androidx.ui.core.LayoutTagParentData
 import androidx.ui.core.Modifier
 import androidx.ui.core.ParentData
 import androidx.ui.core.Text
-import androidx.ui.core.coerceAtLeast
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
-import androidx.ui.core.max
 import androidx.ui.core.tag
 import androidx.ui.foundation.shape.DrawShape
 import androidx.ui.foundation.shape.corner.RoundedCornerShape
@@ -41,6 +36,10 @@
 import androidx.ui.layout.LayoutPadding
 import androidx.ui.layout.LayoutWidth
 import androidx.ui.material.surface.Surface
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.max
 
 /**
  * Snackbars provide brief messages about app processes at the bottom of the screen.
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/Switch.kt b/ui/ui-material/src/main/java/androidx/ui/material/Switch.kt
index 2f33347..6afcf9a 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/Switch.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/Switch.kt
@@ -18,17 +18,12 @@
 
 import androidx.animation.TweenBuilder
 import androidx.compose.Composable
-import androidx.ui.core.DensityScope
 import androidx.ui.core.Draw
-import androidx.ui.core.PxSize
 import androidx.ui.core.ambientDensity
 import androidx.ui.foundation.ValueHolder
-import androidx.ui.core.dp
-import androidx.ui.core.px
-import androidx.ui.core.withDensity
-import androidx.ui.engine.geometry.Offset
 import androidx.ui.foundation.gestures.DragDirection
 import androidx.ui.foundation.selection.Toggleable
+import androidx.ui.geometry.Offset
 import androidx.ui.graphics.Canvas
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
@@ -38,6 +33,11 @@
 import androidx.ui.layout.Wrap
 import androidx.ui.material.internal.StateDraggable
 import androidx.ui.material.ripple.Ripple
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
+import androidx.ui.unit.withDensity
 
 /**
  * A Switch is a two state toggleable component that provides on/off like options
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/Tab.kt b/ui/ui-material/src/main/java/androidx/ui/material/Tab.kt
index 9c0012f..1908d00 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/Tab.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/Tab.kt
@@ -27,7 +27,6 @@
 import androidx.ui.animation.Transition
 import androidx.ui.core.Alignment
 import androidx.ui.core.FirstBaseline
-import androidx.ui.core.IntPx
 import androidx.ui.core.LastBaseline
 import androidx.ui.core.Layout
 import androidx.ui.core.LayoutTag
@@ -35,16 +34,10 @@
 import androidx.ui.core.Modifier
 import androidx.ui.core.ParentData
 import androidx.ui.core.Placeable
-import androidx.ui.core.Px
 import androidx.ui.core.Text
 import androidx.ui.core.WithConstraints
 import androidx.ui.core.ambientDensity
-import androidx.ui.core.dp
-import androidx.ui.core.max
-import androidx.ui.core.sp
 import androidx.ui.core.tag
-import androidx.ui.core.toPx
-import androidx.ui.core.withDensity
 import androidx.ui.core.withTight
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.foundation.HorizontalScroller
@@ -65,6 +58,13 @@
 import androidx.ui.material.ripple.Ripple
 import androidx.ui.material.surface.Surface
 import androidx.ui.text.style.TextAlign
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.Px
+import androidx.ui.unit.dp
+import androidx.ui.unit.max
+import androidx.ui.unit.sp
+import androidx.ui.unit.toPx
+import androidx.ui.unit.withDensity
 
 /**
  * A TabRow contains a row of [Tab]s, and displays an indicator underneath the currently
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/Typography.kt b/ui/ui-material/src/main/java/androidx/ui/material/Typography.kt
index fc3a963..cf710c2 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/Typography.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/Typography.kt
@@ -17,10 +17,10 @@
 package androidx.ui.material
 
 import androidx.compose.Ambient
-import androidx.ui.core.sp
 import androidx.ui.text.TextStyle
 import androidx.ui.text.font.FontFamily
 import androidx.ui.text.font.FontWeight
+import androidx.ui.unit.sp
 
 /**
  * Data class holding typography definitions as defined by the [Material typography specification](https://material.io/design/typography/the-type-system.html#type-scale).
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/ripple/DefaultRippleEffect.kt b/ui/ui-material/src/main/java/androidx/ui/material/ripple/DefaultRippleEffect.kt
index 3a6e216..92190e1 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/ripple/DefaultRippleEffect.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/ripple/DefaultRippleEffect.kt
@@ -26,25 +26,25 @@
 import androidx.animation.transitionDefinition
 import androidx.ui.animation.PxPositionPropKey
 import androidx.ui.animation.PxPropKey
-import androidx.ui.core.Density
-import androidx.ui.core.DensityScope
-import androidx.ui.core.Dp
 import androidx.ui.core.LayoutCoordinates
-import androidx.ui.core.Px
-import androidx.ui.core.PxPosition
-import androidx.ui.core.PxSize
-import androidx.ui.core.center
-import androidx.ui.core.dp
-import androidx.ui.core.getDistance
-import androidx.ui.core.inMilliseconds
-import androidx.ui.core.max
-import androidx.ui.core.milliseconds
-import androidx.ui.core.toOffset
-import androidx.ui.core.toRect
-import androidx.ui.core.withDensity
 import androidx.ui.graphics.Canvas
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
+import androidx.ui.unit.Density
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.Dp
+import androidx.ui.unit.Px
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.center
+import androidx.ui.unit.dp
+import androidx.ui.unit.getDistance
+import androidx.ui.unit.inMilliseconds
+import androidx.ui.unit.max
+import androidx.ui.unit.milliseconds
+import androidx.ui.unit.toOffset
+import androidx.ui.unit.toRect
+import androidx.ui.unit.withDensity
 
 internal fun getRippleStartRadius(size: PxSize) =
     max(size.width, size.height) * 0.3f
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/ripple/Ripple.kt b/ui/ui-material/src/main/java/androidx/ui/material/ripple/Ripple.kt
index b00d71f..b751177 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/ripple/Ripple.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/ripple/Ripple.kt
@@ -22,16 +22,16 @@
 import androidx.compose.remember
 import androidx.compose.onDispose
 import androidx.ui.animation.transitionsEnabled
-import androidx.ui.core.Density
-import androidx.ui.core.Dp
+import androidx.ui.unit.Density
+import androidx.ui.unit.Dp
 import androidx.ui.core.Draw
 import androidx.ui.core.LayoutCoordinates
 import androidx.ui.core.OnChildPositioned
-import androidx.ui.core.PxPosition
 import androidx.ui.core.ambientDensity
-import androidx.ui.core.center
 import androidx.ui.core.gesture.PressIndicatorGestureDetector
 import androidx.ui.graphics.Color
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.center
 
 /**
  * Ripple is a visual indicator for a pressed state.
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/ripple/RippleEffectFactory.kt b/ui/ui-material/src/main/java/androidx/ui/material/ripple/RippleEffectFactory.kt
index 9f2d7c9..fa565fa 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/ripple/RippleEffectFactory.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/ripple/RippleEffectFactory.kt
@@ -16,10 +16,10 @@
 
 package androidx.ui.material.ripple
 
-import androidx.ui.core.Density
-import androidx.ui.core.Dp
+import androidx.ui.unit.Density
+import androidx.ui.unit.Dp
 import androidx.ui.core.LayoutCoordinates
-import androidx.ui.core.PxPosition
+import androidx.ui.unit.PxPosition
 
 /**
  * An encapsulation of an [RippleEffect] constructor used by [Ripple] and [RippleTheme].
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/surface/Card.kt b/ui/ui-material/src/main/java/androidx/ui/material/surface/Card.kt
index 84c3b42..6fee059 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/surface/Card.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/surface/Card.kt
@@ -17,14 +17,14 @@
 package androidx.ui.material.surface
 
 import androidx.compose.Composable
-import androidx.ui.core.Dp
 import androidx.ui.core.Modifier
-import androidx.ui.core.dp
-import androidx.ui.engine.geometry.Shape
 import androidx.ui.foundation.shape.border.Border
 import androidx.ui.graphics.Color
+import androidx.ui.graphics.Shape
 import androidx.ui.material.MaterialTheme
 import androidx.ui.material.contentColorFor
+import androidx.ui.unit.Dp
+import androidx.ui.unit.dp
 
 /**
  * Cards are [Surface]s that display content and actions on a single topic.
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/surface/Surface.kt b/ui/ui-material/src/main/java/androidx/ui/material/surface/Surface.kt
index cf14808..a28be42 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/surface/Surface.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/surface/Surface.kt
@@ -19,25 +19,25 @@
 import androidx.compose.Composable
 import androidx.ui.core.Clip
 import androidx.ui.core.CurrentTextStyleProvider
-import androidx.ui.core.Dp
 import androidx.ui.core.DrawShadow
 import androidx.ui.core.Layout
 import androidx.ui.core.Modifier
 import androidx.ui.core.Text
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
-import androidx.ui.engine.geometry.Shape
 import androidx.ui.foundation.ProvideContentColor
 import androidx.ui.foundation.shape.DrawShape
 import androidx.ui.foundation.shape.RectangleShape
 import androidx.ui.foundation.shape.border.Border
 import androidx.ui.foundation.shape.border.DrawBorder
 import androidx.ui.graphics.Color
+import androidx.ui.graphics.Shape
 import androidx.ui.graphics.compositeOver
 import androidx.ui.material.ColorPalette
 import androidx.ui.material.MaterialTheme
 import androidx.ui.material.contentColorFor
 import androidx.ui.text.TextStyle
+import androidx.ui.unit.Dp
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
 import kotlin.math.ln
 
 /**
diff --git a/ui/ui-material/src/test/java/androidx/ui/material/ripple/DefaultRippleEffectTest.kt b/ui/ui-material/src/test/java/androidx/ui/material/ripple/DefaultRippleEffectTest.kt
index b246a39..f78d000 100644
--- a/ui/ui-material/src/test/java/androidx/ui/material/ripple/DefaultRippleEffectTest.kt
+++ b/ui/ui-material/src/test/java/androidx/ui/material/ripple/DefaultRippleEffectTest.kt
@@ -15,11 +15,11 @@
  */
 package androidx.ui.material.ripple
 
-import androidx.ui.core.Density
-import androidx.ui.core.PxSize
-import androidx.ui.core.dp
-import androidx.ui.core.px
-import androidx.ui.core.withDensity
+import androidx.ui.unit.Density
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
+import androidx.ui.unit.withDensity
 import com.google.common.truth.Truth.assertThat
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-platform/api/0.1.0-dev04.txt b/ui/ui-platform/api/0.1.0-dev04.txt
index fa7d665..0dbfc14 100644
--- a/ui/ui-platform/api/0.1.0-dev04.txt
+++ b/ui/ui-platform/api/0.1.0-dev04.txt
@@ -11,16 +11,16 @@
 
 package androidx.ui.core {
 
-  public final class AndroidComposeView extends android.view.ViewGroup implements androidx.ui.core.DensityScope androidx.ui.core.Owner androidx.ui.core.SemanticsTreeProvider {
+  public final class AndroidComposeView extends android.view.ViewGroup implements androidx.ui.unit.DensityScope androidx.ui.core.Owner androidx.ui.core.SemanticsTreeProvider {
     ctor public AndroidComposeView(android.content.Context context);
-    method public androidx.ui.core.IntPxPosition calculatePosition();
-    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.core.PxSize parentSize);
+    method public androidx.ui.unit.IntPxPosition calculatePosition();
+    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.unit.PxSize parentSize);
     method public java.util.List<androidx.ui.core.SemanticsTreeNode> getAllSemanticNodes();
     method public androidx.ui.autofill.Autofill? getAutofill();
     method public androidx.ui.autofill.AutofillTree getAutofillTree();
     method public kotlin.jvm.functions.Function0<kotlin.Unit> getConfigurationChangeObserver();
     method public androidx.ui.core.Constraints getConstraints();
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public androidx.ui.text.font.Font.ResourceLoader getFontLoader();
     method public long getMeasureIteration();
     method public androidx.ui.core.Ref<androidx.ui.core.AndroidComposeView>? getRef();
@@ -46,7 +46,7 @@
     property public final androidx.ui.autofill.AutofillTree autofillTree;
     property public final kotlin.jvm.functions.Function0<kotlin.Unit> configurationChangeObserver;
     property public final androidx.ui.core.Constraints constraints;
-    property public androidx.ui.core.Density density;
+    property public androidx.ui.unit.Density density;
     property public final androidx.ui.text.font.Font.ResourceLoader fontLoader;
     property public long measureIteration;
     property public final androidx.ui.core.Ref<androidx.ui.core.AndroidComposeView>? ref;
@@ -89,20 +89,20 @@
 
   public final class ComponentNodesKt {
     method public static void add(androidx.ui.core.ComponentNode, androidx.ui.core.ComponentNode child);
-    method public static androidx.ui.core.PxPosition childToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode child, androidx.ui.core.PxPosition childLocal);
+    method public static androidx.ui.unit.PxPosition childToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode child, androidx.ui.unit.PxPosition childLocal);
     method public static androidx.ui.core.ComponentNode? findClosestParentNode(androidx.ui.core.ComponentNode, kotlin.jvm.functions.Function1<? super androidx.ui.core.ComponentNode,java.lang.Boolean> selector);
     method public static androidx.ui.core.LayoutNode? findLastLayoutChild(androidx.ui.core.ComponentNode, kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutNode,java.lang.Boolean> block);
     method public static androidx.ui.core.DataNodeKey<kotlin.jvm.functions.Function1<androidx.ui.core.LayoutCoordinates,kotlin.Unit>> getOnChildPositionedKey();
     method public static androidx.ui.core.DataNodeKey<kotlin.jvm.functions.Function1<androidx.ui.core.LayoutCoordinates,kotlin.Unit>> getOnPositionedKey();
     method public static androidx.ui.core.DataNodeKey<java.lang.Object> getParentDataKey();
-    method public static androidx.ui.core.PxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.PxPosition global, boolean withOwnerOffset = true);
-    method public static androidx.ui.core.IntPxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.IntPxPosition global, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.PxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.unit.PxPosition global, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.IntPxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.unit.IntPxPosition global, boolean withOwnerOffset = true);
     method public static boolean hasNoLayoutDescendants(androidx.ui.core.ComponentNode);
     method public static boolean isAttached(androidx.ui.core.ComponentNode);
-    method public static androidx.ui.core.PxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.core.PxPosition local, boolean withOwnerOffset = true);
-    method public static androidx.ui.core.IntPxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.core.IntPxPosition local, boolean withOwnerOffset = true);
-    method public static androidx.ui.core.PxPosition positionRelativeToAncestor(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode ancestor);
-    method public static androidx.ui.core.IntPxPosition positionRelativeToRoot(androidx.ui.core.LayoutNode);
+    method public static androidx.ui.unit.PxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.unit.PxPosition local, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.IntPxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.unit.IntPxPosition local, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.PxPosition positionRelativeToAncestor(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode ancestor);
+    method public static androidx.ui.unit.IntPxPosition positionRelativeToRoot(androidx.ui.core.LayoutNode);
     method public static androidx.ui.core.Owner requireOwner(androidx.ui.core.ComponentNode);
     method public static void visitLayoutChildren(androidx.ui.core.ComponentNode, kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutNode,kotlin.Unit> block);
   }
@@ -126,15 +126,15 @@
   public final class DrawNode extends androidx.ui.core.ComponentNode {
     ctor public DrawNode();
     method public boolean getNeedsPaint();
-    method public kotlin.jvm.functions.Function3<androidx.ui.core.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? getOnPaint();
-    method public kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? getOnPaintWithChildren();
+    method public kotlin.jvm.functions.Function3<androidx.ui.unit.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? getOnPaint();
+    method public kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? getOnPaintWithChildren();
     method public void invalidate();
     method public void setNeedsPaint(boolean p);
-    method public void setOnPaint(kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit>? value);
-    method public void setOnPaintWithChildren(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit>? value);
+    method public void setOnPaint(kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit>? value);
+    method public void setOnPaintWithChildren(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit>? value);
     property public final boolean needsPaint;
-    property public final kotlin.jvm.functions.Function3<androidx.ui.core.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? onPaint;
-    property public final kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? onPaintWithChildren;
+    property public final kotlin.jvm.functions.Function3<androidx.ui.unit.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? onPaint;
+    property public final kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? onPaintWithChildren;
   }
 
   public final class FocusNode extends androidx.ui.core.ComponentNode {
@@ -157,35 +157,35 @@
 
   public final class LayoutNode extends androidx.ui.core.ComponentNode implements androidx.ui.core.Measurable {
     ctor public LayoutNode();
-    method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.Density density);
+    method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.unit.Density density);
     method public boolean getAffectsParentSize();
     method public androidx.ui.core.Constraints getConstraints();
-    method public androidx.ui.core.IntPxPosition getContentPosition();
-    method public androidx.ui.core.IntPxSize getContentSize();
-    method public androidx.ui.core.IntPx getHeight();
+    method public androidx.ui.unit.IntPxPosition getContentPosition();
+    method public androidx.ui.unit.IntPxSize getContentSize();
+    method public androidx.ui.unit.IntPx getHeight();
     method public java.util.List<androidx.ui.core.LayoutNode> getLayoutChildren();
     method public androidx.ui.core.LayoutNode.MeasureBlocks getMeasureBlocks();
     method public androidx.ui.core.MeasureScope getMeasureScope();
-    method public androidx.ui.core.IntPxPosition getModifiedPosition();
-    method public androidx.ui.core.IntPxSize getModifiedSize();
+    method public androidx.ui.unit.IntPxPosition getModifiedPosition();
+    method public androidx.ui.unit.IntPxSize getModifiedSize();
     method public androidx.ui.core.Modifier getModifier();
     method public boolean getNeedsRelayout();
     method public boolean getNeedsRemeasure();
     method public Object? getParentData();
     method public boolean getPositionedDuringMeasurePass();
     method public androidx.ui.core.Ref<androidx.ui.core.LayoutNode>? getRef();
-    method public androidx.ui.core.IntPx getWidth();
-    method public androidx.ui.core.IntPx getX();
-    method public androidx.ui.core.IntPx getY();
+    method public androidx.ui.unit.IntPx getWidth();
+    method public androidx.ui.unit.IntPx getX();
+    method public androidx.ui.unit.IntPx getY();
     method public void ignoreModelReads(kotlin.jvm.functions.Function0<kotlin.Unit> block);
     method public boolean isMeasuring();
     method public boolean isPlaced();
-    method public androidx.ui.core.IntPx maxIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(androidx.ui.core.IntPx height);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(androidx.ui.unit.IntPx height);
     method public androidx.ui.core.Placeable measure(androidx.ui.core.Constraints constraints);
-    method public androidx.ui.core.IntPx minIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(androidx.ui.core.IntPx height);
-    method public void place(androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
+    method public androidx.ui.unit.IntPx minIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(androidx.ui.unit.IntPx height);
+    method public void place(androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
     method public void placeChildren();
     method public void requestRemeasure();
     method public void setAffectsParentSize(boolean p);
@@ -198,16 +198,16 @@
     property public final boolean affectsParentSize;
     property public final androidx.ui.core.Constraints constraints;
     property protected androidx.ui.core.LayoutNode? containingLayoutNode;
-    property public final androidx.ui.core.IntPxPosition contentPosition;
-    property public final androidx.ui.core.IntPxSize contentSize;
-    property public final androidx.ui.core.IntPx height;
+    property public final androidx.ui.unit.IntPxPosition contentPosition;
+    property public final androidx.ui.unit.IntPxSize contentSize;
+    property public final androidx.ui.unit.IntPx height;
     property public final boolean isMeasuring;
     property public final boolean isPlaced;
     property public final java.util.List<androidx.ui.core.LayoutNode> layoutChildren;
     property public final androidx.ui.core.LayoutNode.MeasureBlocks measureBlocks;
     property public final androidx.ui.core.MeasureScope measureScope;
-    property public final androidx.ui.core.IntPxPosition modifiedPosition;
-    property public final androidx.ui.core.IntPxSize modifiedSize;
+    property public final androidx.ui.unit.IntPxPosition modifiedPosition;
+    property public final androidx.ui.unit.IntPxSize modifiedSize;
     property public final androidx.ui.core.Modifier modifier;
     property public final boolean needsRelayout;
     property public final boolean needsRemeasure;
@@ -215,9 +215,9 @@
     property public androidx.ui.core.LayoutNode? parentLayoutNode;
     property public final boolean positionedDuringMeasurePass;
     property public final androidx.ui.core.Ref<androidx.ui.core.LayoutNode>? ref;
-    property public final androidx.ui.core.IntPx width;
-    property public final androidx.ui.core.IntPx x;
-    property public final androidx.ui.core.IntPx y;
+    property public final androidx.ui.unit.IntPx width;
+    property public final androidx.ui.unit.IntPx x;
+    property public final androidx.ui.unit.IntPx y;
   }
 
   public abstract static class LayoutNode.InnerMeasureScope extends androidx.ui.core.MeasureScope {
@@ -227,19 +227,19 @@
   }
 
   public static interface LayoutNode.MeasureBlocks {
-    method public androidx.ui.core.IntPx maxIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
     method public androidx.ui.core.MeasureScope.LayoutResult measure(androidx.ui.core.MeasureScope measureScope, java.util.List<? extends androidx.ui.core.Measurable> measurables, androidx.ui.core.Constraints constraints);
-    method public androidx.ui.core.IntPx minIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
+    method public androidx.ui.unit.IntPx minIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
   }
 
   public abstract static class LayoutNode.NoIntristicsMeasureBlocks implements androidx.ui.core.LayoutNode.MeasureBlocks {
     ctor public LayoutNode.NoIntristicsMeasureBlocks(String error);
-    method public Void maxIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public Void maxIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
-    method public Void minIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public Void minIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
+    method public Void maxIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public Void maxIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
+    method public Void minIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public Void minIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
   }
 
   public final class ModelObserver {
@@ -251,9 +251,9 @@
   }
 
   public interface Owner {
-    method public androidx.ui.core.IntPxPosition calculatePosition();
-    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.core.PxSize parentSize);
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.IntPxPosition calculatePosition();
+    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.unit.PxSize parentSize);
+    method public androidx.ui.unit.Density getDensity();
     method public long getMeasureIteration();
     method public boolean getShowLayoutBounds();
     method public void observeDrawModelReads(androidx.ui.core.RepaintBoundaryNode node, kotlin.jvm.functions.Function0<kotlin.Unit> block);
@@ -267,7 +267,7 @@
     method public void onRequestMeasure(androidx.ui.core.LayoutNode layoutNode);
     method public void onSizeChange(androidx.ui.core.LayoutNode layoutNode);
     method public void pauseModelReadObserveration(kotlin.jvm.functions.Function0<kotlin.Unit> block);
-    property public abstract androidx.ui.core.Density density;
+    property public abstract androidx.ui.unit.Density density;
     property public abstract long measureIteration;
     property public abstract boolean showLayoutBounds;
   }
@@ -275,11 +275,11 @@
   public final class PointerInputNode extends androidx.ui.core.ComponentNode {
     ctor public PointerInputNode();
     method public kotlin.jvm.functions.Function0<kotlin.Unit> getCancelHandler();
-    method public kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.core.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> getPointerInputHandler();
+    method public kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.unit.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> getPointerInputHandler();
     method public void setCancelHandler(kotlin.jvm.functions.Function0<kotlin.Unit> p);
-    method public void setPointerInputHandler(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> p);
+    method public void setPointerInputHandler(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> p);
     property public final kotlin.jvm.functions.Function0<kotlin.Unit> cancelHandler;
-    property public final kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.core.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler;
+    property public final kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.unit.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler;
   }
 
   public final class Ref<T> {
@@ -292,19 +292,19 @@
   public final class RepaintBoundaryNode extends androidx.ui.core.ComponentNode {
     ctor public RepaintBoundaryNode(String? name);
     method public boolean getClipToShape();
-    method public androidx.ui.core.Dp getElevation();
+    method public androidx.ui.unit.Dp getElevation();
     method public String? getName();
     method public float getOpacity();
-    method public androidx.ui.engine.geometry.Shape? getShape();
+    method public androidx.ui.graphics.Shape? getShape();
     method public void setClipToShape(boolean value);
-    method public void setElevation(androidx.ui.core.Dp value);
+    method public void setElevation(androidx.ui.unit.Dp value);
     method public void setOpacity(float value);
-    method public void setShape(androidx.ui.engine.geometry.Shape? value);
+    method public void setShape(androidx.ui.graphics.Shape? value);
     property public final boolean clipToShape;
-    property public final androidx.ui.core.Dp elevation;
+    property public final androidx.ui.unit.Dp elevation;
     property public final float opacity;
     property public androidx.ui.core.RepaintBoundaryNode? repaintBoundary;
-    property public final androidx.ui.engine.geometry.Shape? shape;
+    property public final androidx.ui.graphics.Shape? shape;
   }
 
   public final class SemanticsComponentNode extends androidx.ui.core.ComponentNode {
@@ -325,11 +325,11 @@
     method public androidx.ui.core.ComponentNode? findClosestParentNode(kotlin.jvm.functions.Function1<? super androidx.ui.core.ComponentNode,java.lang.Boolean> selector);
     method public java.util.Set<androidx.ui.core.SemanticsTreeNode> getChildren();
     method public androidx.ui.core.semantics.SemanticsConfiguration getData();
-    method public androidx.ui.engine.geometry.Rect? getGlobalRect();
+    method public androidx.ui.geometry.Rect? getGlobalRect();
     method public androidx.ui.core.SemanticsTreeNode? getParent();
     property public abstract java.util.Set<androidx.ui.core.SemanticsTreeNode> children;
     property public abstract androidx.ui.core.semantics.SemanticsConfiguration data;
-    property public abstract androidx.ui.engine.geometry.Rect? globalRect;
+    property public abstract androidx.ui.geometry.Rect? globalRect;
     property public abstract androidx.ui.core.SemanticsTreeNode? parent;
   }
 
@@ -339,11 +339,11 @@
     method public androidx.ui.core.ComponentNode? findClosestParentNode(kotlin.jvm.functions.Function1<? super androidx.ui.core.ComponentNode,java.lang.Boolean> selector);
     method public java.util.Set<androidx.ui.core.SemanticsTreeNode> getChildren();
     method public androidx.ui.core.semantics.SemanticsConfiguration getData();
-    method public androidx.ui.engine.geometry.Rect? getGlobalRect();
+    method public androidx.ui.geometry.Rect? getGlobalRect();
     method public androidx.ui.core.SemanticsTreeNode? getParent();
     property public java.util.Set<androidx.ui.core.SemanticsTreeNode> children;
     property public androidx.ui.core.semantics.SemanticsConfiguration data;
-    property public androidx.ui.engine.geometry.Rect? globalRect;
+    property public androidx.ui.geometry.Rect? globalRect;
   }
 
   public final class SemanticsTreeNodeImplKt {
@@ -438,9 +438,9 @@
     method public boolean getMergeAllDescendantsIntoThisNode();
     method public androidx.ui.core.semantics.SemanticsOwner? getOwner();
     method public androidx.ui.core.semantics.SemanticsNode? getParent();
-    method public androidx.ui.engine.geometry.Rect? getParentPaintClipRect();
-    method public androidx.ui.engine.geometry.Rect? getParentSemanticsClipRect();
-    method public androidx.ui.engine.geometry.Rect getRect();
+    method public androidx.ui.geometry.Rect? getParentPaintClipRect();
+    method public androidx.ui.geometry.Rect? getParentSemanticsClipRect();
+    method public androidx.ui.geometry.Rect getRect();
     method public boolean isInvisible();
     method public boolean isMergedIntoParent();
     method public boolean isPartOfNodeMerging();
@@ -449,9 +449,9 @@
     method public void setChildren(java.util.List<androidx.ui.core.semantics.SemanticsNode> p);
     method public void setMergedIntoParent(boolean value);
     method public void setParent(androidx.ui.core.semantics.SemanticsNode? p);
-    method public void setParentPaintClipRect(androidx.ui.engine.geometry.Rect? p);
-    method public void setParentSemanticsClipRect(androidx.ui.engine.geometry.Rect? p);
-    method public void setRect(androidx.ui.engine.geometry.Rect value);
+    method public void setParentPaintClipRect(androidx.ui.geometry.Rect? p);
+    method public void setParentSemanticsClipRect(androidx.ui.geometry.Rect? p);
+    method public void setRect(androidx.ui.geometry.Rect value);
     property public final boolean attached;
     property public final java.util.List<androidx.ui.core.semantics.SemanticsNode> children;
     property public final int childrenCount;
@@ -464,9 +464,9 @@
     property public final boolean mergeAllDescendantsIntoThisNode;
     property public final androidx.ui.core.semantics.SemanticsOwner? owner;
     property public final androidx.ui.core.semantics.SemanticsNode? parent;
-    property public final androidx.ui.engine.geometry.Rect? parentPaintClipRect;
-    property public final androidx.ui.engine.geometry.Rect? parentSemanticsClipRect;
-    property public final androidx.ui.engine.geometry.Rect rect;
+    property public final androidx.ui.geometry.Rect? parentPaintClipRect;
+    property public final androidx.ui.geometry.Rect? parentSemanticsClipRect;
+    property public final androidx.ui.geometry.Rect rect;
     field public static final androidx.ui.core.semantics.SemanticsNode.Companion! Companion;
   }
 
@@ -496,7 +496,7 @@
 package androidx.ui.temputils {
 
   public final class CoroutineUtilsKt {
-    method public static kotlinx.coroutines.Job delay(androidx.ui.core.Duration duration, kotlin.coroutines.CoroutineContext context, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+    method public static kotlinx.coroutines.Job delay(androidx.ui.unit.Duration duration, kotlin.coroutines.CoroutineContext context, kotlin.jvm.functions.Function0<kotlin.Unit> block);
   }
 
 }
diff --git a/ui/ui-platform/api/current.txt b/ui/ui-platform/api/current.txt
index fa7d665..0dbfc14 100644
--- a/ui/ui-platform/api/current.txt
+++ b/ui/ui-platform/api/current.txt
@@ -11,16 +11,16 @@
 
 package androidx.ui.core {
 
-  public final class AndroidComposeView extends android.view.ViewGroup implements androidx.ui.core.DensityScope androidx.ui.core.Owner androidx.ui.core.SemanticsTreeProvider {
+  public final class AndroidComposeView extends android.view.ViewGroup implements androidx.ui.unit.DensityScope androidx.ui.core.Owner androidx.ui.core.SemanticsTreeProvider {
     ctor public AndroidComposeView(android.content.Context context);
-    method public androidx.ui.core.IntPxPosition calculatePosition();
-    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.core.PxSize parentSize);
+    method public androidx.ui.unit.IntPxPosition calculatePosition();
+    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.unit.PxSize parentSize);
     method public java.util.List<androidx.ui.core.SemanticsTreeNode> getAllSemanticNodes();
     method public androidx.ui.autofill.Autofill? getAutofill();
     method public androidx.ui.autofill.AutofillTree getAutofillTree();
     method public kotlin.jvm.functions.Function0<kotlin.Unit> getConfigurationChangeObserver();
     method public androidx.ui.core.Constraints getConstraints();
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public androidx.ui.text.font.Font.ResourceLoader getFontLoader();
     method public long getMeasureIteration();
     method public androidx.ui.core.Ref<androidx.ui.core.AndroidComposeView>? getRef();
@@ -46,7 +46,7 @@
     property public final androidx.ui.autofill.AutofillTree autofillTree;
     property public final kotlin.jvm.functions.Function0<kotlin.Unit> configurationChangeObserver;
     property public final androidx.ui.core.Constraints constraints;
-    property public androidx.ui.core.Density density;
+    property public androidx.ui.unit.Density density;
     property public final androidx.ui.text.font.Font.ResourceLoader fontLoader;
     property public long measureIteration;
     property public final androidx.ui.core.Ref<androidx.ui.core.AndroidComposeView>? ref;
@@ -89,20 +89,20 @@
 
   public final class ComponentNodesKt {
     method public static void add(androidx.ui.core.ComponentNode, androidx.ui.core.ComponentNode child);
-    method public static androidx.ui.core.PxPosition childToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode child, androidx.ui.core.PxPosition childLocal);
+    method public static androidx.ui.unit.PxPosition childToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode child, androidx.ui.unit.PxPosition childLocal);
     method public static androidx.ui.core.ComponentNode? findClosestParentNode(androidx.ui.core.ComponentNode, kotlin.jvm.functions.Function1<? super androidx.ui.core.ComponentNode,java.lang.Boolean> selector);
     method public static androidx.ui.core.LayoutNode? findLastLayoutChild(androidx.ui.core.ComponentNode, kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutNode,java.lang.Boolean> block);
     method public static androidx.ui.core.DataNodeKey<kotlin.jvm.functions.Function1<androidx.ui.core.LayoutCoordinates,kotlin.Unit>> getOnChildPositionedKey();
     method public static androidx.ui.core.DataNodeKey<kotlin.jvm.functions.Function1<androidx.ui.core.LayoutCoordinates,kotlin.Unit>> getOnPositionedKey();
     method public static androidx.ui.core.DataNodeKey<java.lang.Object> getParentDataKey();
-    method public static androidx.ui.core.PxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.PxPosition global, boolean withOwnerOffset = true);
-    method public static androidx.ui.core.IntPxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.IntPxPosition global, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.PxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.unit.PxPosition global, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.IntPxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.unit.IntPxPosition global, boolean withOwnerOffset = true);
     method public static boolean hasNoLayoutDescendants(androidx.ui.core.ComponentNode);
     method public static boolean isAttached(androidx.ui.core.ComponentNode);
-    method public static androidx.ui.core.PxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.core.PxPosition local, boolean withOwnerOffset = true);
-    method public static androidx.ui.core.IntPxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.core.IntPxPosition local, boolean withOwnerOffset = true);
-    method public static androidx.ui.core.PxPosition positionRelativeToAncestor(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode ancestor);
-    method public static androidx.ui.core.IntPxPosition positionRelativeToRoot(androidx.ui.core.LayoutNode);
+    method public static androidx.ui.unit.PxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.unit.PxPosition local, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.IntPxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.unit.IntPxPosition local, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.PxPosition positionRelativeToAncestor(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode ancestor);
+    method public static androidx.ui.unit.IntPxPosition positionRelativeToRoot(androidx.ui.core.LayoutNode);
     method public static androidx.ui.core.Owner requireOwner(androidx.ui.core.ComponentNode);
     method public static void visitLayoutChildren(androidx.ui.core.ComponentNode, kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutNode,kotlin.Unit> block);
   }
@@ -126,15 +126,15 @@
   public final class DrawNode extends androidx.ui.core.ComponentNode {
     ctor public DrawNode();
     method public boolean getNeedsPaint();
-    method public kotlin.jvm.functions.Function3<androidx.ui.core.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? getOnPaint();
-    method public kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? getOnPaintWithChildren();
+    method public kotlin.jvm.functions.Function3<androidx.ui.unit.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? getOnPaint();
+    method public kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? getOnPaintWithChildren();
     method public void invalidate();
     method public void setNeedsPaint(boolean p);
-    method public void setOnPaint(kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit>? value);
-    method public void setOnPaintWithChildren(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit>? value);
+    method public void setOnPaint(kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit>? value);
+    method public void setOnPaintWithChildren(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit>? value);
     property public final boolean needsPaint;
-    property public final kotlin.jvm.functions.Function3<androidx.ui.core.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? onPaint;
-    property public final kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? onPaintWithChildren;
+    property public final kotlin.jvm.functions.Function3<androidx.ui.unit.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? onPaint;
+    property public final kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? onPaintWithChildren;
   }
 
   public final class FocusNode extends androidx.ui.core.ComponentNode {
@@ -157,35 +157,35 @@
 
   public final class LayoutNode extends androidx.ui.core.ComponentNode implements androidx.ui.core.Measurable {
     ctor public LayoutNode();
-    method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.Density density);
+    method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.unit.Density density);
     method public boolean getAffectsParentSize();
     method public androidx.ui.core.Constraints getConstraints();
-    method public androidx.ui.core.IntPxPosition getContentPosition();
-    method public androidx.ui.core.IntPxSize getContentSize();
-    method public androidx.ui.core.IntPx getHeight();
+    method public androidx.ui.unit.IntPxPosition getContentPosition();
+    method public androidx.ui.unit.IntPxSize getContentSize();
+    method public androidx.ui.unit.IntPx getHeight();
     method public java.util.List<androidx.ui.core.LayoutNode> getLayoutChildren();
     method public androidx.ui.core.LayoutNode.MeasureBlocks getMeasureBlocks();
     method public androidx.ui.core.MeasureScope getMeasureScope();
-    method public androidx.ui.core.IntPxPosition getModifiedPosition();
-    method public androidx.ui.core.IntPxSize getModifiedSize();
+    method public androidx.ui.unit.IntPxPosition getModifiedPosition();
+    method public androidx.ui.unit.IntPxSize getModifiedSize();
     method public androidx.ui.core.Modifier getModifier();
     method public boolean getNeedsRelayout();
     method public boolean getNeedsRemeasure();
     method public Object? getParentData();
     method public boolean getPositionedDuringMeasurePass();
     method public androidx.ui.core.Ref<androidx.ui.core.LayoutNode>? getRef();
-    method public androidx.ui.core.IntPx getWidth();
-    method public androidx.ui.core.IntPx getX();
-    method public androidx.ui.core.IntPx getY();
+    method public androidx.ui.unit.IntPx getWidth();
+    method public androidx.ui.unit.IntPx getX();
+    method public androidx.ui.unit.IntPx getY();
     method public void ignoreModelReads(kotlin.jvm.functions.Function0<kotlin.Unit> block);
     method public boolean isMeasuring();
     method public boolean isPlaced();
-    method public androidx.ui.core.IntPx maxIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(androidx.ui.core.IntPx height);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(androidx.ui.unit.IntPx height);
     method public androidx.ui.core.Placeable measure(androidx.ui.core.Constraints constraints);
-    method public androidx.ui.core.IntPx minIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(androidx.ui.core.IntPx height);
-    method public void place(androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
+    method public androidx.ui.unit.IntPx minIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(androidx.ui.unit.IntPx height);
+    method public void place(androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
     method public void placeChildren();
     method public void requestRemeasure();
     method public void setAffectsParentSize(boolean p);
@@ -198,16 +198,16 @@
     property public final boolean affectsParentSize;
     property public final androidx.ui.core.Constraints constraints;
     property protected androidx.ui.core.LayoutNode? containingLayoutNode;
-    property public final androidx.ui.core.IntPxPosition contentPosition;
-    property public final androidx.ui.core.IntPxSize contentSize;
-    property public final androidx.ui.core.IntPx height;
+    property public final androidx.ui.unit.IntPxPosition contentPosition;
+    property public final androidx.ui.unit.IntPxSize contentSize;
+    property public final androidx.ui.unit.IntPx height;
     property public final boolean isMeasuring;
     property public final boolean isPlaced;
     property public final java.util.List<androidx.ui.core.LayoutNode> layoutChildren;
     property public final androidx.ui.core.LayoutNode.MeasureBlocks measureBlocks;
     property public final androidx.ui.core.MeasureScope measureScope;
-    property public final androidx.ui.core.IntPxPosition modifiedPosition;
-    property public final androidx.ui.core.IntPxSize modifiedSize;
+    property public final androidx.ui.unit.IntPxPosition modifiedPosition;
+    property public final androidx.ui.unit.IntPxSize modifiedSize;
     property public final androidx.ui.core.Modifier modifier;
     property public final boolean needsRelayout;
     property public final boolean needsRemeasure;
@@ -215,9 +215,9 @@
     property public androidx.ui.core.LayoutNode? parentLayoutNode;
     property public final boolean positionedDuringMeasurePass;
     property public final androidx.ui.core.Ref<androidx.ui.core.LayoutNode>? ref;
-    property public final androidx.ui.core.IntPx width;
-    property public final androidx.ui.core.IntPx x;
-    property public final androidx.ui.core.IntPx y;
+    property public final androidx.ui.unit.IntPx width;
+    property public final androidx.ui.unit.IntPx x;
+    property public final androidx.ui.unit.IntPx y;
   }
 
   public abstract static class LayoutNode.InnerMeasureScope extends androidx.ui.core.MeasureScope {
@@ -227,19 +227,19 @@
   }
 
   public static interface LayoutNode.MeasureBlocks {
-    method public androidx.ui.core.IntPx maxIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
     method public androidx.ui.core.MeasureScope.LayoutResult measure(androidx.ui.core.MeasureScope measureScope, java.util.List<? extends androidx.ui.core.Measurable> measurables, androidx.ui.core.Constraints constraints);
-    method public androidx.ui.core.IntPx minIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
+    method public androidx.ui.unit.IntPx minIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
   }
 
   public abstract static class LayoutNode.NoIntristicsMeasureBlocks implements androidx.ui.core.LayoutNode.MeasureBlocks {
     ctor public LayoutNode.NoIntristicsMeasureBlocks(String error);
-    method public Void maxIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public Void maxIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
-    method public Void minIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public Void minIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
+    method public Void maxIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public Void maxIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
+    method public Void minIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public Void minIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
   }
 
   public final class ModelObserver {
@@ -251,9 +251,9 @@
   }
 
   public interface Owner {
-    method public androidx.ui.core.IntPxPosition calculatePosition();
-    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.core.PxSize parentSize);
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.IntPxPosition calculatePosition();
+    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.unit.PxSize parentSize);
+    method public androidx.ui.unit.Density getDensity();
     method public long getMeasureIteration();
     method public boolean getShowLayoutBounds();
     method public void observeDrawModelReads(androidx.ui.core.RepaintBoundaryNode node, kotlin.jvm.functions.Function0<kotlin.Unit> block);
@@ -267,7 +267,7 @@
     method public void onRequestMeasure(androidx.ui.core.LayoutNode layoutNode);
     method public void onSizeChange(androidx.ui.core.LayoutNode layoutNode);
     method public void pauseModelReadObserveration(kotlin.jvm.functions.Function0<kotlin.Unit> block);
-    property public abstract androidx.ui.core.Density density;
+    property public abstract androidx.ui.unit.Density density;
     property public abstract long measureIteration;
     property public abstract boolean showLayoutBounds;
   }
@@ -275,11 +275,11 @@
   public final class PointerInputNode extends androidx.ui.core.ComponentNode {
     ctor public PointerInputNode();
     method public kotlin.jvm.functions.Function0<kotlin.Unit> getCancelHandler();
-    method public kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.core.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> getPointerInputHandler();
+    method public kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.unit.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> getPointerInputHandler();
     method public void setCancelHandler(kotlin.jvm.functions.Function0<kotlin.Unit> p);
-    method public void setPointerInputHandler(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> p);
+    method public void setPointerInputHandler(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> p);
     property public final kotlin.jvm.functions.Function0<kotlin.Unit> cancelHandler;
-    property public final kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.core.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler;
+    property public final kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.unit.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler;
   }
 
   public final class Ref<T> {
@@ -292,19 +292,19 @@
   public final class RepaintBoundaryNode extends androidx.ui.core.ComponentNode {
     ctor public RepaintBoundaryNode(String? name);
     method public boolean getClipToShape();
-    method public androidx.ui.core.Dp getElevation();
+    method public androidx.ui.unit.Dp getElevation();
     method public String? getName();
     method public float getOpacity();
-    method public androidx.ui.engine.geometry.Shape? getShape();
+    method public androidx.ui.graphics.Shape? getShape();
     method public void setClipToShape(boolean value);
-    method public void setElevation(androidx.ui.core.Dp value);
+    method public void setElevation(androidx.ui.unit.Dp value);
     method public void setOpacity(float value);
-    method public void setShape(androidx.ui.engine.geometry.Shape? value);
+    method public void setShape(androidx.ui.graphics.Shape? value);
     property public final boolean clipToShape;
-    property public final androidx.ui.core.Dp elevation;
+    property public final androidx.ui.unit.Dp elevation;
     property public final float opacity;
     property public androidx.ui.core.RepaintBoundaryNode? repaintBoundary;
-    property public final androidx.ui.engine.geometry.Shape? shape;
+    property public final androidx.ui.graphics.Shape? shape;
   }
 
   public final class SemanticsComponentNode extends androidx.ui.core.ComponentNode {
@@ -325,11 +325,11 @@
     method public androidx.ui.core.ComponentNode? findClosestParentNode(kotlin.jvm.functions.Function1<? super androidx.ui.core.ComponentNode,java.lang.Boolean> selector);
     method public java.util.Set<androidx.ui.core.SemanticsTreeNode> getChildren();
     method public androidx.ui.core.semantics.SemanticsConfiguration getData();
-    method public androidx.ui.engine.geometry.Rect? getGlobalRect();
+    method public androidx.ui.geometry.Rect? getGlobalRect();
     method public androidx.ui.core.SemanticsTreeNode? getParent();
     property public abstract java.util.Set<androidx.ui.core.SemanticsTreeNode> children;
     property public abstract androidx.ui.core.semantics.SemanticsConfiguration data;
-    property public abstract androidx.ui.engine.geometry.Rect? globalRect;
+    property public abstract androidx.ui.geometry.Rect? globalRect;
     property public abstract androidx.ui.core.SemanticsTreeNode? parent;
   }
 
@@ -339,11 +339,11 @@
     method public androidx.ui.core.ComponentNode? findClosestParentNode(kotlin.jvm.functions.Function1<? super androidx.ui.core.ComponentNode,java.lang.Boolean> selector);
     method public java.util.Set<androidx.ui.core.SemanticsTreeNode> getChildren();
     method public androidx.ui.core.semantics.SemanticsConfiguration getData();
-    method public androidx.ui.engine.geometry.Rect? getGlobalRect();
+    method public androidx.ui.geometry.Rect? getGlobalRect();
     method public androidx.ui.core.SemanticsTreeNode? getParent();
     property public java.util.Set<androidx.ui.core.SemanticsTreeNode> children;
     property public androidx.ui.core.semantics.SemanticsConfiguration data;
-    property public androidx.ui.engine.geometry.Rect? globalRect;
+    property public androidx.ui.geometry.Rect? globalRect;
   }
 
   public final class SemanticsTreeNodeImplKt {
@@ -438,9 +438,9 @@
     method public boolean getMergeAllDescendantsIntoThisNode();
     method public androidx.ui.core.semantics.SemanticsOwner? getOwner();
     method public androidx.ui.core.semantics.SemanticsNode? getParent();
-    method public androidx.ui.engine.geometry.Rect? getParentPaintClipRect();
-    method public androidx.ui.engine.geometry.Rect? getParentSemanticsClipRect();
-    method public androidx.ui.engine.geometry.Rect getRect();
+    method public androidx.ui.geometry.Rect? getParentPaintClipRect();
+    method public androidx.ui.geometry.Rect? getParentSemanticsClipRect();
+    method public androidx.ui.geometry.Rect getRect();
     method public boolean isInvisible();
     method public boolean isMergedIntoParent();
     method public boolean isPartOfNodeMerging();
@@ -449,9 +449,9 @@
     method public void setChildren(java.util.List<androidx.ui.core.semantics.SemanticsNode> p);
     method public void setMergedIntoParent(boolean value);
     method public void setParent(androidx.ui.core.semantics.SemanticsNode? p);
-    method public void setParentPaintClipRect(androidx.ui.engine.geometry.Rect? p);
-    method public void setParentSemanticsClipRect(androidx.ui.engine.geometry.Rect? p);
-    method public void setRect(androidx.ui.engine.geometry.Rect value);
+    method public void setParentPaintClipRect(androidx.ui.geometry.Rect? p);
+    method public void setParentSemanticsClipRect(androidx.ui.geometry.Rect? p);
+    method public void setRect(androidx.ui.geometry.Rect value);
     property public final boolean attached;
     property public final java.util.List<androidx.ui.core.semantics.SemanticsNode> children;
     property public final int childrenCount;
@@ -464,9 +464,9 @@
     property public final boolean mergeAllDescendantsIntoThisNode;
     property public final androidx.ui.core.semantics.SemanticsOwner? owner;
     property public final androidx.ui.core.semantics.SemanticsNode? parent;
-    property public final androidx.ui.engine.geometry.Rect? parentPaintClipRect;
-    property public final androidx.ui.engine.geometry.Rect? parentSemanticsClipRect;
-    property public final androidx.ui.engine.geometry.Rect rect;
+    property public final androidx.ui.geometry.Rect? parentPaintClipRect;
+    property public final androidx.ui.geometry.Rect? parentSemanticsClipRect;
+    property public final androidx.ui.geometry.Rect rect;
     field public static final androidx.ui.core.semantics.SemanticsNode.Companion! Companion;
   }
 
@@ -496,7 +496,7 @@
 package androidx.ui.temputils {
 
   public final class CoroutineUtilsKt {
-    method public static kotlinx.coroutines.Job delay(androidx.ui.core.Duration duration, kotlin.coroutines.CoroutineContext context, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+    method public static kotlinx.coroutines.Job delay(androidx.ui.unit.Duration duration, kotlin.coroutines.CoroutineContext context, kotlin.jvm.functions.Function0<kotlin.Unit> block);
   }
 
 }
diff --git a/ui/ui-platform/api/public_plus_experimental_0.1.0-dev04.txt b/ui/ui-platform/api/public_plus_experimental_0.1.0-dev04.txt
index 7b0fa92..e997e26 100644
--- a/ui/ui-platform/api/public_plus_experimental_0.1.0-dev04.txt
+++ b/ui/ui-platform/api/public_plus_experimental_0.1.0-dev04.txt
@@ -11,16 +11,16 @@
 
 package androidx.ui.core {
 
-  public final class AndroidComposeView extends android.view.ViewGroup implements androidx.ui.core.DensityScope androidx.ui.core.Owner androidx.ui.core.SemanticsTreeProvider {
+  public final class AndroidComposeView extends android.view.ViewGroup implements androidx.ui.unit.DensityScope androidx.ui.core.Owner androidx.ui.core.SemanticsTreeProvider {
     ctor public AndroidComposeView(android.content.Context context);
-    method public androidx.ui.core.IntPxPosition calculatePosition();
-    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.core.PxSize parentSize);
+    method public androidx.ui.unit.IntPxPosition calculatePosition();
+    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.unit.PxSize parentSize);
     method public java.util.List<androidx.ui.core.SemanticsTreeNode> getAllSemanticNodes();
     method public androidx.ui.autofill.Autofill? getAutofill();
     method public androidx.ui.autofill.AutofillTree getAutofillTree();
     method public kotlin.jvm.functions.Function0<kotlin.Unit> getConfigurationChangeObserver();
     method public androidx.ui.core.Constraints getConstraints();
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public androidx.ui.text.font.Font.ResourceLoader getFontLoader();
     method public long getMeasureIteration();
     method public androidx.ui.core.Ref<androidx.ui.core.AndroidComposeView>? getRef();
@@ -47,7 +47,7 @@
     property public final androidx.ui.autofill.AutofillTree autofillTree;
     property public final kotlin.jvm.functions.Function0<kotlin.Unit> configurationChangeObserver;
     property public final androidx.ui.core.Constraints constraints;
-    property public androidx.ui.core.Density density;
+    property public androidx.ui.unit.Density density;
     property public final androidx.ui.text.font.Font.ResourceLoader fontLoader;
     property public long measureIteration;
     property public final androidx.ui.core.Ref<androidx.ui.core.AndroidComposeView>? ref;
@@ -90,20 +90,20 @@
 
   public final class ComponentNodesKt {
     method public static void add(androidx.ui.core.ComponentNode, androidx.ui.core.ComponentNode child);
-    method public static androidx.ui.core.PxPosition childToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode child, androidx.ui.core.PxPosition childLocal);
+    method public static androidx.ui.unit.PxPosition childToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode child, androidx.ui.unit.PxPosition childLocal);
     method public static androidx.ui.core.ComponentNode? findClosestParentNode(androidx.ui.core.ComponentNode, kotlin.jvm.functions.Function1<? super androidx.ui.core.ComponentNode,java.lang.Boolean> selector);
     method public static androidx.ui.core.LayoutNode? findLastLayoutChild(androidx.ui.core.ComponentNode, kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutNode,java.lang.Boolean> block);
     method public static androidx.ui.core.DataNodeKey<kotlin.jvm.functions.Function1<androidx.ui.core.LayoutCoordinates,kotlin.Unit>> getOnChildPositionedKey();
     method public static androidx.ui.core.DataNodeKey<kotlin.jvm.functions.Function1<androidx.ui.core.LayoutCoordinates,kotlin.Unit>> getOnPositionedKey();
     method public static androidx.ui.core.DataNodeKey<java.lang.Object> getParentDataKey();
-    method public static androidx.ui.core.PxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.PxPosition global, boolean withOwnerOffset = true);
-    method public static androidx.ui.core.IntPxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.IntPxPosition global, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.PxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.unit.PxPosition global, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.IntPxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.unit.IntPxPosition global, boolean withOwnerOffset = true);
     method public static boolean hasNoLayoutDescendants(androidx.ui.core.ComponentNode);
     method public static boolean isAttached(androidx.ui.core.ComponentNode);
-    method public static androidx.ui.core.PxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.core.PxPosition local, boolean withOwnerOffset = true);
-    method public static androidx.ui.core.IntPxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.core.IntPxPosition local, boolean withOwnerOffset = true);
-    method public static androidx.ui.core.PxPosition positionRelativeToAncestor(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode ancestor);
-    method public static androidx.ui.core.IntPxPosition positionRelativeToRoot(androidx.ui.core.LayoutNode);
+    method public static androidx.ui.unit.PxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.unit.PxPosition local, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.IntPxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.unit.IntPxPosition local, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.PxPosition positionRelativeToAncestor(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode ancestor);
+    method public static androidx.ui.unit.IntPxPosition positionRelativeToRoot(androidx.ui.core.LayoutNode);
     method public static androidx.ui.core.Owner requireOwner(androidx.ui.core.ComponentNode);
     method public static void visitLayoutChildren(androidx.ui.core.ComponentNode, kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutNode,kotlin.Unit> block);
   }
@@ -127,15 +127,15 @@
   public final class DrawNode extends androidx.ui.core.ComponentNode {
     ctor public DrawNode();
     method public boolean getNeedsPaint();
-    method public kotlin.jvm.functions.Function3<androidx.ui.core.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? getOnPaint();
-    method public kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? getOnPaintWithChildren();
+    method public kotlin.jvm.functions.Function3<androidx.ui.unit.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? getOnPaint();
+    method public kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? getOnPaintWithChildren();
     method public void invalidate();
     method public void setNeedsPaint(boolean p);
-    method public void setOnPaint(kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit>? value);
-    method public void setOnPaintWithChildren(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit>? value);
+    method public void setOnPaint(kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit>? value);
+    method public void setOnPaintWithChildren(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit>? value);
     property public final boolean needsPaint;
-    property public final kotlin.jvm.functions.Function3<androidx.ui.core.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? onPaint;
-    property public final kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? onPaintWithChildren;
+    property public final kotlin.jvm.functions.Function3<androidx.ui.unit.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? onPaint;
+    property public final kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? onPaintWithChildren;
   }
 
   public final class FocusNode extends androidx.ui.core.ComponentNode {
@@ -158,35 +158,35 @@
 
   public final class LayoutNode extends androidx.ui.core.ComponentNode implements androidx.ui.core.Measurable {
     ctor public LayoutNode();
-    method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.Density density);
+    method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.unit.Density density);
     method public boolean getAffectsParentSize();
     method public androidx.ui.core.Constraints getConstraints();
-    method public androidx.ui.core.IntPxPosition getContentPosition();
-    method public androidx.ui.core.IntPxSize getContentSize();
-    method public androidx.ui.core.IntPx getHeight();
+    method public androidx.ui.unit.IntPxPosition getContentPosition();
+    method public androidx.ui.unit.IntPxSize getContentSize();
+    method public androidx.ui.unit.IntPx getHeight();
     method public java.util.List<androidx.ui.core.LayoutNode> getLayoutChildren();
     method public androidx.ui.core.LayoutNode.MeasureBlocks getMeasureBlocks();
     method public androidx.ui.core.MeasureScope getMeasureScope();
-    method public androidx.ui.core.IntPxPosition getModifiedPosition();
-    method public androidx.ui.core.IntPxSize getModifiedSize();
+    method public androidx.ui.unit.IntPxPosition getModifiedPosition();
+    method public androidx.ui.unit.IntPxSize getModifiedSize();
     method public androidx.ui.core.Modifier getModifier();
     method public boolean getNeedsRelayout();
     method public boolean getNeedsRemeasure();
     method public Object? getParentData();
     method public boolean getPositionedDuringMeasurePass();
     method public androidx.ui.core.Ref<androidx.ui.core.LayoutNode>? getRef();
-    method public androidx.ui.core.IntPx getWidth();
-    method public androidx.ui.core.IntPx getX();
-    method public androidx.ui.core.IntPx getY();
+    method public androidx.ui.unit.IntPx getWidth();
+    method public androidx.ui.unit.IntPx getX();
+    method public androidx.ui.unit.IntPx getY();
     method public void ignoreModelReads(kotlin.jvm.functions.Function0<kotlin.Unit> block);
     method public boolean isMeasuring();
     method public boolean isPlaced();
-    method public androidx.ui.core.IntPx maxIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(androidx.ui.core.IntPx height);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(androidx.ui.unit.IntPx height);
     method public androidx.ui.core.Placeable measure(androidx.ui.core.Constraints constraints);
-    method public androidx.ui.core.IntPx minIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(androidx.ui.core.IntPx height);
-    method public void place(androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
+    method public androidx.ui.unit.IntPx minIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(androidx.ui.unit.IntPx height);
+    method public void place(androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
     method public void placeChildren();
     method public void requestRemeasure();
     method public void setAffectsParentSize(boolean p);
@@ -199,16 +199,16 @@
     property public final boolean affectsParentSize;
     property public final androidx.ui.core.Constraints constraints;
     property protected androidx.ui.core.LayoutNode? containingLayoutNode;
-    property public final androidx.ui.core.IntPxPosition contentPosition;
-    property public final androidx.ui.core.IntPxSize contentSize;
-    property public final androidx.ui.core.IntPx height;
+    property public final androidx.ui.unit.IntPxPosition contentPosition;
+    property public final androidx.ui.unit.IntPxSize contentSize;
+    property public final androidx.ui.unit.IntPx height;
     property public final boolean isMeasuring;
     property public final boolean isPlaced;
     property public final java.util.List<androidx.ui.core.LayoutNode> layoutChildren;
     property public final androidx.ui.core.LayoutNode.MeasureBlocks measureBlocks;
     property public final androidx.ui.core.MeasureScope measureScope;
-    property public final androidx.ui.core.IntPxPosition modifiedPosition;
-    property public final androidx.ui.core.IntPxSize modifiedSize;
+    property public final androidx.ui.unit.IntPxPosition modifiedPosition;
+    property public final androidx.ui.unit.IntPxSize modifiedSize;
     property public final androidx.ui.core.Modifier modifier;
     property public final boolean needsRelayout;
     property public final boolean needsRemeasure;
@@ -216,9 +216,9 @@
     property public androidx.ui.core.LayoutNode? parentLayoutNode;
     property public final boolean positionedDuringMeasurePass;
     property public final androidx.ui.core.Ref<androidx.ui.core.LayoutNode>? ref;
-    property public final androidx.ui.core.IntPx width;
-    property public final androidx.ui.core.IntPx x;
-    property public final androidx.ui.core.IntPx y;
+    property public final androidx.ui.unit.IntPx width;
+    property public final androidx.ui.unit.IntPx x;
+    property public final androidx.ui.unit.IntPx y;
   }
 
   public abstract static class LayoutNode.InnerMeasureScope extends androidx.ui.core.MeasureScope {
@@ -228,19 +228,19 @@
   }
 
   public static interface LayoutNode.MeasureBlocks {
-    method public androidx.ui.core.IntPx maxIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
     method public androidx.ui.core.MeasureScope.LayoutResult measure(androidx.ui.core.MeasureScope measureScope, java.util.List<? extends androidx.ui.core.Measurable> measurables, androidx.ui.core.Constraints constraints);
-    method public androidx.ui.core.IntPx minIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
+    method public androidx.ui.unit.IntPx minIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
   }
 
   public abstract static class LayoutNode.NoIntristicsMeasureBlocks implements androidx.ui.core.LayoutNode.MeasureBlocks {
     ctor public LayoutNode.NoIntristicsMeasureBlocks(String error);
-    method public Void maxIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public Void maxIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
-    method public Void minIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public Void minIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
+    method public Void maxIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public Void maxIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
+    method public Void minIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public Void minIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
   }
 
   public final class ModelObserver {
@@ -252,9 +252,9 @@
   }
 
   public interface Owner {
-    method public androidx.ui.core.IntPxPosition calculatePosition();
-    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.core.PxSize parentSize);
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.IntPxPosition calculatePosition();
+    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.unit.PxSize parentSize);
+    method public androidx.ui.unit.Density getDensity();
     method public long getMeasureIteration();
     method public boolean getShowLayoutBounds();
     method public void observeDrawModelReads(androidx.ui.core.RepaintBoundaryNode node, kotlin.jvm.functions.Function0<kotlin.Unit> block);
@@ -268,7 +268,7 @@
     method public void onRequestMeasure(androidx.ui.core.LayoutNode layoutNode);
     method public void onSizeChange(androidx.ui.core.LayoutNode layoutNode);
     method public void pauseModelReadObserveration(kotlin.jvm.functions.Function0<kotlin.Unit> block);
-    property public abstract androidx.ui.core.Density density;
+    property public abstract androidx.ui.unit.Density density;
     property public abstract long measureIteration;
     property public abstract boolean showLayoutBounds;
   }
@@ -276,11 +276,11 @@
   public final class PointerInputNode extends androidx.ui.core.ComponentNode {
     ctor public PointerInputNode();
     method public kotlin.jvm.functions.Function0<kotlin.Unit> getCancelHandler();
-    method public kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.core.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> getPointerInputHandler();
+    method public kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.unit.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> getPointerInputHandler();
     method public void setCancelHandler(kotlin.jvm.functions.Function0<kotlin.Unit> p);
-    method public void setPointerInputHandler(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> p);
+    method public void setPointerInputHandler(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> p);
     property public final kotlin.jvm.functions.Function0<kotlin.Unit> cancelHandler;
-    property public final kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.core.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler;
+    property public final kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.unit.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler;
   }
 
   public final class Ref<T> {
@@ -293,19 +293,19 @@
   public final class RepaintBoundaryNode extends androidx.ui.core.ComponentNode {
     ctor public RepaintBoundaryNode(String? name);
     method public boolean getClipToShape();
-    method public androidx.ui.core.Dp getElevation();
+    method public androidx.ui.unit.Dp getElevation();
     method public String? getName();
     method public float getOpacity();
-    method public androidx.ui.engine.geometry.Shape? getShape();
+    method public androidx.ui.graphics.Shape? getShape();
     method public void setClipToShape(boolean value);
-    method public void setElevation(androidx.ui.core.Dp value);
+    method public void setElevation(androidx.ui.unit.Dp value);
     method public void setOpacity(float value);
-    method public void setShape(androidx.ui.engine.geometry.Shape? value);
+    method public void setShape(androidx.ui.graphics.Shape? value);
     property public final boolean clipToShape;
-    property public final androidx.ui.core.Dp elevation;
+    property public final androidx.ui.unit.Dp elevation;
     property public final float opacity;
     property public androidx.ui.core.RepaintBoundaryNode? repaintBoundary;
-    property public final androidx.ui.engine.geometry.Shape? shape;
+    property public final androidx.ui.graphics.Shape? shape;
   }
 
   public final class SemanticsComponentNode extends androidx.ui.core.ComponentNode {
@@ -326,11 +326,11 @@
     method public androidx.ui.core.ComponentNode? findClosestParentNode(kotlin.jvm.functions.Function1<? super androidx.ui.core.ComponentNode,java.lang.Boolean> selector);
     method public java.util.Set<androidx.ui.core.SemanticsTreeNode> getChildren();
     method public androidx.ui.core.semantics.SemanticsConfiguration getData();
-    method public androidx.ui.engine.geometry.Rect? getGlobalRect();
+    method public androidx.ui.geometry.Rect? getGlobalRect();
     method public androidx.ui.core.SemanticsTreeNode? getParent();
     property public abstract java.util.Set<androidx.ui.core.SemanticsTreeNode> children;
     property public abstract androidx.ui.core.semantics.SemanticsConfiguration data;
-    property public abstract androidx.ui.engine.geometry.Rect? globalRect;
+    property public abstract androidx.ui.geometry.Rect? globalRect;
     property public abstract androidx.ui.core.SemanticsTreeNode? parent;
   }
 
@@ -340,11 +340,11 @@
     method public androidx.ui.core.ComponentNode? findClosestParentNode(kotlin.jvm.functions.Function1<? super androidx.ui.core.ComponentNode,java.lang.Boolean> selector);
     method public java.util.Set<androidx.ui.core.SemanticsTreeNode> getChildren();
     method public androidx.ui.core.semantics.SemanticsConfiguration getData();
-    method public androidx.ui.engine.geometry.Rect? getGlobalRect();
+    method public androidx.ui.geometry.Rect? getGlobalRect();
     method public androidx.ui.core.SemanticsTreeNode? getParent();
     property public java.util.Set<androidx.ui.core.SemanticsTreeNode> children;
     property public androidx.ui.core.semantics.SemanticsConfiguration data;
-    property public androidx.ui.engine.geometry.Rect? globalRect;
+    property public androidx.ui.geometry.Rect? globalRect;
   }
 
   public final class SemanticsTreeNodeImplKt {
@@ -439,9 +439,9 @@
     method public boolean getMergeAllDescendantsIntoThisNode();
     method public androidx.ui.core.semantics.SemanticsOwner? getOwner();
     method public androidx.ui.core.semantics.SemanticsNode? getParent();
-    method public androidx.ui.engine.geometry.Rect? getParentPaintClipRect();
-    method public androidx.ui.engine.geometry.Rect? getParentSemanticsClipRect();
-    method public androidx.ui.engine.geometry.Rect getRect();
+    method public androidx.ui.geometry.Rect? getParentPaintClipRect();
+    method public androidx.ui.geometry.Rect? getParentSemanticsClipRect();
+    method public androidx.ui.geometry.Rect getRect();
     method public boolean isInvisible();
     method public boolean isMergedIntoParent();
     method public boolean isPartOfNodeMerging();
@@ -450,9 +450,9 @@
     method public void setChildren(java.util.List<androidx.ui.core.semantics.SemanticsNode> p);
     method public void setMergedIntoParent(boolean value);
     method public void setParent(androidx.ui.core.semantics.SemanticsNode? p);
-    method public void setParentPaintClipRect(androidx.ui.engine.geometry.Rect? p);
-    method public void setParentSemanticsClipRect(androidx.ui.engine.geometry.Rect? p);
-    method public void setRect(androidx.ui.engine.geometry.Rect value);
+    method public void setParentPaintClipRect(androidx.ui.geometry.Rect? p);
+    method public void setParentSemanticsClipRect(androidx.ui.geometry.Rect? p);
+    method public void setRect(androidx.ui.geometry.Rect value);
     property public final boolean attached;
     property public final java.util.List<androidx.ui.core.semantics.SemanticsNode> children;
     property public final int childrenCount;
@@ -465,9 +465,9 @@
     property public final boolean mergeAllDescendantsIntoThisNode;
     property public final androidx.ui.core.semantics.SemanticsOwner? owner;
     property public final androidx.ui.core.semantics.SemanticsNode? parent;
-    property public final androidx.ui.engine.geometry.Rect? parentPaintClipRect;
-    property public final androidx.ui.engine.geometry.Rect? parentSemanticsClipRect;
-    property public final androidx.ui.engine.geometry.Rect rect;
+    property public final androidx.ui.geometry.Rect? parentPaintClipRect;
+    property public final androidx.ui.geometry.Rect? parentSemanticsClipRect;
+    property public final androidx.ui.geometry.Rect rect;
     field public static final androidx.ui.core.semantics.SemanticsNode.Companion! Companion;
   }
 
@@ -497,7 +497,7 @@
 package androidx.ui.temputils {
 
   public final class CoroutineUtilsKt {
-    method public static kotlinx.coroutines.Job delay(androidx.ui.core.Duration duration, kotlin.coroutines.CoroutineContext context, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+    method public static kotlinx.coroutines.Job delay(androidx.ui.unit.Duration duration, kotlin.coroutines.CoroutineContext context, kotlin.jvm.functions.Function0<kotlin.Unit> block);
   }
 
 }
diff --git a/ui/ui-platform/api/public_plus_experimental_current.txt b/ui/ui-platform/api/public_plus_experimental_current.txt
index 7b0fa92..e997e26 100644
--- a/ui/ui-platform/api/public_plus_experimental_current.txt
+++ b/ui/ui-platform/api/public_plus_experimental_current.txt
@@ -11,16 +11,16 @@
 
 package androidx.ui.core {
 
-  public final class AndroidComposeView extends android.view.ViewGroup implements androidx.ui.core.DensityScope androidx.ui.core.Owner androidx.ui.core.SemanticsTreeProvider {
+  public final class AndroidComposeView extends android.view.ViewGroup implements androidx.ui.unit.DensityScope androidx.ui.core.Owner androidx.ui.core.SemanticsTreeProvider {
     ctor public AndroidComposeView(android.content.Context context);
-    method public androidx.ui.core.IntPxPosition calculatePosition();
-    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.core.PxSize parentSize);
+    method public androidx.ui.unit.IntPxPosition calculatePosition();
+    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.unit.PxSize parentSize);
     method public java.util.List<androidx.ui.core.SemanticsTreeNode> getAllSemanticNodes();
     method public androidx.ui.autofill.Autofill? getAutofill();
     method public androidx.ui.autofill.AutofillTree getAutofillTree();
     method public kotlin.jvm.functions.Function0<kotlin.Unit> getConfigurationChangeObserver();
     method public androidx.ui.core.Constraints getConstraints();
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public androidx.ui.text.font.Font.ResourceLoader getFontLoader();
     method public long getMeasureIteration();
     method public androidx.ui.core.Ref<androidx.ui.core.AndroidComposeView>? getRef();
@@ -47,7 +47,7 @@
     property public final androidx.ui.autofill.AutofillTree autofillTree;
     property public final kotlin.jvm.functions.Function0<kotlin.Unit> configurationChangeObserver;
     property public final androidx.ui.core.Constraints constraints;
-    property public androidx.ui.core.Density density;
+    property public androidx.ui.unit.Density density;
     property public final androidx.ui.text.font.Font.ResourceLoader fontLoader;
     property public long measureIteration;
     property public final androidx.ui.core.Ref<androidx.ui.core.AndroidComposeView>? ref;
@@ -90,20 +90,20 @@
 
   public final class ComponentNodesKt {
     method public static void add(androidx.ui.core.ComponentNode, androidx.ui.core.ComponentNode child);
-    method public static androidx.ui.core.PxPosition childToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode child, androidx.ui.core.PxPosition childLocal);
+    method public static androidx.ui.unit.PxPosition childToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode child, androidx.ui.unit.PxPosition childLocal);
     method public static androidx.ui.core.ComponentNode? findClosestParentNode(androidx.ui.core.ComponentNode, kotlin.jvm.functions.Function1<? super androidx.ui.core.ComponentNode,java.lang.Boolean> selector);
     method public static androidx.ui.core.LayoutNode? findLastLayoutChild(androidx.ui.core.ComponentNode, kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutNode,java.lang.Boolean> block);
     method public static androidx.ui.core.DataNodeKey<kotlin.jvm.functions.Function1<androidx.ui.core.LayoutCoordinates,kotlin.Unit>> getOnChildPositionedKey();
     method public static androidx.ui.core.DataNodeKey<kotlin.jvm.functions.Function1<androidx.ui.core.LayoutCoordinates,kotlin.Unit>> getOnPositionedKey();
     method public static androidx.ui.core.DataNodeKey<java.lang.Object> getParentDataKey();
-    method public static androidx.ui.core.PxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.PxPosition global, boolean withOwnerOffset = true);
-    method public static androidx.ui.core.IntPxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.IntPxPosition global, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.PxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.unit.PxPosition global, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.IntPxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.unit.IntPxPosition global, boolean withOwnerOffset = true);
     method public static boolean hasNoLayoutDescendants(androidx.ui.core.ComponentNode);
     method public static boolean isAttached(androidx.ui.core.ComponentNode);
-    method public static androidx.ui.core.PxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.core.PxPosition local, boolean withOwnerOffset = true);
-    method public static androidx.ui.core.IntPxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.core.IntPxPosition local, boolean withOwnerOffset = true);
-    method public static androidx.ui.core.PxPosition positionRelativeToAncestor(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode ancestor);
-    method public static androidx.ui.core.IntPxPosition positionRelativeToRoot(androidx.ui.core.LayoutNode);
+    method public static androidx.ui.unit.PxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.unit.PxPosition local, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.IntPxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.unit.IntPxPosition local, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.PxPosition positionRelativeToAncestor(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode ancestor);
+    method public static androidx.ui.unit.IntPxPosition positionRelativeToRoot(androidx.ui.core.LayoutNode);
     method public static androidx.ui.core.Owner requireOwner(androidx.ui.core.ComponentNode);
     method public static void visitLayoutChildren(androidx.ui.core.ComponentNode, kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutNode,kotlin.Unit> block);
   }
@@ -127,15 +127,15 @@
   public final class DrawNode extends androidx.ui.core.ComponentNode {
     ctor public DrawNode();
     method public boolean getNeedsPaint();
-    method public kotlin.jvm.functions.Function3<androidx.ui.core.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? getOnPaint();
-    method public kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? getOnPaintWithChildren();
+    method public kotlin.jvm.functions.Function3<androidx.ui.unit.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? getOnPaint();
+    method public kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? getOnPaintWithChildren();
     method public void invalidate();
     method public void setNeedsPaint(boolean p);
-    method public void setOnPaint(kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit>? value);
-    method public void setOnPaintWithChildren(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit>? value);
+    method public void setOnPaint(kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit>? value);
+    method public void setOnPaintWithChildren(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit>? value);
     property public final boolean needsPaint;
-    property public final kotlin.jvm.functions.Function3<androidx.ui.core.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? onPaint;
-    property public final kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? onPaintWithChildren;
+    property public final kotlin.jvm.functions.Function3<androidx.ui.unit.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? onPaint;
+    property public final kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? onPaintWithChildren;
   }
 
   public final class FocusNode extends androidx.ui.core.ComponentNode {
@@ -158,35 +158,35 @@
 
   public final class LayoutNode extends androidx.ui.core.ComponentNode implements androidx.ui.core.Measurable {
     ctor public LayoutNode();
-    method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.Density density);
+    method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.unit.Density density);
     method public boolean getAffectsParentSize();
     method public androidx.ui.core.Constraints getConstraints();
-    method public androidx.ui.core.IntPxPosition getContentPosition();
-    method public androidx.ui.core.IntPxSize getContentSize();
-    method public androidx.ui.core.IntPx getHeight();
+    method public androidx.ui.unit.IntPxPosition getContentPosition();
+    method public androidx.ui.unit.IntPxSize getContentSize();
+    method public androidx.ui.unit.IntPx getHeight();
     method public java.util.List<androidx.ui.core.LayoutNode> getLayoutChildren();
     method public androidx.ui.core.LayoutNode.MeasureBlocks getMeasureBlocks();
     method public androidx.ui.core.MeasureScope getMeasureScope();
-    method public androidx.ui.core.IntPxPosition getModifiedPosition();
-    method public androidx.ui.core.IntPxSize getModifiedSize();
+    method public androidx.ui.unit.IntPxPosition getModifiedPosition();
+    method public androidx.ui.unit.IntPxSize getModifiedSize();
     method public androidx.ui.core.Modifier getModifier();
     method public boolean getNeedsRelayout();
     method public boolean getNeedsRemeasure();
     method public Object? getParentData();
     method public boolean getPositionedDuringMeasurePass();
     method public androidx.ui.core.Ref<androidx.ui.core.LayoutNode>? getRef();
-    method public androidx.ui.core.IntPx getWidth();
-    method public androidx.ui.core.IntPx getX();
-    method public androidx.ui.core.IntPx getY();
+    method public androidx.ui.unit.IntPx getWidth();
+    method public androidx.ui.unit.IntPx getX();
+    method public androidx.ui.unit.IntPx getY();
     method public void ignoreModelReads(kotlin.jvm.functions.Function0<kotlin.Unit> block);
     method public boolean isMeasuring();
     method public boolean isPlaced();
-    method public androidx.ui.core.IntPx maxIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(androidx.ui.core.IntPx height);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(androidx.ui.unit.IntPx height);
     method public androidx.ui.core.Placeable measure(androidx.ui.core.Constraints constraints);
-    method public androidx.ui.core.IntPx minIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(androidx.ui.core.IntPx height);
-    method public void place(androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
+    method public androidx.ui.unit.IntPx minIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(androidx.ui.unit.IntPx height);
+    method public void place(androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
     method public void placeChildren();
     method public void requestRemeasure();
     method public void setAffectsParentSize(boolean p);
@@ -199,16 +199,16 @@
     property public final boolean affectsParentSize;
     property public final androidx.ui.core.Constraints constraints;
     property protected androidx.ui.core.LayoutNode? containingLayoutNode;
-    property public final androidx.ui.core.IntPxPosition contentPosition;
-    property public final androidx.ui.core.IntPxSize contentSize;
-    property public final androidx.ui.core.IntPx height;
+    property public final androidx.ui.unit.IntPxPosition contentPosition;
+    property public final androidx.ui.unit.IntPxSize contentSize;
+    property public final androidx.ui.unit.IntPx height;
     property public final boolean isMeasuring;
     property public final boolean isPlaced;
     property public final java.util.List<androidx.ui.core.LayoutNode> layoutChildren;
     property public final androidx.ui.core.LayoutNode.MeasureBlocks measureBlocks;
     property public final androidx.ui.core.MeasureScope measureScope;
-    property public final androidx.ui.core.IntPxPosition modifiedPosition;
-    property public final androidx.ui.core.IntPxSize modifiedSize;
+    property public final androidx.ui.unit.IntPxPosition modifiedPosition;
+    property public final androidx.ui.unit.IntPxSize modifiedSize;
     property public final androidx.ui.core.Modifier modifier;
     property public final boolean needsRelayout;
     property public final boolean needsRemeasure;
@@ -216,9 +216,9 @@
     property public androidx.ui.core.LayoutNode? parentLayoutNode;
     property public final boolean positionedDuringMeasurePass;
     property public final androidx.ui.core.Ref<androidx.ui.core.LayoutNode>? ref;
-    property public final androidx.ui.core.IntPx width;
-    property public final androidx.ui.core.IntPx x;
-    property public final androidx.ui.core.IntPx y;
+    property public final androidx.ui.unit.IntPx width;
+    property public final androidx.ui.unit.IntPx x;
+    property public final androidx.ui.unit.IntPx y;
   }
 
   public abstract static class LayoutNode.InnerMeasureScope extends androidx.ui.core.MeasureScope {
@@ -228,19 +228,19 @@
   }
 
   public static interface LayoutNode.MeasureBlocks {
-    method public androidx.ui.core.IntPx maxIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
     method public androidx.ui.core.MeasureScope.LayoutResult measure(androidx.ui.core.MeasureScope measureScope, java.util.List<? extends androidx.ui.core.Measurable> measurables, androidx.ui.core.Constraints constraints);
-    method public androidx.ui.core.IntPx minIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
+    method public androidx.ui.unit.IntPx minIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
   }
 
   public abstract static class LayoutNode.NoIntristicsMeasureBlocks implements androidx.ui.core.LayoutNode.MeasureBlocks {
     ctor public LayoutNode.NoIntristicsMeasureBlocks(String error);
-    method public Void maxIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public Void maxIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
-    method public Void minIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public Void minIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
+    method public Void maxIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public Void maxIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
+    method public Void minIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public Void minIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
   }
 
   public final class ModelObserver {
@@ -252,9 +252,9 @@
   }
 
   public interface Owner {
-    method public androidx.ui.core.IntPxPosition calculatePosition();
-    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.core.PxSize parentSize);
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.IntPxPosition calculatePosition();
+    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.unit.PxSize parentSize);
+    method public androidx.ui.unit.Density getDensity();
     method public long getMeasureIteration();
     method public boolean getShowLayoutBounds();
     method public void observeDrawModelReads(androidx.ui.core.RepaintBoundaryNode node, kotlin.jvm.functions.Function0<kotlin.Unit> block);
@@ -268,7 +268,7 @@
     method public void onRequestMeasure(androidx.ui.core.LayoutNode layoutNode);
     method public void onSizeChange(androidx.ui.core.LayoutNode layoutNode);
     method public void pauseModelReadObserveration(kotlin.jvm.functions.Function0<kotlin.Unit> block);
-    property public abstract androidx.ui.core.Density density;
+    property public abstract androidx.ui.unit.Density density;
     property public abstract long measureIteration;
     property public abstract boolean showLayoutBounds;
   }
@@ -276,11 +276,11 @@
   public final class PointerInputNode extends androidx.ui.core.ComponentNode {
     ctor public PointerInputNode();
     method public kotlin.jvm.functions.Function0<kotlin.Unit> getCancelHandler();
-    method public kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.core.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> getPointerInputHandler();
+    method public kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.unit.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> getPointerInputHandler();
     method public void setCancelHandler(kotlin.jvm.functions.Function0<kotlin.Unit> p);
-    method public void setPointerInputHandler(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> p);
+    method public void setPointerInputHandler(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> p);
     property public final kotlin.jvm.functions.Function0<kotlin.Unit> cancelHandler;
-    property public final kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.core.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler;
+    property public final kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.unit.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler;
   }
 
   public final class Ref<T> {
@@ -293,19 +293,19 @@
   public final class RepaintBoundaryNode extends androidx.ui.core.ComponentNode {
     ctor public RepaintBoundaryNode(String? name);
     method public boolean getClipToShape();
-    method public androidx.ui.core.Dp getElevation();
+    method public androidx.ui.unit.Dp getElevation();
     method public String? getName();
     method public float getOpacity();
-    method public androidx.ui.engine.geometry.Shape? getShape();
+    method public androidx.ui.graphics.Shape? getShape();
     method public void setClipToShape(boolean value);
-    method public void setElevation(androidx.ui.core.Dp value);
+    method public void setElevation(androidx.ui.unit.Dp value);
     method public void setOpacity(float value);
-    method public void setShape(androidx.ui.engine.geometry.Shape? value);
+    method public void setShape(androidx.ui.graphics.Shape? value);
     property public final boolean clipToShape;
-    property public final androidx.ui.core.Dp elevation;
+    property public final androidx.ui.unit.Dp elevation;
     property public final float opacity;
     property public androidx.ui.core.RepaintBoundaryNode? repaintBoundary;
-    property public final androidx.ui.engine.geometry.Shape? shape;
+    property public final androidx.ui.graphics.Shape? shape;
   }
 
   public final class SemanticsComponentNode extends androidx.ui.core.ComponentNode {
@@ -326,11 +326,11 @@
     method public androidx.ui.core.ComponentNode? findClosestParentNode(kotlin.jvm.functions.Function1<? super androidx.ui.core.ComponentNode,java.lang.Boolean> selector);
     method public java.util.Set<androidx.ui.core.SemanticsTreeNode> getChildren();
     method public androidx.ui.core.semantics.SemanticsConfiguration getData();
-    method public androidx.ui.engine.geometry.Rect? getGlobalRect();
+    method public androidx.ui.geometry.Rect? getGlobalRect();
     method public androidx.ui.core.SemanticsTreeNode? getParent();
     property public abstract java.util.Set<androidx.ui.core.SemanticsTreeNode> children;
     property public abstract androidx.ui.core.semantics.SemanticsConfiguration data;
-    property public abstract androidx.ui.engine.geometry.Rect? globalRect;
+    property public abstract androidx.ui.geometry.Rect? globalRect;
     property public abstract androidx.ui.core.SemanticsTreeNode? parent;
   }
 
@@ -340,11 +340,11 @@
     method public androidx.ui.core.ComponentNode? findClosestParentNode(kotlin.jvm.functions.Function1<? super androidx.ui.core.ComponentNode,java.lang.Boolean> selector);
     method public java.util.Set<androidx.ui.core.SemanticsTreeNode> getChildren();
     method public androidx.ui.core.semantics.SemanticsConfiguration getData();
-    method public androidx.ui.engine.geometry.Rect? getGlobalRect();
+    method public androidx.ui.geometry.Rect? getGlobalRect();
     method public androidx.ui.core.SemanticsTreeNode? getParent();
     property public java.util.Set<androidx.ui.core.SemanticsTreeNode> children;
     property public androidx.ui.core.semantics.SemanticsConfiguration data;
-    property public androidx.ui.engine.geometry.Rect? globalRect;
+    property public androidx.ui.geometry.Rect? globalRect;
   }
 
   public final class SemanticsTreeNodeImplKt {
@@ -439,9 +439,9 @@
     method public boolean getMergeAllDescendantsIntoThisNode();
     method public androidx.ui.core.semantics.SemanticsOwner? getOwner();
     method public androidx.ui.core.semantics.SemanticsNode? getParent();
-    method public androidx.ui.engine.geometry.Rect? getParentPaintClipRect();
-    method public androidx.ui.engine.geometry.Rect? getParentSemanticsClipRect();
-    method public androidx.ui.engine.geometry.Rect getRect();
+    method public androidx.ui.geometry.Rect? getParentPaintClipRect();
+    method public androidx.ui.geometry.Rect? getParentSemanticsClipRect();
+    method public androidx.ui.geometry.Rect getRect();
     method public boolean isInvisible();
     method public boolean isMergedIntoParent();
     method public boolean isPartOfNodeMerging();
@@ -450,9 +450,9 @@
     method public void setChildren(java.util.List<androidx.ui.core.semantics.SemanticsNode> p);
     method public void setMergedIntoParent(boolean value);
     method public void setParent(androidx.ui.core.semantics.SemanticsNode? p);
-    method public void setParentPaintClipRect(androidx.ui.engine.geometry.Rect? p);
-    method public void setParentSemanticsClipRect(androidx.ui.engine.geometry.Rect? p);
-    method public void setRect(androidx.ui.engine.geometry.Rect value);
+    method public void setParentPaintClipRect(androidx.ui.geometry.Rect? p);
+    method public void setParentSemanticsClipRect(androidx.ui.geometry.Rect? p);
+    method public void setRect(androidx.ui.geometry.Rect value);
     property public final boolean attached;
     property public final java.util.List<androidx.ui.core.semantics.SemanticsNode> children;
     property public final int childrenCount;
@@ -465,9 +465,9 @@
     property public final boolean mergeAllDescendantsIntoThisNode;
     property public final androidx.ui.core.semantics.SemanticsOwner? owner;
     property public final androidx.ui.core.semantics.SemanticsNode? parent;
-    property public final androidx.ui.engine.geometry.Rect? parentPaintClipRect;
-    property public final androidx.ui.engine.geometry.Rect? parentSemanticsClipRect;
-    property public final androidx.ui.engine.geometry.Rect rect;
+    property public final androidx.ui.geometry.Rect? parentPaintClipRect;
+    property public final androidx.ui.geometry.Rect? parentSemanticsClipRect;
+    property public final androidx.ui.geometry.Rect rect;
     field public static final androidx.ui.core.semantics.SemanticsNode.Companion! Companion;
   }
 
@@ -497,7 +497,7 @@
 package androidx.ui.temputils {
 
   public final class CoroutineUtilsKt {
-    method public static kotlinx.coroutines.Job delay(androidx.ui.core.Duration duration, kotlin.coroutines.CoroutineContext context, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+    method public static kotlinx.coroutines.Job delay(androidx.ui.unit.Duration duration, kotlin.coroutines.CoroutineContext context, kotlin.jvm.functions.Function0<kotlin.Unit> block);
   }
 
 }
diff --git a/ui/ui-platform/api/restricted_0.1.0-dev04.txt b/ui/ui-platform/api/restricted_0.1.0-dev04.txt
index b709cbe..ea1eb0b 100644
--- a/ui/ui-platform/api/restricted_0.1.0-dev04.txt
+++ b/ui/ui-platform/api/restricted_0.1.0-dev04.txt
@@ -11,16 +11,16 @@
 
 package androidx.ui.core {
 
-  public final class AndroidComposeView extends android.view.ViewGroup implements androidx.ui.core.DensityScope androidx.ui.core.Owner androidx.ui.core.SemanticsTreeProvider {
+  public final class AndroidComposeView extends android.view.ViewGroup implements androidx.ui.unit.DensityScope androidx.ui.core.Owner androidx.ui.core.SemanticsTreeProvider {
     ctor public AndroidComposeView(android.content.Context context);
-    method public androidx.ui.core.IntPxPosition calculatePosition();
-    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.core.PxSize parentSize);
+    method public androidx.ui.unit.IntPxPosition calculatePosition();
+    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.unit.PxSize parentSize);
     method public java.util.List<androidx.ui.core.SemanticsTreeNode> getAllSemanticNodes();
     method public androidx.ui.autofill.Autofill? getAutofill();
     method public androidx.ui.autofill.AutofillTree getAutofillTree();
     method public kotlin.jvm.functions.Function0<kotlin.Unit> getConfigurationChangeObserver();
     method public androidx.ui.core.Constraints getConstraints();
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public androidx.ui.text.font.Font.ResourceLoader getFontLoader();
     method public long getMeasureIteration();
     method public androidx.ui.core.Ref<androidx.ui.core.AndroidComposeView>? getRef();
@@ -47,7 +47,7 @@
     property public final androidx.ui.autofill.AutofillTree autofillTree;
     property public final kotlin.jvm.functions.Function0<kotlin.Unit> configurationChangeObserver;
     property public final androidx.ui.core.Constraints constraints;
-    property public androidx.ui.core.Density density;
+    property public androidx.ui.unit.Density density;
     property public final androidx.ui.text.font.Font.ResourceLoader fontLoader;
     property public long measureIteration;
     property public final androidx.ui.core.Ref<androidx.ui.core.AndroidComposeView>? ref;
@@ -90,20 +90,20 @@
 
   public final class ComponentNodesKt {
     method public static void add(androidx.ui.core.ComponentNode, androidx.ui.core.ComponentNode child);
-    method public static androidx.ui.core.PxPosition childToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode child, androidx.ui.core.PxPosition childLocal);
+    method public static androidx.ui.unit.PxPosition childToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode child, androidx.ui.unit.PxPosition childLocal);
     method public static androidx.ui.core.ComponentNode? findClosestParentNode(androidx.ui.core.ComponentNode, kotlin.jvm.functions.Function1<? super androidx.ui.core.ComponentNode,java.lang.Boolean> selector);
     method public static androidx.ui.core.LayoutNode? findLastLayoutChild(androidx.ui.core.ComponentNode, kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutNode,java.lang.Boolean> block);
     method public static androidx.ui.core.DataNodeKey<kotlin.jvm.functions.Function1<androidx.ui.core.LayoutCoordinates,kotlin.Unit>> getOnChildPositionedKey();
     method public static androidx.ui.core.DataNodeKey<kotlin.jvm.functions.Function1<androidx.ui.core.LayoutCoordinates,kotlin.Unit>> getOnPositionedKey();
     method public static androidx.ui.core.DataNodeKey<java.lang.Object> getParentDataKey();
-    method public static androidx.ui.core.PxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.PxPosition global, boolean withOwnerOffset = true);
-    method public static androidx.ui.core.IntPxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.IntPxPosition global, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.PxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.unit.PxPosition global, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.IntPxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.unit.IntPxPosition global, boolean withOwnerOffset = true);
     method public static boolean hasNoLayoutDescendants(androidx.ui.core.ComponentNode);
     method public static boolean isAttached(androidx.ui.core.ComponentNode);
-    method public static androidx.ui.core.PxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.core.PxPosition local, boolean withOwnerOffset = true);
-    method public static androidx.ui.core.IntPxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.core.IntPxPosition local, boolean withOwnerOffset = true);
-    method public static androidx.ui.core.PxPosition positionRelativeToAncestor(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode ancestor);
-    method public static androidx.ui.core.IntPxPosition positionRelativeToRoot(androidx.ui.core.LayoutNode);
+    method public static androidx.ui.unit.PxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.unit.PxPosition local, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.IntPxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.unit.IntPxPosition local, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.PxPosition positionRelativeToAncestor(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode ancestor);
+    method public static androidx.ui.unit.IntPxPosition positionRelativeToRoot(androidx.ui.core.LayoutNode);
     method public static androidx.ui.core.Owner requireOwner(androidx.ui.core.ComponentNode);
     method public static void visitLayoutChildren(androidx.ui.core.ComponentNode, kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutNode,kotlin.Unit> block);
   }
@@ -127,15 +127,15 @@
   public final class DrawNode extends androidx.ui.core.ComponentNode {
     ctor public DrawNode();
     method public boolean getNeedsPaint();
-    method public kotlin.jvm.functions.Function3<androidx.ui.core.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? getOnPaint();
-    method public kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? getOnPaintWithChildren();
+    method public kotlin.jvm.functions.Function3<androidx.ui.unit.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? getOnPaint();
+    method public kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? getOnPaintWithChildren();
     method public void invalidate();
     method public void setNeedsPaint(boolean p);
-    method public void setOnPaint(kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit>? value);
-    method public void setOnPaintWithChildren(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit>? value);
+    method public void setOnPaint(kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit>? value);
+    method public void setOnPaintWithChildren(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit>? value);
     property public final boolean needsPaint;
-    property public final kotlin.jvm.functions.Function3<androidx.ui.core.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? onPaint;
-    property public final kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? onPaintWithChildren;
+    property public final kotlin.jvm.functions.Function3<androidx.ui.unit.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? onPaint;
+    property public final kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? onPaintWithChildren;
   }
 
   public final class FocusNode extends androidx.ui.core.ComponentNode {
@@ -158,35 +158,35 @@
 
   public final class LayoutNode extends androidx.ui.core.ComponentNode implements androidx.ui.core.Measurable {
     ctor public LayoutNode();
-    method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.Density density);
+    method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.unit.Density density);
     method public boolean getAffectsParentSize();
     method public androidx.ui.core.Constraints getConstraints();
-    method public androidx.ui.core.IntPxPosition getContentPosition();
-    method public androidx.ui.core.IntPxSize getContentSize();
-    method public androidx.ui.core.IntPx getHeight();
+    method public androidx.ui.unit.IntPxPosition getContentPosition();
+    method public androidx.ui.unit.IntPxSize getContentSize();
+    method public androidx.ui.unit.IntPx getHeight();
     method public java.util.List<androidx.ui.core.LayoutNode> getLayoutChildren();
     method public androidx.ui.core.LayoutNode.MeasureBlocks getMeasureBlocks();
     method public androidx.ui.core.MeasureScope getMeasureScope();
-    method public androidx.ui.core.IntPxPosition getModifiedPosition();
-    method public androidx.ui.core.IntPxSize getModifiedSize();
+    method public androidx.ui.unit.IntPxPosition getModifiedPosition();
+    method public androidx.ui.unit.IntPxSize getModifiedSize();
     method public androidx.ui.core.Modifier getModifier();
     method public boolean getNeedsRelayout();
     method public boolean getNeedsRemeasure();
     method public Object? getParentData();
     method public boolean getPositionedDuringMeasurePass();
     method public androidx.ui.core.Ref<androidx.ui.core.LayoutNode>? getRef();
-    method public androidx.ui.core.IntPx getWidth();
-    method public androidx.ui.core.IntPx getX();
-    method public androidx.ui.core.IntPx getY();
+    method public androidx.ui.unit.IntPx getWidth();
+    method public androidx.ui.unit.IntPx getX();
+    method public androidx.ui.unit.IntPx getY();
     method public void ignoreModelReads(kotlin.jvm.functions.Function0<kotlin.Unit> block);
     method public boolean isMeasuring();
     method public boolean isPlaced();
-    method public androidx.ui.core.IntPx maxIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(androidx.ui.core.IntPx height);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(androidx.ui.unit.IntPx height);
     method public androidx.ui.core.Placeable measure(androidx.ui.core.Constraints constraints);
-    method public androidx.ui.core.IntPx minIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(androidx.ui.core.IntPx height);
-    method public void place(androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
+    method public androidx.ui.unit.IntPx minIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(androidx.ui.unit.IntPx height);
+    method public void place(androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
     method public void placeChildren();
     method public void requestRemeasure();
     method public void setAffectsParentSize(boolean p);
@@ -199,16 +199,16 @@
     property public final boolean affectsParentSize;
     property public final androidx.ui.core.Constraints constraints;
     property protected androidx.ui.core.LayoutNode? containingLayoutNode;
-    property public final androidx.ui.core.IntPxPosition contentPosition;
-    property public final androidx.ui.core.IntPxSize contentSize;
-    property public final androidx.ui.core.IntPx height;
+    property public final androidx.ui.unit.IntPxPosition contentPosition;
+    property public final androidx.ui.unit.IntPxSize contentSize;
+    property public final androidx.ui.unit.IntPx height;
     property public final boolean isMeasuring;
     property public final boolean isPlaced;
     property public final java.util.List<androidx.ui.core.LayoutNode> layoutChildren;
     property public final androidx.ui.core.LayoutNode.MeasureBlocks measureBlocks;
     property public final androidx.ui.core.MeasureScope measureScope;
-    property public final androidx.ui.core.IntPxPosition modifiedPosition;
-    property public final androidx.ui.core.IntPxSize modifiedSize;
+    property public final androidx.ui.unit.IntPxPosition modifiedPosition;
+    property public final androidx.ui.unit.IntPxSize modifiedSize;
     property public final androidx.ui.core.Modifier modifier;
     property public final boolean needsRelayout;
     property public final boolean needsRemeasure;
@@ -216,9 +216,9 @@
     property public androidx.ui.core.LayoutNode? parentLayoutNode;
     property public final boolean positionedDuringMeasurePass;
     property public final androidx.ui.core.Ref<androidx.ui.core.LayoutNode>? ref;
-    property public final androidx.ui.core.IntPx width;
-    property public final androidx.ui.core.IntPx x;
-    property public final androidx.ui.core.IntPx y;
+    property public final androidx.ui.unit.IntPx width;
+    property public final androidx.ui.unit.IntPx x;
+    property public final androidx.ui.unit.IntPx y;
   }
 
   public abstract static class LayoutNode.InnerMeasureScope extends androidx.ui.core.MeasureScope {
@@ -228,19 +228,19 @@
   }
 
   public static interface LayoutNode.MeasureBlocks {
-    method public androidx.ui.core.IntPx maxIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
     method public androidx.ui.core.MeasureScope.LayoutResult measure(androidx.ui.core.MeasureScope measureScope, java.util.List<? extends androidx.ui.core.Measurable> measurables, androidx.ui.core.Constraints constraints);
-    method public androidx.ui.core.IntPx minIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
+    method public androidx.ui.unit.IntPx minIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
   }
 
   public abstract static class LayoutNode.NoIntristicsMeasureBlocks implements androidx.ui.core.LayoutNode.MeasureBlocks {
     ctor public LayoutNode.NoIntristicsMeasureBlocks(String error);
-    method public Void maxIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public Void maxIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
-    method public Void minIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public Void minIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
+    method public Void maxIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public Void maxIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
+    method public Void minIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public Void minIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
   }
 
   public final class ModelObserver {
@@ -254,9 +254,9 @@
   }
 
   public interface Owner {
-    method public androidx.ui.core.IntPxPosition calculatePosition();
-    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.core.PxSize parentSize);
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.IntPxPosition calculatePosition();
+    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.unit.PxSize parentSize);
+    method public androidx.ui.unit.Density getDensity();
     method public long getMeasureIteration();
     method public boolean getShowLayoutBounds();
     method public void observeDrawModelReads(androidx.ui.core.RepaintBoundaryNode node, kotlin.jvm.functions.Function0<kotlin.Unit> block);
@@ -270,7 +270,7 @@
     method public void onRequestMeasure(androidx.ui.core.LayoutNode layoutNode);
     method public void onSizeChange(androidx.ui.core.LayoutNode layoutNode);
     method public void pauseModelReadObserveration(kotlin.jvm.functions.Function0<kotlin.Unit> block);
-    property public abstract androidx.ui.core.Density density;
+    property public abstract androidx.ui.unit.Density density;
     property public abstract long measureIteration;
     property public abstract boolean showLayoutBounds;
   }
@@ -278,11 +278,11 @@
   public final class PointerInputNode extends androidx.ui.core.ComponentNode {
     ctor public PointerInputNode();
     method public kotlin.jvm.functions.Function0<kotlin.Unit> getCancelHandler();
-    method public kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.core.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> getPointerInputHandler();
+    method public kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.unit.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> getPointerInputHandler();
     method public void setCancelHandler(kotlin.jvm.functions.Function0<kotlin.Unit> p);
-    method public void setPointerInputHandler(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> p);
+    method public void setPointerInputHandler(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> p);
     property public final kotlin.jvm.functions.Function0<kotlin.Unit> cancelHandler;
-    property public final kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.core.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler;
+    property public final kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.unit.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler;
   }
 
   public final class Ref<T> {
@@ -295,19 +295,19 @@
   public final class RepaintBoundaryNode extends androidx.ui.core.ComponentNode {
     ctor public RepaintBoundaryNode(String? name);
     method public boolean getClipToShape();
-    method public androidx.ui.core.Dp getElevation();
+    method public androidx.ui.unit.Dp getElevation();
     method public String? getName();
     method public float getOpacity();
-    method public androidx.ui.engine.geometry.Shape? getShape();
+    method public androidx.ui.graphics.Shape? getShape();
     method public void setClipToShape(boolean value);
-    method public void setElevation(androidx.ui.core.Dp value);
+    method public void setElevation(androidx.ui.unit.Dp value);
     method public void setOpacity(float value);
-    method public void setShape(androidx.ui.engine.geometry.Shape? value);
+    method public void setShape(androidx.ui.graphics.Shape? value);
     property public final boolean clipToShape;
-    property public final androidx.ui.core.Dp elevation;
+    property public final androidx.ui.unit.Dp elevation;
     property public final float opacity;
     property public androidx.ui.core.RepaintBoundaryNode? repaintBoundary;
-    property public final androidx.ui.engine.geometry.Shape? shape;
+    property public final androidx.ui.graphics.Shape? shape;
   }
 
   public final class SemanticsComponentNode extends androidx.ui.core.ComponentNode {
@@ -328,11 +328,11 @@
     method public androidx.ui.core.ComponentNode? findClosestParentNode(kotlin.jvm.functions.Function1<? super androidx.ui.core.ComponentNode,java.lang.Boolean> selector);
     method public java.util.Set<androidx.ui.core.SemanticsTreeNode> getChildren();
     method public androidx.ui.core.semantics.SemanticsConfiguration getData();
-    method public androidx.ui.engine.geometry.Rect? getGlobalRect();
+    method public androidx.ui.geometry.Rect? getGlobalRect();
     method public androidx.ui.core.SemanticsTreeNode? getParent();
     property public abstract java.util.Set<androidx.ui.core.SemanticsTreeNode> children;
     property public abstract androidx.ui.core.semantics.SemanticsConfiguration data;
-    property public abstract androidx.ui.engine.geometry.Rect? globalRect;
+    property public abstract androidx.ui.geometry.Rect? globalRect;
     property public abstract androidx.ui.core.SemanticsTreeNode? parent;
   }
 
@@ -342,11 +342,11 @@
     method public androidx.ui.core.ComponentNode? findClosestParentNode(kotlin.jvm.functions.Function1<? super androidx.ui.core.ComponentNode,java.lang.Boolean> selector);
     method public java.util.Set<androidx.ui.core.SemanticsTreeNode> getChildren();
     method public androidx.ui.core.semantics.SemanticsConfiguration getData();
-    method public androidx.ui.engine.geometry.Rect? getGlobalRect();
+    method public androidx.ui.geometry.Rect? getGlobalRect();
     method public androidx.ui.core.SemanticsTreeNode? getParent();
     property public java.util.Set<androidx.ui.core.SemanticsTreeNode> children;
     property public androidx.ui.core.semantics.SemanticsConfiguration data;
-    property public androidx.ui.engine.geometry.Rect? globalRect;
+    property public androidx.ui.geometry.Rect? globalRect;
   }
 
   public final class SemanticsTreeNodeImplKt {
@@ -441,9 +441,9 @@
     method public boolean getMergeAllDescendantsIntoThisNode();
     method public androidx.ui.core.semantics.SemanticsOwner? getOwner();
     method public androidx.ui.core.semantics.SemanticsNode? getParent();
-    method public androidx.ui.engine.geometry.Rect? getParentPaintClipRect();
-    method public androidx.ui.engine.geometry.Rect? getParentSemanticsClipRect();
-    method public androidx.ui.engine.geometry.Rect getRect();
+    method public androidx.ui.geometry.Rect? getParentPaintClipRect();
+    method public androidx.ui.geometry.Rect? getParentSemanticsClipRect();
+    method public androidx.ui.geometry.Rect getRect();
     method public boolean isInvisible();
     method public boolean isMergedIntoParent();
     method public boolean isPartOfNodeMerging();
@@ -452,9 +452,9 @@
     method public void setChildren(java.util.List<androidx.ui.core.semantics.SemanticsNode> p);
     method public void setMergedIntoParent(boolean value);
     method public void setParent(androidx.ui.core.semantics.SemanticsNode? p);
-    method public void setParentPaintClipRect(androidx.ui.engine.geometry.Rect? p);
-    method public void setParentSemanticsClipRect(androidx.ui.engine.geometry.Rect? p);
-    method public void setRect(androidx.ui.engine.geometry.Rect value);
+    method public void setParentPaintClipRect(androidx.ui.geometry.Rect? p);
+    method public void setParentSemanticsClipRect(androidx.ui.geometry.Rect? p);
+    method public void setRect(androidx.ui.geometry.Rect value);
     property public final boolean attached;
     property public final java.util.List<androidx.ui.core.semantics.SemanticsNode> children;
     property public final int childrenCount;
@@ -467,9 +467,9 @@
     property public final boolean mergeAllDescendantsIntoThisNode;
     property public final androidx.ui.core.semantics.SemanticsOwner? owner;
     property public final androidx.ui.core.semantics.SemanticsNode? parent;
-    property public final androidx.ui.engine.geometry.Rect? parentPaintClipRect;
-    property public final androidx.ui.engine.geometry.Rect? parentSemanticsClipRect;
-    property public final androidx.ui.engine.geometry.Rect rect;
+    property public final androidx.ui.geometry.Rect? parentPaintClipRect;
+    property public final androidx.ui.geometry.Rect? parentSemanticsClipRect;
+    property public final androidx.ui.geometry.Rect rect;
     field public static final androidx.ui.core.semantics.SemanticsNode.Companion! Companion;
   }
 
@@ -499,7 +499,7 @@
 package androidx.ui.temputils {
 
   public final class CoroutineUtilsKt {
-    method public static kotlinx.coroutines.Job delay(androidx.ui.core.Duration duration, kotlin.coroutines.CoroutineContext context, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+    method public static kotlinx.coroutines.Job delay(androidx.ui.unit.Duration duration, kotlin.coroutines.CoroutineContext context, kotlin.jvm.functions.Function0<kotlin.Unit> block);
   }
 
 }
diff --git a/ui/ui-platform/api/restricted_current.txt b/ui/ui-platform/api/restricted_current.txt
index b709cbe..ea1eb0b 100644
--- a/ui/ui-platform/api/restricted_current.txt
+++ b/ui/ui-platform/api/restricted_current.txt
@@ -11,16 +11,16 @@
 
 package androidx.ui.core {
 
-  public final class AndroidComposeView extends android.view.ViewGroup implements androidx.ui.core.DensityScope androidx.ui.core.Owner androidx.ui.core.SemanticsTreeProvider {
+  public final class AndroidComposeView extends android.view.ViewGroup implements androidx.ui.unit.DensityScope androidx.ui.core.Owner androidx.ui.core.SemanticsTreeProvider {
     ctor public AndroidComposeView(android.content.Context context);
-    method public androidx.ui.core.IntPxPosition calculatePosition();
-    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.core.PxSize parentSize);
+    method public androidx.ui.unit.IntPxPosition calculatePosition();
+    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.unit.PxSize parentSize);
     method public java.util.List<androidx.ui.core.SemanticsTreeNode> getAllSemanticNodes();
     method public androidx.ui.autofill.Autofill? getAutofill();
     method public androidx.ui.autofill.AutofillTree getAutofillTree();
     method public kotlin.jvm.functions.Function0<kotlin.Unit> getConfigurationChangeObserver();
     method public androidx.ui.core.Constraints getConstraints();
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public androidx.ui.text.font.Font.ResourceLoader getFontLoader();
     method public long getMeasureIteration();
     method public androidx.ui.core.Ref<androidx.ui.core.AndroidComposeView>? getRef();
@@ -47,7 +47,7 @@
     property public final androidx.ui.autofill.AutofillTree autofillTree;
     property public final kotlin.jvm.functions.Function0<kotlin.Unit> configurationChangeObserver;
     property public final androidx.ui.core.Constraints constraints;
-    property public androidx.ui.core.Density density;
+    property public androidx.ui.unit.Density density;
     property public final androidx.ui.text.font.Font.ResourceLoader fontLoader;
     property public long measureIteration;
     property public final androidx.ui.core.Ref<androidx.ui.core.AndroidComposeView>? ref;
@@ -90,20 +90,20 @@
 
   public final class ComponentNodesKt {
     method public static void add(androidx.ui.core.ComponentNode, androidx.ui.core.ComponentNode child);
-    method public static androidx.ui.core.PxPosition childToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode child, androidx.ui.core.PxPosition childLocal);
+    method public static androidx.ui.unit.PxPosition childToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode child, androidx.ui.unit.PxPosition childLocal);
     method public static androidx.ui.core.ComponentNode? findClosestParentNode(androidx.ui.core.ComponentNode, kotlin.jvm.functions.Function1<? super androidx.ui.core.ComponentNode,java.lang.Boolean> selector);
     method public static androidx.ui.core.LayoutNode? findLastLayoutChild(androidx.ui.core.ComponentNode, kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutNode,java.lang.Boolean> block);
     method public static androidx.ui.core.DataNodeKey<kotlin.jvm.functions.Function1<androidx.ui.core.LayoutCoordinates,kotlin.Unit>> getOnChildPositionedKey();
     method public static androidx.ui.core.DataNodeKey<kotlin.jvm.functions.Function1<androidx.ui.core.LayoutCoordinates,kotlin.Unit>> getOnPositionedKey();
     method public static androidx.ui.core.DataNodeKey<java.lang.Object> getParentDataKey();
-    method public static androidx.ui.core.PxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.PxPosition global, boolean withOwnerOffset = true);
-    method public static androidx.ui.core.IntPxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.IntPxPosition global, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.PxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.unit.PxPosition global, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.IntPxPosition globalToLocal(androidx.ui.core.LayoutNode, androidx.ui.unit.IntPxPosition global, boolean withOwnerOffset = true);
     method public static boolean hasNoLayoutDescendants(androidx.ui.core.ComponentNode);
     method public static boolean isAttached(androidx.ui.core.ComponentNode);
-    method public static androidx.ui.core.PxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.core.PxPosition local, boolean withOwnerOffset = true);
-    method public static androidx.ui.core.IntPxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.core.IntPxPosition local, boolean withOwnerOffset = true);
-    method public static androidx.ui.core.PxPosition positionRelativeToAncestor(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode ancestor);
-    method public static androidx.ui.core.IntPxPosition positionRelativeToRoot(androidx.ui.core.LayoutNode);
+    method public static androidx.ui.unit.PxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.unit.PxPosition local, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.IntPxPosition localToGlobal(androidx.ui.core.LayoutNode, androidx.ui.unit.IntPxPosition local, boolean withOwnerOffset = true);
+    method public static androidx.ui.unit.PxPosition positionRelativeToAncestor(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode ancestor);
+    method public static androidx.ui.unit.IntPxPosition positionRelativeToRoot(androidx.ui.core.LayoutNode);
     method public static androidx.ui.core.Owner requireOwner(androidx.ui.core.ComponentNode);
     method public static void visitLayoutChildren(androidx.ui.core.ComponentNode, kotlin.jvm.functions.Function1<? super androidx.ui.core.LayoutNode,kotlin.Unit> block);
   }
@@ -127,15 +127,15 @@
   public final class DrawNode extends androidx.ui.core.ComponentNode {
     ctor public DrawNode();
     method public boolean getNeedsPaint();
-    method public kotlin.jvm.functions.Function3<androidx.ui.core.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? getOnPaint();
-    method public kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? getOnPaintWithChildren();
+    method public kotlin.jvm.functions.Function3<androidx.ui.unit.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? getOnPaint();
+    method public kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? getOnPaintWithChildren();
     method public void invalidate();
     method public void setNeedsPaint(boolean p);
-    method public void setOnPaint(kotlin.jvm.functions.Function3<? super androidx.ui.core.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit>? value);
-    method public void setOnPaintWithChildren(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.core.PxSize,kotlin.Unit>? value);
+    method public void setOnPaint(kotlin.jvm.functions.Function3<? super androidx.ui.unit.DensityScope,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit>? value);
+    method public void setOnPaintWithChildren(kotlin.jvm.functions.Function3<? super androidx.ui.core.DrawReceiver,? super androidx.ui.graphics.Canvas,? super androidx.ui.unit.PxSize,kotlin.Unit>? value);
     property public final boolean needsPaint;
-    property public final kotlin.jvm.functions.Function3<androidx.ui.core.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? onPaint;
-    property public final kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.core.PxSize,kotlin.Unit>? onPaintWithChildren;
+    property public final kotlin.jvm.functions.Function3<androidx.ui.unit.DensityScope,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? onPaint;
+    property public final kotlin.jvm.functions.Function3<androidx.ui.core.DrawReceiver,androidx.ui.graphics.Canvas,androidx.ui.unit.PxSize,kotlin.Unit>? onPaintWithChildren;
   }
 
   public final class FocusNode extends androidx.ui.core.ComponentNode {
@@ -158,35 +158,35 @@
 
   public final class LayoutNode extends androidx.ui.core.ComponentNode implements androidx.ui.core.Measurable {
     ctor public LayoutNode();
-    method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.Density density);
+    method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.unit.Density density);
     method public boolean getAffectsParentSize();
     method public androidx.ui.core.Constraints getConstraints();
-    method public androidx.ui.core.IntPxPosition getContentPosition();
-    method public androidx.ui.core.IntPxSize getContentSize();
-    method public androidx.ui.core.IntPx getHeight();
+    method public androidx.ui.unit.IntPxPosition getContentPosition();
+    method public androidx.ui.unit.IntPxSize getContentSize();
+    method public androidx.ui.unit.IntPx getHeight();
     method public java.util.List<androidx.ui.core.LayoutNode> getLayoutChildren();
     method public androidx.ui.core.LayoutNode.MeasureBlocks getMeasureBlocks();
     method public androidx.ui.core.MeasureScope getMeasureScope();
-    method public androidx.ui.core.IntPxPosition getModifiedPosition();
-    method public androidx.ui.core.IntPxSize getModifiedSize();
+    method public androidx.ui.unit.IntPxPosition getModifiedPosition();
+    method public androidx.ui.unit.IntPxSize getModifiedSize();
     method public androidx.ui.core.Modifier getModifier();
     method public boolean getNeedsRelayout();
     method public boolean getNeedsRemeasure();
     method public Object? getParentData();
     method public boolean getPositionedDuringMeasurePass();
     method public androidx.ui.core.Ref<androidx.ui.core.LayoutNode>? getRef();
-    method public androidx.ui.core.IntPx getWidth();
-    method public androidx.ui.core.IntPx getX();
-    method public androidx.ui.core.IntPx getY();
+    method public androidx.ui.unit.IntPx getWidth();
+    method public androidx.ui.unit.IntPx getX();
+    method public androidx.ui.unit.IntPx getY();
     method public void ignoreModelReads(kotlin.jvm.functions.Function0<kotlin.Unit> block);
     method public boolean isMeasuring();
     method public boolean isPlaced();
-    method public androidx.ui.core.IntPx maxIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(androidx.ui.core.IntPx height);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(androidx.ui.unit.IntPx height);
     method public androidx.ui.core.Placeable measure(androidx.ui.core.Constraints constraints);
-    method public androidx.ui.core.IntPx minIntrinsicHeight(androidx.ui.core.IntPx width);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(androidx.ui.core.IntPx height);
-    method public void place(androidx.ui.core.IntPx x, androidx.ui.core.IntPx y);
+    method public androidx.ui.unit.IntPx minIntrinsicHeight(androidx.ui.unit.IntPx width);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(androidx.ui.unit.IntPx height);
+    method public void place(androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
     method public void placeChildren();
     method public void requestRemeasure();
     method public void setAffectsParentSize(boolean p);
@@ -199,16 +199,16 @@
     property public final boolean affectsParentSize;
     property public final androidx.ui.core.Constraints constraints;
     property protected androidx.ui.core.LayoutNode? containingLayoutNode;
-    property public final androidx.ui.core.IntPxPosition contentPosition;
-    property public final androidx.ui.core.IntPxSize contentSize;
-    property public final androidx.ui.core.IntPx height;
+    property public final androidx.ui.unit.IntPxPosition contentPosition;
+    property public final androidx.ui.unit.IntPxSize contentSize;
+    property public final androidx.ui.unit.IntPx height;
     property public final boolean isMeasuring;
     property public final boolean isPlaced;
     property public final java.util.List<androidx.ui.core.LayoutNode> layoutChildren;
     property public final androidx.ui.core.LayoutNode.MeasureBlocks measureBlocks;
     property public final androidx.ui.core.MeasureScope measureScope;
-    property public final androidx.ui.core.IntPxPosition modifiedPosition;
-    property public final androidx.ui.core.IntPxSize modifiedSize;
+    property public final androidx.ui.unit.IntPxPosition modifiedPosition;
+    property public final androidx.ui.unit.IntPxSize modifiedSize;
     property public final androidx.ui.core.Modifier modifier;
     property public final boolean needsRelayout;
     property public final boolean needsRemeasure;
@@ -216,9 +216,9 @@
     property public androidx.ui.core.LayoutNode? parentLayoutNode;
     property public final boolean positionedDuringMeasurePass;
     property public final androidx.ui.core.Ref<androidx.ui.core.LayoutNode>? ref;
-    property public final androidx.ui.core.IntPx width;
-    property public final androidx.ui.core.IntPx x;
-    property public final androidx.ui.core.IntPx y;
+    property public final androidx.ui.unit.IntPx width;
+    property public final androidx.ui.unit.IntPx x;
+    property public final androidx.ui.unit.IntPx y;
   }
 
   public abstract static class LayoutNode.InnerMeasureScope extends androidx.ui.core.MeasureScope {
@@ -228,19 +228,19 @@
   }
 
   public static interface LayoutNode.MeasureBlocks {
-    method public androidx.ui.core.IntPx maxIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public androidx.ui.core.IntPx maxIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
+    method public androidx.ui.unit.IntPx maxIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public androidx.ui.unit.IntPx maxIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
     method public androidx.ui.core.MeasureScope.LayoutResult measure(androidx.ui.core.MeasureScope measureScope, java.util.List<? extends androidx.ui.core.Measurable> measurables, androidx.ui.core.Constraints constraints);
-    method public androidx.ui.core.IntPx minIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public androidx.ui.core.IntPx minIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
+    method public androidx.ui.unit.IntPx minIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public androidx.ui.unit.IntPx minIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
   }
 
   public abstract static class LayoutNode.NoIntristicsMeasureBlocks implements androidx.ui.core.LayoutNode.MeasureBlocks {
     ctor public LayoutNode.NoIntristicsMeasureBlocks(String error);
-    method public Void maxIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public Void maxIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
-    method public Void minIntrinsicHeight(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx w);
-    method public Void minIntrinsicWidth(androidx.ui.core.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.core.IntPx h);
+    method public Void maxIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public Void maxIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
+    method public Void minIntrinsicHeight(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx w);
+    method public Void minIntrinsicWidth(androidx.ui.unit.DensityScope densityScope, java.util.List<? extends androidx.ui.core.IntrinsicMeasurable> measurables, androidx.ui.unit.IntPx h);
   }
 
   public final class ModelObserver {
@@ -254,9 +254,9 @@
   }
 
   public interface Owner {
-    method public androidx.ui.core.IntPxPosition calculatePosition();
-    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.core.PxSize parentSize);
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.IntPxPosition calculatePosition();
+    method public void callDraw(androidx.ui.graphics.Canvas canvas, androidx.ui.core.ComponentNode node, androidx.ui.unit.PxSize parentSize);
+    method public androidx.ui.unit.Density getDensity();
     method public long getMeasureIteration();
     method public boolean getShowLayoutBounds();
     method public void observeDrawModelReads(androidx.ui.core.RepaintBoundaryNode node, kotlin.jvm.functions.Function0<kotlin.Unit> block);
@@ -270,7 +270,7 @@
     method public void onRequestMeasure(androidx.ui.core.LayoutNode layoutNode);
     method public void onSizeChange(androidx.ui.core.LayoutNode layoutNode);
     method public void pauseModelReadObserveration(kotlin.jvm.functions.Function0<kotlin.Unit> block);
-    property public abstract androidx.ui.core.Density density;
+    property public abstract androidx.ui.unit.Density density;
     property public abstract long measureIteration;
     property public abstract boolean showLayoutBounds;
   }
@@ -278,11 +278,11 @@
   public final class PointerInputNode extends androidx.ui.core.ComponentNode {
     ctor public PointerInputNode();
     method public kotlin.jvm.functions.Function0<kotlin.Unit> getCancelHandler();
-    method public kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.core.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> getPointerInputHandler();
+    method public kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.unit.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> getPointerInputHandler();
     method public void setCancelHandler(kotlin.jvm.functions.Function0<kotlin.Unit> p);
-    method public void setPointerInputHandler(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.core.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> p);
+    method public void setPointerInputHandler(kotlin.jvm.functions.Function3<? super java.util.List<androidx.ui.core.PointerInputChange>,? super androidx.ui.core.PointerEventPass,? super androidx.ui.unit.IntPxSize,? extends java.util.List<androidx.ui.core.PointerInputChange>> p);
     property public final kotlin.jvm.functions.Function0<kotlin.Unit> cancelHandler;
-    property public final kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.core.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler;
+    property public final kotlin.jvm.functions.Function3<java.util.List<androidx.ui.core.PointerInputChange>,androidx.ui.core.PointerEventPass,androidx.ui.unit.IntPxSize,java.util.List<androidx.ui.core.PointerInputChange>> pointerInputHandler;
   }
 
   public final class Ref<T> {
@@ -295,19 +295,19 @@
   public final class RepaintBoundaryNode extends androidx.ui.core.ComponentNode {
     ctor public RepaintBoundaryNode(String? name);
     method public boolean getClipToShape();
-    method public androidx.ui.core.Dp getElevation();
+    method public androidx.ui.unit.Dp getElevation();
     method public String? getName();
     method public float getOpacity();
-    method public androidx.ui.engine.geometry.Shape? getShape();
+    method public androidx.ui.graphics.Shape? getShape();
     method public void setClipToShape(boolean value);
-    method public void setElevation(androidx.ui.core.Dp value);
+    method public void setElevation(androidx.ui.unit.Dp value);
     method public void setOpacity(float value);
-    method public void setShape(androidx.ui.engine.geometry.Shape? value);
+    method public void setShape(androidx.ui.graphics.Shape? value);
     property public final boolean clipToShape;
-    property public final androidx.ui.core.Dp elevation;
+    property public final androidx.ui.unit.Dp elevation;
     property public final float opacity;
     property public androidx.ui.core.RepaintBoundaryNode? repaintBoundary;
-    property public final androidx.ui.engine.geometry.Shape? shape;
+    property public final androidx.ui.graphics.Shape? shape;
   }
 
   public final class SemanticsComponentNode extends androidx.ui.core.ComponentNode {
@@ -328,11 +328,11 @@
     method public androidx.ui.core.ComponentNode? findClosestParentNode(kotlin.jvm.functions.Function1<? super androidx.ui.core.ComponentNode,java.lang.Boolean> selector);
     method public java.util.Set<androidx.ui.core.SemanticsTreeNode> getChildren();
     method public androidx.ui.core.semantics.SemanticsConfiguration getData();
-    method public androidx.ui.engine.geometry.Rect? getGlobalRect();
+    method public androidx.ui.geometry.Rect? getGlobalRect();
     method public androidx.ui.core.SemanticsTreeNode? getParent();
     property public abstract java.util.Set<androidx.ui.core.SemanticsTreeNode> children;
     property public abstract androidx.ui.core.semantics.SemanticsConfiguration data;
-    property public abstract androidx.ui.engine.geometry.Rect? globalRect;
+    property public abstract androidx.ui.geometry.Rect? globalRect;
     property public abstract androidx.ui.core.SemanticsTreeNode? parent;
   }
 
@@ -342,11 +342,11 @@
     method public androidx.ui.core.ComponentNode? findClosestParentNode(kotlin.jvm.functions.Function1<? super androidx.ui.core.ComponentNode,java.lang.Boolean> selector);
     method public java.util.Set<androidx.ui.core.SemanticsTreeNode> getChildren();
     method public androidx.ui.core.semantics.SemanticsConfiguration getData();
-    method public androidx.ui.engine.geometry.Rect? getGlobalRect();
+    method public androidx.ui.geometry.Rect? getGlobalRect();
     method public androidx.ui.core.SemanticsTreeNode? getParent();
     property public java.util.Set<androidx.ui.core.SemanticsTreeNode> children;
     property public androidx.ui.core.semantics.SemanticsConfiguration data;
-    property public androidx.ui.engine.geometry.Rect? globalRect;
+    property public androidx.ui.geometry.Rect? globalRect;
   }
 
   public final class SemanticsTreeNodeImplKt {
@@ -441,9 +441,9 @@
     method public boolean getMergeAllDescendantsIntoThisNode();
     method public androidx.ui.core.semantics.SemanticsOwner? getOwner();
     method public androidx.ui.core.semantics.SemanticsNode? getParent();
-    method public androidx.ui.engine.geometry.Rect? getParentPaintClipRect();
-    method public androidx.ui.engine.geometry.Rect? getParentSemanticsClipRect();
-    method public androidx.ui.engine.geometry.Rect getRect();
+    method public androidx.ui.geometry.Rect? getParentPaintClipRect();
+    method public androidx.ui.geometry.Rect? getParentSemanticsClipRect();
+    method public androidx.ui.geometry.Rect getRect();
     method public boolean isInvisible();
     method public boolean isMergedIntoParent();
     method public boolean isPartOfNodeMerging();
@@ -452,9 +452,9 @@
     method public void setChildren(java.util.List<androidx.ui.core.semantics.SemanticsNode> p);
     method public void setMergedIntoParent(boolean value);
     method public void setParent(androidx.ui.core.semantics.SemanticsNode? p);
-    method public void setParentPaintClipRect(androidx.ui.engine.geometry.Rect? p);
-    method public void setParentSemanticsClipRect(androidx.ui.engine.geometry.Rect? p);
-    method public void setRect(androidx.ui.engine.geometry.Rect value);
+    method public void setParentPaintClipRect(androidx.ui.geometry.Rect? p);
+    method public void setParentSemanticsClipRect(androidx.ui.geometry.Rect? p);
+    method public void setRect(androidx.ui.geometry.Rect value);
     property public final boolean attached;
     property public final java.util.List<androidx.ui.core.semantics.SemanticsNode> children;
     property public final int childrenCount;
@@ -467,9 +467,9 @@
     property public final boolean mergeAllDescendantsIntoThisNode;
     property public final androidx.ui.core.semantics.SemanticsOwner? owner;
     property public final androidx.ui.core.semantics.SemanticsNode? parent;
-    property public final androidx.ui.engine.geometry.Rect? parentPaintClipRect;
-    property public final androidx.ui.engine.geometry.Rect? parentSemanticsClipRect;
-    property public final androidx.ui.engine.geometry.Rect rect;
+    property public final androidx.ui.geometry.Rect? parentPaintClipRect;
+    property public final androidx.ui.geometry.Rect? parentSemanticsClipRect;
+    property public final androidx.ui.geometry.Rect rect;
     field public static final androidx.ui.core.semantics.SemanticsNode.Companion! Companion;
   }
 
@@ -499,7 +499,7 @@
 package androidx.ui.temputils {
 
   public final class CoroutineUtilsKt {
-    method public static kotlinx.coroutines.Job delay(androidx.ui.core.Duration duration, kotlin.coroutines.CoroutineContext context, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+    method public static kotlinx.coroutines.Job delay(androidx.ui.unit.Duration duration, kotlin.coroutines.CoroutineContext context, kotlin.jvm.functions.Function0<kotlin.Unit> block);
   }
 
 }
diff --git a/ui/ui-platform/src/main/java/androidx/ui/core/AndroidOwner.kt b/ui/ui-platform/src/main/java/androidx/ui/core/AndroidOwner.kt
index bcfcbf8..6d1a84a 100644
--- a/ui/ui-platform/src/main/java/androidx/ui/core/AndroidOwner.kt
+++ b/ui/ui-platform/src/main/java/androidx/ui/core/AndroidOwner.kt
@@ -45,15 +45,27 @@
 import androidx.ui.core.pointerinput.PointerInputEventProcessor
 import androidx.ui.core.pointerinput.toPointerInputEvent
 import androidx.ui.core.text.AndroidFontResourceLoader
-import androidx.ui.engine.geometry.Outline
-import androidx.ui.engine.geometry.RRect
-import androidx.ui.engine.geometry.Rect
-import androidx.ui.engine.geometry.Shape
+import androidx.ui.geometry.RRect
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Canvas
+import androidx.ui.graphics.Outline
 import androidx.ui.graphics.Path
+import androidx.ui.graphics.Shape
 import androidx.ui.input.TextInputService
 import androidx.ui.input.TextInputServiceAndroid
 import androidx.ui.text.font.Font
+import androidx.ui.unit.Density
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.max
+import androidx.ui.unit.px
+import androidx.ui.unit.toPxSize
+import androidx.ui.unit.withDensity
+
 import org.jetbrains.annotations.TestOnly
 import java.lang.reflect.Method
 import java.util.TreeSet
diff --git a/ui/ui-platform/src/main/java/androidx/ui/core/ComponentNodes.kt b/ui/ui-platform/src/main/java/androidx/ui/core/ComponentNodes.kt
index a0fccec..5f9076b 100644
--- a/ui/ui-platform/src/main/java/androidx/ui/core/ComponentNodes.kt
+++ b/ui/ui-platform/src/main/java/androidx/ui/core/ComponentNodes.kt
@@ -20,18 +20,32 @@
 import androidx.ui.core.focus.ownerHasFocus
 import androidx.ui.core.focus.requestFocusForOwner
 import androidx.ui.core.semantics.SemanticsConfiguration
-import androidx.ui.engine.geometry.Rect
-import androidx.ui.engine.geometry.Shape
 import androidx.ui.focus.FocusDetailedState
 import androidx.ui.focus.FocusDetailedState.Active
 import androidx.ui.focus.FocusDetailedState.ActiveParent
 import androidx.ui.focus.FocusDetailedState.Captured
 import androidx.ui.focus.FocusDetailedState.Disabled
 import androidx.ui.focus.FocusDetailedState.Inactive
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Canvas
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
 import androidx.ui.graphics.PaintingStyle
+import androidx.ui.graphics.Shape
+import androidx.ui.unit.Density
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxPosition
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.Px
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.toPx
+import androidx.ui.unit.toPxPosition
+import androidx.ui.unit.toPxSize
 import kotlin.properties.ReadWriteProperty
 import kotlin.reflect.KProperty
 
diff --git a/ui/ui-platform/src/main/java/androidx/ui/core/SemanticsTreeNode.kt b/ui/ui-platform/src/main/java/androidx/ui/core/SemanticsTreeNode.kt
index d8f3d8b..7ef798e 100644
--- a/ui/ui-platform/src/main/java/androidx/ui/core/SemanticsTreeNode.kt
+++ b/ui/ui-platform/src/main/java/androidx/ui/core/SemanticsTreeNode.kt
@@ -17,7 +17,7 @@
 
 import android.view.MotionEvent
 import androidx.ui.core.semantics.SemanticsConfiguration
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 
 /**
  * Represent a node in the semantics tree together with information about its parent and children.
diff --git a/ui/ui-platform/src/main/java/androidx/ui/core/SemanticsTreeNodeImpl.kt b/ui/ui-platform/src/main/java/androidx/ui/core/SemanticsTreeNodeImpl.kt
index a8f9765..c317ebb 100644
--- a/ui/ui-platform/src/main/java/androidx/ui/core/SemanticsTreeNodeImpl.kt
+++ b/ui/ui-platform/src/main/java/androidx/ui/core/SemanticsTreeNodeImpl.kt
@@ -17,7 +17,10 @@
 package androidx.ui.core
 
 import androidx.ui.core.semantics.SemanticsConfiguration
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.px
+import androidx.ui.unit.toPx
 
 /**
  * Represent a node in the semantics tree together with information about its parent and children.
diff --git a/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/HitPathTracker.kt b/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/HitPathTracker.kt
index 7aecd18..864228d 100644
--- a/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/HitPathTracker.kt
+++ b/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/HitPathTracker.kt
@@ -16,16 +16,16 @@
 
 package androidx.ui.core.pointerinput
 
-import androidx.ui.core.IntPxPosition
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.PointerEventPass
 import androidx.ui.core.PointerInputChange
 import androidx.ui.core.PointerInputNode
 import androidx.ui.core.hasNoLayoutDescendants
-import androidx.ui.core.ipx
 import androidx.ui.core.isAttached
 import androidx.ui.core.positionRelativeToRoot
 import androidx.ui.core.visitLayoutChildren
+import androidx.ui.unit.IntPxPosition
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.ipx
 import kotlin.math.max
 import kotlin.math.min
 
diff --git a/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/MotionEventAdapter.kt b/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/MotionEventAdapter.kt
index 26018fb..b78bd2e 100644
--- a/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/MotionEventAdapter.kt
+++ b/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/MotionEventAdapter.kt
@@ -19,12 +19,12 @@
 import android.view.MotionEvent
 import android.view.MotionEvent.ACTION_POINTER_UP
 import android.view.MotionEvent.ACTION_UP
-import androidx.ui.core.NanosecondsPerMillisecond
 import androidx.ui.core.PointerInputData
-import androidx.ui.core.PxPosition
-import androidx.ui.core.Uptime
-import androidx.ui.core.milliseconds
-import androidx.ui.core.px
+import androidx.ui.unit.NanosecondsPerMillisecond
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.Uptime
+import androidx.ui.unit.milliseconds
+import androidx.ui.unit.px
 
 /**
  * Converts an Android framework [MotionEvent] into a [PointerInputEvent].
diff --git a/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/PointerInputEvent.kt b/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/PointerInputEvent.kt
index d3f31cd..45332db 100644
--- a/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/PointerInputEvent.kt
+++ b/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/PointerInputEvent.kt
@@ -17,7 +17,7 @@
 package androidx.ui.core.pointerinput
 
 import androidx.ui.core.PointerInputData
-import androidx.ui.core.Uptime
+import androidx.ui.unit.Uptime
 
 // TODO(shepshapard): PointerInputEvent probably doesn't need it's own Uptime because each
 // PointerInputData has a Uptime associated with it.  Going to wait to refactor sometime later
diff --git a/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/PointerInputEventProcessor.kt b/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/PointerInputEventProcessor.kt
index a1ba823..e2617cd5 100644
--- a/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/PointerInputEventProcessor.kt
+++ b/ui/ui-platform/src/main/java/androidx/ui/core/pointerinput/PointerInputEventProcessor.kt
@@ -18,19 +18,19 @@
 
 import androidx.ui.core.ComponentNode
 import androidx.ui.core.ConsumedData
-import androidx.ui.core.IntPxPosition
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.LayoutNode
 import androidx.ui.core.PointerEventPass
 import androidx.ui.core.PointerInputChange
 import androidx.ui.core.PointerInputData
 import androidx.ui.core.PointerInputNode
-import androidx.ui.core.PxPosition
-import androidx.ui.core.Uptime
 import androidx.ui.core.changedToDownIgnoreConsumed
 import androidx.ui.core.changedToUpIgnoreConsumed
-import androidx.ui.core.toOffset
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
+import androidx.ui.unit.IntPxPosition
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.Uptime
+import androidx.ui.unit.toOffset
 
 /**
  * The core element that receives [PointerInputEvent]s and process them in Compose UI.
diff --git a/ui/ui-platform/src/main/java/androidx/ui/core/semantics/SemanticsNode.kt b/ui/ui-platform/src/main/java/androidx/ui/core/semantics/SemanticsNode.kt
index 21a27e1..341386b 100644
--- a/ui/ui-platform/src/main/java/androidx/ui/core/semantics/SemanticsNode.kt
+++ b/ui/ui-platform/src/main/java/androidx/ui/core/semantics/SemanticsNode.kt
@@ -17,7 +17,7 @@
 package androidx.ui.core.semantics
 
 import androidx.ui.core.ifDebug
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.semantics.AccessibilityAction
 import androidx.ui.semantics.SemanticsPropertyKey
 
diff --git a/ui/ui-platform/src/main/java/androidx/ui/input/TextInputServiceAndroid.kt b/ui/ui-platform/src/main/java/androidx/ui/input/TextInputServiceAndroid.kt
index f5d6332..6f443a1 100644
--- a/ui/ui-platform/src/main/java/androidx/ui/input/TextInputServiceAndroid.kt
+++ b/ui/ui-platform/src/main/java/androidx/ui/input/TextInputServiceAndroid.kt
@@ -22,7 +22,7 @@
 import android.view.inputmethod.EditorInfo
 import android.view.inputmethod.InputConnection
 import android.view.inputmethod.InputMethodManager
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.text.TextRange
 import kotlin.math.roundToInt
 
diff --git a/ui/ui-platform/src/main/java/androidx/ui/temputils/CoroutineUtils.kt b/ui/ui-platform/src/main/java/androidx/ui/temputils/CoroutineUtils.kt
index a0bfc403..bf7483a 100644
--- a/ui/ui-platform/src/main/java/androidx/ui/temputils/CoroutineUtils.kt
+++ b/ui/ui-platform/src/main/java/androidx/ui/temputils/CoroutineUtils.kt
@@ -16,8 +16,8 @@
 
 package androidx.ui.temputils
 
-import androidx.ui.core.Duration
-import androidx.ui.core.inMilliseconds
+import androidx.ui.unit.Duration
+import androidx.ui.unit.inMilliseconds
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.Job
 import kotlinx.coroutines.launch
diff --git a/ui/ui-platform/src/test/java/androidx/ui/core/ComponentNodeTest.kt b/ui/ui-platform/src/test/java/androidx/ui/core/ComponentNodeTest.kt
index 42c4c03..fa02f3f 100644
--- a/ui/ui-platform/src/test/java/androidx/ui/core/ComponentNodeTest.kt
+++ b/ui/ui-platform/src/test/java/androidx/ui/core/ComponentNodeTest.kt
@@ -16,6 +16,12 @@
 package androidx.ui.core
 
 import androidx.test.filters.SmallTest
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxPosition
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.ipx
+import androidx.ui.unit.px
+import androidx.ui.unit.toPx
 import com.nhaarman.mockitokotlin2.doReturn
 import com.nhaarman.mockitokotlin2.mock
 import org.junit.Assert.assertEquals
@@ -31,7 +37,6 @@
 import org.mockito.Mockito.reset
 import org.mockito.Mockito.times
 import org.mockito.Mockito.verify
-import kotlin.IllegalArgumentException
 
 @SmallTest
 @RunWith(JUnit4::class)
diff --git a/ui/ui-platform/src/test/java/androidx/ui/core/pointerinput/HitPathTrackerTest.kt b/ui/ui-platform/src/test/java/androidx/ui/core/pointerinput/HitPathTrackerTest.kt
index 9701856..daa83bb 100644
--- a/ui/ui-platform/src/test/java/androidx/ui/core/pointerinput/HitPathTrackerTest.kt
+++ b/ui/ui-platform/src/test/java/androidx/ui/core/pointerinput/HitPathTrackerTest.kt
@@ -19,26 +19,26 @@
 import androidx.test.filters.SmallTest
 import androidx.ui.core.ConsumedData
 import androidx.ui.core.DrawNode
-import androidx.ui.core.IntPxPosition
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.LayoutNode
 import androidx.ui.core.Owner
 import androidx.ui.core.PointerEventPass
 import androidx.ui.core.PointerInputChange
 import androidx.ui.core.PointerInputData
 import androidx.ui.core.PointerInputNode
-import androidx.ui.core.PxPosition
 import androidx.ui.core.SemanticsComponentNode
-import androidx.ui.core.Uptime
 import androidx.ui.core.add
 import androidx.ui.core.consumeDownChange
 import androidx.ui.core.consumePositionChange
-import androidx.ui.core.ipx
-import androidx.ui.core.milliseconds
 import androidx.ui.core.positionChange
-import androidx.ui.core.px
 import androidx.ui.testutils.down
 import androidx.ui.testutils.moveTo
+import androidx.ui.unit.IntPxPosition
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.Uptime
+import androidx.ui.unit.ipx
+import androidx.ui.unit.milliseconds
+import androidx.ui.unit.px
 import com.google.common.truth.Truth.assertThat
 import com.nhaarman.mockitokotlin2.any
 import com.nhaarman.mockitokotlin2.eq
diff --git a/ui/ui-platform/src/test/java/androidx/ui/core/pointerinput/PointerInputEventProcessorTest.kt b/ui/ui-platform/src/test/java/androidx/ui/core/pointerinput/PointerInputEventProcessorTest.kt
index a407a57..6f8c67f5 100644
--- a/ui/ui-platform/src/test/java/androidx/ui/core/pointerinput/PointerInputEventProcessorTest.kt
+++ b/ui/ui-platform/src/test/java/androidx/ui/core/pointerinput/PointerInputEventProcessorTest.kt
@@ -19,8 +19,6 @@
 import androidx.test.filters.SmallTest
 import androidx.ui.core.ConsumedData
 import androidx.ui.core.DrawNode
-import androidx.ui.core.IntPxPosition
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.LayoutNode
 import androidx.ui.core.Owner
 import androidx.ui.core.PointerEventPass
@@ -29,12 +27,14 @@
 import androidx.ui.core.PointerInputChange
 import androidx.ui.core.PointerInputData
 import androidx.ui.core.PointerInputNode
-import androidx.ui.core.PxPosition
 import androidx.ui.core.SemanticsComponentNode
-import androidx.ui.core.Uptime
-import androidx.ui.core.ipx
-import androidx.ui.core.milliseconds
-import androidx.ui.core.px
+import androidx.ui.unit.IntPxPosition
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.Uptime
+import androidx.ui.unit.ipx
+import androidx.ui.unit.milliseconds
+import androidx.ui.unit.px
 import com.nhaarman.mockitokotlin2.any
 import com.nhaarman.mockitokotlin2.eq
 import com.nhaarman.mockitokotlin2.inOrder
diff --git a/ui/ui-platform/src/test/java/androidx/ui/core/pointerinput/TestUtils.kt b/ui/ui-platform/src/test/java/androidx/ui/core/pointerinput/TestUtils.kt
index 771117f..4fea3d9 100644
--- a/ui/ui-platform/src/test/java/androidx/ui/core/pointerinput/TestUtils.kt
+++ b/ui/ui-platform/src/test/java/androidx/ui/core/pointerinput/TestUtils.kt
@@ -17,19 +17,19 @@
 package androidx.ui.core.pointerinput
 
 import androidx.ui.core.AlignmentLine
-import androidx.ui.core.IntPx
-import androidx.ui.core.IntPxPosition
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.LayoutNode
 import androidx.ui.core.MeasureScope
 import androidx.ui.core.Placeable
 import androidx.ui.core.PointerEventPass
 import androidx.ui.core.PointerInputChange
-import androidx.ui.core.PointerInputHandler
-import androidx.ui.core.PxPosition
-import androidx.ui.core.Uptime
-import androidx.ui.core.ipx
 import androidx.ui.core.PointerInputData
+import androidx.ui.core.PointerInputHandler
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxPosition
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.Uptime
+import androidx.ui.unit.ipx
 
 /**
  * This class enables Mockito to spy.
diff --git a/ui/ui-test/api/0.1.0-dev04.txt b/ui/ui-test/api/0.1.0-dev04.txt
index 98a513c..7a56712 100644
--- a/ui/ui-test/api/0.1.0-dev04.txt
+++ b/ui/ui-test/api/0.1.0-dev04.txt
@@ -28,19 +28,19 @@
 
   public final class BitmapHelpersKt {
     method public static void assertPixelColor(android.graphics.Bitmap, androidx.ui.graphics.Color expected, int x, int y, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.Color,java.lang.String> error = { color -> "Pixel(" + x + ", " + y + ") expected to be " + expected + ", but was " + color });
-    method public static void assertPixels(android.graphics.Bitmap, androidx.ui.core.IntPxSize? expectedSize = null, kotlin.jvm.functions.Function1<? super androidx.ui.core.IntPxPosition,androidx.ui.graphics.Color> expectedColorProvider);
-    method public static void assertShape(android.graphics.Bitmap, androidx.ui.graphics.Color backgroundColor, int sizeX = width, int sizeY = height, androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Color shapeColor, int shapeSizeX = sizeX, int shapeSizeY = sizeY, int centerX = width / 2, int centerY = height / 2);
+    method public static void assertPixels(android.graphics.Bitmap, androidx.ui.unit.IntPxSize? expectedSize = null, kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxPosition,androidx.ui.graphics.Color> expectedColorProvider);
+    method public static void assertShape(android.graphics.Bitmap, androidx.ui.graphics.Color backgroundColor, int sizeX = width, int sizeY = height, androidx.ui.graphics.Shape shape, androidx.ui.graphics.Color shapeColor, int shapeSizeX = sizeX, int shapeSizeY = sizeY, int centerX = width / 2, int centerY = height / 2);
     method @RequiresApi(android.os.Build.VERSION_CODES.O) public static android.graphics.Bitmap captureToBitmap(androidx.ui.test.SemanticsNodeInteraction);
   }
 
   public final class CollectedSizes {
-    ctor public CollectedSizes(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
-    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(androidx.ui.core.Dp expectedHeight);
-    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,androidx.ui.core.IntPx> expectedHeightPx);
-    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(androidx.ui.core.Dp expectedSize);
-    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,androidx.ui.core.IntPx> expectedSquarePx);
-    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(androidx.ui.core.Dp expectedWidth);
-    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,androidx.ui.core.IntPx> expectedWidthPx);
+    ctor public CollectedSizes(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
+    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(androidx.ui.unit.Dp expectedHeight);
+    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,androidx.ui.unit.IntPx> expectedHeightPx);
+    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(androidx.ui.unit.Dp expectedSize);
+    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,androidx.ui.unit.IntPx> expectedSquarePx);
+    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(androidx.ui.unit.Dp expectedWidth);
+    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,androidx.ui.unit.IntPx> expectedWidthPx);
   }
 
   public interface ComposeBenchmarkScope<T> extends androidx.ui.test.ComposeExecutionControl {
@@ -99,12 +99,12 @@
     method @RequiresApi(android.os.Build.VERSION_CODES.O) public android.graphics.Bitmap captureScreenOnIdle();
     method public androidx.ui.test.ComposeTestCaseSetup forGivenContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
     method public androidx.ui.test.ComposeTestCaseSetup forGivenTestCase(androidx.ui.test.ComposeTestCase testCase);
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public android.util.DisplayMetrics getDisplayMetrics();
     method public <T> T! runOnIdleCompose(kotlin.jvm.functions.Function0<? extends T> action);
     method public <T> T! runOnUiThread(kotlin.jvm.functions.Function0<? extends T> action);
     method public void setContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
-    property public abstract androidx.ui.core.Density density;
+    property public abstract androidx.ui.unit.Density density;
     property public abstract android.util.DisplayMetrics displayMetrics;
   }
 
@@ -144,16 +144,16 @@
   }
 
   public final class GestureScopeKt {
-    method public static void sendClick(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition position);
+    method public static void sendClick(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition position);
     method public static void sendClick(androidx.ui.test.GestureScope);
-    method public static void sendLongClick(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition position);
+    method public static void sendLongClick(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition position);
     method public static void sendLongClick(androidx.ui.test.GestureScope);
-    method public static void sendSwipe(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition start, androidx.ui.core.PxPosition end, androidx.ui.core.Duration duration = 200.milliseconds);
+    method public static void sendSwipe(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition end, androidx.ui.unit.Duration duration = 200.milliseconds);
     method public static void sendSwipeDown(androidx.ui.test.GestureScope);
     method public static void sendSwipeLeft(androidx.ui.test.GestureScope);
     method public static void sendSwipeRight(androidx.ui.test.GestureScope);
     method public static void sendSwipeUp(androidx.ui.test.GestureScope);
-    method public static void sendSwipeWithVelocity(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition start, androidx.ui.core.PxPosition end, @FloatRange(from=0.0) float endVelocity, androidx.ui.core.Duration duration = 200.milliseconds);
+    method public static void sendSwipeWithVelocity(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition end, @FloatRange(from=0.0) float endVelocity, androidx.ui.unit.Duration duration = 200.milliseconds);
   }
 
   public final class GoldenSemanticsKt {
@@ -180,7 +180,7 @@
   public final class SizesTestingKt {
     method public static androidx.ui.layout.DpConstraints getBigTestConstraints();
     method public static androidx.ui.test.CollectedSizes setContentAndCollectSizes(androidx.ui.test.ComposeTestRule, androidx.ui.layout.DpConstraints parentConstraints = BigTestConstraints, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.PxSize setContentAndGetPixelSize(androidx.ui.test.ComposeTestRule, androidx.ui.layout.DpConstraints parentConstraints = BigTestConstraints, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function0<kotlin.Unit>,kotlin.Unit> performSetContent = { setContent(it) }, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static androidx.ui.unit.PxSize setContentAndGetPixelSize(androidx.ui.test.ComposeTestRule, androidx.ui.layout.DpConstraints parentConstraints = BigTestConstraints, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function0<kotlin.Unit>,kotlin.Unit> performSetContent = { setContent(it) }, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
 }
@@ -203,13 +203,13 @@
     method public androidx.ui.test.ComposeTestCaseSetup forGivenContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
     method public androidx.ui.test.ComposeTestCaseSetup forGivenTestCase(androidx.ui.test.ComposeTestCase testCase);
     method public androidx.test.rule.ActivityTestRule<T> getActivityTestRule();
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public android.util.DisplayMetrics getDisplayMetrics();
     method public <T> T! runOnIdleCompose(kotlin.jvm.functions.Function0<? extends T> action);
     method public <T> T! runOnUiThread(kotlin.jvm.functions.Function0<? extends T> action);
     method public void setContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
     property public final androidx.test.rule.ActivityTestRule<T> activityTestRule;
-    property public androidx.ui.core.Density density;
+    property public androidx.ui.unit.Density density;
     property public android.util.DisplayMetrics displayMetrics;
   }
 
diff --git a/ui/ui-test/api/current.txt b/ui/ui-test/api/current.txt
index 98a513c..7a56712 100644
--- a/ui/ui-test/api/current.txt
+++ b/ui/ui-test/api/current.txt
@@ -28,19 +28,19 @@
 
   public final class BitmapHelpersKt {
     method public static void assertPixelColor(android.graphics.Bitmap, androidx.ui.graphics.Color expected, int x, int y, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.Color,java.lang.String> error = { color -> "Pixel(" + x + ", " + y + ") expected to be " + expected + ", but was " + color });
-    method public static void assertPixels(android.graphics.Bitmap, androidx.ui.core.IntPxSize? expectedSize = null, kotlin.jvm.functions.Function1<? super androidx.ui.core.IntPxPosition,androidx.ui.graphics.Color> expectedColorProvider);
-    method public static void assertShape(android.graphics.Bitmap, androidx.ui.graphics.Color backgroundColor, int sizeX = width, int sizeY = height, androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Color shapeColor, int shapeSizeX = sizeX, int shapeSizeY = sizeY, int centerX = width / 2, int centerY = height / 2);
+    method public static void assertPixels(android.graphics.Bitmap, androidx.ui.unit.IntPxSize? expectedSize = null, kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxPosition,androidx.ui.graphics.Color> expectedColorProvider);
+    method public static void assertShape(android.graphics.Bitmap, androidx.ui.graphics.Color backgroundColor, int sizeX = width, int sizeY = height, androidx.ui.graphics.Shape shape, androidx.ui.graphics.Color shapeColor, int shapeSizeX = sizeX, int shapeSizeY = sizeY, int centerX = width / 2, int centerY = height / 2);
     method @RequiresApi(android.os.Build.VERSION_CODES.O) public static android.graphics.Bitmap captureToBitmap(androidx.ui.test.SemanticsNodeInteraction);
   }
 
   public final class CollectedSizes {
-    ctor public CollectedSizes(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
-    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(androidx.ui.core.Dp expectedHeight);
-    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,androidx.ui.core.IntPx> expectedHeightPx);
-    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(androidx.ui.core.Dp expectedSize);
-    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,androidx.ui.core.IntPx> expectedSquarePx);
-    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(androidx.ui.core.Dp expectedWidth);
-    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,androidx.ui.core.IntPx> expectedWidthPx);
+    ctor public CollectedSizes(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
+    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(androidx.ui.unit.Dp expectedHeight);
+    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,androidx.ui.unit.IntPx> expectedHeightPx);
+    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(androidx.ui.unit.Dp expectedSize);
+    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,androidx.ui.unit.IntPx> expectedSquarePx);
+    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(androidx.ui.unit.Dp expectedWidth);
+    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,androidx.ui.unit.IntPx> expectedWidthPx);
   }
 
   public interface ComposeBenchmarkScope<T> extends androidx.ui.test.ComposeExecutionControl {
@@ -99,12 +99,12 @@
     method @RequiresApi(android.os.Build.VERSION_CODES.O) public android.graphics.Bitmap captureScreenOnIdle();
     method public androidx.ui.test.ComposeTestCaseSetup forGivenContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
     method public androidx.ui.test.ComposeTestCaseSetup forGivenTestCase(androidx.ui.test.ComposeTestCase testCase);
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public android.util.DisplayMetrics getDisplayMetrics();
     method public <T> T! runOnIdleCompose(kotlin.jvm.functions.Function0<? extends T> action);
     method public <T> T! runOnUiThread(kotlin.jvm.functions.Function0<? extends T> action);
     method public void setContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
-    property public abstract androidx.ui.core.Density density;
+    property public abstract androidx.ui.unit.Density density;
     property public abstract android.util.DisplayMetrics displayMetrics;
   }
 
@@ -144,16 +144,16 @@
   }
 
   public final class GestureScopeKt {
-    method public static void sendClick(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition position);
+    method public static void sendClick(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition position);
     method public static void sendClick(androidx.ui.test.GestureScope);
-    method public static void sendLongClick(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition position);
+    method public static void sendLongClick(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition position);
     method public static void sendLongClick(androidx.ui.test.GestureScope);
-    method public static void sendSwipe(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition start, androidx.ui.core.PxPosition end, androidx.ui.core.Duration duration = 200.milliseconds);
+    method public static void sendSwipe(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition end, androidx.ui.unit.Duration duration = 200.milliseconds);
     method public static void sendSwipeDown(androidx.ui.test.GestureScope);
     method public static void sendSwipeLeft(androidx.ui.test.GestureScope);
     method public static void sendSwipeRight(androidx.ui.test.GestureScope);
     method public static void sendSwipeUp(androidx.ui.test.GestureScope);
-    method public static void sendSwipeWithVelocity(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition start, androidx.ui.core.PxPosition end, @FloatRange(from=0.0) float endVelocity, androidx.ui.core.Duration duration = 200.milliseconds);
+    method public static void sendSwipeWithVelocity(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition end, @FloatRange(from=0.0) float endVelocity, androidx.ui.unit.Duration duration = 200.milliseconds);
   }
 
   public final class GoldenSemanticsKt {
@@ -180,7 +180,7 @@
   public final class SizesTestingKt {
     method public static androidx.ui.layout.DpConstraints getBigTestConstraints();
     method public static androidx.ui.test.CollectedSizes setContentAndCollectSizes(androidx.ui.test.ComposeTestRule, androidx.ui.layout.DpConstraints parentConstraints = BigTestConstraints, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.PxSize setContentAndGetPixelSize(androidx.ui.test.ComposeTestRule, androidx.ui.layout.DpConstraints parentConstraints = BigTestConstraints, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function0<kotlin.Unit>,kotlin.Unit> performSetContent = { setContent(it) }, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static androidx.ui.unit.PxSize setContentAndGetPixelSize(androidx.ui.test.ComposeTestRule, androidx.ui.layout.DpConstraints parentConstraints = BigTestConstraints, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function0<kotlin.Unit>,kotlin.Unit> performSetContent = { setContent(it) }, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
 }
@@ -203,13 +203,13 @@
     method public androidx.ui.test.ComposeTestCaseSetup forGivenContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
     method public androidx.ui.test.ComposeTestCaseSetup forGivenTestCase(androidx.ui.test.ComposeTestCase testCase);
     method public androidx.test.rule.ActivityTestRule<T> getActivityTestRule();
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public android.util.DisplayMetrics getDisplayMetrics();
     method public <T> T! runOnIdleCompose(kotlin.jvm.functions.Function0<? extends T> action);
     method public <T> T! runOnUiThread(kotlin.jvm.functions.Function0<? extends T> action);
     method public void setContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
     property public final androidx.test.rule.ActivityTestRule<T> activityTestRule;
-    property public androidx.ui.core.Density density;
+    property public androidx.ui.unit.Density density;
     property public android.util.DisplayMetrics displayMetrics;
   }
 
diff --git a/ui/ui-test/api/public_plus_experimental_0.1.0-dev04.txt b/ui/ui-test/api/public_plus_experimental_0.1.0-dev04.txt
index 98a513c..7a56712 100644
--- a/ui/ui-test/api/public_plus_experimental_0.1.0-dev04.txt
+++ b/ui/ui-test/api/public_plus_experimental_0.1.0-dev04.txt
@@ -28,19 +28,19 @@
 
   public final class BitmapHelpersKt {
     method public static void assertPixelColor(android.graphics.Bitmap, androidx.ui.graphics.Color expected, int x, int y, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.Color,java.lang.String> error = { color -> "Pixel(" + x + ", " + y + ") expected to be " + expected + ", but was " + color });
-    method public static void assertPixels(android.graphics.Bitmap, androidx.ui.core.IntPxSize? expectedSize = null, kotlin.jvm.functions.Function1<? super androidx.ui.core.IntPxPosition,androidx.ui.graphics.Color> expectedColorProvider);
-    method public static void assertShape(android.graphics.Bitmap, androidx.ui.graphics.Color backgroundColor, int sizeX = width, int sizeY = height, androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Color shapeColor, int shapeSizeX = sizeX, int shapeSizeY = sizeY, int centerX = width / 2, int centerY = height / 2);
+    method public static void assertPixels(android.graphics.Bitmap, androidx.ui.unit.IntPxSize? expectedSize = null, kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxPosition,androidx.ui.graphics.Color> expectedColorProvider);
+    method public static void assertShape(android.graphics.Bitmap, androidx.ui.graphics.Color backgroundColor, int sizeX = width, int sizeY = height, androidx.ui.graphics.Shape shape, androidx.ui.graphics.Color shapeColor, int shapeSizeX = sizeX, int shapeSizeY = sizeY, int centerX = width / 2, int centerY = height / 2);
     method @RequiresApi(android.os.Build.VERSION_CODES.O) public static android.graphics.Bitmap captureToBitmap(androidx.ui.test.SemanticsNodeInteraction);
   }
 
   public final class CollectedSizes {
-    ctor public CollectedSizes(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
-    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(androidx.ui.core.Dp expectedHeight);
-    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,androidx.ui.core.IntPx> expectedHeightPx);
-    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(androidx.ui.core.Dp expectedSize);
-    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,androidx.ui.core.IntPx> expectedSquarePx);
-    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(androidx.ui.core.Dp expectedWidth);
-    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,androidx.ui.core.IntPx> expectedWidthPx);
+    ctor public CollectedSizes(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
+    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(androidx.ui.unit.Dp expectedHeight);
+    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,androidx.ui.unit.IntPx> expectedHeightPx);
+    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(androidx.ui.unit.Dp expectedSize);
+    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,androidx.ui.unit.IntPx> expectedSquarePx);
+    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(androidx.ui.unit.Dp expectedWidth);
+    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,androidx.ui.unit.IntPx> expectedWidthPx);
   }
 
   public interface ComposeBenchmarkScope<T> extends androidx.ui.test.ComposeExecutionControl {
@@ -99,12 +99,12 @@
     method @RequiresApi(android.os.Build.VERSION_CODES.O) public android.graphics.Bitmap captureScreenOnIdle();
     method public androidx.ui.test.ComposeTestCaseSetup forGivenContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
     method public androidx.ui.test.ComposeTestCaseSetup forGivenTestCase(androidx.ui.test.ComposeTestCase testCase);
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public android.util.DisplayMetrics getDisplayMetrics();
     method public <T> T! runOnIdleCompose(kotlin.jvm.functions.Function0<? extends T> action);
     method public <T> T! runOnUiThread(kotlin.jvm.functions.Function0<? extends T> action);
     method public void setContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
-    property public abstract androidx.ui.core.Density density;
+    property public abstract androidx.ui.unit.Density density;
     property public abstract android.util.DisplayMetrics displayMetrics;
   }
 
@@ -144,16 +144,16 @@
   }
 
   public final class GestureScopeKt {
-    method public static void sendClick(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition position);
+    method public static void sendClick(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition position);
     method public static void sendClick(androidx.ui.test.GestureScope);
-    method public static void sendLongClick(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition position);
+    method public static void sendLongClick(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition position);
     method public static void sendLongClick(androidx.ui.test.GestureScope);
-    method public static void sendSwipe(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition start, androidx.ui.core.PxPosition end, androidx.ui.core.Duration duration = 200.milliseconds);
+    method public static void sendSwipe(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition end, androidx.ui.unit.Duration duration = 200.milliseconds);
     method public static void sendSwipeDown(androidx.ui.test.GestureScope);
     method public static void sendSwipeLeft(androidx.ui.test.GestureScope);
     method public static void sendSwipeRight(androidx.ui.test.GestureScope);
     method public static void sendSwipeUp(androidx.ui.test.GestureScope);
-    method public static void sendSwipeWithVelocity(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition start, androidx.ui.core.PxPosition end, @FloatRange(from=0.0) float endVelocity, androidx.ui.core.Duration duration = 200.milliseconds);
+    method public static void sendSwipeWithVelocity(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition end, @FloatRange(from=0.0) float endVelocity, androidx.ui.unit.Duration duration = 200.milliseconds);
   }
 
   public final class GoldenSemanticsKt {
@@ -180,7 +180,7 @@
   public final class SizesTestingKt {
     method public static androidx.ui.layout.DpConstraints getBigTestConstraints();
     method public static androidx.ui.test.CollectedSizes setContentAndCollectSizes(androidx.ui.test.ComposeTestRule, androidx.ui.layout.DpConstraints parentConstraints = BigTestConstraints, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.PxSize setContentAndGetPixelSize(androidx.ui.test.ComposeTestRule, androidx.ui.layout.DpConstraints parentConstraints = BigTestConstraints, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function0<kotlin.Unit>,kotlin.Unit> performSetContent = { setContent(it) }, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static androidx.ui.unit.PxSize setContentAndGetPixelSize(androidx.ui.test.ComposeTestRule, androidx.ui.layout.DpConstraints parentConstraints = BigTestConstraints, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function0<kotlin.Unit>,kotlin.Unit> performSetContent = { setContent(it) }, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
 }
@@ -203,13 +203,13 @@
     method public androidx.ui.test.ComposeTestCaseSetup forGivenContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
     method public androidx.ui.test.ComposeTestCaseSetup forGivenTestCase(androidx.ui.test.ComposeTestCase testCase);
     method public androidx.test.rule.ActivityTestRule<T> getActivityTestRule();
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public android.util.DisplayMetrics getDisplayMetrics();
     method public <T> T! runOnIdleCompose(kotlin.jvm.functions.Function0<? extends T> action);
     method public <T> T! runOnUiThread(kotlin.jvm.functions.Function0<? extends T> action);
     method public void setContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
     property public final androidx.test.rule.ActivityTestRule<T> activityTestRule;
-    property public androidx.ui.core.Density density;
+    property public androidx.ui.unit.Density density;
     property public android.util.DisplayMetrics displayMetrics;
   }
 
diff --git a/ui/ui-test/api/public_plus_experimental_current.txt b/ui/ui-test/api/public_plus_experimental_current.txt
index 98a513c..7a56712 100644
--- a/ui/ui-test/api/public_plus_experimental_current.txt
+++ b/ui/ui-test/api/public_plus_experimental_current.txt
@@ -28,19 +28,19 @@
 
   public final class BitmapHelpersKt {
     method public static void assertPixelColor(android.graphics.Bitmap, androidx.ui.graphics.Color expected, int x, int y, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.Color,java.lang.String> error = { color -> "Pixel(" + x + ", " + y + ") expected to be " + expected + ", but was " + color });
-    method public static void assertPixels(android.graphics.Bitmap, androidx.ui.core.IntPxSize? expectedSize = null, kotlin.jvm.functions.Function1<? super androidx.ui.core.IntPxPosition,androidx.ui.graphics.Color> expectedColorProvider);
-    method public static void assertShape(android.graphics.Bitmap, androidx.ui.graphics.Color backgroundColor, int sizeX = width, int sizeY = height, androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Color shapeColor, int shapeSizeX = sizeX, int shapeSizeY = sizeY, int centerX = width / 2, int centerY = height / 2);
+    method public static void assertPixels(android.graphics.Bitmap, androidx.ui.unit.IntPxSize? expectedSize = null, kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxPosition,androidx.ui.graphics.Color> expectedColorProvider);
+    method public static void assertShape(android.graphics.Bitmap, androidx.ui.graphics.Color backgroundColor, int sizeX = width, int sizeY = height, androidx.ui.graphics.Shape shape, androidx.ui.graphics.Color shapeColor, int shapeSizeX = sizeX, int shapeSizeY = sizeY, int centerX = width / 2, int centerY = height / 2);
     method @RequiresApi(android.os.Build.VERSION_CODES.O) public static android.graphics.Bitmap captureToBitmap(androidx.ui.test.SemanticsNodeInteraction);
   }
 
   public final class CollectedSizes {
-    ctor public CollectedSizes(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
-    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(androidx.ui.core.Dp expectedHeight);
-    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,androidx.ui.core.IntPx> expectedHeightPx);
-    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(androidx.ui.core.Dp expectedSize);
-    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,androidx.ui.core.IntPx> expectedSquarePx);
-    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(androidx.ui.core.Dp expectedWidth);
-    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,androidx.ui.core.IntPx> expectedWidthPx);
+    ctor public CollectedSizes(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
+    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(androidx.ui.unit.Dp expectedHeight);
+    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,androidx.ui.unit.IntPx> expectedHeightPx);
+    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(androidx.ui.unit.Dp expectedSize);
+    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,androidx.ui.unit.IntPx> expectedSquarePx);
+    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(androidx.ui.unit.Dp expectedWidth);
+    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,androidx.ui.unit.IntPx> expectedWidthPx);
   }
 
   public interface ComposeBenchmarkScope<T> extends androidx.ui.test.ComposeExecutionControl {
@@ -99,12 +99,12 @@
     method @RequiresApi(android.os.Build.VERSION_CODES.O) public android.graphics.Bitmap captureScreenOnIdle();
     method public androidx.ui.test.ComposeTestCaseSetup forGivenContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
     method public androidx.ui.test.ComposeTestCaseSetup forGivenTestCase(androidx.ui.test.ComposeTestCase testCase);
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public android.util.DisplayMetrics getDisplayMetrics();
     method public <T> T! runOnIdleCompose(kotlin.jvm.functions.Function0<? extends T> action);
     method public <T> T! runOnUiThread(kotlin.jvm.functions.Function0<? extends T> action);
     method public void setContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
-    property public abstract androidx.ui.core.Density density;
+    property public abstract androidx.ui.unit.Density density;
     property public abstract android.util.DisplayMetrics displayMetrics;
   }
 
@@ -144,16 +144,16 @@
   }
 
   public final class GestureScopeKt {
-    method public static void sendClick(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition position);
+    method public static void sendClick(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition position);
     method public static void sendClick(androidx.ui.test.GestureScope);
-    method public static void sendLongClick(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition position);
+    method public static void sendLongClick(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition position);
     method public static void sendLongClick(androidx.ui.test.GestureScope);
-    method public static void sendSwipe(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition start, androidx.ui.core.PxPosition end, androidx.ui.core.Duration duration = 200.milliseconds);
+    method public static void sendSwipe(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition end, androidx.ui.unit.Duration duration = 200.milliseconds);
     method public static void sendSwipeDown(androidx.ui.test.GestureScope);
     method public static void sendSwipeLeft(androidx.ui.test.GestureScope);
     method public static void sendSwipeRight(androidx.ui.test.GestureScope);
     method public static void sendSwipeUp(androidx.ui.test.GestureScope);
-    method public static void sendSwipeWithVelocity(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition start, androidx.ui.core.PxPosition end, @FloatRange(from=0.0) float endVelocity, androidx.ui.core.Duration duration = 200.milliseconds);
+    method public static void sendSwipeWithVelocity(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition end, @FloatRange(from=0.0) float endVelocity, androidx.ui.unit.Duration duration = 200.milliseconds);
   }
 
   public final class GoldenSemanticsKt {
@@ -180,7 +180,7 @@
   public final class SizesTestingKt {
     method public static androidx.ui.layout.DpConstraints getBigTestConstraints();
     method public static androidx.ui.test.CollectedSizes setContentAndCollectSizes(androidx.ui.test.ComposeTestRule, androidx.ui.layout.DpConstraints parentConstraints = BigTestConstraints, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.PxSize setContentAndGetPixelSize(androidx.ui.test.ComposeTestRule, androidx.ui.layout.DpConstraints parentConstraints = BigTestConstraints, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function0<kotlin.Unit>,kotlin.Unit> performSetContent = { setContent(it) }, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static androidx.ui.unit.PxSize setContentAndGetPixelSize(androidx.ui.test.ComposeTestRule, androidx.ui.layout.DpConstraints parentConstraints = BigTestConstraints, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function0<kotlin.Unit>,kotlin.Unit> performSetContent = { setContent(it) }, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
 }
@@ -203,13 +203,13 @@
     method public androidx.ui.test.ComposeTestCaseSetup forGivenContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
     method public androidx.ui.test.ComposeTestCaseSetup forGivenTestCase(androidx.ui.test.ComposeTestCase testCase);
     method public androidx.test.rule.ActivityTestRule<T> getActivityTestRule();
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public android.util.DisplayMetrics getDisplayMetrics();
     method public <T> T! runOnIdleCompose(kotlin.jvm.functions.Function0<? extends T> action);
     method public <T> T! runOnUiThread(kotlin.jvm.functions.Function0<? extends T> action);
     method public void setContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
     property public final androidx.test.rule.ActivityTestRule<T> activityTestRule;
-    property public androidx.ui.core.Density density;
+    property public androidx.ui.unit.Density density;
     property public android.util.DisplayMetrics displayMetrics;
   }
 
diff --git a/ui/ui-test/api/restricted_0.1.0-dev04.txt b/ui/ui-test/api/restricted_0.1.0-dev04.txt
index 98a513c..7a56712 100644
--- a/ui/ui-test/api/restricted_0.1.0-dev04.txt
+++ b/ui/ui-test/api/restricted_0.1.0-dev04.txt
@@ -28,19 +28,19 @@
 
   public final class BitmapHelpersKt {
     method public static void assertPixelColor(android.graphics.Bitmap, androidx.ui.graphics.Color expected, int x, int y, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.Color,java.lang.String> error = { color -> "Pixel(" + x + ", " + y + ") expected to be " + expected + ", but was " + color });
-    method public static void assertPixels(android.graphics.Bitmap, androidx.ui.core.IntPxSize? expectedSize = null, kotlin.jvm.functions.Function1<? super androidx.ui.core.IntPxPosition,androidx.ui.graphics.Color> expectedColorProvider);
-    method public static void assertShape(android.graphics.Bitmap, androidx.ui.graphics.Color backgroundColor, int sizeX = width, int sizeY = height, androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Color shapeColor, int shapeSizeX = sizeX, int shapeSizeY = sizeY, int centerX = width / 2, int centerY = height / 2);
+    method public static void assertPixels(android.graphics.Bitmap, androidx.ui.unit.IntPxSize? expectedSize = null, kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxPosition,androidx.ui.graphics.Color> expectedColorProvider);
+    method public static void assertShape(android.graphics.Bitmap, androidx.ui.graphics.Color backgroundColor, int sizeX = width, int sizeY = height, androidx.ui.graphics.Shape shape, androidx.ui.graphics.Color shapeColor, int shapeSizeX = sizeX, int shapeSizeY = sizeY, int centerX = width / 2, int centerY = height / 2);
     method @RequiresApi(android.os.Build.VERSION_CODES.O) public static android.graphics.Bitmap captureToBitmap(androidx.ui.test.SemanticsNodeInteraction);
   }
 
   public final class CollectedSizes {
-    ctor public CollectedSizes(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
-    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(androidx.ui.core.Dp expectedHeight);
-    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,androidx.ui.core.IntPx> expectedHeightPx);
-    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(androidx.ui.core.Dp expectedSize);
-    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,androidx.ui.core.IntPx> expectedSquarePx);
-    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(androidx.ui.core.Dp expectedWidth);
-    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,androidx.ui.core.IntPx> expectedWidthPx);
+    ctor public CollectedSizes(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
+    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(androidx.ui.unit.Dp expectedHeight);
+    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,androidx.ui.unit.IntPx> expectedHeightPx);
+    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(androidx.ui.unit.Dp expectedSize);
+    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,androidx.ui.unit.IntPx> expectedSquarePx);
+    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(androidx.ui.unit.Dp expectedWidth);
+    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,androidx.ui.unit.IntPx> expectedWidthPx);
   }
 
   public interface ComposeBenchmarkScope<T> extends androidx.ui.test.ComposeExecutionControl {
@@ -99,12 +99,12 @@
     method @RequiresApi(android.os.Build.VERSION_CODES.O) public android.graphics.Bitmap captureScreenOnIdle();
     method public androidx.ui.test.ComposeTestCaseSetup forGivenContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
     method public androidx.ui.test.ComposeTestCaseSetup forGivenTestCase(androidx.ui.test.ComposeTestCase testCase);
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public android.util.DisplayMetrics getDisplayMetrics();
     method public <T> T! runOnIdleCompose(kotlin.jvm.functions.Function0<? extends T> action);
     method public <T> T! runOnUiThread(kotlin.jvm.functions.Function0<? extends T> action);
     method public void setContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
-    property public abstract androidx.ui.core.Density density;
+    property public abstract androidx.ui.unit.Density density;
     property public abstract android.util.DisplayMetrics displayMetrics;
   }
 
@@ -144,16 +144,16 @@
   }
 
   public final class GestureScopeKt {
-    method public static void sendClick(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition position);
+    method public static void sendClick(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition position);
     method public static void sendClick(androidx.ui.test.GestureScope);
-    method public static void sendLongClick(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition position);
+    method public static void sendLongClick(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition position);
     method public static void sendLongClick(androidx.ui.test.GestureScope);
-    method public static void sendSwipe(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition start, androidx.ui.core.PxPosition end, androidx.ui.core.Duration duration = 200.milliseconds);
+    method public static void sendSwipe(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition end, androidx.ui.unit.Duration duration = 200.milliseconds);
     method public static void sendSwipeDown(androidx.ui.test.GestureScope);
     method public static void sendSwipeLeft(androidx.ui.test.GestureScope);
     method public static void sendSwipeRight(androidx.ui.test.GestureScope);
     method public static void sendSwipeUp(androidx.ui.test.GestureScope);
-    method public static void sendSwipeWithVelocity(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition start, androidx.ui.core.PxPosition end, @FloatRange(from=0.0) float endVelocity, androidx.ui.core.Duration duration = 200.milliseconds);
+    method public static void sendSwipeWithVelocity(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition end, @FloatRange(from=0.0) float endVelocity, androidx.ui.unit.Duration duration = 200.milliseconds);
   }
 
   public final class GoldenSemanticsKt {
@@ -180,7 +180,7 @@
   public final class SizesTestingKt {
     method public static androidx.ui.layout.DpConstraints getBigTestConstraints();
     method public static androidx.ui.test.CollectedSizes setContentAndCollectSizes(androidx.ui.test.ComposeTestRule, androidx.ui.layout.DpConstraints parentConstraints = BigTestConstraints, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.PxSize setContentAndGetPixelSize(androidx.ui.test.ComposeTestRule, androidx.ui.layout.DpConstraints parentConstraints = BigTestConstraints, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function0<kotlin.Unit>,kotlin.Unit> performSetContent = { setContent(it) }, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static androidx.ui.unit.PxSize setContentAndGetPixelSize(androidx.ui.test.ComposeTestRule, androidx.ui.layout.DpConstraints parentConstraints = BigTestConstraints, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function0<kotlin.Unit>,kotlin.Unit> performSetContent = { setContent(it) }, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
 }
@@ -203,13 +203,13 @@
     method public androidx.ui.test.ComposeTestCaseSetup forGivenContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
     method public androidx.ui.test.ComposeTestCaseSetup forGivenTestCase(androidx.ui.test.ComposeTestCase testCase);
     method public androidx.test.rule.ActivityTestRule<T> getActivityTestRule();
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public android.util.DisplayMetrics getDisplayMetrics();
     method public <T> T! runOnIdleCompose(kotlin.jvm.functions.Function0<? extends T> action);
     method public <T> T! runOnUiThread(kotlin.jvm.functions.Function0<? extends T> action);
     method public void setContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
     property public final androidx.test.rule.ActivityTestRule<T> activityTestRule;
-    property public androidx.ui.core.Density density;
+    property public androidx.ui.unit.Density density;
     property public android.util.DisplayMetrics displayMetrics;
   }
 
diff --git a/ui/ui-test/api/restricted_current.txt b/ui/ui-test/api/restricted_current.txt
index 98a513c..7a56712 100644
--- a/ui/ui-test/api/restricted_current.txt
+++ b/ui/ui-test/api/restricted_current.txt
@@ -28,19 +28,19 @@
 
   public final class BitmapHelpersKt {
     method public static void assertPixelColor(android.graphics.Bitmap, androidx.ui.graphics.Color expected, int x, int y, kotlin.jvm.functions.Function1<? super androidx.ui.graphics.Color,java.lang.String> error = { color -> "Pixel(" + x + ", " + y + ") expected to be " + expected + ", but was " + color });
-    method public static void assertPixels(android.graphics.Bitmap, androidx.ui.core.IntPxSize? expectedSize = null, kotlin.jvm.functions.Function1<? super androidx.ui.core.IntPxPosition,androidx.ui.graphics.Color> expectedColorProvider);
-    method public static void assertShape(android.graphics.Bitmap, androidx.ui.graphics.Color backgroundColor, int sizeX = width, int sizeY = height, androidx.ui.engine.geometry.Shape shape, androidx.ui.graphics.Color shapeColor, int shapeSizeX = sizeX, int shapeSizeY = sizeY, int centerX = width / 2, int centerY = height / 2);
+    method public static void assertPixels(android.graphics.Bitmap, androidx.ui.unit.IntPxSize? expectedSize = null, kotlin.jvm.functions.Function1<? super androidx.ui.unit.IntPxPosition,androidx.ui.graphics.Color> expectedColorProvider);
+    method public static void assertShape(android.graphics.Bitmap, androidx.ui.graphics.Color backgroundColor, int sizeX = width, int sizeY = height, androidx.ui.graphics.Shape shape, androidx.ui.graphics.Color shapeColor, int shapeSizeX = sizeX, int shapeSizeY = sizeY, int centerX = width / 2, int centerY = height / 2);
     method @RequiresApi(android.os.Build.VERSION_CODES.O) public static android.graphics.Bitmap captureToBitmap(androidx.ui.test.SemanticsNodeInteraction);
   }
 
   public final class CollectedSizes {
-    ctor public CollectedSizes(androidx.ui.core.PxSize size, androidx.ui.core.Density density);
-    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(androidx.ui.core.Dp expectedHeight);
-    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,androidx.ui.core.IntPx> expectedHeightPx);
-    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(androidx.ui.core.Dp expectedSize);
-    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,androidx.ui.core.IntPx> expectedSquarePx);
-    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(androidx.ui.core.Dp expectedWidth);
-    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.core.DensityScope,androidx.ui.core.IntPx> expectedWidthPx);
+    ctor public CollectedSizes(androidx.ui.unit.PxSize size, androidx.ui.unit.Density density);
+    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(androidx.ui.unit.Dp expectedHeight);
+    method public androidx.ui.test.CollectedSizes assertHeightEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,androidx.ui.unit.IntPx> expectedHeightPx);
+    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(androidx.ui.unit.Dp expectedSize);
+    method public androidx.ui.test.CollectedSizes assertIsSquareWithSize(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,androidx.ui.unit.IntPx> expectedSquarePx);
+    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(androidx.ui.unit.Dp expectedWidth);
+    method public androidx.ui.test.CollectedSizes assertWidthEqualsTo(kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,androidx.ui.unit.IntPx> expectedWidthPx);
   }
 
   public interface ComposeBenchmarkScope<T> extends androidx.ui.test.ComposeExecutionControl {
@@ -99,12 +99,12 @@
     method @RequiresApi(android.os.Build.VERSION_CODES.O) public android.graphics.Bitmap captureScreenOnIdle();
     method public androidx.ui.test.ComposeTestCaseSetup forGivenContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
     method public androidx.ui.test.ComposeTestCaseSetup forGivenTestCase(androidx.ui.test.ComposeTestCase testCase);
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public android.util.DisplayMetrics getDisplayMetrics();
     method public <T> T! runOnIdleCompose(kotlin.jvm.functions.Function0<? extends T> action);
     method public <T> T! runOnUiThread(kotlin.jvm.functions.Function0<? extends T> action);
     method public void setContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
-    property public abstract androidx.ui.core.Density density;
+    property public abstract androidx.ui.unit.Density density;
     property public abstract android.util.DisplayMetrics displayMetrics;
   }
 
@@ -144,16 +144,16 @@
   }
 
   public final class GestureScopeKt {
-    method public static void sendClick(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition position);
+    method public static void sendClick(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition position);
     method public static void sendClick(androidx.ui.test.GestureScope);
-    method public static void sendLongClick(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition position);
+    method public static void sendLongClick(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition position);
     method public static void sendLongClick(androidx.ui.test.GestureScope);
-    method public static void sendSwipe(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition start, androidx.ui.core.PxPosition end, androidx.ui.core.Duration duration = 200.milliseconds);
+    method public static void sendSwipe(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition end, androidx.ui.unit.Duration duration = 200.milliseconds);
     method public static void sendSwipeDown(androidx.ui.test.GestureScope);
     method public static void sendSwipeLeft(androidx.ui.test.GestureScope);
     method public static void sendSwipeRight(androidx.ui.test.GestureScope);
     method public static void sendSwipeUp(androidx.ui.test.GestureScope);
-    method public static void sendSwipeWithVelocity(androidx.ui.test.GestureScope, androidx.ui.core.PxPosition start, androidx.ui.core.PxPosition end, @FloatRange(from=0.0) float endVelocity, androidx.ui.core.Duration duration = 200.milliseconds);
+    method public static void sendSwipeWithVelocity(androidx.ui.test.GestureScope, androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition end, @FloatRange(from=0.0) float endVelocity, androidx.ui.unit.Duration duration = 200.milliseconds);
   }
 
   public final class GoldenSemanticsKt {
@@ -180,7 +180,7 @@
   public final class SizesTestingKt {
     method public static androidx.ui.layout.DpConstraints getBigTestConstraints();
     method public static androidx.ui.test.CollectedSizes setContentAndCollectSizes(androidx.ui.test.ComposeTestRule, androidx.ui.layout.DpConstraints parentConstraints = BigTestConstraints, kotlin.jvm.functions.Function0<kotlin.Unit> children);
-    method public static androidx.ui.core.PxSize setContentAndGetPixelSize(androidx.ui.test.ComposeTestRule, androidx.ui.layout.DpConstraints parentConstraints = BigTestConstraints, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function0<kotlin.Unit>,kotlin.Unit> performSetContent = { setContent(it) }, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+    method public static androidx.ui.unit.PxSize setContentAndGetPixelSize(androidx.ui.test.ComposeTestRule, androidx.ui.layout.DpConstraints parentConstraints = BigTestConstraints, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function0<kotlin.Unit>,kotlin.Unit> performSetContent = { setContent(it) }, kotlin.jvm.functions.Function0<kotlin.Unit> children);
   }
 
 }
@@ -203,13 +203,13 @@
     method public androidx.ui.test.ComposeTestCaseSetup forGivenContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
     method public androidx.ui.test.ComposeTestCaseSetup forGivenTestCase(androidx.ui.test.ComposeTestCase testCase);
     method public androidx.test.rule.ActivityTestRule<T> getActivityTestRule();
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public android.util.DisplayMetrics getDisplayMetrics();
     method public <T> T! runOnIdleCompose(kotlin.jvm.functions.Function0<? extends T> action);
     method public <T> T! runOnUiThread(kotlin.jvm.functions.Function0<? extends T> action);
     method public void setContent(kotlin.jvm.functions.Function0<kotlin.Unit> composable);
     property public final androidx.test.rule.ActivityTestRule<T> activityTestRule;
-    property public androidx.ui.core.Density density;
+    property public androidx.ui.unit.Density density;
     property public android.util.DisplayMetrics displayMetrics;
   }
 
diff --git a/ui/ui-test/build.gradle b/ui/ui-test/build.gradle
index b4ccacaf..e03ee9d 100644
--- a/ui/ui-test/build.gradle
+++ b/ui/ui-test/build.gradle
@@ -44,6 +44,7 @@
     implementation project(":ui:ui-framework")
     implementation project(":ui:ui-layout")
     implementation project(":ui:ui-platform")
+    implementation project(":ui:ui-util")
 
     testImplementation(TRUTH)
 
diff --git a/ui/ui-test/src/androidTest/java/androidx/ui/test/AndroidInputDispatcherSendClickTest.kt b/ui/ui-test/src/androidTest/java/androidx/ui/test/AndroidInputDispatcherSendClickTest.kt
index 9e68874..8636601 100644
--- a/ui/ui-test/src/androidTest/java/androidx/ui/test/AndroidInputDispatcherSendClickTest.kt
+++ b/ui/ui-test/src/androidTest/java/androidx/ui/test/AndroidInputDispatcherSendClickTest.kt
@@ -18,8 +18,8 @@
 
 import android.view.MotionEvent
 import androidx.test.filters.SmallTest
-import androidx.ui.core.PxPosition
-import androidx.ui.core.px
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.px
 import androidx.ui.test.android.AndroidInputDispatcher
 import androidx.ui.test.util.MotionEventRecorder
 import androidx.ui.test.util.assertHasValidEventTimes
diff --git a/ui/ui-test/src/androidTest/java/androidx/ui/test/AndroidInputDispatcherSendSwipeFunctionTest.kt b/ui/ui-test/src/androidTest/java/androidx/ui/test/AndroidInputDispatcherSendSwipeFunctionTest.kt
index 00734db..50dd026 100644
--- a/ui/ui-test/src/androidTest/java/androidx/ui/test/AndroidInputDispatcherSendSwipeFunctionTest.kt
+++ b/ui/ui-test/src/androidTest/java/androidx/ui/test/AndroidInputDispatcherSendSwipeFunctionTest.kt
@@ -20,11 +20,11 @@
 import android.view.MotionEvent.ACTION_MOVE
 import android.view.MotionEvent.ACTION_UP
 import androidx.test.filters.SmallTest
-import androidx.ui.core.Duration
-import androidx.ui.core.PxPosition
-import androidx.ui.core.inMilliseconds
-import androidx.ui.core.milliseconds
-import androidx.ui.core.px
+import androidx.ui.unit.Duration
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.inMilliseconds
+import androidx.ui.unit.milliseconds
+import androidx.ui.unit.px
 import androidx.ui.test.android.AndroidInputDispatcher
 import androidx.ui.test.util.MotionEventRecorder
 import androidx.ui.test.util.assertHasValidEventTimes
diff --git a/ui/ui-test/src/androidTest/java/androidx/ui/test/AndroidInputDispatcherSendSwipeLineTest.kt b/ui/ui-test/src/androidTest/java/androidx/ui/test/AndroidInputDispatcherSendSwipeLineTest.kt
index b5a3391..bec952b 100644
--- a/ui/ui-test/src/androidTest/java/androidx/ui/test/AndroidInputDispatcherSendSwipeLineTest.kt
+++ b/ui/ui-test/src/androidTest/java/androidx/ui/test/AndroidInputDispatcherSendSwipeLineTest.kt
@@ -18,10 +18,10 @@
 
 import android.view.MotionEvent
 import androidx.test.filters.SmallTest
-import androidx.ui.core.Duration
-import androidx.ui.core.PxPosition
-import androidx.ui.core.inMilliseconds
-import androidx.ui.core.px
+import androidx.ui.unit.Duration
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.inMilliseconds
+import androidx.ui.unit.px
 import androidx.ui.test.android.AndroidInputDispatcher
 import androidx.ui.test.util.MotionEventRecorder
 import androidx.ui.test.util.assertHasValidEventTimes
diff --git a/ui/ui-test/src/androidTest/java/androidx/ui/test/BitmapCapturingTest.kt b/ui/ui-test/src/androidTest/java/androidx/ui/test/BitmapCapturingTest.kt
index 44ab5c4..887edad 100644
--- a/ui/ui-test/src/androidTest/java/androidx/ui/test/BitmapCapturingTest.kt
+++ b/ui/ui-test/src/androidTest/java/androidx/ui/test/BitmapCapturingTest.kt
@@ -20,11 +20,11 @@
 import androidx.test.filters.MediumTest
 import androidx.test.filters.SdkSuppress
 import androidx.ui.core.Alignment
-import androidx.ui.core.IntPxPosition
-import androidx.ui.core.IntPxSize
+import androidx.ui.unit.IntPxPosition
+import androidx.ui.unit.IntPxSize
 import androidx.ui.core.TestTag
-import androidx.ui.core.ipx
-import androidx.ui.core.withDensity
+import androidx.ui.unit.ipx
+import androidx.ui.unit.withDensity
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.foundation.shape.DrawShape
 import androidx.ui.foundation.shape.RectangleShape
diff --git a/ui/ui-test/src/androidTest/java/androidx/ui/test/IsDisplayedTests.kt b/ui/ui-test/src/androidTest/java/androidx/ui/test/IsDisplayedTests.kt
index 835962a..55c04c2 100644
--- a/ui/ui-test/src/androidTest/java/androidx/ui/test/IsDisplayedTests.kt
+++ b/ui/ui-test/src/androidTest/java/androidx/ui/test/IsDisplayedTests.kt
@@ -20,20 +20,9 @@
 import androidx.compose.Model
 import androidx.test.filters.MediumTest
 import androidx.ui.core.Draw
-import androidx.ui.core.IntPx
 import androidx.ui.core.Layout
 import androidx.ui.core.TestTag
-import androidx.ui.core.sp
-import androidx.ui.text.TextStyle
-import org.junit.Rule
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.junit.runners.JUnit4
 import androidx.ui.core.Text
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
-import androidx.ui.core.px
-import androidx.ui.core.toRect
 import androidx.ui.foundation.VerticalScroller
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
@@ -45,7 +34,18 @@
 import androidx.ui.layout.Row
 import androidx.ui.semantics.ScrollTo
 import androidx.ui.semantics.Semantics
+import androidx.ui.text.TextStyle
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
+import androidx.ui.unit.px
+import androidx.ui.unit.sp
+import androidx.ui.unit.toRect
 import org.junit.Assert
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
 
 @MediumTest
 @RunWith(JUnit4::class)
diff --git a/ui/ui-test/src/androidTest/java/androidx/ui/test/SendLongClickTest.kt b/ui/ui-test/src/androidTest/java/androidx/ui/test/SendLongClickTest.kt
index 9d4ebb9..0d6441b 100644
--- a/ui/ui-test/src/androidTest/java/androidx/ui/test/SendLongClickTest.kt
+++ b/ui/ui-test/src/androidTest/java/androidx/ui/test/SendLongClickTest.kt
@@ -20,13 +20,10 @@
 import androidx.test.filters.MediumTest
 import androidx.ui.core.Alignment
 import androidx.ui.core.PointerInputWrapper
-import androidx.ui.core.PxPosition
 import androidx.ui.core.TestTag
 import androidx.ui.core.WithDensity
 import androidx.ui.core.gesture.LongPressGestureDetector
 import androidx.ui.core.gesture.LongPressTimeout
-import androidx.ui.core.milliseconds
-import androidx.ui.core.px
 import androidx.ui.foundation.shape.DrawShape
 import androidx.ui.foundation.shape.RectangleShape
 import androidx.ui.graphics.Color
@@ -38,6 +35,9 @@
 import androidx.ui.test.util.assertOnlyLastEventIsUp
 import androidx.ui.test.util.assertTimestampsAreIncreasing
 import androidx.ui.test.util.recordedDuration
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.milliseconds
+import androidx.ui.unit.px
 import com.google.common.truth.Truth.assertThat
 import org.junit.Rule
 import org.junit.Test
diff --git a/ui/ui-test/src/androidTest/java/androidx/ui/test/SendSwipeTest.kt b/ui/ui-test/src/androidTest/java/androidx/ui/test/SendSwipeTest.kt
index 5a41388..4e125b9 100644
--- a/ui/ui-test/src/androidTest/java/androidx/ui/test/SendSwipeTest.kt
+++ b/ui/ui-test/src/androidTest/java/androidx/ui/test/SendSwipeTest.kt
@@ -21,7 +21,7 @@
 import androidx.ui.core.Alignment
 import androidx.ui.core.PointerInputWrapper
 import androidx.ui.core.TestTag
-import androidx.ui.core.dp
+import androidx.ui.unit.dp
 import androidx.ui.foundation.shape.DrawShape
 import androidx.ui.foundation.shape.RectangleShape
 import androidx.ui.graphics.Color
diff --git a/ui/ui-test/src/androidTest/java/androidx/ui/test/SendSwipeVelocityTest.kt b/ui/ui-test/src/androidTest/java/androidx/ui/test/SendSwipeVelocityTest.kt
index 6489ae8..a57fa7f 100644
--- a/ui/ui-test/src/androidTest/java/androidx/ui/test/SendSwipeVelocityTest.kt
+++ b/ui/ui-test/src/androidTest/java/androidx/ui/test/SendSwipeVelocityTest.kt
@@ -21,15 +21,10 @@
 import androidx.test.filters.MediumTest
 import androidx.ui.core.Alignment
 import androidx.ui.core.Draw
-import androidx.ui.core.Duration
 import androidx.ui.core.PointerInputWrapper
-import androidx.ui.core.PxPosition
 import androidx.ui.core.TestTag
 import androidx.ui.core.WithDensity
-import androidx.ui.core.getDistance
-import androidx.ui.core.inMilliseconds
-import androidx.ui.core.px
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
 import androidx.ui.layout.Align
@@ -43,6 +38,11 @@
 import androidx.ui.test.util.isAlmostEqualTo
 import androidx.ui.test.util.isMonotonousBetween
 import androidx.ui.test.util.recordedDuration
+import androidx.ui.unit.Duration
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.getDistance
+import androidx.ui.unit.inMilliseconds
+import androidx.ui.unit.px
 import com.google.common.truth.Truth.assertThat
 import org.junit.Before
 import org.junit.Rule
diff --git a/ui/ui-test/src/androidTest/java/androidx/ui/test/util/MotionEvents.kt b/ui/ui-test/src/androidTest/java/androidx/ui/test/util/MotionEvents.kt
index aebcfa0..830aeee 100644
--- a/ui/ui-test/src/androidTest/java/androidx/ui/test/util/MotionEvents.kt
+++ b/ui/ui-test/src/androidTest/java/androidx/ui/test/util/MotionEvents.kt
@@ -18,10 +18,10 @@
 
 import android.content.ContextWrapper
 import android.view.MotionEvent
-import androidx.ui.core.PxPosition
 import androidx.ui.core.SemanticsTreeNode
 import androidx.ui.core.SemanticsTreeProvider
 import androidx.ui.test.android.CollectedProviders
+import androidx.ui.unit.PxPosition
 import com.google.common.truth.Truth.assertThat
 import kotlin.math.abs
 
diff --git a/ui/ui-test/src/androidTest/java/androidx/ui/test/util/PointerInputs.kt b/ui/ui-test/src/androidTest/java/androidx/ui/test/util/PointerInputs.kt
index e682b5b..e913572 100644
--- a/ui/ui-test/src/androidTest/java/androidx/ui/test/util/PointerInputs.kt
+++ b/ui/ui-test/src/androidTest/java/androidx/ui/test/util/PointerInputs.kt
@@ -16,14 +16,14 @@
 
 package androidx.ui.test.util
 
-import androidx.ui.core.Duration
-import androidx.ui.core.IntPxSize
+import androidx.ui.unit.Duration
+import androidx.ui.unit.IntPxSize
 import androidx.ui.core.PointerEventPass
 import androidx.ui.core.PointerInputChange
 import androidx.ui.core.PointerInputData
-import androidx.ui.core.PxPosition
 import androidx.ui.core.gesture.util.VelocityTracker
 import androidx.ui.test.util.PointerInputRecorder.DataPoint
+import androidx.ui.unit.PxPosition
 import com.google.common.truth.Truth.assertThat
 
 class PointerInputRecorder {
diff --git a/ui/ui-test/src/androidTest/java/androidx/ui/test/util/Truth.kt b/ui/ui-test/src/androidTest/java/androidx/ui/test/util/Truth.kt
index 5e649af..bec8e12 100644
--- a/ui/ui-test/src/androidTest/java/androidx/ui/test/util/Truth.kt
+++ b/ui/ui-test/src/androidTest/java/androidx/ui/test/util/Truth.kt
@@ -16,7 +16,7 @@
 
 package androidx.ui.test.util
 
-import androidx.ui.core.PxPosition
+import androidx.ui.unit.PxPosition
 import com.google.common.truth.FloatSubject
 import com.google.common.truth.Truth.assertThat
 import com.google.common.truth.Truth.assertWithMessage
diff --git a/ui/ui-test/src/main/java/androidx/ui/test/Actions.kt b/ui/ui-test/src/main/java/androidx/ui/test/Actions.kt
index 2965b90..b241002 100644
--- a/ui/ui-test/src/main/java/androidx/ui/test/Actions.kt
+++ b/ui/ui-test/src/main/java/androidx/ui/test/Actions.kt
@@ -16,11 +16,11 @@
 
 package androidx.ui.test
 
-import androidx.ui.core.PxPosition
+import androidx.ui.unit.PxPosition
 import androidx.ui.core.SemanticsComponentNode
 import androidx.ui.core.findLastLayoutChild
 import androidx.ui.core.localToGlobal
-import androidx.ui.core.px
+import androidx.ui.unit.px
 import androidx.ui.semantics.SemanticsActions
 
 /**
diff --git a/ui/ui-test/src/main/java/androidx/ui/test/Assertions.kt b/ui/ui-test/src/main/java/androidx/ui/test/Assertions.kt
index 0fd2777..b90253a 100644
--- a/ui/ui-test/src/main/java/androidx/ui/test/Assertions.kt
+++ b/ui/ui-test/src/main/java/androidx/ui/test/Assertions.kt
@@ -17,19 +17,19 @@
 package androidx.ui.test
 
 import androidx.ui.core.LayoutNode
-import androidx.ui.core.PxPosition
 import androidx.ui.core.RepaintBoundaryNode
 import androidx.ui.core.SemanticsTreeNode
 import androidx.ui.core.localToGlobal
-import androidx.ui.core.px
 import androidx.ui.core.semantics.SemanticsConfiguration
 import androidx.ui.core.semantics.getOrNull
-import androidx.ui.core.toPx
-import androidx.ui.engine.geometry.Rect
 import androidx.ui.foundation.selection.ToggleableState
 import androidx.ui.foundation.semantics.FoundationSemanticsProperties
+import androidx.ui.geometry.Rect
 import androidx.ui.semantics.SemanticsProperties
 import androidx.ui.semantics.accessibilityValue
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.px
+import androidx.ui.unit.toPx
 
 /**
  * Asserts that current component is visible.
diff --git a/ui/ui-test/src/main/java/androidx/ui/test/BitmapHelpers.kt b/ui/ui-test/src/main/java/androidx/ui/test/BitmapHelpers.kt
index 08a300c..a9f5a06 100644
--- a/ui/ui-test/src/main/java/androidx/ui/test/BitmapHelpers.kt
+++ b/ui/ui-test/src/main/java/androidx/ui/test/BitmapHelpers.kt
@@ -19,17 +19,17 @@
 import android.graphics.Bitmap
 import android.os.Build
 import androidx.annotation.RequiresApi
-import androidx.ui.core.Density
-import androidx.ui.core.IntPxPosition
-import androidx.ui.core.IntPxSize
-import androidx.ui.core.PxSize
-import androidx.ui.core.ipx
-import androidx.ui.core.px
-import androidx.ui.engine.geometry.Offset
-import androidx.ui.engine.geometry.Shape
-import androidx.ui.engine.geometry.addOutline
+import androidx.ui.geometry.Offset
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Path
+import androidx.ui.graphics.Shape
+import androidx.ui.graphics.addOutline
+import androidx.ui.unit.Density
+import androidx.ui.unit.IntPxPosition
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.ipx
+import androidx.ui.unit.px
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertTrue
 
diff --git a/ui/ui-test/src/main/java/androidx/ui/test/ComposeTestRule.kt b/ui/ui-test/src/main/java/androidx/ui/test/ComposeTestRule.kt
index 8436ffb..535bd06 100644
--- a/ui/ui-test/src/main/java/androidx/ui/test/ComposeTestRule.kt
+++ b/ui/ui-test/src/main/java/androidx/ui/test/ComposeTestRule.kt
@@ -22,7 +22,7 @@
 import android.util.DisplayMetrics
 import androidx.annotation.RequiresApi
 import androidx.compose.Composable
-import androidx.ui.core.Density
+import androidx.ui.unit.Density
 import androidx.ui.test.android.AndroidComposeTestRule
 import org.junit.rules.TestRule
 
diff --git a/ui/ui-test/src/main/java/androidx/ui/test/GestureScope.kt b/ui/ui-test/src/main/java/androidx/ui/test/GestureScope.kt
index 6886797..d558047 100644
--- a/ui/ui-test/src/main/java/androidx/ui/test/GestureScope.kt
+++ b/ui/ui-test/src/main/java/androidx/ui/test/GestureScope.kt
@@ -17,16 +17,16 @@
 package androidx.ui.test
 
 import androidx.annotation.FloatRange
-import androidx.ui.core.Duration
-import androidx.ui.core.Px
-import androidx.ui.core.PxPosition
 import androidx.ui.core.SemanticsTreeNode
 import androidx.ui.core.gesture.LongPressTimeout
-import androidx.ui.core.inMilliseconds
-import androidx.ui.core.milliseconds
-import androidx.ui.core.px
-import androidx.ui.engine.geometry.Rect
-import androidx.ui.lerp
+import androidx.ui.geometry.Rect
+import androidx.ui.unit.Duration
+import androidx.ui.unit.Px
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.inMilliseconds
+import androidx.ui.unit.milliseconds
+import androidx.ui.unit.px
+import androidx.ui.util.lerp
 import kotlin.math.atan2
 import kotlin.math.cos
 import kotlin.math.sign
diff --git a/ui/ui-test/src/main/java/androidx/ui/test/InputDispatcher.kt b/ui/ui-test/src/main/java/androidx/ui/test/InputDispatcher.kt
index 7fcbe32..555880d 100644
--- a/ui/ui-test/src/main/java/androidx/ui/test/InputDispatcher.kt
+++ b/ui/ui-test/src/main/java/androidx/ui/test/InputDispatcher.kt
@@ -16,10 +16,10 @@
 
 package androidx.ui.test
 
-import androidx.ui.core.Duration
-import androidx.ui.core.PxPosition
-import androidx.ui.core.inMilliseconds
-import androidx.ui.core.lerp
+import androidx.ui.unit.Duration
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.inMilliseconds
+import androidx.ui.unit.lerp
 
 internal interface InputDispatcher {
     /**
diff --git a/ui/ui-test/src/main/java/androidx/ui/test/SemanticsTreeInteraction.kt b/ui/ui-test/src/main/java/androidx/ui/test/SemanticsTreeInteraction.kt
index 6a7f092..5e5f95e 100644
--- a/ui/ui-test/src/main/java/androidx/ui/test/SemanticsTreeInteraction.kt
+++ b/ui/ui-test/src/main/java/androidx/ui/test/SemanticsTreeInteraction.kt
@@ -22,7 +22,7 @@
 import androidx.ui.core.SemanticsTreeNode
 import androidx.ui.core.SemanticsTreeProvider
 import androidx.ui.core.semantics.SemanticsConfiguration
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.test.android.AndroidSemanticsTreeInteraction
 
 /**
diff --git a/ui/ui-test/src/main/java/androidx/ui/test/SizesTesting.kt b/ui/ui-test/src/main/java/androidx/ui/test/SizesTesting.kt
index 524b5c6..75bfd4b 100644
--- a/ui/ui-test/src/main/java/androidx/ui/test/SizesTesting.kt
+++ b/ui/ui-test/src/main/java/androidx/ui/test/SizesTesting.kt
@@ -17,19 +17,19 @@
 package androidx.ui.test
 
 import androidx.compose.Composable
-import androidx.ui.core.Density
-import androidx.ui.core.DensityScope
-import androidx.ui.core.Dp
-import androidx.ui.core.IntPx
+import androidx.ui.unit.Density
+import androidx.ui.unit.DensityScope
+import androidx.ui.unit.Dp
+import androidx.ui.unit.IntPx
 import androidx.ui.core.OnChildPositioned
-import androidx.ui.core.PxSize
-import androidx.ui.core.dp
-import androidx.ui.core.round
-import androidx.ui.core.withDensity
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.withDensity
 import androidx.ui.layout.DpConstraints
 import androidx.ui.layout.LayoutSize
 import androidx.ui.layout.Stack
 import androidx.ui.layout.Wrap
+import androidx.ui.unit.round
 import kotlin.math.abs
 
 /**
diff --git a/ui/ui-test/src/main/java/androidx/ui/test/android/AndroidComposeTestRule.kt b/ui/ui-test/src/main/java/androidx/ui/test/android/AndroidComposeTestRule.kt
index 7c4044f..bbd5db0 100644
--- a/ui/ui-test/src/main/java/androidx/ui/test/android/AndroidComposeTestRule.kt
+++ b/ui/ui-test/src/main/java/androidx/ui/test/android/AndroidComposeTestRule.kt
@@ -31,12 +31,12 @@
 import androidx.test.rule.ActivityTestRule
 import androidx.ui.animation.transitionsEnabled
 import androidx.ui.core.AndroidComposeView
-import androidx.ui.core.Density
 import androidx.ui.core.setContent
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.test.ComposeTestCase
 import androidx.ui.test.ComposeTestCaseSetup
 import androidx.ui.test.ComposeTestRule
+import androidx.ui.unit.Density
 import org.junit.runner.Description
 import org.junit.runners.model.Statement
 import java.util.concurrent.CountDownLatch
diff --git a/ui/ui-test/src/main/java/androidx/ui/test/android/AndroidInputDispatcher.kt b/ui/ui-test/src/main/java/androidx/ui/test/android/AndroidInputDispatcher.kt
index 689e931..aaef466 100644
--- a/ui/ui-test/src/main/java/androidx/ui/test/android/AndroidInputDispatcher.kt
+++ b/ui/ui-test/src/main/java/androidx/ui/test/android/AndroidInputDispatcher.kt
@@ -23,12 +23,12 @@
 import android.view.MotionEvent.ACTION_DOWN
 import android.view.MotionEvent.ACTION_MOVE
 import android.view.MotionEvent.ACTION_UP
-import androidx.ui.core.Duration
-import androidx.ui.core.PxPosition
-import androidx.ui.core.inMilliseconds
-import androidx.ui.core.milliseconds
-import androidx.ui.lerp
+import androidx.ui.unit.Duration
+import androidx.ui.unit.inMilliseconds
+import androidx.ui.unit.milliseconds
+import androidx.ui.util.lerp
 import androidx.ui.test.InputDispatcher
+import androidx.ui.unit.PxPosition
 import org.junit.runner.Description
 import org.junit.runners.model.Statement
 import java.util.concurrent.CountDownLatch
diff --git a/ui/ui-test/src/main/java/androidx/ui/test/android/AndroidSemanticsTreeInteraction.kt b/ui/ui-test/src/main/java/androidx/ui/test/android/AndroidSemanticsTreeInteraction.kt
index 5e1deb1..056c1292 100644
--- a/ui/ui-test/src/main/java/androidx/ui/test/android/AndroidSemanticsTreeInteraction.kt
+++ b/ui/ui-test/src/main/java/androidx/ui/test/android/AndroidSemanticsTreeInteraction.kt
@@ -24,15 +24,15 @@
 import android.os.Handler
 import android.os.Looper
 import androidx.annotation.RequiresApi
-import androidx.ui.core.PxPosition
 import androidx.ui.core.SemanticsTreeNode
 import androidx.ui.core.SemanticsTreeProvider
-import androidx.ui.core.px
 import androidx.ui.core.semantics.SemanticsConfiguration
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.test.InputDispatcher
 import androidx.ui.test.SemanticsNodeInteraction
 import androidx.ui.test.SemanticsTreeInteraction
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.px
 
 /**
  * Android specific implementation of [SemanticsTreeInteraction].
diff --git a/ui/ui-test/src/main/java/androidx/ui/test/android/WindowCapture.kt b/ui/ui-test/src/main/java/androidx/ui/test/android/WindowCapture.kt
index e8573f0..7f5e5b9 100644
--- a/ui/ui-test/src/main/java/androidx/ui/test/android/WindowCapture.kt
+++ b/ui/ui-test/src/main/java/androidx/ui/test/android/WindowCapture.kt
@@ -22,7 +22,7 @@
 import android.view.PixelCopy
 import android.view.Window
 import androidx.annotation.RequiresApi
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import java.util.concurrent.CountDownLatch
 import java.util.concurrent.TimeUnit
 import kotlin.math.roundToInt
diff --git a/ui/ui-test/src/test/java/androidx/ui/test/AssertsTests.kt b/ui/ui-test/src/test/java/androidx/ui/test/AssertsTests.kt
index ebe9ff9..bbf55b8 100644
--- a/ui/ui-test/src/test/java/androidx/ui/test/AssertsTests.kt
+++ b/ui/ui-test/src/test/java/androidx/ui/test/AssertsTests.kt
@@ -16,10 +16,10 @@
 
 package androidx.ui.test
 
-import androidx.ui.core.Density
-import androidx.ui.core.PxSize
-import androidx.ui.core.dp
-import androidx.ui.core.ipx
+import androidx.ui.unit.Density
+import androidx.ui.unit.PxSize
+import androidx.ui.unit.dp
+import androidx.ui.unit.ipx
 import androidx.ui.core.semantics.SemanticsConfiguration
 import androidx.ui.foundation.selection.ToggleableState
 import androidx.ui.foundation.semantics.inMutuallyExclusiveGroup
diff --git a/ui/ui-test/src/test/java/androidx/ui/test/SemanticsTreeNodeStub.kt b/ui/ui-test/src/test/java/androidx/ui/test/SemanticsTreeNodeStub.kt
index 5256c88..f950c4a 100644
--- a/ui/ui-test/src/test/java/androidx/ui/test/SemanticsTreeNodeStub.kt
+++ b/ui/ui-test/src/test/java/androidx/ui/test/SemanticsTreeNodeStub.kt
@@ -18,7 +18,7 @@
 import androidx.ui.core.ComponentNode
 import androidx.ui.core.SemanticsTreeNode
 import androidx.ui.core.semantics.SemanticsConfiguration
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 
 class SemanticsTreeNodeStub(override val data: SemanticsConfiguration) : SemanticsTreeNode {
     override val parent: SemanticsTreeNode?
diff --git a/ui/ui-test/src/test/java/androidx/ui/test/helpers/FakeSemanticsTreeInteraction.kt b/ui/ui-test/src/test/java/androidx/ui/test/helpers/FakeSemanticsTreeInteraction.kt
index 455306d..694154d 100644
--- a/ui/ui-test/src/test/java/androidx/ui/test/helpers/FakeSemanticsTreeInteraction.kt
+++ b/ui/ui-test/src/test/java/androidx/ui/test/helpers/FakeSemanticsTreeInteraction.kt
@@ -20,7 +20,7 @@
 import androidx.ui.core.SemanticsTreeNode
 import androidx.ui.core.SemanticsTreeProvider
 import androidx.ui.core.semantics.SemanticsConfiguration
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.test.InputDispatcher
 import androidx.ui.test.SemanticsNodeInteraction
 import androidx.ui.test.SemanticsTreeInteraction
diff --git a/ui/ui-text/api/0.1.0-dev04.txt b/ui/ui-text/api/0.1.0-dev04.txt
index 78b98e6..9463223 100644
--- a/ui/ui-text/api/0.1.0-dev04.txt
+++ b/ui/ui-text/api/0.1.0-dev04.txt
@@ -119,7 +119,7 @@
   }
 
   public interface PlatformTextInputService {
-    method public void notifyFocusedRect(androidx.ui.engine.geometry.Rect rect);
+    method public void notifyFocusedRect(androidx.ui.geometry.Rect rect);
     method public void onStateUpdated(androidx.ui.input.InputState model);
     method public void showSoftwareKeyboard();
     method public void startInput(androidx.ui.input.InputState initModel, androidx.ui.input.KeyboardType keyboardType, androidx.ui.input.ImeAction imeAction, kotlin.jvm.functions.Function1<? super java.util.List<? extends androidx.ui.input.EditOperation>,kotlin.Unit> onEditCommand, kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit> onImeActionPerformed);
@@ -158,7 +158,7 @@
 
   public class TextInputService {
     ctor public TextInputService(androidx.ui.input.PlatformTextInputService platformTextInputService);
-    method public void notifyFocusedRect(int token, androidx.ui.engine.geometry.Rect rect);
+    method public void notifyFocusedRect(int token, androidx.ui.geometry.Rect rect);
     method public void onStateUpdated(int token, androidx.ui.input.InputState model);
     method public void showSoftwareKeyboard(int token);
     method public int startInput(androidx.ui.input.InputState initModel, androidx.ui.input.KeyboardType keyboardType, androidx.ui.input.ImeAction imeAction, kotlin.jvm.functions.Function1<? super java.util.List<? extends androidx.ui.input.EditOperation>,kotlin.Unit> onEditCommand, kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit> onImeActionPerformed);
@@ -284,10 +284,10 @@
 
   public final class MultiParagraph {
     ctor public MultiParagraph(androidx.ui.text.MultiParagraphIntrinsics intrinsics, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints);
-    ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
     method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
-    method public androidx.ui.engine.geometry.Rect getBoundingBox(int offset);
-    method public androidx.ui.engine.geometry.Rect getCursorRect(int offset);
+    method public androidx.ui.geometry.Rect getBoundingBox(int offset);
+    method public androidx.ui.geometry.Rect getCursorRect(int offset);
     method public boolean getDidExceedMaxLines();
     method public float getFirstBaseline();
     method public float getHeight();
@@ -304,7 +304,7 @@
     method public float getMaxIntrinsicWidth();
     method public int getMaxLines();
     method public float getMinIntrinsicWidth();
-    method public int getOffsetForPosition(androidx.ui.core.PxPosition position);
+    method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
     method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
     method public androidx.ui.graphics.Path getPathForRange(int start, int end);
     method public float getWidth();
@@ -321,7 +321,7 @@
   }
 
   public final class MultiParagraphIntrinsics implements androidx.ui.text.ParagraphIntrinsics {
-    ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
     method public androidx.ui.text.AnnotatedString getAnnotatedString();
     method public float getMaxIntrinsicWidth();
     method public float getMinIntrinsicWidth();
@@ -334,8 +334,8 @@
 
   public interface Paragraph {
     method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
-    method public androidx.ui.engine.geometry.Rect getBoundingBox(int offset);
-    method public androidx.ui.engine.geometry.Rect getCursorRect(int offset);
+    method public androidx.ui.geometry.Rect getBoundingBox(int offset);
+    method public androidx.ui.geometry.Rect getCursorRect(int offset);
     method public boolean getDidExceedMaxLines();
     method public float getFirstBaseline();
     method public float getHeight();
@@ -350,7 +350,7 @@
     method public float getLineWidth(int lineIndex);
     method public float getMaxIntrinsicWidth();
     method public float getMinIntrinsicWidth();
-    method public int getOffsetForPosition(androidx.ui.core.PxPosition position);
+    method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
     method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
     method public androidx.ui.graphics.Path getPathForRange(int start, int end);
     method public float getWidth();
@@ -381,23 +381,23 @@
   }
 
   public final class ParagraphIntrinsicsKt {
-    method public static androidx.ui.text.ParagraphIntrinsics ParagraphIntrinsics(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    method public static androidx.ui.text.ParagraphIntrinsics ParagraphIntrinsics(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
   }
 
   public final class ParagraphKt {
-    method public static androidx.ui.text.Paragraph Paragraph(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    method public static androidx.ui.text.Paragraph Paragraph(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
     method public static androidx.ui.text.Paragraph Paragraph(androidx.ui.text.ParagraphIntrinsics paragraphIntrinsics, int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints);
   }
 
   public final class ParagraphStyle {
-    ctor public ParagraphStyle(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    ctor public ParagraphStyle(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     ctor public ParagraphStyle();
     method public androidx.ui.text.style.TextAlign? component1();
     method public androidx.ui.text.style.TextDirectionAlgorithm? component2();
-    method public androidx.ui.core.TextUnit component3();
+    method public androidx.ui.unit.TextUnit component3();
     method public androidx.ui.text.style.TextIndent? component4();
-    method public androidx.ui.text.ParagraphStyle copy(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
-    method public androidx.ui.core.TextUnit getLineHeight();
+    method public androidx.ui.text.ParagraphStyle copy(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method public androidx.ui.unit.TextUnit getLineHeight();
     method public androidx.ui.text.style.TextAlign? getTextAlign();
     method public androidx.ui.text.style.TextDirectionAlgorithm? getTextDirectionAlgorithm();
     method public androidx.ui.text.style.TextIndent? getTextIndent();
@@ -409,7 +409,7 @@
   }
 
   public final class SpanStyle {
-    ctor public SpanStyle(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
+    ctor public SpanStyle(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
     ctor public SpanStyle();
     method public androidx.ui.graphics.Color? component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
@@ -417,25 +417,25 @@
     method public androidx.ui.graphics.Color? component12();
     method public androidx.ui.text.style.TextDecoration? component13();
     method public androidx.ui.graphics.Shadow? component14();
-    method public androidx.ui.core.TextUnit component2();
+    method public androidx.ui.unit.TextUnit component2();
     method public androidx.ui.text.font.FontWeight? component3();
     method public androidx.ui.text.font.FontStyle? component4();
     method public androidx.ui.text.font.FontSynthesis? component5();
     method public androidx.ui.text.font.FontFamily? component6();
     method public String? component7();
-    method public androidx.ui.core.TextUnit component8();
+    method public androidx.ui.unit.TextUnit component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.SpanStyle copy(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
+    method public androidx.ui.text.SpanStyle copy(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
     method public androidx.ui.graphics.Color? getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public androidx.ui.graphics.Color? getColor();
     method public androidx.ui.text.font.FontFamily? getFontFamily();
     method public String? getFontFeatureSettings();
-    method public androidx.ui.core.TextUnit getFontSize();
+    method public androidx.ui.unit.TextUnit getFontSize();
     method public androidx.ui.text.font.FontStyle? getFontStyle();
     method public androidx.ui.text.font.FontSynthesis? getFontSynthesis();
     method public androidx.ui.text.font.FontWeight? getFontWeight();
-    method public androidx.ui.core.TextUnit getLetterSpacing();
+    method public androidx.ui.unit.TextUnit getLetterSpacing();
     method public androidx.ui.text.LocaleList? getLocaleList();
     method public androidx.ui.graphics.Shadow? getShadow();
     method public androidx.ui.text.style.TextDecoration? getTextDecoration();
@@ -465,19 +465,19 @@
   }
 
   public final class TextLayoutInput {
-    ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.core.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+    ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
     method public androidx.ui.text.AnnotatedString component1();
     method public androidx.ui.text.TextStyle component2();
     method public int component3();
     method public boolean component4();
     method public androidx.ui.text.style.TextOverflow component5();
-    method public androidx.ui.core.Density component6();
+    method public androidx.ui.unit.Density component6();
     method public androidx.ui.core.LayoutDirection component7();
     method public androidx.ui.text.font.Font.ResourceLoader component8();
     method public androidx.ui.core.Constraints component9();
-    method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.core.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
     method public androidx.ui.core.Constraints getConstraints();
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public androidx.ui.core.LayoutDirection getLayoutDirection();
     method public int getMaxLines();
     method public androidx.ui.text.style.TextOverflow getOverflow();
@@ -489,28 +489,28 @@
 
   public final class TextLayoutResult {
     method public androidx.ui.text.TextLayoutInput component1();
-    method public androidx.ui.core.IntPxSize component3();
-    method public androidx.ui.text.TextLayoutResult copy(androidx.ui.text.TextLayoutInput layoutInput, androidx.ui.text.MultiParagraph multiParagraph, androidx.ui.core.IntPxSize size);
+    method public androidx.ui.unit.IntPxSize component3();
+    method public androidx.ui.text.TextLayoutResult copy(androidx.ui.text.TextLayoutInput layoutInput, androidx.ui.text.MultiParagraph multiParagraph, androidx.ui.unit.IntPxSize size);
     method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
-    method public androidx.ui.engine.geometry.Rect getBoundingBox(int offset);
+    method public androidx.ui.geometry.Rect getBoundingBox(int offset);
     method public boolean getDidOverflowHeight();
     method public boolean getDidOverflowWidth();
-    method public androidx.ui.core.IntPx getFirstBaseline();
+    method public androidx.ui.unit.IntPx getFirstBaseline();
     method public boolean getHasVisualOverflow();
-    method public androidx.ui.core.Px getHorizontalPosition(int offset, boolean usePrimaryDirection);
-    method public androidx.ui.core.IntPx getLastBaseline();
+    method public androidx.ui.unit.Px getHorizontalPosition(int offset, boolean usePrimaryDirection);
+    method public androidx.ui.unit.IntPx getLastBaseline();
     method public androidx.ui.text.TextLayoutInput getLayoutInput();
-    method public androidx.ui.core.Px getLineBottom(int lineIndex);
+    method public androidx.ui.unit.Px getLineBottom(int lineIndex);
     method public int getLineForOffset(int offset);
-    method public int getOffsetForPosition(androidx.ui.core.PxPosition position);
+    method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
     method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
-    method public androidx.ui.core.IntPxSize getSize();
+    method public androidx.ui.unit.IntPxSize getSize();
     method public androidx.ui.text.TextRange getWordBoundary(int offset);
     property public final boolean didOverflowHeight;
     property public final boolean didOverflowWidth;
-    property public final androidx.ui.core.IntPx firstBaseline;
+    property public final androidx.ui.unit.IntPx firstBaseline;
     property public final boolean hasVisualOverflow;
-    property public final androidx.ui.core.IntPx lastBaseline;
+    property public final androidx.ui.unit.IntPx lastBaseline;
   }
 
   public final class TextLayoutResultKt {
@@ -553,7 +553,7 @@
   }
 
   public final class TextStyle {
-    ctor public TextStyle(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    ctor public TextStyle(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     ctor public TextStyle();
     method public androidx.ui.graphics.Color? component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
@@ -563,28 +563,28 @@
     method public androidx.ui.graphics.Shadow? component14();
     method public androidx.ui.text.style.TextAlign? component15();
     method public androidx.ui.text.style.TextDirectionAlgorithm? component16();
-    method public androidx.ui.core.TextUnit component17();
+    method public androidx.ui.unit.TextUnit component17();
     method public androidx.ui.text.style.TextIndent? component18();
-    method public androidx.ui.core.TextUnit component2();
+    method public androidx.ui.unit.TextUnit component2();
     method public androidx.ui.text.font.FontWeight? component3();
     method public androidx.ui.text.font.FontStyle? component4();
     method public androidx.ui.text.font.FontSynthesis? component5();
     method public androidx.ui.text.font.FontFamily? component6();
     method public String? component7();
-    method public androidx.ui.core.TextUnit component8();
+    method public androidx.ui.unit.TextUnit component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.TextStyle copy(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method public androidx.ui.text.TextStyle copy(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     method public androidx.ui.graphics.Color? getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public androidx.ui.graphics.Color? getColor();
     method public androidx.ui.text.font.FontFamily? getFontFamily();
     method public String? getFontFeatureSettings();
-    method public androidx.ui.core.TextUnit getFontSize();
+    method public androidx.ui.unit.TextUnit getFontSize();
     method public androidx.ui.text.font.FontStyle? getFontStyle();
     method public androidx.ui.text.font.FontSynthesis? getFontSynthesis();
     method public androidx.ui.text.font.FontWeight? getFontWeight();
-    method public androidx.ui.core.TextUnit getLetterSpacing();
-    method public androidx.ui.core.TextUnit getLineHeight();
+    method public androidx.ui.unit.TextUnit getLetterSpacing();
+    method public androidx.ui.unit.TextUnit getLineHeight();
     method public androidx.ui.text.LocaleList? getLocaleList();
     method public androidx.ui.graphics.Shadow? getShadow();
     method public androidx.ui.text.style.TextAlign? getTextAlign();
@@ -802,13 +802,13 @@
   }
 
   public final class TextIndent {
-    ctor public TextIndent(androidx.ui.core.TextUnit firstLine, androidx.ui.core.TextUnit restLine);
+    ctor public TextIndent(androidx.ui.unit.TextUnit firstLine, androidx.ui.unit.TextUnit restLine);
     ctor public TextIndent();
-    method public androidx.ui.core.TextUnit component1();
-    method public androidx.ui.core.TextUnit component2();
-    method public androidx.ui.text.style.TextIndent copy(androidx.ui.core.TextUnit firstLine, androidx.ui.core.TextUnit restLine);
-    method public androidx.ui.core.TextUnit getFirstLine();
-    method public androidx.ui.core.TextUnit getRestLine();
+    method public androidx.ui.unit.TextUnit component1();
+    method public androidx.ui.unit.TextUnit component2();
+    method public androidx.ui.text.style.TextIndent copy(androidx.ui.unit.TextUnit firstLine, androidx.ui.unit.TextUnit restLine);
+    method public androidx.ui.unit.TextUnit getFirstLine();
+    method public androidx.ui.unit.TextUnit getRestLine();
   }
 
   public final class TextIndentKt {
diff --git a/ui/ui-text/api/current.txt b/ui/ui-text/api/current.txt
index 78b98e6..9463223 100644
--- a/ui/ui-text/api/current.txt
+++ b/ui/ui-text/api/current.txt
@@ -119,7 +119,7 @@
   }
 
   public interface PlatformTextInputService {
-    method public void notifyFocusedRect(androidx.ui.engine.geometry.Rect rect);
+    method public void notifyFocusedRect(androidx.ui.geometry.Rect rect);
     method public void onStateUpdated(androidx.ui.input.InputState model);
     method public void showSoftwareKeyboard();
     method public void startInput(androidx.ui.input.InputState initModel, androidx.ui.input.KeyboardType keyboardType, androidx.ui.input.ImeAction imeAction, kotlin.jvm.functions.Function1<? super java.util.List<? extends androidx.ui.input.EditOperation>,kotlin.Unit> onEditCommand, kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit> onImeActionPerformed);
@@ -158,7 +158,7 @@
 
   public class TextInputService {
     ctor public TextInputService(androidx.ui.input.PlatformTextInputService platformTextInputService);
-    method public void notifyFocusedRect(int token, androidx.ui.engine.geometry.Rect rect);
+    method public void notifyFocusedRect(int token, androidx.ui.geometry.Rect rect);
     method public void onStateUpdated(int token, androidx.ui.input.InputState model);
     method public void showSoftwareKeyboard(int token);
     method public int startInput(androidx.ui.input.InputState initModel, androidx.ui.input.KeyboardType keyboardType, androidx.ui.input.ImeAction imeAction, kotlin.jvm.functions.Function1<? super java.util.List<? extends androidx.ui.input.EditOperation>,kotlin.Unit> onEditCommand, kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit> onImeActionPerformed);
@@ -284,10 +284,10 @@
 
   public final class MultiParagraph {
     ctor public MultiParagraph(androidx.ui.text.MultiParagraphIntrinsics intrinsics, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints);
-    ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
     method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
-    method public androidx.ui.engine.geometry.Rect getBoundingBox(int offset);
-    method public androidx.ui.engine.geometry.Rect getCursorRect(int offset);
+    method public androidx.ui.geometry.Rect getBoundingBox(int offset);
+    method public androidx.ui.geometry.Rect getCursorRect(int offset);
     method public boolean getDidExceedMaxLines();
     method public float getFirstBaseline();
     method public float getHeight();
@@ -304,7 +304,7 @@
     method public float getMaxIntrinsicWidth();
     method public int getMaxLines();
     method public float getMinIntrinsicWidth();
-    method public int getOffsetForPosition(androidx.ui.core.PxPosition position);
+    method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
     method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
     method public androidx.ui.graphics.Path getPathForRange(int start, int end);
     method public float getWidth();
@@ -321,7 +321,7 @@
   }
 
   public final class MultiParagraphIntrinsics implements androidx.ui.text.ParagraphIntrinsics {
-    ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
     method public androidx.ui.text.AnnotatedString getAnnotatedString();
     method public float getMaxIntrinsicWidth();
     method public float getMinIntrinsicWidth();
@@ -334,8 +334,8 @@
 
   public interface Paragraph {
     method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
-    method public androidx.ui.engine.geometry.Rect getBoundingBox(int offset);
-    method public androidx.ui.engine.geometry.Rect getCursorRect(int offset);
+    method public androidx.ui.geometry.Rect getBoundingBox(int offset);
+    method public androidx.ui.geometry.Rect getCursorRect(int offset);
     method public boolean getDidExceedMaxLines();
     method public float getFirstBaseline();
     method public float getHeight();
@@ -350,7 +350,7 @@
     method public float getLineWidth(int lineIndex);
     method public float getMaxIntrinsicWidth();
     method public float getMinIntrinsicWidth();
-    method public int getOffsetForPosition(androidx.ui.core.PxPosition position);
+    method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
     method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
     method public androidx.ui.graphics.Path getPathForRange(int start, int end);
     method public float getWidth();
@@ -381,23 +381,23 @@
   }
 
   public final class ParagraphIntrinsicsKt {
-    method public static androidx.ui.text.ParagraphIntrinsics ParagraphIntrinsics(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    method public static androidx.ui.text.ParagraphIntrinsics ParagraphIntrinsics(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
   }
 
   public final class ParagraphKt {
-    method public static androidx.ui.text.Paragraph Paragraph(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    method public static androidx.ui.text.Paragraph Paragraph(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
     method public static androidx.ui.text.Paragraph Paragraph(androidx.ui.text.ParagraphIntrinsics paragraphIntrinsics, int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints);
   }
 
   public final class ParagraphStyle {
-    ctor public ParagraphStyle(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    ctor public ParagraphStyle(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     ctor public ParagraphStyle();
     method public androidx.ui.text.style.TextAlign? component1();
     method public androidx.ui.text.style.TextDirectionAlgorithm? component2();
-    method public androidx.ui.core.TextUnit component3();
+    method public androidx.ui.unit.TextUnit component3();
     method public androidx.ui.text.style.TextIndent? component4();
-    method public androidx.ui.text.ParagraphStyle copy(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
-    method public androidx.ui.core.TextUnit getLineHeight();
+    method public androidx.ui.text.ParagraphStyle copy(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method public androidx.ui.unit.TextUnit getLineHeight();
     method public androidx.ui.text.style.TextAlign? getTextAlign();
     method public androidx.ui.text.style.TextDirectionAlgorithm? getTextDirectionAlgorithm();
     method public androidx.ui.text.style.TextIndent? getTextIndent();
@@ -409,7 +409,7 @@
   }
 
   public final class SpanStyle {
-    ctor public SpanStyle(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
+    ctor public SpanStyle(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
     ctor public SpanStyle();
     method public androidx.ui.graphics.Color? component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
@@ -417,25 +417,25 @@
     method public androidx.ui.graphics.Color? component12();
     method public androidx.ui.text.style.TextDecoration? component13();
     method public androidx.ui.graphics.Shadow? component14();
-    method public androidx.ui.core.TextUnit component2();
+    method public androidx.ui.unit.TextUnit component2();
     method public androidx.ui.text.font.FontWeight? component3();
     method public androidx.ui.text.font.FontStyle? component4();
     method public androidx.ui.text.font.FontSynthesis? component5();
     method public androidx.ui.text.font.FontFamily? component6();
     method public String? component7();
-    method public androidx.ui.core.TextUnit component8();
+    method public androidx.ui.unit.TextUnit component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.SpanStyle copy(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
+    method public androidx.ui.text.SpanStyle copy(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
     method public androidx.ui.graphics.Color? getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public androidx.ui.graphics.Color? getColor();
     method public androidx.ui.text.font.FontFamily? getFontFamily();
     method public String? getFontFeatureSettings();
-    method public androidx.ui.core.TextUnit getFontSize();
+    method public androidx.ui.unit.TextUnit getFontSize();
     method public androidx.ui.text.font.FontStyle? getFontStyle();
     method public androidx.ui.text.font.FontSynthesis? getFontSynthesis();
     method public androidx.ui.text.font.FontWeight? getFontWeight();
-    method public androidx.ui.core.TextUnit getLetterSpacing();
+    method public androidx.ui.unit.TextUnit getLetterSpacing();
     method public androidx.ui.text.LocaleList? getLocaleList();
     method public androidx.ui.graphics.Shadow? getShadow();
     method public androidx.ui.text.style.TextDecoration? getTextDecoration();
@@ -465,19 +465,19 @@
   }
 
   public final class TextLayoutInput {
-    ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.core.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+    ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
     method public androidx.ui.text.AnnotatedString component1();
     method public androidx.ui.text.TextStyle component2();
     method public int component3();
     method public boolean component4();
     method public androidx.ui.text.style.TextOverflow component5();
-    method public androidx.ui.core.Density component6();
+    method public androidx.ui.unit.Density component6();
     method public androidx.ui.core.LayoutDirection component7();
     method public androidx.ui.text.font.Font.ResourceLoader component8();
     method public androidx.ui.core.Constraints component9();
-    method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.core.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
     method public androidx.ui.core.Constraints getConstraints();
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public androidx.ui.core.LayoutDirection getLayoutDirection();
     method public int getMaxLines();
     method public androidx.ui.text.style.TextOverflow getOverflow();
@@ -489,28 +489,28 @@
 
   public final class TextLayoutResult {
     method public androidx.ui.text.TextLayoutInput component1();
-    method public androidx.ui.core.IntPxSize component3();
-    method public androidx.ui.text.TextLayoutResult copy(androidx.ui.text.TextLayoutInput layoutInput, androidx.ui.text.MultiParagraph multiParagraph, androidx.ui.core.IntPxSize size);
+    method public androidx.ui.unit.IntPxSize component3();
+    method public androidx.ui.text.TextLayoutResult copy(androidx.ui.text.TextLayoutInput layoutInput, androidx.ui.text.MultiParagraph multiParagraph, androidx.ui.unit.IntPxSize size);
     method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
-    method public androidx.ui.engine.geometry.Rect getBoundingBox(int offset);
+    method public androidx.ui.geometry.Rect getBoundingBox(int offset);
     method public boolean getDidOverflowHeight();
     method public boolean getDidOverflowWidth();
-    method public androidx.ui.core.IntPx getFirstBaseline();
+    method public androidx.ui.unit.IntPx getFirstBaseline();
     method public boolean getHasVisualOverflow();
-    method public androidx.ui.core.Px getHorizontalPosition(int offset, boolean usePrimaryDirection);
-    method public androidx.ui.core.IntPx getLastBaseline();
+    method public androidx.ui.unit.Px getHorizontalPosition(int offset, boolean usePrimaryDirection);
+    method public androidx.ui.unit.IntPx getLastBaseline();
     method public androidx.ui.text.TextLayoutInput getLayoutInput();
-    method public androidx.ui.core.Px getLineBottom(int lineIndex);
+    method public androidx.ui.unit.Px getLineBottom(int lineIndex);
     method public int getLineForOffset(int offset);
-    method public int getOffsetForPosition(androidx.ui.core.PxPosition position);
+    method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
     method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
-    method public androidx.ui.core.IntPxSize getSize();
+    method public androidx.ui.unit.IntPxSize getSize();
     method public androidx.ui.text.TextRange getWordBoundary(int offset);
     property public final boolean didOverflowHeight;
     property public final boolean didOverflowWidth;
-    property public final androidx.ui.core.IntPx firstBaseline;
+    property public final androidx.ui.unit.IntPx firstBaseline;
     property public final boolean hasVisualOverflow;
-    property public final androidx.ui.core.IntPx lastBaseline;
+    property public final androidx.ui.unit.IntPx lastBaseline;
   }
 
   public final class TextLayoutResultKt {
@@ -553,7 +553,7 @@
   }
 
   public final class TextStyle {
-    ctor public TextStyle(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    ctor public TextStyle(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     ctor public TextStyle();
     method public androidx.ui.graphics.Color? component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
@@ -563,28 +563,28 @@
     method public androidx.ui.graphics.Shadow? component14();
     method public androidx.ui.text.style.TextAlign? component15();
     method public androidx.ui.text.style.TextDirectionAlgorithm? component16();
-    method public androidx.ui.core.TextUnit component17();
+    method public androidx.ui.unit.TextUnit component17();
     method public androidx.ui.text.style.TextIndent? component18();
-    method public androidx.ui.core.TextUnit component2();
+    method public androidx.ui.unit.TextUnit component2();
     method public androidx.ui.text.font.FontWeight? component3();
     method public androidx.ui.text.font.FontStyle? component4();
     method public androidx.ui.text.font.FontSynthesis? component5();
     method public androidx.ui.text.font.FontFamily? component6();
     method public String? component7();
-    method public androidx.ui.core.TextUnit component8();
+    method public androidx.ui.unit.TextUnit component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.TextStyle copy(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method public androidx.ui.text.TextStyle copy(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     method public androidx.ui.graphics.Color? getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public androidx.ui.graphics.Color? getColor();
     method public androidx.ui.text.font.FontFamily? getFontFamily();
     method public String? getFontFeatureSettings();
-    method public androidx.ui.core.TextUnit getFontSize();
+    method public androidx.ui.unit.TextUnit getFontSize();
     method public androidx.ui.text.font.FontStyle? getFontStyle();
     method public androidx.ui.text.font.FontSynthesis? getFontSynthesis();
     method public androidx.ui.text.font.FontWeight? getFontWeight();
-    method public androidx.ui.core.TextUnit getLetterSpacing();
-    method public androidx.ui.core.TextUnit getLineHeight();
+    method public androidx.ui.unit.TextUnit getLetterSpacing();
+    method public androidx.ui.unit.TextUnit getLineHeight();
     method public androidx.ui.text.LocaleList? getLocaleList();
     method public androidx.ui.graphics.Shadow? getShadow();
     method public androidx.ui.text.style.TextAlign? getTextAlign();
@@ -802,13 +802,13 @@
   }
 
   public final class TextIndent {
-    ctor public TextIndent(androidx.ui.core.TextUnit firstLine, androidx.ui.core.TextUnit restLine);
+    ctor public TextIndent(androidx.ui.unit.TextUnit firstLine, androidx.ui.unit.TextUnit restLine);
     ctor public TextIndent();
-    method public androidx.ui.core.TextUnit component1();
-    method public androidx.ui.core.TextUnit component2();
-    method public androidx.ui.text.style.TextIndent copy(androidx.ui.core.TextUnit firstLine, androidx.ui.core.TextUnit restLine);
-    method public androidx.ui.core.TextUnit getFirstLine();
-    method public androidx.ui.core.TextUnit getRestLine();
+    method public androidx.ui.unit.TextUnit component1();
+    method public androidx.ui.unit.TextUnit component2();
+    method public androidx.ui.text.style.TextIndent copy(androidx.ui.unit.TextUnit firstLine, androidx.ui.unit.TextUnit restLine);
+    method public androidx.ui.unit.TextUnit getFirstLine();
+    method public androidx.ui.unit.TextUnit getRestLine();
   }
 
   public final class TextIndentKt {
diff --git a/ui/ui-text/api/public_plus_experimental_0.1.0-dev04.txt b/ui/ui-text/api/public_plus_experimental_0.1.0-dev04.txt
index 78b98e6..9463223 100644
--- a/ui/ui-text/api/public_plus_experimental_0.1.0-dev04.txt
+++ b/ui/ui-text/api/public_plus_experimental_0.1.0-dev04.txt
@@ -119,7 +119,7 @@
   }
 
   public interface PlatformTextInputService {
-    method public void notifyFocusedRect(androidx.ui.engine.geometry.Rect rect);
+    method public void notifyFocusedRect(androidx.ui.geometry.Rect rect);
     method public void onStateUpdated(androidx.ui.input.InputState model);
     method public void showSoftwareKeyboard();
     method public void startInput(androidx.ui.input.InputState initModel, androidx.ui.input.KeyboardType keyboardType, androidx.ui.input.ImeAction imeAction, kotlin.jvm.functions.Function1<? super java.util.List<? extends androidx.ui.input.EditOperation>,kotlin.Unit> onEditCommand, kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit> onImeActionPerformed);
@@ -158,7 +158,7 @@
 
   public class TextInputService {
     ctor public TextInputService(androidx.ui.input.PlatformTextInputService platformTextInputService);
-    method public void notifyFocusedRect(int token, androidx.ui.engine.geometry.Rect rect);
+    method public void notifyFocusedRect(int token, androidx.ui.geometry.Rect rect);
     method public void onStateUpdated(int token, androidx.ui.input.InputState model);
     method public void showSoftwareKeyboard(int token);
     method public int startInput(androidx.ui.input.InputState initModel, androidx.ui.input.KeyboardType keyboardType, androidx.ui.input.ImeAction imeAction, kotlin.jvm.functions.Function1<? super java.util.List<? extends androidx.ui.input.EditOperation>,kotlin.Unit> onEditCommand, kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit> onImeActionPerformed);
@@ -284,10 +284,10 @@
 
   public final class MultiParagraph {
     ctor public MultiParagraph(androidx.ui.text.MultiParagraphIntrinsics intrinsics, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints);
-    ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
     method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
-    method public androidx.ui.engine.geometry.Rect getBoundingBox(int offset);
-    method public androidx.ui.engine.geometry.Rect getCursorRect(int offset);
+    method public androidx.ui.geometry.Rect getBoundingBox(int offset);
+    method public androidx.ui.geometry.Rect getCursorRect(int offset);
     method public boolean getDidExceedMaxLines();
     method public float getFirstBaseline();
     method public float getHeight();
@@ -304,7 +304,7 @@
     method public float getMaxIntrinsicWidth();
     method public int getMaxLines();
     method public float getMinIntrinsicWidth();
-    method public int getOffsetForPosition(androidx.ui.core.PxPosition position);
+    method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
     method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
     method public androidx.ui.graphics.Path getPathForRange(int start, int end);
     method public float getWidth();
@@ -321,7 +321,7 @@
   }
 
   public final class MultiParagraphIntrinsics implements androidx.ui.text.ParagraphIntrinsics {
-    ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
     method public androidx.ui.text.AnnotatedString getAnnotatedString();
     method public float getMaxIntrinsicWidth();
     method public float getMinIntrinsicWidth();
@@ -334,8 +334,8 @@
 
   public interface Paragraph {
     method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
-    method public androidx.ui.engine.geometry.Rect getBoundingBox(int offset);
-    method public androidx.ui.engine.geometry.Rect getCursorRect(int offset);
+    method public androidx.ui.geometry.Rect getBoundingBox(int offset);
+    method public androidx.ui.geometry.Rect getCursorRect(int offset);
     method public boolean getDidExceedMaxLines();
     method public float getFirstBaseline();
     method public float getHeight();
@@ -350,7 +350,7 @@
     method public float getLineWidth(int lineIndex);
     method public float getMaxIntrinsicWidth();
     method public float getMinIntrinsicWidth();
-    method public int getOffsetForPosition(androidx.ui.core.PxPosition position);
+    method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
     method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
     method public androidx.ui.graphics.Path getPathForRange(int start, int end);
     method public float getWidth();
@@ -381,23 +381,23 @@
   }
 
   public final class ParagraphIntrinsicsKt {
-    method public static androidx.ui.text.ParagraphIntrinsics ParagraphIntrinsics(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    method public static androidx.ui.text.ParagraphIntrinsics ParagraphIntrinsics(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
   }
 
   public final class ParagraphKt {
-    method public static androidx.ui.text.Paragraph Paragraph(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    method public static androidx.ui.text.Paragraph Paragraph(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
     method public static androidx.ui.text.Paragraph Paragraph(androidx.ui.text.ParagraphIntrinsics paragraphIntrinsics, int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints);
   }
 
   public final class ParagraphStyle {
-    ctor public ParagraphStyle(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    ctor public ParagraphStyle(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     ctor public ParagraphStyle();
     method public androidx.ui.text.style.TextAlign? component1();
     method public androidx.ui.text.style.TextDirectionAlgorithm? component2();
-    method public androidx.ui.core.TextUnit component3();
+    method public androidx.ui.unit.TextUnit component3();
     method public androidx.ui.text.style.TextIndent? component4();
-    method public androidx.ui.text.ParagraphStyle copy(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
-    method public androidx.ui.core.TextUnit getLineHeight();
+    method public androidx.ui.text.ParagraphStyle copy(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method public androidx.ui.unit.TextUnit getLineHeight();
     method public androidx.ui.text.style.TextAlign? getTextAlign();
     method public androidx.ui.text.style.TextDirectionAlgorithm? getTextDirectionAlgorithm();
     method public androidx.ui.text.style.TextIndent? getTextIndent();
@@ -409,7 +409,7 @@
   }
 
   public final class SpanStyle {
-    ctor public SpanStyle(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
+    ctor public SpanStyle(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
     ctor public SpanStyle();
     method public androidx.ui.graphics.Color? component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
@@ -417,25 +417,25 @@
     method public androidx.ui.graphics.Color? component12();
     method public androidx.ui.text.style.TextDecoration? component13();
     method public androidx.ui.graphics.Shadow? component14();
-    method public androidx.ui.core.TextUnit component2();
+    method public androidx.ui.unit.TextUnit component2();
     method public androidx.ui.text.font.FontWeight? component3();
     method public androidx.ui.text.font.FontStyle? component4();
     method public androidx.ui.text.font.FontSynthesis? component5();
     method public androidx.ui.text.font.FontFamily? component6();
     method public String? component7();
-    method public androidx.ui.core.TextUnit component8();
+    method public androidx.ui.unit.TextUnit component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.SpanStyle copy(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
+    method public androidx.ui.text.SpanStyle copy(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
     method public androidx.ui.graphics.Color? getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public androidx.ui.graphics.Color? getColor();
     method public androidx.ui.text.font.FontFamily? getFontFamily();
     method public String? getFontFeatureSettings();
-    method public androidx.ui.core.TextUnit getFontSize();
+    method public androidx.ui.unit.TextUnit getFontSize();
     method public androidx.ui.text.font.FontStyle? getFontStyle();
     method public androidx.ui.text.font.FontSynthesis? getFontSynthesis();
     method public androidx.ui.text.font.FontWeight? getFontWeight();
-    method public androidx.ui.core.TextUnit getLetterSpacing();
+    method public androidx.ui.unit.TextUnit getLetterSpacing();
     method public androidx.ui.text.LocaleList? getLocaleList();
     method public androidx.ui.graphics.Shadow? getShadow();
     method public androidx.ui.text.style.TextDecoration? getTextDecoration();
@@ -465,19 +465,19 @@
   }
 
   public final class TextLayoutInput {
-    ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.core.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+    ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
     method public androidx.ui.text.AnnotatedString component1();
     method public androidx.ui.text.TextStyle component2();
     method public int component3();
     method public boolean component4();
     method public androidx.ui.text.style.TextOverflow component5();
-    method public androidx.ui.core.Density component6();
+    method public androidx.ui.unit.Density component6();
     method public androidx.ui.core.LayoutDirection component7();
     method public androidx.ui.text.font.Font.ResourceLoader component8();
     method public androidx.ui.core.Constraints component9();
-    method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.core.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
     method public androidx.ui.core.Constraints getConstraints();
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public androidx.ui.core.LayoutDirection getLayoutDirection();
     method public int getMaxLines();
     method public androidx.ui.text.style.TextOverflow getOverflow();
@@ -489,28 +489,28 @@
 
   public final class TextLayoutResult {
     method public androidx.ui.text.TextLayoutInput component1();
-    method public androidx.ui.core.IntPxSize component3();
-    method public androidx.ui.text.TextLayoutResult copy(androidx.ui.text.TextLayoutInput layoutInput, androidx.ui.text.MultiParagraph multiParagraph, androidx.ui.core.IntPxSize size);
+    method public androidx.ui.unit.IntPxSize component3();
+    method public androidx.ui.text.TextLayoutResult copy(androidx.ui.text.TextLayoutInput layoutInput, androidx.ui.text.MultiParagraph multiParagraph, androidx.ui.unit.IntPxSize size);
     method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
-    method public androidx.ui.engine.geometry.Rect getBoundingBox(int offset);
+    method public androidx.ui.geometry.Rect getBoundingBox(int offset);
     method public boolean getDidOverflowHeight();
     method public boolean getDidOverflowWidth();
-    method public androidx.ui.core.IntPx getFirstBaseline();
+    method public androidx.ui.unit.IntPx getFirstBaseline();
     method public boolean getHasVisualOverflow();
-    method public androidx.ui.core.Px getHorizontalPosition(int offset, boolean usePrimaryDirection);
-    method public androidx.ui.core.IntPx getLastBaseline();
+    method public androidx.ui.unit.Px getHorizontalPosition(int offset, boolean usePrimaryDirection);
+    method public androidx.ui.unit.IntPx getLastBaseline();
     method public androidx.ui.text.TextLayoutInput getLayoutInput();
-    method public androidx.ui.core.Px getLineBottom(int lineIndex);
+    method public androidx.ui.unit.Px getLineBottom(int lineIndex);
     method public int getLineForOffset(int offset);
-    method public int getOffsetForPosition(androidx.ui.core.PxPosition position);
+    method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
     method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
-    method public androidx.ui.core.IntPxSize getSize();
+    method public androidx.ui.unit.IntPxSize getSize();
     method public androidx.ui.text.TextRange getWordBoundary(int offset);
     property public final boolean didOverflowHeight;
     property public final boolean didOverflowWidth;
-    property public final androidx.ui.core.IntPx firstBaseline;
+    property public final androidx.ui.unit.IntPx firstBaseline;
     property public final boolean hasVisualOverflow;
-    property public final androidx.ui.core.IntPx lastBaseline;
+    property public final androidx.ui.unit.IntPx lastBaseline;
   }
 
   public final class TextLayoutResultKt {
@@ -553,7 +553,7 @@
   }
 
   public final class TextStyle {
-    ctor public TextStyle(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    ctor public TextStyle(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     ctor public TextStyle();
     method public androidx.ui.graphics.Color? component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
@@ -563,28 +563,28 @@
     method public androidx.ui.graphics.Shadow? component14();
     method public androidx.ui.text.style.TextAlign? component15();
     method public androidx.ui.text.style.TextDirectionAlgorithm? component16();
-    method public androidx.ui.core.TextUnit component17();
+    method public androidx.ui.unit.TextUnit component17();
     method public androidx.ui.text.style.TextIndent? component18();
-    method public androidx.ui.core.TextUnit component2();
+    method public androidx.ui.unit.TextUnit component2();
     method public androidx.ui.text.font.FontWeight? component3();
     method public androidx.ui.text.font.FontStyle? component4();
     method public androidx.ui.text.font.FontSynthesis? component5();
     method public androidx.ui.text.font.FontFamily? component6();
     method public String? component7();
-    method public androidx.ui.core.TextUnit component8();
+    method public androidx.ui.unit.TextUnit component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.TextStyle copy(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method public androidx.ui.text.TextStyle copy(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     method public androidx.ui.graphics.Color? getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public androidx.ui.graphics.Color? getColor();
     method public androidx.ui.text.font.FontFamily? getFontFamily();
     method public String? getFontFeatureSettings();
-    method public androidx.ui.core.TextUnit getFontSize();
+    method public androidx.ui.unit.TextUnit getFontSize();
     method public androidx.ui.text.font.FontStyle? getFontStyle();
     method public androidx.ui.text.font.FontSynthesis? getFontSynthesis();
     method public androidx.ui.text.font.FontWeight? getFontWeight();
-    method public androidx.ui.core.TextUnit getLetterSpacing();
-    method public androidx.ui.core.TextUnit getLineHeight();
+    method public androidx.ui.unit.TextUnit getLetterSpacing();
+    method public androidx.ui.unit.TextUnit getLineHeight();
     method public androidx.ui.text.LocaleList? getLocaleList();
     method public androidx.ui.graphics.Shadow? getShadow();
     method public androidx.ui.text.style.TextAlign? getTextAlign();
@@ -802,13 +802,13 @@
   }
 
   public final class TextIndent {
-    ctor public TextIndent(androidx.ui.core.TextUnit firstLine, androidx.ui.core.TextUnit restLine);
+    ctor public TextIndent(androidx.ui.unit.TextUnit firstLine, androidx.ui.unit.TextUnit restLine);
     ctor public TextIndent();
-    method public androidx.ui.core.TextUnit component1();
-    method public androidx.ui.core.TextUnit component2();
-    method public androidx.ui.text.style.TextIndent copy(androidx.ui.core.TextUnit firstLine, androidx.ui.core.TextUnit restLine);
-    method public androidx.ui.core.TextUnit getFirstLine();
-    method public androidx.ui.core.TextUnit getRestLine();
+    method public androidx.ui.unit.TextUnit component1();
+    method public androidx.ui.unit.TextUnit component2();
+    method public androidx.ui.text.style.TextIndent copy(androidx.ui.unit.TextUnit firstLine, androidx.ui.unit.TextUnit restLine);
+    method public androidx.ui.unit.TextUnit getFirstLine();
+    method public androidx.ui.unit.TextUnit getRestLine();
   }
 
   public final class TextIndentKt {
diff --git a/ui/ui-text/api/public_plus_experimental_current.txt b/ui/ui-text/api/public_plus_experimental_current.txt
index 78b98e6..9463223 100644
--- a/ui/ui-text/api/public_plus_experimental_current.txt
+++ b/ui/ui-text/api/public_plus_experimental_current.txt
@@ -119,7 +119,7 @@
   }
 
   public interface PlatformTextInputService {
-    method public void notifyFocusedRect(androidx.ui.engine.geometry.Rect rect);
+    method public void notifyFocusedRect(androidx.ui.geometry.Rect rect);
     method public void onStateUpdated(androidx.ui.input.InputState model);
     method public void showSoftwareKeyboard();
     method public void startInput(androidx.ui.input.InputState initModel, androidx.ui.input.KeyboardType keyboardType, androidx.ui.input.ImeAction imeAction, kotlin.jvm.functions.Function1<? super java.util.List<? extends androidx.ui.input.EditOperation>,kotlin.Unit> onEditCommand, kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit> onImeActionPerformed);
@@ -158,7 +158,7 @@
 
   public class TextInputService {
     ctor public TextInputService(androidx.ui.input.PlatformTextInputService platformTextInputService);
-    method public void notifyFocusedRect(int token, androidx.ui.engine.geometry.Rect rect);
+    method public void notifyFocusedRect(int token, androidx.ui.geometry.Rect rect);
     method public void onStateUpdated(int token, androidx.ui.input.InputState model);
     method public void showSoftwareKeyboard(int token);
     method public int startInput(androidx.ui.input.InputState initModel, androidx.ui.input.KeyboardType keyboardType, androidx.ui.input.ImeAction imeAction, kotlin.jvm.functions.Function1<? super java.util.List<? extends androidx.ui.input.EditOperation>,kotlin.Unit> onEditCommand, kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit> onImeActionPerformed);
@@ -284,10 +284,10 @@
 
   public final class MultiParagraph {
     ctor public MultiParagraph(androidx.ui.text.MultiParagraphIntrinsics intrinsics, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints);
-    ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
     method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
-    method public androidx.ui.engine.geometry.Rect getBoundingBox(int offset);
-    method public androidx.ui.engine.geometry.Rect getCursorRect(int offset);
+    method public androidx.ui.geometry.Rect getBoundingBox(int offset);
+    method public androidx.ui.geometry.Rect getCursorRect(int offset);
     method public boolean getDidExceedMaxLines();
     method public float getFirstBaseline();
     method public float getHeight();
@@ -304,7 +304,7 @@
     method public float getMaxIntrinsicWidth();
     method public int getMaxLines();
     method public float getMinIntrinsicWidth();
-    method public int getOffsetForPosition(androidx.ui.core.PxPosition position);
+    method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
     method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
     method public androidx.ui.graphics.Path getPathForRange(int start, int end);
     method public float getWidth();
@@ -321,7 +321,7 @@
   }
 
   public final class MultiParagraphIntrinsics implements androidx.ui.text.ParagraphIntrinsics {
-    ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
     method public androidx.ui.text.AnnotatedString getAnnotatedString();
     method public float getMaxIntrinsicWidth();
     method public float getMinIntrinsicWidth();
@@ -334,8 +334,8 @@
 
   public interface Paragraph {
     method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
-    method public androidx.ui.engine.geometry.Rect getBoundingBox(int offset);
-    method public androidx.ui.engine.geometry.Rect getCursorRect(int offset);
+    method public androidx.ui.geometry.Rect getBoundingBox(int offset);
+    method public androidx.ui.geometry.Rect getCursorRect(int offset);
     method public boolean getDidExceedMaxLines();
     method public float getFirstBaseline();
     method public float getHeight();
@@ -350,7 +350,7 @@
     method public float getLineWidth(int lineIndex);
     method public float getMaxIntrinsicWidth();
     method public float getMinIntrinsicWidth();
-    method public int getOffsetForPosition(androidx.ui.core.PxPosition position);
+    method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
     method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
     method public androidx.ui.graphics.Path getPathForRange(int start, int end);
     method public float getWidth();
@@ -381,23 +381,23 @@
   }
 
   public final class ParagraphIntrinsicsKt {
-    method public static androidx.ui.text.ParagraphIntrinsics ParagraphIntrinsics(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    method public static androidx.ui.text.ParagraphIntrinsics ParagraphIntrinsics(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
   }
 
   public final class ParagraphKt {
-    method public static androidx.ui.text.Paragraph Paragraph(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    method public static androidx.ui.text.Paragraph Paragraph(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
     method public static androidx.ui.text.Paragraph Paragraph(androidx.ui.text.ParagraphIntrinsics paragraphIntrinsics, int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints);
   }
 
   public final class ParagraphStyle {
-    ctor public ParagraphStyle(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    ctor public ParagraphStyle(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     ctor public ParagraphStyle();
     method public androidx.ui.text.style.TextAlign? component1();
     method public androidx.ui.text.style.TextDirectionAlgorithm? component2();
-    method public androidx.ui.core.TextUnit component3();
+    method public androidx.ui.unit.TextUnit component3();
     method public androidx.ui.text.style.TextIndent? component4();
-    method public androidx.ui.text.ParagraphStyle copy(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
-    method public androidx.ui.core.TextUnit getLineHeight();
+    method public androidx.ui.text.ParagraphStyle copy(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method public androidx.ui.unit.TextUnit getLineHeight();
     method public androidx.ui.text.style.TextAlign? getTextAlign();
     method public androidx.ui.text.style.TextDirectionAlgorithm? getTextDirectionAlgorithm();
     method public androidx.ui.text.style.TextIndent? getTextIndent();
@@ -409,7 +409,7 @@
   }
 
   public final class SpanStyle {
-    ctor public SpanStyle(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
+    ctor public SpanStyle(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
     ctor public SpanStyle();
     method public androidx.ui.graphics.Color? component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
@@ -417,25 +417,25 @@
     method public androidx.ui.graphics.Color? component12();
     method public androidx.ui.text.style.TextDecoration? component13();
     method public androidx.ui.graphics.Shadow? component14();
-    method public androidx.ui.core.TextUnit component2();
+    method public androidx.ui.unit.TextUnit component2();
     method public androidx.ui.text.font.FontWeight? component3();
     method public androidx.ui.text.font.FontStyle? component4();
     method public androidx.ui.text.font.FontSynthesis? component5();
     method public androidx.ui.text.font.FontFamily? component6();
     method public String? component7();
-    method public androidx.ui.core.TextUnit component8();
+    method public androidx.ui.unit.TextUnit component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.SpanStyle copy(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
+    method public androidx.ui.text.SpanStyle copy(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
     method public androidx.ui.graphics.Color? getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public androidx.ui.graphics.Color? getColor();
     method public androidx.ui.text.font.FontFamily? getFontFamily();
     method public String? getFontFeatureSettings();
-    method public androidx.ui.core.TextUnit getFontSize();
+    method public androidx.ui.unit.TextUnit getFontSize();
     method public androidx.ui.text.font.FontStyle? getFontStyle();
     method public androidx.ui.text.font.FontSynthesis? getFontSynthesis();
     method public androidx.ui.text.font.FontWeight? getFontWeight();
-    method public androidx.ui.core.TextUnit getLetterSpacing();
+    method public androidx.ui.unit.TextUnit getLetterSpacing();
     method public androidx.ui.text.LocaleList? getLocaleList();
     method public androidx.ui.graphics.Shadow? getShadow();
     method public androidx.ui.text.style.TextDecoration? getTextDecoration();
@@ -465,19 +465,19 @@
   }
 
   public final class TextLayoutInput {
-    ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.core.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+    ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
     method public androidx.ui.text.AnnotatedString component1();
     method public androidx.ui.text.TextStyle component2();
     method public int component3();
     method public boolean component4();
     method public androidx.ui.text.style.TextOverflow component5();
-    method public androidx.ui.core.Density component6();
+    method public androidx.ui.unit.Density component6();
     method public androidx.ui.core.LayoutDirection component7();
     method public androidx.ui.text.font.Font.ResourceLoader component8();
     method public androidx.ui.core.Constraints component9();
-    method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.core.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
     method public androidx.ui.core.Constraints getConstraints();
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public androidx.ui.core.LayoutDirection getLayoutDirection();
     method public int getMaxLines();
     method public androidx.ui.text.style.TextOverflow getOverflow();
@@ -489,28 +489,28 @@
 
   public final class TextLayoutResult {
     method public androidx.ui.text.TextLayoutInput component1();
-    method public androidx.ui.core.IntPxSize component3();
-    method public androidx.ui.text.TextLayoutResult copy(androidx.ui.text.TextLayoutInput layoutInput, androidx.ui.text.MultiParagraph multiParagraph, androidx.ui.core.IntPxSize size);
+    method public androidx.ui.unit.IntPxSize component3();
+    method public androidx.ui.text.TextLayoutResult copy(androidx.ui.text.TextLayoutInput layoutInput, androidx.ui.text.MultiParagraph multiParagraph, androidx.ui.unit.IntPxSize size);
     method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
-    method public androidx.ui.engine.geometry.Rect getBoundingBox(int offset);
+    method public androidx.ui.geometry.Rect getBoundingBox(int offset);
     method public boolean getDidOverflowHeight();
     method public boolean getDidOverflowWidth();
-    method public androidx.ui.core.IntPx getFirstBaseline();
+    method public androidx.ui.unit.IntPx getFirstBaseline();
     method public boolean getHasVisualOverflow();
-    method public androidx.ui.core.Px getHorizontalPosition(int offset, boolean usePrimaryDirection);
-    method public androidx.ui.core.IntPx getLastBaseline();
+    method public androidx.ui.unit.Px getHorizontalPosition(int offset, boolean usePrimaryDirection);
+    method public androidx.ui.unit.IntPx getLastBaseline();
     method public androidx.ui.text.TextLayoutInput getLayoutInput();
-    method public androidx.ui.core.Px getLineBottom(int lineIndex);
+    method public androidx.ui.unit.Px getLineBottom(int lineIndex);
     method public int getLineForOffset(int offset);
-    method public int getOffsetForPosition(androidx.ui.core.PxPosition position);
+    method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
     method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
-    method public androidx.ui.core.IntPxSize getSize();
+    method public androidx.ui.unit.IntPxSize getSize();
     method public androidx.ui.text.TextRange getWordBoundary(int offset);
     property public final boolean didOverflowHeight;
     property public final boolean didOverflowWidth;
-    property public final androidx.ui.core.IntPx firstBaseline;
+    property public final androidx.ui.unit.IntPx firstBaseline;
     property public final boolean hasVisualOverflow;
-    property public final androidx.ui.core.IntPx lastBaseline;
+    property public final androidx.ui.unit.IntPx lastBaseline;
   }
 
   public final class TextLayoutResultKt {
@@ -553,7 +553,7 @@
   }
 
   public final class TextStyle {
-    ctor public TextStyle(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    ctor public TextStyle(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     ctor public TextStyle();
     method public androidx.ui.graphics.Color? component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
@@ -563,28 +563,28 @@
     method public androidx.ui.graphics.Shadow? component14();
     method public androidx.ui.text.style.TextAlign? component15();
     method public androidx.ui.text.style.TextDirectionAlgorithm? component16();
-    method public androidx.ui.core.TextUnit component17();
+    method public androidx.ui.unit.TextUnit component17();
     method public androidx.ui.text.style.TextIndent? component18();
-    method public androidx.ui.core.TextUnit component2();
+    method public androidx.ui.unit.TextUnit component2();
     method public androidx.ui.text.font.FontWeight? component3();
     method public androidx.ui.text.font.FontStyle? component4();
     method public androidx.ui.text.font.FontSynthesis? component5();
     method public androidx.ui.text.font.FontFamily? component6();
     method public String? component7();
-    method public androidx.ui.core.TextUnit component8();
+    method public androidx.ui.unit.TextUnit component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.TextStyle copy(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method public androidx.ui.text.TextStyle copy(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     method public androidx.ui.graphics.Color? getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public androidx.ui.graphics.Color? getColor();
     method public androidx.ui.text.font.FontFamily? getFontFamily();
     method public String? getFontFeatureSettings();
-    method public androidx.ui.core.TextUnit getFontSize();
+    method public androidx.ui.unit.TextUnit getFontSize();
     method public androidx.ui.text.font.FontStyle? getFontStyle();
     method public androidx.ui.text.font.FontSynthesis? getFontSynthesis();
     method public androidx.ui.text.font.FontWeight? getFontWeight();
-    method public androidx.ui.core.TextUnit getLetterSpacing();
-    method public androidx.ui.core.TextUnit getLineHeight();
+    method public androidx.ui.unit.TextUnit getLetterSpacing();
+    method public androidx.ui.unit.TextUnit getLineHeight();
     method public androidx.ui.text.LocaleList? getLocaleList();
     method public androidx.ui.graphics.Shadow? getShadow();
     method public androidx.ui.text.style.TextAlign? getTextAlign();
@@ -802,13 +802,13 @@
   }
 
   public final class TextIndent {
-    ctor public TextIndent(androidx.ui.core.TextUnit firstLine, androidx.ui.core.TextUnit restLine);
+    ctor public TextIndent(androidx.ui.unit.TextUnit firstLine, androidx.ui.unit.TextUnit restLine);
     ctor public TextIndent();
-    method public androidx.ui.core.TextUnit component1();
-    method public androidx.ui.core.TextUnit component2();
-    method public androidx.ui.text.style.TextIndent copy(androidx.ui.core.TextUnit firstLine, androidx.ui.core.TextUnit restLine);
-    method public androidx.ui.core.TextUnit getFirstLine();
-    method public androidx.ui.core.TextUnit getRestLine();
+    method public androidx.ui.unit.TextUnit component1();
+    method public androidx.ui.unit.TextUnit component2();
+    method public androidx.ui.text.style.TextIndent copy(androidx.ui.unit.TextUnit firstLine, androidx.ui.unit.TextUnit restLine);
+    method public androidx.ui.unit.TextUnit getFirstLine();
+    method public androidx.ui.unit.TextUnit getRestLine();
   }
 
   public final class TextIndentKt {
diff --git a/ui/ui-text/api/restricted_0.1.0-dev04.txt b/ui/ui-text/api/restricted_0.1.0-dev04.txt
index 78b98e6..9463223 100644
--- a/ui/ui-text/api/restricted_0.1.0-dev04.txt
+++ b/ui/ui-text/api/restricted_0.1.0-dev04.txt
@@ -119,7 +119,7 @@
   }
 
   public interface PlatformTextInputService {
-    method public void notifyFocusedRect(androidx.ui.engine.geometry.Rect rect);
+    method public void notifyFocusedRect(androidx.ui.geometry.Rect rect);
     method public void onStateUpdated(androidx.ui.input.InputState model);
     method public void showSoftwareKeyboard();
     method public void startInput(androidx.ui.input.InputState initModel, androidx.ui.input.KeyboardType keyboardType, androidx.ui.input.ImeAction imeAction, kotlin.jvm.functions.Function1<? super java.util.List<? extends androidx.ui.input.EditOperation>,kotlin.Unit> onEditCommand, kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit> onImeActionPerformed);
@@ -158,7 +158,7 @@
 
   public class TextInputService {
     ctor public TextInputService(androidx.ui.input.PlatformTextInputService platformTextInputService);
-    method public void notifyFocusedRect(int token, androidx.ui.engine.geometry.Rect rect);
+    method public void notifyFocusedRect(int token, androidx.ui.geometry.Rect rect);
     method public void onStateUpdated(int token, androidx.ui.input.InputState model);
     method public void showSoftwareKeyboard(int token);
     method public int startInput(androidx.ui.input.InputState initModel, androidx.ui.input.KeyboardType keyboardType, androidx.ui.input.ImeAction imeAction, kotlin.jvm.functions.Function1<? super java.util.List<? extends androidx.ui.input.EditOperation>,kotlin.Unit> onEditCommand, kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit> onImeActionPerformed);
@@ -284,10 +284,10 @@
 
   public final class MultiParagraph {
     ctor public MultiParagraph(androidx.ui.text.MultiParagraphIntrinsics intrinsics, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints);
-    ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
     method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
-    method public androidx.ui.engine.geometry.Rect getBoundingBox(int offset);
-    method public androidx.ui.engine.geometry.Rect getCursorRect(int offset);
+    method public androidx.ui.geometry.Rect getBoundingBox(int offset);
+    method public androidx.ui.geometry.Rect getCursorRect(int offset);
     method public boolean getDidExceedMaxLines();
     method public float getFirstBaseline();
     method public float getHeight();
@@ -304,7 +304,7 @@
     method public float getMaxIntrinsicWidth();
     method public int getMaxLines();
     method public float getMinIntrinsicWidth();
-    method public int getOffsetForPosition(androidx.ui.core.PxPosition position);
+    method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
     method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
     method public androidx.ui.graphics.Path getPathForRange(int start, int end);
     method public float getWidth();
@@ -321,7 +321,7 @@
   }
 
   public final class MultiParagraphIntrinsics implements androidx.ui.text.ParagraphIntrinsics {
-    ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
     method public androidx.ui.text.AnnotatedString getAnnotatedString();
     method public float getMaxIntrinsicWidth();
     method public float getMinIntrinsicWidth();
@@ -334,8 +334,8 @@
 
   public interface Paragraph {
     method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
-    method public androidx.ui.engine.geometry.Rect getBoundingBox(int offset);
-    method public androidx.ui.engine.geometry.Rect getCursorRect(int offset);
+    method public androidx.ui.geometry.Rect getBoundingBox(int offset);
+    method public androidx.ui.geometry.Rect getCursorRect(int offset);
     method public boolean getDidExceedMaxLines();
     method public float getFirstBaseline();
     method public float getHeight();
@@ -350,7 +350,7 @@
     method public float getLineWidth(int lineIndex);
     method public float getMaxIntrinsicWidth();
     method public float getMinIntrinsicWidth();
-    method public int getOffsetForPosition(androidx.ui.core.PxPosition position);
+    method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
     method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
     method public androidx.ui.graphics.Path getPathForRange(int start, int end);
     method public float getWidth();
@@ -381,23 +381,23 @@
   }
 
   public final class ParagraphIntrinsicsKt {
-    method public static androidx.ui.text.ParagraphIntrinsics ParagraphIntrinsics(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    method public static androidx.ui.text.ParagraphIntrinsics ParagraphIntrinsics(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
   }
 
   public final class ParagraphKt {
-    method public static androidx.ui.text.Paragraph Paragraph(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    method public static androidx.ui.text.Paragraph Paragraph(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
     method public static androidx.ui.text.Paragraph Paragraph(androidx.ui.text.ParagraphIntrinsics paragraphIntrinsics, int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints);
   }
 
   public final class ParagraphStyle {
-    ctor public ParagraphStyle(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    ctor public ParagraphStyle(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     ctor public ParagraphStyle();
     method public androidx.ui.text.style.TextAlign? component1();
     method public androidx.ui.text.style.TextDirectionAlgorithm? component2();
-    method public androidx.ui.core.TextUnit component3();
+    method public androidx.ui.unit.TextUnit component3();
     method public androidx.ui.text.style.TextIndent? component4();
-    method public androidx.ui.text.ParagraphStyle copy(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
-    method public androidx.ui.core.TextUnit getLineHeight();
+    method public androidx.ui.text.ParagraphStyle copy(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method public androidx.ui.unit.TextUnit getLineHeight();
     method public androidx.ui.text.style.TextAlign? getTextAlign();
     method public androidx.ui.text.style.TextDirectionAlgorithm? getTextDirectionAlgorithm();
     method public androidx.ui.text.style.TextIndent? getTextIndent();
@@ -409,7 +409,7 @@
   }
 
   public final class SpanStyle {
-    ctor public SpanStyle(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
+    ctor public SpanStyle(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
     ctor public SpanStyle();
     method public androidx.ui.graphics.Color? component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
@@ -417,25 +417,25 @@
     method public androidx.ui.graphics.Color? component12();
     method public androidx.ui.text.style.TextDecoration? component13();
     method public androidx.ui.graphics.Shadow? component14();
-    method public androidx.ui.core.TextUnit component2();
+    method public androidx.ui.unit.TextUnit component2();
     method public androidx.ui.text.font.FontWeight? component3();
     method public androidx.ui.text.font.FontStyle? component4();
     method public androidx.ui.text.font.FontSynthesis? component5();
     method public androidx.ui.text.font.FontFamily? component6();
     method public String? component7();
-    method public androidx.ui.core.TextUnit component8();
+    method public androidx.ui.unit.TextUnit component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.SpanStyle copy(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
+    method public androidx.ui.text.SpanStyle copy(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
     method public androidx.ui.graphics.Color? getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public androidx.ui.graphics.Color? getColor();
     method public androidx.ui.text.font.FontFamily? getFontFamily();
     method public String? getFontFeatureSettings();
-    method public androidx.ui.core.TextUnit getFontSize();
+    method public androidx.ui.unit.TextUnit getFontSize();
     method public androidx.ui.text.font.FontStyle? getFontStyle();
     method public androidx.ui.text.font.FontSynthesis? getFontSynthesis();
     method public androidx.ui.text.font.FontWeight? getFontWeight();
-    method public androidx.ui.core.TextUnit getLetterSpacing();
+    method public androidx.ui.unit.TextUnit getLetterSpacing();
     method public androidx.ui.text.LocaleList? getLocaleList();
     method public androidx.ui.graphics.Shadow? getShadow();
     method public androidx.ui.text.style.TextDecoration? getTextDecoration();
@@ -465,19 +465,19 @@
   }
 
   public final class TextLayoutInput {
-    ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.core.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+    ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
     method public androidx.ui.text.AnnotatedString component1();
     method public androidx.ui.text.TextStyle component2();
     method public int component3();
     method public boolean component4();
     method public androidx.ui.text.style.TextOverflow component5();
-    method public androidx.ui.core.Density component6();
+    method public androidx.ui.unit.Density component6();
     method public androidx.ui.core.LayoutDirection component7();
     method public androidx.ui.text.font.Font.ResourceLoader component8();
     method public androidx.ui.core.Constraints component9();
-    method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.core.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
     method public androidx.ui.core.Constraints getConstraints();
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public androidx.ui.core.LayoutDirection getLayoutDirection();
     method public int getMaxLines();
     method public androidx.ui.text.style.TextOverflow getOverflow();
@@ -489,28 +489,28 @@
 
   public final class TextLayoutResult {
     method public androidx.ui.text.TextLayoutInput component1();
-    method public androidx.ui.core.IntPxSize component3();
-    method public androidx.ui.text.TextLayoutResult copy(androidx.ui.text.TextLayoutInput layoutInput, androidx.ui.text.MultiParagraph multiParagraph, androidx.ui.core.IntPxSize size);
+    method public androidx.ui.unit.IntPxSize component3();
+    method public androidx.ui.text.TextLayoutResult copy(androidx.ui.text.TextLayoutInput layoutInput, androidx.ui.text.MultiParagraph multiParagraph, androidx.ui.unit.IntPxSize size);
     method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
-    method public androidx.ui.engine.geometry.Rect getBoundingBox(int offset);
+    method public androidx.ui.geometry.Rect getBoundingBox(int offset);
     method public boolean getDidOverflowHeight();
     method public boolean getDidOverflowWidth();
-    method public androidx.ui.core.IntPx getFirstBaseline();
+    method public androidx.ui.unit.IntPx getFirstBaseline();
     method public boolean getHasVisualOverflow();
-    method public androidx.ui.core.Px getHorizontalPosition(int offset, boolean usePrimaryDirection);
-    method public androidx.ui.core.IntPx getLastBaseline();
+    method public androidx.ui.unit.Px getHorizontalPosition(int offset, boolean usePrimaryDirection);
+    method public androidx.ui.unit.IntPx getLastBaseline();
     method public androidx.ui.text.TextLayoutInput getLayoutInput();
-    method public androidx.ui.core.Px getLineBottom(int lineIndex);
+    method public androidx.ui.unit.Px getLineBottom(int lineIndex);
     method public int getLineForOffset(int offset);
-    method public int getOffsetForPosition(androidx.ui.core.PxPosition position);
+    method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
     method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
-    method public androidx.ui.core.IntPxSize getSize();
+    method public androidx.ui.unit.IntPxSize getSize();
     method public androidx.ui.text.TextRange getWordBoundary(int offset);
     property public final boolean didOverflowHeight;
     property public final boolean didOverflowWidth;
-    property public final androidx.ui.core.IntPx firstBaseline;
+    property public final androidx.ui.unit.IntPx firstBaseline;
     property public final boolean hasVisualOverflow;
-    property public final androidx.ui.core.IntPx lastBaseline;
+    property public final androidx.ui.unit.IntPx lastBaseline;
   }
 
   public final class TextLayoutResultKt {
@@ -553,7 +553,7 @@
   }
 
   public final class TextStyle {
-    ctor public TextStyle(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    ctor public TextStyle(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     ctor public TextStyle();
     method public androidx.ui.graphics.Color? component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
@@ -563,28 +563,28 @@
     method public androidx.ui.graphics.Shadow? component14();
     method public androidx.ui.text.style.TextAlign? component15();
     method public androidx.ui.text.style.TextDirectionAlgorithm? component16();
-    method public androidx.ui.core.TextUnit component17();
+    method public androidx.ui.unit.TextUnit component17();
     method public androidx.ui.text.style.TextIndent? component18();
-    method public androidx.ui.core.TextUnit component2();
+    method public androidx.ui.unit.TextUnit component2();
     method public androidx.ui.text.font.FontWeight? component3();
     method public androidx.ui.text.font.FontStyle? component4();
     method public androidx.ui.text.font.FontSynthesis? component5();
     method public androidx.ui.text.font.FontFamily? component6();
     method public String? component7();
-    method public androidx.ui.core.TextUnit component8();
+    method public androidx.ui.unit.TextUnit component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.TextStyle copy(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method public androidx.ui.text.TextStyle copy(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     method public androidx.ui.graphics.Color? getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public androidx.ui.graphics.Color? getColor();
     method public androidx.ui.text.font.FontFamily? getFontFamily();
     method public String? getFontFeatureSettings();
-    method public androidx.ui.core.TextUnit getFontSize();
+    method public androidx.ui.unit.TextUnit getFontSize();
     method public androidx.ui.text.font.FontStyle? getFontStyle();
     method public androidx.ui.text.font.FontSynthesis? getFontSynthesis();
     method public androidx.ui.text.font.FontWeight? getFontWeight();
-    method public androidx.ui.core.TextUnit getLetterSpacing();
-    method public androidx.ui.core.TextUnit getLineHeight();
+    method public androidx.ui.unit.TextUnit getLetterSpacing();
+    method public androidx.ui.unit.TextUnit getLineHeight();
     method public androidx.ui.text.LocaleList? getLocaleList();
     method public androidx.ui.graphics.Shadow? getShadow();
     method public androidx.ui.text.style.TextAlign? getTextAlign();
@@ -802,13 +802,13 @@
   }
 
   public final class TextIndent {
-    ctor public TextIndent(androidx.ui.core.TextUnit firstLine, androidx.ui.core.TextUnit restLine);
+    ctor public TextIndent(androidx.ui.unit.TextUnit firstLine, androidx.ui.unit.TextUnit restLine);
     ctor public TextIndent();
-    method public androidx.ui.core.TextUnit component1();
-    method public androidx.ui.core.TextUnit component2();
-    method public androidx.ui.text.style.TextIndent copy(androidx.ui.core.TextUnit firstLine, androidx.ui.core.TextUnit restLine);
-    method public androidx.ui.core.TextUnit getFirstLine();
-    method public androidx.ui.core.TextUnit getRestLine();
+    method public androidx.ui.unit.TextUnit component1();
+    method public androidx.ui.unit.TextUnit component2();
+    method public androidx.ui.text.style.TextIndent copy(androidx.ui.unit.TextUnit firstLine, androidx.ui.unit.TextUnit restLine);
+    method public androidx.ui.unit.TextUnit getFirstLine();
+    method public androidx.ui.unit.TextUnit getRestLine();
   }
 
   public final class TextIndentKt {
diff --git a/ui/ui-text/api/restricted_current.txt b/ui/ui-text/api/restricted_current.txt
index 78b98e6..9463223 100644
--- a/ui/ui-text/api/restricted_current.txt
+++ b/ui/ui-text/api/restricted_current.txt
@@ -119,7 +119,7 @@
   }
 
   public interface PlatformTextInputService {
-    method public void notifyFocusedRect(androidx.ui.engine.geometry.Rect rect);
+    method public void notifyFocusedRect(androidx.ui.geometry.Rect rect);
     method public void onStateUpdated(androidx.ui.input.InputState model);
     method public void showSoftwareKeyboard();
     method public void startInput(androidx.ui.input.InputState initModel, androidx.ui.input.KeyboardType keyboardType, androidx.ui.input.ImeAction imeAction, kotlin.jvm.functions.Function1<? super java.util.List<? extends androidx.ui.input.EditOperation>,kotlin.Unit> onEditCommand, kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit> onImeActionPerformed);
@@ -158,7 +158,7 @@
 
   public class TextInputService {
     ctor public TextInputService(androidx.ui.input.PlatformTextInputService platformTextInputService);
-    method public void notifyFocusedRect(int token, androidx.ui.engine.geometry.Rect rect);
+    method public void notifyFocusedRect(int token, androidx.ui.geometry.Rect rect);
     method public void onStateUpdated(int token, androidx.ui.input.InputState model);
     method public void showSoftwareKeyboard(int token);
     method public int startInput(androidx.ui.input.InputState initModel, androidx.ui.input.KeyboardType keyboardType, androidx.ui.input.ImeAction imeAction, kotlin.jvm.functions.Function1<? super java.util.List<? extends androidx.ui.input.EditOperation>,kotlin.Unit> onEditCommand, kotlin.jvm.functions.Function1<? super androidx.ui.input.ImeAction,kotlin.Unit> onImeActionPerformed);
@@ -284,10 +284,10 @@
 
   public final class MultiParagraph {
     ctor public MultiParagraph(androidx.ui.text.MultiParagraphIntrinsics intrinsics, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints);
-    ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
     method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
-    method public androidx.ui.engine.geometry.Rect getBoundingBox(int offset);
-    method public androidx.ui.engine.geometry.Rect getCursorRect(int offset);
+    method public androidx.ui.geometry.Rect getBoundingBox(int offset);
+    method public androidx.ui.geometry.Rect getCursorRect(int offset);
     method public boolean getDidExceedMaxLines();
     method public float getFirstBaseline();
     method public float getHeight();
@@ -304,7 +304,7 @@
     method public float getMaxIntrinsicWidth();
     method public int getMaxLines();
     method public float getMinIntrinsicWidth();
-    method public int getOffsetForPosition(androidx.ui.core.PxPosition position);
+    method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
     method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
     method public androidx.ui.graphics.Path getPathForRange(int start, int end);
     method public float getWidth();
@@ -321,7 +321,7 @@
   }
 
   public final class MultiParagraphIntrinsics implements androidx.ui.text.ParagraphIntrinsics {
-    ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
     method public androidx.ui.text.AnnotatedString getAnnotatedString();
     method public float getMaxIntrinsicWidth();
     method public float getMinIntrinsicWidth();
@@ -334,8 +334,8 @@
 
   public interface Paragraph {
     method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
-    method public androidx.ui.engine.geometry.Rect getBoundingBox(int offset);
-    method public androidx.ui.engine.geometry.Rect getCursorRect(int offset);
+    method public androidx.ui.geometry.Rect getBoundingBox(int offset);
+    method public androidx.ui.geometry.Rect getCursorRect(int offset);
     method public boolean getDidExceedMaxLines();
     method public float getFirstBaseline();
     method public float getHeight();
@@ -350,7 +350,7 @@
     method public float getLineWidth(int lineIndex);
     method public float getMaxIntrinsicWidth();
     method public float getMinIntrinsicWidth();
-    method public int getOffsetForPosition(androidx.ui.core.PxPosition position);
+    method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
     method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
     method public androidx.ui.graphics.Path getPathForRange(int start, int end);
     method public float getWidth();
@@ -381,23 +381,23 @@
   }
 
   public final class ParagraphIntrinsicsKt {
-    method public static androidx.ui.text.ParagraphIntrinsics ParagraphIntrinsics(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    method public static androidx.ui.text.ParagraphIntrinsics ParagraphIntrinsics(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
   }
 
   public final class ParagraphKt {
-    method public static androidx.ui.text.Paragraph Paragraph(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.core.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+    method public static androidx.ui.text.Paragraph Paragraph(String text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.SpanStyle>> spanStyles = listOf(), int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
     method public static androidx.ui.text.Paragraph Paragraph(androidx.ui.text.ParagraphIntrinsics paragraphIntrinsics, int maxLines = 2147483647, boolean ellipsis = false, androidx.ui.text.ParagraphConstraints constraints);
   }
 
   public final class ParagraphStyle {
-    ctor public ParagraphStyle(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    ctor public ParagraphStyle(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     ctor public ParagraphStyle();
     method public androidx.ui.text.style.TextAlign? component1();
     method public androidx.ui.text.style.TextDirectionAlgorithm? component2();
-    method public androidx.ui.core.TextUnit component3();
+    method public androidx.ui.unit.TextUnit component3();
     method public androidx.ui.text.style.TextIndent? component4();
-    method public androidx.ui.text.ParagraphStyle copy(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
-    method public androidx.ui.core.TextUnit getLineHeight();
+    method public androidx.ui.text.ParagraphStyle copy(androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method public androidx.ui.unit.TextUnit getLineHeight();
     method public androidx.ui.text.style.TextAlign? getTextAlign();
     method public androidx.ui.text.style.TextDirectionAlgorithm? getTextDirectionAlgorithm();
     method public androidx.ui.text.style.TextIndent? getTextIndent();
@@ -409,7 +409,7 @@
   }
 
   public final class SpanStyle {
-    ctor public SpanStyle(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
+    ctor public SpanStyle(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
     ctor public SpanStyle();
     method public androidx.ui.graphics.Color? component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
@@ -417,25 +417,25 @@
     method public androidx.ui.graphics.Color? component12();
     method public androidx.ui.text.style.TextDecoration? component13();
     method public androidx.ui.graphics.Shadow? component14();
-    method public androidx.ui.core.TextUnit component2();
+    method public androidx.ui.unit.TextUnit component2();
     method public androidx.ui.text.font.FontWeight? component3();
     method public androidx.ui.text.font.FontStyle? component4();
     method public androidx.ui.text.font.FontSynthesis? component5();
     method public androidx.ui.text.font.FontFamily? component6();
     method public String? component7();
-    method public androidx.ui.core.TextUnit component8();
+    method public androidx.ui.unit.TextUnit component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.SpanStyle copy(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
+    method public androidx.ui.text.SpanStyle copy(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow);
     method public androidx.ui.graphics.Color? getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public androidx.ui.graphics.Color? getColor();
     method public androidx.ui.text.font.FontFamily? getFontFamily();
     method public String? getFontFeatureSettings();
-    method public androidx.ui.core.TextUnit getFontSize();
+    method public androidx.ui.unit.TextUnit getFontSize();
     method public androidx.ui.text.font.FontStyle? getFontStyle();
     method public androidx.ui.text.font.FontSynthesis? getFontSynthesis();
     method public androidx.ui.text.font.FontWeight? getFontWeight();
-    method public androidx.ui.core.TextUnit getLetterSpacing();
+    method public androidx.ui.unit.TextUnit getLetterSpacing();
     method public androidx.ui.text.LocaleList? getLocaleList();
     method public androidx.ui.graphics.Shadow? getShadow();
     method public androidx.ui.text.style.TextDecoration? getTextDecoration();
@@ -465,19 +465,19 @@
   }
 
   public final class TextLayoutInput {
-    ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.core.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+    ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
     method public androidx.ui.text.AnnotatedString component1();
     method public androidx.ui.text.TextStyle component2();
     method public int component3();
     method public boolean component4();
     method public androidx.ui.text.style.TextOverflow component5();
-    method public androidx.ui.core.Density component6();
+    method public androidx.ui.unit.Density component6();
     method public androidx.ui.core.LayoutDirection component7();
     method public androidx.ui.text.font.Font.ResourceLoader component8();
     method public androidx.ui.core.Constraints component9();
-    method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.core.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+    method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
     method public androidx.ui.core.Constraints getConstraints();
-    method public androidx.ui.core.Density getDensity();
+    method public androidx.ui.unit.Density getDensity();
     method public androidx.ui.core.LayoutDirection getLayoutDirection();
     method public int getMaxLines();
     method public androidx.ui.text.style.TextOverflow getOverflow();
@@ -489,28 +489,28 @@
 
   public final class TextLayoutResult {
     method public androidx.ui.text.TextLayoutInput component1();
-    method public androidx.ui.core.IntPxSize component3();
-    method public androidx.ui.text.TextLayoutResult copy(androidx.ui.text.TextLayoutInput layoutInput, androidx.ui.text.MultiParagraph multiParagraph, androidx.ui.core.IntPxSize size);
+    method public androidx.ui.unit.IntPxSize component3();
+    method public androidx.ui.text.TextLayoutResult copy(androidx.ui.text.TextLayoutInput layoutInput, androidx.ui.text.MultiParagraph multiParagraph, androidx.ui.unit.IntPxSize size);
     method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
-    method public androidx.ui.engine.geometry.Rect getBoundingBox(int offset);
+    method public androidx.ui.geometry.Rect getBoundingBox(int offset);
     method public boolean getDidOverflowHeight();
     method public boolean getDidOverflowWidth();
-    method public androidx.ui.core.IntPx getFirstBaseline();
+    method public androidx.ui.unit.IntPx getFirstBaseline();
     method public boolean getHasVisualOverflow();
-    method public androidx.ui.core.Px getHorizontalPosition(int offset, boolean usePrimaryDirection);
-    method public androidx.ui.core.IntPx getLastBaseline();
+    method public androidx.ui.unit.Px getHorizontalPosition(int offset, boolean usePrimaryDirection);
+    method public androidx.ui.unit.IntPx getLastBaseline();
     method public androidx.ui.text.TextLayoutInput getLayoutInput();
-    method public androidx.ui.core.Px getLineBottom(int lineIndex);
+    method public androidx.ui.unit.Px getLineBottom(int lineIndex);
     method public int getLineForOffset(int offset);
-    method public int getOffsetForPosition(androidx.ui.core.PxPosition position);
+    method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
     method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
-    method public androidx.ui.core.IntPxSize getSize();
+    method public androidx.ui.unit.IntPxSize getSize();
     method public androidx.ui.text.TextRange getWordBoundary(int offset);
     property public final boolean didOverflowHeight;
     property public final boolean didOverflowWidth;
-    property public final androidx.ui.core.IntPx firstBaseline;
+    property public final androidx.ui.unit.IntPx firstBaseline;
     property public final boolean hasVisualOverflow;
-    property public final androidx.ui.core.IntPx lastBaseline;
+    property public final androidx.ui.unit.IntPx lastBaseline;
   }
 
   public final class TextLayoutResultKt {
@@ -553,7 +553,7 @@
   }
 
   public final class TextStyle {
-    ctor public TextStyle(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    ctor public TextStyle(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     ctor public TextStyle();
     method public androidx.ui.graphics.Color? component1();
     method public androidx.ui.text.style.TextGeometricTransform? component10();
@@ -563,28 +563,28 @@
     method public androidx.ui.graphics.Shadow? component14();
     method public androidx.ui.text.style.TextAlign? component15();
     method public androidx.ui.text.style.TextDirectionAlgorithm? component16();
-    method public androidx.ui.core.TextUnit component17();
+    method public androidx.ui.unit.TextUnit component17();
     method public androidx.ui.text.style.TextIndent? component18();
-    method public androidx.ui.core.TextUnit component2();
+    method public androidx.ui.unit.TextUnit component2();
     method public androidx.ui.text.font.FontWeight? component3();
     method public androidx.ui.text.font.FontStyle? component4();
     method public androidx.ui.text.font.FontSynthesis? component5();
     method public androidx.ui.text.font.FontFamily? component6();
     method public String? component7();
-    method public androidx.ui.core.TextUnit component8();
+    method public androidx.ui.unit.TextUnit component8();
     method public androidx.ui.text.style.BaselineShift? component9();
-    method public androidx.ui.text.TextStyle copy(androidx.ui.graphics.Color? color, androidx.ui.core.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.core.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.core.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
+    method public androidx.ui.text.TextStyle copy(androidx.ui.graphics.Color? color, androidx.ui.unit.TextUnit fontSize, androidx.ui.text.font.FontWeight? fontWeight, androidx.ui.text.font.FontStyle? fontStyle, androidx.ui.text.font.FontSynthesis? fontSynthesis, androidx.ui.text.font.FontFamily? fontFamily, String? fontFeatureSettings, androidx.ui.unit.TextUnit letterSpacing, androidx.ui.text.style.BaselineShift? baselineShift, androidx.ui.text.style.TextGeometricTransform? textGeometricTransform, androidx.ui.text.LocaleList? localeList, androidx.ui.graphics.Color? background, androidx.ui.text.style.TextDecoration? textDecoration, androidx.ui.graphics.Shadow? shadow, androidx.ui.text.style.TextAlign? textAlign, androidx.ui.text.style.TextDirectionAlgorithm? textDirectionAlgorithm, androidx.ui.unit.TextUnit lineHeight, androidx.ui.text.style.TextIndent? textIndent);
     method public androidx.ui.graphics.Color? getBackground();
     method public androidx.ui.text.style.BaselineShift? getBaselineShift();
     method public androidx.ui.graphics.Color? getColor();
     method public androidx.ui.text.font.FontFamily? getFontFamily();
     method public String? getFontFeatureSettings();
-    method public androidx.ui.core.TextUnit getFontSize();
+    method public androidx.ui.unit.TextUnit getFontSize();
     method public androidx.ui.text.font.FontStyle? getFontStyle();
     method public androidx.ui.text.font.FontSynthesis? getFontSynthesis();
     method public androidx.ui.text.font.FontWeight? getFontWeight();
-    method public androidx.ui.core.TextUnit getLetterSpacing();
-    method public androidx.ui.core.TextUnit getLineHeight();
+    method public androidx.ui.unit.TextUnit getLetterSpacing();
+    method public androidx.ui.unit.TextUnit getLineHeight();
     method public androidx.ui.text.LocaleList? getLocaleList();
     method public androidx.ui.graphics.Shadow? getShadow();
     method public androidx.ui.text.style.TextAlign? getTextAlign();
@@ -802,13 +802,13 @@
   }
 
   public final class TextIndent {
-    ctor public TextIndent(androidx.ui.core.TextUnit firstLine, androidx.ui.core.TextUnit restLine);
+    ctor public TextIndent(androidx.ui.unit.TextUnit firstLine, androidx.ui.unit.TextUnit restLine);
     ctor public TextIndent();
-    method public androidx.ui.core.TextUnit component1();
-    method public androidx.ui.core.TextUnit component2();
-    method public androidx.ui.text.style.TextIndent copy(androidx.ui.core.TextUnit firstLine, androidx.ui.core.TextUnit restLine);
-    method public androidx.ui.core.TextUnit getFirstLine();
-    method public androidx.ui.core.TextUnit getRestLine();
+    method public androidx.ui.unit.TextUnit component1();
+    method public androidx.ui.unit.TextUnit component2();
+    method public androidx.ui.text.style.TextIndent copy(androidx.ui.unit.TextUnit firstLine, androidx.ui.unit.TextUnit restLine);
+    method public androidx.ui.unit.TextUnit getFirstLine();
+    method public androidx.ui.unit.TextUnit getRestLine();
   }
 
   public final class TextIndentKt {
diff --git a/ui/ui-text/build.gradle b/ui/ui-text/build.gradle
index e46b24f..b7e3a3f 100644
--- a/ui/ui-text/build.gradle
+++ b/ui/ui-text/build.gradle
@@ -38,6 +38,7 @@
     implementation "androidx.core:core:1.0.2"
 
     implementation project(":compose:compose-runtime")
+    implementation project(":ui:ui-util")
     implementation project(":ui:ui-android-text")
     api project(":ui:ui-core")
     implementation project(":ui:ui-vector")
diff --git a/ui/ui-text/integration-tests/samples/src/main/java/androidx/ui/text/samples/AnnotatedStringBuilderSamples.kt b/ui/ui-text/integration-tests/samples/src/main/java/androidx/ui/text/samples/AnnotatedStringBuilderSamples.kt
index c408d27..cb691cb 100644
--- a/ui/ui-text/integration-tests/samples/src/main/java/androidx/ui/text/samples/AnnotatedStringBuilderSamples.kt
+++ b/ui/ui-text/integration-tests/samples/src/main/java/androidx/ui/text/samples/AnnotatedStringBuilderSamples.kt
@@ -17,12 +17,12 @@
 package androidx.ui.text.samples
 
 import androidx.annotation.Sampled
-import androidx.ui.core.sp
 import androidx.ui.graphics.Color
 import androidx.ui.text.AnnotatedString
 import androidx.ui.text.ParagraphStyle
 import androidx.ui.text.SpanStyle
 import androidx.ui.text.withStyle
+import androidx.ui.unit.sp
 
 @Sampled
 fun AnnotatedStringBuilderSample() {
diff --git a/ui/ui-text/integration-tests/samples/src/main/java/androidx/ui/text/samples/BaselineShiftSamples.kt b/ui/ui-text/integration-tests/samples/src/main/java/androidx/ui/text/samples/BaselineShiftSamples.kt
index 6095765..a5133e5 100644
--- a/ui/ui-text/integration-tests/samples/src/main/java/androidx/ui/text/samples/BaselineShiftSamples.kt
+++ b/ui/ui-text/integration-tests/samples/src/main/java/androidx/ui/text/samples/BaselineShiftSamples.kt
@@ -20,11 +20,11 @@
 import androidx.compose.Composable
 import androidx.ui.core.Span
 import androidx.ui.core.Text
-import androidx.ui.core.sp
 import androidx.ui.text.AnnotatedString
 import androidx.ui.text.SpanStyle
 import androidx.ui.text.style.BaselineShift
 import androidx.ui.text.withStyle
+import androidx.ui.unit.sp
 
 @Sampled
 @Composable
diff --git a/ui/ui-text/integration-tests/samples/src/main/java/androidx/ui/text/samples/ParagraphStyleSamples.kt b/ui/ui-text/integration-tests/samples/src/main/java/androidx/ui/text/samples/ParagraphStyleSamples.kt
index 81e1be9..9cc031f 100644
--- a/ui/ui-text/integration-tests/samples/src/main/java/androidx/ui/text/samples/ParagraphStyleSamples.kt
+++ b/ui/ui-text/integration-tests/samples/src/main/java/androidx/ui/text/samples/ParagraphStyleSamples.kt
@@ -19,13 +19,13 @@
 import androidx.annotation.Sampled
 import androidx.compose.Composable
 import androidx.ui.core.Text
-import androidx.ui.core.sp
 import androidx.ui.text.AnnotatedString
 import androidx.ui.text.ParagraphStyle
 import androidx.ui.text.TextStyle
 import androidx.ui.text.style.TextAlign
 import androidx.ui.text.style.TextDirectionAlgorithm
 import androidx.ui.text.style.TextIndent
+import androidx.ui.unit.sp
 
 @Sampled
 @Composable
diff --git a/ui/ui-text/integration-tests/samples/src/main/java/androidx/ui/text/samples/SpanStyleSamples.kt b/ui/ui-text/integration-tests/samples/src/main/java/androidx/ui/text/samples/SpanStyleSamples.kt
index d8f7cdd..e9ec6c7 100644
--- a/ui/ui-text/integration-tests/samples/src/main/java/androidx/ui/text/samples/SpanStyleSamples.kt
+++ b/ui/ui-text/integration-tests/samples/src/main/java/androidx/ui/text/samples/SpanStyleSamples.kt
@@ -20,10 +20,10 @@
 import androidx.compose.Composable
 import androidx.ui.core.Span
 import androidx.ui.core.Text
-import androidx.ui.core.sp
 import androidx.ui.graphics.Color
 import androidx.ui.text.SpanStyle
 import androidx.ui.text.TextStyle
+import androidx.ui.unit.sp
 
 @Sampled
 @Composable
diff --git a/ui/ui-text/integration-tests/samples/src/main/java/androidx/ui/text/samples/TextStyleSamples.kt b/ui/ui-text/integration-tests/samples/src/main/java/androidx/ui/text/samples/TextStyleSamples.kt
index e3b3ab7..bf0744b 100644
--- a/ui/ui-text/integration-tests/samples/src/main/java/androidx/ui/text/samples/TextStyleSamples.kt
+++ b/ui/ui-text/integration-tests/samples/src/main/java/androidx/ui/text/samples/TextStyleSamples.kt
@@ -19,14 +19,14 @@
 import androidx.annotation.Sampled
 import androidx.compose.Composable
 import androidx.ui.core.Text
-import androidx.ui.core.em
-import androidx.ui.core.sp
 import androidx.ui.graphics.Color
 import androidx.ui.text.TextStyle
 import androidx.ui.text.font.FontFamily
 import androidx.ui.text.font.FontStyle
 import androidx.ui.text.font.FontWeight
 import androidx.ui.text.style.TextDecoration
+import androidx.ui.unit.em
+import androidx.ui.unit.sp
 
 @Sampled
 @Composable
diff --git a/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeInputFieldFocusTransition.kt b/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeInputFieldFocusTransition.kt
index c26813e..bc3ef7c 100644
--- a/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeInputFieldFocusTransition.kt
+++ b/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeInputFieldFocusTransition.kt
@@ -21,12 +21,12 @@
 import androidx.compose.state
 import androidx.ui.core.FocusManagerAmbient
 import androidx.ui.core.TextField
-import androidx.ui.core.sp
 import androidx.ui.foundation.VerticalScroller
 import androidx.ui.graphics.Color
 import androidx.ui.input.ImeAction
 import androidx.ui.layout.Column
 import androidx.ui.text.TextStyle
+import androidx.ui.unit.sp
 
 @Composable
 fun TextFieldFocusTransition() {
diff --git a/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeInputFieldTrickyUseCase.kt b/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeInputFieldTrickyUseCase.kt
index 0da5287..9a31f82 100644
--- a/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeInputFieldTrickyUseCase.kt
+++ b/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeInputFieldTrickyUseCase.kt
@@ -19,11 +19,11 @@
 import androidx.compose.Composable
 import androidx.compose.state
 import androidx.ui.core.TextField
-import androidx.ui.core.sp
-import androidx.ui.layout.Column
 import androidx.ui.foundation.VerticalScroller
 import androidx.ui.input.KeyboardType
+import androidx.ui.layout.Column
 import androidx.ui.text.TextStyle
+import androidx.ui.unit.sp
 
 @Composable
 fun InputFieldTrickyUseCase() {
diff --git a/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeMultiParagraph.kt b/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeMultiParagraph.kt
index be4058e..fcf0d45 100644
--- a/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeMultiParagraph.kt
+++ b/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeMultiParagraph.kt
@@ -18,7 +18,6 @@
 
 import androidx.compose.Composable
 import androidx.ui.core.Text
-import androidx.ui.core.sp
 import androidx.ui.foundation.VerticalScroller
 import androidx.ui.layout.Column
 import androidx.ui.text.AnnotatedString
@@ -27,6 +26,7 @@
 import androidx.ui.text.style.TextAlign
 import androidx.ui.text.style.TextIndent
 import androidx.ui.text.withStyle
+import androidx.ui.unit.sp
 
 val lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas fermentum non" +
         " diam sed pretium."
diff --git a/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeText.kt b/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeText.kt
index bab8080..fd2d283 100644
--- a/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeText.kt
+++ b/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeText.kt
@@ -19,26 +19,21 @@
 import androidx.compose.Composable
 import androidx.ui.core.Span
 import androidx.ui.core.Text
-import androidx.ui.core.px
-import androidx.ui.engine.geometry.Offset
-import androidx.ui.text.font.FontStyle
-import androidx.ui.text.font.FontWeight
-import androidx.ui.text.style.TextAlign
-import androidx.ui.text.font.FontFamily
+import androidx.ui.foundation.VerticalScroller
+import androidx.ui.geometry.Offset
 import androidx.ui.graphics.Color
+import androidx.ui.graphics.Shadow
 import androidx.ui.graphics.lerp
 import androidx.ui.layout.Column
-import androidx.ui.layout.Row
-import androidx.ui.foundation.VerticalScroller
-import androidx.ui.graphics.Shadow
-import androidx.ui.text.TextStyle
-import androidx.ui.text.style.TextOverflow
-import androidx.ui.core.em
-import androidx.ui.core.sp
 import androidx.ui.layout.LayoutHeight
 import androidx.ui.layout.LayoutWidth
+import androidx.ui.layout.Row
 import androidx.ui.text.LocaleList
 import androidx.ui.text.SpanStyle
+import androidx.ui.text.TextStyle
+import androidx.ui.text.font.FontFamily
+import androidx.ui.text.font.FontStyle
+import androidx.ui.text.font.FontWeight
 import androidx.ui.text.samples.BaselineShiftSample
 import androidx.ui.text.samples.FontFamilyCursiveSample
 import androidx.ui.text.samples.FontFamilyMonospaceSample
@@ -50,6 +45,11 @@
 import androidx.ui.text.samples.TextDecorationLineThroughSample
 import androidx.ui.text.samples.TextDecorationUnderlineSample
 import androidx.ui.text.samples.TextStyleSample
+import androidx.ui.text.style.TextAlign
+import androidx.ui.text.style.TextOverflow
+import androidx.ui.unit.em
+import androidx.ui.unit.px
+import androidx.ui.unit.sp
 
 val displayText = "Text Demo"
 val displayTextChinese = "文本演示"
diff --git a/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeTextSelectionSample.kt b/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeTextSelectionSample.kt
index a093c94..c9159e4 100644
--- a/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeTextSelectionSample.kt
+++ b/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeTextSelectionSample.kt
@@ -18,15 +18,11 @@
 
 import androidx.compose.Composable
 import androidx.compose.state
-import androidx.ui.core.Dp
 import androidx.ui.core.Layout
 import androidx.ui.core.Modifier
 import androidx.ui.core.Text
-import androidx.ui.core.dp
-import androidx.ui.core.max
 import androidx.ui.core.selection.Selection
 import androidx.ui.core.selection.SelectionContainer
-import androidx.ui.core.sp
 import androidx.ui.foundation.VerticalScroller
 import androidx.ui.foundation.shape.DrawShape
 import androidx.ui.foundation.shape.RectangleShape
@@ -38,6 +34,10 @@
 import androidx.ui.text.SpanStyle
 import androidx.ui.text.TextStyle
 import androidx.ui.text.withStyle
+import androidx.ui.unit.Dp
+import androidx.ui.unit.dp
+import androidx.ui.unit.max
+import androidx.ui.unit.sp
 
 val commonStyle = TextStyle(fontSize = 16.sp, color = Color(0xFF9e9e9e), lineHeight = 22.sp)
 val header = TextStyle(fontSize = 22.sp, color = Color(0xFF707070), lineHeight = 36.sp)
diff --git a/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeVariousInputField.kt b/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeVariousInputField.kt
index 797677f..64cc0bd 100644
--- a/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeVariousInputField.kt
+++ b/ui/ui-text/integration-tests/text-demos/src/main/java/androidx/ui/text/demos/ComposeVariousInputField.kt
@@ -20,24 +20,24 @@
 import androidx.compose.state
 import androidx.ui.core.Layout
 import androidx.ui.core.LayoutTag
-import androidx.ui.input.OffsetMap
-import androidx.ui.input.PasswordVisualTransformation
 import androidx.ui.core.Text
 import androidx.ui.core.TextField
-import androidx.ui.input.TransformedText
-import androidx.ui.input.VisualTransformation
-import androidx.ui.core.ipx
 import androidx.ui.core.tag
+import androidx.ui.foundation.VerticalScroller
 import androidx.ui.graphics.Color
 import androidx.ui.input.ImeAction
 import androidx.ui.input.KeyboardType
+import androidx.ui.input.OffsetMap
+import androidx.ui.input.PasswordVisualTransformation
+import androidx.ui.input.TransformedText
+import androidx.ui.input.VisualTransformation
 import androidx.ui.layout.Column
-import androidx.ui.foundation.VerticalScroller
 import androidx.ui.layout.Container
 import androidx.ui.text.AnnotatedString
 import androidx.ui.text.LocaleList
 import androidx.ui.text.TextStyle
 import androidx.ui.text.toUpperCase
+import androidx.ui.unit.ipx
 
 /**
  * The offset translator used for credit card input field.
diff --git a/ui/ui-text/src/androidTest/java/androidx/ui/text/MultiParagraphIntegrationTest.kt b/ui/ui-text/src/androidTest/java/androidx/ui/text/MultiParagraphIntegrationTest.kt
index 9365a0c..beb7819 100644
--- a/ui/ui-text/src/androidTest/java/androidx/ui/text/MultiParagraphIntegrationTest.kt
+++ b/ui/ui-text/src/androidTest/java/androidx/ui/text/MultiParagraphIntegrationTest.kt
@@ -19,13 +19,7 @@
 import androidx.test.filters.SmallTest
 import androidx.test.filters.Suppress
 import androidx.test.platform.app.InstrumentationRegistry
-import androidx.ui.core.Density
-import androidx.ui.core.PxPosition
-import androidx.ui.core.TextUnit
-import androidx.ui.core.px
-import androidx.ui.core.sp
-import androidx.ui.core.withDensity
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Path
 import androidx.ui.graphics.PathOperation
 import androidx.ui.text.FontTestData.Companion.BASIC_MEASURE_FONT
@@ -34,6 +28,12 @@
 import androidx.ui.text.style.TextDirection
 import androidx.ui.text.style.TextDirectionAlgorithm
 import androidx.ui.text.style.TextIndent
+import androidx.ui.unit.Density
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.TextUnit
+import androidx.ui.unit.px
+import androidx.ui.unit.sp
+import androidx.ui.unit.withDensity
 import com.google.common.truth.Truth.assertThat
 import com.google.common.truth.Truth.assertWithMessage
 import org.junit.Test
diff --git a/ui/ui-text/src/androidTest/java/androidx/ui/text/ParagraphIntegrationTest.kt b/ui/ui-text/src/androidTest/java/androidx/ui/text/ParagraphIntegrationTest.kt
index a92fa8a..ca8fb29 100644
--- a/ui/ui-text/src/androidTest/java/androidx/ui/text/ParagraphIntegrationTest.kt
+++ b/ui/ui-text/src/androidTest/java/androidx/ui/text/ParagraphIntegrationTest.kt
@@ -18,14 +18,8 @@
 import androidx.test.filters.SdkSuppress
 import androidx.test.filters.SmallTest
 import androidx.test.platform.app.InstrumentationRegistry
-import androidx.ui.core.Density
-import androidx.ui.core.PxPosition
-import androidx.ui.core.em
-import androidx.ui.core.px
-import androidx.ui.core.sp
-import androidx.ui.core.withDensity
-import androidx.ui.engine.geometry.Offset
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Offset
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Canvas
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Image
@@ -45,6 +39,12 @@
 import androidx.ui.text.style.TextDirectionAlgorithm
 import androidx.ui.text.style.TextGeometricTransform
 import androidx.ui.text.style.TextIndent
+import androidx.ui.unit.Density
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.em
+import androidx.ui.unit.px
+import androidx.ui.unit.sp
+import androidx.ui.unit.withDensity
 import com.google.common.truth.Truth.assertThat
 import com.google.common.truth.Truth.assertWithMessage
 import org.junit.Test
diff --git a/ui/ui-text/src/androidTest/java/androidx/ui/text/ParagraphIntrinsicIntegrationTest.kt b/ui/ui-text/src/androidTest/java/androidx/ui/text/ParagraphIntrinsicIntegrationTest.kt
index c7a85bb..322e2dc 100644
--- a/ui/ui-text/src/androidTest/java/androidx/ui/text/ParagraphIntrinsicIntegrationTest.kt
+++ b/ui/ui-text/src/androidTest/java/androidx/ui/text/ParagraphIntrinsicIntegrationTest.kt
@@ -18,12 +18,12 @@
 
 import androidx.test.filters.SmallTest
 import androidx.test.platform.app.InstrumentationRegistry
-import androidx.ui.core.Density
-import androidx.ui.core.TextUnit
-import androidx.ui.core.sp
-import androidx.ui.core.withDensity
 import androidx.ui.text.font.asFontFamily
 import androidx.ui.text.style.TextDirectionAlgorithm
+import androidx.ui.unit.Density
+import androidx.ui.unit.TextUnit
+import androidx.ui.unit.sp
+import androidx.ui.unit.withDensity
 import com.google.common.truth.Truth.assertThat
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-text/src/androidTest/java/androidx/ui/text/TextDelegateIntegrationTest.kt b/ui/ui-text/src/androidTest/java/androidx/ui/text/TextDelegateIntegrationTest.kt
index a38d296..67e0374 100644
--- a/ui/ui-text/src/androidTest/java/androidx/ui/text/TextDelegateIntegrationTest.kt
+++ b/ui/ui-text/src/androidTest/java/androidx/ui/text/TextDelegateIntegrationTest.kt
@@ -20,12 +20,8 @@
 import androidx.test.filters.SmallTest
 import androidx.test.platform.app.InstrumentationRegistry
 import androidx.ui.core.Constraints
-import androidx.ui.core.Density
 import androidx.ui.core.LayoutDirection
-import androidx.ui.core.ipx
-import androidx.ui.core.sp
-import androidx.ui.core.withDensity
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Canvas
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
@@ -33,6 +29,10 @@
 import androidx.ui.text.font.asFontFamily
 import androidx.ui.text.matchers.assertThat
 import androidx.ui.text.style.TextOverflow
+import androidx.ui.unit.Density
+import androidx.ui.unit.ipx
+import androidx.ui.unit.sp
+import androidx.ui.unit.withDensity
 import com.google.common.truth.Truth.assertThat
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-text/src/androidTest/java/androidx/ui/text/TextLayoutResultIntegrationTest.kt b/ui/ui-text/src/androidTest/java/androidx/ui/text/TextLayoutResultIntegrationTest.kt
index 40f58f4..464d66f 100644
--- a/ui/ui-text/src/androidTest/java/androidx/ui/text/TextLayoutResultIntegrationTest.kt
+++ b/ui/ui-text/src/androidTest/java/androidx/ui/text/TextLayoutResultIntegrationTest.kt
@@ -19,18 +19,18 @@
 import androidx.test.filters.SmallTest
 import androidx.test.platform.app.InstrumentationRegistry
 import androidx.ui.core.Constraints
-import androidx.ui.core.Density
 import androidx.ui.core.LayoutDirection
-import androidx.ui.core.PxPosition
-import androidx.ui.core.ipx
-import androidx.ui.core.px
-import androidx.ui.core.sp
-import androidx.ui.core.withDensity
 import androidx.ui.graphics.Canvas
 import androidx.ui.text.FontTestData.Companion.BASIC_MEASURE_FONT
 import androidx.ui.text.font.asFontFamily
 import androidx.ui.text.matchers.isZero
 import androidx.ui.text.style.TextOverflow
+import androidx.ui.unit.Density
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.ipx
+import androidx.ui.unit.px
+import androidx.ui.unit.sp
+import androidx.ui.unit.withDensity
 import com.google.common.truth.Truth.assertThat
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-text/src/androidTest/java/androidx/ui/text/TextTestExtensions.kt b/ui/ui-text/src/androidTest/java/androidx/ui/text/TextTestExtensions.kt
index 904f0f5..befe36b 100644
--- a/ui/ui-text/src/androidTest/java/androidx/ui/text/TextTestExtensions.kt
+++ b/ui/ui-text/src/androidTest/java/androidx/ui/text/TextTestExtensions.kt
@@ -20,9 +20,9 @@
 import android.graphics.Canvas
 import android.graphics.Typeface
 import androidx.core.content.res.ResourcesCompat
-import androidx.ui.core.IntPx
-import androidx.ui.core.ipx
 import androidx.ui.text.font.Font
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.ipx
 import kotlin.math.ceil
 import kotlin.math.roundToInt
 
diff --git a/ui/ui-text/src/androidTest/java/androidx/ui/text/platform/AndroidParagraphTest.kt b/ui/ui-text/src/androidTest/java/androidx/ui/text/platform/AndroidParagraphTest.kt
index fd75935..d774554 100644
--- a/ui/ui-text/src/androidTest/java/androidx/ui/text/platform/AndroidParagraphTest.kt
+++ b/ui/ui-text/src/androidTest/java/androidx/ui/text/platform/AndroidParagraphTest.kt
@@ -21,12 +21,7 @@
 import androidx.text.style.ShadowSpan
 import androidx.text.style.SkewXSpan
 import androidx.text.style.TypefaceSpan
-import androidx.ui.core.Density
-import androidx.ui.core.em
-import androidx.ui.core.px
-import androidx.ui.core.sp
-import androidx.ui.core.withDensity
-import androidx.ui.engine.geometry.Offset
+import androidx.ui.geometry.Offset
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Shadow
 import androidx.ui.graphics.toArgb
@@ -49,6 +44,11 @@
 import androidx.ui.text.style.TextDirectionAlgorithm
 import androidx.ui.text.style.TextGeometricTransform
 import androidx.ui.text.style.TextIndent
+import androidx.ui.unit.Density
+import androidx.ui.unit.em
+import androidx.ui.unit.px
+import androidx.ui.unit.sp
+import androidx.ui.unit.withDensity
 import com.google.common.truth.Truth.assertThat
 import com.nhaarman.mockitokotlin2.any
 import com.nhaarman.mockitokotlin2.eq
diff --git a/ui/ui-text/src/main/java/androidx/ui/input/TextInputService.kt b/ui/ui-text/src/main/java/androidx/ui/input/TextInputService.kt
index 968a0d6..e626d2e 100644
--- a/ui/ui-text/src/main/java/androidx/ui/input/TextInputService.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/input/TextInputService.kt
@@ -16,7 +16,7 @@
 
 package androidx.ui.input
 
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 
 /**
  * The input session token.
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/MultiParagraph.kt b/ui/ui-text/src/main/java/androidx/ui/text/MultiParagraph.kt
index a1a9599..5a677e8 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/MultiParagraph.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/MultiParagraph.kt
@@ -16,16 +16,16 @@
 
 package androidx.ui.text
 
-import androidx.ui.core.Density
-import androidx.ui.core.Px
-import androidx.ui.core.PxPosition
-import androidx.ui.core.px
-import androidx.ui.engine.geometry.Offset
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Offset
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Canvas
 import androidx.ui.graphics.Path
 import androidx.ui.text.font.Font
 import androidx.ui.text.style.TextDirection
+import androidx.ui.unit.Density
+import androidx.ui.unit.Px
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.px
 import kotlin.math.max
 
 /**
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/MultiParagraphIntrinsics.kt b/ui/ui-text/src/main/java/androidx/ui/text/MultiParagraphIntrinsics.kt
index 4a3b03a..f97f1d0 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/MultiParagraphIntrinsics.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/MultiParagraphIntrinsics.kt
@@ -16,9 +16,9 @@
 
 package androidx.ui.text
 
-import androidx.ui.core.Density
 import androidx.ui.text.font.Font
 import androidx.ui.text.style.TextDirectionAlgorithm
+import androidx.ui.unit.Density
 
 /**
  * Calculates and provides the intrinsic width and height of text that contains [ParagraphStyle].
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/Paragraph.kt b/ui/ui-text/src/main/java/androidx/ui/text/Paragraph.kt
index fbe9a14..e2c17d0 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/Paragraph.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/Paragraph.kt
@@ -15,9 +15,7 @@
  */
 package androidx.ui.text
 
-import androidx.ui.core.Density
-import androidx.ui.core.PxPosition
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Canvas
 import androidx.ui.graphics.Path
 import androidx.ui.text.font.Font
@@ -25,6 +23,8 @@
 import androidx.ui.text.platform.AndroidParagraphIntrinsics
 import androidx.ui.text.platform.TypefaceAdapter
 import androidx.ui.text.style.TextDirection
+import androidx.ui.unit.Density
+import androidx.ui.unit.PxPosition
 
 internal const val DefaultMaxLines = Int.MAX_VALUE
 
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/ParagraphIntrinsics.kt b/ui/ui-text/src/main/java/androidx/ui/text/ParagraphIntrinsics.kt
index 381d35b..114a847 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/ParagraphIntrinsics.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/ParagraphIntrinsics.kt
@@ -16,10 +16,10 @@
 
 package androidx.ui.text
 
-import androidx.ui.core.Density
 import androidx.ui.text.font.Font
 import androidx.ui.text.platform.AndroidParagraphIntrinsics
 import androidx.ui.text.platform.TypefaceAdapter
+import androidx.ui.unit.Density
 
 /**
  * Calculates and presents the intrinsic width and height of text.
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/ParagraphStyle.kt b/ui/ui-text/src/main/java/androidx/ui/text/ParagraphStyle.kt
index 9354706..82dcb9a 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/ParagraphStyle.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/ParagraphStyle.kt
@@ -17,11 +17,11 @@
 package androidx.ui.text
 
 import androidx.compose.Immutable
-import androidx.ui.core.TextUnit
 import androidx.ui.text.style.TextAlign
 import androidx.ui.text.style.TextDirectionAlgorithm
 import androidx.ui.text.style.TextIndent
 import androidx.ui.text.style.lerp
+import androidx.ui.unit.TextUnit
 
 /**
  * Paragraph styling configuration for a paragraph. The difference between [SpanStyle] and
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/SpanStyle.kt b/ui/ui-text/src/main/java/androidx/ui/text/SpanStyle.kt
index 0dd6c2b..d399049 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/SpanStyle.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/SpanStyle.kt
@@ -17,8 +17,6 @@
 package androidx.ui.text
 
 import androidx.compose.Immutable
-import androidx.ui.core.TextUnit
-import androidx.ui.core.lerp
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Shadow
 import androidx.ui.graphics.lerp
@@ -31,6 +29,8 @@
 import androidx.ui.text.style.TextDecoration
 import androidx.ui.text.style.TextGeometricTransform
 import androidx.ui.text.style.lerp
+import androidx.ui.unit.TextUnit
+import androidx.ui.unit.lerp
 
 /**
  * Styling configuration for a text span. This configuration only allows character level styling,
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/TextDelegate.kt b/ui/ui-text/src/main/java/androidx/ui/text/TextDelegate.kt
index c65d977..e4081db 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/TextDelegate.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/TextDelegate.kt
@@ -19,16 +19,10 @@
 import androidx.annotation.RestrictTo
 import androidx.annotation.VisibleForTesting
 import androidx.ui.core.Constraints
-import androidx.ui.core.Density
-import androidx.ui.core.IntPx
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.LayoutDirection
-import androidx.ui.core.TextUnit
 import androidx.ui.core.constrain
-import androidx.ui.core.ipx
-import androidx.ui.core.sp
-import androidx.ui.engine.geometry.Offset
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Offset
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.BlendMode
 import androidx.ui.graphics.Canvas
 import androidx.ui.graphics.Color
@@ -39,6 +33,12 @@
 import androidx.ui.text.style.TextAlign
 import androidx.ui.text.style.TextDirectionAlgorithm
 import androidx.ui.text.style.TextOverflow
+import androidx.ui.unit.Density
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.TextUnit
+import androidx.ui.unit.ipx
+import androidx.ui.unit.sp
 import kotlin.math.ceil
 import kotlin.math.roundToInt
 
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/TextLayoutHelper.kt b/ui/ui-text/src/main/java/androidx/ui/text/TextLayoutHelper.kt
index 689f7d6..8b60c0b 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/TextLayoutHelper.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/TextLayoutHelper.kt
@@ -17,10 +17,10 @@
 package androidx.ui.text
 
 import androidx.ui.core.Constraints
-import androidx.ui.core.Density
 import androidx.ui.core.LayoutDirection
 import androidx.ui.text.font.Font
 import androidx.ui.text.style.TextOverflow
+import androidx.ui.unit.Density
 
 /**
  * Returns true if the this TextLayoutResult can be reused for given parameters.
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/TextLayoutResult.kt b/ui/ui-text/src/main/java/androidx/ui/text/TextLayoutResult.kt
index 9551f65..1b89b07 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/TextLayoutResult.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/TextLayoutResult.kt
@@ -17,18 +17,18 @@
 package androidx.ui.text
 
 import androidx.ui.core.Constraints
-import androidx.ui.core.Density
-import androidx.ui.core.IntPx
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.LayoutDirection
-import androidx.ui.core.Px
-import androidx.ui.core.PxPosition
-import androidx.ui.core.ipx
-import androidx.ui.core.px
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.text.font.Font
 import androidx.ui.text.style.TextDirection
 import androidx.ui.text.style.TextOverflow
+import androidx.ui.unit.Density
+import androidx.ui.unit.IntPx
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.Px
+import androidx.ui.unit.PxPosition
+import androidx.ui.unit.ipx
+import androidx.ui.unit.px
 import kotlin.math.ceil
 import kotlin.math.roundToInt
 
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/TextStyle.kt b/ui/ui-text/src/main/java/androidx/ui/text/TextStyle.kt
index c13258c..d1d0e75 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/TextStyle.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/TextStyle.kt
@@ -17,7 +17,6 @@
 package androidx.ui.text
 
 import androidx.compose.Immutable
-import androidx.ui.core.TextUnit
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Shadow
 import androidx.ui.text.font.FontFamily
@@ -30,6 +29,7 @@
 import androidx.ui.text.style.TextDirectionAlgorithm
 import androidx.ui.text.style.TextGeometricTransform
 import androidx.ui.text.style.TextIndent
+import androidx.ui.unit.TextUnit
 
 /**
  * Styling configuration for a `Text`.
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/font/FontWeight.kt b/ui/ui-text/src/main/java/androidx/ui/text/font/FontWeight.kt
index 31591fe..d410e10 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/font/FontWeight.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/font/FontWeight.kt
@@ -16,7 +16,7 @@
 package androidx.ui.text.font
 
 import androidx.compose.Immutable
-import androidx.ui.lerp
+import androidx.ui.util.lerp
 
 /**
  * The thickness of the glyphs, in a range of [1, 1000].
@@ -111,7 +111,8 @@
  * an `AnimationController`.
  */
 fun lerp(start: FontWeight, stop: FontWeight, fraction: Float): FontWeight {
-    val index = lerp(start.index, stop.index, fraction).coerceIn(0, FontWeight.values.size - 1)
+    val index = lerp(start.index, stop.index, fraction)
+        .coerceIn(0, FontWeight.values.size - 1)
 
     return FontWeight.values[index]
 }
\ No newline at end of file
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/platform/AndroidParagraph.kt b/ui/ui-text/src/main/java/androidx/ui/text/platform/AndroidParagraph.kt
index 17feae8..36708af 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/platform/AndroidParagraph.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/platform/AndroidParagraph.kt
@@ -29,9 +29,7 @@
 import androidx.text.LayoutCompat.JUSTIFICATION_MODE_INTER_WORD
 import androidx.text.TextLayout
 import androidx.text.selection.WordBoundary
-import androidx.ui.core.Density
-import androidx.ui.core.PxPosition
-import androidx.ui.engine.geometry.Rect
+import androidx.ui.geometry.Rect
 import androidx.ui.graphics.Canvas
 import androidx.ui.graphics.Path
 import androidx.ui.text.AnnotatedString
@@ -42,6 +40,8 @@
 import androidx.ui.text.TextStyle
 import androidx.ui.text.style.TextAlign
 import androidx.ui.text.style.TextDirection
+import androidx.ui.unit.Density
+import androidx.ui.unit.PxPosition
 import java.util.Locale as JavaLocale
 
 /**
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/platform/AndroidParagraphHelper.kt b/ui/ui-text/src/main/java/androidx/ui/text/platform/AndroidParagraphHelper.kt
index be6f0f4..926c5c7 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/platform/AndroidParagraphHelper.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/platform/AndroidParagraphHelper.kt
@@ -41,11 +41,11 @@
 import androidx.text.style.ShadowSpan
 import androidx.text.style.SkewXSpan
 import androidx.text.style.TypefaceSpan
-import androidx.ui.core.Density
-import androidx.ui.core.TextUnit
-import androidx.ui.core.TextUnitType
-import androidx.ui.core.sp
-import androidx.ui.core.withDensity
+import androidx.ui.unit.Density
+import androidx.ui.unit.TextUnit
+import androidx.ui.unit.TextUnitType
+import androidx.ui.unit.sp
+import androidx.ui.unit.withDensity
 import androidx.ui.graphics.toArgb
 import androidx.ui.text.AnnotatedString
 import androidx.ui.text.Locale
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/platform/AndroidParagraphIntrinsics.kt b/ui/ui-text/src/main/java/androidx/ui/text/platform/AndroidParagraphIntrinsics.kt
index 8bf967a..70f8444 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/platform/AndroidParagraphIntrinsics.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/platform/AndroidParagraphIntrinsics.kt
@@ -19,7 +19,7 @@
 import android.graphics.Paint
 import android.text.TextPaint
 import androidx.text.LayoutIntrinsics
-import androidx.ui.core.Density
+import androidx.ui.unit.Density
 import androidx.ui.text.AnnotatedString
 import androidx.ui.text.ParagraphIntrinsics
 import androidx.ui.text.SpanStyle
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/style/BaselineShift.kt b/ui/ui-text/src/main/java/androidx/ui/text/style/BaselineShift.kt
index 8f4c742..24512e8 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/style/BaselineShift.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/style/BaselineShift.kt
@@ -17,7 +17,7 @@
 package androidx.ui.text.style
 
 import androidx.compose.Immutable
-import androidx.ui.lerp
+import androidx.ui.util.lerp
 
 /**
  * The amount by which the text is shifted up or down from current the baseline.
@@ -48,5 +48,11 @@
  * Linearly interpolate two [BaselineShift]s.
  */
 fun lerp(start: BaselineShift, stop: BaselineShift, fraction: Float): BaselineShift {
-    return BaselineShift(lerp(start.multiplier, stop.multiplier, fraction))
+    return BaselineShift(
+        lerp(
+            start.multiplier,
+            stop.multiplier,
+            fraction
+        )
+    )
 }
\ No newline at end of file
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/style/TextGeometricTransform.kt b/ui/ui-text/src/main/java/androidx/ui/text/style/TextGeometricTransform.kt
index 7c7d294..1c35eb9 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/style/TextGeometricTransform.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/style/TextGeometricTransform.kt
@@ -17,7 +17,7 @@
 package androidx.ui.text.style
 
 import androidx.compose.Immutable
-import androidx.ui.lerp
+import androidx.ui.util.lerp
 
 /**
  * Define a geometric transformation on text.
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/style/TextIndent.kt b/ui/ui-text/src/main/java/androidx/ui/text/style/TextIndent.kt
index 1fce538..a7c9e4b 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/style/TextIndent.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/style/TextIndent.kt
@@ -17,8 +17,8 @@
 package androidx.ui.text.style
 
 import androidx.compose.Immutable
-import androidx.ui.core.TextUnit
-import androidx.ui.core.sp
+import androidx.ui.unit.TextUnit
+import androidx.ui.unit.sp
 import androidx.ui.text.lerpTextUnitInheritable
 
 /**
diff --git a/ui/ui-text/src/test/java/androidx/ui/text/AnnotatedStringBuilderTest.kt b/ui/ui-text/src/test/java/androidx/ui/text/AnnotatedStringBuilderTest.kt
index cfabddc..d0b1104 100644
--- a/ui/ui-text/src/test/java/androidx/ui/text/AnnotatedStringBuilderTest.kt
+++ b/ui/ui-text/src/test/java/androidx/ui/text/AnnotatedStringBuilderTest.kt
@@ -16,13 +16,13 @@
 
 package androidx.ui.text
 
-import androidx.ui.core.TextUnit
-import androidx.ui.core.em
-import androidx.ui.core.sp
 import androidx.ui.graphics.Color
 import androidx.ui.text.font.FontStyle
 import androidx.ui.text.font.FontWeight
 import androidx.ui.text.style.TextAlign
+import androidx.ui.unit.TextUnit
+import androidx.ui.unit.em
+import androidx.ui.unit.sp
 import com.google.common.truth.Truth.assertThat
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-text/src/test/java/androidx/ui/text/AnnotatedStringTest.kt b/ui/ui-text/src/test/java/androidx/ui/text/AnnotatedStringTest.kt
index ffb00ac..16dd64f 100644
--- a/ui/ui-text/src/test/java/androidx/ui/text/AnnotatedStringTest.kt
+++ b/ui/ui-text/src/test/java/androidx/ui/text/AnnotatedStringTest.kt
@@ -16,10 +16,10 @@
 
 package androidx.ui.text
 
-import androidx.ui.core.sp
 import androidx.ui.graphics.Color
 import androidx.ui.text.AnnotatedString.Item
 import androidx.ui.text.style.TextAlign
+import androidx.ui.unit.sp
 import com.google.common.truth.Truth.assertThat
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-text/src/test/java/androidx/ui/text/AnnotatedStringTransformTest.kt b/ui/ui-text/src/test/java/androidx/ui/text/AnnotatedStringTransformTest.kt
index e805aae..b6d42c9 100644
--- a/ui/ui-text/src/test/java/androidx/ui/text/AnnotatedStringTransformTest.kt
+++ b/ui/ui-text/src/test/java/androidx/ui/text/AnnotatedStringTransformTest.kt
@@ -16,7 +16,7 @@
 
 package androidx.ui.text
 
-import androidx.ui.core.sp
+import androidx.ui.unit.sp
 import org.junit.Assert.assertEquals
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-text/src/test/java/androidx/ui/text/MultiParagraphTest.kt b/ui/ui-text/src/test/java/androidx/ui/text/MultiParagraphTest.kt
index 46da9dc..b20e5fc 100644
--- a/ui/ui-text/src/test/java/androidx/ui/text/MultiParagraphTest.kt
+++ b/ui/ui-text/src/test/java/androidx/ui/text/MultiParagraphTest.kt
@@ -16,7 +16,7 @@
 
 package androidx.ui.text
 
-import androidx.ui.core.px
+import androidx.ui.unit.px
 import com.google.common.truth.Truth.assertThat
 import com.nhaarman.mockitokotlin2.mock
 import org.junit.Test
diff --git a/ui/ui-text/src/test/java/androidx/ui/text/ParagraphStyleTest.kt b/ui/ui-text/src/test/java/androidx/ui/text/ParagraphStyleTest.kt
index 69f7450..7c529c0 100644
--- a/ui/ui-text/src/test/java/androidx/ui/text/ParagraphStyleTest.kt
+++ b/ui/ui-text/src/test/java/androidx/ui/text/ParagraphStyleTest.kt
@@ -16,13 +16,13 @@
 
 package androidx.ui.text
 
-import androidx.ui.core.TextUnit
-import androidx.ui.core.lerp
-import androidx.ui.core.sp
 import androidx.ui.text.style.TextAlign
 import androidx.ui.text.style.TextDirectionAlgorithm
 import androidx.ui.text.style.TextIndent
 import androidx.ui.text.style.lerp
+import androidx.ui.unit.TextUnit
+import androidx.ui.unit.lerp
+import androidx.ui.unit.sp
 import com.google.common.truth.Truth.assertThat
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-text/src/test/java/androidx/ui/text/SpanStyleTest.kt b/ui/ui-text/src/test/java/androidx/ui/text/SpanStyleTest.kt
index 913f70a..1d76364 100644
--- a/ui/ui-text/src/test/java/androidx/ui/text/SpanStyleTest.kt
+++ b/ui/ui-text/src/test/java/androidx/ui/text/SpanStyleTest.kt
@@ -16,9 +16,6 @@
 
 package androidx.ui.text
 
-import androidx.ui.core.TextUnit
-import androidx.ui.core.em
-import androidx.ui.core.sp
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.lerp
 import androidx.ui.text.font.FontFamily
@@ -30,6 +27,9 @@
 import androidx.ui.text.style.TextDecoration
 import androidx.ui.text.style.TextGeometricTransform
 import androidx.ui.text.style.lerp
+import androidx.ui.unit.TextUnit
+import androidx.ui.unit.em
+import androidx.ui.unit.sp
 import com.google.common.truth.Truth.assertThat
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-text/src/test/java/androidx/ui/text/TextDelegateDefaultStyleTest.kt b/ui/ui-text/src/test/java/androidx/ui/text/TextDelegateDefaultStyleTest.kt
index a371e79..3c4021c 100644
--- a/ui/ui-text/src/test/java/androidx/ui/text/TextDelegateDefaultStyleTest.kt
+++ b/ui/ui-text/src/test/java/androidx/ui/text/TextDelegateDefaultStyleTest.kt
@@ -16,12 +16,12 @@
 
 package androidx.ui.text
 
-import androidx.ui.core.Density
 import androidx.ui.core.LayoutDirection
-import androidx.ui.core.TextUnit
-import androidx.ui.core.sp
 import androidx.ui.text.font.Font
 import androidx.ui.text.style.TextDirectionAlgorithm
+import androidx.ui.unit.Density
+import androidx.ui.unit.TextUnit
+import androidx.ui.unit.sp
 import com.google.common.truth.Truth.assertThat
 import com.nhaarman.mockitokotlin2.mock
 import org.junit.Test
diff --git a/ui/ui-text/src/test/java/androidx/ui/text/TextDelegateTest.kt b/ui/ui-text/src/test/java/androidx/ui/text/TextDelegateTest.kt
index 856b963e..5e4f144 100644
--- a/ui/ui-text/src/test/java/androidx/ui/text/TextDelegateTest.kt
+++ b/ui/ui-text/src/test/java/androidx/ui/text/TextDelegateTest.kt
@@ -16,11 +16,11 @@
 
 package androidx.ui.text
 
-import androidx.ui.core.Density
 import androidx.ui.core.LayoutDirection
 import androidx.ui.text.font.Font
 import androidx.ui.text.style.TextDirectionAlgorithm
 import androidx.ui.text.style.TextOverflow
+import androidx.ui.unit.Density
 import com.google.common.truth.Truth.assertThat
 import com.nhaarman.mockitokotlin2.mock
 import org.junit.Test
diff --git a/ui/ui-text/src/test/java/androidx/ui/text/TextInputServiceTest.kt b/ui/ui-text/src/test/java/androidx/ui/text/TextInputServiceTest.kt
index ea83585..3a74b61 100644
--- a/ui/ui-text/src/test/java/androidx/ui/text/TextInputServiceTest.kt
+++ b/ui/ui-text/src/test/java/androidx/ui/text/TextInputServiceTest.kt
@@ -16,9 +16,9 @@
 
 package androidx.ui.text
 
-import androidx.ui.engine.geometry.Rect
-import androidx.ui.input.InputState
+import androidx.ui.geometry.Rect
 import androidx.ui.input.ImeAction
+import androidx.ui.input.InputState
 import androidx.ui.input.KeyboardType
 import androidx.ui.input.PlatformTextInputService
 import androidx.ui.input.TextInputService
diff --git a/ui/ui-text/src/test/java/androidx/ui/text/TextLayoutHelperTest.kt b/ui/ui-text/src/test/java/androidx/ui/text/TextLayoutHelperTest.kt
index 9578d1d..7d83f0a 100644
--- a/ui/ui-text/src/test/java/androidx/ui/text/TextLayoutHelperTest.kt
+++ b/ui/ui-text/src/test/java/androidx/ui/text/TextLayoutHelperTest.kt
@@ -17,13 +17,13 @@
 package androidx.ui.text
 
 import androidx.ui.core.Constraints
-import androidx.ui.core.Density
-import androidx.ui.core.IntPxSize
 import androidx.ui.core.LayoutDirection
-import androidx.ui.core.em
-import androidx.ui.core.ipx
 import androidx.ui.text.font.Font
 import androidx.ui.text.style.TextOverflow
+import androidx.ui.unit.Density
+import androidx.ui.unit.IntPxSize
+import androidx.ui.unit.em
+import androidx.ui.unit.ipx
 import com.google.common.truth.Truth.assertThat
 import com.nhaarman.mockitokotlin2.mock
 import org.junit.Before
diff --git a/ui/ui-text/src/test/java/androidx/ui/text/TextSpanTest.kt b/ui/ui-text/src/test/java/androidx/ui/text/TextSpanTest.kt
index 891ac26..53e5f7c 100644
--- a/ui/ui-text/src/test/java/androidx/ui/text/TextSpanTest.kt
+++ b/ui/ui-text/src/test/java/androidx/ui/text/TextSpanTest.kt
@@ -16,9 +16,9 @@
 
 package androidx.ui.text
 
-import androidx.ui.core.em
-import androidx.ui.core.sp
 import androidx.ui.graphics.Color
+import androidx.ui.unit.em
+import androidx.ui.unit.sp
 import com.google.common.truth.Truth.assertThat
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/ui/ui-text/src/test/java/androidx/ui/text/TextStyleTest.kt b/ui/ui-text/src/test/java/androidx/ui/text/TextStyleTest.kt
index a72c848..b5878e2 100644
--- a/ui/ui-text/src/test/java/androidx/ui/text/TextStyleTest.kt
+++ b/ui/ui-text/src/test/java/androidx/ui/text/TextStyleTest.kt
@@ -16,10 +16,7 @@
 
 package androidx.ui.text
 
-import androidx.ui.core.TextUnit
-import androidx.ui.core.em
-import androidx.ui.core.sp
-import androidx.ui.engine.geometry.Offset
+import androidx.ui.geometry.Offset
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Shadow
 import androidx.ui.graphics.lerp
@@ -35,6 +32,9 @@
 import androidx.ui.text.style.TextGeometricTransform
 import androidx.ui.text.style.TextIndent
 import androidx.ui.text.style.lerp
+import androidx.ui.unit.TextUnit
+import androidx.ui.unit.em
+import androidx.ui.unit.sp
 import com.google.common.truth.Truth.assertThat
 import org.junit.Test
 import org.junit.runner.RunWith
@@ -885,7 +885,7 @@
         val newStyle = lerp(start = style1, stop = style2, fraction = fraction)
 
         assertThat(newStyle.lineHeight).isEqualTo(
-            androidx.ui.core.lerp(style1.lineHeight, style2.lineHeight, fraction)
+            androidx.ui.unit.lerp(style1.lineHeight, style2.lineHeight, fraction)
         )
     }
 
diff --git a/ui/ui-tooling/api/0.1.0-dev04.txt b/ui/ui-tooling/api/0.1.0-dev04.txt
index 390fda1..e31304d 100644
--- a/ui/ui-tooling/api/0.1.0-dev04.txt
+++ b/ui/ui-tooling/api/0.1.0-dev04.txt
@@ -2,11 +2,11 @@
 package androidx.ui.tooling {
 
   public final class CallGroup extends androidx.ui.tooling.Group {
-    ctor public CallGroup(Object? key, androidx.ui.core.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
+    ctor public CallGroup(Object? key, androidx.ui.unit.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
   }
 
   public abstract sealed class Group {
-    method public final androidx.ui.core.PxBounds getBox();
+    method public final androidx.ui.unit.PxBounds getBox();
     method public final androidx.ui.tooling.Group![] getChildren();
     method public final Object![] getData();
     method public final Object? getKey();
@@ -28,7 +28,7 @@
   }
 
   public final class NodeGroup extends androidx.ui.tooling.Group {
-    ctor public NodeGroup(Object? key, Object node, androidx.ui.core.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
+    ctor public NodeGroup(Object? key, Object node, androidx.ui.unit.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
     method public Object getNode();
   }
 
diff --git a/ui/ui-tooling/api/api_lint.ignore b/ui/ui-tooling/api/api_lint.ignore
index c5def4b..e4d1dad 100644
--- a/ui/ui-tooling/api/api_lint.ignore
+++ b/ui/ui-tooling/api/api_lint.ignore
@@ -1,15 +1,15 @@
 // Baseline format: 1.0
-ArrayReturn: androidx.ui.tooling.CallGroup#CallGroup(Object, androidx.ui.core.PxBounds, Object[], androidx.ui.tooling.Group[]) parameter #2:
+ArrayReturn: androidx.ui.tooling.CallGroup#CallGroup(Object, androidx.ui.unit.PxBounds, Object[], androidx.ui.tooling.Group[]) parameter #2:
     Method parameter should be Collection<Object> (or subclass) instead of raw array; was `java.lang.Object[]`
-ArrayReturn: androidx.ui.tooling.CallGroup#CallGroup(Object, androidx.ui.core.PxBounds, Object[], androidx.ui.tooling.Group[]) parameter #3:
+ArrayReturn: androidx.ui.tooling.CallGroup#CallGroup(Object, androidx.ui.unit.PxBounds, Object[], androidx.ui.tooling.Group[]) parameter #3:
     Method parameter should be Collection<Group> (or subclass) instead of raw array; was `androidx.ui.tooling.Group[]`
 ArrayReturn: androidx.ui.tooling.Group#getChildren():
     Method should return Collection<Group> (or subclass) instead of raw array; was `androidx.ui.tooling.Group[]`
 ArrayReturn: androidx.ui.tooling.Group#getData():
     Method should return Collection<Object> (or subclass) instead of raw array; was `java.lang.Object[]`
-ArrayReturn: androidx.ui.tooling.NodeGroup#NodeGroup(Object, Object, androidx.ui.core.PxBounds, Object[], androidx.ui.tooling.Group[]) parameter #3:
+ArrayReturn: androidx.ui.tooling.NodeGroup#NodeGroup(Object, Object, androidx.ui.unit.PxBounds, Object[], androidx.ui.tooling.Group[]) parameter #3:
     Method parameter should be Collection<Object> (or subclass) instead of raw array; was `java.lang.Object[]`
-ArrayReturn: androidx.ui.tooling.NodeGroup#NodeGroup(Object, Object, androidx.ui.core.PxBounds, Object[], androidx.ui.tooling.Group[]) parameter #4:
+ArrayReturn: androidx.ui.tooling.NodeGroup#NodeGroup(Object, Object, androidx.ui.unit.PxBounds, Object[], androidx.ui.tooling.Group[]) parameter #4:
     Method parameter should be Collection<Group> (or subclass) instead of raw array; was `androidx.ui.tooling.Group[]`
 
 
diff --git a/ui/ui-tooling/api/current.txt b/ui/ui-tooling/api/current.txt
index 390fda1..e31304d 100644
--- a/ui/ui-tooling/api/current.txt
+++ b/ui/ui-tooling/api/current.txt
@@ -2,11 +2,11 @@
 package androidx.ui.tooling {
 
   public final class CallGroup extends androidx.ui.tooling.Group {
-    ctor public CallGroup(Object? key, androidx.ui.core.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
+    ctor public CallGroup(Object? key, androidx.ui.unit.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
   }
 
   public abstract sealed class Group {
-    method public final androidx.ui.core.PxBounds getBox();
+    method public final androidx.ui.unit.PxBounds getBox();
     method public final androidx.ui.tooling.Group![] getChildren();
     method public final Object![] getData();
     method public final Object? getKey();
@@ -28,7 +28,7 @@
   }
 
   public final class NodeGroup extends androidx.ui.tooling.Group {
-    ctor public NodeGroup(Object? key, Object node, androidx.ui.core.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
+    ctor public NodeGroup(Object? key, Object node, androidx.ui.unit.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
     method public Object getNode();
   }
 
diff --git a/ui/ui-tooling/api/public_plus_experimental_0.1.0-dev04.txt b/ui/ui-tooling/api/public_plus_experimental_0.1.0-dev04.txt
index 390fda1..e31304d 100644
--- a/ui/ui-tooling/api/public_plus_experimental_0.1.0-dev04.txt
+++ b/ui/ui-tooling/api/public_plus_experimental_0.1.0-dev04.txt
@@ -2,11 +2,11 @@
 package androidx.ui.tooling {
 
   public final class CallGroup extends androidx.ui.tooling.Group {
-    ctor public CallGroup(Object? key, androidx.ui.core.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
+    ctor public CallGroup(Object? key, androidx.ui.unit.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
   }
 
   public abstract sealed class Group {
-    method public final androidx.ui.core.PxBounds getBox();
+    method public final androidx.ui.unit.PxBounds getBox();
     method public final androidx.ui.tooling.Group![] getChildren();
     method public final Object![] getData();
     method public final Object? getKey();
@@ -28,7 +28,7 @@
   }
 
   public final class NodeGroup extends androidx.ui.tooling.Group {
-    ctor public NodeGroup(Object? key, Object node, androidx.ui.core.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
+    ctor public NodeGroup(Object? key, Object node, androidx.ui.unit.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
     method public Object getNode();
   }
 
diff --git a/ui/ui-tooling/api/public_plus_experimental_current.txt b/ui/ui-tooling/api/public_plus_experimental_current.txt
index 390fda1..e31304d 100644
--- a/ui/ui-tooling/api/public_plus_experimental_current.txt
+++ b/ui/ui-tooling/api/public_plus_experimental_current.txt
@@ -2,11 +2,11 @@
 package androidx.ui.tooling {
 
   public final class CallGroup extends androidx.ui.tooling.Group {
-    ctor public CallGroup(Object? key, androidx.ui.core.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
+    ctor public CallGroup(Object? key, androidx.ui.unit.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
   }
 
   public abstract sealed class Group {
-    method public final androidx.ui.core.PxBounds getBox();
+    method public final androidx.ui.unit.PxBounds getBox();
     method public final androidx.ui.tooling.Group![] getChildren();
     method public final Object![] getData();
     method public final Object? getKey();
@@ -28,7 +28,7 @@
   }
 
   public final class NodeGroup extends androidx.ui.tooling.Group {
-    ctor public NodeGroup(Object? key, Object node, androidx.ui.core.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
+    ctor public NodeGroup(Object? key, Object node, androidx.ui.unit.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
     method public Object getNode();
   }
 
diff --git a/ui/ui-tooling/api/restricted_0.1.0-dev04.txt b/ui/ui-tooling/api/restricted_0.1.0-dev04.txt
index 390fda1..e31304d 100644
--- a/ui/ui-tooling/api/restricted_0.1.0-dev04.txt
+++ b/ui/ui-tooling/api/restricted_0.1.0-dev04.txt
@@ -2,11 +2,11 @@
 package androidx.ui.tooling {
 
   public final class CallGroup extends androidx.ui.tooling.Group {
-    ctor public CallGroup(Object? key, androidx.ui.core.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
+    ctor public CallGroup(Object? key, androidx.ui.unit.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
   }
 
   public abstract sealed class Group {
-    method public final androidx.ui.core.PxBounds getBox();
+    method public final androidx.ui.unit.PxBounds getBox();
     method public final androidx.ui.tooling.Group![] getChildren();
     method public final Object![] getData();
     method public final Object? getKey();
@@ -28,7 +28,7 @@
   }
 
   public final class NodeGroup extends androidx.ui.tooling.Group {
-    ctor public NodeGroup(Object? key, Object node, androidx.ui.core.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
+    ctor public NodeGroup(Object? key, Object node, androidx.ui.unit.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
     method public Object getNode();
   }
 
diff --git a/ui/ui-tooling/api/restricted_current.txt b/ui/ui-tooling/api/restricted_current.txt
index 390fda1..e31304d 100644
--- a/ui/ui-tooling/api/restricted_current.txt
+++ b/ui/ui-tooling/api/restricted_current.txt
@@ -2,11 +2,11 @@
 package androidx.ui.tooling {
 
   public final class CallGroup extends androidx.ui.tooling.Group {
-    ctor public CallGroup(Object? key, androidx.ui.core.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
+    ctor public CallGroup(Object? key, androidx.ui.unit.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
   }
 
   public abstract sealed class Group {
-    method public final androidx.ui.core.PxBounds getBox();
+    method public final androidx.ui.unit.PxBounds getBox();
     method public final androidx.ui.tooling.Group![] getChildren();
     method public final Object![] getData();
     method public final Object? getKey();
@@ -28,7 +28,7 @@
   }
 
   public final class NodeGroup extends androidx.ui.tooling.Group {
-    ctor public NodeGroup(Object? key, Object node, androidx.ui.core.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
+    ctor public NodeGroup(Object? key, Object node, androidx.ui.unit.PxBounds box, Object![] data, androidx.ui.tooling.Group![] children);
     method public Object getNode();
   }
 
diff --git a/ui/ui-tooling/src/androidTest/java/androidx/ui/tooling/InspectableTests.kt b/ui/ui-tooling/src/androidTest/java/androidx/ui/tooling/InspectableTests.kt
index d02a9fd..62f26ba 100644
--- a/ui/ui-tooling/src/androidTest/java/androidx/ui/tooling/InspectableTests.kt
+++ b/ui/ui-tooling/src/androidTest/java/androidx/ui/tooling/InspectableTests.kt
@@ -20,14 +20,14 @@
 import androidx.test.filters.SmallTest
 import androidx.ui.core.Draw
 import androidx.ui.core.DrawNode
-import androidx.ui.core.dp
-import androidx.ui.core.px
-import androidx.ui.core.toRect
 import androidx.ui.foundation.ColoredRect
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.Paint
 import androidx.ui.layout.Column
 import androidx.ui.layout.Container
+import androidx.ui.unit.dp
+import androidx.ui.unit.px
+import androidx.ui.unit.toRect
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertFalse
 import org.junit.Assert.assertNotEquals
diff --git a/ui/ui-tooling/src/main/java/androidx/ui/tooling/SlotTree.kt b/ui/ui-tooling/src/main/java/androidx/ui/tooling/SlotTree.kt
index 598c38d..70c823d 100644
--- a/ui/ui-tooling/src/main/java/androidx/ui/tooling/SlotTree.kt
+++ b/ui/ui-tooling/src/main/java/androidx/ui/tooling/SlotTree.kt
@@ -24,11 +24,11 @@
 import androidx.compose.keySourceInfoOf
 import androidx.ui.core.DrawNode
 import androidx.ui.core.LayoutNode
-import androidx.ui.core.PxBounds
-import androidx.ui.core.max
-import androidx.ui.core.min
-import androidx.ui.core.px
-import androidx.ui.core.toPx
+import androidx.ui.unit.PxBounds
+import androidx.ui.unit.max
+import androidx.ui.unit.min
+import androidx.ui.unit.px
+import androidx.ui.unit.toPx
 
 /**
  * A group in the slot table. Represents either a call or an emitted node.
diff --git a/ui/ui-tooling/src/main/java/androidx/ui/tooling/preview/ComposeViewAdapter.kt b/ui/ui-tooling/src/main/java/androidx/ui/tooling/preview/ComposeViewAdapter.kt
index df4337b..b09b99d8 100644
--- a/ui/ui-tooling/src/main/java/androidx/ui/tooling/preview/ComposeViewAdapter.kt
+++ b/ui/ui-tooling/src/main/java/androidx/ui/tooling/preview/ComposeViewAdapter.kt
@@ -27,17 +27,17 @@
 import androidx.compose.Composable
 import androidx.compose.disposeComposition
 import androidx.ui.core.FontLoaderAmbient
-import androidx.ui.core.Px
-import androidx.ui.core.PxBounds
 import androidx.ui.core.setContent
 import androidx.ui.core.toFrameworkRect
-import androidx.ui.core.toRect
 import androidx.ui.graphics.Color
 import androidx.ui.graphics.toArgb
 import androidx.ui.tooling.Group
 import androidx.ui.tooling.Inspectable
 import androidx.ui.tooling.asTree
 import androidx.ui.tooling.tables
+import androidx.ui.unit.Px
+import androidx.ui.unit.PxBounds
+import androidx.ui.unit.toRect
 import java.lang.reflect.Modifier
 
 const val TOOLS_NS_URI = "http://schemas.android.com/tools"
diff --git a/ui/ui-unit/OWNERS b/ui/ui-unit/OWNERS
new file mode 100644
index 0000000..26955e2
--- /dev/null
+++ b/ui/ui-unit/OWNERS
@@ -0,0 +1,11 @@
+mount@google.com
+shepshapard@google.com
+ryanmentley@google.com
+njawad@google.com
+popam@google.com
+
+# For text related files
+qqd@google.com
+nona@google.com
+haoyuchang@google.com
+siyamed@google.com
\ No newline at end of file
diff --git a/ui/ui-unit/api/0.1.0-dev04.txt b/ui/ui-unit/api/0.1.0-dev04.txt
new file mode 100644
index 0000000..c7e6484
--- /dev/null
+++ b/ui/ui-unit/api/0.1.0-dev04.txt
@@ -0,0 +1,629 @@
+// Signature format: 3.0
+package androidx.ui.unit {
+
+  public final class Bounds {
+    ctor public Bounds(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.unit.Bounds copy(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp getBottom();
+    method public androidx.ui.unit.Dp getLeft();
+    method public androidx.ui.unit.Dp getRight();
+    method public androidx.ui.unit.Dp getTop();
+  }
+
+  public final class Density {
+    ctor public Density(float density, float fontScale);
+    method public float component1();
+    method public float component2();
+    method public androidx.ui.unit.Density copy(float density, float fontScale);
+    method public float getDensity();
+    method public float getFontScale();
+  }
+
+  public final class DensityKt {
+    method public static androidx.ui.unit.Density Density(android.content.Context context);
+    method public static androidx.ui.unit.DensityScope DensityScope(androidx.ui.unit.Density density);
+    method public static inline <R> R! withDensity(androidx.ui.unit.Density density, kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,? extends R> block);
+  }
+
+  public interface DensityScope {
+    method public androidx.ui.unit.Density getDensity();
+    method public default androidx.ui.unit.Dp toDp(androidx.ui.unit.TextUnit);
+    method public default androidx.ui.unit.Dp toDp(androidx.ui.unit.Px);
+    method public default androidx.ui.unit.Dp toDp(androidx.ui.unit.IntPx);
+    method public default androidx.ui.unit.Dp toDp(float);
+    method public default androidx.ui.unit.Dp toDp(int);
+    method public default androidx.ui.unit.IntPx toIntPx(androidx.ui.unit.Dp);
+    method public default androidx.ui.unit.IntPx toIntPx(androidx.ui.unit.TextUnit);
+    method public default androidx.ui.unit.Px toPx(androidx.ui.unit.Dp);
+    method public default androidx.ui.unit.Px toPx(androidx.ui.unit.TextUnit);
+    method public default androidx.ui.unit.PxSize toPx-kAYDl8w(long);
+    method public default androidx.ui.geometry.Rect toRect(androidx.ui.unit.Bounds);
+    method public default androidx.ui.unit.TextUnit toSp(androidx.ui.unit.Dp);
+    method public default androidx.ui.unit.TextUnit toSp(androidx.ui.unit.Px);
+    method public default androidx.ui.unit.TextUnit toSp(androidx.ui.unit.IntPx);
+    method public default androidx.ui.unit.TextUnit toSp(float);
+    method public default androidx.ui.unit.TextUnit toSp(int);
+    property public abstract androidx.ui.unit.Density density;
+  }
+
+  public final class Dp implements java.lang.Comparable<androidx.ui.unit.Dp> {
+    ctor public Dp(float value);
+    method public operator int compareTo(androidx.ui.unit.Dp other);
+    method public float component1();
+    method public androidx.ui.unit.Dp copy(float value);
+    method public inline operator androidx.ui.unit.Dp div(float other);
+    method public inline operator androidx.ui.unit.Dp div(int other);
+    method public inline operator float div(androidx.ui.unit.Dp other);
+    method public inline operator float div-x8crYZs(float other);
+    method public float getValue();
+    method public inline operator androidx.ui.unit.Dp minus(androidx.ui.unit.Dp other);
+    method public inline operator androidx.ui.unit.Dp plus(androidx.ui.unit.Dp other);
+    method public inline operator androidx.ui.unit.Dp times(float other);
+    method public inline operator androidx.ui.unit.Dp times(int other);
+    method public inline operator float times(androidx.ui.unit.Dp other);
+    method public inline operator float times-x8crYZs(float other);
+    method public inline operator androidx.ui.unit.Dp unaryMinus();
+    field public static final androidx.ui.unit.Dp.Companion! Companion;
+  }
+
+  public static final class Dp.Companion {
+    method public androidx.ui.unit.Dp getHairline();
+    method public androidx.ui.unit.Dp getInfinity();
+    property public final androidx.ui.unit.Dp Hairline;
+    property public final androidx.ui.unit.Dp Infinity;
+  }
+
+  public final inline class DpCubed implements java.lang.Comparable<androidx.ui.unit.DpCubed> {
+    ctor public DpCubed();
+    method public operator int compareTo-JDqhs2g(float p);
+    method public static operator int compareTo-JDqhs2g(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-JDqhs2g(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator float div-impl(float $this, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp div-x8crYZs(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-JDqhs2g(float $this, float dimension);
+    method public static inline operator float plus-JDqhs2g(float $this, float dimension);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final inline class DpInverse implements java.lang.Comparable<androidx.ui.unit.DpInverse> {
+    ctor public DpInverse();
+    method public operator int compareTo-_K2iRR8(float p);
+    method public static operator int compareTo-_K2iRR8(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-_K2iRR8(float $this, float dimension);
+    method public static inline operator float plus-_K2iRR8(float $this, float dimension);
+    method public static inline operator float times-JDqhs2g(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp times-x8crYZs(float $this, float other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final class DpKt {
+    method public static inline long Position(androidx.ui.unit.Dp x, androidx.ui.unit.Dp y);
+    method public static inline long Size(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
+    method public static long center-kAYDl8w(long);
+    method public static inline androidx.ui.unit.Dp coerceAtLeast(androidx.ui.unit.Dp, androidx.ui.unit.Dp minimumValue);
+    method public static inline androidx.ui.unit.Dp coerceAtMost(androidx.ui.unit.Dp, androidx.ui.unit.Dp maximumValue);
+    method public static inline androidx.ui.unit.Dp coerceIn(androidx.ui.unit.Dp, androidx.ui.unit.Dp minimumValue, androidx.ui.unit.Dp maximumValue);
+    method public static inline operator float div(float, androidx.ui.unit.Dp other);
+    method public static inline operator float div(double, androidx.ui.unit.Dp other);
+    method public static inline operator float div(int, androidx.ui.unit.Dp other);
+    method public static androidx.ui.unit.Dp getDistance-T8eBu-w(long);
+    method public static inline androidx.ui.unit.Dp getDp(int);
+    method public static inline androidx.ui.unit.Dp getDp(double);
+    method public static inline androidx.ui.unit.Dp getDp(float);
+    method public static inline androidx.ui.unit.Dp getHeight(androidx.ui.unit.Bounds);
+    method public static inline androidx.ui.unit.Dp getWidth(androidx.ui.unit.Bounds);
+    method public static inline boolean isFinite(androidx.ui.unit.Dp);
+    method public static androidx.ui.unit.Dp lerp(androidx.ui.unit.Dp start, androidx.ui.unit.Dp stop, float fraction);
+    method public static long lerp-d5NHFfI(long start, long stop, float fraction);
+    method public static inline androidx.ui.unit.Dp max(androidx.ui.unit.Dp a, androidx.ui.unit.Dp b);
+    method public static inline androidx.ui.unit.Dp min(androidx.ui.unit.Dp a, androidx.ui.unit.Dp b);
+    method public static inline operator androidx.ui.unit.Dp times(float, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp times(double, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp times(int, androidx.ui.unit.Dp other);
+    method public static inline operator long times--D0i1nw(float, long size);
+    method public static inline operator long times-DdskrAE(int, long size);
+    method public static inline operator long times-l9Tz9ww(double, long size);
+    method public static androidx.ui.unit.Bounds toBounds-kAYDl8w(long);
+    method public static inline long toSize(androidx.ui.unit.Bounds);
+  }
+
+  public final inline class DpSquared implements java.lang.Comparable<androidx.ui.unit.DpSquared> {
+    ctor public DpSquared();
+    method public operator int compareTo-x8crYZs(float p);
+    method public static operator int compareTo-x8crYZs(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-JDqhs2g(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator androidx.ui.unit.Dp div-impl(float $this, androidx.ui.unit.Dp other);
+    method public static inline operator float div-x8crYZs(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-x8crYZs(float $this, float other);
+    method public static inline operator float plus-x8crYZs(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Dp other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final class Duration implements java.lang.Comparable<androidx.ui.unit.Duration> {
+    ctor public Duration(long nanoseconds);
+    method public int compareTo(androidx.ui.unit.Duration other);
+    method public long component1();
+    method public androidx.ui.unit.Duration copy(long nanoseconds);
+    method public operator androidx.ui.unit.Duration div(int quotient);
+    method public operator androidx.ui.unit.Duration div(double quotient);
+    method public long getNanoseconds();
+    method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Duration other);
+    method public operator androidx.ui.unit.Duration plus(androidx.ui.unit.Duration other);
+    method public operator androidx.ui.unit.Duration times(int factor);
+    method public operator androidx.ui.unit.Duration times(double factor);
+    field public static final androidx.ui.unit.Duration.Companion! Companion;
+  }
+
+  public static final class Duration.Companion {
+    method public androidx.ui.unit.Duration getZero();
+    property public final androidx.ui.unit.Duration Zero;
+  }
+
+  public final class Durations {
+    method public static androidx.ui.unit.Duration Duration(long days = 0, long hours = 0, long minutes = 0, long seconds = 0, long milliseconds = 0, long microseconds = 0, long nanoseconds = 0);
+    method public static androidx.ui.unit.Duration getDays(long);
+    method public static androidx.ui.unit.Duration getDays(int);
+    method public static androidx.ui.unit.Duration getHours(long);
+    method public static androidx.ui.unit.Duration getHours(int);
+    method public static androidx.ui.unit.Duration getMicroseconds(long);
+    method public static androidx.ui.unit.Duration getMicroseconds(int);
+    method public static androidx.ui.unit.Duration getMilliseconds(long);
+    method public static androidx.ui.unit.Duration getMilliseconds(int);
+    method public static androidx.ui.unit.Duration getMinutes(long);
+    method public static androidx.ui.unit.Duration getMinutes(int);
+    method public static androidx.ui.unit.Duration getNanoseconds(long);
+    method public static androidx.ui.unit.Duration getNanoseconds(int);
+    method public static long getNanosecondsPerDay();
+    method public static long getNanosecondsPerHour();
+    method public static long getNanosecondsPerMillisecond();
+    method public static long getNanosecondsPerMinute();
+    method public static long getNanosecondsPerSecond();
+    method public static androidx.ui.unit.Duration getSeconds(long);
+    method public static androidx.ui.unit.Duration getSeconds(int);
+    method public static long inDays(androidx.ui.unit.Duration);
+    method public static long inHours(androidx.ui.unit.Duration);
+    method public static long inMicroseconds(androidx.ui.unit.Duration);
+    method public static long inMilliseconds(androidx.ui.unit.Duration);
+    method public static long inMinutes(androidx.ui.unit.Duration);
+    method public static long inSeconds(androidx.ui.unit.Duration);
+    field public static final long HoursPerDay = 24L; // 0x18L
+    field public static final long MicrosecondsPerMillisecond = 1000L; // 0x3e8L
+    field public static final long MillisecondsPerSecond = 1000L; // 0x3e8L
+    field public static final long MinutesPerHour = 60L; // 0x3cL
+    field public static final long NanosecondsPerMicrosecond = 1000L; // 0x3e8L
+    field public static final long SecondsPerMinute = 60L; // 0x3cL
+  }
+
+  public final class IntPx implements java.lang.Comparable<androidx.ui.unit.IntPx> {
+    ctor public IntPx(int value);
+    method public operator int compareTo(androidx.ui.unit.IntPx other);
+    method public inline operator int compareTo(androidx.ui.unit.Px other);
+    method public int component1();
+    method public androidx.ui.unit.IntPx copy(int value);
+    method public operator androidx.ui.unit.IntPx div(float other);
+    method public operator androidx.ui.unit.IntPx div(double other);
+    method public operator androidx.ui.unit.IntPx div(int other);
+    method public int getValue();
+    method public operator androidx.ui.unit.IntPx minus(androidx.ui.unit.IntPx other);
+    method public operator androidx.ui.unit.IntPx plus(androidx.ui.unit.IntPx other);
+    method public inline operator androidx.ui.unit.IntPx rem(int other);
+    method public operator androidx.ui.unit.IntPx times(float other);
+    method public operator androidx.ui.unit.IntPx times(double other);
+    method public operator androidx.ui.unit.IntPx times(int other);
+    method public operator androidx.ui.unit.IntPx unaryMinus();
+    field public static final androidx.ui.unit.IntPx.Companion! Companion;
+  }
+
+  public static final class IntPx.Companion {
+    method public androidx.ui.unit.IntPx getInfinity();
+    method public androidx.ui.unit.IntPx getZero();
+    property public final androidx.ui.unit.IntPx Infinity;
+    property public final androidx.ui.unit.IntPx Zero;
+  }
+
+  public final class IntPxBounds {
+    ctor public IntPxBounds(androidx.ui.unit.IntPx left, androidx.ui.unit.IntPx top, androidx.ui.unit.IntPx right, androidx.ui.unit.IntPx bottom);
+    method public androidx.ui.unit.IntPx component1();
+    method public androidx.ui.unit.IntPx component2();
+    method public androidx.ui.unit.IntPx component3();
+    method public androidx.ui.unit.IntPx component4();
+    method public androidx.ui.unit.IntPxBounds copy(androidx.ui.unit.IntPx left, androidx.ui.unit.IntPx top, androidx.ui.unit.IntPx right, androidx.ui.unit.IntPx bottom);
+    method public androidx.ui.unit.IntPx getBottom();
+    method public androidx.ui.unit.IntPx getLeft();
+    method public androidx.ui.unit.IntPx getRight();
+    method public androidx.ui.unit.IntPx getTop();
+  }
+
+  public final class IntPxKt {
+    method public static inline androidx.ui.unit.IntPxPosition IntPxPosition(androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
+    method public static inline androidx.ui.unit.IntPxSize IntPxSize(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height);
+    method public static inline androidx.ui.unit.PxPosition PxPosition(androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
+    method public static inline androidx.ui.unit.PxSize PxSize(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height);
+    method public static androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxSize);
+    method public static inline androidx.ui.unit.IntPx coerceAtLeast(androidx.ui.unit.IntPx, androidx.ui.unit.IntPx minimumValue);
+    method public static inline androidx.ui.unit.IntPx coerceAtMost(androidx.ui.unit.IntPx, androidx.ui.unit.IntPx maximumValue);
+    method public static inline androidx.ui.unit.IntPx coerceIn(androidx.ui.unit.IntPx, androidx.ui.unit.IntPx minimumValue, androidx.ui.unit.IntPx maximumValue);
+    method public static inline androidx.ui.unit.IntPx getHeight(androidx.ui.unit.IntPxBounds);
+    method public static inline androidx.ui.unit.IntPx getIpx(int);
+    method public static inline androidx.ui.unit.IntPx getWidth(androidx.ui.unit.IntPxBounds);
+    method public static inline boolean isFinite(androidx.ui.unit.IntPx);
+    method public static androidx.ui.unit.IntPx lerp(androidx.ui.unit.IntPx start, androidx.ui.unit.IntPx stop, float fraction);
+    method public static androidx.ui.unit.IntPxPosition lerp(androidx.ui.unit.IntPxPosition start, androidx.ui.unit.IntPxPosition stop, float fraction);
+    method public static inline androidx.ui.unit.IntPx max(androidx.ui.unit.IntPx a, androidx.ui.unit.IntPx b);
+    method public static inline androidx.ui.unit.IntPx min(androidx.ui.unit.IntPx a, androidx.ui.unit.IntPx b);
+    method public static inline androidx.ui.unit.IntPx round(androidx.ui.unit.Px);
+    method public static inline operator androidx.ui.unit.IntPx times(float, androidx.ui.unit.IntPx other);
+    method public static inline operator androidx.ui.unit.IntPx times(double, androidx.ui.unit.IntPx other);
+    method public static inline operator androidx.ui.unit.IntPx times(int, androidx.ui.unit.IntPx other);
+    method public static inline operator androidx.ui.unit.IntPxSize times(int, androidx.ui.unit.IntPxSize size);
+    method public static inline androidx.ui.unit.Px toPx(androidx.ui.unit.IntPx);
+    method public static inline androidx.ui.unit.PxPosition toPxPosition(androidx.ui.unit.IntPxPosition);
+    method public static inline androidx.ui.unit.PxSize toPxSize(androidx.ui.unit.IntPxSize);
+    method public static inline androidx.ui.unit.IntPxSize toSize(androidx.ui.unit.IntPxBounds);
+  }
+
+  public final class IntPxPosition {
+    method public androidx.ui.unit.IntPxPosition copy(long value);
+    method public inline androidx.ui.unit.IntPx getX();
+    method public inline androidx.ui.unit.IntPx getY();
+    method public inline operator androidx.ui.unit.IntPxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.IntPxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.IntPxPosition unaryMinus();
+    property public final inline androidx.ui.unit.IntPx x;
+    property public final inline androidx.ui.unit.IntPx y;
+    field public static final androidx.ui.unit.IntPxPosition.Companion! Companion;
+  }
+
+  public static final class IntPxPosition.Companion {
+    method public androidx.ui.unit.IntPxPosition getOrigin();
+    property public final androidx.ui.unit.IntPxPosition Origin;
+  }
+
+  public final class IntPxSize {
+    method public androidx.ui.unit.IntPxSize copy(long value);
+    method public inline operator androidx.ui.unit.IntPxSize div(int other);
+    method public inline androidx.ui.unit.IntPx getHeight();
+    method public inline androidx.ui.unit.IntPx getWidth();
+    method public inline operator androidx.ui.unit.IntPxSize times(int other);
+    property public final inline androidx.ui.unit.IntPx height;
+    property public final inline androidx.ui.unit.IntPx width;
+  }
+
+  public final inline class Position {
+    ctor public Position();
+    method public static long constructor-impl(internal long value);
+    method public static boolean equals-impl(long p, Object? p1);
+    method public static boolean equals-impl0(long p1, long p2);
+    method public static androidx.ui.unit.Dp getX-impl(long $this);
+    method public static androidx.ui.unit.Dp getY-impl(long $this);
+    method public static int hashCode-impl(long p);
+    method public static inline operator long minus-T8eBu-w(long $this, long other);
+    method public static inline operator long plus-T8eBu-w(long $this, long other);
+    method public static String toString-impl(long $this);
+  }
+
+  public final class Px implements java.lang.Comparable<androidx.ui.unit.Px> {
+    ctor public Px(float value);
+    method public operator int compareTo(androidx.ui.unit.Px other);
+    method public inline operator int compareTo(androidx.ui.unit.IntPx other);
+    method public float component1();
+    method public androidx.ui.unit.Px copy(float value);
+    method public inline operator androidx.ui.unit.Px div(float other);
+    method public inline operator androidx.ui.unit.Px div(int other);
+    method public inline operator float div(androidx.ui.unit.Px other);
+    method public inline operator float div-RjPF0Mw(float other);
+    method public float getValue();
+    method public inline operator androidx.ui.unit.Px minus(androidx.ui.unit.Px other);
+    method public inline operator androidx.ui.unit.Px minus(androidx.ui.unit.IntPx other);
+    method public inline operator androidx.ui.unit.Px plus(androidx.ui.unit.Px other);
+    method public inline operator androidx.ui.unit.Px plus(androidx.ui.unit.IntPx other);
+    method public inline operator androidx.ui.unit.Px times(float other);
+    method public inline operator androidx.ui.unit.Px times(int other);
+    method public inline operator float times(androidx.ui.unit.Px other);
+    method public inline operator float times-RjPF0Mw(float other);
+    method public inline operator androidx.ui.unit.Px unaryMinus();
+    field public static final androidx.ui.unit.Px.Companion! Companion;
+  }
+
+  public static final class Px.Companion {
+    method public androidx.ui.unit.Px getInfinity();
+    method public androidx.ui.unit.Px getZero();
+    property public final androidx.ui.unit.Px Infinity;
+    property public final androidx.ui.unit.Px Zero;
+  }
+
+  public final class PxBounds {
+    ctor public PxBounds(androidx.ui.unit.Px left, androidx.ui.unit.Px top, androidx.ui.unit.Px right, androidx.ui.unit.Px bottom);
+    method public androidx.ui.unit.Px component1();
+    method public androidx.ui.unit.Px component2();
+    method public androidx.ui.unit.Px component3();
+    method public androidx.ui.unit.Px component4();
+    method public androidx.ui.unit.PxBounds copy(androidx.ui.unit.Px left, androidx.ui.unit.Px top, androidx.ui.unit.Px right, androidx.ui.unit.Px bottom);
+    method public androidx.ui.unit.Px getBottom();
+    method public androidx.ui.unit.Px getLeft();
+    method public androidx.ui.unit.Px getRight();
+    method public androidx.ui.unit.Px getTop();
+  }
+
+  public final inline class PxCubed implements java.lang.Comparable<androidx.ui.unit.PxCubed> {
+    ctor public PxCubed();
+    method public operator int compareTo-bji3ab4(float p);
+    method public static operator int compareTo-bji3ab4(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator androidx.ui.unit.Px div-RjPF0Mw(float $this, float other);
+    method public static inline operator float div-bji3ab4(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator float div-impl(float $this, androidx.ui.unit.Px other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-bji3ab4(float $this, float dimension);
+    method public static inline operator float plus-bji3ab4(float $this, float dimension);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final inline class PxInverse implements java.lang.Comparable<androidx.ui.unit.PxInverse> {
+    ctor public PxInverse();
+    method public operator int compareTo-KGV0gLo(float p);
+    method public static operator int compareTo-KGV0gLo(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-KGV0gLo(float $this, float dimension);
+    method public static inline operator float plus-KGV0gLo(float $this, float dimension);
+    method public static inline operator androidx.ui.unit.Px times-RjPF0Mw(float $this, float other);
+    method public static inline operator float times-bji3ab4(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Px other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final class PxKt {
+    method public static inline androidx.ui.unit.PxPosition PxPosition(androidx.ui.unit.Px x, androidx.ui.unit.Px y);
+    method public static inline androidx.ui.unit.PxSize PxSize(androidx.ui.unit.Px width, androidx.ui.unit.Px height);
+    method public static androidx.ui.unit.PxPosition center(androidx.ui.unit.PxSize);
+    method public static inline androidx.ui.unit.Px coerceAtLeast(androidx.ui.unit.Px, androidx.ui.unit.Px minimumValue);
+    method public static inline androidx.ui.unit.Px coerceAtMost(androidx.ui.unit.Px, androidx.ui.unit.Px maximumValue);
+    method public static inline androidx.ui.unit.Px coerceIn(androidx.ui.unit.Px, androidx.ui.unit.Px minimumValue, androidx.ui.unit.Px maximumValue);
+    method public static inline operator float div(float, androidx.ui.unit.Px other);
+    method public static inline operator float div(double, androidx.ui.unit.Px other);
+    method public static inline operator float div(int, androidx.ui.unit.Px other);
+    method public static androidx.ui.unit.Px getDistance(androidx.ui.unit.PxPosition);
+    method public static inline androidx.ui.unit.Px getHeight(androidx.ui.unit.PxBounds);
+    method public static androidx.ui.unit.Px! getMinDimension(androidx.ui.unit.PxSize);
+    method public static inline androidx.ui.unit.Px getPx(int);
+    method public static inline androidx.ui.unit.Px getPx(double);
+    method public static inline androidx.ui.unit.Px getPx(float);
+    method public static inline androidx.ui.unit.Px getWidth(androidx.ui.unit.PxBounds);
+    method public static androidx.ui.unit.Px lerp(androidx.ui.unit.Px start, androidx.ui.unit.Px stop, float fraction);
+    method public static androidx.ui.unit.PxPosition lerp(androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition stop, float fraction);
+    method public static inline androidx.ui.unit.Px max(androidx.ui.unit.Px a, androidx.ui.unit.Px b);
+    method public static inline androidx.ui.unit.Px min(androidx.ui.unit.Px a, androidx.ui.unit.Px b);
+    method public static inline androidx.ui.unit.IntPxPosition round(androidx.ui.unit.PxPosition);
+    method public static inline operator androidx.ui.unit.Px times(float, androidx.ui.unit.Px other);
+    method public static inline operator androidx.ui.unit.Px times(double, androidx.ui.unit.Px other);
+    method public static inline operator androidx.ui.unit.Px times(int, androidx.ui.unit.Px other);
+    method public static inline operator androidx.ui.unit.PxSize times(int, androidx.ui.unit.PxSize size);
+    method public static inline operator androidx.ui.unit.PxSize times(float, androidx.ui.unit.PxSize size);
+    method public static inline operator androidx.ui.unit.PxSize times(double, androidx.ui.unit.PxSize size);
+    method public static androidx.ui.unit.PxBounds toBounds(androidx.ui.unit.PxSize);
+    method public static inline androidx.ui.geometry.Offset toOffset(androidx.ui.unit.PxPosition);
+    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxBounds);
+    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxSize);
+    method public static androidx.ui.unit.PxSize toSize(androidx.ui.unit.PxBounds);
+  }
+
+  public final class PxPosition {
+    method public androidx.ui.unit.PxPosition copy(long value);
+    method public inline androidx.ui.unit.Px getX();
+    method public inline androidx.ui.unit.Px getY();
+    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.PxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.PxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition unaryMinus();
+    property public final inline androidx.ui.unit.Px x;
+    property public final inline androidx.ui.unit.Px y;
+    field public static final androidx.ui.unit.PxPosition.Companion! Companion;
+  }
+
+  public static final class PxPosition.Companion {
+    method public androidx.ui.unit.PxPosition getOrigin();
+    property public final androidx.ui.unit.PxPosition Origin;
+  }
+
+  public final class PxSize {
+    method public androidx.ui.unit.PxSize copy(long value);
+    method public inline operator androidx.ui.unit.PxSize div(int other);
+    method public inline operator androidx.ui.unit.PxSize div(float other);
+    method public inline operator androidx.ui.unit.PxSize div(double other);
+    method public inline androidx.ui.unit.Px getHeight();
+    method public inline androidx.ui.unit.Px getWidth();
+    method public inline operator androidx.ui.unit.PxSize times(int other);
+    method public inline operator androidx.ui.unit.PxSize times(float other);
+    method public inline operator androidx.ui.unit.PxSize times(double other);
+    property public final inline androidx.ui.unit.Px height;
+    property public final inline androidx.ui.unit.Px width;
+    field public static final androidx.ui.unit.PxSize.Companion! Companion;
+  }
+
+  public static final class PxSize.Companion {
+    method public androidx.ui.unit.PxSize getZero();
+    property public final androidx.ui.unit.PxSize Zero;
+  }
+
+  public final inline class PxSquared implements java.lang.Comparable<androidx.ui.unit.PxSquared> {
+    ctor public PxSquared();
+    method public operator int compareTo-RjPF0Mw(float p);
+    method public static operator int compareTo-RjPF0Mw(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-RjPF0Mw(float $this, float other);
+    method public static inline operator float div-bji3ab4(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator androidx.ui.unit.Px div-impl(float $this, androidx.ui.unit.Px other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-RjPF0Mw(float $this, float other);
+    method public static inline operator float plus-RjPF0Mw(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Px other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final inline class Size {
+    ctor public Size();
+    method public static long constructor-impl(internal long value);
+    method public static inline operator long div-impl(long $this, int other);
+    method public static inline operator long div-impl(long $this, float other);
+    method public static inline operator long div-impl(long $this, double other);
+    method public static boolean equals-impl(long p, Object? p1);
+    method public static boolean equals-impl0(long p1, long p2);
+    method public static androidx.ui.unit.Dp getHeight-impl(long $this);
+    method public static androidx.ui.unit.Dp getWidth-impl(long $this);
+    method public static int hashCode-impl(long p);
+    method public static inline operator long times-impl(long $this, int other);
+    method public static inline operator long times-impl(long $this, float other);
+    method public static inline operator long times-impl(long $this, double other);
+    method public static String toString-impl(long $this);
+  }
+
+  public final class TextUnit {
+    ctor public TextUnit(long packedValue);
+    method public inline operator int compareTo(androidx.ui.unit.TextUnit other);
+    method public long component1();
+    method public androidx.ui.unit.TextUnit copy(long packedValue);
+    method public inline operator androidx.ui.unit.TextUnit div(float other);
+    method public inline operator androidx.ui.unit.TextUnit div(double other);
+    method public inline operator androidx.ui.unit.TextUnit div(int other);
+    method public inline operator float div(androidx.ui.unit.TextUnit other);
+    method public long getPackedValue();
+    method public androidx.ui.unit.TextUnitType getType();
+    method public float getValue();
+    method public boolean isEm();
+    method public boolean isInherit();
+    method public boolean isSp();
+    method public inline operator androidx.ui.unit.TextUnit minus(androidx.ui.unit.TextUnit other);
+    method public inline operator androidx.ui.unit.TextUnit plus(androidx.ui.unit.TextUnit other);
+    method public inline operator androidx.ui.unit.TextUnit times(float other);
+    method public inline operator androidx.ui.unit.TextUnit times(double other);
+    method public inline operator androidx.ui.unit.TextUnit times(int other);
+    method public inline operator androidx.ui.unit.TextUnit unaryMinus();
+    property public final boolean isEm;
+    property public final boolean isInherit;
+    property public final boolean isSp;
+    property public final androidx.ui.unit.TextUnitType type;
+    property public final float value;
+    field public static final androidx.ui.unit.TextUnit.Companion! Companion;
+  }
+
+  public static final class TextUnit.Companion {
+    method public androidx.ui.unit.TextUnit Em(int value);
+    method public androidx.ui.unit.TextUnit Em(float value);
+    method public androidx.ui.unit.TextUnit Em(double value);
+    method public androidx.ui.unit.TextUnit Sp(int value);
+    method public androidx.ui.unit.TextUnit Sp(float value);
+    method public androidx.ui.unit.TextUnit Sp(double value);
+    method public androidx.ui.unit.TextUnit getInherit();
+    property public final androidx.ui.unit.TextUnit Inherit;
+  }
+
+  public final class TextUnitKt {
+    method public static inline androidx.ui.unit.TextUnit coerceAtLeast(androidx.ui.unit.TextUnit, androidx.ui.unit.TextUnit minimumValue);
+    method public static inline androidx.ui.unit.TextUnit coerceAtMost(androidx.ui.unit.TextUnit, androidx.ui.unit.TextUnit maximumValue);
+    method public static inline androidx.ui.unit.TextUnit coerceIn(androidx.ui.unit.TextUnit, androidx.ui.unit.TextUnit minimumValue, androidx.ui.unit.TextUnit maximumValue);
+    method public static androidx.ui.unit.TextUnit getEm(float);
+    method public static androidx.ui.unit.TextUnit getEm(double);
+    method public static androidx.ui.unit.TextUnit getEm(int);
+    method public static androidx.ui.unit.TextUnit getSp(float);
+    method public static androidx.ui.unit.TextUnit getSp(double);
+    method public static androidx.ui.unit.TextUnit getSp(int);
+    method public static androidx.ui.unit.TextUnit lerp(androidx.ui.unit.TextUnit a, androidx.ui.unit.TextUnit b, float t);
+    method public static inline androidx.ui.unit.TextUnit max(androidx.ui.unit.TextUnit a, androidx.ui.unit.TextUnit b);
+    method public static inline androidx.ui.unit.TextUnit min(androidx.ui.unit.TextUnit a, androidx.ui.unit.TextUnit b);
+    method public static inline operator androidx.ui.unit.TextUnit times(float, androidx.ui.unit.TextUnit other);
+    method public static inline operator androidx.ui.unit.TextUnit times(double, androidx.ui.unit.TextUnit other);
+    method public static inline operator androidx.ui.unit.TextUnit times(int, androidx.ui.unit.TextUnit other);
+  }
+
+  public enum TextUnitType {
+    enum_constant public static final androidx.ui.unit.TextUnitType Em;
+    enum_constant public static final androidx.ui.unit.TextUnitType Inherit;
+    enum_constant public static final androidx.ui.unit.TextUnitType Sp;
+  }
+
+  public final class Uptime implements java.lang.Comparable<androidx.ui.unit.Uptime> {
+    ctor public Uptime(long nanoseconds);
+    method public int compareTo(androidx.ui.unit.Uptime other);
+    method public long component1();
+    method public androidx.ui.unit.Uptime copy(long nanoseconds);
+    method public long getNanoseconds();
+    method public operator androidx.ui.unit.Uptime minus(androidx.ui.unit.Duration duration);
+    method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Uptime other);
+    method public operator androidx.ui.unit.Uptime plus(androidx.ui.unit.Duration duration);
+    field public static final androidx.ui.unit.Uptime.Companion! Companion;
+  }
+
+  public static final class Uptime.Companion {
+    method public androidx.ui.unit.Uptime getBoot();
+    property public final androidx.ui.unit.Uptime Boot;
+  }
+
+  public final class UptimeKt {
+    method public static operator androidx.ui.unit.Uptime plus(androidx.ui.unit.Duration, androidx.ui.unit.Uptime uptime);
+  }
+
+  public final class Velocity {
+    ctor public Velocity(androidx.ui.unit.PxPosition pixelsPerSecond);
+    method public androidx.ui.unit.PxPosition component1();
+    method public androidx.ui.unit.Velocity copy(androidx.ui.unit.PxPosition pixelsPerSecond);
+    method public androidx.ui.unit.PxPosition getPixelsPerSecond();
+    method public operator androidx.ui.unit.Velocity unaryMinus();
+    field public static final androidx.ui.unit.Velocity.Companion! Companion;
+  }
+
+  public static final class Velocity.Companion {
+    method public androidx.ui.unit.Velocity getZero();
+    property public final androidx.ui.unit.Velocity Zero;
+  }
+
+  public final class VelocityKt {
+    method public static operator androidx.ui.unit.Velocity minus(androidx.ui.unit.Velocity, androidx.ui.unit.Velocity other);
+    method public static operator androidx.ui.unit.Velocity plus(androidx.ui.unit.Velocity, androidx.ui.unit.Velocity other);
+  }
+
+}
+
diff --git a/ui/ui-unit/api/api_lint.ignore b/ui/ui-unit/api/api_lint.ignore
new file mode 100644
index 0000000..0ffdbf3
--- /dev/null
+++ b/ui/ui-unit/api/api_lint.ignore
@@ -0,0 +1,27 @@
+// Baseline format: 1.0
+AcronymName: androidx.ui.unit.DensityScope#toPx-kAYDl8w(long):
+    Acronyms should not be capitalized in method names: was `toPx-kAYDl8w`, should this be `toPx-kAyDl8w`?
+AcronymName: androidx.ui.unit.DpKt#center-kAYDl8w(long):
+    Acronyms should not be capitalized in method names: was `center-kAYDl8w`, should this be `center-kAyDl8w`?
+AcronymName: androidx.ui.unit.DpKt#lerp-d5NHFfI(long, long, float):
+    Acronyms should not be capitalized in method names: was `lerp-d5NHFfI`, should this be `lerp-d5NhFfI`?
+AcronymName: androidx.ui.unit.DpKt#times-DdskrAE(int, long):
+    Acronyms should not be capitalized in method names: was `times-DdskrAE`, should this be `times-DdskrAe`?
+AcronymName: androidx.ui.unit.DpKt#toBounds-kAYDl8w(long):
+    Acronyms should not be capitalized in method names: was `toBounds-kAYDl8w`, should this be `toBounds-kAyDl8w`?
+AcronymName: androidx.ui.unit.PxInverse#compareTo-KGV0gLo(float):
+    Acronyms should not be capitalized in method names: was `compareTo-KGV0gLo`, should this be `compareTo-KgV0gLo`?
+AcronymName: androidx.ui.unit.PxInverse#compareTo-KGV0gLo(float, float):
+    Acronyms should not be capitalized in method names: was `compareTo-KGV0gLo`, should this be `compareTo-KgV0gLo`?
+AcronymName: androidx.ui.unit.PxInverse#minus-KGV0gLo(float, float):
+    Acronyms should not be capitalized in method names: was `minus-KGV0gLo`, should this be `minus-KgV0gLo`?
+AcronymName: androidx.ui.unit.PxInverse#plus-KGV0gLo(float, float):
+    Acronyms should not be capitalized in method names: was `plus-KGV0gLo`, should this be `plus-KgV0gLo`?
+
+
+MethodNameUnits: androidx.ui.unit.Durations#inSeconds(androidx.ui.unit.Duration):
+    Returned time values must be in milliseconds, was `inSeconds`
+
+
+MissingNullability: androidx.ui.unit.PxKt#getMinDimension(androidx.ui.unit.PxSize):
+    Missing nullability on method `getMinDimension` return
diff --git a/ui/ui-unit/api/current.txt b/ui/ui-unit/api/current.txt
new file mode 100644
index 0000000..c7e6484
--- /dev/null
+++ b/ui/ui-unit/api/current.txt
@@ -0,0 +1,629 @@
+// Signature format: 3.0
+package androidx.ui.unit {
+
+  public final class Bounds {
+    ctor public Bounds(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.unit.Bounds copy(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp getBottom();
+    method public androidx.ui.unit.Dp getLeft();
+    method public androidx.ui.unit.Dp getRight();
+    method public androidx.ui.unit.Dp getTop();
+  }
+
+  public final class Density {
+    ctor public Density(float density, float fontScale);
+    method public float component1();
+    method public float component2();
+    method public androidx.ui.unit.Density copy(float density, float fontScale);
+    method public float getDensity();
+    method public float getFontScale();
+  }
+
+  public final class DensityKt {
+    method public static androidx.ui.unit.Density Density(android.content.Context context);
+    method public static androidx.ui.unit.DensityScope DensityScope(androidx.ui.unit.Density density);
+    method public static inline <R> R! withDensity(androidx.ui.unit.Density density, kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,? extends R> block);
+  }
+
+  public interface DensityScope {
+    method public androidx.ui.unit.Density getDensity();
+    method public default androidx.ui.unit.Dp toDp(androidx.ui.unit.TextUnit);
+    method public default androidx.ui.unit.Dp toDp(androidx.ui.unit.Px);
+    method public default androidx.ui.unit.Dp toDp(androidx.ui.unit.IntPx);
+    method public default androidx.ui.unit.Dp toDp(float);
+    method public default androidx.ui.unit.Dp toDp(int);
+    method public default androidx.ui.unit.IntPx toIntPx(androidx.ui.unit.Dp);
+    method public default androidx.ui.unit.IntPx toIntPx(androidx.ui.unit.TextUnit);
+    method public default androidx.ui.unit.Px toPx(androidx.ui.unit.Dp);
+    method public default androidx.ui.unit.Px toPx(androidx.ui.unit.TextUnit);
+    method public default androidx.ui.unit.PxSize toPx-kAYDl8w(long);
+    method public default androidx.ui.geometry.Rect toRect(androidx.ui.unit.Bounds);
+    method public default androidx.ui.unit.TextUnit toSp(androidx.ui.unit.Dp);
+    method public default androidx.ui.unit.TextUnit toSp(androidx.ui.unit.Px);
+    method public default androidx.ui.unit.TextUnit toSp(androidx.ui.unit.IntPx);
+    method public default androidx.ui.unit.TextUnit toSp(float);
+    method public default androidx.ui.unit.TextUnit toSp(int);
+    property public abstract androidx.ui.unit.Density density;
+  }
+
+  public final class Dp implements java.lang.Comparable<androidx.ui.unit.Dp> {
+    ctor public Dp(float value);
+    method public operator int compareTo(androidx.ui.unit.Dp other);
+    method public float component1();
+    method public androidx.ui.unit.Dp copy(float value);
+    method public inline operator androidx.ui.unit.Dp div(float other);
+    method public inline operator androidx.ui.unit.Dp div(int other);
+    method public inline operator float div(androidx.ui.unit.Dp other);
+    method public inline operator float div-x8crYZs(float other);
+    method public float getValue();
+    method public inline operator androidx.ui.unit.Dp minus(androidx.ui.unit.Dp other);
+    method public inline operator androidx.ui.unit.Dp plus(androidx.ui.unit.Dp other);
+    method public inline operator androidx.ui.unit.Dp times(float other);
+    method public inline operator androidx.ui.unit.Dp times(int other);
+    method public inline operator float times(androidx.ui.unit.Dp other);
+    method public inline operator float times-x8crYZs(float other);
+    method public inline operator androidx.ui.unit.Dp unaryMinus();
+    field public static final androidx.ui.unit.Dp.Companion! Companion;
+  }
+
+  public static final class Dp.Companion {
+    method public androidx.ui.unit.Dp getHairline();
+    method public androidx.ui.unit.Dp getInfinity();
+    property public final androidx.ui.unit.Dp Hairline;
+    property public final androidx.ui.unit.Dp Infinity;
+  }
+
+  public final inline class DpCubed implements java.lang.Comparable<androidx.ui.unit.DpCubed> {
+    ctor public DpCubed();
+    method public operator int compareTo-JDqhs2g(float p);
+    method public static operator int compareTo-JDqhs2g(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-JDqhs2g(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator float div-impl(float $this, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp div-x8crYZs(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-JDqhs2g(float $this, float dimension);
+    method public static inline operator float plus-JDqhs2g(float $this, float dimension);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final inline class DpInverse implements java.lang.Comparable<androidx.ui.unit.DpInverse> {
+    ctor public DpInverse();
+    method public operator int compareTo-_K2iRR8(float p);
+    method public static operator int compareTo-_K2iRR8(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-_K2iRR8(float $this, float dimension);
+    method public static inline operator float plus-_K2iRR8(float $this, float dimension);
+    method public static inline operator float times-JDqhs2g(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp times-x8crYZs(float $this, float other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final class DpKt {
+    method public static inline long Position(androidx.ui.unit.Dp x, androidx.ui.unit.Dp y);
+    method public static inline long Size(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
+    method public static long center-kAYDl8w(long);
+    method public static inline androidx.ui.unit.Dp coerceAtLeast(androidx.ui.unit.Dp, androidx.ui.unit.Dp minimumValue);
+    method public static inline androidx.ui.unit.Dp coerceAtMost(androidx.ui.unit.Dp, androidx.ui.unit.Dp maximumValue);
+    method public static inline androidx.ui.unit.Dp coerceIn(androidx.ui.unit.Dp, androidx.ui.unit.Dp minimumValue, androidx.ui.unit.Dp maximumValue);
+    method public static inline operator float div(float, androidx.ui.unit.Dp other);
+    method public static inline operator float div(double, androidx.ui.unit.Dp other);
+    method public static inline operator float div(int, androidx.ui.unit.Dp other);
+    method public static androidx.ui.unit.Dp getDistance-T8eBu-w(long);
+    method public static inline androidx.ui.unit.Dp getDp(int);
+    method public static inline androidx.ui.unit.Dp getDp(double);
+    method public static inline androidx.ui.unit.Dp getDp(float);
+    method public static inline androidx.ui.unit.Dp getHeight(androidx.ui.unit.Bounds);
+    method public static inline androidx.ui.unit.Dp getWidth(androidx.ui.unit.Bounds);
+    method public static inline boolean isFinite(androidx.ui.unit.Dp);
+    method public static androidx.ui.unit.Dp lerp(androidx.ui.unit.Dp start, androidx.ui.unit.Dp stop, float fraction);
+    method public static long lerp-d5NHFfI(long start, long stop, float fraction);
+    method public static inline androidx.ui.unit.Dp max(androidx.ui.unit.Dp a, androidx.ui.unit.Dp b);
+    method public static inline androidx.ui.unit.Dp min(androidx.ui.unit.Dp a, androidx.ui.unit.Dp b);
+    method public static inline operator androidx.ui.unit.Dp times(float, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp times(double, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp times(int, androidx.ui.unit.Dp other);
+    method public static inline operator long times--D0i1nw(float, long size);
+    method public static inline operator long times-DdskrAE(int, long size);
+    method public static inline operator long times-l9Tz9ww(double, long size);
+    method public static androidx.ui.unit.Bounds toBounds-kAYDl8w(long);
+    method public static inline long toSize(androidx.ui.unit.Bounds);
+  }
+
+  public final inline class DpSquared implements java.lang.Comparable<androidx.ui.unit.DpSquared> {
+    ctor public DpSquared();
+    method public operator int compareTo-x8crYZs(float p);
+    method public static operator int compareTo-x8crYZs(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-JDqhs2g(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator androidx.ui.unit.Dp div-impl(float $this, androidx.ui.unit.Dp other);
+    method public static inline operator float div-x8crYZs(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-x8crYZs(float $this, float other);
+    method public static inline operator float plus-x8crYZs(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Dp other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final class Duration implements java.lang.Comparable<androidx.ui.unit.Duration> {
+    ctor public Duration(long nanoseconds);
+    method public int compareTo(androidx.ui.unit.Duration other);
+    method public long component1();
+    method public androidx.ui.unit.Duration copy(long nanoseconds);
+    method public operator androidx.ui.unit.Duration div(int quotient);
+    method public operator androidx.ui.unit.Duration div(double quotient);
+    method public long getNanoseconds();
+    method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Duration other);
+    method public operator androidx.ui.unit.Duration plus(androidx.ui.unit.Duration other);
+    method public operator androidx.ui.unit.Duration times(int factor);
+    method public operator androidx.ui.unit.Duration times(double factor);
+    field public static final androidx.ui.unit.Duration.Companion! Companion;
+  }
+
+  public static final class Duration.Companion {
+    method public androidx.ui.unit.Duration getZero();
+    property public final androidx.ui.unit.Duration Zero;
+  }
+
+  public final class Durations {
+    method public static androidx.ui.unit.Duration Duration(long days = 0, long hours = 0, long minutes = 0, long seconds = 0, long milliseconds = 0, long microseconds = 0, long nanoseconds = 0);
+    method public static androidx.ui.unit.Duration getDays(long);
+    method public static androidx.ui.unit.Duration getDays(int);
+    method public static androidx.ui.unit.Duration getHours(long);
+    method public static androidx.ui.unit.Duration getHours(int);
+    method public static androidx.ui.unit.Duration getMicroseconds(long);
+    method public static androidx.ui.unit.Duration getMicroseconds(int);
+    method public static androidx.ui.unit.Duration getMilliseconds(long);
+    method public static androidx.ui.unit.Duration getMilliseconds(int);
+    method public static androidx.ui.unit.Duration getMinutes(long);
+    method public static androidx.ui.unit.Duration getMinutes(int);
+    method public static androidx.ui.unit.Duration getNanoseconds(long);
+    method public static androidx.ui.unit.Duration getNanoseconds(int);
+    method public static long getNanosecondsPerDay();
+    method public static long getNanosecondsPerHour();
+    method public static long getNanosecondsPerMillisecond();
+    method public static long getNanosecondsPerMinute();
+    method public static long getNanosecondsPerSecond();
+    method public static androidx.ui.unit.Duration getSeconds(long);
+    method public static androidx.ui.unit.Duration getSeconds(int);
+    method public static long inDays(androidx.ui.unit.Duration);
+    method public static long inHours(androidx.ui.unit.Duration);
+    method public static long inMicroseconds(androidx.ui.unit.Duration);
+    method public static long inMilliseconds(androidx.ui.unit.Duration);
+    method public static long inMinutes(androidx.ui.unit.Duration);
+    method public static long inSeconds(androidx.ui.unit.Duration);
+    field public static final long HoursPerDay = 24L; // 0x18L
+    field public static final long MicrosecondsPerMillisecond = 1000L; // 0x3e8L
+    field public static final long MillisecondsPerSecond = 1000L; // 0x3e8L
+    field public static final long MinutesPerHour = 60L; // 0x3cL
+    field public static final long NanosecondsPerMicrosecond = 1000L; // 0x3e8L
+    field public static final long SecondsPerMinute = 60L; // 0x3cL
+  }
+
+  public final class IntPx implements java.lang.Comparable<androidx.ui.unit.IntPx> {
+    ctor public IntPx(int value);
+    method public operator int compareTo(androidx.ui.unit.IntPx other);
+    method public inline operator int compareTo(androidx.ui.unit.Px other);
+    method public int component1();
+    method public androidx.ui.unit.IntPx copy(int value);
+    method public operator androidx.ui.unit.IntPx div(float other);
+    method public operator androidx.ui.unit.IntPx div(double other);
+    method public operator androidx.ui.unit.IntPx div(int other);
+    method public int getValue();
+    method public operator androidx.ui.unit.IntPx minus(androidx.ui.unit.IntPx other);
+    method public operator androidx.ui.unit.IntPx plus(androidx.ui.unit.IntPx other);
+    method public inline operator androidx.ui.unit.IntPx rem(int other);
+    method public operator androidx.ui.unit.IntPx times(float other);
+    method public operator androidx.ui.unit.IntPx times(double other);
+    method public operator androidx.ui.unit.IntPx times(int other);
+    method public operator androidx.ui.unit.IntPx unaryMinus();
+    field public static final androidx.ui.unit.IntPx.Companion! Companion;
+  }
+
+  public static final class IntPx.Companion {
+    method public androidx.ui.unit.IntPx getInfinity();
+    method public androidx.ui.unit.IntPx getZero();
+    property public final androidx.ui.unit.IntPx Infinity;
+    property public final androidx.ui.unit.IntPx Zero;
+  }
+
+  public final class IntPxBounds {
+    ctor public IntPxBounds(androidx.ui.unit.IntPx left, androidx.ui.unit.IntPx top, androidx.ui.unit.IntPx right, androidx.ui.unit.IntPx bottom);
+    method public androidx.ui.unit.IntPx component1();
+    method public androidx.ui.unit.IntPx component2();
+    method public androidx.ui.unit.IntPx component3();
+    method public androidx.ui.unit.IntPx component4();
+    method public androidx.ui.unit.IntPxBounds copy(androidx.ui.unit.IntPx left, androidx.ui.unit.IntPx top, androidx.ui.unit.IntPx right, androidx.ui.unit.IntPx bottom);
+    method public androidx.ui.unit.IntPx getBottom();
+    method public androidx.ui.unit.IntPx getLeft();
+    method public androidx.ui.unit.IntPx getRight();
+    method public androidx.ui.unit.IntPx getTop();
+  }
+
+  public final class IntPxKt {
+    method public static inline androidx.ui.unit.IntPxPosition IntPxPosition(androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
+    method public static inline androidx.ui.unit.IntPxSize IntPxSize(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height);
+    method public static inline androidx.ui.unit.PxPosition PxPosition(androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
+    method public static inline androidx.ui.unit.PxSize PxSize(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height);
+    method public static androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxSize);
+    method public static inline androidx.ui.unit.IntPx coerceAtLeast(androidx.ui.unit.IntPx, androidx.ui.unit.IntPx minimumValue);
+    method public static inline androidx.ui.unit.IntPx coerceAtMost(androidx.ui.unit.IntPx, androidx.ui.unit.IntPx maximumValue);
+    method public static inline androidx.ui.unit.IntPx coerceIn(androidx.ui.unit.IntPx, androidx.ui.unit.IntPx minimumValue, androidx.ui.unit.IntPx maximumValue);
+    method public static inline androidx.ui.unit.IntPx getHeight(androidx.ui.unit.IntPxBounds);
+    method public static inline androidx.ui.unit.IntPx getIpx(int);
+    method public static inline androidx.ui.unit.IntPx getWidth(androidx.ui.unit.IntPxBounds);
+    method public static inline boolean isFinite(androidx.ui.unit.IntPx);
+    method public static androidx.ui.unit.IntPx lerp(androidx.ui.unit.IntPx start, androidx.ui.unit.IntPx stop, float fraction);
+    method public static androidx.ui.unit.IntPxPosition lerp(androidx.ui.unit.IntPxPosition start, androidx.ui.unit.IntPxPosition stop, float fraction);
+    method public static inline androidx.ui.unit.IntPx max(androidx.ui.unit.IntPx a, androidx.ui.unit.IntPx b);
+    method public static inline androidx.ui.unit.IntPx min(androidx.ui.unit.IntPx a, androidx.ui.unit.IntPx b);
+    method public static inline androidx.ui.unit.IntPx round(androidx.ui.unit.Px);
+    method public static inline operator androidx.ui.unit.IntPx times(float, androidx.ui.unit.IntPx other);
+    method public static inline operator androidx.ui.unit.IntPx times(double, androidx.ui.unit.IntPx other);
+    method public static inline operator androidx.ui.unit.IntPx times(int, androidx.ui.unit.IntPx other);
+    method public static inline operator androidx.ui.unit.IntPxSize times(int, androidx.ui.unit.IntPxSize size);
+    method public static inline androidx.ui.unit.Px toPx(androidx.ui.unit.IntPx);
+    method public static inline androidx.ui.unit.PxPosition toPxPosition(androidx.ui.unit.IntPxPosition);
+    method public static inline androidx.ui.unit.PxSize toPxSize(androidx.ui.unit.IntPxSize);
+    method public static inline androidx.ui.unit.IntPxSize toSize(androidx.ui.unit.IntPxBounds);
+  }
+
+  public final class IntPxPosition {
+    method public androidx.ui.unit.IntPxPosition copy(long value);
+    method public inline androidx.ui.unit.IntPx getX();
+    method public inline androidx.ui.unit.IntPx getY();
+    method public inline operator androidx.ui.unit.IntPxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.IntPxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.IntPxPosition unaryMinus();
+    property public final inline androidx.ui.unit.IntPx x;
+    property public final inline androidx.ui.unit.IntPx y;
+    field public static final androidx.ui.unit.IntPxPosition.Companion! Companion;
+  }
+
+  public static final class IntPxPosition.Companion {
+    method public androidx.ui.unit.IntPxPosition getOrigin();
+    property public final androidx.ui.unit.IntPxPosition Origin;
+  }
+
+  public final class IntPxSize {
+    method public androidx.ui.unit.IntPxSize copy(long value);
+    method public inline operator androidx.ui.unit.IntPxSize div(int other);
+    method public inline androidx.ui.unit.IntPx getHeight();
+    method public inline androidx.ui.unit.IntPx getWidth();
+    method public inline operator androidx.ui.unit.IntPxSize times(int other);
+    property public final inline androidx.ui.unit.IntPx height;
+    property public final inline androidx.ui.unit.IntPx width;
+  }
+
+  public final inline class Position {
+    ctor public Position();
+    method public static long constructor-impl(internal long value);
+    method public static boolean equals-impl(long p, Object? p1);
+    method public static boolean equals-impl0(long p1, long p2);
+    method public static androidx.ui.unit.Dp getX-impl(long $this);
+    method public static androidx.ui.unit.Dp getY-impl(long $this);
+    method public static int hashCode-impl(long p);
+    method public static inline operator long minus-T8eBu-w(long $this, long other);
+    method public static inline operator long plus-T8eBu-w(long $this, long other);
+    method public static String toString-impl(long $this);
+  }
+
+  public final class Px implements java.lang.Comparable<androidx.ui.unit.Px> {
+    ctor public Px(float value);
+    method public operator int compareTo(androidx.ui.unit.Px other);
+    method public inline operator int compareTo(androidx.ui.unit.IntPx other);
+    method public float component1();
+    method public androidx.ui.unit.Px copy(float value);
+    method public inline operator androidx.ui.unit.Px div(float other);
+    method public inline operator androidx.ui.unit.Px div(int other);
+    method public inline operator float div(androidx.ui.unit.Px other);
+    method public inline operator float div-RjPF0Mw(float other);
+    method public float getValue();
+    method public inline operator androidx.ui.unit.Px minus(androidx.ui.unit.Px other);
+    method public inline operator androidx.ui.unit.Px minus(androidx.ui.unit.IntPx other);
+    method public inline operator androidx.ui.unit.Px plus(androidx.ui.unit.Px other);
+    method public inline operator androidx.ui.unit.Px plus(androidx.ui.unit.IntPx other);
+    method public inline operator androidx.ui.unit.Px times(float other);
+    method public inline operator androidx.ui.unit.Px times(int other);
+    method public inline operator float times(androidx.ui.unit.Px other);
+    method public inline operator float times-RjPF0Mw(float other);
+    method public inline operator androidx.ui.unit.Px unaryMinus();
+    field public static final androidx.ui.unit.Px.Companion! Companion;
+  }
+
+  public static final class Px.Companion {
+    method public androidx.ui.unit.Px getInfinity();
+    method public androidx.ui.unit.Px getZero();
+    property public final androidx.ui.unit.Px Infinity;
+    property public final androidx.ui.unit.Px Zero;
+  }
+
+  public final class PxBounds {
+    ctor public PxBounds(androidx.ui.unit.Px left, androidx.ui.unit.Px top, androidx.ui.unit.Px right, androidx.ui.unit.Px bottom);
+    method public androidx.ui.unit.Px component1();
+    method public androidx.ui.unit.Px component2();
+    method public androidx.ui.unit.Px component3();
+    method public androidx.ui.unit.Px component4();
+    method public androidx.ui.unit.PxBounds copy(androidx.ui.unit.Px left, androidx.ui.unit.Px top, androidx.ui.unit.Px right, androidx.ui.unit.Px bottom);
+    method public androidx.ui.unit.Px getBottom();
+    method public androidx.ui.unit.Px getLeft();
+    method public androidx.ui.unit.Px getRight();
+    method public androidx.ui.unit.Px getTop();
+  }
+
+  public final inline class PxCubed implements java.lang.Comparable<androidx.ui.unit.PxCubed> {
+    ctor public PxCubed();
+    method public operator int compareTo-bji3ab4(float p);
+    method public static operator int compareTo-bji3ab4(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator androidx.ui.unit.Px div-RjPF0Mw(float $this, float other);
+    method public static inline operator float div-bji3ab4(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator float div-impl(float $this, androidx.ui.unit.Px other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-bji3ab4(float $this, float dimension);
+    method public static inline operator float plus-bji3ab4(float $this, float dimension);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final inline class PxInverse implements java.lang.Comparable<androidx.ui.unit.PxInverse> {
+    ctor public PxInverse();
+    method public operator int compareTo-KGV0gLo(float p);
+    method public static operator int compareTo-KGV0gLo(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-KGV0gLo(float $this, float dimension);
+    method public static inline operator float plus-KGV0gLo(float $this, float dimension);
+    method public static inline operator androidx.ui.unit.Px times-RjPF0Mw(float $this, float other);
+    method public static inline operator float times-bji3ab4(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Px other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final class PxKt {
+    method public static inline androidx.ui.unit.PxPosition PxPosition(androidx.ui.unit.Px x, androidx.ui.unit.Px y);
+    method public static inline androidx.ui.unit.PxSize PxSize(androidx.ui.unit.Px width, androidx.ui.unit.Px height);
+    method public static androidx.ui.unit.PxPosition center(androidx.ui.unit.PxSize);
+    method public static inline androidx.ui.unit.Px coerceAtLeast(androidx.ui.unit.Px, androidx.ui.unit.Px minimumValue);
+    method public static inline androidx.ui.unit.Px coerceAtMost(androidx.ui.unit.Px, androidx.ui.unit.Px maximumValue);
+    method public static inline androidx.ui.unit.Px coerceIn(androidx.ui.unit.Px, androidx.ui.unit.Px minimumValue, androidx.ui.unit.Px maximumValue);
+    method public static inline operator float div(float, androidx.ui.unit.Px other);
+    method public static inline operator float div(double, androidx.ui.unit.Px other);
+    method public static inline operator float div(int, androidx.ui.unit.Px other);
+    method public static androidx.ui.unit.Px getDistance(androidx.ui.unit.PxPosition);
+    method public static inline androidx.ui.unit.Px getHeight(androidx.ui.unit.PxBounds);
+    method public static androidx.ui.unit.Px! getMinDimension(androidx.ui.unit.PxSize);
+    method public static inline androidx.ui.unit.Px getPx(int);
+    method public static inline androidx.ui.unit.Px getPx(double);
+    method public static inline androidx.ui.unit.Px getPx(float);
+    method public static inline androidx.ui.unit.Px getWidth(androidx.ui.unit.PxBounds);
+    method public static androidx.ui.unit.Px lerp(androidx.ui.unit.Px start, androidx.ui.unit.Px stop, float fraction);
+    method public static androidx.ui.unit.PxPosition lerp(androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition stop, float fraction);
+    method public static inline androidx.ui.unit.Px max(androidx.ui.unit.Px a, androidx.ui.unit.Px b);
+    method public static inline androidx.ui.unit.Px min(androidx.ui.unit.Px a, androidx.ui.unit.Px b);
+    method public static inline androidx.ui.unit.IntPxPosition round(androidx.ui.unit.PxPosition);
+    method public static inline operator androidx.ui.unit.Px times(float, androidx.ui.unit.Px other);
+    method public static inline operator androidx.ui.unit.Px times(double, androidx.ui.unit.Px other);
+    method public static inline operator androidx.ui.unit.Px times(int, androidx.ui.unit.Px other);
+    method public static inline operator androidx.ui.unit.PxSize times(int, androidx.ui.unit.PxSize size);
+    method public static inline operator androidx.ui.unit.PxSize times(float, androidx.ui.unit.PxSize size);
+    method public static inline operator androidx.ui.unit.PxSize times(double, androidx.ui.unit.PxSize size);
+    method public static androidx.ui.unit.PxBounds toBounds(androidx.ui.unit.PxSize);
+    method public static inline androidx.ui.geometry.Offset toOffset(androidx.ui.unit.PxPosition);
+    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxBounds);
+    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxSize);
+    method public static androidx.ui.unit.PxSize toSize(androidx.ui.unit.PxBounds);
+  }
+
+  public final class PxPosition {
+    method public androidx.ui.unit.PxPosition copy(long value);
+    method public inline androidx.ui.unit.Px getX();
+    method public inline androidx.ui.unit.Px getY();
+    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.PxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.PxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition unaryMinus();
+    property public final inline androidx.ui.unit.Px x;
+    property public final inline androidx.ui.unit.Px y;
+    field public static final androidx.ui.unit.PxPosition.Companion! Companion;
+  }
+
+  public static final class PxPosition.Companion {
+    method public androidx.ui.unit.PxPosition getOrigin();
+    property public final androidx.ui.unit.PxPosition Origin;
+  }
+
+  public final class PxSize {
+    method public androidx.ui.unit.PxSize copy(long value);
+    method public inline operator androidx.ui.unit.PxSize div(int other);
+    method public inline operator androidx.ui.unit.PxSize div(float other);
+    method public inline operator androidx.ui.unit.PxSize div(double other);
+    method public inline androidx.ui.unit.Px getHeight();
+    method public inline androidx.ui.unit.Px getWidth();
+    method public inline operator androidx.ui.unit.PxSize times(int other);
+    method public inline operator androidx.ui.unit.PxSize times(float other);
+    method public inline operator androidx.ui.unit.PxSize times(double other);
+    property public final inline androidx.ui.unit.Px height;
+    property public final inline androidx.ui.unit.Px width;
+    field public static final androidx.ui.unit.PxSize.Companion! Companion;
+  }
+
+  public static final class PxSize.Companion {
+    method public androidx.ui.unit.PxSize getZero();
+    property public final androidx.ui.unit.PxSize Zero;
+  }
+
+  public final inline class PxSquared implements java.lang.Comparable<androidx.ui.unit.PxSquared> {
+    ctor public PxSquared();
+    method public operator int compareTo-RjPF0Mw(float p);
+    method public static operator int compareTo-RjPF0Mw(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-RjPF0Mw(float $this, float other);
+    method public static inline operator float div-bji3ab4(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator androidx.ui.unit.Px div-impl(float $this, androidx.ui.unit.Px other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-RjPF0Mw(float $this, float other);
+    method public static inline operator float plus-RjPF0Mw(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Px other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final inline class Size {
+    ctor public Size();
+    method public static long constructor-impl(internal long value);
+    method public static inline operator long div-impl(long $this, int other);
+    method public static inline operator long div-impl(long $this, float other);
+    method public static inline operator long div-impl(long $this, double other);
+    method public static boolean equals-impl(long p, Object? p1);
+    method public static boolean equals-impl0(long p1, long p2);
+    method public static androidx.ui.unit.Dp getHeight-impl(long $this);
+    method public static androidx.ui.unit.Dp getWidth-impl(long $this);
+    method public static int hashCode-impl(long p);
+    method public static inline operator long times-impl(long $this, int other);
+    method public static inline operator long times-impl(long $this, float other);
+    method public static inline operator long times-impl(long $this, double other);
+    method public static String toString-impl(long $this);
+  }
+
+  public final class TextUnit {
+    ctor public TextUnit(long packedValue);
+    method public inline operator int compareTo(androidx.ui.unit.TextUnit other);
+    method public long component1();
+    method public androidx.ui.unit.TextUnit copy(long packedValue);
+    method public inline operator androidx.ui.unit.TextUnit div(float other);
+    method public inline operator androidx.ui.unit.TextUnit div(double other);
+    method public inline operator androidx.ui.unit.TextUnit div(int other);
+    method public inline operator float div(androidx.ui.unit.TextUnit other);
+    method public long getPackedValue();
+    method public androidx.ui.unit.TextUnitType getType();
+    method public float getValue();
+    method public boolean isEm();
+    method public boolean isInherit();
+    method public boolean isSp();
+    method public inline operator androidx.ui.unit.TextUnit minus(androidx.ui.unit.TextUnit other);
+    method public inline operator androidx.ui.unit.TextUnit plus(androidx.ui.unit.TextUnit other);
+    method public inline operator androidx.ui.unit.TextUnit times(float other);
+    method public inline operator androidx.ui.unit.TextUnit times(double other);
+    method public inline operator androidx.ui.unit.TextUnit times(int other);
+    method public inline operator androidx.ui.unit.TextUnit unaryMinus();
+    property public final boolean isEm;
+    property public final boolean isInherit;
+    property public final boolean isSp;
+    property public final androidx.ui.unit.TextUnitType type;
+    property public final float value;
+    field public static final androidx.ui.unit.TextUnit.Companion! Companion;
+  }
+
+  public static final class TextUnit.Companion {
+    method public androidx.ui.unit.TextUnit Em(int value);
+    method public androidx.ui.unit.TextUnit Em(float value);
+    method public androidx.ui.unit.TextUnit Em(double value);
+    method public androidx.ui.unit.TextUnit Sp(int value);
+    method public androidx.ui.unit.TextUnit Sp(float value);
+    method public androidx.ui.unit.TextUnit Sp(double value);
+    method public androidx.ui.unit.TextUnit getInherit();
+    property public final androidx.ui.unit.TextUnit Inherit;
+  }
+
+  public final class TextUnitKt {
+    method public static inline androidx.ui.unit.TextUnit coerceAtLeast(androidx.ui.unit.TextUnit, androidx.ui.unit.TextUnit minimumValue);
+    method public static inline androidx.ui.unit.TextUnit coerceAtMost(androidx.ui.unit.TextUnit, androidx.ui.unit.TextUnit maximumValue);
+    method public static inline androidx.ui.unit.TextUnit coerceIn(androidx.ui.unit.TextUnit, androidx.ui.unit.TextUnit minimumValue, androidx.ui.unit.TextUnit maximumValue);
+    method public static androidx.ui.unit.TextUnit getEm(float);
+    method public static androidx.ui.unit.TextUnit getEm(double);
+    method public static androidx.ui.unit.TextUnit getEm(int);
+    method public static androidx.ui.unit.TextUnit getSp(float);
+    method public static androidx.ui.unit.TextUnit getSp(double);
+    method public static androidx.ui.unit.TextUnit getSp(int);
+    method public static androidx.ui.unit.TextUnit lerp(androidx.ui.unit.TextUnit a, androidx.ui.unit.TextUnit b, float t);
+    method public static inline androidx.ui.unit.TextUnit max(androidx.ui.unit.TextUnit a, androidx.ui.unit.TextUnit b);
+    method public static inline androidx.ui.unit.TextUnit min(androidx.ui.unit.TextUnit a, androidx.ui.unit.TextUnit b);
+    method public static inline operator androidx.ui.unit.TextUnit times(float, androidx.ui.unit.TextUnit other);
+    method public static inline operator androidx.ui.unit.TextUnit times(double, androidx.ui.unit.TextUnit other);
+    method public static inline operator androidx.ui.unit.TextUnit times(int, androidx.ui.unit.TextUnit other);
+  }
+
+  public enum TextUnitType {
+    enum_constant public static final androidx.ui.unit.TextUnitType Em;
+    enum_constant public static final androidx.ui.unit.TextUnitType Inherit;
+    enum_constant public static final androidx.ui.unit.TextUnitType Sp;
+  }
+
+  public final class Uptime implements java.lang.Comparable<androidx.ui.unit.Uptime> {
+    ctor public Uptime(long nanoseconds);
+    method public int compareTo(androidx.ui.unit.Uptime other);
+    method public long component1();
+    method public androidx.ui.unit.Uptime copy(long nanoseconds);
+    method public long getNanoseconds();
+    method public operator androidx.ui.unit.Uptime minus(androidx.ui.unit.Duration duration);
+    method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Uptime other);
+    method public operator androidx.ui.unit.Uptime plus(androidx.ui.unit.Duration duration);
+    field public static final androidx.ui.unit.Uptime.Companion! Companion;
+  }
+
+  public static final class Uptime.Companion {
+    method public androidx.ui.unit.Uptime getBoot();
+    property public final androidx.ui.unit.Uptime Boot;
+  }
+
+  public final class UptimeKt {
+    method public static operator androidx.ui.unit.Uptime plus(androidx.ui.unit.Duration, androidx.ui.unit.Uptime uptime);
+  }
+
+  public final class Velocity {
+    ctor public Velocity(androidx.ui.unit.PxPosition pixelsPerSecond);
+    method public androidx.ui.unit.PxPosition component1();
+    method public androidx.ui.unit.Velocity copy(androidx.ui.unit.PxPosition pixelsPerSecond);
+    method public androidx.ui.unit.PxPosition getPixelsPerSecond();
+    method public operator androidx.ui.unit.Velocity unaryMinus();
+    field public static final androidx.ui.unit.Velocity.Companion! Companion;
+  }
+
+  public static final class Velocity.Companion {
+    method public androidx.ui.unit.Velocity getZero();
+    property public final androidx.ui.unit.Velocity Zero;
+  }
+
+  public final class VelocityKt {
+    method public static operator androidx.ui.unit.Velocity minus(androidx.ui.unit.Velocity, androidx.ui.unit.Velocity other);
+    method public static operator androidx.ui.unit.Velocity plus(androidx.ui.unit.Velocity, androidx.ui.unit.Velocity other);
+  }
+
+}
+
diff --git a/ui/ui-unit/api/public_plus_experimental_0.1.0-dev04.txt b/ui/ui-unit/api/public_plus_experimental_0.1.0-dev04.txt
new file mode 100644
index 0000000..c7e6484
--- /dev/null
+++ b/ui/ui-unit/api/public_plus_experimental_0.1.0-dev04.txt
@@ -0,0 +1,629 @@
+// Signature format: 3.0
+package androidx.ui.unit {
+
+  public final class Bounds {
+    ctor public Bounds(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.unit.Bounds copy(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp getBottom();
+    method public androidx.ui.unit.Dp getLeft();
+    method public androidx.ui.unit.Dp getRight();
+    method public androidx.ui.unit.Dp getTop();
+  }
+
+  public final class Density {
+    ctor public Density(float density, float fontScale);
+    method public float component1();
+    method public float component2();
+    method public androidx.ui.unit.Density copy(float density, float fontScale);
+    method public float getDensity();
+    method public float getFontScale();
+  }
+
+  public final class DensityKt {
+    method public static androidx.ui.unit.Density Density(android.content.Context context);
+    method public static androidx.ui.unit.DensityScope DensityScope(androidx.ui.unit.Density density);
+    method public static inline <R> R! withDensity(androidx.ui.unit.Density density, kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,? extends R> block);
+  }
+
+  public interface DensityScope {
+    method public androidx.ui.unit.Density getDensity();
+    method public default androidx.ui.unit.Dp toDp(androidx.ui.unit.TextUnit);
+    method public default androidx.ui.unit.Dp toDp(androidx.ui.unit.Px);
+    method public default androidx.ui.unit.Dp toDp(androidx.ui.unit.IntPx);
+    method public default androidx.ui.unit.Dp toDp(float);
+    method public default androidx.ui.unit.Dp toDp(int);
+    method public default androidx.ui.unit.IntPx toIntPx(androidx.ui.unit.Dp);
+    method public default androidx.ui.unit.IntPx toIntPx(androidx.ui.unit.TextUnit);
+    method public default androidx.ui.unit.Px toPx(androidx.ui.unit.Dp);
+    method public default androidx.ui.unit.Px toPx(androidx.ui.unit.TextUnit);
+    method public default androidx.ui.unit.PxSize toPx-kAYDl8w(long);
+    method public default androidx.ui.geometry.Rect toRect(androidx.ui.unit.Bounds);
+    method public default androidx.ui.unit.TextUnit toSp(androidx.ui.unit.Dp);
+    method public default androidx.ui.unit.TextUnit toSp(androidx.ui.unit.Px);
+    method public default androidx.ui.unit.TextUnit toSp(androidx.ui.unit.IntPx);
+    method public default androidx.ui.unit.TextUnit toSp(float);
+    method public default androidx.ui.unit.TextUnit toSp(int);
+    property public abstract androidx.ui.unit.Density density;
+  }
+
+  public final class Dp implements java.lang.Comparable<androidx.ui.unit.Dp> {
+    ctor public Dp(float value);
+    method public operator int compareTo(androidx.ui.unit.Dp other);
+    method public float component1();
+    method public androidx.ui.unit.Dp copy(float value);
+    method public inline operator androidx.ui.unit.Dp div(float other);
+    method public inline operator androidx.ui.unit.Dp div(int other);
+    method public inline operator float div(androidx.ui.unit.Dp other);
+    method public inline operator float div-x8crYZs(float other);
+    method public float getValue();
+    method public inline operator androidx.ui.unit.Dp minus(androidx.ui.unit.Dp other);
+    method public inline operator androidx.ui.unit.Dp plus(androidx.ui.unit.Dp other);
+    method public inline operator androidx.ui.unit.Dp times(float other);
+    method public inline operator androidx.ui.unit.Dp times(int other);
+    method public inline operator float times(androidx.ui.unit.Dp other);
+    method public inline operator float times-x8crYZs(float other);
+    method public inline operator androidx.ui.unit.Dp unaryMinus();
+    field public static final androidx.ui.unit.Dp.Companion! Companion;
+  }
+
+  public static final class Dp.Companion {
+    method public androidx.ui.unit.Dp getHairline();
+    method public androidx.ui.unit.Dp getInfinity();
+    property public final androidx.ui.unit.Dp Hairline;
+    property public final androidx.ui.unit.Dp Infinity;
+  }
+
+  public final inline class DpCubed implements java.lang.Comparable<androidx.ui.unit.DpCubed> {
+    ctor public DpCubed();
+    method public operator int compareTo-JDqhs2g(float p);
+    method public static operator int compareTo-JDqhs2g(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-JDqhs2g(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator float div-impl(float $this, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp div-x8crYZs(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-JDqhs2g(float $this, float dimension);
+    method public static inline operator float plus-JDqhs2g(float $this, float dimension);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final inline class DpInverse implements java.lang.Comparable<androidx.ui.unit.DpInverse> {
+    ctor public DpInverse();
+    method public operator int compareTo-_K2iRR8(float p);
+    method public static operator int compareTo-_K2iRR8(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-_K2iRR8(float $this, float dimension);
+    method public static inline operator float plus-_K2iRR8(float $this, float dimension);
+    method public static inline operator float times-JDqhs2g(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp times-x8crYZs(float $this, float other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final class DpKt {
+    method public static inline long Position(androidx.ui.unit.Dp x, androidx.ui.unit.Dp y);
+    method public static inline long Size(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
+    method public static long center-kAYDl8w(long);
+    method public static inline androidx.ui.unit.Dp coerceAtLeast(androidx.ui.unit.Dp, androidx.ui.unit.Dp minimumValue);
+    method public static inline androidx.ui.unit.Dp coerceAtMost(androidx.ui.unit.Dp, androidx.ui.unit.Dp maximumValue);
+    method public static inline androidx.ui.unit.Dp coerceIn(androidx.ui.unit.Dp, androidx.ui.unit.Dp minimumValue, androidx.ui.unit.Dp maximumValue);
+    method public static inline operator float div(float, androidx.ui.unit.Dp other);
+    method public static inline operator float div(double, androidx.ui.unit.Dp other);
+    method public static inline operator float div(int, androidx.ui.unit.Dp other);
+    method public static androidx.ui.unit.Dp getDistance-T8eBu-w(long);
+    method public static inline androidx.ui.unit.Dp getDp(int);
+    method public static inline androidx.ui.unit.Dp getDp(double);
+    method public static inline androidx.ui.unit.Dp getDp(float);
+    method public static inline androidx.ui.unit.Dp getHeight(androidx.ui.unit.Bounds);
+    method public static inline androidx.ui.unit.Dp getWidth(androidx.ui.unit.Bounds);
+    method public static inline boolean isFinite(androidx.ui.unit.Dp);
+    method public static androidx.ui.unit.Dp lerp(androidx.ui.unit.Dp start, androidx.ui.unit.Dp stop, float fraction);
+    method public static long lerp-d5NHFfI(long start, long stop, float fraction);
+    method public static inline androidx.ui.unit.Dp max(androidx.ui.unit.Dp a, androidx.ui.unit.Dp b);
+    method public static inline androidx.ui.unit.Dp min(androidx.ui.unit.Dp a, androidx.ui.unit.Dp b);
+    method public static inline operator androidx.ui.unit.Dp times(float, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp times(double, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp times(int, androidx.ui.unit.Dp other);
+    method public static inline operator long times--D0i1nw(float, long size);
+    method public static inline operator long times-DdskrAE(int, long size);
+    method public static inline operator long times-l9Tz9ww(double, long size);
+    method public static androidx.ui.unit.Bounds toBounds-kAYDl8w(long);
+    method public static inline long toSize(androidx.ui.unit.Bounds);
+  }
+
+  public final inline class DpSquared implements java.lang.Comparable<androidx.ui.unit.DpSquared> {
+    ctor public DpSquared();
+    method public operator int compareTo-x8crYZs(float p);
+    method public static operator int compareTo-x8crYZs(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-JDqhs2g(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator androidx.ui.unit.Dp div-impl(float $this, androidx.ui.unit.Dp other);
+    method public static inline operator float div-x8crYZs(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-x8crYZs(float $this, float other);
+    method public static inline operator float plus-x8crYZs(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Dp other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final class Duration implements java.lang.Comparable<androidx.ui.unit.Duration> {
+    ctor public Duration(long nanoseconds);
+    method public int compareTo(androidx.ui.unit.Duration other);
+    method public long component1();
+    method public androidx.ui.unit.Duration copy(long nanoseconds);
+    method public operator androidx.ui.unit.Duration div(int quotient);
+    method public operator androidx.ui.unit.Duration div(double quotient);
+    method public long getNanoseconds();
+    method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Duration other);
+    method public operator androidx.ui.unit.Duration plus(androidx.ui.unit.Duration other);
+    method public operator androidx.ui.unit.Duration times(int factor);
+    method public operator androidx.ui.unit.Duration times(double factor);
+    field public static final androidx.ui.unit.Duration.Companion! Companion;
+  }
+
+  public static final class Duration.Companion {
+    method public androidx.ui.unit.Duration getZero();
+    property public final androidx.ui.unit.Duration Zero;
+  }
+
+  public final class Durations {
+    method public static androidx.ui.unit.Duration Duration(long days = 0, long hours = 0, long minutes = 0, long seconds = 0, long milliseconds = 0, long microseconds = 0, long nanoseconds = 0);
+    method public static androidx.ui.unit.Duration getDays(long);
+    method public static androidx.ui.unit.Duration getDays(int);
+    method public static androidx.ui.unit.Duration getHours(long);
+    method public static androidx.ui.unit.Duration getHours(int);
+    method public static androidx.ui.unit.Duration getMicroseconds(long);
+    method public static androidx.ui.unit.Duration getMicroseconds(int);
+    method public static androidx.ui.unit.Duration getMilliseconds(long);
+    method public static androidx.ui.unit.Duration getMilliseconds(int);
+    method public static androidx.ui.unit.Duration getMinutes(long);
+    method public static androidx.ui.unit.Duration getMinutes(int);
+    method public static androidx.ui.unit.Duration getNanoseconds(long);
+    method public static androidx.ui.unit.Duration getNanoseconds(int);
+    method public static long getNanosecondsPerDay();
+    method public static long getNanosecondsPerHour();
+    method public static long getNanosecondsPerMillisecond();
+    method public static long getNanosecondsPerMinute();
+    method public static long getNanosecondsPerSecond();
+    method public static androidx.ui.unit.Duration getSeconds(long);
+    method public static androidx.ui.unit.Duration getSeconds(int);
+    method public static long inDays(androidx.ui.unit.Duration);
+    method public static long inHours(androidx.ui.unit.Duration);
+    method public static long inMicroseconds(androidx.ui.unit.Duration);
+    method public static long inMilliseconds(androidx.ui.unit.Duration);
+    method public static long inMinutes(androidx.ui.unit.Duration);
+    method public static long inSeconds(androidx.ui.unit.Duration);
+    field public static final long HoursPerDay = 24L; // 0x18L
+    field public static final long MicrosecondsPerMillisecond = 1000L; // 0x3e8L
+    field public static final long MillisecondsPerSecond = 1000L; // 0x3e8L
+    field public static final long MinutesPerHour = 60L; // 0x3cL
+    field public static final long NanosecondsPerMicrosecond = 1000L; // 0x3e8L
+    field public static final long SecondsPerMinute = 60L; // 0x3cL
+  }
+
+  public final class IntPx implements java.lang.Comparable<androidx.ui.unit.IntPx> {
+    ctor public IntPx(int value);
+    method public operator int compareTo(androidx.ui.unit.IntPx other);
+    method public inline operator int compareTo(androidx.ui.unit.Px other);
+    method public int component1();
+    method public androidx.ui.unit.IntPx copy(int value);
+    method public operator androidx.ui.unit.IntPx div(float other);
+    method public operator androidx.ui.unit.IntPx div(double other);
+    method public operator androidx.ui.unit.IntPx div(int other);
+    method public int getValue();
+    method public operator androidx.ui.unit.IntPx minus(androidx.ui.unit.IntPx other);
+    method public operator androidx.ui.unit.IntPx plus(androidx.ui.unit.IntPx other);
+    method public inline operator androidx.ui.unit.IntPx rem(int other);
+    method public operator androidx.ui.unit.IntPx times(float other);
+    method public operator androidx.ui.unit.IntPx times(double other);
+    method public operator androidx.ui.unit.IntPx times(int other);
+    method public operator androidx.ui.unit.IntPx unaryMinus();
+    field public static final androidx.ui.unit.IntPx.Companion! Companion;
+  }
+
+  public static final class IntPx.Companion {
+    method public androidx.ui.unit.IntPx getInfinity();
+    method public androidx.ui.unit.IntPx getZero();
+    property public final androidx.ui.unit.IntPx Infinity;
+    property public final androidx.ui.unit.IntPx Zero;
+  }
+
+  public final class IntPxBounds {
+    ctor public IntPxBounds(androidx.ui.unit.IntPx left, androidx.ui.unit.IntPx top, androidx.ui.unit.IntPx right, androidx.ui.unit.IntPx bottom);
+    method public androidx.ui.unit.IntPx component1();
+    method public androidx.ui.unit.IntPx component2();
+    method public androidx.ui.unit.IntPx component3();
+    method public androidx.ui.unit.IntPx component4();
+    method public androidx.ui.unit.IntPxBounds copy(androidx.ui.unit.IntPx left, androidx.ui.unit.IntPx top, androidx.ui.unit.IntPx right, androidx.ui.unit.IntPx bottom);
+    method public androidx.ui.unit.IntPx getBottom();
+    method public androidx.ui.unit.IntPx getLeft();
+    method public androidx.ui.unit.IntPx getRight();
+    method public androidx.ui.unit.IntPx getTop();
+  }
+
+  public final class IntPxKt {
+    method public static inline androidx.ui.unit.IntPxPosition IntPxPosition(androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
+    method public static inline androidx.ui.unit.IntPxSize IntPxSize(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height);
+    method public static inline androidx.ui.unit.PxPosition PxPosition(androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
+    method public static inline androidx.ui.unit.PxSize PxSize(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height);
+    method public static androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxSize);
+    method public static inline androidx.ui.unit.IntPx coerceAtLeast(androidx.ui.unit.IntPx, androidx.ui.unit.IntPx minimumValue);
+    method public static inline androidx.ui.unit.IntPx coerceAtMost(androidx.ui.unit.IntPx, androidx.ui.unit.IntPx maximumValue);
+    method public static inline androidx.ui.unit.IntPx coerceIn(androidx.ui.unit.IntPx, androidx.ui.unit.IntPx minimumValue, androidx.ui.unit.IntPx maximumValue);
+    method public static inline androidx.ui.unit.IntPx getHeight(androidx.ui.unit.IntPxBounds);
+    method public static inline androidx.ui.unit.IntPx getIpx(int);
+    method public static inline androidx.ui.unit.IntPx getWidth(androidx.ui.unit.IntPxBounds);
+    method public static inline boolean isFinite(androidx.ui.unit.IntPx);
+    method public static androidx.ui.unit.IntPx lerp(androidx.ui.unit.IntPx start, androidx.ui.unit.IntPx stop, float fraction);
+    method public static androidx.ui.unit.IntPxPosition lerp(androidx.ui.unit.IntPxPosition start, androidx.ui.unit.IntPxPosition stop, float fraction);
+    method public static inline androidx.ui.unit.IntPx max(androidx.ui.unit.IntPx a, androidx.ui.unit.IntPx b);
+    method public static inline androidx.ui.unit.IntPx min(androidx.ui.unit.IntPx a, androidx.ui.unit.IntPx b);
+    method public static inline androidx.ui.unit.IntPx round(androidx.ui.unit.Px);
+    method public static inline operator androidx.ui.unit.IntPx times(float, androidx.ui.unit.IntPx other);
+    method public static inline operator androidx.ui.unit.IntPx times(double, androidx.ui.unit.IntPx other);
+    method public static inline operator androidx.ui.unit.IntPx times(int, androidx.ui.unit.IntPx other);
+    method public static inline operator androidx.ui.unit.IntPxSize times(int, androidx.ui.unit.IntPxSize size);
+    method public static inline androidx.ui.unit.Px toPx(androidx.ui.unit.IntPx);
+    method public static inline androidx.ui.unit.PxPosition toPxPosition(androidx.ui.unit.IntPxPosition);
+    method public static inline androidx.ui.unit.PxSize toPxSize(androidx.ui.unit.IntPxSize);
+    method public static inline androidx.ui.unit.IntPxSize toSize(androidx.ui.unit.IntPxBounds);
+  }
+
+  public final class IntPxPosition {
+    method public androidx.ui.unit.IntPxPosition copy(long value);
+    method public inline androidx.ui.unit.IntPx getX();
+    method public inline androidx.ui.unit.IntPx getY();
+    method public inline operator androidx.ui.unit.IntPxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.IntPxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.IntPxPosition unaryMinus();
+    property public final inline androidx.ui.unit.IntPx x;
+    property public final inline androidx.ui.unit.IntPx y;
+    field public static final androidx.ui.unit.IntPxPosition.Companion! Companion;
+  }
+
+  public static final class IntPxPosition.Companion {
+    method public androidx.ui.unit.IntPxPosition getOrigin();
+    property public final androidx.ui.unit.IntPxPosition Origin;
+  }
+
+  public final class IntPxSize {
+    method public androidx.ui.unit.IntPxSize copy(long value);
+    method public inline operator androidx.ui.unit.IntPxSize div(int other);
+    method public inline androidx.ui.unit.IntPx getHeight();
+    method public inline androidx.ui.unit.IntPx getWidth();
+    method public inline operator androidx.ui.unit.IntPxSize times(int other);
+    property public final inline androidx.ui.unit.IntPx height;
+    property public final inline androidx.ui.unit.IntPx width;
+  }
+
+  public final inline class Position {
+    ctor public Position();
+    method public static long constructor-impl(internal long value);
+    method public static boolean equals-impl(long p, Object? p1);
+    method public static boolean equals-impl0(long p1, long p2);
+    method public static androidx.ui.unit.Dp getX-impl(long $this);
+    method public static androidx.ui.unit.Dp getY-impl(long $this);
+    method public static int hashCode-impl(long p);
+    method public static inline operator long minus-T8eBu-w(long $this, long other);
+    method public static inline operator long plus-T8eBu-w(long $this, long other);
+    method public static String toString-impl(long $this);
+  }
+
+  public final class Px implements java.lang.Comparable<androidx.ui.unit.Px> {
+    ctor public Px(float value);
+    method public operator int compareTo(androidx.ui.unit.Px other);
+    method public inline operator int compareTo(androidx.ui.unit.IntPx other);
+    method public float component1();
+    method public androidx.ui.unit.Px copy(float value);
+    method public inline operator androidx.ui.unit.Px div(float other);
+    method public inline operator androidx.ui.unit.Px div(int other);
+    method public inline operator float div(androidx.ui.unit.Px other);
+    method public inline operator float div-RjPF0Mw(float other);
+    method public float getValue();
+    method public inline operator androidx.ui.unit.Px minus(androidx.ui.unit.Px other);
+    method public inline operator androidx.ui.unit.Px minus(androidx.ui.unit.IntPx other);
+    method public inline operator androidx.ui.unit.Px plus(androidx.ui.unit.Px other);
+    method public inline operator androidx.ui.unit.Px plus(androidx.ui.unit.IntPx other);
+    method public inline operator androidx.ui.unit.Px times(float other);
+    method public inline operator androidx.ui.unit.Px times(int other);
+    method public inline operator float times(androidx.ui.unit.Px other);
+    method public inline operator float times-RjPF0Mw(float other);
+    method public inline operator androidx.ui.unit.Px unaryMinus();
+    field public static final androidx.ui.unit.Px.Companion! Companion;
+  }
+
+  public static final class Px.Companion {
+    method public androidx.ui.unit.Px getInfinity();
+    method public androidx.ui.unit.Px getZero();
+    property public final androidx.ui.unit.Px Infinity;
+    property public final androidx.ui.unit.Px Zero;
+  }
+
+  public final class PxBounds {
+    ctor public PxBounds(androidx.ui.unit.Px left, androidx.ui.unit.Px top, androidx.ui.unit.Px right, androidx.ui.unit.Px bottom);
+    method public androidx.ui.unit.Px component1();
+    method public androidx.ui.unit.Px component2();
+    method public androidx.ui.unit.Px component3();
+    method public androidx.ui.unit.Px component4();
+    method public androidx.ui.unit.PxBounds copy(androidx.ui.unit.Px left, androidx.ui.unit.Px top, androidx.ui.unit.Px right, androidx.ui.unit.Px bottom);
+    method public androidx.ui.unit.Px getBottom();
+    method public androidx.ui.unit.Px getLeft();
+    method public androidx.ui.unit.Px getRight();
+    method public androidx.ui.unit.Px getTop();
+  }
+
+  public final inline class PxCubed implements java.lang.Comparable<androidx.ui.unit.PxCubed> {
+    ctor public PxCubed();
+    method public operator int compareTo-bji3ab4(float p);
+    method public static operator int compareTo-bji3ab4(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator androidx.ui.unit.Px div-RjPF0Mw(float $this, float other);
+    method public static inline operator float div-bji3ab4(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator float div-impl(float $this, androidx.ui.unit.Px other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-bji3ab4(float $this, float dimension);
+    method public static inline operator float plus-bji3ab4(float $this, float dimension);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final inline class PxInverse implements java.lang.Comparable<androidx.ui.unit.PxInverse> {
+    ctor public PxInverse();
+    method public operator int compareTo-KGV0gLo(float p);
+    method public static operator int compareTo-KGV0gLo(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-KGV0gLo(float $this, float dimension);
+    method public static inline operator float plus-KGV0gLo(float $this, float dimension);
+    method public static inline operator androidx.ui.unit.Px times-RjPF0Mw(float $this, float other);
+    method public static inline operator float times-bji3ab4(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Px other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final class PxKt {
+    method public static inline androidx.ui.unit.PxPosition PxPosition(androidx.ui.unit.Px x, androidx.ui.unit.Px y);
+    method public static inline androidx.ui.unit.PxSize PxSize(androidx.ui.unit.Px width, androidx.ui.unit.Px height);
+    method public static androidx.ui.unit.PxPosition center(androidx.ui.unit.PxSize);
+    method public static inline androidx.ui.unit.Px coerceAtLeast(androidx.ui.unit.Px, androidx.ui.unit.Px minimumValue);
+    method public static inline androidx.ui.unit.Px coerceAtMost(androidx.ui.unit.Px, androidx.ui.unit.Px maximumValue);
+    method public static inline androidx.ui.unit.Px coerceIn(androidx.ui.unit.Px, androidx.ui.unit.Px minimumValue, androidx.ui.unit.Px maximumValue);
+    method public static inline operator float div(float, androidx.ui.unit.Px other);
+    method public static inline operator float div(double, androidx.ui.unit.Px other);
+    method public static inline operator float div(int, androidx.ui.unit.Px other);
+    method public static androidx.ui.unit.Px getDistance(androidx.ui.unit.PxPosition);
+    method public static inline androidx.ui.unit.Px getHeight(androidx.ui.unit.PxBounds);
+    method public static androidx.ui.unit.Px! getMinDimension(androidx.ui.unit.PxSize);
+    method public static inline androidx.ui.unit.Px getPx(int);
+    method public static inline androidx.ui.unit.Px getPx(double);
+    method public static inline androidx.ui.unit.Px getPx(float);
+    method public static inline androidx.ui.unit.Px getWidth(androidx.ui.unit.PxBounds);
+    method public static androidx.ui.unit.Px lerp(androidx.ui.unit.Px start, androidx.ui.unit.Px stop, float fraction);
+    method public static androidx.ui.unit.PxPosition lerp(androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition stop, float fraction);
+    method public static inline androidx.ui.unit.Px max(androidx.ui.unit.Px a, androidx.ui.unit.Px b);
+    method public static inline androidx.ui.unit.Px min(androidx.ui.unit.Px a, androidx.ui.unit.Px b);
+    method public static inline androidx.ui.unit.IntPxPosition round(androidx.ui.unit.PxPosition);
+    method public static inline operator androidx.ui.unit.Px times(float, androidx.ui.unit.Px other);
+    method public static inline operator androidx.ui.unit.Px times(double, androidx.ui.unit.Px other);
+    method public static inline operator androidx.ui.unit.Px times(int, androidx.ui.unit.Px other);
+    method public static inline operator androidx.ui.unit.PxSize times(int, androidx.ui.unit.PxSize size);
+    method public static inline operator androidx.ui.unit.PxSize times(float, androidx.ui.unit.PxSize size);
+    method public static inline operator androidx.ui.unit.PxSize times(double, androidx.ui.unit.PxSize size);
+    method public static androidx.ui.unit.PxBounds toBounds(androidx.ui.unit.PxSize);
+    method public static inline androidx.ui.geometry.Offset toOffset(androidx.ui.unit.PxPosition);
+    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxBounds);
+    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxSize);
+    method public static androidx.ui.unit.PxSize toSize(androidx.ui.unit.PxBounds);
+  }
+
+  public final class PxPosition {
+    method public androidx.ui.unit.PxPosition copy(long value);
+    method public inline androidx.ui.unit.Px getX();
+    method public inline androidx.ui.unit.Px getY();
+    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.PxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.PxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition unaryMinus();
+    property public final inline androidx.ui.unit.Px x;
+    property public final inline androidx.ui.unit.Px y;
+    field public static final androidx.ui.unit.PxPosition.Companion! Companion;
+  }
+
+  public static final class PxPosition.Companion {
+    method public androidx.ui.unit.PxPosition getOrigin();
+    property public final androidx.ui.unit.PxPosition Origin;
+  }
+
+  public final class PxSize {
+    method public androidx.ui.unit.PxSize copy(long value);
+    method public inline operator androidx.ui.unit.PxSize div(int other);
+    method public inline operator androidx.ui.unit.PxSize div(float other);
+    method public inline operator androidx.ui.unit.PxSize div(double other);
+    method public inline androidx.ui.unit.Px getHeight();
+    method public inline androidx.ui.unit.Px getWidth();
+    method public inline operator androidx.ui.unit.PxSize times(int other);
+    method public inline operator androidx.ui.unit.PxSize times(float other);
+    method public inline operator androidx.ui.unit.PxSize times(double other);
+    property public final inline androidx.ui.unit.Px height;
+    property public final inline androidx.ui.unit.Px width;
+    field public static final androidx.ui.unit.PxSize.Companion! Companion;
+  }
+
+  public static final class PxSize.Companion {
+    method public androidx.ui.unit.PxSize getZero();
+    property public final androidx.ui.unit.PxSize Zero;
+  }
+
+  public final inline class PxSquared implements java.lang.Comparable<androidx.ui.unit.PxSquared> {
+    ctor public PxSquared();
+    method public operator int compareTo-RjPF0Mw(float p);
+    method public static operator int compareTo-RjPF0Mw(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-RjPF0Mw(float $this, float other);
+    method public static inline operator float div-bji3ab4(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator androidx.ui.unit.Px div-impl(float $this, androidx.ui.unit.Px other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-RjPF0Mw(float $this, float other);
+    method public static inline operator float plus-RjPF0Mw(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Px other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final inline class Size {
+    ctor public Size();
+    method public static long constructor-impl(internal long value);
+    method public static inline operator long div-impl(long $this, int other);
+    method public static inline operator long div-impl(long $this, float other);
+    method public static inline operator long div-impl(long $this, double other);
+    method public static boolean equals-impl(long p, Object? p1);
+    method public static boolean equals-impl0(long p1, long p2);
+    method public static androidx.ui.unit.Dp getHeight-impl(long $this);
+    method public static androidx.ui.unit.Dp getWidth-impl(long $this);
+    method public static int hashCode-impl(long p);
+    method public static inline operator long times-impl(long $this, int other);
+    method public static inline operator long times-impl(long $this, float other);
+    method public static inline operator long times-impl(long $this, double other);
+    method public static String toString-impl(long $this);
+  }
+
+  public final class TextUnit {
+    ctor public TextUnit(long packedValue);
+    method public inline operator int compareTo(androidx.ui.unit.TextUnit other);
+    method public long component1();
+    method public androidx.ui.unit.TextUnit copy(long packedValue);
+    method public inline operator androidx.ui.unit.TextUnit div(float other);
+    method public inline operator androidx.ui.unit.TextUnit div(double other);
+    method public inline operator androidx.ui.unit.TextUnit div(int other);
+    method public inline operator float div(androidx.ui.unit.TextUnit other);
+    method public long getPackedValue();
+    method public androidx.ui.unit.TextUnitType getType();
+    method public float getValue();
+    method public boolean isEm();
+    method public boolean isInherit();
+    method public boolean isSp();
+    method public inline operator androidx.ui.unit.TextUnit minus(androidx.ui.unit.TextUnit other);
+    method public inline operator androidx.ui.unit.TextUnit plus(androidx.ui.unit.TextUnit other);
+    method public inline operator androidx.ui.unit.TextUnit times(float other);
+    method public inline operator androidx.ui.unit.TextUnit times(double other);
+    method public inline operator androidx.ui.unit.TextUnit times(int other);
+    method public inline operator androidx.ui.unit.TextUnit unaryMinus();
+    property public final boolean isEm;
+    property public final boolean isInherit;
+    property public final boolean isSp;
+    property public final androidx.ui.unit.TextUnitType type;
+    property public final float value;
+    field public static final androidx.ui.unit.TextUnit.Companion! Companion;
+  }
+
+  public static final class TextUnit.Companion {
+    method public androidx.ui.unit.TextUnit Em(int value);
+    method public androidx.ui.unit.TextUnit Em(float value);
+    method public androidx.ui.unit.TextUnit Em(double value);
+    method public androidx.ui.unit.TextUnit Sp(int value);
+    method public androidx.ui.unit.TextUnit Sp(float value);
+    method public androidx.ui.unit.TextUnit Sp(double value);
+    method public androidx.ui.unit.TextUnit getInherit();
+    property public final androidx.ui.unit.TextUnit Inherit;
+  }
+
+  public final class TextUnitKt {
+    method public static inline androidx.ui.unit.TextUnit coerceAtLeast(androidx.ui.unit.TextUnit, androidx.ui.unit.TextUnit minimumValue);
+    method public static inline androidx.ui.unit.TextUnit coerceAtMost(androidx.ui.unit.TextUnit, androidx.ui.unit.TextUnit maximumValue);
+    method public static inline androidx.ui.unit.TextUnit coerceIn(androidx.ui.unit.TextUnit, androidx.ui.unit.TextUnit minimumValue, androidx.ui.unit.TextUnit maximumValue);
+    method public static androidx.ui.unit.TextUnit getEm(float);
+    method public static androidx.ui.unit.TextUnit getEm(double);
+    method public static androidx.ui.unit.TextUnit getEm(int);
+    method public static androidx.ui.unit.TextUnit getSp(float);
+    method public static androidx.ui.unit.TextUnit getSp(double);
+    method public static androidx.ui.unit.TextUnit getSp(int);
+    method public static androidx.ui.unit.TextUnit lerp(androidx.ui.unit.TextUnit a, androidx.ui.unit.TextUnit b, float t);
+    method public static inline androidx.ui.unit.TextUnit max(androidx.ui.unit.TextUnit a, androidx.ui.unit.TextUnit b);
+    method public static inline androidx.ui.unit.TextUnit min(androidx.ui.unit.TextUnit a, androidx.ui.unit.TextUnit b);
+    method public static inline operator androidx.ui.unit.TextUnit times(float, androidx.ui.unit.TextUnit other);
+    method public static inline operator androidx.ui.unit.TextUnit times(double, androidx.ui.unit.TextUnit other);
+    method public static inline operator androidx.ui.unit.TextUnit times(int, androidx.ui.unit.TextUnit other);
+  }
+
+  public enum TextUnitType {
+    enum_constant public static final androidx.ui.unit.TextUnitType Em;
+    enum_constant public static final androidx.ui.unit.TextUnitType Inherit;
+    enum_constant public static final androidx.ui.unit.TextUnitType Sp;
+  }
+
+  public final class Uptime implements java.lang.Comparable<androidx.ui.unit.Uptime> {
+    ctor public Uptime(long nanoseconds);
+    method public int compareTo(androidx.ui.unit.Uptime other);
+    method public long component1();
+    method public androidx.ui.unit.Uptime copy(long nanoseconds);
+    method public long getNanoseconds();
+    method public operator androidx.ui.unit.Uptime minus(androidx.ui.unit.Duration duration);
+    method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Uptime other);
+    method public operator androidx.ui.unit.Uptime plus(androidx.ui.unit.Duration duration);
+    field public static final androidx.ui.unit.Uptime.Companion! Companion;
+  }
+
+  public static final class Uptime.Companion {
+    method public androidx.ui.unit.Uptime getBoot();
+    property public final androidx.ui.unit.Uptime Boot;
+  }
+
+  public final class UptimeKt {
+    method public static operator androidx.ui.unit.Uptime plus(androidx.ui.unit.Duration, androidx.ui.unit.Uptime uptime);
+  }
+
+  public final class Velocity {
+    ctor public Velocity(androidx.ui.unit.PxPosition pixelsPerSecond);
+    method public androidx.ui.unit.PxPosition component1();
+    method public androidx.ui.unit.Velocity copy(androidx.ui.unit.PxPosition pixelsPerSecond);
+    method public androidx.ui.unit.PxPosition getPixelsPerSecond();
+    method public operator androidx.ui.unit.Velocity unaryMinus();
+    field public static final androidx.ui.unit.Velocity.Companion! Companion;
+  }
+
+  public static final class Velocity.Companion {
+    method public androidx.ui.unit.Velocity getZero();
+    property public final androidx.ui.unit.Velocity Zero;
+  }
+
+  public final class VelocityKt {
+    method public static operator androidx.ui.unit.Velocity minus(androidx.ui.unit.Velocity, androidx.ui.unit.Velocity other);
+    method public static operator androidx.ui.unit.Velocity plus(androidx.ui.unit.Velocity, androidx.ui.unit.Velocity other);
+  }
+
+}
+
diff --git a/ui/ui-unit/api/public_plus_experimental_current.txt b/ui/ui-unit/api/public_plus_experimental_current.txt
new file mode 100644
index 0000000..c7e6484
--- /dev/null
+++ b/ui/ui-unit/api/public_plus_experimental_current.txt
@@ -0,0 +1,629 @@
+// Signature format: 3.0
+package androidx.ui.unit {
+
+  public final class Bounds {
+    ctor public Bounds(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.unit.Bounds copy(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp getBottom();
+    method public androidx.ui.unit.Dp getLeft();
+    method public androidx.ui.unit.Dp getRight();
+    method public androidx.ui.unit.Dp getTop();
+  }
+
+  public final class Density {
+    ctor public Density(float density, float fontScale);
+    method public float component1();
+    method public float component2();
+    method public androidx.ui.unit.Density copy(float density, float fontScale);
+    method public float getDensity();
+    method public float getFontScale();
+  }
+
+  public final class DensityKt {
+    method public static androidx.ui.unit.Density Density(android.content.Context context);
+    method public static androidx.ui.unit.DensityScope DensityScope(androidx.ui.unit.Density density);
+    method public static inline <R> R! withDensity(androidx.ui.unit.Density density, kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,? extends R> block);
+  }
+
+  public interface DensityScope {
+    method public androidx.ui.unit.Density getDensity();
+    method public default androidx.ui.unit.Dp toDp(androidx.ui.unit.TextUnit);
+    method public default androidx.ui.unit.Dp toDp(androidx.ui.unit.Px);
+    method public default androidx.ui.unit.Dp toDp(androidx.ui.unit.IntPx);
+    method public default androidx.ui.unit.Dp toDp(float);
+    method public default androidx.ui.unit.Dp toDp(int);
+    method public default androidx.ui.unit.IntPx toIntPx(androidx.ui.unit.Dp);
+    method public default androidx.ui.unit.IntPx toIntPx(androidx.ui.unit.TextUnit);
+    method public default androidx.ui.unit.Px toPx(androidx.ui.unit.Dp);
+    method public default androidx.ui.unit.Px toPx(androidx.ui.unit.TextUnit);
+    method public default androidx.ui.unit.PxSize toPx-kAYDl8w(long);
+    method public default androidx.ui.geometry.Rect toRect(androidx.ui.unit.Bounds);
+    method public default androidx.ui.unit.TextUnit toSp(androidx.ui.unit.Dp);
+    method public default androidx.ui.unit.TextUnit toSp(androidx.ui.unit.Px);
+    method public default androidx.ui.unit.TextUnit toSp(androidx.ui.unit.IntPx);
+    method public default androidx.ui.unit.TextUnit toSp(float);
+    method public default androidx.ui.unit.TextUnit toSp(int);
+    property public abstract androidx.ui.unit.Density density;
+  }
+
+  public final class Dp implements java.lang.Comparable<androidx.ui.unit.Dp> {
+    ctor public Dp(float value);
+    method public operator int compareTo(androidx.ui.unit.Dp other);
+    method public float component1();
+    method public androidx.ui.unit.Dp copy(float value);
+    method public inline operator androidx.ui.unit.Dp div(float other);
+    method public inline operator androidx.ui.unit.Dp div(int other);
+    method public inline operator float div(androidx.ui.unit.Dp other);
+    method public inline operator float div-x8crYZs(float other);
+    method public float getValue();
+    method public inline operator androidx.ui.unit.Dp minus(androidx.ui.unit.Dp other);
+    method public inline operator androidx.ui.unit.Dp plus(androidx.ui.unit.Dp other);
+    method public inline operator androidx.ui.unit.Dp times(float other);
+    method public inline operator androidx.ui.unit.Dp times(int other);
+    method public inline operator float times(androidx.ui.unit.Dp other);
+    method public inline operator float times-x8crYZs(float other);
+    method public inline operator androidx.ui.unit.Dp unaryMinus();
+    field public static final androidx.ui.unit.Dp.Companion! Companion;
+  }
+
+  public static final class Dp.Companion {
+    method public androidx.ui.unit.Dp getHairline();
+    method public androidx.ui.unit.Dp getInfinity();
+    property public final androidx.ui.unit.Dp Hairline;
+    property public final androidx.ui.unit.Dp Infinity;
+  }
+
+  public final inline class DpCubed implements java.lang.Comparable<androidx.ui.unit.DpCubed> {
+    ctor public DpCubed();
+    method public operator int compareTo-JDqhs2g(float p);
+    method public static operator int compareTo-JDqhs2g(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-JDqhs2g(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator float div-impl(float $this, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp div-x8crYZs(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-JDqhs2g(float $this, float dimension);
+    method public static inline operator float plus-JDqhs2g(float $this, float dimension);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final inline class DpInverse implements java.lang.Comparable<androidx.ui.unit.DpInverse> {
+    ctor public DpInverse();
+    method public operator int compareTo-_K2iRR8(float p);
+    method public static operator int compareTo-_K2iRR8(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-_K2iRR8(float $this, float dimension);
+    method public static inline operator float plus-_K2iRR8(float $this, float dimension);
+    method public static inline operator float times-JDqhs2g(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp times-x8crYZs(float $this, float other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final class DpKt {
+    method public static inline long Position(androidx.ui.unit.Dp x, androidx.ui.unit.Dp y);
+    method public static inline long Size(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
+    method public static long center-kAYDl8w(long);
+    method public static inline androidx.ui.unit.Dp coerceAtLeast(androidx.ui.unit.Dp, androidx.ui.unit.Dp minimumValue);
+    method public static inline androidx.ui.unit.Dp coerceAtMost(androidx.ui.unit.Dp, androidx.ui.unit.Dp maximumValue);
+    method public static inline androidx.ui.unit.Dp coerceIn(androidx.ui.unit.Dp, androidx.ui.unit.Dp minimumValue, androidx.ui.unit.Dp maximumValue);
+    method public static inline operator float div(float, androidx.ui.unit.Dp other);
+    method public static inline operator float div(double, androidx.ui.unit.Dp other);
+    method public static inline operator float div(int, androidx.ui.unit.Dp other);
+    method public static androidx.ui.unit.Dp getDistance-T8eBu-w(long);
+    method public static inline androidx.ui.unit.Dp getDp(int);
+    method public static inline androidx.ui.unit.Dp getDp(double);
+    method public static inline androidx.ui.unit.Dp getDp(float);
+    method public static inline androidx.ui.unit.Dp getHeight(androidx.ui.unit.Bounds);
+    method public static inline androidx.ui.unit.Dp getWidth(androidx.ui.unit.Bounds);
+    method public static inline boolean isFinite(androidx.ui.unit.Dp);
+    method public static androidx.ui.unit.Dp lerp(androidx.ui.unit.Dp start, androidx.ui.unit.Dp stop, float fraction);
+    method public static long lerp-d5NHFfI(long start, long stop, float fraction);
+    method public static inline androidx.ui.unit.Dp max(androidx.ui.unit.Dp a, androidx.ui.unit.Dp b);
+    method public static inline androidx.ui.unit.Dp min(androidx.ui.unit.Dp a, androidx.ui.unit.Dp b);
+    method public static inline operator androidx.ui.unit.Dp times(float, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp times(double, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp times(int, androidx.ui.unit.Dp other);
+    method public static inline operator long times--D0i1nw(float, long size);
+    method public static inline operator long times-DdskrAE(int, long size);
+    method public static inline operator long times-l9Tz9ww(double, long size);
+    method public static androidx.ui.unit.Bounds toBounds-kAYDl8w(long);
+    method public static inline long toSize(androidx.ui.unit.Bounds);
+  }
+
+  public final inline class DpSquared implements java.lang.Comparable<androidx.ui.unit.DpSquared> {
+    ctor public DpSquared();
+    method public operator int compareTo-x8crYZs(float p);
+    method public static operator int compareTo-x8crYZs(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-JDqhs2g(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator androidx.ui.unit.Dp div-impl(float $this, androidx.ui.unit.Dp other);
+    method public static inline operator float div-x8crYZs(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-x8crYZs(float $this, float other);
+    method public static inline operator float plus-x8crYZs(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Dp other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final class Duration implements java.lang.Comparable<androidx.ui.unit.Duration> {
+    ctor public Duration(long nanoseconds);
+    method public int compareTo(androidx.ui.unit.Duration other);
+    method public long component1();
+    method public androidx.ui.unit.Duration copy(long nanoseconds);
+    method public operator androidx.ui.unit.Duration div(int quotient);
+    method public operator androidx.ui.unit.Duration div(double quotient);
+    method public long getNanoseconds();
+    method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Duration other);
+    method public operator androidx.ui.unit.Duration plus(androidx.ui.unit.Duration other);
+    method public operator androidx.ui.unit.Duration times(int factor);
+    method public operator androidx.ui.unit.Duration times(double factor);
+    field public static final androidx.ui.unit.Duration.Companion! Companion;
+  }
+
+  public static final class Duration.Companion {
+    method public androidx.ui.unit.Duration getZero();
+    property public final androidx.ui.unit.Duration Zero;
+  }
+
+  public final class Durations {
+    method public static androidx.ui.unit.Duration Duration(long days = 0, long hours = 0, long minutes = 0, long seconds = 0, long milliseconds = 0, long microseconds = 0, long nanoseconds = 0);
+    method public static androidx.ui.unit.Duration getDays(long);
+    method public static androidx.ui.unit.Duration getDays(int);
+    method public static androidx.ui.unit.Duration getHours(long);
+    method public static androidx.ui.unit.Duration getHours(int);
+    method public static androidx.ui.unit.Duration getMicroseconds(long);
+    method public static androidx.ui.unit.Duration getMicroseconds(int);
+    method public static androidx.ui.unit.Duration getMilliseconds(long);
+    method public static androidx.ui.unit.Duration getMilliseconds(int);
+    method public static androidx.ui.unit.Duration getMinutes(long);
+    method public static androidx.ui.unit.Duration getMinutes(int);
+    method public static androidx.ui.unit.Duration getNanoseconds(long);
+    method public static androidx.ui.unit.Duration getNanoseconds(int);
+    method public static long getNanosecondsPerDay();
+    method public static long getNanosecondsPerHour();
+    method public static long getNanosecondsPerMillisecond();
+    method public static long getNanosecondsPerMinute();
+    method public static long getNanosecondsPerSecond();
+    method public static androidx.ui.unit.Duration getSeconds(long);
+    method public static androidx.ui.unit.Duration getSeconds(int);
+    method public static long inDays(androidx.ui.unit.Duration);
+    method public static long inHours(androidx.ui.unit.Duration);
+    method public static long inMicroseconds(androidx.ui.unit.Duration);
+    method public static long inMilliseconds(androidx.ui.unit.Duration);
+    method public static long inMinutes(androidx.ui.unit.Duration);
+    method public static long inSeconds(androidx.ui.unit.Duration);
+    field public static final long HoursPerDay = 24L; // 0x18L
+    field public static final long MicrosecondsPerMillisecond = 1000L; // 0x3e8L
+    field public static final long MillisecondsPerSecond = 1000L; // 0x3e8L
+    field public static final long MinutesPerHour = 60L; // 0x3cL
+    field public static final long NanosecondsPerMicrosecond = 1000L; // 0x3e8L
+    field public static final long SecondsPerMinute = 60L; // 0x3cL
+  }
+
+  public final class IntPx implements java.lang.Comparable<androidx.ui.unit.IntPx> {
+    ctor public IntPx(int value);
+    method public operator int compareTo(androidx.ui.unit.IntPx other);
+    method public inline operator int compareTo(androidx.ui.unit.Px other);
+    method public int component1();
+    method public androidx.ui.unit.IntPx copy(int value);
+    method public operator androidx.ui.unit.IntPx div(float other);
+    method public operator androidx.ui.unit.IntPx div(double other);
+    method public operator androidx.ui.unit.IntPx div(int other);
+    method public int getValue();
+    method public operator androidx.ui.unit.IntPx minus(androidx.ui.unit.IntPx other);
+    method public operator androidx.ui.unit.IntPx plus(androidx.ui.unit.IntPx other);
+    method public inline operator androidx.ui.unit.IntPx rem(int other);
+    method public operator androidx.ui.unit.IntPx times(float other);
+    method public operator androidx.ui.unit.IntPx times(double other);
+    method public operator androidx.ui.unit.IntPx times(int other);
+    method public operator androidx.ui.unit.IntPx unaryMinus();
+    field public static final androidx.ui.unit.IntPx.Companion! Companion;
+  }
+
+  public static final class IntPx.Companion {
+    method public androidx.ui.unit.IntPx getInfinity();
+    method public androidx.ui.unit.IntPx getZero();
+    property public final androidx.ui.unit.IntPx Infinity;
+    property public final androidx.ui.unit.IntPx Zero;
+  }
+
+  public final class IntPxBounds {
+    ctor public IntPxBounds(androidx.ui.unit.IntPx left, androidx.ui.unit.IntPx top, androidx.ui.unit.IntPx right, androidx.ui.unit.IntPx bottom);
+    method public androidx.ui.unit.IntPx component1();
+    method public androidx.ui.unit.IntPx component2();
+    method public androidx.ui.unit.IntPx component3();
+    method public androidx.ui.unit.IntPx component4();
+    method public androidx.ui.unit.IntPxBounds copy(androidx.ui.unit.IntPx left, androidx.ui.unit.IntPx top, androidx.ui.unit.IntPx right, androidx.ui.unit.IntPx bottom);
+    method public androidx.ui.unit.IntPx getBottom();
+    method public androidx.ui.unit.IntPx getLeft();
+    method public androidx.ui.unit.IntPx getRight();
+    method public androidx.ui.unit.IntPx getTop();
+  }
+
+  public final class IntPxKt {
+    method public static inline androidx.ui.unit.IntPxPosition IntPxPosition(androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
+    method public static inline androidx.ui.unit.IntPxSize IntPxSize(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height);
+    method public static inline androidx.ui.unit.PxPosition PxPosition(androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
+    method public static inline androidx.ui.unit.PxSize PxSize(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height);
+    method public static androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxSize);
+    method public static inline androidx.ui.unit.IntPx coerceAtLeast(androidx.ui.unit.IntPx, androidx.ui.unit.IntPx minimumValue);
+    method public static inline androidx.ui.unit.IntPx coerceAtMost(androidx.ui.unit.IntPx, androidx.ui.unit.IntPx maximumValue);
+    method public static inline androidx.ui.unit.IntPx coerceIn(androidx.ui.unit.IntPx, androidx.ui.unit.IntPx minimumValue, androidx.ui.unit.IntPx maximumValue);
+    method public static inline androidx.ui.unit.IntPx getHeight(androidx.ui.unit.IntPxBounds);
+    method public static inline androidx.ui.unit.IntPx getIpx(int);
+    method public static inline androidx.ui.unit.IntPx getWidth(androidx.ui.unit.IntPxBounds);
+    method public static inline boolean isFinite(androidx.ui.unit.IntPx);
+    method public static androidx.ui.unit.IntPx lerp(androidx.ui.unit.IntPx start, androidx.ui.unit.IntPx stop, float fraction);
+    method public static androidx.ui.unit.IntPxPosition lerp(androidx.ui.unit.IntPxPosition start, androidx.ui.unit.IntPxPosition stop, float fraction);
+    method public static inline androidx.ui.unit.IntPx max(androidx.ui.unit.IntPx a, androidx.ui.unit.IntPx b);
+    method public static inline androidx.ui.unit.IntPx min(androidx.ui.unit.IntPx a, androidx.ui.unit.IntPx b);
+    method public static inline androidx.ui.unit.IntPx round(androidx.ui.unit.Px);
+    method public static inline operator androidx.ui.unit.IntPx times(float, androidx.ui.unit.IntPx other);
+    method public static inline operator androidx.ui.unit.IntPx times(double, androidx.ui.unit.IntPx other);
+    method public static inline operator androidx.ui.unit.IntPx times(int, androidx.ui.unit.IntPx other);
+    method public static inline operator androidx.ui.unit.IntPxSize times(int, androidx.ui.unit.IntPxSize size);
+    method public static inline androidx.ui.unit.Px toPx(androidx.ui.unit.IntPx);
+    method public static inline androidx.ui.unit.PxPosition toPxPosition(androidx.ui.unit.IntPxPosition);
+    method public static inline androidx.ui.unit.PxSize toPxSize(androidx.ui.unit.IntPxSize);
+    method public static inline androidx.ui.unit.IntPxSize toSize(androidx.ui.unit.IntPxBounds);
+  }
+
+  public final class IntPxPosition {
+    method public androidx.ui.unit.IntPxPosition copy(long value);
+    method public inline androidx.ui.unit.IntPx getX();
+    method public inline androidx.ui.unit.IntPx getY();
+    method public inline operator androidx.ui.unit.IntPxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.IntPxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.IntPxPosition unaryMinus();
+    property public final inline androidx.ui.unit.IntPx x;
+    property public final inline androidx.ui.unit.IntPx y;
+    field public static final androidx.ui.unit.IntPxPosition.Companion! Companion;
+  }
+
+  public static final class IntPxPosition.Companion {
+    method public androidx.ui.unit.IntPxPosition getOrigin();
+    property public final androidx.ui.unit.IntPxPosition Origin;
+  }
+
+  public final class IntPxSize {
+    method public androidx.ui.unit.IntPxSize copy(long value);
+    method public inline operator androidx.ui.unit.IntPxSize div(int other);
+    method public inline androidx.ui.unit.IntPx getHeight();
+    method public inline androidx.ui.unit.IntPx getWidth();
+    method public inline operator androidx.ui.unit.IntPxSize times(int other);
+    property public final inline androidx.ui.unit.IntPx height;
+    property public final inline androidx.ui.unit.IntPx width;
+  }
+
+  public final inline class Position {
+    ctor public Position();
+    method public static long constructor-impl(internal long value);
+    method public static boolean equals-impl(long p, Object? p1);
+    method public static boolean equals-impl0(long p1, long p2);
+    method public static androidx.ui.unit.Dp getX-impl(long $this);
+    method public static androidx.ui.unit.Dp getY-impl(long $this);
+    method public static int hashCode-impl(long p);
+    method public static inline operator long minus-T8eBu-w(long $this, long other);
+    method public static inline operator long plus-T8eBu-w(long $this, long other);
+    method public static String toString-impl(long $this);
+  }
+
+  public final class Px implements java.lang.Comparable<androidx.ui.unit.Px> {
+    ctor public Px(float value);
+    method public operator int compareTo(androidx.ui.unit.Px other);
+    method public inline operator int compareTo(androidx.ui.unit.IntPx other);
+    method public float component1();
+    method public androidx.ui.unit.Px copy(float value);
+    method public inline operator androidx.ui.unit.Px div(float other);
+    method public inline operator androidx.ui.unit.Px div(int other);
+    method public inline operator float div(androidx.ui.unit.Px other);
+    method public inline operator float div-RjPF0Mw(float other);
+    method public float getValue();
+    method public inline operator androidx.ui.unit.Px minus(androidx.ui.unit.Px other);
+    method public inline operator androidx.ui.unit.Px minus(androidx.ui.unit.IntPx other);
+    method public inline operator androidx.ui.unit.Px plus(androidx.ui.unit.Px other);
+    method public inline operator androidx.ui.unit.Px plus(androidx.ui.unit.IntPx other);
+    method public inline operator androidx.ui.unit.Px times(float other);
+    method public inline operator androidx.ui.unit.Px times(int other);
+    method public inline operator float times(androidx.ui.unit.Px other);
+    method public inline operator float times-RjPF0Mw(float other);
+    method public inline operator androidx.ui.unit.Px unaryMinus();
+    field public static final androidx.ui.unit.Px.Companion! Companion;
+  }
+
+  public static final class Px.Companion {
+    method public androidx.ui.unit.Px getInfinity();
+    method public androidx.ui.unit.Px getZero();
+    property public final androidx.ui.unit.Px Infinity;
+    property public final androidx.ui.unit.Px Zero;
+  }
+
+  public final class PxBounds {
+    ctor public PxBounds(androidx.ui.unit.Px left, androidx.ui.unit.Px top, androidx.ui.unit.Px right, androidx.ui.unit.Px bottom);
+    method public androidx.ui.unit.Px component1();
+    method public androidx.ui.unit.Px component2();
+    method public androidx.ui.unit.Px component3();
+    method public androidx.ui.unit.Px component4();
+    method public androidx.ui.unit.PxBounds copy(androidx.ui.unit.Px left, androidx.ui.unit.Px top, androidx.ui.unit.Px right, androidx.ui.unit.Px bottom);
+    method public androidx.ui.unit.Px getBottom();
+    method public androidx.ui.unit.Px getLeft();
+    method public androidx.ui.unit.Px getRight();
+    method public androidx.ui.unit.Px getTop();
+  }
+
+  public final inline class PxCubed implements java.lang.Comparable<androidx.ui.unit.PxCubed> {
+    ctor public PxCubed();
+    method public operator int compareTo-bji3ab4(float p);
+    method public static operator int compareTo-bji3ab4(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator androidx.ui.unit.Px div-RjPF0Mw(float $this, float other);
+    method public static inline operator float div-bji3ab4(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator float div-impl(float $this, androidx.ui.unit.Px other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-bji3ab4(float $this, float dimension);
+    method public static inline operator float plus-bji3ab4(float $this, float dimension);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final inline class PxInverse implements java.lang.Comparable<androidx.ui.unit.PxInverse> {
+    ctor public PxInverse();
+    method public operator int compareTo-KGV0gLo(float p);
+    method public static operator int compareTo-KGV0gLo(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-KGV0gLo(float $this, float dimension);
+    method public static inline operator float plus-KGV0gLo(float $this, float dimension);
+    method public static inline operator androidx.ui.unit.Px times-RjPF0Mw(float $this, float other);
+    method public static inline operator float times-bji3ab4(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Px other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final class PxKt {
+    method public static inline androidx.ui.unit.PxPosition PxPosition(androidx.ui.unit.Px x, androidx.ui.unit.Px y);
+    method public static inline androidx.ui.unit.PxSize PxSize(androidx.ui.unit.Px width, androidx.ui.unit.Px height);
+    method public static androidx.ui.unit.PxPosition center(androidx.ui.unit.PxSize);
+    method public static inline androidx.ui.unit.Px coerceAtLeast(androidx.ui.unit.Px, androidx.ui.unit.Px minimumValue);
+    method public static inline androidx.ui.unit.Px coerceAtMost(androidx.ui.unit.Px, androidx.ui.unit.Px maximumValue);
+    method public static inline androidx.ui.unit.Px coerceIn(androidx.ui.unit.Px, androidx.ui.unit.Px minimumValue, androidx.ui.unit.Px maximumValue);
+    method public static inline operator float div(float, androidx.ui.unit.Px other);
+    method public static inline operator float div(double, androidx.ui.unit.Px other);
+    method public static inline operator float div(int, androidx.ui.unit.Px other);
+    method public static androidx.ui.unit.Px getDistance(androidx.ui.unit.PxPosition);
+    method public static inline androidx.ui.unit.Px getHeight(androidx.ui.unit.PxBounds);
+    method public static androidx.ui.unit.Px! getMinDimension(androidx.ui.unit.PxSize);
+    method public static inline androidx.ui.unit.Px getPx(int);
+    method public static inline androidx.ui.unit.Px getPx(double);
+    method public static inline androidx.ui.unit.Px getPx(float);
+    method public static inline androidx.ui.unit.Px getWidth(androidx.ui.unit.PxBounds);
+    method public static androidx.ui.unit.Px lerp(androidx.ui.unit.Px start, androidx.ui.unit.Px stop, float fraction);
+    method public static androidx.ui.unit.PxPosition lerp(androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition stop, float fraction);
+    method public static inline androidx.ui.unit.Px max(androidx.ui.unit.Px a, androidx.ui.unit.Px b);
+    method public static inline androidx.ui.unit.Px min(androidx.ui.unit.Px a, androidx.ui.unit.Px b);
+    method public static inline androidx.ui.unit.IntPxPosition round(androidx.ui.unit.PxPosition);
+    method public static inline operator androidx.ui.unit.Px times(float, androidx.ui.unit.Px other);
+    method public static inline operator androidx.ui.unit.Px times(double, androidx.ui.unit.Px other);
+    method public static inline operator androidx.ui.unit.Px times(int, androidx.ui.unit.Px other);
+    method public static inline operator androidx.ui.unit.PxSize times(int, androidx.ui.unit.PxSize size);
+    method public static inline operator androidx.ui.unit.PxSize times(float, androidx.ui.unit.PxSize size);
+    method public static inline operator androidx.ui.unit.PxSize times(double, androidx.ui.unit.PxSize size);
+    method public static androidx.ui.unit.PxBounds toBounds(androidx.ui.unit.PxSize);
+    method public static inline androidx.ui.geometry.Offset toOffset(androidx.ui.unit.PxPosition);
+    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxBounds);
+    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxSize);
+    method public static androidx.ui.unit.PxSize toSize(androidx.ui.unit.PxBounds);
+  }
+
+  public final class PxPosition {
+    method public androidx.ui.unit.PxPosition copy(long value);
+    method public inline androidx.ui.unit.Px getX();
+    method public inline androidx.ui.unit.Px getY();
+    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.PxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.PxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition unaryMinus();
+    property public final inline androidx.ui.unit.Px x;
+    property public final inline androidx.ui.unit.Px y;
+    field public static final androidx.ui.unit.PxPosition.Companion! Companion;
+  }
+
+  public static final class PxPosition.Companion {
+    method public androidx.ui.unit.PxPosition getOrigin();
+    property public final androidx.ui.unit.PxPosition Origin;
+  }
+
+  public final class PxSize {
+    method public androidx.ui.unit.PxSize copy(long value);
+    method public inline operator androidx.ui.unit.PxSize div(int other);
+    method public inline operator androidx.ui.unit.PxSize div(float other);
+    method public inline operator androidx.ui.unit.PxSize div(double other);
+    method public inline androidx.ui.unit.Px getHeight();
+    method public inline androidx.ui.unit.Px getWidth();
+    method public inline operator androidx.ui.unit.PxSize times(int other);
+    method public inline operator androidx.ui.unit.PxSize times(float other);
+    method public inline operator androidx.ui.unit.PxSize times(double other);
+    property public final inline androidx.ui.unit.Px height;
+    property public final inline androidx.ui.unit.Px width;
+    field public static final androidx.ui.unit.PxSize.Companion! Companion;
+  }
+
+  public static final class PxSize.Companion {
+    method public androidx.ui.unit.PxSize getZero();
+    property public final androidx.ui.unit.PxSize Zero;
+  }
+
+  public final inline class PxSquared implements java.lang.Comparable<androidx.ui.unit.PxSquared> {
+    ctor public PxSquared();
+    method public operator int compareTo-RjPF0Mw(float p);
+    method public static operator int compareTo-RjPF0Mw(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-RjPF0Mw(float $this, float other);
+    method public static inline operator float div-bji3ab4(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator androidx.ui.unit.Px div-impl(float $this, androidx.ui.unit.Px other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-RjPF0Mw(float $this, float other);
+    method public static inline operator float plus-RjPF0Mw(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Px other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final inline class Size {
+    ctor public Size();
+    method public static long constructor-impl(internal long value);
+    method public static inline operator long div-impl(long $this, int other);
+    method public static inline operator long div-impl(long $this, float other);
+    method public static inline operator long div-impl(long $this, double other);
+    method public static boolean equals-impl(long p, Object? p1);
+    method public static boolean equals-impl0(long p1, long p2);
+    method public static androidx.ui.unit.Dp getHeight-impl(long $this);
+    method public static androidx.ui.unit.Dp getWidth-impl(long $this);
+    method public static int hashCode-impl(long p);
+    method public static inline operator long times-impl(long $this, int other);
+    method public static inline operator long times-impl(long $this, float other);
+    method public static inline operator long times-impl(long $this, double other);
+    method public static String toString-impl(long $this);
+  }
+
+  public final class TextUnit {
+    ctor public TextUnit(long packedValue);
+    method public inline operator int compareTo(androidx.ui.unit.TextUnit other);
+    method public long component1();
+    method public androidx.ui.unit.TextUnit copy(long packedValue);
+    method public inline operator androidx.ui.unit.TextUnit div(float other);
+    method public inline operator androidx.ui.unit.TextUnit div(double other);
+    method public inline operator androidx.ui.unit.TextUnit div(int other);
+    method public inline operator float div(androidx.ui.unit.TextUnit other);
+    method public long getPackedValue();
+    method public androidx.ui.unit.TextUnitType getType();
+    method public float getValue();
+    method public boolean isEm();
+    method public boolean isInherit();
+    method public boolean isSp();
+    method public inline operator androidx.ui.unit.TextUnit minus(androidx.ui.unit.TextUnit other);
+    method public inline operator androidx.ui.unit.TextUnit plus(androidx.ui.unit.TextUnit other);
+    method public inline operator androidx.ui.unit.TextUnit times(float other);
+    method public inline operator androidx.ui.unit.TextUnit times(double other);
+    method public inline operator androidx.ui.unit.TextUnit times(int other);
+    method public inline operator androidx.ui.unit.TextUnit unaryMinus();
+    property public final boolean isEm;
+    property public final boolean isInherit;
+    property public final boolean isSp;
+    property public final androidx.ui.unit.TextUnitType type;
+    property public final float value;
+    field public static final androidx.ui.unit.TextUnit.Companion! Companion;
+  }
+
+  public static final class TextUnit.Companion {
+    method public androidx.ui.unit.TextUnit Em(int value);
+    method public androidx.ui.unit.TextUnit Em(float value);
+    method public androidx.ui.unit.TextUnit Em(double value);
+    method public androidx.ui.unit.TextUnit Sp(int value);
+    method public androidx.ui.unit.TextUnit Sp(float value);
+    method public androidx.ui.unit.TextUnit Sp(double value);
+    method public androidx.ui.unit.TextUnit getInherit();
+    property public final androidx.ui.unit.TextUnit Inherit;
+  }
+
+  public final class TextUnitKt {
+    method public static inline androidx.ui.unit.TextUnit coerceAtLeast(androidx.ui.unit.TextUnit, androidx.ui.unit.TextUnit minimumValue);
+    method public static inline androidx.ui.unit.TextUnit coerceAtMost(androidx.ui.unit.TextUnit, androidx.ui.unit.TextUnit maximumValue);
+    method public static inline androidx.ui.unit.TextUnit coerceIn(androidx.ui.unit.TextUnit, androidx.ui.unit.TextUnit minimumValue, androidx.ui.unit.TextUnit maximumValue);
+    method public static androidx.ui.unit.TextUnit getEm(float);
+    method public static androidx.ui.unit.TextUnit getEm(double);
+    method public static androidx.ui.unit.TextUnit getEm(int);
+    method public static androidx.ui.unit.TextUnit getSp(float);
+    method public static androidx.ui.unit.TextUnit getSp(double);
+    method public static androidx.ui.unit.TextUnit getSp(int);
+    method public static androidx.ui.unit.TextUnit lerp(androidx.ui.unit.TextUnit a, androidx.ui.unit.TextUnit b, float t);
+    method public static inline androidx.ui.unit.TextUnit max(androidx.ui.unit.TextUnit a, androidx.ui.unit.TextUnit b);
+    method public static inline androidx.ui.unit.TextUnit min(androidx.ui.unit.TextUnit a, androidx.ui.unit.TextUnit b);
+    method public static inline operator androidx.ui.unit.TextUnit times(float, androidx.ui.unit.TextUnit other);
+    method public static inline operator androidx.ui.unit.TextUnit times(double, androidx.ui.unit.TextUnit other);
+    method public static inline operator androidx.ui.unit.TextUnit times(int, androidx.ui.unit.TextUnit other);
+  }
+
+  public enum TextUnitType {
+    enum_constant public static final androidx.ui.unit.TextUnitType Em;
+    enum_constant public static final androidx.ui.unit.TextUnitType Inherit;
+    enum_constant public static final androidx.ui.unit.TextUnitType Sp;
+  }
+
+  public final class Uptime implements java.lang.Comparable<androidx.ui.unit.Uptime> {
+    ctor public Uptime(long nanoseconds);
+    method public int compareTo(androidx.ui.unit.Uptime other);
+    method public long component1();
+    method public androidx.ui.unit.Uptime copy(long nanoseconds);
+    method public long getNanoseconds();
+    method public operator androidx.ui.unit.Uptime minus(androidx.ui.unit.Duration duration);
+    method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Uptime other);
+    method public operator androidx.ui.unit.Uptime plus(androidx.ui.unit.Duration duration);
+    field public static final androidx.ui.unit.Uptime.Companion! Companion;
+  }
+
+  public static final class Uptime.Companion {
+    method public androidx.ui.unit.Uptime getBoot();
+    property public final androidx.ui.unit.Uptime Boot;
+  }
+
+  public final class UptimeKt {
+    method public static operator androidx.ui.unit.Uptime plus(androidx.ui.unit.Duration, androidx.ui.unit.Uptime uptime);
+  }
+
+  public final class Velocity {
+    ctor public Velocity(androidx.ui.unit.PxPosition pixelsPerSecond);
+    method public androidx.ui.unit.PxPosition component1();
+    method public androidx.ui.unit.Velocity copy(androidx.ui.unit.PxPosition pixelsPerSecond);
+    method public androidx.ui.unit.PxPosition getPixelsPerSecond();
+    method public operator androidx.ui.unit.Velocity unaryMinus();
+    field public static final androidx.ui.unit.Velocity.Companion! Companion;
+  }
+
+  public static final class Velocity.Companion {
+    method public androidx.ui.unit.Velocity getZero();
+    property public final androidx.ui.unit.Velocity Zero;
+  }
+
+  public final class VelocityKt {
+    method public static operator androidx.ui.unit.Velocity minus(androidx.ui.unit.Velocity, androidx.ui.unit.Velocity other);
+    method public static operator androidx.ui.unit.Velocity plus(androidx.ui.unit.Velocity, androidx.ui.unit.Velocity other);
+  }
+
+}
+
diff --git a/ui/ui-unit/api/res-0.1.0-dev04.txt b/ui/ui-unit/api/res-0.1.0-dev04.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ui/ui-unit/api/res-0.1.0-dev04.txt
diff --git a/ui/ui-unit/api/restricted_0.1.0-dev04.txt b/ui/ui-unit/api/restricted_0.1.0-dev04.txt
new file mode 100644
index 0000000..c7e6484
--- /dev/null
+++ b/ui/ui-unit/api/restricted_0.1.0-dev04.txt
@@ -0,0 +1,629 @@
+// Signature format: 3.0
+package androidx.ui.unit {
+
+  public final class Bounds {
+    ctor public Bounds(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.unit.Bounds copy(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp getBottom();
+    method public androidx.ui.unit.Dp getLeft();
+    method public androidx.ui.unit.Dp getRight();
+    method public androidx.ui.unit.Dp getTop();
+  }
+
+  public final class Density {
+    ctor public Density(float density, float fontScale);
+    method public float component1();
+    method public float component2();
+    method public androidx.ui.unit.Density copy(float density, float fontScale);
+    method public float getDensity();
+    method public float getFontScale();
+  }
+
+  public final class DensityKt {
+    method public static androidx.ui.unit.Density Density(android.content.Context context);
+    method public static androidx.ui.unit.DensityScope DensityScope(androidx.ui.unit.Density density);
+    method public static inline <R> R! withDensity(androidx.ui.unit.Density density, kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,? extends R> block);
+  }
+
+  public interface DensityScope {
+    method public androidx.ui.unit.Density getDensity();
+    method public default androidx.ui.unit.Dp toDp(androidx.ui.unit.TextUnit);
+    method public default androidx.ui.unit.Dp toDp(androidx.ui.unit.Px);
+    method public default androidx.ui.unit.Dp toDp(androidx.ui.unit.IntPx);
+    method public default androidx.ui.unit.Dp toDp(float);
+    method public default androidx.ui.unit.Dp toDp(int);
+    method public default androidx.ui.unit.IntPx toIntPx(androidx.ui.unit.Dp);
+    method public default androidx.ui.unit.IntPx toIntPx(androidx.ui.unit.TextUnit);
+    method public default androidx.ui.unit.Px toPx(androidx.ui.unit.Dp);
+    method public default androidx.ui.unit.Px toPx(androidx.ui.unit.TextUnit);
+    method public default androidx.ui.unit.PxSize toPx-kAYDl8w(long);
+    method public default androidx.ui.geometry.Rect toRect(androidx.ui.unit.Bounds);
+    method public default androidx.ui.unit.TextUnit toSp(androidx.ui.unit.Dp);
+    method public default androidx.ui.unit.TextUnit toSp(androidx.ui.unit.Px);
+    method public default androidx.ui.unit.TextUnit toSp(androidx.ui.unit.IntPx);
+    method public default androidx.ui.unit.TextUnit toSp(float);
+    method public default androidx.ui.unit.TextUnit toSp(int);
+    property public abstract androidx.ui.unit.Density density;
+  }
+
+  public final class Dp implements java.lang.Comparable<androidx.ui.unit.Dp> {
+    ctor public Dp(float value);
+    method public operator int compareTo(androidx.ui.unit.Dp other);
+    method public float component1();
+    method public androidx.ui.unit.Dp copy(float value);
+    method public inline operator androidx.ui.unit.Dp div(float other);
+    method public inline operator androidx.ui.unit.Dp div(int other);
+    method public inline operator float div(androidx.ui.unit.Dp other);
+    method public inline operator float div-x8crYZs(float other);
+    method public float getValue();
+    method public inline operator androidx.ui.unit.Dp minus(androidx.ui.unit.Dp other);
+    method public inline operator androidx.ui.unit.Dp plus(androidx.ui.unit.Dp other);
+    method public inline operator androidx.ui.unit.Dp times(float other);
+    method public inline operator androidx.ui.unit.Dp times(int other);
+    method public inline operator float times(androidx.ui.unit.Dp other);
+    method public inline operator float times-x8crYZs(float other);
+    method public inline operator androidx.ui.unit.Dp unaryMinus();
+    field public static final androidx.ui.unit.Dp.Companion! Companion;
+  }
+
+  public static final class Dp.Companion {
+    method public androidx.ui.unit.Dp getHairline();
+    method public androidx.ui.unit.Dp getInfinity();
+    property public final androidx.ui.unit.Dp Hairline;
+    property public final androidx.ui.unit.Dp Infinity;
+  }
+
+  public final inline class DpCubed implements java.lang.Comparable<androidx.ui.unit.DpCubed> {
+    ctor public DpCubed();
+    method public operator int compareTo-JDqhs2g(float p);
+    method public static operator int compareTo-JDqhs2g(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-JDqhs2g(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator float div-impl(float $this, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp div-x8crYZs(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-JDqhs2g(float $this, float dimension);
+    method public static inline operator float plus-JDqhs2g(float $this, float dimension);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final inline class DpInverse implements java.lang.Comparable<androidx.ui.unit.DpInverse> {
+    ctor public DpInverse();
+    method public operator int compareTo-_K2iRR8(float p);
+    method public static operator int compareTo-_K2iRR8(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-_K2iRR8(float $this, float dimension);
+    method public static inline operator float plus-_K2iRR8(float $this, float dimension);
+    method public static inline operator float times-JDqhs2g(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp times-x8crYZs(float $this, float other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final class DpKt {
+    method public static inline long Position(androidx.ui.unit.Dp x, androidx.ui.unit.Dp y);
+    method public static inline long Size(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
+    method public static long center-kAYDl8w(long);
+    method public static inline androidx.ui.unit.Dp coerceAtLeast(androidx.ui.unit.Dp, androidx.ui.unit.Dp minimumValue);
+    method public static inline androidx.ui.unit.Dp coerceAtMost(androidx.ui.unit.Dp, androidx.ui.unit.Dp maximumValue);
+    method public static inline androidx.ui.unit.Dp coerceIn(androidx.ui.unit.Dp, androidx.ui.unit.Dp minimumValue, androidx.ui.unit.Dp maximumValue);
+    method public static inline operator float div(float, androidx.ui.unit.Dp other);
+    method public static inline operator float div(double, androidx.ui.unit.Dp other);
+    method public static inline operator float div(int, androidx.ui.unit.Dp other);
+    method public static androidx.ui.unit.Dp getDistance-T8eBu-w(long);
+    method public static inline androidx.ui.unit.Dp getDp(int);
+    method public static inline androidx.ui.unit.Dp getDp(double);
+    method public static inline androidx.ui.unit.Dp getDp(float);
+    method public static inline androidx.ui.unit.Dp getHeight(androidx.ui.unit.Bounds);
+    method public static inline androidx.ui.unit.Dp getWidth(androidx.ui.unit.Bounds);
+    method public static inline boolean isFinite(androidx.ui.unit.Dp);
+    method public static androidx.ui.unit.Dp lerp(androidx.ui.unit.Dp start, androidx.ui.unit.Dp stop, float fraction);
+    method public static long lerp-d5NHFfI(long start, long stop, float fraction);
+    method public static inline androidx.ui.unit.Dp max(androidx.ui.unit.Dp a, androidx.ui.unit.Dp b);
+    method public static inline androidx.ui.unit.Dp min(androidx.ui.unit.Dp a, androidx.ui.unit.Dp b);
+    method public static inline operator androidx.ui.unit.Dp times(float, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp times(double, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp times(int, androidx.ui.unit.Dp other);
+    method public static inline operator long times--D0i1nw(float, long size);
+    method public static inline operator long times-DdskrAE(int, long size);
+    method public static inline operator long times-l9Tz9ww(double, long size);
+    method public static androidx.ui.unit.Bounds toBounds-kAYDl8w(long);
+    method public static inline long toSize(androidx.ui.unit.Bounds);
+  }
+
+  public final inline class DpSquared implements java.lang.Comparable<androidx.ui.unit.DpSquared> {
+    ctor public DpSquared();
+    method public operator int compareTo-x8crYZs(float p);
+    method public static operator int compareTo-x8crYZs(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-JDqhs2g(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator androidx.ui.unit.Dp div-impl(float $this, androidx.ui.unit.Dp other);
+    method public static inline operator float div-x8crYZs(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-x8crYZs(float $this, float other);
+    method public static inline operator float plus-x8crYZs(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Dp other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final class Duration implements java.lang.Comparable<androidx.ui.unit.Duration> {
+    ctor public Duration(long nanoseconds);
+    method public int compareTo(androidx.ui.unit.Duration other);
+    method public long component1();
+    method public androidx.ui.unit.Duration copy(long nanoseconds);
+    method public operator androidx.ui.unit.Duration div(int quotient);
+    method public operator androidx.ui.unit.Duration div(double quotient);
+    method public long getNanoseconds();
+    method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Duration other);
+    method public operator androidx.ui.unit.Duration plus(androidx.ui.unit.Duration other);
+    method public operator androidx.ui.unit.Duration times(int factor);
+    method public operator androidx.ui.unit.Duration times(double factor);
+    field public static final androidx.ui.unit.Duration.Companion! Companion;
+  }
+
+  public static final class Duration.Companion {
+    method public androidx.ui.unit.Duration getZero();
+    property public final androidx.ui.unit.Duration Zero;
+  }
+
+  public final class Durations {
+    method public static androidx.ui.unit.Duration Duration(long days = 0, long hours = 0, long minutes = 0, long seconds = 0, long milliseconds = 0, long microseconds = 0, long nanoseconds = 0);
+    method public static androidx.ui.unit.Duration getDays(long);
+    method public static androidx.ui.unit.Duration getDays(int);
+    method public static androidx.ui.unit.Duration getHours(long);
+    method public static androidx.ui.unit.Duration getHours(int);
+    method public static androidx.ui.unit.Duration getMicroseconds(long);
+    method public static androidx.ui.unit.Duration getMicroseconds(int);
+    method public static androidx.ui.unit.Duration getMilliseconds(long);
+    method public static androidx.ui.unit.Duration getMilliseconds(int);
+    method public static androidx.ui.unit.Duration getMinutes(long);
+    method public static androidx.ui.unit.Duration getMinutes(int);
+    method public static androidx.ui.unit.Duration getNanoseconds(long);
+    method public static androidx.ui.unit.Duration getNanoseconds(int);
+    method public static long getNanosecondsPerDay();
+    method public static long getNanosecondsPerHour();
+    method public static long getNanosecondsPerMillisecond();
+    method public static long getNanosecondsPerMinute();
+    method public static long getNanosecondsPerSecond();
+    method public static androidx.ui.unit.Duration getSeconds(long);
+    method public static androidx.ui.unit.Duration getSeconds(int);
+    method public static long inDays(androidx.ui.unit.Duration);
+    method public static long inHours(androidx.ui.unit.Duration);
+    method public static long inMicroseconds(androidx.ui.unit.Duration);
+    method public static long inMilliseconds(androidx.ui.unit.Duration);
+    method public static long inMinutes(androidx.ui.unit.Duration);
+    method public static long inSeconds(androidx.ui.unit.Duration);
+    field public static final long HoursPerDay = 24L; // 0x18L
+    field public static final long MicrosecondsPerMillisecond = 1000L; // 0x3e8L
+    field public static final long MillisecondsPerSecond = 1000L; // 0x3e8L
+    field public static final long MinutesPerHour = 60L; // 0x3cL
+    field public static final long NanosecondsPerMicrosecond = 1000L; // 0x3e8L
+    field public static final long SecondsPerMinute = 60L; // 0x3cL
+  }
+
+  public final class IntPx implements java.lang.Comparable<androidx.ui.unit.IntPx> {
+    ctor public IntPx(int value);
+    method public operator int compareTo(androidx.ui.unit.IntPx other);
+    method public inline operator int compareTo(androidx.ui.unit.Px other);
+    method public int component1();
+    method public androidx.ui.unit.IntPx copy(int value);
+    method public operator androidx.ui.unit.IntPx div(float other);
+    method public operator androidx.ui.unit.IntPx div(double other);
+    method public operator androidx.ui.unit.IntPx div(int other);
+    method public int getValue();
+    method public operator androidx.ui.unit.IntPx minus(androidx.ui.unit.IntPx other);
+    method public operator androidx.ui.unit.IntPx plus(androidx.ui.unit.IntPx other);
+    method public inline operator androidx.ui.unit.IntPx rem(int other);
+    method public operator androidx.ui.unit.IntPx times(float other);
+    method public operator androidx.ui.unit.IntPx times(double other);
+    method public operator androidx.ui.unit.IntPx times(int other);
+    method public operator androidx.ui.unit.IntPx unaryMinus();
+    field public static final androidx.ui.unit.IntPx.Companion! Companion;
+  }
+
+  public static final class IntPx.Companion {
+    method public androidx.ui.unit.IntPx getInfinity();
+    method public androidx.ui.unit.IntPx getZero();
+    property public final androidx.ui.unit.IntPx Infinity;
+    property public final androidx.ui.unit.IntPx Zero;
+  }
+
+  public final class IntPxBounds {
+    ctor public IntPxBounds(androidx.ui.unit.IntPx left, androidx.ui.unit.IntPx top, androidx.ui.unit.IntPx right, androidx.ui.unit.IntPx bottom);
+    method public androidx.ui.unit.IntPx component1();
+    method public androidx.ui.unit.IntPx component2();
+    method public androidx.ui.unit.IntPx component3();
+    method public androidx.ui.unit.IntPx component4();
+    method public androidx.ui.unit.IntPxBounds copy(androidx.ui.unit.IntPx left, androidx.ui.unit.IntPx top, androidx.ui.unit.IntPx right, androidx.ui.unit.IntPx bottom);
+    method public androidx.ui.unit.IntPx getBottom();
+    method public androidx.ui.unit.IntPx getLeft();
+    method public androidx.ui.unit.IntPx getRight();
+    method public androidx.ui.unit.IntPx getTop();
+  }
+
+  public final class IntPxKt {
+    method public static inline androidx.ui.unit.IntPxPosition IntPxPosition(androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
+    method public static inline androidx.ui.unit.IntPxSize IntPxSize(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height);
+    method public static inline androidx.ui.unit.PxPosition PxPosition(androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
+    method public static inline androidx.ui.unit.PxSize PxSize(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height);
+    method public static androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxSize);
+    method public static inline androidx.ui.unit.IntPx coerceAtLeast(androidx.ui.unit.IntPx, androidx.ui.unit.IntPx minimumValue);
+    method public static inline androidx.ui.unit.IntPx coerceAtMost(androidx.ui.unit.IntPx, androidx.ui.unit.IntPx maximumValue);
+    method public static inline androidx.ui.unit.IntPx coerceIn(androidx.ui.unit.IntPx, androidx.ui.unit.IntPx minimumValue, androidx.ui.unit.IntPx maximumValue);
+    method public static inline androidx.ui.unit.IntPx getHeight(androidx.ui.unit.IntPxBounds);
+    method public static inline androidx.ui.unit.IntPx getIpx(int);
+    method public static inline androidx.ui.unit.IntPx getWidth(androidx.ui.unit.IntPxBounds);
+    method public static inline boolean isFinite(androidx.ui.unit.IntPx);
+    method public static androidx.ui.unit.IntPx lerp(androidx.ui.unit.IntPx start, androidx.ui.unit.IntPx stop, float fraction);
+    method public static androidx.ui.unit.IntPxPosition lerp(androidx.ui.unit.IntPxPosition start, androidx.ui.unit.IntPxPosition stop, float fraction);
+    method public static inline androidx.ui.unit.IntPx max(androidx.ui.unit.IntPx a, androidx.ui.unit.IntPx b);
+    method public static inline androidx.ui.unit.IntPx min(androidx.ui.unit.IntPx a, androidx.ui.unit.IntPx b);
+    method public static inline androidx.ui.unit.IntPx round(androidx.ui.unit.Px);
+    method public static inline operator androidx.ui.unit.IntPx times(float, androidx.ui.unit.IntPx other);
+    method public static inline operator androidx.ui.unit.IntPx times(double, androidx.ui.unit.IntPx other);
+    method public static inline operator androidx.ui.unit.IntPx times(int, androidx.ui.unit.IntPx other);
+    method public static inline operator androidx.ui.unit.IntPxSize times(int, androidx.ui.unit.IntPxSize size);
+    method public static inline androidx.ui.unit.Px toPx(androidx.ui.unit.IntPx);
+    method public static inline androidx.ui.unit.PxPosition toPxPosition(androidx.ui.unit.IntPxPosition);
+    method public static inline androidx.ui.unit.PxSize toPxSize(androidx.ui.unit.IntPxSize);
+    method public static inline androidx.ui.unit.IntPxSize toSize(androidx.ui.unit.IntPxBounds);
+  }
+
+  public final class IntPxPosition {
+    method public androidx.ui.unit.IntPxPosition copy(long value);
+    method public inline androidx.ui.unit.IntPx getX();
+    method public inline androidx.ui.unit.IntPx getY();
+    method public inline operator androidx.ui.unit.IntPxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.IntPxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.IntPxPosition unaryMinus();
+    property public final inline androidx.ui.unit.IntPx x;
+    property public final inline androidx.ui.unit.IntPx y;
+    field public static final androidx.ui.unit.IntPxPosition.Companion! Companion;
+  }
+
+  public static final class IntPxPosition.Companion {
+    method public androidx.ui.unit.IntPxPosition getOrigin();
+    property public final androidx.ui.unit.IntPxPosition Origin;
+  }
+
+  public final class IntPxSize {
+    method public androidx.ui.unit.IntPxSize copy(long value);
+    method public inline operator androidx.ui.unit.IntPxSize div(int other);
+    method public inline androidx.ui.unit.IntPx getHeight();
+    method public inline androidx.ui.unit.IntPx getWidth();
+    method public inline operator androidx.ui.unit.IntPxSize times(int other);
+    property public final inline androidx.ui.unit.IntPx height;
+    property public final inline androidx.ui.unit.IntPx width;
+  }
+
+  public final inline class Position {
+    ctor public Position();
+    method public static long constructor-impl(internal long value);
+    method public static boolean equals-impl(long p, Object? p1);
+    method public static boolean equals-impl0(long p1, long p2);
+    method public static androidx.ui.unit.Dp getX-impl(long $this);
+    method public static androidx.ui.unit.Dp getY-impl(long $this);
+    method public static int hashCode-impl(long p);
+    method public static inline operator long minus-T8eBu-w(long $this, long other);
+    method public static inline operator long plus-T8eBu-w(long $this, long other);
+    method public static String toString-impl(long $this);
+  }
+
+  public final class Px implements java.lang.Comparable<androidx.ui.unit.Px> {
+    ctor public Px(float value);
+    method public operator int compareTo(androidx.ui.unit.Px other);
+    method public inline operator int compareTo(androidx.ui.unit.IntPx other);
+    method public float component1();
+    method public androidx.ui.unit.Px copy(float value);
+    method public inline operator androidx.ui.unit.Px div(float other);
+    method public inline operator androidx.ui.unit.Px div(int other);
+    method public inline operator float div(androidx.ui.unit.Px other);
+    method public inline operator float div-RjPF0Mw(float other);
+    method public float getValue();
+    method public inline operator androidx.ui.unit.Px minus(androidx.ui.unit.Px other);
+    method public inline operator androidx.ui.unit.Px minus(androidx.ui.unit.IntPx other);
+    method public inline operator androidx.ui.unit.Px plus(androidx.ui.unit.Px other);
+    method public inline operator androidx.ui.unit.Px plus(androidx.ui.unit.IntPx other);
+    method public inline operator androidx.ui.unit.Px times(float other);
+    method public inline operator androidx.ui.unit.Px times(int other);
+    method public inline operator float times(androidx.ui.unit.Px other);
+    method public inline operator float times-RjPF0Mw(float other);
+    method public inline operator androidx.ui.unit.Px unaryMinus();
+    field public static final androidx.ui.unit.Px.Companion! Companion;
+  }
+
+  public static final class Px.Companion {
+    method public androidx.ui.unit.Px getInfinity();
+    method public androidx.ui.unit.Px getZero();
+    property public final androidx.ui.unit.Px Infinity;
+    property public final androidx.ui.unit.Px Zero;
+  }
+
+  public final class PxBounds {
+    ctor public PxBounds(androidx.ui.unit.Px left, androidx.ui.unit.Px top, androidx.ui.unit.Px right, androidx.ui.unit.Px bottom);
+    method public androidx.ui.unit.Px component1();
+    method public androidx.ui.unit.Px component2();
+    method public androidx.ui.unit.Px component3();
+    method public androidx.ui.unit.Px component4();
+    method public androidx.ui.unit.PxBounds copy(androidx.ui.unit.Px left, androidx.ui.unit.Px top, androidx.ui.unit.Px right, androidx.ui.unit.Px bottom);
+    method public androidx.ui.unit.Px getBottom();
+    method public androidx.ui.unit.Px getLeft();
+    method public androidx.ui.unit.Px getRight();
+    method public androidx.ui.unit.Px getTop();
+  }
+
+  public final inline class PxCubed implements java.lang.Comparable<androidx.ui.unit.PxCubed> {
+    ctor public PxCubed();
+    method public operator int compareTo-bji3ab4(float p);
+    method public static operator int compareTo-bji3ab4(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator androidx.ui.unit.Px div-RjPF0Mw(float $this, float other);
+    method public static inline operator float div-bji3ab4(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator float div-impl(float $this, androidx.ui.unit.Px other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-bji3ab4(float $this, float dimension);
+    method public static inline operator float plus-bji3ab4(float $this, float dimension);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final inline class PxInverse implements java.lang.Comparable<androidx.ui.unit.PxInverse> {
+    ctor public PxInverse();
+    method public operator int compareTo-KGV0gLo(float p);
+    method public static operator int compareTo-KGV0gLo(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-KGV0gLo(float $this, float dimension);
+    method public static inline operator float plus-KGV0gLo(float $this, float dimension);
+    method public static inline operator androidx.ui.unit.Px times-RjPF0Mw(float $this, float other);
+    method public static inline operator float times-bji3ab4(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Px other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final class PxKt {
+    method public static inline androidx.ui.unit.PxPosition PxPosition(androidx.ui.unit.Px x, androidx.ui.unit.Px y);
+    method public static inline androidx.ui.unit.PxSize PxSize(androidx.ui.unit.Px width, androidx.ui.unit.Px height);
+    method public static androidx.ui.unit.PxPosition center(androidx.ui.unit.PxSize);
+    method public static inline androidx.ui.unit.Px coerceAtLeast(androidx.ui.unit.Px, androidx.ui.unit.Px minimumValue);
+    method public static inline androidx.ui.unit.Px coerceAtMost(androidx.ui.unit.Px, androidx.ui.unit.Px maximumValue);
+    method public static inline androidx.ui.unit.Px coerceIn(androidx.ui.unit.Px, androidx.ui.unit.Px minimumValue, androidx.ui.unit.Px maximumValue);
+    method public static inline operator float div(float, androidx.ui.unit.Px other);
+    method public static inline operator float div(double, androidx.ui.unit.Px other);
+    method public static inline operator float div(int, androidx.ui.unit.Px other);
+    method public static androidx.ui.unit.Px getDistance(androidx.ui.unit.PxPosition);
+    method public static inline androidx.ui.unit.Px getHeight(androidx.ui.unit.PxBounds);
+    method public static androidx.ui.unit.Px! getMinDimension(androidx.ui.unit.PxSize);
+    method public static inline androidx.ui.unit.Px getPx(int);
+    method public static inline androidx.ui.unit.Px getPx(double);
+    method public static inline androidx.ui.unit.Px getPx(float);
+    method public static inline androidx.ui.unit.Px getWidth(androidx.ui.unit.PxBounds);
+    method public static androidx.ui.unit.Px lerp(androidx.ui.unit.Px start, androidx.ui.unit.Px stop, float fraction);
+    method public static androidx.ui.unit.PxPosition lerp(androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition stop, float fraction);
+    method public static inline androidx.ui.unit.Px max(androidx.ui.unit.Px a, androidx.ui.unit.Px b);
+    method public static inline androidx.ui.unit.Px min(androidx.ui.unit.Px a, androidx.ui.unit.Px b);
+    method public static inline androidx.ui.unit.IntPxPosition round(androidx.ui.unit.PxPosition);
+    method public static inline operator androidx.ui.unit.Px times(float, androidx.ui.unit.Px other);
+    method public static inline operator androidx.ui.unit.Px times(double, androidx.ui.unit.Px other);
+    method public static inline operator androidx.ui.unit.Px times(int, androidx.ui.unit.Px other);
+    method public static inline operator androidx.ui.unit.PxSize times(int, androidx.ui.unit.PxSize size);
+    method public static inline operator androidx.ui.unit.PxSize times(float, androidx.ui.unit.PxSize size);
+    method public static inline operator androidx.ui.unit.PxSize times(double, androidx.ui.unit.PxSize size);
+    method public static androidx.ui.unit.PxBounds toBounds(androidx.ui.unit.PxSize);
+    method public static inline androidx.ui.geometry.Offset toOffset(androidx.ui.unit.PxPosition);
+    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxBounds);
+    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxSize);
+    method public static androidx.ui.unit.PxSize toSize(androidx.ui.unit.PxBounds);
+  }
+
+  public final class PxPosition {
+    method public androidx.ui.unit.PxPosition copy(long value);
+    method public inline androidx.ui.unit.Px getX();
+    method public inline androidx.ui.unit.Px getY();
+    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.PxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.PxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition unaryMinus();
+    property public final inline androidx.ui.unit.Px x;
+    property public final inline androidx.ui.unit.Px y;
+    field public static final androidx.ui.unit.PxPosition.Companion! Companion;
+  }
+
+  public static final class PxPosition.Companion {
+    method public androidx.ui.unit.PxPosition getOrigin();
+    property public final androidx.ui.unit.PxPosition Origin;
+  }
+
+  public final class PxSize {
+    method public androidx.ui.unit.PxSize copy(long value);
+    method public inline operator androidx.ui.unit.PxSize div(int other);
+    method public inline operator androidx.ui.unit.PxSize div(float other);
+    method public inline operator androidx.ui.unit.PxSize div(double other);
+    method public inline androidx.ui.unit.Px getHeight();
+    method public inline androidx.ui.unit.Px getWidth();
+    method public inline operator androidx.ui.unit.PxSize times(int other);
+    method public inline operator androidx.ui.unit.PxSize times(float other);
+    method public inline operator androidx.ui.unit.PxSize times(double other);
+    property public final inline androidx.ui.unit.Px height;
+    property public final inline androidx.ui.unit.Px width;
+    field public static final androidx.ui.unit.PxSize.Companion! Companion;
+  }
+
+  public static final class PxSize.Companion {
+    method public androidx.ui.unit.PxSize getZero();
+    property public final androidx.ui.unit.PxSize Zero;
+  }
+
+  public final inline class PxSquared implements java.lang.Comparable<androidx.ui.unit.PxSquared> {
+    ctor public PxSquared();
+    method public operator int compareTo-RjPF0Mw(float p);
+    method public static operator int compareTo-RjPF0Mw(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-RjPF0Mw(float $this, float other);
+    method public static inline operator float div-bji3ab4(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator androidx.ui.unit.Px div-impl(float $this, androidx.ui.unit.Px other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-RjPF0Mw(float $this, float other);
+    method public static inline operator float plus-RjPF0Mw(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Px other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final inline class Size {
+    ctor public Size();
+    method public static long constructor-impl(internal long value);
+    method public static inline operator long div-impl(long $this, int other);
+    method public static inline operator long div-impl(long $this, float other);
+    method public static inline operator long div-impl(long $this, double other);
+    method public static boolean equals-impl(long p, Object? p1);
+    method public static boolean equals-impl0(long p1, long p2);
+    method public static androidx.ui.unit.Dp getHeight-impl(long $this);
+    method public static androidx.ui.unit.Dp getWidth-impl(long $this);
+    method public static int hashCode-impl(long p);
+    method public static inline operator long times-impl(long $this, int other);
+    method public static inline operator long times-impl(long $this, float other);
+    method public static inline operator long times-impl(long $this, double other);
+    method public static String toString-impl(long $this);
+  }
+
+  public final class TextUnit {
+    ctor public TextUnit(long packedValue);
+    method public inline operator int compareTo(androidx.ui.unit.TextUnit other);
+    method public long component1();
+    method public androidx.ui.unit.TextUnit copy(long packedValue);
+    method public inline operator androidx.ui.unit.TextUnit div(float other);
+    method public inline operator androidx.ui.unit.TextUnit div(double other);
+    method public inline operator androidx.ui.unit.TextUnit div(int other);
+    method public inline operator float div(androidx.ui.unit.TextUnit other);
+    method public long getPackedValue();
+    method public androidx.ui.unit.TextUnitType getType();
+    method public float getValue();
+    method public boolean isEm();
+    method public boolean isInherit();
+    method public boolean isSp();
+    method public inline operator androidx.ui.unit.TextUnit minus(androidx.ui.unit.TextUnit other);
+    method public inline operator androidx.ui.unit.TextUnit plus(androidx.ui.unit.TextUnit other);
+    method public inline operator androidx.ui.unit.TextUnit times(float other);
+    method public inline operator androidx.ui.unit.TextUnit times(double other);
+    method public inline operator androidx.ui.unit.TextUnit times(int other);
+    method public inline operator androidx.ui.unit.TextUnit unaryMinus();
+    property public final boolean isEm;
+    property public final boolean isInherit;
+    property public final boolean isSp;
+    property public final androidx.ui.unit.TextUnitType type;
+    property public final float value;
+    field public static final androidx.ui.unit.TextUnit.Companion! Companion;
+  }
+
+  public static final class TextUnit.Companion {
+    method public androidx.ui.unit.TextUnit Em(int value);
+    method public androidx.ui.unit.TextUnit Em(float value);
+    method public androidx.ui.unit.TextUnit Em(double value);
+    method public androidx.ui.unit.TextUnit Sp(int value);
+    method public androidx.ui.unit.TextUnit Sp(float value);
+    method public androidx.ui.unit.TextUnit Sp(double value);
+    method public androidx.ui.unit.TextUnit getInherit();
+    property public final androidx.ui.unit.TextUnit Inherit;
+  }
+
+  public final class TextUnitKt {
+    method public static inline androidx.ui.unit.TextUnit coerceAtLeast(androidx.ui.unit.TextUnit, androidx.ui.unit.TextUnit minimumValue);
+    method public static inline androidx.ui.unit.TextUnit coerceAtMost(androidx.ui.unit.TextUnit, androidx.ui.unit.TextUnit maximumValue);
+    method public static inline androidx.ui.unit.TextUnit coerceIn(androidx.ui.unit.TextUnit, androidx.ui.unit.TextUnit minimumValue, androidx.ui.unit.TextUnit maximumValue);
+    method public static androidx.ui.unit.TextUnit getEm(float);
+    method public static androidx.ui.unit.TextUnit getEm(double);
+    method public static androidx.ui.unit.TextUnit getEm(int);
+    method public static androidx.ui.unit.TextUnit getSp(float);
+    method public static androidx.ui.unit.TextUnit getSp(double);
+    method public static androidx.ui.unit.TextUnit getSp(int);
+    method public static androidx.ui.unit.TextUnit lerp(androidx.ui.unit.TextUnit a, androidx.ui.unit.TextUnit b, float t);
+    method public static inline androidx.ui.unit.TextUnit max(androidx.ui.unit.TextUnit a, androidx.ui.unit.TextUnit b);
+    method public static inline androidx.ui.unit.TextUnit min(androidx.ui.unit.TextUnit a, androidx.ui.unit.TextUnit b);
+    method public static inline operator androidx.ui.unit.TextUnit times(float, androidx.ui.unit.TextUnit other);
+    method public static inline operator androidx.ui.unit.TextUnit times(double, androidx.ui.unit.TextUnit other);
+    method public static inline operator androidx.ui.unit.TextUnit times(int, androidx.ui.unit.TextUnit other);
+  }
+
+  public enum TextUnitType {
+    enum_constant public static final androidx.ui.unit.TextUnitType Em;
+    enum_constant public static final androidx.ui.unit.TextUnitType Inherit;
+    enum_constant public static final androidx.ui.unit.TextUnitType Sp;
+  }
+
+  public final class Uptime implements java.lang.Comparable<androidx.ui.unit.Uptime> {
+    ctor public Uptime(long nanoseconds);
+    method public int compareTo(androidx.ui.unit.Uptime other);
+    method public long component1();
+    method public androidx.ui.unit.Uptime copy(long nanoseconds);
+    method public long getNanoseconds();
+    method public operator androidx.ui.unit.Uptime minus(androidx.ui.unit.Duration duration);
+    method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Uptime other);
+    method public operator androidx.ui.unit.Uptime plus(androidx.ui.unit.Duration duration);
+    field public static final androidx.ui.unit.Uptime.Companion! Companion;
+  }
+
+  public static final class Uptime.Companion {
+    method public androidx.ui.unit.Uptime getBoot();
+    property public final androidx.ui.unit.Uptime Boot;
+  }
+
+  public final class UptimeKt {
+    method public static operator androidx.ui.unit.Uptime plus(androidx.ui.unit.Duration, androidx.ui.unit.Uptime uptime);
+  }
+
+  public final class Velocity {
+    ctor public Velocity(androidx.ui.unit.PxPosition pixelsPerSecond);
+    method public androidx.ui.unit.PxPosition component1();
+    method public androidx.ui.unit.Velocity copy(androidx.ui.unit.PxPosition pixelsPerSecond);
+    method public androidx.ui.unit.PxPosition getPixelsPerSecond();
+    method public operator androidx.ui.unit.Velocity unaryMinus();
+    field public static final androidx.ui.unit.Velocity.Companion! Companion;
+  }
+
+  public static final class Velocity.Companion {
+    method public androidx.ui.unit.Velocity getZero();
+    property public final androidx.ui.unit.Velocity Zero;
+  }
+
+  public final class VelocityKt {
+    method public static operator androidx.ui.unit.Velocity minus(androidx.ui.unit.Velocity, androidx.ui.unit.Velocity other);
+    method public static operator androidx.ui.unit.Velocity plus(androidx.ui.unit.Velocity, androidx.ui.unit.Velocity other);
+  }
+
+}
+
diff --git a/ui/ui-unit/api/restricted_current.txt b/ui/ui-unit/api/restricted_current.txt
new file mode 100644
index 0000000..c7e6484
--- /dev/null
+++ b/ui/ui-unit/api/restricted_current.txt
@@ -0,0 +1,629 @@
+// Signature format: 3.0
+package androidx.ui.unit {
+
+  public final class Bounds {
+    ctor public Bounds(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp component1();
+    method public androidx.ui.unit.Dp component2();
+    method public androidx.ui.unit.Dp component3();
+    method public androidx.ui.unit.Dp component4();
+    method public androidx.ui.unit.Bounds copy(androidx.ui.unit.Dp left, androidx.ui.unit.Dp top, androidx.ui.unit.Dp right, androidx.ui.unit.Dp bottom);
+    method public androidx.ui.unit.Dp getBottom();
+    method public androidx.ui.unit.Dp getLeft();
+    method public androidx.ui.unit.Dp getRight();
+    method public androidx.ui.unit.Dp getTop();
+  }
+
+  public final class Density {
+    ctor public Density(float density, float fontScale);
+    method public float component1();
+    method public float component2();
+    method public androidx.ui.unit.Density copy(float density, float fontScale);
+    method public float getDensity();
+    method public float getFontScale();
+  }
+
+  public final class DensityKt {
+    method public static androidx.ui.unit.Density Density(android.content.Context context);
+    method public static androidx.ui.unit.DensityScope DensityScope(androidx.ui.unit.Density density);
+    method public static inline <R> R! withDensity(androidx.ui.unit.Density density, kotlin.jvm.functions.Function1<? super androidx.ui.unit.DensityScope,? extends R> block);
+  }
+
+  public interface DensityScope {
+    method public androidx.ui.unit.Density getDensity();
+    method public default androidx.ui.unit.Dp toDp(androidx.ui.unit.TextUnit);
+    method public default androidx.ui.unit.Dp toDp(androidx.ui.unit.Px);
+    method public default androidx.ui.unit.Dp toDp(androidx.ui.unit.IntPx);
+    method public default androidx.ui.unit.Dp toDp(float);
+    method public default androidx.ui.unit.Dp toDp(int);
+    method public default androidx.ui.unit.IntPx toIntPx(androidx.ui.unit.Dp);
+    method public default androidx.ui.unit.IntPx toIntPx(androidx.ui.unit.TextUnit);
+    method public default androidx.ui.unit.Px toPx(androidx.ui.unit.Dp);
+    method public default androidx.ui.unit.Px toPx(androidx.ui.unit.TextUnit);
+    method public default androidx.ui.unit.PxSize toPx-kAYDl8w(long);
+    method public default androidx.ui.geometry.Rect toRect(androidx.ui.unit.Bounds);
+    method public default androidx.ui.unit.TextUnit toSp(androidx.ui.unit.Dp);
+    method public default androidx.ui.unit.TextUnit toSp(androidx.ui.unit.Px);
+    method public default androidx.ui.unit.TextUnit toSp(androidx.ui.unit.IntPx);
+    method public default androidx.ui.unit.TextUnit toSp(float);
+    method public default androidx.ui.unit.TextUnit toSp(int);
+    property public abstract androidx.ui.unit.Density density;
+  }
+
+  public final class Dp implements java.lang.Comparable<androidx.ui.unit.Dp> {
+    ctor public Dp(float value);
+    method public operator int compareTo(androidx.ui.unit.Dp other);
+    method public float component1();
+    method public androidx.ui.unit.Dp copy(float value);
+    method public inline operator androidx.ui.unit.Dp div(float other);
+    method public inline operator androidx.ui.unit.Dp div(int other);
+    method public inline operator float div(androidx.ui.unit.Dp other);
+    method public inline operator float div-x8crYZs(float other);
+    method public float getValue();
+    method public inline operator androidx.ui.unit.Dp minus(androidx.ui.unit.Dp other);
+    method public inline operator androidx.ui.unit.Dp plus(androidx.ui.unit.Dp other);
+    method public inline operator androidx.ui.unit.Dp times(float other);
+    method public inline operator androidx.ui.unit.Dp times(int other);
+    method public inline operator float times(androidx.ui.unit.Dp other);
+    method public inline operator float times-x8crYZs(float other);
+    method public inline operator androidx.ui.unit.Dp unaryMinus();
+    field public static final androidx.ui.unit.Dp.Companion! Companion;
+  }
+
+  public static final class Dp.Companion {
+    method public androidx.ui.unit.Dp getHairline();
+    method public androidx.ui.unit.Dp getInfinity();
+    property public final androidx.ui.unit.Dp Hairline;
+    property public final androidx.ui.unit.Dp Infinity;
+  }
+
+  public final inline class DpCubed implements java.lang.Comparable<androidx.ui.unit.DpCubed> {
+    ctor public DpCubed();
+    method public operator int compareTo-JDqhs2g(float p);
+    method public static operator int compareTo-JDqhs2g(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-JDqhs2g(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator float div-impl(float $this, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp div-x8crYZs(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-JDqhs2g(float $this, float dimension);
+    method public static inline operator float plus-JDqhs2g(float $this, float dimension);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final inline class DpInverse implements java.lang.Comparable<androidx.ui.unit.DpInverse> {
+    ctor public DpInverse();
+    method public operator int compareTo-_K2iRR8(float p);
+    method public static operator int compareTo-_K2iRR8(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-_K2iRR8(float $this, float dimension);
+    method public static inline operator float plus-_K2iRR8(float $this, float dimension);
+    method public static inline operator float times-JDqhs2g(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp times-x8crYZs(float $this, float other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final class DpKt {
+    method public static inline long Position(androidx.ui.unit.Dp x, androidx.ui.unit.Dp y);
+    method public static inline long Size(androidx.ui.unit.Dp width, androidx.ui.unit.Dp height);
+    method public static long center-kAYDl8w(long);
+    method public static inline androidx.ui.unit.Dp coerceAtLeast(androidx.ui.unit.Dp, androidx.ui.unit.Dp minimumValue);
+    method public static inline androidx.ui.unit.Dp coerceAtMost(androidx.ui.unit.Dp, androidx.ui.unit.Dp maximumValue);
+    method public static inline androidx.ui.unit.Dp coerceIn(androidx.ui.unit.Dp, androidx.ui.unit.Dp minimumValue, androidx.ui.unit.Dp maximumValue);
+    method public static inline operator float div(float, androidx.ui.unit.Dp other);
+    method public static inline operator float div(double, androidx.ui.unit.Dp other);
+    method public static inline operator float div(int, androidx.ui.unit.Dp other);
+    method public static androidx.ui.unit.Dp getDistance-T8eBu-w(long);
+    method public static inline androidx.ui.unit.Dp getDp(int);
+    method public static inline androidx.ui.unit.Dp getDp(double);
+    method public static inline androidx.ui.unit.Dp getDp(float);
+    method public static inline androidx.ui.unit.Dp getHeight(androidx.ui.unit.Bounds);
+    method public static inline androidx.ui.unit.Dp getWidth(androidx.ui.unit.Bounds);
+    method public static inline boolean isFinite(androidx.ui.unit.Dp);
+    method public static androidx.ui.unit.Dp lerp(androidx.ui.unit.Dp start, androidx.ui.unit.Dp stop, float fraction);
+    method public static long lerp-d5NHFfI(long start, long stop, float fraction);
+    method public static inline androidx.ui.unit.Dp max(androidx.ui.unit.Dp a, androidx.ui.unit.Dp b);
+    method public static inline androidx.ui.unit.Dp min(androidx.ui.unit.Dp a, androidx.ui.unit.Dp b);
+    method public static inline operator androidx.ui.unit.Dp times(float, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp times(double, androidx.ui.unit.Dp other);
+    method public static inline operator androidx.ui.unit.Dp times(int, androidx.ui.unit.Dp other);
+    method public static inline operator long times--D0i1nw(float, long size);
+    method public static inline operator long times-DdskrAE(int, long size);
+    method public static inline operator long times-l9Tz9ww(double, long size);
+    method public static androidx.ui.unit.Bounds toBounds-kAYDl8w(long);
+    method public static inline long toSize(androidx.ui.unit.Bounds);
+  }
+
+  public final inline class DpSquared implements java.lang.Comparable<androidx.ui.unit.DpSquared> {
+    ctor public DpSquared();
+    method public operator int compareTo-x8crYZs(float p);
+    method public static operator int compareTo-x8crYZs(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-JDqhs2g(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator androidx.ui.unit.Dp div-impl(float $this, androidx.ui.unit.Dp other);
+    method public static inline operator float div-x8crYZs(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-x8crYZs(float $this, float other);
+    method public static inline operator float plus-x8crYZs(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Dp other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final class Duration implements java.lang.Comparable<androidx.ui.unit.Duration> {
+    ctor public Duration(long nanoseconds);
+    method public int compareTo(androidx.ui.unit.Duration other);
+    method public long component1();
+    method public androidx.ui.unit.Duration copy(long nanoseconds);
+    method public operator androidx.ui.unit.Duration div(int quotient);
+    method public operator androidx.ui.unit.Duration div(double quotient);
+    method public long getNanoseconds();
+    method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Duration other);
+    method public operator androidx.ui.unit.Duration plus(androidx.ui.unit.Duration other);
+    method public operator androidx.ui.unit.Duration times(int factor);
+    method public operator androidx.ui.unit.Duration times(double factor);
+    field public static final androidx.ui.unit.Duration.Companion! Companion;
+  }
+
+  public static final class Duration.Companion {
+    method public androidx.ui.unit.Duration getZero();
+    property public final androidx.ui.unit.Duration Zero;
+  }
+
+  public final class Durations {
+    method public static androidx.ui.unit.Duration Duration(long days = 0, long hours = 0, long minutes = 0, long seconds = 0, long milliseconds = 0, long microseconds = 0, long nanoseconds = 0);
+    method public static androidx.ui.unit.Duration getDays(long);
+    method public static androidx.ui.unit.Duration getDays(int);
+    method public static androidx.ui.unit.Duration getHours(long);
+    method public static androidx.ui.unit.Duration getHours(int);
+    method public static androidx.ui.unit.Duration getMicroseconds(long);
+    method public static androidx.ui.unit.Duration getMicroseconds(int);
+    method public static androidx.ui.unit.Duration getMilliseconds(long);
+    method public static androidx.ui.unit.Duration getMilliseconds(int);
+    method public static androidx.ui.unit.Duration getMinutes(long);
+    method public static androidx.ui.unit.Duration getMinutes(int);
+    method public static androidx.ui.unit.Duration getNanoseconds(long);
+    method public static androidx.ui.unit.Duration getNanoseconds(int);
+    method public static long getNanosecondsPerDay();
+    method public static long getNanosecondsPerHour();
+    method public static long getNanosecondsPerMillisecond();
+    method public static long getNanosecondsPerMinute();
+    method public static long getNanosecondsPerSecond();
+    method public static androidx.ui.unit.Duration getSeconds(long);
+    method public static androidx.ui.unit.Duration getSeconds(int);
+    method public static long inDays(androidx.ui.unit.Duration);
+    method public static long inHours(androidx.ui.unit.Duration);
+    method public static long inMicroseconds(androidx.ui.unit.Duration);
+    method public static long inMilliseconds(androidx.ui.unit.Duration);
+    method public static long inMinutes(androidx.ui.unit.Duration);
+    method public static long inSeconds(androidx.ui.unit.Duration);
+    field public static final long HoursPerDay = 24L; // 0x18L
+    field public static final long MicrosecondsPerMillisecond = 1000L; // 0x3e8L
+    field public static final long MillisecondsPerSecond = 1000L; // 0x3e8L
+    field public static final long MinutesPerHour = 60L; // 0x3cL
+    field public static final long NanosecondsPerMicrosecond = 1000L; // 0x3e8L
+    field public static final long SecondsPerMinute = 60L; // 0x3cL
+  }
+
+  public final class IntPx implements java.lang.Comparable<androidx.ui.unit.IntPx> {
+    ctor public IntPx(int value);
+    method public operator int compareTo(androidx.ui.unit.IntPx other);
+    method public inline operator int compareTo(androidx.ui.unit.Px other);
+    method public int component1();
+    method public androidx.ui.unit.IntPx copy(int value);
+    method public operator androidx.ui.unit.IntPx div(float other);
+    method public operator androidx.ui.unit.IntPx div(double other);
+    method public operator androidx.ui.unit.IntPx div(int other);
+    method public int getValue();
+    method public operator androidx.ui.unit.IntPx minus(androidx.ui.unit.IntPx other);
+    method public operator androidx.ui.unit.IntPx plus(androidx.ui.unit.IntPx other);
+    method public inline operator androidx.ui.unit.IntPx rem(int other);
+    method public operator androidx.ui.unit.IntPx times(float other);
+    method public operator androidx.ui.unit.IntPx times(double other);
+    method public operator androidx.ui.unit.IntPx times(int other);
+    method public operator androidx.ui.unit.IntPx unaryMinus();
+    field public static final androidx.ui.unit.IntPx.Companion! Companion;
+  }
+
+  public static final class IntPx.Companion {
+    method public androidx.ui.unit.IntPx getInfinity();
+    method public androidx.ui.unit.IntPx getZero();
+    property public final androidx.ui.unit.IntPx Infinity;
+    property public final androidx.ui.unit.IntPx Zero;
+  }
+
+  public final class IntPxBounds {
+    ctor public IntPxBounds(androidx.ui.unit.IntPx left, androidx.ui.unit.IntPx top, androidx.ui.unit.IntPx right, androidx.ui.unit.IntPx bottom);
+    method public androidx.ui.unit.IntPx component1();
+    method public androidx.ui.unit.IntPx component2();
+    method public androidx.ui.unit.IntPx component3();
+    method public androidx.ui.unit.IntPx component4();
+    method public androidx.ui.unit.IntPxBounds copy(androidx.ui.unit.IntPx left, androidx.ui.unit.IntPx top, androidx.ui.unit.IntPx right, androidx.ui.unit.IntPx bottom);
+    method public androidx.ui.unit.IntPx getBottom();
+    method public androidx.ui.unit.IntPx getLeft();
+    method public androidx.ui.unit.IntPx getRight();
+    method public androidx.ui.unit.IntPx getTop();
+  }
+
+  public final class IntPxKt {
+    method public static inline androidx.ui.unit.IntPxPosition IntPxPosition(androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
+    method public static inline androidx.ui.unit.IntPxSize IntPxSize(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height);
+    method public static inline androidx.ui.unit.PxPosition PxPosition(androidx.ui.unit.IntPx x, androidx.ui.unit.IntPx y);
+    method public static inline androidx.ui.unit.PxSize PxSize(androidx.ui.unit.IntPx width, androidx.ui.unit.IntPx height);
+    method public static androidx.ui.unit.IntPxPosition center(androidx.ui.unit.IntPxSize);
+    method public static inline androidx.ui.unit.IntPx coerceAtLeast(androidx.ui.unit.IntPx, androidx.ui.unit.IntPx minimumValue);
+    method public static inline androidx.ui.unit.IntPx coerceAtMost(androidx.ui.unit.IntPx, androidx.ui.unit.IntPx maximumValue);
+    method public static inline androidx.ui.unit.IntPx coerceIn(androidx.ui.unit.IntPx, androidx.ui.unit.IntPx minimumValue, androidx.ui.unit.IntPx maximumValue);
+    method public static inline androidx.ui.unit.IntPx getHeight(androidx.ui.unit.IntPxBounds);
+    method public static inline androidx.ui.unit.IntPx getIpx(int);
+    method public static inline androidx.ui.unit.IntPx getWidth(androidx.ui.unit.IntPxBounds);
+    method public static inline boolean isFinite(androidx.ui.unit.IntPx);
+    method public static androidx.ui.unit.IntPx lerp(androidx.ui.unit.IntPx start, androidx.ui.unit.IntPx stop, float fraction);
+    method public static androidx.ui.unit.IntPxPosition lerp(androidx.ui.unit.IntPxPosition start, androidx.ui.unit.IntPxPosition stop, float fraction);
+    method public static inline androidx.ui.unit.IntPx max(androidx.ui.unit.IntPx a, androidx.ui.unit.IntPx b);
+    method public static inline androidx.ui.unit.IntPx min(androidx.ui.unit.IntPx a, androidx.ui.unit.IntPx b);
+    method public static inline androidx.ui.unit.IntPx round(androidx.ui.unit.Px);
+    method public static inline operator androidx.ui.unit.IntPx times(float, androidx.ui.unit.IntPx other);
+    method public static inline operator androidx.ui.unit.IntPx times(double, androidx.ui.unit.IntPx other);
+    method public static inline operator androidx.ui.unit.IntPx times(int, androidx.ui.unit.IntPx other);
+    method public static inline operator androidx.ui.unit.IntPxSize times(int, androidx.ui.unit.IntPxSize size);
+    method public static inline androidx.ui.unit.Px toPx(androidx.ui.unit.IntPx);
+    method public static inline androidx.ui.unit.PxPosition toPxPosition(androidx.ui.unit.IntPxPosition);
+    method public static inline androidx.ui.unit.PxSize toPxSize(androidx.ui.unit.IntPxSize);
+    method public static inline androidx.ui.unit.IntPxSize toSize(androidx.ui.unit.IntPxBounds);
+  }
+
+  public final class IntPxPosition {
+    method public androidx.ui.unit.IntPxPosition copy(long value);
+    method public inline androidx.ui.unit.IntPx getX();
+    method public inline androidx.ui.unit.IntPx getY();
+    method public inline operator androidx.ui.unit.IntPxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.IntPxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.IntPxPosition unaryMinus();
+    property public final inline androidx.ui.unit.IntPx x;
+    property public final inline androidx.ui.unit.IntPx y;
+    field public static final androidx.ui.unit.IntPxPosition.Companion! Companion;
+  }
+
+  public static final class IntPxPosition.Companion {
+    method public androidx.ui.unit.IntPxPosition getOrigin();
+    property public final androidx.ui.unit.IntPxPosition Origin;
+  }
+
+  public final class IntPxSize {
+    method public androidx.ui.unit.IntPxSize copy(long value);
+    method public inline operator androidx.ui.unit.IntPxSize div(int other);
+    method public inline androidx.ui.unit.IntPx getHeight();
+    method public inline androidx.ui.unit.IntPx getWidth();
+    method public inline operator androidx.ui.unit.IntPxSize times(int other);
+    property public final inline androidx.ui.unit.IntPx height;
+    property public final inline androidx.ui.unit.IntPx width;
+  }
+
+  public final inline class Position {
+    ctor public Position();
+    method public static long constructor-impl(internal long value);
+    method public static boolean equals-impl(long p, Object? p1);
+    method public static boolean equals-impl0(long p1, long p2);
+    method public static androidx.ui.unit.Dp getX-impl(long $this);
+    method public static androidx.ui.unit.Dp getY-impl(long $this);
+    method public static int hashCode-impl(long p);
+    method public static inline operator long minus-T8eBu-w(long $this, long other);
+    method public static inline operator long plus-T8eBu-w(long $this, long other);
+    method public static String toString-impl(long $this);
+  }
+
+  public final class Px implements java.lang.Comparable<androidx.ui.unit.Px> {
+    ctor public Px(float value);
+    method public operator int compareTo(androidx.ui.unit.Px other);
+    method public inline operator int compareTo(androidx.ui.unit.IntPx other);
+    method public float component1();
+    method public androidx.ui.unit.Px copy(float value);
+    method public inline operator androidx.ui.unit.Px div(float other);
+    method public inline operator androidx.ui.unit.Px div(int other);
+    method public inline operator float div(androidx.ui.unit.Px other);
+    method public inline operator float div-RjPF0Mw(float other);
+    method public float getValue();
+    method public inline operator androidx.ui.unit.Px minus(androidx.ui.unit.Px other);
+    method public inline operator androidx.ui.unit.Px minus(androidx.ui.unit.IntPx other);
+    method public inline operator androidx.ui.unit.Px plus(androidx.ui.unit.Px other);
+    method public inline operator androidx.ui.unit.Px plus(androidx.ui.unit.IntPx other);
+    method public inline operator androidx.ui.unit.Px times(float other);
+    method public inline operator androidx.ui.unit.Px times(int other);
+    method public inline operator float times(androidx.ui.unit.Px other);
+    method public inline operator float times-RjPF0Mw(float other);
+    method public inline operator androidx.ui.unit.Px unaryMinus();
+    field public static final androidx.ui.unit.Px.Companion! Companion;
+  }
+
+  public static final class Px.Companion {
+    method public androidx.ui.unit.Px getInfinity();
+    method public androidx.ui.unit.Px getZero();
+    property public final androidx.ui.unit.Px Infinity;
+    property public final androidx.ui.unit.Px Zero;
+  }
+
+  public final class PxBounds {
+    ctor public PxBounds(androidx.ui.unit.Px left, androidx.ui.unit.Px top, androidx.ui.unit.Px right, androidx.ui.unit.Px bottom);
+    method public androidx.ui.unit.Px component1();
+    method public androidx.ui.unit.Px component2();
+    method public androidx.ui.unit.Px component3();
+    method public androidx.ui.unit.Px component4();
+    method public androidx.ui.unit.PxBounds copy(androidx.ui.unit.Px left, androidx.ui.unit.Px top, androidx.ui.unit.Px right, androidx.ui.unit.Px bottom);
+    method public androidx.ui.unit.Px getBottom();
+    method public androidx.ui.unit.Px getLeft();
+    method public androidx.ui.unit.Px getRight();
+    method public androidx.ui.unit.Px getTop();
+  }
+
+  public final inline class PxCubed implements java.lang.Comparable<androidx.ui.unit.PxCubed> {
+    ctor public PxCubed();
+    method public operator int compareTo-bji3ab4(float p);
+    method public static operator int compareTo-bji3ab4(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator androidx.ui.unit.Px div-RjPF0Mw(float $this, float other);
+    method public static inline operator float div-bji3ab4(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator float div-impl(float $this, androidx.ui.unit.Px other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-bji3ab4(float $this, float dimension);
+    method public static inline operator float plus-bji3ab4(float $this, float dimension);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final inline class PxInverse implements java.lang.Comparable<androidx.ui.unit.PxInverse> {
+    ctor public PxInverse();
+    method public operator int compareTo-KGV0gLo(float p);
+    method public static operator int compareTo-KGV0gLo(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-KGV0gLo(float $this, float dimension);
+    method public static inline operator float plus-KGV0gLo(float $this, float dimension);
+    method public static inline operator androidx.ui.unit.Px times-RjPF0Mw(float $this, float other);
+    method public static inline operator float times-bji3ab4(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Px other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final class PxKt {
+    method public static inline androidx.ui.unit.PxPosition PxPosition(androidx.ui.unit.Px x, androidx.ui.unit.Px y);
+    method public static inline androidx.ui.unit.PxSize PxSize(androidx.ui.unit.Px width, androidx.ui.unit.Px height);
+    method public static androidx.ui.unit.PxPosition center(androidx.ui.unit.PxSize);
+    method public static inline androidx.ui.unit.Px coerceAtLeast(androidx.ui.unit.Px, androidx.ui.unit.Px minimumValue);
+    method public static inline androidx.ui.unit.Px coerceAtMost(androidx.ui.unit.Px, androidx.ui.unit.Px maximumValue);
+    method public static inline androidx.ui.unit.Px coerceIn(androidx.ui.unit.Px, androidx.ui.unit.Px minimumValue, androidx.ui.unit.Px maximumValue);
+    method public static inline operator float div(float, androidx.ui.unit.Px other);
+    method public static inline operator float div(double, androidx.ui.unit.Px other);
+    method public static inline operator float div(int, androidx.ui.unit.Px other);
+    method public static androidx.ui.unit.Px getDistance(androidx.ui.unit.PxPosition);
+    method public static inline androidx.ui.unit.Px getHeight(androidx.ui.unit.PxBounds);
+    method public static androidx.ui.unit.Px! getMinDimension(androidx.ui.unit.PxSize);
+    method public static inline androidx.ui.unit.Px getPx(int);
+    method public static inline androidx.ui.unit.Px getPx(double);
+    method public static inline androidx.ui.unit.Px getPx(float);
+    method public static inline androidx.ui.unit.Px getWidth(androidx.ui.unit.PxBounds);
+    method public static androidx.ui.unit.Px lerp(androidx.ui.unit.Px start, androidx.ui.unit.Px stop, float fraction);
+    method public static androidx.ui.unit.PxPosition lerp(androidx.ui.unit.PxPosition start, androidx.ui.unit.PxPosition stop, float fraction);
+    method public static inline androidx.ui.unit.Px max(androidx.ui.unit.Px a, androidx.ui.unit.Px b);
+    method public static inline androidx.ui.unit.Px min(androidx.ui.unit.Px a, androidx.ui.unit.Px b);
+    method public static inline androidx.ui.unit.IntPxPosition round(androidx.ui.unit.PxPosition);
+    method public static inline operator androidx.ui.unit.Px times(float, androidx.ui.unit.Px other);
+    method public static inline operator androidx.ui.unit.Px times(double, androidx.ui.unit.Px other);
+    method public static inline operator androidx.ui.unit.Px times(int, androidx.ui.unit.Px other);
+    method public static inline operator androidx.ui.unit.PxSize times(int, androidx.ui.unit.PxSize size);
+    method public static inline operator androidx.ui.unit.PxSize times(float, androidx.ui.unit.PxSize size);
+    method public static inline operator androidx.ui.unit.PxSize times(double, androidx.ui.unit.PxSize size);
+    method public static androidx.ui.unit.PxBounds toBounds(androidx.ui.unit.PxSize);
+    method public static inline androidx.ui.geometry.Offset toOffset(androidx.ui.unit.PxPosition);
+    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxBounds);
+    method public static androidx.ui.geometry.Rect toRect(androidx.ui.unit.PxSize);
+    method public static androidx.ui.unit.PxSize toSize(androidx.ui.unit.PxBounds);
+  }
+
+  public final class PxPosition {
+    method public androidx.ui.unit.PxPosition copy(long value);
+    method public inline androidx.ui.unit.Px getX();
+    method public inline androidx.ui.unit.Px getY();
+    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.PxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition minus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.PxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition plus(androidx.ui.unit.IntPxPosition other);
+    method public inline operator androidx.ui.unit.PxPosition unaryMinus();
+    property public final inline androidx.ui.unit.Px x;
+    property public final inline androidx.ui.unit.Px y;
+    field public static final androidx.ui.unit.PxPosition.Companion! Companion;
+  }
+
+  public static final class PxPosition.Companion {
+    method public androidx.ui.unit.PxPosition getOrigin();
+    property public final androidx.ui.unit.PxPosition Origin;
+  }
+
+  public final class PxSize {
+    method public androidx.ui.unit.PxSize copy(long value);
+    method public inline operator androidx.ui.unit.PxSize div(int other);
+    method public inline operator androidx.ui.unit.PxSize div(float other);
+    method public inline operator androidx.ui.unit.PxSize div(double other);
+    method public inline androidx.ui.unit.Px getHeight();
+    method public inline androidx.ui.unit.Px getWidth();
+    method public inline operator androidx.ui.unit.PxSize times(int other);
+    method public inline operator androidx.ui.unit.PxSize times(float other);
+    method public inline operator androidx.ui.unit.PxSize times(double other);
+    property public final inline androidx.ui.unit.Px height;
+    property public final inline androidx.ui.unit.Px width;
+    field public static final androidx.ui.unit.PxSize.Companion! Companion;
+  }
+
+  public static final class PxSize.Companion {
+    method public androidx.ui.unit.PxSize getZero();
+    property public final androidx.ui.unit.PxSize Zero;
+  }
+
+  public final inline class PxSquared implements java.lang.Comparable<androidx.ui.unit.PxSquared> {
+    ctor public PxSquared();
+    method public operator int compareTo-RjPF0Mw(float p);
+    method public static operator int compareTo-RjPF0Mw(float $this, float other);
+    method public static float constructor-impl(float value);
+    method public static inline operator float div-RjPF0Mw(float $this, float other);
+    method public static inline operator float div-bji3ab4(float $this, float other);
+    method public static inline operator float div-impl(float $this, float other);
+    method public static inline operator androidx.ui.unit.Px div-impl(float $this, androidx.ui.unit.Px other);
+    method public static boolean equals-impl(float p, Object? p1);
+    method public static boolean equals-impl0(float p1, float p2);
+    method public float getValue();
+    method public static int hashCode-impl(float p);
+    method public static inline operator float minus-RjPF0Mw(float $this, float other);
+    method public static inline operator float plus-RjPF0Mw(float $this, float other);
+    method public static inline operator float times-impl(float $this, float other);
+    method public static inline operator float times-impl(float $this, androidx.ui.unit.Px other);
+    method public static String toString-impl(float $this);
+  }
+
+  public final inline class Size {
+    ctor public Size();
+    method public static long constructor-impl(internal long value);
+    method public static inline operator long div-impl(long $this, int other);
+    method public static inline operator long div-impl(long $this, float other);
+    method public static inline operator long div-impl(long $this, double other);
+    method public static boolean equals-impl(long p, Object? p1);
+    method public static boolean equals-impl0(long p1, long p2);
+    method public static androidx.ui.unit.Dp getHeight-impl(long $this);
+    method public static androidx.ui.unit.Dp getWidth-impl(long $this);
+    method public static int hashCode-impl(long p);
+    method public static inline operator long times-impl(long $this, int other);
+    method public static inline operator long times-impl(long $this, float other);
+    method public static inline operator long times-impl(long $this, double other);
+    method public static String toString-impl(long $this);
+  }
+
+  public final class TextUnit {
+    ctor public TextUnit(long packedValue);
+    method public inline operator int compareTo(androidx.ui.unit.TextUnit other);
+    method public long component1();
+    method public androidx.ui.unit.TextUnit copy(long packedValue);
+    method public inline operator androidx.ui.unit.TextUnit div(float other);
+    method public inline operator androidx.ui.unit.TextUnit div(double other);
+    method public inline operator androidx.ui.unit.TextUnit div(int other);
+    method public inline operator float div(androidx.ui.unit.TextUnit other);
+    method public long getPackedValue();
+    method public androidx.ui.unit.TextUnitType getType();
+    method public float getValue();
+    method public boolean isEm();
+    method public boolean isInherit();
+    method public boolean isSp();
+    method public inline operator androidx.ui.unit.TextUnit minus(androidx.ui.unit.TextUnit other);
+    method public inline operator androidx.ui.unit.TextUnit plus(androidx.ui.unit.TextUnit other);
+    method public inline operator androidx.ui.unit.TextUnit times(float other);
+    method public inline operator androidx.ui.unit.TextUnit times(double other);
+    method public inline operator androidx.ui.unit.TextUnit times(int other);
+    method public inline operator androidx.ui.unit.TextUnit unaryMinus();
+    property public final boolean isEm;
+    property public final boolean isInherit;
+    property public final boolean isSp;
+    property public final androidx.ui.unit.TextUnitType type;
+    property public final float value;
+    field public static final androidx.ui.unit.TextUnit.Companion! Companion;
+  }
+
+  public static final class TextUnit.Companion {
+    method public androidx.ui.unit.TextUnit Em(int value);
+    method public androidx.ui.unit.TextUnit Em(float value);
+    method public androidx.ui.unit.TextUnit Em(double value);
+    method public androidx.ui.unit.TextUnit Sp(int value);
+    method public androidx.ui.unit.TextUnit Sp(float value);
+    method public androidx.ui.unit.TextUnit Sp(double value);
+    method public androidx.ui.unit.TextUnit getInherit();
+    property public final androidx.ui.unit.TextUnit Inherit;
+  }
+
+  public final class TextUnitKt {
+    method public static inline androidx.ui.unit.TextUnit coerceAtLeast(androidx.ui.unit.TextUnit, androidx.ui.unit.TextUnit minimumValue);
+    method public static inline androidx.ui.unit.TextUnit coerceAtMost(androidx.ui.unit.TextUnit, androidx.ui.unit.TextUnit maximumValue);
+    method public static inline androidx.ui.unit.TextUnit coerceIn(androidx.ui.unit.TextUnit, androidx.ui.unit.TextUnit minimumValue, androidx.ui.unit.TextUnit maximumValue);
+    method public static androidx.ui.unit.TextUnit getEm(float);
+    method public static androidx.ui.unit.TextUnit getEm(double);
+    method public static androidx.ui.unit.TextUnit getEm(int);
+    method public static androidx.ui.unit.TextUnit getSp(float);
+    method public static androidx.ui.unit.TextUnit getSp(double);
+    method public static androidx.ui.unit.TextUnit getSp(int);
+    method public static androidx.ui.unit.TextUnit lerp(androidx.ui.unit.TextUnit a, androidx.ui.unit.TextUnit b, float t);
+    method public static inline androidx.ui.unit.TextUnit max(androidx.ui.unit.TextUnit a, androidx.ui.unit.TextUnit b);
+    method public static inline androidx.ui.unit.TextUnit min(androidx.ui.unit.TextUnit a, androidx.ui.unit.TextUnit b);
+    method public static inline operator androidx.ui.unit.TextUnit times(float, androidx.ui.unit.TextUnit other);
+    method public static inline operator androidx.ui.unit.TextUnit times(double, androidx.ui.unit.TextUnit other);
+    method public static inline operator androidx.ui.unit.TextUnit times(int, androidx.ui.unit.TextUnit other);
+  }
+
+  public enum TextUnitType {
+    enum_constant public static final androidx.ui.unit.TextUnitType Em;
+    enum_constant public static final androidx.ui.unit.TextUnitType Inherit;
+    enum_constant public static final androidx.ui.unit.TextUnitType Sp;
+  }
+
+  public final class Uptime implements java.lang.Comparable<androidx.ui.unit.Uptime> {
+    ctor public Uptime(long nanoseconds);
+    method public int compareTo(androidx.ui.unit.Uptime other);
+    method public long component1();
+    method public androidx.ui.unit.Uptime copy(long nanoseconds);
+    method public long getNanoseconds();
+    method public operator androidx.ui.unit.Uptime minus(androidx.ui.unit.Duration duration);
+    method public operator androidx.ui.unit.Duration minus(androidx.ui.unit.Uptime other);
+    method public operator androidx.ui.unit.Uptime plus(androidx.ui.unit.Duration duration);
+    field public static final androidx.ui.unit.Uptime.Companion! Companion;
+  }
+
+  public static final class Uptime.Companion {
+    method public androidx.ui.unit.Uptime getBoot();
+    property public final androidx.ui.unit.Uptime Boot;
+  }
+
+  public final class UptimeKt {
+    method public static operator androidx.ui.unit.Uptime plus(androidx.ui.unit.Duration, androidx.ui.unit.Uptime uptime);
+  }
+
+  public final class Velocity {
+    ctor public Velocity(androidx.ui.unit.PxPosition pixelsPerSecond);
+    method public androidx.ui.unit.PxPosition component1();
+    method public androidx.ui.unit.Velocity copy(androidx.ui.unit.PxPosition pixelsPerSecond);
+    method public androidx.ui.unit.PxPosition getPixelsPerSecond();
+    method public operator androidx.ui.unit.Velocity unaryMinus();
+    field public static final androidx.ui.unit.Velocity.Companion! Companion;
+  }
+
+  public static final class Velocity.Companion {
+    method public androidx.ui.unit.Velocity getZero();
+    property public final androidx.ui.unit.Velocity Zero;
+  }
+
+  public final class VelocityKt {
+    method public static operator androidx.ui.unit.Velocity minus(androidx.ui.unit.Velocity, androidx.ui.unit.Velocity other);
+    method public static operator androidx.ui.unit.Velocity plus(androidx.ui.unit.Velocity, androidx.ui.unit.Velocity other);
+  }
+
+}
+
diff --git a/ui/ui-unit/build.gradle b/ui/ui-unit/build.gradle
new file mode 100644
index 0000000..cd5d933
--- /dev/null
+++ b/ui/ui-unit/build.gradle
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import androidx.build.LibraryGroups
+import androidx.build.LibraryVersions
+import androidx.build.Publish
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+
+import static androidx.build.dependencies.DependenciesKt.*
+
+plugins {
+    id("AndroidXPlugin")
+    id("com.android.library")
+    id("AndroidXUiPlugin")
+    id("org.jetbrains.kotlin.android")
+}
+
+dependencies {
+    implementation(KOTLIN_STDLIB)
+
+    api "androidx.annotation:annotation:1.1.0"
+    implementation project(":ui:ui-util")
+    api project(":ui:ui-geometry")
+
+    implementation project(":compose:compose-runtime")
+
+    testImplementation(ANDROIDX_TEST_RULES)
+    testImplementation(ANDROIDX_TEST_RUNNER)
+    testImplementation(JUNIT)
+    testImplementation(TRUTH)
+
+    androidTestImplementation(ANDROIDX_TEST_RULES)
+    androidTestImplementation(ANDROIDX_TEST_RUNNER)
+    androidTestImplementation(ESPRESSO_CORE)
+    androidTestImplementation(JUNIT)
+}
+
+androidx {
+    name = "AndroidX UI Unit"
+    publish = Publish.SNAPSHOT_AND_RELEASE
+    mavenVersion = LibraryVersions.UI
+    mavenGroup = LibraryGroups.UI
+    inceptionYear = "2020"
+    description = "AndroidX UI classes for simple units."
+}
+
+tasks.withType(KotlinCompile).configureEach {
+    kotlinOptions {
+        freeCompilerArgs += ["-Xuse-experimental=kotlin.Experimental", "-XXLanguage:+InlineClasses"]
+        useIR = true
+    }
+}
diff --git a/ui/ui-unit/integration-tests/samples/build.gradle b/ui/ui-unit/integration-tests/samples/build.gradle
new file mode 100644
index 0000000..9b97a89
--- /dev/null
+++ b/ui/ui-unit/integration-tests/samples/build.gradle
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+
+import static androidx.build.dependencies.DependenciesKt.*
+
+plugins {
+    id("AndroidXPlugin")
+    id("com.android.library")
+    id("AndroidXUiPlugin")
+    id("org.jetbrains.kotlin.android")
+}
+
+dependencies {
+    kotlinPlugin project(path: ":compose:compose-compiler")
+
+    implementation(KOTLIN_STDLIB)
+
+    implementation project(":annotation:annotation-sampled")
+
+    implementation project(":compose:compose-runtime")
+    implementation project(":ui:ui-unit")
+}
+
+android {
+    tasks.withType(KotlinCompile).configureEach {
+        kotlinOptions {
+            useIR = true
+        }
+    }
+}
diff --git a/ui/ui-unit/integration-tests/samples/src/main/AndroidManifest.xml b/ui/ui-unit/integration-tests/samples/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..b5a9d18
--- /dev/null
+++ b/ui/ui-unit/integration-tests/samples/src/main/AndroidManifest.xml
@@ -0,0 +1,17 @@
+<!--
+  Copyright 2020 The Android Open Source Project
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<manifest package="androidx.ui.unit.samples" />
diff --git a/ui/ui-core/integration-tests/samples/src/main/java/androidx/ui/core/samples/DensitySample.kt b/ui/ui-unit/integration-tests/samples/src/main/java/androidx/ui/unit/samples/DensitySample.kt
similarity index 96%
copy from ui/ui-core/integration-tests/samples/src/main/java/androidx/ui/core/samples/DensitySample.kt
copy to ui/ui-unit/integration-tests/samples/src/main/java/androidx/ui/unit/samples/DensitySample.kt
index 48e98e3..d2a0e7d 100644
--- a/ui/ui-core/integration-tests/samples/src/main/java/androidx/ui/core/samples/DensitySample.kt
+++ b/ui/ui-unit/integration-tests/samples/src/main/java/androidx/ui/unit/samples/DensitySample.kt
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.ui.core.samples
+package androidx.ui.unit.samples
 
 import androidx.annotation.Sampled
 import androidx.compose.Composable
diff --git a/ui/ui-unit/src/androidTest/AndroidManifest.xml b/ui/ui-unit/src/androidTest/AndroidManifest.xml
new file mode 100644
index 0000000..e661349
--- /dev/null
+++ b/ui/ui-unit/src/androidTest/AndroidManifest.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<manifest package="androidx.ui.core" xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <application>
+        <activity android:name="androidx.ui.unit.DpDeviceTest$Companion$TestActivity"
+            android:theme="@android:style/Theme.Material.NoActionBar.Fullscreen"/>
+        <activity android:name="androidx.ui.unit.SpDeviceTest$Companion$TestActivity"
+            android:theme="@android:style/Theme.Material.NoActionBar.Fullscreen"/>
+    </application>
+</manifest>
diff --git a/ui/ui-core/src/androidTest/java/androidx/ui/core/DpDeviceTest.kt b/ui/ui-unit/src/androidTest/java/androidx/ui/unit/DpDeviceTest.kt
similarity index 97%
rename from ui/ui-core/src/androidTest/java/androidx/ui/core/DpDeviceTest.kt
rename to ui/ui-unit/src/androidTest/java/androidx/ui/unit/DpDeviceTest.kt
index a6c1037..5cb44e6 100644
--- a/ui/ui-core/src/androidTest/java/androidx/ui/core/DpDeviceTest.kt
+++ b/ui/ui-unit/src/androidTest/java/androidx/ui/unit/DpDeviceTest.kt
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.ui.core
+package androidx.ui.unit
 
 import android.app.Activity
 import android.util.TypedValue
diff --git a/ui/ui-core/src/androidTest/java/androidx/ui/core/SpDeviceTest.kt b/ui/ui-unit/src/androidTest/java/androidx/ui/unit/SpDeviceTest.kt
similarity index 98%
rename from ui/ui-core/src/androidTest/java/androidx/ui/core/SpDeviceTest.kt
rename to ui/ui-unit/src/androidTest/java/androidx/ui/unit/SpDeviceTest.kt
index 732720d..1ba9d16 100644
--- a/ui/ui-core/src/androidTest/java/androidx/ui/core/SpDeviceTest.kt
+++ b/ui/ui-unit/src/androidTest/java/androidx/ui/unit/SpDeviceTest.kt
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.ui.core
+package androidx.ui.unit
 
 import android.app.Activity
 import android.util.TypedValue
diff --git a/ui/ui-unit/src/main/AndroidManifest.xml b/ui/ui-unit/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..8778f9b
--- /dev/null
+++ b/ui/ui-unit/src/main/AndroidManifest.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2020 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<manifest package="androidx.ui.unit" />
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/Density.kt b/ui/ui-unit/src/main/java/androidx/ui/unit/Density.kt
similarity index 95%
rename from ui/ui-core/src/main/java/androidx/ui/core/Density.kt
rename to ui/ui-unit/src/main/java/androidx/ui/unit/Density.kt
index 9283169..86cf078 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/Density.kt
+++ b/ui/ui-unit/src/main/java/androidx/ui/unit/Density.kt
@@ -14,11 +14,10 @@
  * limitations under the License.
  */
 
-package androidx.ui.core
+package androidx.ui.unit
 
 import android.content.Context
-import androidx.ui.engine.geometry.Rect
-import androidx.ui.graphics.Canvas
+import androidx.ui.geometry.Rect
 
 /**
  * A density of the screen. Used for convert [Dp] to pixels.
@@ -39,7 +38,7 @@
 /**
  * If you have a [Density] object and you want to perform some conversions use this.
  *
- * @sample androidx.ui.core.samples.WithDensitySample
+ * @sample androidx.ui.unit.samples.WithDensitySample
  */
 inline fun <R> withDensity(density: Density, block: DensityScope.() -> R) =
     DensityScope(density).block()
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/Dp.kt b/ui/ui-unit/src/main/java/androidx/ui/unit/Dp.kt
similarity index 98%
rename from ui/ui-core/src/main/java/androidx/ui/core/Dp.kt
rename to ui/ui-unit/src/main/java/androidx/ui/unit/Dp.kt
index 225e696..8b23869 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/Dp.kt
+++ b/ui/ui-unit/src/main/java/androidx/ui/unit/Dp.kt
@@ -15,11 +15,14 @@
  */
 @file:Suppress("NOTHING_TO_INLINE")
 
-package androidx.ui.core
+package androidx.ui.unit
 
 import androidx.compose.Immutable
-import androidx.ui.core.Dp.Companion.Hairline
-import androidx.ui.lerp
+import androidx.ui.unit.Dp.Companion.Hairline
+import androidx.ui.util.lerp
+import androidx.ui.util.packFloats
+import androidx.ui.util.unpackFloat1
+import androidx.ui.util.unpackFloat2
 import kotlin.math.max
 import kotlin.math.min
 import kotlin.math.sqrt
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/Duration.kt b/ui/ui-unit/src/main/java/androidx/ui/unit/Duration.kt
similarity index 99%
rename from ui/ui-core/src/main/java/androidx/ui/core/Duration.kt
rename to ui/ui-unit/src/main/java/androidx/ui/unit/Duration.kt
index 4095c72..6a4e82c 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/Duration.kt
+++ b/ui/ui-unit/src/main/java/androidx/ui/unit/Duration.kt
@@ -17,7 +17,7 @@
 @file:JvmName("Durations")
 @file:Suppress("NOTHING_TO_INLINE")
 
-package androidx.ui.core
+package androidx.ui.unit
 
 /*
  * The following unit conversion factors are required to be public due to their use
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/IntPx.kt b/ui/ui-unit/src/main/java/androidx/ui/unit/IntPx.kt
similarity index 97%
rename from ui/ui-core/src/main/java/androidx/ui/core/IntPx.kt
rename to ui/ui-unit/src/main/java/androidx/ui/unit/IntPx.kt
index 3214b21..d145e85 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/IntPx.kt
+++ b/ui/ui-unit/src/main/java/androidx/ui/unit/IntPx.kt
@@ -15,11 +15,14 @@
  */
 @file:Suppress("NOTHING_TO_INLINE")
 
-package androidx.ui.core
+package androidx.ui.unit
 
 import androidx.compose.Immutable
-import androidx.ui.core.IntPx.Companion.Infinity
-import androidx.ui.lerp
+import androidx.ui.unit.IntPx.Companion.Infinity
+import androidx.ui.util.lerp
+import androidx.ui.util.packInts
+import androidx.ui.util.unpackInt1
+import androidx.ui.util.unpackInt2
 import kotlin.math.max
 import kotlin.math.min
 import kotlin.math.roundToInt
@@ -112,7 +115,7 @@
     companion object {
         /**
          * An IntPx that indicates that there is no bound in the dimension. This is
-         * commonly used in [Constraints.maxHeight] and [Constraints.maxWidth] to indicate
+         * commonly used in `Constraints.maxHeight` and `Constraints.maxWidth` to indicate
          * that the particular dimension is not regulated and measurement should choose
          * the best option without any constraint.
          */
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/Px.kt b/ui/ui-unit/src/main/java/androidx/ui/unit/Px.kt
similarity index 98%
rename from ui/ui-core/src/main/java/androidx/ui/core/Px.kt
rename to ui/ui-unit/src/main/java/androidx/ui/unit/Px.kt
index 75d5c0a..f620a3b 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/Px.kt
+++ b/ui/ui-unit/src/main/java/androidx/ui/unit/Px.kt
@@ -15,12 +15,15 @@
  */
 @file:Suppress("NOTHING_TO_INLINE")
 
-package androidx.ui.core
+package androidx.ui.unit
 
 import androidx.compose.Immutable
-import androidx.ui.engine.geometry.Offset
-import androidx.ui.engine.geometry.Rect
-import androidx.ui.lerp
+import androidx.ui.geometry.Offset
+import androidx.ui.geometry.Rect
+import androidx.ui.util.lerp
+import androidx.ui.util.packFloats
+import androidx.ui.util.unpackFloat1
+import androidx.ui.util.unpackFloat2
 import kotlin.math.max
 import kotlin.math.min
 import kotlin.math.sqrt
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/TextUnit.kt b/ui/ui-unit/src/main/java/androidx/ui/unit/TextUnit.kt
similarity index 99%
rename from ui/ui-core/src/main/java/androidx/ui/core/TextUnit.kt
rename to ui/ui-unit/src/main/java/androidx/ui/unit/TextUnit.kt
index 22bd069..a0a86a8 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/TextUnit.kt
+++ b/ui/ui-unit/src/main/java/androidx/ui/unit/TextUnit.kt
@@ -15,10 +15,10 @@
  */
 @file:Suppress("NOTHING_TO_INLINE")
 
-package androidx.ui.core
+package androidx.ui.unit
 
 import androidx.compose.Immutable
-import androidx.ui.lerp
+import androidx.ui.util.lerp
 
 /**
  * We encode the unit information and float value into the single 64-bit long integer.
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/Uptime.kt b/ui/ui-unit/src/main/java/androidx/ui/unit/Uptime.kt
similarity index 98%
rename from ui/ui-core/src/main/java/androidx/ui/core/Uptime.kt
rename to ui/ui-unit/src/main/java/androidx/ui/unit/Uptime.kt
index ba720fc..3013518 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/Uptime.kt
+++ b/ui/ui-unit/src/main/java/androidx/ui/unit/Uptime.kt
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.ui.core
+package androidx.ui.unit
 
 import androidx.compose.Immutable
 
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/Velocity.kt b/ui/ui-unit/src/main/java/androidx/ui/unit/Velocity.kt
similarity index 97%
rename from ui/ui-core/src/main/java/androidx/ui/core/Velocity.kt
rename to ui/ui-unit/src/main/java/androidx/ui/unit/Velocity.kt
index 9be78c6b3..2348562 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/Velocity.kt
+++ b/ui/ui-unit/src/main/java/androidx/ui/unit/Velocity.kt
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.ui.core
+package androidx.ui.unit
 
 /** A velocity in two dimensions. */
 data class Velocity(
diff --git a/ui/ui-core/src/test/java/androidx/ui/core/DpTest.kt b/ui/ui-unit/src/test/java/androidx/ui/unit/DpTest.kt
similarity index 99%
rename from ui/ui-core/src/test/java/androidx/ui/core/DpTest.kt
rename to ui/ui-unit/src/test/java/androidx/ui/unit/DpTest.kt
index 0267200..ea0f3bc 100644
--- a/ui/ui-core/src/test/java/androidx/ui/core/DpTest.kt
+++ b/ui/ui-unit/src/test/java/androidx/ui/unit/DpTest.kt
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.ui.core
+package androidx.ui.unit
 
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertTrue
diff --git a/ui/ui-core/src/test/java/androidx/ui/core/DurationTest.kt b/ui/ui-unit/src/test/java/androidx/ui/unit/DurationTest.kt
similarity index 97%
rename from ui/ui-core/src/test/java/androidx/ui/core/DurationTest.kt
rename to ui/ui-unit/src/test/java/androidx/ui/unit/DurationTest.kt
index 86d4422..7d0e5e5 100644
--- a/ui/ui-core/src/test/java/androidx/ui/core/DurationTest.kt
+++ b/ui/ui-unit/src/test/java/androidx/ui/unit/DurationTest.kt
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.ui.core
+package androidx.ui.unit
 
 import org.junit.Assert.assertEquals
 import org.junit.Test
diff --git a/ui/ui-core/src/test/java/androidx/ui/core/IntPxTest.kt b/ui/ui-unit/src/test/java/androidx/ui/unit/IntPxTest.kt
similarity index 99%
rename from ui/ui-core/src/test/java/androidx/ui/core/IntPxTest.kt
rename to ui/ui-unit/src/test/java/androidx/ui/unit/IntPxTest.kt
index 0073c93..aeb48fe 100644
--- a/ui/ui-core/src/test/java/androidx/ui/core/IntPxTest.kt
+++ b/ui/ui-unit/src/test/java/androidx/ui/unit/IntPxTest.kt
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.ui.core
+package androidx.ui.unit
 
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertFalse
diff --git a/ui/ui-core/src/test/java/androidx/ui/core/PxTest.kt b/ui/ui-unit/src/test/java/androidx/ui/unit/PxTest.kt
similarity index 96%
rename from ui/ui-core/src/test/java/androidx/ui/core/PxTest.kt
rename to ui/ui-unit/src/test/java/androidx/ui/unit/PxTest.kt
index fe773b6..19efa28 100644
--- a/ui/ui-core/src/test/java/androidx/ui/core/PxTest.kt
+++ b/ui/ui-unit/src/test/java/androidx/ui/unit/PxTest.kt
@@ -14,9 +14,8 @@
  * limitations under the License.
  */
 
-package androidx.ui.core
+package androidx.ui.unit
 
-import androidx.ui.engine.geometry.Rect
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertTrue
 import org.junit.Assert.fail
@@ -401,20 +400,6 @@
     }
 
     @Test
-    fun boundsToRect() {
-        val bounds = PxBounds(10.px, 5.px, 25.px, 15.px)
-        val rect = Rect(10f, 5f, 25f, 15f)
-        assertEquals(rect, bounds.toRect())
-    }
-
-    @Test
-    fun sizeToRect() {
-        val size = PxSize(10.px, 5.px)
-        val rect = Rect(0f, 0f, 10f, 5f)
-        assertEquals(rect, size.toRect())
-    }
-
-    @Test
     fun sizeTimesInt() {
         assertEquals(PxSize(10.px, 10.px), PxSize(2.5.px, 2.5.px) * 4)
         assertEquals(PxSize(10.px, 10.px), 4 * PxSize(2.5.px, 2.5.px))
diff --git a/ui/ui-core/src/test/java/androidx/ui/core/TextUnitTest.kt b/ui/ui-unit/src/test/java/androidx/ui/unit/TextUnitTest.kt
similarity index 99%
rename from ui/ui-core/src/test/java/androidx/ui/core/TextUnitTest.kt
rename to ui/ui-unit/src/test/java/androidx/ui/unit/TextUnitTest.kt
index b138a34..6810545 100644
--- a/ui/ui-core/src/test/java/androidx/ui/core/TextUnitTest.kt
+++ b/ui/ui-unit/src/test/java/androidx/ui/unit/TextUnitTest.kt
@@ -14,13 +14,12 @@
  * limitations under the License.
  */
 
-package androidx.ui.core
+package androidx.ui.unit
 
 import com.google.common.truth.Truth.assertThat
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.junit.runners.JUnit4
-import java.lang.RuntimeException
 
 @RunWith(JUnit4::class)
 class TextUnitTest {
diff --git a/ui/ui-core/src/test/java/androidx/ui/core/UptimeTest.kt b/ui/ui-unit/src/test/java/androidx/ui/unit/UptimeTest.kt
similarity index 98%
rename from ui/ui-core/src/test/java/androidx/ui/core/UptimeTest.kt
rename to ui/ui-unit/src/test/java/androidx/ui/unit/UptimeTest.kt
index 15f7206..612c15d 100644
--- a/ui/ui-core/src/test/java/androidx/ui/core/UptimeTest.kt
+++ b/ui/ui-unit/src/test/java/androidx/ui/unit/UptimeTest.kt
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.ui.core
+package androidx.ui.unit
 
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertTrue
diff --git a/ui/ui-core/src/test/java/androidx/ui/core/VelocityTest.kt b/ui/ui-unit/src/test/java/androidx/ui/unit/VelocityTest.kt
similarity index 98%
rename from ui/ui-core/src/test/java/androidx/ui/core/VelocityTest.kt
rename to ui/ui-unit/src/test/java/androidx/ui/unit/VelocityTest.kt
index 0783b8d..b4a3c9d 100644
--- a/ui/ui-core/src/test/java/androidx/ui/core/VelocityTest.kt
+++ b/ui/ui-unit/src/test/java/androidx/ui/unit/VelocityTest.kt
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.ui.core
+package androidx.ui.unit
 
 import com.google.common.truth.Truth
 import org.junit.Test
diff --git a/ui/ui-util/OWNERS b/ui/ui-util/OWNERS
new file mode 100644
index 0000000..26955e2
--- /dev/null
+++ b/ui/ui-util/OWNERS
@@ -0,0 +1,11 @@
+mount@google.com
+shepshapard@google.com
+ryanmentley@google.com
+njawad@google.com
+popam@google.com
+
+# For text related files
+qqd@google.com
+nona@google.com
+haoyuchang@google.com
+siyamed@google.com
\ No newline at end of file
diff --git a/ui/ui-util/api/0.1.0-dev04.txt b/ui/ui-util/api/0.1.0-dev04.txt
new file mode 100644
index 0000000..42e9db6
--- /dev/null
+++ b/ui/ui-util/api/0.1.0-dev04.txt
@@ -0,0 +1,87 @@
+// Signature format: 3.0
+package androidx.ui.util {
+
+  public final class Float16 implements java.lang.Comparable<androidx.ui.util.Float16> {
+    ctor public Float16(short halfValue);
+    ctor public Float16(float value);
+    ctor public Float16(double value);
+    method public androidx.ui.util.Float16 absoluteValue();
+    method public androidx.ui.util.Float16 ceil();
+    method public operator int compareTo(androidx.ui.util.Float16 other);
+    method public androidx.ui.util.Float16 floor();
+    method public int getExponent();
+    method public short getHalfValue();
+    method public androidx.ui.util.Float16 getSign();
+    method public int getSignificand();
+    method public boolean isFinite();
+    method public boolean isInfinite();
+    method public boolean isNaN();
+    method public boolean isNormalized();
+    method public androidx.ui.util.Float16 round();
+    method public int toBits();
+    method public byte toByte();
+    method public double toDouble();
+    method public float toFloat();
+    method public String toHexString();
+    method public int toInt();
+    method public long toLong();
+    method public int toRawBits();
+    method public short toShort();
+    method public androidx.ui.util.Float16 trunc();
+    method public androidx.ui.util.Float16 withSign(androidx.ui.util.Float16 sign);
+    property public final int exponent;
+    property public final androidx.ui.util.Float16 sign;
+    property public final int significand;
+    field public static final androidx.ui.util.Float16.Companion! Companion;
+    field public static final int MaxExponent = 15; // 0xf
+    field public static final int MinExponent = -14; // 0xfffffff2
+    field public static final int Size = 16; // 0x10
+  }
+
+  public static final class Float16.Companion {
+    method public androidx.ui.util.Float16 getEpsilon();
+    method public androidx.ui.util.Float16 getLowestValue();
+    method public androidx.ui.util.Float16 getMaxValue();
+    method public androidx.ui.util.Float16 getMinNormal();
+    method public androidx.ui.util.Float16 getMinValue();
+    method public androidx.ui.util.Float16 getNaN();
+    method public androidx.ui.util.Float16 getNegativeInfinity();
+    method public androidx.ui.util.Float16 getNegativeZero();
+    method public androidx.ui.util.Float16 getPositiveInfinity();
+    method public androidx.ui.util.Float16 getPositiveZero();
+    property public final androidx.ui.util.Float16 Epsilon;
+    property public final androidx.ui.util.Float16 LowestValue;
+    property public final androidx.ui.util.Float16 MaxValue;
+    property public final androidx.ui.util.Float16 MinNormal;
+    property public final androidx.ui.util.Float16 MinValue;
+    property public final androidx.ui.util.Float16 NaN;
+    property public final androidx.ui.util.Float16 NegativeInfinity;
+    property public final androidx.ui.util.Float16 NegativeZero;
+    property public final androidx.ui.util.Float16 PositiveInfinity;
+    property public final androidx.ui.util.Float16 PositiveZero;
+  }
+
+  public final class Float16Kt {
+    method public static androidx.ui.util.Float16 max(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
+    method public static androidx.ui.util.Float16 min(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
+  }
+
+  public final class InlineClassHelperKt {
+    method public static inline long packFloats(float val1, float val2);
+    method public static inline long packInts(int val1, int val2);
+    method public static inline float unpackFloat1(long value);
+    method public static inline float unpackFloat2(long value);
+    method public static inline int unpackInt1(long value);
+    method public static inline int unpackInt2(long value);
+  }
+
+  public final class MathHelpersKt {
+    method public static float lerp(float start, float stop, float fraction);
+    method public static int lerp(int start, int stop, float fraction);
+    method public static long lerp(long start, long stop, float fraction);
+    method public static String toHexString(int);
+    method public static String toStringAsFixed(float, int digits);
+  }
+
+}
+
diff --git a/ui/ui-util/api/current.txt b/ui/ui-util/api/current.txt
new file mode 100644
index 0000000..42e9db6
--- /dev/null
+++ b/ui/ui-util/api/current.txt
@@ -0,0 +1,87 @@
+// Signature format: 3.0
+package androidx.ui.util {
+
+  public final class Float16 implements java.lang.Comparable<androidx.ui.util.Float16> {
+    ctor public Float16(short halfValue);
+    ctor public Float16(float value);
+    ctor public Float16(double value);
+    method public androidx.ui.util.Float16 absoluteValue();
+    method public androidx.ui.util.Float16 ceil();
+    method public operator int compareTo(androidx.ui.util.Float16 other);
+    method public androidx.ui.util.Float16 floor();
+    method public int getExponent();
+    method public short getHalfValue();
+    method public androidx.ui.util.Float16 getSign();
+    method public int getSignificand();
+    method public boolean isFinite();
+    method public boolean isInfinite();
+    method public boolean isNaN();
+    method public boolean isNormalized();
+    method public androidx.ui.util.Float16 round();
+    method public int toBits();
+    method public byte toByte();
+    method public double toDouble();
+    method public float toFloat();
+    method public String toHexString();
+    method public int toInt();
+    method public long toLong();
+    method public int toRawBits();
+    method public short toShort();
+    method public androidx.ui.util.Float16 trunc();
+    method public androidx.ui.util.Float16 withSign(androidx.ui.util.Float16 sign);
+    property public final int exponent;
+    property public final androidx.ui.util.Float16 sign;
+    property public final int significand;
+    field public static final androidx.ui.util.Float16.Companion! Companion;
+    field public static final int MaxExponent = 15; // 0xf
+    field public static final int MinExponent = -14; // 0xfffffff2
+    field public static final int Size = 16; // 0x10
+  }
+
+  public static final class Float16.Companion {
+    method public androidx.ui.util.Float16 getEpsilon();
+    method public androidx.ui.util.Float16 getLowestValue();
+    method public androidx.ui.util.Float16 getMaxValue();
+    method public androidx.ui.util.Float16 getMinNormal();
+    method public androidx.ui.util.Float16 getMinValue();
+    method public androidx.ui.util.Float16 getNaN();
+    method public androidx.ui.util.Float16 getNegativeInfinity();
+    method public androidx.ui.util.Float16 getNegativeZero();
+    method public androidx.ui.util.Float16 getPositiveInfinity();
+    method public androidx.ui.util.Float16 getPositiveZero();
+    property public final androidx.ui.util.Float16 Epsilon;
+    property public final androidx.ui.util.Float16 LowestValue;
+    property public final androidx.ui.util.Float16 MaxValue;
+    property public final androidx.ui.util.Float16 MinNormal;
+    property public final androidx.ui.util.Float16 MinValue;
+    property public final androidx.ui.util.Float16 NaN;
+    property public final androidx.ui.util.Float16 NegativeInfinity;
+    property public final androidx.ui.util.Float16 NegativeZero;
+    property public final androidx.ui.util.Float16 PositiveInfinity;
+    property public final androidx.ui.util.Float16 PositiveZero;
+  }
+
+  public final class Float16Kt {
+    method public static androidx.ui.util.Float16 max(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
+    method public static androidx.ui.util.Float16 min(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
+  }
+
+  public final class InlineClassHelperKt {
+    method public static inline long packFloats(float val1, float val2);
+    method public static inline long packInts(int val1, int val2);
+    method public static inline float unpackFloat1(long value);
+    method public static inline float unpackFloat2(long value);
+    method public static inline int unpackInt1(long value);
+    method public static inline int unpackInt2(long value);
+  }
+
+  public final class MathHelpersKt {
+    method public static float lerp(float start, float stop, float fraction);
+    method public static int lerp(int start, int stop, float fraction);
+    method public static long lerp(long start, long stop, float fraction);
+    method public static String toHexString(int);
+    method public static String toStringAsFixed(float, int digits);
+  }
+
+}
+
diff --git a/ui/ui-util/api/public_plus_experimental_0.1.0-dev04.txt b/ui/ui-util/api/public_plus_experimental_0.1.0-dev04.txt
new file mode 100644
index 0000000..42e9db6
--- /dev/null
+++ b/ui/ui-util/api/public_plus_experimental_0.1.0-dev04.txt
@@ -0,0 +1,87 @@
+// Signature format: 3.0
+package androidx.ui.util {
+
+  public final class Float16 implements java.lang.Comparable<androidx.ui.util.Float16> {
+    ctor public Float16(short halfValue);
+    ctor public Float16(float value);
+    ctor public Float16(double value);
+    method public androidx.ui.util.Float16 absoluteValue();
+    method public androidx.ui.util.Float16 ceil();
+    method public operator int compareTo(androidx.ui.util.Float16 other);
+    method public androidx.ui.util.Float16 floor();
+    method public int getExponent();
+    method public short getHalfValue();
+    method public androidx.ui.util.Float16 getSign();
+    method public int getSignificand();
+    method public boolean isFinite();
+    method public boolean isInfinite();
+    method public boolean isNaN();
+    method public boolean isNormalized();
+    method public androidx.ui.util.Float16 round();
+    method public int toBits();
+    method public byte toByte();
+    method public double toDouble();
+    method public float toFloat();
+    method public String toHexString();
+    method public int toInt();
+    method public long toLong();
+    method public int toRawBits();
+    method public short toShort();
+    method public androidx.ui.util.Float16 trunc();
+    method public androidx.ui.util.Float16 withSign(androidx.ui.util.Float16 sign);
+    property public final int exponent;
+    property public final androidx.ui.util.Float16 sign;
+    property public final int significand;
+    field public static final androidx.ui.util.Float16.Companion! Companion;
+    field public static final int MaxExponent = 15; // 0xf
+    field public static final int MinExponent = -14; // 0xfffffff2
+    field public static final int Size = 16; // 0x10
+  }
+
+  public static final class Float16.Companion {
+    method public androidx.ui.util.Float16 getEpsilon();
+    method public androidx.ui.util.Float16 getLowestValue();
+    method public androidx.ui.util.Float16 getMaxValue();
+    method public androidx.ui.util.Float16 getMinNormal();
+    method public androidx.ui.util.Float16 getMinValue();
+    method public androidx.ui.util.Float16 getNaN();
+    method public androidx.ui.util.Float16 getNegativeInfinity();
+    method public androidx.ui.util.Float16 getNegativeZero();
+    method public androidx.ui.util.Float16 getPositiveInfinity();
+    method public androidx.ui.util.Float16 getPositiveZero();
+    property public final androidx.ui.util.Float16 Epsilon;
+    property public final androidx.ui.util.Float16 LowestValue;
+    property public final androidx.ui.util.Float16 MaxValue;
+    property public final androidx.ui.util.Float16 MinNormal;
+    property public final androidx.ui.util.Float16 MinValue;
+    property public final androidx.ui.util.Float16 NaN;
+    property public final androidx.ui.util.Float16 NegativeInfinity;
+    property public final androidx.ui.util.Float16 NegativeZero;
+    property public final androidx.ui.util.Float16 PositiveInfinity;
+    property public final androidx.ui.util.Float16 PositiveZero;
+  }
+
+  public final class Float16Kt {
+    method public static androidx.ui.util.Float16 max(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
+    method public static androidx.ui.util.Float16 min(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
+  }
+
+  public final class InlineClassHelperKt {
+    method public static inline long packFloats(float val1, float val2);
+    method public static inline long packInts(int val1, int val2);
+    method public static inline float unpackFloat1(long value);
+    method public static inline float unpackFloat2(long value);
+    method public static inline int unpackInt1(long value);
+    method public static inline int unpackInt2(long value);
+  }
+
+  public final class MathHelpersKt {
+    method public static float lerp(float start, float stop, float fraction);
+    method public static int lerp(int start, int stop, float fraction);
+    method public static long lerp(long start, long stop, float fraction);
+    method public static String toHexString(int);
+    method public static String toStringAsFixed(float, int digits);
+  }
+
+}
+
diff --git a/ui/ui-util/api/public_plus_experimental_current.txt b/ui/ui-util/api/public_plus_experimental_current.txt
new file mode 100644
index 0000000..42e9db6
--- /dev/null
+++ b/ui/ui-util/api/public_plus_experimental_current.txt
@@ -0,0 +1,87 @@
+// Signature format: 3.0
+package androidx.ui.util {
+
+  public final class Float16 implements java.lang.Comparable<androidx.ui.util.Float16> {
+    ctor public Float16(short halfValue);
+    ctor public Float16(float value);
+    ctor public Float16(double value);
+    method public androidx.ui.util.Float16 absoluteValue();
+    method public androidx.ui.util.Float16 ceil();
+    method public operator int compareTo(androidx.ui.util.Float16 other);
+    method public androidx.ui.util.Float16 floor();
+    method public int getExponent();
+    method public short getHalfValue();
+    method public androidx.ui.util.Float16 getSign();
+    method public int getSignificand();
+    method public boolean isFinite();
+    method public boolean isInfinite();
+    method public boolean isNaN();
+    method public boolean isNormalized();
+    method public androidx.ui.util.Float16 round();
+    method public int toBits();
+    method public byte toByte();
+    method public double toDouble();
+    method public float toFloat();
+    method public String toHexString();
+    method public int toInt();
+    method public long toLong();
+    method public int toRawBits();
+    method public short toShort();
+    method public androidx.ui.util.Float16 trunc();
+    method public androidx.ui.util.Float16 withSign(androidx.ui.util.Float16 sign);
+    property public final int exponent;
+    property public final androidx.ui.util.Float16 sign;
+    property public final int significand;
+    field public static final androidx.ui.util.Float16.Companion! Companion;
+    field public static final int MaxExponent = 15; // 0xf
+    field public static final int MinExponent = -14; // 0xfffffff2
+    field public static final int Size = 16; // 0x10
+  }
+
+  public static final class Float16.Companion {
+    method public androidx.ui.util.Float16 getEpsilon();
+    method public androidx.ui.util.Float16 getLowestValue();
+    method public androidx.ui.util.Float16 getMaxValue();
+    method public androidx.ui.util.Float16 getMinNormal();
+    method public androidx.ui.util.Float16 getMinValue();
+    method public androidx.ui.util.Float16 getNaN();
+    method public androidx.ui.util.Float16 getNegativeInfinity();
+    method public androidx.ui.util.Float16 getNegativeZero();
+    method public androidx.ui.util.Float16 getPositiveInfinity();
+    method public androidx.ui.util.Float16 getPositiveZero();
+    property public final androidx.ui.util.Float16 Epsilon;
+    property public final androidx.ui.util.Float16 LowestValue;
+    property public final androidx.ui.util.Float16 MaxValue;
+    property public final androidx.ui.util.Float16 MinNormal;
+    property public final androidx.ui.util.Float16 MinValue;
+    property public final androidx.ui.util.Float16 NaN;
+    property public final androidx.ui.util.Float16 NegativeInfinity;
+    property public final androidx.ui.util.Float16 NegativeZero;
+    property public final androidx.ui.util.Float16 PositiveInfinity;
+    property public final androidx.ui.util.Float16 PositiveZero;
+  }
+
+  public final class Float16Kt {
+    method public static androidx.ui.util.Float16 max(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
+    method public static androidx.ui.util.Float16 min(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
+  }
+
+  public final class InlineClassHelperKt {
+    method public static inline long packFloats(float val1, float val2);
+    method public static inline long packInts(int val1, int val2);
+    method public static inline float unpackFloat1(long value);
+    method public static inline float unpackFloat2(long value);
+    method public static inline int unpackInt1(long value);
+    method public static inline int unpackInt2(long value);
+  }
+
+  public final class MathHelpersKt {
+    method public static float lerp(float start, float stop, float fraction);
+    method public static int lerp(int start, int stop, float fraction);
+    method public static long lerp(long start, long stop, float fraction);
+    method public static String toHexString(int);
+    method public static String toStringAsFixed(float, int digits);
+  }
+
+}
+
diff --git a/ui/ui-util/api/res-0.1.0-dev04.txt b/ui/ui-util/api/res-0.1.0-dev04.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ui/ui-util/api/res-0.1.0-dev04.txt
diff --git a/ui/ui-util/api/restricted_0.1.0-dev04.txt b/ui/ui-util/api/restricted_0.1.0-dev04.txt
new file mode 100644
index 0000000..42e9db6
--- /dev/null
+++ b/ui/ui-util/api/restricted_0.1.0-dev04.txt
@@ -0,0 +1,87 @@
+// Signature format: 3.0
+package androidx.ui.util {
+
+  public final class Float16 implements java.lang.Comparable<androidx.ui.util.Float16> {
+    ctor public Float16(short halfValue);
+    ctor public Float16(float value);
+    ctor public Float16(double value);
+    method public androidx.ui.util.Float16 absoluteValue();
+    method public androidx.ui.util.Float16 ceil();
+    method public operator int compareTo(androidx.ui.util.Float16 other);
+    method public androidx.ui.util.Float16 floor();
+    method public int getExponent();
+    method public short getHalfValue();
+    method public androidx.ui.util.Float16 getSign();
+    method public int getSignificand();
+    method public boolean isFinite();
+    method public boolean isInfinite();
+    method public boolean isNaN();
+    method public boolean isNormalized();
+    method public androidx.ui.util.Float16 round();
+    method public int toBits();
+    method public byte toByte();
+    method public double toDouble();
+    method public float toFloat();
+    method public String toHexString();
+    method public int toInt();
+    method public long toLong();
+    method public int toRawBits();
+    method public short toShort();
+    method public androidx.ui.util.Float16 trunc();
+    method public androidx.ui.util.Float16 withSign(androidx.ui.util.Float16 sign);
+    property public final int exponent;
+    property public final androidx.ui.util.Float16 sign;
+    property public final int significand;
+    field public static final androidx.ui.util.Float16.Companion! Companion;
+    field public static final int MaxExponent = 15; // 0xf
+    field public static final int MinExponent = -14; // 0xfffffff2
+    field public static final int Size = 16; // 0x10
+  }
+
+  public static final class Float16.Companion {
+    method public androidx.ui.util.Float16 getEpsilon();
+    method public androidx.ui.util.Float16 getLowestValue();
+    method public androidx.ui.util.Float16 getMaxValue();
+    method public androidx.ui.util.Float16 getMinNormal();
+    method public androidx.ui.util.Float16 getMinValue();
+    method public androidx.ui.util.Float16 getNaN();
+    method public androidx.ui.util.Float16 getNegativeInfinity();
+    method public androidx.ui.util.Float16 getNegativeZero();
+    method public androidx.ui.util.Float16 getPositiveInfinity();
+    method public androidx.ui.util.Float16 getPositiveZero();
+    property public final androidx.ui.util.Float16 Epsilon;
+    property public final androidx.ui.util.Float16 LowestValue;
+    property public final androidx.ui.util.Float16 MaxValue;
+    property public final androidx.ui.util.Float16 MinNormal;
+    property public final androidx.ui.util.Float16 MinValue;
+    property public final androidx.ui.util.Float16 NaN;
+    property public final androidx.ui.util.Float16 NegativeInfinity;
+    property public final androidx.ui.util.Float16 NegativeZero;
+    property public final androidx.ui.util.Float16 PositiveInfinity;
+    property public final androidx.ui.util.Float16 PositiveZero;
+  }
+
+  public final class Float16Kt {
+    method public static androidx.ui.util.Float16 max(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
+    method public static androidx.ui.util.Float16 min(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
+  }
+
+  public final class InlineClassHelperKt {
+    method public static inline long packFloats(float val1, float val2);
+    method public static inline long packInts(int val1, int val2);
+    method public static inline float unpackFloat1(long value);
+    method public static inline float unpackFloat2(long value);
+    method public static inline int unpackInt1(long value);
+    method public static inline int unpackInt2(long value);
+  }
+
+  public final class MathHelpersKt {
+    method public static float lerp(float start, float stop, float fraction);
+    method public static int lerp(int start, int stop, float fraction);
+    method public static long lerp(long start, long stop, float fraction);
+    method public static String toHexString(int);
+    method public static String toStringAsFixed(float, int digits);
+  }
+
+}
+
diff --git a/ui/ui-util/api/restricted_current.txt b/ui/ui-util/api/restricted_current.txt
new file mode 100644
index 0000000..42e9db6
--- /dev/null
+++ b/ui/ui-util/api/restricted_current.txt
@@ -0,0 +1,87 @@
+// Signature format: 3.0
+package androidx.ui.util {
+
+  public final class Float16 implements java.lang.Comparable<androidx.ui.util.Float16> {
+    ctor public Float16(short halfValue);
+    ctor public Float16(float value);
+    ctor public Float16(double value);
+    method public androidx.ui.util.Float16 absoluteValue();
+    method public androidx.ui.util.Float16 ceil();
+    method public operator int compareTo(androidx.ui.util.Float16 other);
+    method public androidx.ui.util.Float16 floor();
+    method public int getExponent();
+    method public short getHalfValue();
+    method public androidx.ui.util.Float16 getSign();
+    method public int getSignificand();
+    method public boolean isFinite();
+    method public boolean isInfinite();
+    method public boolean isNaN();
+    method public boolean isNormalized();
+    method public androidx.ui.util.Float16 round();
+    method public int toBits();
+    method public byte toByte();
+    method public double toDouble();
+    method public float toFloat();
+    method public String toHexString();
+    method public int toInt();
+    method public long toLong();
+    method public int toRawBits();
+    method public short toShort();
+    method public androidx.ui.util.Float16 trunc();
+    method public androidx.ui.util.Float16 withSign(androidx.ui.util.Float16 sign);
+    property public final int exponent;
+    property public final androidx.ui.util.Float16 sign;
+    property public final int significand;
+    field public static final androidx.ui.util.Float16.Companion! Companion;
+    field public static final int MaxExponent = 15; // 0xf
+    field public static final int MinExponent = -14; // 0xfffffff2
+    field public static final int Size = 16; // 0x10
+  }
+
+  public static final class Float16.Companion {
+    method public androidx.ui.util.Float16 getEpsilon();
+    method public androidx.ui.util.Float16 getLowestValue();
+    method public androidx.ui.util.Float16 getMaxValue();
+    method public androidx.ui.util.Float16 getMinNormal();
+    method public androidx.ui.util.Float16 getMinValue();
+    method public androidx.ui.util.Float16 getNaN();
+    method public androidx.ui.util.Float16 getNegativeInfinity();
+    method public androidx.ui.util.Float16 getNegativeZero();
+    method public androidx.ui.util.Float16 getPositiveInfinity();
+    method public androidx.ui.util.Float16 getPositiveZero();
+    property public final androidx.ui.util.Float16 Epsilon;
+    property public final androidx.ui.util.Float16 LowestValue;
+    property public final androidx.ui.util.Float16 MaxValue;
+    property public final androidx.ui.util.Float16 MinNormal;
+    property public final androidx.ui.util.Float16 MinValue;
+    property public final androidx.ui.util.Float16 NaN;
+    property public final androidx.ui.util.Float16 NegativeInfinity;
+    property public final androidx.ui.util.Float16 NegativeZero;
+    property public final androidx.ui.util.Float16 PositiveInfinity;
+    property public final androidx.ui.util.Float16 PositiveZero;
+  }
+
+  public final class Float16Kt {
+    method public static androidx.ui.util.Float16 max(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
+    method public static androidx.ui.util.Float16 min(androidx.ui.util.Float16 x, androidx.ui.util.Float16 y);
+  }
+
+  public final class InlineClassHelperKt {
+    method public static inline long packFloats(float val1, float val2);
+    method public static inline long packInts(int val1, int val2);
+    method public static inline float unpackFloat1(long value);
+    method public static inline float unpackFloat2(long value);
+    method public static inline int unpackInt1(long value);
+    method public static inline int unpackInt2(long value);
+  }
+
+  public final class MathHelpersKt {
+    method public static float lerp(float start, float stop, float fraction);
+    method public static int lerp(int start, int stop, float fraction);
+    method public static long lerp(long start, long stop, float fraction);
+    method public static String toHexString(int);
+    method public static String toStringAsFixed(float, int digits);
+  }
+
+}
+
diff --git a/ui/ui-util/build.gradle b/ui/ui-util/build.gradle
new file mode 100644
index 0000000..f149962
--- /dev/null
+++ b/ui/ui-util/build.gradle
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import androidx.build.LibraryGroups
+import androidx.build.LibraryVersions
+import androidx.build.Publish
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+
+import static androidx.build.dependencies.DependenciesKt.*
+
+plugins {
+    id("AndroidXPlugin")
+    id("com.android.library")
+    id("AndroidXUiPlugin")
+    id("org.jetbrains.kotlin.android")
+}
+
+dependencies {
+    implementation(KOTLIN_STDLIB)
+
+    api "androidx.annotation:annotation:1.1.0"
+
+    implementation project(":compose:compose-runtime")
+
+    testImplementation(ANDROIDX_TEST_RULES)
+    testImplementation(ANDROIDX_TEST_RUNNER)
+    testImplementation(JUNIT)
+    testImplementation(TRUTH)
+
+    androidTestImplementation(ANDROIDX_TEST_RULES)
+    androidTestImplementation(ANDROIDX_TEST_RUNNER)
+    androidTestImplementation(ESPRESSO_CORE)
+    androidTestImplementation(JUNIT)
+}
+
+androidx {
+    name = "AndroidX UI Util"
+    publish = Publish.SNAPSHOT_AND_RELEASE
+    mavenVersion = LibraryVersions.UI
+    mavenGroup = LibraryGroups.UI
+    inceptionYear = "2020"
+    description = "AndroidX UI methods used by other UI modules. It has no dependencies."
+}
+
+tasks.withType(KotlinCompile).configureEach {
+    kotlinOptions {
+        freeCompilerArgs += ["-Xuse-experimental=kotlin.Experimental", "-XXLanguage:+InlineClasses"]
+//        useIR = true
+    }
+}
diff --git a/ui/ui-util/integration-tests/samples/build.gradle b/ui/ui-util/integration-tests/samples/build.gradle
new file mode 100644
index 0000000..84ad5db
--- /dev/null
+++ b/ui/ui-util/integration-tests/samples/build.gradle
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+
+import static androidx.build.dependencies.DependenciesKt.*
+
+plugins {
+    id("AndroidXPlugin")
+    id("com.android.library")
+    id("AndroidXUiPlugin")
+    id("org.jetbrains.kotlin.android")
+}
+
+dependencies {
+    kotlinPlugin project(path: ":compose:compose-compiler")
+
+    implementation(KOTLIN_STDLIB)
+
+    implementation project(":annotation:annotation-sampled")
+
+    implementation project(":compose:compose-runtime")
+    implementation project(":ui:ui-core")
+    implementation project(":ui:ui-framework")
+}
+
+android {
+    tasks.withType(KotlinCompile).configureEach {
+        kotlinOptions {
+            useIR = true
+        }
+    }
+}
diff --git a/ui/ui-util/integration-tests/samples/src/main/AndroidManifest.xml b/ui/ui-util/integration-tests/samples/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..9e9e07e
--- /dev/null
+++ b/ui/ui-util/integration-tests/samples/src/main/AndroidManifest.xml
@@ -0,0 +1,17 @@
+<!--
+  Copyright 2019 The Android Open Source Project
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<manifest package="androidx.ui.core.samples" />
diff --git a/ui/ui-core/integration-tests/samples/src/main/java/androidx/ui/core/samples/DensitySample.kt b/ui/ui-util/integration-tests/samples/src/main/java/androidx/ui/core/samples/DensitySample.kt
similarity index 96%
rename from ui/ui-core/integration-tests/samples/src/main/java/androidx/ui/core/samples/DensitySample.kt
rename to ui/ui-util/integration-tests/samples/src/main/java/androidx/ui/core/samples/DensitySample.kt
index 48e98e3..0ae6dfe 100644
--- a/ui/ui-core/integration-tests/samples/src/main/java/androidx/ui/core/samples/DensitySample.kt
+++ b/ui/ui-util/integration-tests/samples/src/main/java/androidx/ui/core/samples/DensitySample.kt
@@ -19,7 +19,7 @@
 import androidx.annotation.Sampled
 import androidx.compose.Composable
 import androidx.ui.core.ambientDensity
-import androidx.ui.core.dp
+import androidx.ui.unit.dp
 import androidx.ui.core.withDensity
 
 @Sampled
diff --git a/ui/ui-util/src/main/AndroidManifest.xml b/ui/ui-util/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..437fd4e
--- /dev/null
+++ b/ui/ui-util/src/main/AndroidManifest.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<manifest package="androidx.ui.util" />
diff --git a/ui/ui-core/src/main/java/androidx/ui/util/Float16.kt b/ui/ui-util/src/main/java/androidx/ui/util/Float16.kt
similarity index 100%
rename from ui/ui-core/src/main/java/androidx/ui/util/Float16.kt
rename to ui/ui-util/src/main/java/androidx/ui/util/Float16.kt
diff --git a/ui/ui-core/src/main/java/androidx/ui/core/InlineClassHelper.kt b/ui/ui-util/src/main/java/androidx/ui/util/InlineClassHelper.kt
similarity index 98%
rename from ui/ui-core/src/main/java/androidx/ui/core/InlineClassHelper.kt
rename to ui/ui-util/src/main/java/androidx/ui/util/InlineClassHelper.kt
index a719061..f0e3863 100644
--- a/ui/ui-core/src/main/java/androidx/ui/core/InlineClassHelper.kt
+++ b/ui/ui-util/src/main/java/androidx/ui/util/InlineClassHelper.kt
@@ -16,7 +16,7 @@
 
 @file:Suppress("NOTHING_TO_INLINE")
 
-package androidx.ui.core
+package androidx.ui.util
 
 /**
  * Packs two Float values into one Long value for use in inline classes.
diff --git a/ui/ui-core/src/main/java/androidx/ui/MathHelpers.kt b/ui/ui-util/src/main/java/androidx/ui/util/MathHelpers.kt
similarity index 97%
rename from ui/ui-core/src/main/java/androidx/ui/MathHelpers.kt
rename to ui/ui-util/src/main/java/androidx/ui/util/MathHelpers.kt
index e707f3d..e2b4ce6 100644
--- a/ui/ui-core/src/main/java/androidx/ui/MathHelpers.kt
+++ b/ui/ui-util/src/main/java/androidx/ui/util/MathHelpers.kt
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package androidx.ui
+package androidx.ui.util
 
 import kotlin.math.roundToInt
 import kotlin.math.roundToLong
diff --git a/ui/ui-util/src/test/java/androidx/ui/util/InlineClassHelperTest.kt b/ui/ui-util/src/test/java/androidx/ui/util/InlineClassHelperTest.kt
new file mode 100644
index 0000000..15a2a12
--- /dev/null
+++ b/ui/ui-util/src/test/java/androidx/ui/util/InlineClassHelperTest.kt
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.ui.util
+
+import org.junit.Assert.assertEquals
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+
+@RunWith(JUnit4::class)
+class InlineClassHelperTest {
+
+    @Test
+    fun packAndUnpackFloats() {
+        val first = Float.MAX_VALUE
+        val second = Float.MIN_VALUE
+        val packed = packFloats(first, second)
+        assertEquals(first, unpackFloat1(packed))
+        assertEquals(second, unpackFloat2(packed))
+    }
+
+    @Test
+    fun packAndUnpackInts() {
+        val first = Int.MAX_VALUE
+        val second = Int.MIN_VALUE
+        val packed = packInts(first, second)
+        assertEquals(first, unpackInt1(packed))
+        assertEquals(second, unpackInt2(packed))
+    }
+}
\ No newline at end of file
diff --git a/ui/ui-core/src/test/java/androidx/ui/MathHelpersTest.kt b/ui/ui-util/src/test/java/androidx/ui/util/MathHelpersTest.kt
similarity index 97%
rename from ui/ui-core/src/test/java/androidx/ui/MathHelpersTest.kt
rename to ui/ui-util/src/test/java/androidx/ui/util/MathHelpersTest.kt
index 598938d..fde7d8a 100644
--- a/ui/ui-core/src/test/java/androidx/ui/MathHelpersTest.kt
+++ b/ui/ui-util/src/test/java/androidx/ui/util/MathHelpersTest.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright 2019 The Android Open Source Project
+ * Copyright 2020 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.ui
+package androidx.ui.util
 
 import com.google.common.truth.Truth.assertThat
 import org.junit.Test
diff --git a/ui/ui-vector/api/0.1.0-dev04.txt b/ui/ui-vector/api/0.1.0-dev04.txt
index ce55d30..602227d 100644
--- a/ui/ui-vector/api/0.1.0-dev04.txt
+++ b/ui/ui-vector/api/0.1.0-dev04.txt
@@ -80,18 +80,18 @@
   }
 
   public final class VectorComponent extends androidx.ui.graphics.vector.VNode {
-    ctor public VectorComponent(String name, float viewportWidth, float viewportHeight, androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight);
+    ctor public VectorComponent(String name, float viewportWidth, float viewportHeight, androidx.ui.unit.Px defaultWidth, androidx.ui.unit.Px defaultHeight);
     method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode blendMode = DefaultTintBlendMode);
     method public void draw(androidx.ui.graphics.Canvas canvas);
-    method public androidx.ui.core.Px getDefaultHeight();
-    method public androidx.ui.core.Px getDefaultWidth();
+    method public androidx.ui.unit.Px getDefaultHeight();
+    method public androidx.ui.unit.Px getDefaultWidth();
     method public String getName();
     method public androidx.ui.graphics.vector.GroupComponent getRoot();
     method public int getSize();
     method public float getViewportHeight();
     method public float getViewportWidth();
-    method public void setDefaultHeight(androidx.ui.core.Px p);
-    method public void setDefaultWidth(androidx.ui.core.Px p);
+    method public void setDefaultHeight(androidx.ui.unit.Px p);
+    method public void setDefaultWidth(androidx.ui.unit.Px p);
     method public void setViewportHeight(float p);
     method public void setViewportWidth(float p);
     property public final androidx.ui.graphics.vector.GroupComponent root;
diff --git a/ui/ui-vector/api/current.txt b/ui/ui-vector/api/current.txt
index ce55d30..602227d 100644
--- a/ui/ui-vector/api/current.txt
+++ b/ui/ui-vector/api/current.txt
@@ -80,18 +80,18 @@
   }
 
   public final class VectorComponent extends androidx.ui.graphics.vector.VNode {
-    ctor public VectorComponent(String name, float viewportWidth, float viewportHeight, androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight);
+    ctor public VectorComponent(String name, float viewportWidth, float viewportHeight, androidx.ui.unit.Px defaultWidth, androidx.ui.unit.Px defaultHeight);
     method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode blendMode = DefaultTintBlendMode);
     method public void draw(androidx.ui.graphics.Canvas canvas);
-    method public androidx.ui.core.Px getDefaultHeight();
-    method public androidx.ui.core.Px getDefaultWidth();
+    method public androidx.ui.unit.Px getDefaultHeight();
+    method public androidx.ui.unit.Px getDefaultWidth();
     method public String getName();
     method public androidx.ui.graphics.vector.GroupComponent getRoot();
     method public int getSize();
     method public float getViewportHeight();
     method public float getViewportWidth();
-    method public void setDefaultHeight(androidx.ui.core.Px p);
-    method public void setDefaultWidth(androidx.ui.core.Px p);
+    method public void setDefaultHeight(androidx.ui.unit.Px p);
+    method public void setDefaultWidth(androidx.ui.unit.Px p);
     method public void setViewportHeight(float p);
     method public void setViewportWidth(float p);
     property public final androidx.ui.graphics.vector.GroupComponent root;
diff --git a/ui/ui-vector/api/public_plus_experimental_0.1.0-dev04.txt b/ui/ui-vector/api/public_plus_experimental_0.1.0-dev04.txt
index ce55d30..602227d 100644
--- a/ui/ui-vector/api/public_plus_experimental_0.1.0-dev04.txt
+++ b/ui/ui-vector/api/public_plus_experimental_0.1.0-dev04.txt
@@ -80,18 +80,18 @@
   }
 
   public final class VectorComponent extends androidx.ui.graphics.vector.VNode {
-    ctor public VectorComponent(String name, float viewportWidth, float viewportHeight, androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight);
+    ctor public VectorComponent(String name, float viewportWidth, float viewportHeight, androidx.ui.unit.Px defaultWidth, androidx.ui.unit.Px defaultHeight);
     method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode blendMode = DefaultTintBlendMode);
     method public void draw(androidx.ui.graphics.Canvas canvas);
-    method public androidx.ui.core.Px getDefaultHeight();
-    method public androidx.ui.core.Px getDefaultWidth();
+    method public androidx.ui.unit.Px getDefaultHeight();
+    method public androidx.ui.unit.Px getDefaultWidth();
     method public String getName();
     method public androidx.ui.graphics.vector.GroupComponent getRoot();
     method public int getSize();
     method public float getViewportHeight();
     method public float getViewportWidth();
-    method public void setDefaultHeight(androidx.ui.core.Px p);
-    method public void setDefaultWidth(androidx.ui.core.Px p);
+    method public void setDefaultHeight(androidx.ui.unit.Px p);
+    method public void setDefaultWidth(androidx.ui.unit.Px p);
     method public void setViewportHeight(float p);
     method public void setViewportWidth(float p);
     property public final androidx.ui.graphics.vector.GroupComponent root;
diff --git a/ui/ui-vector/api/public_plus_experimental_current.txt b/ui/ui-vector/api/public_plus_experimental_current.txt
index ce55d30..602227d 100644
--- a/ui/ui-vector/api/public_plus_experimental_current.txt
+++ b/ui/ui-vector/api/public_plus_experimental_current.txt
@@ -80,18 +80,18 @@
   }
 
   public final class VectorComponent extends androidx.ui.graphics.vector.VNode {
-    ctor public VectorComponent(String name, float viewportWidth, float viewportHeight, androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight);
+    ctor public VectorComponent(String name, float viewportWidth, float viewportHeight, androidx.ui.unit.Px defaultWidth, androidx.ui.unit.Px defaultHeight);
     method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode blendMode = DefaultTintBlendMode);
     method public void draw(androidx.ui.graphics.Canvas canvas);
-    method public androidx.ui.core.Px getDefaultHeight();
-    method public androidx.ui.core.Px getDefaultWidth();
+    method public androidx.ui.unit.Px getDefaultHeight();
+    method public androidx.ui.unit.Px getDefaultWidth();
     method public String getName();
     method public androidx.ui.graphics.vector.GroupComponent getRoot();
     method public int getSize();
     method public float getViewportHeight();
     method public float getViewportWidth();
-    method public void setDefaultHeight(androidx.ui.core.Px p);
-    method public void setDefaultWidth(androidx.ui.core.Px p);
+    method public void setDefaultHeight(androidx.ui.unit.Px p);
+    method public void setDefaultWidth(androidx.ui.unit.Px p);
     method public void setViewportHeight(float p);
     method public void setViewportWidth(float p);
     property public final androidx.ui.graphics.vector.GroupComponent root;
diff --git a/ui/ui-vector/api/restricted_0.1.0-dev04.txt b/ui/ui-vector/api/restricted_0.1.0-dev04.txt
index ce55d30..602227d 100644
--- a/ui/ui-vector/api/restricted_0.1.0-dev04.txt
+++ b/ui/ui-vector/api/restricted_0.1.0-dev04.txt
@@ -80,18 +80,18 @@
   }
 
   public final class VectorComponent extends androidx.ui.graphics.vector.VNode {
-    ctor public VectorComponent(String name, float viewportWidth, float viewportHeight, androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight);
+    ctor public VectorComponent(String name, float viewportWidth, float viewportHeight, androidx.ui.unit.Px defaultWidth, androidx.ui.unit.Px defaultHeight);
     method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode blendMode = DefaultTintBlendMode);
     method public void draw(androidx.ui.graphics.Canvas canvas);
-    method public androidx.ui.core.Px getDefaultHeight();
-    method public androidx.ui.core.Px getDefaultWidth();
+    method public androidx.ui.unit.Px getDefaultHeight();
+    method public androidx.ui.unit.Px getDefaultWidth();
     method public String getName();
     method public androidx.ui.graphics.vector.GroupComponent getRoot();
     method public int getSize();
     method public float getViewportHeight();
     method public float getViewportWidth();
-    method public void setDefaultHeight(androidx.ui.core.Px p);
-    method public void setDefaultWidth(androidx.ui.core.Px p);
+    method public void setDefaultHeight(androidx.ui.unit.Px p);
+    method public void setDefaultWidth(androidx.ui.unit.Px p);
     method public void setViewportHeight(float p);
     method public void setViewportWidth(float p);
     property public final androidx.ui.graphics.vector.GroupComponent root;
diff --git a/ui/ui-vector/api/restricted_current.txt b/ui/ui-vector/api/restricted_current.txt
index ce55d30..602227d 100644
--- a/ui/ui-vector/api/restricted_current.txt
+++ b/ui/ui-vector/api/restricted_current.txt
@@ -80,18 +80,18 @@
   }
 
   public final class VectorComponent extends androidx.ui.graphics.vector.VNode {
-    ctor public VectorComponent(String name, float viewportWidth, float viewportHeight, androidx.ui.core.Px defaultWidth, androidx.ui.core.Px defaultHeight);
+    ctor public VectorComponent(String name, float viewportWidth, float viewportHeight, androidx.ui.unit.Px defaultWidth, androidx.ui.unit.Px defaultHeight);
     method public void draw(androidx.ui.graphics.Canvas canvas, androidx.ui.graphics.Color tintColor = DefaultTintColor, androidx.ui.graphics.BlendMode blendMode = DefaultTintBlendMode);
     method public void draw(androidx.ui.graphics.Canvas canvas);
-    method public androidx.ui.core.Px getDefaultHeight();
-    method public androidx.ui.core.Px getDefaultWidth();
+    method public androidx.ui.unit.Px getDefaultHeight();
+    method public androidx.ui.unit.Px getDefaultWidth();
     method public String getName();
     method public androidx.ui.graphics.vector.GroupComponent getRoot();
     method public int getSize();
     method public float getViewportHeight();
     method public float getViewportWidth();
-    method public void setDefaultHeight(androidx.ui.core.Px p);
-    method public void setDefaultWidth(androidx.ui.core.Px p);
+    method public void setDefaultHeight(androidx.ui.unit.Px p);
+    method public void setDefaultWidth(androidx.ui.unit.Px p);
     method public void setViewportHeight(float p);
     method public void setViewportWidth(float p);
     property public final androidx.ui.graphics.vector.GroupComponent root;
diff --git a/ui/ui-vector/src/main/java/androidx/ui/graphics/vector/Vector.kt b/ui/ui-vector/src/main/java/androidx/ui/graphics/vector/Vector.kt
index d542fb8..65ce2b3 100644
--- a/ui/ui-vector/src/main/java/androidx/ui/graphics/vector/Vector.kt
+++ b/ui/ui-vector/src/main/java/androidx/ui/graphics/vector/Vector.kt
@@ -17,8 +17,7 @@
 package androidx.ui.graphics.vector
 
 import android.graphics.Matrix
-import androidx.ui.core.Px
-import androidx.ui.engine.geometry.Offset
+import androidx.ui.geometry.Offset
 import androidx.ui.graphics.BlendMode
 import androidx.ui.graphics.Brush
 import androidx.ui.graphics.Canvas
@@ -31,6 +30,7 @@
 import androidx.ui.graphics.StrokeCap
 import androidx.ui.graphics.StrokeJoin
 import androidx.ui.graphics.withSave
+import androidx.ui.unit.Px
 import kotlin.math.ceil
 
 const val DefaultGroupName = ""