diff --git a/ui/text/.google/packaging.yaml b/ui/text/.google/packaging.yaml
new file mode 100644
index 0000000..11e27f4
--- /dev/null
+++ b/ui/text/.google/packaging.yaml
@@ -0,0 +1,45 @@
+# GOOGLE SAMPLE PACKAGING DATA
+#
+# This file is used by Google as part of our samples packaging process.
+# End users may safely ignore this file. It has no relevance to other systems.
+---
+# Values: {DRAFT | PUBLISHED | INTERNAL | DEPRECATED | SUPERCEDED}
+status:       PUBLISHED
+
+# Optional, put additional explanation here for DEPRECATED or SUPERCEDED.
+# statusNote:
+
+# See http://go/sample-categories
+technologies: [Android]
+categories:   [Getting Started, UI, Text]
+languages:    [Java]
+solutions:    [Mobile]
+
+# May be omitted if unpublished
+github:       google/android-text
+
+# Values: BEGINNER | INTERMEDIATE | ADVANCED | EXPERT
+level:        BEGINNER
+
+# Dimensions: 512x512, PNG fomrat
+icon: screenshots/icon_web.png
+
+# List of APIs that this sample should be listed under. Use authoritive,
+# names that are unique for the product in question. Examples:
+#
+# Android -    android:<class-name>
+# App Engine - gae-java:<class name>
+#              gae-python:<package>
+# Web Services - ws:<name of API from Cloud Console>
+apiRefs:
+    - android:android.text.SpannableStringBuilder
+    - android:android.text.Spanned
+    - android:android.text.SpannedString
+    - android:android.text.style.StyleSpan
+    - android:android.text.style.RelativeSizeSpan
+    - android:android.text.style.MetricAffectingSpan
+
+
+# Default: apache2. May be omitted for most samples.
+# Alternatives: apache2-android (for AOSP)
+license: apache2
diff --git a/ui/text/README.md b/ui/text/README.md
new file mode 100644
index 0000000..003caf7
--- /dev/null
+++ b/ui/text/README.md
@@ -0,0 +1,73 @@
+Text Styling
+============
+This sample shows how to style text on Android using spans.
+
+Introduction
+------------
+## Features
+Parse some hardcoded text and do the following:
+* Paragraphs starting with “> ” are transformed into quotes.
+* Text enclosed in “```” will be transformed into inline code block.
+* Lines starting with “+ ” or “* ” will be transformed into bullet points.
+To update the text, modify the value of `R.string.display_text`.
+This project is not meant to fully cover the markdown capabilities and has several limitations; for example, quotes do not support nesting other elements.
+
+## Implementation
+The text is parsed in the `Parser.parse` method and the spans are created in the `MarkdownBuilder.markdownToSpans` method.
+To see how to apply a span, check out `MarkdownBuilder.buildCodeBlockSpan`. To see how to apply multiple spans on the same string, see `MarkdownBuilder.buildQuoteSpan”. For examples of creating custom spans, see `BulletPointSpan`, `CodeBlockSpan` or `FontSpan`.
+
+## Testing
+Parsing of the text is tested with JUnit tests in `ParserTest`. Span building is tested via Android JUnit tests, in `MarkdownBuilderTest`. 
+
+
+Getting Started
+---------------
+
+Clone this repository, enter the top level directory and run `./gradlew tasks`
+to get an overview of all the tasks available for this project.
+
+Some important tasks are:
+
+```
+assembleDebug - Assembles all Debug builds.
+installDebug - Installs the Debug build.
+connectedAndroidTest - Installs and runs the tests for Debug build on connected
+devices.
+test - Run all unit tests.
+```
+
+Screenshots
+-----------
+<img src="screenshots/main_activity.png" width="30%" />
+
+Support
+-------
+- Stack Overflow: http://stackoverflow.com/questions/tagged/android-text
+
+If you've found an error in this sample, please file an issue:
+https://github.com/googlesamples/android-text/issues
+
+Patches are encouraged, and may be submitted by forking this project and
+submitting a pull request through GitHub.
+
+License
+--------
+```
+Copyright 2018 The Android Open Source Project
+
+Licensed to the Apache Software Foundation (ASF) under one or more contributor
+license agreements. See the NOTICE file distributed with this work for
+additional information regarding copyright ownership. The ASF licenses this
+file to you 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.
+```
+
diff --git a/ui/text/screenshots/icon-web.png b/ui/text/screenshots/icon-web.png
new file mode 100644
index 0000000..47f96e4
--- /dev/null
+++ b/ui/text/screenshots/icon-web.png
Binary files differ
diff --git a/ui/text/screenshots/main_activity.png b/ui/text/screenshots/main_activity.png
new file mode 100644
index 0000000..366b19f
--- /dev/null
+++ b/ui/text/screenshots/main_activity.png
Binary files differ
