diff --git a/app/assets/sample_data.json b/app/assets/sample_data.json
index af8e0c4f..c2cac340 100644
--- a/app/assets/sample_data.json
+++ b/app/assets/sample_data.json
@@ -151,5 +151,53 @@
          "code-block":true
       },
       "insert":"\n"
+   },
+   {
+      "insert":"\nStart tracking in your browser"
+   },
+   {
+      "attributes":{
+         "indent":1
+      },
+      "insert":"\n"
+   },
+   {
+      "insert":"Stop the timer on your phone"
+   },
+   {
+      "attributes":{
+         "indent":1
+      },
+      "insert":"\n"
+   },
+   {
+      "insert":"All your time entries are synced"
+   },
+   {
+      "attributes":{
+         "indent":2
+      },
+      "insert":"\n"
+   },
+   {
+      "insert":"between the phone apps"
+   },
+   {
+      "attributes":{
+         "indent":2
+      },
+      "insert":"\n"
+   },
+   {
+      "insert":"and the website."
+   },
+   {
+      "attributes":{
+         "indent":3
+      },
+      "insert":"\n"
+   },
+   {
+      "insert":"\n"
    }
 ]
\ No newline at end of file
diff --git a/lib/models/documents/attribute.dart b/lib/models/documents/attribute.dart
index 62f28341..f2776a55 100644
--- a/lib/models/documents/attribute.dart
+++ b/lib/models/documents/attribute.dart
@@ -22,6 +22,7 @@ class Attribute<T> {
     Attribute.color.key: Attribute.color,
     Attribute.background.key: Attribute.background,
     Attribute.header.key: Attribute.header,
+    Attribute.indent.key: Attribute.indent,
     Attribute.list.key: Attribute.list,
     Attribute.codeBlock.key: Attribute.codeBlock,
     Attribute.blockQuote.key: Attribute.blockQuote,
@@ -43,6 +44,8 @@ class Attribute<T> {
 
   static final HeaderAttribute header = HeaderAttribute();
 
+  static final IndentAttribute indent = IndentAttribute();
+
   static final ListAttribute list = ListAttribute(null);
 
   static final CodeBlockAttribute codeBlock = CodeBlockAttribute();
@@ -61,6 +64,7 @@ class Attribute<T> {
 
   static final Set<String> blockKeys = {
     Attribute.header.key,
+    Attribute.indent.key,
     Attribute.list.key,
     Attribute.codeBlock.key,
     Attribute.blockQuote.key,
@@ -68,6 +72,7 @@ class Attribute<T> {
 
   static final Set<String> blockKeysExceptHeader = {
     Attribute.list.key,
+    Attribute.indent.key,
     Attribute.codeBlock.key,
     Attribute.blockQuote.key,
   };
@@ -155,6 +160,10 @@ class HeaderAttribute extends Attribute<int> {
   HeaderAttribute({int level}) : super('header', AttributeScope.BLOCK, level);
 }
 
+class IndentAttribute extends Attribute<int> {
+  IndentAttribute({int level}) : super('indent', AttributeScope.BLOCK, level);
+}
+
 class ListAttribute extends Attribute<String> {
   ListAttribute(String val) : super('list', AttributeScope.BLOCK, val);
 }
diff --git a/lib/widgets/default_styles.dart b/lib/widgets/default_styles.dart
index 453b553f..0d393de1 100644
--- a/lib/widgets/default_styles.dart
+++ b/lib/widgets/default_styles.dart
@@ -54,6 +54,7 @@ class DefaultStyles {
   final DefaultTextBlockStyle lists;
   final DefaultTextBlockStyle quote;
   final DefaultTextBlockStyle code;
+  final DefaultTextBlockStyle indent;
 
   DefaultStyles(
       this.h1,
@@ -67,7 +68,8 @@ class DefaultStyles {
       this.link,
       this.lists,
       this.quote,
-      this.code);
+      this.code,
+      this.indent);
 
   static DefaultStyles getInstance(BuildContext context) {
     ThemeData themeData = Theme.of(context);
@@ -155,7 +157,8 @@ class DefaultStyles {
             BoxDecoration(
               color: Colors.grey.shade50,
               borderRadius: BorderRadius.circular(2),
-            )));
+            )),
+        DefaultTextBlockStyle(baseStyle, Tuple2(0.0, 0.0), Tuple2(0.0, 0.0), null));
   }
 
   DefaultStyles merge(DefaultStyles other) {
@@ -171,6 +174,7 @@ class DefaultStyles {
         other.link ?? this.link,
         other.lists ?? this.lists,
         other.quote ?? this.quote,
-        other.code ?? this.code);
+        other.code ?? this.code,
+        other.indent ?? this.indent);
   }
 }
diff --git a/lib/widgets/raw_editor.dart b/lib/widgets/raw_editor.dart
index 3d944e0d..47442acf 100644
--- a/lib/widgets/raw_editor.dart
+++ b/lib/widgets/raw_editor.dart
@@ -633,6 +633,8 @@ class RawEditorState extends EditorState
       return defaultStyles.quote.verticalSpacing;
     } else if (attrs.containsKey(Attribute.codeBlock.key)) {
       return defaultStyles.code.verticalSpacing;
+    } else if (attrs.containsKey(Attribute.indent.key)) {
+      return defaultStyles.indent.verticalSpacing;
     }
     return defaultStyles.lists.verticalSpacing;
   }
diff --git a/lib/widgets/text_block.dart b/lib/widgets/text_block.dart
index f3683f9d..0ec6efd2 100644
--- a/lib/widgets/text_block.dart
+++ b/lib/widgets/text_block.dart
@@ -133,11 +133,18 @@ class EditableTextBlock extends StatelessWidget {
 
   double _getIndentWidth() {
     Map<String, Attribute> attrs = block.style.attributes;
+
+    Attribute indent = attrs[Attribute.indent.key];
+    double extraIndent = 0.0;
+    if (indent != null && indent.value != null) {
+      extraIndent = 16.0 * indent.value;
+    }
+
     if (attrs.containsKey(Attribute.blockQuote.key)) {
-      return 16.0;
+      return 16.0 + extraIndent;
     }
 
-    return 32.0;
+    return 32.0 + extraIndent;
   }
 
   Tuple2 _getSpacingForLine(
@@ -171,6 +178,8 @@ class EditableTextBlock extends StatelessWidget {
         lineSpacing = defaultStyles.lists.lineSpacing;
       } else if (attrs.containsKey(Attribute.codeBlock.key)) {
         lineSpacing = defaultStyles.code.lineSpacing;
+      } else if (attrs.containsKey(Attribute.indent.key)) {
+        lineSpacing = defaultStyles.indent.lineSpacing;
       }
       top = lineSpacing.item1;
       bottom = lineSpacing.item2;